Inlined call call mulf8s_prepare(mulf8s::a)
Inlined call call __init
Eliminating unused variable with no statement memset::$2
Eliminating unused variable with no statement mul8s::$0
Eliminating unused variable with no statement mulf8s_prepared::$0
Eliminating unused variable with no statement mul8u_compare::$2
Eliminating unused variable with no statement mul8u_compare::$3
Eliminating unused variable with no statement mul8u_compare::$4
Eliminating unused variable with no statement mul8s_compare::$4
Eliminating unused variable with no statement mul8s_compare::$5
Eliminating unused variable with no statement mul8s_compare::$6

CONTROL FLOW GRAPH SSA

void print_str(char *str)
print_str: scope:[print_str]  from mul8s_compare::@3 mul8s_error mul8s_error::@2 mul8s_error::@4 mul8s_error::@6 mul8s_error::@8 mul8u_compare::@10 mul8u_error mul8u_error::@2 mul8u_error::@4 mul8u_error::@6 mul8u_error::@8 mulf_tables_cmp::@3 mulf_tables_cmp::@5 mulf_tables_cmp::@9
  print_char_cursor#158 = phi( mul8s_compare::@3/print_char_cursor#154, mul8s_error/print_char_cursor#156, mul8s_error::@2/print_char_cursor#55, mul8s_error::@4/print_char_cursor#57, mul8s_error::@6/print_char_cursor#59, mul8s_error::@8/print_char_cursor#61, mul8u_compare::@10/print_char_cursor#152, mul8u_error/print_char_cursor#153, mul8u_error::@2/print_char_cursor#39, mul8u_error::@4/print_char_cursor#41, mul8u_error::@6/print_char_cursor#43, mul8u_error::@8/print_char_cursor#45, mulf_tables_cmp::@3/print_char_cursor#149, mulf_tables_cmp::@5/print_char_cursor#150, mulf_tables_cmp::@9/print_char_cursor#30 )
  print_str::str#19 = phi( mul8s_compare::@3/print_str::str#10, mul8s_error/print_str::str#11, mul8s_error::@2/print_str::str#12, mul8s_error::@4/print_str::str#13, mul8s_error::@6/print_str::str#14, mul8s_error::@8/print_str::str#15, mul8u_compare::@10/print_str::str#4, mul8u_error/print_str::str#5, mul8u_error::@2/print_str::str#6, mul8u_error::@4/print_str::str#7, mul8u_error::@6/print_str::str#8, mul8u_error::@8/print_str::str#9, mulf_tables_cmp::@3/print_str::str#1, mulf_tables_cmp::@5/print_str::str#2, mulf_tables_cmp::@9/print_str::str#3 )
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@3
  print_char_cursor#137 = phi( print_str/print_char_cursor#158, print_str::@3/print_char_cursor#0 )
  print_str::str#16 = phi( print_str/print_str::str#19, print_str::@3/print_str::str#0 )
  print_str::$1 = 0 != *print_str::str#16
  if(print_str::$1) goto print_str::@2
  to:print_str::@return
print_str::@2: scope:[print_str]  from print_str::@1
  print_char_cursor#136 = phi( print_str::@1/print_char_cursor#137 )
  print_str::str#17 = phi( print_str::@1/print_str::str#16 )
  print_char::ch#0 = *print_str::str#17
  call print_char
  to:print_str::@3
print_str::@3: scope:[print_str]  from print_str::@2
  print_str::str#18 = phi( print_str::@2/print_str::str#17 )
  print_char_cursor#69 = phi( print_str::@2/print_char_cursor#19 )
  print_char_cursor#0 = print_char_cursor#69
  print_str::str#0 = ++ print_str::str#18
  to:print_str::@1
print_str::@return: scope:[print_str]  from print_str::@1
  print_char_cursor#70 = phi( print_str::@1/print_char_cursor#137 )
  print_char_cursor#1 = print_char_cursor#70
  return 
  to:@return

void print_ln()
print_ln: scope:[print_ln]  from mul8s_compare::@13 mul8s_error::@10 mul8u_compare::@15 mul8u_error::@10 mulf_tables_cmp::@6
  print_char_cursor#138 = phi( mul8s_compare::@13/print_char_cursor#50, mul8s_error::@10/print_char_cursor#63, mul8u_compare::@15/print_char_cursor#36, mul8u_error::@10/print_char_cursor#47, mulf_tables_cmp::@6/print_char_cursor#27 )
  print_line_cursor#47 = phi( mul8s_compare::@13/print_line_cursor#55, mul8s_error::@10/print_line_cursor#57, mul8u_compare::@15/print_line_cursor#53, mul8u_error::@10/print_line_cursor#54, mulf_tables_cmp::@6/print_line_cursor#50 )
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  print_char_cursor#71 = phi( print_ln/print_char_cursor#138, print_ln::@1/print_char_cursor#71 )
  print_line_cursor#24 = phi( print_ln/print_line_cursor#47, print_ln::@1/print_line_cursor#0 )
  print_ln::$0 = print_line_cursor#24 + $28
  print_line_cursor#0 = print_ln::$0
  print_ln::$1 = print_line_cursor#0 < print_char_cursor#71
  if(print_ln::$1) goto print_ln::@1
  to:print_ln::@2
print_ln::@2: scope:[print_ln]  from print_ln::@1
  print_line_cursor#25 = phi( print_ln::@1/print_line_cursor#0 )
  print_char_cursor#2 = print_line_cursor#25
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@2
  print_char_cursor#72 = phi( print_ln::@2/print_char_cursor#2 )
  print_line_cursor#26 = phi( print_ln::@2/print_line_cursor#25 )
  print_line_cursor#1 = print_line_cursor#26
  print_char_cursor#3 = print_char_cursor#72
  return 
  to:@return

void print_sint(int w)
print_sint: scope:[print_sint]  from mul8s_error::@5 mul8s_error::@7 mul8s_error::@9
  print_char_cursor#159 = phi( mul8s_error::@5/print_char_cursor#58, mul8s_error::@7/print_char_cursor#60, mul8s_error::@9/print_char_cursor#62 )
  print_sint::w#4 = phi( mul8s_error::@5/print_sint::w#1, mul8s_error::@7/print_sint::w#2, mul8s_error::@9/print_sint::w#3 )
  print_sint::$0 = print_sint::w#4 < 0
  if(print_sint::$0) goto print_sint::@1
  to:print_sint::@3
print_sint::@1: scope:[print_sint]  from print_sint
  print_sint::w#7 = phi( print_sint/print_sint::w#4 )
  print_char_cursor#139 = phi( print_sint/print_char_cursor#159 )
  print_char::ch#1 = '-'
  call print_char
  to:print_sint::@4
print_sint::@4: scope:[print_sint]  from print_sint::@1
  print_sint::w#5 = phi( print_sint::@1/print_sint::w#7 )
  print_char_cursor#73 = phi( print_sint::@1/print_char_cursor#19 )
  print_char_cursor#4 = print_char_cursor#73
  print_sint::$4 = - print_sint::w#5
  print_sint::w#0 = print_sint::$4
  to:print_sint::@2
print_sint::@3: scope:[print_sint]  from print_sint
  print_sint::w#9 = phi( print_sint/print_sint::w#4 )
  print_char_cursor#140 = phi( print_sint/print_char_cursor#159 )
  print_char::ch#2 = ' '
  call print_char
  to:print_sint::@5
print_sint::@5: scope:[print_sint]  from print_sint::@3
  print_sint::w#8 = phi( print_sint::@3/print_sint::w#9 )
  print_char_cursor#74 = phi( print_sint::@3/print_char_cursor#19 )
  print_char_cursor#5 = print_char_cursor#74
  to:print_sint::@2
print_sint::@2: scope:[print_sint]  from print_sint::@4 print_sint::@5
  print_char_cursor#141 = phi( print_sint::@4/print_char_cursor#4, print_sint::@5/print_char_cursor#5 )
  print_sint::w#6 = phi( print_sint::@4/print_sint::w#0, print_sint::@5/print_sint::w#8 )
  print_uint::w#0 = (unsigned int)print_sint::w#6
  call print_uint
  to:print_sint::@6
print_sint::@6: scope:[print_sint]  from print_sint::@2
  print_char_cursor#75 = phi( print_sint::@2/print_char_cursor#14 )
  print_char_cursor#6 = print_char_cursor#75
  to:print_sint::@return
print_sint::@return: scope:[print_sint]  from print_sint::@6
  print_char_cursor#76 = phi( print_sint::@6/print_char_cursor#6 )
  print_char_cursor#7 = print_char_cursor#76
  return 
  to:@return

void print_schar(signed char b)
print_schar: scope:[print_schar]  from mul8s_error::@1 mul8s_error::@3
  print_char_cursor#160 = phi( mul8s_error::@1/print_char_cursor#54, mul8s_error::@3/print_char_cursor#56 )
  print_schar::b#3 = phi( mul8s_error::@1/print_schar::b#1, mul8s_error::@3/print_schar::b#2 )
  print_schar::$0 = print_schar::b#3 < 0
  if(print_schar::$0) goto print_schar::@1
  to:print_schar::@3
print_schar::@1: scope:[print_schar]  from print_schar
  print_schar::b#6 = phi( print_schar/print_schar::b#3 )
  print_char_cursor#142 = phi( print_schar/print_char_cursor#160 )
  print_char::ch#3 = '-'
  call print_char
  to:print_schar::@4
print_schar::@4: scope:[print_schar]  from print_schar::@1
  print_schar::b#4 = phi( print_schar::@1/print_schar::b#6 )
  print_char_cursor#77 = phi( print_schar::@1/print_char_cursor#19 )
  print_char_cursor#8 = print_char_cursor#77
  print_schar::$4 = - print_schar::b#4
  print_schar::b#0 = print_schar::$4
  to:print_schar::@2
print_schar::@3: scope:[print_schar]  from print_schar
  print_schar::b#8 = phi( print_schar/print_schar::b#3 )
  print_char_cursor#143 = phi( print_schar/print_char_cursor#160 )
  print_char::ch#4 = ' '
  call print_char
  to:print_schar::@5
print_schar::@5: scope:[print_schar]  from print_schar::@3
  print_schar::b#7 = phi( print_schar::@3/print_schar::b#8 )
  print_char_cursor#78 = phi( print_schar::@3/print_char_cursor#19 )
  print_char_cursor#9 = print_char_cursor#78
  to:print_schar::@2
print_schar::@2: scope:[print_schar]  from print_schar::@4 print_schar::@5
  print_char_cursor#144 = phi( print_schar::@4/print_char_cursor#8, print_schar::@5/print_char_cursor#9 )
  print_schar::b#5 = phi( print_schar::@4/print_schar::b#0, print_schar::@5/print_schar::b#7 )
  print_uchar::b#0 = (char)print_schar::b#5
  call print_uchar
  to:print_schar::@6
print_schar::@6: scope:[print_schar]  from print_schar::@2
  print_char_cursor#79 = phi( print_schar::@2/print_char_cursor#17 )
  print_char_cursor#10 = print_char_cursor#79
  to:print_schar::@return
print_schar::@return: scope:[print_schar]  from print_schar::@6
  print_char_cursor#80 = phi( print_schar::@6/print_char_cursor#10 )
  print_char_cursor#11 = print_char_cursor#80
  return 
  to:@return

void print_uint(unsigned int w)
print_uint: scope:[print_uint]  from mul8u_error::@5 mul8u_error::@7 mul8u_error::@9 mulf_tables_cmp::@10 mulf_tables_cmp::@8 print_sint::@2
  print_char_cursor#145 = phi( mul8u_error::@5/print_char_cursor#42, mul8u_error::@7/print_char_cursor#44, mul8u_error::@9/print_char_cursor#46, mulf_tables_cmp::@10/print_char_cursor#31, mulf_tables_cmp::@8/print_char_cursor#29, print_sint::@2/print_char_cursor#141 )
  print_uint::w#6 = phi( mul8u_error::@5/print_uint::w#3, mul8u_error::@7/print_uint::w#4, mul8u_error::@9/print_uint::w#5, mulf_tables_cmp::@10/print_uint::w#2, mulf_tables_cmp::@8/print_uint::w#1, print_sint::@2/print_uint::w#0 )
  print_uint::$0 = byte1  print_uint::w#6
  print_uchar::b#1 = print_uint::$0
  call print_uchar
  to:print_uint::@1
print_uint::@1: scope:[print_uint]  from print_uint
  print_uint::w#7 = phi( print_uint/print_uint::w#6 )
  print_char_cursor#81 = phi( print_uint/print_char_cursor#17 )
  print_char_cursor#12 = print_char_cursor#81
  print_uint::$2 = byte0  print_uint::w#7
  print_uchar::b#2 = print_uint::$2
  call print_uchar
  to:print_uint::@2
print_uint::@2: scope:[print_uint]  from print_uint::@1
  print_char_cursor#82 = phi( print_uint::@1/print_char_cursor#17 )
  print_char_cursor#13 = print_char_cursor#82
  to:print_uint::@return
print_uint::@return: scope:[print_uint]  from print_uint::@2
  print_char_cursor#83 = phi( print_uint::@2/print_char_cursor#13 )
  print_char_cursor#14 = print_char_cursor#83
  return 
  to:@return

void print_uchar(char b)
print_uchar: scope:[print_uchar]  from mul8u_error::@1 mul8u_error::@3 print_schar::@2 print_uint print_uint::@1
  print_char_cursor#146 = phi( mul8u_error::@1/print_char_cursor#38, mul8u_error::@3/print_char_cursor#40, print_schar::@2/print_char_cursor#144, print_uint/print_char_cursor#145, print_uint::@1/print_char_cursor#12 )
  print_uchar::b#5 = phi( mul8u_error::@1/print_uchar::b#3, mul8u_error::@3/print_uchar::b#4, print_schar::@2/print_uchar::b#0, print_uint/print_uchar::b#1, print_uint::@1/print_uchar::b#2 )
  print_uchar::$0 = print_uchar::b#5 >> 4
  print_char::ch#5 = print_hextab[print_uchar::$0]
  call print_char
  to:print_uchar::@1
print_uchar::@1: scope:[print_uchar]  from print_uchar
  print_uchar::b#6 = phi( print_uchar/print_uchar::b#5 )
  print_char_cursor#84 = phi( print_uchar/print_char_cursor#19 )
  print_char_cursor#15 = print_char_cursor#84
  print_uchar::$2 = print_uchar::b#6 & $f
  print_char::ch#6 = print_hextab[print_uchar::$2]
  call print_char
  to:print_uchar::@2
print_uchar::@2: scope:[print_uchar]  from print_uchar::@1
  print_char_cursor#85 = phi( print_uchar::@1/print_char_cursor#19 )
  print_char_cursor#16 = print_char_cursor#85
  to:print_uchar::@return
print_uchar::@return: scope:[print_uchar]  from print_uchar::@2
  print_char_cursor#86 = phi( print_uchar::@2/print_char_cursor#16 )
  print_char_cursor#17 = print_char_cursor#86
  return 
  to:@return

void print_char(char ch)
print_char: scope:[print_char]  from print_schar::@1 print_schar::@3 print_sint::@1 print_sint::@3 print_str::@2 print_uchar print_uchar::@1
  print_char_cursor#87 = phi( print_schar::@1/print_char_cursor#142, print_schar::@3/print_char_cursor#143, print_sint::@1/print_char_cursor#139, print_sint::@3/print_char_cursor#140, print_str::@2/print_char_cursor#136, print_uchar/print_char_cursor#146, print_uchar::@1/print_char_cursor#15 )
  print_char::ch#7 = phi( print_schar::@1/print_char::ch#3, print_schar::@3/print_char::ch#4, print_sint::@1/print_char::ch#1, print_sint::@3/print_char::ch#2, print_str::@2/print_char::ch#0, print_uchar/print_char::ch#5, print_uchar::@1/print_char::ch#6 )
  *print_char_cursor#87 = print_char::ch#7
  print_char_cursor#18 = ++ print_char_cursor#87
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  print_char_cursor#88 = phi( print_char/print_char_cursor#18 )
  print_char_cursor#19 = print_char_cursor#88
  return 
  to:@return

void print_cls()
print_cls: scope:[print_cls]  from main
  print_screen#2 = phi( main/print_screen#5 )
  memset::str#0 = (void *)print_screen#2
  memset::c#0 = ' '
  memset::num#0 = $3e8
  call memset
  memset::return#0 = memset::return#2
  to:print_cls::@1
print_cls::@1: scope:[print_cls]  from print_cls
  print_screen#3 = phi( print_cls/print_screen#2 )
  print_line_cursor#2 = print_screen#3
  print_char_cursor#20 = print_line_cursor#2
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls::@1
  print_char_cursor#89 = phi( print_cls::@1/print_char_cursor#20 )
  print_line_cursor#27 = phi( print_cls::@1/print_line_cursor#2 )
  print_line_cursor#3 = print_line_cursor#27
  print_char_cursor#21 = print_char_cursor#89
  return 
  to:@return

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from print_cls
  memset::c#4 = phi( print_cls/memset::c#0 )
  memset::str#3 = phi( print_cls/memset::str#0 )
  memset::num#1 = phi( print_cls/memset::num#0 )
  memset::$0 = memset::num#1 > 0
  memset::$1 = ! memset::$0
  if(memset::$1) goto memset::@1
  to:memset::@2
memset::@1: scope:[memset]  from memset memset::@3
  memset::str#1 = phi( memset/memset::str#3, memset::@3/memset::str#4 )
  memset::return#1 = memset::str#1
  to:memset::@return
memset::@2: scope:[memset]  from memset
  memset::c#3 = phi( memset/memset::c#4 )
  memset::num#2 = phi( memset/memset::num#1 )
  memset::str#2 = phi( memset/memset::str#3 )
  memset::$4 = (char *)memset::str#2
  memset::end#0 = memset::$4 + memset::num#2
  memset::dst#0 = ((char *)) memset::str#2
  to:memset::@3
memset::@3: scope:[memset]  from memset::@2 memset::@4
  memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 )
  memset::str#4 = phi( memset::@2/memset::str#2, memset::@4/memset::str#5 )
  memset::end#1 = phi( memset::@2/memset::end#0, memset::@4/memset::end#2 )
  memset::dst#2 = phi( memset::@2/memset::dst#0, memset::@4/memset::dst#1 )
  memset::$3 = memset::dst#2 != memset::end#1
  if(memset::$3) goto memset::@4
  to:memset::@1
memset::@4: scope:[memset]  from memset::@3
  memset::str#5 = phi( memset::@3/memset::str#4 )
  memset::end#2 = phi( memset::@3/memset::end#1 )
  memset::dst#3 = phi( memset::@3/memset::dst#2 )
  memset::c#1 = phi( memset::@3/memset::c#2 )
  *memset::dst#3 = memset::c#1
  memset::dst#1 = ++ memset::dst#3
  to:memset::@3
memset::@return: scope:[memset]  from memset::@1
  memset::return#3 = phi( memset::@1/memset::return#1 )
  memset::return#2 = memset::return#3
  return 
  to:@return

unsigned int mul8u(char a , char b)
mul8u: scope:[mul8u]  from mul8s mul8u_compare::@12
  mul8u::a#6 = phi( mul8s/mul8u::a#1, mul8u_compare::@12/mul8u::a#2 )
  mul8u::b#2 = phi( mul8s/mul8u::b#0, mul8u_compare::@12/mul8u::b#1 )
  mul8u::res#0 = 0
  mul8u::mb#0 = (unsigned int)mul8u::b#2
  to:mul8u::@1
mul8u::@1: scope:[mul8u]  from mul8u mul8u::@4
  mul8u::mb#5 = phi( mul8u/mul8u::mb#0, mul8u::@4/mul8u::mb#1 )
  mul8u::res#4 = phi( mul8u/mul8u::res#0, mul8u::@4/mul8u::res#6 )
  mul8u::a#3 = phi( mul8u/mul8u::a#6, mul8u::@4/mul8u::a#0 )
  mul8u::$0 = mul8u::a#3 != 0
  if(mul8u::$0) goto mul8u::@2
  to:mul8u::@3
mul8u::@2: scope:[mul8u]  from mul8u::@1
  mul8u::res#5 = phi( mul8u::@1/mul8u::res#4 )
  mul8u::mb#4 = phi( mul8u::@1/mul8u::mb#5 )
  mul8u::a#4 = phi( mul8u::@1/mul8u::a#3 )
  mul8u::$1 = mul8u::a#4 & 1
  mul8u::$2 = mul8u::$1 != 0
  mul8u::$3 = ! mul8u::$2
  if(mul8u::$3) goto mul8u::@4
  to:mul8u::@5
mul8u::@3: scope:[mul8u]  from mul8u::@1
  mul8u::res#2 = phi( mul8u::@1/mul8u::res#4 )
  mul8u::return#0 = mul8u::res#2
  to:mul8u::@return
mul8u::@4: scope:[mul8u]  from mul8u::@2 mul8u::@5
  mul8u::res#6 = phi( mul8u::@2/mul8u::res#5, mul8u::@5/mul8u::res#1 )
  mul8u::mb#2 = phi( mul8u::@2/mul8u::mb#4, mul8u::@5/mul8u::mb#3 )
  mul8u::a#5 = phi( mul8u::@2/mul8u::a#4, mul8u::@5/mul8u::a#7 )
  mul8u::$5 = mul8u::a#5 >> 1
  mul8u::a#0 = mul8u::$5
  mul8u::$6 = mul8u::mb#2 << 1
  mul8u::mb#1 = mul8u::$6
  to:mul8u::@1
mul8u::@5: scope:[mul8u]  from mul8u::@2
  mul8u::a#7 = phi( mul8u::@2/mul8u::a#4 )
  mul8u::mb#3 = phi( mul8u::@2/mul8u::mb#4 )
  mul8u::res#3 = phi( mul8u::@2/mul8u::res#5 )
  mul8u::$4 = mul8u::res#3 + mul8u::mb#3
  mul8u::res#1 = mul8u::$4
  to:mul8u::@4
mul8u::@return: scope:[mul8u]  from mul8u::@3
  mul8u::return#4 = phi( mul8u::@3/mul8u::return#0 )
  mul8u::return#1 = mul8u::return#4
  return 
  to:@return

int mul8s(signed char a , signed char b)
mul8s: scope:[mul8s]  from mul8s_compare::@16
  mul8s::b#1 = phi( mul8s_compare::@16/mul8s::b#0 )
  mul8s::a#1 = phi( mul8s_compare::@16/mul8s::a#0 )
  mul8u::a#1 = (char)mul8s::a#1
  mul8u::b#0 = (char)mul8s::b#1
  call mul8u
  mul8u::return#2 = mul8u::return#1
  to:mul8s::@5
mul8s::@5: scope:[mul8s]  from mul8s
  mul8s::b#4 = phi( mul8s/mul8s::b#1 )
  mul8s::a#2 = phi( mul8s/mul8s::a#1 )
  mul8u::return#5 = phi( mul8s/mul8u::return#2 )
  mul8s::m#0 = mul8u::return#5
  mul8s::$1 = mul8s::a#2 < 0
  mul8s::$2 = ! mul8s::$1
  if(mul8s::$2) goto mul8s::@1
  to:mul8s::@3
mul8s::@1: scope:[mul8s]  from mul8s::@3 mul8s::@5
  mul8s::a#4 = phi( mul8s::@3/mul8s::a#5, mul8s::@5/mul8s::a#2 )
  mul8s::m#6 = phi( mul8s::@3/mul8s::m#1, mul8s::@5/mul8s::m#0 )
  mul8s::b#2 = phi( mul8s::@3/mul8s::b#3, mul8s::@5/mul8s::b#4 )
  mul8s::$3 = mul8s::b#2 < 0
  mul8s::$4 = ! mul8s::$3
  if(mul8s::$4) goto mul8s::@2
  to:mul8s::@4
mul8s::@3: scope:[mul8s]  from mul8s::@5
  mul8s::a#5 = phi( mul8s::@5/mul8s::a#2 )
  mul8s::b#3 = phi( mul8s::@5/mul8s::b#4 )
  mul8s::m#3 = phi( mul8s::@5/mul8s::m#0 )
  mul8s::$6 = byte1  mul8s::m#3
  mul8s::$13 = (char)mul8s::b#3
  mul8s::$7 = mul8s::$6 - mul8s::$13
  mul8s::$11 = mul8s::$7
  mul8s::m#1 = mul8s::m#3 byte1= mul8s::$11
  to:mul8s::@1
mul8s::@2: scope:[mul8s]  from mul8s::@1 mul8s::@4
  mul8s::m#4 = phi( mul8s::@1/mul8s::m#6, mul8s::@4/mul8s::m#2 )
  mul8s::return#0 = (int)mul8s::m#4
  to:mul8s::@return
mul8s::@4: scope:[mul8s]  from mul8s::@1
  mul8s::a#3 = phi( mul8s::@1/mul8s::a#4 )
  mul8s::m#5 = phi( mul8s::@1/mul8s::m#6 )
  mul8s::$9 = byte1  mul8s::m#5
  mul8s::$14 = (char)mul8s::a#3
  mul8s::$10 = mul8s::$9 - mul8s::$14
  mul8s::$12 = mul8s::$10
  mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12
  to:mul8s::@2
mul8s::@return: scope:[mul8s]  from mul8s::@2
  mul8s::return#3 = phi( mul8s::@2/mul8s::return#0 )
  mul8s::return#1 = mul8s::return#3
  return 
  to:@return

void mulf_init()
mulf_init: scope:[mulf_init]  from main::@1
  mulf_init::sqr#0 = 0
  mulf_init::x_2#0 = 0
  mulf_init::c#0 = 0
  mulf_init::sqr1_hi#0 = mulf_sqr1_hi+1
  mulf_init::sqr1_lo#0 = mulf_sqr1_lo+1
  to:mulf_init::@1
mulf_init::@1: scope:[mulf_init]  from mulf_init mulf_init::@4
  mulf_init::x_2#5 = phi( mulf_init/mulf_init::x_2#0, mulf_init::@4/mulf_init::x_2#2 )
  mulf_init::sqr1_hi#5 = phi( mulf_init/mulf_init::sqr1_hi#0, mulf_init::@4/mulf_init::sqr1_hi#1 )
  mulf_init::sqr#6 = phi( mulf_init/mulf_init::sqr#0, mulf_init::@4/mulf_init::sqr#1 )
  mulf_init::c#3 = phi( mulf_init/mulf_init::c#0, mulf_init::@4/mulf_init::c#4 )
  mulf_init::sqr1_lo#2 = phi( mulf_init/mulf_init::sqr1_lo#0, mulf_init::@4/mulf_init::sqr1_lo#1 )
  mulf_init::$0 = mulf_init::sqr1_lo#2 != mulf_sqr1_lo+$200
  if(mulf_init::$0) goto mulf_init::@2
  to:mulf_init::@3
mulf_init::@2: scope:[mulf_init]  from mulf_init::@1
  mulf_init::x_2#4 = phi( mulf_init::@1/mulf_init::x_2#5 )
  mulf_init::sqr1_hi#3 = phi( mulf_init::@1/mulf_init::sqr1_hi#5 )
  mulf_init::sqr1_lo#4 = phi( mulf_init::@1/mulf_init::sqr1_lo#2 )
  mulf_init::sqr#5 = phi( mulf_init::@1/mulf_init::sqr#6 )
  mulf_init::c#2 = phi( mulf_init::@1/mulf_init::c#3 )
  mulf_init::c#1 = ++ mulf_init::c#2
  mulf_init::$1 = mulf_init::c#1 & 1
  mulf_init::$2 = mulf_init::$1 == 0
  mulf_init::$3 = ! mulf_init::$2
  if(mulf_init::$3) goto mulf_init::@4
  to:mulf_init::@5
mulf_init::@3: scope:[mulf_init]  from mulf_init::@1
  mulf_init::x_255#0 = (char)-1
  mulf_init::dir#0 = $ff
  mulf_init::sqr2_hi#0 = mulf_sqr2_hi
  mulf_init::sqr2_lo#0 = mulf_sqr2_lo
  to:mulf_init::@6
mulf_init::@4: scope:[mulf_init]  from mulf_init::@2 mulf_init::@5
  mulf_init::c#4 = phi( mulf_init::@2/mulf_init::c#1, mulf_init::@5/mulf_init::c#5 )
  mulf_init::x_2#2 = phi( mulf_init::@2/mulf_init::x_2#4, mulf_init::@5/mulf_init::x_2#1 )
  mulf_init::sqr1_hi#2 = phi( mulf_init::@2/mulf_init::sqr1_hi#3, mulf_init::@5/mulf_init::sqr1_hi#4 )
  mulf_init::sqr1_lo#3 = phi( mulf_init::@2/mulf_init::sqr1_lo#4, mulf_init::@5/mulf_init::sqr1_lo#5 )
  mulf_init::sqr#3 = phi( mulf_init::@2/mulf_init::sqr#5, mulf_init::@5/mulf_init::sqr#2 )
  mulf_init::$4 = byte0  mulf_init::sqr#3
  *mulf_init::sqr1_lo#3 = mulf_init::$4
  mulf_init::$5 = byte1  mulf_init::sqr#3
  *mulf_init::sqr1_hi#2 = mulf_init::$5
  mulf_init::sqr1_hi#1 = ++ mulf_init::sqr1_hi#2
  mulf_init::$6 = mulf_init::sqr#3 + mulf_init::x_2#2
  mulf_init::sqr#1 = mulf_init::$6
  mulf_init::sqr1_lo#1 = ++ mulf_init::sqr1_lo#3
  to:mulf_init::@1
mulf_init::@5: scope:[mulf_init]  from mulf_init::@2
  mulf_init::c#5 = phi( mulf_init::@2/mulf_init::c#1 )
  mulf_init::sqr1_hi#4 = phi( mulf_init::@2/mulf_init::sqr1_hi#3 )
  mulf_init::sqr1_lo#5 = phi( mulf_init::@2/mulf_init::sqr1_lo#4 )
  mulf_init::sqr#4 = phi( mulf_init::@2/mulf_init::sqr#5 )
  mulf_init::x_2#3 = phi( mulf_init::@2/mulf_init::x_2#4 )
  mulf_init::x_2#1 = ++ mulf_init::x_2#3
  mulf_init::sqr#2 = ++ mulf_init::sqr#4
  to:mulf_init::@4
mulf_init::@6: scope:[mulf_init]  from mulf_init::@3 mulf_init::@9
  mulf_init::dir#3 = phi( mulf_init::@3/mulf_init::dir#0, mulf_init::@9/mulf_init::dir#4 )
  mulf_init::sqr2_hi#3 = phi( mulf_init::@3/mulf_init::sqr2_hi#0, mulf_init::@9/mulf_init::sqr2_hi#4 )
  mulf_init::x_255#3 = phi( mulf_init::@3/mulf_init::x_255#0, mulf_init::@9/mulf_init::x_255#4 )
  mulf_init::sqr2_lo#2 = phi( mulf_init::@3/mulf_init::sqr2_lo#0, mulf_init::@9/mulf_init::sqr2_lo#1 )
  mulf_init::$7 = mulf_init::sqr2_lo#2 != mulf_sqr2_lo+$1ff
  if(mulf_init::$7) goto mulf_init::@7
  to:mulf_init::@8
mulf_init::@7: scope:[mulf_init]  from mulf_init::@6
  mulf_init::dir#2 = phi( mulf_init::@6/mulf_init::dir#3 )
  mulf_init::sqr2_hi#2 = phi( mulf_init::@6/mulf_init::sqr2_hi#3 )
  mulf_init::sqr2_lo#3 = phi( mulf_init::@6/mulf_init::sqr2_lo#2 )
  mulf_init::x_255#2 = phi( mulf_init::@6/mulf_init::x_255#3 )
  *mulf_init::sqr2_lo#3 = mulf_sqr1_lo[mulf_init::x_255#2]
  *mulf_init::sqr2_hi#2 = mulf_sqr1_hi[mulf_init::x_255#2]
  mulf_init::sqr2_hi#1 = ++ mulf_init::sqr2_hi#2
  mulf_init::$8 = mulf_init::x_255#2 + mulf_init::dir#2
  mulf_init::x_255#1 = mulf_init::$8
  mulf_init::$9 = mulf_init::x_255#1 == 0
  mulf_init::$10 = ! mulf_init::$9
  if(mulf_init::$10) goto mulf_init::@9
  to:mulf_init::@10
mulf_init::@8: scope:[mulf_init]  from mulf_init::@6
  *(mulf_sqr2_lo+$1ff) = *(mulf_sqr1_lo+$100)
  *(mulf_sqr2_hi+$1ff) = *(mulf_sqr1_hi+$100)
  to:mulf_init::@return
mulf_init::@9: scope:[mulf_init]  from mulf_init::@10 mulf_init::@7
  mulf_init::dir#4 = phi( mulf_init::@10/mulf_init::dir#1, mulf_init::@7/mulf_init::dir#2 )
  mulf_init::sqr2_hi#4 = phi( mulf_init::@10/mulf_init::sqr2_hi#5, mulf_init::@7/mulf_init::sqr2_hi#1 )
  mulf_init::x_255#4 = phi( mulf_init::@10/mulf_init::x_255#5, mulf_init::@7/mulf_init::x_255#1 )
  mulf_init::sqr2_lo#4 = phi( mulf_init::@10/mulf_init::sqr2_lo#5, mulf_init::@7/mulf_init::sqr2_lo#3 )
  mulf_init::sqr2_lo#1 = ++ mulf_init::sqr2_lo#4
  to:mulf_init::@6
mulf_init::@10: scope:[mulf_init]  from mulf_init::@7
  mulf_init::sqr2_hi#5 = phi( mulf_init::@7/mulf_init::sqr2_hi#1 )
  mulf_init::x_255#5 = phi( mulf_init::@7/mulf_init::x_255#1 )
  mulf_init::sqr2_lo#5 = phi( mulf_init::@7/mulf_init::sqr2_lo#3 )
  mulf_init::dir#1 = 1
  to:mulf_init::@9
mulf_init::@return: scope:[mulf_init]  from mulf_init::@8
  return 
  to:@return

void mulf8u_prepare(char a)
mulf8u_prepare: scope:[mulf8u_prepare]  from mulf8s::mulf8s_prepare1 mulf8u
  mulf8u_prepare::a#2 = phi( mulf8s::mulf8s_prepare1/mulf8u_prepare::a#1, mulf8u/mulf8u_prepare::a#0 )
  *mulf8u_prepare::memA = mulf8u_prepare::a#2
  asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1  }
  to:mulf8u_prepare::@return
mulf8u_prepare::@return: scope:[mulf8u_prepare]  from mulf8u_prepare
  return 
  to:@return

unsigned int mulf8u_prepared(char b)
mulf8u_prepared: scope:[mulf8u_prepared]  from mulf8s_prepared mulf8u::@1
  mulf8u_prepared::b#2 = phi( mulf8s_prepared/mulf8u_prepared::b#1, mulf8u::@1/mulf8u_prepared::b#0 )
  *mulf8u_prepared::memB = mulf8u_prepared::b#2
  asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB  }
  mulf8u_prepared::$0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL
  mulf8u_prepared::return#0 = mulf8u_prepared::$0
  to:mulf8u_prepared::@return
mulf8u_prepared::@return: scope:[mulf8u_prepared]  from mulf8u_prepared
  mulf8u_prepared::return#4 = phi( mulf8u_prepared/mulf8u_prepared::return#0 )
  mulf8u_prepared::return#1 = mulf8u_prepared::return#4
  return 
  to:@return

unsigned int mulf8u(char a , char b)
mulf8u: scope:[mulf8u]  from mul8u_compare::@11
  mulf8u::b#2 = phi( mul8u_compare::@11/mulf8u::b#0 )
  mulf8u::a#1 = phi( mul8u_compare::@11/mulf8u::a#0 )
  mulf8u_prepare::a#0 = mulf8u::a#1
  call mulf8u_prepare
  to:mulf8u::@1
mulf8u::@1: scope:[mulf8u]  from mulf8u
  mulf8u::b#1 = phi( mulf8u/mulf8u::b#2 )
  mulf8u_prepared::b#0 = mulf8u::b#1
  call mulf8u_prepared
  mulf8u_prepared::return#2 = mulf8u_prepared::return#1
  to:mulf8u::@2
mulf8u::@2: scope:[mulf8u]  from mulf8u::@1
  mulf8u_prepared::return#5 = phi( mulf8u::@1/mulf8u_prepared::return#2 )
  mulf8u::$1 = mulf8u_prepared::return#5
  mulf8u::return#0 = mulf8u::$1
  to:mulf8u::@return
mulf8u::@return: scope:[mulf8u]  from mulf8u::@2
  mulf8u::return#3 = phi( mulf8u::@2/mulf8u::return#0 )
  mulf8u::return#1 = mulf8u::return#3
  return 
  to:@return

int mulf8s_prepared(signed char b)
mulf8s_prepared: scope:[mulf8s_prepared]  from mulf8s::@1
  mulf8s_prepared::b#1 = phi( mulf8s::@1/mulf8s_prepared::b#0 )
  mulf8u_prepared::b#1 = (char)mulf8s_prepared::b#1
  call mulf8u_prepared
  mulf8u_prepared::return#3 = mulf8u_prepared::return#1
  to:mulf8s_prepared::@5
mulf8s_prepared::@5: scope:[mulf8s_prepared]  from mulf8s_prepared
  mulf8s_prepared::b#4 = phi( mulf8s_prepared/mulf8s_prepared::b#1 )
  mulf8u_prepared::return#6 = phi( mulf8s_prepared/mulf8u_prepared::return#3 )
  mulf8s_prepared::m#0 = mulf8u_prepared::return#6
  mulf8s_prepared::$1 = *mulf8s_prepared::memA < 0
  mulf8s_prepared::$2 = ! mulf8s_prepared::$1
  if(mulf8s_prepared::$2) goto mulf8s_prepared::@1
  to:mulf8s_prepared::@3
mulf8s_prepared::@1: scope:[mulf8s_prepared]  from mulf8s_prepared::@3 mulf8s_prepared::@5
  mulf8s_prepared::m#6 = phi( mulf8s_prepared::@3/mulf8s_prepared::m#1, mulf8s_prepared::@5/mulf8s_prepared::m#0 )
  mulf8s_prepared::b#2 = phi( mulf8s_prepared::@3/mulf8s_prepared::b#3, mulf8s_prepared::@5/mulf8s_prepared::b#4 )
  mulf8s_prepared::$3 = mulf8s_prepared::b#2 < 0
  mulf8s_prepared::$4 = ! mulf8s_prepared::$3
  if(mulf8s_prepared::$4) goto mulf8s_prepared::@2
  to:mulf8s_prepared::@4
mulf8s_prepared::@3: scope:[mulf8s_prepared]  from mulf8s_prepared::@5
  mulf8s_prepared::b#3 = phi( mulf8s_prepared::@5/mulf8s_prepared::b#4 )
  mulf8s_prepared::m#3 = phi( mulf8s_prepared::@5/mulf8s_prepared::m#0 )
  mulf8s_prepared::$6 = byte1  mulf8s_prepared::m#3
  mulf8s_prepared::$13 = (char)mulf8s_prepared::b#3
  mulf8s_prepared::$7 = mulf8s_prepared::$6 - mulf8s_prepared::$13
  mulf8s_prepared::$11 = mulf8s_prepared::$7
  mulf8s_prepared::m#1 = mulf8s_prepared::m#3 byte1= mulf8s_prepared::$11
  to:mulf8s_prepared::@1
mulf8s_prepared::@2: scope:[mulf8s_prepared]  from mulf8s_prepared::@1 mulf8s_prepared::@4
  mulf8s_prepared::m#4 = phi( mulf8s_prepared::@1/mulf8s_prepared::m#6, mulf8s_prepared::@4/mulf8s_prepared::m#2 )
  mulf8s_prepared::return#0 = (int)mulf8s_prepared::m#4
  to:mulf8s_prepared::@return
mulf8s_prepared::@4: scope:[mulf8s_prepared]  from mulf8s_prepared::@1
  mulf8s_prepared::m#5 = phi( mulf8s_prepared::@1/mulf8s_prepared::m#6 )
  mulf8s_prepared::$9 = byte1  mulf8s_prepared::m#5
  mulf8s_prepared::$14 = (char)*mulf8s_prepared::memA
  mulf8s_prepared::$10 = mulf8s_prepared::$9 - mulf8s_prepared::$14
  mulf8s_prepared::$12 = mulf8s_prepared::$10
  mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12
  to:mulf8s_prepared::@2
mulf8s_prepared::@return: scope:[mulf8s_prepared]  from mulf8s_prepared::@2
  mulf8s_prepared::return#3 = phi( mulf8s_prepared::@2/mulf8s_prepared::return#0 )
  mulf8s_prepared::return#1 = mulf8s_prepared::return#3
  return 
  to:@return

int mulf8s(signed char a , signed char b)
mulf8s: scope:[mulf8s]  from mul8s_compare::@15
  mulf8s::b#4 = phi( mul8s_compare::@15/mulf8s::b#0 )
  mulf8s::a#1 = phi( mul8s_compare::@15/mulf8s::a#0 )
  mulf8s::mulf8s_prepare1_a#0 = mulf8s::a#1
  to:mulf8s::mulf8s_prepare1
mulf8s::mulf8s_prepare1: scope:[mulf8s]  from mulf8s
  mulf8s::b#3 = phi( mulf8s/mulf8s::b#4 )
  mulf8s::mulf8s_prepare1_a#1 = phi( mulf8s/mulf8s::mulf8s_prepare1_a#0 )
  mulf8u_prepare::a#1 = (char)mulf8s::mulf8s_prepare1_a#1
  call mulf8u_prepare
  to:mulf8s::@2
mulf8s::@2: scope:[mulf8s]  from mulf8s::mulf8s_prepare1
  mulf8s::b#2 = phi( mulf8s::mulf8s_prepare1/mulf8s::b#3 )
  to:mulf8s::@1
mulf8s::@1: scope:[mulf8s]  from mulf8s::@2
  mulf8s::b#1 = phi( mulf8s::@2/mulf8s::b#2 )
  mulf8s_prepared::b#0 = mulf8s::b#1
  call mulf8s_prepared
  mulf8s_prepared::return#2 = mulf8s_prepared::return#1
  to:mulf8s::@3
mulf8s::@3: scope:[mulf8s]  from mulf8s::@1
  mulf8s_prepared::return#4 = phi( mulf8s::@1/mulf8s_prepared::return#2 )
  mulf8s::$1 = mulf8s_prepared::return#4
  mulf8s::return#0 = mulf8s::$1
  to:mulf8s::@return
mulf8s::@return: scope:[mulf8s]  from mulf8s::@3
  mulf8s::return#3 = phi( mulf8s::@3/mulf8s::return#0 )
  mulf8s::return#1 = mulf8s::return#3
  return 
  to:@return

void main()
main: scope:[main]  from __start::@1
  print_char_cursor#147 = phi( __start::@1/print_char_cursor#157 )
  print_line_cursor#48 = phi( __start::@1/print_line_cursor#58 )
  print_screen#5 = phi( __start::@1/print_screen#7 )
  *BG_COLOR = 5
  call print_cls
  to:main::@1
main::@1: scope:[main]  from main
  print_char_cursor#90 = phi( main/print_char_cursor#21 )
  print_line_cursor#28 = phi( main/print_line_cursor#3 )
  print_line_cursor#4 = print_line_cursor#28
  print_char_cursor#22 = print_char_cursor#90
  call mulf_init
  to:main::@2
main::@2: scope:[main]  from main::@1
  print_line_cursor#59 = phi( main::@1/print_line_cursor#4 )
  print_char_cursor#161 = phi( main::@1/print_char_cursor#22 )
  call mulf_init_asm
  to:main::@3
main::@3: scope:[main]  from main::@2
  print_line_cursor#49 = phi( main::@2/print_line_cursor#59 )
  print_char_cursor#148 = phi( main::@2/print_char_cursor#161 )
  call mulf_tables_cmp
  to:main::@4
main::@4: scope:[main]  from main::@3
  print_line_cursor#29 = phi( main::@3/print_line_cursor#10 )
  print_char_cursor#91 = phi( main::@3/print_char_cursor#33 )
  print_char_cursor#23 = print_char_cursor#91
  print_line_cursor#5 = print_line_cursor#29
  call mul8u_compare
  to:main::@5
main::@5: scope:[main]  from main::@4
  print_line_cursor#30 = phi( main::@4/print_line_cursor#12 )
  print_char_cursor#92 = phi( main::@4/print_char_cursor#35 )
  print_char_cursor#24 = print_char_cursor#92
  print_line_cursor#6 = print_line_cursor#30
  call mul8s_compare
  to:main::@6
main::@6: scope:[main]  from main::@5
  print_line_cursor#31 = phi( main::@5/print_line_cursor#18 )
  print_char_cursor#93 = phi( main::@5/print_char_cursor#53 )
  print_char_cursor#25 = print_char_cursor#93
  print_line_cursor#7 = print_line_cursor#31
  to:main::@return
main::@return: scope:[main]  from main::@6
  print_char_cursor#94 = phi( main::@6/print_char_cursor#25 )
  print_line_cursor#32 = phi( main::@6/print_line_cursor#7 )
  print_line_cursor#8 = print_line_cursor#32
  print_char_cursor#26 = print_char_cursor#94
  return 
  to:@return

unsigned int muls8u(char a , char b)
muls8u: scope:[muls8u]  from mul8u_compare::@2
  muls8u::b#4 = phi( mul8u_compare::@2/muls8u::b#0 )
  muls8u::a#1 = phi( mul8u_compare::@2/muls8u::a#0 )
  muls8u::m#0 = 0
  muls8u::$0 = muls8u::a#1 != 0
  muls8u::$1 = ! muls8u::$0
  if(muls8u::$1) goto muls8u::@1
  to:muls8u::@2
muls8u::@1: scope:[muls8u]  from muls8u muls8u::@3
  muls8u::m#2 = phi( muls8u/muls8u::m#0, muls8u::@3/muls8u::m#4 )
  muls8u::return#0 = muls8u::m#2
  to:muls8u::@return
muls8u::@2: scope:[muls8u]  from muls8u
  muls8u::b#3 = phi( muls8u/muls8u::b#4 )
  muls8u::m#5 = phi( muls8u/muls8u::m#0 )
  muls8u::a#3 = phi( muls8u/muls8u::a#1 )
  muls8u::i#0 = 0
  to:muls8u::@3
muls8u::@3: scope:[muls8u]  from muls8u::@2 muls8u::@4
  muls8u::b#2 = phi( muls8u::@2/muls8u::b#3, muls8u::@4/muls8u::b#1 )
  muls8u::m#4 = phi( muls8u::@2/muls8u::m#5, muls8u::@4/muls8u::m#1 )
  muls8u::a#2 = phi( muls8u::@2/muls8u::a#3, muls8u::@4/muls8u::a#4 )
  muls8u::i#2 = phi( muls8u::@2/muls8u::i#0, muls8u::@4/muls8u::i#1 )
  muls8u::$2 = muls8u::i#2 != muls8u::a#2
  if(muls8u::$2) goto muls8u::@4
  to:muls8u::@1
muls8u::@4: scope:[muls8u]  from muls8u::@3
  muls8u::a#4 = phi( muls8u::@3/muls8u::a#2 )
  muls8u::i#3 = phi( muls8u::@3/muls8u::i#2 )
  muls8u::b#1 = phi( muls8u::@3/muls8u::b#2 )
  muls8u::m#3 = phi( muls8u::@3/muls8u::m#4 )
  muls8u::$3 = muls8u::m#3 + muls8u::b#1
  muls8u::m#1 = muls8u::$3
  muls8u::i#1 = ++ muls8u::i#3
  to:muls8u::@3
muls8u::@return: scope:[muls8u]  from muls8u::@1
  muls8u::return#3 = phi( muls8u::@1/muls8u::return#0 )
  muls8u::return#1 = muls8u::return#3
  return 
  to:@return

int muls8s(signed char a , signed char b)
muls8s: scope:[muls8s]  from mul8s_compare::@5
  muls8s::b#7 = phi( mul8s_compare::@5/muls8s::b#0 )
  muls8s::a#1 = phi( mul8s_compare::@5/muls8s::a#0 )
  muls8s::m#0 = 0
  muls8s::$0 = muls8s::a#1 < 0
  if(muls8s::$0) goto muls8s::@1
  to:muls8s::@3
muls8s::@1: scope:[muls8s]  from muls8s
  muls8s::b#6 = phi( muls8s/muls8s::b#7 )
  muls8s::m#10 = phi( muls8s/muls8s::m#0 )
  muls8s::a#7 = phi( muls8s/muls8s::a#1 )
  muls8s::i#0 = 0
  to:muls8s::@7
muls8s::@3: scope:[muls8s]  from muls8s
  muls8s::b#8 = phi( muls8s/muls8s::b#7 )
  muls8s::m#7 = phi( muls8s/muls8s::m#0 )
  muls8s::a#2 = phi( muls8s/muls8s::a#1 )
  muls8s::$1 = muls8s::a#2 > 0
  muls8s::$2 = ! muls8s::$1
  if(muls8s::$2) goto muls8s::@2
  to:muls8s::@4
muls8s::@4: scope:[muls8s]  from muls8s::@3
  muls8s::b#5 = phi( muls8s::@3/muls8s::b#8 )
  muls8s::m#9 = phi( muls8s::@3/muls8s::m#7 )
  muls8s::a#5 = phi( muls8s::@3/muls8s::a#2 )
  muls8s::j#0 = 0
  to:muls8s::@5
muls8s::@5: scope:[muls8s]  from muls8s::@4 muls8s::@6
  muls8s::b#3 = phi( muls8s::@4/muls8s::b#5, muls8s::@6/muls8s::b#1 )
  muls8s::m#6 = phi( muls8s::@4/muls8s::m#9, muls8s::@6/muls8s::m#1 )
  muls8s::a#3 = phi( muls8s::@4/muls8s::a#5, muls8s::@6/muls8s::a#6 )
  muls8s::j#2 = phi( muls8s::@4/muls8s::j#0, muls8s::@6/muls8s::j#1 )
  muls8s::$3 = muls8s::j#2 != muls8s::a#3
  if(muls8s::$3) goto muls8s::@6
  to:muls8s::@2
muls8s::@6: scope:[muls8s]  from muls8s::@5
  muls8s::a#6 = phi( muls8s::@5/muls8s::a#3 )
  muls8s::j#3 = phi( muls8s::@5/muls8s::j#2 )
  muls8s::b#1 = phi( muls8s::@5/muls8s::b#3 )
  muls8s::m#3 = phi( muls8s::@5/muls8s::m#6 )
  muls8s::$4 = muls8s::m#3 + muls8s::b#1
  muls8s::m#1 = muls8s::$4
  muls8s::j#1 = ++ muls8s::j#3
  to:muls8s::@5
muls8s::@2: scope:[muls8s]  from muls8s::@3 muls8s::@5 muls8s::@7
  muls8s::m#4 = phi( muls8s::@3/muls8s::m#7, muls8s::@5/muls8s::m#6, muls8s::@7/muls8s::m#8 )
  muls8s::return#0 = muls8s::m#4
  to:muls8s::@return
muls8s::@7: scope:[muls8s]  from muls8s::@1 muls8s::@8
  muls8s::b#4 = phi( muls8s::@1/muls8s::b#6, muls8s::@8/muls8s::b#2 )
  muls8s::m#8 = phi( muls8s::@1/muls8s::m#10, muls8s::@8/muls8s::m#2 )
  muls8s::a#4 = phi( muls8s::@1/muls8s::a#7, muls8s::@8/muls8s::a#8 )
  muls8s::i#2 = phi( muls8s::@1/muls8s::i#0, muls8s::@8/muls8s::i#1 )
  muls8s::$5 = muls8s::i#2 != muls8s::a#4
  if(muls8s::$5) goto muls8s::@8
  to:muls8s::@2
muls8s::@8: scope:[muls8s]  from muls8s::@7
  muls8s::a#8 = phi( muls8s::@7/muls8s::a#4 )
  muls8s::i#3 = phi( muls8s::@7/muls8s::i#2 )
  muls8s::b#2 = phi( muls8s::@7/muls8s::b#4 )
  muls8s::m#5 = phi( muls8s::@7/muls8s::m#8 )
  muls8s::$6 = muls8s::m#5 - muls8s::b#2
  muls8s::m#2 = muls8s::$6
  muls8s::i#1 = -- muls8s::i#3
  to:muls8s::@7
muls8s::@return: scope:[muls8s]  from muls8s::@2
  muls8s::return#3 = phi( muls8s::@2/muls8s::return#0 )
  muls8s::return#1 = muls8s::return#3
  return 
  to:@return

void mulf_init_asm()
mulf_init_asm: scope:[mulf_init_asm]  from main::@2
  asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!-  }
  *mulf_init_asm::mem = *mula_sqr1_lo
  *mulf_init_asm::mem = *mula_sqr1_hi
  *mulf_init_asm::mem = *mula_sqr2_lo
  *mulf_init_asm::mem = *mula_sqr2_hi
  to:mulf_init_asm::@return
mulf_init_asm::@return: scope:[mulf_init_asm]  from mulf_init_asm
  return 
  to:@return

void mulf_tables_cmp()
mulf_tables_cmp: scope:[mulf_tables_cmp]  from main::@3
  print_line_cursor#78 = phi( main::@3/print_line_cursor#49 )
  print_char_cursor#168 = phi( main::@3/print_char_cursor#148 )
  mulf_tables_cmp::asm_sqr#0 = mula_sqr1_lo
  mulf_tables_cmp::kc_sqr#0 = mulf_sqr1_lo
  to:mulf_tables_cmp::@1
mulf_tables_cmp::@1: scope:[mulf_tables_cmp]  from mulf_tables_cmp mulf_tables_cmp::@4
  print_line_cursor#68 = phi( mulf_tables_cmp/print_line_cursor#78, mulf_tables_cmp::@4/print_line_cursor#79 )
  print_char_cursor#162 = phi( mulf_tables_cmp/print_char_cursor#168, mulf_tables_cmp::@4/print_char_cursor#169 )
  mulf_tables_cmp::asm_sqr#5 = phi( mulf_tables_cmp/mulf_tables_cmp::asm_sqr#0, mulf_tables_cmp::@4/mulf_tables_cmp::asm_sqr#1 )
  mulf_tables_cmp::kc_sqr#2 = phi( mulf_tables_cmp/mulf_tables_cmp::kc_sqr#0, mulf_tables_cmp::@4/mulf_tables_cmp::kc_sqr#1 )
  mulf_tables_cmp::$2 = mulf_tables_cmp::kc_sqr#2 < mulf_sqr1_lo+$200*4
  if(mulf_tables_cmp::$2) goto mulf_tables_cmp::@2
  to:mulf_tables_cmp::@3
mulf_tables_cmp::@2: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@1
  print_line_cursor#90 = phi( mulf_tables_cmp::@1/print_line_cursor#68 )
  print_char_cursor#163 = phi( mulf_tables_cmp::@1/print_char_cursor#162 )
  mulf_tables_cmp::asm_sqr#2 = phi( mulf_tables_cmp::@1/mulf_tables_cmp::asm_sqr#5 )
  mulf_tables_cmp::kc_sqr#3 = phi( mulf_tables_cmp::@1/mulf_tables_cmp::kc_sqr#2 )
  mulf_tables_cmp::$3 = *mulf_tables_cmp::kc_sqr#3 != *mulf_tables_cmp::asm_sqr#2
  mulf_tables_cmp::$4 = ! mulf_tables_cmp::$3
  if(mulf_tables_cmp::$4) goto mulf_tables_cmp::@4
  to:mulf_tables_cmp::@5
mulf_tables_cmp::@3: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@1
  print_line_cursor#60 = phi( mulf_tables_cmp::@1/print_line_cursor#68 )
  print_char_cursor#149 = phi( mulf_tables_cmp::@1/print_char_cursor#162 )
  print_str::str#1 = mulf_tables_cmp::str
  call print_str
  to:mulf_tables_cmp::@6
mulf_tables_cmp::@6: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@3
  print_line_cursor#50 = phi( mulf_tables_cmp::@3/print_line_cursor#60 )
  print_char_cursor#95 = phi( mulf_tables_cmp::@3/print_char_cursor#1 )
  print_char_cursor#27 = print_char_cursor#95
  call print_ln
  to:mulf_tables_cmp::@7
mulf_tables_cmp::@7: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@6
  print_char_cursor#96 = phi( mulf_tables_cmp::@6/print_char_cursor#3 )
  print_line_cursor#33 = phi( mulf_tables_cmp::@6/print_line_cursor#1 )
  print_line_cursor#9 = print_line_cursor#33
  print_char_cursor#28 = print_char_cursor#96
  to:mulf_tables_cmp::@return
mulf_tables_cmp::@4: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@2
  print_line_cursor#79 = phi( mulf_tables_cmp::@2/print_line_cursor#90 )
  print_char_cursor#169 = phi( mulf_tables_cmp::@2/print_char_cursor#163 )
  mulf_tables_cmp::kc_sqr#4 = phi( mulf_tables_cmp::@2/mulf_tables_cmp::kc_sqr#3 )
  mulf_tables_cmp::asm_sqr#3 = phi( mulf_tables_cmp::@2/mulf_tables_cmp::asm_sqr#2 )
  mulf_tables_cmp::asm_sqr#1 = ++ mulf_tables_cmp::asm_sqr#3
  mulf_tables_cmp::kc_sqr#1 = ++ mulf_tables_cmp::kc_sqr#4
  to:mulf_tables_cmp::@1
mulf_tables_cmp::@5: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@2
  print_line_cursor#91 = phi( mulf_tables_cmp::@2/print_line_cursor#90 )
  mulf_tables_cmp::kc_sqr#8 = phi( mulf_tables_cmp::@2/mulf_tables_cmp::kc_sqr#3 )
  mulf_tables_cmp::asm_sqr#6 = phi( mulf_tables_cmp::@2/mulf_tables_cmp::asm_sqr#2 )
  print_char_cursor#150 = phi( mulf_tables_cmp::@2/print_char_cursor#163 )
  *BG_COLOR = 2
  print_str::str#2 = mulf_tables_cmp::str1
  call print_str
  to:mulf_tables_cmp::@8
mulf_tables_cmp::@8: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@5
  print_line_cursor#80 = phi( mulf_tables_cmp::@5/print_line_cursor#91 )
  mulf_tables_cmp::kc_sqr#7 = phi( mulf_tables_cmp::@5/mulf_tables_cmp::kc_sqr#8 )
  mulf_tables_cmp::asm_sqr#4 = phi( mulf_tables_cmp::@5/mulf_tables_cmp::asm_sqr#6 )
  print_char_cursor#97 = phi( mulf_tables_cmp::@5/print_char_cursor#1 )
  print_char_cursor#29 = print_char_cursor#97
  print_uint::w#1 = (unsigned int)mulf_tables_cmp::asm_sqr#4
  call print_uint
  to:mulf_tables_cmp::@9
mulf_tables_cmp::@9: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@8
  print_line_cursor#69 = phi( mulf_tables_cmp::@8/print_line_cursor#80 )
  mulf_tables_cmp::kc_sqr#6 = phi( mulf_tables_cmp::@8/mulf_tables_cmp::kc_sqr#7 )
  print_char_cursor#98 = phi( mulf_tables_cmp::@8/print_char_cursor#14 )
  print_char_cursor#30 = print_char_cursor#98
  print_str::str#3 = mulf_tables_cmp::str2
  call print_str
  to:mulf_tables_cmp::@10
mulf_tables_cmp::@10: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@9
  print_line_cursor#61 = phi( mulf_tables_cmp::@9/print_line_cursor#69 )
  mulf_tables_cmp::kc_sqr#5 = phi( mulf_tables_cmp::@9/mulf_tables_cmp::kc_sqr#6 )
  print_char_cursor#99 = phi( mulf_tables_cmp::@9/print_char_cursor#1 )
  print_char_cursor#31 = print_char_cursor#99
  print_uint::w#2 = (unsigned int)mulf_tables_cmp::kc_sqr#5
  call print_uint
  to:mulf_tables_cmp::@11
mulf_tables_cmp::@11: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@10
  print_line_cursor#51 = phi( mulf_tables_cmp::@10/print_line_cursor#61 )
  print_char_cursor#100 = phi( mulf_tables_cmp::@10/print_char_cursor#14 )
  print_char_cursor#32 = print_char_cursor#100
  to:mulf_tables_cmp::@return
mulf_tables_cmp::@return: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@11 mulf_tables_cmp::@7
  print_line_cursor#34 = phi( mulf_tables_cmp::@11/print_line_cursor#51, mulf_tables_cmp::@7/print_line_cursor#9 )
  print_char_cursor#101 = phi( mulf_tables_cmp::@11/print_char_cursor#32, mulf_tables_cmp::@7/print_char_cursor#28 )
  print_char_cursor#33 = print_char_cursor#101
  print_line_cursor#10 = print_line_cursor#34
  return 
  to:@return

void mul8u_compare()
mul8u_compare: scope:[mul8u_compare]  from main::@4
  print_line_cursor#110 = phi( main::@4/print_line_cursor#5 )
  print_char_cursor#191 = phi( main::@4/print_char_cursor#23 )
  mul8u_compare::a#0 = 0
  to:mul8u_compare::@1
mul8u_compare::@1: scope:[mul8u_compare]  from mul8u_compare mul8u_compare::@9
  print_line_cursor#107 = phi( mul8u_compare/print_line_cursor#110, mul8u_compare::@9/print_line_cursor#72 )
  print_char_cursor#190 = phi( mul8u_compare/print_char_cursor#191, mul8u_compare::@9/print_char_cursor#165 )
  mul8u_compare::a#7 = phi( mul8u_compare/mul8u_compare::a#0, mul8u_compare::@9/mul8u_compare::a#1 )
  mul8u_compare::b#0 = 0
  to:mul8u_compare::@2
mul8u_compare::@2: scope:[mul8u_compare]  from mul8u_compare::@1 mul8u_compare::@5
  print_line_cursor#103 = phi( mul8u_compare::@1/print_line_cursor#107, mul8u_compare::@5/print_line_cursor#83 )
  print_char_cursor#188 = phi( mul8u_compare::@1/print_char_cursor#190, mul8u_compare::@5/print_char_cursor#172 )
  mul8u_compare::b#2 = phi( mul8u_compare::@1/mul8u_compare::b#0, mul8u_compare::@5/mul8u_compare::b#1 )
  mul8u_compare::a#2 = phi( mul8u_compare::@1/mul8u_compare::a#7, mul8u_compare::@5/mul8u_compare::a#8 )
  muls8u::a#0 = mul8u_compare::a#2
  muls8u::b#0 = mul8u_compare::b#2
  call muls8u
  muls8u::return#2 = muls8u::return#1
  to:mul8u_compare::@11
mul8u_compare::@11: scope:[mul8u_compare]  from mul8u_compare::@2
  print_line_cursor#97 = phi( mul8u_compare::@2/print_line_cursor#103 )
  print_char_cursor#186 = phi( mul8u_compare::@2/print_char_cursor#188 )
  mul8u_compare::b#3 = phi( mul8u_compare::@2/mul8u_compare::b#2 )
  mul8u_compare::a#3 = phi( mul8u_compare::@2/mul8u_compare::a#2 )
  muls8u::return#4 = phi( mul8u_compare::@2/muls8u::return#2 )
  mul8u_compare::ms#0 = muls8u::return#4
  mulf8u::a#0 = mul8u_compare::a#3
  mulf8u::b#0 = mul8u_compare::b#3
  call mulf8u
  mulf8u::return#2 = mulf8u::return#1
  to:mul8u_compare::@12
mul8u_compare::@12: scope:[mul8u_compare]  from mul8u_compare::@11
  print_line_cursor#92 = phi( mul8u_compare::@11/print_line_cursor#97 )
  print_char_cursor#182 = phi( mul8u_compare::@11/print_char_cursor#186 )
  mul8u_compare::ms#4 = phi( mul8u_compare::@11/mul8u_compare::ms#0 )
  mul8u_compare::b#4 = phi( mul8u_compare::@11/mul8u_compare::b#3 )
  mul8u_compare::a#4 = phi( mul8u_compare::@11/mul8u_compare::a#3 )
  mulf8u::return#4 = phi( mul8u_compare::@11/mulf8u::return#2 )
  mul8u_compare::mf#0 = mulf8u::return#4
  mul8u::a#2 = mul8u_compare::a#4
  mul8u::b#1 = mul8u_compare::b#4
  call mul8u
  mul8u::return#3 = mul8u::return#1
  to:mul8u_compare::@13
mul8u_compare::@13: scope:[mul8u_compare]  from mul8u_compare::@12
  print_line_cursor#81 = phi( mul8u_compare::@12/print_line_cursor#92 )
  print_char_cursor#177 = phi( mul8u_compare::@12/print_char_cursor#182 )
  mul8u_compare::a#12 = phi( mul8u_compare::@12/mul8u_compare::a#4 )
  mul8u_compare::b#10 = phi( mul8u_compare::@12/mul8u_compare::b#4 )
  mul8u_compare::mf#1 = phi( mul8u_compare::@12/mul8u_compare::mf#0 )
  mul8u_compare::ms#1 = phi( mul8u_compare::@12/mul8u_compare::ms#4 )
  mul8u::return#6 = phi( mul8u_compare::@12/mul8u::return#3 )
  mul8u_compare::mn#0 = mul8u::return#6
  mul8u_compare::ok#0 = 1
  mul8u_compare::$5 = mul8u_compare::ms#1 != mul8u_compare::mf#1
  mul8u_compare::$6 = ! mul8u_compare::$5
  if(mul8u_compare::$6) goto mul8u_compare::@3
  to:mul8u_compare::@6
mul8u_compare::@3: scope:[mul8u_compare]  from mul8u_compare::@13 mul8u_compare::@6
  print_line_cursor#70 = phi( mul8u_compare::@13/print_line_cursor#81, mul8u_compare::@6/print_line_cursor#82 )
  print_char_cursor#170 = phi( mul8u_compare::@13/print_char_cursor#177, mul8u_compare::@6/print_char_cursor#178 )
  mul8u_compare::mf#4 = phi( mul8u_compare::@13/mul8u_compare::mf#1, mul8u_compare::@6/mul8u_compare::mf#6 )
  mul8u_compare::a#10 = phi( mul8u_compare::@13/mul8u_compare::a#12, mul8u_compare::@6/mul8u_compare::a#13 )
  mul8u_compare::b#8 = phi( mul8u_compare::@13/mul8u_compare::b#10, mul8u_compare::@6/mul8u_compare::b#11 )
  mul8u_compare::ok#4 = phi( mul8u_compare::@13/mul8u_compare::ok#0, mul8u_compare::@6/mul8u_compare::ok#1 )
  mul8u_compare::mn#1 = phi( mul8u_compare::@13/mul8u_compare::mn#0, mul8u_compare::@6/mul8u_compare::mn#3 )
  mul8u_compare::ms#2 = phi( mul8u_compare::@13/mul8u_compare::ms#1, mul8u_compare::@6/mul8u_compare::ms#5 )
  mul8u_compare::$7 = mul8u_compare::ms#2 != mul8u_compare::mn#1
  mul8u_compare::$8 = ! mul8u_compare::$7
  if(mul8u_compare::$8) goto mul8u_compare::@4
  to:mul8u_compare::@7
mul8u_compare::@6: scope:[mul8u_compare]  from mul8u_compare::@13
  print_line_cursor#82 = phi( mul8u_compare::@13/print_line_cursor#81 )
  print_char_cursor#178 = phi( mul8u_compare::@13/print_char_cursor#177 )
  mul8u_compare::mf#6 = phi( mul8u_compare::@13/mul8u_compare::mf#1 )
  mul8u_compare::a#13 = phi( mul8u_compare::@13/mul8u_compare::a#12 )
  mul8u_compare::b#11 = phi( mul8u_compare::@13/mul8u_compare::b#10 )
  mul8u_compare::mn#3 = phi( mul8u_compare::@13/mul8u_compare::mn#0 )
  mul8u_compare::ms#5 = phi( mul8u_compare::@13/mul8u_compare::ms#1 )
  mul8u_compare::ok#1 = 0
  to:mul8u_compare::@3
mul8u_compare::@4: scope:[mul8u_compare]  from mul8u_compare::@3 mul8u_compare::@7
  print_line_cursor#62 = phi( mul8u_compare::@3/print_line_cursor#70, mul8u_compare::@7/print_line_cursor#71 )
  print_char_cursor#164 = phi( mul8u_compare::@3/print_char_cursor#170, mul8u_compare::@7/print_char_cursor#171 )
  mul8u_compare::mf#3 = phi( mul8u_compare::@3/mul8u_compare::mf#4, mul8u_compare::@7/mul8u_compare::mf#5 )
  mul8u_compare::mn#4 = phi( mul8u_compare::@3/mul8u_compare::mn#1, mul8u_compare::@7/mul8u_compare::mn#5 )
  mul8u_compare::ms#6 = phi( mul8u_compare::@3/mul8u_compare::ms#2, mul8u_compare::@7/mul8u_compare::ms#7 )
  mul8u_compare::a#9 = phi( mul8u_compare::@3/mul8u_compare::a#10, mul8u_compare::@7/mul8u_compare::a#11 )
  mul8u_compare::b#7 = phi( mul8u_compare::@3/mul8u_compare::b#8, mul8u_compare::@7/mul8u_compare::b#9 )
  mul8u_compare::ok#3 = phi( mul8u_compare::@3/mul8u_compare::ok#4, mul8u_compare::@7/mul8u_compare::ok#2 )
  mul8u_compare::$9 = mul8u_compare::ok#3 == 0
  mul8u_compare::$10 = ! mul8u_compare::$9
  if(mul8u_compare::$10) goto mul8u_compare::@5
  to:mul8u_compare::@8
mul8u_compare::@7: scope:[mul8u_compare]  from mul8u_compare::@3
  print_line_cursor#71 = phi( mul8u_compare::@3/print_line_cursor#70 )
  print_char_cursor#171 = phi( mul8u_compare::@3/print_char_cursor#170 )
  mul8u_compare::mf#5 = phi( mul8u_compare::@3/mul8u_compare::mf#4 )
  mul8u_compare::mn#5 = phi( mul8u_compare::@3/mul8u_compare::mn#1 )
  mul8u_compare::ms#7 = phi( mul8u_compare::@3/mul8u_compare::ms#2 )
  mul8u_compare::a#11 = phi( mul8u_compare::@3/mul8u_compare::a#10 )
  mul8u_compare::b#9 = phi( mul8u_compare::@3/mul8u_compare::b#8 )
  mul8u_compare::ok#2 = 0
  to:mul8u_compare::@4
mul8u_compare::@5: scope:[mul8u_compare]  from mul8u_compare::@4
  print_line_cursor#83 = phi( mul8u_compare::@4/print_line_cursor#62 )
  print_char_cursor#172 = phi( mul8u_compare::@4/print_char_cursor#164 )
  mul8u_compare::a#8 = phi( mul8u_compare::@4/mul8u_compare::a#9 )
  mul8u_compare::b#5 = phi( mul8u_compare::@4/mul8u_compare::b#7 )
  mul8u_compare::b#1 = mul8u_compare::b#5 + rangenext(0,$ff)
  mul8u_compare::$12 = mul8u_compare::b#1 != rangelast(0,$ff)
  if(mul8u_compare::$12) goto mul8u_compare::@2
  to:mul8u_compare::@9
mul8u_compare::@8: scope:[mul8u_compare]  from mul8u_compare::@4
  print_line_cursor#52 = phi( mul8u_compare::@4/print_line_cursor#62 )
  print_char_cursor#151 = phi( mul8u_compare::@4/print_char_cursor#164 )
  mul8u_compare::mf#2 = phi( mul8u_compare::@4/mul8u_compare::mf#3 )
  mul8u_compare::mn#2 = phi( mul8u_compare::@4/mul8u_compare::mn#4 )
  mul8u_compare::ms#3 = phi( mul8u_compare::@4/mul8u_compare::ms#6 )
  mul8u_compare::b#6 = phi( mul8u_compare::@4/mul8u_compare::b#7 )
  mul8u_compare::a#5 = phi( mul8u_compare::@4/mul8u_compare::a#9 )
  *BG_COLOR = 2
  mul8u_error::a#0 = mul8u_compare::a#5
  mul8u_error::b#0 = mul8u_compare::b#6
  mul8u_error::ms#0 = mul8u_compare::ms#3
  mul8u_error::mn#0 = mul8u_compare::mn#2
  mul8u_error::mf#0 = mul8u_compare::mf#2
  call mul8u_error
  to:mul8u_compare::@14
mul8u_compare::@14: scope:[mul8u_compare]  from mul8u_compare::@8
  print_line_cursor#35 = phi( mul8u_compare::@8/print_line_cursor#15 )
  print_char_cursor#102 = phi( mul8u_compare::@8/print_char_cursor#49 )
  print_char_cursor#34 = print_char_cursor#102
  print_line_cursor#11 = print_line_cursor#35
  to:mul8u_compare::@return
mul8u_compare::@return: scope:[mul8u_compare]  from mul8u_compare::@14 mul8u_compare::@16
  print_line_cursor#36 = phi( mul8u_compare::@14/print_line_cursor#11, mul8u_compare::@16/print_line_cursor#13 )
  print_char_cursor#103 = phi( mul8u_compare::@14/print_char_cursor#34, mul8u_compare::@16/print_char_cursor#37 )
  print_char_cursor#35 = print_char_cursor#103
  print_line_cursor#12 = print_line_cursor#36
  return 
  to:@return
mul8u_compare::@9: scope:[mul8u_compare]  from mul8u_compare::@5
  print_line_cursor#72 = phi( mul8u_compare::@5/print_line_cursor#83 )
  print_char_cursor#165 = phi( mul8u_compare::@5/print_char_cursor#172 )
  mul8u_compare::a#6 = phi( mul8u_compare::@5/mul8u_compare::a#8 )
  mul8u_compare::a#1 = mul8u_compare::a#6 + rangenext(0,$ff)
  mul8u_compare::$13 = mul8u_compare::a#1 != rangelast(0,$ff)
  if(mul8u_compare::$13) goto mul8u_compare::@1
  to:mul8u_compare::@10
mul8u_compare::@10: scope:[mul8u_compare]  from mul8u_compare::@9
  print_line_cursor#63 = phi( mul8u_compare::@9/print_line_cursor#72 )
  print_char_cursor#152 = phi( mul8u_compare::@9/print_char_cursor#165 )
  print_str::str#4 = mul8u_compare::str
  call print_str
  to:mul8u_compare::@15
mul8u_compare::@15: scope:[mul8u_compare]  from mul8u_compare::@10
  print_line_cursor#53 = phi( mul8u_compare::@10/print_line_cursor#63 )
  print_char_cursor#104 = phi( mul8u_compare::@10/print_char_cursor#1 )
  print_char_cursor#36 = print_char_cursor#104
  call print_ln
  to:mul8u_compare::@16
mul8u_compare::@16: scope:[mul8u_compare]  from mul8u_compare::@15
  print_char_cursor#105 = phi( mul8u_compare::@15/print_char_cursor#3 )
  print_line_cursor#37 = phi( mul8u_compare::@15/print_line_cursor#1 )
  print_line_cursor#13 = print_line_cursor#37
  print_char_cursor#37 = print_char_cursor#105
  to:mul8u_compare::@return

void mul8u_error(char a , char b , unsigned int ms , unsigned int mn , unsigned int mf)
mul8u_error: scope:[mul8u_error]  from mul8u_compare::@8
  print_line_cursor#115 = phi( mul8u_compare::@8/print_line_cursor#52 )
  mul8u_error::mf#10 = phi( mul8u_compare::@8/mul8u_error::mf#0 )
  mul8u_error::mn#8 = phi( mul8u_compare::@8/mul8u_error::mn#0 )
  mul8u_error::ms#6 = phi( mul8u_compare::@8/mul8u_error::ms#0 )
  mul8u_error::b#4 = phi( mul8u_compare::@8/mul8u_error::b#0 )
  mul8u_error::a#2 = phi( mul8u_compare::@8/mul8u_error::a#0 )
  print_char_cursor#153 = phi( mul8u_compare::@8/print_char_cursor#151 )
  print_str::str#5 = mul8u_error::str
  call print_str
  to:mul8u_error::@1
mul8u_error::@1: scope:[mul8u_error]  from mul8u_error
  print_line_cursor#113 = phi( mul8u_error/print_line_cursor#115 )
  mul8u_error::mf#9 = phi( mul8u_error/mul8u_error::mf#10 )
  mul8u_error::mn#7 = phi( mul8u_error/mul8u_error::mn#8 )
  mul8u_error::ms#5 = phi( mul8u_error/mul8u_error::ms#6 )
  mul8u_error::b#3 = phi( mul8u_error/mul8u_error::b#4 )
  mul8u_error::a#1 = phi( mul8u_error/mul8u_error::a#2 )
  print_char_cursor#106 = phi( mul8u_error/print_char_cursor#1 )
  print_char_cursor#38 = print_char_cursor#106
  print_uchar::b#3 = mul8u_error::a#1
  call print_uchar
  to:mul8u_error::@2
mul8u_error::@2: scope:[mul8u_error]  from mul8u_error::@1
  print_line_cursor#111 = phi( mul8u_error::@1/print_line_cursor#113 )
  mul8u_error::mf#8 = phi( mul8u_error::@1/mul8u_error::mf#9 )
  mul8u_error::mn#6 = phi( mul8u_error::@1/mul8u_error::mn#7 )
  mul8u_error::ms#4 = phi( mul8u_error::@1/mul8u_error::ms#5 )
  mul8u_error::b#2 = phi( mul8u_error::@1/mul8u_error::b#3 )
  print_char_cursor#107 = phi( mul8u_error::@1/print_char_cursor#17 )
  print_char_cursor#39 = print_char_cursor#107
  print_str::str#6 = mul8u_error::str1
  call print_str
  to:mul8u_error::@3
mul8u_error::@3: scope:[mul8u_error]  from mul8u_error::@2
  print_line_cursor#108 = phi( mul8u_error::@2/print_line_cursor#111 )
  mul8u_error::mf#7 = phi( mul8u_error::@2/mul8u_error::mf#8 )
  mul8u_error::mn#5 = phi( mul8u_error::@2/mul8u_error::mn#6 )
  mul8u_error::ms#3 = phi( mul8u_error::@2/mul8u_error::ms#4 )
  mul8u_error::b#1 = phi( mul8u_error::@2/mul8u_error::b#2 )
  print_char_cursor#108 = phi( mul8u_error::@2/print_char_cursor#1 )
  print_char_cursor#40 = print_char_cursor#108
  print_uchar::b#4 = mul8u_error::b#1
  call print_uchar
  to:mul8u_error::@4
mul8u_error::@4: scope:[mul8u_error]  from mul8u_error::@3
  print_line_cursor#104 = phi( mul8u_error::@3/print_line_cursor#108 )
  mul8u_error::mf#6 = phi( mul8u_error::@3/mul8u_error::mf#7 )
  mul8u_error::mn#4 = phi( mul8u_error::@3/mul8u_error::mn#5 )
  mul8u_error::ms#2 = phi( mul8u_error::@3/mul8u_error::ms#3 )
  print_char_cursor#109 = phi( mul8u_error::@3/print_char_cursor#17 )
  print_char_cursor#41 = print_char_cursor#109
  print_str::str#7 = mul8u_error::str2
  call print_str
  to:mul8u_error::@5
mul8u_error::@5: scope:[mul8u_error]  from mul8u_error::@4
  print_line_cursor#98 = phi( mul8u_error::@4/print_line_cursor#104 )
  mul8u_error::mf#5 = phi( mul8u_error::@4/mul8u_error::mf#6 )
  mul8u_error::mn#3 = phi( mul8u_error::@4/mul8u_error::mn#4 )
  mul8u_error::ms#1 = phi( mul8u_error::@4/mul8u_error::ms#2 )
  print_char_cursor#110 = phi( mul8u_error::@4/print_char_cursor#1 )
  print_char_cursor#42 = print_char_cursor#110
  print_uint::w#3 = mul8u_error::ms#1
  call print_uint
  to:mul8u_error::@6
mul8u_error::@6: scope:[mul8u_error]  from mul8u_error::@5
  print_line_cursor#93 = phi( mul8u_error::@5/print_line_cursor#98 )
  mul8u_error::mf#4 = phi( mul8u_error::@5/mul8u_error::mf#5 )
  mul8u_error::mn#2 = phi( mul8u_error::@5/mul8u_error::mn#3 )
  print_char_cursor#111 = phi( mul8u_error::@5/print_char_cursor#14 )
  print_char_cursor#43 = print_char_cursor#111
  print_str::str#8 = mul8u_error::str3
  call print_str
  to:mul8u_error::@7
mul8u_error::@7: scope:[mul8u_error]  from mul8u_error::@6
  print_line_cursor#84 = phi( mul8u_error::@6/print_line_cursor#93 )
  mul8u_error::mf#3 = phi( mul8u_error::@6/mul8u_error::mf#4 )
  mul8u_error::mn#1 = phi( mul8u_error::@6/mul8u_error::mn#2 )
  print_char_cursor#112 = phi( mul8u_error::@6/print_char_cursor#1 )
  print_char_cursor#44 = print_char_cursor#112
  print_uint::w#4 = mul8u_error::mn#1
  call print_uint
  to:mul8u_error::@8
mul8u_error::@8: scope:[mul8u_error]  from mul8u_error::@7
  print_line_cursor#73 = phi( mul8u_error::@7/print_line_cursor#84 )
  mul8u_error::mf#2 = phi( mul8u_error::@7/mul8u_error::mf#3 )
  print_char_cursor#113 = phi( mul8u_error::@7/print_char_cursor#14 )
  print_char_cursor#45 = print_char_cursor#113
  print_str::str#9 = mul8u_error::str4
  call print_str
  to:mul8u_error::@9
mul8u_error::@9: scope:[mul8u_error]  from mul8u_error::@8
  print_line_cursor#64 = phi( mul8u_error::@8/print_line_cursor#73 )
  mul8u_error::mf#1 = phi( mul8u_error::@8/mul8u_error::mf#2 )
  print_char_cursor#114 = phi( mul8u_error::@8/print_char_cursor#1 )
  print_char_cursor#46 = print_char_cursor#114
  print_uint::w#5 = mul8u_error::mf#1
  call print_uint
  to:mul8u_error::@10
mul8u_error::@10: scope:[mul8u_error]  from mul8u_error::@9
  print_line_cursor#54 = phi( mul8u_error::@9/print_line_cursor#64 )
  print_char_cursor#115 = phi( mul8u_error::@9/print_char_cursor#14 )
  print_char_cursor#47 = print_char_cursor#115
  call print_ln
  to:mul8u_error::@11
mul8u_error::@11: scope:[mul8u_error]  from mul8u_error::@10
  print_char_cursor#116 = phi( mul8u_error::@10/print_char_cursor#3 )
  print_line_cursor#38 = phi( mul8u_error::@10/print_line_cursor#1 )
  print_line_cursor#14 = print_line_cursor#38
  print_char_cursor#48 = print_char_cursor#116
  to:mul8u_error::@return
mul8u_error::@return: scope:[mul8u_error]  from mul8u_error::@11
  print_line_cursor#39 = phi( mul8u_error::@11/print_line_cursor#14 )
  print_char_cursor#117 = phi( mul8u_error::@11/print_char_cursor#48 )
  print_char_cursor#49 = print_char_cursor#117
  print_line_cursor#15 = print_line_cursor#39
  return 
  to:@return

void mul8s_compare()
mul8s_compare: scope:[mul8s_compare]  from main::@5
  print_line_cursor#85 = phi( main::@5/print_line_cursor#6 )
  print_char_cursor#173 = phi( main::@5/print_char_cursor#24 )
  mul8s_compare::a#0 = -$80
  to:mul8s_compare::@1
mul8s_compare::@1: scope:[mul8s_compare]  from mul8s_compare mul8s_compare::@6
  print_line_cursor#74 = phi( mul8s_compare/print_line_cursor#85, mul8s_compare::@6/print_line_cursor#86 )
  print_char_cursor#166 = phi( mul8s_compare/print_char_cursor#173, mul8s_compare::@6/print_char_cursor#174 )
  mul8s_compare::a#2 = phi( mul8s_compare/mul8s_compare::a#0, mul8s_compare::@6/mul8s_compare::a#1 )
  mul8s_compare::$2 = mul8s_compare::a#2 != -$80
  if(mul8s_compare::$2) goto mul8s_compare::@2
  to:mul8s_compare::@3
mul8s_compare::@2: scope:[mul8s_compare]  from mul8s_compare::@1
  print_line_cursor#99 = phi( mul8s_compare::@1/print_line_cursor#74 )
  print_char_cursor#183 = phi( mul8s_compare::@1/print_char_cursor#166 )
  mul8s_compare::a#10 = phi( mul8s_compare::@1/mul8s_compare::a#2 )
  mul8s_compare::b#0 = -$80
  to:mul8s_compare::@4
mul8s_compare::@3: scope:[mul8s_compare]  from mul8s_compare::@1
  print_line_cursor#65 = phi( mul8s_compare::@1/print_line_cursor#74 )
  print_char_cursor#154 = phi( mul8s_compare::@1/print_char_cursor#166 )
  print_str::str#10 = mul8s_compare::str
  call print_str
  to:mul8s_compare::@13
mul8s_compare::@13: scope:[mul8s_compare]  from mul8s_compare::@3
  print_line_cursor#55 = phi( mul8s_compare::@3/print_line_cursor#65 )
  print_char_cursor#118 = phi( mul8s_compare::@3/print_char_cursor#1 )
  print_char_cursor#50 = print_char_cursor#118
  call print_ln
  to:mul8s_compare::@14
mul8s_compare::@14: scope:[mul8s_compare]  from mul8s_compare::@13
  print_char_cursor#119 = phi( mul8s_compare::@13/print_char_cursor#3 )
  print_line_cursor#40 = phi( mul8s_compare::@13/print_line_cursor#1 )
  print_line_cursor#16 = print_line_cursor#40
  print_char_cursor#51 = print_char_cursor#119
  to:mul8s_compare::@return
mul8s_compare::@4: scope:[mul8s_compare]  from mul8s_compare::@2 mul8s_compare::@9
  print_line_cursor#95 = phi( mul8s_compare::@2/print_line_cursor#99, mul8s_compare::@9/print_line_cursor#100 )
  print_char_cursor#179 = phi( mul8s_compare::@2/print_char_cursor#183, mul8s_compare::@9/print_char_cursor#184 )
  mul8s_compare::a#8 = phi( mul8s_compare::@2/mul8s_compare::a#10, mul8s_compare::@9/mul8s_compare::a#11 )
  mul8s_compare::b#2 = phi( mul8s_compare::@2/mul8s_compare::b#0, mul8s_compare::@9/mul8s_compare::b#1 )
  mul8s_compare::$3 = mul8s_compare::b#2 != -$80
  if(mul8s_compare::$3) goto mul8s_compare::@5
  to:mul8s_compare::@6
mul8s_compare::@5: scope:[mul8s_compare]  from mul8s_compare::@4
  print_line_cursor#105 = phi( mul8s_compare::@4/print_line_cursor#95 )
  print_char_cursor#189 = phi( mul8s_compare::@4/print_char_cursor#179 )
  mul8s_compare::b#3 = phi( mul8s_compare::@4/mul8s_compare::b#2 )
  mul8s_compare::a#3 = phi( mul8s_compare::@4/mul8s_compare::a#8 )
  muls8s::a#0 = mul8s_compare::a#3
  muls8s::b#0 = mul8s_compare::b#3
  call muls8s
  muls8s::return#2 = muls8s::return#1
  to:mul8s_compare::@15
mul8s_compare::@15: scope:[mul8s_compare]  from mul8s_compare::@5
  print_line_cursor#101 = phi( mul8s_compare::@5/print_line_cursor#105 )
  print_char_cursor#187 = phi( mul8s_compare::@5/print_char_cursor#189 )
  mul8s_compare::b#4 = phi( mul8s_compare::@5/mul8s_compare::b#3 )
  mul8s_compare::a#4 = phi( mul8s_compare::@5/mul8s_compare::a#3 )
  muls8s::return#4 = phi( mul8s_compare::@5/muls8s::return#2 )
  mul8s_compare::ms#0 = muls8s::return#4
  mulf8s::a#0 = mul8s_compare::a#4
  mulf8s::b#0 = mul8s_compare::b#4
  call mulf8s
  mulf8s::return#2 = mulf8s::return#1
  to:mul8s_compare::@16
mul8s_compare::@16: scope:[mul8s_compare]  from mul8s_compare::@15
  print_line_cursor#94 = phi( mul8s_compare::@15/print_line_cursor#101 )
  print_char_cursor#185 = phi( mul8s_compare::@15/print_char_cursor#187 )
  mul8s_compare::ms#4 = phi( mul8s_compare::@15/mul8s_compare::ms#0 )
  mul8s_compare::b#5 = phi( mul8s_compare::@15/mul8s_compare::b#4 )
  mul8s_compare::a#5 = phi( mul8s_compare::@15/mul8s_compare::a#4 )
  mulf8s::return#4 = phi( mul8s_compare::@15/mulf8s::return#2 )
  mul8s_compare::mf#0 = mulf8s::return#4
  mul8s::a#0 = mul8s_compare::a#5
  mul8s::b#0 = mul8s_compare::b#5
  call mul8s
  mul8s::return#2 = mul8s::return#1
  to:mul8s_compare::@17
mul8s_compare::@17: scope:[mul8s_compare]  from mul8s_compare::@16
  print_line_cursor#88 = phi( mul8s_compare::@16/print_line_cursor#94 )
  print_char_cursor#181 = phi( mul8s_compare::@16/print_char_cursor#185 )
  mul8s_compare::a#15 = phi( mul8s_compare::@16/mul8s_compare::a#5 )
  mul8s_compare::b#12 = phi( mul8s_compare::@16/mul8s_compare::b#5 )
  mul8s_compare::mf#1 = phi( mul8s_compare::@16/mul8s_compare::mf#0 )
  mul8s_compare::ms#1 = phi( mul8s_compare::@16/mul8s_compare::ms#4 )
  mul8s::return#4 = phi( mul8s_compare::@16/mul8s::return#2 )
  mul8s_compare::mn#0 = mul8s::return#4
  mul8s_compare::ok#0 = 1
  mul8s_compare::$7 = mul8s_compare::ms#1 != mul8s_compare::mf#1
  mul8s_compare::$8 = ! mul8s_compare::$7
  if(mul8s_compare::$8) goto mul8s_compare::@7
  to:mul8s_compare::@10
mul8s_compare::@6: scope:[mul8s_compare]  from mul8s_compare::@4
  print_line_cursor#86 = phi( mul8s_compare::@4/print_line_cursor#95 )
  print_char_cursor#174 = phi( mul8s_compare::@4/print_char_cursor#179 )
  mul8s_compare::a#6 = phi( mul8s_compare::@4/mul8s_compare::a#8 )
  mul8s_compare::a#1 = ++ mul8s_compare::a#6
  to:mul8s_compare::@1
mul8s_compare::@7: scope:[mul8s_compare]  from mul8s_compare::@10 mul8s_compare::@17
  print_line_cursor#76 = phi( mul8s_compare::@10/print_line_cursor#87, mul8s_compare::@17/print_line_cursor#88 )
  print_char_cursor#176 = phi( mul8s_compare::@10/print_char_cursor#180, mul8s_compare::@17/print_char_cursor#181 )
  mul8s_compare::mf#5 = phi( mul8s_compare::@10/mul8s_compare::mf#6, mul8s_compare::@17/mul8s_compare::mf#1 )
  mul8s_compare::a#13 = phi( mul8s_compare::@10/mul8s_compare::a#14, mul8s_compare::@17/mul8s_compare::a#15 )
  mul8s_compare::b#10 = phi( mul8s_compare::@10/mul8s_compare::b#11, mul8s_compare::@17/mul8s_compare::b#12 )
  mul8s_compare::ok#4 = phi( mul8s_compare::@10/mul8s_compare::ok#1, mul8s_compare::@17/mul8s_compare::ok#0 )
  mul8s_compare::mn#1 = phi( mul8s_compare::@10/mul8s_compare::mn#3, mul8s_compare::@17/mul8s_compare::mn#0 )
  mul8s_compare::ms#2 = phi( mul8s_compare::@10/mul8s_compare::ms#5, mul8s_compare::@17/mul8s_compare::ms#1 )
  mul8s_compare::$9 = mul8s_compare::ms#2 != mul8s_compare::mn#1
  mul8s_compare::$10 = ! mul8s_compare::$9
  if(mul8s_compare::$10) goto mul8s_compare::@8
  to:mul8s_compare::@11
mul8s_compare::@10: scope:[mul8s_compare]  from mul8s_compare::@17
  print_line_cursor#87 = phi( mul8s_compare::@17/print_line_cursor#88 )
  print_char_cursor#180 = phi( mul8s_compare::@17/print_char_cursor#181 )
  mul8s_compare::mf#6 = phi( mul8s_compare::@17/mul8s_compare::mf#1 )
  mul8s_compare::a#14 = phi( mul8s_compare::@17/mul8s_compare::a#15 )
  mul8s_compare::b#11 = phi( mul8s_compare::@17/mul8s_compare::b#12 )
  mul8s_compare::mn#3 = phi( mul8s_compare::@17/mul8s_compare::mn#0 )
  mul8s_compare::ms#5 = phi( mul8s_compare::@17/mul8s_compare::ms#1 )
  mul8s_compare::ok#1 = 0
  to:mul8s_compare::@7
mul8s_compare::@8: scope:[mul8s_compare]  from mul8s_compare::@11 mul8s_compare::@7
  print_line_cursor#66 = phi( mul8s_compare::@11/print_line_cursor#75, mul8s_compare::@7/print_line_cursor#76 )
  print_char_cursor#167 = phi( mul8s_compare::@11/print_char_cursor#175, mul8s_compare::@7/print_char_cursor#176 )
  mul8s_compare::mf#3 = phi( mul8s_compare::@11/mul8s_compare::mf#4, mul8s_compare::@7/mul8s_compare::mf#5 )
  mul8s_compare::mn#4 = phi( mul8s_compare::@11/mul8s_compare::mn#5, mul8s_compare::@7/mul8s_compare::mn#1 )
  mul8s_compare::ms#6 = phi( mul8s_compare::@11/mul8s_compare::ms#7, mul8s_compare::@7/mul8s_compare::ms#2 )
  mul8s_compare::a#9 = phi( mul8s_compare::@11/mul8s_compare::a#12, mul8s_compare::@7/mul8s_compare::a#13 )
  mul8s_compare::b#8 = phi( mul8s_compare::@11/mul8s_compare::b#9, mul8s_compare::@7/mul8s_compare::b#10 )
  mul8s_compare::ok#3 = phi( mul8s_compare::@11/mul8s_compare::ok#2, mul8s_compare::@7/mul8s_compare::ok#4 )
  mul8s_compare::$11 = mul8s_compare::ok#3 == 0
  mul8s_compare::$12 = ! mul8s_compare::$11
  if(mul8s_compare::$12) goto mul8s_compare::@9
  to:mul8s_compare::@12
mul8s_compare::@11: scope:[mul8s_compare]  from mul8s_compare::@7
  print_line_cursor#75 = phi( mul8s_compare::@7/print_line_cursor#76 )
  print_char_cursor#175 = phi( mul8s_compare::@7/print_char_cursor#176 )
  mul8s_compare::mf#4 = phi( mul8s_compare::@7/mul8s_compare::mf#5 )
  mul8s_compare::mn#5 = phi( mul8s_compare::@7/mul8s_compare::mn#1 )
  mul8s_compare::ms#7 = phi( mul8s_compare::@7/mul8s_compare::ms#2 )
  mul8s_compare::a#12 = phi( mul8s_compare::@7/mul8s_compare::a#13 )
  mul8s_compare::b#9 = phi( mul8s_compare::@7/mul8s_compare::b#10 )
  mul8s_compare::ok#2 = 0
  to:mul8s_compare::@8
mul8s_compare::@9: scope:[mul8s_compare]  from mul8s_compare::@8
  print_line_cursor#100 = phi( mul8s_compare::@8/print_line_cursor#66 )
  print_char_cursor#184 = phi( mul8s_compare::@8/print_char_cursor#167 )
  mul8s_compare::a#11 = phi( mul8s_compare::@8/mul8s_compare::a#9 )
  mul8s_compare::b#6 = phi( mul8s_compare::@8/mul8s_compare::b#8 )
  mul8s_compare::b#1 = ++ mul8s_compare::b#6
  to:mul8s_compare::@4
mul8s_compare::@12: scope:[mul8s_compare]  from mul8s_compare::@8
  print_line_cursor#56 = phi( mul8s_compare::@8/print_line_cursor#66 )
  print_char_cursor#155 = phi( mul8s_compare::@8/print_char_cursor#167 )
  mul8s_compare::mf#2 = phi( mul8s_compare::@8/mul8s_compare::mf#3 )
  mul8s_compare::mn#2 = phi( mul8s_compare::@8/mul8s_compare::mn#4 )
  mul8s_compare::ms#3 = phi( mul8s_compare::@8/mul8s_compare::ms#6 )
  mul8s_compare::b#7 = phi( mul8s_compare::@8/mul8s_compare::b#8 )
  mul8s_compare::a#7 = phi( mul8s_compare::@8/mul8s_compare::a#9 )
  *BG_COLOR = 2
  mul8s_error::a#0 = mul8s_compare::a#7
  mul8s_error::b#0 = mul8s_compare::b#7
  mul8s_error::ms#0 = mul8s_compare::ms#3
  mul8s_error::mn#0 = mul8s_compare::mn#2
  mul8s_error::mf#0 = mul8s_compare::mf#2
  call mul8s_error
  to:mul8s_compare::@18
mul8s_compare::@18: scope:[mul8s_compare]  from mul8s_compare::@12
  print_line_cursor#41 = phi( mul8s_compare::@12/print_line_cursor#20 )
  print_char_cursor#120 = phi( mul8s_compare::@12/print_char_cursor#65 )
  print_char_cursor#52 = print_char_cursor#120
  print_line_cursor#17 = print_line_cursor#41
  to:mul8s_compare::@return
mul8s_compare::@return: scope:[mul8s_compare]  from mul8s_compare::@14 mul8s_compare::@18
  print_line_cursor#42 = phi( mul8s_compare::@14/print_line_cursor#16, mul8s_compare::@18/print_line_cursor#17 )
  print_char_cursor#121 = phi( mul8s_compare::@14/print_char_cursor#51, mul8s_compare::@18/print_char_cursor#52 )
  print_char_cursor#53 = print_char_cursor#121
  print_line_cursor#18 = print_line_cursor#42
  return 
  to:@return

void mul8s_error(signed char a , signed char b , int ms , int mn , int mf)
mul8s_error: scope:[mul8s_error]  from mul8s_compare::@12
  print_line_cursor#116 = phi( mul8s_compare::@12/print_line_cursor#56 )
  mul8s_error::mf#10 = phi( mul8s_compare::@12/mul8s_error::mf#0 )
  mul8s_error::mn#8 = phi( mul8s_compare::@12/mul8s_error::mn#0 )
  mul8s_error::ms#6 = phi( mul8s_compare::@12/mul8s_error::ms#0 )
  mul8s_error::b#4 = phi( mul8s_compare::@12/mul8s_error::b#0 )
  mul8s_error::a#2 = phi( mul8s_compare::@12/mul8s_error::a#0 )
  print_char_cursor#156 = phi( mul8s_compare::@12/print_char_cursor#155 )
  print_str::str#11 = mul8s_error::str
  call print_str
  to:mul8s_error::@1
mul8s_error::@1: scope:[mul8s_error]  from mul8s_error
  print_line_cursor#114 = phi( mul8s_error/print_line_cursor#116 )
  mul8s_error::mf#9 = phi( mul8s_error/mul8s_error::mf#10 )
  mul8s_error::mn#7 = phi( mul8s_error/mul8s_error::mn#8 )
  mul8s_error::ms#5 = phi( mul8s_error/mul8s_error::ms#6 )
  mul8s_error::b#3 = phi( mul8s_error/mul8s_error::b#4 )
  mul8s_error::a#1 = phi( mul8s_error/mul8s_error::a#2 )
  print_char_cursor#122 = phi( mul8s_error/print_char_cursor#1 )
  print_char_cursor#54 = print_char_cursor#122
  print_schar::b#1 = mul8s_error::a#1
  call print_schar
  to:mul8s_error::@2
mul8s_error::@2: scope:[mul8s_error]  from mul8s_error::@1
  print_line_cursor#112 = phi( mul8s_error::@1/print_line_cursor#114 )
  mul8s_error::mf#8 = phi( mul8s_error::@1/mul8s_error::mf#9 )
  mul8s_error::mn#6 = phi( mul8s_error::@1/mul8s_error::mn#7 )
  mul8s_error::ms#4 = phi( mul8s_error::@1/mul8s_error::ms#5 )
  mul8s_error::b#2 = phi( mul8s_error::@1/mul8s_error::b#3 )
  print_char_cursor#123 = phi( mul8s_error::@1/print_char_cursor#11 )
  print_char_cursor#55 = print_char_cursor#123
  print_str::str#12 = mul8s_error::str1
  call print_str
  to:mul8s_error::@3
mul8s_error::@3: scope:[mul8s_error]  from mul8s_error::@2
  print_line_cursor#109 = phi( mul8s_error::@2/print_line_cursor#112 )
  mul8s_error::mf#7 = phi( mul8s_error::@2/mul8s_error::mf#8 )
  mul8s_error::mn#5 = phi( mul8s_error::@2/mul8s_error::mn#6 )
  mul8s_error::ms#3 = phi( mul8s_error::@2/mul8s_error::ms#4 )
  mul8s_error::b#1 = phi( mul8s_error::@2/mul8s_error::b#2 )
  print_char_cursor#124 = phi( mul8s_error::@2/print_char_cursor#1 )
  print_char_cursor#56 = print_char_cursor#124
  print_schar::b#2 = mul8s_error::b#1
  call print_schar
  to:mul8s_error::@4
mul8s_error::@4: scope:[mul8s_error]  from mul8s_error::@3
  print_line_cursor#106 = phi( mul8s_error::@3/print_line_cursor#109 )
  mul8s_error::mf#6 = phi( mul8s_error::@3/mul8s_error::mf#7 )
  mul8s_error::mn#4 = phi( mul8s_error::@3/mul8s_error::mn#5 )
  mul8s_error::ms#2 = phi( mul8s_error::@3/mul8s_error::ms#3 )
  print_char_cursor#125 = phi( mul8s_error::@3/print_char_cursor#11 )
  print_char_cursor#57 = print_char_cursor#125
  print_str::str#13 = mul8s_error::str2
  call print_str
  to:mul8s_error::@5
mul8s_error::@5: scope:[mul8s_error]  from mul8s_error::@4
  print_line_cursor#102 = phi( mul8s_error::@4/print_line_cursor#106 )
  mul8s_error::mf#5 = phi( mul8s_error::@4/mul8s_error::mf#6 )
  mul8s_error::mn#3 = phi( mul8s_error::@4/mul8s_error::mn#4 )
  mul8s_error::ms#1 = phi( mul8s_error::@4/mul8s_error::ms#2 )
  print_char_cursor#126 = phi( mul8s_error::@4/print_char_cursor#1 )
  print_char_cursor#58 = print_char_cursor#126
  print_sint::w#1 = mul8s_error::ms#1
  call print_sint
  to:mul8s_error::@6
mul8s_error::@6: scope:[mul8s_error]  from mul8s_error::@5
  print_line_cursor#96 = phi( mul8s_error::@5/print_line_cursor#102 )
  mul8s_error::mf#4 = phi( mul8s_error::@5/mul8s_error::mf#5 )
  mul8s_error::mn#2 = phi( mul8s_error::@5/mul8s_error::mn#3 )
  print_char_cursor#127 = phi( mul8s_error::@5/print_char_cursor#7 )
  print_char_cursor#59 = print_char_cursor#127
  print_str::str#14 = mul8s_error::str3
  call print_str
  to:mul8s_error::@7
mul8s_error::@7: scope:[mul8s_error]  from mul8s_error::@6
  print_line_cursor#89 = phi( mul8s_error::@6/print_line_cursor#96 )
  mul8s_error::mf#3 = phi( mul8s_error::@6/mul8s_error::mf#4 )
  mul8s_error::mn#1 = phi( mul8s_error::@6/mul8s_error::mn#2 )
  print_char_cursor#128 = phi( mul8s_error::@6/print_char_cursor#1 )
  print_char_cursor#60 = print_char_cursor#128
  print_sint::w#2 = mul8s_error::mn#1
  call print_sint
  to:mul8s_error::@8
mul8s_error::@8: scope:[mul8s_error]  from mul8s_error::@7
  print_line_cursor#77 = phi( mul8s_error::@7/print_line_cursor#89 )
  mul8s_error::mf#2 = phi( mul8s_error::@7/mul8s_error::mf#3 )
  print_char_cursor#129 = phi( mul8s_error::@7/print_char_cursor#7 )
  print_char_cursor#61 = print_char_cursor#129
  print_str::str#15 = mul8s_error::str4
  call print_str
  to:mul8s_error::@9
mul8s_error::@9: scope:[mul8s_error]  from mul8s_error::@8
  print_line_cursor#67 = phi( mul8s_error::@8/print_line_cursor#77 )
  mul8s_error::mf#1 = phi( mul8s_error::@8/mul8s_error::mf#2 )
  print_char_cursor#130 = phi( mul8s_error::@8/print_char_cursor#1 )
  print_char_cursor#62 = print_char_cursor#130
  print_sint::w#3 = mul8s_error::mf#1
  call print_sint
  to:mul8s_error::@10
mul8s_error::@10: scope:[mul8s_error]  from mul8s_error::@9
  print_line_cursor#57 = phi( mul8s_error::@9/print_line_cursor#67 )
  print_char_cursor#131 = phi( mul8s_error::@9/print_char_cursor#7 )
  print_char_cursor#63 = print_char_cursor#131
  call print_ln
  to:mul8s_error::@11
mul8s_error::@11: scope:[mul8s_error]  from mul8s_error::@10
  print_char_cursor#132 = phi( mul8s_error::@10/print_char_cursor#3 )
  print_line_cursor#43 = phi( mul8s_error::@10/print_line_cursor#1 )
  print_line_cursor#19 = print_line_cursor#43
  print_char_cursor#64 = print_char_cursor#132
  to:mul8s_error::@return
mul8s_error::@return: scope:[mul8s_error]  from mul8s_error::@11
  print_line_cursor#44 = phi( mul8s_error::@11/print_line_cursor#19 )
  print_char_cursor#133 = phi( mul8s_error::@11/print_char_cursor#64 )
  print_char_cursor#65 = print_char_cursor#133
  print_line_cursor#20 = print_line_cursor#44
  return 
  to:@return

void __start()
__start: scope:[__start]  from
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  print_screen#0 = (char *)$400
  print_line_cursor#21 = print_screen#0
  print_char_cursor#66 = print_line_cursor#21
  to:__start::@1
__start::@1: scope:[__start]  from __start::__init1
  print_screen#7 = phi( __start::__init1/print_screen#0 )
  print_char_cursor#157 = phi( __start::__init1/print_char_cursor#66 )
  print_line_cursor#58 = phi( __start::__init1/print_line_cursor#21 )
  call main
  to:__start::@2
__start::@2: scope:[__start]  from __start::@1
  print_screen#6 = phi( __start::@1/print_screen#7 )
  print_char_cursor#134 = phi( __start::@1/print_char_cursor#26 )
  print_line_cursor#45 = phi( __start::@1/print_line_cursor#8 )
  print_line_cursor#22 = print_line_cursor#45
  print_char_cursor#67 = print_char_cursor#134
  to:__start::@return
__start::@return: scope:[__start]  from __start::@2
  print_char_cursor#135 = phi( __start::@2/print_char_cursor#67 )
  print_line_cursor#46 = phi( __start::@2/print_line_cursor#22 )
  print_screen#4 = phi( __start::@2/print_screen#6 )
  print_screen#1 = print_screen#4
  print_line_cursor#23 = print_line_cursor#46
  print_char_cursor#68 = print_char_cursor#135
  return 
  to:@return

SYMBOL TABLE SSA
__constant char *BG_COLOR = (char *)$d021
__constant char RADIX::BINARY = 2
__constant char RADIX::DECIMAL = $a
__constant char RADIX::HEXADECIMAL = $10
__constant char RADIX::OCTAL = 8
void __start()
void main()
void * memset(void *str , char c , unsigned int num)
bool memset::$0
bool memset::$1
bool memset::$3
char *memset::$4
char memset::c
char memset::c#0
char memset::c#1
char memset::c#2
char memset::c#3
char memset::c#4
char *memset::dst
char *memset::dst#0
char *memset::dst#1
char *memset::dst#2
char *memset::dst#3
char *memset::end
char *memset::end#0
char *memset::end#1
char *memset::end#2
unsigned int memset::num
unsigned int memset::num#0
unsigned int memset::num#1
unsigned int memset::num#2
void *memset::return
void *memset::return#0
void *memset::return#1
void *memset::return#2
void *memset::return#3
void *memset::str
void *memset::str#0
void *memset::str#1
void *memset::str#2
void *memset::str#3
void *memset::str#4
void *memset::str#5
int mul8s(signed char a , signed char b)
bool mul8s::$1
char mul8s::$10
char mul8s::$11
char mul8s::$12
char mul8s::$13
char mul8s::$14
bool mul8s::$2
bool mul8s::$3
bool mul8s::$4
char mul8s::$6
char mul8s::$7
char mul8s::$9
signed char mul8s::a
signed char mul8s::a#0
signed char mul8s::a#1
signed char mul8s::a#2
signed char mul8s::a#3
signed char mul8s::a#4
signed char mul8s::a#5
signed char mul8s::b
signed char mul8s::b#0
signed char mul8s::b#1
signed char mul8s::b#2
signed char mul8s::b#3
signed char mul8s::b#4
unsigned int mul8s::m
unsigned int mul8s::m#0
unsigned int mul8s::m#1
unsigned int mul8s::m#2
unsigned int mul8s::m#3
unsigned int mul8s::m#4
unsigned int mul8s::m#5
unsigned int mul8s::m#6
int mul8s::return
int mul8s::return#0
int mul8s::return#1
int mul8s::return#2
int mul8s::return#3
int mul8s::return#4
void mul8s_compare()
bool mul8s_compare::$10
bool mul8s_compare::$11
bool mul8s_compare::$12
bool mul8s_compare::$2
bool mul8s_compare::$3
bool mul8s_compare::$7
bool mul8s_compare::$8
bool mul8s_compare::$9
signed char mul8s_compare::a
signed char mul8s_compare::a#0
signed char mul8s_compare::a#1
signed char mul8s_compare::a#10
signed char mul8s_compare::a#11
signed char mul8s_compare::a#12
signed char mul8s_compare::a#13
signed char mul8s_compare::a#14
signed char mul8s_compare::a#15
signed char mul8s_compare::a#2
signed char mul8s_compare::a#3
signed char mul8s_compare::a#4
signed char mul8s_compare::a#5
signed char mul8s_compare::a#6
signed char mul8s_compare::a#7
signed char mul8s_compare::a#8
signed char mul8s_compare::a#9
signed char mul8s_compare::b
signed char mul8s_compare::b#0
signed char mul8s_compare::b#1
signed char mul8s_compare::b#10
signed char mul8s_compare::b#11
signed char mul8s_compare::b#12
signed char mul8s_compare::b#2
signed char mul8s_compare::b#3
signed char mul8s_compare::b#4
signed char mul8s_compare::b#5
signed char mul8s_compare::b#6
signed char mul8s_compare::b#7
signed char mul8s_compare::b#8
signed char mul8s_compare::b#9
int mul8s_compare::mf
int mul8s_compare::mf#0
int mul8s_compare::mf#1
int mul8s_compare::mf#2
int mul8s_compare::mf#3
int mul8s_compare::mf#4
int mul8s_compare::mf#5
int mul8s_compare::mf#6
int mul8s_compare::mn
int mul8s_compare::mn#0
int mul8s_compare::mn#1
int mul8s_compare::mn#2
int mul8s_compare::mn#3
int mul8s_compare::mn#4
int mul8s_compare::mn#5
int mul8s_compare::ms
int mul8s_compare::ms#0
int mul8s_compare::ms#1
int mul8s_compare::ms#2
int mul8s_compare::ms#3
int mul8s_compare::ms#4
int mul8s_compare::ms#5
int mul8s_compare::ms#6
int mul8s_compare::ms#7
char mul8s_compare::ok
char mul8s_compare::ok#0
char mul8s_compare::ok#1
char mul8s_compare::ok#2
char mul8s_compare::ok#3
char mul8s_compare::ok#4
__constant char mul8s_compare::str[$1f] = "signed multiply results match!"
void mul8s_error(signed char a , signed char b , int ms , int mn , int mf)
signed char mul8s_error::a
signed char mul8s_error::a#0
signed char mul8s_error::a#1
signed char mul8s_error::a#2
signed char mul8s_error::b
signed char mul8s_error::b#0
signed char mul8s_error::b#1
signed char mul8s_error::b#2
signed char mul8s_error::b#3
signed char mul8s_error::b#4
int mul8s_error::mf
int mul8s_error::mf#0
int mul8s_error::mf#1
int mul8s_error::mf#10
int mul8s_error::mf#2
int mul8s_error::mf#3
int mul8s_error::mf#4
int mul8s_error::mf#5
int mul8s_error::mf#6
int mul8s_error::mf#7
int mul8s_error::mf#8
int mul8s_error::mf#9
int mul8s_error::mn
int mul8s_error::mn#0
int mul8s_error::mn#1
int mul8s_error::mn#2
int mul8s_error::mn#3
int mul8s_error::mn#4
int mul8s_error::mn#5
int mul8s_error::mn#6
int mul8s_error::mn#7
int mul8s_error::mn#8
int mul8s_error::ms
int mul8s_error::ms#0
int mul8s_error::ms#1
int mul8s_error::ms#2
int mul8s_error::ms#3
int mul8s_error::ms#4
int mul8s_error::ms#5
int mul8s_error::ms#6
__constant char mul8s_error::str[$1a] = "signed multiply mismatch "
__constant char mul8s_error::str1[2] = "*"
__constant char mul8s_error::str2[7] = " slow:"
__constant char mul8s_error::str3[$b] = " / normal:"
__constant char mul8s_error::str4[9] = " / fast:"
unsigned int mul8u(char a , char b)
bool mul8u::$0
number mul8u::$1
bool mul8u::$2
bool mul8u::$3
unsigned int mul8u::$4
char mul8u::$5
unsigned int mul8u::$6
char mul8u::a
char mul8u::a#0
char mul8u::a#1
char mul8u::a#2
char mul8u::a#3
char mul8u::a#4
char mul8u::a#5
char mul8u::a#6
char mul8u::a#7
char mul8u::b
char mul8u::b#0
char mul8u::b#1
char mul8u::b#2
unsigned int mul8u::mb
unsigned int mul8u::mb#0
unsigned int mul8u::mb#1
unsigned int mul8u::mb#2
unsigned int mul8u::mb#3
unsigned int mul8u::mb#4
unsigned int mul8u::mb#5
unsigned int mul8u::res
unsigned int mul8u::res#0
unsigned int mul8u::res#1
unsigned int mul8u::res#2
unsigned int mul8u::res#3
unsigned int mul8u::res#4
unsigned int mul8u::res#5
unsigned int mul8u::res#6
unsigned int mul8u::return
unsigned int mul8u::return#0
unsigned int mul8u::return#1
unsigned int mul8u::return#2
unsigned int mul8u::return#3
unsigned int mul8u::return#4
unsigned int mul8u::return#5
unsigned int mul8u::return#6
void mul8u_compare()
bool mul8u_compare::$10
bool mul8u_compare::$12
bool mul8u_compare::$13
bool mul8u_compare::$5
bool mul8u_compare::$6
bool mul8u_compare::$7
bool mul8u_compare::$8
bool mul8u_compare::$9
char mul8u_compare::a
char mul8u_compare::a#0
char mul8u_compare::a#1
char mul8u_compare::a#10
char mul8u_compare::a#11
char mul8u_compare::a#12
char mul8u_compare::a#13
char mul8u_compare::a#2
char mul8u_compare::a#3
char mul8u_compare::a#4
char mul8u_compare::a#5
char mul8u_compare::a#6
char mul8u_compare::a#7
char mul8u_compare::a#8
char mul8u_compare::a#9
char mul8u_compare::b
char mul8u_compare::b#0
char mul8u_compare::b#1
char mul8u_compare::b#10
char mul8u_compare::b#11
char mul8u_compare::b#2
char mul8u_compare::b#3
char mul8u_compare::b#4
char mul8u_compare::b#5
char mul8u_compare::b#6
char mul8u_compare::b#7
char mul8u_compare::b#8
char mul8u_compare::b#9
unsigned int mul8u_compare::mf
unsigned int mul8u_compare::mf#0
unsigned int mul8u_compare::mf#1
unsigned int mul8u_compare::mf#2
unsigned int mul8u_compare::mf#3
unsigned int mul8u_compare::mf#4
unsigned int mul8u_compare::mf#5
unsigned int mul8u_compare::mf#6
unsigned int mul8u_compare::mn
unsigned int mul8u_compare::mn#0
unsigned int mul8u_compare::mn#1
unsigned int mul8u_compare::mn#2
unsigned int mul8u_compare::mn#3
unsigned int mul8u_compare::mn#4
unsigned int mul8u_compare::mn#5
unsigned int mul8u_compare::ms
unsigned int mul8u_compare::ms#0
unsigned int mul8u_compare::ms#1
unsigned int mul8u_compare::ms#2
unsigned int mul8u_compare::ms#3
unsigned int mul8u_compare::ms#4
unsigned int mul8u_compare::ms#5
unsigned int mul8u_compare::ms#6
unsigned int mul8u_compare::ms#7
char mul8u_compare::ok
char mul8u_compare::ok#0
char mul8u_compare::ok#1
char mul8u_compare::ok#2
char mul8u_compare::ok#3
char mul8u_compare::ok#4
__constant char mul8u_compare::str[$18] = "multiply results match!"
void mul8u_error(char a , char b , unsigned int ms , unsigned int mn , unsigned int mf)
char mul8u_error::a
char mul8u_error::a#0
char mul8u_error::a#1
char mul8u_error::a#2
char mul8u_error::b
char mul8u_error::b#0
char mul8u_error::b#1
char mul8u_error::b#2
char mul8u_error::b#3
char mul8u_error::b#4
unsigned int mul8u_error::mf
unsigned int mul8u_error::mf#0
unsigned int mul8u_error::mf#1
unsigned int mul8u_error::mf#10
unsigned int mul8u_error::mf#2
unsigned int mul8u_error::mf#3
unsigned int mul8u_error::mf#4
unsigned int mul8u_error::mf#5
unsigned int mul8u_error::mf#6
unsigned int mul8u_error::mf#7
unsigned int mul8u_error::mf#8
unsigned int mul8u_error::mf#9
unsigned int mul8u_error::mn
unsigned int mul8u_error::mn#0
unsigned int mul8u_error::mn#1
unsigned int mul8u_error::mn#2
unsigned int mul8u_error::mn#3
unsigned int mul8u_error::mn#4
unsigned int mul8u_error::mn#5
unsigned int mul8u_error::mn#6
unsigned int mul8u_error::mn#7
unsigned int mul8u_error::mn#8
unsigned int mul8u_error::ms
unsigned int mul8u_error::ms#0
unsigned int mul8u_error::ms#1
unsigned int mul8u_error::ms#2
unsigned int mul8u_error::ms#3
unsigned int mul8u_error::ms#4
unsigned int mul8u_error::ms#5
unsigned int mul8u_error::ms#6
__constant char mul8u_error::str[$13] = "multiply mismatch "
__constant char mul8u_error::str1[2] = "*"
__constant char mul8u_error::str2[7] = " slow:"
__constant char mul8u_error::str3[$b] = " / normal:"
__constant char mul8u_error::str4[9] = " / fast:"
__constant char mula_sqr1_hi[$200] = { fill( $200, 0) }
__constant char mula_sqr1_lo[$200] = { fill( $200, 0) }
__constant char mula_sqr2_hi[$200] = { fill( $200, 0) }
__constant char mula_sqr2_lo[$200] = { fill( $200, 0) }
int mulf8s(signed char a , signed char b)
int mulf8s::$1
signed char mulf8s::a
signed char mulf8s::a#0
signed char mulf8s::a#1
signed char mulf8s::b
signed char mulf8s::b#0
signed char mulf8s::b#1
signed char mulf8s::b#2
signed char mulf8s::b#3
signed char mulf8s::b#4
signed char mulf8s::mulf8s_prepare1_a
signed char mulf8s::mulf8s_prepare1_a#0
signed char mulf8s::mulf8s_prepare1_a#1
int mulf8s::return
int mulf8s::return#0
int mulf8s::return#1
int mulf8s::return#2
int mulf8s::return#3
int mulf8s::return#4
int mulf8s_prepared(signed char b)
bool mulf8s_prepared::$1
char mulf8s_prepared::$10
char mulf8s_prepared::$11
char mulf8s_prepared::$12
char mulf8s_prepared::$13
char mulf8s_prepared::$14
bool mulf8s_prepared::$2
bool mulf8s_prepared::$3
bool mulf8s_prepared::$4
char mulf8s_prepared::$6
char mulf8s_prepared::$7
char mulf8s_prepared::$9
signed char mulf8s_prepared::b
signed char mulf8s_prepared::b#0
signed char mulf8s_prepared::b#1
signed char mulf8s_prepared::b#2
signed char mulf8s_prepared::b#3
signed char mulf8s_prepared::b#4
unsigned int mulf8s_prepared::m
unsigned int mulf8s_prepared::m#0
unsigned int mulf8s_prepared::m#1
unsigned int mulf8s_prepared::m#2
unsigned int mulf8s_prepared::m#3
unsigned int mulf8s_prepared::m#4
unsigned int mulf8s_prepared::m#5
unsigned int mulf8s_prepared::m#6
__constant signed char * const mulf8s_prepared::memA = (signed char *)$fd
int mulf8s_prepared::return
int mulf8s_prepared::return#0
int mulf8s_prepared::return#1
int mulf8s_prepared::return#2
int mulf8s_prepared::return#3
int mulf8s_prepared::return#4
unsigned int mulf8u(char a , char b)
unsigned int mulf8u::$1
char mulf8u::a
char mulf8u::a#0
char mulf8u::a#1
char mulf8u::b
char mulf8u::b#0
char mulf8u::b#1
char mulf8u::b#2
unsigned int mulf8u::return
unsigned int mulf8u::return#0
unsigned int mulf8u::return#1
unsigned int mulf8u::return#2
unsigned int mulf8u::return#3
unsigned int mulf8u::return#4
void mulf8u_prepare(char a)
char mulf8u_prepare::a
char mulf8u_prepare::a#0
char mulf8u_prepare::a#1
char mulf8u_prepare::a#2
__constant char * const mulf8u_prepare::memA = (char *)$fd
unsigned int mulf8u_prepared(char b)
unsigned int mulf8u_prepared::$0
char mulf8u_prepared::b
char mulf8u_prepared::b#0
char mulf8u_prepared::b#1
char mulf8u_prepared::b#2
__constant char * const mulf8u_prepared::memB = (char *)$ff
__constant char * const mulf8u_prepared::resL = (char *)$fe
unsigned int mulf8u_prepared::return
unsigned int mulf8u_prepared::return#0
unsigned int mulf8u_prepared::return#1
unsigned int mulf8u_prepared::return#2
unsigned int mulf8u_prepared::return#3
unsigned int mulf8u_prepared::return#4
unsigned int mulf8u_prepared::return#5
unsigned int mulf8u_prepared::return#6
void mulf_init()
bool mulf_init::$0
number mulf_init::$1
bool mulf_init::$10
bool mulf_init::$2
bool mulf_init::$3
char mulf_init::$4
char mulf_init::$5
unsigned int mulf_init::$6
bool mulf_init::$7
char mulf_init::$8
bool mulf_init::$9
char mulf_init::c
char mulf_init::c#0
char mulf_init::c#1
char mulf_init::c#2
char mulf_init::c#3
char mulf_init::c#4
char mulf_init::c#5
char mulf_init::dir
char mulf_init::dir#0
char mulf_init::dir#1
char mulf_init::dir#2
char mulf_init::dir#3
char mulf_init::dir#4
unsigned int mulf_init::sqr
unsigned int mulf_init::sqr#0
unsigned int mulf_init::sqr#1
unsigned int mulf_init::sqr#2
unsigned int mulf_init::sqr#3
unsigned int mulf_init::sqr#4
unsigned int mulf_init::sqr#5
unsigned int mulf_init::sqr#6
char *mulf_init::sqr1_hi
char *mulf_init::sqr1_hi#0
char *mulf_init::sqr1_hi#1
char *mulf_init::sqr1_hi#2
char *mulf_init::sqr1_hi#3
char *mulf_init::sqr1_hi#4
char *mulf_init::sqr1_hi#5
char *mulf_init::sqr1_lo
char *mulf_init::sqr1_lo#0
char *mulf_init::sqr1_lo#1
char *mulf_init::sqr1_lo#2
char *mulf_init::sqr1_lo#3
char *mulf_init::sqr1_lo#4
char *mulf_init::sqr1_lo#5
char *mulf_init::sqr2_hi
char *mulf_init::sqr2_hi#0
char *mulf_init::sqr2_hi#1
char *mulf_init::sqr2_hi#2
char *mulf_init::sqr2_hi#3
char *mulf_init::sqr2_hi#4
char *mulf_init::sqr2_hi#5
char *mulf_init::sqr2_lo
char *mulf_init::sqr2_lo#0
char *mulf_init::sqr2_lo#1
char *mulf_init::sqr2_lo#2
char *mulf_init::sqr2_lo#3
char *mulf_init::sqr2_lo#4
char *mulf_init::sqr2_lo#5
char mulf_init::x_2
char mulf_init::x_2#0
char mulf_init::x_2#1
char mulf_init::x_2#2
char mulf_init::x_2#3
char mulf_init::x_2#4
char mulf_init::x_2#5
char mulf_init::x_255
char mulf_init::x_255#0
char mulf_init::x_255#1
char mulf_init::x_255#2
char mulf_init::x_255#3
char mulf_init::x_255#4
char mulf_init::x_255#5
void mulf_init_asm()
__constant char *mulf_init_asm::mem = (char *)$ff
__constant char mulf_sqr1_hi[$200] = { fill( $200, 0) }
__constant char mulf_sqr1_lo[$200] = { fill( $200, 0) }
__constant char mulf_sqr2_hi[$200] = { fill( $200, 0) }
__constant char mulf_sqr2_lo[$200] = { fill( $200, 0) }
void mulf_tables_cmp()
bool mulf_tables_cmp::$2
bool mulf_tables_cmp::$3
bool mulf_tables_cmp::$4
char *mulf_tables_cmp::asm_sqr
char *mulf_tables_cmp::asm_sqr#0
char *mulf_tables_cmp::asm_sqr#1
char *mulf_tables_cmp::asm_sqr#2
char *mulf_tables_cmp::asm_sqr#3
char *mulf_tables_cmp::asm_sqr#4
char *mulf_tables_cmp::asm_sqr#5
char *mulf_tables_cmp::asm_sqr#6
char *mulf_tables_cmp::kc_sqr
char *mulf_tables_cmp::kc_sqr#0
char *mulf_tables_cmp::kc_sqr#1
char *mulf_tables_cmp::kc_sqr#2
char *mulf_tables_cmp::kc_sqr#3
char *mulf_tables_cmp::kc_sqr#4
char *mulf_tables_cmp::kc_sqr#5
char *mulf_tables_cmp::kc_sqr#6
char *mulf_tables_cmp::kc_sqr#7
char *mulf_tables_cmp::kc_sqr#8
__constant char mulf_tables_cmp::str[$17] = "multiply tables match!"
__constant char mulf_tables_cmp::str1[$1c] = "multiply table mismatch at "
__constant char mulf_tables_cmp::str2[4] = " / "
int muls8s(signed char a , signed char b)
bool muls8s::$0
bool muls8s::$1
bool muls8s::$2
bool muls8s::$3
int muls8s::$4
bool muls8s::$5
int muls8s::$6
signed char muls8s::a
signed char muls8s::a#0
signed char muls8s::a#1
signed char muls8s::a#2
signed char muls8s::a#3
signed char muls8s::a#4
signed char muls8s::a#5
signed char muls8s::a#6
signed char muls8s::a#7
signed char muls8s::a#8
signed char muls8s::b
signed char muls8s::b#0
signed char muls8s::b#1
signed char muls8s::b#2
signed char muls8s::b#3
signed char muls8s::b#4
signed char muls8s::b#5
signed char muls8s::b#6
signed char muls8s::b#7
signed char muls8s::b#8
signed char muls8s::i
signed char muls8s::i#0
signed char muls8s::i#1
signed char muls8s::i#2
signed char muls8s::i#3
signed char muls8s::j
signed char muls8s::j#0
signed char muls8s::j#1
signed char muls8s::j#2
signed char muls8s::j#3
int muls8s::m
int muls8s::m#0
int muls8s::m#1
int muls8s::m#10
int muls8s::m#2
int muls8s::m#3
int muls8s::m#4
int muls8s::m#5
int muls8s::m#6
int muls8s::m#7
int muls8s::m#8
int muls8s::m#9
int muls8s::return
int muls8s::return#0
int muls8s::return#1
int muls8s::return#2
int muls8s::return#3
int muls8s::return#4
unsigned int muls8u(char a , char b)
bool muls8u::$0
bool muls8u::$1
bool muls8u::$2
unsigned int muls8u::$3
char muls8u::a
char muls8u::a#0
char muls8u::a#1
char muls8u::a#2
char muls8u::a#3
char muls8u::a#4
char muls8u::b
char muls8u::b#0
char muls8u::b#1
char muls8u::b#2
char muls8u::b#3
char muls8u::b#4
char muls8u::i
char muls8u::i#0
char muls8u::i#1
char muls8u::i#2
char muls8u::i#3
unsigned int muls8u::m
unsigned int muls8u::m#0
unsigned int muls8u::m#1
unsigned int muls8u::m#2
unsigned int muls8u::m#3
unsigned int muls8u::m#4
unsigned int muls8u::m#5
unsigned int muls8u::return
unsigned int muls8u::return#0
unsigned int muls8u::return#1
unsigned int muls8u::return#2
unsigned int muls8u::return#3
unsigned int muls8u::return#4
void print_char(char ch)
char print_char::ch
char print_char::ch#0
char print_char::ch#1
char print_char::ch#2
char print_char::ch#3
char print_char::ch#4
char print_char::ch#5
char print_char::ch#6
char print_char::ch#7
char *print_char_cursor
char *print_char_cursor#0
char *print_char_cursor#1
char *print_char_cursor#10
char *print_char_cursor#100
char *print_char_cursor#101
char *print_char_cursor#102
char *print_char_cursor#103
char *print_char_cursor#104
char *print_char_cursor#105
char *print_char_cursor#106
char *print_char_cursor#107
char *print_char_cursor#108
char *print_char_cursor#109
char *print_char_cursor#11
char *print_char_cursor#110
char *print_char_cursor#111
char *print_char_cursor#112
char *print_char_cursor#113
char *print_char_cursor#114
char *print_char_cursor#115
char *print_char_cursor#116
char *print_char_cursor#117
char *print_char_cursor#118
char *print_char_cursor#119
char *print_char_cursor#12
char *print_char_cursor#120
char *print_char_cursor#121
char *print_char_cursor#122
char *print_char_cursor#123
char *print_char_cursor#124
char *print_char_cursor#125
char *print_char_cursor#126
char *print_char_cursor#127
char *print_char_cursor#128
char *print_char_cursor#129
char *print_char_cursor#13
char *print_char_cursor#130
char *print_char_cursor#131
char *print_char_cursor#132
char *print_char_cursor#133
char *print_char_cursor#134
char *print_char_cursor#135
char *print_char_cursor#136
char *print_char_cursor#137
char *print_char_cursor#138
char *print_char_cursor#139
char *print_char_cursor#14
char *print_char_cursor#140
char *print_char_cursor#141
char *print_char_cursor#142
char *print_char_cursor#143
char *print_char_cursor#144
char *print_char_cursor#145
char *print_char_cursor#146
char *print_char_cursor#147
char *print_char_cursor#148
char *print_char_cursor#149
char *print_char_cursor#15
char *print_char_cursor#150
char *print_char_cursor#151
char *print_char_cursor#152
char *print_char_cursor#153
char *print_char_cursor#154
char *print_char_cursor#155
char *print_char_cursor#156
char *print_char_cursor#157
char *print_char_cursor#158
char *print_char_cursor#159
char *print_char_cursor#16
char *print_char_cursor#160
char *print_char_cursor#161
char *print_char_cursor#162
char *print_char_cursor#163
char *print_char_cursor#164
char *print_char_cursor#165
char *print_char_cursor#166
char *print_char_cursor#167
char *print_char_cursor#168
char *print_char_cursor#169
char *print_char_cursor#17
char *print_char_cursor#170
char *print_char_cursor#171
char *print_char_cursor#172
char *print_char_cursor#173
char *print_char_cursor#174
char *print_char_cursor#175
char *print_char_cursor#176
char *print_char_cursor#177
char *print_char_cursor#178
char *print_char_cursor#179
char *print_char_cursor#18
char *print_char_cursor#180
char *print_char_cursor#181
char *print_char_cursor#182
char *print_char_cursor#183
char *print_char_cursor#184
char *print_char_cursor#185
char *print_char_cursor#186
char *print_char_cursor#187
char *print_char_cursor#188
char *print_char_cursor#189
char *print_char_cursor#19
char *print_char_cursor#190
char *print_char_cursor#191
char *print_char_cursor#2
char *print_char_cursor#20
char *print_char_cursor#21
char *print_char_cursor#22
char *print_char_cursor#23
char *print_char_cursor#24
char *print_char_cursor#25
char *print_char_cursor#26
char *print_char_cursor#27
char *print_char_cursor#28
char *print_char_cursor#29
char *print_char_cursor#3
char *print_char_cursor#30
char *print_char_cursor#31
char *print_char_cursor#32
char *print_char_cursor#33
char *print_char_cursor#34
char *print_char_cursor#35
char *print_char_cursor#36
char *print_char_cursor#37
char *print_char_cursor#38
char *print_char_cursor#39
char *print_char_cursor#4
char *print_char_cursor#40
char *print_char_cursor#41
char *print_char_cursor#42
char *print_char_cursor#43
char *print_char_cursor#44
char *print_char_cursor#45
char *print_char_cursor#46
char *print_char_cursor#47
char *print_char_cursor#48
char *print_char_cursor#49
char *print_char_cursor#5
char *print_char_cursor#50
char *print_char_cursor#51
char *print_char_cursor#52
char *print_char_cursor#53
char *print_char_cursor#54
char *print_char_cursor#55
char *print_char_cursor#56
char *print_char_cursor#57
char *print_char_cursor#58
char *print_char_cursor#59
char *print_char_cursor#6
char *print_char_cursor#60
char *print_char_cursor#61
char *print_char_cursor#62
char *print_char_cursor#63
char *print_char_cursor#64
char *print_char_cursor#65
char *print_char_cursor#66
char *print_char_cursor#67
char *print_char_cursor#68
char *print_char_cursor#69
char *print_char_cursor#7
char *print_char_cursor#70
char *print_char_cursor#71
char *print_char_cursor#72
char *print_char_cursor#73
char *print_char_cursor#74
char *print_char_cursor#75
char *print_char_cursor#76
char *print_char_cursor#77
char *print_char_cursor#78
char *print_char_cursor#79
char *print_char_cursor#8
char *print_char_cursor#80
char *print_char_cursor#81
char *print_char_cursor#82
char *print_char_cursor#83
char *print_char_cursor#84
char *print_char_cursor#85
char *print_char_cursor#86
char *print_char_cursor#87
char *print_char_cursor#88
char *print_char_cursor#89
char *print_char_cursor#9
char *print_char_cursor#90
char *print_char_cursor#91
char *print_char_cursor#92
char *print_char_cursor#93
char *print_char_cursor#94
char *print_char_cursor#95
char *print_char_cursor#96
char *print_char_cursor#97
char *print_char_cursor#98
char *print_char_cursor#99
void print_cls()
__constant const char print_hextab[] = "0123456789abcdef"z
char *print_line_cursor
char *print_line_cursor#0
char *print_line_cursor#1
char *print_line_cursor#10
char *print_line_cursor#100
char *print_line_cursor#101
char *print_line_cursor#102
char *print_line_cursor#103
char *print_line_cursor#104
char *print_line_cursor#105
char *print_line_cursor#106
char *print_line_cursor#107
char *print_line_cursor#108
char *print_line_cursor#109
char *print_line_cursor#11
char *print_line_cursor#110
char *print_line_cursor#111
char *print_line_cursor#112
char *print_line_cursor#113
char *print_line_cursor#114
char *print_line_cursor#115
char *print_line_cursor#116
char *print_line_cursor#12
char *print_line_cursor#13
char *print_line_cursor#14
char *print_line_cursor#15
char *print_line_cursor#16
char *print_line_cursor#17
char *print_line_cursor#18
char *print_line_cursor#19
char *print_line_cursor#2
char *print_line_cursor#20
char *print_line_cursor#21
char *print_line_cursor#22
char *print_line_cursor#23
char *print_line_cursor#24
char *print_line_cursor#25
char *print_line_cursor#26
char *print_line_cursor#27
char *print_line_cursor#28
char *print_line_cursor#29
char *print_line_cursor#3
char *print_line_cursor#30
char *print_line_cursor#31
char *print_line_cursor#32
char *print_line_cursor#33
char *print_line_cursor#34
char *print_line_cursor#35
char *print_line_cursor#36
char *print_line_cursor#37
char *print_line_cursor#38
char *print_line_cursor#39
char *print_line_cursor#4
char *print_line_cursor#40
char *print_line_cursor#41
char *print_line_cursor#42
char *print_line_cursor#43
char *print_line_cursor#44
char *print_line_cursor#45
char *print_line_cursor#46
char *print_line_cursor#47
char *print_line_cursor#48
char *print_line_cursor#49
char *print_line_cursor#5
char *print_line_cursor#50
char *print_line_cursor#51
char *print_line_cursor#52
char *print_line_cursor#53
char *print_line_cursor#54
char *print_line_cursor#55
char *print_line_cursor#56
char *print_line_cursor#57
char *print_line_cursor#58
char *print_line_cursor#59
char *print_line_cursor#6
char *print_line_cursor#60
char *print_line_cursor#61
char *print_line_cursor#62
char *print_line_cursor#63
char *print_line_cursor#64
char *print_line_cursor#65
char *print_line_cursor#66
char *print_line_cursor#67
char *print_line_cursor#68
char *print_line_cursor#69
char *print_line_cursor#7
char *print_line_cursor#70
char *print_line_cursor#71
char *print_line_cursor#72
char *print_line_cursor#73
char *print_line_cursor#74
char *print_line_cursor#75
char *print_line_cursor#76
char *print_line_cursor#77
char *print_line_cursor#78
char *print_line_cursor#79
char *print_line_cursor#8
char *print_line_cursor#80
char *print_line_cursor#81
char *print_line_cursor#82
char *print_line_cursor#83
char *print_line_cursor#84
char *print_line_cursor#85
char *print_line_cursor#86
char *print_line_cursor#87
char *print_line_cursor#88
char *print_line_cursor#89
char *print_line_cursor#9
char *print_line_cursor#90
char *print_line_cursor#91
char *print_line_cursor#92
char *print_line_cursor#93
char *print_line_cursor#94
char *print_line_cursor#95
char *print_line_cursor#96
char *print_line_cursor#97
char *print_line_cursor#98
char *print_line_cursor#99
void print_ln()
char *print_ln::$0
bool print_ln::$1
void print_schar(signed char b)
bool print_schar::$0
signed char print_schar::$4
signed char print_schar::b
signed char print_schar::b#0
signed char print_schar::b#1
signed char print_schar::b#2
signed char print_schar::b#3
signed char print_schar::b#4
signed char print_schar::b#5
signed char print_schar::b#6
signed char print_schar::b#7
signed char print_schar::b#8
char *print_screen
char *print_screen#0
char *print_screen#1
char *print_screen#2
char *print_screen#3
char *print_screen#4
char *print_screen#5
char *print_screen#6
char *print_screen#7
void print_sint(int w)
bool print_sint::$0
int print_sint::$4
int print_sint::w
int print_sint::w#0
int print_sint::w#1
int print_sint::w#2
int print_sint::w#3
int print_sint::w#4
int print_sint::w#5
int print_sint::w#6
int print_sint::w#7
int print_sint::w#8
int print_sint::w#9
void print_str(char *str)
bool print_str::$1
char *print_str::str
char *print_str::str#0
char *print_str::str#1
char *print_str::str#10
char *print_str::str#11
char *print_str::str#12
char *print_str::str#13
char *print_str::str#14
char *print_str::str#15
char *print_str::str#16
char *print_str::str#17
char *print_str::str#18
char *print_str::str#19
char *print_str::str#2
char *print_str::str#3
char *print_str::str#4
char *print_str::str#5
char *print_str::str#6
char *print_str::str#7
char *print_str::str#8
char *print_str::str#9
void print_uchar(char b)
char print_uchar::$0
number print_uchar::$2
char print_uchar::b
char print_uchar::b#0
char print_uchar::b#1
char print_uchar::b#2
char print_uchar::b#3
char print_uchar::b#4
char print_uchar::b#5
char print_uchar::b#6
void print_uint(unsigned int w)
char print_uint::$0
char print_uint::$2
unsigned int print_uint::w
unsigned int print_uint::w#0
unsigned int print_uint::w#1
unsigned int print_uint::w#2
unsigned int print_uint::w#3
unsigned int print_uint::w#4
unsigned int print_uint::w#5
unsigned int print_uint::w#6
unsigned int print_uint::w#7

Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#16
Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#24 + $28
Adding number conversion cast (snumber) 0 in print_sint::$0 = print_sint::w#4 < 0
Adding number conversion cast (snumber) 0 in print_schar::$0 = print_schar::b#3 < 0
Adding number conversion cast (unumber) 4 in print_uchar::$0 = print_uchar::b#5 >> 4
Adding number conversion cast (unumber) $f in print_uchar::$2 = print_uchar::b#6 & $f
Adding number conversion cast (unumber) print_uchar::$2 in print_uchar::$2 = print_uchar::b#6 & (unumber)$f
Adding number conversion cast (unumber) $3e8 in memset::num#0 = $3e8
Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#1 > 0
Adding number conversion cast (unumber) 0 in mul8u::$0 = mul8u::a#3 != 0
Adding number conversion cast (unumber) 1 in mul8u::$1 = mul8u::a#4 & 1
Adding number conversion cast (unumber) mul8u::$1 in mul8u::$1 = mul8u::a#4 & (unumber)1
Adding number conversion cast (unumber) 0 in mul8u::$2 = mul8u::$1 != 0
Adding number conversion cast (unumber) 1 in mul8u::$5 = mul8u::a#5 >> 1
Adding number conversion cast (unumber) 1 in mul8u::$6 = mul8u::mb#2 << 1
Adding number conversion cast (snumber) 0 in mul8s::$1 = mul8s::a#2 < 0
Adding number conversion cast (snumber) 0 in mul8s::$3 = mul8s::b#2 < 0
Adding number conversion cast (unumber) 1 in mulf_init::sqr1_hi#0 = mulf_sqr1_hi+1
Adding number conversion cast (unumber) 1 in mulf_init::sqr1_lo#0 = mulf_sqr1_lo+1
Adding number conversion cast (unumber) $200 in mulf_init::$0 = mulf_init::sqr1_lo#2 != mulf_sqr1_lo+$200
Adding number conversion cast (unumber) 1 in mulf_init::$1 = mulf_init::c#1 & 1
Adding number conversion cast (unumber) mulf_init::$1 in mulf_init::$1 = mulf_init::c#1 & (unumber)1
Adding number conversion cast (unumber) 0 in mulf_init::$2 = mulf_init::$1 == 0
Adding number conversion cast (unumber) $1ff in mulf_init::$7 = mulf_init::sqr2_lo#2 != mulf_sqr2_lo+$1ff
Adding number conversion cast (unumber) 0 in mulf_init::$9 = mulf_init::x_255#1 == 0
Adding number conversion cast (unumber) $100 in *(mulf_sqr2_lo+$1ff) = *(mulf_sqr1_lo+$100)
Adding number conversion cast (unumber) $1ff in *(mulf_sqr2_lo+$1ff) = *(mulf_sqr1_lo+(unumber)$100)
Adding number conversion cast (unumber) $100 in *(mulf_sqr2_hi+$1ff) = *(mulf_sqr1_hi+$100)
Adding number conversion cast (unumber) $1ff in *(mulf_sqr2_hi+$1ff) = *(mulf_sqr1_hi+(unumber)$100)
Adding number conversion cast (unumber) 1 in mulf_init::dir#1 = 1
Adding number conversion cast (snumber) 0 in mulf8s_prepared::$1 = *mulf8s_prepared::memA < 0
Adding number conversion cast (snumber) 0 in mulf8s_prepared::$3 = mulf8s_prepared::b#2 < 0
Adding number conversion cast (unumber) 5 in *BG_COLOR = 5
Adding number conversion cast (unumber) 0 in muls8u::$0 = muls8u::a#1 != 0
Adding number conversion cast (snumber) 0 in muls8s::$0 = muls8s::a#1 < 0
Adding number conversion cast (snumber) 0 in muls8s::$1 = muls8s::a#2 > 0
Adding number conversion cast (unumber) $200*4 in mulf_tables_cmp::$2 = mulf_tables_cmp::kc_sqr#2 < mulf_sqr1_lo+$200*4
Adding number conversion cast (unumber) 2 in *BG_COLOR = 2
Adding number conversion cast (unumber) 0 in mul8u_compare::ok#1 = 0
Adding number conversion cast (unumber) 0 in mul8u_compare::$9 = mul8u_compare::ok#3 == 0
Adding number conversion cast (unumber) 0 in mul8u_compare::ok#2 = 0
Adding number conversion cast (unumber) 2 in *BG_COLOR = 2
Adding number conversion cast (snumber) -$80 in mul8s_compare::$2 = mul8s_compare::a#2 != -$80
Adding number conversion cast (snumber) -$80 in mul8s_compare::$3 = mul8s_compare::b#2 != -$80
Adding number conversion cast (unumber) 0 in mul8s_compare::ok#1 = 0
Adding number conversion cast (unumber) 0 in mul8s_compare::$11 = mul8s_compare::ok#3 == 0
Adding number conversion cast (unumber) 0 in mul8s_compare::ok#2 = 0
Adding number conversion cast (unumber) 2 in *BG_COLOR = 2
Successful SSA optimization PassNAddNumberTypeConversions
Inlining cast memset::num#0 = (unumber)$3e8
Inlining cast memset::dst#0 = (char *)memset::str#2
Inlining cast mulf_init::dir#1 = (unumber)1
Inlining cast *BG_COLOR = (unumber)5
Inlining cast *BG_COLOR = (unumber)2
Inlining cast mul8u_compare::ok#1 = (unumber)0
Inlining cast mul8u_compare::ok#2 = (unumber)0
Inlining cast *BG_COLOR = (unumber)2
Inlining cast mul8s_compare::ok#1 = (unumber)0
Inlining cast mul8s_compare::ok#2 = (unumber)0
Inlining cast *BG_COLOR = (unumber)2
Successful SSA optimization Pass2InlineCast
Simplifying constant pointer cast (char *) 253
Simplifying constant pointer cast (char *) 254
Simplifying constant pointer cast (char *) 255
Simplifying constant pointer cast (signed char *) 253
Simplifying constant pointer cast (char *) 255
Simplifying constant pointer cast (char *) 53281
Simplifying constant integer cast 0
Simplifying constant integer cast $28
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 4
Simplifying constant integer cast $f
Simplifying constant integer cast $3e8
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 1
Simplifying constant integer cast 0
Simplifying constant integer cast 1
Simplifying constant integer cast 1
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 1
Simplifying constant integer cast 1
Simplifying constant integer cast $200
Simplifying constant integer cast 1
Simplifying constant integer cast 0
Simplifying constant integer cast -1
Simplifying constant integer cast $1ff
Simplifying constant integer cast 0
Simplifying constant integer cast $100
Simplifying constant integer cast $1ff
Simplifying constant integer cast $100
Simplifying constant integer cast $1ff
Simplifying constant integer cast 1
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 5
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 2
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 2
Simplifying constant integer cast -$80
Simplifying constant integer cast -$80
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 2
Simplifying constant pointer cast (char *) 1024
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) $28
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 4
Finalized unsigned number type (char) $f
Finalized unsigned number type (unsigned int) $3e8
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 0
Finalized unsigned number type (unsigned int) $1ff
Finalized unsigned number type (char) 0
Finalized unsigned number type (unsigned int) $100
Finalized unsigned number type (unsigned int) $1ff
Finalized unsigned number type (unsigned int) $100
Finalized unsigned number type (unsigned int) $1ff
Finalized unsigned number type (char) 1
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 5
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 2
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 2
Finalized signed number type (signed char) -$80
Finalized signed number type (signed char) -$80
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 2
Successful SSA optimization PassNFinalizeNumberTypeConversions
Inferred type updated to char in print_uchar::$2 = print_uchar::b#6 & $f
Inferred type updated to char in mul8u::$1 = mul8u::a#4 & 1
Inferred type updated to char in mulf_init::$1 = mulf_init::c#1 & 1
Inversing boolean not [120] memset::$1 = memset::num#1 <= 0 from [119] memset::$0 = memset::num#1 > 0
Inversing boolean not [146] mul8u::$3 = mul8u::$1 == 0 from [145] mul8u::$2 = mul8u::$1 != 0
Inversing boolean not [169] mul8s::$2 = mul8s::a#2 >= 0 from [168] mul8s::$1 = mul8s::a#2 < 0
Inversing boolean not [173] mul8s::$4 = mul8s::b#2 >= 0 from [172] mul8s::$3 = mul8s::b#2 < 0
Inversing boolean not [204] mulf_init::$3 = mulf_init::$1 != 0 from [203] mulf_init::$2 = mulf_init::$1 == 0
Inversing boolean not [232] mulf_init::$10 = mulf_init::x_255#1 != 0 from [231] mulf_init::$9 = mulf_init::x_255#1 == 0
Inversing boolean not [273] mulf8s_prepared::$2 = *mulf8s_prepared::memA >= 0 from [272] mulf8s_prepared::$1 = *mulf8s_prepared::memA < 0
Inversing boolean not [277] mulf8s_prepared::$4 = mulf8s_prepared::b#2 >= 0 from [276] mulf8s_prepared::$3 = mulf8s_prepared::b#2 < 0
Inversing boolean not [341] muls8u::$1 = muls8u::a#1 == 0 from [340] muls8u::$0 = muls8u::a#1 != 0
Inversing boolean not [365] muls8s::$2 = muls8s::a#2 <= 0 from [364] muls8s::$1 = muls8s::a#2 > 0
Inversing boolean not [402] mulf_tables_cmp::$4 = *mulf_tables_cmp::kc_sqr#3 == *mulf_tables_cmp::asm_sqr#2 from [401] mulf_tables_cmp::$3 = *mulf_tables_cmp::kc_sqr#3 != *mulf_tables_cmp::asm_sqr#2
Inversing boolean not [463] mul8u_compare::$6 = mul8u_compare::ms#1 == mul8u_compare::mf#1 from [462] mul8u_compare::$5 = mul8u_compare::ms#1 != mul8u_compare::mf#1
Inversing boolean not [467] mul8u_compare::$8 = mul8u_compare::ms#2 == mul8u_compare::mn#1 from [466] mul8u_compare::$7 = mul8u_compare::ms#2 != mul8u_compare::mn#1
Inversing boolean not [473] mul8u_compare::$10 = mul8u_compare::ok#3 != 0 from [472] mul8u_compare::$9 = mul8u_compare::ok#3 == 0
Inversing boolean not [598] mul8s_compare::$8 = mul8s_compare::ms#1 == mul8s_compare::mf#1 from [597] mul8s_compare::$7 = mul8s_compare::ms#1 != mul8s_compare::mf#1
Inversing boolean not [604] mul8s_compare::$10 = mul8s_compare::ms#2 == mul8s_compare::mn#1 from [603] mul8s_compare::$9 = mul8s_compare::ms#2 != mul8s_compare::mn#1
Inversing boolean not [610] mul8s_compare::$12 = mul8s_compare::ok#3 != 0 from [609] mul8s_compare::$11 = mul8s_compare::ok#3 == 0
Successful SSA optimization Pass2UnaryNotSimplification
Alias print_str::str#16 = print_str::str#17 print_str::str#18 
Alias print_char_cursor#1 = print_char_cursor#136 print_char_cursor#137 print_char_cursor#70 
Alias print_char_cursor#0 = print_char_cursor#69 
Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#25 print_char_cursor#2 print_line_cursor#26 print_char_cursor#72 print_line_cursor#1 print_char_cursor#3 
Alias print_char_cursor#139 = print_char_cursor#159 print_char_cursor#140 
Alias print_sint::w#4 = print_sint::w#7 print_sint::w#5 print_sint::w#9 print_sint::w#8 
Alias print_char_cursor#4 = print_char_cursor#73 
Alias print_sint::w#0 = print_sint::$4 
Alias print_char_cursor#5 = print_char_cursor#74 
Alias print_char_cursor#6 = print_char_cursor#75 print_char_cursor#76 print_char_cursor#7 
Alias print_char_cursor#142 = print_char_cursor#160 print_char_cursor#143 
Alias print_schar::b#3 = print_schar::b#6 print_schar::b#4 print_schar::b#8 print_schar::b#7 
Alias print_char_cursor#77 = print_char_cursor#8 
Alias print_schar::b#0 = print_schar::$4 
Alias print_char_cursor#78 = print_char_cursor#9 
Alias print_char_cursor#10 = print_char_cursor#79 print_char_cursor#80 print_char_cursor#11 
Alias print_uchar::b#1 = print_uint::$0 
Alias print_uint::w#6 = print_uint::w#7 
Alias print_char_cursor#12 = print_char_cursor#81 
Alias print_uchar::b#2 = print_uint::$2 
Alias print_char_cursor#13 = print_char_cursor#82 print_char_cursor#83 print_char_cursor#14 
Alias print_uchar::b#5 = print_uchar::b#6 
Alias print_char_cursor#15 = print_char_cursor#84 
Alias print_char_cursor#16 = print_char_cursor#85 print_char_cursor#86 print_char_cursor#17 
Alias print_char_cursor#18 = print_char_cursor#88 print_char_cursor#19 
Alias print_line_cursor#2 = print_screen#3 print_screen#2 print_char_cursor#20 print_line_cursor#27 print_char_cursor#89 print_line_cursor#3 print_char_cursor#21 
Alias memset::return#1 = memset::str#1 memset::return#3 memset::return#2 
Alias memset::str#2 = memset::str#3 
Alias memset::num#1 = memset::num#2 
Alias memset::c#3 = memset::c#4 
Alias memset::c#1 = memset::c#2 
Alias memset::dst#2 = memset::dst#3 
Alias memset::end#1 = memset::end#2 
Alias memset::str#4 = memset::str#5 
Alias mul8u::a#3 = mul8u::a#4 mul8u::a#7 
Alias mul8u::mb#3 = mul8u::mb#4 mul8u::mb#5 
Alias mul8u::res#2 = mul8u::res#5 mul8u::res#4 mul8u::return#0 mul8u::res#3 mul8u::return#4 mul8u::return#1 
Alias mul8u::a#0 = mul8u::$5 
Alias mul8u::mb#1 = mul8u::$6 
Alias mul8u::res#1 = mul8u::$4 
Alias mul8u::return#2 = mul8u::return#5 
Alias mul8s::a#1 = mul8s::a#2 mul8s::a#5 
Alias mul8s::b#1 = mul8s::b#4 mul8s::b#3 
Alias mul8s::m#0 = mul8s::m#3 
Alias mul8s::$11 = mul8s::$7 
Alias mul8s::m#5 = mul8s::m#6 
Alias mul8s::a#3 = mul8s::a#4 
Alias mul8s::$12 = mul8s::$10 
Alias mul8s::return#0 = mul8s::return#3 mul8s::return#1 
Alias mulf_init::c#2 = mulf_init::c#3 
Alias mulf_init::sqr#4 = mulf_init::sqr#5 mulf_init::sqr#6 
Alias mulf_init::sqr1_lo#2 = mulf_init::sqr1_lo#4 mulf_init::sqr1_lo#5 
Alias mulf_init::sqr1_hi#3 = mulf_init::sqr1_hi#5 mulf_init::sqr1_hi#4 
Alias mulf_init::x_2#3 = mulf_init::x_2#4 mulf_init::x_2#5 
Alias mulf_init::sqr#1 = mulf_init::$6 
Alias mulf_init::c#1 = mulf_init::c#5 
Alias mulf_init::x_255#2 = mulf_init::x_255#3 
Alias mulf_init::sqr2_lo#2 = mulf_init::sqr2_lo#3 mulf_init::sqr2_lo#5 
Alias mulf_init::sqr2_hi#2 = mulf_init::sqr2_hi#3 
Alias mulf_init::dir#2 = mulf_init::dir#3 
Alias mulf_init::x_255#1 = mulf_init::$8 mulf_init::x_255#5 
Alias mulf_init::sqr2_hi#1 = mulf_init::sqr2_hi#5 
Alias mulf8u_prepared::return#0 = mulf8u_prepared::$0 mulf8u_prepared::return#4 mulf8u_prepared::return#1 
Alias mulf8u::b#1 = mulf8u::b#2 
Alias mulf8u_prepared::return#2 = mulf8u_prepared::return#5 
Alias mulf8u::return#0 = mulf8u::$1 mulf8u::return#3 mulf8u::return#1 
Alias mulf8u_prepared::return#3 = mulf8u_prepared::return#6 
Alias mulf8s_prepared::b#1 = mulf8s_prepared::b#4 mulf8s_prepared::b#3 
Alias mulf8s_prepared::m#0 = mulf8s_prepared::m#3 
Alias mulf8s_prepared::$11 = mulf8s_prepared::$7 
Alias mulf8s_prepared::m#5 = mulf8s_prepared::m#6 
Alias mulf8s_prepared::$12 = mulf8s_prepared::$10 
Alias mulf8s_prepared::return#0 = mulf8s_prepared::return#3 mulf8s_prepared::return#1 
Alias mulf8s::mulf8s_prepare1_a#0 = mulf8s::a#1 mulf8s::mulf8s_prepare1_a#1 
Alias mulf8s::b#1 = mulf8s::b#3 mulf8s::b#4 mulf8s::b#2 
Alias mulf8s_prepared::return#2 = mulf8s_prepared::return#4 
Alias mulf8s::return#0 = mulf8s::$1 mulf8s::return#3 mulf8s::return#1 
Alias print_line_cursor#28 = print_line_cursor#4 print_line_cursor#59 print_line_cursor#49 
Alias print_char_cursor#148 = print_char_cursor#22 print_char_cursor#90 print_char_cursor#161 
Alias print_char_cursor#23 = print_char_cursor#91 
Alias print_line_cursor#29 = print_line_cursor#5 
Alias print_char_cursor#24 = print_char_cursor#92 
Alias print_line_cursor#30 = print_line_cursor#6 
Alias print_char_cursor#25 = print_char_cursor#93 print_char_cursor#94 print_char_cursor#26 
Alias print_line_cursor#31 = print_line_cursor#7 print_line_cursor#32 print_line_cursor#8 
Alias muls8u::return#0 = muls8u::m#2 muls8u::return#3 muls8u::return#1 
Alias muls8u::a#1 = muls8u::a#3 
Alias muls8u::m#0 = muls8u::m#5 
Alias muls8u::b#3 = muls8u::b#4 
Alias muls8u::m#3 = muls8u::m#4 
Alias muls8u::b#1 = muls8u::b#2 
Alias muls8u::i#2 = muls8u::i#3 
Alias muls8u::a#2 = muls8u::a#4 
Alias muls8u::m#1 = muls8u::$3 
Alias muls8s::a#1 = muls8s::a#7 muls8s::a#2 muls8s::a#5 
Alias muls8s::m#0 = muls8s::m#10 muls8s::m#7 muls8s::m#9 
Alias muls8s::b#5 = muls8s::b#6 muls8s::b#7 muls8s::b#8 
Alias muls8s::m#3 = muls8s::m#6 
Alias muls8s::b#1 = muls8s::b#3 
Alias muls8s::j#2 = muls8s::j#3 
Alias muls8s::a#3 = muls8s::a#6 
Alias muls8s::m#1 = muls8s::$4 
Alias muls8s::return#0 = muls8s::m#4 muls8s::return#3 muls8s::return#1 
Alias muls8s::m#5 = muls8s::m#8 
Alias muls8s::b#2 = muls8s::b#4 
Alias muls8s::i#2 = muls8s::i#3 
Alias muls8s::a#4 = muls8s::a#8 
Alias muls8s::m#2 = muls8s::$6 
Alias mulf_tables_cmp::kc_sqr#2 = mulf_tables_cmp::kc_sqr#3 mulf_tables_cmp::kc_sqr#4 mulf_tables_cmp::kc_sqr#8 mulf_tables_cmp::kc_sqr#7 mulf_tables_cmp::kc_sqr#6 mulf_tables_cmp::kc_sqr#5 
Alias mulf_tables_cmp::asm_sqr#2 = mulf_tables_cmp::asm_sqr#5 mulf_tables_cmp::asm_sqr#3 mulf_tables_cmp::asm_sqr#6 mulf_tables_cmp::asm_sqr#4 
Alias print_char_cursor#149 = print_char_cursor#163 print_char_cursor#162 print_char_cursor#169 print_char_cursor#150 
Alias print_line_cursor#50 = print_line_cursor#90 print_line_cursor#68 print_line_cursor#60 print_line_cursor#79 print_line_cursor#91 print_line_cursor#80 print_line_cursor#69 print_line_cursor#61 print_line_cursor#51 
Alias print_char_cursor#27 = print_char_cursor#95 
Alias print_line_cursor#33 = print_line_cursor#9 
Alias print_char_cursor#28 = print_char_cursor#96 
Alias print_char_cursor#29 = print_char_cursor#97 
Alias print_char_cursor#30 = print_char_cursor#98 
Alias print_char_cursor#31 = print_char_cursor#99 
Alias print_char_cursor#100 = print_char_cursor#32 
Alias print_char_cursor#101 = print_char_cursor#33 
Alias print_line_cursor#10 = print_line_cursor#34 
Alias muls8u::return#2 = muls8u::return#4 
Alias mul8u_compare::a#12 = mul8u_compare::a#3 mul8u_compare::a#2 mul8u_compare::a#4 mul8u_compare::a#13 
Alias mul8u_compare::b#10 = mul8u_compare::b#3 mul8u_compare::b#2 mul8u_compare::b#4 mul8u_compare::b#11 
Alias print_char_cursor#177 = print_char_cursor#186 print_char_cursor#188 print_char_cursor#182 print_char_cursor#178 
Alias print_line_cursor#103 = print_line_cursor#97 print_line_cursor#92 print_line_cursor#81 print_line_cursor#82 
Alias mulf8u::return#2 = mulf8u::return#4 
Alias mul8u_compare::ms#0 = mul8u_compare::ms#4 mul8u_compare::ms#1 mul8u_compare::ms#5 
Alias mul8u::return#3 = mul8u::return#6 
Alias mul8u_compare::mf#0 = mul8u_compare::mf#1 mul8u_compare::mf#6 
Alias mul8u_compare::mn#0 = mul8u_compare::mn#3 
Alias mul8u_compare::b#8 = mul8u_compare::b#9 
Alias mul8u_compare::a#10 = mul8u_compare::a#11 
Alias mul8u_compare::ms#2 = mul8u_compare::ms#7 
Alias mul8u_compare::mn#1 = mul8u_compare::mn#5 
Alias mul8u_compare::mf#4 = mul8u_compare::mf#5 
Alias print_char_cursor#170 = print_char_cursor#171 
Alias print_line_cursor#70 = print_line_cursor#71 
Alias mul8u_compare::b#5 = mul8u_compare::b#7 mul8u_compare::b#6 
Alias mul8u_compare::a#5 = mul8u_compare::a#8 mul8u_compare::a#9 mul8u_compare::a#6 
Alias print_char_cursor#151 = print_char_cursor#172 print_char_cursor#164 print_char_cursor#165 print_char_cursor#152 
Alias print_line_cursor#52 = print_line_cursor#83 print_line_cursor#62 print_line_cursor#72 print_line_cursor#63 print_line_cursor#53 
Alias mul8u_compare::ms#3 = mul8u_compare::ms#6 
Alias mul8u_compare::mn#2 = mul8u_compare::mn#4 
Alias mul8u_compare::mf#2 = mul8u_compare::mf#3 
Alias print_char_cursor#102 = print_char_cursor#34 
Alias print_line_cursor#11 = print_line_cursor#35 
Alias print_char_cursor#103 = print_char_cursor#35 
Alias print_line_cursor#12 = print_line_cursor#36 
Alias print_char_cursor#104 = print_char_cursor#36 
Alias print_line_cursor#13 = print_line_cursor#37 
Alias print_char_cursor#105 = print_char_cursor#37 
Alias mul8u_error::a#1 = mul8u_error::a#2 
Alias mul8u_error::b#1 = mul8u_error::b#3 mul8u_error::b#4 mul8u_error::b#2 
Alias mul8u_error::ms#1 = mul8u_error::ms#5 mul8u_error::ms#6 mul8u_error::ms#4 mul8u_error::ms#3 mul8u_error::ms#2 
Alias mul8u_error::mn#1 = mul8u_error::mn#7 mul8u_error::mn#8 mul8u_error::mn#6 mul8u_error::mn#5 mul8u_error::mn#4 mul8u_error::mn#3 mul8u_error::mn#2 
Alias mul8u_error::mf#1 = mul8u_error::mf#9 mul8u_error::mf#10 mul8u_error::mf#8 mul8u_error::mf#7 mul8u_error::mf#6 mul8u_error::mf#5 mul8u_error::mf#4 mul8u_error::mf#3 mul8u_error::mf#2 
Alias print_line_cursor#104 = print_line_cursor#113 print_line_cursor#115 print_line_cursor#111 print_line_cursor#108 print_line_cursor#98 print_line_cursor#93 print_line_cursor#84 print_line_cursor#73 print_line_cursor#64 print_line_cursor#54 
Alias print_char_cursor#106 = print_char_cursor#38 
Alias print_char_cursor#107 = print_char_cursor#39 
Alias print_char_cursor#108 = print_char_cursor#40 
Alias print_char_cursor#109 = print_char_cursor#41 
Alias print_char_cursor#110 = print_char_cursor#42 
Alias print_char_cursor#111 = print_char_cursor#43 
Alias print_char_cursor#112 = print_char_cursor#44 
Alias print_char_cursor#113 = print_char_cursor#45 
Alias print_char_cursor#114 = print_char_cursor#46 
Alias print_char_cursor#115 = print_char_cursor#47 
Alias print_line_cursor#14 = print_line_cursor#38 print_line_cursor#39 print_line_cursor#15 
Alias print_char_cursor#116 = print_char_cursor#48 print_char_cursor#117 print_char_cursor#49 
Alias mul8s_compare::a#10 = mul8s_compare::a#2 
Alias print_char_cursor#154 = print_char_cursor#183 print_char_cursor#166 
Alias print_line_cursor#55 = print_line_cursor#99 print_line_cursor#74 print_line_cursor#65 
Alias print_char_cursor#118 = print_char_cursor#50 
Alias print_line_cursor#16 = print_line_cursor#40 
Alias print_char_cursor#119 = print_char_cursor#51 
Alias mul8s_compare::a#14 = mul8s_compare::a#3 mul8s_compare::a#8 mul8s_compare::a#4 mul8s_compare::a#5 mul8s_compare::a#15 mul8s_compare::a#6 
Alias mul8s_compare::b#11 = mul8s_compare::b#3 mul8s_compare::b#2 mul8s_compare::b#4 mul8s_compare::b#5 mul8s_compare::b#12 
Alias print_char_cursor#174 = print_char_cursor#189 print_char_cursor#179 print_char_cursor#187 print_char_cursor#185 print_char_cursor#181 print_char_cursor#180 
Alias print_line_cursor#101 = print_line_cursor#105 print_line_cursor#95 print_line_cursor#94 print_line_cursor#88 print_line_cursor#86 print_line_cursor#87 
Alias muls8s::return#2 = muls8s::return#4 
Alias mulf8s::return#2 = mulf8s::return#4 
Alias mul8s_compare::ms#0 = mul8s_compare::ms#4 mul8s_compare::ms#1 mul8s_compare::ms#5 
Alias mul8s::return#2 = mul8s::return#4 
Alias mul8s_compare::mf#0 = mul8s_compare::mf#1 mul8s_compare::mf#6 
Alias mul8s_compare::mn#0 = mul8s_compare::mn#3 
Alias mul8s_compare::b#10 = mul8s_compare::b#9 
Alias mul8s_compare::a#12 = mul8s_compare::a#13 
Alias mul8s_compare::ms#2 = mul8s_compare::ms#7 
Alias mul8s_compare::mn#1 = mul8s_compare::mn#5 
Alias mul8s_compare::mf#4 = mul8s_compare::mf#5 
Alias print_char_cursor#175 = print_char_cursor#176 
Alias print_line_cursor#75 = print_line_cursor#76 
Alias mul8s_compare::b#6 = mul8s_compare::b#8 mul8s_compare::b#7 
Alias mul8s_compare::a#11 = mul8s_compare::a#9 mul8s_compare::a#7 
Alias print_char_cursor#155 = print_char_cursor#184 print_char_cursor#167 
Alias print_line_cursor#100 = print_line_cursor#66 print_line_cursor#56 
Alias mul8s_compare::ms#3 = mul8s_compare::ms#6 
Alias mul8s_compare::mn#2 = mul8s_compare::mn#4 
Alias mul8s_compare::mf#2 = mul8s_compare::mf#3 
Alias print_char_cursor#120 = print_char_cursor#52 
Alias print_line_cursor#17 = print_line_cursor#41 
Alias print_char_cursor#121 = print_char_cursor#53 
Alias print_line_cursor#18 = print_line_cursor#42 
Alias mul8s_error::a#1 = mul8s_error::a#2 
Alias mul8s_error::b#1 = mul8s_error::b#3 mul8s_error::b#4 mul8s_error::b#2 
Alias mul8s_error::ms#1 = mul8s_error::ms#5 mul8s_error::ms#6 mul8s_error::ms#4 mul8s_error::ms#3 mul8s_error::ms#2 
Alias mul8s_error::mn#1 = mul8s_error::mn#7 mul8s_error::mn#8 mul8s_error::mn#6 mul8s_error::mn#5 mul8s_error::mn#4 mul8s_error::mn#3 mul8s_error::mn#2 
Alias mul8s_error::mf#1 = mul8s_error::mf#9 mul8s_error::mf#10 mul8s_error::mf#8 mul8s_error::mf#7 mul8s_error::mf#6 mul8s_error::mf#5 mul8s_error::mf#4 mul8s_error::mf#3 mul8s_error::mf#2 
Alias print_line_cursor#102 = print_line_cursor#114 print_line_cursor#116 print_line_cursor#112 print_line_cursor#109 print_line_cursor#106 print_line_cursor#96 print_line_cursor#89 print_line_cursor#77 print_line_cursor#67 print_line_cursor#57 
Alias print_char_cursor#122 = print_char_cursor#54 
Alias print_char_cursor#123 = print_char_cursor#55 
Alias print_char_cursor#124 = print_char_cursor#56 
Alias print_char_cursor#125 = print_char_cursor#57 
Alias print_char_cursor#126 = print_char_cursor#58 
Alias print_char_cursor#127 = print_char_cursor#59 
Alias print_char_cursor#128 = print_char_cursor#60 
Alias print_char_cursor#129 = print_char_cursor#61 
Alias print_char_cursor#130 = print_char_cursor#62 
Alias print_char_cursor#131 = print_char_cursor#63 
Alias print_line_cursor#19 = print_line_cursor#43 print_line_cursor#44 print_line_cursor#20 
Alias print_char_cursor#132 = print_char_cursor#64 print_char_cursor#133 print_char_cursor#65 
Alias print_screen#0 = print_line_cursor#21 print_char_cursor#66 print_line_cursor#58 print_char_cursor#157 print_screen#7 print_screen#6 print_screen#4 print_screen#1 
Alias print_line_cursor#22 = print_line_cursor#45 print_line_cursor#46 print_line_cursor#23 
Alias print_char_cursor#134 = print_char_cursor#67 print_char_cursor#135 print_char_cursor#68 
Successful SSA optimization Pass2AliasElimination
Alias mul8u::a#3 = mul8u::a#5 
Alias mul8u::mb#2 = mul8u::mb#3 
Alias mul8s::b#1 = mul8s::b#2 
Alias mul8s::a#1 = mul8s::a#3 
Alias mulf_init::sqr1_lo#2 = mulf_init::sqr1_lo#3 
Alias mulf_init::sqr1_hi#2 = mulf_init::sqr1_hi#3 
Alias mulf_init::c#1 = mulf_init::c#4 
Alias mulf_init::sqr2_lo#2 = mulf_init::sqr2_lo#4 
Alias mulf_init::x_255#1 = mulf_init::x_255#4 
Alias mulf_init::sqr2_hi#1 = mulf_init::sqr2_hi#4 
Alias mulf8s_prepared::b#1 = mulf8s_prepared::b#2 
Alias mul8u_compare::ms#0 = mul8u_compare::ms#2 mul8u_compare::ms#3 
Alias mul8u_compare::mn#0 = mul8u_compare::mn#1 mul8u_compare::mn#2 
Alias mul8u_compare::b#10 = mul8u_compare::b#8 mul8u_compare::b#5 
Alias mul8u_compare::a#10 = mul8u_compare::a#12 mul8u_compare::a#5 
Alias mul8u_compare::mf#0 = mul8u_compare::mf#4 mul8u_compare::mf#2 
Alias print_char_cursor#151 = print_char_cursor#170 print_char_cursor#177 
Alias print_line_cursor#103 = print_line_cursor#70 print_line_cursor#52 
Alias mul8s_compare::ms#0 = mul8s_compare::ms#2 mul8s_compare::ms#3 
Alias mul8s_compare::mn#0 = mul8s_compare::mn#1 mul8s_compare::mn#2 
Alias mul8s_compare::b#10 = mul8s_compare::b#11 mul8s_compare::b#6 
Alias mul8s_compare::a#11 = mul8s_compare::a#12 mul8s_compare::a#14 
Alias mul8s_compare::mf#0 = mul8s_compare::mf#4 mul8s_compare::mf#2 
Alias print_char_cursor#155 = print_char_cursor#175 print_char_cursor#174 
Alias print_line_cursor#100 = print_line_cursor#75 print_line_cursor#101 
Successful SSA optimization Pass2AliasElimination
Identical Phi Values print_char_cursor#0 print_char_cursor#18
Identical Phi Values print_char_cursor#71 print_char_cursor#138
Identical Phi Values print_char_cursor#4 print_char_cursor#18
Identical Phi Values print_char_cursor#5 print_char_cursor#18
Identical Phi Values print_char_cursor#6 print_char_cursor#13
Identical Phi Values print_char_cursor#77 print_char_cursor#18
Identical Phi Values print_char_cursor#78 print_char_cursor#18
Identical Phi Values print_char_cursor#10 print_char_cursor#16
Identical Phi Values print_char_cursor#12 print_char_cursor#16
Identical Phi Values print_char_cursor#13 print_char_cursor#16
Identical Phi Values print_char_cursor#15 print_char_cursor#18
Identical Phi Values print_char_cursor#16 print_char_cursor#18
Identical Phi Values print_line_cursor#2 print_screen#5
Identical Phi Values memset::num#1 memset::num#0
Identical Phi Values memset::str#2 memset::str#0
Identical Phi Values memset::c#3 memset::c#0
Identical Phi Values memset::end#1 memset::end#0
Identical Phi Values memset::str#4 memset::str#2
Identical Phi Values memset::c#1 memset::c#3
Identical Phi Values mul8s::a#1 mul8s::a#0
Identical Phi Values mul8s::b#1 mul8s::b#0
Identical Phi Values mulf8u::a#1 mulf8u::a#0
Identical Phi Values mulf8u::b#1 mulf8u::b#0
Identical Phi Values mulf8s_prepared::b#1 mulf8s_prepared::b#0
Identical Phi Values mulf8s::mulf8s_prepare1_a#0 mulf8s::a#0
Identical Phi Values mulf8s::b#1 mulf8s::b#0
Identical Phi Values print_screen#5 print_screen#0
Identical Phi Values print_line_cursor#48 print_screen#0
Identical Phi Values print_char_cursor#147 print_screen#0
Identical Phi Values print_line_cursor#28 print_line_cursor#2
Identical Phi Values print_char_cursor#148 print_line_cursor#2
Identical Phi Values print_char_cursor#23 print_char_cursor#101
Identical Phi Values print_line_cursor#29 print_line_cursor#10
Identical Phi Values print_char_cursor#24 print_char_cursor#103
Identical Phi Values print_line_cursor#30 print_line_cursor#12
Identical Phi Values print_char_cursor#25 print_char_cursor#121
Identical Phi Values print_line_cursor#31 print_line_cursor#18
Identical Phi Values muls8u::a#1 muls8u::a#0
Identical Phi Values muls8u::b#3 muls8u::b#0
Identical Phi Values muls8u::a#2 muls8u::a#1
Identical Phi Values muls8u::b#1 muls8u::b#3
Identical Phi Values muls8s::a#1 muls8s::a#0
Identical Phi Values muls8s::b#5 muls8s::b#0
Identical Phi Values muls8s::a#3 muls8s::a#1
Identical Phi Values muls8s::b#1 muls8s::b#5
Identical Phi Values muls8s::a#4 muls8s::a#1
Identical Phi Values muls8s::b#2 muls8s::b#5
Identical Phi Values print_char_cursor#168 print_char_cursor#148
Identical Phi Values print_line_cursor#78 print_line_cursor#28
Identical Phi Values print_char_cursor#149 print_char_cursor#168
Identical Phi Values print_line_cursor#50 print_line_cursor#78
Identical Phi Values print_char_cursor#27 print_char_cursor#1
Identical Phi Values print_line_cursor#33 print_line_cursor#0
Identical Phi Values print_char_cursor#28 print_line_cursor#0
Identical Phi Values print_char_cursor#29 print_char_cursor#1
Identical Phi Values print_char_cursor#30 print_char_cursor#13
Identical Phi Values print_char_cursor#31 print_char_cursor#1
Identical Phi Values print_char_cursor#100 print_char_cursor#13
Identical Phi Values print_char_cursor#191 print_char_cursor#23
Identical Phi Values print_line_cursor#110 print_line_cursor#29
Identical Phi Values mul8u_compare::a#10 mul8u_compare::a#7
Identical Phi Values print_char_cursor#151 print_char_cursor#190
Identical Phi Values print_line_cursor#103 print_line_cursor#107
Identical Phi Values print_char_cursor#102 print_char_cursor#116
Identical Phi Values print_line_cursor#11 print_line_cursor#14
Identical Phi Values print_char_cursor#104 print_char_cursor#1
Identical Phi Values print_line_cursor#13 print_line_cursor#0
Identical Phi Values print_char_cursor#105 print_line_cursor#0
Identical Phi Values print_char_cursor#153 print_char_cursor#151
Identical Phi Values mul8u_error::a#1 mul8u_error::a#0
Identical Phi Values mul8u_error::b#1 mul8u_error::b#0
Identical Phi Values mul8u_error::ms#1 mul8u_error::ms#0
Identical Phi Values mul8u_error::mn#1 mul8u_error::mn#0
Identical Phi Values mul8u_error::mf#1 mul8u_error::mf#0
Identical Phi Values print_line_cursor#104 print_line_cursor#103
Identical Phi Values print_char_cursor#106 print_char_cursor#1
Identical Phi Values print_char_cursor#107 print_char_cursor#16
Identical Phi Values print_char_cursor#108 print_char_cursor#1
Identical Phi Values print_char_cursor#109 print_char_cursor#16
Identical Phi Values print_char_cursor#110 print_char_cursor#1
Identical Phi Values print_char_cursor#111 print_char_cursor#13
Identical Phi Values print_char_cursor#112 print_char_cursor#1
Identical Phi Values print_char_cursor#113 print_char_cursor#13
Identical Phi Values print_char_cursor#114 print_char_cursor#1
Identical Phi Values print_char_cursor#115 print_char_cursor#13
Identical Phi Values print_line_cursor#14 print_line_cursor#0
Identical Phi Values print_char_cursor#116 print_line_cursor#0
Identical Phi Values print_char_cursor#173 print_char_cursor#24
Identical Phi Values print_line_cursor#85 print_line_cursor#30
Identical Phi Values print_char_cursor#118 print_char_cursor#1
Identical Phi Values print_line_cursor#16 print_line_cursor#0
Identical Phi Values print_char_cursor#119 print_line_cursor#0
Identical Phi Values mul8s_compare::a#11 mul8s_compare::a#10
Identical Phi Values print_char_cursor#155 print_char_cursor#154
Identical Phi Values print_line_cursor#100 print_line_cursor#55
Identical Phi Values print_char_cursor#120 print_char_cursor#132
Identical Phi Values print_line_cursor#17 print_line_cursor#19
Identical Phi Values print_char_cursor#156 print_char_cursor#155
Identical Phi Values mul8s_error::a#1 mul8s_error::a#0
Identical Phi Values mul8s_error::b#1 mul8s_error::b#0
Identical Phi Values mul8s_error::ms#1 mul8s_error::ms#0
Identical Phi Values mul8s_error::mn#1 mul8s_error::mn#0
Identical Phi Values mul8s_error::mf#1 mul8s_error::mf#0
Identical Phi Values print_line_cursor#102 print_line_cursor#100
Identical Phi Values print_char_cursor#122 print_char_cursor#1
Identical Phi Values print_char_cursor#123 print_char_cursor#10
Identical Phi Values print_char_cursor#124 print_char_cursor#1
Identical Phi Values print_char_cursor#125 print_char_cursor#10
Identical Phi Values print_char_cursor#126 print_char_cursor#1
Identical Phi Values print_char_cursor#127 print_char_cursor#6
Identical Phi Values print_char_cursor#128 print_char_cursor#1
Identical Phi Values print_char_cursor#129 print_char_cursor#6
Identical Phi Values print_char_cursor#130 print_char_cursor#1
Identical Phi Values print_char_cursor#131 print_char_cursor#6
Identical Phi Values print_line_cursor#19 print_line_cursor#0
Identical Phi Values print_char_cursor#132 print_line_cursor#0
Identical Phi Values print_line_cursor#22 print_line_cursor#31
Identical Phi Values print_char_cursor#134 print_char_cursor#25
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values print_char_cursor#139 print_char_cursor#1
Identical Phi Values print_char_cursor#141 print_char_cursor#18
Identical Phi Values print_char_cursor#142 print_char_cursor#1
Identical Phi Values print_char_cursor#144 print_char_cursor#18
Identical Phi Values memset::return#1 memset::str#0
Identical Phi Values print_char_cursor#190 print_char_cursor#101
Identical Phi Values print_line_cursor#107 print_line_cursor#10
Identical Phi Values print_char_cursor#103 print_line_cursor#0
Identical Phi Values print_line_cursor#12 print_line_cursor#0
Identical Phi Values print_char_cursor#154 print_char_cursor#103
Identical Phi Values print_line_cursor#55 print_line_cursor#12
Identical Phi Values print_char_cursor#121 print_line_cursor#0
Identical Phi Values print_line_cursor#18 print_line_cursor#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition print_str::$1 [3] if(0!=*print_str::str#16) goto print_str::@2
Simple Condition print_ln::$1 [13] if(print_line_cursor#0<print_char_cursor#138) goto print_ln::@1
Simple Condition print_sint::$0 [17] if(print_sint::w#4<0) goto print_sint::@1
Simple Condition print_schar::$0 [32] if(print_schar::b#3<0) goto print_schar::@1
Simple Condition memset::$1 [76] if(memset::num#0<=0) goto memset::@1
Simple Condition memset::$3 [83] if(memset::dst#2!=memset::end#0) goto memset::@4
Simple Condition mul8u::$0 [92] if(mul8u::a#3!=0) goto mul8u::@2
Simple Condition mul8u::$3 [95] if(mul8u::$1==0) goto mul8u::@4
Simple Condition mul8s::$2 [108] if(mul8s::a#0>=0) goto mul8s::@1
Simple Condition mul8s::$4 [111] if(mul8s::b#0>=0) goto mul8s::@2
Simple Condition mulf_init::$0 [130] if(mulf_init::sqr1_lo#2!=mulf_sqr1_lo+$200) goto mulf_init::@2
Simple Condition mulf_init::$3 [134] if(mulf_init::$1!=0) goto mulf_init::@4
Simple Condition mulf_init::$7 [151] if(mulf_init::sqr2_lo#2!=mulf_sqr2_lo+$1ff) goto mulf_init::@7
Simple Condition mulf_init::$10 [157] if(mulf_init::x_255#1!=0) goto mulf_init::@9
Simple Condition mulf8s_prepared::$2 [187] if(*mulf8s_prepared::memA>=0) goto mulf8s_prepared::@1
Simple Condition mulf8s_prepared::$4 [190] if(mulf8s_prepared::b#0>=0) goto mulf8s_prepared::@2
Simple Condition muls8u::$1 [226] if(muls8u::a#0==0) goto muls8u::@1
Simple Condition muls8u::$2 [231] if(muls8u::i#2!=muls8u::a#0) goto muls8u::@4
Simple Condition muls8s::$0 [238] if(muls8s::a#0<0) goto muls8s::@1
Simple Condition muls8s::$2 [241] if(muls8s::a#0<=0) goto muls8s::@2
Simple Condition muls8s::$3 [245] if(muls8s::j#2!=muls8s::a#0) goto muls8s::@6
Simple Condition muls8s::$5 [251] if(muls8s::i#2!=muls8s::a#0) goto muls8s::@8
Simple Condition mulf_tables_cmp::$2 [266] if(mulf_tables_cmp::kc_sqr#2<mulf_sqr1_lo+(unsigned int)$200*4) goto mulf_tables_cmp::@2
Simple Condition mulf_tables_cmp::$4 [268] if(*mulf_tables_cmp::kc_sqr#2==*mulf_tables_cmp::asm_sqr#2) goto mulf_tables_cmp::@4
Simple Condition mul8u_compare::$6 [313] if(mul8u_compare::ms#0==mul8u_compare::mf#0) goto mul8u_compare::@3
Simple Condition mul8u_compare::$8 [316] if(mul8u_compare::ms#0==mul8u_compare::mn#0) goto mul8u_compare::@4
Simple Condition mul8u_compare::$10 [320] if(mul8u_compare::ok#3!=0) goto mul8u_compare::@5
Simple Condition mul8u_compare::$12 [324] if(mul8u_compare::b#1!=rangelast(0,$ff)) goto mul8u_compare::@2
Simple Condition mul8u_compare::$13 [337] if(mul8u_compare::a#1!=rangelast(0,$ff)) goto mul8u_compare::@1
Simple Condition mul8s_compare::$2 [381] if(mul8s_compare::a#10!=-$80) goto mul8s_compare::@2
Simple Condition mul8s_compare::$3 [390] if(mul8s_compare::b#10!=-$80) goto mul8s_compare::@5
Simple Condition mul8s_compare::$8 [408] if(mul8s_compare::ms#0==mul8s_compare::mf#0) goto mul8s_compare::@7
Simple Condition mul8s_compare::$10 [412] if(mul8s_compare::ms#0==mul8s_compare::mn#0) goto mul8s_compare::@8
Simple Condition mul8s_compare::$12 [416] if(mul8s_compare::ok#3!=0) goto mul8s_compare::@9
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant print_char::ch#1 = '-'
Constant print_char::ch#2 = ' '
Constant print_char::ch#3 = '-'
Constant print_char::ch#4 = ' '
Constant memset::c#0 = ' '
Constant memset::num#0 = $3e8
Constant mul8u::res#0 = 0
Constant mulf_init::sqr#0 = 0
Constant mulf_init::x_2#0 = 0
Constant mulf_init::c#0 = 0
Constant mulf_init::sqr1_hi#0 = mulf_sqr1_hi+1
Constant mulf_init::sqr1_lo#0 = mulf_sqr1_lo+1
Constant mulf_init::x_255#0 = -1
Constant mulf_init::dir#0 = $ff
Constant mulf_init::sqr2_hi#0 = mulf_sqr2_hi
Constant mulf_init::sqr2_lo#0 = mulf_sqr2_lo
Constant mulf_init::dir#1 = 1
Constant muls8u::m#0 = 0
Constant muls8u::i#0 = 0
Constant muls8s::m#0 = 0
Constant muls8s::i#0 = 0
Constant muls8s::j#0 = 0
Constant mulf_tables_cmp::asm_sqr#0 = mula_sqr1_lo
Constant mulf_tables_cmp::kc_sqr#0 = mulf_sqr1_lo
Constant print_str::str#1 = mulf_tables_cmp::str
Constant print_str::str#2 = mulf_tables_cmp::str1
Constant print_str::str#3 = mulf_tables_cmp::str2
Constant mul8u_compare::a#0 = 0
Constant mul8u_compare::b#0 = 0
Constant mul8u_compare::ok#0 = 1
Constant mul8u_compare::ok#1 = 0
Constant mul8u_compare::ok#2 = 0
Constant print_str::str#4 = mul8u_compare::str
Constant print_str::str#5 = mul8u_error::str
Constant print_str::str#6 = mul8u_error::str1
Constant print_str::str#7 = mul8u_error::str2
Constant print_str::str#8 = mul8u_error::str3
Constant print_str::str#9 = mul8u_error::str4
Constant mul8s_compare::a#0 = -$80
Constant mul8s_compare::b#0 = -$80
Constant print_str::str#10 = mul8s_compare::str
Constant mul8s_compare::ok#0 = 1
Constant mul8s_compare::ok#1 = 0
Constant mul8s_compare::ok#2 = 0
Constant print_str::str#11 = mul8s_error::str
Constant print_str::str#12 = mul8s_error::str1
Constant print_str::str#13 = mul8s_error::str2
Constant print_str::str#14 = mul8s_error::str3
Constant print_str::str#15 = mul8s_error::str4
Constant print_screen#0 = (char *) 1024
Successful SSA optimization Pass2ConstantIdentification
Constant memset::str#0 = (void *)print_screen#0
Successful SSA optimization Pass2ConstantIdentification
Constant memset::return#0 = memset::str#0
Constant memset::$4 = (char *)memset::str#0
Constant memset::dst#0 = (char *)memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [76] if(memset::num#0<=0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into str1
Consolidated constant strings into str2
Consolidated constant strings into str3
Consolidated constant strings into str4
Successful SSA optimization Pass2ConstantStringConsolidation
Resolved ranged next value [322] mul8u_compare::b#1 = ++ mul8u_compare::b#10 to ++
Resolved ranged comparison value [324] if(mul8u_compare::b#1!=rangelast(0,$ff)) goto mul8u_compare::@2 to 0
Resolved ranged next value [335] mul8u_compare::a#1 = ++ mul8u_compare::a#7 to ++
Resolved ranged comparison value [337] if(mul8u_compare::a#1!=rangelast(0,$ff)) goto mul8u_compare::@1 to 0
Eliminating unused constant memset::return#0
Successful SSA optimization PassNEliminateUnusedVars
Removing unused procedure __start
Removing unused procedure block __start
Removing unused procedure block __start::__init1
Removing unused procedure block __start::@1
Removing unused procedure block __start::@2
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
Adding number conversion cast (unumber) 0 in [226] if(mul8u_compare::b#1!=0) goto mul8u_compare::@2
Adding number conversion cast (unumber) 0 in [236] if(mul8u_compare::a#1!=0) goto mul8u_compare::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Successful SSA optimization PassNFinalizeNumberTypeConversions
Constant right-side identified [50] memset::end#0 = memset::$4 + memset::num#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant memset::end#0 = memset::$4+memset::num#0
Successful SSA optimization Pass2ConstantIdentification
Inlining Noop Cast [75] mul8s::$13 = (char)mul8s::b#0 keeping mul8s::b#0
Inlining Noop Cast [79] mul8s::return#0 = (int)mul8s::m#4 keeping mul8s::m#4
Inlining Noop Cast [81] mul8s::$14 = (char)mul8s::a#0 keeping mul8s::a#0
Inlining Noop Cast [136] mulf8s_prepared::$13 = (char)mulf8s_prepared::b#0 keeping mulf8s_prepared::b#0
Inlining Noop Cast [140] mulf8s_prepared::return#0 = (int)mulf8s_prepared::m#4 keeping mulf8s_prepared::m#4
Inlining Noop Cast [142] mulf8s_prepared::$14 = (char)*mulf8s_prepared::memA keeping *mulf8s_prepared::memA
Successful SSA optimization Pass2NopCastInlining
Inlining Noop Cast [150] mulf8s_prepared::return#2 = (int)mulf8s_prepared::m#4 keeping mulf8s_prepared::m#4
Inlining Noop Cast [274] mul8s::return#2 = (int)mul8s::m#4 keeping mul8s::m#4
Successful SSA optimization Pass2NopCastInlining
Inlining constant with var siblings print_str::str#1
Inlining constant with var siblings print_str::str#2
Inlining constant with var siblings print_str::str#3
Inlining constant with var siblings print_str::str#4
Inlining constant with var siblings print_str::str#5
Inlining constant with var siblings print_str::str#6
Inlining constant with var siblings print_str::str#7
Inlining constant with var siblings print_str::str#8
Inlining constant with var siblings print_str::str#9
Inlining constant with var siblings print_str::str#10
Inlining constant with var siblings print_str::str#11
Inlining constant with var siblings print_str::str#12
Inlining constant with var siblings print_str::str#13
Inlining constant with var siblings print_str::str#14
Inlining constant with var siblings print_str::str#15
Inlining constant with var siblings print_char::ch#1
Inlining constant with var siblings print_char::ch#2
Inlining constant with var siblings print_char::ch#3
Inlining constant with var siblings print_char::ch#4
Inlining constant with var siblings memset::dst#0
Inlining constant with var siblings mul8u::res#0
Inlining constant with var siblings mulf_init::sqr#0
Inlining constant with var siblings mulf_init::x_2#0
Inlining constant with var siblings mulf_init::c#0
Inlining constant with var siblings mulf_init::sqr1_hi#0
Inlining constant with var siblings mulf_init::sqr1_lo#0
Inlining constant with var siblings mulf_init::x_255#0
Inlining constant with var siblings mulf_init::dir#0
Inlining constant with var siblings mulf_init::sqr2_hi#0
Inlining constant with var siblings mulf_init::sqr2_lo#0
Inlining constant with var siblings mulf_init::dir#1
Inlining constant with var siblings muls8u::m#0
Inlining constant with var siblings muls8u::i#0
Inlining constant with var siblings muls8s::m#0
Inlining constant with var siblings muls8s::i#0
Inlining constant with var siblings muls8s::j#0
Inlining constant with var siblings mulf_tables_cmp::asm_sqr#0
Inlining constant with var siblings mulf_tables_cmp::kc_sqr#0
Inlining constant with var siblings mul8u_compare::a#0
Inlining constant with var siblings mul8u_compare::b#0
Inlining constant with var siblings mul8u_compare::ok#0
Inlining constant with var siblings mul8u_compare::ok#1
Inlining constant with var siblings mul8u_compare::ok#2
Inlining constant with var siblings mul8s_compare::a#0
Inlining constant with var siblings mul8s_compare::b#0
Inlining constant with var siblings mul8s_compare::ok#0
Inlining constant with var siblings mul8s_compare::ok#1
Inlining constant with var siblings mul8s_compare::ok#2
Constant inlined mulf_init::sqr2_lo#0 = mulf_sqr2_lo
Constant inlined mulf_init::sqr2_hi#0 = mulf_sqr2_hi
Constant inlined mul8u_compare::ok#2 = 0
Constant inlined mul8u_compare::ok#1 = 0
Constant inlined mul8u_compare::ok#0 = 1
Constant inlined mul8s_compare::b#0 = -$80
Constant inlined mulf_init::dir#1 = 1
Constant inlined mulf_init::dir#0 = $ff
Constant inlined mulf_init::x_255#0 = -1
Constant inlined mulf_tables_cmp::kc_sqr#0 = mulf_sqr1_lo
Constant inlined mul8u_compare::b#0 = 0
Constant inlined mulf_init::x_2#0 = 0
Constant inlined mul8s_compare::ok#0 = 1
Constant inlined mul8s_compare::ok#1 = 0
Constant inlined muls8s::m#0 = 0
Constant inlined muls8s::i#0 = 0
Constant inlined print_str::str#9 = str4
Constant inlined mul8u::res#0 = 0
Constant inlined mulf_init::sqr1_hi#0 = mulf_sqr1_hi+1
Constant inlined mul8s_compare::ok#2 = 0
Constant inlined mulf_init::sqr1_lo#0 = mulf_sqr1_lo+1
Constant inlined print_str::str#4 = mul8u_compare::str
Constant inlined print_str::str#3 = mulf_tables_cmp::str2
Constant inlined print_str::str#2 = mulf_tables_cmp::str1
Constant inlined memset::dst#0 = (char *)memset::str#0
Constant inlined print_str::str#1 = mulf_tables_cmp::str
Constant inlined print_str::str#8 = str3
Constant inlined print_str::str#7 = str2
Constant inlined print_str::str#6 = str1
Constant inlined print_str::str#5 = mul8u_error::str
Constant inlined mulf_init::c#0 = 0
Constant inlined print_str::str#13 = str2
Constant inlined print_str::str#12 = str1
Constant inlined print_str::str#11 = mul8s_error::str
Constant inlined print_str::str#10 = mul8s_compare::str
Constant inlined print_str::str#15 = str4
Constant inlined print_str::str#14 = str3
Constant inlined mul8u_compare::a#0 = 0
Constant inlined mul8s_compare::a#0 = -$80
Constant inlined memset::$4 = (char *)memset::str#0
Constant inlined mulf_init::sqr#0 = 0
Constant inlined muls8u::i#0 = 0
Constant inlined mul8s_error::str1 = str1
Constant inlined mul8s_error::str2 = str2
Constant inlined mul8s_error::str3 = str3
Constant inlined muls8u::m#0 = 0
Constant inlined mul8s_error::str4 = str4
Constant inlined print_char::ch#3 = '-'
Constant inlined print_char::ch#2 = ' '
Constant inlined print_char::ch#4 = ' '
Constant inlined muls8s::j#0 = 0
Constant inlined mulf_tables_cmp::asm_sqr#0 = mula_sqr1_lo
Constant inlined print_char::ch#1 = '-'
Constant inlined mul8u_error::str1 = str1
Constant inlined mul8u_error::str2 = str2
Constant inlined mul8u_error::str3 = str3
Constant inlined mul8u_error::str4 = str4
Successful SSA optimization Pass2ConstantInlining
Finalized unsigned number type (char) 2
Finalized unsigned number type (char) 8
Finalized unsigned number type (char) $a
Finalized unsigned number type (char) $10
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (unsigned int) $200
Finalized unsigned number type (char) 4
Successful SSA optimization PassNFinalizeNumberTypeConversions
Simplifying constant integer cast $200*4
Successful SSA optimization PassNCastSimplification
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
Added new block during phi lifting mul8u::@6(between mul8u::@2 and mul8u::@4)
Added new block during phi lifting mul8s::@6(between mul8s::@5 and mul8s::@1)
Added new block during phi lifting mul8s::@7(between mul8s::@1 and mul8s::@2)
Added new block during phi lifting mulf_init::@11(between mulf_init::@2 and mulf_init::@4)
Added new block during phi lifting mulf_init::@12(between mulf_init::@7 and mulf_init::@9)
Added new block during phi lifting mulf8s_prepared::@6(between mulf8s_prepared::@5 and mulf8s_prepared::@1)
Added new block during phi lifting mulf8s_prepared::@7(between mulf8s_prepared::@1 and mulf8s_prepared::@2)
Added new block during phi lifting muls8u::@5(between muls8u::@3 and muls8u::@1)
Added new block during phi lifting muls8s::@9(between muls8s::@5 and muls8s::@2)
Added new block during phi lifting muls8s::@10(between muls8s::@7 and muls8s::@2)
Added new block during phi lifting mul8u_compare::@17(between mul8u_compare::@9 and mul8u_compare::@1)
Added new block during phi lifting mul8u_compare::@18(between mul8u_compare::@5 and mul8u_compare::@2)
Added new block during phi lifting mul8u_compare::@19(between mul8u_compare::@3 and mul8u_compare::@4)
Added new block during phi lifting mul8s_compare::@19(between mul8s_compare::@7 and mul8s_compare::@8)
Adding NOP phi() at start of main::@1
Adding NOP phi() at start of main::@2
Adding NOP phi() at start of main::@3
Adding NOP phi() at start of main::@4
Adding NOP phi() at start of main::@5
Adding NOP phi() at start of main::@6
Adding NOP phi() at start of print_cls
Adding NOP phi() at start of print_cls::@1
Adding NOP phi() at start of mulf_init
Adding NOP phi() at start of mulf_init::@3
Adding NOP phi() at start of mulf_init::@10
Adding NOP phi() at start of mulf_tables_cmp
Adding NOP phi() at start of mulf_tables_cmp::@3
Adding NOP phi() at start of mul8u_compare
Adding NOP phi() at start of mul8u_compare::@6
Adding NOP phi() at start of mul8u_compare::@7
Adding NOP phi() at start of mul8u_compare::@14
Adding NOP phi() at start of mul8u_compare::@16
Adding NOP phi() at start of mul8s_compare
Adding NOP phi() at start of mul8s_compare::@14
Adding NOP phi() at start of mul8s_compare::@2
Adding NOP phi() at start of mul8s_compare::@10
Adding NOP phi() at start of mul8s_compare::@11
Adding NOP phi() at start of mul8s_compare::@18
Adding NOP phi() at start of memset
Adding NOP phi() at start of memset::@2
Adding NOP phi() at start of memset::@1
Adding NOP phi() at start of print_ln::@2
Adding NOP phi() at start of print_uint::@2
Adding NOP phi() at start of muls8u::@2
Adding NOP phi() at start of mul8u::@3
Adding NOP phi() at start of mul8u_error::@11
Adding NOP phi() at start of muls8s::@4
Adding NOP phi() at start of muls8s::@1
Adding NOP phi() at start of mulf8s
Adding NOP phi() at start of mulf8s::@2
Adding NOP phi() at start of mul8s_error::@11
Adding NOP phi() at start of print_uchar::@2
Adding NOP phi() at start of print_schar::@6
Adding NOP phi() at start of print_sint::@6
CALL GRAPH
Calls in [main] to print_cls:1 mulf_init:3 mulf_init_asm:5 mulf_tables_cmp:7 mul8u_compare:9 mul8s_compare:11 
Calls in [print_cls] to memset:15 
Calls in [mulf_tables_cmp] to print_str:72 print_ln:74 print_str:81 print_uint:85 print_str:87 print_uint:91 
Calls in [mul8u_compare] to muls8u:102 mulf8u:107 mul8u:114 mul8u_error:130 print_str:138 print_ln:141 
Calls in [mul8s_compare] to print_str:150 print_ln:153 muls8s:163 mulf8s:168 mul8s:173 mul8s_error:188 
Calls in [print_str] to print_char:211 
Calls in [print_uint] to print_uchar:227 print_uchar:231 
Calls in [mulf8u] to mulf8u_prepare:247 mulf8u_prepared:250 
Calls in [mul8u_error] to print_str:274 print_uchar:278 print_str:280 print_uchar:284 print_str:286 print_uint:290 print_str:292 print_uint:296 print_str:298 print_uint:302 print_ln:305 
Calls in [mulf8s] to mulf8u_prepare:331 mulf8s_prepared:334 
Calls in [mul8s] to mul8u:341 
Calls in [mul8s_error] to print_str:360 print_schar:363 print_str:365 print_schar:368 print_str:370 print_sint:373 print_str:375 print_sint:378 print_str:380 print_sint:383 print_ln:386 
Calls in [print_uchar] to print_char:398 print_char:403 
Calls in [mulf8s_prepared] to mulf8u_prepared:417 
Calls in [print_schar] to print_char:438 print_uchar:444 print_char:448 
Calls in [print_sint] to print_char:454 print_uint:460 print_char:464 

Created 62 initial phi equivalence classes
Coalesced [35] mulf_init::sqr2_lo#6 = mulf_init::sqr2_lo#1
Coalesced [36] mulf_init::x_255#6 = mulf_init::x_255#1
Coalesced [37] mulf_init::sqr2_hi#6 = mulf_init::sqr2_hi#1
Coalesced [38] mulf_init::dir#5 = mulf_init::dir#4
Coalesced (already) [39] mulf_init::dir#6 = mulf_init::dir#2
Coalesced [45] mulf_init::sqr#9 = mulf_init::sqr#2
Coalesced [46] mulf_init::x_2#8 = mulf_init::x_2#1
Coalesced [55] mulf_init::sqr1_lo#6 = mulf_init::sqr1_lo#1
Coalesced [56] mulf_init::c#6 = mulf_init::c#1
Coalesced [57] mulf_init::sqr#7 = mulf_init::sqr#1
Coalesced [58] mulf_init::sqr1_hi#6 = mulf_init::sqr1_hi#1
Coalesced [59] mulf_init::x_2#6 = mulf_init::x_2#2
Coalesced [60] mulf_init::sqr#8 = mulf_init::sqr#4
Coalesced (already) [61] mulf_init::x_2#7 = mulf_init::x_2#3
Coalesced [73] print_char_cursor#211 = print_char_cursor#1
Not coalescing [75] print_char_cursor#231 = print_line_cursor#0
Coalesced [76] print_line_cursor#123 = print_line_cursor#0
Coalesced [83] print_uint::w#12 = print_uint::w#1
Coalesced [84] print_char_cursor#216 = print_char_cursor#1
Coalesced [86] print_char_cursor#204 = print_char_cursor#18
Coalesced [89] print_uint::w#11 = print_uint::w#2
Coalesced (already) [90] print_char_cursor#215 = print_char_cursor#1
Coalesced [92] print_char_cursor#230 = print_char_cursor#18
Coalesced [95] mulf_tables_cmp::kc_sqr#9 = mulf_tables_cmp::kc_sqr#1
Coalesced [96] mulf_tables_cmp::asm_sqr#7 = mulf_tables_cmp::asm_sqr#1
Coalesced [112] mul8u::b#4 = mul8u::b#1
Coalesced [113] mul8u::a#9 = mul8u::a#2
Coalesced (already) [137] print_char_cursor#198 = print_char_cursor#101
Coalesced [139] print_line_cursor#119 = print_line_cursor#10
Coalesced (already) [140] print_char_cursor#209 = print_char_cursor#1
Coalesced [143] mul8u_compare::a#14 = mul8u_compare::a#1
Coalesced [144] mul8u_compare::b#12 = mul8u_compare::b#1
Coalesced [145] mul8u_compare::ok#5 = mul8u_compare::ok#4
Not coalescing [149] print_char_cursor#192 = print_line_cursor#0
Coalesced (already) [151] print_line_cursor#117 = print_line_cursor#0
Coalesced (already) [152] print_char_cursor#207 = print_char_cursor#1
Coalesced [160] mul8s_compare::a#16 = mul8s_compare::a#1
Coalesced [191] mul8s_compare::b#13 = mul8s_compare::b#1
Coalesced [192] mul8s_compare::ok#5 = mul8s_compare::ok#4
Coalesced [201] memset::dst#4 = memset::dst#1
Coalesced [203] print_str::str#20 = print_str::str#19
Coalesced [204] print_char_cursor#205 = print_char_cursor#158
Coalesced [209] print_char::ch#8 = print_char::ch#0
Coalesced [210] print_char_cursor#227 = print_char_cursor#1
Coalesced [213] print_str::str#21 = print_str::str#0
Coalesced (already) [214] print_char_cursor#206 = print_char_cursor#18
Coalesced [216] print_line_cursor#121 = print_line_cursor#47
Coalesced (already) [222] print_line_cursor#122 = print_line_cursor#0
Coalesced [225] print_uchar::b#10 = print_uchar::b#1
Coalesced [226] print_char_cursor#221 = print_char_cursor#145
Coalesced [229] print_uchar::b#11 = print_uchar::b#2
Coalesced (already) [230] print_char_cursor#222 = print_char_cursor#18
Coalesced [238] muls8u::return#5 = muls8u::m#3
Coalesced [243] muls8u::i#4 = muls8u::i#1
Coalesced [244] muls8u::m#6 = muls8u::m#1
Coalesced [246] mulf8u_prepare::a#4 = mulf8u_prepare::a#0
Coalesced [249] mulf8u_prepared::b#4 = mulf8u_prepared::b#0
Coalesced [256] mul8u::a#10 = mul8u::a#6
Coalesced [257] mul8u::mb#6 = mul8u::mb#0
Coalesced [265] mul8u::res#9 = mul8u::res#1
Coalesced [269] mul8u::a#11 = mul8u::a#0
Coalesced [270] mul8u::res#7 = mul8u::res#6
Coalesced [271] mul8u::mb#7 = mul8u::mb#1
Coalesced (already) [272] mul8u::res#8 = mul8u::res#2
Coalesced (already) [273] print_char_cursor#199 = print_char_cursor#101
Coalesced [276] print_uchar::b#7 = print_uchar::b#3
Coalesced (already) [277] print_char_cursor#218 = print_char_cursor#1
Coalesced (already) [279] print_char_cursor#200 = print_char_cursor#18
Coalesced [282] print_uchar::b#8 = print_uchar::b#4
Coalesced (already) [283] print_char_cursor#219 = print_char_cursor#1
Coalesced (already) [285] print_char_cursor#201 = print_char_cursor#18
Coalesced [288] print_uint::w#8 = print_uint::w#3
Coalesced (already) [289] print_char_cursor#212 = print_char_cursor#1
Coalesced (already) [291] print_char_cursor#202 = print_char_cursor#18
Coalesced [294] print_uint::w#9 = print_uint::w#4
Coalesced (already) [295] print_char_cursor#213 = print_char_cursor#1
Coalesced (already) [297] print_char_cursor#203 = print_char_cursor#18
Coalesced [300] print_uint::w#10 = print_uint::w#5
Coalesced (already) [301] print_char_cursor#214 = print_char_cursor#1
Coalesced (already) [303] print_line_cursor#120 = print_line_cursor#10
Coalesced (already) [304] print_char_cursor#210 = print_char_cursor#18
Coalesced [313] muls8s::return#5 = muls8s::m#3
Coalesced [318] muls8s::j#4 = muls8s::j#1
Coalesced [319] muls8s::m#11 = muls8s::m#1
Coalesced [323] muls8s::return#6 = muls8s::m#5
Coalesced [326] muls8s::i#4 = muls8s::i#1
Coalesced [327] muls8s::m#12 = muls8s::m#2
Coalesced [330] mulf8u_prepare::a#3 = mulf8u_prepare::a#1
Coalesced [339] mul8u::b#3 = mul8u::b#0
Coalesced [340] mul8u::a#8 = mul8u::a#1
Coalesced [348] mul8s::m#7 = mul8s::m#1
Coalesced [354] mul8s::m#10 = mul8s::m#2
Coalesced [357] mul8s::m#9 = mul8s::m#5
Coalesced [358] mul8s::m#8 = mul8s::m#0
Not coalescing [359] print_char_cursor#193 = print_line_cursor#0
Coalesced [362] print_schar::b#9 = print_schar::b#1
Coalesced (already) [364] print_char_cursor#194 = print_char_cursor#18
Coalesced [367] print_schar::b#10 = print_schar::b#2
Coalesced (already) [369] print_char_cursor#195 = print_char_cursor#18
Coalesced [372] print_sint::w#10 = print_sint::w#1
Coalesced (already) [374] print_char_cursor#196 = print_char_cursor#18
Coalesced [377] print_sint::w#11 = print_sint::w#2
Coalesced (already) [379] print_char_cursor#197 = print_char_cursor#18
Coalesced [382] print_sint::w#12 = print_sint::w#3
Coalesced (already) [384] print_line_cursor#118 = print_line_cursor#0
Coalesced (already) [385] print_char_cursor#208 = print_char_cursor#18
Coalesced [396] print_char::ch#9 = print_char::ch#5
Coalesced (already) [397] print_char_cursor#228 = print_char_cursor#146
Coalesced [401] print_char::ch#10 = print_char::ch#6
Coalesced (already) [402] print_char_cursor#229 = print_char_cursor#18
Coalesced [416] mulf8u_prepared::b#3 = mulf8u_prepared::b#1
Coalesced [424] mulf8s_prepared::m#7 = mulf8s_prepared::m#1
Coalesced [430] mulf8s_prepared::m#10 = mulf8s_prepared::m#2
Coalesced [433] mulf8s_prepared::m#9 = mulf8s_prepared::m#5
Coalesced [434] mulf8s_prepared::m#8 = mulf8s_prepared::m#0
Coalesced (already) [437] print_char_cursor#224 = print_char_cursor#1
Coalesced [439] print_schar::b#12 = print_schar::b#3
Coalesced [442] print_uchar::b#9 = print_uchar::b#0
Coalesced (already) [443] print_char_cursor#220 = print_char_cursor#18
Coalesced (already) [447] print_char_cursor#223 = print_char_cursor#1
Coalesced [450] print_schar::b#11 = print_schar::b#0
Coalesced (already) [453] print_char_cursor#226 = print_char_cursor#1
Coalesced [455] print_sint::w#14 = print_sint::w#4
Coalesced [458] print_uint::w#13 = print_uint::w#0
Coalesced (already) [459] print_char_cursor#217 = print_char_cursor#18
Coalesced (already) [463] print_char_cursor#225 = print_char_cursor#1
Coalesced [466] print_sint::w#13 = print_sint::w#0
Coalesced down to 39 phi equivalence classes
Culled Empty Block label main::@6
Culled Empty Block label print_cls::@1
Culled Empty Block label mulf_init::@3
Culled Empty Block label mulf_init::@10
Culled Empty Block label mulf_init::@11
Culled Empty Block label mulf_tables_cmp::@11
Culled Empty Block label mul8u_compare::@7
Culled Empty Block label mul8u_compare::@14
Culled Empty Block label mul8u_compare::@16
Culled Empty Block label mul8u_compare::@17
Culled Empty Block label mul8u_compare::@18
Culled Empty Block label mul8s_compare::@14
Culled Empty Block label mul8s_compare::@2
Culled Empty Block label mul8s_compare::@11
Culled Empty Block label mul8s_compare::@18
Culled Empty Block label memset::@2
Culled Empty Block label memset::@1
Culled Empty Block label print_ln::@2
Culled Empty Block label print_ln::@3
Culled Empty Block label print_uint::@2
Culled Empty Block label muls8u::@2
Culled Empty Block label muls8u::@5
Culled Empty Block label mul8u::@3
Culled Empty Block label mul8u::@6
Culled Empty Block label mul8u_error::@11
Culled Empty Block label muls8s::@4
Culled Empty Block label muls8s::@9
Culled Empty Block label muls8s::@1
Culled Empty Block label muls8s::@10
Culled Empty Block label mulf8s::@2
Culled Empty Block label mul8s::@7
Culled Empty Block label mul8s::@6
Culled Empty Block label mul8s_error::@11
Culled Empty Block label print_uchar::@2
Culled Empty Block label mulf8s_prepared::@7
Culled Empty Block label mulf8s_prepared::@6
Culled Empty Block label print_schar::@5
Culled Empty Block label print_schar::@6
Culled Empty Block label print_sint::@5
Culled Empty Block label print_sint::@6
Renumbering block memset::@3 to memset::@1
Renumbering block memset::@4 to memset::@2
Renumbering block mul8u::@4 to mul8u::@3
Renumbering block mul8u::@5 to mul8u::@4
Renumbering block mulf_init::@4 to mulf_init::@3
Renumbering block mulf_init::@5 to mulf_init::@4
Renumbering block mulf_init::@6 to mulf_init::@5
Renumbering block mulf_init::@7 to mulf_init::@6
Renumbering block mulf_init::@8 to mulf_init::@7
Renumbering block mulf_init::@9 to mulf_init::@8
Renumbering block mulf_init::@12 to mulf_init::@9
Renumbering block mulf8s::@3 to mulf8s::@2
Renumbering block muls8u::@3 to muls8u::@2
Renumbering block muls8u::@4 to muls8u::@3
Renumbering block muls8s::@2 to muls8s::@1
Renumbering block muls8s::@3 to muls8s::@2
Renumbering block muls8s::@5 to muls8s::@3
Renumbering block muls8s::@6 to muls8s::@4
Renumbering block muls8s::@7 to muls8s::@5
Renumbering block muls8s::@8 to muls8s::@6
Renumbering block mul8u_compare::@8 to mul8u_compare::@7
Renumbering block mul8u_compare::@9 to mul8u_compare::@8
Renumbering block mul8u_compare::@10 to mul8u_compare::@9
Renumbering block mul8u_compare::@11 to mul8u_compare::@10
Renumbering block mul8u_compare::@12 to mul8u_compare::@11
Renumbering block mul8u_compare::@13 to mul8u_compare::@12
Renumbering block mul8u_compare::@15 to mul8u_compare::@13
Renumbering block mul8u_compare::@19 to mul8u_compare::@14
Renumbering block mul8s_compare::@3 to mul8s_compare::@2
Renumbering block mul8s_compare::@4 to mul8s_compare::@3
Renumbering block mul8s_compare::@5 to mul8s_compare::@4
Renumbering block mul8s_compare::@6 to mul8s_compare::@5
Renumbering block mul8s_compare::@7 to mul8s_compare::@6
Renumbering block mul8s_compare::@8 to mul8s_compare::@7
Renumbering block mul8s_compare::@9 to mul8s_compare::@8
Renumbering block mul8s_compare::@10 to mul8s_compare::@9
Renumbering block mul8s_compare::@12 to mul8s_compare::@10
Renumbering block mul8s_compare::@13 to mul8s_compare::@11
Renumbering block mul8s_compare::@15 to mul8s_compare::@12
Renumbering block mul8s_compare::@16 to mul8s_compare::@13
Renumbering block mul8s_compare::@17 to mul8s_compare::@14
Renumbering block mul8s_compare::@19 to mul8s_compare::@15
Adding NOP phi() at start of main::@1
Adding NOP phi() at start of main::@2
Adding NOP phi() at start of main::@3
Adding NOP phi() at start of main::@4
Adding NOP phi() at start of main::@5
Adding NOP phi() at start of print_cls
Adding NOP phi() at start of mulf_init
Adding NOP phi() at start of mulf_init::@9
Adding NOP phi() at start of mulf_tables_cmp
Adding NOP phi() at start of mulf_tables_cmp::@3
Adding NOP phi() at start of mulf_tables_cmp::@6
Adding NOP phi() at start of mulf_tables_cmp::@9
Adding NOP phi() at start of mul8u_compare
Adding NOP phi() at start of mul8u_compare::@6
Adding NOP phi() at start of mul8u_compare::@14
Adding NOP phi() at start of mul8u_compare::@9
Adding NOP phi() at start of mul8u_compare::@13
Adding NOP phi() at start of mul8s_compare
Adding NOP phi() at start of mul8s_compare::@11
Adding NOP phi() at start of mul8s_compare::@9
Adding NOP phi() at start of mul8s_compare::@15
Adding NOP phi() at start of memset
Adding NOP phi() at start of mul8u_error
Adding NOP phi() at start of mul8u_error::@2
Adding NOP phi() at start of mul8u_error::@4
Adding NOP phi() at start of mul8u_error::@6
Adding NOP phi() at start of mul8u_error::@8
Adding NOP phi() at start of mul8u_error::@10
Adding NOP phi() at start of mulf8s
Adding NOP phi() at start of mul8s_error::@2
Adding NOP phi() at start of mul8s_error::@4
Adding NOP phi() at start of mul8s_error::@6
Adding NOP phi() at start of mul8s_error::@8
Adding NOP phi() at start of mul8s_error::@10
Adding NOP phi() at start of print_schar::@3
Adding NOP phi() at start of print_schar::@1
Adding NOP phi() at start of print_sint::@3
Adding NOP phi() at start of print_sint::@1

FINAL CONTROL FLOW GRAPH

void main()
main: scope:[main]  from
  [0] *BG_COLOR = 5
  [1] call print_cls
  to:main::@1
main::@1: scope:[main]  from main
  [2] phi()
  [3] call mulf_init
  to:main::@2
main::@2: scope:[main]  from main::@1
  [4] phi()
  [5] call mulf_init_asm
  to:main::@3
main::@3: scope:[main]  from main::@2
  [6] phi()
  [7] call mulf_tables_cmp
  to:main::@4
main::@4: scope:[main]  from main::@3
  [8] phi()
  [9] call mul8u_compare
  to:main::@5
main::@5: scope:[main]  from main::@4
  [10] phi()
  [11] call mul8s_compare
  to:main::@return
main::@return: scope:[main]  from main::@5
  [12] return 
  to:@return

void print_cls()
print_cls: scope:[print_cls]  from main
  [13] phi()
  [14] call memset
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [15] return 
  to:@return

void mulf_init()
mulf_init: scope:[mulf_init]  from main::@1
  [16] phi()
  to:mulf_init::@1
mulf_init::@1: scope:[mulf_init]  from mulf_init mulf_init::@3
  [17] mulf_init::x_2#3 = phi( mulf_init/0, mulf_init::@3/mulf_init::x_2#2 )
  [17] mulf_init::sqr1_hi#2 = phi( mulf_init/mulf_sqr1_hi+1, mulf_init::@3/mulf_init::sqr1_hi#1 )
  [17] mulf_init::sqr#4 = phi( mulf_init/0, mulf_init::@3/mulf_init::sqr#1 )
  [17] mulf_init::c#2 = phi( mulf_init/0, mulf_init::@3/mulf_init::c#1 )
  [17] mulf_init::sqr1_lo#2 = phi( mulf_init/mulf_sqr1_lo+1, mulf_init::@3/mulf_init::sqr1_lo#1 )
  [18] if(mulf_init::sqr1_lo#2!=mulf_sqr1_lo+$200) goto mulf_init::@2
  to:mulf_init::@5
mulf_init::@5: scope:[mulf_init]  from mulf_init::@1 mulf_init::@8
  [19] mulf_init::dir#2 = phi( mulf_init::@1/$ff, mulf_init::@8/mulf_init::dir#4 )
  [19] mulf_init::sqr2_hi#2 = phi( mulf_init::@1/mulf_sqr2_hi, mulf_init::@8/mulf_init::sqr2_hi#1 )
  [19] mulf_init::x_255#2 = phi( mulf_init::@1/-1, mulf_init::@8/mulf_init::x_255#1 )
  [19] mulf_init::sqr2_lo#2 = phi( mulf_init::@1/mulf_sqr2_lo, mulf_init::@8/mulf_init::sqr2_lo#1 )
  [20] if(mulf_init::sqr2_lo#2!=mulf_sqr2_lo+$1ff) goto mulf_init::@6
  to:mulf_init::@7
mulf_init::@7: scope:[mulf_init]  from mulf_init::@5
  [21] *(mulf_sqr2_lo+$1ff) = *(mulf_sqr1_lo+$100)
  [22] *(mulf_sqr2_hi+$1ff) = *(mulf_sqr1_hi+$100)
  to:mulf_init::@return
mulf_init::@return: scope:[mulf_init]  from mulf_init::@7
  [23] return 
  to:@return
mulf_init::@6: scope:[mulf_init]  from mulf_init::@5
  [24] *mulf_init::sqr2_lo#2 = mulf_sqr1_lo[mulf_init::x_255#2]
  [25] *mulf_init::sqr2_hi#2 = mulf_sqr1_hi[mulf_init::x_255#2]
  [26] mulf_init::sqr2_hi#1 = ++ mulf_init::sqr2_hi#2
  [27] mulf_init::x_255#1 = mulf_init::x_255#2 + mulf_init::dir#2
  [28] if(mulf_init::x_255#1!=0) goto mulf_init::@9
  to:mulf_init::@8
mulf_init::@9: scope:[mulf_init]  from mulf_init::@6
  [29] phi()
  to:mulf_init::@8
mulf_init::@8: scope:[mulf_init]  from mulf_init::@6 mulf_init::@9
  [30] mulf_init::dir#4 = phi( mulf_init::@6/1, mulf_init::@9/mulf_init::dir#2 )
  [31] mulf_init::sqr2_lo#1 = ++ mulf_init::sqr2_lo#2
  to:mulf_init::@5
mulf_init::@2: scope:[mulf_init]  from mulf_init::@1
  [32] mulf_init::c#1 = ++ mulf_init::c#2
  [33] mulf_init::$1 = mulf_init::c#1 & 1
  [34] if(mulf_init::$1!=0) goto mulf_init::@3
  to:mulf_init::@4
mulf_init::@4: scope:[mulf_init]  from mulf_init::@2
  [35] mulf_init::x_2#1 = ++ mulf_init::x_2#3
  [36] mulf_init::sqr#2 = ++ mulf_init::sqr#4
  to:mulf_init::@3
mulf_init::@3: scope:[mulf_init]  from mulf_init::@2 mulf_init::@4
  [37] mulf_init::x_2#2 = phi( mulf_init::@2/mulf_init::x_2#3, mulf_init::@4/mulf_init::x_2#1 )
  [37] mulf_init::sqr#3 = phi( mulf_init::@2/mulf_init::sqr#4, mulf_init::@4/mulf_init::sqr#2 )
  [38] mulf_init::$4 = byte0  mulf_init::sqr#3
  [39] *mulf_init::sqr1_lo#2 = mulf_init::$4
  [40] mulf_init::$5 = byte1  mulf_init::sqr#3
  [41] *mulf_init::sqr1_hi#2 = mulf_init::$5
  [42] mulf_init::sqr1_hi#1 = ++ mulf_init::sqr1_hi#2
  [43] mulf_init::sqr#1 = mulf_init::sqr#3 + mulf_init::x_2#2
  [44] mulf_init::sqr1_lo#1 = ++ mulf_init::sqr1_lo#2
  to:mulf_init::@1

void mulf_init_asm()
mulf_init_asm: scope:[mulf_init_asm]  from main::@2
  asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!-  }
  [46] *mulf_init_asm::mem = *mula_sqr1_lo
  [47] *mulf_init_asm::mem = *mula_sqr1_hi
  [48] *mulf_init_asm::mem = *mula_sqr2_lo
  [49] *mulf_init_asm::mem = *mula_sqr2_hi
  to:mulf_init_asm::@return
mulf_init_asm::@return: scope:[mulf_init_asm]  from mulf_init_asm
  [50] return 
  to:@return

void mulf_tables_cmp()
mulf_tables_cmp: scope:[mulf_tables_cmp]  from main::@3
  [51] phi()
  to:mulf_tables_cmp::@1
mulf_tables_cmp::@1: scope:[mulf_tables_cmp]  from mulf_tables_cmp mulf_tables_cmp::@4
  [52] mulf_tables_cmp::asm_sqr#2 = phi( mulf_tables_cmp/mula_sqr1_lo, mulf_tables_cmp::@4/mulf_tables_cmp::asm_sqr#1 )
  [52] mulf_tables_cmp::kc_sqr#2 = phi( mulf_tables_cmp/mulf_sqr1_lo, mulf_tables_cmp::@4/mulf_tables_cmp::kc_sqr#1 )
  [53] if(mulf_tables_cmp::kc_sqr#2<mulf_sqr1_lo+$200*4) goto mulf_tables_cmp::@2
  to:mulf_tables_cmp::@3
mulf_tables_cmp::@3: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@1
  [54] phi()
  [55] call print_str
  to:mulf_tables_cmp::@6
mulf_tables_cmp::@6: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@3
  [56] phi()
  [57] call print_ln
  to:mulf_tables_cmp::@7
mulf_tables_cmp::@7: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@6
  [58] print_char_cursor#231 = print_line_cursor#0
  to:mulf_tables_cmp::@return
mulf_tables_cmp::@return: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@10 mulf_tables_cmp::@7
  [59] print_line_cursor#10 = phi( mulf_tables_cmp::@10/print_screen#0, mulf_tables_cmp::@7/print_line_cursor#0 )
  [59] print_char_cursor#101 = phi( mulf_tables_cmp::@10/print_char_cursor#18, mulf_tables_cmp::@7/print_char_cursor#231 )
  [60] return 
  to:@return
mulf_tables_cmp::@2: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@1
  [61] if(*mulf_tables_cmp::kc_sqr#2==*mulf_tables_cmp::asm_sqr#2) goto mulf_tables_cmp::@4
  to:mulf_tables_cmp::@5
mulf_tables_cmp::@5: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@2
  [62] *BG_COLOR = 2
  [63] call print_str
  to:mulf_tables_cmp::@8
mulf_tables_cmp::@8: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@5
  [64] print_uint::w#1 = (unsigned int)mulf_tables_cmp::asm_sqr#2
  [65] call print_uint
  to:mulf_tables_cmp::@9
mulf_tables_cmp::@9: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@8
  [66] phi()
  [67] call print_str
  to:mulf_tables_cmp::@10
mulf_tables_cmp::@10: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@9
  [68] print_uint::w#2 = (unsigned int)mulf_tables_cmp::kc_sqr#2
  [69] call print_uint
  to:mulf_tables_cmp::@return
mulf_tables_cmp::@4: scope:[mulf_tables_cmp]  from mulf_tables_cmp::@2
  [70] mulf_tables_cmp::asm_sqr#1 = ++ mulf_tables_cmp::asm_sqr#2
  [71] mulf_tables_cmp::kc_sqr#1 = ++ mulf_tables_cmp::kc_sqr#2
  to:mulf_tables_cmp::@1

void mul8u_compare()
mul8u_compare: scope:[mul8u_compare]  from main::@4
  [72] phi()
  to:mul8u_compare::@1
mul8u_compare::@1: scope:[mul8u_compare]  from mul8u_compare mul8u_compare::@8
  [73] mul8u_compare::a#7 = phi( mul8u_compare/0, mul8u_compare::@8/mul8u_compare::a#1 )
  to:mul8u_compare::@2
mul8u_compare::@2: scope:[mul8u_compare]  from mul8u_compare::@1 mul8u_compare::@5
  [74] mul8u_compare::b#10 = phi( mul8u_compare::@1/0, mul8u_compare::@5/mul8u_compare::b#1 )
  [75] muls8u::a#0 = mul8u_compare::a#7
  [76] muls8u::b#0 = mul8u_compare::b#10
  [77] call muls8u
  [78] muls8u::return#2 = muls8u::return#0
  to:mul8u_compare::@10
mul8u_compare::@10: scope:[mul8u_compare]  from mul8u_compare::@2
  [79] mul8u_compare::ms#0 = muls8u::return#2
  [80] mulf8u::a#0 = mul8u_compare::a#7
  [81] mulf8u::b#0 = mul8u_compare::b#10
  [82] call mulf8u
  [83] mulf8u::return#2 = mulf8u::return#0
  to:mul8u_compare::@11
mul8u_compare::@11: scope:[mul8u_compare]  from mul8u_compare::@10
  [84] mul8u_compare::mf#0 = mulf8u::return#2
  [85] mul8u::a#2 = mul8u_compare::a#7
  [86] mul8u::b#1 = mul8u_compare::b#10
  [87] call mul8u
  [88] mul8u::return#3 = mul8u::res#2
  to:mul8u_compare::@12
mul8u_compare::@12: scope:[mul8u_compare]  from mul8u_compare::@11
  [89] mul8u_compare::mn#0 = mul8u::return#3
  [90] if(mul8u_compare::ms#0==mul8u_compare::mf#0) goto mul8u_compare::@3
  to:mul8u_compare::@6
mul8u_compare::@6: scope:[mul8u_compare]  from mul8u_compare::@12
  [91] phi()
  to:mul8u_compare::@3
mul8u_compare::@3: scope:[mul8u_compare]  from mul8u_compare::@12 mul8u_compare::@6
  [92] mul8u_compare::ok#4 = phi( mul8u_compare::@12/1, mul8u_compare::@6/0 )
  [93] if(mul8u_compare::ms#0==mul8u_compare::mn#0) goto mul8u_compare::@14
  to:mul8u_compare::@4
mul8u_compare::@14: scope:[mul8u_compare]  from mul8u_compare::@3
  [94] phi()
  to:mul8u_compare::@4
mul8u_compare::@4: scope:[mul8u_compare]  from mul8u_compare::@14 mul8u_compare::@3
  [95] mul8u_compare::ok#3 = phi( mul8u_compare::@14/mul8u_compare::ok#4, mul8u_compare::@3/0 )
  [96] if(mul8u_compare::ok#3!=0) goto mul8u_compare::@5
  to:mul8u_compare::@7
mul8u_compare::@7: scope:[mul8u_compare]  from mul8u_compare::@4
  [97] *BG_COLOR = 2
  [98] mul8u_error::a#0 = mul8u_compare::a#7
  [99] mul8u_error::b#0 = mul8u_compare::b#10
  [100] mul8u_error::ms#0 = mul8u_compare::ms#0
  [101] mul8u_error::mn#0 = mul8u_compare::mn#0
  [102] mul8u_error::mf#0 = mul8u_compare::mf#0
  [103] call mul8u_error
  to:mul8u_compare::@return
mul8u_compare::@return: scope:[mul8u_compare]  from mul8u_compare::@13 mul8u_compare::@7
  [104] return 
  to:@return
mul8u_compare::@5: scope:[mul8u_compare]  from mul8u_compare::@4
  [105] mul8u_compare::b#1 = ++ mul8u_compare::b#10
  [106] if(mul8u_compare::b#1!=0) goto mul8u_compare::@2
  to:mul8u_compare::@8
mul8u_compare::@8: scope:[mul8u_compare]  from mul8u_compare::@5
  [107] mul8u_compare::a#1 = ++ mul8u_compare::a#7
  [108] if(mul8u_compare::a#1!=0) goto mul8u_compare::@1
  to:mul8u_compare::@9
mul8u_compare::@9: scope:[mul8u_compare]  from mul8u_compare::@8
  [109] phi()
  [110] call print_str
  to:mul8u_compare::@13
mul8u_compare::@13: scope:[mul8u_compare]  from mul8u_compare::@9
  [111] phi()
  [112] call print_ln
  to:mul8u_compare::@return

void mul8s_compare()
mul8s_compare: scope:[mul8s_compare]  from main::@5
  [113] phi()
  to:mul8s_compare::@1
mul8s_compare::@1: scope:[mul8s_compare]  from mul8s_compare mul8s_compare::@5
  [114] mul8s_compare::a#10 = phi( mul8s_compare/-$80, mul8s_compare::@5/mul8s_compare::a#1 )
  [115] if(mul8s_compare::a#10!=-$80) goto mul8s_compare::@3
  to:mul8s_compare::@2
mul8s_compare::@2: scope:[mul8s_compare]  from mul8s_compare::@1
  [116] print_char_cursor#192 = print_line_cursor#0
  [117] call print_str
  to:mul8s_compare::@11
mul8s_compare::@11: scope:[mul8s_compare]  from mul8s_compare::@2
  [118] phi()
  [119] call print_ln
  to:mul8s_compare::@return
mul8s_compare::@return: scope:[mul8s_compare]  from mul8s_compare::@10 mul8s_compare::@11
  [120] return 
  to:@return
mul8s_compare::@3: scope:[mul8s_compare]  from mul8s_compare::@1 mul8s_compare::@8
  [121] mul8s_compare::b#10 = phi( mul8s_compare::@1/-$80, mul8s_compare::@8/mul8s_compare::b#1 )
  [122] if(mul8s_compare::b#10!=-$80) goto mul8s_compare::@4
  to:mul8s_compare::@5
mul8s_compare::@5: scope:[mul8s_compare]  from mul8s_compare::@3
  [123] mul8s_compare::a#1 = ++ mul8s_compare::a#10
  to:mul8s_compare::@1
mul8s_compare::@4: scope:[mul8s_compare]  from mul8s_compare::@3
  [124] muls8s::a#0 = mul8s_compare::a#10
  [125] muls8s::b#0 = mul8s_compare::b#10
  [126] call muls8s
  [127] muls8s::return#2 = muls8s::return#0
  to:mul8s_compare::@12
mul8s_compare::@12: scope:[mul8s_compare]  from mul8s_compare::@4
  [128] mul8s_compare::ms#0 = muls8s::return#2
  [129] mulf8s::a#0 = mul8s_compare::a#10
  [130] mulf8s::b#0 = mul8s_compare::b#10
  [131] call mulf8s
  [132] mulf8s::return#2 = mulf8s::return#0
  to:mul8s_compare::@13
mul8s_compare::@13: scope:[mul8s_compare]  from mul8s_compare::@12
  [133] mul8s_compare::mf#0 = mulf8s::return#2
  [134] mul8s::a#0 = mul8s_compare::a#10
  [135] mul8s::b#0 = mul8s_compare::b#10
  [136] call mul8s
  to:mul8s_compare::@14
mul8s_compare::@14: scope:[mul8s_compare]  from mul8s_compare::@13
  [137] mul8s_compare::mn#0 = (int)mul8s::m#4
  [138] if(mul8s_compare::ms#0==mul8s_compare::mf#0) goto mul8s_compare::@6
  to:mul8s_compare::@9
mul8s_compare::@9: scope:[mul8s_compare]  from mul8s_compare::@14
  [139] phi()
  to:mul8s_compare::@6
mul8s_compare::@6: scope:[mul8s_compare]  from mul8s_compare::@14 mul8s_compare::@9
  [140] mul8s_compare::ok#4 = phi( mul8s_compare::@9/0, mul8s_compare::@14/1 )
  [141] if(mul8s_compare::ms#0==mul8s_compare::mn#0) goto mul8s_compare::@15
  to:mul8s_compare::@7
mul8s_compare::@15: scope:[mul8s_compare]  from mul8s_compare::@6
  [142] phi()
  to:mul8s_compare::@7
mul8s_compare::@7: scope:[mul8s_compare]  from mul8s_compare::@15 mul8s_compare::@6
  [143] mul8s_compare::ok#3 = phi( mul8s_compare::@6/0, mul8s_compare::@15/mul8s_compare::ok#4 )
  [144] if(mul8s_compare::ok#3!=0) goto mul8s_compare::@8
  to:mul8s_compare::@10
mul8s_compare::@10: scope:[mul8s_compare]  from mul8s_compare::@7
  [145] *BG_COLOR = 2
  [146] mul8s_error::a#0 = mul8s_compare::a#10
  [147] mul8s_error::b#0 = mul8s_compare::b#10
  [148] mul8s_error::ms#0 = mul8s_compare::ms#0
  [149] mul8s_error::mn#0 = mul8s_compare::mn#0
  [150] mul8s_error::mf#0 = mul8s_compare::mf#0
  [151] call mul8s_error
  to:mul8s_compare::@return
mul8s_compare::@8: scope:[mul8s_compare]  from mul8s_compare::@7
  [152] mul8s_compare::b#1 = ++ mul8s_compare::b#10
  to:mul8s_compare::@3

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from print_cls
  [153] phi()
  to:memset::@1
memset::@1: scope:[memset]  from memset memset::@2
  [154] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 )
  [155] if(memset::dst#2!=memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [156] return 
  to:@return
memset::@2: scope:[memset]  from memset::@1
  [157] *memset::dst#2 = memset::c#0
  [158] memset::dst#1 = ++ memset::dst#2
  to:memset::@1

void print_str(char *str)
print_str: scope:[print_str]  from mul8s_compare::@2 mul8s_error mul8s_error::@2 mul8s_error::@4 mul8s_error::@6 mul8s_error::@8 mul8u_compare::@9 mul8u_error mul8u_error::@2 mul8u_error::@4 mul8u_error::@6 mul8u_error::@8 mulf_tables_cmp::@3 mulf_tables_cmp::@5 mulf_tables_cmp::@9
  [159] print_char_cursor#158 = phi( mul8s_compare::@2/print_char_cursor#192, mul8s_error/print_char_cursor#193, mul8s_error::@2/print_char_cursor#18, mul8s_error::@4/print_char_cursor#18, mul8s_error::@6/print_char_cursor#18, mul8s_error::@8/print_char_cursor#18, mul8u_compare::@9/print_char_cursor#101, mul8u_error/print_char_cursor#101, mul8u_error::@2/print_char_cursor#18, mul8u_error::@4/print_char_cursor#18, mul8u_error::@6/print_char_cursor#18, mul8u_error::@8/print_char_cursor#18, mulf_tables_cmp::@3/print_screen#0, mulf_tables_cmp::@5/print_screen#0, mulf_tables_cmp::@9/print_char_cursor#18 )
  [159] print_str::str#19 = phi( mul8s_compare::@2/mul8s_compare::str, mul8s_error/mul8s_error::str, mul8s_error::@2/str1, mul8s_error::@4/str2, mul8s_error::@6/str3, mul8s_error::@8/str4, mul8u_compare::@9/mul8u_compare::str, mul8u_error/mul8u_error::str, mul8u_error::@2/str1, mul8u_error::@4/str2, mul8u_error::@6/str3, mul8u_error::@8/str4, mulf_tables_cmp::@3/mulf_tables_cmp::str, mulf_tables_cmp::@5/mulf_tables_cmp::str1, mulf_tables_cmp::@9/mulf_tables_cmp::str2 )
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@3
  [160] print_char_cursor#1 = phi( print_str/print_char_cursor#158, print_str::@3/print_char_cursor#18 )
  [160] print_str::str#16 = phi( print_str/print_str::str#19, print_str::@3/print_str::str#0 )
  [161] if(0!=*print_str::str#16) goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [162] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [163] print_char::ch#0 = *print_str::str#16
  [164] call print_char
  to:print_str::@3
print_str::@3: scope:[print_str]  from print_str::@2
  [165] print_str::str#0 = ++ print_str::str#16
  to:print_str::@1

void print_ln()
print_ln: scope:[print_ln]  from mul8s_compare::@11 mul8s_error::@10 mul8u_compare::@13 mul8u_error::@10 mulf_tables_cmp::@6
  [166] print_char_cursor#138 = phi( mul8s_compare::@11/print_char_cursor#1, mul8s_error::@10/print_char_cursor#18, mul8u_compare::@13/print_char_cursor#1, mul8u_error::@10/print_char_cursor#18, mulf_tables_cmp::@6/print_char_cursor#1 )
  [166] print_line_cursor#47 = phi( mul8s_compare::@11/print_line_cursor#0, mul8s_error::@10/print_line_cursor#0, mul8u_compare::@13/print_line_cursor#10, mul8u_error::@10/print_line_cursor#10, mulf_tables_cmp::@6/print_screen#0 )
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [167] print_line_cursor#24 = phi( print_ln/print_line_cursor#47, print_ln::@1/print_line_cursor#0 )
  [168] print_line_cursor#0 = print_line_cursor#24 + $28
  [169] if(print_line_cursor#0<print_char_cursor#138) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [170] return 
  to:@return

void print_uint(unsigned int w)
print_uint: scope:[print_uint]  from mul8u_error::@5 mul8u_error::@7 mul8u_error::@9 mulf_tables_cmp::@10 mulf_tables_cmp::@8 print_sint::@2
  [171] print_char_cursor#145 = phi( mul8u_error::@5/print_char_cursor#1, mul8u_error::@7/print_char_cursor#1, mul8u_error::@9/print_char_cursor#1, mulf_tables_cmp::@10/print_char_cursor#1, mulf_tables_cmp::@8/print_char_cursor#1, print_sint::@2/print_char_cursor#18 )
  [171] print_uint::w#6 = phi( mul8u_error::@5/print_uint::w#3, mul8u_error::@7/print_uint::w#4, mul8u_error::@9/print_uint::w#5, mulf_tables_cmp::@10/print_uint::w#2, mulf_tables_cmp::@8/print_uint::w#1, print_sint::@2/print_uint::w#0 )
  [172] print_uchar::b#1 = byte1  print_uint::w#6
  [173] call print_uchar
  to:print_uint::@1
print_uint::@1: scope:[print_uint]  from print_uint
  [174] print_uchar::b#2 = byte0  print_uint::w#6
  [175] call print_uchar
  to:print_uint::@return
print_uint::@return: scope:[print_uint]  from print_uint::@1
  [176] return 
  to:@return

unsigned int muls8u(char a , char b)
muls8u: scope:[muls8u]  from mul8u_compare::@2
  [177] if(muls8u::a#0==0) goto muls8u::@1
  to:muls8u::@2
muls8u::@2: scope:[muls8u]  from muls8u muls8u::@3
  [178] muls8u::m#3 = phi( muls8u/0, muls8u::@3/muls8u::m#1 )
  [178] muls8u::i#2 = phi( muls8u/0, muls8u::@3/muls8u::i#1 )
  [179] if(muls8u::i#2!=muls8u::a#0) goto muls8u::@3
  to:muls8u::@1
muls8u::@1: scope:[muls8u]  from muls8u muls8u::@2
  [180] muls8u::return#0 = phi( muls8u/0, muls8u::@2/muls8u::m#3 )
  to:muls8u::@return
muls8u::@return: scope:[muls8u]  from muls8u::@1
  [181] return 
  to:@return
muls8u::@3: scope:[muls8u]  from muls8u::@2
  [182] muls8u::m#1 = muls8u::m#3 + muls8u::b#0
  [183] muls8u::i#1 = ++ muls8u::i#2
  to:muls8u::@2

unsigned int mulf8u(char a , char b)
mulf8u: scope:[mulf8u]  from mul8u_compare::@10
  [184] mulf8u_prepare::a#0 = mulf8u::a#0
  [185] call mulf8u_prepare
  to:mulf8u::@1
mulf8u::@1: scope:[mulf8u]  from mulf8u
  [186] mulf8u_prepared::b#0 = mulf8u::b#0
  [187] call mulf8u_prepared
  [188] mulf8u_prepared::return#2 = mulf8u_prepared::return#0
  to:mulf8u::@2
mulf8u::@2: scope:[mulf8u]  from mulf8u::@1
  [189] mulf8u::return#0 = mulf8u_prepared::return#2
  to:mulf8u::@return
mulf8u::@return: scope:[mulf8u]  from mulf8u::@2
  [190] return 
  to:@return

unsigned int mul8u(char a , char b)
mul8u: scope:[mul8u]  from mul8s mul8u_compare::@11
  [191] mul8u::a#6 = phi( mul8s/mul8u::a#1, mul8u_compare::@11/mul8u::a#2 )
  [191] mul8u::b#2 = phi( mul8s/mul8u::b#0, mul8u_compare::@11/mul8u::b#1 )
  [192] mul8u::mb#0 = (unsigned int)mul8u::b#2
  to:mul8u::@1
mul8u::@1: scope:[mul8u]  from mul8u mul8u::@3
  [193] mul8u::mb#2 = phi( mul8u/mul8u::mb#0, mul8u::@3/mul8u::mb#1 )
  [193] mul8u::res#2 = phi( mul8u/0, mul8u::@3/mul8u::res#6 )
  [193] mul8u::a#3 = phi( mul8u/mul8u::a#6, mul8u::@3/mul8u::a#0 )
  [194] if(mul8u::a#3!=0) goto mul8u::@2
  to:mul8u::@return
mul8u::@return: scope:[mul8u]  from mul8u::@1
  [195] return 
  to:@return
mul8u::@2: scope:[mul8u]  from mul8u::@1
  [196] mul8u::$1 = mul8u::a#3 & 1
  [197] if(mul8u::$1==0) goto mul8u::@3
  to:mul8u::@4
mul8u::@4: scope:[mul8u]  from mul8u::@2
  [198] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2
  to:mul8u::@3
mul8u::@3: scope:[mul8u]  from mul8u::@2 mul8u::@4
  [199] mul8u::res#6 = phi( mul8u::@2/mul8u::res#2, mul8u::@4/mul8u::res#1 )
  [200] mul8u::a#0 = mul8u::a#3 >> 1
  [201] mul8u::mb#1 = mul8u::mb#2 << 1
  to:mul8u::@1

void mul8u_error(char a , char b , unsigned int ms , unsigned int mn , unsigned int mf)
mul8u_error: scope:[mul8u_error]  from mul8u_compare::@7
  [202] phi()
  [203] call print_str
  to:mul8u_error::@1
mul8u_error::@1: scope:[mul8u_error]  from mul8u_error
  [204] print_uchar::b#3 = mul8u_error::a#0
  [205] call print_uchar
  to:mul8u_error::@2
mul8u_error::@2: scope:[mul8u_error]  from mul8u_error::@1
  [206] phi()
  [207] call print_str
  to:mul8u_error::@3
mul8u_error::@3: scope:[mul8u_error]  from mul8u_error::@2
  [208] print_uchar::b#4 = mul8u_error::b#0
  [209] call print_uchar
  to:mul8u_error::@4
mul8u_error::@4: scope:[mul8u_error]  from mul8u_error::@3
  [210] phi()
  [211] call print_str
  to:mul8u_error::@5
mul8u_error::@5: scope:[mul8u_error]  from mul8u_error::@4
  [212] print_uint::w#3 = mul8u_error::ms#0
  [213] call print_uint
  to:mul8u_error::@6
mul8u_error::@6: scope:[mul8u_error]  from mul8u_error::@5
  [214] phi()
  [215] call print_str
  to:mul8u_error::@7
mul8u_error::@7: scope:[mul8u_error]  from mul8u_error::@6
  [216] print_uint::w#4 = mul8u_error::mn#0
  [217] call print_uint
  to:mul8u_error::@8
mul8u_error::@8: scope:[mul8u_error]  from mul8u_error::@7
  [218] phi()
  [219] call print_str
  to:mul8u_error::@9
mul8u_error::@9: scope:[mul8u_error]  from mul8u_error::@8
  [220] print_uint::w#5 = mul8u_error::mf#0
  [221] call print_uint
  to:mul8u_error::@10
mul8u_error::@10: scope:[mul8u_error]  from mul8u_error::@9
  [222] phi()
  [223] call print_ln
  to:mul8u_error::@return
mul8u_error::@return: scope:[mul8u_error]  from mul8u_error::@10
  [224] return 
  to:@return

int muls8s(signed char a , signed char b)
muls8s: scope:[muls8s]  from mul8s_compare::@4
  [225] if(muls8s::a#0<0) goto muls8s::@5
  to:muls8s::@2
muls8s::@2: scope:[muls8s]  from muls8s
  [226] if(muls8s::a#0<=0) goto muls8s::@1
  to:muls8s::@3
muls8s::@3: scope:[muls8s]  from muls8s::@2 muls8s::@4
  [227] muls8s::m#3 = phi( muls8s::@2/0, muls8s::@4/muls8s::m#1 )
  [227] muls8s::j#2 = phi( muls8s::@2/0, muls8s::@4/muls8s::j#1 )
  [228] if(muls8s::j#2!=muls8s::a#0) goto muls8s::@4
  to:muls8s::@1
muls8s::@1: scope:[muls8s]  from muls8s::@2 muls8s::@3 muls8s::@5
  [229] muls8s::return#0 = phi( muls8s::@2/0, muls8s::@3/muls8s::m#3, muls8s::@5/muls8s::m#5 )
  to:muls8s::@return
muls8s::@return: scope:[muls8s]  from muls8s::@1
  [230] return 
  to:@return
muls8s::@4: scope:[muls8s]  from muls8s::@3
  [231] muls8s::m#1 = muls8s::m#3 + muls8s::b#0
  [232] muls8s::j#1 = ++ muls8s::j#2
  to:muls8s::@3
muls8s::@5: scope:[muls8s]  from muls8s muls8s::@6
  [233] muls8s::m#5 = phi( muls8s/0, muls8s::@6/muls8s::m#2 )
  [233] muls8s::i#2 = phi( muls8s/0, muls8s::@6/muls8s::i#1 )
  [234] if(muls8s::i#2!=muls8s::a#0) goto muls8s::@6
  to:muls8s::@1
muls8s::@6: scope:[muls8s]  from muls8s::@5
  [235] muls8s::m#2 = muls8s::m#5 - muls8s::b#0
  [236] muls8s::i#1 = -- muls8s::i#2
  to:muls8s::@5

int mulf8s(signed char a , signed char b)
mulf8s: scope:[mulf8s]  from mul8s_compare::@12
  [237] phi()
  to:mulf8s::mulf8s_prepare1
mulf8s::mulf8s_prepare1: scope:[mulf8s]  from mulf8s
  [238] mulf8u_prepare::a#1 = (char)mulf8s::a#0
  [239] call mulf8u_prepare
  to:mulf8s::@1
mulf8s::@1: scope:[mulf8s]  from mulf8s::mulf8s_prepare1
  [240] mulf8s_prepared::b#0 = mulf8s::b#0
  [241] call mulf8s_prepared
  to:mulf8s::@2
mulf8s::@2: scope:[mulf8s]  from mulf8s::@1
  [242] mulf8s::return#0 = (int)mulf8s_prepared::m#4
  to:mulf8s::@return
mulf8s::@return: scope:[mulf8s]  from mulf8s::@2
  [243] return 
  to:@return

int mul8s(signed char a , signed char b)
mul8s: scope:[mul8s]  from mul8s_compare::@13
  [244] mul8u::a#1 = (char)mul8s::a#0
  [245] mul8u::b#0 = (char)mul8s::b#0
  [246] call mul8u
  [247] mul8u::return#2 = mul8u::res#2
  to:mul8s::@5
mul8s::@5: scope:[mul8s]  from mul8s
  [248] mul8s::m#0 = mul8u::return#2
  [249] if(mul8s::a#0>=0) goto mul8s::@1
  to:mul8s::@3
mul8s::@3: scope:[mul8s]  from mul8s::@5
  [250] mul8s::$6 = byte1  mul8s::m#0
  [251] mul8s::$11 = mul8s::$6 - (char)mul8s::b#0
  [252] mul8s::m#1 = mul8s::m#0 byte1= mul8s::$11
  to:mul8s::@1
mul8s::@1: scope:[mul8s]  from mul8s::@3 mul8s::@5
  [253] mul8s::m#5 = phi( mul8s::@3/mul8s::m#1, mul8s::@5/mul8s::m#0 )
  [254] if(mul8s::b#0>=0) goto mul8s::@2
  to:mul8s::@4
mul8s::@4: scope:[mul8s]  from mul8s::@1
  [255] mul8s::$9 = byte1  mul8s::m#5
  [256] mul8s::$12 = mul8s::$9 - (char)mul8s::a#0
  [257] mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12
  to:mul8s::@2
mul8s::@2: scope:[mul8s]  from mul8s::@1 mul8s::@4
  [258] mul8s::m#4 = phi( mul8s::@1/mul8s::m#5, mul8s::@4/mul8s::m#2 )
  to:mul8s::@return
mul8s::@return: scope:[mul8s]  from mul8s::@2
  [259] return 
  to:@return

void mul8s_error(signed char a , signed char b , int ms , int mn , int mf)
mul8s_error: scope:[mul8s_error]  from mul8s_compare::@10
  [260] print_char_cursor#193 = print_line_cursor#0
  [261] call print_str
  to:mul8s_error::@1
mul8s_error::@1: scope:[mul8s_error]  from mul8s_error
  [262] print_schar::b#1 = mul8s_error::a#0
  [263] call print_schar
  to:mul8s_error::@2
mul8s_error::@2: scope:[mul8s_error]  from mul8s_error::@1
  [264] phi()
  [265] call print_str
  to:mul8s_error::@3
mul8s_error::@3: scope:[mul8s_error]  from mul8s_error::@2
  [266] print_schar::b#2 = mul8s_error::b#0
  [267] call print_schar
  to:mul8s_error::@4
mul8s_error::@4: scope:[mul8s_error]  from mul8s_error::@3
  [268] phi()
  [269] call print_str
  to:mul8s_error::@5
mul8s_error::@5: scope:[mul8s_error]  from mul8s_error::@4
  [270] print_sint::w#1 = mul8s_error::ms#0
  [271] call print_sint
  to:mul8s_error::@6
mul8s_error::@6: scope:[mul8s_error]  from mul8s_error::@5
  [272] phi()
  [273] call print_str
  to:mul8s_error::@7
mul8s_error::@7: scope:[mul8s_error]  from mul8s_error::@6
  [274] print_sint::w#2 = mul8s_error::mn#0
  [275] call print_sint
  to:mul8s_error::@8
mul8s_error::@8: scope:[mul8s_error]  from mul8s_error::@7
  [276] phi()
  [277] call print_str
  to:mul8s_error::@9
mul8s_error::@9: scope:[mul8s_error]  from mul8s_error::@8
  [278] print_sint::w#3 = mul8s_error::mf#0
  [279] call print_sint
  to:mul8s_error::@10
mul8s_error::@10: scope:[mul8s_error]  from mul8s_error::@9
  [280] phi()
  [281] call print_ln
  to:mul8s_error::@return
mul8s_error::@return: scope:[mul8s_error]  from mul8s_error::@10
  [282] return 
  to:@return

void print_char(char ch)
print_char: scope:[print_char]  from print_schar::@1 print_schar::@3 print_sint::@1 print_sint::@3 print_str::@2 print_uchar print_uchar::@1
  [283] print_char_cursor#87 = phi( print_schar::@1/print_char_cursor#1, print_schar::@3/print_char_cursor#1, print_sint::@1/print_char_cursor#1, print_sint::@3/print_char_cursor#1, print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#146, print_uchar::@1/print_char_cursor#18 )
  [283] print_char::ch#7 = phi( print_schar::@1/'-', print_schar::@3/' ', print_sint::@1/'-', print_sint::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#5, print_uchar::@1/print_char::ch#6 )
  [284] *print_char_cursor#87 = print_char::ch#7
  [285] print_char_cursor#18 = ++ print_char_cursor#87
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [286] return 
  to:@return

void print_uchar(char b)
print_uchar: scope:[print_uchar]  from mul8u_error::@1 mul8u_error::@3 print_schar::@2 print_uint print_uint::@1
  [287] print_char_cursor#146 = phi( mul8u_error::@1/print_char_cursor#1, mul8u_error::@3/print_char_cursor#1, print_schar::@2/print_char_cursor#18, print_uint/print_char_cursor#145, print_uint::@1/print_char_cursor#18 )
  [287] print_uchar::b#5 = phi( mul8u_error::@1/print_uchar::b#3, mul8u_error::@3/print_uchar::b#4, print_schar::@2/print_uchar::b#0, print_uint/print_uchar::b#1, print_uint::@1/print_uchar::b#2 )
  [288] print_uchar::$0 = print_uchar::b#5 >> 4
  [289] print_char::ch#5 = print_hextab[print_uchar::$0]
  [290] call print_char
  to:print_uchar::@1
print_uchar::@1: scope:[print_uchar]  from print_uchar
  [291] print_uchar::$2 = print_uchar::b#5 & $f
  [292] print_char::ch#6 = print_hextab[print_uchar::$2]
  [293] call print_char
  to:print_uchar::@return
print_uchar::@return: scope:[print_uchar]  from print_uchar::@1
  [294] return 
  to:@return

void mulf8u_prepare(char a)
mulf8u_prepare: scope:[mulf8u_prepare]  from mulf8s::mulf8s_prepare1 mulf8u
  [295] mulf8u_prepare::a#2 = phi( mulf8s::mulf8s_prepare1/mulf8u_prepare::a#1, mulf8u/mulf8u_prepare::a#0 )
  [296] *mulf8u_prepare::memA = mulf8u_prepare::a#2
  asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1  }
  to:mulf8u_prepare::@return
mulf8u_prepare::@return: scope:[mulf8u_prepare]  from mulf8u_prepare
  [298] return 
  to:@return

unsigned int mulf8u_prepared(char b)
mulf8u_prepared: scope:[mulf8u_prepared]  from mulf8s_prepared mulf8u::@1
  [299] mulf8u_prepared::b#2 = phi( mulf8s_prepared/mulf8u_prepared::b#1, mulf8u::@1/mulf8u_prepared::b#0 )
  [300] *mulf8u_prepared::memB = mulf8u_prepared::b#2
  asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB  }
  [302] mulf8u_prepared::return#0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL
  to:mulf8u_prepared::@return
mulf8u_prepared::@return: scope:[mulf8u_prepared]  from mulf8u_prepared
  [303] return 
  to:@return

int mulf8s_prepared(signed char b)
mulf8s_prepared: scope:[mulf8s_prepared]  from mulf8s::@1
  [304] mulf8u_prepared::b#1 = (char)mulf8s_prepared::b#0
  [305] call mulf8u_prepared
  [306] mulf8u_prepared::return#3 = mulf8u_prepared::return#0
  to:mulf8s_prepared::@5
mulf8s_prepared::@5: scope:[mulf8s_prepared]  from mulf8s_prepared
  [307] mulf8s_prepared::m#0 = mulf8u_prepared::return#3
  [308] if(*mulf8s_prepared::memA>=0) goto mulf8s_prepared::@1
  to:mulf8s_prepared::@3
mulf8s_prepared::@3: scope:[mulf8s_prepared]  from mulf8s_prepared::@5
  [309] mulf8s_prepared::$6 = byte1  mulf8s_prepared::m#0
  [310] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (char)mulf8s_prepared::b#0
  [311] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 byte1= mulf8s_prepared::$11
  to:mulf8s_prepared::@1
mulf8s_prepared::@1: scope:[mulf8s_prepared]  from mulf8s_prepared::@3 mulf8s_prepared::@5
  [312] mulf8s_prepared::m#5 = phi( mulf8s_prepared::@3/mulf8s_prepared::m#1, mulf8s_prepared::@5/mulf8s_prepared::m#0 )
  [313] if(mulf8s_prepared::b#0>=0) goto mulf8s_prepared::@2
  to:mulf8s_prepared::@4
mulf8s_prepared::@4: scope:[mulf8s_prepared]  from mulf8s_prepared::@1
  [314] mulf8s_prepared::$9 = byte1  mulf8s_prepared::m#5
  [315] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (char)*mulf8s_prepared::memA
  [316] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12
  to:mulf8s_prepared::@2
mulf8s_prepared::@2: scope:[mulf8s_prepared]  from mulf8s_prepared::@1 mulf8s_prepared::@4
  [317] mulf8s_prepared::m#4 = phi( mulf8s_prepared::@1/mulf8s_prepared::m#5, mulf8s_prepared::@4/mulf8s_prepared::m#2 )
  to:mulf8s_prepared::@return
mulf8s_prepared::@return: scope:[mulf8s_prepared]  from mulf8s_prepared::@2
  [318] return 
  to:@return

void print_schar(signed char b)
print_schar: scope:[print_schar]  from mul8s_error::@1 mul8s_error::@3
  [319] print_schar::b#3 = phi( mul8s_error::@1/print_schar::b#1, mul8s_error::@3/print_schar::b#2 )
  [320] if(print_schar::b#3<0) goto print_schar::@1
  to:print_schar::@3
print_schar::@3: scope:[print_schar]  from print_schar
  [321] phi()
  [322] call print_char
  to:print_schar::@2
print_schar::@2: scope:[print_schar]  from print_schar::@3 print_schar::@4
  [323] print_schar::b#5 = phi( print_schar::@4/print_schar::b#0, print_schar::@3/print_schar::b#3 )
  [324] print_uchar::b#0 = (char)print_schar::b#5
  [325] call print_uchar
  to:print_schar::@return
print_schar::@return: scope:[print_schar]  from print_schar::@2
  [326] return 
  to:@return
print_schar::@1: scope:[print_schar]  from print_schar
  [327] phi()
  [328] call print_char
  to:print_schar::@4
print_schar::@4: scope:[print_schar]  from print_schar::@1
  [329] print_schar::b#0 = - print_schar::b#3
  to:print_schar::@2

void print_sint(int w)
print_sint: scope:[print_sint]  from mul8s_error::@5 mul8s_error::@7 mul8s_error::@9
  [330] print_sint::w#4 = phi( mul8s_error::@5/print_sint::w#1, mul8s_error::@7/print_sint::w#2, mul8s_error::@9/print_sint::w#3 )
  [331] if(print_sint::w#4<0) goto print_sint::@1
  to:print_sint::@3
print_sint::@3: scope:[print_sint]  from print_sint
  [332] phi()
  [333] call print_char
  to:print_sint::@2
print_sint::@2: scope:[print_sint]  from print_sint::@3 print_sint::@4
  [334] print_sint::w#6 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#4 )
  [335] print_uint::w#0 = (unsigned int)print_sint::w#6
  [336] call print_uint
  to:print_sint::@return
print_sint::@return: scope:[print_sint]  from print_sint::@2
  [337] return 
  to:@return
print_sint::@1: scope:[print_sint]  from print_sint
  [338] phi()
  [339] call print_char
  to:print_sint::@4
print_sint::@4: scope:[print_sint]  from print_sint::@1
  [340] print_sint::w#0 = - print_sint::w#4
  to:print_sint::@2


VARIABLE REGISTER WEIGHTS
void main()
void * memset(void *str , char c , unsigned int num)
char memset::c
char *memset::dst
char *memset::dst#1 // 2002.0
char *memset::dst#2 // 1334.6666666666667
char *memset::end
unsigned int memset::num
void *memset::return
void *memset::str
int mul8s(signed char a , signed char b)
char mul8s::$11 // 20002.0
char mul8s::$12 // 20002.0
char mul8s::$6 // 20002.0
char mul8s::$9 // 20002.0
signed char mul8s::a
signed char mul8s::a#0 // 785.8571428571429
signed char mul8s::b
signed char mul8s::b#0 // 1000.1818181818181
unsigned int mul8s::m
unsigned int mul8s::m#0 // 10001.0
unsigned int mul8s::m#1 // 20002.0
unsigned int mul8s::m#2 // 20002.0
unsigned int mul8s::m#4 // 6667.333333333333
unsigned int mul8s::m#5 // 12501.25
int mul8s::return
void mul8s_compare()
signed char mul8s_compare::a
signed char mul8s_compare::a#1 // 202.0
signed char mul8s_compare::a#10 // 122.85185185185186
signed char mul8s_compare::b
signed char mul8s_compare::b#1 // 2002.0
signed char mul8s_compare::b#10 // 240.67999999999998
int mul8s_compare::mf
int mul8s_compare::mf#0 // 118.41176470588235
int mul8s_compare::mn
int mul8s_compare::mn#0 // 167.75
int mul8s_compare::ms
int mul8s_compare::ms#0 // 150.7
char mul8s_compare::ok
char mul8s_compare::ok#3 // 2002.0
char mul8s_compare::ok#4 // 333.6666666666667
void mul8s_error(signed char a , signed char b , int ms , int mn , int mf)
signed char mul8s_error::a
signed char mul8s_error::a#0 // 16.0
signed char mul8s_error::b
signed char mul8s_error::b#0 // 11.2
int mul8s_error::mf
int mul8s_error::mf#0 // 5.894736842105264
int mul8s_error::mn
int mul8s_error::mn#0 // 7.0
int mul8s_error::ms
int mul8s_error::ms#0 // 8.615384615384615
unsigned int mul8u(char a , char b)
char mul8u::$1 // 2.00000002E8
char mul8u::a
char mul8u::a#0 // 1.00000001E8
char mul8u::a#1 // 10001.0
char mul8u::a#2 // 1001.0
char mul8u::a#3 // 6.668333416666667E7
char mul8u::a#6 // 55501.5
char mul8u::b
char mul8u::b#0 // 20002.0
char mul8u::b#1 // 2002.0
char mul8u::b#2 // 11002.0
unsigned int mul8u::mb
unsigned int mul8u::mb#0 // 200002.0
unsigned int mul8u::mb#1 // 2.00000002E8
unsigned int mul8u::mb#2 // 4.287142914285715E7
unsigned int mul8u::res
unsigned int mul8u::res#1 // 2.00000002E8
unsigned int mul8u::res#2 // 4.2858715E7
unsigned int mul8u::res#6 // 1.00000001E8
unsigned int mul8u::return
unsigned int mul8u::return#2 // 20002.0
unsigned int mul8u::return#3 // 2002.0
void mul8u_compare()
char mul8u_compare::a
char mul8u_compare::a#1 // 151.5
char mul8u_compare::a#7 // 119.11111111111111
char mul8u_compare::b
char mul8u_compare::b#1 // 1501.5
char mul8u_compare::b#10 // 200.64
unsigned int mul8u_compare::mf
unsigned int mul8u_compare::mf#0 // 111.83333333333334
unsigned int mul8u_compare::mn
unsigned int mul8u_compare::mn#0 // 167.75
unsigned int mul8u_compare::ms
unsigned int mul8u_compare::ms#0 // 143.52380952380952
char mul8u_compare::ok
char mul8u_compare::ok#3 // 2002.0
char mul8u_compare::ok#4 // 333.6666666666667
void mul8u_error(char a , char b , unsigned int ms , unsigned int mn , unsigned int mf)
char mul8u_error::a
char mul8u_error::a#0 // 16.0
char mul8u_error::b
char mul8u_error::b#0 // 11.2
unsigned int mul8u_error::mf
unsigned int mul8u_error::mf#0 // 5.894736842105264
unsigned int mul8u_error::mn
unsigned int mul8u_error::mn#0 // 7.0
unsigned int mul8u_error::ms
unsigned int mul8u_error::ms#0 // 8.615384615384615
int mulf8s(signed char a , signed char b)
signed char mulf8s::a
signed char mulf8s::a#0 // 333.6666666666667
signed char mulf8s::b
signed char mulf8s::b#0 // 2750.5
signed char mulf8s::mulf8s_prepare1_a
int mulf8s::return
int mulf8s::return#0 // 3667.333333333333
int mulf8s::return#2 // 2002.0
int mulf8s_prepared(signed char b)
char mulf8s_prepared::$11 // 200002.0
char mulf8s_prepared::$12 // 200002.0
char mulf8s_prepared::$6 // 200002.0
char mulf8s_prepared::$9 // 200002.0
signed char mulf8s_prepared::b
signed char mulf8s_prepared::b#0 // 11000.2
unsigned int mulf8s_prepared::m
unsigned int mulf8s_prepared::m#0 // 100001.0
unsigned int mulf8s_prepared::m#1 // 200002.0
unsigned int mulf8s_prepared::m#2 // 200002.0
unsigned int mulf8s_prepared::m#4 // 66667.33333333333
unsigned int mulf8s_prepared::m#5 // 125001.25
int mulf8s_prepared::return
unsigned int mulf8u(char a , char b)
char mulf8u::a
char mulf8u::a#0 // 5501.0
char mulf8u::b
char mulf8u::b#0 // 3667.333333333333
unsigned int mulf8u::return
unsigned int mulf8u::return#0 // 3667.333333333333
unsigned int mulf8u::return#2 // 2002.0
void mulf8u_prepare(char a)
char mulf8u_prepare::a
char mulf8u_prepare::a#0 // 20002.0
char mulf8u_prepare::a#1 // 20002.0
char mulf8u_prepare::a#2 // 120003.0
unsigned int mulf8u_prepared(char b)
char mulf8u_prepared::b
char mulf8u_prepared::b#0 // 20002.0
char mulf8u_prepared::b#1 // 200002.0
char mulf8u_prepared::b#2 // 1110003.0
unsigned int mulf8u_prepared::return
unsigned int mulf8u_prepared::return#0 // 277500.75
unsigned int mulf8u_prepared::return#2 // 20002.0
unsigned int mulf8u_prepared::return#3 // 200002.0
void mulf_init()
char mulf_init::$1 // 202.0
char mulf_init::$4 // 202.0
char mulf_init::$5 // 202.0
char mulf_init::c
char mulf_init::c#1 // 23.307692307692307
char mulf_init::c#2 // 101.0
char mulf_init::dir
char mulf_init::dir#2 // 37.875
char mulf_init::dir#4 // 101.0
unsigned int mulf_init::sqr
unsigned int mulf_init::sqr#1 // 101.0
unsigned int mulf_init::sqr#2 // 202.0
unsigned int mulf_init::sqr#3 // 84.16666666666666
unsigned int mulf_init::sqr#4 // 50.5
char *mulf_init::sqr1_hi
char *mulf_init::sqr1_hi#1 // 67.33333333333333
char *mulf_init::sqr1_hi#2 // 25.25
char *mulf_init::sqr1_lo
char *mulf_init::sqr1_lo#1 // 202.0
char *mulf_init::sqr1_lo#2 // 28.857142857142858
char *mulf_init::sqr2_hi
char *mulf_init::sqr2_hi#1 // 33.666666666666664
char *mulf_init::sqr2_hi#2 // 75.75
char *mulf_init::sqr2_lo
char *mulf_init::sqr2_lo#1 // 202.0
char *mulf_init::sqr2_lo#2 // 44.888888888888886
char mulf_init::x_2
char mulf_init::x_2#1 // 101.0
char mulf_init::x_2#2 // 50.5
char mulf_init::x_2#3 // 60.599999999999994
char mulf_init::x_255
char mulf_init::x_255#1 // 60.599999999999994
char mulf_init::x_255#2 // 80.8
void mulf_init_asm()
void mulf_tables_cmp()
char *mulf_tables_cmp::asm_sqr
char *mulf_tables_cmp::asm_sqr#1 // 101.0
char *mulf_tables_cmp::asm_sqr#2 // 60.599999999999994
char *mulf_tables_cmp::kc_sqr
char *mulf_tables_cmp::kc_sqr#1 // 202.0
char *mulf_tables_cmp::kc_sqr#2 // 40.4
int muls8s(signed char a , signed char b)
signed char muls8s::a
signed char muls8s::a#0 // 1668417.0833333333
signed char muls8s::b
signed char muls8s::b#0 // 1818273.0
signed char muls8s::i
signed char muls8s::i#1 // 2.0000002E7
signed char muls8s::i#2 // 1.0000001E7
signed char muls8s::j
signed char muls8s::j#1 // 2.0000002E7
signed char muls8s::j#2 // 1.0000001E7
int muls8s::m
int muls8s::m#1 // 1.0000001E7
int muls8s::m#2 // 1.0000001E7
int muls8s::m#3 // 1.50000015E7
int muls8s::m#5 // 1.50000015E7
int muls8s::return
int muls8s::return#0 // 6667001.0
int muls8s::return#2 // 2002.0
unsigned int muls8u(char a , char b)
char muls8u::a
char muls8u::a#0 // 1430143.2857142857
char muls8u::b
char muls8u::b#0 // 1666833.6666666665
char muls8u::i
char muls8u::i#1 // 2.0000002E7
char muls8u::i#2 // 1.0000001E7
unsigned int muls8u::m
unsigned int muls8u::m#1 // 1.0000001E7
unsigned int muls8u::m#3 // 1.50000015E7
unsigned int muls8u::return
unsigned int muls8u::return#0 // 3333667.333333333
unsigned int muls8u::return#2 // 2002.0
void print_char(char ch)
char print_char::ch
char print_char::ch#0 // 20002.0
char print_char::ch#5 // 200002.0
char print_char::ch#6 // 200002.0
char print_char::ch#7 // 1210004.0
char *print_char_cursor
char *print_char_cursor#1 // 608.7380952380953
char *print_char_cursor#101 // 3.2682926829268295
char *print_char_cursor#138 // 2559.0
char *print_char_cursor#145 // 5663.5
char *print_char_cursor#146 // 40401.999999999985
char *print_char_cursor#158 // 2044.0
char *print_char_cursor#18 // 22460.760000000002
char *print_char_cursor#192 // 22.0
char *print_char_cursor#193 // 202.0
char *print_char_cursor#231 // 22.0
char *print_char_cursor#87 // 1107004.5
void print_cls()
char *print_line_cursor
char *print_line_cursor#0 // 432.1285714285714
char *print_line_cursor#10 // 1.9523809523809526
char *print_line_cursor#24 // 21003.0
char *print_line_cursor#47 // 1225.0
void print_ln()
void print_schar(signed char b)
signed char print_schar::b
signed char print_schar::b#0 // 2002.0
signed char print_schar::b#1 // 202.0
signed char print_schar::b#2 // 202.0
signed char print_schar::b#3 // 534.1666666666667
signed char print_schar::b#5 // 2002.0
char *print_screen
void print_sint(int w)
int print_sint::w
int print_sint::w#0 // 2002.0
int print_sint::w#1 // 202.0
int print_sint::w#2 // 202.0
int print_sint::w#3 // 202.0
int print_sint::w#4 // 551.0
int print_sint::w#6 // 2002.0
void print_str(char *str)
char *print_str::str
char *print_str::str#0 // 20002.0
char *print_str::str#16 // 10251.25
char *print_str::str#19 // 1001.0
void print_uchar(char b)
char print_uchar::$0 // 200002.0
char print_uchar::$2 // 200002.0
char print_uchar::b
char print_uchar::b#0 // 2002.0
char print_uchar::b#1 // 20002.0
char print_uchar::b#2 // 20002.0
char print_uchar::b#3 // 202.0
char print_uchar::b#4 // 202.0
char print_uchar::b#5 // 55301.75
void print_uint(unsigned int w)
unsigned int print_uint::w
unsigned int print_uint::w#0 // 2002.0
unsigned int print_uint::w#1 // 22.0
unsigned int print_uint::w#2 // 22.0
unsigned int print_uint::w#3 // 202.0
unsigned int print_uint::w#4 // 202.0
unsigned int print_uint::w#5 // 202.0
unsigned int print_uint::w#6 // 7109.333333333333

Initial phi equivalence classes
[ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ]
[ mulf_init::c#2 mulf_init::c#1 ]
[ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
[ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
[ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ]
[ mulf_init::x_255#2 mulf_init::x_255#1 ]
[ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ]
[ mulf_init::dir#2 mulf_init::dir#4 ]
[ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ]
[ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ]
[ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ]
[ mul8u_compare::a#7 mul8u_compare::a#1 ]
[ mul8u_compare::b#10 mul8u_compare::b#1 ]
[ mul8u_compare::ok#3 mul8u_compare::ok#4 ]
[ mul8s_compare::a#10 mul8s_compare::a#1 ]
[ mul8s_compare::b#10 mul8s_compare::b#1 ]
[ mul8s_compare::ok#3 mul8s_compare::ok#4 ]
[ memset::dst#2 memset::dst#1 ]
[ print_str::str#16 print_str::str#19 print_str::str#0 ]
[ print_line_cursor#24 print_line_cursor#47 print_line_cursor#10 print_line_cursor#0 ]
[ print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ]
[ muls8u::i#2 muls8u::i#1 ]
[ muls8u::return#0 muls8u::m#3 muls8u::m#1 ]
[ mul8u::b#2 mul8u::b#0 mul8u::b#1 ]
[ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ]
[ mul8u::res#2 mul8u::res#6 mul8u::res#1 ]
[ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ]
[ muls8s::j#2 muls8s::j#1 ]
[ muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 ]
[ muls8s::i#2 muls8s::i#1 ]
[ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ]
[ print_char::ch#7 print_char::ch#0 print_char::ch#5 print_char::ch#6 ]
[ print_char_cursor#87 print_char_cursor#145 print_char_cursor#138 print_char_cursor#1 print_char_cursor#158 print_char_cursor#192 print_char_cursor#193 print_char_cursor#101 print_char_cursor#18 print_char_cursor#231 print_char_cursor#146 ]
[ print_uchar::b#5 print_uchar::b#3 print_uchar::b#4 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ]
[ mulf8u_prepare::a#2 mulf8u_prepare::a#1 mulf8u_prepare::a#0 ]
[ mulf8u_prepared::b#2 mulf8u_prepared::b#1 mulf8u_prepared::b#0 ]
[ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ]
[ print_schar::b#5 print_schar::b#0 print_schar::b#3 print_schar::b#1 print_schar::b#2 ]
[ print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 ]
Added variable mulf_init::$1 to live range equivalence class [ mulf_init::$1 ]
Added variable mulf_init::$4 to live range equivalence class [ mulf_init::$4 ]
Added variable mulf_init::$5 to live range equivalence class [ mulf_init::$5 ]
Added variable muls8u::a#0 to live range equivalence class [ muls8u::a#0 ]
Added variable muls8u::b#0 to live range equivalence class [ muls8u::b#0 ]
Added variable muls8u::return#2 to live range equivalence class [ muls8u::return#2 ]
Added variable mul8u_compare::ms#0 to live range equivalence class [ mul8u_compare::ms#0 ]
Added variable mulf8u::a#0 to live range equivalence class [ mulf8u::a#0 ]
Added variable mulf8u::b#0 to live range equivalence class [ mulf8u::b#0 ]
Added variable mulf8u::return#2 to live range equivalence class [ mulf8u::return#2 ]
Added variable mul8u_compare::mf#0 to live range equivalence class [ mul8u_compare::mf#0 ]
Added variable mul8u::return#3 to live range equivalence class [ mul8u::return#3 ]
Added variable mul8u_compare::mn#0 to live range equivalence class [ mul8u_compare::mn#0 ]
Added variable mul8u_error::a#0 to live range equivalence class [ mul8u_error::a#0 ]
Added variable mul8u_error::b#0 to live range equivalence class [ mul8u_error::b#0 ]
Added variable mul8u_error::ms#0 to live range equivalence class [ mul8u_error::ms#0 ]
Added variable mul8u_error::mn#0 to live range equivalence class [ mul8u_error::mn#0 ]
Added variable mul8u_error::mf#0 to live range equivalence class [ mul8u_error::mf#0 ]
Added variable muls8s::a#0 to live range equivalence class [ muls8s::a#0 ]
Added variable muls8s::b#0 to live range equivalence class [ muls8s::b#0 ]
Added variable muls8s::return#2 to live range equivalence class [ muls8s::return#2 ]
Added variable mul8s_compare::ms#0 to live range equivalence class [ mul8s_compare::ms#0 ]
Added variable mulf8s::a#0 to live range equivalence class [ mulf8s::a#0 ]
Added variable mulf8s::b#0 to live range equivalence class [ mulf8s::b#0 ]
Added variable mulf8s::return#2 to live range equivalence class [ mulf8s::return#2 ]
Added variable mul8s_compare::mf#0 to live range equivalence class [ mul8s_compare::mf#0 ]
Added variable mul8s::a#0 to live range equivalence class [ mul8s::a#0 ]
Added variable mul8s::b#0 to live range equivalence class [ mul8s::b#0 ]
Added variable mul8s_compare::mn#0 to live range equivalence class [ mul8s_compare::mn#0 ]
Added variable mul8s_error::a#0 to live range equivalence class [ mul8s_error::a#0 ]
Added variable mul8s_error::b#0 to live range equivalence class [ mul8s_error::b#0 ]
Added variable mul8s_error::ms#0 to live range equivalence class [ mul8s_error::ms#0 ]
Added variable mul8s_error::mn#0 to live range equivalence class [ mul8s_error::mn#0 ]
Added variable mul8s_error::mf#0 to live range equivalence class [ mul8s_error::mf#0 ]
Added variable mulf8u_prepared::return#2 to live range equivalence class [ mulf8u_prepared::return#2 ]
Added variable mulf8u::return#0 to live range equivalence class [ mulf8u::return#0 ]
Added variable mul8u::$1 to live range equivalence class [ mul8u::$1 ]
Added variable mulf8s_prepared::b#0 to live range equivalence class [ mulf8s_prepared::b#0 ]
Added variable mulf8s::return#0 to live range equivalence class [ mulf8s::return#0 ]
Added variable mul8u::return#2 to live range equivalence class [ mul8u::return#2 ]
Added variable mul8s::$6 to live range equivalence class [ mul8s::$6 ]
Added variable mul8s::$11 to live range equivalence class [ mul8s::$11 ]
Added variable mul8s::$9 to live range equivalence class [ mul8s::$9 ]
Added variable mul8s::$12 to live range equivalence class [ mul8s::$12 ]
Added variable print_uchar::$0 to live range equivalence class [ print_uchar::$0 ]
Added variable print_uchar::$2 to live range equivalence class [ print_uchar::$2 ]
Added variable mulf8u_prepared::return#0 to live range equivalence class [ mulf8u_prepared::return#0 ]
Added variable mulf8u_prepared::return#3 to live range equivalence class [ mulf8u_prepared::return#3 ]
Added variable mulf8s_prepared::$6 to live range equivalence class [ mulf8s_prepared::$6 ]
Added variable mulf8s_prepared::$11 to live range equivalence class [ mulf8s_prepared::$11 ]
Added variable mulf8s_prepared::$9 to live range equivalence class [ mulf8s_prepared::$9 ]
Added variable mulf8s_prepared::$12 to live range equivalence class [ mulf8s_prepared::$12 ]
Complete equivalence classes
[ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ]
[ mulf_init::c#2 mulf_init::c#1 ]
[ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
[ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
[ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ]
[ mulf_init::x_255#2 mulf_init::x_255#1 ]
[ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ]
[ mulf_init::dir#2 mulf_init::dir#4 ]
[ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ]
[ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ]
[ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ]
[ mul8u_compare::a#7 mul8u_compare::a#1 ]
[ mul8u_compare::b#10 mul8u_compare::b#1 ]
[ mul8u_compare::ok#3 mul8u_compare::ok#4 ]
[ mul8s_compare::a#10 mul8s_compare::a#1 ]
[ mul8s_compare::b#10 mul8s_compare::b#1 ]
[ mul8s_compare::ok#3 mul8s_compare::ok#4 ]
[ memset::dst#2 memset::dst#1 ]
[ print_str::str#16 print_str::str#19 print_str::str#0 ]
[ print_line_cursor#24 print_line_cursor#47 print_line_cursor#10 print_line_cursor#0 ]
[ print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ]
[ muls8u::i#2 muls8u::i#1 ]
[ muls8u::return#0 muls8u::m#3 muls8u::m#1 ]
[ mul8u::b#2 mul8u::b#0 mul8u::b#1 ]
[ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ]
[ mul8u::res#2 mul8u::res#6 mul8u::res#1 ]
[ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ]
[ muls8s::j#2 muls8s::j#1 ]
[ muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 ]
[ muls8s::i#2 muls8s::i#1 ]
[ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ]
[ print_char::ch#7 print_char::ch#0 print_char::ch#5 print_char::ch#6 ]
[ print_char_cursor#87 print_char_cursor#145 print_char_cursor#138 print_char_cursor#1 print_char_cursor#158 print_char_cursor#192 print_char_cursor#193 print_char_cursor#101 print_char_cursor#18 print_char_cursor#231 print_char_cursor#146 ]
[ print_uchar::b#5 print_uchar::b#3 print_uchar::b#4 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ]
[ mulf8u_prepare::a#2 mulf8u_prepare::a#1 mulf8u_prepare::a#0 ]
[ mulf8u_prepared::b#2 mulf8u_prepared::b#1 mulf8u_prepared::b#0 ]
[ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ]
[ print_schar::b#5 print_schar::b#0 print_schar::b#3 print_schar::b#1 print_schar::b#2 ]
[ print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 ]
[ mulf_init::$1 ]
[ mulf_init::$4 ]
[ mulf_init::$5 ]
[ muls8u::a#0 ]
[ muls8u::b#0 ]
[ muls8u::return#2 ]
[ mul8u_compare::ms#0 ]
[ mulf8u::a#0 ]
[ mulf8u::b#0 ]
[ mulf8u::return#2 ]
[ mul8u_compare::mf#0 ]
[ mul8u::return#3 ]
[ mul8u_compare::mn#0 ]
[ mul8u_error::a#0 ]
[ mul8u_error::b#0 ]
[ mul8u_error::ms#0 ]
[ mul8u_error::mn#0 ]
[ mul8u_error::mf#0 ]
[ muls8s::a#0 ]
[ muls8s::b#0 ]
[ muls8s::return#2 ]
[ mul8s_compare::ms#0 ]
[ mulf8s::a#0 ]
[ mulf8s::b#0 ]
[ mulf8s::return#2 ]
[ mul8s_compare::mf#0 ]
[ mul8s::a#0 ]
[ mul8s::b#0 ]
[ mul8s_compare::mn#0 ]
[ mul8s_error::a#0 ]
[ mul8s_error::b#0 ]
[ mul8s_error::ms#0 ]
[ mul8s_error::mn#0 ]
[ mul8s_error::mf#0 ]
[ mulf8u_prepared::return#2 ]
[ mulf8u::return#0 ]
[ mul8u::$1 ]
[ mulf8s_prepared::b#0 ]
[ mulf8s::return#0 ]
[ mul8u::return#2 ]
[ mul8s::$6 ]
[ mul8s::$11 ]
[ mul8s::$9 ]
[ mul8s::$12 ]
[ print_uchar::$0 ]
[ print_uchar::$2 ]
[ mulf8u_prepared::return#0 ]
[ mulf8u_prepared::return#3 ]
[ mulf8s_prepared::$6 ]
[ mulf8s_prepared::$11 ]
[ mulf8s_prepared::$9 ]
[ mulf8s_prepared::$12 ]
Allocated zp[2]:2 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ]
Allocated zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ]
Allocated zp[2]:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
Allocated zp[1]:7 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
Allocated zp[2]:8 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ]
Allocated zp[1]:10 [ mulf_init::x_255#2 mulf_init::x_255#1 ]
Allocated zp[2]:11 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ]
Allocated zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ]
Allocated zp[2]:14 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ]
Allocated zp[2]:16 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ]
Allocated zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ]
Allocated zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ]
Allocated zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ]
Allocated zp[1]:22 [ mul8u_compare::ok#3 mul8u_compare::ok#4 ]
Allocated zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ]
Allocated zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ]
Allocated zp[1]:25 [ mul8s_compare::ok#3 mul8s_compare::ok#4 ]
Allocated zp[2]:26 [ memset::dst#2 memset::dst#1 ]
Allocated zp[2]:28 [ print_str::str#16 print_str::str#19 print_str::str#0 ]
Allocated zp[2]:30 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#10 print_line_cursor#0 ]
Allocated zp[2]:32 [ print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ]
Allocated zp[1]:34 [ muls8u::i#2 muls8u::i#1 ]
Allocated zp[2]:35 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 ]
Allocated zp[1]:37 [ mul8u::b#2 mul8u::b#0 mul8u::b#1 ]
Allocated zp[1]:38 [ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ]
Allocated zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ]
Allocated zp[2]:41 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ]
Allocated zp[1]:43 [ muls8s::j#2 muls8s::j#1 ]
Allocated zp[2]:44 [ muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 ]
Allocated zp[1]:46 [ muls8s::i#2 muls8s::i#1 ]
Allocated zp[2]:47 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ]
Allocated zp[1]:49 [ print_char::ch#7 print_char::ch#0 print_char::ch#5 print_char::ch#6 ]
Allocated zp[2]:50 [ print_char_cursor#87 print_char_cursor#145 print_char_cursor#138 print_char_cursor#1 print_char_cursor#158 print_char_cursor#192 print_char_cursor#193 print_char_cursor#101 print_char_cursor#18 print_char_cursor#231 print_char_cursor#146 ]
Allocated zp[1]:52 [ print_uchar::b#5 print_uchar::b#3 print_uchar::b#4 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ]
Allocated zp[1]:53 [ mulf8u_prepare::a#2 mulf8u_prepare::a#1 mulf8u_prepare::a#0 ]
Allocated zp[1]:54 [ mulf8u_prepared::b#2 mulf8u_prepared::b#1 mulf8u_prepared::b#0 ]
Allocated zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ]
Allocated zp[1]:57 [ print_schar::b#5 print_schar::b#0 print_schar::b#3 print_schar::b#1 print_schar::b#2 ]
Allocated zp[2]:58 [ print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 ]
Allocated zp[1]:60 [ mulf_init::$1 ]
Allocated zp[1]:61 [ mulf_init::$4 ]
Allocated zp[1]:62 [ mulf_init::$5 ]
Allocated zp[1]:63 [ muls8u::a#0 ]
Allocated zp[1]:64 [ muls8u::b#0 ]
Allocated zp[2]:65 [ muls8u::return#2 ]
Allocated zp[2]:67 [ mul8u_compare::ms#0 ]
Allocated zp[1]:69 [ mulf8u::a#0 ]
Allocated zp[1]:70 [ mulf8u::b#0 ]
Allocated zp[2]:71 [ mulf8u::return#2 ]
Allocated zp[2]:73 [ mul8u_compare::mf#0 ]
Allocated zp[2]:75 [ mul8u::return#3 ]
Allocated zp[2]:77 [ mul8u_compare::mn#0 ]
Allocated zp[1]:79 [ mul8u_error::a#0 ]
Allocated zp[1]:80 [ mul8u_error::b#0 ]
Allocated zp[2]:81 [ mul8u_error::ms#0 ]
Allocated zp[2]:83 [ mul8u_error::mn#0 ]
Allocated zp[2]:85 [ mul8u_error::mf#0 ]
Allocated zp[1]:87 [ muls8s::a#0 ]
Allocated zp[1]:88 [ muls8s::b#0 ]
Allocated zp[2]:89 [ muls8s::return#2 ]
Allocated zp[2]:91 [ mul8s_compare::ms#0 ]
Allocated zp[1]:93 [ mulf8s::a#0 ]
Allocated zp[1]:94 [ mulf8s::b#0 ]
Allocated zp[2]:95 [ mulf8s::return#2 ]
Allocated zp[2]:97 [ mul8s_compare::mf#0 ]
Allocated zp[1]:99 [ mul8s::a#0 ]
Allocated zp[1]:100 [ mul8s::b#0 ]
Allocated zp[2]:101 [ mul8s_compare::mn#0 ]
Allocated zp[1]:103 [ mul8s_error::a#0 ]
Allocated zp[1]:104 [ mul8s_error::b#0 ]
Allocated zp[2]:105 [ mul8s_error::ms#0 ]
Allocated zp[2]:107 [ mul8s_error::mn#0 ]
Allocated zp[2]:109 [ mul8s_error::mf#0 ]
Allocated zp[2]:111 [ mulf8u_prepared::return#2 ]
Allocated zp[2]:113 [ mulf8u::return#0 ]
Allocated zp[1]:115 [ mul8u::$1 ]
Allocated zp[1]:116 [ mulf8s_prepared::b#0 ]
Allocated zp[2]:117 [ mulf8s::return#0 ]
Allocated zp[2]:119 [ mul8u::return#2 ]
Allocated zp[1]:121 [ mul8s::$6 ]
Allocated zp[1]:122 [ mul8s::$11 ]
Allocated zp[1]:123 [ mul8s::$9 ]
Allocated zp[1]:124 [ mul8s::$12 ]
Allocated zp[1]:125 [ print_uchar::$0 ]
Allocated zp[1]:126 [ print_uchar::$2 ]
Allocated zp[2]:127 [ mulf8u_prepared::return#0 ]
Allocated zp[2]:129 [ mulf8u_prepared::return#3 ]
Allocated zp[1]:131 [ mulf8s_prepared::$6 ]
Allocated zp[1]:132 [ mulf8s_prepared::$11 ]
Allocated zp[1]:133 [ mulf8s_prepared::$9 ]
Allocated zp[1]:134 [ mulf8s_prepared::$12 ]
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [0] *BG_COLOR = 5 [ ] (  [ ] { }  ) always clobbers reg byte a 
Statement [18] if(mulf_init::sqr1_lo#2!=mulf_sqr1_lo+$200) goto mulf_init::@2 [ mulf_init::sqr1_lo#2 mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( mulf_init:3 [ mulf_init::sqr1_lo#2 mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] { }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:7 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
Statement [20] if(mulf_init::sqr2_lo#2!=mulf_sqr2_lo+$1ff) goto mulf_init::@6 [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( mulf_init:3 [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] { }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:10 [ mulf_init::x_255#2 mulf_init::x_255#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ]
Statement [21] *(mulf_sqr2_lo+$1ff) = *(mulf_sqr1_lo+$100) [ ] ( mulf_init:3 [ ] { }  ) always clobbers reg byte a 
Statement [22] *(mulf_sqr2_hi+$1ff) = *(mulf_sqr1_hi+$100) [ ] ( mulf_init:3 [ ] { }  ) always clobbers reg byte a 
Statement [24] *mulf_init::sqr2_lo#2 = mulf_sqr1_lo[mulf_init::x_255#2] [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( mulf_init:3 [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] { }  ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:10 [ mulf_init::x_255#2 mulf_init::x_255#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ]
Statement [25] *mulf_init::sqr2_hi#2 = mulf_sqr1_hi[mulf_init::x_255#2] [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( mulf_init:3 [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] { }  ) always clobbers reg byte a reg byte y 
Statement [27] mulf_init::x_255#1 = mulf_init::x_255#2 + mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( mulf_init:3 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] { }  ) always clobbers reg byte a 
Statement [33] mulf_init::$1 = mulf_init::c#1 & 1 [ mulf_init::sqr1_lo#2 mulf_init::sqr#4 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$1 ] ( mulf_init:3 [ mulf_init::sqr1_lo#2 mulf_init::sqr#4 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$1 ] { }  ) always clobbers reg byte a 
Statement [39] *mulf_init::sqr1_lo#2 = mulf_init::$4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( mulf_init:3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] { }  ) always clobbers reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:7 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
Statement [41] *mulf_init::sqr1_hi#2 = mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( mulf_init:3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] { }  ) always clobbers reg byte y 
Statement [43] mulf_init::sqr#1 = mulf_init::sqr#3 + mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( mulf_init:3 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] { }  ) always clobbers reg byte a 
Statement asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!-  } always clobbers reg byte a reg byte x reg byte y 
Statement [46] *mulf_init_asm::mem = *mula_sqr1_lo [ ] ( mulf_init_asm:5 [ ] { }  ) always clobbers reg byte a 
Statement [47] *mulf_init_asm::mem = *mula_sqr1_hi [ ] ( mulf_init_asm:5 [ ] { }  ) always clobbers reg byte a 
Statement [48] *mulf_init_asm::mem = *mula_sqr2_lo [ ] ( mulf_init_asm:5 [ ] { }  ) always clobbers reg byte a 
Statement [49] *mulf_init_asm::mem = *mula_sqr2_hi [ ] ( mulf_init_asm:5 [ ] { }  ) always clobbers reg byte a 
Statement [53] if(mulf_tables_cmp::kc_sqr#2<mulf_sqr1_lo+$200*4) goto mulf_tables_cmp::@2 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] ( mulf_tables_cmp:7 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] { }  ) always clobbers reg byte a 
Statement [58] print_char_cursor#231 = print_line_cursor#0 [ print_char_cursor#231 print_line_cursor#0 ] ( mulf_tables_cmp:7 [ print_char_cursor#231 print_line_cursor#0 ] { }  ) always clobbers reg byte a 
Statement [61] if(*mulf_tables_cmp::kc_sqr#2==*mulf_tables_cmp::asm_sqr#2) goto mulf_tables_cmp::@4 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] ( mulf_tables_cmp:7 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] { }  ) always clobbers reg byte a reg byte y 
Statement [62] *BG_COLOR = 2 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] ( mulf_tables_cmp:7 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] { }  ) always clobbers reg byte a 
Statement [64] print_uint::w#1 = (unsigned int)mulf_tables_cmp::asm_sqr#2 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#1 print_char_cursor#1 ] ( mulf_tables_cmp:7 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#1 print_char_cursor#1 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } }  ) always clobbers reg byte a 
Statement [68] print_uint::w#2 = (unsigned int)mulf_tables_cmp::kc_sqr#2 [ print_uint::w#2 print_char_cursor#1 ] ( mulf_tables_cmp:7 [ print_uint::w#2 print_char_cursor#1 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } }  ) always clobbers reg byte a 
Statement [78] muls8u::return#2 = muls8u::return#0 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 muls8u::return#2 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 muls8u::return#2 ] { { muls8u::a#0 = mul8u_compare::a#7 } { muls8u::b#0 = mul8u_compare::b#10 } { muls8u::return#0 = muls8u::return#2 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ]
Statement [79] mul8u_compare::ms#0 = muls8u::return#2 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 ] { { mulf8u::a#0 = mul8u_compare::a#7 } { mulf8u::b#0 = mul8u_compare::b#10 } { mulf8u::return#0 = mulf8u::return#2 } }  ) always clobbers reg byte a 
Statement [83] mulf8u::return#2 = mulf8u::return#0 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mulf8u::return#2 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mulf8u::return#2 ] { { mulf8u::a#0 = mul8u_compare::a#7 } { mulf8u::b#0 = mul8u_compare::b#10 } { mulf8u::return#0 = mulf8u::return#2 } }  ) always clobbers reg byte a 
Statement [84] mul8u_compare::mf#0 = mulf8u::return#2 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 ] { { mul8u::b#1 = mul8u::b#2 mul8u_compare::b#10 } { mul8u::a#2 = mul8u::a#6 mul8u_compare::a#7 } { mul8u::return#3 = mul8u::res#2 } }  ) always clobbers reg byte a 
Statement [88] mul8u::return#3 = mul8u::res#2 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u::return#3 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u::return#3 ] { { mul8u::b#1 = mul8u::b#2 mul8u_compare::b#10 } { mul8u::a#2 = mul8u::a#6 mul8u_compare::a#7 } { mul8u::return#3 = mul8u::res#2 } }  ) always clobbers reg byte a 
Statement [89] mul8u_compare::mn#0 = mul8u::return#3 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] { }  ) always clobbers reg byte a 
Statement [90] if(mul8u_compare::ms#0==mul8u_compare::mf#0) goto mul8u_compare::@3 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] { }  ) always clobbers reg byte a 
Statement [93] if(mul8u_compare::ms#0==mul8u_compare::mn#0) goto mul8u_compare::@14 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 mul8u_compare::ok#4 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 mul8u_compare::ok#4 ] { }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:22 [ mul8u_compare::ok#3 mul8u_compare::ok#4 ]
Statement [97] *BG_COLOR = 2 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [100] mul8u_error::ms#0 = mul8u_compare::ms#0 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::mf#0 mul8u_compare::mn#0 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::mf#0 mul8u_compare::mn#0 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:79 [ mul8u_error::a#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:80 [ mul8u_error::b#0 ]
Statement [101] mul8u_error::mn#0 = mul8u_compare::mn#0 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::mf#0 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::mf#0 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [102] mul8u_error::mf#0 = mul8u_compare::mf#0 [ print_char_cursor#101 print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [116] print_char_cursor#192 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#192 ] ( mul8s_compare:11 [ print_line_cursor#0 print_char_cursor#192 ] { { print_char_cursor#158 = print_char_cursor#192 } }  ) always clobbers reg byte a 
Statement [127] muls8s::return#2 = muls8s::return#0 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 muls8s::return#2 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 muls8s::return#2 ] { { muls8s::a#0 = mul8s_compare::a#10 } { muls8s::b#0 = mul8s_compare::b#10 } { muls8s::return#0 = muls8s::return#2 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ]
Statement [128] mul8s_compare::ms#0 = muls8s::return#2 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [132] mulf8s::return#2 = mulf8s::return#0 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s::return#2 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s::return#2 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [133] mul8s_compare::mf#0 = mulf8s::return#2 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } }  ) always clobbers reg byte a 
Statement [137] mul8s_compare::mn#0 = (int)mul8s::m#4 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] { }  ) always clobbers reg byte a 
Statement [138] if(mul8s_compare::ms#0==mul8s_compare::mf#0) goto mul8s_compare::@6 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] { }  ) always clobbers reg byte a 
Statement [141] if(mul8s_compare::ms#0==mul8s_compare::mn#0) goto mul8s_compare::@15 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 mul8s_compare::ok#4 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 mul8s_compare::ok#4 ] { }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:25 [ mul8s_compare::ok#3 mul8s_compare::ok#4 ]
Statement [145] *BG_COLOR = 2 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [148] mul8s_error::ms#0 = mul8s_compare::ms#0 [ print_line_cursor#0 mul8s_compare::mf#0 mul8s_compare::mn#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::mf#0 mul8s_compare::mn#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:103 [ mul8s_error::a#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:104 [ mul8s_error::b#0 ]
Statement [149] mul8s_error::mn#0 = mul8s_compare::mn#0 [ print_line_cursor#0 mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [150] mul8s_error::mf#0 = mul8s_compare::mf#0 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [155] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:1::memset:14 [ memset::dst#2 ] { }  ) always clobbers reg byte a 
Statement [157] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:1::memset:14 [ memset::dst#2 ] { }  ) always clobbers reg byte a reg byte y 
Statement [161] if(0!=*print_str::str#16) goto print_str::@2 [ print_str::str#16 print_char_cursor#1 ] ( mulf_tables_cmp:7::print_str:55 [ print_str::str#16 print_char_cursor#1 ] { }  mulf_tables_cmp:7::print_str:63 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#16 print_char_cursor#1 ] { }  mulf_tables_cmp:7::print_str:67 [ mulf_tables_cmp::kc_sqr#2 print_str::str#16 print_char_cursor#1 ] { { print_char_cursor#158 = print_char_cursor#18 } }  mul8u_compare:9::print_str:110 [ print_line_cursor#10 print_str::str#16 print_char_cursor#1 ] { { print_char_cursor#101 = print_char_cursor#158 } }  mul8s_compare:11::print_str:117 [ print_line_cursor#0 print_str::str#16 print_char_cursor#1 ] { { print_char_cursor#158 = print_char_cursor#192 } }  mul8u_compare:9::mul8u_error:103::print_str:203 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#101 = print_char_cursor#158 } }  mul8u_compare:9::mul8u_error:103::print_str:207 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8u_compare:9::mul8u_error:103::print_str:211 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8u_compare:9::mul8u_error:103::print_str:215 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8u_compare:9::mul8u_error:103::print_str:219 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_str:261 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#193 } }  mul8s_compare:11::mul8s_error:151::print_str:265 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_str:269 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_str:273 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_str:277 [ print_line_cursor#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:79 [ mul8u_error::a#0 ]
Removing always clobbered register reg byte y as potential for zp[1]:80 [ mul8u_error::b#0 ]
Removing always clobbered register reg byte y as potential for zp[1]:103 [ mul8s_error::a#0 ]
Removing always clobbered register reg byte y as potential for zp[1]:104 [ mul8s_error::b#0 ]
Statement [163] print_char::ch#0 = *print_str::str#16 [ print_str::str#16 print_char_cursor#1 print_char::ch#0 ] ( mulf_tables_cmp:7::print_str:55 [ print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_str:63 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_str:67 [ mulf_tables_cmp::kc_sqr#2 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::print_str:110 [ print_line_cursor#10 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#101 = print_char_cursor#158 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::print_str:117 [ print_line_cursor#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#158 = print_char_cursor#192 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:203 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#101 = print_char_cursor#158 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:207 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:211 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:215 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:219 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:261 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#193 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:265 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:269 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:273 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:277 [ print_line_cursor#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  ) always clobbers reg byte a reg byte y 
Statement [168] print_line_cursor#0 = print_line_cursor#24 + $28 [ print_line_cursor#0 print_char_cursor#138 ] ( mulf_tables_cmp:7::print_ln:57 [ print_line_cursor#0 print_char_cursor#138 ] { { print_char_cursor#1 = print_char_cursor#138 } }  mul8u_compare:9::print_ln:112 [ print_line_cursor#0 print_char_cursor#138 ] { { print_line_cursor#10 = print_line_cursor#47 } { print_char_cursor#1 = print_char_cursor#138 } }  mul8s_compare:11::print_ln:119 [ print_line_cursor#0 print_char_cursor#138 ] { { print_line_cursor#0 = print_line_cursor#47 } { print_char_cursor#1 = print_char_cursor#138 } }  mul8u_compare:9::mul8u_error:103::print_ln:223 [ print_line_cursor#0 print_char_cursor#138 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_line_cursor#10 = print_line_cursor#47 } { print_char_cursor#138 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_ln:281 [ print_line_cursor#0 print_char_cursor#138 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_line_cursor#0 = print_line_cursor#47 } { print_char_cursor#138 = print_char_cursor#18 } }  ) always clobbers reg byte a 
Statement [169] if(print_line_cursor#0<print_char_cursor#138) goto print_ln::@1 [ print_line_cursor#0 print_char_cursor#138 ] ( mulf_tables_cmp:7::print_ln:57 [ print_line_cursor#0 print_char_cursor#138 ] { { print_char_cursor#1 = print_char_cursor#138 } }  mul8u_compare:9::print_ln:112 [ print_line_cursor#0 print_char_cursor#138 ] { { print_line_cursor#10 = print_line_cursor#47 } { print_char_cursor#1 = print_char_cursor#138 } }  mul8s_compare:11::print_ln:119 [ print_line_cursor#0 print_char_cursor#138 ] { { print_line_cursor#0 = print_line_cursor#47 } { print_char_cursor#1 = print_char_cursor#138 } }  mul8u_compare:9::mul8u_error:103::print_ln:223 [ print_line_cursor#0 print_char_cursor#138 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_line_cursor#10 = print_line_cursor#47 } { print_char_cursor#138 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_ln:281 [ print_line_cursor#0 print_char_cursor#138 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_line_cursor#0 = print_line_cursor#47 } { print_char_cursor#138 = print_char_cursor#18 } }  ) always clobbers reg byte a 
Statement [182] muls8u::m#1 = muls8u::m#3 + muls8u::b#0 [ muls8u::a#0 muls8u::b#0 muls8u::i#2 muls8u::m#1 ] ( mul8u_compare:9::muls8u:77 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 muls8u::a#0 muls8u::b#0 muls8u::i#2 muls8u::m#1 ] { { muls8u::a#0 = mul8u_compare::a#7 } { muls8u::b#0 = mul8u_compare::b#10 } { muls8u::return#0 = muls8u::return#2 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:63 [ muls8u::a#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:64 [ muls8u::b#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:34 [ muls8u::i#2 muls8u::i#1 ]
Statement [188] mulf8u_prepared::return#2 = mulf8u_prepared::return#0 [ mulf8u_prepared::return#2 ] ( mul8u_compare:9::mulf8u:82 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mulf8u_prepared::return#2 ] { { mulf8u::a#0 = mul8u_compare::a#7 } { mulf8u::return#0 = mulf8u::return#2 } { mulf8u_prepared::b#0 = mulf8u_prepared::b#2 mulf8u::b#0 mul8u_compare::b#10 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } }  ) always clobbers reg byte a 
Statement [189] mulf8u::return#0 = mulf8u_prepared::return#2 [ mulf8u::return#0 ] ( mul8u_compare:9::mulf8u:82 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mulf8u::return#0 ] { { mulf8u::a#0 = mul8u_compare::a#7 } { mulf8u::b#0 = mul8u_compare::b#10 } { mulf8u::return#0 = mulf8u::return#2 } }  ) always clobbers reg byte a 
Statement [192] mul8u::mb#0 = (unsigned int)mul8u::b#2 [ mul8u::a#6 mul8u::mb#0 ] ( mul8u_compare:9::mul8u:87 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u::a#6 mul8u::mb#0 ] { { mul8u::b#1 = mul8u::b#2 mul8u_compare::b#10 } { mul8u::a#2 = mul8u::a#6 mul8u_compare::a#7 } { mul8u::return#3 = mul8u::res#2 } }  mul8s_compare:11::mul8s:136::mul8u:246 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8u::a#6 mul8u::mb#0 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } { mul8u::b#0 = mul8u::b#2 } { mul8u::a#1 = mul8u::a#6 } { mul8u::return#2 = mul8u::res#2 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:38 [ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:99 [ mul8s::a#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:100 [ mul8s::b#0 ]
Statement [196] mul8u::$1 = mul8u::a#3 & 1 [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] ( mul8u_compare:9::mul8u:87 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] { { mul8u::b#1 = mul8u::b#2 mul8u_compare::b#10 } { mul8u::a#2 = mul8u::a#6 mul8u_compare::a#7 } { mul8u::return#3 = mul8u::res#2 } }  mul8s_compare:11::mul8s:136::mul8u:246 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } { mul8u::b#0 = mul8u::b#2 } { mul8u::a#1 = mul8u::a#6 } { mul8u::return#2 = mul8u::res#2 } }  ) always clobbers reg byte a 
Statement [198] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] ( mul8u_compare:9::mul8u:87 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::b#1 = mul8u::b#2 mul8u_compare::b#10 } { mul8u::a#2 = mul8u::a#6 mul8u_compare::a#7 } { mul8u::return#3 = mul8u::res#2 } }  mul8s_compare:11::mul8s:136::mul8u:246 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } { mul8u::b#0 = mul8u::b#2 } { mul8u::a#1 = mul8u::a#6 } { mul8u::return#2 = mul8u::res#2 } }  ) always clobbers reg byte a 
Statement [212] print_uint::w#3 = mul8u_error::ms#0 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#1 print_uint::w#3 ] ( mul8u_compare:9::mul8u_error:103 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#1 print_uint::w#3 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 } }  ) always clobbers reg byte a 
Statement [216] print_uint::w#4 = mul8u_error::mn#0 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#1 print_uint::w#4 ] ( mul8u_compare:9::mul8u_error:103 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#1 print_uint::w#4 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 } }  ) always clobbers reg byte a 
Statement [220] print_uint::w#5 = mul8u_error::mf#0 [ print_line_cursor#10 print_char_cursor#1 print_uint::w#5 ] ( mul8u_compare:9::mul8u_error:103 [ print_line_cursor#10 print_char_cursor#1 print_uint::w#5 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 } }  ) always clobbers reg byte a 
Statement [231] muls8s::m#1 = muls8s::m#3 + muls8s::b#0 [ muls8s::a#0 muls8s::b#0 muls8s::j#2 muls8s::m#1 ] ( mul8s_compare:11::muls8s:126 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 muls8s::a#0 muls8s::b#0 muls8s::j#2 muls8s::m#1 ] { { muls8s::a#0 = mul8s_compare::a#10 } { muls8s::b#0 = mul8s_compare::b#10 } { muls8s::return#0 = muls8s::return#2 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:87 [ muls8s::a#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:88 [ muls8s::b#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:43 [ muls8s::j#2 muls8s::j#1 ]
Statement [235] muls8s::m#2 = muls8s::m#5 - muls8s::b#0 [ muls8s::a#0 muls8s::b#0 muls8s::i#2 muls8s::m#2 ] ( mul8s_compare:11::muls8s:126 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 muls8s::a#0 muls8s::b#0 muls8s::i#2 muls8s::m#2 ] { { muls8s::a#0 = mul8s_compare::a#10 } { muls8s::b#0 = mul8s_compare::b#10 } { muls8s::return#0 = muls8s::return#2 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:46 [ muls8s::i#2 muls8s::i#1 ]
Statement [242] mulf8s::return#0 = (int)mulf8s_prepared::m#4 [ mulf8s::return#0 ] ( mul8s_compare:11::mulf8s:131 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s::return#0 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [247] mul8u::return#2 = mul8u::res#2 [ mul8s::a#0 mul8s::b#0 mul8u::return#2 ] ( mul8s_compare:11::mul8s:136 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8u::return#2 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } { mul8u::b#0 = mul8u::b#2 } { mul8u::a#1 = mul8u::a#6 } { mul8u::return#2 = mul8u::res#2 } }  ) always clobbers reg byte a 
Statement [248] mul8s::m#0 = mul8u::return#2 [ mul8s::a#0 mul8s::b#0 mul8s::m#0 ] ( mul8s_compare:11::mul8s:136 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8s::m#0 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } }  ) always clobbers reg byte a 
Statement [251] mul8s::$11 = mul8s::$6 - (char)mul8s::b#0 [ mul8s::a#0 mul8s::b#0 mul8s::m#0 mul8s::$11 ] ( mul8s_compare:11::mul8s:136 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8s::m#0 mul8s::$11 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } }  ) always clobbers reg byte a 
Statement [256] mul8s::$12 = mul8s::$9 - (char)mul8s::a#0 [ mul8s::m#5 mul8s::$12 ] ( mul8s_compare:11::mul8s:136 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::m#5 mul8s::$12 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } }  ) always clobbers reg byte a 
Statement [260] print_char_cursor#193 = print_line_cursor#0 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#193 ] ( mul8s_compare:11::mul8s_error:151 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#193 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#193 } }  ) always clobbers reg byte a 
Statement [270] print_sint::w#1 = mul8s_error::ms#0 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#1 ] ( mul8s_compare:11::mul8s_error:151 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } }  ) always clobbers reg byte a 
Statement [274] print_sint::w#2 = mul8s_error::mn#0 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#2 ] ( mul8s_compare:11::mul8s_error:151 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } }  ) always clobbers reg byte a 
Statement [278] print_sint::w#3 = mul8s_error::mf#0 [ print_line_cursor#0 print_char_cursor#1 print_sint::w#3 ] ( mul8s_compare:11::mul8s_error:151 [ print_line_cursor#0 print_char_cursor#1 print_sint::w#3 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [284] *print_char_cursor#87 = print_char::ch#7 [ print_char_cursor#87 ] ( mulf_tables_cmp:7::print_str:55::print_char:164 [ print_str::str#16 print_char_cursor#87 ] { { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_str:63::print_char:164 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#16 print_char_cursor#87 ] { { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_str:67::print_char:164 [ mulf_tables_cmp::kc_sqr#2 print_str::str#16 print_char_cursor#87 ] { { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::print_str:110::print_char:164 [ print_line_cursor#10 print_str::str#16 print_char_cursor#87 ] { { print_char_cursor#101 = print_char_cursor#158 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::print_str:117::print_char:164 [ print_line_cursor#0 print_str::str#16 print_char_cursor#87 ] { { print_char_cursor#158 = print_char_cursor#192 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:203::print_char:164 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#101 = print_char_cursor#158 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:207::print_char:164 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:211::print_char:164 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:215::print_char:164 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:219::print_char:164 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:261::print_char:164 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#193 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:265::print_char:164 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:269::print_char:164 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:273::print_char:164 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:277::print_char:164 [ print_line_cursor#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:173::print_char:290 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:173::print_char:290 [ print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:173::print_char:290 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:173::print_char:290 [ print_line_cursor#10 mul8u_error::mf#0 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:173::print_char:290 [ print_line_cursor#10 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:173::print_char:290 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:173::print_char:290 [ print_line_cursor#0 mul8s_error::mf#0 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:173::print_char:290 [ print_line_cursor#0 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:175::print_char:290 [ mulf_tables_cmp::kc_sqr#2 print_uchar::b#5 print_char_cursor#87 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:175::print_char:290 [ print_uchar::b#5 print_char_cursor#87 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:175::print_char:290 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:175::print_char:290 [ print_line_cursor#10 mul8u_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:175::print_char:290 [ print_line_cursor#10 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:175::print_char:290 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:175::print_char:290 [ print_line_cursor#0 mul8s_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:175::print_char:290 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:205::print_char:290 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#3 = print_uchar::b#5 mul8u_error::a#0 mul8u_compare::a#7 } { print_char_cursor#1 = print_char_cursor#146 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:209::print_char:290 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#4 = print_uchar::b#5 mul8u_error::b#0 mul8u_compare::b#10 } { print_char_cursor#1 = print_char_cursor#146 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_uchar:325::print_char:290 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_uchar:325::print_char:290 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:173::print_char:293 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#6 print_char_cursor#87 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:173::print_char:293 [ print_uint::w#6 print_char_cursor#87 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:173::print_char:293 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:173::print_char:293 [ print_line_cursor#10 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:173::print_char:293 [ print_line_cursor#10 print_uint::w#6 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:173::print_char:293 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:173::print_char:293 [ print_line_cursor#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:173::print_char:293 [ print_line_cursor#0 print_uint::w#6 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:175::print_char:293 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#87 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:175::print_char:293 [ print_char_cursor#87 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:175::print_char:293 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:175::print_char:293 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:175::print_char:293 [ print_line_cursor#10 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:175::print_char:293 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:175::print_char:293 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:175::print_char:293 [ print_line_cursor#0 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:205::print_char:293 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#87 ] { { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#3 = print_uchar::b#5 mul8u_error::a#0 mul8u_compare::a#7 } { print_char_cursor#1 = print_char_cursor#146 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uchar:209::print_char:293 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#4 = print_uchar::b#5 mul8u_error::b#0 mul8u_compare::b#10 } { print_char_cursor#1 = print_char_cursor#146 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_uchar:325::print_char:293 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#87 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_uchar:325::print_char:293 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_char:322 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_schar::b#3 print_char_cursor#87 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_char:322 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_schar::b#3 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_char:328 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_schar::b#3 print_char_cursor#87 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_char:328 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_schar::b#3 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_char:333 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_char:333 [ print_line_cursor#0 mul8s_error::mf#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_char:333 [ print_line_cursor#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_char:339 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_char:339 [ print_line_cursor#0 mul8s_error::mf#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_char:339 [ print_line_cursor#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#87 } }  ) always clobbers reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:52 [ print_uchar::b#5 print_uchar::b#3 print_uchar::b#4 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ]
Removing always clobbered register reg byte y as potential for zp[1]:57 [ print_schar::b#5 print_schar::b#0 print_schar::b#3 print_schar::b#1 print_schar::b#2 ]
Statement [288] print_uchar::$0 = print_uchar::b#5 >> 4 [ print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] ( mulf_tables_cmp:7::print_uint:65::print_uchar:173 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:173 [ print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:173 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:173 [ print_line_cursor#10 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:173 [ print_line_cursor#10 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:173 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:173 [ print_line_cursor#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:173 [ print_line_cursor#0 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:175 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:175 [ print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:175 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:175 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:175 [ print_line_cursor#10 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:175 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:175 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:175 [ print_line_cursor#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:205 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#3 = print_uchar::b#5 mul8u_error::a#0 mul8u_compare::a#7 } { print_char_cursor#1 = print_char_cursor#146 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:209 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#4 = print_uchar::b#5 mul8u_error::b#0 mul8u_compare::b#10 } { print_char_cursor#1 = print_char_cursor#146 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_uchar:325 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_uchar:325 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:52 [ print_uchar::b#5 print_uchar::b#3 print_uchar::b#4 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ]
Statement [291] print_uchar::$2 = print_uchar::b#5 & $f [ print_char_cursor#18 print_uchar::$2 ] ( mulf_tables_cmp:7::print_uint:65::print_uchar:173 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:173 [ print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:173 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:173 [ print_line_cursor#10 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:173 [ print_line_cursor#10 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:173 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:173 [ print_line_cursor#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:173 [ print_line_cursor#0 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:175 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#18 print_uchar::$2 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:175 [ print_char_cursor#18 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:175 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:175 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:175 [ print_line_cursor#10 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:175 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:175 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:175 [ print_line_cursor#0 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:205 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#3 = print_uchar::b#5 mul8u_error::a#0 mul8u_compare::a#7 } { print_char_cursor#1 = print_char_cursor#146 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uchar:209 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#4 = print_uchar::b#5 mul8u_error::b#0 mul8u_compare::b#10 } { print_char_cursor#1 = print_char_cursor#146 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_uchar:325 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_uchar:325 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  ) always clobbers reg byte a 
Statement asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1  } always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:70 [ mulf8u::b#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:94 [ mulf8s::b#0 ]
Statement asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB  } always clobbers reg byte a reg byte x 
Removing always clobbered register reg byte x as potential for zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ]
Removing always clobbered register reg byte x as potential for zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ]
Removing always clobbered register reg byte x as potential for zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ]
Removing always clobbered register reg byte x as potential for zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:116 [ mulf8s_prepared::b#0 ]
Removing always clobbered register reg byte x as potential for zp[1]:116 [ mulf8s_prepared::b#0 ]
Statement [302] mulf8u_prepared::return#0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL [ mulf8u_prepared::return#0 ] ( mul8u_compare:9::mulf8u:82::mulf8u_prepared:187 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mulf8u_prepared::return#0 ] { { mulf8u::a#0 = mul8u_compare::a#7 } { mulf8u::return#0 = mulf8u::return#2 } { mulf8u_prepared::b#0 = mulf8u_prepared::b#2 mulf8u::b#0 mul8u_compare::b#10 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } }  mul8s_compare:11::mulf8s:131::mulf8s_prepared:241::mulf8u_prepared:305 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::b#0 mulf8u_prepared::return#0 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } { mulf8u_prepared::b#1 = mulf8u_prepared::b#2 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#3 } }  ) always clobbers reg byte a 
Statement [306] mulf8u_prepared::return#3 = mulf8u_prepared::return#0 [ mulf8s_prepared::b#0 mulf8u_prepared::return#3 ] ( mul8s_compare:11::mulf8s:131::mulf8s_prepared:241 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::b#0 mulf8u_prepared::return#3 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } { mulf8u_prepared::b#1 = mulf8u_prepared::b#2 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#3 } }  ) always clobbers reg byte a 
Statement [307] mulf8s_prepared::m#0 = mulf8u_prepared::return#3 [ mulf8s_prepared::b#0 mulf8s_prepared::m#0 ] ( mul8s_compare:11::mulf8s:131::mulf8s_prepared:241 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::b#0 mulf8s_prepared::m#0 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [308] if(*mulf8s_prepared::memA>=0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#0 mulf8s_prepared::m#0 ] ( mul8s_compare:11::mulf8s:131::mulf8s_prepared:241 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::b#0 mulf8s_prepared::m#0 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [310] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (char)mulf8s_prepared::b#0 [ mulf8s_prepared::b#0 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] ( mul8s_compare:11::mulf8s:131::mulf8s_prepared:241 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::b#0 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [315] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (char)*mulf8s_prepared::memA [ mulf8s_prepared::m#5 mulf8s_prepared::$12 ] ( mul8s_compare:11::mulf8s:131::mulf8s_prepared:241 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [329] print_schar::b#0 = - print_schar::b#3 [ print_char_cursor#18 print_schar::b#0 ] ( mul8s_compare:11::mul8s_error:151::print_schar:263 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_schar::b#0 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } }  mul8s_compare:11::mul8s_error:151::print_schar:267 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_schar::b#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } }  ) always clobbers reg byte a 
Statement [331] if(print_sint::w#4<0) goto print_sint::@1 [ print_char_cursor#1 print_sint::w#4 ] ( mul8s_compare:11::mul8s_error:151::print_sint:271 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#4 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } }  mul8s_compare:11::mul8s_error:151::print_sint:275 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#4 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } }  mul8s_compare:11::mul8s_error:151::print_sint:279 [ print_line_cursor#0 print_char_cursor#1 print_sint::w#4 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [335] print_uint::w#0 = (unsigned int)print_sint::w#6 [ print_char_cursor#18 print_uint::w#0 ] ( mul8s_compare:11::mul8s_error:151::print_sint:271 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_uint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_sint:275 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#18 print_uint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_sint:279 [ print_line_cursor#0 print_char_cursor#18 print_uint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 } }  ) always clobbers reg byte a 
Statement [340] print_sint::w#0 = - print_sint::w#4 [ print_char_cursor#18 print_sint::w#0 ] ( mul8s_compare:11::mul8s_error:151::print_sint:271 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_sint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } }  mul8s_compare:11::mul8s_error:151::print_sint:275 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#18 print_sint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } }  mul8s_compare:11::mul8s_error:151::print_sint:279 [ print_line_cursor#0 print_char_cursor#18 print_sint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [0] *BG_COLOR = 5 [ ] (  [ ] { }  ) always clobbers reg byte a 
Statement [18] if(mulf_init::sqr1_lo#2!=mulf_sqr1_lo+$200) goto mulf_init::@2 [ mulf_init::sqr1_lo#2 mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( mulf_init:3 [ mulf_init::sqr1_lo#2 mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] { }  ) always clobbers reg byte a 
Statement [20] if(mulf_init::sqr2_lo#2!=mulf_sqr2_lo+$1ff) goto mulf_init::@6 [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( mulf_init:3 [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] { }  ) always clobbers reg byte a 
Statement [21] *(mulf_sqr2_lo+$1ff) = *(mulf_sqr1_lo+$100) [ ] ( mulf_init:3 [ ] { }  ) always clobbers reg byte a 
Statement [22] *(mulf_sqr2_hi+$1ff) = *(mulf_sqr1_hi+$100) [ ] ( mulf_init:3 [ ] { }  ) always clobbers reg byte a 
Statement [24] *mulf_init::sqr2_lo#2 = mulf_sqr1_lo[mulf_init::x_255#2] [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( mulf_init:3 [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] { }  ) always clobbers reg byte a reg byte y 
Statement [25] *mulf_init::sqr2_hi#2 = mulf_sqr1_hi[mulf_init::x_255#2] [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( mulf_init:3 [ mulf_init::sqr2_lo#2 mulf_init::x_255#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] { }  ) always clobbers reg byte a reg byte y 
Statement [27] mulf_init::x_255#1 = mulf_init::x_255#2 + mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( mulf_init:3 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] { }  ) always clobbers reg byte a 
Statement [33] mulf_init::$1 = mulf_init::c#1 & 1 [ mulf_init::sqr1_lo#2 mulf_init::sqr#4 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$1 ] ( mulf_init:3 [ mulf_init::sqr1_lo#2 mulf_init::sqr#4 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$1 ] { }  ) always clobbers reg byte a 
Statement [39] *mulf_init::sqr1_lo#2 = mulf_init::$4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( mulf_init:3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] { }  ) always clobbers reg byte y 
Statement [41] *mulf_init::sqr1_hi#2 = mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( mulf_init:3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] { }  ) always clobbers reg byte y 
Statement [43] mulf_init::sqr#1 = mulf_init::sqr#3 + mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( mulf_init:3 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] { }  ) always clobbers reg byte a 
Statement asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!-  } always clobbers reg byte a reg byte x reg byte y 
Statement [46] *mulf_init_asm::mem = *mula_sqr1_lo [ ] ( mulf_init_asm:5 [ ] { }  ) always clobbers reg byte a 
Statement [47] *mulf_init_asm::mem = *mula_sqr1_hi [ ] ( mulf_init_asm:5 [ ] { }  ) always clobbers reg byte a 
Statement [48] *mulf_init_asm::mem = *mula_sqr2_lo [ ] ( mulf_init_asm:5 [ ] { }  ) always clobbers reg byte a 
Statement [49] *mulf_init_asm::mem = *mula_sqr2_hi [ ] ( mulf_init_asm:5 [ ] { }  ) always clobbers reg byte a 
Statement [53] if(mulf_tables_cmp::kc_sqr#2<mulf_sqr1_lo+$200*4) goto mulf_tables_cmp::@2 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] ( mulf_tables_cmp:7 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] { }  ) always clobbers reg byte a 
Statement [58] print_char_cursor#231 = print_line_cursor#0 [ print_char_cursor#231 print_line_cursor#0 ] ( mulf_tables_cmp:7 [ print_char_cursor#231 print_line_cursor#0 ] { }  ) always clobbers reg byte a 
Statement [61] if(*mulf_tables_cmp::kc_sqr#2==*mulf_tables_cmp::asm_sqr#2) goto mulf_tables_cmp::@4 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] ( mulf_tables_cmp:7 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] { }  ) always clobbers reg byte a reg byte y 
Statement [62] *BG_COLOR = 2 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] ( mulf_tables_cmp:7 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] { }  ) always clobbers reg byte a 
Statement [64] print_uint::w#1 = (unsigned int)mulf_tables_cmp::asm_sqr#2 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#1 print_char_cursor#1 ] ( mulf_tables_cmp:7 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#1 print_char_cursor#1 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } }  ) always clobbers reg byte a 
Statement [68] print_uint::w#2 = (unsigned int)mulf_tables_cmp::kc_sqr#2 [ print_uint::w#2 print_char_cursor#1 ] ( mulf_tables_cmp:7 [ print_uint::w#2 print_char_cursor#1 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } }  ) always clobbers reg byte a 
Statement [78] muls8u::return#2 = muls8u::return#0 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 muls8u::return#2 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 muls8u::return#2 ] { { muls8u::a#0 = mul8u_compare::a#7 } { muls8u::b#0 = mul8u_compare::b#10 } { muls8u::return#0 = muls8u::return#2 } }  ) always clobbers reg byte a 
Statement [79] mul8u_compare::ms#0 = muls8u::return#2 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 ] { { mulf8u::a#0 = mul8u_compare::a#7 } { mulf8u::b#0 = mul8u_compare::b#10 } { mulf8u::return#0 = mulf8u::return#2 } }  ) always clobbers reg byte a 
Statement [83] mulf8u::return#2 = mulf8u::return#0 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mulf8u::return#2 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mulf8u::return#2 ] { { mulf8u::a#0 = mul8u_compare::a#7 } { mulf8u::b#0 = mul8u_compare::b#10 } { mulf8u::return#0 = mulf8u::return#2 } }  ) always clobbers reg byte a 
Statement [84] mul8u_compare::mf#0 = mulf8u::return#2 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 ] { { mul8u::b#1 = mul8u::b#2 mul8u_compare::b#10 } { mul8u::a#2 = mul8u::a#6 mul8u_compare::a#7 } { mul8u::return#3 = mul8u::res#2 } }  ) always clobbers reg byte a 
Statement [88] mul8u::return#3 = mul8u::res#2 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u::return#3 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u::return#3 ] { { mul8u::b#1 = mul8u::b#2 mul8u_compare::b#10 } { mul8u::a#2 = mul8u::a#6 mul8u_compare::a#7 } { mul8u::return#3 = mul8u::res#2 } }  ) always clobbers reg byte a 
Statement [89] mul8u_compare::mn#0 = mul8u::return#3 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] { }  ) always clobbers reg byte a 
Statement [90] if(mul8u_compare::ms#0==mul8u_compare::mf#0) goto mul8u_compare::@3 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] { }  ) always clobbers reg byte a 
Statement [93] if(mul8u_compare::ms#0==mul8u_compare::mn#0) goto mul8u_compare::@14 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 mul8u_compare::ok#4 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 mul8u_compare::ok#4 ] { }  ) always clobbers reg byte a 
Statement [97] *BG_COLOR = 2 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u_compare::mn#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [100] mul8u_error::ms#0 = mul8u_compare::ms#0 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::mf#0 mul8u_compare::mn#0 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::mf#0 mul8u_compare::mn#0 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [101] mul8u_error::mn#0 = mul8u_compare::mn#0 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::mf#0 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::mf#0 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [102] mul8u_error::mf#0 = mul8u_compare::mf#0 [ print_char_cursor#101 print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 ] ( mul8u_compare:9 [ print_char_cursor#101 print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [116] print_char_cursor#192 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#192 ] ( mul8s_compare:11 [ print_line_cursor#0 print_char_cursor#192 ] { { print_char_cursor#158 = print_char_cursor#192 } }  ) always clobbers reg byte a 
Statement [127] muls8s::return#2 = muls8s::return#0 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 muls8s::return#2 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 muls8s::return#2 ] { { muls8s::a#0 = mul8s_compare::a#10 } { muls8s::b#0 = mul8s_compare::b#10 } { muls8s::return#0 = muls8s::return#2 } }  ) always clobbers reg byte a 
Statement [128] mul8s_compare::ms#0 = muls8s::return#2 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [132] mulf8s::return#2 = mulf8s::return#0 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s::return#2 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s::return#2 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [133] mul8s_compare::mf#0 = mulf8s::return#2 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } }  ) always clobbers reg byte a 
Statement [137] mul8s_compare::mn#0 = (int)mul8s::m#4 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] { }  ) always clobbers reg byte a 
Statement [138] if(mul8s_compare::ms#0==mul8s_compare::mf#0) goto mul8s_compare::@6 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] { }  ) always clobbers reg byte a 
Statement [141] if(mul8s_compare::ms#0==mul8s_compare::mn#0) goto mul8s_compare::@15 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 mul8s_compare::ok#4 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 mul8s_compare::ok#4 ] { }  ) always clobbers reg byte a 
Statement [145] *BG_COLOR = 2 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s_compare::mn#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [148] mul8s_error::ms#0 = mul8s_compare::ms#0 [ print_line_cursor#0 mul8s_compare::mf#0 mul8s_compare::mn#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::mf#0 mul8s_compare::mn#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [149] mul8s_error::mn#0 = mul8s_compare::mn#0 [ print_line_cursor#0 mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [150] mul8s_error::mf#0 = mul8s_compare::mf#0 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 ] ( mul8s_compare:11 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [155] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:1::memset:14 [ memset::dst#2 ] { }  ) always clobbers reg byte a 
Statement [157] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:1::memset:14 [ memset::dst#2 ] { }  ) always clobbers reg byte a reg byte y 
Statement [161] if(0!=*print_str::str#16) goto print_str::@2 [ print_str::str#16 print_char_cursor#1 ] ( mulf_tables_cmp:7::print_str:55 [ print_str::str#16 print_char_cursor#1 ] { }  mulf_tables_cmp:7::print_str:63 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#16 print_char_cursor#1 ] { }  mulf_tables_cmp:7::print_str:67 [ mulf_tables_cmp::kc_sqr#2 print_str::str#16 print_char_cursor#1 ] { { print_char_cursor#158 = print_char_cursor#18 } }  mul8u_compare:9::print_str:110 [ print_line_cursor#10 print_str::str#16 print_char_cursor#1 ] { { print_char_cursor#101 = print_char_cursor#158 } }  mul8s_compare:11::print_str:117 [ print_line_cursor#0 print_str::str#16 print_char_cursor#1 ] { { print_char_cursor#158 = print_char_cursor#192 } }  mul8u_compare:9::mul8u_error:103::print_str:203 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#101 = print_char_cursor#158 } }  mul8u_compare:9::mul8u_error:103::print_str:207 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8u_compare:9::mul8u_error:103::print_str:211 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8u_compare:9::mul8u_error:103::print_str:215 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8u_compare:9::mul8u_error:103::print_str:219 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_str:261 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#193 } }  mul8s_compare:11::mul8s_error:151::print_str:265 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_str:269 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_str:273 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_str:277 [ print_line_cursor#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } }  ) always clobbers reg byte a reg byte y 
Statement [163] print_char::ch#0 = *print_str::str#16 [ print_str::str#16 print_char_cursor#1 print_char::ch#0 ] ( mulf_tables_cmp:7::print_str:55 [ print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_str:63 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_str:67 [ mulf_tables_cmp::kc_sqr#2 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::print_str:110 [ print_line_cursor#10 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#101 = print_char_cursor#158 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::print_str:117 [ print_line_cursor#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#158 = print_char_cursor#192 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:203 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#101 = print_char_cursor#158 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:207 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:211 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:215 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:219 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:261 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#193 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:265 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:269 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:273 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:277 [ print_line_cursor#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#1 print_char::ch#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  ) always clobbers reg byte a reg byte y 
Statement [168] print_line_cursor#0 = print_line_cursor#24 + $28 [ print_line_cursor#0 print_char_cursor#138 ] ( mulf_tables_cmp:7::print_ln:57 [ print_line_cursor#0 print_char_cursor#138 ] { { print_char_cursor#1 = print_char_cursor#138 } }  mul8u_compare:9::print_ln:112 [ print_line_cursor#0 print_char_cursor#138 ] { { print_line_cursor#10 = print_line_cursor#47 } { print_char_cursor#1 = print_char_cursor#138 } }  mul8s_compare:11::print_ln:119 [ print_line_cursor#0 print_char_cursor#138 ] { { print_line_cursor#0 = print_line_cursor#47 } { print_char_cursor#1 = print_char_cursor#138 } }  mul8u_compare:9::mul8u_error:103::print_ln:223 [ print_line_cursor#0 print_char_cursor#138 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_line_cursor#10 = print_line_cursor#47 } { print_char_cursor#138 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_ln:281 [ print_line_cursor#0 print_char_cursor#138 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_line_cursor#0 = print_line_cursor#47 } { print_char_cursor#138 = print_char_cursor#18 } }  ) always clobbers reg byte a 
Statement [169] if(print_line_cursor#0<print_char_cursor#138) goto print_ln::@1 [ print_line_cursor#0 print_char_cursor#138 ] ( mulf_tables_cmp:7::print_ln:57 [ print_line_cursor#0 print_char_cursor#138 ] { { print_char_cursor#1 = print_char_cursor#138 } }  mul8u_compare:9::print_ln:112 [ print_line_cursor#0 print_char_cursor#138 ] { { print_line_cursor#10 = print_line_cursor#47 } { print_char_cursor#1 = print_char_cursor#138 } }  mul8s_compare:11::print_ln:119 [ print_line_cursor#0 print_char_cursor#138 ] { { print_line_cursor#0 = print_line_cursor#47 } { print_char_cursor#1 = print_char_cursor#138 } }  mul8u_compare:9::mul8u_error:103::print_ln:223 [ print_line_cursor#0 print_char_cursor#138 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_line_cursor#10 = print_line_cursor#47 } { print_char_cursor#138 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_ln:281 [ print_line_cursor#0 print_char_cursor#138 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_line_cursor#0 = print_line_cursor#47 } { print_char_cursor#138 = print_char_cursor#18 } }  ) always clobbers reg byte a 
Statement [182] muls8u::m#1 = muls8u::m#3 + muls8u::b#0 [ muls8u::a#0 muls8u::b#0 muls8u::i#2 muls8u::m#1 ] ( mul8u_compare:9::muls8u:77 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 muls8u::a#0 muls8u::b#0 muls8u::i#2 muls8u::m#1 ] { { muls8u::a#0 = mul8u_compare::a#7 } { muls8u::b#0 = mul8u_compare::b#10 } { muls8u::return#0 = muls8u::return#2 } }  ) always clobbers reg byte a 
Statement [188] mulf8u_prepared::return#2 = mulf8u_prepared::return#0 [ mulf8u_prepared::return#2 ] ( mul8u_compare:9::mulf8u:82 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mulf8u_prepared::return#2 ] { { mulf8u::a#0 = mul8u_compare::a#7 } { mulf8u::return#0 = mulf8u::return#2 } { mulf8u_prepared::b#0 = mulf8u_prepared::b#2 mulf8u::b#0 mul8u_compare::b#10 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } }  ) always clobbers reg byte a 
Statement [189] mulf8u::return#0 = mulf8u_prepared::return#2 [ mulf8u::return#0 ] ( mul8u_compare:9::mulf8u:82 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mulf8u::return#0 ] { { mulf8u::a#0 = mul8u_compare::a#7 } { mulf8u::b#0 = mul8u_compare::b#10 } { mulf8u::return#0 = mulf8u::return#2 } }  ) always clobbers reg byte a 
Statement [192] mul8u::mb#0 = (unsigned int)mul8u::b#2 [ mul8u::a#6 mul8u::mb#0 ] ( mul8u_compare:9::mul8u:87 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u::a#6 mul8u::mb#0 ] { { mul8u::b#1 = mul8u::b#2 mul8u_compare::b#10 } { mul8u::a#2 = mul8u::a#6 mul8u_compare::a#7 } { mul8u::return#3 = mul8u::res#2 } }  mul8s_compare:11::mul8s:136::mul8u:246 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8u::a#6 mul8u::mb#0 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } { mul8u::b#0 = mul8u::b#2 } { mul8u::a#1 = mul8u::a#6 } { mul8u::return#2 = mul8u::res#2 } }  ) always clobbers reg byte a 
Statement [196] mul8u::$1 = mul8u::a#3 & 1 [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] ( mul8u_compare:9::mul8u:87 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] { { mul8u::b#1 = mul8u::b#2 mul8u_compare::b#10 } { mul8u::a#2 = mul8u::a#6 mul8u_compare::a#7 } { mul8u::return#3 = mul8u::res#2 } }  mul8s_compare:11::mul8s:136::mul8u:246 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } { mul8u::b#0 = mul8u::b#2 } { mul8u::a#1 = mul8u::a#6 } { mul8u::return#2 = mul8u::res#2 } }  ) always clobbers reg byte a 
Statement [198] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] ( mul8u_compare:9::mul8u:87 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mul8u_compare::mf#0 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::b#1 = mul8u::b#2 mul8u_compare::b#10 } { mul8u::a#2 = mul8u::a#6 mul8u_compare::a#7 } { mul8u::return#3 = mul8u::res#2 } }  mul8s_compare:11::mul8s:136::mul8u:246 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } { mul8u::b#0 = mul8u::b#2 } { mul8u::a#1 = mul8u::a#6 } { mul8u::return#2 = mul8u::res#2 } }  ) always clobbers reg byte a 
Statement [212] print_uint::w#3 = mul8u_error::ms#0 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#1 print_uint::w#3 ] ( mul8u_compare:9::mul8u_error:103 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#1 print_uint::w#3 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 } }  ) always clobbers reg byte a 
Statement [216] print_uint::w#4 = mul8u_error::mn#0 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#1 print_uint::w#4 ] ( mul8u_compare:9::mul8u_error:103 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#1 print_uint::w#4 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 } }  ) always clobbers reg byte a 
Statement [220] print_uint::w#5 = mul8u_error::mf#0 [ print_line_cursor#10 print_char_cursor#1 print_uint::w#5 ] ( mul8u_compare:9::mul8u_error:103 [ print_line_cursor#10 print_char_cursor#1 print_uint::w#5 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 } }  ) always clobbers reg byte a 
Statement [231] muls8s::m#1 = muls8s::m#3 + muls8s::b#0 [ muls8s::a#0 muls8s::b#0 muls8s::j#2 muls8s::m#1 ] ( mul8s_compare:11::muls8s:126 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 muls8s::a#0 muls8s::b#0 muls8s::j#2 muls8s::m#1 ] { { muls8s::a#0 = mul8s_compare::a#10 } { muls8s::b#0 = mul8s_compare::b#10 } { muls8s::return#0 = muls8s::return#2 } }  ) always clobbers reg byte a 
Statement [235] muls8s::m#2 = muls8s::m#5 - muls8s::b#0 [ muls8s::a#0 muls8s::b#0 muls8s::i#2 muls8s::m#2 ] ( mul8s_compare:11::muls8s:126 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 muls8s::a#0 muls8s::b#0 muls8s::i#2 muls8s::m#2 ] { { muls8s::a#0 = mul8s_compare::a#10 } { muls8s::b#0 = mul8s_compare::b#10 } { muls8s::return#0 = muls8s::return#2 } }  ) always clobbers reg byte a 
Statement [242] mulf8s::return#0 = (int)mulf8s_prepared::m#4 [ mulf8s::return#0 ] ( mul8s_compare:11::mulf8s:131 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s::return#0 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [247] mul8u::return#2 = mul8u::res#2 [ mul8s::a#0 mul8s::b#0 mul8u::return#2 ] ( mul8s_compare:11::mul8s:136 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8u::return#2 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } { mul8u::b#0 = mul8u::b#2 } { mul8u::a#1 = mul8u::a#6 } { mul8u::return#2 = mul8u::res#2 } }  ) always clobbers reg byte a 
Statement [248] mul8s::m#0 = mul8u::return#2 [ mul8s::a#0 mul8s::b#0 mul8s::m#0 ] ( mul8s_compare:11::mul8s:136 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8s::m#0 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } }  ) always clobbers reg byte a 
Statement [251] mul8s::$11 = mul8s::$6 - (char)mul8s::b#0 [ mul8s::a#0 mul8s::b#0 mul8s::m#0 mul8s::$11 ] ( mul8s_compare:11::mul8s:136 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::a#0 mul8s::b#0 mul8s::m#0 mul8s::$11 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } }  ) always clobbers reg byte a 
Statement [256] mul8s::$12 = mul8s::$9 - (char)mul8s::a#0 [ mul8s::m#5 mul8s::$12 ] ( mul8s_compare:11::mul8s:136 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 mul8s::m#5 mul8s::$12 ] { { mul8s::a#0 = mul8s_compare::a#10 } { mul8s::b#0 = mul8s_compare::b#10 } }  ) always clobbers reg byte a 
Statement [260] print_char_cursor#193 = print_line_cursor#0 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#193 ] ( mul8s_compare:11::mul8s_error:151 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#193 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#193 } }  ) always clobbers reg byte a 
Statement [270] print_sint::w#1 = mul8s_error::ms#0 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#1 ] ( mul8s_compare:11::mul8s_error:151 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#1 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } }  ) always clobbers reg byte a 
Statement [274] print_sint::w#2 = mul8s_error::mn#0 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#2 ] ( mul8s_compare:11::mul8s_error:151 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } }  ) always clobbers reg byte a 
Statement [278] print_sint::w#3 = mul8s_error::mf#0 [ print_line_cursor#0 print_char_cursor#1 print_sint::w#3 ] ( mul8s_compare:11::mul8s_error:151 [ print_line_cursor#0 print_char_cursor#1 print_sint::w#3 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [284] *print_char_cursor#87 = print_char::ch#7 [ print_char_cursor#87 ] ( mulf_tables_cmp:7::print_str:55::print_char:164 [ print_str::str#16 print_char_cursor#87 ] { { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_str:63::print_char:164 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#16 print_char_cursor#87 ] { { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_str:67::print_char:164 [ mulf_tables_cmp::kc_sqr#2 print_str::str#16 print_char_cursor#87 ] { { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::print_str:110::print_char:164 [ print_line_cursor#10 print_str::str#16 print_char_cursor#87 ] { { print_char_cursor#101 = print_char_cursor#158 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::print_str:117::print_char:164 [ print_line_cursor#0 print_str::str#16 print_char_cursor#87 ] { { print_char_cursor#158 = print_char_cursor#192 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:203::print_char:164 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#101 = print_char_cursor#158 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:207::print_char:164 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:211::print_char:164 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:215::print_char:164 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_str:219::print_char:164 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:261::print_char:164 [ print_line_cursor#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#193 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:265::print_char:164 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:269::print_char:164 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:273::print_char:164 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_str:277::print_char:164 [ print_line_cursor#0 mul8s_error::mf#0 print_str::str#16 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_char_cursor#158 = print_char_cursor#18 } { print_char::ch#0 = print_char::ch#7 } { print_char_cursor#1 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:173::print_char:290 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:173::print_char:290 [ print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:173::print_char:290 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:173::print_char:290 [ print_line_cursor#10 mul8u_error::mf#0 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:173::print_char:290 [ print_line_cursor#10 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:173::print_char:290 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:173::print_char:290 [ print_line_cursor#0 mul8s_error::mf#0 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:173::print_char:290 [ print_line_cursor#0 print_uint::w#6 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:175::print_char:290 [ mulf_tables_cmp::kc_sqr#2 print_uchar::b#5 print_char_cursor#87 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:175::print_char:290 [ print_uchar::b#5 print_char_cursor#87 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:175::print_char:290 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:175::print_char:290 [ print_line_cursor#10 mul8u_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:175::print_char:290 [ print_line_cursor#10 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:175::print_char:290 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:175::print_char:290 [ print_line_cursor#0 mul8s_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:175::print_char:290 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:205::print_char:290 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#3 = print_uchar::b#5 mul8u_error::a#0 mul8u_compare::a#7 } { print_char_cursor#1 = print_char_cursor#146 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:209::print_char:290 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#4 = print_uchar::b#5 mul8u_error::b#0 mul8u_compare::b#10 } { print_char_cursor#1 = print_char_cursor#146 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_uchar:325::print_char:290 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_uchar:325::print_char:290 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uchar::b#5 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:173::print_char:293 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#6 print_char_cursor#87 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:173::print_char:293 [ print_uint::w#6 print_char_cursor#87 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:173::print_char:293 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:173::print_char:293 [ print_line_cursor#10 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:173::print_char:293 [ print_line_cursor#10 print_uint::w#6 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:173::print_char:293 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:173::print_char:293 [ print_line_cursor#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:173::print_char:293 [ print_line_cursor#0 print_uint::w#6 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:175::print_char:293 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#87 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:175::print_char:293 [ print_char_cursor#87 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:175::print_char:293 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:175::print_char:293 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:175::print_char:293 [ print_line_cursor#10 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:175::print_char:293 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:175::print_char:293 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:175::print_char:293 [ print_line_cursor#0 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:205::print_char:293 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#87 ] { { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#3 = print_uchar::b#5 mul8u_error::a#0 mul8u_compare::a#7 } { print_char_cursor#1 = print_char_cursor#146 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uchar:209::print_char:293 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#87 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#4 = print_uchar::b#5 mul8u_error::b#0 mul8u_compare::b#10 } { print_char_cursor#1 = print_char_cursor#146 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_uchar:325::print_char:293 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#87 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_uchar:325::print_char:293 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_char:322 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_schar::b#3 print_char_cursor#87 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_char:322 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_schar::b#3 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_char:328 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_schar::b#3 print_char_cursor#87 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_char:328 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_schar::b#3 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_char:333 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_char:333 [ print_line_cursor#0 mul8s_error::mf#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_char:333 [ print_line_cursor#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_char:339 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_char:339 [ print_line_cursor#0 mul8s_error::mf#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_char:339 [ print_line_cursor#0 print_sint::w#4 print_char_cursor#87 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#87 } }  ) always clobbers reg byte y 
Statement [288] print_uchar::$0 = print_uchar::b#5 >> 4 [ print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] ( mulf_tables_cmp:7::print_uint:65::print_uchar:173 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:173 [ print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:173 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:173 [ print_line_cursor#10 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:173 [ print_line_cursor#10 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:173 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:173 [ print_line_cursor#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:173 [ print_line_cursor#0 print_uint::w#6 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:175 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:175 [ print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:175 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:175 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:175 [ print_line_cursor#10 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:175 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:175 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:175 [ print_line_cursor#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:205 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#3 = print_uchar::b#5 mul8u_error::a#0 mul8u_compare::a#7 } { print_char_cursor#1 = print_char_cursor#146 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:209 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#4 = print_uchar::b#5 mul8u_error::b#0 mul8u_compare::b#10 } { print_char_cursor#1 = print_char_cursor#146 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_uchar:325 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_uchar:325 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#146 print_uchar::b#5 print_uchar::$0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#5 = print_char::ch#7 } }  ) always clobbers reg byte a 
Statement [291] print_uchar::$2 = print_uchar::b#5 & $f [ print_char_cursor#18 print_uchar::$2 ] ( mulf_tables_cmp:7::print_uint:65::print_uchar:173 [ mulf_tables_cmp::kc_sqr#2 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:173 [ print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:173 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:173 [ print_line_cursor#10 mul8u_error::mf#0 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:173 [ print_line_cursor#10 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 print_char_cursor#146 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:173 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:173 [ print_line_cursor#0 mul8s_error::mf#0 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:173 [ print_line_cursor#0 print_uint::w#6 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:65::print_uchar:175 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#18 print_uchar::$2 ] { { print_uint::w#1 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mulf_tables_cmp:7::print_uint:69::print_uchar:175 [ print_char_cursor#18 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#6 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:213::print_uchar:175 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#3 = print_uint::w#6 mul8u_error::ms#0 mul8u_compare::ms#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:217::print_uchar:175 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uint::w#4 = print_uint::w#6 mul8u_error::mn#0 mul8u_compare::mn#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uint:221::print_uchar:175 [ print_line_cursor#10 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { print_uint::w#5 = print_uint::w#6 mul8u_error::mf#0 mul8u_compare::mf#0 } { print_char_cursor#1 = print_char_cursor#145 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:271::print_uint:336::print_uchar:175 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:275::print_uint:336::print_uchar:175 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_sint:279::print_uint:336::print_uchar:175 [ print_line_cursor#0 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 print_char_cursor#146 print_char_cursor#87 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#6 = print_char::ch#7 } }  mul8u_compare:9::mul8u_error:103::print_uchar:205 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::b#0 = mul8u_compare::b#10 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#3 = print_uchar::b#5 mul8u_error::a#0 mul8u_compare::a#7 } { print_char_cursor#1 = print_char_cursor#146 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8u_compare:9::mul8u_error:103::print_uchar:209 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8u_error::a#0 = mul8u_compare::a#7 } { mul8u_error::ms#0 = mul8u_compare::ms#0 } { mul8u_error::mn#0 = mul8u_compare::mn#0 } { mul8u_error::mf#0 = mul8u_compare::mf#0 } { print_uchar::b#4 = print_uchar::b#5 mul8u_error::b#0 mul8u_compare::b#10 } { print_char_cursor#1 = print_char_cursor#146 } { print_char::ch#6 = print_char::ch#7 } { print_char_cursor#18 = print_char_cursor#87 } }  mul8s_compare:11::mul8s_error:151::print_schar:263::print_uchar:325 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  mul8s_compare:11::mul8s_error:151::print_schar:267::print_uchar:325 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_uchar::$2 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } { print_uchar::b#0 = print_uchar::b#5 } { print_char_cursor#146 = print_char_cursor#18 print_char_cursor#87 } { print_char::ch#6 = print_char::ch#7 } }  ) always clobbers reg byte a 
Statement asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1  } always clobbers reg byte a 
Statement asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB  } always clobbers reg byte a reg byte x 
Statement [302] mulf8u_prepared::return#0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL [ mulf8u_prepared::return#0 ] ( mul8u_compare:9::mulf8u:82::mulf8u_prepared:187 [ print_char_cursor#101 print_line_cursor#10 mul8u_compare::a#7 mul8u_compare::b#10 mul8u_compare::ms#0 mulf8u_prepared::return#0 ] { { mulf8u::a#0 = mul8u_compare::a#7 } { mulf8u::return#0 = mulf8u::return#2 } { mulf8u_prepared::b#0 = mulf8u_prepared::b#2 mulf8u::b#0 mul8u_compare::b#10 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } }  mul8s_compare:11::mulf8s:131::mulf8s_prepared:241::mulf8u_prepared:305 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::b#0 mulf8u_prepared::return#0 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } { mulf8u_prepared::b#1 = mulf8u_prepared::b#2 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#3 } }  ) always clobbers reg byte a 
Statement [306] mulf8u_prepared::return#3 = mulf8u_prepared::return#0 [ mulf8s_prepared::b#0 mulf8u_prepared::return#3 ] ( mul8s_compare:11::mulf8s:131::mulf8s_prepared:241 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::b#0 mulf8u_prepared::return#3 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } { mulf8u_prepared::b#1 = mulf8u_prepared::b#2 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#3 } }  ) always clobbers reg byte a 
Statement [307] mulf8s_prepared::m#0 = mulf8u_prepared::return#3 [ mulf8s_prepared::b#0 mulf8s_prepared::m#0 ] ( mul8s_compare:11::mulf8s:131::mulf8s_prepared:241 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::b#0 mulf8s_prepared::m#0 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [308] if(*mulf8s_prepared::memA>=0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#0 mulf8s_prepared::m#0 ] ( mul8s_compare:11::mulf8s:131::mulf8s_prepared:241 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::b#0 mulf8s_prepared::m#0 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [310] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (char)mulf8s_prepared::b#0 [ mulf8s_prepared::b#0 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] ( mul8s_compare:11::mulf8s:131::mulf8s_prepared:241 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::b#0 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [315] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (char)*mulf8s_prepared::memA [ mulf8s_prepared::m#5 mulf8s_prepared::$12 ] ( mul8s_compare:11::mulf8s:131::mulf8s_prepared:241 [ print_line_cursor#0 mul8s_compare::a#10 mul8s_compare::b#10 mul8s_compare::ms#0 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s::a#0 = mul8s_compare::a#10 } { mulf8s::b#0 = mul8s_compare::b#10 mulf8s_prepared::b#0 } { mulf8s::return#0 = mulf8s::return#2 } }  ) always clobbers reg byte a 
Statement [329] print_schar::b#0 = - print_schar::b#3 [ print_char_cursor#18 print_schar::b#0 ] ( mul8s_compare:11::mul8s_error:151::print_schar:263 [ print_line_cursor#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_schar::b#0 ] { { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#1 = print_schar::b#3 mul8s_error::a#0 mul8s_compare::a#10 } }  mul8s_compare:11::mul8s_error:151::print_schar:267 [ print_line_cursor#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_schar::b#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_schar::b#2 = print_schar::b#3 mul8s_error::b#0 mul8s_compare::b#10 } }  ) always clobbers reg byte a 
Statement [331] if(print_sint::w#4<0) goto print_sint::@1 [ print_char_cursor#1 print_sint::w#4 ] ( mul8s_compare:11::mul8s_error:151::print_sint:271 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#4 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } }  mul8s_compare:11::mul8s_error:151::print_sint:275 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#1 print_sint::w#4 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } }  mul8s_compare:11::mul8s_error:151::print_sint:279 [ print_line_cursor#0 print_char_cursor#1 print_sint::w#4 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Statement [335] print_uint::w#0 = (unsigned int)print_sint::w#6 [ print_char_cursor#18 print_uint::w#0 ] ( mul8s_compare:11::mul8s_error:151::print_sint:271 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_uint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_sint:275 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#18 print_uint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 } }  mul8s_compare:11::mul8s_error:151::print_sint:279 [ print_line_cursor#0 print_char_cursor#18 print_uint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } { print_uint::w#0 = print_uint::w#6 } { print_char_cursor#145 = print_char_cursor#18 } }  ) always clobbers reg byte a 
Statement [340] print_sint::w#0 = - print_sint::w#4 [ print_char_cursor#18 print_sint::w#0 ] ( mul8s_compare:11::mul8s_error:151::print_sint:271 [ print_line_cursor#0 mul8s_error::mn#0 mul8s_error::mf#0 print_char_cursor#18 print_sint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#1 = print_sint::w#4 mul8s_error::ms#0 mul8s_compare::ms#0 } }  mul8s_compare:11::mul8s_error:151::print_sint:275 [ print_line_cursor#0 mul8s_error::mf#0 print_char_cursor#18 print_sint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mf#0 = mul8s_compare::mf#0 } { print_sint::w#2 = print_sint::w#4 mul8s_error::mn#0 mul8s_compare::mn#0 } }  mul8s_compare:11::mul8s_error:151::print_sint:279 [ print_line_cursor#0 print_char_cursor#18 print_sint::w#0 ] { { mul8s_error::a#0 = mul8s_compare::a#10 } { mul8s_error::b#0 = mul8s_compare::b#10 } { mul8s_error::ms#0 = mul8s_compare::ms#0 } { mul8s_error::mn#0 = mul8s_compare::mn#0 } { print_sint::w#3 = print_sint::w#4 mul8s_error::mf#0 mul8s_compare::mf#0 } }  ) always clobbers reg byte a 
Potential registers zp[2]:2 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] : zp[2]:2 , 
Potential registers zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ] : zp[1]:4 , reg byte x , 
Potential registers zp[2]:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] : zp[2]:5 , 
Potential registers zp[1]:7 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] : zp[1]:7 , reg byte x , 
Potential registers zp[2]:8 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] : zp[2]:8 , 
Potential registers zp[1]:10 [ mulf_init::x_255#2 mulf_init::x_255#1 ] : zp[1]:10 , reg byte x , 
Potential registers zp[2]:11 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] : zp[2]:11 , 
Potential registers zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ] : zp[1]:13 , reg byte x , 
Potential registers zp[2]:14 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] : zp[2]:14 , 
Potential registers zp[2]:16 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] : zp[2]:16 , 
Potential registers zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ] : zp[2]:18 , 
Potential registers zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ] : zp[1]:20 , reg byte y , 
Potential registers zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ] : zp[1]:21 , reg byte y , 
Potential registers zp[1]:22 [ mul8u_compare::ok#3 mul8u_compare::ok#4 ] : zp[1]:22 , reg byte x , reg byte y , 
Potential registers zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ] : zp[1]:23 , reg byte y , 
Potential registers zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ] : zp[1]:24 , reg byte y , 
Potential registers zp[1]:25 [ mul8s_compare::ok#3 mul8s_compare::ok#4 ] : zp[1]:25 , reg byte x , reg byte y , 
Potential registers zp[2]:26 [ memset::dst#2 memset::dst#1 ] : zp[2]:26 , 
Potential registers zp[2]:28 [ print_str::str#16 print_str::str#19 print_str::str#0 ] : zp[2]:28 , 
Potential registers zp[2]:30 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#10 print_line_cursor#0 ] : zp[2]:30 , 
Potential registers zp[2]:32 [ print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ] : zp[2]:32 , 
Potential registers zp[1]:34 [ muls8u::i#2 muls8u::i#1 ] : zp[1]:34 , reg byte x , reg byte y , 
Potential registers zp[2]:35 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 ] : zp[2]:35 , 
Potential registers zp[1]:37 [ mul8u::b#2 mul8u::b#0 mul8u::b#1 ] : zp[1]:37 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:38 [ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ] : zp[1]:38 , reg byte x , reg byte y , 
Potential registers zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] : zp[2]:39 , 
Potential registers zp[2]:41 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] : zp[2]:41 , 
Potential registers zp[1]:43 [ muls8s::j#2 muls8s::j#1 ] : zp[1]:43 , reg byte x , reg byte y , 
Potential registers zp[2]:44 [ muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 ] : zp[2]:44 , 
Potential registers zp[1]:46 [ muls8s::i#2 muls8s::i#1 ] : zp[1]:46 , reg byte x , reg byte y , 
Potential registers zp[2]:47 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] : zp[2]:47 , 
Potential registers zp[1]:49 [ print_char::ch#7 print_char::ch#0 print_char::ch#5 print_char::ch#6 ] : zp[1]:49 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:50 [ print_char_cursor#87 print_char_cursor#145 print_char_cursor#138 print_char_cursor#1 print_char_cursor#158 print_char_cursor#192 print_char_cursor#193 print_char_cursor#101 print_char_cursor#18 print_char_cursor#231 print_char_cursor#146 ] : zp[2]:50 , 
Potential registers zp[1]:52 [ print_uchar::b#5 print_uchar::b#3 print_uchar::b#4 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ] : zp[1]:52 , reg byte x , 
Potential registers zp[1]:53 [ mulf8u_prepare::a#2 mulf8u_prepare::a#1 mulf8u_prepare::a#0 ] : zp[1]:53 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:54 [ mulf8u_prepared::b#2 mulf8u_prepared::b#1 mulf8u_prepared::b#0 ] : zp[1]:54 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] : zp[2]:55 , 
Potential registers zp[1]:57 [ print_schar::b#5 print_schar::b#0 print_schar::b#3 print_schar::b#1 print_schar::b#2 ] : zp[1]:57 , reg byte a , reg byte x , 
Potential registers zp[2]:58 [ print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 ] : zp[2]:58 , 
Potential registers zp[1]:60 [ mulf_init::$1 ] : zp[1]:60 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:61 [ mulf_init::$4 ] : zp[1]:61 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:62 [ mulf_init::$5 ] : zp[1]:62 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:63 [ muls8u::a#0 ] : zp[1]:63 , reg byte x , reg byte y , 
Potential registers zp[1]:64 [ muls8u::b#0 ] : zp[1]:64 , reg byte x , reg byte y , 
Potential registers zp[2]:65 [ muls8u::return#2 ] : zp[2]:65 , 
Potential registers zp[2]:67 [ mul8u_compare::ms#0 ] : zp[2]:67 , 
Potential registers zp[1]:69 [ mulf8u::a#0 ] : zp[1]:69 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:70 [ mulf8u::b#0 ] : zp[1]:70 , reg byte x , reg byte y , 
Potential registers zp[2]:71 [ mulf8u::return#2 ] : zp[2]:71 , 
Potential registers zp[2]:73 [ mul8u_compare::mf#0 ] : zp[2]:73 , 
Potential registers zp[2]:75 [ mul8u::return#3 ] : zp[2]:75 , 
Potential registers zp[2]:77 [ mul8u_compare::mn#0 ] : zp[2]:77 , 
Potential registers zp[1]:79 [ mul8u_error::a#0 ] : zp[1]:79 , reg byte x , 
Potential registers zp[1]:80 [ mul8u_error::b#0 ] : zp[1]:80 , reg byte x , 
Potential registers zp[2]:81 [ mul8u_error::ms#0 ] : zp[2]:81 , 
Potential registers zp[2]:83 [ mul8u_error::mn#0 ] : zp[2]:83 , 
Potential registers zp[2]:85 [ mul8u_error::mf#0 ] : zp[2]:85 , 
Potential registers zp[1]:87 [ muls8s::a#0 ] : zp[1]:87 , reg byte x , reg byte y , 
Potential registers zp[1]:88 [ muls8s::b#0 ] : zp[1]:88 , reg byte x , reg byte y , 
Potential registers zp[2]:89 [ muls8s::return#2 ] : zp[2]:89 , 
Potential registers zp[2]:91 [ mul8s_compare::ms#0 ] : zp[2]:91 , 
Potential registers zp[1]:93 [ mulf8s::a#0 ] : zp[1]:93 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:94 [ mulf8s::b#0 ] : zp[1]:94 , reg byte x , reg byte y , 
Potential registers zp[2]:95 [ mulf8s::return#2 ] : zp[2]:95 , 
Potential registers zp[2]:97 [ mul8s_compare::mf#0 ] : zp[2]:97 , 
Potential registers zp[1]:99 [ mul8s::a#0 ] : zp[1]:99 , reg byte x , reg byte y , 
Potential registers zp[1]:100 [ mul8s::b#0 ] : zp[1]:100 , reg byte x , reg byte y , 
Potential registers zp[2]:101 [ mul8s_compare::mn#0 ] : zp[2]:101 , 
Potential registers zp[1]:103 [ mul8s_error::a#0 ] : zp[1]:103 , reg byte x , 
Potential registers zp[1]:104 [ mul8s_error::b#0 ] : zp[1]:104 , reg byte x , 
Potential registers zp[2]:105 [ mul8s_error::ms#0 ] : zp[2]:105 , 
Potential registers zp[2]:107 [ mul8s_error::mn#0 ] : zp[2]:107 , 
Potential registers zp[2]:109 [ mul8s_error::mf#0 ] : zp[2]:109 , 
Potential registers zp[2]:111 [ mulf8u_prepared::return#2 ] : zp[2]:111 , 
Potential registers zp[2]:113 [ mulf8u::return#0 ] : zp[2]:113 , 
Potential registers zp[1]:115 [ mul8u::$1 ] : zp[1]:115 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:116 [ mulf8s_prepared::b#0 ] : zp[1]:116 , reg byte y , 
Potential registers zp[2]:117 [ mulf8s::return#0 ] : zp[2]:117 , 
Potential registers zp[2]:119 [ mul8u::return#2 ] : zp[2]:119 , 
Potential registers zp[1]:121 [ mul8s::$6 ] : zp[1]:121 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:122 [ mul8s::$11 ] : zp[1]:122 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:123 [ mul8s::$9 ] : zp[1]:123 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:124 [ mul8s::$12 ] : zp[1]:124 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:125 [ print_uchar::$0 ] : zp[1]:125 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:126 [ print_uchar::$2 ] : zp[1]:126 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:127 [ mulf8u_prepared::return#0 ] : zp[2]:127 , 
Potential registers zp[2]:129 [ mulf8u_prepared::return#3 ] : zp[2]:129 , 
Potential registers zp[1]:131 [ mulf8s_prepared::$6 ] : zp[1]:131 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:132 [ mulf8s_prepared::$11 ] : zp[1]:132 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:133 [ mulf8s_prepared::$9 ] : zp[1]:133 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:134 [ mulf8s_prepared::$12 ] : zp[1]:134 , reg byte a , reg byte x , reg byte y , 

REGISTER UPLIFT SCOPES
Uplift Scope [mul8u] 342,858,718: zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] 243,071,433.14: zp[2]:41 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] 200,000,002: zp[1]:115 [ mul8u::$1 ] 166,749,838.67: zp[1]:38 [ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ] 33,006: zp[1]:37 [ mul8u::b#2 mul8u::b#0 mul8u::b#1 ] 20,002: zp[2]:119 [ mul8u::return#2 ] 2,002: zp[2]:75 [ mul8u::return#3 ] 
Uplift Scope [muls8s] 56,667,006: zp[2]:44 [ muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 ] 30,000,003: zp[1]:43 [ muls8s::j#2 muls8s::j#1 ] 30,000,003: zp[1]:46 [ muls8s::i#2 muls8s::i#1 ] 1,818,273: zp[1]:88 [ muls8s::b#0 ] 1,668,417.08: zp[1]:87 [ muls8s::a#0 ] 2,002: zp[2]:89 [ muls8s::return#2 ] 
Uplift Scope [muls8u] 30,000,003: zp[1]:34 [ muls8u::i#2 muls8u::i#1 ] 28,333,669.83: zp[2]:35 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 ] 1,666,833.67: zp[1]:64 [ muls8u::b#0 ] 1,430,143.29: zp[1]:63 [ muls8u::a#0 ] 2,002: zp[2]:65 [ muls8u::return#2 ] 
Uplift Scope [mulf8u_prepared] 1,330,007: zp[1]:54 [ mulf8u_prepared::b#2 mulf8u_prepared::b#1 mulf8u_prepared::b#0 ] 277,500.75: zp[2]:127 [ mulf8u_prepared::return#0 ] 200,002: zp[2]:129 [ mulf8u_prepared::return#3 ] 20,002: zp[2]:111 [ mulf8u_prepared::return#2 ] 
Uplift Scope [print_char] 1,630,010: zp[1]:49 [ print_char::ch#7 print_char::ch#0 print_char::ch#5 print_char::ch#6 ] 
Uplift Scope [mulf8s_prepared] 691,673.58: zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] 200,002: zp[1]:131 [ mulf8s_prepared::$6 ] 200,002: zp[1]:132 [ mulf8s_prepared::$11 ] 200,002: zp[1]:133 [ mulf8s_prepared::$9 ] 200,002: zp[1]:134 [ mulf8s_prepared::$12 ] 11,000.2: zp[1]:116 [ mulf8s_prepared::b#0 ] 
Uplift Scope [] 1,180,991.77: zp[2]:50 [ print_char_cursor#87 print_char_cursor#145 print_char_cursor#138 print_char_cursor#1 print_char_cursor#158 print_char_cursor#192 print_char_cursor#193 print_char_cursor#101 print_char_cursor#18 print_char_cursor#231 print_char_cursor#146 ] 22,662.08: zp[2]:30 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#10 print_line_cursor#0 ] 
Uplift Scope [print_uchar] 200,002: zp[1]:125 [ print_uchar::$0 ] 200,002: zp[1]:126 [ print_uchar::$2 ] 97,711.75: zp[1]:52 [ print_uchar::b#5 print_uchar::b#3 print_uchar::b#4 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ] 
Uplift Scope [mulf8u_prepare] 160,007: zp[1]:53 [ mulf8u_prepare::a#2 mulf8u_prepare::a#1 mulf8u_prepare::a#0 ] 
Uplift Scope [mul8s] 69,173.58: zp[2]:47 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] 20,002: zp[1]:121 [ mul8s::$6 ] 20,002: zp[1]:122 [ mul8s::$11 ] 20,002: zp[1]:123 [ mul8s::$9 ] 20,002: zp[1]:124 [ mul8s::$12 ] 1,000.18: zp[1]:100 [ mul8s::b#0 ] 785.86: zp[1]:99 [ mul8s::a#0 ] 
Uplift Scope [print_str] 31,254.25: zp[2]:28 [ print_str::str#16 print_str::str#19 print_str::str#0 ] 
Uplift Scope [mulf8u] 5,501: zp[1]:69 [ mulf8u::a#0 ] 3,667.33: zp[1]:70 [ mulf8u::b#0 ] 3,667.33: zp[2]:113 [ mulf8u::return#0 ] 2,002: zp[2]:71 [ mulf8u::return#2 ] 
Uplift Scope [print_uint] 9,761.33: zp[2]:32 [ print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ] 
Uplift Scope [mulf8s] 3,667.33: zp[2]:117 [ mulf8s::return#0 ] 2,750.5: zp[1]:94 [ mulf8s::b#0 ] 2,002: zp[2]:95 [ mulf8s::return#2 ] 333.67: zp[1]:93 [ mulf8s::a#0 ] 
Uplift Scope [mul8s_compare] 2,335.67: zp[1]:25 [ mul8s_compare::ok#3 mul8s_compare::ok#4 ] 2,242.68: zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ] 324.85: zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ] 167.75: zp[2]:101 [ mul8s_compare::mn#0 ] 150.7: zp[2]:91 [ mul8s_compare::ms#0 ] 118.41: zp[2]:97 [ mul8s_compare::mf#0 ] 
Uplift Scope [print_sint] 5,161: zp[2]:58 [ print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 ] 
Uplift Scope [print_schar] 4,942.17: zp[1]:57 [ print_schar::b#5 print_schar::b#0 print_schar::b#3 print_schar::b#1 print_schar::b#2 ] 
Uplift Scope [mul8u_compare] 2,335.67: zp[1]:22 [ mul8u_compare::ok#3 mul8u_compare::ok#4 ] 1,702.14: zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ] 270.61: zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ] 167.75: zp[2]:77 [ mul8u_compare::mn#0 ] 143.52: zp[2]:67 [ mul8u_compare::ms#0 ] 111.83: zp[2]:73 [ mul8u_compare::mf#0 ] 
Uplift Scope [memset] 3,336.67: zp[2]:26 [ memset::dst#2 memset::dst#1 ] 
Uplift Scope [mulf_init] 437.67: zp[2]:14 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] 246.89: zp[2]:8 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] 230.86: zp[2]:2 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] 212.1: zp[1]:7 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] 202: zp[1]:60 [ mulf_init::$1 ] 202: zp[1]:61 [ mulf_init::$4 ] 202: zp[1]:62 [ mulf_init::$5 ] 141.4: zp[1]:10 [ mulf_init::x_255#2 mulf_init::x_255#1 ] 138.88: zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ] 124.31: zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ] 109.42: zp[2]:11 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] 92.58: zp[2]:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] 
Uplift Scope [mulf_tables_cmp] 242.4: zp[2]:16 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] 161.6: zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ] 
Uplift Scope [mul8u_error] 16: zp[1]:79 [ mul8u_error::a#0 ] 11.2: zp[1]:80 [ mul8u_error::b#0 ] 8.62: zp[2]:81 [ mul8u_error::ms#0 ] 7: zp[2]:83 [ mul8u_error::mn#0 ] 5.89: zp[2]:85 [ mul8u_error::mf#0 ] 
Uplift Scope [mul8s_error] 16: zp[1]:103 [ mul8s_error::a#0 ] 11.2: zp[1]:104 [ mul8s_error::b#0 ] 8.62: zp[2]:105 [ mul8s_error::ms#0 ] 7: zp[2]:107 [ mul8s_error::mn#0 ] 5.89: zp[2]:109 [ mul8s_error::mf#0 ] 
Uplift Scope [print_ln] 
Uplift Scope [print_cls] 
Uplift Scope [RADIX] 
Uplift Scope [main] 
Uplift Scope [mulf_init_asm] 

Uplifting [mul8u] best 316283 combination zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp[2]:41 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ] reg byte a [ mul8u::b#2 mul8u::b#0 mul8u::b#1 ] zp[2]:119 [ mul8u::return#2 ] zp[2]:75 [ mul8u::return#3 ] 
Uplifting [muls8s] best 295983 combination zp[2]:44 [ muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 ] reg byte y [ muls8s::j#2 muls8s::j#1 ] reg byte y [ muls8s::i#2 muls8s::i#1 ] reg byte x [ muls8s::b#0 ] zp[1]:87 [ muls8s::a#0 ] zp[2]:89 [ muls8s::return#2 ] 
Uplifting [muls8u] best 285683 combination reg byte y [ muls8u::i#2 muls8u::i#1 ] zp[2]:35 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 ] reg byte x [ muls8u::b#0 ] zp[1]:63 [ muls8u::a#0 ] zp[2]:65 [ muls8u::return#2 ] 
Uplifting [mulf8u_prepared] best 285674 combination reg byte a [ mulf8u_prepared::b#2 mulf8u_prepared::b#1 mulf8u_prepared::b#0 ] zp[2]:127 [ mulf8u_prepared::return#0 ] zp[2]:129 [ mulf8u_prepared::return#3 ] zp[2]:111 [ mulf8u_prepared::return#2 ] 
Uplifting [print_char] best 285623 combination reg byte a [ print_char::ch#7 print_char::ch#0 print_char::ch#5 print_char::ch#6 ] 
Uplifting [mulf8s_prepared] best 285599 combination zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] reg byte a [ mulf8s_prepared::$6 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$9 ] reg byte a [ mulf8s_prepared::$12 ] zp[1]:116 [ mulf8s_prepared::b#0 ] 
Limited combination testing to 100 combinations of 512 possible.
Uplifting [] best 285599 combination zp[2]:50 [ print_char_cursor#87 print_char_cursor#145 print_char_cursor#138 print_char_cursor#1 print_char_cursor#158 print_char_cursor#192 print_char_cursor#193 print_char_cursor#101 print_char_cursor#18 print_char_cursor#231 print_char_cursor#146 ] zp[2]:30 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#10 print_line_cursor#0 ] 
Uplifting [print_uchar] best 285572 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ print_uchar::b#5 print_uchar::b#3 print_uchar::b#4 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ] 
Uplifting [mulf8u_prepare] best 285563 combination reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#1 mulf8u_prepare::a#0 ] 
Uplifting [mul8s] best 285539 combination zp[2]:47 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] reg byte a [ mul8s::$6 ] reg byte a [ mul8s::$11 ] reg byte a [ mul8s::$9 ] reg byte a [ mul8s::$12 ] zp[1]:100 [ mul8s::b#0 ] zp[1]:99 [ mul8s::a#0 ] 
Limited combination testing to 100 combinations of 2304 possible.
Uplifting [print_str] best 285539 combination zp[2]:28 [ print_str::str#16 print_str::str#19 print_str::str#0 ] 
Uplifting [mulf8u] best 284935 combination reg byte a [ mulf8u::a#0 ] reg byte x [ mulf8u::b#0 ] zp[2]:113 [ mulf8u::return#0 ] zp[2]:71 [ mulf8u::return#2 ] 
Uplifting [print_uint] best 284935 combination zp[2]:32 [ print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ] 
Uplifting [mulf8s] best 284329 combination zp[2]:117 [ mulf8s::return#0 ] reg byte x [ mulf8s::b#0 ] zp[2]:95 [ mulf8s::return#2 ] reg byte a [ mulf8s::a#0 ] 
Uplifting [mul8s_compare] best 283329 combination reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ] zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ] zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ] zp[2]:101 [ mul8s_compare::mn#0 ] zp[2]:91 [ mul8s_compare::ms#0 ] zp[2]:97 [ mul8s_compare::mf#0 ] 
Uplifting [print_sint] best 283329 combination zp[2]:58 [ print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 ] 
Uplifting [print_schar] best 283317 combination reg byte x [ print_schar::b#5 print_schar::b#0 print_schar::b#3 print_schar::b#1 print_schar::b#2 ] 
Uplifting [mul8u_compare] best 282317 combination reg byte x [ mul8u_compare::ok#3 mul8u_compare::ok#4 ] zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ] zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ] zp[2]:77 [ mul8u_compare::mn#0 ] zp[2]:67 [ mul8u_compare::ms#0 ] zp[2]:73 [ mul8u_compare::mf#0 ] 
Uplifting [memset] best 282317 combination zp[2]:26 [ memset::dst#2 memset::dst#1 ] 
Uplifting [mulf_init] best 282087 combination zp[2]:14 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] zp[2]:8 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp[2]:2 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] reg byte x [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$1 ] reg byte a [ mulf_init::$4 ] reg byte a [ mulf_init::$5 ] zp[1]:10 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ] zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ] zp[2]:11 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp[2]:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] 
Limited combination testing to 100 combinations of 1024 possible.
Uplifting [mulf_tables_cmp] best 282087 combination zp[2]:16 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ] 
Uplifting [mul8u_error] best 282081 combination reg byte x [ mul8u_error::a#0 ] zp[1]:80 [ mul8u_error::b#0 ] zp[2]:81 [ mul8u_error::ms#0 ] zp[2]:83 [ mul8u_error::mn#0 ] zp[2]:85 [ mul8u_error::mf#0 ] 
Uplifting [mul8s_error] best 282075 combination reg byte x [ mul8s_error::a#0 ] zp[1]:104 [ mul8s_error::b#0 ] zp[2]:105 [ mul8s_error::ms#0 ] zp[2]:107 [ mul8s_error::mn#0 ] zp[2]:109 [ mul8s_error::mf#0 ] 
Uplifting [print_ln] best 282075 combination 
Uplifting [print_cls] best 282075 combination 
Uplifting [RADIX] best 282075 combination 
Uplifting [main] best 282075 combination 
Uplifting [mulf_init_asm] best 282075 combination 
Attempting to uplift remaining variables inzp[1]:87 [ muls8s::a#0 ]
Uplifting [muls8s] best 282075 combination zp[1]:87 [ muls8s::a#0 ] 
Attempting to uplift remaining variables inzp[1]:63 [ muls8u::a#0 ]
Uplifting [muls8u] best 282075 combination zp[1]:63 [ muls8u::a#0 ] 
Attempting to uplift remaining variables inzp[1]:116 [ mulf8s_prepared::b#0 ]
Uplifting [mulf8s_prepared] best 282075 combination zp[1]:116 [ mulf8s_prepared::b#0 ] 
Attempting to uplift remaining variables inzp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ]
Uplifting [mul8s_compare] best 282075 combination zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ] 
Attempting to uplift remaining variables inzp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ]
Uplifting [mul8u_compare] best 282075 combination zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ] 
Attempting to uplift remaining variables inzp[1]:100 [ mul8s::b#0 ]
Uplifting [mul8s] best 281774 combination reg byte y [ mul8s::b#0 ] 
Attempting to uplift remaining variables inzp[1]:99 [ mul8s::a#0 ]
Uplifting [mul8s] best 281774 combination zp[1]:99 [ mul8s::a#0 ] 
Attempting to uplift remaining variables inzp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ]
Uplifting [mul8s_compare] best 281774 combination zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ] 
Attempting to uplift remaining variables inzp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ]
Uplifting [mul8u_compare] best 281774 combination zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ] 
Attempting to uplift remaining variables inzp[1]:10 [ mulf_init::x_255#2 mulf_init::x_255#1 ]
Uplifting [mulf_init] best 281654 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] 
Attempting to uplift remaining variables inzp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ]
Uplifting [mulf_init] best 281654 combination zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ] 
Attempting to uplift remaining variables inzp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ]
Uplifting [mulf_init] best 281654 combination zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ] 
Attempting to uplift remaining variables inzp[1]:80 [ mul8u_error::b#0 ]
Uplifting [mul8u_error] best 281654 combination zp[1]:80 [ mul8u_error::b#0 ] 
Attempting to uplift remaining variables inzp[1]:104 [ mul8s_error::b#0 ]
Uplifting [mul8s_error] best 281654 combination zp[1]:104 [ mul8s_error::b#0 ] 
Coalescing zero page register [ zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ] ] with [ zp[2]:32 [ print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ] ] - score: 1
Coalescing zero page register [ zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ] ] with [ zp[1]:63 [ muls8u::a#0 ] ] - score: 1
Coalescing zero page register [ zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ] ] with [ zp[1]:80 [ mul8u_error::b#0 ] ] - score: 1
Coalescing zero page register [ zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ] ] with [ zp[1]:87 [ muls8s::a#0 ] ] - score: 1
Coalescing zero page register [ zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 muls8s::a#0 ] ] with [ zp[1]:99 [ mul8s::a#0 ] ] - score: 1
Coalescing zero page register [ zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ] ] with [ zp[1]:104 [ mul8s_error::b#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:35 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 ] ] with [ zp[2]:65 [ muls8u::return#2 ] ] - score: 1
Coalescing zero page register [ zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] ] with [ zp[2]:75 [ mul8u::return#3 ] ] - score: 1
Coalescing zero page register [ zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 ] ] with [ zp[2]:119 [ mul8u::return#2 ] ] - score: 1
Coalescing zero page register [ zp[2]:44 [ muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 ] ] with [ zp[2]:89 [ muls8s::return#2 ] ] - score: 1
Coalescing zero page register [ zp[2]:47 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] ] with [ zp[2]:101 [ mul8s_compare::mn#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] ] with [ zp[2]:117 [ mulf8s::return#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s::return#0 ] ] with [ zp[2]:129 [ mulf8u_prepared::return#3 ] ] - score: 1
Coalescing zero page register [ zp[2]:58 [ print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 ] ] with [ zp[2]:105 [ mul8s_error::ms#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:67 [ mul8u_compare::ms#0 ] ] with [ zp[2]:81 [ mul8u_error::ms#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:71 [ mulf8u::return#2 ] ] with [ zp[2]:73 [ mul8u_compare::mf#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:71 [ mulf8u::return#2 mul8u_compare::mf#0 ] ] with [ zp[2]:113 [ mulf8u::return#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:77 [ mul8u_compare::mn#0 ] ] with [ zp[2]:83 [ mul8u_error::mn#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:95 [ mulf8s::return#2 ] ] with [ zp[2]:97 [ mul8s_compare::mf#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:111 [ mulf8u_prepared::return#2 ] ] with [ zp[2]:127 [ mulf8u_prepared::return#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ] ] with [ zp[2]:58 [ print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 mul8s_error::ms#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 mul8s_error::ms#0 ] ] with [ zp[2]:67 [ mul8u_compare::ms#0 mul8u_error::ms#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 mul8u::return#2 ] ] with [ zp[2]:47 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 mul8s_compare::mn#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 mul8u::return#2 mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 mul8s_compare::mn#0 ] ] with [ zp[2]:77 [ mul8u_compare::mn#0 mul8u_error::mn#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:44 [ muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 muls8s::return#2 ] ] with [ zp[2]:91 [ mul8s_compare::ms#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s::return#0 mulf8u_prepared::return#3 ] ] with [ zp[2]:95 [ mulf8s::return#2 mul8s_compare::mf#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s::return#0 mulf8u_prepared::return#3 mulf8s::return#2 mul8s_compare::mf#0 ] ] with [ zp[2]:111 [ mulf8u_prepared::return#2 mulf8u_prepared::return#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:71 [ mulf8u::return#2 mul8u_compare::mf#0 mulf8u::return#0 ] ] with [ zp[2]:85 [ mul8u_error::mf#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 mul8s_error::ms#0 mul8u_compare::ms#0 mul8u_error::ms#0 ] ] with [ zp[2]:35 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 muls8u::return#2 ] ] - score: 1
Coalescing zero page register [ zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 mul8s_error::ms#0 mul8u_compare::ms#0 mul8u_error::ms#0 muls8u::return#0 muls8u::m#3 muls8u::m#1 muls8u::return#2 ] ] with [ zp[2]:44 [ muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 muls8s::return#2 mul8s_compare::ms#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 mul8u::return#2 mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 mul8s_compare::mn#0 mul8u_compare::mn#0 mul8u_error::mn#0 ] ] with [ zp[2]:107 [ mul8s_error::mn#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s::return#0 mulf8u_prepared::return#3 mulf8s::return#2 mul8s_compare::mf#0 mulf8u_prepared::return#2 mulf8u_prepared::return#0 ] ] with [ zp[2]:71 [ mulf8u::return#2 mul8u_compare::mf#0 mulf8u::return#0 mul8u_error::mf#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s::return#0 mulf8u_prepared::return#3 mulf8s::return#2 mul8s_compare::mf#0 mulf8u_prepared::return#2 mulf8u_prepared::return#0 mulf8u::return#2 mul8u_compare::mf#0 mulf8u::return#0 mul8u_error::mf#0 ] ] with [ zp[2]:109 [ mul8s_error::mf#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:16 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] ] with [ zp[2]:2 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] ]
Coalescing zero page register [ zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 mul8s_error::ms#0 mul8u_compare::ms#0 mul8u_error::ms#0 muls8u::return#0 muls8u::m#3 muls8u::m#1 muls8u::return#2 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 muls8s::return#2 mul8s_compare::ms#0 ] ] with [ zp[2]:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] ]
Coalescing zero page register [ zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 muls8u::a#0 ] ] with [ zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ] ]
Coalescing zero page register [ zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 mul8u_error::b#0 ] ] with [ zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ] ]
Coalescing zero page register [ zp[2]:26 [ memset::dst#2 memset::dst#1 ] ] with [ zp[2]:8 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] ]
Coalescing zero page register [ zp[2]:28 [ print_str::str#16 print_str::str#19 print_str::str#0 ] ] with [ zp[2]:11 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] ]
Coalescing zero page register [ zp[2]:30 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#10 print_line_cursor#0 ] ] with [ zp[2]:14 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] ]
Coalescing zero page register [ zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 muls8s::a#0 mul8s::a#0 ] ] with [ zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 muls8u::a#0 mulf_init::c#2 mulf_init::c#1 ] ]
Coalescing zero page register [ zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 mul8s_error::b#0 ] ] with [ zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 mul8u_error::b#0 mulf_init::dir#2 mulf_init::dir#4 ] ]
Coalescing zero page register [ zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 mul8u::return#2 mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 mul8s_compare::mn#0 mul8u_compare::mn#0 mul8u_error::mn#0 mul8s_error::mn#0 ] ] with [ zp[2]:16 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] ]
Coalescing zero page register [ zp[2]:41 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] ] with [ zp[2]:26 [ memset::dst#2 memset::dst#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] ]
Allocated (was zp[2]:18) zp[2]:2 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 mul8s_error::ms#0 mul8u_compare::ms#0 mul8u_error::ms#0 muls8u::return#0 muls8u::m#3 muls8u::m#1 muls8u::return#2 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 muls8s::return#2 mul8s_compare::ms#0 mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
Allocated (was zp[1]:23) zp[1]:4 [ mul8s_compare::a#10 mul8s_compare::a#1 muls8s::a#0 mul8s::a#0 mul8u_compare::a#7 mul8u_compare::a#1 muls8u::a#0 mulf_init::c#2 mulf_init::c#1 ]
Allocated (was zp[1]:24) zp[1]:5 [ mul8s_compare::b#10 mul8s_compare::b#1 mul8s_error::b#0 mul8u_compare::b#10 mul8u_compare::b#1 mul8u_error::b#0 mulf_init::dir#2 mulf_init::dir#4 ]
Allocated (was zp[2]:28) zp[2]:6 [ print_str::str#16 print_str::str#19 print_str::str#0 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ]
Allocated (was zp[2]:30) zp[2]:8 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#10 print_line_cursor#0 mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ]
Allocated (was zp[2]:39) zp[2]:10 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 mul8u::return#2 mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 mul8s_compare::mn#0 mul8u_compare::mn#0 mul8u_error::mn#0 mul8s_error::mn#0 mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ]
Allocated (was zp[2]:41) zp[2]:12 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 memset::dst#2 memset::dst#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ]
Allocated (was zp[2]:50) zp[2]:14 [ print_char_cursor#87 print_char_cursor#145 print_char_cursor#138 print_char_cursor#1 print_char_cursor#158 print_char_cursor#192 print_char_cursor#193 print_char_cursor#101 print_char_cursor#18 print_char_cursor#231 print_char_cursor#146 ]
Allocated (was zp[2]:55) zp[2]:16 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s::return#0 mulf8u_prepared::return#3 mulf8s::return#2 mul8s_compare::mf#0 mulf8u_prepared::return#2 mulf8u_prepared::return#0 mulf8u::return#2 mul8u_compare::mf#0 mulf8u::return#0 mul8u_error::mf#0 mul8s_error::mf#0 ]
Allocated (was zp[1]:116) zp[1]:18 [ mulf8s_prepared::b#0 ]

ASSEMBLER BEFORE OPTIMIZATION
  // File Comments
// Test the fast multiplication library
/// @file
/// A lightweight library for printing on the C64.
///
/// Printing with this library is done by calling print_ function for each element
  // Upstart
  // Commodore 64 PRG executable file
.file [name="test-multiply-8bit.prg", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=$80d]
.segmentdef Data [startAfter="Code"]
.segment Basic
:BasicUpstart(main)
  // Global Constants & labels
  .label BG_COLOR = $d021
  .label print_screen = $400
  .label print_char_cursor = $e
  .label print_line_cursor = 8
.segment Code
  // main
main: {
    // [0] *BG_COLOR = 5 -- _deref_pbuc1=vbuc2 
    lda #5
    sta BG_COLOR
    // [1] call print_cls
    // [13] phi from main to print_cls [phi:main->print_cls]
  print_cls_from_main:
    jsr print_cls
    // [2] phi from main to main::@1 [phi:main->main::@1]
  __b1_from_main:
    jmp __b1
    // main::@1
  __b1:
    // [3] call mulf_init
    // [16] phi from main::@1 to mulf_init [phi:main::@1->mulf_init]
  mulf_init_from___b1:
    jsr mulf_init
    // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
  __b2_from___b1:
    jmp __b2
    // main::@2
  __b2:
    // [5] call mulf_init_asm
    jsr mulf_init_asm
    // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
  __b3_from___b2:
    jmp __b3
    // main::@3
  __b3:
    // [7] call mulf_tables_cmp
    // [51] phi from main::@3 to mulf_tables_cmp [phi:main::@3->mulf_tables_cmp]
  mulf_tables_cmp_from___b3:
    jsr mulf_tables_cmp
    // [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
  __b4_from___b3:
    jmp __b4
    // main::@4
  __b4:
    // [9] call mul8u_compare
    // [72] phi from main::@4 to mul8u_compare [phi:main::@4->mul8u_compare]
  mul8u_compare_from___b4:
    jsr mul8u_compare
    // [10] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
  __b5_from___b4:
    jmp __b5
    // main::@5
  __b5:
    // [11] call mul8s_compare
    // [113] phi from main::@5 to mul8s_compare [phi:main::@5->mul8s_compare]
  mul8s_compare_from___b5:
    jsr mul8s_compare
    jmp __breturn
    // main::@return
  __breturn:
    // [12] return 
    rts
}
  // print_cls
// Clear the screen. Also resets current line/char cursor.
print_cls: {
    // [14] call memset
    // [153] phi from print_cls to memset [phi:print_cls->memset]
  memset_from_print_cls:
    jsr memset
    jmp __breturn
    // print_cls::@return
  __breturn:
    // [15] return 
    rts
}
  // mulf_init
// Initialize the mulf_sqr multiplication tables with f(x)=int(x*x/4)
mulf_init: {
    // x/2
    .label c = 4
    // Counter used for determining x%2==0
    .label sqr1_hi = 2
    // Fill mulf_sqr1 = f(x) = int(x*x/4): If f(x) = x*x/4 then f(x+1) = f(x) + x/2 + 1/4
    .label sqr = 8
    .label sqr1_lo = $a
    // Decrease or increase x_255 - initially we decrease
    .label sqr2_hi = 6
    .label sqr2_lo = $c
    //Start with g(0)=f(255)
    .label dir = 5
    // [17] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1]
  __b1_from_mulf_init:
    // [17] phi mulf_init::x_2#3 = 0 [phi:mulf_init->mulf_init::@1#0] -- vbuxx=vbuc1 
    ldx #0
    // [17] phi mulf_init::sqr1_hi#2 = mulf_sqr1_hi+1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 
    lda #<mulf_sqr1_hi+1
    sta.z sqr1_hi
    lda #>mulf_sqr1_hi+1
    sta.z sqr1_hi+1
    // [17] phi mulf_init::sqr#4 = 0 [phi:mulf_init->mulf_init::@1#2] -- vwuz1=vwuc1 
    lda #<0
    sta.z sqr
    lda #>0
    sta.z sqr+1
    // [17] phi mulf_init::c#2 = 0 [phi:mulf_init->mulf_init::@1#3] -- vbuz1=vbuc1 
    lda #0
    sta.z c
    // [17] phi mulf_init::sqr1_lo#2 = mulf_sqr1_lo+1 [phi:mulf_init->mulf_init::@1#4] -- pbuz1=pbuc1 
    lda #<mulf_sqr1_lo+1
    sta.z sqr1_lo
    lda #>mulf_sqr1_lo+1
    sta.z sqr1_lo+1
    jmp __b1
    // mulf_init::@1
  __b1:
    // [18] if(mulf_init::sqr1_lo#2!=mulf_sqr1_lo+$200) goto mulf_init::@2 -- pbuz1_neq_pbuc1_then_la1 
    lda.z sqr1_lo+1
    cmp #>mulf_sqr1_lo+$200
    bne __b2
    lda.z sqr1_lo
    cmp #<mulf_sqr1_lo+$200
    bne __b2
    // [19] phi from mulf_init::@1 to mulf_init::@5 [phi:mulf_init::@1->mulf_init::@5]
  __b5_from___b1:
    // [19] phi mulf_init::dir#2 = $ff [phi:mulf_init::@1->mulf_init::@5#0] -- vbuz1=vbuc1 
    lda #$ff
    sta.z dir
    // [19] phi mulf_init::sqr2_hi#2 = mulf_sqr2_hi [phi:mulf_init::@1->mulf_init::@5#1] -- pbuz1=pbuc1 
    lda #<mulf_sqr2_hi
    sta.z sqr2_hi
    lda #>mulf_sqr2_hi
    sta.z sqr2_hi+1
    // [19] phi mulf_init::x_255#2 = -1 [phi:mulf_init::@1->mulf_init::@5#2] -- vbuxx=vbuc1 
    ldx #-1
    // [19] phi mulf_init::sqr2_lo#2 = mulf_sqr2_lo [phi:mulf_init::@1->mulf_init::@5#3] -- pbuz1=pbuc1 
    lda #<mulf_sqr2_lo
    sta.z sqr2_lo
    lda #>mulf_sqr2_lo
    sta.z sqr2_lo+1
    jmp __b5
    // mulf_init::@5
  __b5:
    // [20] if(mulf_init::sqr2_lo#2!=mulf_sqr2_lo+$1ff) goto mulf_init::@6 -- pbuz1_neq_pbuc1_then_la1 
    lda.z sqr2_lo+1
    cmp #>mulf_sqr2_lo+$1ff
    bne __b6
    lda.z sqr2_lo
    cmp #<mulf_sqr2_lo+$1ff
    bne __b6
    jmp __b7
    // mulf_init::@7
  __b7:
    // [21] *(mulf_sqr2_lo+$1ff) = *(mulf_sqr1_lo+$100) -- _deref_pbuc1=_deref_pbuc2 
    // Set the very last value g(511) = f(256)
    lda mulf_sqr1_lo+$100
    sta mulf_sqr2_lo+$1ff
    // [22] *(mulf_sqr2_hi+$1ff) = *(mulf_sqr1_hi+$100) -- _deref_pbuc1=_deref_pbuc2 
    lda mulf_sqr1_hi+$100
    sta mulf_sqr2_hi+$1ff
    jmp __breturn
    // mulf_init::@return
  __breturn:
    // [23] return 
    rts
    // mulf_init::@6
  __b6:
    // [24] *mulf_init::sqr2_lo#2 = mulf_sqr1_lo[mulf_init::x_255#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx 
    lda mulf_sqr1_lo,x
    ldy #0
    sta (sqr2_lo),y
    // [25] *mulf_init::sqr2_hi#2 = mulf_sqr1_hi[mulf_init::x_255#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx 
    lda mulf_sqr1_hi,x
    ldy #0
    sta (sqr2_hi),y
    // [26] mulf_init::sqr2_hi#1 = ++ mulf_init::sqr2_hi#2 -- pbuz1=_inc_pbuz1 
    inc.z sqr2_hi
    bne !+
    inc.z sqr2_hi+1
  !:
    // [27] mulf_init::x_255#1 = mulf_init::x_255#2 + mulf_init::dir#2 -- vbuxx=vbuxx_plus_vbuz1 
    txa
    clc
    adc.z dir
    tax
    // [28] if(mulf_init::x_255#1!=0) goto mulf_init::@9 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne __b9_from___b6
    // [30] phi from mulf_init::@6 to mulf_init::@8 [phi:mulf_init::@6->mulf_init::@8]
  __b8_from___b6:
    // [30] phi mulf_init::dir#4 = 1 [phi:mulf_init::@6->mulf_init::@8#0] -- vbuz1=vbuc1 
    lda #1
    sta.z dir
    jmp __b8
    // [29] phi from mulf_init::@6 to mulf_init::@9 [phi:mulf_init::@6->mulf_init::@9]
  __b9_from___b6:
    jmp __b9
    // mulf_init::@9
  __b9:
    // [30] phi from mulf_init::@9 to mulf_init::@8 [phi:mulf_init::@9->mulf_init::@8]
  __b8_from___b9:
    // [30] phi mulf_init::dir#4 = mulf_init::dir#2 [phi:mulf_init::@9->mulf_init::@8#0] -- register_copy 
    jmp __b8
    // mulf_init::@8
  __b8:
    // [31] mulf_init::sqr2_lo#1 = ++ mulf_init::sqr2_lo#2 -- pbuz1=_inc_pbuz1 
    inc.z sqr2_lo
    bne !+
    inc.z sqr2_lo+1
  !:
    // [19] phi from mulf_init::@8 to mulf_init::@5 [phi:mulf_init::@8->mulf_init::@5]
  __b5_from___b8:
    // [19] phi mulf_init::dir#2 = mulf_init::dir#4 [phi:mulf_init::@8->mulf_init::@5#0] -- register_copy 
    // [19] phi mulf_init::sqr2_hi#2 = mulf_init::sqr2_hi#1 [phi:mulf_init::@8->mulf_init::@5#1] -- register_copy 
    // [19] phi mulf_init::x_255#2 = mulf_init::x_255#1 [phi:mulf_init::@8->mulf_init::@5#2] -- register_copy 
    // [19] phi mulf_init::sqr2_lo#2 = mulf_init::sqr2_lo#1 [phi:mulf_init::@8->mulf_init::@5#3] -- register_copy 
    jmp __b5
    // mulf_init::@2
  __b2:
    // [32] mulf_init::c#1 = ++ mulf_init::c#2 -- vbuz1=_inc_vbuz1 
    inc.z c
    // [33] mulf_init::$1 = mulf_init::c#1 & 1 -- vbuaa=vbuz1_band_vbuc1 
    lda #1
    and.z c
    // [34] if(mulf_init::$1!=0) goto mulf_init::@3 -- vbuaa_neq_0_then_la1 
    cmp #0
    bne __b3_from___b2
    jmp __b4
    // mulf_init::@4
  __b4:
    // [35] mulf_init::x_2#1 = ++ mulf_init::x_2#3 -- vbuxx=_inc_vbuxx 
    inx
    // [36] mulf_init::sqr#2 = ++ mulf_init::sqr#4 -- vwuz1=_inc_vwuz1 
    inc.z sqr
    bne !+
    inc.z sqr+1
  !:
    // [37] phi from mulf_init::@2 mulf_init::@4 to mulf_init::@3 [phi:mulf_init::@2/mulf_init::@4->mulf_init::@3]
  __b3_from___b2:
  __b3_from___b4:
    // [37] phi mulf_init::x_2#2 = mulf_init::x_2#3 [phi:mulf_init::@2/mulf_init::@4->mulf_init::@3#0] -- register_copy 
    // [37] phi mulf_init::sqr#3 = mulf_init::sqr#4 [phi:mulf_init::@2/mulf_init::@4->mulf_init::@3#1] -- register_copy 
    jmp __b3
    // mulf_init::@3
  __b3:
    // [38] mulf_init::$4 = byte0  mulf_init::sqr#3 -- vbuaa=_byte0_vwuz1 
    lda.z sqr
    // [39] *mulf_init::sqr1_lo#2 = mulf_init::$4 -- _deref_pbuz1=vbuaa 
    ldy #0
    sta (sqr1_lo),y
    // [40] mulf_init::$5 = byte1  mulf_init::sqr#3 -- vbuaa=_byte1_vwuz1 
    lda.z sqr+1
    // [41] *mulf_init::sqr1_hi#2 = mulf_init::$5 -- _deref_pbuz1=vbuaa 
    ldy #0
    sta (sqr1_hi),y
    // [42] mulf_init::sqr1_hi#1 = ++ mulf_init::sqr1_hi#2 -- pbuz1=_inc_pbuz1 
    inc.z sqr1_hi
    bne !+
    inc.z sqr1_hi+1
  !:
    // [43] mulf_init::sqr#1 = mulf_init::sqr#3 + mulf_init::x_2#2 -- vwuz1=vwuz1_plus_vbuxx 
    txa
    clc
    adc.z sqr
    sta.z sqr
    bcc !+
    inc.z sqr+1
  !:
    // [44] mulf_init::sqr1_lo#1 = ++ mulf_init::sqr1_lo#2 -- pbuz1=_inc_pbuz1 
    inc.z sqr1_lo
    bne !+
    inc.z sqr1_lo+1
  !:
    // [17] phi from mulf_init::@3 to mulf_init::@1 [phi:mulf_init::@3->mulf_init::@1]
  __b1_from___b3:
    // [17] phi mulf_init::x_2#3 = mulf_init::x_2#2 [phi:mulf_init::@3->mulf_init::@1#0] -- register_copy 
    // [17] phi mulf_init::sqr1_hi#2 = mulf_init::sqr1_hi#1 [phi:mulf_init::@3->mulf_init::@1#1] -- register_copy 
    // [17] phi mulf_init::sqr#4 = mulf_init::sqr#1 [phi:mulf_init::@3->mulf_init::@1#2] -- register_copy 
    // [17] phi mulf_init::c#2 = mulf_init::c#1 [phi:mulf_init::@3->mulf_init::@1#3] -- register_copy 
    // [17] phi mulf_init::sqr1_lo#2 = mulf_init::sqr1_lo#1 [phi:mulf_init::@3->mulf_init::@1#4] -- register_copy 
    jmp __b1
}
  // mulf_init_asm
// Initialize the multiplication tables using ASM code from
// http://codebase64.org/doku.php?id=base:seriously_fast_multiplication
mulf_init_asm: {
    // Ensure the ASM tables are not detected as unused by the optimizer
    .label mem = $ff
    // asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!-  }
    ldx #0
    txa
    .byte $c9
  lb1:
    tya
    adc #0
  ml1:
    sta mula_sqr1_hi,x
    tay
    cmp #$40
    txa
    ror
  ml9:
    adc #0
    sta ml9+1
    inx
  ml0:
    sta mula_sqr1_lo,x
    bne lb1
    inc ml0+2
    inc ml1+2
    clc
    iny
    bne lb1
    ldx #0
    ldy #$ff
  !:
    lda mula_sqr1_hi+1,x
    sta mula_sqr2_hi+$100,x
    lda mula_sqr1_hi,x
    sta mula_sqr2_hi,y
    lda mula_sqr1_lo+1,x
    sta mula_sqr2_lo+$100,x
    lda mula_sqr1_lo,x
    sta mula_sqr2_lo,y
    dey
    inx
    bne !-
    // [46] *mulf_init_asm::mem = *mula_sqr1_lo -- _deref_pbuc1=_deref_pbuc2 
    lda mula_sqr1_lo
    sta mem
    // [47] *mulf_init_asm::mem = *mula_sqr1_hi -- _deref_pbuc1=_deref_pbuc2 
    lda mula_sqr1_hi
    sta mem
    // [48] *mulf_init_asm::mem = *mula_sqr2_lo -- _deref_pbuc1=_deref_pbuc2 
    lda mula_sqr2_lo
    sta mem
    // [49] *mulf_init_asm::mem = *mula_sqr2_hi -- _deref_pbuc1=_deref_pbuc2 
    lda mula_sqr2_hi
    sta mem
    jmp __breturn
    // mulf_init_asm::@return
  __breturn:
    // [50] return 
    rts
}
  // mulf_tables_cmp
// Compare the ASM-based mul tables with the KC-based mul tables
// Red screen on failure - green on success
mulf_tables_cmp: {
    .label asm_sqr = 2
    .label kc_sqr = $a
    // [52] phi from mulf_tables_cmp to mulf_tables_cmp::@1 [phi:mulf_tables_cmp->mulf_tables_cmp::@1]
  __b1_from_mulf_tables_cmp:
    // [52] phi mulf_tables_cmp::asm_sqr#2 = mula_sqr1_lo [phi:mulf_tables_cmp->mulf_tables_cmp::@1#0] -- pbuz1=pbuc1 
    lda #<mula_sqr1_lo
    sta.z asm_sqr
    lda #>mula_sqr1_lo
    sta.z asm_sqr+1
    // [52] phi mulf_tables_cmp::kc_sqr#2 = mulf_sqr1_lo [phi:mulf_tables_cmp->mulf_tables_cmp::@1#1] -- pbuz1=pbuc1 
    lda #<mulf_sqr1_lo
    sta.z kc_sqr
    lda #>mulf_sqr1_lo
    sta.z kc_sqr+1
    jmp __b1
    // mulf_tables_cmp::@1
  __b1:
    // [53] if(mulf_tables_cmp::kc_sqr#2<mulf_sqr1_lo+$200*4) goto mulf_tables_cmp::@2 -- pbuz1_lt_pbuc1_then_la1 
    lda.z kc_sqr+1
    cmp #>mulf_sqr1_lo+$200*4
    bcc __b2
    bne !+
    lda.z kc_sqr
    cmp #<mulf_sqr1_lo+$200*4
    bcc __b2
  !:
    // [54] phi from mulf_tables_cmp::@1 to mulf_tables_cmp::@3 [phi:mulf_tables_cmp::@1->mulf_tables_cmp::@3]
  __b3_from___b1:
    jmp __b3
    // mulf_tables_cmp::@3
  __b3:
    // [55] call print_str
    // [159] phi from mulf_tables_cmp::@3 to print_str [phi:mulf_tables_cmp::@3->print_str]
  print_str_from___b3:
    // [159] phi print_char_cursor#158 = print_screen#0 [phi:mulf_tables_cmp::@3->print_str#0] -- pbuz1=pbuc1 
    lda #<print_screen
    sta.z print_char_cursor
    lda #>print_screen
    sta.z print_char_cursor+1
    // [159] phi print_str::str#19 = mulf_tables_cmp::str [phi:mulf_tables_cmp::@3->print_str#1] -- pbuz1=pbuc1 
    lda #<str
    sta.z print_str.str
    lda #>str
    sta.z print_str.str+1
    jsr print_str
    // [56] phi from mulf_tables_cmp::@3 to mulf_tables_cmp::@6 [phi:mulf_tables_cmp::@3->mulf_tables_cmp::@6]
  __b6_from___b3:
    jmp __b6
    // mulf_tables_cmp::@6
  __b6:
    // [57] call print_ln
    // [166] phi from mulf_tables_cmp::@6 to print_ln [phi:mulf_tables_cmp::@6->print_ln]
  print_ln_from___b6:
    // [166] phi print_char_cursor#138 = print_char_cursor#1 [phi:mulf_tables_cmp::@6->print_ln#0] -- register_copy 
    // [166] phi print_line_cursor#47 = print_screen#0 [phi:mulf_tables_cmp::@6->print_ln#1] -- pbuz1=pbuc1 
    lda #<print_screen
    sta.z print_line_cursor
    lda #>print_screen
    sta.z print_line_cursor+1
    jsr print_ln
    jmp __b7
    // mulf_tables_cmp::@7
  __b7:
    // [58] print_char_cursor#231 = print_line_cursor#0 -- pbuz1=pbuz2 
    lda.z print_line_cursor
    sta.z print_char_cursor
    lda.z print_line_cursor+1
    sta.z print_char_cursor+1
    // [59] phi from mulf_tables_cmp::@7 to mulf_tables_cmp::@return [phi:mulf_tables_cmp::@7->mulf_tables_cmp::@return]
  __breturn_from___b7:
    // [59] phi print_line_cursor#10 = print_line_cursor#0 [phi:mulf_tables_cmp::@7->mulf_tables_cmp::@return#0] -- register_copy 
    // [59] phi print_char_cursor#101 = print_char_cursor#231 [phi:mulf_tables_cmp::@7->mulf_tables_cmp::@return#1] -- register_copy 
    jmp __breturn
    // mulf_tables_cmp::@return
  __breturn:
    // [60] return 
    rts
    // mulf_tables_cmp::@2
  __b2:
    // [61] if(*mulf_tables_cmp::kc_sqr#2==*mulf_tables_cmp::asm_sqr#2) goto mulf_tables_cmp::@4 -- _deref_pbuz1_eq__deref_pbuz2_then_la1 
    ldy #0
    lda (kc_sqr),y
    ldy #0
    cmp (asm_sqr),y
    beq __b4
    jmp __b5
    // mulf_tables_cmp::@5
  __b5:
    // [62] *BG_COLOR = 2 -- _deref_pbuc1=vbuc2 
    lda #2
    sta BG_COLOR
    // [63] call print_str
    // [159] phi from mulf_tables_cmp::@5 to print_str [phi:mulf_tables_cmp::@5->print_str]
  print_str_from___b5:
    // [159] phi print_char_cursor#158 = print_screen#0 [phi:mulf_tables_cmp::@5->print_str#0] -- pbuz1=pbuc1 
    lda #<print_screen
    sta.z print_char_cursor
    lda #>print_screen
    sta.z print_char_cursor+1
    // [159] phi print_str::str#19 = mulf_tables_cmp::str1 [phi:mulf_tables_cmp::@5->print_str#1] -- pbuz1=pbuc1 
    lda #<str1
    sta.z print_str.str
    lda #>str1
    sta.z print_str.str+1
    jsr print_str
    jmp __b8
    // mulf_tables_cmp::@8
  __b8:
    // [64] print_uint::w#1 = (unsigned int)mulf_tables_cmp::asm_sqr#2
    // [65] call print_uint
    // [171] phi from mulf_tables_cmp::@8 to print_uint [phi:mulf_tables_cmp::@8->print_uint]
  print_uint_from___b8:
    // [171] phi print_char_cursor#145 = print_char_cursor#1 [phi:mulf_tables_cmp::@8->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#1 [phi:mulf_tables_cmp::@8->print_uint#1] -- register_copy 
    jsr print_uint
    // [66] phi from mulf_tables_cmp::@8 to mulf_tables_cmp::@9 [phi:mulf_tables_cmp::@8->mulf_tables_cmp::@9]
  __b9_from___b8:
    jmp __b9
    // mulf_tables_cmp::@9
  __b9:
    // [67] call print_str
    // [159] phi from mulf_tables_cmp::@9 to print_str [phi:mulf_tables_cmp::@9->print_str]
  print_str_from___b9:
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mulf_tables_cmp::@9->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = mulf_tables_cmp::str2 [phi:mulf_tables_cmp::@9->print_str#1] -- pbuz1=pbuc1 
    lda #<str2
    sta.z print_str.str
    lda #>str2
    sta.z print_str.str+1
    jsr print_str
    jmp __b10
    // mulf_tables_cmp::@10
  __b10:
    // [68] print_uint::w#2 = (unsigned int)mulf_tables_cmp::kc_sqr#2 -- vwuz1=vwuz2 
    lda.z kc_sqr
    sta.z print_uint.w
    lda.z kc_sqr+1
    sta.z print_uint.w+1
    // [69] call print_uint
    // [171] phi from mulf_tables_cmp::@10 to print_uint [phi:mulf_tables_cmp::@10->print_uint]
  print_uint_from___b10:
    // [171] phi print_char_cursor#145 = print_char_cursor#1 [phi:mulf_tables_cmp::@10->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#2 [phi:mulf_tables_cmp::@10->print_uint#1] -- register_copy 
    jsr print_uint
    // [59] phi from mulf_tables_cmp::@10 to mulf_tables_cmp::@return [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return]
  __breturn_from___b10:
    // [59] phi print_line_cursor#10 = print_screen#0 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#0] -- pbuz1=pbuc1 
    lda #<print_screen
    sta.z print_line_cursor
    lda #>print_screen
    sta.z print_line_cursor+1
    // [59] phi print_char_cursor#101 = print_char_cursor#18 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#1] -- register_copy 
    jmp __breturn
    // mulf_tables_cmp::@4
  __b4:
    // [70] mulf_tables_cmp::asm_sqr#1 = ++ mulf_tables_cmp::asm_sqr#2 -- pbuz1=_inc_pbuz1 
    inc.z asm_sqr
    bne !+
    inc.z asm_sqr+1
  !:
    // [71] mulf_tables_cmp::kc_sqr#1 = ++ mulf_tables_cmp::kc_sqr#2 -- pbuz1=_inc_pbuz1 
    inc.z kc_sqr
    bne !+
    inc.z kc_sqr+1
  !:
    // [52] phi from mulf_tables_cmp::@4 to mulf_tables_cmp::@1 [phi:mulf_tables_cmp::@4->mulf_tables_cmp::@1]
  __b1_from___b4:
    // [52] phi mulf_tables_cmp::asm_sqr#2 = mulf_tables_cmp::asm_sqr#1 [phi:mulf_tables_cmp::@4->mulf_tables_cmp::@1#0] -- register_copy 
    // [52] phi mulf_tables_cmp::kc_sqr#2 = mulf_tables_cmp::kc_sqr#1 [phi:mulf_tables_cmp::@4->mulf_tables_cmp::@1#1] -- register_copy 
    jmp __b1
  .segment Data
    str: .text "multiply tables match!"
    .byte 0
    str1: .text "multiply table mismatch at "
    .byte 0
    str2: .text " / "
    .byte 0
}
.segment Code
  // mul8u_compare
// Perform all possible byte multiplications (slow and fast) and compare the results
mul8u_compare: {
    .label ms = 2
    .label mf = $10
    .label mn = $a
    .label b = 5
    .label a = 4
    // [73] phi from mul8u_compare to mul8u_compare::@1 [phi:mul8u_compare->mul8u_compare::@1]
  __b1_from_mul8u_compare:
    // [73] phi mul8u_compare::a#7 = 0 [phi:mul8u_compare->mul8u_compare::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z a
    jmp __b1
    // [73] phi from mul8u_compare::@8 to mul8u_compare::@1 [phi:mul8u_compare::@8->mul8u_compare::@1]
  __b1_from___b8:
    // [73] phi mul8u_compare::a#7 = mul8u_compare::a#1 [phi:mul8u_compare::@8->mul8u_compare::@1#0] -- register_copy 
    jmp __b1
    // mul8u_compare::@1
  __b1:
    // [74] phi from mul8u_compare::@1 to mul8u_compare::@2 [phi:mul8u_compare::@1->mul8u_compare::@2]
  __b2_from___b1:
    // [74] phi mul8u_compare::b#10 = 0 [phi:mul8u_compare::@1->mul8u_compare::@2#0] -- vbuz1=vbuc1 
    lda #0
    sta.z b
    jmp __b2
    // [74] phi from mul8u_compare::@5 to mul8u_compare::@2 [phi:mul8u_compare::@5->mul8u_compare::@2]
  __b2_from___b5:
    // [74] phi mul8u_compare::b#10 = mul8u_compare::b#1 [phi:mul8u_compare::@5->mul8u_compare::@2#0] -- register_copy 
    jmp __b2
    // mul8u_compare::@2
  __b2:
    // [75] muls8u::a#0 = mul8u_compare::a#7
    // [76] muls8u::b#0 = mul8u_compare::b#10 -- vbuxx=vbuz1 
    ldx.z b
    // [77] call muls8u
    jsr muls8u
    // [78] muls8u::return#2 = muls8u::return#0
    jmp __b10
    // mul8u_compare::@10
  __b10:
    // [79] mul8u_compare::ms#0 = muls8u::return#2
    // [80] mulf8u::a#0 = mul8u_compare::a#7 -- vbuaa=vbuz1 
    lda.z a
    // [81] mulf8u::b#0 = mul8u_compare::b#10 -- vbuxx=vbuz1 
    ldx.z b
    // [82] call mulf8u
    jsr mulf8u
    // [83] mulf8u::return#2 = mulf8u::return#0
    jmp __b11
    // mul8u_compare::@11
  __b11:
    // [84] mul8u_compare::mf#0 = mulf8u::return#2
    // [85] mul8u::a#2 = mul8u_compare::a#7 -- vbuxx=vbuz1 
    ldx.z a
    // [86] mul8u::b#1 = mul8u_compare::b#10 -- vbuaa=vbuz1 
    lda.z b
    // [87] call mul8u
    // [191] phi from mul8u_compare::@11 to mul8u [phi:mul8u_compare::@11->mul8u]
  mul8u_from___b11:
    // [191] phi mul8u::a#6 = mul8u::a#2 [phi:mul8u_compare::@11->mul8u#0] -- register_copy 
    // [191] phi mul8u::b#2 = mul8u::b#1 [phi:mul8u_compare::@11->mul8u#1] -- register_copy 
    jsr mul8u
    // [88] mul8u::return#3 = mul8u::res#2
    jmp __b12
    // mul8u_compare::@12
  __b12:
    // [89] mul8u_compare::mn#0 = mul8u::return#3
    // [90] if(mul8u_compare::ms#0==mul8u_compare::mf#0) goto mul8u_compare::@3 -- vwuz1_eq_vwuz2_then_la1 
    lda.z ms
    cmp.z mf
    bne !+
    lda.z ms+1
    cmp.z mf+1
    beq __b3_from___b12
  !:
    // [91] phi from mul8u_compare::@12 to mul8u_compare::@6 [phi:mul8u_compare::@12->mul8u_compare::@6]
  __b6_from___b12:
    jmp __b6
    // mul8u_compare::@6
  __b6:
    // [92] phi from mul8u_compare::@6 to mul8u_compare::@3 [phi:mul8u_compare::@6->mul8u_compare::@3]
  __b3_from___b6:
    // [92] phi mul8u_compare::ok#4 = 0 [phi:mul8u_compare::@6->mul8u_compare::@3#0] -- vbuxx=vbuc1 
    ldx #0
    jmp __b3
    // [92] phi from mul8u_compare::@12 to mul8u_compare::@3 [phi:mul8u_compare::@12->mul8u_compare::@3]
  __b3_from___b12:
    // [92] phi mul8u_compare::ok#4 = 1 [phi:mul8u_compare::@12->mul8u_compare::@3#0] -- vbuxx=vbuc1 
    ldx #1
    jmp __b3
    // mul8u_compare::@3
  __b3:
    // [93] if(mul8u_compare::ms#0==mul8u_compare::mn#0) goto mul8u_compare::@14 -- vwuz1_eq_vwuz2_then_la1 
    lda.z ms
    cmp.z mn
    bne !+
    lda.z ms+1
    cmp.z mn+1
    beq __b14_from___b3
  !:
    // [95] phi from mul8u_compare::@3 to mul8u_compare::@4 [phi:mul8u_compare::@3->mul8u_compare::@4]
  __b4_from___b3:
    // [95] phi mul8u_compare::ok#3 = 0 [phi:mul8u_compare::@3->mul8u_compare::@4#0] -- vbuxx=vbuc1 
    ldx #0
    jmp __b4
    // [94] phi from mul8u_compare::@3 to mul8u_compare::@14 [phi:mul8u_compare::@3->mul8u_compare::@14]
  __b14_from___b3:
    jmp __b14
    // mul8u_compare::@14
  __b14:
    // [95] phi from mul8u_compare::@14 to mul8u_compare::@4 [phi:mul8u_compare::@14->mul8u_compare::@4]
  __b4_from___b14:
    // [95] phi mul8u_compare::ok#3 = mul8u_compare::ok#4 [phi:mul8u_compare::@14->mul8u_compare::@4#0] -- register_copy 
    jmp __b4
    // mul8u_compare::@4
  __b4:
    // [96] if(mul8u_compare::ok#3!=0) goto mul8u_compare::@5 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne __b5
    jmp __b7
    // mul8u_compare::@7
  __b7:
    // [97] *BG_COLOR = 2 -- _deref_pbuc1=vbuc2 
    lda #2
    sta BG_COLOR
    // [98] mul8u_error::a#0 = mul8u_compare::a#7 -- vbuxx=vbuz1 
    ldx.z a
    // [99] mul8u_error::b#0 = mul8u_compare::b#10
    // [100] mul8u_error::ms#0 = mul8u_compare::ms#0
    // [101] mul8u_error::mn#0 = mul8u_compare::mn#0
    // [102] mul8u_error::mf#0 = mul8u_compare::mf#0
    // [103] call mul8u_error
    // [202] phi from mul8u_compare::@7 to mul8u_error [phi:mul8u_compare::@7->mul8u_error]
  mul8u_error_from___b7:
    jsr mul8u_error
    jmp __breturn
    // mul8u_compare::@return
  __breturn:
    // [104] return 
    rts
    // mul8u_compare::@5
  __b5:
    // [105] mul8u_compare::b#1 = ++ mul8u_compare::b#10 -- vbuz1=_inc_vbuz1 
    inc.z b
    // [106] if(mul8u_compare::b#1!=0) goto mul8u_compare::@2 -- vbuz1_neq_0_then_la1 
    lda.z b
    bne __b2_from___b5
    jmp __b8
    // mul8u_compare::@8
  __b8:
    // [107] mul8u_compare::a#1 = ++ mul8u_compare::a#7 -- vbuz1=_inc_vbuz1 
    inc.z a
    // [108] if(mul8u_compare::a#1!=0) goto mul8u_compare::@1 -- vbuz1_neq_0_then_la1 
    lda.z a
    bne __b1_from___b8
    // [109] phi from mul8u_compare::@8 to mul8u_compare::@9 [phi:mul8u_compare::@8->mul8u_compare::@9]
  __b9_from___b8:
    jmp __b9
    // mul8u_compare::@9
  __b9:
    // [110] call print_str
    // [159] phi from mul8u_compare::@9 to print_str [phi:mul8u_compare::@9->print_str]
  print_str_from___b9:
    // [159] phi print_char_cursor#158 = print_char_cursor#101 [phi:mul8u_compare::@9->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = mul8u_compare::str [phi:mul8u_compare::@9->print_str#1] -- pbuz1=pbuc1 
    lda #<str
    sta.z print_str.str
    lda #>str
    sta.z print_str.str+1
    jsr print_str
    // [111] phi from mul8u_compare::@9 to mul8u_compare::@13 [phi:mul8u_compare::@9->mul8u_compare::@13]
  __b13_from___b9:
    jmp __b13
    // mul8u_compare::@13
  __b13:
    // [112] call print_ln
    // [166] phi from mul8u_compare::@13 to print_ln [phi:mul8u_compare::@13->print_ln]
  print_ln_from___b13:
    // [166] phi print_char_cursor#138 = print_char_cursor#1 [phi:mul8u_compare::@13->print_ln#0] -- register_copy 
    // [166] phi print_line_cursor#47 = print_line_cursor#10 [phi:mul8u_compare::@13->print_ln#1] -- register_copy 
    jsr print_ln
    jmp __breturn
  .segment Data
    str: .text "multiply results match!"
    .byte 0
}
.segment Code
  // mul8s_compare
// Perform all possible signed byte multiplications (slow and fast) and compare the results
mul8s_compare: {
    .label ms = 2
    .label mf = $10
    .label mn = $a
    .label a = 4
    .label b = 5
    // [114] phi from mul8s_compare to mul8s_compare::@1 [phi:mul8s_compare->mul8s_compare::@1]
  __b1_from_mul8s_compare:
    // [114] phi mul8s_compare::a#10 = -$80 [phi:mul8s_compare->mul8s_compare::@1#0] -- vbsz1=vbsc1 
    lda #-$80
    sta.z a
    jmp __b1
    // mul8s_compare::@1
  __b1:
    // [115] if(mul8s_compare::a#10!=-$80) goto mul8s_compare::@3 -- vbsz1_neq_vbsc1_then_la1 
    lda #-$80
    cmp.z a
    bne __b3_from___b1
    jmp __b2
    // mul8s_compare::@2
  __b2:
    // [116] print_char_cursor#192 = print_line_cursor#0 -- pbuz1=pbuz2 
    lda.z print_line_cursor
    sta.z print_char_cursor
    lda.z print_line_cursor+1
    sta.z print_char_cursor+1
    // [117] call print_str
    // [159] phi from mul8s_compare::@2 to print_str [phi:mul8s_compare::@2->print_str]
  print_str_from___b2:
    // [159] phi print_char_cursor#158 = print_char_cursor#192 [phi:mul8s_compare::@2->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = mul8s_compare::str [phi:mul8s_compare::@2->print_str#1] -- pbuz1=pbuc1 
    lda #<str
    sta.z print_str.str
    lda #>str
    sta.z print_str.str+1
    jsr print_str
    // [118] phi from mul8s_compare::@2 to mul8s_compare::@11 [phi:mul8s_compare::@2->mul8s_compare::@11]
  __b11_from___b2:
    jmp __b11
    // mul8s_compare::@11
  __b11:
    // [119] call print_ln
    // [166] phi from mul8s_compare::@11 to print_ln [phi:mul8s_compare::@11->print_ln]
  print_ln_from___b11:
    // [166] phi print_char_cursor#138 = print_char_cursor#1 [phi:mul8s_compare::@11->print_ln#0] -- register_copy 
    // [166] phi print_line_cursor#47 = print_line_cursor#0 [phi:mul8s_compare::@11->print_ln#1] -- register_copy 
    jsr print_ln
    jmp __breturn
    // mul8s_compare::@return
  __breturn:
    // [120] return 
    rts
    // [121] phi from mul8s_compare::@1 to mul8s_compare::@3 [phi:mul8s_compare::@1->mul8s_compare::@3]
  __b3_from___b1:
    // [121] phi mul8s_compare::b#10 = -$80 [phi:mul8s_compare::@1->mul8s_compare::@3#0] -- vbsz1=vbsc1 
    lda #-$80
    sta.z b
    jmp __b3
    // mul8s_compare::@3
  __b3:
    // [122] if(mul8s_compare::b#10!=-$80) goto mul8s_compare::@4 -- vbsz1_neq_vbsc1_then_la1 
    lda #-$80
    cmp.z b
    bne __b4
    jmp __b5
    // mul8s_compare::@5
  __b5:
    // [123] mul8s_compare::a#1 = ++ mul8s_compare::a#10 -- vbsz1=_inc_vbsz1 
    inc.z a
    // [114] phi from mul8s_compare::@5 to mul8s_compare::@1 [phi:mul8s_compare::@5->mul8s_compare::@1]
  __b1_from___b5:
    // [114] phi mul8s_compare::a#10 = mul8s_compare::a#1 [phi:mul8s_compare::@5->mul8s_compare::@1#0] -- register_copy 
    jmp __b1
    // mul8s_compare::@4
  __b4:
    // [124] muls8s::a#0 = mul8s_compare::a#10
    // [125] muls8s::b#0 = mul8s_compare::b#10 -- vbsxx=vbsz1 
    ldx.z b
    // [126] call muls8s
    jsr muls8s
    // [127] muls8s::return#2 = muls8s::return#0
    jmp __b12
    // mul8s_compare::@12
  __b12:
    // [128] mul8s_compare::ms#0 = muls8s::return#2
    // [129] mulf8s::a#0 = mul8s_compare::a#10 -- vbsaa=vbsz1 
    lda.z a
    // [130] mulf8s::b#0 = mul8s_compare::b#10 -- vbsxx=vbsz1 
    ldx.z b
    // [131] call mulf8s
    // [237] phi from mul8s_compare::@12 to mulf8s [phi:mul8s_compare::@12->mulf8s]
  mulf8s_from___b12:
    jsr mulf8s
    // [132] mulf8s::return#2 = mulf8s::return#0
    jmp __b13
    // mul8s_compare::@13
  __b13:
    // [133] mul8s_compare::mf#0 = mulf8s::return#2
    // [134] mul8s::a#0 = mul8s_compare::a#10
    // [135] mul8s::b#0 = mul8s_compare::b#10 -- vbsyy=vbsz1 
    ldy.z b
    // [136] call mul8s
    jsr mul8s
    jmp __b14
    // mul8s_compare::@14
  __b14:
    // [137] mul8s_compare::mn#0 = (int)mul8s::m#4
    // [138] if(mul8s_compare::ms#0==mul8s_compare::mf#0) goto mul8s_compare::@6 -- vwsz1_eq_vwsz2_then_la1 
    lda.z ms
    cmp.z mf
    bne !+
    lda.z ms+1
    cmp.z mf+1
    beq __b6_from___b14
  !:
    // [139] phi from mul8s_compare::@14 to mul8s_compare::@9 [phi:mul8s_compare::@14->mul8s_compare::@9]
  __b9_from___b14:
    jmp __b9
    // mul8s_compare::@9
  __b9:
    // [140] phi from mul8s_compare::@9 to mul8s_compare::@6 [phi:mul8s_compare::@9->mul8s_compare::@6]
  __b6_from___b9:
    // [140] phi mul8s_compare::ok#4 = 0 [phi:mul8s_compare::@9->mul8s_compare::@6#0] -- vbuxx=vbuc1 
    ldx #0
    jmp __b6
    // [140] phi from mul8s_compare::@14 to mul8s_compare::@6 [phi:mul8s_compare::@14->mul8s_compare::@6]
  __b6_from___b14:
    // [140] phi mul8s_compare::ok#4 = 1 [phi:mul8s_compare::@14->mul8s_compare::@6#0] -- vbuxx=vbuc1 
    ldx #1
    jmp __b6
    // mul8s_compare::@6
  __b6:
    // [141] if(mul8s_compare::ms#0==mul8s_compare::mn#0) goto mul8s_compare::@15 -- vwsz1_eq_vwsz2_then_la1 
    lda.z ms
    cmp.z mn
    bne !+
    lda.z ms+1
    cmp.z mn+1
    beq __b15_from___b6
  !:
    // [143] phi from mul8s_compare::@6 to mul8s_compare::@7 [phi:mul8s_compare::@6->mul8s_compare::@7]
  __b7_from___b6:
    // [143] phi mul8s_compare::ok#3 = 0 [phi:mul8s_compare::@6->mul8s_compare::@7#0] -- vbuxx=vbuc1 
    ldx #0
    jmp __b7
    // [142] phi from mul8s_compare::@6 to mul8s_compare::@15 [phi:mul8s_compare::@6->mul8s_compare::@15]
  __b15_from___b6:
    jmp __b15
    // mul8s_compare::@15
  __b15:
    // [143] phi from mul8s_compare::@15 to mul8s_compare::@7 [phi:mul8s_compare::@15->mul8s_compare::@7]
  __b7_from___b15:
    // [143] phi mul8s_compare::ok#3 = mul8s_compare::ok#4 [phi:mul8s_compare::@15->mul8s_compare::@7#0] -- register_copy 
    jmp __b7
    // mul8s_compare::@7
  __b7:
    // [144] if(mul8s_compare::ok#3!=0) goto mul8s_compare::@8 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne __b8
    jmp __b10
    // mul8s_compare::@10
  __b10:
    // [145] *BG_COLOR = 2 -- _deref_pbuc1=vbuc2 
    lda #2
    sta BG_COLOR
    // [146] mul8s_error::a#0 = mul8s_compare::a#10 -- vbsxx=vbsz1 
    ldx.z a
    // [147] mul8s_error::b#0 = mul8s_compare::b#10
    // [148] mul8s_error::ms#0 = mul8s_compare::ms#0
    // [149] mul8s_error::mn#0 = mul8s_compare::mn#0
    // [150] mul8s_error::mf#0 = mul8s_compare::mf#0
    // [151] call mul8s_error
    jsr mul8s_error
    jmp __breturn
    // mul8s_compare::@8
  __b8:
    // [152] mul8s_compare::b#1 = ++ mul8s_compare::b#10 -- vbsz1=_inc_vbsz1 
    inc.z b
    // [121] phi from mul8s_compare::@8 to mul8s_compare::@3 [phi:mul8s_compare::@8->mul8s_compare::@3]
  __b3_from___b8:
    // [121] phi mul8s_compare::b#10 = mul8s_compare::b#1 [phi:mul8s_compare::@8->mul8s_compare::@3#0] -- register_copy 
    jmp __b3
  .segment Data
    str: .text "signed multiply results match!"
    .byte 0
}
.segment Code
  // memset
// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str.
// void * memset(void *str, char c, unsigned int num)
memset: {
    .const c = ' '
    .const num = $3e8
    .label str = print_screen
    .label end = str+num
    .label dst = $c
    // [154] phi from memset to memset::@1 [phi:memset->memset::@1]
  __b1_from_memset:
    // [154] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 
    lda #<str
    sta.z dst
    lda #>str
    sta.z dst+1
    jmp __b1
    // memset::@1
  __b1:
    // [155] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 
    lda.z dst+1
    cmp #>end
    bne __b2
    lda.z dst
    cmp #<end
    bne __b2
    jmp __breturn
    // memset::@return
  __breturn:
    // [156] return 
    rts
    // memset::@2
  __b2:
    // [157] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 
    lda #c
    ldy #0
    sta (dst),y
    // [158] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 
    inc.z dst
    bne !+
    inc.z dst+1
  !:
    // [154] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1]
  __b1_from___b2:
    // [154] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy 
    jmp __b1
}
  // print_str
// Print a zero-terminated string
// void print_str(__zp(6) char *str)
print_str: {
    .label str = 6
    // [160] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1]
  __b1_from_print_str:
  __b1_from___b3:
    // [160] phi print_char_cursor#1 = print_char_cursor#158 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy 
    // [160] phi print_str::str#16 = print_str::str#19 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy 
    jmp __b1
    // print_str::@1
  __b1:
    // [161] if(0!=*print_str::str#16) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1 
    ldy #0
    lda (str),y
    cmp #0
    bne __b2
    jmp __breturn
    // print_str::@return
  __breturn:
    // [162] return 
    rts
    // print_str::@2
  __b2:
    // [163] print_char::ch#0 = *print_str::str#16 -- vbuaa=_deref_pbuz1 
    ldy #0
    lda (str),y
    // [164] call print_char
    // [283] phi from print_str::@2 to print_char [phi:print_str::@2->print_char]
  print_char_from___b2:
    // [283] phi print_char_cursor#87 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy 
    jsr print_char
    jmp __b3
    // print_str::@3
  __b3:
    // [165] print_str::str#0 = ++ print_str::str#16 -- pbuz1=_inc_pbuz1 
    inc.z str
    bne !+
    inc.z str+1
  !:
    jmp __b1_from___b3
}
  // print_ln
// Print a newline
print_ln: {
    // [167] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1]
  __b1_from_print_ln:
  __b1_from___b1:
    // [167] phi print_line_cursor#24 = print_line_cursor#47 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy 
    jmp __b1
    // print_ln::@1
  __b1:
    // [168] print_line_cursor#0 = print_line_cursor#24 + $28 -- pbuz1=pbuz1_plus_vbuc1 
    lda #$28
    clc
    adc.z print_line_cursor
    sta.z print_line_cursor
    bcc !+
    inc.z print_line_cursor+1
  !:
    // [169] if(print_line_cursor#0<print_char_cursor#138) goto print_ln::@1 -- pbuz1_lt_pbuz2_then_la1 
    lda.z print_line_cursor+1
    cmp.z print_char_cursor+1
    bcc __b1_from___b1
    bne !+
    lda.z print_line_cursor
    cmp.z print_char_cursor
    bcc __b1_from___b1
  !:
    jmp __breturn
    // print_ln::@return
  __breturn:
    // [170] return 
    rts
}
  // print_uint
// Print a unsigned int as HEX
// void print_uint(__zp(2) unsigned int w)
print_uint: {
    .label w = 2
    // [172] print_uchar::b#1 = byte1  print_uint::w#6 -- vbuxx=_byte1_vwuz1 
    ldx.z w+1
    // [173] call print_uchar
    // [287] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
  print_uchar_from_print_uint:
    // [287] phi print_char_cursor#146 = print_char_cursor#145 [phi:print_uint->print_uchar#0] -- register_copy 
    // [287] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- register_copy 
    jsr print_uchar
    jmp __b1
    // print_uint::@1
  __b1:
    // [174] print_uchar::b#2 = byte0  print_uint::w#6 -- vbuxx=_byte0_vwuz1 
    ldx.z w
    // [175] call print_uchar
    // [287] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
  print_uchar_from___b1:
    // [287] phi print_char_cursor#146 = print_char_cursor#18 [phi:print_uint::@1->print_uchar#0] -- register_copy 
    // [287] phi print_uchar::b#5 = print_uchar::b#2 [phi:print_uint::@1->print_uchar#1] -- register_copy 
    jsr print_uchar
    jmp __breturn
    // print_uint::@return
  __breturn:
    // [176] return 
    rts
}
  // muls8u
// Slow multiplication of unsigned bytes
// Calculate an unsigned multiplication by repeated addition
// __zp(2) unsigned int muls8u(__zp(4) char a, __register(X) char b)
muls8u: {
    .label return = 2
    .label m = 2
    .label a = 4
    // [177] if(muls8u::a#0==0) goto muls8u::@1 -- vbuz1_eq_0_then_la1 
    lda.z a
    beq __b1_from_muls8u
    // [178] phi from muls8u to muls8u::@2 [phi:muls8u->muls8u::@2]
  __b2_from_muls8u:
    // [178] phi muls8u::m#3 = 0 [phi:muls8u->muls8u::@2#0] -- vwuz1=vwuc1 
    lda #<0
    sta.z m
    lda #>0
    sta.z m+1
    // [178] phi muls8u::i#2 = 0 [phi:muls8u->muls8u::@2#1] -- vbuyy=vbuc1 
    ldy #0
    jmp __b2
    // muls8u::@2
  __b2:
    // [179] if(muls8u::i#2!=muls8u::a#0) goto muls8u::@3 -- vbuyy_neq_vbuz1_then_la1 
    cpy.z a
    bne __b3
    // [180] phi from muls8u::@2 to muls8u::@1 [phi:muls8u::@2->muls8u::@1]
  __b1_from___b2:
    // [180] phi muls8u::return#0 = muls8u::m#3 [phi:muls8u::@2->muls8u::@1#0] -- register_copy 
    jmp __b1
    // [180] phi from muls8u to muls8u::@1 [phi:muls8u->muls8u::@1]
  __b1_from_muls8u:
    // [180] phi muls8u::return#0 = 0 [phi:muls8u->muls8u::@1#0] -- vwuz1=vwuc1 
    lda #<0
    sta.z return
    lda #>0
    sta.z return+1
    jmp __b1
    // muls8u::@1
  __b1:
    jmp __breturn
    // muls8u::@return
  __breturn:
    // [181] return 
    rts
    // muls8u::@3
  __b3:
    // [182] muls8u::m#1 = muls8u::m#3 + muls8u::b#0 -- vwuz1=vwuz1_plus_vbuxx 
    txa
    clc
    adc.z m
    sta.z m
    bcc !+
    inc.z m+1
  !:
    // [183] muls8u::i#1 = ++ muls8u::i#2 -- vbuyy=_inc_vbuyy 
    iny
    // [178] phi from muls8u::@3 to muls8u::@2 [phi:muls8u::@3->muls8u::@2]
  __b2_from___b3:
    // [178] phi muls8u::m#3 = muls8u::m#1 [phi:muls8u::@3->muls8u::@2#0] -- register_copy 
    // [178] phi muls8u::i#2 = muls8u::i#1 [phi:muls8u::@3->muls8u::@2#1] -- register_copy 
    jmp __b2
}
  // mulf8u
// Fast multiply two unsigned chars to a unsigned int result
// __zp($10) unsigned int mulf8u(__register(A) char a, __register(X) char b)
mulf8u: {
    .label return = $10
    // [184] mulf8u_prepare::a#0 = mulf8u::a#0
    // [185] call mulf8u_prepare
    // [295] phi from mulf8u to mulf8u_prepare [phi:mulf8u->mulf8u_prepare]
  mulf8u_prepare_from_mulf8u:
    // [295] phi mulf8u_prepare::a#2 = mulf8u_prepare::a#0 [phi:mulf8u->mulf8u_prepare#0] -- register_copy 
    jsr mulf8u_prepare
    jmp __b1
    // mulf8u::@1
  __b1:
    // [186] mulf8u_prepared::b#0 = mulf8u::b#0 -- vbuaa=vbuxx 
    txa
    // [187] call mulf8u_prepared
    // [299] phi from mulf8u::@1 to mulf8u_prepared [phi:mulf8u::@1->mulf8u_prepared]
  mulf8u_prepared_from___b1:
    // [299] phi mulf8u_prepared::b#2 = mulf8u_prepared::b#0 [phi:mulf8u::@1->mulf8u_prepared#0] -- register_copy 
    jsr mulf8u_prepared
    // [188] mulf8u_prepared::return#2 = mulf8u_prepared::return#0
    jmp __b2
    // mulf8u::@2
  __b2:
    // [189] mulf8u::return#0 = mulf8u_prepared::return#2
    jmp __breturn
    // mulf8u::@return
  __breturn:
    // [190] return 
    rts
}
  // mul8u
// Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int
// __zp($a) unsigned int mul8u(__register(X) char a, __register(A) char b)
mul8u: {
    .label mb = $c
    .label res = $a
    .label return = $a
    // [192] mul8u::mb#0 = (unsigned int)mul8u::b#2 -- vwuz1=_word_vbuaa 
    sta.z mb
    lda #0
    sta.z mb+1
    // [193] phi from mul8u to mul8u::@1 [phi:mul8u->mul8u::@1]
  __b1_from_mul8u:
    // [193] phi mul8u::mb#2 = mul8u::mb#0 [phi:mul8u->mul8u::@1#0] -- register_copy 
    // [193] phi mul8u::res#2 = 0 [phi:mul8u->mul8u::@1#1] -- vwuz1=vwuc1 
    lda #<0
    sta.z res
    lda #>0
    sta.z res+1
    // [193] phi mul8u::a#3 = mul8u::a#6 [phi:mul8u->mul8u::@1#2] -- register_copy 
    jmp __b1
    // mul8u::@1
  __b1:
    // [194] if(mul8u::a#3!=0) goto mul8u::@2 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne __b2
    jmp __breturn
    // mul8u::@return
  __breturn:
    // [195] return 
    rts
    // mul8u::@2
  __b2:
    // [196] mul8u::$1 = mul8u::a#3 & 1 -- vbuaa=vbuxx_band_vbuc1 
    txa
    and #1
    // [197] if(mul8u::$1==0) goto mul8u::@3 -- vbuaa_eq_0_then_la1 
    cmp #0
    beq __b3_from___b2
    jmp __b4
    // mul8u::@4
  __b4:
    // [198] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 -- vwuz1=vwuz1_plus_vwuz2 
    clc
    lda.z res
    adc.z mb
    sta.z res
    lda.z res+1
    adc.z mb+1
    sta.z res+1
    // [199] phi from mul8u::@2 mul8u::@4 to mul8u::@3 [phi:mul8u::@2/mul8u::@4->mul8u::@3]
  __b3_from___b2:
  __b3_from___b4:
    // [199] phi mul8u::res#6 = mul8u::res#2 [phi:mul8u::@2/mul8u::@4->mul8u::@3#0] -- register_copy 
    jmp __b3
    // mul8u::@3
  __b3:
    // [200] mul8u::a#0 = mul8u::a#3 >> 1 -- vbuxx=vbuxx_ror_1 
    txa
    lsr
    tax
    // [201] mul8u::mb#1 = mul8u::mb#2 << 1 -- vwuz1=vwuz1_rol_1 
    asl.z mb
    rol.z mb+1
    // [193] phi from mul8u::@3 to mul8u::@1 [phi:mul8u::@3->mul8u::@1]
  __b1_from___b3:
    // [193] phi mul8u::mb#2 = mul8u::mb#1 [phi:mul8u::@3->mul8u::@1#0] -- register_copy 
    // [193] phi mul8u::res#2 = mul8u::res#6 [phi:mul8u::@3->mul8u::@1#1] -- register_copy 
    // [193] phi mul8u::a#3 = mul8u::a#0 [phi:mul8u::@3->mul8u::@1#2] -- register_copy 
    jmp __b1
}
  // mul8u_error
// void mul8u_error(__register(X) char a, __zp(5) char b, __zp(2) unsigned int ms, __zp($a) unsigned int mn, __zp($10) unsigned int mf)
mul8u_error: {
    .label b = 5
    .label ms = 2
    .label mn = $a
    .label mf = $10
    // [203] call print_str
    // [159] phi from mul8u_error to print_str [phi:mul8u_error->print_str]
  print_str_from_mul8u_error:
    // [159] phi print_char_cursor#158 = print_char_cursor#101 [phi:mul8u_error->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = mul8u_error::str [phi:mul8u_error->print_str#1] -- pbuz1=pbuc1 
    lda #<str
    sta.z print_str.str
    lda #>str
    sta.z print_str.str+1
    jsr print_str
    jmp __b1
    // mul8u_error::@1
  __b1:
    // [204] print_uchar::b#3 = mul8u_error::a#0
    // [205] call print_uchar
    // [287] phi from mul8u_error::@1 to print_uchar [phi:mul8u_error::@1->print_uchar]
  print_uchar_from___b1:
    // [287] phi print_char_cursor#146 = print_char_cursor#1 [phi:mul8u_error::@1->print_uchar#0] -- register_copy 
    // [287] phi print_uchar::b#5 = print_uchar::b#3 [phi:mul8u_error::@1->print_uchar#1] -- register_copy 
    jsr print_uchar
    // [206] phi from mul8u_error::@1 to mul8u_error::@2 [phi:mul8u_error::@1->mul8u_error::@2]
  __b2_from___b1:
    jmp __b2
    // mul8u_error::@2
  __b2:
    // [207] call print_str
    // [159] phi from mul8u_error::@2 to print_str [phi:mul8u_error::@2->print_str]
  print_str_from___b2:
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8u_error::@2->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1 
    lda #<str1
    sta.z print_str.str
    lda #>str1
    sta.z print_str.str+1
    jsr print_str
    jmp __b3
    // mul8u_error::@3
  __b3:
    // [208] print_uchar::b#4 = mul8u_error::b#0 -- vbuxx=vbuz1 
    ldx.z b
    // [209] call print_uchar
    // [287] phi from mul8u_error::@3 to print_uchar [phi:mul8u_error::@3->print_uchar]
  print_uchar_from___b3:
    // [287] phi print_char_cursor#146 = print_char_cursor#1 [phi:mul8u_error::@3->print_uchar#0] -- register_copy 
    // [287] phi print_uchar::b#5 = print_uchar::b#4 [phi:mul8u_error::@3->print_uchar#1] -- register_copy 
    jsr print_uchar
    // [210] phi from mul8u_error::@3 to mul8u_error::@4 [phi:mul8u_error::@3->mul8u_error::@4]
  __b4_from___b3:
    jmp __b4
    // mul8u_error::@4
  __b4:
    // [211] call print_str
    // [159] phi from mul8u_error::@4 to print_str [phi:mul8u_error::@4->print_str]
  print_str_from___b4:
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8u_error::@4->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1 
    lda #<str2
    sta.z print_str.str
    lda #>str2
    sta.z print_str.str+1
    jsr print_str
    jmp __b5
    // mul8u_error::@5
  __b5:
    // [212] print_uint::w#3 = mul8u_error::ms#0
    // [213] call print_uint
    // [171] phi from mul8u_error::@5 to print_uint [phi:mul8u_error::@5->print_uint]
  print_uint_from___b5:
    // [171] phi print_char_cursor#145 = print_char_cursor#1 [phi:mul8u_error::@5->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#3 [phi:mul8u_error::@5->print_uint#1] -- register_copy 
    jsr print_uint
    // [214] phi from mul8u_error::@5 to mul8u_error::@6 [phi:mul8u_error::@5->mul8u_error::@6]
  __b6_from___b5:
    jmp __b6
    // mul8u_error::@6
  __b6:
    // [215] call print_str
    // [159] phi from mul8u_error::@6 to print_str [phi:mul8u_error::@6->print_str]
  print_str_from___b6:
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8u_error::@6->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1 
    lda #<str3
    sta.z print_str.str
    lda #>str3
    sta.z print_str.str+1
    jsr print_str
    jmp __b7
    // mul8u_error::@7
  __b7:
    // [216] print_uint::w#4 = mul8u_error::mn#0 -- vwuz1=vwuz2 
    lda.z mn
    sta.z print_uint.w
    lda.z mn+1
    sta.z print_uint.w+1
    // [217] call print_uint
    // [171] phi from mul8u_error::@7 to print_uint [phi:mul8u_error::@7->print_uint]
  print_uint_from___b7:
    // [171] phi print_char_cursor#145 = print_char_cursor#1 [phi:mul8u_error::@7->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#4 [phi:mul8u_error::@7->print_uint#1] -- register_copy 
    jsr print_uint
    // [218] phi from mul8u_error::@7 to mul8u_error::@8 [phi:mul8u_error::@7->mul8u_error::@8]
  __b8_from___b7:
    jmp __b8
    // mul8u_error::@8
  __b8:
    // [219] call print_str
    // [159] phi from mul8u_error::@8 to print_str [phi:mul8u_error::@8->print_str]
  print_str_from___b8:
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8u_error::@8->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1 
    lda #<str4
    sta.z print_str.str
    lda #>str4
    sta.z print_str.str+1
    jsr print_str
    jmp __b9
    // mul8u_error::@9
  __b9:
    // [220] print_uint::w#5 = mul8u_error::mf#0 -- vwuz1=vwuz2 
    lda.z mf
    sta.z print_uint.w
    lda.z mf+1
    sta.z print_uint.w+1
    // [221] call print_uint
    // [171] phi from mul8u_error::@9 to print_uint [phi:mul8u_error::@9->print_uint]
  print_uint_from___b9:
    // [171] phi print_char_cursor#145 = print_char_cursor#1 [phi:mul8u_error::@9->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#5 [phi:mul8u_error::@9->print_uint#1] -- register_copy 
    jsr print_uint
    // [222] phi from mul8u_error::@9 to mul8u_error::@10 [phi:mul8u_error::@9->mul8u_error::@10]
  __b10_from___b9:
    jmp __b10
    // mul8u_error::@10
  __b10:
    // [223] call print_ln
    // [166] phi from mul8u_error::@10 to print_ln [phi:mul8u_error::@10->print_ln]
  print_ln_from___b10:
    // [166] phi print_char_cursor#138 = print_char_cursor#18 [phi:mul8u_error::@10->print_ln#0] -- register_copy 
    // [166] phi print_line_cursor#47 = print_line_cursor#10 [phi:mul8u_error::@10->print_ln#1] -- register_copy 
    jsr print_ln
    jmp __breturn
    // mul8u_error::@return
  __breturn:
    // [224] return 
    rts
  .segment Data
    str: .text "multiply mismatch "
    .byte 0
}
.segment Code
  // muls8s
// Slow multiplication of signed bytes
// Perform a signed multiplication by repeated addition/subtraction
// __zp(2) int muls8s(__zp(4) signed char a, __register(X) signed char b)
muls8s: {
    .label m = 2
    .label return = 2
    .label a = 4
    // [225] if(muls8s::a#0<0) goto muls8s::@5 -- vbsz1_lt_0_then_la1 
    lda.z a
    bmi __b5_from_muls8s
    jmp __b2
    // muls8s::@2
  __b2:
    // [226] if(muls8s::a#0<=0) goto muls8s::@1 -- vbsz1_le_0_then_la1 
    lda.z a
    cmp #1
    bmi __b1_from___b2
    // [227] phi from muls8s::@2 to muls8s::@3 [phi:muls8s::@2->muls8s::@3]
  __b3_from___b2:
    // [227] phi muls8s::m#3 = 0 [phi:muls8s::@2->muls8s::@3#0] -- vwsz1=vwsc1 
    lda #<0
    sta.z m
    lda #>0
    sta.z m+1
    // [227] phi muls8s::j#2 = 0 [phi:muls8s::@2->muls8s::@3#1] -- vbsyy=vbsc1 
    ldy #0
    jmp __b3
    // muls8s::@3
  __b3:
    // [228] if(muls8s::j#2!=muls8s::a#0) goto muls8s::@4 -- vbsyy_neq_vbsz1_then_la1 
    cpy.z a
    bne __b4
    // [229] phi from muls8s::@3 muls8s::@5 to muls8s::@1 [phi:muls8s::@3/muls8s::@5->muls8s::@1]
  __b1_from___b3:
  __b1_from___b5:
    // [229] phi muls8s::return#0 = muls8s::m#3 [phi:muls8s::@3/muls8s::@5->muls8s::@1#0] -- register_copy 
    jmp __b1
    // [229] phi from muls8s::@2 to muls8s::@1 [phi:muls8s::@2->muls8s::@1]
  __b1_from___b2:
    // [229] phi muls8s::return#0 = 0 [phi:muls8s::@2->muls8s::@1#0] -- vwsz1=vwsc1 
    lda #<0
    sta.z return
    lda #>0
    sta.z return+1
    jmp __b1
    // muls8s::@1
  __b1:
    jmp __breturn
    // muls8s::@return
  __breturn:
    // [230] return 
    rts
    // muls8s::@4
  __b4:
    // [231] muls8s::m#1 = muls8s::m#3 + muls8s::b#0 -- vwsz1=vwsz1_plus_vbsxx 
    txa
    sta.z $ff
    clc
    adc.z m
    sta.z m
    lda.z $ff
    ora #$7f
    bmi !+
    lda #0
  !:
    adc.z m+1
    sta.z m+1
    // [232] muls8s::j#1 = ++ muls8s::j#2 -- vbsyy=_inc_vbsyy 
    iny
    // [227] phi from muls8s::@4 to muls8s::@3 [phi:muls8s::@4->muls8s::@3]
  __b3_from___b4:
    // [227] phi muls8s::m#3 = muls8s::m#1 [phi:muls8s::@4->muls8s::@3#0] -- register_copy 
    // [227] phi muls8s::j#2 = muls8s::j#1 [phi:muls8s::@4->muls8s::@3#1] -- register_copy 
    jmp __b3
    // [233] phi from muls8s to muls8s::@5 [phi:muls8s->muls8s::@5]
  __b5_from_muls8s:
    // [233] phi muls8s::m#5 = 0 [phi:muls8s->muls8s::@5#0] -- vwsz1=vwsc1 
    lda #<0
    sta.z m
    lda #>0
    sta.z m+1
    // [233] phi muls8s::i#2 = 0 [phi:muls8s->muls8s::@5#1] -- vbsyy=vbsc1 
    ldy #0
    jmp __b5
    // muls8s::@5
  __b5:
    // [234] if(muls8s::i#2!=muls8s::a#0) goto muls8s::@6 -- vbsyy_neq_vbsz1_then_la1 
    cpy.z a
    bne __b6
    jmp __b1_from___b5
    // muls8s::@6
  __b6:
    // [235] muls8s::m#2 = muls8s::m#5 - muls8s::b#0 -- vwsz1=vwsz1_minus_vbsxx 
    txa
    sta.z $fe
    ora #$7f
    bmi !+
    lda #0
  !:
    sta.z $ff
    lda.z m
    sec
    sbc.z $fe
    sta.z m
    lda.z m+1
    sbc.z $ff
    sta.z m+1
    // [236] muls8s::i#1 = -- muls8s::i#2 -- vbsyy=_dec_vbsyy 
    dey
    // [233] phi from muls8s::@6 to muls8s::@5 [phi:muls8s::@6->muls8s::@5]
  __b5_from___b6:
    // [233] phi muls8s::m#5 = muls8s::m#2 [phi:muls8s::@6->muls8s::@5#0] -- register_copy 
    // [233] phi muls8s::i#2 = muls8s::i#1 [phi:muls8s::@6->muls8s::@5#1] -- register_copy 
    jmp __b5
}
  // mulf8s
// Fast multiply two signed chars to a unsigned int result
// __zp($10) int mulf8s(__register(A) signed char a, __register(X) signed char b)
mulf8s: {
    .label return = $10
    jmp mulf8s_prepare1
    // mulf8s::mulf8s_prepare1
  mulf8s_prepare1:
    // [238] mulf8u_prepare::a#1 = (char)mulf8s::a#0
    // [239] call mulf8u_prepare
    // [295] phi from mulf8s::mulf8s_prepare1 to mulf8u_prepare [phi:mulf8s::mulf8s_prepare1->mulf8u_prepare]
  mulf8u_prepare_from_mulf8s_prepare1:
    // [295] phi mulf8u_prepare::a#2 = mulf8u_prepare::a#1 [phi:mulf8s::mulf8s_prepare1->mulf8u_prepare#0] -- register_copy 
    jsr mulf8u_prepare
    jmp __b1
    // mulf8s::@1
  __b1:
    // [240] mulf8s_prepared::b#0 = mulf8s::b#0 -- vbsz1=vbsxx 
    stx.z mulf8s_prepared.b
    // [241] call mulf8s_prepared
    jsr mulf8s_prepared
    jmp __b2
    // mulf8s::@2
  __b2:
    // [242] mulf8s::return#0 = (int)mulf8s_prepared::m#4
    jmp __breturn
    // mulf8s::@return
  __breturn:
    // [243] return 
    rts
}
  // mul8s
// Multiply of two signed chars to a signed int
// Fixes offsets introduced by using unsigned multiplication
// int mul8s(__zp(4) signed char a, __register(Y) signed char b)
mul8s: {
    .label m = $a
    .label a = 4
    // [244] mul8u::a#1 = (char)mul8s::a#0 -- vbuxx=vbuz1 
    ldx.z a
    // [245] mul8u::b#0 = (char)mul8s::b#0 -- vbuaa=vbuyy 
    tya
    // [246] call mul8u
    // [191] phi from mul8s to mul8u [phi:mul8s->mul8u]
  mul8u_from_mul8s:
    // [191] phi mul8u::a#6 = mul8u::a#1 [phi:mul8s->mul8u#0] -- register_copy 
    // [191] phi mul8u::b#2 = mul8u::b#0 [phi:mul8s->mul8u#1] -- register_copy 
    jsr mul8u
    // [247] mul8u::return#2 = mul8u::res#2
    jmp __b5
    // mul8s::@5
  __b5:
    // [248] mul8s::m#0 = mul8u::return#2
    // [249] if(mul8s::a#0>=0) goto mul8s::@1 -- vbsz1_ge_0_then_la1 
    lda.z a
    cmp #0
    bpl __b1_from___b5
    jmp __b3
    // mul8s::@3
  __b3:
    // [250] mul8s::$6 = byte1  mul8s::m#0 -- vbuaa=_byte1_vwuz1 
    lda.z m+1
    // [251] mul8s::$11 = mul8s::$6 - (char)mul8s::b#0 -- vbuaa=vbuaa_minus_vbuyy 
    sty.z $ff
    sec
    sbc.z $ff
    // [252] mul8s::m#1 = mul8s::m#0 byte1= mul8s::$11 -- vwuz1=vwuz1_setbyte1_vbuaa 
    sta.z m+1
    // [253] phi from mul8s::@3 mul8s::@5 to mul8s::@1 [phi:mul8s::@3/mul8s::@5->mul8s::@1]
  __b1_from___b3:
  __b1_from___b5:
    // [253] phi mul8s::m#5 = mul8s::m#1 [phi:mul8s::@3/mul8s::@5->mul8s::@1#0] -- register_copy 
    jmp __b1
    // mul8s::@1
  __b1:
    // [254] if(mul8s::b#0>=0) goto mul8s::@2 -- vbsyy_ge_0_then_la1 
    cpy #0
    bpl __b2_from___b1
    jmp __b4
    // mul8s::@4
  __b4:
    // [255] mul8s::$9 = byte1  mul8s::m#5 -- vbuaa=_byte1_vwuz1 
    lda.z m+1
    // [256] mul8s::$12 = mul8s::$9 - (char)mul8s::a#0 -- vbuaa=vbuaa_minus_vbuz1 
    sec
    sbc.z a
    // [257] mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12 -- vwuz1=vwuz1_setbyte1_vbuaa 
    sta.z m+1
    // [258] phi from mul8s::@1 mul8s::@4 to mul8s::@2 [phi:mul8s::@1/mul8s::@4->mul8s::@2]
  __b2_from___b1:
  __b2_from___b4:
    // [258] phi mul8s::m#4 = mul8s::m#5 [phi:mul8s::@1/mul8s::@4->mul8s::@2#0] -- register_copy 
    jmp __b2
    // mul8s::@2
  __b2:
    jmp __breturn
    // mul8s::@return
  __breturn:
    // [259] return 
    rts
}
  // mul8s_error
// void mul8s_error(__register(X) signed char a, __zp(5) signed char b, __zp(2) int ms, __zp($a) int mn, __zp($10) int mf)
mul8s_error: {
    .label b = 5
    .label ms = 2
    .label mn = $a
    .label mf = $10
    // [260] print_char_cursor#193 = print_line_cursor#0 -- pbuz1=pbuz2 
    lda.z print_line_cursor
    sta.z print_char_cursor
    lda.z print_line_cursor+1
    sta.z print_char_cursor+1
    // [261] call print_str
    // [159] phi from mul8s_error to print_str [phi:mul8s_error->print_str]
  print_str_from_mul8s_error:
    // [159] phi print_char_cursor#158 = print_char_cursor#193 [phi:mul8s_error->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = mul8s_error::str [phi:mul8s_error->print_str#1] -- pbuz1=pbuc1 
    lda #<str
    sta.z print_str.str
    lda #>str
    sta.z print_str.str+1
    jsr print_str
    jmp __b1
    // mul8s_error::@1
  __b1:
    // [262] print_schar::b#1 = mul8s_error::a#0
    // [263] call print_schar
    // [319] phi from mul8s_error::@1 to print_schar [phi:mul8s_error::@1->print_schar]
  print_schar_from___b1:
    // [319] phi print_schar::b#3 = print_schar::b#1 [phi:mul8s_error::@1->print_schar#0] -- register_copy 
    jsr print_schar
    // [264] phi from mul8s_error::@1 to mul8s_error::@2 [phi:mul8s_error::@1->mul8s_error::@2]
  __b2_from___b1:
    jmp __b2
    // mul8s_error::@2
  __b2:
    // [265] call print_str
    // [159] phi from mul8s_error::@2 to print_str [phi:mul8s_error::@2->print_str]
  print_str_from___b2:
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8s_error::@2->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1 
    lda #<str1
    sta.z print_str.str
    lda #>str1
    sta.z print_str.str+1
    jsr print_str
    jmp __b3
    // mul8s_error::@3
  __b3:
    // [266] print_schar::b#2 = mul8s_error::b#0 -- vbsxx=vbsz1 
    ldx.z b
    // [267] call print_schar
    // [319] phi from mul8s_error::@3 to print_schar [phi:mul8s_error::@3->print_schar]
  print_schar_from___b3:
    // [319] phi print_schar::b#3 = print_schar::b#2 [phi:mul8s_error::@3->print_schar#0] -- register_copy 
    jsr print_schar
    // [268] phi from mul8s_error::@3 to mul8s_error::@4 [phi:mul8s_error::@3->mul8s_error::@4]
  __b4_from___b3:
    jmp __b4
    // mul8s_error::@4
  __b4:
    // [269] call print_str
    // [159] phi from mul8s_error::@4 to print_str [phi:mul8s_error::@4->print_str]
  print_str_from___b4:
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8s_error::@4->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1 
    lda #<str2
    sta.z print_str.str
    lda #>str2
    sta.z print_str.str+1
    jsr print_str
    jmp __b5
    // mul8s_error::@5
  __b5:
    // [270] print_sint::w#1 = mul8s_error::ms#0
    // [271] call print_sint
    // [330] phi from mul8s_error::@5 to print_sint [phi:mul8s_error::@5->print_sint]
  print_sint_from___b5:
    // [330] phi print_sint::w#4 = print_sint::w#1 [phi:mul8s_error::@5->print_sint#0] -- register_copy 
    jsr print_sint
    // [272] phi from mul8s_error::@5 to mul8s_error::@6 [phi:mul8s_error::@5->mul8s_error::@6]
  __b6_from___b5:
    jmp __b6
    // mul8s_error::@6
  __b6:
    // [273] call print_str
    // [159] phi from mul8s_error::@6 to print_str [phi:mul8s_error::@6->print_str]
  print_str_from___b6:
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8s_error::@6->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1 
    lda #<str3
    sta.z print_str.str
    lda #>str3
    sta.z print_str.str+1
    jsr print_str
    jmp __b7
    // mul8s_error::@7
  __b7:
    // [274] print_sint::w#2 = mul8s_error::mn#0 -- vwsz1=vwsz2 
    lda.z mn
    sta.z print_sint.w
    lda.z mn+1
    sta.z print_sint.w+1
    // [275] call print_sint
    // [330] phi from mul8s_error::@7 to print_sint [phi:mul8s_error::@7->print_sint]
  print_sint_from___b7:
    // [330] phi print_sint::w#4 = print_sint::w#2 [phi:mul8s_error::@7->print_sint#0] -- register_copy 
    jsr print_sint
    // [276] phi from mul8s_error::@7 to mul8s_error::@8 [phi:mul8s_error::@7->mul8s_error::@8]
  __b8_from___b7:
    jmp __b8
    // mul8s_error::@8
  __b8:
    // [277] call print_str
    // [159] phi from mul8s_error::@8 to print_str [phi:mul8s_error::@8->print_str]
  print_str_from___b8:
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8s_error::@8->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1 
    lda #<str4
    sta.z print_str.str
    lda #>str4
    sta.z print_str.str+1
    jsr print_str
    jmp __b9
    // mul8s_error::@9
  __b9:
    // [278] print_sint::w#3 = mul8s_error::mf#0 -- vwsz1=vwsz2 
    lda.z mf
    sta.z print_sint.w
    lda.z mf+1
    sta.z print_sint.w+1
    // [279] call print_sint
    // [330] phi from mul8s_error::@9 to print_sint [phi:mul8s_error::@9->print_sint]
  print_sint_from___b9:
    // [330] phi print_sint::w#4 = print_sint::w#3 [phi:mul8s_error::@9->print_sint#0] -- register_copy 
    jsr print_sint
    // [280] phi from mul8s_error::@9 to mul8s_error::@10 [phi:mul8s_error::@9->mul8s_error::@10]
  __b10_from___b9:
    jmp __b10
    // mul8s_error::@10
  __b10:
    // [281] call print_ln
    // [166] phi from mul8s_error::@10 to print_ln [phi:mul8s_error::@10->print_ln]
  print_ln_from___b10:
    // [166] phi print_char_cursor#138 = print_char_cursor#18 [phi:mul8s_error::@10->print_ln#0] -- register_copy 
    // [166] phi print_line_cursor#47 = print_line_cursor#0 [phi:mul8s_error::@10->print_ln#1] -- register_copy 
    jsr print_ln
    jmp __breturn
    // mul8s_error::@return
  __breturn:
    // [282] return 
    rts
  .segment Data
    str: .text "signed multiply mismatch "
    .byte 0
}
.segment Code
  // print_char
// Print a single char
// void print_char(__register(A) char ch)
print_char: {
    // [284] *print_char_cursor#87 = print_char::ch#7 -- _deref_pbuz1=vbuaa 
    ldy #0
    sta (print_char_cursor),y
    // [285] print_char_cursor#18 = ++ print_char_cursor#87 -- pbuz1=_inc_pbuz1 
    inc.z print_char_cursor
    bne !+
    inc.z print_char_cursor+1
  !:
    jmp __breturn
    // print_char::@return
  __breturn:
    // [286] return 
    rts
}
  // print_uchar
// Print a char as HEX
// void print_uchar(__register(X) char b)
print_uchar: {
    // [288] print_uchar::$0 = print_uchar::b#5 >> 4 -- vbuaa=vbuxx_ror_4 
    txa
    lsr
    lsr
    lsr
    lsr
    // [289] print_char::ch#5 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa 
    tay
    lda print_hextab,y
    // [290] call print_char
  // Table of hexadecimal digits
    // [283] phi from print_uchar to print_char [phi:print_uchar->print_char]
  print_char_from_print_uchar:
    // [283] phi print_char_cursor#87 = print_char_cursor#146 [phi:print_uchar->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = print_char::ch#5 [phi:print_uchar->print_char#1] -- register_copy 
    jsr print_char
    jmp __b1
    // print_uchar::@1
  __b1:
    // [291] print_uchar::$2 = print_uchar::b#5 & $f -- vbuxx=vbuxx_band_vbuc1 
    lda #$f
    axs #0
    // [292] print_char::ch#6 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx 
    lda print_hextab,x
    // [293] call print_char
    // [283] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
  print_char_from___b1:
    // [283] phi print_char_cursor#87 = print_char_cursor#18 [phi:print_uchar::@1->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = print_char::ch#6 [phi:print_uchar::@1->print_char#1] -- register_copy 
    jsr print_char
    jmp __breturn
    // print_uchar::@return
  __breturn:
    // [294] return 
    rts
}
  // mulf8u_prepare
// Prepare for fast multiply with an unsigned char to a unsigned int result
// void mulf8u_prepare(__register(A) char a)
mulf8u_prepare: {
    .label memA = $fd
    // [296] *mulf8u_prepare::memA = mulf8u_prepare::a#2 -- _deref_pbuc1=vbuaa 
    sta memA
    // asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1  }
    lda memA
    sta mulf8u_prepared.sm1+1
    sta mulf8u_prepared.sm3+1
    eor #$ff
    sta mulf8u_prepared.sm2+1
    sta mulf8u_prepared.sm4+1
    jmp __breturn
    // mulf8u_prepare::@return
  __breturn:
    // [298] return 
    rts
}
  // mulf8u_prepared
// Calculate fast multiply with a prepared unsigned char to a unsigned int result
// The prepared number is set by calling mulf8u_prepare(char a)
// __zp($10) unsigned int mulf8u_prepared(__register(A) char b)
mulf8u_prepared: {
    .label resL = $fe
    .label memB = $ff
    .label return = $10
    // [300] *mulf8u_prepared::memB = mulf8u_prepared::b#2 -- _deref_pbuc1=vbuaa 
    sta memB
    // asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB  }
    ldx memB
    sec
  sm1:
    lda mulf_sqr1_lo,x
  sm2:
    sbc mulf_sqr2_lo,x
    sta resL
  sm3:
    lda mulf_sqr1_hi,x
  sm4:
    sbc mulf_sqr2_hi,x
    sta memB
    // [302] mulf8u_prepared::return#0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL -- vwuz1=_deref_pbuc1_word__deref_pbuc2 
    lda memB
    sta.z return+1
    lda resL
    sta.z return
    jmp __breturn
    // mulf8u_prepared::@return
  __breturn:
    // [303] return 
    rts
}
  // mulf8s_prepared
// Calculate fast multiply with a prepared unsigned char to a unsigned int result
// The prepared number is set by calling mulf8s_prepare(char a)
// int mulf8s_prepared(__zp($12) signed char b)
mulf8s_prepared: {
    .label memA = $fd
    .label m = $10
    .label b = $12
    // [304] mulf8u_prepared::b#1 = (char)mulf8s_prepared::b#0 -- vbuaa=vbuz1 
    lda.z b
    // [305] call mulf8u_prepared
    // [299] phi from mulf8s_prepared to mulf8u_prepared [phi:mulf8s_prepared->mulf8u_prepared]
  mulf8u_prepared_from_mulf8s_prepared:
    // [299] phi mulf8u_prepared::b#2 = mulf8u_prepared::b#1 [phi:mulf8s_prepared->mulf8u_prepared#0] -- register_copy 
    jsr mulf8u_prepared
    // [306] mulf8u_prepared::return#3 = mulf8u_prepared::return#0
    jmp __b5
    // mulf8s_prepared::@5
  __b5:
    // [307] mulf8s_prepared::m#0 = mulf8u_prepared::return#3
    // [308] if(*mulf8s_prepared::memA>=0) goto mulf8s_prepared::@1 -- _deref_pbsc1_ge_0_then_la1 
    lda memA
    cmp #0
    bpl __b1_from___b5
    jmp __b3
    // mulf8s_prepared::@3
  __b3:
    // [309] mulf8s_prepared::$6 = byte1  mulf8s_prepared::m#0 -- vbuaa=_byte1_vwuz1 
    lda.z m+1
    // [310] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (char)mulf8s_prepared::b#0 -- vbuaa=vbuaa_minus_vbuz1 
    sec
    sbc.z b
    // [311] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 byte1= mulf8s_prepared::$11 -- vwuz1=vwuz1_setbyte1_vbuaa 
    sta.z m+1
    // [312] phi from mulf8s_prepared::@3 mulf8s_prepared::@5 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@5->mulf8s_prepared::@1]
  __b1_from___b3:
  __b1_from___b5:
    // [312] phi mulf8s_prepared::m#5 = mulf8s_prepared::m#1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@5->mulf8s_prepared::@1#0] -- register_copy 
    jmp __b1
    // mulf8s_prepared::@1
  __b1:
    // [313] if(mulf8s_prepared::b#0>=0) goto mulf8s_prepared::@2 -- vbsz1_ge_0_then_la1 
    lda.z b
    cmp #0
    bpl __b2_from___b1
    jmp __b4
    // mulf8s_prepared::@4
  __b4:
    // [314] mulf8s_prepared::$9 = byte1  mulf8s_prepared::m#5 -- vbuaa=_byte1_vwuz1 
    lda.z m+1
    // [315] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (char)*mulf8s_prepared::memA -- vbuaa=vbuaa_minus__deref_pbuc1 
    sec
    sbc memA
    // [316] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12 -- vwuz1=vwuz1_setbyte1_vbuaa 
    sta.z m+1
    // [317] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2]
  __b2_from___b1:
  __b2_from___b4:
    // [317] phi mulf8s_prepared::m#4 = mulf8s_prepared::m#5 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2#0] -- register_copy 
    jmp __b2
    // mulf8s_prepared::@2
  __b2:
    jmp __breturn
    // mulf8s_prepared::@return
  __breturn:
    // [318] return 
    rts
}
  // print_schar
// Print a signed char as HEX
// void print_schar(__register(X) signed char b)
print_schar: {
    // [320] if(print_schar::b#3<0) goto print_schar::@1 -- vbsxx_lt_0_then_la1 
    cpx #0
    bmi __b1_from_print_schar
    // [321] phi from print_schar to print_schar::@3 [phi:print_schar->print_schar::@3]
  __b3_from_print_schar:
    jmp __b3
    // print_schar::@3
  __b3:
    // [322] call print_char
    // [283] phi from print_schar::@3 to print_char [phi:print_schar::@3->print_char]
  print_char_from___b3:
    // [283] phi print_char_cursor#87 = print_char_cursor#1 [phi:print_schar::@3->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = ' ' [phi:print_schar::@3->print_char#1] -- vbuaa=vbuc1 
    lda #' '
    jsr print_char
    // [323] phi from print_schar::@3 print_schar::@4 to print_schar::@2 [phi:print_schar::@3/print_schar::@4->print_schar::@2]
  __b2_from___b3:
  __b2_from___b4:
    // [323] phi print_schar::b#5 = print_schar::b#3 [phi:print_schar::@3/print_schar::@4->print_schar::@2#0] -- register_copy 
    jmp __b2
    // print_schar::@2
  __b2:
    // [324] print_uchar::b#0 = (char)print_schar::b#5
    // [325] call print_uchar
    // [287] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar]
  print_uchar_from___b2:
    // [287] phi print_char_cursor#146 = print_char_cursor#18 [phi:print_schar::@2->print_uchar#0] -- register_copy 
    // [287] phi print_uchar::b#5 = print_uchar::b#0 [phi:print_schar::@2->print_uchar#1] -- register_copy 
    jsr print_uchar
    jmp __breturn
    // print_schar::@return
  __breturn:
    // [326] return 
    rts
    // [327] phi from print_schar to print_schar::@1 [phi:print_schar->print_schar::@1]
  __b1_from_print_schar:
    jmp __b1
    // print_schar::@1
  __b1:
    // [328] call print_char
    // [283] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char]
  print_char_from___b1:
    // [283] phi print_char_cursor#87 = print_char_cursor#1 [phi:print_schar::@1->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = '-' [phi:print_schar::@1->print_char#1] -- vbuaa=vbuc1 
    lda #'-'
    jsr print_char
    jmp __b4
    // print_schar::@4
  __b4:
    // [329] print_schar::b#0 = - print_schar::b#3 -- vbsxx=_neg_vbsxx 
    txa
    eor #$ff
    clc
    adc #1
    tax
    jmp __b2_from___b4
}
  // print_sint
// Print a signed int as HEX
// void print_sint(__zp(2) int w)
print_sint: {
    .label w = 2
    // [331] if(print_sint::w#4<0) goto print_sint::@1 -- vwsz1_lt_0_then_la1 
    lda.z w+1
    bmi __b1_from_print_sint
    // [332] phi from print_sint to print_sint::@3 [phi:print_sint->print_sint::@3]
  __b3_from_print_sint:
    jmp __b3
    // print_sint::@3
  __b3:
    // [333] call print_char
    // [283] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char]
  print_char_from___b3:
    // [283] phi print_char_cursor#87 = print_char_cursor#1 [phi:print_sint::@3->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = ' ' [phi:print_sint::@3->print_char#1] -- vbuaa=vbuc1 
    lda #' '
    jsr print_char
    // [334] phi from print_sint::@3 print_sint::@4 to print_sint::@2 [phi:print_sint::@3/print_sint::@4->print_sint::@2]
  __b2_from___b3:
  __b2_from___b4:
    // [334] phi print_sint::w#6 = print_sint::w#4 [phi:print_sint::@3/print_sint::@4->print_sint::@2#0] -- register_copy 
    jmp __b2
    // print_sint::@2
  __b2:
    // [335] print_uint::w#0 = (unsigned int)print_sint::w#6
    // [336] call print_uint
    // [171] phi from print_sint::@2 to print_uint [phi:print_sint::@2->print_uint]
  print_uint_from___b2:
    // [171] phi print_char_cursor#145 = print_char_cursor#18 [phi:print_sint::@2->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#0 [phi:print_sint::@2->print_uint#1] -- register_copy 
    jsr print_uint
    jmp __breturn
    // print_sint::@return
  __breturn:
    // [337] return 
    rts
    // [338] phi from print_sint to print_sint::@1 [phi:print_sint->print_sint::@1]
  __b1_from_print_sint:
    jmp __b1
    // print_sint::@1
  __b1:
    // [339] call print_char
    // [283] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char]
  print_char_from___b1:
    // [283] phi print_char_cursor#87 = print_char_cursor#1 [phi:print_sint::@1->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = '-' [phi:print_sint::@1->print_char#1] -- vbuaa=vbuc1 
    lda #'-'
    jsr print_char
    jmp __b4
    // print_sint::@4
  __b4:
    // [340] print_sint::w#0 = - print_sint::w#4 -- vwsz1=_neg_vwsz1 
    lda #0
    sec
    sbc.z w
    sta.z w
    lda #0
    sbc.z w+1
    sta.z w+1
    jmp __b2_from___b4
}
  // File Data
.segment Data
  print_hextab: .text "0123456789abcdef"
  // mulf_sqr tables will contain f(x)=int(x*x/4) and g(x) = f(x-255).
  // <f(x) = <(( x * x )/4)
  .align $100
  mulf_sqr1_lo: .fill $200, 0
  // >f(x) = >(( x * x )/4)
  .align $100
  mulf_sqr1_hi: .fill $200, 0
  // <g(x) =  <((( x - 255) * ( x - 255 ))/4)
  .align $100
  mulf_sqr2_lo: .fill $200, 0
  // >g(x) = >((( x - 255) * ( x - 255 ))/4)
  .align $100
  mulf_sqr2_hi: .fill $200, 0
  // ASM based multiplication tables
  // <(( x * x )/4)
  .align $100
  mula_sqr1_lo: .fill $200, 0
  // >(( x * x )/4)
  .align $100
  mula_sqr1_hi: .fill $200, 0
  // <((( x - 255) * ( x - 255 ))/4)
  .align $100
  mula_sqr2_lo: .fill $200, 0
  // >((( x - 255) * ( x - 255 ))/4)
  .align $100
  mula_sqr2_hi: .fill $200, 0
  str1: .text "*"
  .byte 0
  str2: .text " slow:"
  .byte 0
  str3: .text " / normal:"
  .byte 0
  str4: .text " / fast:"
  .byte 0

ASSEMBLER OPTIMIZATIONS
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b4
Removing instruction jmp __b5
Removing instruction jmp __breturn
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b5
Removing instruction jmp __b7
Removing instruction jmp __breturn
Removing instruction jmp __b9
Removing instruction jmp __b8
Removing instruction jmp __b4
Removing instruction jmp __b3
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b3
Removing instruction jmp __b6
Removing instruction jmp __b7
Removing instruction jmp __breturn
Removing instruction jmp __b5
Removing instruction jmp __b8
Removing instruction jmp __b9
Removing instruction jmp __b10
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b10
Removing instruction jmp __b11
Removing instruction jmp __b12
Removing instruction jmp __b6
Removing instruction jmp __b3
Removing instruction jmp __b14
Removing instruction jmp __b4
Removing instruction jmp __b7
Removing instruction jmp __breturn
Removing instruction jmp __b8
Removing instruction jmp __b9
Removing instruction jmp __b13
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b11
Removing instruction jmp __breturn
Removing instruction jmp __b3
Removing instruction jmp __b5
Removing instruction jmp __b12
Removing instruction jmp __b13
Removing instruction jmp __b14
Removing instruction jmp __b9
Removing instruction jmp __b6
Removing instruction jmp __b15
Removing instruction jmp __b7
Removing instruction jmp __b10
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b3
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b2
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b4
Removing instruction jmp __b3
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b4
Removing instruction jmp __b5
Removing instruction jmp __b6
Removing instruction jmp __b7
Removing instruction jmp __b8
Removing instruction jmp __b9
Removing instruction jmp __b10
Removing instruction jmp __breturn
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b5
Removing instruction jmp mulf8s_prepare1
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b5
Removing instruction jmp __b3
Removing instruction jmp __b1
Removing instruction jmp __b4
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b4
Removing instruction jmp __b5
Removing instruction jmp __b6
Removing instruction jmp __b7
Removing instruction jmp __b8
Removing instruction jmp __b9
Removing instruction jmp __b10
Removing instruction jmp __breturn
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __breturn
Removing instruction jmp __breturn
Removing instruction jmp __b5
Removing instruction jmp __b3
Removing instruction jmp __b1
Removing instruction jmp __b4
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b3
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b4
Removing instruction jmp __b3
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b4
Succesful ASM optimization Pass5NextJumpElimination
Replacing instruction lda #<0 with TXA
Removing instruction lda #>0
Removing instruction lda #0
Removing instruction ldy #0
Removing instruction ldy #0
Removing instruction ldy #0
Removing instruction lda #>0
Replacing instruction ldy #0 with TAY
Removing instruction lda #>0
Removing instruction lda #>0
Removing instruction lda #>0
Replacing instruction ldy #0 with TAY
Removing instruction lda #>0
Removing instruction lda #>0
Replacing instruction ldy #0 with TAY
Removing instruction lda memA
Replacing instruction ldx memB with TAX
Removing instruction lda memB
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Replacing label __b9_from___b6 with __b8
Replacing label __b3_from___b2 with __b3
Replacing label __b14_from___b3 with __b4
Replacing label __b2_from___b5 with __b2
Replacing label __b1_from___b8 with __b1
Replacing label __b15_from___b6 with __b7
Replacing label __b1_from___b3 with __b1
Replacing label __b1_from___b1 with __b1
Replacing label __b1_from___b1 with __b1
Replacing label __b3_from___b2 with __b3
Replacing label __b1_from___b5 with __b1
Replacing label __b2_from___b1 with __b2
Replacing label __b1_from___b5 with __b1
Replacing label __b2_from___b1 with __b2
Replacing label __b1_from_print_schar with __b1
Replacing label __b2_from___b4 with __b2
Replacing label __b1_from_print_sint with __b1
Replacing label __b2_from___b4 with __b2
Removing instruction __b1_from_main:
Removing instruction mulf_init_from___b1:
Removing instruction __b2_from___b1:
Removing instruction __b3_from___b2:
Removing instruction mulf_tables_cmp_from___b3:
Removing instruction __b4_from___b3:
Removing instruction mul8u_compare_from___b4:
Removing instruction __b5_from___b4:
Removing instruction mul8s_compare_from___b5:
Removing instruction __b9_from___b6:
Removing instruction __b9:
Removing instruction __b8_from___b9:
Removing instruction __b3_from___b2:
Removing instruction __b3_from___b4:
Removing instruction __b3_from___b1:
Removing instruction print_str_from___b3:
Removing instruction __b6_from___b3:
Removing instruction print_ln_from___b6:
Removing instruction __breturn_from___b7:
Removing instruction print_uint_from___b8:
Removing instruction __b9_from___b8:
Removing instruction print_str_from___b9:
Removing instruction __b1_from___b8:
Removing instruction __b2_from___b1:
Removing instruction __b2_from___b5:
Removing instruction __b6_from___b12:
Removing instruction __b3_from___b6:
Removing instruction __b14_from___b3:
Removing instruction __b14:
Removing instruction __b4_from___b14:
Removing instruction __b9_from___b8:
Removing instruction print_str_from___b9:
Removing instruction __b13_from___b9:
Removing instruction print_ln_from___b13:
Removing instruction __b11_from___b2:
Removing instruction print_ln_from___b11:
Removing instruction __b9_from___b14:
Removing instruction __b6_from___b9:
Removing instruction __b15_from___b6:
Removing instruction __b15:
Removing instruction __b7_from___b15:
Removing instruction __b1_from_print_str:
Removing instruction __b1_from___b3:
Removing instruction __b1_from_print_ln:
Removing instruction __b1_from___b1:
Removing instruction __breturn:
Removing instruction __breturn:
Removing instruction __b3_from___b2:
Removing instruction __b3_from___b4:
Removing instruction print_uchar_from___b1:
Removing instruction __b2_from___b1:
Removing instruction print_str_from___b2:
Removing instruction __b4_from___b3:
Removing instruction print_str_from___b4:
Removing instruction print_uint_from___b5:
Removing instruction __b6_from___b5:
Removing instruction print_str_from___b6:
Removing instruction __b8_from___b7:
Removing instruction print_str_from___b8:
Removing instruction __b10_from___b9:
Removing instruction print_ln_from___b10:
Removing instruction __b1_from___b3:
Removing instruction __breturn:
Removing instruction mulf8u_prepare_from_mulf8s_prepare1:
Removing instruction __breturn:
Removing instruction __b1_from___b3:
Removing instruction __b1_from___b5:
Removing instruction __b2_from___b1:
Removing instruction __b2_from___b4:
Removing instruction __breturn:
Removing instruction print_schar_from___b1:
Removing instruction __b2_from___b1:
Removing instruction print_str_from___b2:
Removing instruction __b4_from___b3:
Removing instruction print_str_from___b4:
Removing instruction print_sint_from___b5:
Removing instruction __b6_from___b5:
Removing instruction print_str_from___b6:
Removing instruction __b8_from___b7:
Removing instruction print_str_from___b8:
Removing instruction __b10_from___b9:
Removing instruction print_ln_from___b10:
Removing instruction __b1_from___b3:
Removing instruction __b1_from___b5:
Removing instruction __b2_from___b1:
Removing instruction __b2_from___b4:
Removing instruction __breturn:
Removing instruction __b3_from_print_schar:
Removing instruction print_char_from___b3:
Removing instruction __b2_from___b3:
Removing instruction __b2_from___b4:
Removing instruction print_uchar_from___b2:
Removing instruction __b1_from_print_schar:
Removing instruction print_char_from___b1:
Removing instruction __b3_from_print_sint:
Removing instruction print_char_from___b3:
Removing instruction __b2_from___b3:
Removing instruction __b2_from___b4:
Removing instruction print_uint_from___b2:
Removing instruction __b1_from_print_sint:
Removing instruction print_char_from___b1:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction print_cls_from_main:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction __b3:
Removing instruction __b4:
Removing instruction __b5:
Removing instruction __breturn:
Removing instruction memset_from_print_cls:
Removing instruction __breturn:
Removing instruction __b1_from_mulf_init:
Removing instruction __b5_from___b1:
Removing instruction __b7:
Removing instruction __breturn:
Removing instruction __b8_from___b6:
Removing instruction __b5_from___b8:
Removing instruction __b4:
Removing instruction __b1_from___b3:
Removing instruction __breturn:
Removing instruction __b1_from_mulf_tables_cmp:
Removing instruction __b3:
Removing instruction __b6:
Removing instruction __b7:
Removing instruction __b5:
Removing instruction print_str_from___b5:
Removing instruction __b8:
Removing instruction __b9:
Removing instruction __b10:
Removing instruction print_uint_from___b10:
Removing instruction __breturn_from___b10:
Removing instruction __b1_from___b4:
Removing instruction __b1_from_mul8u_compare:
Removing instruction __b10:
Removing instruction __b11:
Removing instruction mul8u_from___b11:
Removing instruction __b12:
Removing instruction __b6:
Removing instruction __b4_from___b3:
Removing instruction __b7:
Removing instruction mul8u_error_from___b7:
Removing instruction __b8:
Removing instruction __b9:
Removing instruction __b13:
Removing instruction __b1_from_mul8s_compare:
Removing instruction __b2:
Removing instruction print_str_from___b2:
Removing instruction __b11:
Removing instruction __b5:
Removing instruction __b1_from___b5:
Removing instruction __b12:
Removing instruction mulf8s_from___b12:
Removing instruction __b13:
Removing instruction __b14:
Removing instruction __b9:
Removing instruction __b7_from___b6:
Removing instruction __b10:
Removing instruction __b3_from___b8:
Removing instruction __b1_from_memset:
Removing instruction __breturn:
Removing instruction __b1_from___b2:
Removing instruction __breturn:
Removing instruction print_char_from___b2:
Removing instruction __b3:
Removing instruction __breturn:
Removing instruction print_uchar_from_print_uint:
Removing instruction __b1:
Removing instruction print_uchar_from___b1:
Removing instruction __breturn:
Removing instruction __b2_from_muls8u:
Removing instruction __b1_from___b2:
Removing instruction __b2_from___b3:
Removing instruction mulf8u_prepare_from_mulf8u:
Removing instruction __b1:
Removing instruction mulf8u_prepared_from___b1:
Removing instruction __b2:
Removing instruction __b1_from_mul8u:
Removing instruction __breturn:
Removing instruction __b4:
Removing instruction __b1_from___b3:
Removing instruction print_str_from_mul8u_error:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction __b3:
Removing instruction print_uchar_from___b3:
Removing instruction __b4:
Removing instruction __b5:
Removing instruction __b6:
Removing instruction __b7:
Removing instruction print_uint_from___b7:
Removing instruction __b8:
Removing instruction __b9:
Removing instruction print_uint_from___b9:
Removing instruction __b10:
Removing instruction __breturn:
Removing instruction __b2:
Removing instruction __b3_from___b2:
Removing instruction __b3_from___b4:
Removing instruction __b5_from___b6:
Removing instruction mulf8s_prepare1:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction mul8u_from_mul8s:
Removing instruction __b5:
Removing instruction __b3:
Removing instruction __b4:
Removing instruction print_str_from_mul8s_error:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction __b3:
Removing instruction print_schar_from___b3:
Removing instruction __b4:
Removing instruction __b5:
Removing instruction __b6:
Removing instruction __b7:
Removing instruction print_sint_from___b7:
Removing instruction __b8:
Removing instruction __b9:
Removing instruction print_sint_from___b9:
Removing instruction __b10:
Removing instruction __breturn:
Removing instruction __breturn:
Removing instruction print_char_from_print_uchar:
Removing instruction __b1:
Removing instruction print_char_from___b1:
Removing instruction __breturn:
Removing instruction __breturn:
Removing instruction __breturn:
Removing instruction mulf8u_prepared_from_mulf8s_prepared:
Removing instruction __b5:
Removing instruction __b3:
Removing instruction __b4:
Removing instruction __b3:
Removing instruction __breturn:
Removing instruction __b4:
Removing instruction __b3:
Removing instruction __breturn:
Removing instruction __b4:
Succesful ASM optimization Pass5UnusedLabelElimination
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
Replacing jump to rts with rts in jmp __b1
Replacing jump to rts with rts in jmp __b1
Skipping double jump to __b1 in jmp __b1_from___b5
Succesful ASM optimization Pass5DoubleJumpElimination
Relabelling long label __b3_from___b12 to __b6
Relabelling long label __b3_from___b1 to __b2
Relabelling long label __b6_from___b14 to __b5
Relabelling long label __b1_from_muls8u to __b4
Relabelling long label __b1_from___b5 to __b2
Relabelling long label __b1_from___b2 to __b7
Relabelling long label __b5_from_muls8s to __b8
Succesful ASM optimization Pass5RelabelLongLabels
Removing instruction jmp __b8
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b4
Removing instruction jmp __b7
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction lda #<0
Removing instruction lda.z a
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Removing instruction __breturn:
Removing instruction __breturn:
Removing instruction __breturn:
Removing instruction __b1:
Removing instruction __b2:
Succesful ASM optimization Pass5UnusedLabelElimination
Replacing jump to rts with rts in jmp __b1
Succesful ASM optimization Pass5DoubleJumpElimination
Removing instruction __b1:
Succesful ASM optimization Pass5UnusedLabelElimination

FINAL SYMBOL TABLE
__constant char *BG_COLOR = (char *) 53281
__constant char RADIX::BINARY = 2
__constant char RADIX::DECIMAL = $a
__constant char RADIX::HEXADECIMAL = $10
__constant char RADIX::OCTAL = 8
void main()
void * memset(void *str , char c , unsigned int num)
char memset::c
__constant char memset::c#0 = ' ' // c
char *memset::dst
char *memset::dst#1 // dst zp[2]:12 2002.0
char *memset::dst#2 // dst zp[2]:12 1334.6666666666667
char *memset::end
__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end
unsigned int memset::num
__constant unsigned int memset::num#0 = $3e8 // num
void *memset::return
void *memset::str
__constant void *memset::str#0 = (void *)print_screen#0 // str
int mul8s(signed char a , signed char b)
char mul8s::$11 // reg byte a 20002.0
char mul8s::$12 // reg byte a 20002.0
char mul8s::$6 // reg byte a 20002.0
char mul8s::$9 // reg byte a 20002.0
signed char mul8s::a
signed char mul8s::a#0 // a zp[1]:4 785.8571428571429
signed char mul8s::b
signed char mul8s::b#0 // reg byte y 1000.1818181818181
unsigned int mul8s::m
unsigned int mul8s::m#0 // m zp[2]:10 10001.0
unsigned int mul8s::m#1 // m zp[2]:10 20002.0
unsigned int mul8s::m#2 // m zp[2]:10 20002.0
unsigned int mul8s::m#4 // m zp[2]:10 6667.333333333333
unsigned int mul8s::m#5 // m zp[2]:10 12501.25
int mul8s::return
void mul8s_compare()
signed char mul8s_compare::a
signed char mul8s_compare::a#1 // a zp[1]:4 202.0
signed char mul8s_compare::a#10 // a zp[1]:4 122.85185185185186
signed char mul8s_compare::b
signed char mul8s_compare::b#1 // b zp[1]:5 2002.0
signed char mul8s_compare::b#10 // b zp[1]:5 240.67999999999998
int mul8s_compare::mf
int mul8s_compare::mf#0 // mf zp[2]:16 118.41176470588235
int mul8s_compare::mn
int mul8s_compare::mn#0 // mn zp[2]:10 167.75
int mul8s_compare::ms
int mul8s_compare::ms#0 // ms zp[2]:2 150.7
char mul8s_compare::ok
char mul8s_compare::ok#3 // reg byte x 2002.0
char mul8s_compare::ok#4 // reg byte x 333.6666666666667
__constant char mul8s_compare::str[$1f] = "signed multiply results match!"
void mul8s_error(signed char a , signed char b , int ms , int mn , int mf)
signed char mul8s_error::a
signed char mul8s_error::a#0 // reg byte x 16.0
signed char mul8s_error::b
signed char mul8s_error::b#0 // b zp[1]:5 11.2
int mul8s_error::mf
int mul8s_error::mf#0 // mf zp[2]:16 5.894736842105264
int mul8s_error::mn
int mul8s_error::mn#0 // mn zp[2]:10 7.0
int mul8s_error::ms
int mul8s_error::ms#0 // ms zp[2]:2 8.615384615384615
__constant char mul8s_error::str[$1a] = "signed multiply mismatch "
unsigned int mul8u(char a , char b)
char mul8u::$1 // reg byte a 2.00000002E8
char mul8u::a
char mul8u::a#0 // reg byte x 1.00000001E8
char mul8u::a#1 // reg byte x 10001.0
char mul8u::a#2 // reg byte x 1001.0
char mul8u::a#3 // reg byte x 6.668333416666667E7
char mul8u::a#6 // reg byte x 55501.5
char mul8u::b
char mul8u::b#0 // reg byte a 20002.0
char mul8u::b#1 // reg byte a 2002.0
char mul8u::b#2 // reg byte a 11002.0
unsigned int mul8u::mb
unsigned int mul8u::mb#0 // mb zp[2]:12 200002.0
unsigned int mul8u::mb#1 // mb zp[2]:12 2.00000002E8
unsigned int mul8u::mb#2 // mb zp[2]:12 4.287142914285715E7
unsigned int mul8u::res
unsigned int mul8u::res#1 // res zp[2]:10 2.00000002E8
unsigned int mul8u::res#2 // res zp[2]:10 4.2858715E7
unsigned int mul8u::res#6 // res zp[2]:10 1.00000001E8
unsigned int mul8u::return
unsigned int mul8u::return#2 // return zp[2]:10 20002.0
unsigned int mul8u::return#3 // return zp[2]:10 2002.0
void mul8u_compare()
char mul8u_compare::a
char mul8u_compare::a#1 // a zp[1]:4 151.5
char mul8u_compare::a#7 // a zp[1]:4 119.11111111111111
char mul8u_compare::b
char mul8u_compare::b#1 // b zp[1]:5 1501.5
char mul8u_compare::b#10 // b zp[1]:5 200.64
unsigned int mul8u_compare::mf
unsigned int mul8u_compare::mf#0 // mf zp[2]:16 111.83333333333334
unsigned int mul8u_compare::mn
unsigned int mul8u_compare::mn#0 // mn zp[2]:10 167.75
unsigned int mul8u_compare::ms
unsigned int mul8u_compare::ms#0 // ms zp[2]:2 143.52380952380952
char mul8u_compare::ok
char mul8u_compare::ok#3 // reg byte x 2002.0
char mul8u_compare::ok#4 // reg byte x 333.6666666666667
__constant char mul8u_compare::str[$18] = "multiply results match!"
void mul8u_error(char a , char b , unsigned int ms , unsigned int mn , unsigned int mf)
char mul8u_error::a
char mul8u_error::a#0 // reg byte x 16.0
char mul8u_error::b
char mul8u_error::b#0 // b zp[1]:5 11.2
unsigned int mul8u_error::mf
unsigned int mul8u_error::mf#0 // mf zp[2]:16 5.894736842105264
unsigned int mul8u_error::mn
unsigned int mul8u_error::mn#0 // mn zp[2]:10 7.0
unsigned int mul8u_error::ms
unsigned int mul8u_error::ms#0 // ms zp[2]:2 8.615384615384615
__constant char mul8u_error::str[$13] = "multiply mismatch "
__constant char mula_sqr1_hi[$200] = { fill( $200, 0) }
__constant char mula_sqr1_lo[$200] = { fill( $200, 0) }
__constant char mula_sqr2_hi[$200] = { fill( $200, 0) }
__constant char mula_sqr2_lo[$200] = { fill( $200, 0) }
int mulf8s(signed char a , signed char b)
signed char mulf8s::a
signed char mulf8s::a#0 // reg byte a 333.6666666666667
signed char mulf8s::b
signed char mulf8s::b#0 // reg byte x 2750.5
signed char mulf8s::mulf8s_prepare1_a
int mulf8s::return
int mulf8s::return#0 // return zp[2]:16 3667.333333333333
int mulf8s::return#2 // return zp[2]:16 2002.0
int mulf8s_prepared(signed char b)
char mulf8s_prepared::$11 // reg byte a 200002.0
char mulf8s_prepared::$12 // reg byte a 200002.0
char mulf8s_prepared::$6 // reg byte a 200002.0
char mulf8s_prepared::$9 // reg byte a 200002.0
signed char mulf8s_prepared::b
signed char mulf8s_prepared::b#0 // b zp[1]:18 11000.2
unsigned int mulf8s_prepared::m
unsigned int mulf8s_prepared::m#0 // m zp[2]:16 100001.0
unsigned int mulf8s_prepared::m#1 // m zp[2]:16 200002.0
unsigned int mulf8s_prepared::m#2 // m zp[2]:16 200002.0
unsigned int mulf8s_prepared::m#4 // m zp[2]:16 66667.33333333333
unsigned int mulf8s_prepared::m#5 // m zp[2]:16 125001.25
__constant signed char * const mulf8s_prepared::memA = (signed char *) 253
int mulf8s_prepared::return
unsigned int mulf8u(char a , char b)
char mulf8u::a
char mulf8u::a#0 // reg byte a 5501.0
char mulf8u::b
char mulf8u::b#0 // reg byte x 3667.333333333333
unsigned int mulf8u::return
unsigned int mulf8u::return#0 // return zp[2]:16 3667.333333333333
unsigned int mulf8u::return#2 // return zp[2]:16 2002.0
void mulf8u_prepare(char a)
char mulf8u_prepare::a
char mulf8u_prepare::a#0 // reg byte a 20002.0
char mulf8u_prepare::a#1 // reg byte a 20002.0
char mulf8u_prepare::a#2 // reg byte a 120003.0
__constant char * const mulf8u_prepare::memA = (char *) 253
unsigned int mulf8u_prepared(char b)
char mulf8u_prepared::b
char mulf8u_prepared::b#0 // reg byte a 20002.0
char mulf8u_prepared::b#1 // reg byte a 200002.0
char mulf8u_prepared::b#2 // reg byte a 1110003.0
__constant char * const mulf8u_prepared::memB = (char *) 255
__constant char * const mulf8u_prepared::resL = (char *) 254
unsigned int mulf8u_prepared::return
unsigned int mulf8u_prepared::return#0 // return zp[2]:16 277500.75
unsigned int mulf8u_prepared::return#2 // return zp[2]:16 20002.0
unsigned int mulf8u_prepared::return#3 // return zp[2]:16 200002.0
void mulf_init()
char mulf_init::$1 // reg byte a 202.0
char mulf_init::$4 // reg byte a 202.0
char mulf_init::$5 // reg byte a 202.0
char mulf_init::c
char mulf_init::c#1 // c zp[1]:4 23.307692307692307
char mulf_init::c#2 // c zp[1]:4 101.0
char mulf_init::dir
char mulf_init::dir#2 // dir zp[1]:5 37.875
char mulf_init::dir#4 // dir zp[1]:5 101.0
unsigned int mulf_init::sqr
unsigned int mulf_init::sqr#1 // sqr zp[2]:8 101.0
unsigned int mulf_init::sqr#2 // sqr zp[2]:8 202.0
unsigned int mulf_init::sqr#3 // sqr zp[2]:8 84.16666666666666
unsigned int mulf_init::sqr#4 // sqr zp[2]:8 50.5
char *mulf_init::sqr1_hi
char *mulf_init::sqr1_hi#1 // sqr1_hi zp[2]:2 67.33333333333333
char *mulf_init::sqr1_hi#2 // sqr1_hi zp[2]:2 25.25
char *mulf_init::sqr1_lo
char *mulf_init::sqr1_lo#1 // sqr1_lo zp[2]:10 202.0
char *mulf_init::sqr1_lo#2 // sqr1_lo zp[2]:10 28.857142857142858
char *mulf_init::sqr2_hi
char *mulf_init::sqr2_hi#1 // sqr2_hi zp[2]:6 33.666666666666664
char *mulf_init::sqr2_hi#2 // sqr2_hi zp[2]:6 75.75
char *mulf_init::sqr2_lo
char *mulf_init::sqr2_lo#1 // sqr2_lo zp[2]:12 202.0
char *mulf_init::sqr2_lo#2 // sqr2_lo zp[2]:12 44.888888888888886
char mulf_init::x_2
char mulf_init::x_2#1 // reg byte x 101.0
char mulf_init::x_2#2 // reg byte x 50.5
char mulf_init::x_2#3 // reg byte x 60.599999999999994
char mulf_init::x_255
char mulf_init::x_255#1 // reg byte x 60.599999999999994
char mulf_init::x_255#2 // reg byte x 80.8
void mulf_init_asm()
__constant char *mulf_init_asm::mem = (char *) 255
__constant char mulf_sqr1_hi[$200] = { fill( $200, 0) }
__constant char mulf_sqr1_lo[$200] = { fill( $200, 0) }
__constant char mulf_sqr2_hi[$200] = { fill( $200, 0) }
__constant char mulf_sqr2_lo[$200] = { fill( $200, 0) }
void mulf_tables_cmp()
char *mulf_tables_cmp::asm_sqr
char *mulf_tables_cmp::asm_sqr#1 // asm_sqr zp[2]:2 101.0
char *mulf_tables_cmp::asm_sqr#2 // asm_sqr zp[2]:2 60.599999999999994
char *mulf_tables_cmp::kc_sqr
char *mulf_tables_cmp::kc_sqr#1 // kc_sqr zp[2]:10 202.0
char *mulf_tables_cmp::kc_sqr#2 // kc_sqr zp[2]:10 40.4
__constant char mulf_tables_cmp::str[$17] = "multiply tables match!"
__constant char mulf_tables_cmp::str1[$1c] = "multiply table mismatch at "
__constant char mulf_tables_cmp::str2[4] = " / "
int muls8s(signed char a , signed char b)
signed char muls8s::a
signed char muls8s::a#0 // a zp[1]:4 1668417.0833333333
signed char muls8s::b
signed char muls8s::b#0 // reg byte x 1818273.0
signed char muls8s::i
signed char muls8s::i#1 // reg byte y 2.0000002E7
signed char muls8s::i#2 // reg byte y 1.0000001E7
signed char muls8s::j
signed char muls8s::j#1 // reg byte y 2.0000002E7
signed char muls8s::j#2 // reg byte y 1.0000001E7
int muls8s::m
int muls8s::m#1 // m zp[2]:2 1.0000001E7
int muls8s::m#2 // m zp[2]:2 1.0000001E7
int muls8s::m#3 // m zp[2]:2 1.50000015E7
int muls8s::m#5 // m zp[2]:2 1.50000015E7
int muls8s::return
int muls8s::return#0 // return zp[2]:2 6667001.0
int muls8s::return#2 // return zp[2]:2 2002.0
unsigned int muls8u(char a , char b)
char muls8u::a
char muls8u::a#0 // a zp[1]:4 1430143.2857142857
char muls8u::b
char muls8u::b#0 // reg byte x 1666833.6666666665
char muls8u::i
char muls8u::i#1 // reg byte y 2.0000002E7
char muls8u::i#2 // reg byte y 1.0000001E7
unsigned int muls8u::m
unsigned int muls8u::m#1 // m zp[2]:2 1.0000001E7
unsigned int muls8u::m#3 // m zp[2]:2 1.50000015E7
unsigned int muls8u::return
unsigned int muls8u::return#0 // return zp[2]:2 3333667.333333333
unsigned int muls8u::return#2 // return zp[2]:2 2002.0
void print_char(char ch)
char print_char::ch
char print_char::ch#0 // reg byte a 20002.0
char print_char::ch#5 // reg byte a 200002.0
char print_char::ch#6 // reg byte a 200002.0
char print_char::ch#7 // reg byte a 1210004.0
char *print_char_cursor
char *print_char_cursor#1 // print_char_cursor zp[2]:14 608.7380952380953
char *print_char_cursor#101 // print_char_cursor zp[2]:14 3.2682926829268295
char *print_char_cursor#138 // print_char_cursor zp[2]:14 2559.0
char *print_char_cursor#145 // print_char_cursor zp[2]:14 5663.5
char *print_char_cursor#146 // print_char_cursor zp[2]:14 40401.999999999985
char *print_char_cursor#158 // print_char_cursor zp[2]:14 2044.0
char *print_char_cursor#18 // print_char_cursor zp[2]:14 22460.760000000002
char *print_char_cursor#192 // print_char_cursor zp[2]:14 22.0
char *print_char_cursor#193 // print_char_cursor zp[2]:14 202.0
char *print_char_cursor#231 // print_char_cursor zp[2]:14 22.0
char *print_char_cursor#87 // print_char_cursor zp[2]:14 1107004.5
void print_cls()
__constant const char print_hextab[] = "0123456789abcdef"z
char *print_line_cursor
char *print_line_cursor#0 // print_line_cursor zp[2]:8 432.1285714285714
char *print_line_cursor#10 // print_line_cursor zp[2]:8 1.9523809523809526
char *print_line_cursor#24 // print_line_cursor zp[2]:8 21003.0
char *print_line_cursor#47 // print_line_cursor zp[2]:8 1225.0
void print_ln()
void print_schar(signed char b)
signed char print_schar::b
signed char print_schar::b#0 // reg byte x 2002.0
signed char print_schar::b#1 // reg byte x 202.0
signed char print_schar::b#2 // reg byte x 202.0
signed char print_schar::b#3 // reg byte x 534.1666666666667
signed char print_schar::b#5 // reg byte x 2002.0
char *print_screen
__constant char *print_screen#0 = (char *) 1024 // print_screen
void print_sint(int w)
int print_sint::w
int print_sint::w#0 // w zp[2]:2 2002.0
int print_sint::w#1 // w zp[2]:2 202.0
int print_sint::w#2 // w zp[2]:2 202.0
int print_sint::w#3 // w zp[2]:2 202.0
int print_sint::w#4 // w zp[2]:2 551.0
int print_sint::w#6 // w zp[2]:2 2002.0
void print_str(char *str)
char *print_str::str
char *print_str::str#0 // str zp[2]:6 20002.0
char *print_str::str#16 // str zp[2]:6 10251.25
char *print_str::str#19 // str zp[2]:6 1001.0
void print_uchar(char b)
char print_uchar::$0 // reg byte a 200002.0
char print_uchar::$2 // reg byte x 200002.0
char print_uchar::b
char print_uchar::b#0 // reg byte x 2002.0
char print_uchar::b#1 // reg byte x 20002.0
char print_uchar::b#2 // reg byte x 20002.0
char print_uchar::b#3 // reg byte x 202.0
char print_uchar::b#4 // reg byte x 202.0
char print_uchar::b#5 // reg byte x 55301.75
void print_uint(unsigned int w)
unsigned int print_uint::w
unsigned int print_uint::w#0 // w zp[2]:2 2002.0
unsigned int print_uint::w#1 // w zp[2]:2 22.0
unsigned int print_uint::w#2 // w zp[2]:2 22.0
unsigned int print_uint::w#3 // w zp[2]:2 202.0
unsigned int print_uint::w#4 // w zp[2]:2 202.0
unsigned int print_uint::w#5 // w zp[2]:2 202.0
unsigned int print_uint::w#6 // w zp[2]:2 7109.333333333333
__constant char str1[2] = "*"
__constant char str2[7] = " slow:"
__constant char str3[$b] = " / normal:"
__constant char str4[9] = " / fast:"

reg byte x [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
zp[2]:2 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 mul8s_error::ms#0 mul8u_compare::ms#0 mul8u_error::ms#0 muls8u::return#0 muls8u::m#3 muls8u::m#1 muls8u::return#2 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 muls8s::return#2 mul8s_compare::ms#0 mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
reg byte x [ mul8u_compare::ok#3 mul8u_compare::ok#4 ]
zp[1]:4 [ mul8s_compare::a#10 mul8s_compare::a#1 muls8s::a#0 mul8s::a#0 mul8u_compare::a#7 mul8u_compare::a#1 muls8u::a#0 mulf_init::c#2 mulf_init::c#1 ]
zp[1]:5 [ mul8s_compare::b#10 mul8s_compare::b#1 mul8s_error::b#0 mul8u_compare::b#10 mul8u_compare::b#1 mul8u_error::b#0 mulf_init::dir#2 mulf_init::dir#4 ]
reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ]
zp[2]:6 [ print_str::str#16 print_str::str#19 print_str::str#0 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ]
zp[2]:8 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#10 print_line_cursor#0 mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ]
reg byte y [ muls8u::i#2 muls8u::i#1 ]
reg byte a [ mul8u::b#2 mul8u::b#0 mul8u::b#1 ]
reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ]
zp[2]:10 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 mul8u::return#2 mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 mul8s_compare::mn#0 mul8u_compare::mn#0 mul8u_error::mn#0 mul8s_error::mn#0 mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ]
zp[2]:12 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 memset::dst#2 memset::dst#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ]
reg byte y [ muls8s::j#2 muls8s::j#1 ]
reg byte y [ muls8s::i#2 muls8s::i#1 ]
reg byte a [ print_char::ch#7 print_char::ch#0 print_char::ch#5 print_char::ch#6 ]
zp[2]:14 [ print_char_cursor#87 print_char_cursor#145 print_char_cursor#138 print_char_cursor#1 print_char_cursor#158 print_char_cursor#192 print_char_cursor#193 print_char_cursor#101 print_char_cursor#18 print_char_cursor#231 print_char_cursor#146 ]
reg byte x [ print_uchar::b#5 print_uchar::b#3 print_uchar::b#4 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ]
reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#1 mulf8u_prepare::a#0 ]
reg byte a [ mulf8u_prepared::b#2 mulf8u_prepared::b#1 mulf8u_prepared::b#0 ]
zp[2]:16 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s::return#0 mulf8u_prepared::return#3 mulf8s::return#2 mul8s_compare::mf#0 mulf8u_prepared::return#2 mulf8u_prepared::return#0 mulf8u::return#2 mul8u_compare::mf#0 mulf8u::return#0 mul8u_error::mf#0 mul8s_error::mf#0 ]
reg byte x [ print_schar::b#5 print_schar::b#0 print_schar::b#3 print_schar::b#1 print_schar::b#2 ]
reg byte a [ mulf_init::$1 ]
reg byte a [ mulf_init::$4 ]
reg byte a [ mulf_init::$5 ]
reg byte x [ muls8u::b#0 ]
reg byte a [ mulf8u::a#0 ]
reg byte x [ mulf8u::b#0 ]
reg byte x [ mul8u_error::a#0 ]
reg byte x [ muls8s::b#0 ]
reg byte a [ mulf8s::a#0 ]
reg byte x [ mulf8s::b#0 ]
reg byte y [ mul8s::b#0 ]
reg byte x [ mul8s_error::a#0 ]
reg byte a [ mul8u::$1 ]
zp[1]:18 [ mulf8s_prepared::b#0 ]
reg byte a [ mul8s::$6 ]
reg byte a [ mul8s::$11 ]
reg byte a [ mul8s::$9 ]
reg byte a [ mul8s::$12 ]
reg byte a [ print_uchar::$0 ]
reg byte x [ print_uchar::$2 ]
reg byte a [ mulf8s_prepared::$6 ]
reg byte a [ mulf8s_prepared::$11 ]
reg byte a [ mulf8s_prepared::$9 ]
reg byte a [ mulf8s_prepared::$12 ]


FINAL ASSEMBLER
Score: 230446

  // File Comments
// Test the fast multiplication library
/// @file
/// A lightweight library for printing on the C64.
///
/// Printing with this library is done by calling print_ function for each element
  // Upstart
  // Commodore 64 PRG executable file
.file [name="test-multiply-8bit.prg", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=$80d]
.segmentdef Data [startAfter="Code"]
.segment Basic
:BasicUpstart(main)
  // Global Constants & labels
  .label BG_COLOR = $d021
  .label print_screen = $400
  .label print_char_cursor = $e
  .label print_line_cursor = 8
.segment Code
  // main
main: {
    // *BG_COLOR = 5
    // [0] *BG_COLOR = 5 -- _deref_pbuc1=vbuc2 
    lda #5
    sta BG_COLOR
    // print_cls()
    // [1] call print_cls
    // [13] phi from main to print_cls [phi:main->print_cls]
    jsr print_cls
    // [2] phi from main to main::@1 [phi:main->main::@1]
    // main::@1
    // mulf_init()
    // [3] call mulf_init
    // [16] phi from main::@1 to mulf_init [phi:main::@1->mulf_init]
    jsr mulf_init
    // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
    // main::@2
    // mulf_init_asm()
    // [5] call mulf_init_asm
    jsr mulf_init_asm
    // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
    // main::@3
    // mulf_tables_cmp()
    // [7] call mulf_tables_cmp
    // [51] phi from main::@3 to mulf_tables_cmp [phi:main::@3->mulf_tables_cmp]
    jsr mulf_tables_cmp
    // [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
    // main::@4
    // mul8u_compare()
    // [9] call mul8u_compare
    // [72] phi from main::@4 to mul8u_compare [phi:main::@4->mul8u_compare]
    jsr mul8u_compare
    // [10] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
    // main::@5
    // mul8s_compare()
    // [11] call mul8s_compare
    // [113] phi from main::@5 to mul8s_compare [phi:main::@5->mul8s_compare]
    jsr mul8s_compare
    // main::@return
    // }
    // [12] return 
    rts
}
  // print_cls
// Clear the screen. Also resets current line/char cursor.
print_cls: {
    // memset(print_screen, ' ', 1000)
    // [14] call memset
    // [153] phi from print_cls to memset [phi:print_cls->memset]
    jsr memset
    // print_cls::@return
    // }
    // [15] return 
    rts
}
  // mulf_init
// Initialize the mulf_sqr multiplication tables with f(x)=int(x*x/4)
mulf_init: {
    // x/2
    .label c = 4
    // Counter used for determining x%2==0
    .label sqr1_hi = 2
    // Fill mulf_sqr1 = f(x) = int(x*x/4): If f(x) = x*x/4 then f(x+1) = f(x) + x/2 + 1/4
    .label sqr = 8
    .label sqr1_lo = $a
    // Decrease or increase x_255 - initially we decrease
    .label sqr2_hi = 6
    .label sqr2_lo = $c
    //Start with g(0)=f(255)
    .label dir = 5
    // [17] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1]
    // [17] phi mulf_init::x_2#3 = 0 [phi:mulf_init->mulf_init::@1#0] -- vbuxx=vbuc1 
    ldx #0
    // [17] phi mulf_init::sqr1_hi#2 = mulf_sqr1_hi+1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 
    lda #<mulf_sqr1_hi+1
    sta.z sqr1_hi
    lda #>mulf_sqr1_hi+1
    sta.z sqr1_hi+1
    // [17] phi mulf_init::sqr#4 = 0 [phi:mulf_init->mulf_init::@1#2] -- vwuz1=vwuc1 
    txa
    sta.z sqr
    sta.z sqr+1
    // [17] phi mulf_init::c#2 = 0 [phi:mulf_init->mulf_init::@1#3] -- vbuz1=vbuc1 
    sta.z c
    // [17] phi mulf_init::sqr1_lo#2 = mulf_sqr1_lo+1 [phi:mulf_init->mulf_init::@1#4] -- pbuz1=pbuc1 
    lda #<mulf_sqr1_lo+1
    sta.z sqr1_lo
    lda #>mulf_sqr1_lo+1
    sta.z sqr1_lo+1
    // mulf_init::@1
  __b1:
    // for(char* sqr1_lo = mulf_sqr1_lo+1; sqr1_lo!=mulf_sqr1_lo+512; sqr1_lo++)
    // [18] if(mulf_init::sqr1_lo#2!=mulf_sqr1_lo+$200) goto mulf_init::@2 -- pbuz1_neq_pbuc1_then_la1 
    lda.z sqr1_lo+1
    cmp #>mulf_sqr1_lo+$200
    bne __b2
    lda.z sqr1_lo
    cmp #<mulf_sqr1_lo+$200
    bne __b2
    // [19] phi from mulf_init::@1 to mulf_init::@5 [phi:mulf_init::@1->mulf_init::@5]
    // [19] phi mulf_init::dir#2 = $ff [phi:mulf_init::@1->mulf_init::@5#0] -- vbuz1=vbuc1 
    lda #$ff
    sta.z dir
    // [19] phi mulf_init::sqr2_hi#2 = mulf_sqr2_hi [phi:mulf_init::@1->mulf_init::@5#1] -- pbuz1=pbuc1 
    lda #<mulf_sqr2_hi
    sta.z sqr2_hi
    lda #>mulf_sqr2_hi
    sta.z sqr2_hi+1
    // [19] phi mulf_init::x_255#2 = -1 [phi:mulf_init::@1->mulf_init::@5#2] -- vbuxx=vbuc1 
    ldx #-1
    // [19] phi mulf_init::sqr2_lo#2 = mulf_sqr2_lo [phi:mulf_init::@1->mulf_init::@5#3] -- pbuz1=pbuc1 
    lda #<mulf_sqr2_lo
    sta.z sqr2_lo
    lda #>mulf_sqr2_lo
    sta.z sqr2_lo+1
    // mulf_init::@5
  __b5:
    // for(char* sqr2_lo = mulf_sqr2_lo; sqr2_lo!=mulf_sqr2_lo+511; sqr2_lo++)
    // [20] if(mulf_init::sqr2_lo#2!=mulf_sqr2_lo+$1ff) goto mulf_init::@6 -- pbuz1_neq_pbuc1_then_la1 
    lda.z sqr2_lo+1
    cmp #>mulf_sqr2_lo+$1ff
    bne __b6
    lda.z sqr2_lo
    cmp #<mulf_sqr2_lo+$1ff
    bne __b6
    // mulf_init::@7
    // *(mulf_sqr2_lo+511) = *(mulf_sqr1_lo+256)
    // [21] *(mulf_sqr2_lo+$1ff) = *(mulf_sqr1_lo+$100) -- _deref_pbuc1=_deref_pbuc2 
    // Set the very last value g(511) = f(256)
    lda mulf_sqr1_lo+$100
    sta mulf_sqr2_lo+$1ff
    // *(mulf_sqr2_hi+511) = *(mulf_sqr1_hi+256)
    // [22] *(mulf_sqr2_hi+$1ff) = *(mulf_sqr1_hi+$100) -- _deref_pbuc1=_deref_pbuc2 
    lda mulf_sqr1_hi+$100
    sta mulf_sqr2_hi+$1ff
    // mulf_init::@return
    // }
    // [23] return 
    rts
    // mulf_init::@6
  __b6:
    // *sqr2_lo = mulf_sqr1_lo[x_255]
    // [24] *mulf_init::sqr2_lo#2 = mulf_sqr1_lo[mulf_init::x_255#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx 
    lda mulf_sqr1_lo,x
    ldy #0
    sta (sqr2_lo),y
    // *sqr2_hi++ = mulf_sqr1_hi[x_255]
    // [25] *mulf_init::sqr2_hi#2 = mulf_sqr1_hi[mulf_init::x_255#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx 
    lda mulf_sqr1_hi,x
    sta (sqr2_hi),y
    // *sqr2_hi++ = mulf_sqr1_hi[x_255];
    // [26] mulf_init::sqr2_hi#1 = ++ mulf_init::sqr2_hi#2 -- pbuz1=_inc_pbuz1 
    inc.z sqr2_hi
    bne !+
    inc.z sqr2_hi+1
  !:
    // x_255 = x_255 + dir
    // [27] mulf_init::x_255#1 = mulf_init::x_255#2 + mulf_init::dir#2 -- vbuxx=vbuxx_plus_vbuz1 
    txa
    clc
    adc.z dir
    tax
    // if(x_255==0)
    // [28] if(mulf_init::x_255#1!=0) goto mulf_init::@9 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne __b8
    // [30] phi from mulf_init::@6 to mulf_init::@8 [phi:mulf_init::@6->mulf_init::@8]
    // [30] phi mulf_init::dir#4 = 1 [phi:mulf_init::@6->mulf_init::@8#0] -- vbuz1=vbuc1 
    lda #1
    sta.z dir
    // [29] phi from mulf_init::@6 to mulf_init::@9 [phi:mulf_init::@6->mulf_init::@9]
    // mulf_init::@9
    // [30] phi from mulf_init::@9 to mulf_init::@8 [phi:mulf_init::@9->mulf_init::@8]
    // [30] phi mulf_init::dir#4 = mulf_init::dir#2 [phi:mulf_init::@9->mulf_init::@8#0] -- register_copy 
    // mulf_init::@8
  __b8:
    // for(char* sqr2_lo = mulf_sqr2_lo; sqr2_lo!=mulf_sqr2_lo+511; sqr2_lo++)
    // [31] mulf_init::sqr2_lo#1 = ++ mulf_init::sqr2_lo#2 -- pbuz1=_inc_pbuz1 
    inc.z sqr2_lo
    bne !+
    inc.z sqr2_lo+1
  !:
    // [19] phi from mulf_init::@8 to mulf_init::@5 [phi:mulf_init::@8->mulf_init::@5]
    // [19] phi mulf_init::dir#2 = mulf_init::dir#4 [phi:mulf_init::@8->mulf_init::@5#0] -- register_copy 
    // [19] phi mulf_init::sqr2_hi#2 = mulf_init::sqr2_hi#1 [phi:mulf_init::@8->mulf_init::@5#1] -- register_copy 
    // [19] phi mulf_init::x_255#2 = mulf_init::x_255#1 [phi:mulf_init::@8->mulf_init::@5#2] -- register_copy 
    // [19] phi mulf_init::sqr2_lo#2 = mulf_init::sqr2_lo#1 [phi:mulf_init::@8->mulf_init::@5#3] -- register_copy 
    jmp __b5
    // mulf_init::@2
  __b2:
    // if((++c&1)==0)
    // [32] mulf_init::c#1 = ++ mulf_init::c#2 -- vbuz1=_inc_vbuz1 
    inc.z c
    // ++c&1
    // [33] mulf_init::$1 = mulf_init::c#1 & 1 -- vbuaa=vbuz1_band_vbuc1 
    lda #1
    and.z c
    // if((++c&1)==0)
    // [34] if(mulf_init::$1!=0) goto mulf_init::@3 -- vbuaa_neq_0_then_la1 
    cmp #0
    bne __b3
    // mulf_init::@4
    // x_2++;
    // [35] mulf_init::x_2#1 = ++ mulf_init::x_2#3 -- vbuxx=_inc_vbuxx 
    inx
    // sqr++;
    // [36] mulf_init::sqr#2 = ++ mulf_init::sqr#4 -- vwuz1=_inc_vwuz1 
    inc.z sqr
    bne !+
    inc.z sqr+1
  !:
    // [37] phi from mulf_init::@2 mulf_init::@4 to mulf_init::@3 [phi:mulf_init::@2/mulf_init::@4->mulf_init::@3]
    // [37] phi mulf_init::x_2#2 = mulf_init::x_2#3 [phi:mulf_init::@2/mulf_init::@4->mulf_init::@3#0] -- register_copy 
    // [37] phi mulf_init::sqr#3 = mulf_init::sqr#4 [phi:mulf_init::@2/mulf_init::@4->mulf_init::@3#1] -- register_copy 
    // mulf_init::@3
  __b3:
    // BYTE0(sqr)
    // [38] mulf_init::$4 = byte0  mulf_init::sqr#3 -- vbuaa=_byte0_vwuz1 
    lda.z sqr
    // *sqr1_lo = BYTE0(sqr)
    // [39] *mulf_init::sqr1_lo#2 = mulf_init::$4 -- _deref_pbuz1=vbuaa 
    ldy #0
    sta (sqr1_lo),y
    // BYTE1(sqr)
    // [40] mulf_init::$5 = byte1  mulf_init::sqr#3 -- vbuaa=_byte1_vwuz1 
    lda.z sqr+1
    // *sqr1_hi++ = BYTE1(sqr)
    // [41] *mulf_init::sqr1_hi#2 = mulf_init::$5 -- _deref_pbuz1=vbuaa 
    sta (sqr1_hi),y
    // *sqr1_hi++ = BYTE1(sqr);
    // [42] mulf_init::sqr1_hi#1 = ++ mulf_init::sqr1_hi#2 -- pbuz1=_inc_pbuz1 
    inc.z sqr1_hi
    bne !+
    inc.z sqr1_hi+1
  !:
    // sqr = sqr + x_2
    // [43] mulf_init::sqr#1 = mulf_init::sqr#3 + mulf_init::x_2#2 -- vwuz1=vwuz1_plus_vbuxx 
    txa
    clc
    adc.z sqr
    sta.z sqr
    bcc !+
    inc.z sqr+1
  !:
    // for(char* sqr1_lo = mulf_sqr1_lo+1; sqr1_lo!=mulf_sqr1_lo+512; sqr1_lo++)
    // [44] mulf_init::sqr1_lo#1 = ++ mulf_init::sqr1_lo#2 -- pbuz1=_inc_pbuz1 
    inc.z sqr1_lo
    bne !+
    inc.z sqr1_lo+1
  !:
    // [17] phi from mulf_init::@3 to mulf_init::@1 [phi:mulf_init::@3->mulf_init::@1]
    // [17] phi mulf_init::x_2#3 = mulf_init::x_2#2 [phi:mulf_init::@3->mulf_init::@1#0] -- register_copy 
    // [17] phi mulf_init::sqr1_hi#2 = mulf_init::sqr1_hi#1 [phi:mulf_init::@3->mulf_init::@1#1] -- register_copy 
    // [17] phi mulf_init::sqr#4 = mulf_init::sqr#1 [phi:mulf_init::@3->mulf_init::@1#2] -- register_copy 
    // [17] phi mulf_init::c#2 = mulf_init::c#1 [phi:mulf_init::@3->mulf_init::@1#3] -- register_copy 
    // [17] phi mulf_init::sqr1_lo#2 = mulf_init::sqr1_lo#1 [phi:mulf_init::@3->mulf_init::@1#4] -- register_copy 
    jmp __b1
}
  // mulf_init_asm
// Initialize the multiplication tables using ASM code from
// http://codebase64.org/doku.php?id=base:seriously_fast_multiplication
mulf_init_asm: {
    // Ensure the ASM tables are not detected as unused by the optimizer
    .label mem = $ff
    // asm
    // asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!-  }
    ldx #0
    txa
    .byte $c9
  lb1:
    tya
    adc #0
  ml1:
    sta mula_sqr1_hi,x
    tay
    cmp #$40
    txa
    ror
  ml9:
    adc #0
    sta ml9+1
    inx
  ml0:
    sta mula_sqr1_lo,x
    bne lb1
    inc ml0+2
    inc ml1+2
    clc
    iny
    bne lb1
    ldx #0
    ldy #$ff
  !:
    lda mula_sqr1_hi+1,x
    sta mula_sqr2_hi+$100,x
    lda mula_sqr1_hi,x
    sta mula_sqr2_hi,y
    lda mula_sqr1_lo+1,x
    sta mula_sqr2_lo+$100,x
    lda mula_sqr1_lo,x
    sta mula_sqr2_lo,y
    dey
    inx
    bne !-
    // *mem = *mula_sqr1_lo
    // [46] *mulf_init_asm::mem = *mula_sqr1_lo -- _deref_pbuc1=_deref_pbuc2 
    lda mula_sqr1_lo
    sta mem
    // *mem = *mula_sqr1_hi
    // [47] *mulf_init_asm::mem = *mula_sqr1_hi -- _deref_pbuc1=_deref_pbuc2 
    lda mula_sqr1_hi
    sta mem
    // *mem = *mula_sqr2_lo
    // [48] *mulf_init_asm::mem = *mula_sqr2_lo -- _deref_pbuc1=_deref_pbuc2 
    lda mula_sqr2_lo
    sta mem
    // *mem = *mula_sqr2_hi
    // [49] *mulf_init_asm::mem = *mula_sqr2_hi -- _deref_pbuc1=_deref_pbuc2 
    lda mula_sqr2_hi
    sta mem
    // mulf_init_asm::@return
    // }
    // [50] return 
    rts
}
  // mulf_tables_cmp
// Compare the ASM-based mul tables with the KC-based mul tables
// Red screen on failure - green on success
mulf_tables_cmp: {
    .label asm_sqr = 2
    .label kc_sqr = $a
    // [52] phi from mulf_tables_cmp to mulf_tables_cmp::@1 [phi:mulf_tables_cmp->mulf_tables_cmp::@1]
    // [52] phi mulf_tables_cmp::asm_sqr#2 = mula_sqr1_lo [phi:mulf_tables_cmp->mulf_tables_cmp::@1#0] -- pbuz1=pbuc1 
    lda #<mula_sqr1_lo
    sta.z asm_sqr
    lda #>mula_sqr1_lo
    sta.z asm_sqr+1
    // [52] phi mulf_tables_cmp::kc_sqr#2 = mulf_sqr1_lo [phi:mulf_tables_cmp->mulf_tables_cmp::@1#1] -- pbuz1=pbuc1 
    lda #<mulf_sqr1_lo
    sta.z kc_sqr
    lda #>mulf_sqr1_lo
    sta.z kc_sqr+1
    // mulf_tables_cmp::@1
  __b1:
    // for( byte* kc_sqr=mulf_sqr1_lo; kc_sqr<mulf_sqr1_lo+512*4; kc_sqr++)
    // [53] if(mulf_tables_cmp::kc_sqr#2<mulf_sqr1_lo+$200*4) goto mulf_tables_cmp::@2 -- pbuz1_lt_pbuc1_then_la1 
    lda.z kc_sqr+1
    cmp #>mulf_sqr1_lo+$200*4
    bcc __b2
    bne !+
    lda.z kc_sqr
    cmp #<mulf_sqr1_lo+$200*4
    bcc __b2
  !:
    // [54] phi from mulf_tables_cmp::@1 to mulf_tables_cmp::@3 [phi:mulf_tables_cmp::@1->mulf_tables_cmp::@3]
    // mulf_tables_cmp::@3
    // print_str("multiply tables match!")
    // [55] call print_str
    // [159] phi from mulf_tables_cmp::@3 to print_str [phi:mulf_tables_cmp::@3->print_str]
    // [159] phi print_char_cursor#158 = print_screen#0 [phi:mulf_tables_cmp::@3->print_str#0] -- pbuz1=pbuc1 
    lda #<print_screen
    sta.z print_char_cursor
    lda #>print_screen
    sta.z print_char_cursor+1
    // [159] phi print_str::str#19 = mulf_tables_cmp::str [phi:mulf_tables_cmp::@3->print_str#1] -- pbuz1=pbuc1 
    lda #<str
    sta.z print_str.str
    lda #>str
    sta.z print_str.str+1
    jsr print_str
    // [56] phi from mulf_tables_cmp::@3 to mulf_tables_cmp::@6 [phi:mulf_tables_cmp::@3->mulf_tables_cmp::@6]
    // mulf_tables_cmp::@6
    // print_ln()
    // [57] call print_ln
    // [166] phi from mulf_tables_cmp::@6 to print_ln [phi:mulf_tables_cmp::@6->print_ln]
    // [166] phi print_char_cursor#138 = print_char_cursor#1 [phi:mulf_tables_cmp::@6->print_ln#0] -- register_copy 
    // [166] phi print_line_cursor#47 = print_screen#0 [phi:mulf_tables_cmp::@6->print_ln#1] -- pbuz1=pbuc1 
    lda #<print_screen
    sta.z print_line_cursor
    lda #>print_screen
    sta.z print_line_cursor+1
    jsr print_ln
    // mulf_tables_cmp::@7
    // [58] print_char_cursor#231 = print_line_cursor#0 -- pbuz1=pbuz2 
    lda.z print_line_cursor
    sta.z print_char_cursor
    lda.z print_line_cursor+1
    sta.z print_char_cursor+1
    // [59] phi from mulf_tables_cmp::@7 to mulf_tables_cmp::@return [phi:mulf_tables_cmp::@7->mulf_tables_cmp::@return]
    // [59] phi print_line_cursor#10 = print_line_cursor#0 [phi:mulf_tables_cmp::@7->mulf_tables_cmp::@return#0] -- register_copy 
    // [59] phi print_char_cursor#101 = print_char_cursor#231 [phi:mulf_tables_cmp::@7->mulf_tables_cmp::@return#1] -- register_copy 
    // mulf_tables_cmp::@return
    // }
    // [60] return 
    rts
    // mulf_tables_cmp::@2
  __b2:
    // if(*kc_sqr != *asm_sqr)
    // [61] if(*mulf_tables_cmp::kc_sqr#2==*mulf_tables_cmp::asm_sqr#2) goto mulf_tables_cmp::@4 -- _deref_pbuz1_eq__deref_pbuz2_then_la1 
    ldy #0
    lda (kc_sqr),y
    cmp (asm_sqr),y
    beq __b4
    // mulf_tables_cmp::@5
    // *BG_COLOR = 2
    // [62] *BG_COLOR = 2 -- _deref_pbuc1=vbuc2 
    lda #2
    sta BG_COLOR
    // print_str("multiply table mismatch at ")
    // [63] call print_str
    // [159] phi from mulf_tables_cmp::@5 to print_str [phi:mulf_tables_cmp::@5->print_str]
    // [159] phi print_char_cursor#158 = print_screen#0 [phi:mulf_tables_cmp::@5->print_str#0] -- pbuz1=pbuc1 
    lda #<print_screen
    sta.z print_char_cursor
    lda #>print_screen
    sta.z print_char_cursor+1
    // [159] phi print_str::str#19 = mulf_tables_cmp::str1 [phi:mulf_tables_cmp::@5->print_str#1] -- pbuz1=pbuc1 
    lda #<str1
    sta.z print_str.str
    lda #>str1
    sta.z print_str.str+1
    jsr print_str
    // mulf_tables_cmp::@8
    // print_uint((word)asm_sqr)
    // [64] print_uint::w#1 = (unsigned int)mulf_tables_cmp::asm_sqr#2
    // [65] call print_uint
    // [171] phi from mulf_tables_cmp::@8 to print_uint [phi:mulf_tables_cmp::@8->print_uint]
    // [171] phi print_char_cursor#145 = print_char_cursor#1 [phi:mulf_tables_cmp::@8->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#1 [phi:mulf_tables_cmp::@8->print_uint#1] -- register_copy 
    jsr print_uint
    // [66] phi from mulf_tables_cmp::@8 to mulf_tables_cmp::@9 [phi:mulf_tables_cmp::@8->mulf_tables_cmp::@9]
    // mulf_tables_cmp::@9
    // print_str(" / ")
    // [67] call print_str
    // [159] phi from mulf_tables_cmp::@9 to print_str [phi:mulf_tables_cmp::@9->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mulf_tables_cmp::@9->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = mulf_tables_cmp::str2 [phi:mulf_tables_cmp::@9->print_str#1] -- pbuz1=pbuc1 
    lda #<str2
    sta.z print_str.str
    lda #>str2
    sta.z print_str.str+1
    jsr print_str
    // mulf_tables_cmp::@10
    // print_uint((word)kc_sqr)
    // [68] print_uint::w#2 = (unsigned int)mulf_tables_cmp::kc_sqr#2 -- vwuz1=vwuz2 
    lda.z kc_sqr
    sta.z print_uint.w
    lda.z kc_sqr+1
    sta.z print_uint.w+1
    // [69] call print_uint
    // [171] phi from mulf_tables_cmp::@10 to print_uint [phi:mulf_tables_cmp::@10->print_uint]
    // [171] phi print_char_cursor#145 = print_char_cursor#1 [phi:mulf_tables_cmp::@10->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#2 [phi:mulf_tables_cmp::@10->print_uint#1] -- register_copy 
    jsr print_uint
    // [59] phi from mulf_tables_cmp::@10 to mulf_tables_cmp::@return [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return]
    // [59] phi print_line_cursor#10 = print_screen#0 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#0] -- pbuz1=pbuc1 
    lda #<print_screen
    sta.z print_line_cursor
    lda #>print_screen
    sta.z print_line_cursor+1
    // [59] phi print_char_cursor#101 = print_char_cursor#18 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#1] -- register_copy 
    rts
    // mulf_tables_cmp::@4
  __b4:
    // asm_sqr++;
    // [70] mulf_tables_cmp::asm_sqr#1 = ++ mulf_tables_cmp::asm_sqr#2 -- pbuz1=_inc_pbuz1 
    inc.z asm_sqr
    bne !+
    inc.z asm_sqr+1
  !:
    // for( byte* kc_sqr=mulf_sqr1_lo; kc_sqr<mulf_sqr1_lo+512*4; kc_sqr++)
    // [71] mulf_tables_cmp::kc_sqr#1 = ++ mulf_tables_cmp::kc_sqr#2 -- pbuz1=_inc_pbuz1 
    inc.z kc_sqr
    bne !+
    inc.z kc_sqr+1
  !:
    // [52] phi from mulf_tables_cmp::@4 to mulf_tables_cmp::@1 [phi:mulf_tables_cmp::@4->mulf_tables_cmp::@1]
    // [52] phi mulf_tables_cmp::asm_sqr#2 = mulf_tables_cmp::asm_sqr#1 [phi:mulf_tables_cmp::@4->mulf_tables_cmp::@1#0] -- register_copy 
    // [52] phi mulf_tables_cmp::kc_sqr#2 = mulf_tables_cmp::kc_sqr#1 [phi:mulf_tables_cmp::@4->mulf_tables_cmp::@1#1] -- register_copy 
    jmp __b1
  .segment Data
    str: .text "multiply tables match!"
    .byte 0
    str1: .text "multiply table mismatch at "
    .byte 0
    str2: .text " / "
    .byte 0
}
.segment Code
  // mul8u_compare
// Perform all possible byte multiplications (slow and fast) and compare the results
mul8u_compare: {
    .label ms = 2
    .label mf = $10
    .label mn = $a
    .label b = 5
    .label a = 4
    // [73] phi from mul8u_compare to mul8u_compare::@1 [phi:mul8u_compare->mul8u_compare::@1]
    // [73] phi mul8u_compare::a#7 = 0 [phi:mul8u_compare->mul8u_compare::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z a
    // [73] phi from mul8u_compare::@8 to mul8u_compare::@1 [phi:mul8u_compare::@8->mul8u_compare::@1]
    // [73] phi mul8u_compare::a#7 = mul8u_compare::a#1 [phi:mul8u_compare::@8->mul8u_compare::@1#0] -- register_copy 
    // mul8u_compare::@1
  __b1:
    // [74] phi from mul8u_compare::@1 to mul8u_compare::@2 [phi:mul8u_compare::@1->mul8u_compare::@2]
    // [74] phi mul8u_compare::b#10 = 0 [phi:mul8u_compare::@1->mul8u_compare::@2#0] -- vbuz1=vbuc1 
    lda #0
    sta.z b
    // [74] phi from mul8u_compare::@5 to mul8u_compare::@2 [phi:mul8u_compare::@5->mul8u_compare::@2]
    // [74] phi mul8u_compare::b#10 = mul8u_compare::b#1 [phi:mul8u_compare::@5->mul8u_compare::@2#0] -- register_copy 
    // mul8u_compare::@2
  __b2:
    // word ms = muls8u(a, b)
    // [75] muls8u::a#0 = mul8u_compare::a#7
    // [76] muls8u::b#0 = mul8u_compare::b#10 -- vbuxx=vbuz1 
    ldx.z b
    // [77] call muls8u
    jsr muls8u
    // [78] muls8u::return#2 = muls8u::return#0
    // mul8u_compare::@10
    // [79] mul8u_compare::ms#0 = muls8u::return#2
    // word mf = mulf8u(a,b)
    // [80] mulf8u::a#0 = mul8u_compare::a#7 -- vbuaa=vbuz1 
    lda.z a
    // [81] mulf8u::b#0 = mul8u_compare::b#10 -- vbuxx=vbuz1 
    ldx.z b
    // [82] call mulf8u
    jsr mulf8u
    // [83] mulf8u::return#2 = mulf8u::return#0
    // mul8u_compare::@11
    // [84] mul8u_compare::mf#0 = mulf8u::return#2
    // word mn = mul8u(a,b)
    // [85] mul8u::a#2 = mul8u_compare::a#7 -- vbuxx=vbuz1 
    ldx.z a
    // [86] mul8u::b#1 = mul8u_compare::b#10 -- vbuaa=vbuz1 
    lda.z b
    // [87] call mul8u
    // [191] phi from mul8u_compare::@11 to mul8u [phi:mul8u_compare::@11->mul8u]
    // [191] phi mul8u::a#6 = mul8u::a#2 [phi:mul8u_compare::@11->mul8u#0] -- register_copy 
    // [191] phi mul8u::b#2 = mul8u::b#1 [phi:mul8u_compare::@11->mul8u#1] -- register_copy 
    jsr mul8u
    // word mn = mul8u(a,b)
    // [88] mul8u::return#3 = mul8u::res#2
    // mul8u_compare::@12
    // [89] mul8u_compare::mn#0 = mul8u::return#3
    // if(ms!=mf)
    // [90] if(mul8u_compare::ms#0==mul8u_compare::mf#0) goto mul8u_compare::@3 -- vwuz1_eq_vwuz2_then_la1 
    lda.z ms
    cmp.z mf
    bne !+
    lda.z ms+1
    cmp.z mf+1
    beq __b6
  !:
    // [91] phi from mul8u_compare::@12 to mul8u_compare::@6 [phi:mul8u_compare::@12->mul8u_compare::@6]
    // mul8u_compare::@6
    // [92] phi from mul8u_compare::@6 to mul8u_compare::@3 [phi:mul8u_compare::@6->mul8u_compare::@3]
    // [92] phi mul8u_compare::ok#4 = 0 [phi:mul8u_compare::@6->mul8u_compare::@3#0] -- vbuxx=vbuc1 
    ldx #0
    jmp __b3
    // [92] phi from mul8u_compare::@12 to mul8u_compare::@3 [phi:mul8u_compare::@12->mul8u_compare::@3]
  __b6:
    // [92] phi mul8u_compare::ok#4 = 1 [phi:mul8u_compare::@12->mul8u_compare::@3#0] -- vbuxx=vbuc1 
    ldx #1
    // mul8u_compare::@3
  __b3:
    // if(ms!=mn)
    // [93] if(mul8u_compare::ms#0==mul8u_compare::mn#0) goto mul8u_compare::@14 -- vwuz1_eq_vwuz2_then_la1 
    lda.z ms
    cmp.z mn
    bne !+
    lda.z ms+1
    cmp.z mn+1
    beq __b4
  !:
    // [95] phi from mul8u_compare::@3 to mul8u_compare::@4 [phi:mul8u_compare::@3->mul8u_compare::@4]
    // [95] phi mul8u_compare::ok#3 = 0 [phi:mul8u_compare::@3->mul8u_compare::@4#0] -- vbuxx=vbuc1 
    ldx #0
    // [94] phi from mul8u_compare::@3 to mul8u_compare::@14 [phi:mul8u_compare::@3->mul8u_compare::@14]
    // mul8u_compare::@14
    // [95] phi from mul8u_compare::@14 to mul8u_compare::@4 [phi:mul8u_compare::@14->mul8u_compare::@4]
    // [95] phi mul8u_compare::ok#3 = mul8u_compare::ok#4 [phi:mul8u_compare::@14->mul8u_compare::@4#0] -- register_copy 
    // mul8u_compare::@4
  __b4:
    // if(ok==0)
    // [96] if(mul8u_compare::ok#3!=0) goto mul8u_compare::@5 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne __b5
    // mul8u_compare::@7
    // *BG_COLOR = 2
    // [97] *BG_COLOR = 2 -- _deref_pbuc1=vbuc2 
    lda #2
    sta BG_COLOR
    // mul8u_error(a,b, ms, mn, mf)
    // [98] mul8u_error::a#0 = mul8u_compare::a#7 -- vbuxx=vbuz1 
    ldx.z a
    // [99] mul8u_error::b#0 = mul8u_compare::b#10
    // [100] mul8u_error::ms#0 = mul8u_compare::ms#0
    // [101] mul8u_error::mn#0 = mul8u_compare::mn#0
    // [102] mul8u_error::mf#0 = mul8u_compare::mf#0
    // [103] call mul8u_error
    // [202] phi from mul8u_compare::@7 to mul8u_error [phi:mul8u_compare::@7->mul8u_error]
    jsr mul8u_error
    // mul8u_compare::@return
    // }
    // [104] return 
    rts
    // mul8u_compare::@5
  __b5:
    // for(byte b: 0..255)
    // [105] mul8u_compare::b#1 = ++ mul8u_compare::b#10 -- vbuz1=_inc_vbuz1 
    inc.z b
    // [106] if(mul8u_compare::b#1!=0) goto mul8u_compare::@2 -- vbuz1_neq_0_then_la1 
    lda.z b
    bne __b2
    // mul8u_compare::@8
    // for(byte a: 0..255)
    // [107] mul8u_compare::a#1 = ++ mul8u_compare::a#7 -- vbuz1=_inc_vbuz1 
    inc.z a
    // [108] if(mul8u_compare::a#1!=0) goto mul8u_compare::@1 -- vbuz1_neq_0_then_la1 
    lda.z a
    bne __b1
    // [109] phi from mul8u_compare::@8 to mul8u_compare::@9 [phi:mul8u_compare::@8->mul8u_compare::@9]
    // mul8u_compare::@9
    // print_str("multiply results match!")
    // [110] call print_str
    // [159] phi from mul8u_compare::@9 to print_str [phi:mul8u_compare::@9->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#101 [phi:mul8u_compare::@9->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = mul8u_compare::str [phi:mul8u_compare::@9->print_str#1] -- pbuz1=pbuc1 
    lda #<str
    sta.z print_str.str
    lda #>str
    sta.z print_str.str+1
    jsr print_str
    // [111] phi from mul8u_compare::@9 to mul8u_compare::@13 [phi:mul8u_compare::@9->mul8u_compare::@13]
    // mul8u_compare::@13
    // print_ln()
    // [112] call print_ln
    // [166] phi from mul8u_compare::@13 to print_ln [phi:mul8u_compare::@13->print_ln]
    // [166] phi print_char_cursor#138 = print_char_cursor#1 [phi:mul8u_compare::@13->print_ln#0] -- register_copy 
    // [166] phi print_line_cursor#47 = print_line_cursor#10 [phi:mul8u_compare::@13->print_ln#1] -- register_copy 
    jsr print_ln
    rts
  .segment Data
    str: .text "multiply results match!"
    .byte 0
}
.segment Code
  // mul8s_compare
// Perform all possible signed byte multiplications (slow and fast) and compare the results
mul8s_compare: {
    .label ms = 2
    .label mf = $10
    .label mn = $a
    .label a = 4
    .label b = 5
    // [114] phi from mul8s_compare to mul8s_compare::@1 [phi:mul8s_compare->mul8s_compare::@1]
    // [114] phi mul8s_compare::a#10 = -$80 [phi:mul8s_compare->mul8s_compare::@1#0] -- vbsz1=vbsc1 
    lda #-$80
    sta.z a
    // mul8s_compare::@1
  __b1:
    // for(signed byte a = -128; a!=-128; a++)
    // [115] if(mul8s_compare::a#10!=-$80) goto mul8s_compare::@3 -- vbsz1_neq_vbsc1_then_la1 
    lda #-$80
    cmp.z a
    bne __b2
    // mul8s_compare::@2
    // [116] print_char_cursor#192 = print_line_cursor#0 -- pbuz1=pbuz2 
    lda.z print_line_cursor
    sta.z print_char_cursor
    lda.z print_line_cursor+1
    sta.z print_char_cursor+1
    // print_str("signed multiply results match!")
    // [117] call print_str
    // [159] phi from mul8s_compare::@2 to print_str [phi:mul8s_compare::@2->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#192 [phi:mul8s_compare::@2->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = mul8s_compare::str [phi:mul8s_compare::@2->print_str#1] -- pbuz1=pbuc1 
    lda #<str
    sta.z print_str.str
    lda #>str
    sta.z print_str.str+1
    jsr print_str
    // [118] phi from mul8s_compare::@2 to mul8s_compare::@11 [phi:mul8s_compare::@2->mul8s_compare::@11]
    // mul8s_compare::@11
    // print_ln()
    // [119] call print_ln
    // [166] phi from mul8s_compare::@11 to print_ln [phi:mul8s_compare::@11->print_ln]
    // [166] phi print_char_cursor#138 = print_char_cursor#1 [phi:mul8s_compare::@11->print_ln#0] -- register_copy 
    // [166] phi print_line_cursor#47 = print_line_cursor#0 [phi:mul8s_compare::@11->print_ln#1] -- register_copy 
    jsr print_ln
    // mul8s_compare::@return
    // }
    // [120] return 
    rts
    // [121] phi from mul8s_compare::@1 to mul8s_compare::@3 [phi:mul8s_compare::@1->mul8s_compare::@3]
  __b2:
    // [121] phi mul8s_compare::b#10 = -$80 [phi:mul8s_compare::@1->mul8s_compare::@3#0] -- vbsz1=vbsc1 
    lda #-$80
    sta.z b
    // mul8s_compare::@3
  __b3:
    // for(signed byte b = -128; b!=-128; b++)
    // [122] if(mul8s_compare::b#10!=-$80) goto mul8s_compare::@4 -- vbsz1_neq_vbsc1_then_la1 
    lda #-$80
    cmp.z b
    bne __b4
    // mul8s_compare::@5
    // for(signed byte a = -128; a!=-128; a++)
    // [123] mul8s_compare::a#1 = ++ mul8s_compare::a#10 -- vbsz1=_inc_vbsz1 
    inc.z a
    // [114] phi from mul8s_compare::@5 to mul8s_compare::@1 [phi:mul8s_compare::@5->mul8s_compare::@1]
    // [114] phi mul8s_compare::a#10 = mul8s_compare::a#1 [phi:mul8s_compare::@5->mul8s_compare::@1#0] -- register_copy 
    jmp __b1
    // mul8s_compare::@4
  __b4:
    // signed word ms = muls8s(a, b)
    // [124] muls8s::a#0 = mul8s_compare::a#10
    // [125] muls8s::b#0 = mul8s_compare::b#10 -- vbsxx=vbsz1 
    ldx.z b
    // [126] call muls8s
    jsr muls8s
    // [127] muls8s::return#2 = muls8s::return#0
    // mul8s_compare::@12
    // [128] mul8s_compare::ms#0 = muls8s::return#2
    // signed word mf = mulf8s(a,b)
    // [129] mulf8s::a#0 = mul8s_compare::a#10 -- vbsaa=vbsz1 
    lda.z a
    // [130] mulf8s::b#0 = mul8s_compare::b#10 -- vbsxx=vbsz1 
    ldx.z b
    // [131] call mulf8s
    // [237] phi from mul8s_compare::@12 to mulf8s [phi:mul8s_compare::@12->mulf8s]
    jsr mulf8s
    // signed word mf = mulf8s(a,b)
    // [132] mulf8s::return#2 = mulf8s::return#0
    // mul8s_compare::@13
    // [133] mul8s_compare::mf#0 = mulf8s::return#2
    // signed word mn = mul8s(a,b)
    // [134] mul8s::a#0 = mul8s_compare::a#10
    // [135] mul8s::b#0 = mul8s_compare::b#10 -- vbsyy=vbsz1 
    ldy.z b
    // [136] call mul8s
    jsr mul8s
    // mul8s_compare::@14
    // [137] mul8s_compare::mn#0 = (int)mul8s::m#4
    // if(ms!=mf)
    // [138] if(mul8s_compare::ms#0==mul8s_compare::mf#0) goto mul8s_compare::@6 -- vwsz1_eq_vwsz2_then_la1 
    lda.z ms
    cmp.z mf
    bne !+
    lda.z ms+1
    cmp.z mf+1
    beq __b5
  !:
    // [139] phi from mul8s_compare::@14 to mul8s_compare::@9 [phi:mul8s_compare::@14->mul8s_compare::@9]
    // mul8s_compare::@9
    // [140] phi from mul8s_compare::@9 to mul8s_compare::@6 [phi:mul8s_compare::@9->mul8s_compare::@6]
    // [140] phi mul8s_compare::ok#4 = 0 [phi:mul8s_compare::@9->mul8s_compare::@6#0] -- vbuxx=vbuc1 
    ldx #0
    jmp __b6
    // [140] phi from mul8s_compare::@14 to mul8s_compare::@6 [phi:mul8s_compare::@14->mul8s_compare::@6]
  __b5:
    // [140] phi mul8s_compare::ok#4 = 1 [phi:mul8s_compare::@14->mul8s_compare::@6#0] -- vbuxx=vbuc1 
    ldx #1
    // mul8s_compare::@6
  __b6:
    // if(ms!=mn)
    // [141] if(mul8s_compare::ms#0==mul8s_compare::mn#0) goto mul8s_compare::@15 -- vwsz1_eq_vwsz2_then_la1 
    lda.z ms
    cmp.z mn
    bne !+
    lda.z ms+1
    cmp.z mn+1
    beq __b7
  !:
    // [143] phi from mul8s_compare::@6 to mul8s_compare::@7 [phi:mul8s_compare::@6->mul8s_compare::@7]
    // [143] phi mul8s_compare::ok#3 = 0 [phi:mul8s_compare::@6->mul8s_compare::@7#0] -- vbuxx=vbuc1 
    ldx #0
    // [142] phi from mul8s_compare::@6 to mul8s_compare::@15 [phi:mul8s_compare::@6->mul8s_compare::@15]
    // mul8s_compare::@15
    // [143] phi from mul8s_compare::@15 to mul8s_compare::@7 [phi:mul8s_compare::@15->mul8s_compare::@7]
    // [143] phi mul8s_compare::ok#3 = mul8s_compare::ok#4 [phi:mul8s_compare::@15->mul8s_compare::@7#0] -- register_copy 
    // mul8s_compare::@7
  __b7:
    // if(ok==0)
    // [144] if(mul8s_compare::ok#3!=0) goto mul8s_compare::@8 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne __b8
    // mul8s_compare::@10
    // *BG_COLOR = 2
    // [145] *BG_COLOR = 2 -- _deref_pbuc1=vbuc2 
    lda #2
    sta BG_COLOR
    // mul8s_error(a,b, ms, mn, mf)
    // [146] mul8s_error::a#0 = mul8s_compare::a#10 -- vbsxx=vbsz1 
    ldx.z a
    // [147] mul8s_error::b#0 = mul8s_compare::b#10
    // [148] mul8s_error::ms#0 = mul8s_compare::ms#0
    // [149] mul8s_error::mn#0 = mul8s_compare::mn#0
    // [150] mul8s_error::mf#0 = mul8s_compare::mf#0
    // [151] call mul8s_error
    jsr mul8s_error
    rts
    // mul8s_compare::@8
  __b8:
    // for(signed byte b = -128; b!=-128; b++)
    // [152] mul8s_compare::b#1 = ++ mul8s_compare::b#10 -- vbsz1=_inc_vbsz1 
    inc.z b
    // [121] phi from mul8s_compare::@8 to mul8s_compare::@3 [phi:mul8s_compare::@8->mul8s_compare::@3]
    // [121] phi mul8s_compare::b#10 = mul8s_compare::b#1 [phi:mul8s_compare::@8->mul8s_compare::@3#0] -- register_copy 
    jmp __b3
  .segment Data
    str: .text "signed multiply results match!"
    .byte 0
}
.segment Code
  // memset
// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str.
// void * memset(void *str, char c, unsigned int num)
memset: {
    .const c = ' '
    .const num = $3e8
    .label str = print_screen
    .label end = str+num
    .label dst = $c
    // [154] phi from memset to memset::@1 [phi:memset->memset::@1]
    // [154] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 
    lda #<str
    sta.z dst
    lda #>str
    sta.z dst+1
    // memset::@1
  __b1:
    // for(char* dst = str; dst!=end; dst++)
    // [155] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 
    lda.z dst+1
    cmp #>end
    bne __b2
    lda.z dst
    cmp #<end
    bne __b2
    // memset::@return
    // }
    // [156] return 
    rts
    // memset::@2
  __b2:
    // *dst = c
    // [157] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 
    lda #c
    ldy #0
    sta (dst),y
    // for(char* dst = str; dst!=end; dst++)
    // [158] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 
    inc.z dst
    bne !+
    inc.z dst+1
  !:
    // [154] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1]
    // [154] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy 
    jmp __b1
}
  // print_str
// Print a zero-terminated string
// void print_str(__zp(6) char *str)
print_str: {
    .label str = 6
    // [160] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1]
    // [160] phi print_char_cursor#1 = print_char_cursor#158 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy 
    // [160] phi print_str::str#16 = print_str::str#19 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy 
    // print_str::@1
  __b1:
    // while(*str)
    // [161] if(0!=*print_str::str#16) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1 
    ldy #0
    lda (str),y
    cmp #0
    bne __b2
    // print_str::@return
    // }
    // [162] return 
    rts
    // print_str::@2
  __b2:
    // print_char(*(str++))
    // [163] print_char::ch#0 = *print_str::str#16 -- vbuaa=_deref_pbuz1 
    ldy #0
    lda (str),y
    // [164] call print_char
    // [283] phi from print_str::@2 to print_char [phi:print_str::@2->print_char]
    // [283] phi print_char_cursor#87 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy 
    jsr print_char
    // print_str::@3
    // print_char(*(str++));
    // [165] print_str::str#0 = ++ print_str::str#16 -- pbuz1=_inc_pbuz1 
    inc.z str
    bne !+
    inc.z str+1
  !:
    jmp __b1
}
  // print_ln
// Print a newline
print_ln: {
    // [167] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1]
    // [167] phi print_line_cursor#24 = print_line_cursor#47 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy 
    // print_ln::@1
  __b1:
    // print_line_cursor + $28
    // [168] print_line_cursor#0 = print_line_cursor#24 + $28 -- pbuz1=pbuz1_plus_vbuc1 
    lda #$28
    clc
    adc.z print_line_cursor
    sta.z print_line_cursor
    bcc !+
    inc.z print_line_cursor+1
  !:
    // while (print_line_cursor<print_char_cursor)
    // [169] if(print_line_cursor#0<print_char_cursor#138) goto print_ln::@1 -- pbuz1_lt_pbuz2_then_la1 
    lda.z print_line_cursor+1
    cmp.z print_char_cursor+1
    bcc __b1
    bne !+
    lda.z print_line_cursor
    cmp.z print_char_cursor
    bcc __b1
  !:
    // print_ln::@return
    // }
    // [170] return 
    rts
}
  // print_uint
// Print a unsigned int as HEX
// void print_uint(__zp(2) unsigned int w)
print_uint: {
    .label w = 2
    // print_uchar(BYTE1(w))
    // [172] print_uchar::b#1 = byte1  print_uint::w#6 -- vbuxx=_byte1_vwuz1 
    ldx.z w+1
    // [173] call print_uchar
    // [287] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
    // [287] phi print_char_cursor#146 = print_char_cursor#145 [phi:print_uint->print_uchar#0] -- register_copy 
    // [287] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- register_copy 
    jsr print_uchar
    // print_uint::@1
    // print_uchar(BYTE0(w))
    // [174] print_uchar::b#2 = byte0  print_uint::w#6 -- vbuxx=_byte0_vwuz1 
    ldx.z w
    // [175] call print_uchar
    // [287] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
    // [287] phi print_char_cursor#146 = print_char_cursor#18 [phi:print_uint::@1->print_uchar#0] -- register_copy 
    // [287] phi print_uchar::b#5 = print_uchar::b#2 [phi:print_uint::@1->print_uchar#1] -- register_copy 
    jsr print_uchar
    // print_uint::@return
    // }
    // [176] return 
    rts
}
  // muls8u
// Slow multiplication of unsigned bytes
// Calculate an unsigned multiplication by repeated addition
// __zp(2) unsigned int muls8u(__zp(4) char a, __register(X) char b)
muls8u: {
    .label return = 2
    .label m = 2
    .label a = 4
    // if(a!=0)
    // [177] if(muls8u::a#0==0) goto muls8u::@1 -- vbuz1_eq_0_then_la1 
    lda.z a
    beq __b4
    // [178] phi from muls8u to muls8u::@2 [phi:muls8u->muls8u::@2]
    // [178] phi muls8u::m#3 = 0 [phi:muls8u->muls8u::@2#0] -- vwuz1=vwuc1 
    lda #<0
    sta.z m
    sta.z m+1
    // [178] phi muls8u::i#2 = 0 [phi:muls8u->muls8u::@2#1] -- vbuyy=vbuc1 
    tay
    // muls8u::@2
  __b2:
    // for(byte i = 0; i!=a; i++)
    // [179] if(muls8u::i#2!=muls8u::a#0) goto muls8u::@3 -- vbuyy_neq_vbuz1_then_la1 
    cpy.z a
    bne __b3
    // [180] phi from muls8u::@2 to muls8u::@1 [phi:muls8u::@2->muls8u::@1]
    // [180] phi muls8u::return#0 = muls8u::m#3 [phi:muls8u::@2->muls8u::@1#0] -- register_copy 
    rts
    // [180] phi from muls8u to muls8u::@1 [phi:muls8u->muls8u::@1]
  __b4:
    // [180] phi muls8u::return#0 = 0 [phi:muls8u->muls8u::@1#0] -- vwuz1=vwuc1 
    lda #<0
    sta.z return
    sta.z return+1
    // muls8u::@1
    // muls8u::@return
    // }
    // [181] return 
    rts
    // muls8u::@3
  __b3:
    // m = m + b
    // [182] muls8u::m#1 = muls8u::m#3 + muls8u::b#0 -- vwuz1=vwuz1_plus_vbuxx 
    txa
    clc
    adc.z m
    sta.z m
    bcc !+
    inc.z m+1
  !:
    // for(byte i = 0; i!=a; i++)
    // [183] muls8u::i#1 = ++ muls8u::i#2 -- vbuyy=_inc_vbuyy 
    iny
    // [178] phi from muls8u::@3 to muls8u::@2 [phi:muls8u::@3->muls8u::@2]
    // [178] phi muls8u::m#3 = muls8u::m#1 [phi:muls8u::@3->muls8u::@2#0] -- register_copy 
    // [178] phi muls8u::i#2 = muls8u::i#1 [phi:muls8u::@3->muls8u::@2#1] -- register_copy 
    jmp __b2
}
  // mulf8u
// Fast multiply two unsigned chars to a unsigned int result
// __zp($10) unsigned int mulf8u(__register(A) char a, __register(X) char b)
mulf8u: {
    .label return = $10
    // mulf8u_prepare(a)
    // [184] mulf8u_prepare::a#0 = mulf8u::a#0
    // [185] call mulf8u_prepare
    // [295] phi from mulf8u to mulf8u_prepare [phi:mulf8u->mulf8u_prepare]
    // [295] phi mulf8u_prepare::a#2 = mulf8u_prepare::a#0 [phi:mulf8u->mulf8u_prepare#0] -- register_copy 
    jsr mulf8u_prepare
    // mulf8u::@1
    // mulf8u_prepared(b)
    // [186] mulf8u_prepared::b#0 = mulf8u::b#0 -- vbuaa=vbuxx 
    txa
    // [187] call mulf8u_prepared
    // [299] phi from mulf8u::@1 to mulf8u_prepared [phi:mulf8u::@1->mulf8u_prepared]
    // [299] phi mulf8u_prepared::b#2 = mulf8u_prepared::b#0 [phi:mulf8u::@1->mulf8u_prepared#0] -- register_copy 
    jsr mulf8u_prepared
    // mulf8u_prepared(b)
    // [188] mulf8u_prepared::return#2 = mulf8u_prepared::return#0
    // mulf8u::@2
    // [189] mulf8u::return#0 = mulf8u_prepared::return#2
    // mulf8u::@return
    // }
    // [190] return 
    rts
}
  // mul8u
// Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int
// __zp($a) unsigned int mul8u(__register(X) char a, __register(A) char b)
mul8u: {
    .label mb = $c
    .label res = $a
    .label return = $a
    // unsigned int mb = b
    // [192] mul8u::mb#0 = (unsigned int)mul8u::b#2 -- vwuz1=_word_vbuaa 
    sta.z mb
    lda #0
    sta.z mb+1
    // [193] phi from mul8u to mul8u::@1 [phi:mul8u->mul8u::@1]
    // [193] phi mul8u::mb#2 = mul8u::mb#0 [phi:mul8u->mul8u::@1#0] -- register_copy 
    // [193] phi mul8u::res#2 = 0 [phi:mul8u->mul8u::@1#1] -- vwuz1=vwuc1 
    sta.z res
    sta.z res+1
    // [193] phi mul8u::a#3 = mul8u::a#6 [phi:mul8u->mul8u::@1#2] -- register_copy 
    // mul8u::@1
  __b1:
    // while(a!=0)
    // [194] if(mul8u::a#3!=0) goto mul8u::@2 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne __b2
    // mul8u::@return
    // }
    // [195] return 
    rts
    // mul8u::@2
  __b2:
    // a&1
    // [196] mul8u::$1 = mul8u::a#3 & 1 -- vbuaa=vbuxx_band_vbuc1 
    txa
    and #1
    // if( (a&1) != 0)
    // [197] if(mul8u::$1==0) goto mul8u::@3 -- vbuaa_eq_0_then_la1 
    cmp #0
    beq __b3
    // mul8u::@4
    // res = res + mb
    // [198] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 -- vwuz1=vwuz1_plus_vwuz2 
    clc
    lda.z res
    adc.z mb
    sta.z res
    lda.z res+1
    adc.z mb+1
    sta.z res+1
    // [199] phi from mul8u::@2 mul8u::@4 to mul8u::@3 [phi:mul8u::@2/mul8u::@4->mul8u::@3]
    // [199] phi mul8u::res#6 = mul8u::res#2 [phi:mul8u::@2/mul8u::@4->mul8u::@3#0] -- register_copy 
    // mul8u::@3
  __b3:
    // a = a>>1
    // [200] mul8u::a#0 = mul8u::a#3 >> 1 -- vbuxx=vbuxx_ror_1 
    txa
    lsr
    tax
    // mb = mb<<1
    // [201] mul8u::mb#1 = mul8u::mb#2 << 1 -- vwuz1=vwuz1_rol_1 
    asl.z mb
    rol.z mb+1
    // [193] phi from mul8u::@3 to mul8u::@1 [phi:mul8u::@3->mul8u::@1]
    // [193] phi mul8u::mb#2 = mul8u::mb#1 [phi:mul8u::@3->mul8u::@1#0] -- register_copy 
    // [193] phi mul8u::res#2 = mul8u::res#6 [phi:mul8u::@3->mul8u::@1#1] -- register_copy 
    // [193] phi mul8u::a#3 = mul8u::a#0 [phi:mul8u::@3->mul8u::@1#2] -- register_copy 
    jmp __b1
}
  // mul8u_error
// void mul8u_error(__register(X) char a, __zp(5) char b, __zp(2) unsigned int ms, __zp($a) unsigned int mn, __zp($10) unsigned int mf)
mul8u_error: {
    .label b = 5
    .label ms = 2
    .label mn = $a
    .label mf = $10
    // print_str("multiply mismatch ")
    // [203] call print_str
    // [159] phi from mul8u_error to print_str [phi:mul8u_error->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#101 [phi:mul8u_error->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = mul8u_error::str [phi:mul8u_error->print_str#1] -- pbuz1=pbuc1 
    lda #<str
    sta.z print_str.str
    lda #>str
    sta.z print_str.str+1
    jsr print_str
    // mul8u_error::@1
    // print_uchar(a)
    // [204] print_uchar::b#3 = mul8u_error::a#0
    // [205] call print_uchar
    // [287] phi from mul8u_error::@1 to print_uchar [phi:mul8u_error::@1->print_uchar]
    // [287] phi print_char_cursor#146 = print_char_cursor#1 [phi:mul8u_error::@1->print_uchar#0] -- register_copy 
    // [287] phi print_uchar::b#5 = print_uchar::b#3 [phi:mul8u_error::@1->print_uchar#1] -- register_copy 
    jsr print_uchar
    // [206] phi from mul8u_error::@1 to mul8u_error::@2 [phi:mul8u_error::@1->mul8u_error::@2]
    // mul8u_error::@2
    // print_str("*")
    // [207] call print_str
    // [159] phi from mul8u_error::@2 to print_str [phi:mul8u_error::@2->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8u_error::@2->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1 
    lda #<str1
    sta.z print_str.str
    lda #>str1
    sta.z print_str.str+1
    jsr print_str
    // mul8u_error::@3
    // print_uchar(b)
    // [208] print_uchar::b#4 = mul8u_error::b#0 -- vbuxx=vbuz1 
    ldx.z b
    // [209] call print_uchar
    // [287] phi from mul8u_error::@3 to print_uchar [phi:mul8u_error::@3->print_uchar]
    // [287] phi print_char_cursor#146 = print_char_cursor#1 [phi:mul8u_error::@3->print_uchar#0] -- register_copy 
    // [287] phi print_uchar::b#5 = print_uchar::b#4 [phi:mul8u_error::@3->print_uchar#1] -- register_copy 
    jsr print_uchar
    // [210] phi from mul8u_error::@3 to mul8u_error::@4 [phi:mul8u_error::@3->mul8u_error::@4]
    // mul8u_error::@4
    // print_str(" slow:")
    // [211] call print_str
    // [159] phi from mul8u_error::@4 to print_str [phi:mul8u_error::@4->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8u_error::@4->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1 
    lda #<str2
    sta.z print_str.str
    lda #>str2
    sta.z print_str.str+1
    jsr print_str
    // mul8u_error::@5
    // print_uint(ms)
    // [212] print_uint::w#3 = mul8u_error::ms#0
    // [213] call print_uint
    // [171] phi from mul8u_error::@5 to print_uint [phi:mul8u_error::@5->print_uint]
    // [171] phi print_char_cursor#145 = print_char_cursor#1 [phi:mul8u_error::@5->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#3 [phi:mul8u_error::@5->print_uint#1] -- register_copy 
    jsr print_uint
    // [214] phi from mul8u_error::@5 to mul8u_error::@6 [phi:mul8u_error::@5->mul8u_error::@6]
    // mul8u_error::@6
    // print_str(" / normal:")
    // [215] call print_str
    // [159] phi from mul8u_error::@6 to print_str [phi:mul8u_error::@6->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8u_error::@6->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1 
    lda #<str3
    sta.z print_str.str
    lda #>str3
    sta.z print_str.str+1
    jsr print_str
    // mul8u_error::@7
    // print_uint(mn)
    // [216] print_uint::w#4 = mul8u_error::mn#0 -- vwuz1=vwuz2 
    lda.z mn
    sta.z print_uint.w
    lda.z mn+1
    sta.z print_uint.w+1
    // [217] call print_uint
    // [171] phi from mul8u_error::@7 to print_uint [phi:mul8u_error::@7->print_uint]
    // [171] phi print_char_cursor#145 = print_char_cursor#1 [phi:mul8u_error::@7->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#4 [phi:mul8u_error::@7->print_uint#1] -- register_copy 
    jsr print_uint
    // [218] phi from mul8u_error::@7 to mul8u_error::@8 [phi:mul8u_error::@7->mul8u_error::@8]
    // mul8u_error::@8
    // print_str(" / fast:")
    // [219] call print_str
    // [159] phi from mul8u_error::@8 to print_str [phi:mul8u_error::@8->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8u_error::@8->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1 
    lda #<str4
    sta.z print_str.str
    lda #>str4
    sta.z print_str.str+1
    jsr print_str
    // mul8u_error::@9
    // print_uint(mf)
    // [220] print_uint::w#5 = mul8u_error::mf#0 -- vwuz1=vwuz2 
    lda.z mf
    sta.z print_uint.w
    lda.z mf+1
    sta.z print_uint.w+1
    // [221] call print_uint
    // [171] phi from mul8u_error::@9 to print_uint [phi:mul8u_error::@9->print_uint]
    // [171] phi print_char_cursor#145 = print_char_cursor#1 [phi:mul8u_error::@9->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#5 [phi:mul8u_error::@9->print_uint#1] -- register_copy 
    jsr print_uint
    // [222] phi from mul8u_error::@9 to mul8u_error::@10 [phi:mul8u_error::@9->mul8u_error::@10]
    // mul8u_error::@10
    // print_ln()
    // [223] call print_ln
    // [166] phi from mul8u_error::@10 to print_ln [phi:mul8u_error::@10->print_ln]
    // [166] phi print_char_cursor#138 = print_char_cursor#18 [phi:mul8u_error::@10->print_ln#0] -- register_copy 
    // [166] phi print_line_cursor#47 = print_line_cursor#10 [phi:mul8u_error::@10->print_ln#1] -- register_copy 
    jsr print_ln
    // mul8u_error::@return
    // }
    // [224] return 
    rts
  .segment Data
    str: .text "multiply mismatch "
    .byte 0
}
.segment Code
  // muls8s
// Slow multiplication of signed bytes
// Perform a signed multiplication by repeated addition/subtraction
// __zp(2) int muls8s(__zp(4) signed char a, __register(X) signed char b)
muls8s: {
    .label m = 2
    .label return = 2
    .label a = 4
    // if(a<0)
    // [225] if(muls8s::a#0<0) goto muls8s::@5 -- vbsz1_lt_0_then_la1 
    lda.z a
    bmi __b8
    // muls8s::@2
    // if (a>0)
    // [226] if(muls8s::a#0<=0) goto muls8s::@1 -- vbsz1_le_0_then_la1 
    cmp #1
    bmi __b7
    // [227] phi from muls8s::@2 to muls8s::@3 [phi:muls8s::@2->muls8s::@3]
    // [227] phi muls8s::m#3 = 0 [phi:muls8s::@2->muls8s::@3#0] -- vwsz1=vwsc1 
    lda #<0
    sta.z m
    sta.z m+1
    // [227] phi muls8s::j#2 = 0 [phi:muls8s::@2->muls8s::@3#1] -- vbsyy=vbsc1 
    tay
    // muls8s::@3
  __b3:
    // for(signed byte j = 0; j!=a; j++)
    // [228] if(muls8s::j#2!=muls8s::a#0) goto muls8s::@4 -- vbsyy_neq_vbsz1_then_la1 
    cpy.z a
    bne __b4
    // [229] phi from muls8s::@3 muls8s::@5 to muls8s::@1 [phi:muls8s::@3/muls8s::@5->muls8s::@1]
    // [229] phi muls8s::return#0 = muls8s::m#3 [phi:muls8s::@3/muls8s::@5->muls8s::@1#0] -- register_copy 
    rts
    // [229] phi from muls8s::@2 to muls8s::@1 [phi:muls8s::@2->muls8s::@1]
  __b7:
    // [229] phi muls8s::return#0 = 0 [phi:muls8s::@2->muls8s::@1#0] -- vwsz1=vwsc1 
    lda #<0
    sta.z return
    sta.z return+1
    // muls8s::@1
    // muls8s::@return
    // }
    // [230] return 
    rts
    // muls8s::@4
  __b4:
    // m = m + b
    // [231] muls8s::m#1 = muls8s::m#3 + muls8s::b#0 -- vwsz1=vwsz1_plus_vbsxx 
    txa
    sta.z $ff
    clc
    adc.z m
    sta.z m
    lda.z $ff
    ora #$7f
    bmi !+
    lda #0
  !:
    adc.z m+1
    sta.z m+1
    // for(signed byte j = 0; j!=a; j++)
    // [232] muls8s::j#1 = ++ muls8s::j#2 -- vbsyy=_inc_vbsyy 
    iny
    // [227] phi from muls8s::@4 to muls8s::@3 [phi:muls8s::@4->muls8s::@3]
    // [227] phi muls8s::m#3 = muls8s::m#1 [phi:muls8s::@4->muls8s::@3#0] -- register_copy 
    // [227] phi muls8s::j#2 = muls8s::j#1 [phi:muls8s::@4->muls8s::@3#1] -- register_copy 
    jmp __b3
    // [233] phi from muls8s to muls8s::@5 [phi:muls8s->muls8s::@5]
  __b8:
    // [233] phi muls8s::m#5 = 0 [phi:muls8s->muls8s::@5#0] -- vwsz1=vwsc1 
    lda #<0
    sta.z m
    sta.z m+1
    // [233] phi muls8s::i#2 = 0 [phi:muls8s->muls8s::@5#1] -- vbsyy=vbsc1 
    tay
    // muls8s::@5
  __b5:
    // for(signed byte i = 0; i!=a; i--)
    // [234] if(muls8s::i#2!=muls8s::a#0) goto muls8s::@6 -- vbsyy_neq_vbsz1_then_la1 
    cpy.z a
    bne __b6
    rts
    // muls8s::@6
  __b6:
    // m = m - b
    // [235] muls8s::m#2 = muls8s::m#5 - muls8s::b#0 -- vwsz1=vwsz1_minus_vbsxx 
    txa
    sta.z $fe
    ora #$7f
    bmi !+
    lda #0
  !:
    sta.z $ff
    lda.z m
    sec
    sbc.z $fe
    sta.z m
    lda.z m+1
    sbc.z $ff
    sta.z m+1
    // for(signed byte i = 0; i!=a; i--)
    // [236] muls8s::i#1 = -- muls8s::i#2 -- vbsyy=_dec_vbsyy 
    dey
    // [233] phi from muls8s::@6 to muls8s::@5 [phi:muls8s::@6->muls8s::@5]
    // [233] phi muls8s::m#5 = muls8s::m#2 [phi:muls8s::@6->muls8s::@5#0] -- register_copy 
    // [233] phi muls8s::i#2 = muls8s::i#1 [phi:muls8s::@6->muls8s::@5#1] -- register_copy 
    jmp __b5
}
  // mulf8s
// Fast multiply two signed chars to a unsigned int result
// __zp($10) int mulf8s(__register(A) signed char a, __register(X) signed char b)
mulf8s: {
    .label return = $10
    // mulf8s::mulf8s_prepare1
    // mulf8u_prepare((char)a)
    // [238] mulf8u_prepare::a#1 = (char)mulf8s::a#0
    // [239] call mulf8u_prepare
    // [295] phi from mulf8s::mulf8s_prepare1 to mulf8u_prepare [phi:mulf8s::mulf8s_prepare1->mulf8u_prepare]
    // [295] phi mulf8u_prepare::a#2 = mulf8u_prepare::a#1 [phi:mulf8s::mulf8s_prepare1->mulf8u_prepare#0] -- register_copy 
    jsr mulf8u_prepare
    // mulf8s::@1
    // mulf8s_prepared(b)
    // [240] mulf8s_prepared::b#0 = mulf8s::b#0 -- vbsz1=vbsxx 
    stx.z mulf8s_prepared.b
    // [241] call mulf8s_prepared
    jsr mulf8s_prepared
    // mulf8s::@2
    // [242] mulf8s::return#0 = (int)mulf8s_prepared::m#4
    // mulf8s::@return
    // }
    // [243] return 
    rts
}
  // mul8s
// Multiply of two signed chars to a signed int
// Fixes offsets introduced by using unsigned multiplication
// int mul8s(__zp(4) signed char a, __register(Y) signed char b)
mul8s: {
    .label m = $a
    .label a = 4
    // unsigned int m = mul8u((char)a, (char) b)
    // [244] mul8u::a#1 = (char)mul8s::a#0 -- vbuxx=vbuz1 
    ldx.z a
    // [245] mul8u::b#0 = (char)mul8s::b#0 -- vbuaa=vbuyy 
    tya
    // [246] call mul8u
    // [191] phi from mul8s to mul8u [phi:mul8s->mul8u]
    // [191] phi mul8u::a#6 = mul8u::a#1 [phi:mul8s->mul8u#0] -- register_copy 
    // [191] phi mul8u::b#2 = mul8u::b#0 [phi:mul8s->mul8u#1] -- register_copy 
    jsr mul8u
    // unsigned int m = mul8u((char)a, (char) b)
    // [247] mul8u::return#2 = mul8u::res#2
    // mul8s::@5
    // [248] mul8s::m#0 = mul8u::return#2
    // if(a<0)
    // [249] if(mul8s::a#0>=0) goto mul8s::@1 -- vbsz1_ge_0_then_la1 
    lda.z a
    cmp #0
    bpl __b1
    // mul8s::@3
    // BYTE1(m)
    // [250] mul8s::$6 = byte1  mul8s::m#0 -- vbuaa=_byte1_vwuz1 
    lda.z m+1
    // BYTE1(m) = BYTE1(m)-(char)b
    // [251] mul8s::$11 = mul8s::$6 - (char)mul8s::b#0 -- vbuaa=vbuaa_minus_vbuyy 
    sty.z $ff
    sec
    sbc.z $ff
    // [252] mul8s::m#1 = mul8s::m#0 byte1= mul8s::$11 -- vwuz1=vwuz1_setbyte1_vbuaa 
    sta.z m+1
    // [253] phi from mul8s::@3 mul8s::@5 to mul8s::@1 [phi:mul8s::@3/mul8s::@5->mul8s::@1]
    // [253] phi mul8s::m#5 = mul8s::m#1 [phi:mul8s::@3/mul8s::@5->mul8s::@1#0] -- register_copy 
    // mul8s::@1
  __b1:
    // if(b<0)
    // [254] if(mul8s::b#0>=0) goto mul8s::@2 -- vbsyy_ge_0_then_la1 
    cpy #0
    bpl __b2
    // mul8s::@4
    // BYTE1(m)
    // [255] mul8s::$9 = byte1  mul8s::m#5 -- vbuaa=_byte1_vwuz1 
    lda.z m+1
    // BYTE1(m) = BYTE1(m)-(char)a
    // [256] mul8s::$12 = mul8s::$9 - (char)mul8s::a#0 -- vbuaa=vbuaa_minus_vbuz1 
    sec
    sbc.z a
    // [257] mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12 -- vwuz1=vwuz1_setbyte1_vbuaa 
    sta.z m+1
    // [258] phi from mul8s::@1 mul8s::@4 to mul8s::@2 [phi:mul8s::@1/mul8s::@4->mul8s::@2]
    // [258] phi mul8s::m#4 = mul8s::m#5 [phi:mul8s::@1/mul8s::@4->mul8s::@2#0] -- register_copy 
    // mul8s::@2
  __b2:
    // mul8s::@return
    // }
    // [259] return 
    rts
}
  // mul8s_error
// void mul8s_error(__register(X) signed char a, __zp(5) signed char b, __zp(2) int ms, __zp($a) int mn, __zp($10) int mf)
mul8s_error: {
    .label b = 5
    .label ms = 2
    .label mn = $a
    .label mf = $10
    // [260] print_char_cursor#193 = print_line_cursor#0 -- pbuz1=pbuz2 
    lda.z print_line_cursor
    sta.z print_char_cursor
    lda.z print_line_cursor+1
    sta.z print_char_cursor+1
    // print_str("signed multiply mismatch ")
    // [261] call print_str
    // [159] phi from mul8s_error to print_str [phi:mul8s_error->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#193 [phi:mul8s_error->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = mul8s_error::str [phi:mul8s_error->print_str#1] -- pbuz1=pbuc1 
    lda #<str
    sta.z print_str.str
    lda #>str
    sta.z print_str.str+1
    jsr print_str
    // mul8s_error::@1
    // print_schar(a)
    // [262] print_schar::b#1 = mul8s_error::a#0
    // [263] call print_schar
    // [319] phi from mul8s_error::@1 to print_schar [phi:mul8s_error::@1->print_schar]
    // [319] phi print_schar::b#3 = print_schar::b#1 [phi:mul8s_error::@1->print_schar#0] -- register_copy 
    jsr print_schar
    // [264] phi from mul8s_error::@1 to mul8s_error::@2 [phi:mul8s_error::@1->mul8s_error::@2]
    // mul8s_error::@2
    // print_str("*")
    // [265] call print_str
    // [159] phi from mul8s_error::@2 to print_str [phi:mul8s_error::@2->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8s_error::@2->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1 
    lda #<str1
    sta.z print_str.str
    lda #>str1
    sta.z print_str.str+1
    jsr print_str
    // mul8s_error::@3
    // print_schar(b)
    // [266] print_schar::b#2 = mul8s_error::b#0 -- vbsxx=vbsz1 
    ldx.z b
    // [267] call print_schar
    // [319] phi from mul8s_error::@3 to print_schar [phi:mul8s_error::@3->print_schar]
    // [319] phi print_schar::b#3 = print_schar::b#2 [phi:mul8s_error::@3->print_schar#0] -- register_copy 
    jsr print_schar
    // [268] phi from mul8s_error::@3 to mul8s_error::@4 [phi:mul8s_error::@3->mul8s_error::@4]
    // mul8s_error::@4
    // print_str(" slow:")
    // [269] call print_str
    // [159] phi from mul8s_error::@4 to print_str [phi:mul8s_error::@4->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8s_error::@4->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1 
    lda #<str2
    sta.z print_str.str
    lda #>str2
    sta.z print_str.str+1
    jsr print_str
    // mul8s_error::@5
    // print_sint(ms)
    // [270] print_sint::w#1 = mul8s_error::ms#0
    // [271] call print_sint
    // [330] phi from mul8s_error::@5 to print_sint [phi:mul8s_error::@5->print_sint]
    // [330] phi print_sint::w#4 = print_sint::w#1 [phi:mul8s_error::@5->print_sint#0] -- register_copy 
    jsr print_sint
    // [272] phi from mul8s_error::@5 to mul8s_error::@6 [phi:mul8s_error::@5->mul8s_error::@6]
    // mul8s_error::@6
    // print_str(" / normal:")
    // [273] call print_str
    // [159] phi from mul8s_error::@6 to print_str [phi:mul8s_error::@6->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8s_error::@6->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1 
    lda #<str3
    sta.z print_str.str
    lda #>str3
    sta.z print_str.str+1
    jsr print_str
    // mul8s_error::@7
    // print_sint(mn)
    // [274] print_sint::w#2 = mul8s_error::mn#0 -- vwsz1=vwsz2 
    lda.z mn
    sta.z print_sint.w
    lda.z mn+1
    sta.z print_sint.w+1
    // [275] call print_sint
    // [330] phi from mul8s_error::@7 to print_sint [phi:mul8s_error::@7->print_sint]
    // [330] phi print_sint::w#4 = print_sint::w#2 [phi:mul8s_error::@7->print_sint#0] -- register_copy 
    jsr print_sint
    // [276] phi from mul8s_error::@7 to mul8s_error::@8 [phi:mul8s_error::@7->mul8s_error::@8]
    // mul8s_error::@8
    // print_str(" / fast:")
    // [277] call print_str
    // [159] phi from mul8s_error::@8 to print_str [phi:mul8s_error::@8->print_str]
    // [159] phi print_char_cursor#158 = print_char_cursor#18 [phi:mul8s_error::@8->print_str#0] -- register_copy 
    // [159] phi print_str::str#19 = str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1 
    lda #<str4
    sta.z print_str.str
    lda #>str4
    sta.z print_str.str+1
    jsr print_str
    // mul8s_error::@9
    // print_sint(mf)
    // [278] print_sint::w#3 = mul8s_error::mf#0 -- vwsz1=vwsz2 
    lda.z mf
    sta.z print_sint.w
    lda.z mf+1
    sta.z print_sint.w+1
    // [279] call print_sint
    // [330] phi from mul8s_error::@9 to print_sint [phi:mul8s_error::@9->print_sint]
    // [330] phi print_sint::w#4 = print_sint::w#3 [phi:mul8s_error::@9->print_sint#0] -- register_copy 
    jsr print_sint
    // [280] phi from mul8s_error::@9 to mul8s_error::@10 [phi:mul8s_error::@9->mul8s_error::@10]
    // mul8s_error::@10
    // print_ln()
    // [281] call print_ln
    // [166] phi from mul8s_error::@10 to print_ln [phi:mul8s_error::@10->print_ln]
    // [166] phi print_char_cursor#138 = print_char_cursor#18 [phi:mul8s_error::@10->print_ln#0] -- register_copy 
    // [166] phi print_line_cursor#47 = print_line_cursor#0 [phi:mul8s_error::@10->print_ln#1] -- register_copy 
    jsr print_ln
    // mul8s_error::@return
    // }
    // [282] return 
    rts
  .segment Data
    str: .text "signed multiply mismatch "
    .byte 0
}
.segment Code
  // print_char
// Print a single char
// void print_char(__register(A) char ch)
print_char: {
    // *(print_char_cursor++) = ch
    // [284] *print_char_cursor#87 = print_char::ch#7 -- _deref_pbuz1=vbuaa 
    ldy #0
    sta (print_char_cursor),y
    // *(print_char_cursor++) = ch;
    // [285] print_char_cursor#18 = ++ print_char_cursor#87 -- pbuz1=_inc_pbuz1 
    inc.z print_char_cursor
    bne !+
    inc.z print_char_cursor+1
  !:
    // print_char::@return
    // }
    // [286] return 
    rts
}
  // print_uchar
// Print a char as HEX
// void print_uchar(__register(X) char b)
print_uchar: {
    // b>>4
    // [288] print_uchar::$0 = print_uchar::b#5 >> 4 -- vbuaa=vbuxx_ror_4 
    txa
    lsr
    lsr
    lsr
    lsr
    // print_char(print_hextab[b>>4])
    // [289] print_char::ch#5 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa 
    tay
    lda print_hextab,y
    // [290] call print_char
  // Table of hexadecimal digits
    // [283] phi from print_uchar to print_char [phi:print_uchar->print_char]
    // [283] phi print_char_cursor#87 = print_char_cursor#146 [phi:print_uchar->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = print_char::ch#5 [phi:print_uchar->print_char#1] -- register_copy 
    jsr print_char
    // print_uchar::@1
    // b&$f
    // [291] print_uchar::$2 = print_uchar::b#5 & $f -- vbuxx=vbuxx_band_vbuc1 
    lda #$f
    axs #0
    // print_char(print_hextab[b&$f])
    // [292] print_char::ch#6 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx 
    lda print_hextab,x
    // [293] call print_char
    // [283] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
    // [283] phi print_char_cursor#87 = print_char_cursor#18 [phi:print_uchar::@1->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = print_char::ch#6 [phi:print_uchar::@1->print_char#1] -- register_copy 
    jsr print_char
    // print_uchar::@return
    // }
    // [294] return 
    rts
}
  // mulf8u_prepare
// Prepare for fast multiply with an unsigned char to a unsigned int result
// void mulf8u_prepare(__register(A) char a)
mulf8u_prepare: {
    .label memA = $fd
    // *memA = a
    // [296] *mulf8u_prepare::memA = mulf8u_prepare::a#2 -- _deref_pbuc1=vbuaa 
    sta memA
    // asm
    // asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1  }
    sta mulf8u_prepared.sm1+1
    sta mulf8u_prepared.sm3+1
    eor #$ff
    sta mulf8u_prepared.sm2+1
    sta mulf8u_prepared.sm4+1
    // mulf8u_prepare::@return
    // }
    // [298] return 
    rts
}
  // mulf8u_prepared
// Calculate fast multiply with a prepared unsigned char to a unsigned int result
// The prepared number is set by calling mulf8u_prepare(char a)
// __zp($10) unsigned int mulf8u_prepared(__register(A) char b)
mulf8u_prepared: {
    .label resL = $fe
    .label memB = $ff
    .label return = $10
    // *memB = b
    // [300] *mulf8u_prepared::memB = mulf8u_prepared::b#2 -- _deref_pbuc1=vbuaa 
    sta memB
    // asm
    // asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB  }
    tax
    sec
  sm1:
    lda mulf_sqr1_lo,x
  sm2:
    sbc mulf_sqr2_lo,x
    sta resL
  sm3:
    lda mulf_sqr1_hi,x
  sm4:
    sbc mulf_sqr2_hi,x
    sta memB
    // MAKEWORD( *memB, *resL )
    // [302] mulf8u_prepared::return#0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL -- vwuz1=_deref_pbuc1_word__deref_pbuc2 
    sta.z return+1
    lda resL
    sta.z return
    // mulf8u_prepared::@return
    // }
    // [303] return 
    rts
}
  // mulf8s_prepared
// Calculate fast multiply with a prepared unsigned char to a unsigned int result
// The prepared number is set by calling mulf8s_prepare(char a)
// int mulf8s_prepared(__zp($12) signed char b)
mulf8s_prepared: {
    .label memA = $fd
    .label m = $10
    .label b = $12
    // unsigned int m = mulf8u_prepared((char) b)
    // [304] mulf8u_prepared::b#1 = (char)mulf8s_prepared::b#0 -- vbuaa=vbuz1 
    lda.z b
    // [305] call mulf8u_prepared
    // [299] phi from mulf8s_prepared to mulf8u_prepared [phi:mulf8s_prepared->mulf8u_prepared]
    // [299] phi mulf8u_prepared::b#2 = mulf8u_prepared::b#1 [phi:mulf8s_prepared->mulf8u_prepared#0] -- register_copy 
    jsr mulf8u_prepared
    // unsigned int m = mulf8u_prepared((char) b)
    // [306] mulf8u_prepared::return#3 = mulf8u_prepared::return#0
    // mulf8s_prepared::@5
    // [307] mulf8s_prepared::m#0 = mulf8u_prepared::return#3
    // if(*memA<0)
    // [308] if(*mulf8s_prepared::memA>=0) goto mulf8s_prepared::@1 -- _deref_pbsc1_ge_0_then_la1 
    lda memA
    cmp #0
    bpl __b1
    // mulf8s_prepared::@3
    // BYTE1(m)
    // [309] mulf8s_prepared::$6 = byte1  mulf8s_prepared::m#0 -- vbuaa=_byte1_vwuz1 
    lda.z m+1
    // BYTE1(m) = BYTE1(m)-(char)b
    // [310] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (char)mulf8s_prepared::b#0 -- vbuaa=vbuaa_minus_vbuz1 
    sec
    sbc.z b
    // [311] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 byte1= mulf8s_prepared::$11 -- vwuz1=vwuz1_setbyte1_vbuaa 
    sta.z m+1
    // [312] phi from mulf8s_prepared::@3 mulf8s_prepared::@5 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@5->mulf8s_prepared::@1]
    // [312] phi mulf8s_prepared::m#5 = mulf8s_prepared::m#1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@5->mulf8s_prepared::@1#0] -- register_copy 
    // mulf8s_prepared::@1
  __b1:
    // if(b<0)
    // [313] if(mulf8s_prepared::b#0>=0) goto mulf8s_prepared::@2 -- vbsz1_ge_0_then_la1 
    lda.z b
    cmp #0
    bpl __b2
    // mulf8s_prepared::@4
    // BYTE1(m)
    // [314] mulf8s_prepared::$9 = byte1  mulf8s_prepared::m#5 -- vbuaa=_byte1_vwuz1 
    lda.z m+1
    // BYTE1(m) = BYTE1(m)-(char)*memA
    // [315] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (char)*mulf8s_prepared::memA -- vbuaa=vbuaa_minus__deref_pbuc1 
    sec
    sbc memA
    // [316] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12 -- vwuz1=vwuz1_setbyte1_vbuaa 
    sta.z m+1
    // [317] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2]
    // [317] phi mulf8s_prepared::m#4 = mulf8s_prepared::m#5 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2#0] -- register_copy 
    // mulf8s_prepared::@2
  __b2:
    // mulf8s_prepared::@return
    // }
    // [318] return 
    rts
}
  // print_schar
// Print a signed char as HEX
// void print_schar(__register(X) signed char b)
print_schar: {
    // if(b<0)
    // [320] if(print_schar::b#3<0) goto print_schar::@1 -- vbsxx_lt_0_then_la1 
    cpx #0
    bmi __b1
    // [321] phi from print_schar to print_schar::@3 [phi:print_schar->print_schar::@3]
    // print_schar::@3
    // print_char(' ')
    // [322] call print_char
    // [283] phi from print_schar::@3 to print_char [phi:print_schar::@3->print_char]
    // [283] phi print_char_cursor#87 = print_char_cursor#1 [phi:print_schar::@3->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = ' ' [phi:print_schar::@3->print_char#1] -- vbuaa=vbuc1 
    lda #' '
    jsr print_char
    // [323] phi from print_schar::@3 print_schar::@4 to print_schar::@2 [phi:print_schar::@3/print_schar::@4->print_schar::@2]
    // [323] phi print_schar::b#5 = print_schar::b#3 [phi:print_schar::@3/print_schar::@4->print_schar::@2#0] -- register_copy 
    // print_schar::@2
  __b2:
    // print_uchar((char)b)
    // [324] print_uchar::b#0 = (char)print_schar::b#5
    // [325] call print_uchar
    // [287] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar]
    // [287] phi print_char_cursor#146 = print_char_cursor#18 [phi:print_schar::@2->print_uchar#0] -- register_copy 
    // [287] phi print_uchar::b#5 = print_uchar::b#0 [phi:print_schar::@2->print_uchar#1] -- register_copy 
    jsr print_uchar
    // print_schar::@return
    // }
    // [326] return 
    rts
    // [327] phi from print_schar to print_schar::@1 [phi:print_schar->print_schar::@1]
    // print_schar::@1
  __b1:
    // print_char('-')
    // [328] call print_char
    // [283] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char]
    // [283] phi print_char_cursor#87 = print_char_cursor#1 [phi:print_schar::@1->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = '-' [phi:print_schar::@1->print_char#1] -- vbuaa=vbuc1 
    lda #'-'
    jsr print_char
    // print_schar::@4
    // b = -b
    // [329] print_schar::b#0 = - print_schar::b#3 -- vbsxx=_neg_vbsxx 
    txa
    eor #$ff
    clc
    adc #1
    tax
    jmp __b2
}
  // print_sint
// Print a signed int as HEX
// void print_sint(__zp(2) int w)
print_sint: {
    .label w = 2
    // if(w<0)
    // [331] if(print_sint::w#4<0) goto print_sint::@1 -- vwsz1_lt_0_then_la1 
    lda.z w+1
    bmi __b1
    // [332] phi from print_sint to print_sint::@3 [phi:print_sint->print_sint::@3]
    // print_sint::@3
    // print_char(' ')
    // [333] call print_char
    // [283] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char]
    // [283] phi print_char_cursor#87 = print_char_cursor#1 [phi:print_sint::@3->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = ' ' [phi:print_sint::@3->print_char#1] -- vbuaa=vbuc1 
    lda #' '
    jsr print_char
    // [334] phi from print_sint::@3 print_sint::@4 to print_sint::@2 [phi:print_sint::@3/print_sint::@4->print_sint::@2]
    // [334] phi print_sint::w#6 = print_sint::w#4 [phi:print_sint::@3/print_sint::@4->print_sint::@2#0] -- register_copy 
    // print_sint::@2
  __b2:
    // print_uint((unsigned int)w)
    // [335] print_uint::w#0 = (unsigned int)print_sint::w#6
    // [336] call print_uint
    // [171] phi from print_sint::@2 to print_uint [phi:print_sint::@2->print_uint]
    // [171] phi print_char_cursor#145 = print_char_cursor#18 [phi:print_sint::@2->print_uint#0] -- register_copy 
    // [171] phi print_uint::w#6 = print_uint::w#0 [phi:print_sint::@2->print_uint#1] -- register_copy 
    jsr print_uint
    // print_sint::@return
    // }
    // [337] return 
    rts
    // [338] phi from print_sint to print_sint::@1 [phi:print_sint->print_sint::@1]
    // print_sint::@1
  __b1:
    // print_char('-')
    // [339] call print_char
    // [283] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char]
    // [283] phi print_char_cursor#87 = print_char_cursor#1 [phi:print_sint::@1->print_char#0] -- register_copy 
    // [283] phi print_char::ch#7 = '-' [phi:print_sint::@1->print_char#1] -- vbuaa=vbuc1 
    lda #'-'
    jsr print_char
    // print_sint::@4
    // w = -w
    // [340] print_sint::w#0 = - print_sint::w#4 -- vwsz1=_neg_vwsz1 
    lda #0
    sec
    sbc.z w
    sta.z w
    lda #0
    sbc.z w+1
    sta.z w+1
    jmp __b2
}
  // File Data
.segment Data
  print_hextab: .text "0123456789abcdef"
  // mulf_sqr tables will contain f(x)=int(x*x/4) and g(x) = f(x-255).
  // <f(x) = <(( x * x )/4)
  .align $100
  mulf_sqr1_lo: .fill $200, 0
  // >f(x) = >(( x * x )/4)
  .align $100
  mulf_sqr1_hi: .fill $200, 0
  // <g(x) =  <((( x - 255) * ( x - 255 ))/4)
  .align $100
  mulf_sqr2_lo: .fill $200, 0
  // >g(x) = >((( x - 255) * ( x - 255 ))/4)
  .align $100
  mulf_sqr2_hi: .fill $200, 0
  // ASM based multiplication tables
  // <(( x * x )/4)
  .align $100
  mula_sqr1_lo: .fill $200, 0
  // >(( x * x )/4)
  .align $100
  mula_sqr1_hi: .fill $200, 0
  // <((( x - 255) * ( x - 255 ))/4)
  .align $100
  mula_sqr2_lo: .fill $200, 0
  // >((( x - 255) * ( x - 255 ))/4)
  .align $100
  mula_sqr2_hi: .fill $200, 0
  str1: .text "*"
  .byte 0
  str2: .text " slow:"
  .byte 0
  str3: .text " / normal:"
  .byte 0
  str4: .text " / fast:"
  .byte 0

