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::@11
Culled Empty Block (label) main::@12
Culled Empty Block (label) main::@7
Culled Empty Block (label) main::@8
Culled Empty Block (label) main::@9
Culled Empty Block (label) main::@10
Culled Empty Block (label) main::@14
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::@5
Culled Empty Block (label) draw_window::@6
Culled Empty Block (label) draw_window::@7
Culled Empty Block (label) draw_window::@11
Culled Empty Block (label) draw_window::@12
Culled Empty Block (label) draw_window::@13
Culled Empty Block (label) draw_window::@1
Culled Empty Block (label) draw_window::@25
Culled Empty Block (label) draw_window::@17
Culled Empty Block (label) draw_window::@26
Culled Empty Block (label) draw_window::@21
Culled Empty Block (label) draw_window::@22
Culled Empty Block (label) draw_window::@23
Culled Empty Block (label) draw_window::@24

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::@6
  (byte) main::x#2 ← phi( main/(byte) main::x#0 main::@6/(byte) main::x#1 )
  (bool~) main::$3 ← (byte) main::x#2 < (number) $f
  if((bool~) main::$3) goto main::@2
  to:main::@3
main::@2: scope:[main]  from main::@1
  (byte) main::x#3 ← phi( main::@1/(byte) main::x#2 )
  (byte~) main::$4 ← (byte) main::x#3 + (byte) main::x#3
  (number~) main::$5 ← (byte~) main::$4 + (number) 1
  (number~) main::$6 ← (byte) main::x#3 + (number) $a
  (byte) textbox::x1#0 ← (byte) main::x#3
  (byte) textbox::y1#0 ← (byte) main::x#3
  (byte) textbox::x2#0 ← (number~) main::$5
  (byte) textbox::y2#0 ← (number~) main::$6
  (byte*) textbox::text#0 ← (byte[]) text2#0
  call textbox 
  to:main::@15
main::@15: scope:[main]  from main::@2
  (byte) main::x#6 ← phi( main::@2/(byte) main::x#3 )
  (word) main::wait#0 ← (number) 0
  to:main::@4
