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) @4
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:@7

(void()) main()
main: scope:[main]  from @7
  (byte) main::x#0 ← (byte) 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 ← (const byte*) text2
  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 ← (word) 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 ← (const byte*) text
  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 ← (const byte*) text
  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 ← (const byte*) text
  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

(void()) textbox((byte) textbox::x1 , (byte) textbox::y1 , (byte) textbox::x2 , (byte) textbox::y2 , (byte*) textbox::text)
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
  (word~) textbox::$3 ← ((word)) (byte) textbox::y#0
  (number~) textbox::$4 ← (word~) textbox::$3 * (number) $28
  (word) textbox::z#0 ← (number~) textbox::$4
  (byte) textbox::i#0 ← (byte) 0
  (bool~) textbox::$5 ← (byte) textbox::x#0 == (byte) textbox::x2#5
  (bool~) textbox::$6 ← (byte) textbox::y#0 == (byte) textbox::y2#5
  (bool~) textbox::$7 ← (bool~) textbox::$5 || (bool~) textbox::$6
  (bool~) textbox::$8 ← ! (bool~) textbox::$7
  if((bool~) textbox::$8) 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::$9 ← (word) textbox::z#3 + (byte) textbox::x#4
  *((const byte*) screen + (word~) textbox::$9) ← *((byte*) textbox::text#4 + (byte) textbox::i#2)
  (bool~) textbox::$10 ← *((byte*) textbox::text#4 + (byte) textbox::i#2) == (number) $20
  (bool~) textbox::$11 ← ! (bool~) textbox::$10
  if((bool~) textbox::$11) 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::$25 ← (byte) textbox::x#1 == (byte) textbox::x2#6
  (bool~) textbox::$26 ← ! (bool~) textbox::$25
  if((bool~) textbox::$26) 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 ← (byte) 0
  (number~) textbox::$12 ← (byte) textbox::i#4 + (number) 1
  (byte) textbox::ls#0 ← (number~) textbox::$12
  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::$13 ← *((byte*) textbox::text#5 + (byte) textbox::ls#2) != (number) $20
  (bool~) textbox::$14 ← *((byte*) textbox::text#5 + (byte) textbox::ls#2) != (number) 0
  (bool~) textbox::$15 ← (bool~) textbox::$13 && (bool~) textbox::$14
  if((bool~) textbox::$15) 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::$16 ← (byte) textbox::c#3 + (byte) textbox::x#6
  (bool~) textbox::$17 ← (byte~) textbox::$16 >= (byte) textbox::x2#7
  (byte~) textbox::$18 ← (byte) textbox::x2#7 - (byte) textbox::x1#6
  (bool~) textbox::$19 ← (byte) textbox::c#3 < (byte~) textbox::$18
  (bool~) textbox::$20 ← (bool~) textbox::$17 && (bool~) textbox::$19
  (bool~) textbox::$21 ← ! (bool~) textbox::$20
  if((bool~) textbox::$21) 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::$22 ← (byte) textbox::y#1 == (byte) textbox::y2#6
  (bool~) textbox::$23 ← ! (bool~) textbox::$22
  if((bool~) textbox::$23) 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::$24 ← (byte) textbox::y#4 * (number) $28
  (word) textbox::z#1 ← (number~) textbox::$24
  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::$31 ← *((byte*) textbox::text#6 + (byte) textbox::i#5) != (number) 0
  if((bool~) textbox::$31) 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::$27 ← (byte) textbox::x1#8 + (number) 1
  (byte) textbox::x#3 ← (number~) textbox::$27
  (byte) textbox::y#2 ← ++ (byte) textbox::y#5
  (bool~) textbox::$28 ← (byte) textbox::y#2 == (byte) textbox::y2#7
  (bool~) textbox::$29 ← ! (bool~) textbox::$28
  if((bool~) textbox::$29) 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::$30 ← (byte) textbox::y#6 * (number) $28
  (word) textbox::z#2 ← (number~) textbox::$30
  to:textbox::@17

(void()) draw_window((byte) draw_window::x1 , (byte) draw_window::y1 , (byte) draw_window::x2 , (byte) draw_window::y2)
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
  *((const byte*) screen + (word~) draw_window::$14) ← (number) $43
  (word~) draw_window::$15 ← (word) draw_window::q#1 + (byte) draw_window::x#3
  *((const byte*) screen + (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
  *((const byte*) screen + (word~) draw_window::$2) ← (number) $55
  (word~) draw_window::$3 ← (word) draw_window::z#4 + (byte) draw_window::x2#2
  *((const byte*) screen + (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
  *((const byte*) screen + (word~) draw_window::$19) ← (number) $42
  (word~) draw_window::$20 ← (word) draw_window::z#1 + (byte) draw_window::x2#3
  *((const byte*) screen + (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
  *((const byte*) screen + (word~) draw_window::$4) ← (number) $4a
  (word~) draw_window::$5 ← (word) draw_window::q#2 + (byte) draw_window::x2#4
  *((const byte*) screen + (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
  *((const byte*) screen + (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 @begin
  call main 
  to:@8
@8: scope:[]  from @7
  to:@end
@end: scope:[]  from @8

SYMBOL TABLE SSA
(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
(const byte*) screen = (byte*)(number) $400
(const byte*) text[]  = (byte*) "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 byte*) text2[]  = (byte*) "textbox by scan of desire"
(void()) textbox((byte) textbox::x1 , (byte) textbox::y1 , (byte) textbox::x2 , (byte) textbox::y2 , (byte*) textbox::text)
(number~) textbox::$1
(bool~) textbox::$10
(bool~) textbox::$11
(number~) textbox::$12
(bool~) textbox::$13
(bool~) textbox::$14
(bool~) textbox::$15
(byte~) textbox::$16
(bool~) textbox::$17
(byte~) textbox::$18
(bool~) textbox::$19
(number~) textbox::$2
(bool~) textbox::$20
(bool~) textbox::$21
(bool~) textbox::$22
(bool~) textbox::$23
(number~) textbox::$24
(bool~) textbox::$25
(bool~) textbox::$26
(number~) textbox::$27
(bool~) textbox::$28
(bool~) textbox::$29
(word~) textbox::$3
(number~) textbox::$30
(bool~) textbox::$31
(number~) textbox::$4
(bool~) textbox::$5
(bool~) textbox::$6
(bool~) textbox::$7
(bool~) textbox::$8
(word~) 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) $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 (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::$4 ← (word~) textbox::$3 * (number) $28
Adding number conversion cast (unumber) textbox::$4 in (number~) textbox::$4 ← (word~) textbox::$3 * (unumber)(number) $28
Adding number conversion cast (unumber) $20 in (bool~) textbox::$10 ← *((byte*) textbox::text#4 + (byte) textbox::i#2) == (number) $20
Adding number conversion cast (unumber) 1 in (number~) textbox::$12 ← (byte) textbox::i#4 + (number) 1
Adding number conversion cast (unumber) textbox::$12 in (number~) textbox::$12 ← (byte) textbox::i#4 + (unumber)(number) 1
Adding number conversion cast (unumber) $20 in (bool~) textbox::$13 ← *((byte*) textbox::text#5 + (byte) textbox::ls#2) != (number) $20
Adding number conversion cast (unumber) 0 in (bool~) textbox::$14 ← *((byte*) textbox::text#5 + (byte) textbox::ls#2) != (number) 0
Adding number conversion cast (unumber) $28 in (number~) textbox::$24 ← (byte) textbox::y#4 * (number) $28
Adding number conversion cast (unumber) textbox::$24 in (number~) textbox::$24 ← (byte) textbox::y#4 * (unumber)(number) $28
Adding number conversion cast (unumber) 0 in (bool~) textbox::$31 ← *((byte*) textbox::text#6 + (byte) textbox::i#5) != (number) 0
Adding number conversion cast (unumber) 1 in (number~) textbox::$27 ← (byte) textbox::x1#8 + (number) 1
Adding number conversion cast (unumber) textbox::$27 in (number~) textbox::$27 ← (byte) textbox::x1#8 + (unumber)(number) 1
Adding number conversion cast (unumber) $28 in (number~) textbox::$30 ← (byte) textbox::y#6 * (number) $28
Adding number conversion cast (unumber) textbox::$30 in (number~) textbox::$30 ← (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 *((const byte*) screen + (word~) draw_window::$14) ← (number) $43
Adding number conversion cast (unumber) $43 in *((const byte*) screen + (word~) draw_window::$15) ← (number) $43
Adding number conversion cast (unumber) $55 in *((const byte*) screen + (word~) draw_window::$2) ← (number) $55
Adding number conversion cast (unumber) $49 in *((const byte*) screen + (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 *((const byte*) screen + (word~) draw_window::$19) ← (number) $42
Adding number conversion cast (unumber) $42 in *((const byte*) screen + (word~) draw_window::$20) ← (number) $42
Adding number conversion cast (unumber) $4a in *((const byte*) screen + (word~) draw_window::$4) ← (number) $4a
Adding number conversion cast (unumber) $4b in *((const byte*) screen + (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 *((const byte*) screen + (word~) draw_window::$26) ← (number) $20
Successful SSA optimization PassNAddNumberTypeConversions
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 (word~) textbox::$3 ← (word)(byte) textbox::y#0
Inlining cast *((const byte*) screen + (word~) draw_window::$14) ← (unumber)(number) $43
Inlining cast *((const byte*) screen + (word~) draw_window::$15) ← (unumber)(number) $43
Inlining cast *((const byte*) screen + (word~) draw_window::$2) ← (unumber)(number) $55
Inlining cast *((const byte*) screen + (word~) draw_window::$3) ← (unumber)(number) $49
Inlining cast *((const byte*) screen + (word~) draw_window::$19) ← (unumber)(number) $42
Inlining cast *((const byte*) screen + (word~) draw_window::$20) ← (unumber)(number) $42
Inlining cast *((const byte*) screen + (word~) draw_window::$4) ← (unumber)(number) $4a
Inlining cast *((const byte*) screen + (word~) draw_window::$5) ← (unumber)(number) $4b
Inlining cast *((const byte*) screen + (word~) draw_window::$26) ← (unumber)(number) $20
Successful SSA optimization Pass2InlineCast
Simplifying constant pointer cast (byte*) 1024
Simplifying constant integer cast $f
Simplifying constant integer cast 1
Simplifying constant integer cast $a
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 $20
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) $f
Finalized unsigned number type (byte) 1
Finalized unsigned number type (byte) $a
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) $20
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 word in (unumber~) textbox::$4 ← (word~) textbox::$3 * (byte) $28
Inferred type updated to byte in (unumber~) textbox::$12 ← (byte) textbox::i#4 + (byte) 1
Inferred type updated to byte in (unumber~) textbox::$24 ← (byte) textbox::y#4 * (byte) $28
Inferred type updated to byte in (unumber~) textbox::$27 ← (byte) textbox::x1#8 + (byte) 1
Inferred type updated to byte in (unumber~) textbox::$30 ← (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 [68] (bool~) textbox::$11 ← *((byte*) textbox::text#4 + (byte) textbox::i#2) != (byte) $20 from [67] (bool~) textbox::$10 ← *((byte*) textbox::text#4 + (byte) textbox::i#2) == (byte) $20
Inversing boolean not [74] (bool~) textbox::$26 ← (byte) textbox::x#1 != (byte) textbox::x2#6 from [73] (bool~) textbox::$25 ← (byte) textbox::x#1 == (byte) textbox::x2#6
Inversing boolean not [100] (bool~) textbox::$23 ← (byte) textbox::y#1 != (byte) textbox::y2#6 from [99] (bool~) textbox::$22 ← (byte) textbox::y#1 == (byte) textbox::y2#6
Inversing boolean not [113] (bool~) textbox::$29 ← (byte) textbox::y#2 != (byte) textbox::y2#7 from [112] (bool~) textbox::$28 ← (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 = (word~) textbox::$4 
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::$12 
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::$24 
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::$27 
Alias (byte) textbox::y#2 = (byte) textbox::y#6 
Alias (word) textbox::z#2 = (byte~) textbox::$30 
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 [3] if((byte) main::x#2<(byte) $f) goto main::@2
Simple Condition (bool~) main::$8 [32] if((word) main::wait#2<(word) $88b8) goto main::@5
Simple Condition (bool~) textbox::$11 [58] if(*((byte*) textbox::text#12 + (byte) textbox::i#2)!=(byte) $20) goto textbox::@5
Simple Condition (bool~) textbox::$26 [63] if((byte) textbox::x#1!=(byte) textbox::x2#4) goto textbox::@17
Simple Condition (bool~) textbox::$23 [82] if((byte) textbox::y#1!=(byte) textbox::y2#4) goto textbox::@16
Simple Condition (bool~) textbox::$31 [86] if(*((byte*) textbox::text#12 + (byte) textbox::i#1)!=(byte) 0) goto textbox::@4
Simple Condition (bool~) textbox::$29 [90] if((byte) textbox::y#2!=(byte) textbox::y2#4) goto textbox::@18
Simple Condition (bool~) draw_window::$13 [98] if((byte) draw_window::x#2<(byte) draw_window::x2#0) goto draw_window::@3
Simple Condition (bool~) draw_window::$17 [111] if((byte) draw_window::y#2<(byte) draw_window::y2#0) goto draw_window::@9
Simple Condition (bool~) draw_window::$22 [132] if((byte) draw_window::y3#2<(byte) draw_window::y2#0) goto draw_window::@16
Simple Condition (bool~) draw_window::$25 [137] 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() [51] (bool~) textbox::$8 ← ! (bool~) textbox::$7
Rewriting || if()-condition to two if()s [50] (bool~) textbox::$7 ← (bool~) textbox::$5 || (bool~) textbox::$6
Rewriting && if()-condition to two if()s [69] (bool~) textbox::$15 ← (bool~) textbox::$13 && (bool~) textbox::$14
Rewriting ! if()-condition to reversed if() [78] (bool~) textbox::$21 ← ! (bool~) textbox::$20
Rewriting && if()-condition to two if()s [77] (bool~) textbox::$20 ← (bool~) textbox::$17 && (bool~) textbox::$19
Rewriting ! if()-condition to reversed if() [127] (bool~) draw_window::$11 ← ! (bool~) draw_window::$10
Rewriting && if()-condition to two if()s [126] (bool~) draw_window::$10 ← (bool~) draw_window::$7 && (bool~) draw_window::$9
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant (const byte) main::x#0 = 0
Constant (const byte*) textbox::text#0 = text2
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::text#1 = text
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::text#2 = text
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::text#3 = text
Constant (const byte) textbox::i#0 = 0
Constant (const byte) textbox::c#0 = 0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [35] if(true) goto main::@13
Successful SSA optimization Pass2ConstantIfs
De-inlining pointer[w] to *(pointer+w)   [56] *((const byte*) screen + (word~) textbox::$9) ← *((byte*) textbox::text#12 + (byte) textbox::i#2)
De-inlining pointer[w] to *(pointer+w)   [100] *((const byte*) screen + (word~) draw_window::$14) ← (byte) $43
De-inlining pointer[w] to *(pointer+w)   [102] *((const byte*) screen + (word~) draw_window::$15) ← (byte) $43
De-inlining pointer[w] to *(pointer+w)   [105] *((const byte*) screen + (word~) draw_window::$2) ← (byte) $55
De-inlining pointer[w] to *(pointer+w)   [107] *((const byte*) screen + (word~) draw_window::$3) ← (byte) $49
De-inlining pointer[w] to *(pointer+w)   [114] *((const byte*) screen + (word~) draw_window::$19) ← (byte) $42
De-inlining pointer[w] to *(pointer+w)   [116] *((const byte*) screen + (word~) draw_window::$20) ← (byte) $42
De-inlining pointer[w] to *(pointer+w)   [119] *((const byte*) screen + (word~) draw_window::$4) ← (byte) $4a
De-inlining pointer[w] to *(pointer+w)   [121] *((const byte*) screen + (word~) draw_window::$5) ← (byte) $4b
De-inlining pointer[w] to *(pointer+w)   [139] *((const byte*) screen + (word~) draw_window::$26) ← (byte) $20
Successful SSA optimization Pass2DeInlineWordDerefIdx
Removing unused block main::@return
Successful SSA optimization Pass2EliminateUnusedBlocks
Simple Condition (bool~) textbox::$5 [27] if((byte) textbox::x#0==(byte) textbox::x2#4) goto textbox::@return
Simple Condition (bool~) textbox::$13 [42] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) $20) goto textbox::@26
Simple Condition (bool~) textbox::$17 [49] if((byte~) textbox::$16>=(byte) textbox::x2#4) goto textbox::@27
Simple Condition (bool~) draw_window::$7 [98] if((byte~) draw_window::$6>(byte) 1) goto draw_window::@27
Simple Condition (bool~) textbox::$6 [113] if((byte) textbox::y#0==(byte) textbox::y2#4) goto textbox::@return
Simple Condition (bool~) textbox::$14 [114] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)!=(byte) 0) goto textbox::@7
Simple Condition (bool~) textbox::$19 [115] if((byte) textbox::c#2<(byte~) textbox::$18) goto textbox::@12
Simple Condition (bool~) draw_window::$9 [116] if((byte~) draw_window::$8>(byte) 1) goto draw_window::@14
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [42] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@8
Negating conditional jump and destination [49] if((byte~) textbox::$16<(byte) textbox::x2#4) goto textbox::@5
Negating conditional jump and destination [98] if((byte~) draw_window::$6<=(byte) 1) goto draw_window::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Rewriting conditional comparison [98] if((byte~) draw_window::$6<=(byte) 1) goto draw_window::@return
Rewriting conditional comparison [116] 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[24] (word) textbox::z#0 ← (word~) textbox::$3 * (byte) $28
Rewriting multiplication to use shift and addition[46] (word) textbox::z#1 ← (byte) textbox::y#1 * (byte) $28
Rewriting multiplication to use shift and addition[52] (word) textbox::z#2 ← (byte) textbox::y#2 * (byte) $28
Rewriting multiplication to use shift and addition[53] (word) draw_window::z#0 ← (byte) draw_window::y1#0 * (byte) $28
Rewriting multiplication to use shift and addition[54] (word) draw_window::q#0 ← (byte) draw_window::y2#0 * (byte) $28
Rewriting multiplication to use shift and addition[74] (word) draw_window::z#1 ← (byte) draw_window::y#2 * (byte) $28
Rewriting multiplication to use shift and addition[94] (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::text#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::text#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::text#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::text#3
Inlining constant with var siblings (const byte) textbox::i#0
Inlining constant with var siblings (const byte) textbox::c#0
Constant inlined main::wait#0 = (word) 0
Constant inlined main::x#0 = (byte) 0
Constant inlined textbox::text#2 = (const byte*) text
Constant inlined textbox::text#3 = (const byte*) text
Constant inlined textbox::text#0 = (const byte*) text2
Constant inlined textbox::text#1 = (const byte*) text
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 = (word~) textbox::$35 
Alias (word) textbox::z#1 = (byte~) textbox::$38 
Alias (word) textbox::z#2 = (byte~) textbox::$41 
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 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 @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::@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
Adding NOP phi() at start of main::@15
CALL GRAPH
Calls in [] to main:2 
Calls in [main] to textbox:9 textbox:11 textbox:13 textbox:25 
Calls in [textbox] to draw_window:38 

Created 23 initial phi equivalence classes
Coalesced [21] textbox::x1#17 ← textbox::x1#0
Coalesced [22] textbox::y1#6 ← textbox::y1#0
Coalesced [23] textbox::x2#17 ← textbox::x2#0
Coalesced [24] textbox::y2#17 ← textbox::y2#0
Coalesced [30] main::x#8 ← main::x#1
Coalesced [32] main::wait#4 ← main::wait#1
Coalesced [47] textbox::z#11 ← textbox::z#0
Coalesced [48] textbox::x#14 ← textbox::x#0
Coalesced [49] textbox::y#15 ← textbox::y#0
Coalesced [56] textbox::ls#4 ← textbox::ls#0
Coalesced [75] textbox::z#15 ← textbox::z#2
Coalesced [76] textbox::x#18 ← textbox::x#12
Coalesced [77] textbox::y#19 ← textbox::y#2
Coalesced [80] textbox::z#10 ← textbox::z#4
Coalesced [81] textbox::x#13 ← textbox::x#7
Coalesced [82] textbox::i#13 ← textbox::i#1
Coalesced [83] textbox::y#14 ← textbox::y#11
Coalesced [84] textbox::z#16 ← textbox::z#5
Coalesced [85] textbox::x#19 ← textbox::x#1
Coalesced [86] textbox::y#20 ← textbox::y#5
Not coalescing [92] textbox::x#15 ← textbox::x1#4
Coalesced [93] textbox::y#16 ← textbox::y#1
Coalesced [94] textbox::z#12 ← textbox::z#1
Coalesced [95] textbox::x#17 ← textbox::x#10
Coalesced (already) [96] textbox::y#18 ← textbox::y#12
Coalesced (already) [97] textbox::z#14 ← textbox::z#3
Coalesced [100] textbox::ls#5 ← textbox::ls#1
Coalesced [101] textbox::c#5 ← textbox::c#1
Coalesced (already) [102] textbox::x#16 ← textbox::x#10
Coalesced (already) [103] textbox::y#17 ← textbox::y#12
Coalesced (already) [104] textbox::z#13 ← textbox::z#3
Coalesced [112] draw_window::x#4 ← draw_window::x#0
Coalesced [122] draw_window::y#4 ← draw_window::y#0
Coalesced [137] draw_window::y3#7 ← draw_window::y3#0
Coalesced [144] draw_window::x3#4 ← draw_window::x3#0
Coalesced [148] draw_window::y3#8 ← draw_window::y3#1
Coalesced [153] draw_window::x3#5 ← draw_window::x3#1
Coalesced [164] draw_window::y#5 ← draw_window::y#1
Coalesced [172] draw_window::x#5 ← draw_window::x#1
Coalesced down to 17 phi equivalence classes
Culled Empty Block (label) @8
Culled Empty Block (label) main::@18
Culled Empty Block (label) main::@15
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()

(void()) main()
main: scope:[main]  from @1
  [4] phi()
  to:main::@1
main::@1: scope:[main]  from main main::@6
  [5] (byte) main::x#2 ← phi( main/(byte) 0 main::@6/(byte) main::x#1 )
  [6] if((byte) main::x#2<(byte) $f) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@1
  [7] phi()
  [8] call textbox 
  to:main::@8
main::@8: scope:[main]  from main::@3
  [9] phi()
  [10] call textbox 
  to:main::@9
main::@9: scope:[main]  from main::@8
  [11] phi()
  [12] call textbox 
  to:main::@7
main::@7: scope:[main]  from main::@7 main::@9
  [13] phi()
  to:main::@7
main::@2: scope:[main]  from main::@1
  [14] (byte~) main::$4 ← (byte) main::x#2 + (byte) main::x#2
  [15] (byte) textbox::x2#0 ← (byte~) main::$4 + (byte) 1
  [16] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a
  [17] (byte) textbox::x1#0 ← (byte) main::x#2
  [18] (byte) textbox::y1#0 ← (byte) main::x#2
  [19] call textbox 
  to:main::@4
main::@4: scope:[main]  from main::@2 main::@5
  [20] (word) main::wait#2 ← phi( main::@2/(word) 0 main::@5/(word) main::wait#1 )
  [21] if((word) main::wait#2<(word) $88b8) goto main::@5
  to:main::@6
main::@6: scope:[main]  from main::@4
  [22] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2
  to:main::@1
main::@5: scope:[main]  from main::@4
  [23] (word) main::wait#1 ← ++ (word) main::wait#2
  to:main::@4

(void()) textbox((byte) textbox::x1 , (byte) textbox::y1 , (byte) textbox::x2 , (byte) textbox::y2 , (byte*) textbox::text)
textbox: scope:[textbox]  from main::@2 main::@3 main::@8 main::@9
  [24] (byte*) textbox::text#12 ← phi( main::@8/(const byte*) text main::@9/(const byte*) text main::@2/(const byte*) text2 main::@3/(const byte*) text )
  [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] (word~) textbox::$3 ← (word)(byte) textbox::y#0
  [33] (word~) textbox::$33 ← (word~) textbox::$3 << (byte) 2
  [34] (word~) textbox::$34 ← (word~) textbox::$33 + (word~) textbox::$3
  [35] (word) textbox::z#0 ← (word~) textbox::$34 << (byte) 3
  [36] if((byte) textbox::x#0==(byte) textbox::x2#4) goto textbox::@return
  to:textbox::@13
textbox::@13: scope:[textbox]  from textbox::@12
  [37] if((byte) textbox::y#0==(byte) textbox::y2#4) goto textbox::@return
  to:textbox::@1
textbox::@1: scope:[textbox]  from textbox::@13 textbox::@8
  [38] (byte) textbox::y#12 ← phi( textbox::@8/(byte) textbox::y#11 textbox::@13/(byte) textbox::y#0 )
  [38] (byte) textbox::i#2 ← phi( textbox::@8/(byte) textbox::i#1 textbox::@13/(byte) 0 )
  [38] (byte) textbox::x#10 ← phi( textbox::@8/(byte) textbox::x#7 textbox::@13/(byte) textbox::x#0 )
  [38] (word) textbox::z#3 ← phi( textbox::@8/(word) textbox::z#4 textbox::@13/(word) textbox::z#0 )
  [39] (word~) textbox::$9 ← (word) textbox::z#3 + (byte) textbox::x#10
  [40] (byte*~) textbox::$32 ← (const byte*) screen + (word~) textbox::$9
  [41] *((byte*~) textbox::$32) ← *((byte*) textbox::text#12 + (byte) textbox::i#2)
  [42] if(*((byte*) textbox::text#12 + (byte) textbox::i#2)!=(byte) $20) goto textbox::@2
  to:textbox::@10
textbox::@10: scope:[textbox]  from textbox::@1
  [43] (byte) textbox::ls#0 ← (byte) textbox::i#2 + (byte) 1
  to:textbox::@3
textbox::@3: scope:[textbox]  from textbox::@10 textbox::@4
  [44] (byte) textbox::c#2 ← phi( textbox::@10/(byte) 0 textbox::@4/(byte) textbox::c#1 )
  [44] (byte) textbox::ls#2 ← phi( textbox::@10/(byte) textbox::ls#0 textbox::@4/(byte) textbox::ls#1 )
  [45] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@5
  to:textbox::@14
textbox::@14: scope:[textbox]  from textbox::@3
  [46] 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
  [47] (byte~) textbox::$16 ← (byte) textbox::c#2 + (byte) textbox::x#10
  [48] (byte~) textbox::$18 ← (byte) textbox::x2#4 - (byte) textbox::x1#4
  [49] if((byte~) textbox::$16<(byte) textbox::x2#4) goto textbox::@2
  to:textbox::@15
textbox::@15: scope:[textbox]  from textbox::@5
  [50] if((byte) textbox::c#2<(byte~) textbox::$18) goto textbox::@6
  to:textbox::@2
textbox::@2: scope:[textbox]  from textbox::@1 textbox::@15 textbox::@5 textbox::@7
  [51] (word) textbox::z#5 ← phi( textbox::@7/(word) textbox::z#1 textbox::@1/(word) textbox::z#3 textbox::@5/(word) textbox::z#3 )
  [51] (byte) textbox::y#5 ← phi( textbox::@7/(byte) textbox::y#1 textbox::@1/(byte) textbox::y#12 textbox::@5/(byte) textbox::y#12 )
  [51] (byte) textbox::x#5 ← phi( textbox::@7/(byte) textbox::x#15 textbox::@1/(byte) textbox::x#10 textbox::@5/(byte) textbox::x#10 )
  [52] (byte) textbox::i#1 ← ++ (byte) textbox::i#2
  [53] (byte) textbox::x#1 ← ++ (byte) textbox::x#5
  [54] if((byte) textbox::x#1!=(byte) textbox::x2#4) goto textbox::@8
  to:textbox::@11
textbox::@11: scope:[textbox]  from textbox::@2
  [55] (byte) textbox::x#12 ← (byte) textbox::x1#4 + (byte) 1
  [56] (byte) textbox::y#2 ← ++ (byte) textbox::y#5
  [57] 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
  [58] return 
  to:@return
textbox::@9: scope:[textbox]  from textbox::@11
  [59] (byte~) textbox::$39 ← (byte) textbox::y#2 << (byte) 2
  [60] (byte~) textbox::$40 ← (byte~) textbox::$39 + (byte) textbox::y#2
  [61] (word) textbox::z#2 ← (byte~) textbox::$40 << (byte) 3
  to:textbox::@8
textbox::@8: scope:[textbox]  from textbox::@2 textbox::@9
  [62] (byte) textbox::y#11 ← phi( textbox::@9/(byte) textbox::y#2 textbox::@2/(byte) textbox::y#5 )
  [62] (byte) textbox::x#7 ← phi( textbox::@9/(byte) textbox::x#12 textbox::@2/(byte) textbox::x#1 )
  [62] (word) textbox::z#4 ← phi( textbox::@9/(word) textbox::z#2 textbox::@2/(word) textbox::z#5 )
  [63] if(*((byte*) textbox::text#12 + (byte) textbox::i#1)!=(byte) 0) goto textbox::@1
  to:textbox::@return
textbox::@6: scope:[textbox]  from textbox::@15
  [64] (byte) textbox::y#1 ← ++ (byte) textbox::y#12
  [65] if((byte) textbox::y#1!=(byte) textbox::y2#4) goto textbox::@7
  to:textbox::@return
textbox::@7: scope:[textbox]  from textbox::@6
  [66] (byte~) textbox::$36 ← (byte) textbox::y#1 << (byte) 2
  [67] (byte~) textbox::$37 ← (byte~) textbox::$36 + (byte) textbox::y#1
  [68] (word) textbox::z#1 ← (byte~) textbox::$37 << (byte) 3
  [69] (byte) textbox::x#15 ← (byte) textbox::x1#4
  to:textbox::@2
textbox::@4: scope:[textbox]  from textbox::@14
  [70] (byte) textbox::ls#1 ← ++ (byte) textbox::ls#2
  [71] (byte) textbox::c#1 ← ++ (byte) textbox::c#2
  to:textbox::@3

(void()) draw_window((byte) draw_window::x1 , (byte) draw_window::y1 , (byte) draw_window::x2 , (byte) draw_window::y2)
draw_window: scope:[draw_window]  from textbox
  [72] (byte~) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2
  [73] (byte~) draw_window::$37 ← (byte~) draw_window::$36 + (byte) draw_window::y1#0
  [74] (word) draw_window::z#0 ← (byte~) draw_window::$37 << (byte) 3
  [75] (byte~) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2
  [76] (byte~) draw_window::$40 ← (byte~) draw_window::$39 + (byte) draw_window::y2#0
  [77] (word) draw_window::q#0 ← (byte~) draw_window::$40 << (byte) 3
  [78] (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
  [79] (byte) draw_window::x#2 ← phi( draw_window/(byte) draw_window::x#0 draw_window::@2/(byte) draw_window::x#1 )
  [80] 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
  [81] (word~) draw_window::$2 ← (word) draw_window::z#0 + (byte) draw_window::x1#0
  [82] (byte*~) draw_window::$29 ← (const byte*) screen + (word~) draw_window::$2
  [83] *((byte*~) draw_window::$29) ← (byte) $55
  [84] (word~) draw_window::$3 ← (word) draw_window::z#0 + (byte) draw_window::x2#0
  [85] (byte*~) draw_window::$30 ← (const byte*) screen + (word~) draw_window::$3
  [86] *((byte*~) draw_window::$30) ← (byte) $49
  [87] (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
  [88] (byte) draw_window::y#2 ← phi( draw_window::@3/(byte) draw_window::y#0 draw_window::@5/(byte) draw_window::y#1 )
  [89] 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
  [90] (word~) draw_window::$4 ← (word) draw_window::q#0 + (byte) draw_window::x1#0
  [91] (byte*~) draw_window::$33 ← (const byte*) screen + (word~) draw_window::$4
  [92] *((byte*~) draw_window::$33) ← (byte) $4a
  [93] (word~) draw_window::$5 ← (word) draw_window::q#0 + (byte) draw_window::x2#0
  [94] (byte*~) draw_window::$34 ← (const byte*) screen + (word~) draw_window::$5
  [95] *((byte*~) draw_window::$34) ← (byte) $4b
  [96] (byte~) draw_window::$6 ← (byte) draw_window::x2#0 - (byte) draw_window::x1#0
  [97] (byte~) draw_window::$8 ← (byte) draw_window::y2#0 - (byte) draw_window::y1#0
  [98] 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
  [99] 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
  [100] return 
  to:@return
draw_window::@7: scope:[draw_window]  from draw_window::@13
  [101] (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
  [102] (byte) draw_window::y3#2 ← phi( draw_window::@7/(byte) draw_window::y3#0 draw_window::@12/(byte) draw_window::y3#1 )
  [103] 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
  [104] (byte~) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2
  [105] (byte~) draw_window::$46 ← (byte~) draw_window::$45 + (byte) draw_window::y3#2
  [106] (word) draw_window::z#2 ← (byte~) draw_window::$46 << (byte) 3
  [107] (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
  [108] (byte) draw_window::x3#2 ← phi( draw_window::@9/(byte) draw_window::x3#0 draw_window::@11/(byte) draw_window::x3#1 )
  [109] 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
  [110] (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#2
  to:draw_window::@8
draw_window::@11: scope:[draw_window]  from draw_window::@10
  [111] (word~) draw_window::$26 ← (word) draw_window::z#2 + (byte) draw_window::x3#2
  [112] (byte*~) draw_window::$35 ← (const byte*) screen + (word~) draw_window::$26
  [113] *((byte*~) draw_window::$35) ← (byte) $20
  [114] (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2
  to:draw_window::@10
draw_window::@5: scope:[draw_window]  from draw_window::@4
  [115] (byte~) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2
  [116] (byte~) draw_window::$43 ← (byte~) draw_window::$42 + (byte) draw_window::y#2
  [117] (word) draw_window::z#1 ← (byte~) draw_window::$43 << (byte) 3
  [118] (word~) draw_window::$19 ← (word) draw_window::z#1 + (byte) draw_window::x1#0
  [119] (byte*~) draw_window::$31 ← (const byte*) screen + (word~) draw_window::$19
  [120] *((byte*~) draw_window::$31) ← (byte) $42
  [121] (word~) draw_window::$20 ← (word) draw_window::z#1 + (byte) draw_window::x2#0
  [122] (byte*~) draw_window::$32 ← (const byte*) screen + (word~) draw_window::$20
  [123] *((byte*~) draw_window::$32) ← (byte) $42
  [124] (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2
  to:draw_window::@4
draw_window::@2: scope:[draw_window]  from draw_window::@1
  [125] (word~) draw_window::$14 ← (word) draw_window::z#0 + (byte) draw_window::x#2
  [126] (byte*~) draw_window::$27 ← (const byte*) screen + (word~) draw_window::$14
  [127] *((byte*~) draw_window::$27) ← (byte) $43
  [128] (word~) draw_window::$15 ← (word) draw_window::q#0 + (byte) draw_window::x#2
  [129] (byte*~) draw_window::$28 ← (const byte*) screen + (word~) draw_window::$15
  [130] *((byte*~) draw_window::$28) ← (byte) $43
  [131] (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 202.0
(word) main::wait#2 151.5
(byte) main::x
(byte) main::x#1 22.0
(byte) main::x#2 8.0
(void()) textbox((byte) textbox::x1 , (byte) textbox::y1 , (byte) textbox::x2 , (byte) textbox::y2 , (byte*) textbox::text)
(byte~) textbox::$16 101.0
(byte~) textbox::$18 101.0
(word~) textbox::$3 3.0
(byte*~) textbox::$32 202.0
(word~) textbox::$33 4.0
(word~) textbox::$34 4.0
(byte~) textbox::$36 202.0
(byte~) textbox::$37 202.0
(byte~) textbox::$39 202.0
(byte~) textbox::$40 202.0
(word~) textbox::$9 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 49.04255319148936
(byte) textbox::x
(byte) textbox::x#0 0.8571428571428571
(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.76595744680851
(byte) textbox::x2
(byte) textbox::x2#0 5.5
(byte) textbox::x2#4 6.76595744680851
(byte) textbox::y
(byte) textbox::y#0 0.75
(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.617021276595745
(word) textbox::z
(word) textbox::z#0 1.3333333333333333
(word) textbox::z#1 101.0
(word) textbox::z#2 202.0
(word) textbox::z#3 29.000000000000004
(word) textbox::z#4 151.5
(word) textbox::z#5 101.0

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

INITIAL ASM
Target platform is c64basic / MOS6502X
  // 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::@1 [phi:main->main::@1]
  __b1_from_main:
    // [5] phi (byte) main::x#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z x
    jmp __b1
    // main::@1
  __b1:
    // [6] if((byte) main::x#2<(byte) $f) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 
    lda.z x
    cmp #$f
    bcc __b2
    // [7] phi from main::@1 to main::@3 [phi:main::@1->main::@3]
  __b3_from___b1:
    jmp __b3
    // main::@3
  __b3:
    // [8] 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 [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
    // [9] phi from main::@3 to main::@8 [phi:main::@3->main::@8]
  __b8_from___b3:
    jmp __b8
    // main::@8
  __b8:
    // [10] 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 [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
    // [11] phi from main::@8 to main::@9 [phi:main::@8->main::@9]
  __b9_from___b8:
    jmp __b9
    // main::@9
  __b9:
    // [12] 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 [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
    // [13] 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
    // main::@2
  __b2:
    // [14] (byte~) main::$4 ← (byte) main::x#2 + (byte) main::x#2 -- vbuz1=vbuz2_plus_vbuz2 
    lda.z x
    asl
    sta.z __4
    // [15] (byte) textbox::x2#0 ← (byte~) main::$4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z __4
    iny
    sty.z textbox.x2
    // [16] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a -- vbuz1=vbuz2_plus_vbuc1 
    lax.z x
    axs #-[$a]
    stx.z textbox.y2
    // [17] (byte) textbox::x1#0 ← (byte) main::x#2 -- vbuz1=vbuz2 
    lda.z x
    sta.z textbox.x1
    // [18] (byte) textbox::y1#0 ← (byte) main::x#2 -- vbuz1=vbuz2 
    lda.z x
    sta.z textbox.y1
    // [19] 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 [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
    // [20] phi from main::@2 to main::@4 [phi:main::@2->main::@4]
  __b4_from___b2:
    // [20] phi (word) main::wait#2 = (word) 0 [phi:main::@2->main::@4#0] -- vwuz1=vwuc1 
    lda #<0
    sta.z wait
    lda #>0
    sta.z wait+1
    jmp __b4
    // main::@4
  __b4:
    // [21] if((word) main::wait#2<(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
  !:
    jmp __b6
    // main::@6
  __b6:
    // [22] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2 -- vbuz1=vbuz1_plus_2 
    lda.z x
    clc
    adc #2
    sta.z x
    // [5] phi from main::@6 to main::@1 [phi:main::@6->main::@1]
  __b1_from___b6:
    // [5] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@6->main::@1#0] -- register_copy 
    jmp __b1
    // main::@5
  __b5:
    // [23] (word) main::wait#1 ← ++ (word) main::wait#2 -- vwuz1=_inc_vwuz1 
    inc.z wait
    bne !+
    inc.z wait+1
  !:
    // [20] phi from main::@5 to main::@4 [phi:main::@5->main::@4]
  __b4_from___b5:
    // [20] phi (word) main::wait#2 = (word) main::wait#1 [phi:main::@5->main::@4#0] -- register_copy 
    jmp __b4
}
  // textbox
// textbox(byte zp(5) x1, byte zp(6) y1, byte zp(7) x2, byte zp(8) y2, byte* zp(9) text)
textbox: {
    .label __3 = $1b
    .label __9 = $21
    .label __16 = $25
    .label __18 = $26
    .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
    // scan ahead to determine next word length
    .label c = $d
    .label text = 9
    .label __32 = $23
    .label __33 = $1d
    .label __34 = $1f
    .label __36 = $29
    .label __37 = $2a
    .label __39 = $27
    .label __40 = $28
    // [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] (word~) textbox::$3 ← (word)(byte) textbox::y#0 -- vwuz1=_word_vbuz2 
    lda.z y
    sta.z __3
    lda #0
    sta.z __3+1
    // [33] (word~) textbox::$33 ← (word~) textbox::$3 << (byte) 2 -- vwuz1=vwuz2_rol_2 
    lda.z __3
    asl
    sta.z __33
    lda.z __3+1
    rol
    sta.z __33+1
    asl.z __33
    rol.z __33+1
    // [34] (word~) textbox::$34 ← (word~) textbox::$33 + (word~) textbox::$3 -- vwuz1=vwuz2_plus_vwuz3 
    lda.z __33
    clc
    adc.z __3
    sta.z __34
    lda.z __33+1
    adc.z __3+1
    sta.z __34+1
    // [35] (word) textbox::z#0 ← (word~) textbox::$34 << (byte) 3 -- vwuz1=vwuz2_rol_3 
    lda.z __34
    asl
    sta.z z
    lda.z __34+1
    rol
    sta.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    // [36] 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:
    // [37] 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
    // [38] phi from textbox::@13 to textbox::@1 [phi:textbox::@13->textbox::@1]
  __b1_from___b13:
    // [38] phi (byte) textbox::y#12 = (byte) textbox::y#0 [phi:textbox::@13->textbox::@1#0] -- register_copy 
    // [38] phi (byte) textbox::i#2 = (byte) 0 [phi:textbox::@13->textbox::@1#1] -- vbuz1=vbuc1 
    lda #0
    sta.z i
    // [38] phi (byte) textbox::x#10 = (byte) textbox::x#0 [phi:textbox::@13->textbox::@1#2] -- register_copy 
    // [38] phi (word) textbox::z#3 = (word) textbox::z#0 [phi:textbox::@13->textbox::@1#3] -- register_copy 
    jmp __b1
    // [38] phi from textbox::@8 to textbox::@1 [phi:textbox::@8->textbox::@1]
  __b1_from___b8:
    // [38] phi (byte) textbox::y#12 = (byte) textbox::y#11 [phi:textbox::@8->textbox::@1#0] -- register_copy 
    // [38] phi (byte) textbox::i#2 = (byte) textbox::i#1 [phi:textbox::@8->textbox::@1#1] -- register_copy 
    // [38] phi (byte) textbox::x#10 = (byte) textbox::x#7 [phi:textbox::@8->textbox::@1#2] -- register_copy 
    // [38] phi (word) textbox::z#3 = (word) textbox::z#4 [phi:textbox::@8->textbox::@1#3] -- register_copy 
    jmp __b1
    // textbox::@1
  __b1:
    // [39] (word~) textbox::$9 ← (word) textbox::z#3 + (byte) textbox::x#10 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x
    clc
    adc.z z
    sta.z __9
    lda #0
    adc.z z+1
    sta.z __9+1
    // [40] (byte*~) textbox::$32 ← (const byte*) screen + (word~) textbox::$9 -- pbuz1=pbuc1_plus_vwuz2 
    lda.z __9
    clc
    adc #<screen
    sta.z __32
    lda.z __9+1
    adc #>screen
    sta.z __32+1
    // [41] *((byte*~) textbox::$32) ← *((byte*) textbox::text#12 + (byte) textbox::i#2) -- _deref_pbuz1=pbuz2_derefidx_vbuz3 
    ldy.z i
    lda (text),y
    ldy #0
    sta (__32),y
    // [42] 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:
    // [43] (byte) textbox::ls#0 ← (byte) textbox::i#2 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z i
    iny
    sty.z ls
    // [44] phi from textbox::@10 to textbox::@3 [phi:textbox::@10->textbox::@3]
  __b3_from___b10:
    // [44] phi (byte) textbox::c#2 = (byte) 0 [phi:textbox::@10->textbox::@3#0] -- vbuz1=vbuc1 
    lda #0
    sta.z c
    // [44] phi (byte) textbox::ls#2 = (byte) textbox::ls#0 [phi:textbox::@10->textbox::@3#1] -- register_copy 
    jmp __b3
    // textbox::@3
  __b3:
    // [45] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@5 -- pbuz1_derefidx_vbuz2_eq_vbuc1_then_la1 
    lda #$20
    ldy.z ls
    cmp (text),y
    beq __b5
    jmp __b14
    // textbox::@14
  __b14:
    // [46] 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:
    // [47] (byte~) textbox::$16 ← (byte) textbox::c#2 + (byte) textbox::x#10 -- vbuz1=vbuz2_plus_vbuz3 
    lda.z c
    clc
    adc.z x
    sta.z __16
    // [48] (byte~) textbox::$18 ← (byte) textbox::x2#4 - (byte) textbox::x1#4 -- vbuz1=vbuz2_minus_vbuz3 
    lda.z x2
    sec
    sbc.z x1
    sta.z __18
    // [49] if((byte~) textbox::$16<(byte) textbox::x2#4) goto textbox::@2 -- vbuz1_lt_vbuz2_then_la1 
    lda.z __16
    cmp.z x2
    bcc __b2_from___b5
    jmp __b15
    // textbox::@15
  __b15:
    // [50] if((byte) textbox::c#2<(byte~) textbox::$18) goto textbox::@6 -- vbuz1_lt_vbuz2_then_la1 
    lda.z c
    cmp.z __18
    bcc __b6
    // [51] phi from textbox::@15 to textbox::@2 [phi:textbox::@15->textbox::@2]
  __b2_from___b15:
    jmp __b2
    // [51] 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:
    // [51] phi (word) textbox::z#5 = (word) textbox::z#3 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#0] -- register_copy 
    // [51] phi (byte) textbox::y#5 = (byte) textbox::y#12 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#1] -- register_copy 
    // [51] 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:
    // [52] (byte) textbox::i#1 ← ++ (byte) textbox::i#2 -- vbuz1=_inc_vbuz1 
    inc.z i
    // [53] (byte) textbox::x#1 ← ++ (byte) textbox::x#5 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [54] 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:
    // [55] (byte) textbox::x#12 ← (byte) textbox::x1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z x1
    iny
    sty.z x
    // [56] (byte) textbox::y#2 ← ++ (byte) textbox::y#5 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [57] 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:
    // [58] return 
    rts
    // textbox::@9
  __b9:
    // [59] (byte~) textbox::$39 ← (byte) textbox::y#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y
    asl
    asl
    sta.z __39
    // [60] (byte~) textbox::$40 ← (byte~) textbox::$39 + (byte) textbox::y#2 -- vbuz1=vbuz2_plus_vbuz3 
    lda.z __39
    clc
    adc.z y
    sta.z __40
    // [61] (word) textbox::z#2 ← (byte~) textbox::$40 << (byte) 3 -- vwuz1=vbuz2_rol_3 
    lda.z __40
    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
    // [62] phi from textbox::@2 textbox::@9 to textbox::@8 [phi:textbox::@2/textbox::@9->textbox::@8]
  __b8_from___b2:
  __b8_from___b9:
    // [62] phi (byte) textbox::y#11 = (byte) textbox::y#5 [phi:textbox::@2/textbox::@9->textbox::@8#0] -- register_copy 
    // [62] phi (byte) textbox::x#7 = (byte) textbox::x#1 [phi:textbox::@2/textbox::@9->textbox::@8#1] -- register_copy 
    // [62] phi (word) textbox::z#4 = (word) textbox::z#5 [phi:textbox::@2/textbox::@9->textbox::@8#2] -- register_copy 
    jmp __b8
    // textbox::@8
  __b8:
    // [63] 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:
    // [64] (byte) textbox::y#1 ← ++ (byte) textbox::y#12 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [65] 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:
    // [66] (byte~) textbox::$36 ← (byte) textbox::y#1 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y
    asl
    asl
    sta.z __36
    // [67] (byte~) textbox::$37 ← (byte~) textbox::$36 + (byte) textbox::y#1 -- vbuz1=vbuz2_plus_vbuz3 
    lda.z __36
    clc
    adc.z y
    sta.z __37
    // [68] (word) textbox::z#1 ← (byte~) textbox::$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
    // [69] (byte) textbox::x#15 ← (byte) textbox::x1#4 -- vbuz1=vbuz2 
    lda.z x1
    sta.z x
    jmp __b2_from___b7
    // textbox::@4
  __b4:
    // [70] (byte) textbox::ls#1 ← ++ (byte) textbox::ls#2 -- vbuz1=_inc_vbuz1 
    inc.z ls
    // [71] (byte) textbox::c#1 ← ++ (byte) textbox::c#2 -- vbuz1=_inc_vbuz1 
    inc.z c
    // [44] phi from textbox::@4 to textbox::@3 [phi:textbox::@4->textbox::@3]
  __b3_from___b4:
    // [44] phi (byte) textbox::c#2 = (byte) textbox::c#1 [phi:textbox::@4->textbox::@3#0] -- register_copy 
    // [44] phi (byte) textbox::ls#2 = (byte) textbox::ls#1 [phi:textbox::@4->textbox::@3#1] -- register_copy 
    jmp __b3
}
  // draw_window
// draw_window(byte zp($17) x1, byte zp($18) y1, byte zp($19) x2, byte zp($1a) y2)
draw_window: {
    .label __2 = $33
    .label __3 = $37
    .label __4 = $3b
    .label __5 = $3f
    .label __6 = $43
    .label __8 = $44
    .label __14 = $59
    .label __15 = $5d
    .label __19 = $51
    .label __20 = $55
    .label __26 = $49
    .label x1 = $17
    .label y1 = $18
    .label x2 = $19
    .label y2 = $1a
    .label z = $2d
    .label q = $31
    .label x = $12
    .label y = $13
    .label z_1 = $4f
    .label y3 = $14
    .label z_2 = $47
    .label x3 = $15
    .label __27 = $5b
    .label __28 = $5f
    .label __29 = $35
    .label __30 = $39
    .label __31 = $53
    .label __32 = $57
    .label __33 = $3d
    .label __34 = $41
    .label __35 = $4b
    .label __36 = $2b
    .label __37 = $2c
    .label __39 = $2f
    .label __40 = $30
    .label __42 = $4d
    .label __43 = $4e
    .label __45 = $45
    .label __46 = $46
    // [72] (byte~) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y1
    asl
    asl
    sta.z __36
    // [73] (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
    // [74] (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
    // [75] (byte~) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y2
    asl
    asl
    sta.z __39
    // [76] (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
    // [77] (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
    // [78] (byte) draw_window::x#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z x1
    iny
    sty.z x
    // [79] 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:
    // [79] 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:
    // [80] 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:
    // [81] (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
    // [82] (byte*~) draw_window::$29 ← (const byte*) screen + (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
    // [83] *((byte*~) draw_window::$29) ← (byte) $55 -- _deref_pbuz1=vbuc1 
    // draw upper corners
    lda #$55
    ldy #0
    sta (__29),y
    // [84] (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
    // [85] (byte*~) draw_window::$30 ← (const byte*) screen + (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
    // [86] *((byte*~) draw_window::$30) ← (byte) $49 -- _deref_pbuz1=vbuc1 
    lda #$49
    ldy #0
    sta (__30),y
    // [87] (byte) draw_window::y#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z y1
    iny
    sty.z y
    // [88] 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:
    // [88] 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:
    // [89] 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:
    // [90] (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
    // [91] (byte*~) draw_window::$33 ← (const byte*) screen + (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
    // [92] *((byte*~) draw_window::$33) ← (byte) $4a -- _deref_pbuz1=vbuc1 
    // draw lower corners
    lda #$4a
    ldy #0
    sta (__33),y
    // [93] (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
    // [94] (byte*~) draw_window::$34 ← (const byte*) screen + (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
    // [95] *((byte*~) draw_window::$34) ← (byte) $4b -- _deref_pbuz1=vbuc1 
    lda #$4b
    ldy #0
    sta (__34),y
    // [96] (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
    // [97] (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
    // [98] 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:
    // [99] 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:
    // [100] return 
    rts
    // draw_window::@7
  __b7:
    // [101] (byte) draw_window::y3#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z y1
    iny
    sty.z y3
    // [102] 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:
    // [102] 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:
    // [103] 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:
    // [104] (byte~) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y3
    asl
    asl
    sta.z __45
    // [105] (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
    // [106] (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
    // [107] (byte) draw_window::x3#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z x1
    iny
    sty.z x3
    // [108] 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:
    // [108] 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:
    // [109] 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:
    // [110] (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#2 -- vbuz1=_inc_vbuz1 
    inc.z y3
    jmp __b8_from___b12
    // draw_window::@11
  __b11:
    // [111] (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
    // [112] (byte*~) draw_window::$35 ← (const byte*) screen + (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
    // [113] *((byte*~) draw_window::$35) ← (byte) $20 -- _deref_pbuz1=vbuc1 
    lda #$20
    ldy #0
    sta (__35),y
    // [114] (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2 -- vbuz1=_inc_vbuz1 
    inc.z x3
    jmp __b10_from___b11
    // draw_window::@5
  __b5:
    // [115] (byte~) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 
    lda.z y
    asl
    asl
    sta.z __42
    // [116] (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
    // [117] (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
    // [118] (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
    // [119] (byte*~) draw_window::$31 ← (const byte*) screen + (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
    // [120] *((byte*~) draw_window::$31) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (__31),y
    // [121] (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
    // [122] (byte*~) draw_window::$32 ← (const byte*) screen + (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
    // [123] *((byte*~) draw_window::$32) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (__32),y
    // [124] (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2 -- vbuz1=_inc_vbuz1 
    inc.z y
    jmp __b4_from___b5
    // draw_window::@2
  __b2:
    // [125] (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
    // [126] (byte*~) draw_window::$27 ← (const byte*) screen + (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
    // [127] *((byte*~) draw_window::$27) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (__27),y
    // [128] (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
    // [129] (byte*~) draw_window::$28 ← (const byte*) screen + (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
    // [130] *((byte*~) draw_window::$28) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (__28),y
    // [131] (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 [14] (byte~) main::$4 ← (byte) main::x#2 + (byte) main::x#2 [ main::x#2 main::$4 ] ( main:2 [ main::x#2 main::$4 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::x#2 main::x#1 ]
Statement [16] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a [ main::x#2 textbox::x2#0 textbox::y2#0 ] ( main:2 [ main::x#2 textbox::x2#0 textbox::y2#0 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:7 [ textbox::x2#4 textbox::x2#0 ]
Statement [21] if((word) main::wait#2<(word) $88b8) goto main::@5 [ main::x#2 main::wait#2 ] ( main:2 [ main::x#2 main::wait#2 ] ) always clobbers reg byte a 
Statement [32] (word~) textbox::$3 ← (word)(byte) textbox::y#0 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:5 [ textbox::x1#4 textbox::x1#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:8 [ textbox::y2#4 textbox::y2#0 ]
Removing always clobbered register reg byte a as potential for zp[1]: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[1]:14 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ]
Statement [33] (word~) textbox::$33 ← (word~) textbox::$3 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] ) always clobbers reg byte a 
Statement [34] (word~) textbox::$34 ← (word~) textbox::$33 + (word~) textbox::$3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] ) always clobbers reg byte a 
Statement [35] (word) textbox::z#0 ← (word~) textbox::$34 << (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:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:19 [ main::x#2 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 [39] (word~) textbox::$9 ← (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::$9 ] ( main:2::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::$9 ] main:2::textbox: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::$9 ] main:2::textbox:12 [ 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::$9 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$9 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:11 [ textbox::i#2 textbox::i#1 ]
Statement [40] (byte*~) textbox::$32 ← (const byte*) screen + (word~) textbox::$9 [ 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::$32 ] ( main:2::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::$32 ] main:2::textbox: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::$32 ] main:2::textbox:12 [ 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::$32 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$32 ] ) always clobbers reg byte a 
Statement [41] *((byte*~) textbox::$32) ← *((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: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 ] main:2::textbox: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 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:5 [ textbox::x1#4 textbox::x1#0 ]
Removing always clobbered register reg byte y as potential for zp[1]:7 [ textbox::x2#4 textbox::x2#0 ]
Removing always clobbered register reg byte y as potential for zp[1]:8 [ textbox::y2#4 textbox::y2#0 ]
Removing always clobbered register reg byte y as potential for zp[1]: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[1]:11 [ textbox::i#2 textbox::i#1 ]
Removing always clobbered register reg byte y as potential for zp[1]: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 y as potential for zp[1]:2 [ main::x#2 main::x#1 ]
Statement [42] 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: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 ] main:2::textbox: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 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Statement [45] 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: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::ls#2 textbox::c#2 ] main:2::textbox: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::ls#2 textbox::c#2 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:12 [ textbox::ls#2 textbox::ls#0 textbox::ls#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:13 [ textbox::c#2 textbox::c#1 ]
Statement [46] 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: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::ls#2 textbox::c#2 ] main:2::textbox: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::ls#2 textbox::c#2 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Statement [47] (byte~) textbox::$16 ← (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::$16 ] ( main:2::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::c#2 textbox::$16 ] main:2::textbox: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::$16 ] main:2::textbox:12 [ 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::$16 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$16 ] ) always clobbers reg byte a 
Statement [48] (byte~) textbox::$18 ← (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::$16 textbox::$18 ] ( main:2::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::c#2 textbox::$16 textbox::$18 ] main:2::textbox: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::$16 textbox::$18 ] main:2::textbox:12 [ 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::$16 textbox::$18 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$16 textbox::$18 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:37 [ textbox::$16 ]
Statement [59] (byte~) textbox::$39 ← (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::$39 ] ( main:2::textbox:8 [ 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:10 [ 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:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] ) always clobbers reg byte a 
Statement [60] (byte~) textbox::$40 ← (byte~) textbox::$39 + (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::$40 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] ) always clobbers reg byte a 
Statement [61] (word) textbox::z#2 ← (byte~) textbox::$40 << (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:8 [ 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:10 [ 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:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] ) always clobbers reg byte a 
Statement [63] 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:8 [ 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:10 [ 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:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] ) always clobbers reg byte a reg byte y 
Statement [66] (byte~) textbox::$36 ← (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::$36 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:19 [ main::x#2 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] (byte~) textbox::$37 ← (byte~) textbox::$36 + (byte) textbox::y#1 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] ) always clobbers reg byte a 
Statement [68] (word) textbox::z#1 ← (byte~) textbox::$37 << (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:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:19 [ main::x#2 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 [72] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:6 [ textbox::y1#4 textbox::y1#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:23 [ draw_window::x1#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:24 [ draw_window::y1#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:25 [ draw_window::x2#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:26 [ draw_window::y2#0 ]
Statement [73] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] ) always clobbers reg byte a 
Statement [74] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] ) always clobbers reg byte a 
Statement [75] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] ) always clobbers reg byte a 
Statement [76] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] ) always clobbers reg byte a 
Statement [77] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a 
Statement [81] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] ) always clobbers reg byte a 
Statement [82] (byte*~) draw_window::$29 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] ) always clobbers reg byte a 
Statement [83] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:6 [ textbox::y1#4 textbox::y1#0 ]
Removing always clobbered register reg byte y as potential for zp[1]:23 [ draw_window::x1#0 ]
Removing always clobbered register reg byte y as potential for zp[1]:24 [ draw_window::y1#0 ]
Removing always clobbered register reg byte y as potential for zp[1]:25 [ draw_window::x2#0 ]
Removing always clobbered register reg byte y as potential for zp[1]:26 [ draw_window::y2#0 ]
Statement [84] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] ) always clobbers reg byte a 
Statement [85] (byte*~) draw_window::$30 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] ) always clobbers reg byte a 
Statement [86] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [90] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] ) always clobbers reg byte a 
Statement [91] (byte*~) draw_window::$33 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] ) always clobbers reg byte a 
Statement [92] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [93] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] ) always clobbers reg byte a 
Statement [94] (byte*~) draw_window::$34 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] ) always clobbers reg byte a 
Statement [95] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] ) always clobbers reg byte a reg byte y 
Statement [96] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] ) always clobbers reg byte a 
Statement [97] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:67 [ draw_window::$6 ]
Statement [104] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
Statement [105] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] ) always clobbers reg byte a 
Statement [106] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] ) always clobbers reg byte a 
Statement [111] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$26 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:21 [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ]
Statement [112] (byte*~) draw_window::$35 ← (const byte*) screen + (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] ) always clobbers reg byte a 
Statement [113] *((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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:21 [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ]
Statement [115] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ]
Statement [116] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] ) always clobbers reg byte a 
Statement [117] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a 
Statement [118] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$19 ] ) always clobbers reg byte a 
Statement [119] (byte*~) draw_window::$31 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] ) always clobbers reg byte a 
Statement [120] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ]
Statement [121] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$20 ] ) always clobbers reg byte a 
Statement [122] (byte*~) draw_window::$32 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] ) always clobbers reg byte a 
Statement [123] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] ) always clobbers reg byte a reg byte y 
Statement [125] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:18 [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ]
Statement [126] (byte*~) draw_window::$27 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] ) always clobbers reg byte a 
Statement [127] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:18 [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ]
Statement [128] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$15 ] ) always clobbers reg byte a 
Statement [129] (byte*~) draw_window::$28 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] ) always clobbers reg byte a 
Statement [130] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Statement [14] (byte~) main::$4 ← (byte) main::x#2 + (byte) main::x#2 [ main::x#2 main::$4 ] ( main:2 [ main::x#2 main::$4 ] ) always clobbers reg byte a 
Statement [16] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a [ main::x#2 textbox::x2#0 textbox::y2#0 ] ( main:2 [ main::x#2 textbox::x2#0 textbox::y2#0 ] ) always clobbers reg byte a reg byte x 
Removing always clobbered register reg byte x as potential for zp[1]:2 [ main::x#2 main::x#1 ]
Removing always clobbered register reg byte x as potential for zp[1]:7 [ textbox::x2#4 textbox::x2#0 ]
Statement [21] if((word) main::wait#2<(word) $88b8) goto main::@5 [ main::x#2 main::wait#2 ] ( main:2 [ main::x#2 main::wait#2 ] ) always clobbers reg byte a 
Statement [22] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2 [ main::x#1 ] ( main:2 [ main::x#1 ] ) always clobbers reg byte a 
Statement [32] (word~) textbox::$3 ← (word)(byte) textbox::y#0 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] ) always clobbers reg byte a 
Statement [33] (word~) textbox::$33 ← (word~) textbox::$3 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] ) always clobbers reg byte a 
Statement [34] (word~) textbox::$34 ← (word~) textbox::$33 + (word~) textbox::$3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] ) always clobbers reg byte a 
Statement [35] (word) textbox::z#0 ← (word~) textbox::$34 << (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:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:19 [ main::x#2 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 [39] (word~) textbox::$9 ← (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::$9 ] ( main:2::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::$9 ] main:2::textbox: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::$9 ] main:2::textbox:12 [ 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::$9 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$9 ] ) always clobbers reg byte a 
Statement [40] (byte*~) textbox::$32 ← (const byte*) screen + (word~) textbox::$9 [ 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::$32 ] ( main:2::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::$32 ] main:2::textbox: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::$32 ] main:2::textbox:12 [ 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::$32 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$32 ] ) always clobbers reg byte a 
Statement [41] *((byte*~) textbox::$32) ← *((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: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 ] main:2::textbox: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 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Statement [42] 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: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 ] main:2::textbox: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 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Statement [45] 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: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::ls#2 textbox::c#2 ] main:2::textbox: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::ls#2 textbox::c#2 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Statement [46] 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: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::ls#2 textbox::c#2 ] main:2::textbox: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::ls#2 textbox::c#2 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Statement [47] (byte~) textbox::$16 ← (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::$16 ] ( main:2::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::c#2 textbox::$16 ] main:2::textbox: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::$16 ] main:2::textbox:12 [ 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::$16 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$16 ] ) always clobbers reg byte a 
Statement [48] (byte~) textbox::$18 ← (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::$16 textbox::$18 ] ( main:2::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::c#2 textbox::$16 textbox::$18 ] main:2::textbox: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::$16 textbox::$18 ] main:2::textbox:12 [ 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::$16 textbox::$18 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$16 textbox::$18 ] ) always clobbers reg byte a 
Statement [59] (byte~) textbox::$39 ← (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::$39 ] ( main:2::textbox:8 [ 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:10 [ 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:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] ) always clobbers reg byte a 
Statement [60] (byte~) textbox::$40 ← (byte~) textbox::$39 + (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::$40 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] ) always clobbers reg byte a 
Statement [61] (word) textbox::z#2 ← (byte~) textbox::$40 << (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:8 [ 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:10 [ 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:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] ) always clobbers reg byte a 
Statement [63] 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:8 [ 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:10 [ 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:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] ) always clobbers reg byte a reg byte y 
Statement [66] (byte~) textbox::$36 ← (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::$36 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:19 [ main::x#2 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] (byte~) textbox::$37 ← (byte~) textbox::$36 + (byte) textbox::y#1 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] ) always clobbers reg byte a 
Statement [68] (word) textbox::z#1 ← (byte~) textbox::$37 << (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:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:19 [ main::x#2 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 [72] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] ) always clobbers reg byte a 
Statement [73] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] ) always clobbers reg byte a 
Statement [74] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] ) always clobbers reg byte a 
Statement [75] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] ) always clobbers reg byte a 
Statement [76] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] ) always clobbers reg byte a 
Statement [77] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a 
Statement [81] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] ) always clobbers reg byte a 
Statement [82] (byte*~) draw_window::$29 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] ) always clobbers reg byte a 
Statement [83] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [84] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] ) always clobbers reg byte a 
Statement [85] (byte*~) draw_window::$30 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] ) always clobbers reg byte a 
Statement [86] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [90] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] ) always clobbers reg byte a 
Statement [91] (byte*~) draw_window::$33 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] ) always clobbers reg byte a 
Statement [92] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [93] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] ) always clobbers reg byte a 
Statement [94] (byte*~) draw_window::$34 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] ) always clobbers reg byte a 
Statement [95] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] ) always clobbers reg byte a reg byte y 
Statement [96] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] ) always clobbers reg byte a 
Statement [97] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] ) always clobbers reg byte a 
Statement [104] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] ) always clobbers reg byte a 
Statement [105] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] ) always clobbers reg byte a 
Statement [106] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] ) always clobbers reg byte a 
Statement [111] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$26 ] ) always clobbers reg byte a 
Statement [112] (byte*~) draw_window::$35 ← (const byte*) screen + (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] ) always clobbers reg byte a 
Statement [113] *((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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] ) always clobbers reg byte a reg byte y 
Statement [115] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] ) always clobbers reg byte a 
Statement [116] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] ) always clobbers reg byte a 
Statement [117] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a 
Statement [118] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$19 ] ) always clobbers reg byte a 
Statement [119] (byte*~) draw_window::$31 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] ) always clobbers reg byte a 
Statement [120] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a reg byte y 
Statement [121] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$20 ] ) always clobbers reg byte a 
Statement [122] (byte*~) draw_window::$32 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] ) always clobbers reg byte a 
Statement [123] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] ) always clobbers reg byte a reg byte y 
Statement [125] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] ) always clobbers reg byte a 
Statement [126] (byte*~) draw_window::$27 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] ) always clobbers reg byte a 
Statement [127] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Statement [128] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$15 ] ) always clobbers reg byte a 
Statement [129] (byte*~) draw_window::$28 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] ) always clobbers reg byte a 
Statement [130] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Statement [6] if((byte) main::x#2<(byte) $f) goto main::@2 [ main::x#2 ] ( main:2 [ main::x#2 ] ) always clobbers reg byte a 
Statement [14] (byte~) main::$4 ← (byte) main::x#2 + (byte) main::x#2 [ main::x#2 main::$4 ] ( main:2 [ main::x#2 main::$4 ] ) always clobbers reg byte a 
Statement [16] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a [ main::x#2 textbox::x2#0 textbox::y2#0 ] ( main:2 [ main::x#2 textbox::x2#0 textbox::y2#0 ] ) always clobbers reg byte a reg byte x 
Statement [21] if((word) main::wait#2<(word) $88b8) goto main::@5 [ main::x#2 main::wait#2 ] ( main:2 [ main::x#2 main::wait#2 ] ) always clobbers reg byte a 
Statement [22] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2 [ main::x#1 ] ( main:2 [ main::x#1 ] ) always clobbers reg byte a 
Statement [32] (word~) textbox::$3 ← (word)(byte) textbox::y#0 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 ] ) always clobbers reg byte a 
Statement [33] (word~) textbox::$33 ← (word~) textbox::$3 << (byte) 2 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$3 textbox::$33 ] ) always clobbers reg byte a 
Statement [34] (word~) textbox::$34 ← (word~) textbox::$33 + (word~) textbox::$3 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::$34 ] ) always clobbers reg byte a 
Statement [35] (word) textbox::z#0 ← (word~) textbox::$34 << (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:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::y#0 textbox::x#0 textbox::z#0 ] main:2::textbox:19 [ main::x#2 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 [39] (word~) textbox::$9 ← (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::$9 ] ( main:2::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::$9 ] main:2::textbox: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::$9 ] main:2::textbox:12 [ 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::$9 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$9 ] ) always clobbers reg byte a 
Statement [40] (byte*~) textbox::$32 ← (const byte*) screen + (word~) textbox::$9 [ 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::$32 ] ( main:2::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::$32 ] main:2::textbox: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::$32 ] main:2::textbox:12 [ 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::$32 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::$32 ] ) always clobbers reg byte a 
Statement [41] *((byte*~) textbox::$32) ← *((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: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 ] main:2::textbox: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 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Statement [42] 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: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 ] main:2::textbox: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 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 ] ) always clobbers reg byte a reg byte y 
Statement [45] 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: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::ls#2 textbox::c#2 ] main:2::textbox: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::ls#2 textbox::c#2 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Statement [46] 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: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::ls#2 textbox::c#2 ] main:2::textbox: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::ls#2 textbox::c#2 ] main:2::textbox:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::ls#2 textbox::c#2 ] ) always clobbers reg byte a 
Statement [47] (byte~) textbox::$16 ← (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::$16 ] ( main:2::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::c#2 textbox::$16 ] main:2::textbox: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::$16 ] main:2::textbox:12 [ 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::$16 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$16 ] ) always clobbers reg byte a 
Statement [48] (byte~) textbox::$18 ← (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::$16 textbox::$18 ] ( main:2::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::c#2 textbox::$16 textbox::$18 ] main:2::textbox: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::$16 textbox::$18 ] main:2::textbox:12 [ 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::$16 textbox::$18 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#3 textbox::x#10 textbox::i#2 textbox::y#12 textbox::c#2 textbox::$16 textbox::$18 ] ) always clobbers reg byte a 
Statement [59] (byte~) textbox::$39 ← (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::$39 ] ( main:2::textbox:8 [ 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:10 [ 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:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$39 ] ) always clobbers reg byte a 
Statement [60] (byte~) textbox::$40 ← (byte~) textbox::$39 + (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::$40 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::$40 ] ) always clobbers reg byte a 
Statement [61] (word) textbox::z#2 ← (byte~) textbox::$40 << (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:8 [ 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:10 [ 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:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#1 textbox::x#12 textbox::y#2 textbox::z#2 ] ) always clobbers reg byte a 
Statement [63] 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:8 [ 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:10 [ 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:12 [ 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:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::z#4 textbox::x#7 textbox::i#1 textbox::y#11 ] ) always clobbers reg byte a reg byte y 
Statement [66] (byte~) textbox::$36 ← (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::$36 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$36 ] main:2::textbox:19 [ main::x#2 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] (byte~) textbox::$37 ← (byte~) textbox::$36 + (byte) textbox::y#1 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] ( main:2::textbox:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] main:2::textbox:19 [ main::x#2 textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::$37 ] ) always clobbers reg byte a 
Statement [68] (word) textbox::z#1 ← (byte~) textbox::$37 << (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:8 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:10 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:12 [ textbox::x1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 textbox::i#2 textbox::y#1 textbox::z#1 ] main:2::textbox:19 [ main::x#2 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 [72] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$36 ] ) always clobbers reg byte a 
Statement [73] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$37 ] ) always clobbers reg byte a 
Statement [74] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 ] ) always clobbers reg byte a 
Statement [75] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$39 ] ) always clobbers reg byte a 
Statement [76] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::$40 ] ) always clobbers reg byte a 
Statement [77] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a 
Statement [81] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$2 ] ) always clobbers reg byte a 
Statement [82] (byte*~) draw_window::$29 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::$29 ] ) always clobbers reg byte a 
Statement [83] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [84] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$3 ] ) always clobbers reg byte a 
Statement [85] (byte*~) draw_window::$30 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$30 ] ) always clobbers reg byte a 
Statement [86] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [90] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$4 ] ) always clobbers reg byte a 
Statement [91] (byte*~) draw_window::$33 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::$33 ] ) always clobbers reg byte a 
Statement [92] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 ] ) always clobbers reg byte a reg byte y 
Statement [93] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$5 ] ) always clobbers reg byte a 
Statement [94] (byte*~) draw_window::$34 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$34 ] ) always clobbers reg byte a 
Statement [95] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 ] ) always clobbers reg byte a reg byte y 
Statement [96] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 ] ) always clobbers reg byte a 
Statement [97] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::$6 draw_window::$8 ] ) always clobbers reg byte a 
Statement [104] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$45 ] ) always clobbers reg byte a 
Statement [105] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::$46 ] ) always clobbers reg byte a 
Statement [106] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 ] ) always clobbers reg byte a 
Statement [111] (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$26 ] ) always clobbers reg byte a 
Statement [112] (byte*~) draw_window::$35 ← (const byte*) screen + (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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 draw_window::$35 ] ) always clobbers reg byte a 
Statement [113] *((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:8::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:10::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:12::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::x2#0 draw_window::y2#0 draw_window::y3#2 draw_window::z#2 draw_window::x3#2 ] ) always clobbers reg byte a reg byte y 
Statement [115] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$42 ] ) always clobbers reg byte a 
Statement [116] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$43 ] ) always clobbers reg byte a 
Statement [117] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a 
Statement [118] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$19 ] ) always clobbers reg byte a 
Statement [119] (byte*~) draw_window::$31 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 draw_window::$31 ] ) always clobbers reg byte a 
Statement [120] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::z#1 ] ) always clobbers reg byte a reg byte y 
Statement [121] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$20 ] ) always clobbers reg byte a 
Statement [122] (byte*~) draw_window::$32 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 draw_window::$32 ] ) always clobbers reg byte a 
Statement [123] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::q#0 draw_window::y#2 ] ) always clobbers reg byte a reg byte y 
Statement [125] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$14 ] ) always clobbers reg byte a 
Statement [126] (byte*~) draw_window::$27 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$27 ] ) always clobbers reg byte a 
Statement [127] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Statement [128] (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$15 ] ) always clobbers reg byte a 
Statement [129] (byte*~) draw_window::$28 ← (const byte*) screen + (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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 draw_window::$28 ] ) always clobbers reg byte a 
Statement [130] *((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:8::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:10::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:12::draw_window:29 [ textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::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:19::draw_window:29 [ main::x#2 textbox::x1#4 textbox::y1#4 textbox::x2#4 textbox::y2#4 textbox::text#12 draw_window::x1#0 draw_window::y1#0 draw_window::x2#0 draw_window::y2#0 draw_window::z#0 draw_window::q#0 draw_window::x#2 ] ) always clobbers reg byte a reg byte y 
Potential registers zp[1]:2 [ main::x#2 main::x#1 ] : zp[1]:2 , 
Potential registers zp[2]:3 [ main::wait#2 main::wait#1 ] : zp[2]:3 , 
Potential registers zp[1]:5 [ textbox::x1#4 textbox::x1#0 ] : zp[1]:5 , reg byte x , 
Potential registers zp[1]:6 [ textbox::y1#4 textbox::y1#0 ] : zp[1]:6 , reg byte x , 
Potential registers zp[1]:7 [ textbox::x2#4 textbox::x2#0 ] : zp[1]:7 , 
Potential registers zp[1]:8 [ textbox::y2#4 textbox::y2#0 ] : zp[1]:8 , reg byte x , 
Potential registers zp[2]:9 [ textbox::text#12 ] : zp[2]:9 , 
Potential registers zp[1]:11 [ textbox::i#2 textbox::i#1 ] : zp[1]:11 , reg byte x , 
Potential registers zp[1]:12 [ textbox::ls#2 textbox::ls#0 textbox::ls#1 ] : zp[1]:12 , reg byte x , reg byte y , 
Potential registers zp[1]:13 [ textbox::c#2 textbox::c#1 ] : zp[1]:13 , reg byte x , reg byte y , 
Potential registers zp[1]:14 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ] : zp[1]:14 , reg byte x , 
Potential registers zp[1]:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ] : zp[1]:15 , reg byte x , 
Potential registers zp[2]:16 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ] : zp[2]:16 , 
Potential registers zp[1]:18 [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ] : zp[1]:18 , reg byte x , 
Potential registers zp[1]:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ] : zp[1]:19 , reg byte x , 
Potential registers zp[1]:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ] : zp[1]:20 , reg byte x , 
Potential registers zp[1]:21 [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ] : zp[1]:21 , reg byte x , 
Potential registers zp[1]:22 [ main::$4 ] : zp[1]:22 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:23 [ draw_window::x1#0 ] : zp[1]:23 , reg byte x , 
Potential registers zp[1]:24 [ draw_window::y1#0 ] : zp[1]:24 , reg byte x , 
Potential registers zp[1]:25 [ draw_window::x2#0 ] : zp[1]:25 , reg byte x , 
Potential registers zp[1]:26 [ draw_window::y2#0 ] : zp[1]:26 , reg byte x , 
Potential registers zp[2]:27 [ textbox::$3 ] : zp[2]:27 , 
Potential registers zp[2]:29 [ textbox::$33 ] : zp[2]:29 , 
Potential registers zp[2]:31 [ textbox::$34 ] : zp[2]:31 , 
Potential registers zp[2]:33 [ textbox::$9 ] : zp[2]:33 , 
Potential registers zp[2]:35 [ textbox::$32 ] : zp[2]:35 , 
Potential registers zp[1]:37 [ textbox::$16 ] : zp[1]:37 , reg byte x , reg byte y , 
Potential registers zp[1]:38 [ textbox::$18 ] : zp[1]:38 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:39 [ textbox::$39 ] : zp[1]:39 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:40 [ textbox::$40 ] : zp[1]:40 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:41 [ textbox::$36 ] : zp[1]:41 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:42 [ textbox::$37 ] : zp[1]:42 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:43 [ draw_window::$36 ] : zp[1]:43 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:44 [ draw_window::$37 ] : zp[1]:44 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:45 [ draw_window::z#0 ] : zp[2]:45 , 
Potential registers zp[1]:47 [ draw_window::$39 ] : zp[1]:47 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:48 [ draw_window::$40 ] : zp[1]:48 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:49 [ draw_window::q#0 ] : zp[2]:49 , 
Potential registers zp[2]:51 [ draw_window::$2 ] : zp[2]:51 , 
Potential registers zp[2]:53 [ draw_window::$29 ] : zp[2]:53 , 
Potential registers zp[2]:55 [ draw_window::$3 ] : zp[2]:55 , 
Potential registers zp[2]:57 [ draw_window::$30 ] : zp[2]:57 , 
Potential registers zp[2]:59 [ draw_window::$4 ] : zp[2]:59 , 
Potential registers zp[2]:61 [ draw_window::$33 ] : zp[2]:61 , 
Potential registers zp[2]:63 [ draw_window::$5 ] : zp[2]:63 , 
Potential registers zp[2]:65 [ draw_window::$34 ] : zp[2]:65 , 
Potential registers zp[1]:67 [ draw_window::$6 ] : zp[1]:67 , reg byte x , reg byte y , 
Potential registers zp[1]:68 [ draw_window::$8 ] : zp[1]:68 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:69 [ draw_window::$45 ] : zp[1]:69 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:70 [ draw_window::$46 ] : zp[1]:70 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:71 [ draw_window::z#2 ] : zp[2]:71 , 
Potential registers zp[2]:73 [ draw_window::$26 ] : zp[2]:73 , 
Potential registers zp[2]:75 [ draw_window::$35 ] : zp[2]:75 , 
Potential registers zp[1]:77 [ draw_window::$42 ] : zp[1]:77 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:78 [ draw_window::$43 ] : zp[1]:78 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:79 [ draw_window::z#1 ] : zp[2]:79 , 
Potential registers zp[2]:81 [ draw_window::$19 ] : zp[2]:81 , 
Potential registers zp[2]:83 [ draw_window::$31 ] : zp[2]:83 , 
Potential registers zp[2]:85 [ draw_window::$20 ] : zp[2]:85 , 
Potential registers zp[2]:87 [ draw_window::$32 ] : zp[2]:87 , 
Potential registers zp[2]:89 [ draw_window::$14 ] : zp[2]:89 , 
Potential registers zp[2]:91 [ draw_window::$27 ] : zp[2]:91 , 
Potential registers zp[2]:93 [ draw_window::$15 ] : zp[2]:93 , 
Potential registers zp[2]:95 [ draw_window::$28 ] : zp[2]:95 , 

REGISTER UPLIFT SCOPES
Uplift Scope [draw_window] 3,025: zp[1]:21 [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ] 2,002: zp[2]:73 [ draw_window::$26 ] 2,002: zp[2]:75 [ draw_window::$35 ] 269.38: zp[1]:18 [ draw_window::x#2 draw_window::x#0 draw_window::x#1 ] 252.09: zp[1]:19 [ draw_window::y#2 draw_window::y#0 draw_window::y#1 ] 248.25: zp[1]:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ] 202: zp[1]:69 [ draw_window::$45 ] 202: zp[1]:70 [ draw_window::$46 ] 202: zp[1]:77 [ draw_window::$42 ] 202: zp[1]:78 [ draw_window::$43 ] 202: zp[2]:81 [ draw_window::$19 ] 202: zp[2]:83 [ draw_window::$31 ] 202: zp[2]:85 [ draw_window::$20 ] 202: zp[2]:87 [ draw_window::$32 ] 202: zp[2]:89 [ draw_window::$14 ] 202: zp[2]:91 [ draw_window::$27 ] 202: zp[2]:93 [ draw_window::$15 ] 202: zp[2]:95 [ draw_window::$28 ] 137.75: zp[2]:71 [ draw_window::z#2 ] 75.75: zp[2]:79 [ draw_window::z#1 ] 19.85: zp[1]:25 [ draw_window::x2#0 ] 6.29: zp[2]:45 [ draw_window::z#0 ] 4: zp[1]:43 [ draw_window::$36 ] 4: zp[1]:44 [ draw_window::$37 ] 4: zp[1]:47 [ draw_window::$39 ] 4: zp[1]:48 [ draw_window::$40 ] 4: zp[2]:51 [ draw_window::$2 ] 4: zp[2]:53 [ draw_window::$29 ] 4: zp[2]:55 [ draw_window::$3 ] 4: zp[2]:57 [ draw_window::$30 ] 4: zp[2]:59 [ draw_window::$4 ] 4: zp[2]:61 [ draw_window::$33 ] 4: zp[2]:63 [ draw_window::$5 ] 4: zp[2]:65 [ draw_window::$34 ] 3.5: zp[1]:26 [ draw_window::y2#0 ] 3.37: zp[1]:23 [ draw_window::x1#0 ] 3.24: zp[2]:49 [ draw_window::q#0 ] 2: zp[1]:67 [ draw_window::$6 ] 2: zp[1]:68 [ draw_window::$8 ] 0.25: zp[1]:24 [ draw_window::y1#0 ] 
Uplift Scope [textbox] 2,571.33: zp[1]:12 [ textbox::ls#2 textbox::ls#0 textbox::ls#1 ] 2,316.86: zp[1]:13 [ textbox::c#2 textbox::c#1 ] 777.74: zp[1]: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[2]:16 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ] 465.48: zp[1]:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ] 202: zp[2]:33 [ textbox::$9 ] 202: zp[2]:35 [ textbox::$32 ] 202: zp[1]:39 [ textbox::$39 ] 202: zp[1]:40 [ textbox::$40 ] 202: zp[1]:41 [ textbox::$36 ] 202: zp[1]:42 [ textbox::$37 ] 101: zp[1]:37 [ textbox::$16 ] 101: zp[1]:38 [ textbox::$18 ] 50.5: zp[1]:11 [ textbox::i#2 textbox::i#1 ] 49.04: zp[2]:9 [ textbox::text#12 ] 24.5: zp[1]:6 [ textbox::y1#4 textbox::y1#0 ] 17.77: zp[1]:5 [ textbox::x1#4 textbox::x1#0 ] 12.27: zp[1]:7 [ textbox::x2#4 textbox::x2#0 ] 11.95: zp[1]:8 [ textbox::y2#4 textbox::y2#0 ] 4: zp[2]:29 [ textbox::$33 ] 4: zp[2]:31 [ textbox::$34 ] 3: zp[2]:27 [ textbox::$3 ] 
Uplift Scope [main] 353.5: zp[2]:3 [ main::wait#2 main::wait#1 ] 30: zp[1]:2 [ main::x#2 main::x#1 ] 22: zp[1]:22 [ main::$4 ] 
Uplift Scope [] 

Uplifting [draw_window] best 192545 combination reg byte x [ draw_window::x3#2 draw_window::x3#0 draw_window::x3#1 ] zp[2]:73 [ draw_window::$26 ] zp[2]:75 [ 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[1]: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[1]:77 [ draw_window::$42 ] zp[1]:78 [ draw_window::$43 ] zp[2]:81 [ draw_window::$19 ] zp[2]:83 [ draw_window::$31 ] zp[2]:85 [ draw_window::$20 ] zp[2]:87 [ draw_window::$32 ] zp[2]:89 [ draw_window::$14 ] zp[2]:91 [ draw_window::$27 ] zp[2]:93 [ draw_window::$15 ] zp[2]:95 [ draw_window::$28 ] zp[2]:71 [ draw_window::z#2 ] zp[2]:79 [ draw_window::z#1 ] zp[1]:25 [ draw_window::x2#0 ] zp[2]:45 [ draw_window::z#0 ] zp[1]:43 [ draw_window::$36 ] zp[1]:44 [ draw_window::$37 ] zp[1]:47 [ draw_window::$39 ] zp[1]:48 [ draw_window::$40 ] zp[2]:51 [ draw_window::$2 ] zp[2]:53 [ draw_window::$29 ] zp[2]:55 [ draw_window::$3 ] zp[2]:57 [ draw_window::$30 ] zp[2]:59 [ draw_window::$4 ] zp[2]:61 [ draw_window::$33 ] zp[2]:63 [ draw_window::$5 ] zp[2]:65 [ draw_window::$34 ] zp[1]:26 [ draw_window::y2#0 ] zp[1]:23 [ draw_window::x1#0 ] zp[2]:49 [ draw_window::q#0 ] zp[1]:67 [ draw_window::$6 ] zp[1]:68 [ draw_window::$8 ] zp[1]:24 [ draw_window::y1#0 ] 
Limited combination testing to 100 combinations of 201326592 possible.
Uplifting [textbox] best 176245 combination reg byte y [ textbox::ls#2 textbox::ls#0 textbox::ls#1 ] reg byte x [ textbox::c#2 textbox::c#1 ] zp[1]:14 [ textbox::x#5 textbox::x#15 textbox::x#10 textbox::x#7 textbox::x#0 textbox::x#12 textbox::x#1 ] zp[2]:16 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ] zp[1]:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ] zp[2]:33 [ textbox::$9 ] zp[2]:35 [ textbox::$32 ] reg byte a [ textbox::$39 ] zp[1]:40 [ textbox::$40 ] zp[1]:41 [ textbox::$36 ] zp[1]:42 [ textbox::$37 ] zp[1]:37 [ textbox::$16 ] zp[1]:38 [ textbox::$18 ] zp[1]:11 [ textbox::i#2 textbox::i#1 ] zp[2]:9 [ textbox::text#12 ] zp[1]:6 [ textbox::y1#4 textbox::y1#0 ] zp[1]:5 [ textbox::x1#4 textbox::x1#0 ] zp[1]:7 [ textbox::x2#4 textbox::x2#0 ] zp[1]:8 [ textbox::y2#4 textbox::y2#0 ] zp[2]:29 [ textbox::$33 ] zp[2]:31 [ textbox::$34 ] zp[2]:27 [ textbox::$3 ] 
Limited combination testing to 100 combinations of 1769472 possible.
Uplifting [main] best 176205 combination zp[2]:3 [ main::wait#2 main::wait#1 ] zp[1]:2 [ main::x#2 main::x#1 ] reg byte a [ main::$4 ] 
Uplifting [] best 176205 combination 
Attempting to uplift remaining variables inzp[1]: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 176205 combination zp[1]: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[1]:15 [ textbox::y#5 textbox::y#1 textbox::y#12 textbox::y#11 textbox::y#0 textbox::y#2 ]
Uplifting [textbox] best 176205 combination zp[1]: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[1]:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ]
Uplifting [draw_window] best 176205 combination zp[1]:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ] 
Attempting to uplift remaining variables inzp[1]:40 [ textbox::$40 ]
Uplifting [textbox] best 175605 combination reg byte a [ textbox::$40 ] 
Attempting to uplift remaining variables inzp[1]:41 [ textbox::$36 ]
Uplifting [textbox] best 175005 combination reg byte a [ textbox::$36 ] 
Attempting to uplift remaining variables inzp[1]:42 [ textbox::$37 ]
Uplifting [textbox] best 174405 combination reg byte a [ textbox::$37 ] 
Attempting to uplift remaining variables inzp[1]:77 [ draw_window::$42 ]
Uplifting [draw_window] best 174205 combination reg byte a [ draw_window::$42 ] 
Attempting to uplift remaining variables inzp[1]:78 [ draw_window::$43 ]
Uplifting [draw_window] best 173605 combination reg byte a [ draw_window::$43 ] 
Attempting to uplift remaining variables inzp[1]:37 [ textbox::$16 ]
Uplifting [textbox] best 173205 combination reg byte y [ textbox::$16 ] 
Attempting to uplift remaining variables inzp[1]:38 [ textbox::$18 ]
Uplifting [textbox] best 173205 combination zp[1]:38 [ textbox::$18 ] 
Attempting to uplift remaining variables inzp[1]:11 [ textbox::i#2 textbox::i#1 ]
Uplifting [textbox] best 173205 combination zp[1]:11 [ textbox::i#2 textbox::i#1 ] 
Attempting to uplift remaining variables inzp[1]:2 [ main::x#2 main::x#1 ]
Uplifting [main] best 173205 combination zp[1]:2 [ main::x#2 main::x#1 ] 
Attempting to uplift remaining variables inzp[1]:6 [ textbox::y1#4 textbox::y1#0 ]
Uplifting [textbox] best 173205 combination zp[1]:6 [ textbox::y1#4 textbox::y1#0 ] 
Attempting to uplift remaining variables inzp[1]:25 [ draw_window::x2#0 ]
Uplifting [draw_window] best 173205 combination zp[1]:25 [ draw_window::x2#0 ] 
Attempting to uplift remaining variables inzp[1]:5 [ textbox::x1#4 textbox::x1#0 ]
Uplifting [textbox] best 173205 combination zp[1]:5 [ textbox::x1#4 textbox::x1#0 ] 
Attempting to uplift remaining variables inzp[1]:7 [ textbox::x2#4 textbox::x2#0 ]
Uplifting [textbox] best 173205 combination zp[1]:7 [ textbox::x2#4 textbox::x2#0 ] 
Attempting to uplift remaining variables inzp[1]:8 [ textbox::y2#4 textbox::y2#0 ]
Uplifting [textbox] best 173205 combination zp[1]:8 [ textbox::y2#4 textbox::y2#0 ] 
Attempting to uplift remaining variables inzp[1]:43 [ draw_window::$36 ]
Uplifting [draw_window] best 173199 combination reg byte a [ draw_window::$36 ] 
Attempting to uplift remaining variables inzp[1]:44 [ draw_window::$37 ]
Uplifting [draw_window] best 173193 combination reg byte a [ draw_window::$37 ] 
Attempting to uplift remaining variables inzp[1]:47 [ draw_window::$39 ]
Uplifting [draw_window] best 173187 combination reg byte a [ draw_window::$39 ] 
Attempting to uplift remaining variables inzp[1]:48 [ draw_window::$40 ]
Uplifting [draw_window] best 173181 combination reg byte a [ draw_window::$40 ] 
Attempting to uplift remaining variables inzp[1]:26 [ draw_window::y2#0 ]
Uplifting [draw_window] best 173181 combination zp[1]:26 [ draw_window::y2#0 ] 
Attempting to uplift remaining variables inzp[1]:23 [ draw_window::x1#0 ]
Uplifting [draw_window] best 173181 combination zp[1]:23 [ draw_window::x1#0 ] 
Attempting to uplift remaining variables inzp[1]:67 [ draw_window::$6 ]
Uplifting [draw_window] best 173177 combination reg byte x [ draw_window::$6 ] 
Attempting to uplift remaining variables inzp[1]:68 [ draw_window::$8 ]
Uplifting [draw_window] best 173171 combination reg byte a [ draw_window::$8 ] 
Attempting to uplift remaining variables inzp[1]:24 [ draw_window::y1#0 ]
Uplifting [draw_window] best 173171 combination zp[1]:24 [ draw_window::y1#0 ] 
Coalescing zero page register [ zp[1]:2 [ main::x#2 main::x#1 ] ] with [ zp[1]:5 [ textbox::x1#4 textbox::x1#0 ] ] - score: 1
Coalescing zero page register [ zp[1]:6 [ textbox::y1#4 textbox::y1#0 ] ] with [ zp[1]: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[1]: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[1]:24 [ draw_window::y1#0 ] ] - score: 1
Coalescing zero page register [ zp[1]:7 [ textbox::x2#4 textbox::x2#0 ] ] with [ zp[1]:25 [ draw_window::x2#0 ] ] - score: 1
Coalescing zero page register [ zp[1]:8 [ textbox::y2#4 textbox::y2#0 ] ] with [ zp[1]:26 [ draw_window::y2#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:16 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 ] ] with [ zp[2]:31 [ textbox::$34 ] ] - score: 1
Coalescing zero page register [ zp[2]:33 [ textbox::$9 ] ] with [ zp[2]:35 [ textbox::$32 ] ] - score: 1
Coalescing zero page register [ zp[2]:45 [ draw_window::z#0 ] ] with [ zp[2]:55 [ draw_window::$3 ] ] - score: 1
Coalescing zero page register [ zp[2]:49 [ draw_window::q#0 ] ] with [ zp[2]:63 [ draw_window::$5 ] ] - score: 1
Coalescing zero page register [ zp[2]:51 [ draw_window::$2 ] ] with [ zp[2]:53 [ draw_window::$29 ] ] - score: 1
Coalescing zero page register [ zp[2]:59 [ draw_window::$4 ] ] with [ zp[2]:61 [ draw_window::$33 ] ] - score: 1
Coalescing zero page register [ zp[2]:73 [ draw_window::$26 ] ] with [ zp[2]:75 [ draw_window::$35 ] ] - score: 1
Coalescing zero page register [ zp[2]:79 [ draw_window::z#1 ] ] with [ zp[2]:85 [ draw_window::$20 ] ] - score: 1
Coalescing zero page register [ zp[2]:81 [ draw_window::$19 ] ] with [ zp[2]:83 [ draw_window::$31 ] ] - score: 1
Coalescing zero page register [ zp[2]:89 [ draw_window::$14 ] ] with [ zp[2]:91 [ draw_window::$27 ] ] - score: 1
Coalescing zero page register [ zp[2]:93 [ draw_window::$15 ] ] with [ zp[2]:95 [ draw_window::$28 ] ] - score: 1
Coalescing zero page register [ zp[1]:2 [ main::x#2 main::x#1 textbox::x1#4 textbox::x1#0 ] ] with [ zp[1]:23 [ draw_window::x1#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:16 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 textbox::$34 ] ] with [ zp[2]:27 [ textbox::$3 ] ] - score: 1
Coalescing zero page register [ zp[2]:45 [ draw_window::z#0 draw_window::$3 ] ] with [ zp[2]:57 [ draw_window::$30 ] ] - score: 1
Coalescing zero page register [ zp[2]:49 [ draw_window::q#0 draw_window::$5 ] ] with [ zp[2]:65 [ draw_window::$34 ] ] - score: 1
Coalescing zero page register [ zp[2]:79 [ draw_window::z#1 draw_window::$20 ] ] with [ zp[2]:87 [ draw_window::$32 ] ] - score: 1
Coalescing zero page register [ zp[2]:9 [ textbox::text#12 ] ] with [ zp[2]:3 [ main::wait#2 main::wait#1 ] ]
Coalescing zero page register [ zp[1]:20 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 ] ] with [ zp[1]:11 [ textbox::i#2 textbox::i#1 ] ]
Coalescing zero page register [ zp[2]:45 [ draw_window::z#0 draw_window::$3 draw_window::$30 ] ] with [ zp[2]:16 [ textbox::z#5 textbox::z#1 textbox::z#3 textbox::z#4 textbox::z#0 textbox::z#2 textbox::$34 textbox::$3 ] ]
Coalescing zero page register [ zp[2]:49 [ draw_window::q#0 draw_window::$5 draw_window::$34 ] ] with [ zp[2]:29 [ textbox::$33 ] ]
Coalescing zero page register [ zp[2]:51 [ draw_window::$2 draw_window::$29 ] ] with [ zp[2]:33 [ textbox::$9 textbox::$32 ] ]
Allocated (was zp[1]:6) zp[1]: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[1]:7) zp[1]:4 [ textbox::x2#4 textbox::x2#0 draw_window::x2#0 ]
Allocated (was zp[1]:8) zp[1]:5 [ textbox::y2#4 textbox::y2#0 draw_window::y2#0 ]
Allocated (was zp[2]:9) zp[2]:6 [ textbox::text#12 main::wait#2 main::wait#1 ]
Allocated (was zp[1]:14) zp[1]: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[1]:20) zp[1]:9 [ draw_window::y3#2 draw_window::y3#0 draw_window::y3#1 textbox::i#2 textbox::i#1 ]
Allocated (was zp[1]:38) zp[1]:10 [ textbox::$18 ]
Allocated (was zp[2]:45) zp[2]: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 textbox::$34 textbox::$3 ]
Allocated (was zp[2]:49) zp[2]:13 [ draw_window::q#0 draw_window::$5 draw_window::$34 textbox::$33 ]
Allocated (was zp[2]:51) zp[2]:15 [ draw_window::$2 draw_window::$29 textbox::$9 textbox::$32 ]
Allocated (was zp[2]:59) zp[2]:17 [ draw_window::$4 draw_window::$33 ]
Allocated (was zp[2]:71) zp[2]:19 [ draw_window::z#2 ]
Allocated (was zp[2]:73) zp[2]:21 [ draw_window::$26 draw_window::$35 ]
Allocated (was zp[2]:79) zp[2]:23 [ draw_window::z#1 draw_window::$20 draw_window::$32 ]
Allocated (was zp[2]:81) zp[2]:25 [ draw_window::$19 draw_window::$31 ]
Allocated (was zp[2]:89) zp[2]:27 [ draw_window::$14 draw_window::$27 ]
Allocated (was zp[2]:93) zp[2]: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::@1 [phi:main->main::@1]
  __b1_from_main:
    // [5] phi (byte) main::x#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z x
    jmp __b1
    // main::@1
  __b1:
    // [6] if((byte) main::x#2<(byte) $f) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 
    lda.z x
    cmp #$f
    bcc __b2
    // [7] phi from main::@1 to main::@3 [phi:main::@1->main::@3]
  __b3_from___b1:
    jmp __b3
    // main::@3
  __b3:
    // [8] 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 [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
    // [9] phi from main::@3 to main::@8 [phi:main::@3->main::@8]
  __b8_from___b3:
    jmp __b8
    // main::@8
  __b8:
    // [10] 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 [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
    // [11] phi from main::@8 to main::@9 [phi:main::@8->main::@9]
  __b9_from___b8:
    jmp __b9
    // main::@9
  __b9:
    // [12] 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 [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
    // [13] 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
    // main::@2
  __b2:
    // [14] (byte~) main::$4 ← (byte) main::x#2 + (byte) main::x#2 -- vbuaa=vbuz1_plus_vbuz1 
    lda.z x
    asl
    // [15] (byte) textbox::x2#0 ← (byte~) main::$4 + (byte) 1 -- vbuz1=vbuaa_plus_1 
    clc
    adc #1
    sta.z textbox.x2
    // [16] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a -- vbuz1=vbuz2_plus_vbuc1 
    lax.z x
    axs #-[$a]
    stx.z textbox.y2
    // [17] (byte) textbox::x1#0 ← (byte) main::x#2
    // [18] (byte) textbox::y1#0 ← (byte) main::x#2 -- vbuz1=vbuz2 
    lda.z x
    sta.z textbox.y1
    // [19] 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 [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
    // [20] phi from main::@2 to main::@4 [phi:main::@2->main::@4]
  __b4_from___b2:
    // [20] phi (word) main::wait#2 = (word) 0 [phi:main::@2->main::@4#0] -- vwuz1=vwuc1 
    lda #<0
    sta.z wait
    lda #>0
    sta.z wait+1
    jmp __b4
    // main::@4
  __b4:
    // [21] if((word) main::wait#2<(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
  !:
    jmp __b6
    // main::@6
  __b6:
    // [22] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2 -- vbuz1=vbuz1_plus_2 
    lda.z x
    clc
    adc #2
    sta.z x
    // [5] phi from main::@6 to main::@1 [phi:main::@6->main::@1]
  __b1_from___b6:
    // [5] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@6->main::@1#0] -- register_copy 
    jmp __b1
    // main::@5
  __b5:
    // [23] (word) main::wait#1 ← ++ (word) main::wait#2 -- vwuz1=_inc_vwuz1 
    inc.z wait
    bne !+
    inc.z wait+1
  !:
    // [20] phi from main::@5 to main::@4 [phi:main::@5->main::@4]
  __b4_from___b5:
    // [20] phi (word) main::wait#2 = (word) main::wait#1 [phi:main::@5->main::@4#0] -- register_copy 
    jmp __b4
}
  // textbox
// textbox(byte zp(2) x1, byte zp(3) y1, byte zp(4) x2, byte zp(5) y2, byte* zp(6) text)
textbox: {
    .label __3 = $b
    .label __9 = $f
    .label __18 = $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 __32 = $f
    .label __33 = $d
    .label __34 = $b
    // [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] (word~) textbox::$3 ← (word)(byte) textbox::y#0 -- vwuz1=_word_vbuz2 
    lda.z y
    sta.z __3
    lda #0
    sta.z __3+1
    // [33] (word~) textbox::$33 ← (word~) textbox::$3 << (byte) 2 -- vwuz1=vwuz2_rol_2 
    lda.z __3
    asl
    sta.z __33
    lda.z __3+1
    rol
    sta.z __33+1
    asl.z __33
    rol.z __33+1
    // [34] (word~) textbox::$34 ← (word~) textbox::$33 + (word~) textbox::$3 -- vwuz1=vwuz2_plus_vwuz1 
    lda.z __34
    clc
    adc.z __33
    sta.z __34
    lda.z __34+1
    adc.z __33+1
    sta.z __34+1
    // [35] (word) textbox::z#0 ← (word~) textbox::$34 << (byte) 3 -- vwuz1=vwuz1_rol_3 
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    asl.z z
    rol.z z+1
    // [36] 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:
    // [37] 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
    // [38] phi from textbox::@13 to textbox::@1 [phi:textbox::@13->textbox::@1]
  __b1_from___b13:
    // [38] phi (byte) textbox::y#12 = (byte) textbox::y#0 [phi:textbox::@13->textbox::@1#0] -- register_copy 
    // [38] phi (byte) textbox::i#2 = (byte) 0 [phi:textbox::@13->textbox::@1#1] -- vbuz1=vbuc1 
    lda #0
    sta.z i
    // [38] phi (byte) textbox::x#10 = (byte) textbox::x#0 [phi:textbox::@13->textbox::@1#2] -- register_copy 
    // [38] phi (word) textbox::z#3 = (word) textbox::z#0 [phi:textbox::@13->textbox::@1#3] -- register_copy 
    jmp __b1
    // [38] phi from textbox::@8 to textbox::@1 [phi:textbox::@8->textbox::@1]
  __b1_from___b8:
    // [38] phi (byte) textbox::y#12 = (byte) textbox::y#11 [phi:textbox::@8->textbox::@1#0] -- register_copy 
    // [38] phi (byte) textbox::i#2 = (byte) textbox::i#1 [phi:textbox::@8->textbox::@1#1] -- register_copy 
    // [38] phi (byte) textbox::x#10 = (byte) textbox::x#7 [phi:textbox::@8->textbox::@1#2] -- register_copy 
    // [38] phi (word) textbox::z#3 = (word) textbox::z#4 [phi:textbox::@8->textbox::@1#3] -- register_copy 
    jmp __b1
    // textbox::@1
  __b1:
    // [39] (word~) textbox::$9 ← (word) textbox::z#3 + (byte) textbox::x#10 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x
    clc
    adc.z z
    sta.z __9
    lda #0
    adc.z z+1
    sta.z __9+1
    // [40] (byte*~) textbox::$32 ← (const byte*) screen + (word~) textbox::$9 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z __32
    adc #<screen
    sta.z __32
    lda.z __32+1
    adc #>screen
    sta.z __32+1
    // [41] *((byte*~) textbox::$32) ← *((byte*) textbox::text#12 + (byte) textbox::i#2) -- _deref_pbuz1=pbuz2_derefidx_vbuz3 
    ldy.z i
    lda (text),y
    ldy #0
    sta (__32),y
    // [42] 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:
    // [43] (byte) textbox::ls#0 ← (byte) textbox::i#2 + (byte) 1 -- vbuyy=vbuz1_plus_1 
    ldy.z i
    iny
    // [44] phi from textbox::@10 to textbox::@3 [phi:textbox::@10->textbox::@3]
  __b3_from___b10:
    // [44] phi (byte) textbox::c#2 = (byte) 0 [phi:textbox::@10->textbox::@3#0] -- vbuxx=vbuc1 
    ldx #0
    // [44] phi (byte) textbox::ls#2 = (byte) textbox::ls#0 [phi:textbox::@10->textbox::@3#1] -- register_copy 
    jmp __b3
    // textbox::@3
  __b3:
    // [45] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@5 -- pbuz1_derefidx_vbuyy_eq_vbuc1_then_la1 
    lda #$20
    cmp (text),y
    beq __b5
    jmp __b14
    // textbox::@14
  __b14:
    // [46] 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:
    // [47] (byte~) textbox::$16 ← (byte) textbox::c#2 + (byte) textbox::x#10 -- vbuyy=vbuxx_plus_vbuz1 
    txa
    clc
    adc.z x
    tay
    // [48] (byte~) textbox::$18 ← (byte) textbox::x2#4 - (byte) textbox::x1#4 -- vbuz1=vbuz2_minus_vbuz3 
    lda.z x2
    sec
    sbc.z x1
    sta.z __18
    // [49] if((byte~) textbox::$16<(byte) textbox::x2#4) goto textbox::@2 -- vbuyy_lt_vbuz1_then_la1 
    cpy.z x2
    bcc __b2_from___b5
    jmp __b15
    // textbox::@15
  __b15:
    // [50] if((byte) textbox::c#2<(byte~) textbox::$18) goto textbox::@6 -- vbuxx_lt_vbuz1_then_la1 
    cpx.z __18
    bcc __b6
    // [51] phi from textbox::@15 to textbox::@2 [phi:textbox::@15->textbox::@2]
  __b2_from___b15:
    jmp __b2
    // [51] 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:
    // [51] phi (word) textbox::z#5 = (word) textbox::z#3 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#0] -- register_copy 
    // [51] phi (byte) textbox::y#5 = (byte) textbox::y#12 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#1] -- register_copy 
    // [51] 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:
    // [52] (byte) textbox::i#1 ← ++ (byte) textbox::i#2 -- vbuz1=_inc_vbuz1 
    inc.z i
    // [53] (byte) textbox::x#1 ← ++ (byte) textbox::x#5 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [54] 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:
    // [55] (byte) textbox::x#12 ← (byte) textbox::x1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z x1
    iny
    sty.z x
    // [56] (byte) textbox::y#2 ← ++ (byte) textbox::y#5 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [57] 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:
    // [58] return 
    rts
    // textbox::@9
  __b9:
    // [59] (byte~) textbox::$39 ← (byte) textbox::y#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y
    asl
    asl
    // [60] (byte~) textbox::$40 ← (byte~) textbox::$39 + (byte) textbox::y#2 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y
    // [61] (word) textbox::z#2 ← (byte~) textbox::$40 << (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
    // [62] phi from textbox::@2 textbox::@9 to textbox::@8 [phi:textbox::@2/textbox::@9->textbox::@8]
  __b8_from___b2:
  __b8_from___b9:
    // [62] phi (byte) textbox::y#11 = (byte) textbox::y#5 [phi:textbox::@2/textbox::@9->textbox::@8#0] -- register_copy 
    // [62] phi (byte) textbox::x#7 = (byte) textbox::x#1 [phi:textbox::@2/textbox::@9->textbox::@8#1] -- register_copy 
    // [62] phi (word) textbox::z#4 = (word) textbox::z#5 [phi:textbox::@2/textbox::@9->textbox::@8#2] -- register_copy 
    jmp __b8
    // textbox::@8
  __b8:
    // [63] 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:
    // [64] (byte) textbox::y#1 ← ++ (byte) textbox::y#12 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [65] 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:
    // [66] (byte~) textbox::$36 ← (byte) textbox::y#1 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y
    asl
    asl
    // [67] (byte~) textbox::$37 ← (byte~) textbox::$36 + (byte) textbox::y#1 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y
    // [68] (word) textbox::z#1 ← (byte~) textbox::$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
    // [69] (byte) textbox::x#15 ← (byte) textbox::x1#4 -- vbuz1=vbuz2 
    lda.z x1
    sta.z x
    jmp __b2_from___b7
    // textbox::@4
  __b4:
    // [70] (byte) textbox::ls#1 ← ++ (byte) textbox::ls#2 -- vbuyy=_inc_vbuyy 
    iny
    // [71] (byte) textbox::c#1 ← ++ (byte) textbox::c#2 -- vbuxx=_inc_vbuxx 
    inx
    // [44] phi from textbox::@4 to textbox::@3 [phi:textbox::@4->textbox::@3]
  __b3_from___b4:
    // [44] phi (byte) textbox::c#2 = (byte) textbox::c#1 [phi:textbox::@4->textbox::@3#0] -- register_copy 
    // [44] phi (byte) textbox::ls#2 = (byte) textbox::ls#1 [phi:textbox::@4->textbox::@3#1] -- register_copy 
    jmp __b3
}
  // draw_window
// draw_window(byte zp(2) x1, byte zp(3) y1, byte zp(4) x2, byte zp(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
    // [72] (byte~) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y1
    asl
    asl
    // [73] (byte~) draw_window::$37 ← (byte~) draw_window::$36 + (byte) draw_window::y1#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y1
    // [74] (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
    // [75] (byte~) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y2
    asl
    asl
    // [76] (byte~) draw_window::$40 ← (byte~) draw_window::$39 + (byte) draw_window::y2#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y2
    // [77] (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
    // [78] (byte) draw_window::x#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx.z x1
    inx
    // [79] 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:
    // [79] 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:
    // [80] 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:
    // [81] (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
    // [82] (byte*~) draw_window::$29 ← (const byte*) screen + (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
    // [83] *((byte*~) draw_window::$29) ← (byte) $55 -- _deref_pbuz1=vbuc1 
    // draw upper corners
    lda #$55
    ldy #0
    sta (__29),y
    // [84] (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
  !:
    // [85] (byte*~) draw_window::$30 ← (const byte*) screen + (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
    // [86] *((byte*~) draw_window::$30) ← (byte) $49 -- _deref_pbuz1=vbuc1 
    lda #$49
    ldy #0
    sta (__30),y
    // [87] (byte) draw_window::y#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx.z y1
    inx
    // [88] 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:
    // [88] 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:
    // [89] 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:
    // [90] (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
    // [91] (byte*~) draw_window::$33 ← (const byte*) screen + (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
    // [92] *((byte*~) draw_window::$33) ← (byte) $4a -- _deref_pbuz1=vbuc1 
    // draw lower corners
    lda #$4a
    ldy #0
    sta (__33),y
    // [93] (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
  !:
    // [94] (byte*~) draw_window::$34 ← (const byte*) screen + (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
    // [95] *((byte*~) draw_window::$34) ← (byte) $4b -- _deref_pbuz1=vbuc1 
    lda #$4b
    ldy #0
    sta (__34),y
    // [96] (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
    // [97] (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
    // [98] 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:
    // [99] 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:
    // [100] return 
    rts
    // draw_window::@7
  __b7:
    // [101] (byte) draw_window::y3#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z y1
    iny
    sty.z y3
    // [102] 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:
    // [102] 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:
    // [103] 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:
    // [104] (byte~) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y3
    asl
    asl
    // [105] (byte~) draw_window::$46 ← (byte~) draw_window::$45 + (byte) draw_window::y3#2 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y3
    // [106] (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
    // [107] (byte) draw_window::x3#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx.z x1
    inx
    // [108] 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:
    // [108] 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:
    // [109] 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:
    // [110] (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#2 -- vbuz1=_inc_vbuz1 
    inc.z y3
    jmp __b8_from___b12
    // draw_window::@11
  __b11:
    // [111] (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
    // [112] (byte*~) draw_window::$35 ← (const byte*) screen + (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
    // [113] *((byte*~) draw_window::$35) ← (byte) $20 -- _deref_pbuz1=vbuc1 
    lda #$20
    ldy #0
    sta (__35),y
    // [114] (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2 -- vbuxx=_inc_vbuxx 
    inx
    jmp __b10_from___b11
    // draw_window::@5
  __b5:
    // [115] (byte~) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 
    txa
    asl
    asl
    // [116] (byte~) draw_window::$43 ← (byte~) draw_window::$42 + (byte) draw_window::y#2 -- vbuaa=vbuaa_plus_vbuxx 
    stx.z $ff
    clc
    adc.z $ff
    // [117] (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
    // [118] (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
    // [119] (byte*~) draw_window::$31 ← (const byte*) screen + (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
    // [120] *((byte*~) draw_window::$31) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (__31),y
    // [121] (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
  !:
    // [122] (byte*~) draw_window::$32 ← (const byte*) screen + (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
    // [123] *((byte*~) draw_window::$32) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (__32),y
    // [124] (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2 -- vbuxx=_inc_vbuxx 
    inx
    jmp __b4_from___b5
    // draw_window::@2
  __b2:
    // [125] (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
    // [126] (byte*~) draw_window::$27 ← (const byte*) screen + (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
    // [127] *((byte*~) draw_window::$27) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (__27),y
    // [128] (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
    // [129] (byte*~) draw_window::$28 ← (const byte*) screen + (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
    // [130] *((byte*~) draw_window::$28) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (__28),y
    // [131] (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 __b1
Removing instruction jmp __b3
Removing instruction jmp __b8
Removing instruction jmp __b9
Removing instruction jmp __b7
Removing instruction jmp __b4
Removing instruction jmp __b6
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 #3
Removing instruction lda #>0
Replacing instruction lda.z x with TYA
Replacing instruction lda #0 with TYA
Removing instruction ldy #0
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Replacing label __bbegin with __b1
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 __bbegin:
Removing instruction __b1_from___bbegin:
Removing instruction main_from___b1:
Removing instruction __bend_from___b1:
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 __b1_from_main:
Removing instruction __b3:
Removing instruction __b8:
Removing instruction __b9:
Removing instruction textbox_from___b2:
Removing instruction __b4_from___b2:
Removing instruction __b6:
Removing instruction __b1_from___b6:
Removing instruction __b4_from___b5:
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 b2
Relabelling long label __b8_from___b7 to b3
Succesful ASM optimization Pass5RelabelLongLabels
Removing instruction jmp __b1
Removing instruction jmp __b2
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction ldy.z i
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Removing instruction __b1:
Succesful ASM optimization Pass5UnusedLabelElimination
Fixing long branch [228] bne __b1 to beq
Fixing long branch [323] bcc __b2 to bcs
Fixing long branch [366] 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 zp[2]:27 202.0
(word~) draw_window::$15 zp[2]:29 202.0
(word~) draw_window::$19 zp[2]:25 202.0
(word~) draw_window::$2 zp[2]:15 4.0
(word~) draw_window::$20 zp[2]:23 202.0
(word~) draw_window::$26 zp[2]:21 2002.0
(byte*~) draw_window::$27 zp[2]:27 202.0
(byte*~) draw_window::$28 zp[2]:29 202.0
(byte*~) draw_window::$29 zp[2]:15 4.0
(word~) draw_window::$3 zp[2]:11 4.0
(byte*~) draw_window::$30 zp[2]:11 4.0
(byte*~) draw_window::$31 zp[2]:25 202.0
(byte*~) draw_window::$32 zp[2]:23 202.0
(byte*~) draw_window::$33 zp[2]:17 4.0
(byte*~) draw_window::$34 zp[2]:13 4.0
(byte*~) draw_window::$35 zp[2]: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 zp[2]: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 zp[2]: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[2]: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[1]:2 3.365079365079365
(byte) draw_window::x2
(byte) draw_window::x2#0 x2 zp[1]: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[1]:3 0.24999999999999997
(byte) draw_window::y2
(byte) draw_window::y2#0 y2 zp[1]:5 3.5
(byte) draw_window::y3
(byte) draw_window::y3#0 y3 zp[1]:9 4.0
(byte) draw_window::y3#1 y3 zp[1]:9 202.0
(byte) draw_window::y3#2 y3 zp[1]:9 42.24999999999999
(word) draw_window::z
(word) draw_window::z#0 z zp[2]:11 6.294117647058823
(word) draw_window::z#1 z_1 zp[2]:23 75.75
(word) draw_window::z#2 z_2 zp[2]: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[2]:6 202.0
(word) main::wait#2 wait zp[2]:6 151.5
(byte) main::x
(byte) main::x#1 x zp[1]:2 22.0
(byte) main::x#2 x zp[1]:2 8.0
(const byte*) screen = (byte*) 1024
(const byte*) text[]  = (byte*) "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 byte*) text2[]  = (byte*) "textbox by scan of desire"
(void()) textbox((byte) textbox::x1 , (byte) textbox::y1 , (byte) textbox::x2 , (byte) textbox::y2 , (byte*) textbox::text)
(byte~) textbox::$16 reg byte y 101.0
(byte~) textbox::$18 zp[1]:10 101.0
(word~) textbox::$3 zp[2]:11 3.0
(byte*~) textbox::$32 zp[2]:15 202.0
(word~) textbox::$33 zp[2]:13 4.0
(word~) textbox::$34 zp[2]:11 4.0
(byte~) textbox::$36 reg byte a 202.0
(byte~) textbox::$37 reg byte a 202.0
(byte~) textbox::$39 reg byte a 202.0
(byte~) textbox::$40 reg byte a 202.0
(word~) textbox::$9 zp[2]:15 202.0
(label) textbox::@1
(label) textbox::@10
(label) textbox::@11
(label) textbox::@12
(label) textbox::@13
(label) textbox::@14
(label) textbox::@15
(label) textbox::@2
(label) textbox::@3
(label) textbox::@4
(label) textbox::@5
(label) textbox::@6
(label) textbox::@7
(label) textbox::@8
(label) textbox::@9
(label) textbox::@return
(byte) textbox::c
(byte) textbox::c#1 reg byte x 2002.0
(byte) textbox::c#2 reg byte x 314.85714285714283
(byte) textbox::i
(byte) textbox::i#1 i zp[1]:9 27.545454545454547
(byte) textbox::i#2 i zp[1]: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[2]:6 49.04255319148936
(byte) textbox::x
(byte) textbox::x#0 x zp[1]:8 0.8571428571428571
(byte) textbox::x#1 x zp[1]:8 151.5
(byte) textbox::x#10 x zp[1]:8 36.214285714285715
(byte) textbox::x#12 x zp[1]:8 33.666666666666664
(byte) textbox::x#15 x zp[1]:8 202.0
(byte) textbox::x#5 x zp[1]:8 202.0
(byte) textbox::x#7 x zp[1]:8 151.5
(byte) textbox::x1
(byte) textbox::x1#0 x1 zp[1]:2 11.0
(byte) textbox::x1#4 x1 zp[1]:2 6.76595744680851
(byte) textbox::x2
(byte) textbox::x2#0 x2 zp[1]:4 5.5
(byte) textbox::x2#4 x2 zp[1]:4 6.76595744680851
(byte) textbox::y
(byte) textbox::y#0 y zp[1]:3 0.75
(byte) textbox::y#1 y zp[1]:3 84.16666666666666
(byte) textbox::y#11 y zp[1]:3 151.5
(byte) textbox::y#12 y zp[1]:3 27.06666666666667
(byte) textbox::y#2 y zp[1]:3 101.0
(byte) textbox::y#5 y zp[1]:3 101.0
(byte) textbox::y1
(byte) textbox::y1#0 y1 zp[1]:3 22.0
(byte) textbox::y1#4 y1 zp[1]:3 2.5
(byte) textbox::y2
(byte) textbox::y2#0 y2 zp[1]:5 7.333333333333333
(byte) textbox::y2#4 y2 zp[1]:5 4.617021276595745
(word) textbox::z
(word) textbox::z#0 z zp[2]:11 1.3333333333333333
(word) textbox::z#1 z zp[2]:11 101.0
(word) textbox::z#2 z zp[2]:11 202.0
(word) textbox::z#3 z zp[2]:11 29.000000000000004
(word) textbox::z#4 z zp[2]:11 151.5
(word) textbox::z#5 z zp[2]:11 101.0

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


FINAL ASSEMBLER
Score: 154230

  // 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::@1 [phi:main->main::@1]
    // [5] phi (byte) main::x#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z x
    // main::@1
  __b1:
    // for (byte x = 0; x < 15; x += 2)
    // [6] if((byte) main::x#2<(byte) $f) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 
    lda.z x
    cmp #$f
    bcc __b2
    // [7] phi from main::@1 to main::@3 [phi:main::@1->main::@3]
    // main::@3
    // textbox(0,12,20,24,text)
    // [8] call textbox 
    // [24] phi from main::@3 to textbox [phi:main::@3->textbox]
    // [24] phi (byte*) textbox::text#12 = (const byte*) text [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
    // [9] phi from main::@3 to main::@8 [phi:main::@3->main::@8]
    // main::@8
    // textbox(3,3,37,9,text)
    // [10] call textbox 
    // [24] phi from main::@8 to textbox [phi:main::@8->textbox]
    // [24] phi (byte*) textbox::text#12 = (const byte*) text [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
    // [11] phi from main::@8 to main::@9 [phi:main::@8->main::@9]
    // main::@9
    // textbox(30,8,39,24,text)
    // [12] call textbox 
    // [24] phi from main::@9 to textbox [phi:main::@9->textbox]
    // [24] phi (byte*) textbox::text#12 = (const byte*) text [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
    // [13] phi from main::@7 main::@9 to main::@7 [phi:main::@7/main::@9->main::@7]
    // main::@7
  __b7:
    jmp __b7
    // main::@2
  __b2:
    // x+x
    // [14] (byte~) main::$4 ← (byte) main::x#2 + (byte) main::x#2 -- vbuaa=vbuz1_plus_vbuz1 
    lda.z x
    asl
    // textbox(x,x,x+x+1,x+10,text2)
    // [15] (byte) textbox::x2#0 ← (byte~) main::$4 + (byte) 1 -- vbuz1=vbuaa_plus_1 
    clc
    adc #1
    sta.z textbox.x2
    // [16] (byte) textbox::y2#0 ← (byte) main::x#2 + (byte) $a -- vbuz1=vbuz2_plus_vbuc1 
    lax.z x
    axs #-[$a]
    stx.z textbox.y2
    // [17] (byte) textbox::x1#0 ← (byte) main::x#2
    // [18] (byte) textbox::y1#0 ← (byte) main::x#2 -- vbuz1=vbuz2 
    lda.z x
    sta.z textbox.y1
    // [19] call textbox 
    // [24] phi from main::@2 to textbox [phi:main::@2->textbox]
    // [24] phi (byte*) textbox::text#12 = (const byte*) text2 [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
    // [20] phi from main::@2 to main::@4 [phi:main::@2->main::@4]
    // [20] phi (word) main::wait#2 = (word) 0 [phi:main::@2->main::@4#0] -- vwuz1=vwuc1 
    lda #<0
    sta.z wait
    sta.z wait+1
    // main::@4
  __b4:
    // for (word wait = 0; wait < 35000; wait++)
    // [21] if((word) main::wait#2<(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
    // [22] (byte) main::x#1 ← (byte) main::x#2 + (byte) 2 -- vbuz1=vbuz1_plus_2 
    lda.z x
    clc
    adc #2
    sta.z x
    // [5] phi from main::@6 to main::@1 [phi:main::@6->main::@1]
    // [5] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@6->main::@1#0] -- register_copy 
    jmp __b1
    // main::@5
  __b5:
    // for (word wait = 0; wait < 35000; wait++)
    // [23] (word) main::wait#1 ← ++ (word) main::wait#2 -- vwuz1=_inc_vwuz1 
    inc.z wait
    bne !+
    inc.z wait+1
  !:
    // [20] phi from main::@5 to main::@4 [phi:main::@5->main::@4]
    // [20] phi (word) main::wait#2 = (word) main::wait#1 [phi:main::@5->main::@4#0] -- register_copy 
    jmp __b4
}
  // textbox
// textbox(byte zp(2) x1, byte zp(3) y1, byte zp(4) x2, byte zp(5) y2, byte* zp(6) text)
textbox: {
    .label __3 = $b
    .label __9 = $f
    .label __18 = $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 __32 = $f
    .label __33 = $d
    .label __34 = $b
    // 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
    // (word)y
    // [32] (word~) textbox::$3 ← (word)(byte) textbox::y#0 -- vwuz1=_word_vbuz2 
    lda.z y
    sta.z __3
    lda #0
    sta.z __3+1
    // z = (word)y*40
    // [33] (word~) textbox::$33 ← (word~) textbox::$3 << (byte) 2 -- vwuz1=vwuz2_rol_2 
    lda.z __3
    asl
    sta.z __33
    lda.z __3+1
    rol
    sta.z __33+1
    asl.z __33
    rol.z __33+1
    // [34] (word~) textbox::$34 ← (word~) textbox::$33 + (word~) textbox::$3 -- vwuz1=vwuz2_plus_vwuz1 
    lda.z __34
    clc
    adc.z __33
    sta.z __34
    lda.z __34+1
    adc.z __33+1
    sta.z __34+1
    // [35] (word) textbox::z#0 ← (word~) textbox::$34 << (byte) 3 -- vwuz1=vwuz1_rol_3 
    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)
    // [36] 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
    // [37] 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
    // [38] phi from textbox::@13 to textbox::@1 [phi:textbox::@13->textbox::@1]
    // [38] phi (byte) textbox::y#12 = (byte) textbox::y#0 [phi:textbox::@13->textbox::@1#0] -- register_copy 
    // [38] phi (byte) textbox::i#2 = (byte) 0 [phi:textbox::@13->textbox::@1#1] -- vbuz1=vbuc1 
    lda #0
    sta.z i
    // [38] phi (byte) textbox::x#10 = (byte) textbox::x#0 [phi:textbox::@13->textbox::@1#2] -- register_copy 
    // [38] phi (word) textbox::z#3 = (word) textbox::z#0 [phi:textbox::@13->textbox::@1#3] -- register_copy 
    // [38] phi from textbox::@8 to textbox::@1 [phi:textbox::@8->textbox::@1]
    // [38] phi (byte) textbox::y#12 = (byte) textbox::y#11 [phi:textbox::@8->textbox::@1#0] -- register_copy 
    // [38] phi (byte) textbox::i#2 = (byte) textbox::i#1 [phi:textbox::@8->textbox::@1#1] -- register_copy 
    // [38] phi (byte) textbox::x#10 = (byte) textbox::x#7 [phi:textbox::@8->textbox::@1#2] -- register_copy 
    // [38] phi (word) textbox::z#3 = (word) textbox::z#4 [phi:textbox::@8->textbox::@1#3] -- register_copy 
    // textbox::@1
  __b1:
    // z+x
    // [39] (word~) textbox::$9 ← (word) textbox::z#3 + (byte) textbox::x#10 -- vwuz1=vwuz2_plus_vbuz3 
    lda.z x
    clc
    adc.z z
    sta.z __9
    lda #0
    adc.z z+1
    sta.z __9+1
    // screen[z+x] = text[i]
    // [40] (byte*~) textbox::$32 ← (const byte*) screen + (word~) textbox::$9 -- pbuz1=pbuc1_plus_vwuz1 
    clc
    lda.z __32
    adc #<screen
    sta.z __32
    lda.z __32+1
    adc #>screen
    sta.z __32+1
    // [41] *((byte*~) textbox::$32) ← *((byte*) textbox::text#12 + (byte) textbox::i#2) -- _deref_pbuz1=pbuz2_derefidx_vbuz3 
    ldy.z i
    lda (text),y
    ldy #0
    sta (__32),y
    // if (text[i] == $20)
    // [42] 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
    // [43] (byte) textbox::ls#0 ← (byte) textbox::i#2 + (byte) 1 -- vbuyy=vbuz1_plus_1 
    iny
    // [44] phi from textbox::@10 to textbox::@3 [phi:textbox::@10->textbox::@3]
    // [44] phi (byte) textbox::c#2 = (byte) 0 [phi:textbox::@10->textbox::@3#0] -- vbuxx=vbuc1 
    ldx #0
    // [44] 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)
    // [45] if(*((byte*) textbox::text#12 + (byte) textbox::ls#2)==(byte) $20) goto textbox::@5 -- pbuz1_derefidx_vbuyy_eq_vbuc1_then_la1 
    lda #$20
    cmp (text),y
    beq __b5
    // textbox::@14
    // [46] 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
    // [47] (byte~) textbox::$16 ← (byte) textbox::c#2 + (byte) textbox::x#10 -- vbuyy=vbuxx_plus_vbuz1 
    txa
    clc
    adc.z x
    tay
    // x2-x1
    // [48] (byte~) textbox::$18 ← (byte) textbox::x2#4 - (byte) textbox::x1#4 -- vbuz1=vbuz2_minus_vbuz3 
    lda.z x2
    sec
    sbc.z x1
    sta.z __18
    // if (c+x >= x2 && c < x2-x1)
    // [49] if((byte~) textbox::$16<(byte) textbox::x2#4) goto textbox::@2 -- vbuyy_lt_vbuz1_then_la1 
    cpy.z x2
    bcc __b2
    // textbox::@15
    // [50] if((byte) textbox::c#2<(byte~) textbox::$18) goto textbox::@6 -- vbuxx_lt_vbuz1_then_la1 
    cpx.z __18
    bcc __b6
    // [51] phi from textbox::@15 to textbox::@2 [phi:textbox::@15->textbox::@2]
    // [51] phi from textbox::@1 textbox::@5 textbox::@7 to textbox::@2 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2]
    // [51] phi (word) textbox::z#5 = (word) textbox::z#3 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#0] -- register_copy 
    // [51] phi (byte) textbox::y#5 = (byte) textbox::y#12 [phi:textbox::@1/textbox::@5/textbox::@7->textbox::@2#1] -- register_copy 
    // [51] 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++;
    // [52] (byte) textbox::i#1 ← ++ (byte) textbox::i#2 -- vbuz1=_inc_vbuz1 
    inc.z i
    // x++;
    // [53] (byte) textbox::x#1 ← ++ (byte) textbox::x#5 -- vbuz1=_inc_vbuz1 
    inc.z x
    // if (x == x2)
    // [54] 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
    // [55] (byte) textbox::x#12 ← (byte) textbox::x1#4 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z x1
    iny
    sty.z x
    // y++;
    // [56] (byte) textbox::y#2 ← ++ (byte) textbox::y#5 -- vbuz1=_inc_vbuz1 
    inc.z y
    // if (y == y2)
    // [57] 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:
    // }
    // [58] return 
    rts
    // textbox::@9
  __b9:
    // z = y*40
    // [59] (byte~) textbox::$39 ← (byte) textbox::y#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y
    asl
    asl
    // [60] (byte~) textbox::$40 ← (byte~) textbox::$39 + (byte) textbox::y#2 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y
    // [61] (word) textbox::z#2 ← (byte~) textbox::$40 << (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
    // [62] phi from textbox::@2 textbox::@9 to textbox::@8 [phi:textbox::@2/textbox::@9->textbox::@8]
    // [62] phi (byte) textbox::y#11 = (byte) textbox::y#5 [phi:textbox::@2/textbox::@9->textbox::@8#0] -- register_copy 
    // [62] phi (byte) textbox::x#7 = (byte) textbox::x#1 [phi:textbox::@2/textbox::@9->textbox::@8#1] -- register_copy 
    // [62] 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)
    // [63] 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++;
    // [64] (byte) textbox::y#1 ← ++ (byte) textbox::y#12 -- vbuz1=_inc_vbuz1 
    inc.z y
    // if (y == y2)
    // [65] 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
    // [66] (byte~) textbox::$36 ← (byte) textbox::y#1 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y
    asl
    asl
    // [67] (byte~) textbox::$37 ← (byte~) textbox::$36 + (byte) textbox::y#1 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y
    // [68] (word) textbox::z#1 ← (byte~) textbox::$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
    // [69] (byte) textbox::x#15 ← (byte) textbox::x1#4 -- vbuz1=vbuz2 
    lda.z x1
    sta.z x
    jmp __b2
    // textbox::@4
  __b4:
    // ls++;
    // [70] (byte) textbox::ls#1 ← ++ (byte) textbox::ls#2 -- vbuyy=_inc_vbuyy 
    iny
    // c++;
    // [71] (byte) textbox::c#1 ← ++ (byte) textbox::c#2 -- vbuxx=_inc_vbuxx 
    inx
    // [44] phi from textbox::@4 to textbox::@3 [phi:textbox::@4->textbox::@3]
    // [44] phi (byte) textbox::c#2 = (byte) textbox::c#1 [phi:textbox::@4->textbox::@3#0] -- register_copy 
    // [44] phi (byte) textbox::ls#2 = (byte) textbox::ls#1 [phi:textbox::@4->textbox::@3#1] -- register_copy 
    jmp __b3
}
  // draw_window
// draw_window(byte zp(2) x1, byte zp(3) y1, byte zp(4) x2, byte zp(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
    // [72] (byte~) draw_window::$36 ← (byte) draw_window::y1#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y1
    asl
    asl
    // [73] (byte~) draw_window::$37 ← (byte~) draw_window::$36 + (byte) draw_window::y1#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y1
    // [74] (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
    // [75] (byte~) draw_window::$39 ← (byte) draw_window::y2#0 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y2
    asl
    asl
    // [76] (byte~) draw_window::$40 ← (byte~) draw_window::$39 + (byte) draw_window::y2#0 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y2
    // [77] (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
    // [78] (byte) draw_window::x#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx.z x1
    inx
    // [79] phi from draw_window draw_window::@2 to draw_window::@1 [phi:draw_window/draw_window::@2->draw_window::@1]
  b1:
    // [79] 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++)
    // [80] 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
    // [81] (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
    // [82] (byte*~) draw_window::$29 ← (const byte*) screen + (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
    // [83] *((byte*~) draw_window::$29) ← (byte) $55 -- _deref_pbuz1=vbuc1 
    // draw upper corners
    lda #$55
    ldy #0
    sta (__29),y
    // z+x2
    // [84] (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
    // [85] (byte*~) draw_window::$30 ← (const byte*) screen + (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
    // [86] *((byte*~) draw_window::$30) ← (byte) $49 -- _deref_pbuz1=vbuc1 
    lda #$49
    ldy #0
    sta (__30),y
    // y = y1+1
    // [87] (byte) draw_window::y#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx.z y1
    inx
    // [88] phi from draw_window::@3 draw_window::@5 to draw_window::@4 [phi:draw_window::@3/draw_window::@5->draw_window::@4]
  b2:
    // [88] 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++)
    // [89] 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
    // [90] (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
    // [91] (byte*~) draw_window::$33 ← (const byte*) screen + (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
    // [92] *((byte*~) draw_window::$33) ← (byte) $4a -- _deref_pbuz1=vbuc1 
    // draw lower corners
    lda #$4a
    ldy #0
    sta (__33),y
    // q+x2
    // [93] (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
    // [94] (byte*~) draw_window::$34 ← (const byte*) screen + (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
    // [95] *((byte*~) draw_window::$34) ← (byte) $4b -- _deref_pbuz1=vbuc1 
    lda #$4b
    ldy #0
    sta (__34),y
    // x2-x1
    // [96] (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
    // [97] (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)
    // [98] 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
    // [99] 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:
    // }
    // [100] return 
    rts
    // draw_window::@7
  __b7:
    // y = y1+1
    // [101] (byte) draw_window::y3#0 ← (byte) draw_window::y1#0 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z y1
    iny
    sty.z y3
    // [102] phi from draw_window::@12 draw_window::@7 to draw_window::@8 [phi:draw_window::@12/draw_window::@7->draw_window::@8]
  b3:
    // [102] 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++)
    // [103] 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
    // [104] (byte~) draw_window::$45 ← (byte) draw_window::y3#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 
    lda.z y3
    asl
    asl
    // [105] (byte~) draw_window::$46 ← (byte~) draw_window::$45 + (byte) draw_window::y3#2 -- vbuaa=vbuaa_plus_vbuz1 
    clc
    adc.z y3
    // [106] (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
    // [107] (byte) draw_window::x3#0 ← (byte) draw_window::x1#0 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx.z x1
    inx
    // [108] phi from draw_window::@11 draw_window::@9 to draw_window::@10 [phi:draw_window::@11/draw_window::@9->draw_window::@10]
    // [108] 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++)
    // [109] 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++)
    // [110] (byte) draw_window::y3#1 ← ++ (byte) draw_window::y3#2 -- vbuz1=_inc_vbuz1 
    inc.z y3
    jmp b3
    // draw_window::@11
  __b11:
    // z+x
    // [111] (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
    // [112] (byte*~) draw_window::$35 ← (const byte*) screen + (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
    // [113] *((byte*~) draw_window::$35) ← (byte) $20 -- _deref_pbuz1=vbuc1 
    lda #$20
    ldy #0
    sta (__35),y
    // for(byte x = x1+1; x < x2; x++)
    // [114] (byte) draw_window::x3#1 ← ++ (byte) draw_window::x3#2 -- vbuxx=_inc_vbuxx 
    inx
    jmp __b10
    // draw_window::@5
  __b5:
    // z = y*40
    // [115] (byte~) draw_window::$42 ← (byte) draw_window::y#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 
    txa
    asl
    asl
    // [116] (byte~) draw_window::$43 ← (byte~) draw_window::$42 + (byte) draw_window::y#2 -- vbuaa=vbuaa_plus_vbuxx 
    stx.z $ff
    clc
    adc.z $ff
    // [117] (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
    // [118] (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
    // [119] (byte*~) draw_window::$31 ← (const byte*) screen + (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
    // [120] *((byte*~) draw_window::$31) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (__31),y
    // z+x2
    // [121] (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
    // [122] (byte*~) draw_window::$32 ← (const byte*) screen + (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
    // [123] *((byte*~) draw_window::$32) ← (byte) $42 -- _deref_pbuz1=vbuc1 
    lda #$42
    ldy #0
    sta (__32),y
    // for (byte y = y1+1; y < y2; y++)
    // [124] (byte) draw_window::y#1 ← ++ (byte) draw_window::y#2 -- vbuxx=_inc_vbuxx 
    inx
    jmp b2
    // draw_window::@2
  __b2:
    // z+x
    // [125] (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
    // [126] (byte*~) draw_window::$27 ← (const byte*) screen + (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
    // [127] *((byte*~) draw_window::$27) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    ldy #0
    sta (__27),y
    // q+x
    // [128] (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
    // [129] (byte*~) draw_window::$28 ← (const byte*) screen + (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
    // [130] *((byte*~) draw_window::$28) ← (byte) $43 -- _deref_pbuz1=vbuc1 
    lda #$43
    sta (__28),y
    // for (byte x = x1+1; x < x2; x++)
    // [131] (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