main::@3: scope:[main]  from main::@1
  (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::@16
main::@16: scope:[main]  from main::@3
  (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::@17
main::@17: scope:[main]  from main::@16
  (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::@18
main::@18: scope:[main]  from main::@17
  to:main::@13
main::@4: scope:[main]  from main::@15 main::@5
  (byte) main::x#5 ← phi( main::@15/(byte) main::x#6 main::@5/(byte) main::x#7 )
  (word) main::wait#2 ← phi( main::@15/(word) main::wait#0 main::@5/(word) main::wait#1 )
  (bool~) main::$8 ← (word) main::wait#2 < (number) $88b8
  if((bool~) main::$8) goto main::@5
  to:main::@6
main::@5: scope:[main]  from main::@4
  (byte) main::x#7 ← phi( main::@4/(byte) main::x#5 )
  (word) main::wait#3 ← phi( main::@4/(word) main::wait#2 )
  (word) main::wait#1 ← ++ (word) main::wait#3
  to:main::@4
main::@6: scope:[main]  from main::@4
  (byte) main::x#4 ← phi( main::@4/(byte) main::x#5 )
  (byte) main::x#1 ← (byte) main::x#4 + (number) 2
  to:main::@1
main::@13: scope:[main]  from main::@13 main::@18
  if(true) goto main::@13
  to:main::@return
main::@return: scope:[main]  from main::@13
  return 
  to:@return
textbox: scope:[textbox]  from main::@16 main::@17 main::@2 main::@3
  (byte*) textbox::text#12 ← phi( main::@16/(byte*) textbox::text#2 main::@17/(byte*) textbox::text#3 main::@2/(byte*) textbox::text#0 main::@3/(byte*) textbox::text#1 )
  (byte) textbox::y2#4 ← phi( main::@16/(byte) textbox::y2#2 main::@17/(byte) textbox::y2#3 main::@2/(byte) textbox::y2#0 main::@3/(byte) textbox::y2#1 )
  (byte) textbox::x2#4 ← phi( main::@16/(byte) textbox::x2#2 main::@17/(byte) textbox::x2#3 main::@2/(byte) textbox::x2#0 main::@3/(byte) textbox::x2#1 )
  (byte) textbox::y1#4 ← phi( main::@16/(byte) textbox::y1#2 main::@17/(byte) textbox::y1#3 main::@2/(byte) textbox::y1#0 main::@3/(byte) textbox::y1#1 )
  (byte) textbox::x1#4 ← phi( main::@16/(byte) textbox::x1#2 main::@17/(byte) textbox::x1#3 main::@2/(byte) textbox::x1#0 main::@3/(byte) textbox::x1#1 )
  (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::@3
  (byte) draw_window::y2#9 ← phi( draw_window/(byte) draw_window::y2#1 draw_window::@3/(byte) draw_window::y2#11 )
  (byte) draw_window::y1#5 ← phi( draw_window/(byte) draw_window::y1#1 draw_window::@3/(byte) draw_window::y1#7 )
  (byte) draw_window::x1#6 ← phi( draw_window/(byte) draw_window::x1#1 draw_window::@3/(byte) draw_window::x1#9 )
  (word) draw_window::q#3 ← phi( draw_window/(word) draw_window::q#0 draw_window::@3/(word) draw_window::q#1 )
  (word) draw_window::z#6 ← phi( draw_window/(word) draw_window::z#0 draw_window::@3/(word) draw_window::z#3 )
  (byte) draw_window::x2#1 ← phi( draw_window/(byte) draw_window::x2#6 draw_window::@3/(byte) draw_window::x2#7 )
  (byte) draw_window::x#2 ← phi( draw_window/(byte) draw_window::x#0 draw_window::@3/(byte) draw_window::x#1 )
  (bool~) draw_window::$13 ← (byte) draw_window::x#2 < (byte) draw_window::x2#1
  if((bool~) draw_window::$13) goto draw_window::@3
  to:draw_window::@4
draw_window::@3: scope:[draw_window]  from draw_window::@2
  (byte) draw_window::y2#11 ← phi( draw_window::@2/(byte) draw_window::y2#9 )
  (byte) draw_window::y1#7 ← phi( draw_window::@2/(byte) draw_window::y1#5 )
  (byte) draw_window::x1#9 ← phi( draw_window::@2/(byte) draw_window::x1#6 )
  (byte) draw_window::x2#7 ← phi( draw_window::@2/(byte) draw_window::x2#1 )
  (word) draw_window::q#1 ← phi( draw_window::@2/(word) draw_window::q#3 )
  (byte) draw_window::x#3 ← phi( draw_window::@2/(byte) draw_window::x#2 )
  (word) draw_window::z#3 ← phi( draw_window::@2/(word) draw_window::z#6 )
  (word~) draw_window::$14 ← (word) draw_window::z#3 + (byte) draw_window::x#3
  *((byte*) screen#0 + (word~) draw_window::$14) ← (number) $43
  (word~) draw_window::$15 ← (word) draw_window::q#1 + (byte) draw_window::x#3
  *((byte*) screen#0 + (word~) draw_window::$15) ← (number) $43
  (byte) draw_window::x#1 ← ++ (byte) draw_window::x#3
  to:draw_window::@2
draw_window::@4: scope:[draw_window]  from draw_window::@2
  (word) draw_window::q#5 ← phi( draw_window::@2/(word) draw_window::q#3 )
  (byte) draw_window::y2#5 ← phi( draw_window::@2/(byte) draw_window::y2#9 )
  (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#6 )
  (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::@8
draw_window::@8: scope:[draw_window]  from draw_window::@4 draw_window::@9
  (byte) draw_window::y1#6 ← phi( draw_window::@4/(byte) draw_window::y1#2 draw_window::@9/(byte) draw_window::y1#8 )
  (word) draw_window::q#4 ← phi( draw_window::@4/(word) draw_window::q#5 draw_window::@9/(word) draw_window::q#6 )
  (byte) draw_window::x2#8 ← phi( draw_window::@4/(byte) draw_window::x2#2 draw_window::@9/(byte) draw_window::x2#3 )
  (byte) draw_window::x1#7 ← phi( draw_window::@4/(byte) draw_window::x1#2 draw_window::@9/(byte) draw_window::x1#3 )
  (byte) draw_window::y2#2 ← phi( draw_window::@4/(byte) draw_window::y2#5 draw_window::@9/(byte) draw_window::y2#6 )
  (byte) draw_window::y#2 ← phi( draw_window::@4/(byte) draw_window::y#0 draw_window::@9/(byte) draw_window::y#1 )
  (bool~) draw_window::$17 ← (byte) draw_window::y#2 < (byte) draw_window::y2#2
  if((bool~) draw_window::$17) goto draw_window::@9
  to:draw_window::@10
draw_window::@9: scope:[draw_window]  from draw_window::@8
  (byte) draw_window::y1#8 ← phi( draw_window::@8/(byte) draw_window::y1#6 )
  (word) draw_window::q#6 ← phi( draw_window::@8/(word) draw_window::q#4 )
  (byte) draw_window::y2#6 ← phi( draw_window::@8/(byte) draw_window::y2#2 )
  (byte) draw_window::x2#3 ← phi( draw_window::@8/(byte) draw_window::x2#8 )
  (byte) draw_window::x1#3 ← phi( draw_window::@8/(byte) draw_window::x1#7 )
  (byte) draw_window::y#3 ← phi( draw_window::@8/(byte) draw_window::y#2 )
  (number~) draw_window::$18 ← (byte) draw_window::y#3 * (number) $28
  (word) draw_window::z#1 ← (number~) draw_window::$18
  (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x1#3
  *((byte*) screen#0 + (word~) draw_window::$19) ← (number) $42
  (word~) draw_window::$20 ← (word) draw_window::z#1 + (byte) draw_window::x2#3
  *((byte*) screen#0 + (word~) draw_window::$20) ← (number) $42
  (byte) draw_window::y#1 ← ++ (byte) draw_window::y#3
  to:draw_window::@8
draw_window::@10: scope:[draw_window]  from draw_window::@8
  (byte) draw_window::y1#3 ← phi( draw_window::@8/(byte) draw_window::y1#6 )
  (byte) draw_window::y2#3 ← phi( draw_window::@8/(byte) draw_window::y2#2 )
  (byte) draw_window::x2#4 ← phi( draw_window::@8/(byte) draw_window::x2#8 )
  (byte) draw_window::x1#4 ← phi( draw_window::@8/(byte) draw_window::x1#7 )
  (word) draw_window::q#2 ← phi( draw_window::@8/(word) draw_window::q#4 )
  (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::@14
draw_window::@14: scope:[draw_window]  from draw_window::@10
  (byte) draw_window::x2#12 ← phi( draw_window::@10/(byte) draw_window::x2#4 )
  (byte) draw_window::x1#10 ← phi( draw_window::@10/(byte) draw_window::x1#4 )
  (byte) draw_window::y2#7 ← phi( draw_window::@10/(byte) draw_window::y2#3 )
  (byte) draw_window::y1#4 ← phi( draw_window::@10/(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::@15
draw_window::@15: scope:[draw_window]  from draw_window::@14 draw_window::@20
  (byte) draw_window::x2#11 ← phi( draw_window::@14/(byte) draw_window::x2#12 draw_window::@20/(byte) draw_window::x2#13 )
  (byte) draw_window::x1#8 ← phi( draw_window::@14/(byte) draw_window::x1#10 draw_window::@20/(byte) draw_window::x1#11 )
  (byte) draw_window::y2#4 ← phi( draw_window::@14/(byte) draw_window::y2#7 draw_window::@20/(byte) draw_window::y2#8 )
  (byte) draw_window::y3#2 ← phi( draw_window::@14/(byte) draw_window::y3#0 draw_window::@20/(byte) draw_window::y3#1 )
  (bool~) draw_window::$22 ← (byte) draw_window::y3#2 < (byte) draw_window::y2#4
  if((bool~) draw_window::$22) goto draw_window::@16
  to:draw_window::@return
draw_window::@16: scope:[draw_window]  from draw_window::@15
  (byte) draw_window::y2#12 ← phi( draw_window::@15/(byte) draw_window::y2#4 )
  (byte) draw_window::x2#9 ← phi( draw_window::@15/(byte) draw_window::x2#11 )
  (byte) draw_window::x1#5 ← phi( draw_window::@15/(byte) draw_window::x1#8 )
  (byte) draw_window::y3#3 ← phi( draw_window::@15/(byte) draw_window::y3#2 )
  (number~) draw_window::$23 ← (byte) draw_window::y3#3 * (number) $28
  (word) draw_window::z#2 ← (number~) draw_window::$23
  (number~) draw_window::$24 ← (byte) draw_window::x1#5 + (number) 1
  (byte) draw_window::x3#0 ← (number~) draw_window::$24
  to:draw_window::@18
draw_window::@18: scope:[draw_window]  from draw_window::@16 draw_window::@19
  (byte) draw_window::x1#12 ← phi( draw_window::@16/(byte) draw_window::x1#5 draw_window::@19/(byte) draw_window::x1#13 )
  (byte) draw_window::y2#10 ← phi( draw_window::@16/(byte) draw_window::y2#12 draw_window::@19/(byte) draw_window::y2#13 )
  (byte) draw_window::y3#5 ← phi( draw_window::@16/(byte) draw_window::y3#3 draw_window::@19/(byte) draw_window::y3#6 )
  (word) draw_window::z#7 ← phi( draw_window::@16/(word) draw_window::z#2 draw_window::@19/(word) draw_window::z#5 )
  (byte) draw_window::x2#5 ← phi( draw_window::@16/(byte) draw_window::x2#9 draw_window::@19/(byte) draw_window::x2#10 )
  (byte) draw_window::x3#2 ← phi( draw_window::@16/(byte) draw_window::x3#0 draw_window::@19/(byte) draw_window::x3#1 )
  (bool~) draw_window::$25 ← (byte) draw_window::x3#2 < (byte) draw_window::x2#5
  if((bool~) draw_window::$25) goto draw_window::@19
  to:draw_window::@20
draw_window::@19: scope:[draw_window]  from draw_window::@18
  (byte) draw_window::x1#13 ← phi( draw_window::@18/(byte) draw_window::x1#12 )
  (byte) draw_window::y2#13 ← phi( draw_window::@18/(byte) draw_window::y2#10 )
  (byte) draw_window::y3#6 ← phi( draw_window::@18/(byte) draw_window::y3#5 )
  (byte) draw_window::x2#10 ← phi( draw_window::@18/(byte) draw_window::x2#5 )
  (byte) draw_window::x3#3 ← phi( draw_window::@18/(byte) draw_window::x3#2 )
  (word) draw_window::z#5 ← phi( draw_window::@18/(word) draw_window::z#7 )
  (word~) draw_window::$26 ← (word) draw_window::z#5 + (byte) draw_window::x3#3
  *((byte*) screen#0 + (word~) draw_window::$26) ← (number) $20
  (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#3
  to:draw_window::@18
draw_window::@20: scope:[draw_window]  from draw_window::@18
  (byte) draw_window::x2#13 ← phi( draw_window::@18/(byte) draw_window::x2#5 )
  (byte) draw_window::x1#11 ← phi( draw_window::@18/(byte) draw_window::x1#12 )
  (byte) draw_window::y2#8 ← phi( draw_window::@18/(byte) draw_window::y2#10 )
  (byte) draw_window::y3#4 ← phi( draw_window::@18/(byte) draw_window::y3#5 )
  (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#4
  to:draw_window::@15
draw_window::@return: scope:[draw_window]  from draw_window::@10 draw_window::@15
  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
(bool~) draw_window::$13
(word~) draw_window::$14
(word~) draw_window::$15
(number~) draw_window::$16
(bool~) draw_window::$17
(number~) draw_window::$18
(word~) draw_window::$19
(word~) draw_window::$2
(word~) draw_window::$20
(number~) draw_window::$21
(bool~) draw_window::$22
(number~) draw_window::$23
(number~) draw_window::$24
(bool~) draw_window::$25
(word~) 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::@10
(label) draw_window::@14
(label) draw_window::@15
(label) draw_window::@16
(label) draw_window::@18
(label) draw_window::@19
(label) draw_window::@2
(label) draw_window::@20
(label) draw_window::@3
(label) draw_window::@4
(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
(word) draw_window::q#5
(word) draw_window::q#6
(byte) draw_window::x
(byte) draw_window::x#0
(byte) draw_window::x#1
(byte) draw_window::x#2
(byte) draw_window::x#3
(byte) draw_window::x1
(byte) draw_window::x1#0
(byte) draw_window::x1#1
(byte) draw_window::x1#10
(byte) draw_window::x1#11
(byte) draw_window::x1#12
(byte) draw_window::x1#13
(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#10
(byte) draw_window::x2#11
(byte) draw_window::x2#12
(byte) draw_window::x2#13
(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::x3#3
(byte) draw_window::y
(byte) draw_window::y#0
(byte) draw_window::y#1
(byte) draw_window::y#2
(byte) draw_window::y#3
(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::y1#7
(byte) draw_window::y1#8
(byte) draw_window::y2
(byte) draw_window::y2#0
(byte) draw_window::y2#1
(byte) draw_window::y2#10
(byte) draw_window::y2#11
(byte) draw_window::y2#12
(byte) draw_window::y2#13
(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
(byte) draw_window::y3#5
(byte) draw_window::y3#6
(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
(word) draw_window::z#6
(word) draw_window::z#7
(void()) main()
(bool~) main::$3
(byte~) main::$4
(number~) main::$5
(number~) main::$6
(bool~) main::$8
(label) main::@1
(label) main::@13
(label) main::@15
(label) main::@16
(label) main::@17
(label) main::@18
(label) main::@2
(label) main::@3
(label) main::@4
(label) main::@5
(label) main::@6
(label) main::@return
(word) main::wait
(word) main::wait#0
(word) main::wait#1
(word) main::wait#2
(word) main::wait#3
(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) main::x#6
(byte) main::x#7
(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) $f in (bool~) main::$3 ← (byte) main::x#2 < (number) $f
Adding number conversion cast (unumber) 1 in (number~) main::$5 ← (byte~) main::$4 + (number) 1
Adding number conversion cast (unumber) main::$5 in (number~) main::$5 ← (byte~) main::$4 + (unumber)(number) 1
Adding number conversion cast (unumber) $a in (number~) main::$6 ← (byte) main::x#3 + (number) $a
Adding number conversion cast (unumber) main::$6 in (number~) main::$6 ← (byte) main::x#3 + (unumber)(number) $a
Adding number conversion cast (unumber) 0 in (word) main::wait#0 ← (number) 0
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) $88b8 in (bool~) main::$8 ← (word) main::wait#2 < (number) $88b8
Adding number conversion cast (unumber) 2 in (byte) main::x#1 ← (byte) main::x#4 + (number) 2
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::$14) ← (number) $43
Adding number conversion cast (unumber) $43 in *((byte*) screen#0 + (word~) draw_window::$15) ← (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::$18 ← (byte) draw_window::y#3 * (number) $28
Adding number conversion cast (unumber) draw_window::$18 in (number~) draw_window::$18 ← (byte) draw_window::y#3 * (unumber)(number) $28
Adding number conversion cast (unumber) $42 in *((byte*) screen#0 + (word~) draw_window::$19) ← (number) $42
Adding number conversion cast (unumber) $42 in *((byte*) screen#0 + (word~) draw_window::$20) ← (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::$23 ← (byte) draw_window::y3#3 * (number) $28
Adding number conversion cast (unumber) draw_window::$23 in (number~) draw_window::$23 ← (byte) draw_window::y3#3 * (unumber)(number) $28
Adding number conversion cast (unumber) 1 in (number~) draw_window::$24 ← (byte) draw_window::x1#5 + (number) 1
Adding number conversion cast (unumber) draw_window::$24 in (number~) draw_window::$24 ← (byte) draw_window::x1#5 + (unumber)(number) 1
Adding number conversion cast (unumber) $20 in *((byte*) screen#0 + (word~) draw_window::$26) ← (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::$14) ← (unumber)(number) $43
Inlining cast *((byte*) screen#0 + (word~) draw_window::$15) ← (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::$19) ← (unumber)(number) $42
Inlining cast *((byte*) screen#0 + (word~) draw_window::$20) ← (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::$26) ← (unumber)(number) $20
Successful SSA optimization Pass2InlineCast
Simplifying constant pointer cast (byte*) 1024
Simplifying constant integer cast 0
Simplifying constant integer cast $f
Simplifying constant integer cast 1
Simplifying constant integer cast $a
Simplifying constant integer cast 0
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 $88b8
Simplifying constant integer cast 2
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) $f
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) $a
Finalized unsigned number type (byte) 0
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 (word) $88b8
Finalized unsigned number type (byte) 2
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::$5 ← (byte~) main::$4 + (byte) 1
Inferred type updated to byte in (unumber~) main::$6 ← (byte) main::x#3 + (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::$18 ← (byte) draw_window::y#3 * (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::$23 ← (byte) draw_window::y3#3 * (byte) $28
Inferred type updated to byte in (unumber~) draw_window::$24 ← (byte) draw_window::x1#5 + (byte) 1
Inversing boolean not [70] (bool~) textbox::$10 ← *((byte*) textbox::text#4 + (byte) textbox::i#2) != (byte) $20 from [69] (bool~) textbox::$9 ← *((byte*) textbox::text#4 + (byte) textbox::i#2) == (byte) $20
Inversing boolean not [76] (bool~) textbox::$25 ← (byte) textbox::x#1 != (byte) textbox::x2#6 from [75] (bool~) textbox::$24 ← (byte) textbox::x#1 == (byte) textbox::x2#6
Inversing boolean not [102] (bool~) textbox::$22 ← (byte) textbox::y#1 != (byte) textbox::y2#6 from [101] (bool~) textbox::$21 ← (byte) textbox::y#1 == (byte) textbox::y2#6
Inversing boolean not [115] (bool~) textbox::$28 ← (byte) textbox::y#2 != (byte) textbox::y2#7 from [114] (bool~) textbox::$27 ← (byte) textbox::y#2 == (byte) textbox::y2#7
Successful SSA optimization Pass2UnaryNotSimplification
Alias (byte) main::x#2 = (byte) main::x#3 (byte) main::x#6 
Alias (byte) textbox::x2#0 = (byte~) main::$5 
Alias (byte) textbox::y2#0 = (byte~) main::$6 
Alias (word) main::wait#2 = (word) main::wait#3 
Alias (byte) main::x#4 = (byte) main::x#7 (byte) main::x#5 
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#6 (word) draw_window::z#4 
Alias (byte) draw_window::x#2 = (byte) draw_window::x#3 
Alias (word) draw_window::q#1 = (word) draw_window::q#3 (word) draw_window::q#5 
Alias (byte) draw_window::x2#1 = (byte) draw_window::x2#7 (byte) draw_window::x2#2 
Alias (byte) draw_window::x1#2 = (byte) draw_window::x1#9 (byte) draw_window::x1#6 
Alias (byte) draw_window::y1#2 = (byte) draw_window::y1#7 (byte) draw_window::y1#5 
Alias (byte) draw_window::y2#11 = (byte) draw_window::y2#9 (byte) draw_window::y2#5 
Alias (byte) draw_window::y#0 = (byte~) draw_window::$16 
Alias (byte) draw_window::y#2 = (byte) draw_window::y#3 
Alias (byte) draw_window::x1#10 = (byte) draw_window::x1#3 (byte) draw_window::x1#7 (byte) draw_window::x1#4 
Alias (byte) draw_window::x2#12 = (byte) draw_window::x2#3 (byte) draw_window::x2#8 (byte) draw_window::x2#4 
Alias (byte) draw_window::y2#2 = (byte) draw_window::y2#6 (byte) draw_window::y2#3 (byte) draw_window::y2#7 
Alias (word) draw_window::q#2 = (word) draw_window::q#6 (word) draw_window::q#4 
Alias (byte) draw_window::y1#3 = (byte) draw_window::y1#8 (byte) draw_window::y1#6 (byte) draw_window::y1#4 
Alias (word) draw_window::z#1 = (byte~) draw_window::$18 
Alias (byte) draw_window::y3#0 = (byte~) draw_window::$21 
Alias (byte) draw_window::y3#2 = (byte) draw_window::y3#3 
Alias (byte) draw_window::x1#5 = (byte) draw_window::x1#8 
Alias (byte) draw_window::x2#11 = (byte) draw_window::x2#9 
Alias (byte) draw_window::y2#12 = (byte) draw_window::y2#4 
Alias (word) draw_window::z#2 = (byte~) draw_window::$23 
Alias (byte) draw_window::x3#0 = (byte~) draw_window::$24 
Alias (word) draw_window::z#5 = (word) draw_window::z#7 
Alias (byte) draw_window::x3#2 = (byte) draw_window::x3#3 
Alias (byte) draw_window::x2#10 = (byte) draw_window::x2#5 (byte) draw_window::x2#13 
Alias (byte) draw_window::y3#4 = (byte) draw_window::y3#6 (byte) draw_window::y3#5 
Alias (byte) draw_window::y2#10 = (byte) draw_window::y2#13 (byte) draw_window::y2#8 
Alias (byte) draw_window::x1#11 = (byte) draw_window::x1#13 (byte) draw_window::x1#12 
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
Identical Phi Values (byte) main::x#4 (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 (byte) draw_window::x2#1 (byte) draw_window::x2#6
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::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#11 (byte) draw_window::y2#1
Identical Phi Values (byte) draw_window::y2#2 (byte) draw_window::y2#11
Identical Phi Values (byte) draw_window::x1#10 (byte) draw_window::x1#2
Identical Phi Values (byte) draw_window::x2#12 (byte) draw_window::x2#1
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 (byte) draw_window::x2#10 (byte) draw_window::x2#11
Identical Phi Values (word) draw_window::z#5 (word) draw_window::z#2
Identical Phi Values (byte) draw_window::y3#4 (byte) draw_window::y3#2
Identical Phi Values (byte) draw_window::y2#10 (byte) draw_window::y2#12
Identical Phi Values (byte) draw_window::x1#11 (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
Identical Phi Values (byte) draw_window::y2#12 (byte) draw_window::y2#0
Identical Phi Values (byte) draw_window::x1#5 (byte) draw_window::x1#0
Identical Phi Values (byte) draw_window::x2#11 (byte) draw_window::x2#0
Successful SSA optimization Pass2IdenticalPhiElimination
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
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$3 [6] if((byte) main::x#2<(byte) $f) goto main::@2
Simple Condition (bool~) main::$8 [39] if((word) main::wait#2<(word) $88b8) goto main::@5
Simple Condition (bool~) textbox::$10 [71] if(*((byte*) textbox::text#12 + (byte) textbox::i#2)!=(byte) $20) goto textbox::@5
Simple Condition (bool~) textbox::$25 [77] if((byte) textbox::x#1!=(byte) textbox::x2#4) goto textbox::@17
Simple Condition (bool~) textbox::$22 [103] if((byte) textbox::y#1!=(byte) textbox::y2#4) goto textbox::@16
Simple Condition (bool~) textbox::$30 [109] if(*((byte*) textbox::text#12 + (byte) textbox::i#1)!=(byte) 0) goto textbox::@4
Simple Condition (bool~) textbox::$28 [116] if((byte) textbox::y#2!=(byte) textbox::y2#4) goto textbox::@18
Simple Condition (bool~) draw_window::$13 [129] if((byte) draw_window::x#2<(byte) draw_window::x2#0) goto draw_window::@3
Simple Condition (bool~) draw_window::$17 [145] if((byte) draw_window::y#2<(byte) draw_window::y2#0) goto draw_window::@9
Simple Condition (bool~) draw_window::$22 [171] if((byte) draw_window::y3#2<(byte) draw_window::y2#0) goto draw_window::@16
Simple Condition (bool~) draw_window::$25 [179] if((byte) draw_window::x3#2<(byte) draw_window::x2#0) goto draw_window::@19
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [63] (bool~) textbox::$7 ← ! (bool~) textbox::$6
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting || if()-condition to two if()s [62] (bool~) textbox::$6 ← (bool~) textbox::$4 || (bool~) textbox::$5
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting && if()-condition to two if()s [85] (bool~) textbox::$14 ← (bool~) textbox::$12 && (bool~) textbox::$13
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting ! if()-condition to reversed if() [96] (bool~) textbox::$20 ← ! (bool~) textbox::$19
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting && if()-condition to two if()s [95] (bool~) textbox::$19 ← (bool~) textbox::$16 && (bool~) textbox::$18
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting ! if()-condition to reversed if() [164] (bool~) draw_window::$11 ← ! (bool~) draw_window::$10
Successful SSA optimization Pass2ConditionalAndOrRewriting
Rewriting && if()-condition to two if()s [163] (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 [44] if(true) goto main::@13
Successful SSA optimization Pass2ConstantIfs
De-inlining pointer[w] to *(pointer+w)   [68] *((const byte*) screen#0 + (word~) textbox::$8) ← *((byte*) textbox::text#12 + (byte) textbox::i#2)
De-inlining pointer[w] to *(pointer+w)   [132] *((const byte*) screen#0 + (word~) draw_window::$14) ← (byte) $43
De-inlining pointer[w] to *(pointer+w)   [134] *((const byte*) screen#0 + (word~) draw_window::$15) ← (byte) $43
De-inlining pointer[w] to *(pointer+w)   [138] *((const byte*) screen#0 + (word~) draw_window::$2) ← (byte) $55
De-inlining pointer[w] to *(pointer+w)   [140] *((const byte*) screen#0 + (word~) draw_window::$3) ← (byte) $49
De-inlining pointer[w] to *(pointer+w)   [150] *((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::$20) ← (byte) $42
De-inlining pointer[w] to *(pointer+w)   [156] *((const byte*) screen#0 + (word~) draw_window::$4) ← (byte) $4a
De-inlining pointer[w] to *(pointer+w)   [158] *((const byte*) screen#0 + (word~) draw_window::$5) ← (byte) $4b
De-inlining pointer[w] to *(pointer+w)   [182] *((const byte*) screen#0 + (word~) draw_window::$26) ← (byte) $20
Successful SSA optimization Pass2DeInlineWordDerefIdx
Removing unused block main::@return
Successful SSA optimization Pass2EliminateUnusedBlocks
Successful SSA optimization Pass2LoopHeadConstantIdentification
Successful SSA optimization Pass2LoopHeadConstantIdentification
Alias (byte) main::x#1 = (byte) main::x#2 
Alias (byte) main::x#11 = (byte) main::x#13 (byte) main::x#8 
Alias (word) main::wait#1 = (word) main::wait#2 
Alias (byte) main::x#10 = (byte) main::x#12 
Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte) main::x#10 (byte) main::x#11
Identical Phi Values (word) main::wait#5 (const word) main::wait#0
Identical Phi Values (byte) main::x#14 (const byte) main::x#0
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values (byte) main::x#9 (byte) main::x#11
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) textbox::$4 [31] if((byte) textbox::x#0==(byte) textbox::x2#4) goto textbox::@return
Simple Condition (bool~) textbox::$12 [46] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) $20) goto textbox::@26
Simple Condition (bool~) textbox::$16 [53] if((byte~) textbox::$15>=(byte) textbox::x2#4) goto textbox::@27
Simple Condition (bool~) draw_window::$7 [102] if((byte~) draw_window::$6>(byte) 1) goto draw_window::@27
Simple Condition (bool~) textbox::$5 [117] if((byte) textbox::y#0==(byte) textbox::y2#4) goto textbox::@return
Simple Condition (bool~) textbox::$13 [118] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) 0) goto textbox::@7
Simple Condition (bool~) textbox::$18 [119] if((byte) textbox::c#2<(byte~) textbox::$17) goto textbox::@12
Simple Condition (bool~) draw_window::$9 [120] if((byte~) draw_window::$8>(byte) 1) goto draw_window::@14
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [46] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@8
Negating conditional jump and destination [53] if((byte~) textbox::$15<(byte) textbox::x2#4) goto textbox::@5
Negating conditional jump and destination [102] if((byte~) draw_window::$6<=(byte) 1) goto draw_window::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
if() condition always true - replacing block destination [122] if((const word) main::wait#0<(word) $88b8) goto main::@5
if() condition always true - replacing block destination [124] if((const byte) main::x#0<(byte) $f) goto main::@2
Successful SSA optimization Pass2ConstantIfs
Rewriting conditional comparison [102] if((byte~) draw_window::$6<=(byte) 1) goto draw_window::@return
Rewriting conditional comparison [120] if((byte~) draw_window::$8>(byte) 1) goto draw_window::@14
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::@14
Adding number conversion cast (unumber) 1 in if((byte~) draw_window::$8>=(unumber)(byte) 1+(number) 1) goto draw_window::@14
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[73] (word) draw_window::z#1 ← (byte) draw_window::y#2 * (byte) $28
Rewriting multiplication to use shift and addition[93] (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::@19(between main::@1 and main::@2)
Added new block during phi lifting main::@20(between main::@4 and main::@5)
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)
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::@1_1
Adding NOP phi() at start of main::@15
Adding NOP phi() at start of main::@4_1
Adding NOP phi() at start of main::@3
Adding NOP phi() at start of main::@16
Adding NOP phi() at start of main::@17
Adding NOP phi() at start of main::@18
Adding NOP phi() at start of main::@13
CALL GRAPH
Calls in [] to main:3 
Calls in [main] to textbox:18 textbox:27 textbox:29 textbox:31 
Calls in [textbox] to draw_window:41 

Created 23 initial phi equivalence classes
Coalesced [14] textbox::x1#17 ← textbox::x1#0
Coalesced [15] textbox::y1#6 ← textbox::y1#0
Coalesced [16] textbox::x2#17 ← textbox::x2#0
Coalesced [17] textbox::y2#17 ← textbox::y2#0
Coalesced [34] main::x#15 ← main::x#1
Coalesced [35] main::wait#6 ← main::wait#1
Coalesced [49] textbox::z#11 ← textbox::z#0
Coalesced [50] textbox::x#14 ← textbox::x#0
Coalesced [51] textbox::y#15 ← textbox::y#0
Coalesced [58] textbox::ls#4 ← textbox::ls#0
Coalesced [77] textbox::z#15 ← textbox::z#2
Coalesced [78] textbox::x#18 ← textbox::x#12
Coalesced [79] textbox::y#19 ← textbox::y#2
Coalesced [82] textbox::z#10 ← textbox::z#4
Coalesced [83] textbox::x#13 ← textbox::x#7
Coalesced [84] textbox::i#13 ← textbox::i#1
Coalesced [85] textbox::y#14 ← textbox::y#11
Coalesced [86] textbox::z#16 ← textbox::z#5
Coalesced [87] textbox::x#19 ← textbox::x#1
Coalesced [88] textbox::y#20 ← textbox::y#5
Not coalescing [94] textbox::x#15 ← textbox::x1#4
Coalesced [95] textbox::y#16 ← textbox::y#1
Coalesced [96] textbox::z#12 ← textbox::z#1
Coalesced [97] textbox::x#17 ← textbox::x#10
Coalesced (already) [98] textbox::y#18 ← textbox::y#12
Coalesced (already) [99] textbox::z#14 ← textbox::z#3
Coalesced [102] textbox::ls#5 ← textbox::ls#1
Coalesced [103] textbox::c#5 ← textbox::c#1
Coalesced (already) [104] textbox::x#16 ← textbox::x#10
Coalesced (already) [105] textbox::y#17 ← textbox::y#12
Coalesced (already) [106] textbox::z#13 ← textbox::z#3
Coalesced [114] draw_window::x#4 ← draw_window::x#0
Coalesced [124] draw_window::y#4 ← draw_window::y#0
Coalesced [139] draw_window::y3#7 ← draw_window::y3#0
Coalesced [146] draw_window::x3#4 ← draw_window::x3#0
Coalesced [150] draw_window::y3#8 ← draw_window::y3#1
Coalesced [155] draw_window::x3#5 ← draw_window::x3#1
Coalesced [166] draw_window::y#5 ← draw_window::y#1
Coalesced [174] draw_window::x#5 ← 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::@1_1
Culled Empty Block (label) main::@15
Culled Empty Block (label) main::@4_1
Culled Empty Block (label) main::@18
Culled Empty Block (label) main::@19
Culled Empty Block (label) main::@20
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
Renumbering block @7 to @1
Renumbering block main::@13 to main::@7
Renumbering block main::@16 to main::@8
Renumbering block main::@17 to main::@9
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::@8 to draw_window::@4
Renumbering block draw_window::@9 to draw_window::@5
Renumbering block draw_window::@10 to draw_window::@6
Renumbering block draw_window::@14 to draw_window::@7
Renumbering block draw_window::@15 to draw_window::@8
Renumbering block draw_window::@16 to draw_window::@9
Renumbering block draw_window::@18 to draw_window::@10
Renumbering block draw_window::@19 to draw_window::@11
Renumbering block draw_window::@20 to draw_window::@12
Renumbering block draw_window::@27 to draw_window::@13
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::@3
Adding NOP phi() at start of main::@8
Adding NOP phi() at start of main::@9
Adding NOP phi() at start of main::@7

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::@2
main::@2: scope:[main]  from main main::@1
  [5] (byte) main::x#11 ← phi( main::@1/(byte) main::x#1 main/(byte) 0 )
  [6] (byte~) main::$4 ← (byte) main::x#11 + (byte) main::x#11
  [7] (byte) textbox::x2#0 ← (byte~) main::$4 + (byte) 1
  [8] (byte) textbox::y2#0 ← (byte) main::x#11 + (byte) $a
  [9] (byte) textbox::x1#0 ← (byte) main::x#11
  [10] (byte) textbox::y1#0 ← (byte) main::x#11
  [11] call textbox 
  to:main::@5
main::@5: scope:[main]  from main::@2 main::@4
  [12] (word) main::wait#4 ← phi( main::@4/(word) main::wait#1 main::@2/(byte) 0 )
  [13] (word) main::wait#1 ← ++ (word) main::wait#4
  to:main::@4
main::@4: scope:[main]  from main::@5
  [14] if((word) main::wait#1<(word) $88b8) goto main::@5
  to:main::@6
main::@6: scope:[main]  from main::@4
  [15] (byte) main::x#1 ← (byte) main::x#11 + (byte) 2
  to:main::@1
main::@1: scope:[main]  from main::@6
  [16] if((byte) main::x#1<(byte) $f) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@1
  [17] phi()
  [18] call textbox 
  to:main::@8
main::@8: scope:[main]  from main::@3
  [19] phi()
  [20] call textbox 
  to:main::@9
main::@9: scope:[main]  from main::@8
  [21] phi()
  [22] call textbox 
  to:main::@7
main::@7: scope:[main]  from main::@7 main::@9
  [23] phi()
  to:main::@7
textbox: scope:[textbox]  from main::@2 main::@3 main::@8 main::@9
  [24] (byte*) textbox::text#12 ← phi( main::@8/(const byte[]) text#0 main::@9/(const byte[]) text#0 main::@2/(const byte[]) text2#0 main::@3/(const byte[]) text#0 )
  [24] (byte) textbox::y2#4 ← phi( main::@8/(byte) 9 main::@9/(byte) $18 main::@2/(byte) textbox::y2#0 main::@3/(byte) $18 )
  [24] (byte) textbox::x2#4 ← phi( main::@8/(byte) $25 main::@9/(byte) $27 main::@2/(byte) textbox::x2#0 main::@3/(byte) $14 )
  [24] (byte) textbox::y1#4 ← phi( main::@8/(byte) 3 main::@9/(byte) 8 main::@2/(byte) textbox::y1#0 main::@3/(byte) $c )
  [24] (byte) textbox::x1#4 ← phi( main::@8/(byte) 3 main::@9/(byte) $1e main::@2/(byte) textbox::x1#0 main::@3/(byte) 0 )
  [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::@2
  [78] (byte) draw_window::x#2 ← phi( draw_window/(byte) draw_window::x#0 draw_window::@2/(byte) draw_window::x#1 )
  [79] if((byte) draw_window::x#2<(byte) draw_window::x2#0) goto draw_window::@2
  to:draw_window::@3
draw_window::@3: scope:[draw_window]  from draw_window::@1
  [80] (word~) draw_window::$2 ← (word) draw_window::z#0 + (byte) draw_window::x1#0
  [81] (byte*~) draw_window::$29 ← (const byte*) screen#0 + (word~) draw_window::$2
  [82] *((byte*~) draw_window::$29) ← (byte) $55
  [83] (word~) draw_window::$3 ← (word) draw_window::z#0 + (byte) draw_window::x2#0
  [84] (byte*~) draw_window::$30 ← (const byte*) screen#0 + (word~) draw_window::$3
  [85] *((byte*~) draw_window::$30) ← (byte) $49
  [86] (byte) draw_window::y#0 ← (byte) draw_window::y1#0 + (byte) 1
  to:draw_window::@4
draw_window::@4: scope:[draw_window]  from draw_window::@3 draw_window::@5
  [87] (byte) draw_window::y#2 ← phi( draw_window::@3/(byte) draw_window::y#0 draw_window::@5/(byte) draw_window::y#1 )
  [88] if((byte) draw_window::y#2<(byte) draw_window::y2#0) goto draw_window::@5
  to:draw_window::@6
draw_window::@6: scope:[draw_window]  from draw_window::@4
  [89] (word~) draw_window::$4 ← (word) draw_window::q#0 + (byte) draw_window::x1#0
  [90] (byte*~) draw_window::$33 ← (const byte*) screen#0 + (word~) draw_window::$4
  [91] *((byte*~) draw_window::$33) ← (byte) $4a
  [92] (word~) draw_window::$5 ← (word) draw_window::q#0 + (byte) draw_window::x2#0
  [93] (byte*~) draw_window::$34 ← (const byte*) screen#0 + (word~) draw_window::$5
  [94] *((byte*~) draw_window::$34) ← (byte) $4b
  [95] (byte~) draw_window::$6 ← (byte) draw_window::x2#0 - (byte) draw_window::x1#0
  [96] (byte~) draw_window::$8 ← (byte) draw_window::y2#0 - (byte) draw_window::y1#0
  [97] if((byte~) draw_window::$6<(byte) 1+(byte) 1) goto draw_window::@return
  to:draw_window::@13
draw_window::@13: scope:[draw_window]  from draw_window::@6
  [98] if((byte~) draw_window::$8>=(byte) 1+(byte) 1) goto draw_window::@7
  to:draw_window::@return
draw_window::@return: scope:[draw_window]  from draw_window::@13 draw_window::@6 draw_window::@8
  [99] return 
  to:@return
draw_window::@7: scope:[draw_window]  from draw_window::@13
  [100] (byte) draw_window::y3#0 ← (byte) draw_window::y1#0 + (byte) 1
  to:draw_window::@8
draw_window::@8: scope:[draw_window]  from draw_window::@12 draw_window::@7
  [101] (byte) draw_window::y3#2 ← phi( draw_window::@7/(byte) draw_window::y3#0 draw_window::@12/(byte) draw_window::y3#1 )
  [102] if((byte) draw_window::y3#2<(byte) draw_window::y2#0) goto draw_window::@9
  to:draw_window::@return
draw_window::@9: scope:[draw_window]  from draw_window::@8
  [103] (byte) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2
  [104] (byte) draw_window::$46 ← (byte) draw_window::$45 + (byte) draw_window::y3#2
  [105] (word) draw_window::z#2 ← (byte) draw_window::$46 << (byte) 3
  [106] (byte) draw_window::x3#0 ← (byte) draw_window::x1#0 + (byte) 1
  to:draw_window::@10
draw_window::@10: scope:[draw_window]  from draw_window::@11 draw_window::@9
  [107] (byte) draw_window::x3#2 ← phi( draw_window::@9/(byte) draw_window::x3#0 draw_window::@11/(byte) draw_window::x3#1 )
  [108] if((byte) draw_window::x3#2<(byte) draw_window::x2#0) goto draw_window::@11
  to:draw_window::@12
draw_window::@12: scope:[draw_window]  from draw_window::@10
  [109] (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#2
  to:draw_window::@8
draw_window::@11: scope:[draw_window]  from draw_window::@10
  [110] (word~) draw_window::$26 ← (word) draw_window::z#2 + (byte) draw_window::x3#2
  [111] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$26
  [112] *((byte*~) draw_window::$35) ← (byte) $20
  [113] (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2
  to:draw_window::@10
draw_window::@5: scope:[draw_window]  from draw_window::@4
  [114] (byte) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2
  [115] (byte) draw_window::$43 ← (byte) draw_window::$42 + (byte) draw_window::y#2
  [116] (word) draw_window::z#1 ← (byte) draw_window::$43 << (byte) 3
  [117] (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x1#0
  [118] (byte*~) draw_window::$31 ← (const byte*) screen#0 + (word~) draw_window::$19
  [119] *((byte*~) draw_window::$31) ← (byte) $42
  [120] (word~) draw_window::$20 ← (word) draw_window::z#1 + (byte) draw_window::x2#0
  [121] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$20
  [122] *((byte*~) draw_window::$32) ← (byte) $42
  [123] (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2
  to:draw_window::@4
draw_window::@2: scope:[draw_window]  from draw_window::@1
  [124] (word~) draw_window::$14 ← (word) draw_window::z#0 + (byte) draw_window::x#2
  [125] (byte*~) draw_window::$27 ← (const byte*) screen#0 + (word~) draw_window::$14
  [126] *((byte*~) draw_window::$27) ← (byte) $43
  [127] (word~) draw_window::$15 ← (word) draw_window::q#0 + (byte) draw_window::x#2
  [128] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$15
  [129] *((byte*~) draw_window::$28) ← (byte) $43
  [130] (byte) draw_window::x#1 ← ++ (byte) draw_window::x#2
  to:draw_window::@1


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::$14 202.0
(word~) draw_window::$15 202.0
(word~) draw_window::$19 202.0
(word~) draw_window::$2 4.0
(word~) draw_window::$20 202.0
(word~) draw_window::$26 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 202.0
(byte) draw_window::x#2 63.375
(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 2002.0
(byte) draw_window::x3#2 821.0
(byte) draw_window::y
(byte) draw_window::y#0 4.0
(byte) draw_window::y#1 202.0
(byte) draw_window::y#2 46.090909090909086
(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 202.0
(byte) draw_window::y3#2 42.24999999999999
(word) draw_window::z
(word) draw_window::z#0 6.294117647058823
(word) draw_window::z#1 75.75
(word) draw_window::z#2 137.75
(void()) main()
(byte~) main::$4 22.0
(word) main::wait
(word) main::wait#1 151.5
(word) main::wait#4 202.0
(byte) main::x
(byte) main::x#1 16.5
(byte) main::x#11 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#11 main::x#1 ]
[ main::wait#4 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::$4 to zero page equivalence class [ main::$4 ]
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::$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::$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::$26 to zero page equivalence class [ draw_window::$26 ]
Added variable draw_window::$35 to zero page equivalence class [ draw_window::$35 ]
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::$19 to zero page equivalence class [ draw_window::$19 ]
Added variable draw_window::$31 to zero page equivalence class [ draw_window::$31 ]
Added variable draw_window::$20 to zero page equivalence class [ draw_window::$20 ]
Added variable draw_window::$32 to zero page equivalence class [ draw_window::$32 ]
Added variable draw_window::$14 to zero page equivalence class [ draw_window::$14 ]
Added variable draw_window::$27 to zero page equivalence class [ draw_window::$27 ]
Added variable draw_window::$15 to zero page equivalence class [ draw_window::$15 ]
Added variable draw_window::$28 to zero page equivalence class [ draw_window::$28 ]
Complete equivalence classes
[ main::x#11 main::x#1 ]
[ main::wait#4 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::$4 ]
[ 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::$2 ]
[ draw_window::$29 ]
[ draw_window::$3 ]
[ draw_window::$30 ]
[ 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::$26 ]
[ draw_window::$35 ]
[ draw_window::$42 ]
[ draw_window::$43 ]
[ draw_window::z#1 ]
[ draw_window::$19 ]
[ draw_window::$31 ]
[ draw_window::$20 ]
[ draw_window::$32 ]
[ draw_window::$14 ]
[ draw_window::$27 ]
[ draw_window::$15 ]
[ draw_window::$28 ]
Allocated zp ZP_BYTE:2 [ main::x#11 main::x#1 ]
Allocated zp ZP_WORD:3 [ main::wait#4 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::$4 ]
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::$2 ]
Allocated zp ZP_WORD:49 [ draw_window::$29 ]
Allocated zp ZP_WORD:51 [ draw_window::$3 ]
Allocated zp ZP_WORD:53 [ draw_window::$30 ]
Allocated zp ZP_WORD:55 [ draw_window::$4 ]
Allocated zp ZP_WORD:57 [ draw_window::$33 ]
Allocated zp ZP_WORD:59 [ draw_window::$5 ]
Allocated zp ZP_WORD:61 [ draw_window::$34 ]
Allocated zp ZP_BYTE:63 [ draw_window::$6 ]
Allocated zp ZP_BYTE:64 [ draw_window::$8 ]
Allocated zp ZP_BYTE:65 [ draw_window::$45 ]
Allocated zp ZP_BYTE:66 [ draw_window::$46 ]
Allocated zp ZP_WORD:67 [ draw_window::z#2 ]
Allocated zp ZP_WORD:69 [ draw_window::$26 ]
Allocated zp ZP_WORD:71 [ draw_window::$35 ]
Allocated zp ZP_BYTE:73 [ draw_window::$42 ]
Allocated zp ZP_BYTE:74 [ draw_window::$43 ]
Allocated zp ZP_WORD:75 [ draw_window::z#1 ]
Allocated zp ZP_WORD:77 [ draw_window::$19 ]
Allocated zp ZP_WORD:79 [ draw_window::$31 ]
Allocated zp ZP_WORD:81 [ draw_window::$20 ]
Allocated zp ZP_WORD:83 [ draw_window::$32 ]
Allocated zp ZP_WORD:85 [ draw_window::$14 ]
Allocated zp ZP_WORD:87 [ draw_window::$27 ]
Allocated zp ZP_WORD:89 [ draw_window::$15 ]
Allocated zp ZP_WORD:91 [ draw_window::$28 ]

INITIAL ASM
Target platform is c64basic
  // File Comments
/* Textbox routine with word wrap for KickC by Scan/Desire */
  // 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 _4 = $16
    .label wait = 3
    .label x = 2
    // [5] phi from main to main::@2 [phi:main->main::@2]
  b2_from_main:
    // [5] phi (byte) main::x#11 = (byte) 0 [phi:main->main::@2#0] -- vbuz1=vbuc1 
    lda #0
    sta.z x
    jmp b2
    // [5] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
  b2_from_b1:
    // [5] phi (byte) main::x#11 = (byte) main::x#1 [phi:main::@1->main::@2#0] -- register_copy 
    jmp b2
    // main::@2
  b2:
    // [6] (byte~) main::$4 ← (byte) main::x#11 + (byte) main::x#11 -- vbuz1=vbuz2_plus_vbuz2 
    lda.z x
    asl
    sta.z _4
    // [7] (byte) textbox::x2#0 ← (byte~) main::$4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z _4
    iny
    sty.z textbox.x2
    // [8] (byte) textbox::y2#0 ← (byte) main::x#11 + (byte) $a -- vbuz1=vbuz2_plus_vbuc1 
    lax.z x
    axs #-[$a]
    stx.z textbox.y2
    // [9] (byte) textbox::x1#0 ← (byte) main::x#11 -- vbuz1=vbuz2 
    lda.z x
    sta.z textbox.x1
    // [10] (byte) textbox::y1#0 ← (byte) main::x#11 -- vbuz1=vbuz2 
    lda.z x
    sta.z textbox.y1
    // [11] call textbox 
    // [24] phi from main::@2 to textbox [phi:main::@2->textbox]
  textbox_from_b2:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text2#0 [phi:main::@2->textbox#0] -- pbuz1=pbuc1 
    lda #<text2
    sta.z textbox.text
    lda #>text2
    sta.z textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) textbox::y2#0 [phi:main::@2->textbox#1] -- register_copy 
    // [24] phi (byte) textbox::x2#4 = (byte) textbox::x2#0 [phi:main::@2->textbox#2] -- register_copy 
    // [24] phi (byte) textbox::y1#4 = (byte) textbox::y1#0 [phi:main::@2->textbox#3] -- register_copy 
    // [24] phi (byte) textbox::x1#4 = (byte) textbox::x1#0 [phi:main::@2->textbox#4] -- register_copy 
    jsr textbox
    // [12] phi from main::@2 to main::@5 [phi:main::@2->main::@5]
  b5_from_b2:
    // [12] phi (word) main::wait#4 = (byte) 0 [phi:main::@2->main::@5#0] -- vwuz1=vbuc1 
    lda #<0
    sta.z wait
    lda #>0
    sta.z wait+1
    jmp b5
    // [12] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
  b5_from_b4:
    // [12] phi (word) main::wait#4 = (word) main::wait#1 [phi:main::@4->main::@5#0] -- register_copy 
    jmp b5
    // main::@5
  b5:
    // [13] (word) main::wait#1 ← ++ (word) main::wait#4 -- vwuz1=_inc_vwuz1 
    inc.z wait
    bne !+
    inc.z wait+1
  !:
    jmp b4
    // main::@4
  b4:
    // [14] if((word) main::wait#1<(word) $88b8) goto main::@5 -- vwuz1_lt_vwuc1_then_la1 
    lda.z wait+1
    cmp #>$88b8
    bcc b5_from_b4
    bne !+
    lda.z wait
    cmp #<$88b8
    bcc b5_from_b4
  !:
    jmp b6
    // main::@6
  b6:
    // [15] (byte) main::x#1 ← (byte) main::x#11 + (byte) 2 -- vbuz1=vbuz1_plus_2 
    lda.z x
    clc
    adc #2
    sta.z x
    jmp b1
    // main::@1
  b1:
    // [16] if((byte) main::x#1<(byte) $f) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 
    lda.z x
    cmp #$f
    bcc b2_from_b1
    // [17] phi from main::@1 to main::@3 [phi:main::@1->main::@3]
  b3_from_b1:
    jmp b3
    // main::@3
  b3:
    // [18] call textbox 
    // [24] phi from main::@3 to textbox [phi:main::@3->textbox]
  textbox_from_b3:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@3->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta.z textbox.text
    lda #>text
    sta.z textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) $18 [phi:main::@3->textbox#1] -- vbuz1=vbuc1 
    lda #$18
    sta.z textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $14 [phi:main::@3->textbox#2] -- vbuz1=vbuc1 
    lda #$14
    sta.z textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) $c [phi:main::@3->textbox#3] -- vbuz1=vbuc1 
    lda #$c
    sta.z textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) 0 [phi:main::@3->textbox#4] -- vbuz1=vbuc1 
    lda #0
    sta.z textbox.x1
    jsr textbox
    // [19] phi from main::@3 to main::@8 [phi:main::@3->main::@8]
  b8_from_b3:
    jmp b8
    // main::@8
  b8:
    // [20] call textbox 
    // [24] phi from main::@8 to textbox [phi:main::@8->textbox]
  textbox_from_b8:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@8->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta.z textbox.text
    lda #>text
    sta.z textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) 9 [phi:main::@8->textbox#1] -- vbuz1=vbuc1 
    lda #9
    sta.z textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $25 [phi:main::@8->textbox#2] -- vbuz1=vbuc1 
    lda #$25
    sta.z textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) 3 [phi:main::@8->textbox#3] -- vbuz1=vbuc1 
    lda #3
    sta.z textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) 3 [phi:main::@8->textbox#4] -- vbuz1=vbuc1 
    lda #3
    sta.z textbox.x1
    jsr textbox
    // [21] phi from main::@8 to main::@9 [phi:main::@8->main::@9]
  b9_from_b8:
    jmp b9
    // main::@9
  b9:
    // [22] call textbox 
    // [24] phi from main::@9 to textbox [phi:main::@9->textbox]
  textbox_from_b9:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@9->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta.z textbox.text
    lda #>text
    sta.z textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) $18 [phi:main::@9->textbox#1] -- vbuz1=vbuc1 
    lda #$18
    sta.z textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $27 [phi:main::@9->textbox#2] -- vbuz1=vbuc1 
    lda #$27
    sta.z textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) 8 [phi:main::@9->textbox#3] -- vbuz1=vbuc1 
    lda #8
    sta.z textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) $1e [phi:main::@9->textbox#4] -- vbuz1=vbuc1 
    lda #$1e
    sta.z textbox.x1
    jsr textbox
    // [23] phi from main::@7 main::@9 to main::@7 [phi:main::@7/main::@9->main::@7]
  b7_from_b7:
  b7_from_b9:
    jmp b7
    // main::@7
  b7:
    jmp b7_from_b7
}
  // 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.z x1
    sta.z draw_window.x1
    // [26] (byte) draw_window::y1#0 ← (byte) textbox::y1#4 -- vbuz1=vbuz2 
    lda.z y1
    sta.z draw_window.y1
    // [27] (byte) draw_window::x2#0 ← (byte) textbox::x2#4 -- vbuz1=vbuz2 
    lda.z x2
    sta.z draw_window.x2
    // [28] (byte) draw_window::y2#0 ← (byte) textbox::y2#4 -- vbuz1=vbuz2 
    lda.z y2
    sta.z 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.z y1
    iny
    sty.z y
    // [31] (byte) textbox::x#0 ← (byte) textbox::x1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z x1
    iny
    sty.z x
    // [32] (byte) textbox::$32 ← (byte) textbox::y#0 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y
    asl
    asl
    sta.z _32
    // [33] (byte) textbox::$33 ← (byte) textbox::$32 + (byte) textbox::y#0 -- vbuz1=vbuz2_plus_vbuz3 
    lda.z _32
    clc
    adc.z y
    sta.z _33
    // [34] (word) textbox::z#0 ← (byte) textbox::$33 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda.z _33
    sta.z z
    lda #0
    sta.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    // [35] if((byte) textbox::x#0==(byte) textbox::x2#4) goto textbox::@return -- vbuz1_eq_vbuz2_then_la1 
    lda.z x
    cmp.z 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.z y
    cmp.z 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.z 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.z x
    clc
    adc.z z
    sta.z _8
    lda #0
    adc.z z+1
    sta.z _8+1
    // [39] (byte*~) textbox::$31 ← (const byte*) screen#0 + (word~) textbox::$8 -- pbuz1=pbuc1_plus_vwuz2 
    lda.z _8
    clc
    adc #<screen
    sta.z _31
    lda.z _8+1
    adc #>screen
    sta.z _31+1
    // [40] *((byte*~) textbox::$31) ← *((byte*) textbox::text#12 + (byte) textbox::i#2) -- _deref_pbuz1=pbuz2_derefidx_vbuz3 
    ldy.z 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.z 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.z i
    iny
    sty.z 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.z 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.z 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.z 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.z c
    clc
    adc.z x
    sta.z _15
    // [47] (byte~) textbox::$17 ← (byte) textbox::x2#4 - (byte) textbox::x1#4 -- vbuz1=vbuz2_minus_vbuz3 
    lda.z x2
    sec
    sbc.z x1
    sta.z _17
    // [48] if((byte~) textbox::$15<(byte) textbox::x2#4) goto textbox::@2 -- vbuz1_lt_vbuz2_then_la1 
    lda.z _15
    cmp.z 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.z c
    cmp.z _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.z i
    // [52] (byte) textbox::x#1 ← ++ (byte) textbox::x#5 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [53] if((byte) textbox::x#1!=(byte) textbox::x2#4) goto textbox::@8 -- vbuz1_neq_vbuz2_then_la1 
    lda.z x
    cmp.z 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.z x1
    iny
    sty.z x
    // [55] (byte) textbox::y#2 ← ++ (byte) textbox::y#5 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [56] if((byte) textbox::y#2!=(byte) textbox::y2#4) goto textbox::@9 -- vbuz1_neq_vbuz2_then_la1 
    lda.z y
    cmp.z 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.z y
    asl
    asl
    sta.z _38
    // [59] (byte) textbox::$39 ← (byte) textbox::$38 + (byte) textbox::y#2 -- vbuz1=vbuz2_plus_vbuz3 
    lda.z _38
    clc
    adc.z y
    sta.z _39
    // [60] (word) textbox::z#2 ← (byte) textbox::$39 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda.z _39
    sta.z z
    lda #0
    sta.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z 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.z 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.z y
    // [64] if((byte) textbox::y#1!=(byte) textbox::y2#4) goto textbox::@7 -- vbuz1_neq_vbuz2_then_la1 
    lda.z y
    cmp.z y2
    bne b7
    jmp breturn
    // textbox::@7
  b7:
    // [65] (byte) textbox::$35 ← (byte) textbox::y#1 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y
    asl
    asl
    sta.z _35
    // [66] (byte) textbox::$36 ← (byte) textbox::$35 + (byte) textbox::y#1 -- vbuz1=vbuz2_plus_vbuz3 
    lda.z _35
    clc
    adc.z y
    sta.z _36
    // [67] (word) textbox::z#1 ← (byte) textbox::$36 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda.z _36
    sta.z z
    lda #0
    sta.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    // [68] (byte~) textbox::x#15 ← (byte) textbox::x1#4 -- vbuz1=vbuz2 
    lda.z x1
    sta.z x
    jmp b2_from_b7
    // textbox::@4
  b4:
    // [69] (byte) textbox::ls#1 ← ++ (byte) textbox::ls#2 -- vbuz1=_inc_vbuz1 
    inc.z ls
    // [70] (byte) textbox::c#1 ← ++ (byte) textbox::c#2 -- vbuz1=_inc_vbuz1 
    inc.z 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 = $2f
    .label _3 = $33
    .label _4 = $37
    .label _5 = $3b
    .label _6 = $3f
    .label _8 = $40
    .label _14 = $55
    .label _15 = $59
    .label _19 = $4d
    .label _20 = $51
    .label _26 = $45
    .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 = $4b
    .label y3 = $14
    .label z_2 = $43
    .label x3 = $15
    .label _27 = $57
    .label _28 = $5b
    .label _29 = $31
    .label _30 = $35
    .label _31 = $4f
    .label _32 = $53
    .label _33 = $39
    .label _34 = $3d
    .label _35 = $47
    .label _36 = $27
    .label _37 = $28
    .label _39 = $2b
    .label _40 = $2c
    .label _42 = $49
    .label _43 = $4a
    .label _45 = $41
    .label _46 = $42
    // [71] (byte) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y1
    asl
    asl
    sta.z _36
    // [72] (byte) draw_window::$37 ← (byte) draw_window::$36 + (byte) draw_window::y1#0 -- vbuz1=vbuz2_plus_vbuz3 
    lda.z _36
    clc
    adc.z y1
    sta.z _37
    // [73] (word) draw_window::z#0 ← (byte) draw_window::$37 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda.z _37
    sta.z z
    lda #0
    sta.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    // [74] (byte) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y2
    asl
    asl
    sta.z _39
    // [75] (byte) draw_window::$40 ← (byte) draw_window::$39 + (byte) draw_window::y2#0 -- vbuz1=vbuz2_plus_vbuz3 
    lda.z _39
    clc
    adc.z y2
    sta.z _40
    // [76] (word) draw_window::q#0 ← (byte) draw_window::$40 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda.z _40
    sta.z q
    lda #0
    sta.z q+1
    asl.z q
    rol.z q+1
    asl.z q
    rol.z q+1
    asl.z q
    rol.z q+1
    // [77] (byte) draw_window::x#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z x1
    iny
    sty.z x
    // [78] phi from draw_window draw_window::@2 to draw_window::@1 [phi:draw_window/draw_window::@2->draw_window::@1]
  b1_from_draw_window:
  b1_from_b2:
    // [78] phi (byte) draw_window::x#2 = (byte) draw_window::x#0 [phi:draw_window/draw_window::@2->draw_window::@1#0] -- register_copy 
    jmp b1
  // draw horizontal lines
    // draw_window::@1
  b1:
    // [79] if((byte) draw_window::x#2<(byte) draw_window::x2#0) goto draw_window::@2 -- vbuz1_lt_vbuz2_then_la1 
    lda.z x
    cmp.z x2
    bcc b2
    jmp b3
    // draw_window::@3
  b3:
    // [80] (word~) draw_window::$2 ← (word) draw_window::z#0 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x1
    clc
    adc.z z
    sta.z _2
    lda #0
    adc.z z+1
    sta.z _2+1
    // [81] (byte*~) draw_window::$29 ← (const byte*) screen#0 + (word~) draw_window::$2 -- pbuz1=pbuc1_plus_vwuz2 
    lda.z _2
    clc
    adc #<screen
    sta.z _29
    lda.z _2+1
    adc #>screen
    sta.z _29+1
    // [82] *((byte*~) draw_window::$29) ← (byte) $55 -- _deref_pbuz1=vbuc1 
    // draw upper corners
    lda #$55
    ldy #0
    sta (_29),y
    // [83] (word~) draw_window::$3 ← (word) draw_window::z#0 + (byte) draw_window::x2#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x2
    clc
    adc.z z
    sta.z _3
    lda #0
    adc.z z+1
    sta.z _3+1
    // [84] (byte*~) draw_window::$30 ← (const byte*) screen#0 + (word~) draw_window::$3 -- pbuz1=pbuc1_plus_vwuz2 
    lda.z _3
    clc
    adc #<screen
    sta.z _30
    lda.z _3+1
    adc #>screen
    sta.z _30+1
    // [85] *((byte*~) draw_window::$30) ← (byte) $49 -- _deref_pbuz1=vbuc1 
    lda #$49
    ldy #0
    sta (_30),y
    // [86] (byte) draw_window::y#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z y1
    iny
    sty.z y
    // [87] phi from draw_window::@3 draw_window::@5 to draw_window::@4 [phi:draw_window::@3/draw_window::@5->draw_window::@4]
  b4_from_b3:
  b4_from_b5:
    // [87] phi (byte) draw_window::y#2 = (byte) draw_window::y#0 [phi:draw_window::@3/draw_window::@5->draw_window::@4#0] -- register_copy 
    jmp b4
  // draw vertical lines
    // draw_window::@4
  b4:
    // [88] if((byte) draw_window::y#2<(byte) draw_window::y2#0) goto draw_window::@5 -- vbuz1_lt_vbuz2_then_la1 
    lda.z y
    cmp.z y2
    bcc b5
    jmp b6
    // draw_window::@6
  b6:
    // [89] (word~) draw_window::$4 ← (word) draw_window::q#0 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x1
    clc
    adc.z q
    sta.z _4
    lda #0
    adc.z q+1
    sta.z _4+1
    // [90] (byte*~) draw_window::$33 ← (const byte*) screen#0 + (word~) draw_window::$4 -- pbuz1=pbuc1_plus_vwuz2 
    lda.z _4
    clc
    adc #<screen
    sta.z _33
    lda.z _4+1
    adc #>screen
    sta.z _33+1
    // [91] *((byte*~) draw_window::$33) ← (byte) $4a -- _deref_pbuz1=vbuc1 
    // draw lower corners
    lda #$4a
    ldy #0
    sta (_33),y
    // [92] (word~) draw_window::$5 ← (word) draw_window::q#0 + (byte) draw_window::x2#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x2
    clc
    adc.z q
    sta.z _5
    lda #0
    adc.z q+1
    sta.z _5+1
    // [93] (byte*~) draw_window::$34 ← (const byte*) screen#0 + (word~) draw_window::$5 -- pbuz1=pbuc1_plus_vwuz2 
    lda.z _5
    clc
    adc #<screen
    sta.z _34
    lda.z _5+1
    adc #>screen
    sta.z _34+1
    // [94] *((byte*~) draw_window::$34) ← (byte) $4b -- _deref_pbuz1=vbuc1 
    lda #$4b
    ldy #0
    sta (_34),y
    // [95] (byte~) draw_window::$6 ← (byte) draw_window::x2#0 - (byte) draw_window::x1#0 -- vbuz1=vbuz2_minus_vbuz3 
    lda.z x2
    sec
    sbc.z x1
    sta.z _6
    // [96] (byte~) draw_window::$8 ← (byte) draw_window::y2#0 - (byte) draw_window::y1#0 -- vbuz1=vbuz2_minus_vbuz3 
    lda.z y2
    sec
    sbc.z y1
    sta.z _8
    // [97] if((byte~) draw_window::$6<(byte) 1+(byte) 1) goto draw_window::@return -- vbuz1_lt_vbuc1_then_la1 
    lda.z _6
    cmp #1+1
    bcc breturn
    jmp b13
    // draw_window::@13
  b13:
    // [98] if((byte~) draw_window::$8>=(byte) 1+(byte) 1) goto draw_window::@7 -- vbuz1_ge_vbuc1_then_la1 
    lda.z _8
    cmp #1+1
    bcs b7
    jmp breturn
    // draw_window::@return
  breturn:
    // [99] return 
    rts
    // draw_window::@7
  b7:
    // [100] (byte) draw_window::y3#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z y1
    iny
    sty.z y3
    // [101] phi from draw_window::@12 draw_window::@7 to draw_window::@8 [phi:draw_window::@12/draw_window::@7->draw_window::@8]
  b8_from_b12:
  b8_from_b7:
    // [101] phi (byte) draw_window::y3#2 = (byte) draw_window::y3#1 [phi:draw_window::@12/draw_window::@7->draw_window::@8#0] -- register_copy 
    jmp b8
  // blank inside
    // draw_window::@8
  b8:
    // [102] if((byte) draw_window::y3#2<(byte) draw_window::y2#0) goto draw_window::@9 -- vbuz1_lt_vbuz2_then_la1 
    lda.z y3
    cmp.z y2
    bcc b9
    jmp breturn
    // draw_window::@9
  b9:
    // [103] (byte) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y3
    asl
    asl
    sta.z _45
    // [104] (byte) draw_window::$46 ← (byte) draw_window::$45 + (byte) draw_window::y3#2 -- vbuz1=vbuz2_plus_vbuz3 
    lda.z _45
    clc
    adc.z y3
    sta.z _46
    // [105] (word) draw_window::z#2 ← (byte) draw_window::$46 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda.z _46
    sta.z z_2
    lda #0
    sta.z z_2+1
    asl.z z_2
    rol.z z_2+1
    asl.z z_2
    rol.z z_2+1
    asl.z z_2
    rol.z z_2+1
    // [106] (byte) draw_window::x3#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z x1
    iny
    sty.z x3
    // [107] phi from draw_window::@11 draw_window::@9 to draw_window::@10 [phi:draw_window::@11/draw_window::@9->draw_window::@10]
  b10_from_b11:
  b10_from_b9:
    // [107] phi (byte) draw_window::x3#2 = (byte) draw_window::x3#1 [phi:draw_window::@11/draw_window::@9->draw_window::@10#0] -- register_copy 
    jmp b10
    // draw_window::@10
  b10:
    // [108] if((byte) draw_window::x3#2<(byte) draw_window::x2#0) goto draw_window::@11 -- vbuz1_lt_vbuz2_then_la1 
    lda.z x3
    cmp.z x2
    bcc b11
    jmp b12
    // draw_window::@12
  b12:
    // [109] (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#2 -- vbuz1=_inc_vbuz1 
    inc.z y3
    jmp b8_from_b12
    // draw_window::@11
  b11:
    // [110] (word~) draw_window::$26 ← (word) draw_window::z#2 + (byte) draw_window::x3#2 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x3
    clc
    adc.z z_2
    sta.z _26
    lda #0
    adc.z z_2+1
    sta.z _26+1
    // [111] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$26 -- pbuz1=pbuc1_plus_vwuz2 
    lda.z _26
    clc
    adc #<screen
    sta.z _35
    lda.z _26+1
    adc #>screen
    sta.z _35+1
    // [112] *((byte*~) draw_window::$35) ← (byte) $20 -- _deref_pbuz1=vbuc1 
    lda #$20
    ldy #0
    sta (_35),y
    // [113] (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2 -- vbuz1=_inc_vbuz1 
    inc.z x3
    jmp b10_from_b11
    // draw_window::@5
  b5:
    // [114] (byte) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y
    asl
    asl
    sta.z _42
    // [115] (byte) draw_window::$43 ← (byte) draw_window::$42 + (byte) draw_window::y#2 -- vbuz1=vbuz2_plus_vbuz3 
    lda.z _42
    clc
    adc.z y
    sta.z _43
    // [116] (word) draw_window::z#1 ← (byte) draw_window::$43 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda.z _43
    sta.z z_1
    lda #0
    sta.z z_1+1
    asl.z z_1
    rol.z z_1+1
    asl.z z_1
    rol.z z_1+1
    asl.z z_1
    rol.z z_1+1
    // [117] (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x1
    clc
    adc.z z_1
    sta.z _19
    lda #0
    adc.z z_1+1
    sta.z _19+1
    // [118] (byte*~) draw_window::$31 ← (const byte*) screen#0 + (word~) draw_window::$19 -- pbuz1=pbuc1_plus_vwuz2 
    lda.z _19
    clc
    adc #<screen
    sta.z _31
    lda.z _19+1
    adc #>screen
    sta.z _31+1
    // [119] *((byte*~) draw_window::$31) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (_31),y
    // [120] (word~) draw_window::$20 ← (word) draw_window::z#1 + (byte) draw_window::x2#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x2
    clc
    adc.z z_1
    sta.z _20
    lda #0
    adc.z z_1+1
    sta.z _20+1
    // [121] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$20 -- pbuz1=pbuc1_plus_vwuz2 
    lda.z _20
    clc
    adc #<screen
    sta.z _32
    lda.z _20+1
    adc #>screen
    sta.z _32+1
    // [122] *((byte*~) draw_window::$32) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (_32),y
    // [123] (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2 -- vbuz1=_inc_vbuz1 
    inc.z y
    jmp b4_from_b5
    // draw_window::@2
  b2:
    // [124] (word~) draw_window::$14 ← (word) draw_window::z#0 + (byte) draw_window::x#2 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x
    clc
    adc.z z
    sta.z _14
    lda #0
    adc.z z+1
    sta.z _14+1
    // [125] (byte*~) draw_window::$27 ← (const byte*) screen#0 + (word~) draw_window::$14 -- pbuz1=pbuc1_plus_vwuz2 
    lda.z _14
    clc
    adc #<screen
    sta.z _27
    lda.z _14+1
    adc #>screen
    sta.z _27+1
    // [126] *((byte*~) draw_window::$27) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (_27),y
    // [127] (word~) draw_window::$15 ← (word) draw_window::q#0 + (byte) draw_window::x#2 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x
    clc
    adc.z q
    sta.z _15
    lda #0
    adc.z q+1
    sta.z _15+1
    // [128] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$15 -- pbuz1=pbuc1_plus_vwuz2 
    lda.z _15
    clc
    adc #<screen
    sta.z _28
    lda.z _15+1
    adc #>screen
    sta.z _28+1
    // [129] *((byte*~) draw_window::$28) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (_28),y
    // [130] (byte) draw_window::x#1 ← ++ (byte) draw_window::x#2 -- vbuz1=_inc_vbuz1 
    inc.z x
    jmp b1_from_b2
}
  // 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!"
  .byte 0
  text2: .text "textbox by scan of desire"
  .byte 0

REGISTER UPLIFT POTENTIAL REGISTERS
Statement [6] (byte~) main::$4 ← (byte) main::x#11 + (byte) main::x#11 [ main::x#11 main::$4 ] ( main:2 [ main::x#11 main::$4 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::x#11 main::x#1 ]
Statement [8] (byte) textbox::y2#0 ← (byte) main::x#11 + (byte) $a [ main::x#11 textbox::x2#0 textbox::y2#0 ] ( main:2 [ main::x#11 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::@5 [ main::x#11 main::wait#1 ] ( main:2 [ main::x#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [80] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [81] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [82] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 
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 ]
Statement [83] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [84] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [85] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [89] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [90] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [91] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [92] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [93] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [94] *((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#11 textbox::x1#4 textbox::y1#4 textbox::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 [95] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [96] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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:63 [ draw_window::$6 ]
Statement [103] (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#11 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 [104] (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#11 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 [105] (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#11 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 [110] (word~) draw_window::$26 ← (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::$26 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 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::$26 ] 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::$26 ] 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::$26 ] 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::$26 ] ) 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 [111] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$26 [ 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#11 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 [112] *((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#11 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 [114] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [115] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [116] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [117] (word~) draw_window::$19 ← (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::$19 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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::$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::z#1 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::z#1 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::z#1 draw_window::$19 ] ) always clobbers reg byte a 
Statement [118] (byte*~) draw_window::$31 ← (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::z#1 draw_window::$31 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [119] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [120] (word~) draw_window::$20 ← (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::$20 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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::$20 ] 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::$20 ] 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::$20 ] 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::$20 ] ) always clobbers reg byte a 
Statement [121] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$20 [ 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [122] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [124] (word~) draw_window::$14 ← (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::$14 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 
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 [125] (byte*~) draw_window::$27 ← (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::$27 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [126] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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:18 [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ]
Statement [127] (word~) draw_window::$15 ← (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::$15 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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::$15 ] 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::$15 ] 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::$15 ] 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::$15 ] ) always clobbers reg byte a 
Statement [128] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$15 [ 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [129] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [6] (byte~) main::$4 ← (byte) main::x#11 + (byte) main::x#11 [ main::x#11 main::$4 ] ( main:2 [ main::x#11 main::$4 ] ) always clobbers reg byte a 
Statement [8] (byte) textbox::y2#0 ← (byte) main::x#11 + (byte) $a [ main::x#11 textbox::x2#0 textbox::y2#0 ] ( main:2 [ main::x#11 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#11 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::@5 [ main::x#11 main::wait#1 ] ( main:2 [ main::x#11 main::wait#1 ] ) always clobbers reg byte a 
Statement [15] (byte) main::x#1 ← (byte) main::x#11 + (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::@2 [ 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [80] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [81] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [82] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [83] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [84] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [85] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [89] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [90] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [91] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [92] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [93] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [94] *((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#11 textbox::x1#4 textbox::y1#4 textbox::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 [95] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [96] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [103] (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#11 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 [104] (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#11 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 [105] (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#11 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 [110] (word~) draw_window::$26 ← (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::$26 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 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::$26 ] 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::$26 ] 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::$26 ] 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::$26 ] ) always clobbers reg byte a 
Statement [111] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$26 [ 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#11 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 [112] *((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#11 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 [114] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [115] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [116] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [117] (word~) draw_window::$19 ← (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::$19 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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::$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::z#1 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::z#1 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::z#1 draw_window::$19 ] ) always clobbers reg byte a 
Statement [118] (byte*~) draw_window::$31 ← (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::z#1 draw_window::$31 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [119] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [120] (word~) draw_window::$20 ← (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::$20 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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::$20 ] 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::$20 ] 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::$20 ] 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::$20 ] ) always clobbers reg byte a 
Statement [121] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$20 [ 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [122] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [124] (word~) draw_window::$14 ← (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::$14 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [125] (byte*~) draw_window::$27 ← (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::$27 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [126] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [127] (word~) draw_window::$15 ← (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::$15 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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::$15 ] 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::$15 ] 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::$15 ] 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::$15 ] ) always clobbers reg byte a 
Statement [128] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$15 [ 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [129] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [6] (byte~) main::$4 ← (byte) main::x#11 + (byte) main::x#11 [ main::x#11 main::$4 ] ( main:2 [ main::x#11 main::$4 ] ) always clobbers reg byte a 
Statement [8] (byte) textbox::y2#0 ← (byte) main::x#11 + (byte) $a [ main::x#11 textbox::x2#0 textbox::y2#0 ] ( main:2 [ main::x#11 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::@5 [ main::x#11 main::wait#1 ] ( main:2 [ main::x#11 main::wait#1 ] ) always clobbers reg byte a 
Statement [15] (byte) main::x#1 ← (byte) main::x#11 + (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::@2 [ 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [80] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [81] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [82] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [83] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [84] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [85] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [89] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [90] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [91] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [92] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [93] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [94] *((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#11 textbox::x1#4 textbox::y1#4 textbox::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 [95] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [96] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [103] (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#11 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 [104] (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#11 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 [105] (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#11 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 [110] (word~) draw_window::$26 ← (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::$26 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 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::$26 ] 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::$26 ] 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::$26 ] 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::$26 ] ) always clobbers reg byte a 
Statement [111] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$26 [ 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#11 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 [112] *((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#11 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 [114] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [115] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [116] (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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [117] (word~) draw_window::$19 ← (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::$19 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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::$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::z#1 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::z#1 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::z#1 draw_window::$19 ] ) always clobbers reg byte a 
Statement [118] (byte*~) draw_window::$31 ← (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::z#1 draw_window::$31 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [119] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [120] (word~) draw_window::$20 ← (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::$20 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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::$20 ] 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::$20 ] 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::$20 ] 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::$20 ] ) always clobbers reg byte a 
Statement [121] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$20 [ 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [122] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [124] (word~) draw_window::$14 ← (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::$14 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [125] (byte*~) draw_window::$27 ← (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::$27 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [126] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [127] (word~) draw_window::$15 ← (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::$15 ] ( main:2::textbox:11::draw_window:29 [ main::x#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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::$15 ] 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::$15 ] 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::$15 ] 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::$15 ] ) always clobbers reg byte a 
Statement [128] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$15 [ 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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 [129] *((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#11 textbox::x1#4 textbox::y1#4 textbox::x2#4 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 
Potential registers zp ZP_BYTE:2 [ main::x#11 main::x#1 ] : zp ZP_BYTE:2 , 
Potential registers zp ZP_WORD:3 [ main::wait#4 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::$4 ] : 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::$2 ] : zp ZP_WORD:47 , 
Potential registers zp ZP_WORD:49 [ draw_window::$29 ] : zp ZP_WORD:49 , 
Potential registers zp ZP_WORD:51 [ draw_window::$3 ] : zp ZP_WORD:51 , 
Potential registers zp ZP_WORD:53 [ draw_window::$30 ] : zp ZP_WORD:53 , 
Potential registers zp ZP_WORD:55 [ draw_window::$4 ] : zp ZP_WORD:55 , 
Potential registers zp ZP_WORD:57 [ draw_window::$33 ] : zp ZP_WORD:57 , 
Potential registers zp ZP_WORD:59 [ draw_window::$5 ] : zp ZP_WORD:59 , 
Potential registers zp ZP_WORD:61 [ draw_window::$34 ] : zp ZP_WORD:61 , 
Potential registers zp ZP_BYTE:63 [ draw_window::$6 ] : zp ZP_BYTE:63 , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:64 [ draw_window::$8 ] : zp ZP_BYTE:64 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:65 [ draw_window::$45 ] : zp ZP_BYTE:65 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:66 [ draw_window::$46 ] : zp ZP_BYTE:66 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_WORD:67 [ draw_window::z#2 ] : zp ZP_WORD:67 , 
Potential registers zp ZP_WORD:69 [ draw_window::$26 ] : zp ZP_WORD:69 , 
Potential registers zp ZP_WORD:71 [ draw_window::$35 ] : zp ZP_WORD:71 , 
Potential registers zp ZP_BYTE:73 [ draw_window::$42 ] : zp ZP_BYTE:73 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:74 [ draw_window::$43 ] : zp ZP_BYTE:74 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_WORD:75 [ draw_window::z#1 ] : zp ZP_WORD:75 , 
Potential registers zp ZP_WORD:77 [ draw_window::$19 ] : zp ZP_WORD:77 , 
Potential registers zp ZP_WORD:79 [ draw_window::$31 ] : zp ZP_WORD:79 , 
Potential registers zp ZP_WORD:81 [ draw_window::$20 ] : zp ZP_WORD:81 , 
Potential registers zp ZP_WORD:83 [ draw_window::$32 ] : zp ZP_WORD:83 , 
Potential registers zp ZP_WORD:85 [ draw_window::$14 ] : zp ZP_WORD:85 , 
Potential registers zp ZP_WORD:87 [ draw_window::$27 ] : zp ZP_WORD:87 , 
Potential registers zp ZP_WORD:89 [ draw_window::$15 ] : zp ZP_WORD:89 , 
Potential registers zp ZP_WORD:91 [ draw_window::$28 ] : zp ZP_WORD:91 , 

REGISTER UPLIFT SCOPES
Uplift Scope [draw_window] 3,025: zp ZP_BYTE:21 [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ] 2,002: zp ZP_WORD:69 [ draw_window::$26 ] 2,002: zp ZP_WORD:71 [ draw_window::$35 ] 269.38: zp ZP_BYTE:18 [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ] 252.09: zp ZP_BYTE:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ] 248.25: zp ZP_BYTE:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ] 202: zp ZP_BYTE:65 [ draw_window::$45 ] 202: zp ZP_BYTE:66 [ draw_window::$46 ] 202: zp ZP_BYTE:73 [ draw_window::$42 ] 202: zp ZP_BYTE:74 [ draw_window::$43 ] 202: zp ZP_WORD:77 [ draw_window::$19 ] 202: zp ZP_WORD:79 [ draw_window::$31 ] 202: zp ZP_WORD:81 [ draw_window::$20 ] 202: zp ZP_WORD:83 [ draw_window::$32 ] 202: zp ZP_WORD:85 [ draw_window::$14 ] 202: zp ZP_WORD:87 [ draw_window::$27 ] 202: zp ZP_WORD:89 [ draw_window::$15 ] 202: zp ZP_WORD:91 [ draw_window::$28 ] 137.75: zp ZP_WORD:67 [ draw_window::z#2 ] 75.75: zp ZP_WORD:75 [ 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:47 [ draw_window::$2 ] 4: zp ZP_WORD:49 [ draw_window::$29 ] 4: zp ZP_WORD:51 [ draw_window::$3 ] 4: zp ZP_WORD:53 [ draw_window::$30 ] 4: zp ZP_WORD:55 [ draw_window::$4 ] 4: zp ZP_WORD:57 [ draw_window::$33 ] 4: zp ZP_WORD:59 [ draw_window::$5 ] 4: zp ZP_WORD:61 [ 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:63 [ draw_window::$6 ] 2: zp ZP_BYTE:64 [ 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#4 main::wait#1 ] 24.2: zp ZP_BYTE:2 [ main::x#11 main::x#1 ] 22: zp ZP_BYTE:22 [ main::$4 ] 
Uplift Scope [] 

Uplifting [draw_window] best 192844 combination reg byte x [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ] zp ZP_WORD:69 [ draw_window::$26 ] zp ZP_WORD:71 [ draw_window::$35 ] 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:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ] reg byte a [ draw_window::$45 ] reg byte a [ draw_window::$46 ] zp ZP_BYTE:73 [ draw_window::$42 ] zp ZP_BYTE:74 [ draw_window::$43 ] zp ZP_WORD:77 [ draw_window::$19 ] zp ZP_WORD:79 [ draw_window::$31 ] zp ZP_WORD:81 [ draw_window::$20 ] zp ZP_WORD:83 [ draw_window::$32 ] zp ZP_WORD:85 [ draw_window::$14 ] zp ZP_WORD:87 [ draw_window::$27 ] zp ZP_WORD:89 [ draw_window::$15 ] zp ZP_WORD:91 [ draw_window::$28 ] zp ZP_WORD:67 [ draw_window::z#2 ] zp ZP_WORD:75 [ 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:47 [ draw_window::$2 ] zp ZP_WORD:49 [ draw_window::$29 ] zp ZP_WORD:51 [ draw_window::$3 ] zp ZP_WORD:53 [ draw_window::$30 ] zp ZP_WORD:55 [ draw_window::$4 ] zp ZP_WORD:57 [ draw_window::$33 ] zp ZP_WORD:59 [ draw_window::$5 ] zp ZP_WORD:61 [ 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:63 [ draw_window::$6 ] zp ZP_BYTE:64 [ draw_window::$8 ] zp ZP_BYTE:24 [ draw_window::y1#0 ] 
Limited combination testing to 100 combinations of 201326592 possible.
Uplifting [textbox] best 176544 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 176504 combination zp ZP_WORD:3 [ main::wait#4 main::wait#1 ] zp ZP_BYTE:2 [ main::x#11 main::x#1 ] reg byte a [ main::$4 ] 
Uplifting [] best 176504 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 176504 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 176504 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:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
Uplifting [draw_window] best 176504 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:36 [ textbox::$39 ]
Uplifting [textbox] best 175904 combination reg byte a [ textbox::$39 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:37 [ textbox::$35 ]
Uplifting [textbox] best 175304 combination reg byte a [ textbox::$35 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:38 [ textbox::$36 ]
Uplifting [textbox] best 174704 combination reg byte a [ textbox::$36 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:73 [ draw_window::$42 ]
Uplifting [draw_window] best 174504 combination reg byte a [ draw_window::$42 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:74 [ draw_window::$43 ]
Uplifting [draw_window] best 173904 combination reg byte a [ draw_window::$43 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:33 [ textbox::$15 ]
Uplifting [textbox] best 173504 combination reg byte y [ textbox::$15 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:34 [ textbox::$17 ]
Uplifting [textbox] best 173504 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 173504 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 173504 combination zp ZP_BYTE:6 [ textbox::y1#4 textbox::y1#0 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:2 [ main::x#11 main::x#1 ]
Uplifting [main] best 173504 combination zp ZP_BYTE:2 [ main::x#11 main::x#1 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:25 [ draw_window::x2#0 ]
Uplifting [draw_window] best 173504 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 173504 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 173504 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 173504 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 173498 combination reg byte a [ textbox::$32 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:28 [ textbox::$33 ]
Uplifting [textbox] best 173492 combination reg byte a [ textbox::$33 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:39 [ draw_window::$36 ]
Uplifting [draw_window] best 173486 combination reg byte a [ draw_window::$36 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:40 [ draw_window::$37 ]
Uplifting [draw_window] best 173480 combination reg byte a [ draw_window::$37 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:43 [ draw_window::$39 ]
Uplifting [draw_window] best 173474 combination reg byte a [ draw_window::$39 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:44 [ draw_window::$40 ]
Uplifting [draw_window] best 173468 combination reg byte a [ draw_window::$40 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:26 [ draw_window::y2#0 ]
Uplifting [draw_window] best 173468 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 173468 combination zp ZP_BYTE:23 [ draw_window::x1#0 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:63 [ draw_window::$6 ]
Uplifting [draw_window] best 173464 combination reg byte x [ draw_window::$6 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:64 [ draw_window::$8 ]
Uplifting [draw_window] best 173458 combination reg byte a [ draw_window::$8 ] 
Attempting to uplift remaining variables inzp ZP_BYTE:24 [ draw_window::y1#0 ]
Uplifting [draw_window] best 173458 combination zp ZP_BYTE:24 [ draw_window::y1#0 ] 
Coalescing zero page register [ zp ZP_BYTE:2 [ main::x#11 main::x#1 ] ] with [ zp ZP_BYTE:5 [ textbox::x1#4 textbox::x1#0 ] ] - score: 1
Coalescing zero page register [ 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 [ 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 [ 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 [ 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 [ zp ZP_WORD:29 [ textbox::$8 ] ] with [ zp ZP_WORD:31 [ textbox::$31 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:41 [ draw_window::z#0 ] ] with [ zp ZP_WORD:51 [ draw_window::$3 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:45 [ draw_window::q#0 ] ] with [ zp ZP_WORD:59 [ draw_window::$5 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:47 [ draw_window::$2 ] ] with [ zp ZP_WORD:49 [ draw_window::$29 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:55 [ draw_window::$4 ] ] with [ zp ZP_WORD:57 [ draw_window::$33 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:69 [ draw_window::$26 ] ] with [ zp ZP_WORD:71 [ draw_window::$35 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:75 [ draw_window::z#1 ] ] with [ zp ZP_WORD:81 [ draw_window::$20 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:77 [ draw_window::$19 ] ] with [ zp ZP_WORD:79 [ draw_window::$31 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:85 [ draw_window::$14 ] ] with [ zp ZP_WORD:87 [ draw_window::$27 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:89 [ draw_window::$15 ] ] with [ zp ZP_WORD:91 [ draw_window::$28 ] ] - score: 1
Coalescing zero page register [ zp ZP_BYTE:2 [ main::x#11 main::x#1 textbox::x1#4 textbox::x1#0 ] ] with [ zp ZP_BYTE:23 [ draw_window::x1#0 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:41 [ draw_window::z#0 draw_window::$3 ] ] with [ zp ZP_WORD:53 [ draw_window::$30 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:45 [ draw_window::q#0 draw_window::$5 ] ] with [ zp ZP_WORD:61 [ draw_window::$34 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:75 [ draw_window::z#1 draw_window::$20 ] ] with [ zp ZP_WORD:83 [ draw_window::$32 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:9 [ textbox::text#12 ] ] with [ zp ZP_WORD:3 [ main::wait#4 main::wait#1 ] ]
Coalescing zero page register [ zp ZP_BYTE:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ] ] with [ zp ZP_BYTE:11 [ textbox::i#2 textbox::i#1 ] ]
Coalescing zero page register [ zp ZP_WORD:41 [ draw_window::z#0 draw_window::$3 draw_window::$30 ] ] with [ zp ZP_WORD:16 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ] ]
Coalescing zero page register [ zp ZP_WORD:45 [ draw_window::q#0 draw_window::$5 draw_window::$34 ] ] with [ zp ZP_WORD:29 [ textbox::$8 textbox::$31 ] ]
Allocated (was zp ZP_BYTE:6) zp ZP_BYTE:3 [ 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:4 [ textbox::x2#4 textbox::x2#0 draw_window::x2#0 ]
Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:5 [ textbox::y2#4 textbox::y2#0 draw_window::y2#0 ]
Allocated (was zp ZP_WORD:9) zp ZP_WORD:6 [ textbox::text#12 main::wait#4 main::wait#1 ]
Allocated (was zp ZP_BYTE:14) zp ZP_BYTE:8 [ 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_BYTE:20) zp ZP_BYTE:9 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 textbox::i#2 textbox::i#1 ]
Allocated (was zp ZP_BYTE:34) zp ZP_BYTE:10 [ textbox::$17 ]
Allocated (was zp ZP_WORD:41) zp ZP_WORD:11 [ draw_window::z#0 draw_window::$3 draw_window::$30 textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ]
Allocated (was zp ZP_WORD:45) zp ZP_WORD:13 [ draw_window::q#0 draw_window::$5 draw_window::$34 textbox::$8 textbox::$31 ]
Allocated (was zp ZP_WORD:47) zp ZP_WORD:15 [ draw_window::$2 draw_window::$29 ]
Allocated (was zp ZP_WORD:55) zp ZP_WORD:17 [ draw_window::$4 draw_window::$33 ]
Allocated (was zp ZP_WORD:67) zp ZP_WORD:19 [ draw_window::z#2 ]
Allocated (was zp ZP_WORD:69) zp ZP_WORD:21 [ draw_window::$26 draw_window::$35 ]
Allocated (was zp ZP_WORD:75) zp ZP_WORD:23 [ draw_window::z#1 draw_window::$20 draw_window::$32 ]
Allocated (was zp ZP_WORD:77) zp ZP_WORD:25 [ draw_window::$19 draw_window::$31 ]
Allocated (was zp ZP_WORD:85) zp ZP_WORD:27 [ draw_window::$14 draw_window::$27 ]
Allocated (was zp ZP_WORD:89) zp ZP_WORD:29 [ draw_window::$15 draw_window::$28 ]

ASSEMBLER BEFORE OPTIMIZATION
  // File Comments
/* Textbox routine with word wrap for KickC by Scan/Desire */
  // 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 = 6
    .label x = 2
    // [5] phi from main to main::@2 [phi:main->main::@2]
  b2_from_main:
    // [5] phi (byte) main::x#11 = (byte) 0 [phi:main->main::@2#0] -- vbuz1=vbuc1 
    lda #0
    sta.z x
    jmp b2
    // [5] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
  b2_from_b1:
    // [5] phi (byte) main::x#11 = (byte) main::x#1 [phi:main::@1->main::@2#0] -- register_copy 
    jmp b2
    // main::@2
  b2:
    // [6] (byte~) main::$4 ← (byte) main::x#11 + (byte) main::x#11 -- vbuaa=vbuz1_plus_vbuz1 
    lda.z x
    asl
    // [7] (byte) textbox::x2#0 ← (byte~) main::$4 + (byte) 1 -- vbuz1=vbuaa_plus_1 
    clc
    adc #1
    sta.z textbox.x2
    // [8] (byte) textbox::y2#0 ← (byte) main::x#11 + (byte) $a -- vbuz1=vbuz2_plus_vbuc1 
    lax.z x
    axs #-[$a]
    stx.z textbox.y2
    // [9] (byte) textbox::x1#0 ← (byte) main::x#11
    // [10] (byte) textbox::y1#0 ← (byte) main::x#11 -- vbuz1=vbuz2 
    lda.z x
    sta.z textbox.y1
    // [11] call textbox 
    // [24] phi from main::@2 to textbox [phi:main::@2->textbox]
  textbox_from_b2:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text2#0 [phi:main::@2->textbox#0] -- pbuz1=pbuc1 
    lda #<text2
    sta.z textbox.text
    lda #>text2
    sta.z textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) textbox::y2#0 [phi:main::@2->textbox#1] -- register_copy 
    // [24] phi (byte) textbox::x2#4 = (byte) textbox::x2#0 [phi:main::@2->textbox#2] -- register_copy 
    // [24] phi (byte) textbox::y1#4 = (byte) textbox::y1#0 [phi:main::@2->textbox#3] -- register_copy 
    // [24] phi (byte) textbox::x1#4 = (byte) textbox::x1#0 [phi:main::@2->textbox#4] -- register_copy 
    jsr textbox
    // [12] phi from main::@2 to main::@5 [phi:main::@2->main::@5]
  b5_from_b2:
    // [12] phi (word) main::wait#4 = (byte) 0 [phi:main::@2->main::@5#0] -- vwuz1=vbuc1 
    lda #<0
    sta.z wait
    lda #>0
    sta.z wait+1
    jmp b5
    // [12] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
  b5_from_b4:
    // [12] phi (word) main::wait#4 = (word) main::wait#1 [phi:main::@4->main::@5#0] -- register_copy 
    jmp b5
    // main::@5
  b5:
    // [13] (word) main::wait#1 ← ++ (word) main::wait#4 -- vwuz1=_inc_vwuz1 
    inc.z wait
    bne !+
    inc.z wait+1
  !:
    jmp b4
    // main::@4
  b4:
    // [14] if((word) main::wait#1<(word) $88b8) goto main::@5 -- vwuz1_lt_vwuc1_then_la1 
    lda.z wait+1
    cmp #>$88b8
    bcc b5_from_b4
    bne !+
    lda.z wait
    cmp #<$88b8
    bcc b5_from_b4
  !:
    jmp b6
    // main::@6
  b6:
    // [15] (byte) main::x#1 ← (byte) main::x#11 + (byte) 2 -- vbuz1=vbuz1_plus_2 
    lda.z x
    clc
    adc #2
    sta.z x
    jmp b1
    // main::@1
  b1:
    // [16] if((byte) main::x#1<(byte) $f) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 
    lda.z x
    cmp #$f
    bcc b2_from_b1
    // [17] phi from main::@1 to main::@3 [phi:main::@1->main::@3]
  b3_from_b1:
    jmp b3
    // main::@3
  b3:
    // [18] call textbox 
    // [24] phi from main::@3 to textbox [phi:main::@3->textbox]
  textbox_from_b3:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@3->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta.z textbox.text
    lda #>text
    sta.z textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) $18 [phi:main::@3->textbox#1] -- vbuz1=vbuc1 
    lda #$18
    sta.z textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $14 [phi:main::@3->textbox#2] -- vbuz1=vbuc1 
    lda #$14
    sta.z textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) $c [phi:main::@3->textbox#3] -- vbuz1=vbuc1 
    lda #$c
    sta.z textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) 0 [phi:main::@3->textbox#4] -- vbuz1=vbuc1 
    lda #0
    sta.z textbox.x1
    jsr textbox
    // [19] phi from main::@3 to main::@8 [phi:main::@3->main::@8]
  b8_from_b3:
    jmp b8
    // main::@8
  b8:
    // [20] call textbox 
    // [24] phi from main::@8 to textbox [phi:main::@8->textbox]
  textbox_from_b8:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@8->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta.z textbox.text
    lda #>text
    sta.z textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) 9 [phi:main::@8->textbox#1] -- vbuz1=vbuc1 
    lda #9
    sta.z textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $25 [phi:main::@8->textbox#2] -- vbuz1=vbuc1 
    lda #$25
    sta.z textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) 3 [phi:main::@8->textbox#3] -- vbuz1=vbuc1 
    lda #3
    sta.z textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) 3 [phi:main::@8->textbox#4] -- vbuz1=vbuc1 
    lda #3
    sta.z textbox.x1
    jsr textbox
    // [21] phi from main::@8 to main::@9 [phi:main::@8->main::@9]
  b9_from_b8:
    jmp b9
    // main::@9
  b9:
    // [22] call textbox 
    // [24] phi from main::@9 to textbox [phi:main::@9->textbox]
  textbox_from_b9:
    // [24] phi (byte*) textbox::text#12 = (const byte[]) text#0 [phi:main::@9->textbox#0] -- pbuz1=pbuc1 
    lda #<text
    sta.z textbox.text
    lda #>text
    sta.z textbox.text+1
    // [24] phi (byte) textbox::y2#4 = (byte) $18 [phi:main::@9->textbox#1] -- vbuz1=vbuc1 
    lda #$18
    sta.z textbox.y2
    // [24] phi (byte) textbox::x2#4 = (byte) $27 [phi:main::@9->textbox#2] -- vbuz1=vbuc1 
    lda #$27
    sta.z textbox.x2
    // [24] phi (byte) textbox::y1#4 = (byte) 8 [phi:main::@9->textbox#3] -- vbuz1=vbuc1 
    lda #8
    sta.z textbox.y1
    // [24] phi (byte) textbox::x1#4 = (byte) $1e [phi:main::@9->textbox#4] -- vbuz1=vbuc1 
    lda #$1e
    sta.z textbox.x1
    jsr textbox
    // [23] phi from main::@7 main::@9 to main::@7 [phi:main::@7/main::@9->main::@7]
  b7_from_b7:
  b7_from_b9:
    jmp b7
    // main::@7
  b7:
    jmp b7_from_b7
}
  // textbox
// textbox(byte zeropage(2) x1, byte zeropage(3) y1, byte zeropage(4) x2, byte zeropage(5) y2, byte* zeropage(6) text)
textbox: {
    .label _8 = $d
    .label _17 = $a
    .label x1 = 2
    .label y1 = 3
    .label x2 = 4
    .label y2 = 5
    .label y = 3
    .label x = 8
    .label z = $b
    .label i = 9
    .label text = 6
    .label _31 = $d
    // [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.z y
    // [31] (byte) textbox::x#0 ← (byte) textbox::x1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z x1
    iny
    sty.z x
    // [32] (byte) textbox::$32 ← (byte) textbox::y#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y
    asl
    asl
    // [33] (byte) textbox::$33 ← (byte) textbox::$32 + (byte) textbox::y#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y
    // [34] (word) textbox::z#0 ← (byte) textbox::$33 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta.z z
    lda #0
    sta.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    // [35] if((byte) textbox::x#0==(byte) textbox::x2#4) goto textbox::@return -- vbuz1_eq_vbuz2_then_la1 
    lda.z x
    cmp.z 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.z y
    cmp.z 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.z 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.z x
    clc
    adc.z z
    sta.z _8
    lda #0
    adc.z z+1
    sta.z _8+1
    // [39] (byte*~) textbox::$31 ← (const byte*) screen#0 + (word~) textbox::$8 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z _31
    adc #<screen
    sta.z _31
    lda.z _31+1
    adc #>screen
    sta.z _31+1
    // [40] *((byte*~) textbox::$31) ← *((byte*) textbox::text#12 + (byte) textbox::i#2) -- _deref_pbuz1=pbuz2_derefidx_vbuz3 
    ldy.z 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.z 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.z 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.z x
    tay
    // [47] (byte~) textbox::$17 ← (byte) textbox::x2#4 - (byte) textbox::x1#4 -- vbuz1=vbuz2_minus_vbuz3 
    lda.z x2
    sec
    sbc.z x1
    sta.z _17
    // [48] if((byte~) textbox::$15<(byte) textbox::x2#4) goto textbox::@2 -- vbuyy_lt_vbuz1_then_la1 
    cpy.z 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.z _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.z i
    // [52] (byte) textbox::x#1 ← ++ (byte) textbox::x#5 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [53] if((byte) textbox::x#1!=(byte) textbox::x2#4) goto textbox::@8 -- vbuz1_neq_vbuz2_then_la1 
    lda.z x
    cmp.z 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.z x1
    iny
    sty.z x
    // [55] (byte) textbox::y#2 ← ++ (byte) textbox::y#5 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [56] if((byte) textbox::y#2!=(byte) textbox::y2#4) goto textbox::@9 -- vbuz1_neq_vbuz2_then_la1 
    lda.z y
    cmp.z 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.z y
    asl
    asl
    // [59] (byte) textbox::$39 ← (byte) textbox::$38 + (byte) textbox::y#2 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y
    // [60] (word) textbox::z#2 ← (byte) textbox::$39 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta.z z
    lda #0
    sta.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z 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.z 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.z y
    // [64] if((byte) textbox::y#1!=(byte) textbox::y2#4) goto textbox::@7 -- vbuz1_neq_vbuz2_then_la1 
    lda.z y
    cmp.z y2
    bne b7
    jmp breturn
    // textbox::@7
  b7:
    // [65] (byte) textbox::$35 ← (byte) textbox::y#1 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y
    asl
    asl
    // [66] (byte) textbox::$36 ← (byte) textbox::$35 + (byte) textbox::y#1 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y
    // [67] (word) textbox::z#1 ← (byte) textbox::$36 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta.z z
    lda #0
    sta.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    // [68] (byte~) textbox::x#15 ← (byte) textbox::x1#4 -- vbuz1=vbuz2 
    lda.z x1
    sta.z 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(3) y1, byte zeropage(4) x2, byte zeropage(5) y2)
draw_window: {
    .label _2 = $f
    .label _3 = $b
    .label _4 = $11
    .label _5 = $d
    .label _14 = $1b
    .label _15 = $1d
    .label _19 = $19
    .label _20 = $17
    .label _26 = $15
    .label x1 = 2
    .label y1 = 3
    .label x2 = 4
    .label y2 = 5
    .label z = $b
    .label q = $d
    .label z_1 = $17
    .label y3 = 9
    .label z_2 = $13
    .label _27 = $1b
    .label _28 = $1d
    .label _29 = $f
    .label _30 = $b
    .label _31 = $19
    .label _32 = $17
    .label _33 = $11
    .label _34 = $d
    .label _35 = $15
    // [71] (byte) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y1
    asl
    asl
    // [72] (byte) draw_window::$37 ← (byte) draw_window::$36 + (byte) draw_window::y1#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y1
    // [73] (word) draw_window::z#0 ← (byte) draw_window::$37 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta.z z
    lda #0
    sta.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    // [74] (byte) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y2
    asl
    asl
    // [75] (byte) draw_window::$40 ← (byte) draw_window::$39 + (byte) draw_window::y2#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y2
    // [76] (word) draw_window::q#0 ← (byte) draw_window::$40 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta.z q
    lda #0
    sta.z q+1
    asl.z q
    rol.z q+1
    asl.z q
    rol.z q+1
    asl.z q
    rol.z q+1
    // [77] (byte) draw_window::x#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx.z x1
    inx
    // [78] phi from draw_window draw_window::@2 to draw_window::@1 [phi:draw_window/draw_window::@2->draw_window::@1]
  b1_from_draw_window:
  b1_from_b2:
    // [78] phi (byte) draw_window::x#2 = (byte) draw_window::x#0 [phi:draw_window/draw_window::@2->draw_window::@1#0] -- register_copy 
    jmp b1
  // draw horizontal lines
    // draw_window::@1
  b1:
    // [79] if((byte) draw_window::x#2<(byte) draw_window::x2#0) goto draw_window::@2 -- vbuxx_lt_vbuz1_then_la1 
    cpx.z x2
    bcc b2
    jmp b3
    // draw_window::@3
  b3:
    // [80] (word~) draw_window::$2 ← (word) draw_window::z#0 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x1
    clc
    adc.z z
    sta.z _2
    lda #0
    adc.z z+1
    sta.z _2+1
    // [81] (byte*~) draw_window::$29 ← (const byte*) screen#0 + (word~) draw_window::$2 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z _29
    adc #<screen
    sta.z _29
    lda.z _29+1
    adc #>screen
    sta.z _29+1
    // [82] *((byte*~) draw_window::$29) ← (byte) $55 -- _deref_pbuz1=vbuc1 
    // draw upper corners
    lda #$55
    ldy #0
    sta (_29),y
    // [83] (word~) draw_window::$3 ← (word) draw_window::z#0 + (byte) draw_window::x2#0 -- vwuz1=vwuz1_plus_vbuz2 
    lda.z x2
    clc
    adc.z _3
    sta.z _3
    bcc !+
    inc.z _3+1
  !:
    // [84] (byte*~) draw_window::$30 ← (const byte*) screen#0 + (word~) draw_window::$3 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z _30
    adc #<screen
    sta.z _30
    lda.z _30+1
    adc #>screen
    sta.z _30+1
    // [85] *((byte*~) draw_window::$30) ← (byte) $49 -- _deref_pbuz1=vbuc1 
    lda #$49
    ldy #0
    sta (_30),y
    // [86] (byte) draw_window::y#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx.z y1
    inx
    // [87] phi from draw_window::@3 draw_window::@5 to draw_window::@4 [phi:draw_window::@3/draw_window::@5->draw_window::@4]
  b4_from_b3:
  b4_from_b5:
    // [87] phi (byte) draw_window::y#2 = (byte) draw_window::y#0 [phi:draw_window::@3/draw_window::@5->draw_window::@4#0] -- register_copy 
    jmp b4
  // draw vertical lines
    // draw_window::@4
  b4:
    // [88] if((byte) draw_window::y#2<(byte) draw_window::y2#0) goto draw_window::@5 -- vbuxx_lt_vbuz1_then_la1 
    cpx.z y2
    bcc b5
    jmp b6
    // draw_window::@6
  b6:
    // [89] (word~) draw_window::$4 ← (word) draw_window::q#0 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x1
    clc
    adc.z q
    sta.z _4
    lda #0
    adc.z q+1
    sta.z _4+1
    // [90] (byte*~) draw_window::$33 ← (const byte*) screen#0 + (word~) draw_window::$4 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z _33
    adc #<screen
    sta.z _33
    lda.z _33+1
    adc #>screen
    sta.z _33+1
    // [91] *((byte*~) draw_window::$33) ← (byte) $4a -- _deref_pbuz1=vbuc1 
    // draw lower corners
    lda #$4a
    ldy #0
    sta (_33),y
    // [92] (word~) draw_window::$5 ← (word) draw_window::q#0 + (byte) draw_window::x2#0 -- vwuz1=vwuz1_plus_vbuz2 
    lda.z x2
    clc
    adc.z _5
    sta.z _5
    bcc !+
    inc.z _5+1
  !:
    // [93] (byte*~) draw_window::$34 ← (const byte*) screen#0 + (word~) draw_window::$5 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z _34
    adc #<screen
    sta.z _34
    lda.z _34+1
    adc #>screen
    sta.z _34+1
    // [94] *((byte*~) draw_window::$34) ← (byte) $4b -- _deref_pbuz1=vbuc1 
    lda #$4b
    ldy #0
    sta (_34),y
    // [95] (byte~) draw_window::$6 ← (byte) draw_window::x2#0 - (byte) draw_window::x1#0 -- vbuxx=vbuz1_minus_vbuz2 
    lda.z x2
    sec
    sbc.z x1
    tax
    // [96] (byte~) draw_window::$8 ← (byte) draw_window::y2#0 - (byte) draw_window::y1#0 -- vbuaa=vbuz1_minus_vbuz2 
    lda.z y2
    sec
    sbc.z y1
    // [97] if((byte~) draw_window::$6<(byte) 1+(byte) 1) goto draw_window::@return -- vbuxx_lt_vbuc1_then_la1 
    cpx #1+1
    bcc breturn
    jmp b13
    // draw_window::@13
  b13:
    // [98] if((byte~) draw_window::$8>=(byte) 1+(byte) 1) goto draw_window::@7 -- vbuaa_ge_vbuc1_then_la1 
    cmp #1+1
    bcs b7
    jmp breturn
    // draw_window::@return
  breturn:
    // [99] return 
    rts
    // draw_window::@7
  b7:
    // [100] (byte) draw_window::y3#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z y1
    iny
    sty.z y3
    // [101] phi from draw_window::@12 draw_window::@7 to draw_window::@8 [phi:draw_window::@12/draw_window::@7->draw_window::@8]
  b8_from_b12:
  b8_from_b7:
    // [101] phi (byte) draw_window::y3#2 = (byte) draw_window::y3#1 [phi:draw_window::@12/draw_window::@7->draw_window::@8#0] -- register_copy 
    jmp b8
  // blank inside
    // draw_window::@8
  b8:
    // [102] if((byte) draw_window::y3#2<(byte) draw_window::y2#0) goto draw_window::@9 -- vbuz1_lt_vbuz2_then_la1 
    lda.z y3
    cmp.z y2
    bcc b9
    jmp breturn
    // draw_window::@9
  b9:
    // [103] (byte) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y3
    asl
    asl
    // [104] (byte) draw_window::$46 ← (byte) draw_window::$45 + (byte) draw_window::y3#2 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y3
    // [105] (word) draw_window::z#2 ← (byte) draw_window::$46 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta.z z_2
    lda #0
    sta.z z_2+1
    asl.z z_2
    rol.z z_2+1
    asl.z z_2
    rol.z z_2+1
    asl.z z_2
    rol.z z_2+1
    // [106] (byte) draw_window::x3#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx.z x1
    inx
    // [107] phi from draw_window::@11 draw_window::@9 to draw_window::@10 [phi:draw_window::@11/draw_window::@9->draw_window::@10]
  b10_from_b11:
  b10_from_b9:
    // [107] phi (byte) draw_window::x3#2 = (byte) draw_window::x3#1 [phi:draw_window::@11/draw_window::@9->draw_window::@10#0] -- register_copy 
    jmp b10
    // draw_window::@10
  b10:
    // [108] if((byte) draw_window::x3#2<(byte) draw_window::x2#0) goto draw_window::@11 -- vbuxx_lt_vbuz1_then_la1 
    cpx.z x2
    bcc b11
    jmp b12
    // draw_window::@12
  b12:
    // [109] (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#2 -- vbuz1=_inc_vbuz1 
    inc.z y3
    jmp b8_from_b12
    // draw_window::@11
  b11:
    // [110] (word~) draw_window::$26 ← (word) draw_window::z#2 + (byte) draw_window::x3#2 -- vwuz1=vwuz2_plus_vbuxx 
    txa
    clc
    adc.z z_2
    sta.z _26
    lda #0
    adc.z z_2+1
    sta.z _26+1
    // [111] (byte*~) draw_window::$35 ← (const byte*) screen#0 + (word~) draw_window::$26 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z _35
    adc #<screen
    sta.z _35
    lda.z _35+1
    adc #>screen
    sta.z _35+1
    // [112] *((byte*~) draw_window::$35) ← (byte) $20 -- _deref_pbuz1=vbuc1 
    lda #$20
    ldy #0
    sta (_35),y
    // [113] (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2 -- vbuxx=_inc_vbuxx 
    inx
    jmp b10_from_b11
    // draw_window::@5
  b5:
    // [114] (byte) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 
    txa
    asl
    asl
    // [115] (byte) draw_window::$43 ← (byte) draw_window::$42 + (byte) draw_window::y#2 -- vbuaa=vbuaa_plus_vbuxx 
    stx.z $ff
    clc
    adc.z $ff
    // [116] (word) draw_window::z#1 ← (byte) draw_window::$43 << (byte) 3 -- vwuz1=vbuaa_rol_3 
    sta.z z_1
    lda #0
    sta.z z_1+1
    asl.z z_1
    rol.z z_1+1
    asl.z z_1
    rol.z z_1+1
    asl.z z_1
    rol.z z_1+1
    // [117] (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x1#0 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x1
    clc
    adc.z z_1
    sta.z _19
    lda #0
    adc.z z_1+1
    sta.z _19+1
    // [118] (byte*~) draw_window::$31 ← (const byte*) screen#0 + (word~) draw_window::$19 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z _31
    adc #<screen
    sta.z _31
    lda.z _31+1
    adc #>screen
    sta.z _31+1
    // [119] *((byte*~) draw_window::$31) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (_31),y
    // [120] (word~) draw_window::$20 ← (word) draw_window::z#1 + (byte) draw_window::x2#0 -- vwuz1=vwuz1_plus_vbuz2 
    lda.z x2
    clc
    adc.z _20
    sta.z _20
    bcc !+
    inc.z _20+1
  !:
    // [121] (byte*~) draw_window::$32 ← (const byte*) screen#0 + (word~) draw_window::$20 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z _32
    adc #<screen
    sta.z _32
    lda.z _32+1
    adc #>screen
    sta.z _32+1
    // [122] *((byte*~) draw_window::$32) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (_32),y
    // [123] (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2 -- vbuxx=_inc_vbuxx 
    inx
    jmp b4_from_b5
    // draw_window::@2
  b2:
    // [124] (word~) draw_window::$14 ← (word) draw_window::z#0 + (byte) draw_window::x#2 -- vwuz1=vwuz2_plus_vbuxx 
    txa
    clc
    adc.z z
    sta.z _14
    lda #0
    adc.z z+1
    sta.z _14+1
    // [125] (byte*~) draw_window::$27 ← (const byte*) screen#0 + (word~) draw_window::$14 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z _27
    adc #<screen
    sta.z _27
    lda.z _27+1
    adc #>screen
    sta.z _27+1
    // [126] *((byte*~) draw_window::$27) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (_27),y
    // [127] (word~) draw_window::$15 ← (word) draw_window::q#0 + (byte) draw_window::x#2 -- vwuz1=vwuz2_plus_vbuxx 
    txa
    clc
    adc.z q
    sta.z _15
    lda #0
    adc.z q+1
    sta.z _15+1
    // [128] (byte*~) draw_window::$28 ← (const byte*) screen#0 + (word~) draw_window::$15 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z _28
    adc #<screen
    sta.z _28
    lda.z _28+1
    adc #>screen
    sta.z _28+1
    // [129] *((byte*~) draw_window::$28) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (_28),y
    // [130] (byte) draw_window::x#1 ← ++ (byte) draw_window::x#2 -- vbuxx=_inc_vbuxx 
    inx
    jmp b1_from_b2
}
  // 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!"
  .byte 0
  text2: .text "textbox by scan of desire"
  .byte 0

ASSEMBLER OPTIMIZATIONS
Removing instruction jmp b1
Removing instruction jmp bend
Removing instruction jmp b2
Removing instruction jmp b5
Removing instruction jmp b4
Removing instruction jmp b6
Removing instruction jmp b1
Removing instruction jmp b3
Removing instruction jmp b8
Removing instruction jmp b9
Removing instruction jmp b7
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 b3
Removing instruction jmp b4
Removing instruction jmp b6
Removing instruction jmp b13
Removing instruction jmp breturn
Removing instruction jmp b8
Removing instruction jmp b10
Removing instruction jmp b12
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction lda #>0
Removing instruction lda #3
Replacing instruction lda.z x with TYA
Replacing instruction lda #0 with TYA
Removing instruction ldy #0
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Replacing label b5_from_b4 with b5
Replacing label b5_from_b4 with b5
Replacing label b2_from_b1 with b2
Replacing label b7_from_b7 with b7
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 b8_from_b12 with b8_from_b7
Replacing label b10_from_b11 with b10
Removing instruction b1_from_bbegin:
Removing instruction b1:
Removing instruction main_from_b1:
Removing instruction bend_from_b1:
Removing instruction b2_from_b1:
Removing instruction b5_from_b4:
Removing instruction b3_from_b1:
Removing instruction textbox_from_b3:
Removing instruction b8_from_b3:
Removing instruction textbox_from_b8:
Removing instruction b9_from_b8:
Removing instruction textbox_from_b9:
Removing instruction b7_from_b7:
Removing instruction b7_from_b9:
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 b4_from_b3:
Removing instruction b8_from_b12:
Removing instruction b10_from_b11:
Removing instruction b10_from_b9:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction bend:
Removing instruction b2_from_main:
Removing instruction textbox_from_b2:
Removing instruction b5_from_b2:
Removing instruction b4:
Removing instruction b6:
Removing instruction b1:
Removing instruction b3:
Removing instruction b8:
Removing instruction b9:
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 b3:
Removing instruction b4:
Removing instruction b6:
Removing instruction b13:
Removing instruction b8:
Removing instruction b12:
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_b2 to b1
Relabelling long label b4_from_b5 to b3
Relabelling long label b8_from_b7 to b4
Succesful ASM optimization Pass5RelabelLongLabels
Removing instruction jmp b2
Removing instruction jmp b5
Removing instruction jmp b1
Removing instruction jmp b2
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction lda.z x
Removing instruction ldy.z i
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Removing instruction bbegin:
Succesful ASM optimization Pass5UnusedLabelElimination
Fixing long branch [209] bne b1 to beq
Fixing long branch [304] bcc b2 to bcs
Fixing long branch [347] bcc b5 to bcs

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::$14 $14 zp ZP_WORD:27 202.0
(word~) draw_window::$15 $15 zp ZP_WORD:29 202.0
(word~) draw_window::$19 $19 zp ZP_WORD:25 202.0
(word~) draw_window::$2 $2 zp ZP_WORD:15 4.0
(word~) draw_window::$20 $20 zp ZP_WORD:23 202.0
(word~) draw_window::$26 $26 zp ZP_WORD:21 2002.0
(byte*~) draw_window::$27 $27 zp ZP_WORD:27 202.0
(byte*~) draw_window::$28 $28 zp ZP_WORD:29 202.0
(byte*~) draw_window::$29 $29 zp ZP_WORD:15 4.0
(word~) draw_window::$3 $3 zp ZP_WORD:11 4.0
(byte*~) draw_window::$30 $30 zp ZP_WORD:11 4.0
(byte*~) draw_window::$31 $31 zp ZP_WORD:25 202.0
(byte*~) draw_window::$32 $32 zp ZP_WORD:23 202.0
(byte*~) draw_window::$33 $33 zp ZP_WORD:17 4.0
(byte*~) draw_window::$34 $34 zp ZP_WORD:13 4.0
(byte*~) draw_window::$35 $35 zp ZP_WORD:21 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:17 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:13 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::@10
(label) draw_window::@11
(label) draw_window::@12
(label) draw_window::@13
(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:13 3.242424242424242
(byte) draw_window::x
(byte) draw_window::x#0 reg byte x 4.0
(byte) draw_window::x#1 reg byte x 202.0
(byte) draw_window::x#2 reg byte x 63.375
(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:4 19.852459016393443
(byte) draw_window::x3
(byte) draw_window::x3#0 reg byte x 202.0
(byte) draw_window::x3#1 reg byte x 2002.0
(byte) draw_window::x3#2 reg byte x 821.0
(byte) draw_window::y
(byte) draw_window::y#0 reg byte x 4.0
(byte) draw_window::y#1 reg byte x 202.0
(byte) draw_window::y#2 reg byte x 46.090909090909086
(byte) draw_window::y1
(byte) draw_window::y1#0 y1 zp ZP_BYTE:3 0.24999999999999997
(byte) draw_window::y2
(byte) draw_window::y2#0 y2 zp ZP_BYTE:5 3.5
(byte) draw_window::y3
(byte) draw_window::y3#0 y3 zp ZP_BYTE:9 4.0
(byte) draw_window::y3#1 y3 zp ZP_BYTE:9 202.0
(byte) draw_window::y3#2 y3 zp ZP_BYTE:9 42.24999999999999
(word) draw_window::z
(word) draw_window::z#0 z zp ZP_WORD:11 6.294117647058823
(word) draw_window::z#1 z#1 zp ZP_WORD:23 75.75
(word) draw_window::z#2 z#2 zp ZP_WORD:19 137.75
(void()) main()
(byte~) main::$4 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
(label) main::@8
(label) main::@9
(word) main::wait
(word) main::wait#1 wait zp ZP_WORD:6 151.5
(word) main::wait#4 wait zp ZP_WORD:6 202.0
(byte) main::x
(byte) main::x#1 x zp ZP_BYTE:2 16.5
(byte) main::x#11 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:10 101.0
(byte*~) textbox::$31 $31 zp ZP_WORD:13 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:13 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:9 27.545454545454547
(byte) textbox::i#2 i zp ZP_BYTE:9 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:6 50.108695652173914
(byte) textbox::x
(byte) textbox::x#0 x zp ZP_BYTE:8 1.0
(byte) textbox::x#1 x zp ZP_BYTE:8 151.5
(byte) textbox::x#10 x zp ZP_BYTE:8 36.214285714285715
(byte) textbox::x#12 x zp ZP_BYTE:8 33.666666666666664
(byte~) textbox::x#15 x zp ZP_BYTE:8 202.0
(byte) textbox::x#5 x zp ZP_BYTE:8 202.0
(byte) textbox::x#7 x zp ZP_BYTE:8 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:4 5.5
(byte) textbox::x2#4 x2 zp ZP_BYTE:4 6.913043478260869
(byte) textbox::y
(byte) textbox::y#0 y zp ZP_BYTE:3 1.4285714285714284
(byte) textbox::y#1 y zp ZP_BYTE:3 84.16666666666666
(byte) textbox::y#11 y zp ZP_BYTE:3 151.5
(byte) textbox::y#12 y zp ZP_BYTE:3 27.06666666666667
(byte) textbox::y#2 y zp ZP_BYTE:3 101.0
(byte) textbox::y#5 y zp ZP_BYTE:3 101.0
(byte) textbox::y1
(byte) textbox::y1#0 y1 zp ZP_BYTE:3 22.0
(byte) textbox::y1#4 y1 zp ZP_BYTE:3 2.5
(byte) textbox::y2
(byte) textbox::y2#0 y2 zp ZP_BYTE:5 7.333333333333333
(byte) textbox::y2#4 y2 zp ZP_BYTE:5 4.717391304347826
(word) textbox::z
(word) textbox::z#0 z zp ZP_WORD:11 1.3333333333333333
(word) textbox::z#1 z zp ZP_WORD:11 101.0
(word) textbox::z#2 z zp ZP_WORD:11 202.0
(word) textbox::z#3 z zp ZP_WORD:11 29.000000000000004
(word) textbox::z#4 z zp ZP_WORD:11 151.5
(word) textbox::z#5 z zp ZP_WORD:11 101.0

zp ZP_BYTE:2 [ main::x#11 main::x#1 textbox::x1#4 textbox::x1#0 draw_window::x1#0 ]
zp ZP_BYTE:3 [ 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:4 [ textbox::x2#4 textbox::x2#0 draw_window::x2#0 ]
zp ZP_BYTE:5 [ textbox::y2#4 textbox::y2#0 draw_window::y2#0 ]
zp ZP_WORD:6 [ textbox::text#12 main::wait#4 main::wait#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:8 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ]
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:9 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 textbox::i#2 textbox::i#1 ]
reg byte x [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ]
reg byte a [ main::$4 ]
reg byte a [ textbox::$32 ]
reg byte a [ textbox::$33 ]
reg byte y [ textbox::$15 ]
zp ZP_BYTE:10 [ 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:11 [ draw_window::z#0 draw_window::$3 draw_window::$30 textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ]
reg byte a [ draw_window::$39 ]
reg byte a [ draw_window::$40 ]
zp ZP_WORD:13 [ draw_window::q#0 draw_window::$5 draw_window::$34 textbox::$8 textbox::$31 ]
zp ZP_WORD:15 [ draw_window::$2 draw_window::$29 ]
zp ZP_WORD:17 [ 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:19 [ draw_window::z#2 ]
zp ZP_WORD:21 [ draw_window::$26 draw_window::$35 ]
reg byte a [ draw_window::$42 ]
reg byte a [ draw_window::$43 ]
zp ZP_WORD:23 [ draw_window::z#1 draw_window::$20 draw_window::$32 ]
zp ZP_WORD:25 [ draw_window::$19 draw_window::$31 ]
zp ZP_WORD:27 [ draw_window::$14 draw_window::$27 ]
zp ZP_WORD:29 [ draw_window::$15 draw_window::$28 ]


FINAL ASSEMBLER
Score: 153833

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

