
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 mul16u_compare
  to:main::@3
main::@3: scope:[main]  from main::@2
  [6] phi()
  [7] call mul16s_compare
  to:main::@return
main::@return: scope:[main]  from main::@3
  [8] return 
  to:@return

void print_cls()
print_cls: scope:[print_cls]  from main
  [9] phi()
  [10] call memset
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [11] return 
  to:@return

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

void mul16u_compare()
mul16u_compare: scope:[mul16u_compare]  from main::@2
  [41] phi()
  to:mul16u_compare::@1
mul16u_compare::@1: scope:[mul16u_compare]  from mul16u_compare mul16u_compare::@8
  [42] mul16u_compare::i#12 = phi( mul16u_compare/0, mul16u_compare::@8/mul16u_compare::i#1 )
  [42] mul16u_compare::b#6 = phi( mul16u_compare/0, mul16u_compare::@8/mul16u_compare::b#1 )
  [42] mul16u_compare::a#6 = phi( mul16u_compare/0, mul16u_compare::@8/mul16u_compare::a#1 )
  [42] print_char_cursor#148 = phi( mul16u_compare/print_screen#0, mul16u_compare::@8/print_char_cursor#1 )
  [43] call print_str
  to:mul16u_compare::@2
mul16u_compare::@2: scope:[mul16u_compare]  from mul16u_compare::@1 mul16u_compare::@5
  [44] mul16u_compare::j#10 = phi( mul16u_compare::@1/0, mul16u_compare::@5/mul16u_compare::j#1 )
  [44] mul16u_compare::b#2 = phi( mul16u_compare::@1/mul16u_compare::b#6, mul16u_compare::@5/mul16u_compare::b#1 )
  [44] mul16u_compare::a#2 = phi( mul16u_compare::@1/mul16u_compare::a#6, mul16u_compare::@5/mul16u_compare::a#1 )
  [45] mul16u_compare::a#1 = mul16u_compare::a#2 + $d2b
  [46] mul16u_compare::b#1 = mul16u_compare::b#2 + $ffd
  [47] muls16u::a#0 = mul16u_compare::a#1
  [48] muls16u::b#0 = mul16u_compare::b#1
  [49] call muls16u
  [50] muls16u::return#2 = muls16u::return#0
  to:mul16u_compare::@10
mul16u_compare::@10: scope:[mul16u_compare]  from mul16u_compare::@2
  [51] mul16u_compare::ms#0 = muls16u::return#2
  [52] mul16u::a#2 = mul16u_compare::a#1
  [53] mul16u::b#1 = mul16u_compare::b#1
  [54] call mul16u
  [55] mul16u::return#3 = mul16u::res#2
  to:mul16u_compare::@11
mul16u_compare::@11: scope:[mul16u_compare]  from mul16u_compare::@10
  [56] mul16u_compare::mn#0 = mul16u::return#3
  [57] mulf16u::a#1 = mul16u_compare::a#1
  [58] mulf16u::b#1 = mul16u_compare::b#1
  [59] call mulf16u
  [60] mulf16u::return#3 = mulf16u::return#0
  to:mul16u_compare::@12
mul16u_compare::@12: scope:[mul16u_compare]  from mul16u_compare::@11
  [61] mul16u_compare::mf#0 = mulf16u::return#3
  [62] if(mul16u_compare::ms#0==mul16u_compare::mf#0) goto mul16u_compare::@3
  to:mul16u_compare::@6
mul16u_compare::@6: scope:[mul16u_compare]  from mul16u_compare::@12
  [63] phi()
  to:mul16u_compare::@3
mul16u_compare::@3: scope:[mul16u_compare]  from mul16u_compare::@12 mul16u_compare::@6
  [64] mul16u_compare::ok#4 = phi( mul16u_compare::@12/1, mul16u_compare::@6/0 )
  [65] if(mul16u_compare::ms#0==mul16u_compare::mn#0) goto mul16u_compare::@15
  to:mul16u_compare::@4
mul16u_compare::@15: scope:[mul16u_compare]  from mul16u_compare::@3
  [66] phi()
  to:mul16u_compare::@4
mul16u_compare::@4: scope:[mul16u_compare]  from mul16u_compare::@15 mul16u_compare::@3
  [67] mul16u_compare::ok#3 = phi( mul16u_compare::@15/mul16u_compare::ok#4, mul16u_compare::@3/0 )
  [68] if(mul16u_compare::ok#3!=0) goto mul16u_compare::@5
  to:mul16u_compare::@7
mul16u_compare::@7: scope:[mul16u_compare]  from mul16u_compare::@4
  [69] *BG_COLOR = 2
  [70] mul16u_error::a#0 = mul16u_compare::a#1
  [71] mul16u_error::b#0 = mul16u_compare::b#1
  [72] mul16u_error::ms#0 = mul16u_compare::ms#0
  [73] mul16u_error::mn#0 = mul16u_compare::mn#0
  [74] mul16u_error::mf#0 = mul16u_compare::mf#0
  [75] call mul16u_error
  to:mul16u_compare::@return
mul16u_compare::@return: scope:[mul16u_compare]  from mul16u_compare::@14 mul16u_compare::@7
  [76] return 
  to:@return
mul16u_compare::@5: scope:[mul16u_compare]  from mul16u_compare::@4
  [77] mul16u_compare::j#1 = ++ mul16u_compare::j#10
  [78] if(mul16u_compare::j#1!=$10) goto mul16u_compare::@2
  to:mul16u_compare::@8
mul16u_compare::@8: scope:[mul16u_compare]  from mul16u_compare::@5
  [79] mul16u_compare::i#1 = ++ mul16u_compare::i#12
  [80] if(mul16u_compare::i#1!=$10) goto mul16u_compare::@1
  to:mul16u_compare::@9
mul16u_compare::@9: scope:[mul16u_compare]  from mul16u_compare::@8
  [81] phi()
  [82] call print_ln
  to:mul16u_compare::@13
mul16u_compare::@13: scope:[mul16u_compare]  from mul16u_compare::@9
  [83] print_char_cursor#190 = print_line_cursor#0
  [84] call print_str
  to:mul16u_compare::@14
mul16u_compare::@14: scope:[mul16u_compare]  from mul16u_compare::@13
  [85] phi()
  [86] call print_ln
  to:mul16u_compare::@return

void mul16s_compare()
mul16s_compare: scope:[mul16s_compare]  from main::@3
  [87] print_char_cursor#223 = print_line_cursor#0
  to:mul16s_compare::@1
mul16s_compare::@1: scope:[mul16s_compare]  from mul16s_compare mul16s_compare::@8
  [88] mul16s_compare::i#12 = phi( mul16s_compare/0, mul16s_compare::@8/mul16s_compare::i#1 )
  [88] mul16s_compare::b#6 = phi( mul16s_compare/-$7fff, mul16s_compare::@8/mul16s_compare::b#1 )
  [88] mul16s_compare::a#6 = phi( mul16s_compare/-$7fff, mul16s_compare::@8/mul16s_compare::a#1 )
  [88] print_char_cursor#152 = phi( mul16s_compare/print_char_cursor#223, mul16s_compare::@8/print_char_cursor#1 )
  [89] call print_str
  to:mul16s_compare::@2
mul16s_compare::@2: scope:[mul16s_compare]  from mul16s_compare::@1 mul16s_compare::@5
  [90] mul16s_compare::j#10 = phi( mul16s_compare::@1/0, mul16s_compare::@5/mul16s_compare::j#1 )
  [90] mul16s_compare::b#2 = phi( mul16s_compare::@1/mul16s_compare::b#6, mul16s_compare::@5/mul16s_compare::b#1 )
  [90] mul16s_compare::a#2 = phi( mul16s_compare::@1/mul16s_compare::a#6, mul16s_compare::@5/mul16s_compare::a#1 )
  [91] mul16s_compare::a#1 = mul16s_compare::a#2 + $d2b
  [92] mul16s_compare::b#1 = mul16s_compare::b#2 + $ffd
  [93] muls16s::a#0 = mul16s_compare::a#1
  [94] muls16s::b#0 = mul16s_compare::b#1
  [95] call muls16s
  [96] muls16s::return#2 = muls16s::return#0
  to:mul16s_compare::@10
mul16s_compare::@10: scope:[mul16s_compare]  from mul16s_compare::@2
  [97] mul16s_compare::ms#0 = muls16s::return#2
  [98] mul16s::a#0 = mul16s_compare::a#1
  [99] mul16s::b#0 = mul16s_compare::b#1
  [100] call mul16s
  [101] mul16s::return#2 = mul16s::return#0
  to:mul16s_compare::@11
mul16s_compare::@11: scope:[mul16s_compare]  from mul16s_compare::@10
  [102] mul16s_compare::mn#0 = mul16s::return#2
  [103] mulf16s::a#0 = mul16s_compare::a#1
  [104] mulf16s::b#0 = mul16s_compare::b#1
  [105] call mulf16s
  [106] mulf16s::return#2 = mulf16s::return#0
  to:mul16s_compare::@12
mul16s_compare::@12: scope:[mul16s_compare]  from mul16s_compare::@11
  [107] mul16s_compare::mf#0 = mulf16s::return#2
  [108] if(mul16s_compare::ms#0==mul16s_compare::mf#0) goto mul16s_compare::@3
  to:mul16s_compare::@6
mul16s_compare::@6: scope:[mul16s_compare]  from mul16s_compare::@12
  [109] phi()
  to:mul16s_compare::@3
mul16s_compare::@3: scope:[mul16s_compare]  from mul16s_compare::@12 mul16s_compare::@6
  [110] mul16s_compare::ok#4 = phi( mul16s_compare::@12/1, mul16s_compare::@6/0 )
  [111] if(mul16s_compare::ms#0==mul16s_compare::mn#0) goto mul16s_compare::@15
  to:mul16s_compare::@4
mul16s_compare::@15: scope:[mul16s_compare]  from mul16s_compare::@3
  [112] phi()
  to:mul16s_compare::@4
mul16s_compare::@4: scope:[mul16s_compare]  from mul16s_compare::@15 mul16s_compare::@3
  [113] mul16s_compare::ok#3 = phi( mul16s_compare::@15/mul16s_compare::ok#4, mul16s_compare::@3/0 )
  [114] if(mul16s_compare::ok#3!=0) goto mul16s_compare::@5
  to:mul16s_compare::@7
mul16s_compare::@7: scope:[mul16s_compare]  from mul16s_compare::@4
  [115] *BG_COLOR = 2
  [116] mul16s_error::a#0 = mul16s_compare::a#1
  [117] mul16s_error::b#0 = mul16s_compare::b#1
  [118] mul16s_error::ms#0 = mul16s_compare::ms#0
  [119] mul16s_error::mn#0 = mul16s_compare::mn#0
  [120] mul16s_error::mf#0 = mul16s_compare::mf#0
  [121] call mul16s_error
  to:mul16s_compare::@return
mul16s_compare::@return: scope:[mul16s_compare]  from mul16s_compare::@14 mul16s_compare::@7
  [122] return 
  to:@return
mul16s_compare::@5: scope:[mul16s_compare]  from mul16s_compare::@4
  [123] mul16s_compare::j#1 = ++ mul16s_compare::j#10
  [124] if(mul16s_compare::j#1!=$10) goto mul16s_compare::@2
  to:mul16s_compare::@8
mul16s_compare::@8: scope:[mul16s_compare]  from mul16s_compare::@5
  [125] mul16s_compare::i#1 = ++ mul16s_compare::i#12
  [126] if(mul16s_compare::i#1!=$10) goto mul16s_compare::@1
  to:mul16s_compare::@9
mul16s_compare::@9: scope:[mul16s_compare]  from mul16s_compare::@8
  [127] phi()
  [128] call print_ln
  to:mul16s_compare::@13
mul16s_compare::@13: scope:[mul16s_compare]  from mul16s_compare::@9
  [129] print_char_cursor#183 = print_line_cursor#0
  [130] call print_str
  to:mul16s_compare::@14
mul16s_compare::@14: scope:[mul16s_compare]  from mul16s_compare::@13
  [131] phi()
  [132] call print_ln
  to:mul16s_compare::@return

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from print_cls
  [133] phi()
  to:memset::@1
memset::@1: scope:[memset]  from memset memset::@2
  [134] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 )
  [135] if(memset::dst#2!=memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [136] return 
  to:@return
memset::@2: scope:[memset]  from memset::@1
  [137] *memset::dst#2 = memset::c#0
  [138] memset::dst#1 = ++ memset::dst#2
  to:memset::@1

void print_str(char *str)
print_str: scope:[print_str]  from mul16s_compare::@1 mul16s_compare::@13 mul16s_error mul16s_error::@2 mul16s_error::@4 mul16s_error::@6 mul16s_error::@8 mul16u_compare::@1 mul16u_compare::@13 mul16u_error mul16u_error::@2 mul16u_error::@4 mul16u_error::@6 mul16u_error::@8
  [139] print_char_cursor#157 = phi( mul16s_compare::@1/print_char_cursor#152, mul16s_compare::@13/print_char_cursor#183, mul16s_error/print_char_cursor#1, mul16s_error::@2/print_char_cursor#21, mul16s_error::@4/print_char_cursor#21, mul16s_error::@6/print_char_cursor#21, mul16s_error::@8/print_char_cursor#21, mul16u_compare::@1/print_char_cursor#148, mul16u_compare::@13/print_char_cursor#190, mul16u_error/print_char_cursor#1, mul16u_error::@2/print_char_cursor#21, mul16u_error::@4/print_char_cursor#21, mul16u_error::@6/print_char_cursor#21, mul16u_error::@8/print_char_cursor#21 )
  [139] print_str::str#18 = phi( mul16s_compare::@1/str, mul16s_compare::@13/mul16s_compare::str1, mul16s_error/mul16s_error::str, mul16s_error::@2/str1, mul16s_error::@4/str2, mul16s_error::@6/str3, mul16s_error::@8/str4, mul16u_compare::@1/str, mul16u_compare::@13/mul16u_compare::str1, mul16u_error/mul16u_error::str, mul16u_error::@2/str1, mul16u_error::@4/str2, mul16u_error::@6/str3, mul16u_error::@8/str4 )
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@3
  [140] print_char_cursor#1 = phi( print_str/print_char_cursor#157, print_str::@3/print_char_cursor#21 )
  [140] print_str::str#15 = phi( print_str/print_str::str#18, print_str::@3/print_str::str#0 )
  [141] if(0!=*print_str::str#15) goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [142] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [143] print_char::ch#0 = *print_str::str#15
  [144] call print_char
  to:print_str::@3
print_str::@3: scope:[print_str]  from print_str::@2
  [145] print_str::str#0 = ++ print_str::str#15
  to:print_str::@1

unsigned long muls16u(unsigned int a , unsigned int b)
muls16u: scope:[muls16u]  from mul16u_compare::@2
  [146] if(muls16u::a#0==0) goto muls16u::@1
  to:muls16u::@2
muls16u::@2: scope:[muls16u]  from muls16u muls16u::@3
  [147] muls16u::m#3 = phi( muls16u/0, muls16u::@3/muls16u::m#1 )
  [147] muls16u::i#2 = phi( muls16u/0, muls16u::@3/muls16u::i#1 )
  [148] if(muls16u::i#2!=muls16u::a#0) goto muls16u::@3
  to:muls16u::@1
muls16u::@1: scope:[muls16u]  from muls16u muls16u::@2
  [149] muls16u::return#0 = phi( muls16u/0, muls16u::@2/muls16u::m#3 )
  to:muls16u::@return
muls16u::@return: scope:[muls16u]  from muls16u::@1
  [150] return 
  to:@return
muls16u::@3: scope:[muls16u]  from muls16u::@2
  [151] muls16u::m#1 = muls16u::m#3 + muls16u::b#0
  [152] muls16u::i#1 = ++ muls16u::i#2
  to:muls16u::@2

unsigned long mul16u(unsigned int a , unsigned int b)
mul16u: scope:[mul16u]  from mul16s mul16u_compare::@10
  [153] mul16u::a#6 = phi( mul16s/mul16u::a#1, mul16u_compare::@10/mul16u::a#2 )
  [153] mul16u::b#2 = phi( mul16s/mul16u::b#0, mul16u_compare::@10/mul16u::b#1 )
  [154] mul16u::mb#0 = (unsigned long)mul16u::b#2
  to:mul16u::@1
mul16u::@1: scope:[mul16u]  from mul16u mul16u::@3
  [155] mul16u::mb#2 = phi( mul16u/mul16u::mb#0, mul16u::@3/mul16u::mb#1 )
  [155] mul16u::res#2 = phi( mul16u/0, mul16u::@3/mul16u::res#6 )
  [155] mul16u::a#3 = phi( mul16u/mul16u::a#6, mul16u::@3/mul16u::a#0 )
  [156] if(mul16u::a#3!=0) goto mul16u::@2
  to:mul16u::@return
mul16u::@return: scope:[mul16u]  from mul16u::@1
  [157] return 
  to:@return
mul16u::@2: scope:[mul16u]  from mul16u::@1
  [158] mul16u::$1 = mul16u::a#3 & 1
  [159] if(mul16u::$1==0) goto mul16u::@3
  to:mul16u::@4
mul16u::@4: scope:[mul16u]  from mul16u::@2
  [160] mul16u::res#1 = mul16u::res#2 + mul16u::mb#2
  to:mul16u::@3
mul16u::@3: scope:[mul16u]  from mul16u::@2 mul16u::@4
  [161] mul16u::res#6 = phi( mul16u::@2/mul16u::res#2, mul16u::@4/mul16u::res#1 )
  [162] mul16u::a#0 = mul16u::a#3 >> 1
  [163] mul16u::mb#1 = mul16u::mb#2 << 1
  to:mul16u::@1

unsigned long mulf16u(unsigned int a , unsigned int b)
mulf16u: scope:[mulf16u]  from mul16u_compare::@11 mulf16s
  [164] mulf16u::b#2 = phi( mul16u_compare::@11/mulf16u::b#1, mulf16s/mulf16u::b#0 )
  [164] mulf16u::a#2 = phi( mul16u_compare::@11/mulf16u::a#1, mulf16s/mulf16u::a#0 )
  [165] *mulf16u::memA = mulf16u::a#2
  [166] *mulf16u::memB = mulf16u::b#2
  asm { ldamemA stasm1a+1 stasm3a+1 stasm5a+1 stasm7a+1 eor#$ff stasm2a+1 stasm4a+1 stasm6a+1 stasm8a+1 ldamemA+1 stasm1b+1 stasm3b+1 stasm5b+1 stasm7b+1 eor#$ff stasm2b+1 stasm4b+1 stasm6b+1 stasm8b+1 ldxmemB sec sm1a: ldamulf_sqr1_lo,x sm2a: sbcmulf_sqr2_lo,x stamemR+0 sm3a: ldamulf_sqr1_hi,x sm4a: sbcmulf_sqr2_hi,x sta_AA+1 sec sm1b: ldamulf_sqr1_lo,x sm2b: sbcmulf_sqr2_lo,x sta_cc+1 sm3b: ldamulf_sqr1_hi,x sm4b: sbcmulf_sqr2_hi,x sta_CC+1 ldxmemB+1 sec sm5a: ldamulf_sqr1_lo,x sm6a: sbcmulf_sqr2_lo,x sta_bb+1 sm7a: ldamulf_sqr1_hi,x sm8a: sbcmulf_sqr2_hi,x sta_BB+1 sec sm5b: ldamulf_sqr1_lo,x sm6b: sbcmulf_sqr2_lo,x sta_dd+1 sm7b: ldamulf_sqr1_hi,x sm8b: sbcmulf_sqr2_hi,x stamemR+3 clc _AA: lda#0 _bb: adc#0 stamemR+1 _BB: lda#0 _CC: adc#0 stamemR+2 bcc!+ incmemR+3 clc !: _cc: lda#0 adcmemR+1 stamemR+1 _dd: lda#0 adcmemR+2 stamemR+2 bcc!+ incmemR+3 !:  }
  [168] mulf16u::return#0 = *mulf16u::memR
  to:mulf16u::@return
mulf16u::@return: scope:[mulf16u]  from mulf16u
  [169] return 
  to:@return

void mul16u_error(unsigned int a , unsigned int b , unsigned long ms , unsigned long mn , unsigned long mf)
mul16u_error: scope:[mul16u_error]  from mul16u_compare::@7
  [170] phi()
  [171] call print_str
  to:mul16u_error::@1
mul16u_error::@1: scope:[mul16u_error]  from mul16u_error
  [172] print_uint::w#3 = mul16u_error::a#0
  [173] call print_uint
  to:mul16u_error::@2
mul16u_error::@2: scope:[mul16u_error]  from mul16u_error::@1
  [174] phi()
  [175] call print_str
  to:mul16u_error::@3
mul16u_error::@3: scope:[mul16u_error]  from mul16u_error::@2
  [176] print_uint::w#4 = mul16u_error::b#0
  [177] call print_uint
  to:mul16u_error::@4
mul16u_error::@4: scope:[mul16u_error]  from mul16u_error::@3
  [178] phi()
  [179] call print_str
  to:mul16u_error::@5
mul16u_error::@5: scope:[mul16u_error]  from mul16u_error::@4
  [180] print_ulong::dw#1 = mul16u_error::ms#0
  [181] call print_ulong
  to:mul16u_error::@6
mul16u_error::@6: scope:[mul16u_error]  from mul16u_error::@5
  [182] phi()
  [183] call print_str
  to:mul16u_error::@7
mul16u_error::@7: scope:[mul16u_error]  from mul16u_error::@6
  [184] print_ulong::dw#2 = mul16u_error::mn#0
  [185] call print_ulong
  to:mul16u_error::@8
mul16u_error::@8: scope:[mul16u_error]  from mul16u_error::@7
  [186] phi()
  [187] call print_str
  to:mul16u_error::@9
mul16u_error::@9: scope:[mul16u_error]  from mul16u_error::@8
  [188] print_ulong::dw#3 = mul16u_error::mf#0
  [189] call print_ulong
  to:mul16u_error::@10
mul16u_error::@10: scope:[mul16u_error]  from mul16u_error::@9
  [190] phi()
  [191] call print_ln
  to:mul16u_error::@return
mul16u_error::@return: scope:[mul16u_error]  from mul16u_error::@10
  [192] return 
  to:@return

void print_ln()
print_ln: scope:[print_ln]  from mul16s_compare::@14 mul16s_compare::@9 mul16s_error::@10 mul16u_compare::@14 mul16u_compare::@9 mul16u_error::@10
  [193] print_char_cursor#136 = phi( mul16s_compare::@9/print_char_cursor#1, mul16s_compare::@14/print_char_cursor#1, mul16s_error::@10/print_char_cursor#21, mul16u_compare::@9/print_char_cursor#1, mul16u_compare::@14/print_char_cursor#1, mul16u_error::@10/print_char_cursor#21 )
  [193] print_line_cursor#45 = phi( mul16s_compare::@9/print_line_cursor#0, mul16s_compare::@14/print_line_cursor#0, mul16s_error::@10/print_line_cursor#0, mul16u_compare::@9/print_screen#0, mul16u_compare::@14/print_line_cursor#0, mul16u_error::@10/print_screen#0 )
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [194] print_line_cursor#23 = phi( print_ln/print_line_cursor#45, print_ln::@1/print_line_cursor#0 )
  [195] print_line_cursor#0 = print_line_cursor#23 + $28
  [196] if(print_line_cursor#0<print_char_cursor#136) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [197] return 
  to:@return

long muls16s(int a , int b)
muls16s: scope:[muls16s]  from mul16s_compare::@2
  [198] if(muls16s::a#0<0) goto muls16s::@5
  to:muls16s::@2
muls16s::@2: scope:[muls16s]  from muls16s
  [199] if(muls16s::a#0<=0) goto muls16s::@1
  to:muls16s::@3
muls16s::@3: scope:[muls16s]  from muls16s::@2 muls16s::@4
  [200] muls16s::m#3 = phi( muls16s::@2/0, muls16s::@4/muls16s::m#1 )
  [200] muls16s::j#2 = phi( muls16s::@2/0, muls16s::@4/muls16s::j#1 )
  [201] if(muls16s::j#2!=muls16s::a#0) goto muls16s::@4
  to:muls16s::@1
muls16s::@1: scope:[muls16s]  from muls16s::@2 muls16s::@3 muls16s::@5
  [202] muls16s::return#0 = phi( muls16s::@2/0, muls16s::@3/muls16s::m#3, muls16s::@5/muls16s::m#5 )
  to:muls16s::@return
muls16s::@return: scope:[muls16s]  from muls16s::@1
  [203] return 
  to:@return
muls16s::@4: scope:[muls16s]  from muls16s::@3
  [204] muls16s::m#1 = muls16s::m#3 + muls16s::b#0
  [205] muls16s::j#1 = ++ muls16s::j#2
  to:muls16s::@3
muls16s::@5: scope:[muls16s]  from muls16s muls16s::@6
  [206] muls16s::m#5 = phi( muls16s/0, muls16s::@6/muls16s::m#2 )
  [206] muls16s::i#2 = phi( muls16s/0, muls16s::@6/muls16s::i#1 )
  [207] if(muls16s::i#2!=muls16s::a#0) goto muls16s::@6
  to:muls16s::@1
muls16s::@6: scope:[muls16s]  from muls16s::@5
  [208] muls16s::m#2 = muls16s::m#5 - muls16s::b#0
  [209] muls16s::i#1 = -- muls16s::i#2
  to:muls16s::@5

long mul16s(int a , int b)
mul16s: scope:[mul16s]  from mul16s_compare::@10
  [210] mul16u::a#1 = (unsigned int)mul16s::a#0
  [211] mul16u::b#0 = (unsigned int)mul16s::b#0
  [212] call mul16u
  [213] mul16u::return#2 = mul16u::res#2
  to:mul16s::@5
mul16s::@5: scope:[mul16s]  from mul16s
  [214] mul16s::m#0 = mul16u::return#2
  [215] if(mul16s::a#0>=0) goto mul16s::@1
  to:mul16s::@3
mul16s::@3: scope:[mul16s]  from mul16s::@5
  [216] mul16s::$6 = word1  mul16s::m#0
  [217] mul16s::$11 = mul16s::$6 - (unsigned int)mul16s::b#0
  [218] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11
  to:mul16s::@1
mul16s::@1: scope:[mul16s]  from mul16s::@3 mul16s::@5
  [219] mul16s::m#5 = phi( mul16s::@3/mul16s::m#1, mul16s::@5/mul16s::m#0 )
  [220] if(mul16s::b#0>=0) goto mul16s::@2
  to:mul16s::@4
mul16s::@4: scope:[mul16s]  from mul16s::@1
  [221] mul16s::$9 = word1  mul16s::m#5
  [222] mul16s::$12 = mul16s::$9 - (unsigned int)mul16s::a#0
  [223] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12
  to:mul16s::@2
mul16s::@2: scope:[mul16s]  from mul16s::@1 mul16s::@4
  [224] mul16s::m#4 = phi( mul16s::@1/mul16s::m#5, mul16s::@4/mul16s::m#2 )
  [225] mul16s::return#0 = (long)mul16s::m#4
  to:mul16s::@return
mul16s::@return: scope:[mul16s]  from mul16s::@2
  [226] return 
  to:@return

long mulf16s(int a , int b)
mulf16s: scope:[mulf16s]  from mul16s_compare::@11
  [227] mulf16u::a#0 = (unsigned int)mulf16s::a#0
  [228] mulf16u::b#0 = (unsigned int)mulf16s::b#0
  [229] call mulf16u
  [230] mulf16u::return#2 = mulf16u::return#0
  to:mulf16s::@5
mulf16s::@5: scope:[mulf16s]  from mulf16s
  [231] mulf16s::m#0 = mulf16u::return#2
  [232] if(mulf16s::a#0>=0) goto mulf16s::@1
  to:mulf16s::@3
mulf16s::@3: scope:[mulf16s]  from mulf16s::@5
  [233] mulf16s::$6 = word1  mulf16s::m#0
  [234] mulf16s::$11 = mulf16s::$6 - (unsigned int)mulf16s::b#0
  [235] mulf16s::m#1 = mulf16s::m#0 word1= mulf16s::$11
  to:mulf16s::@1
mulf16s::@1: scope:[mulf16s]  from mulf16s::@3 mulf16s::@5
  [236] mulf16s::m#5 = phi( mulf16s::@3/mulf16s::m#1, mulf16s::@5/mulf16s::m#0 )
  [237] if(mulf16s::b#0>=0) goto mulf16s::@2
  to:mulf16s::@4
mulf16s::@4: scope:[mulf16s]  from mulf16s::@1
  [238] mulf16s::$9 = word1  mulf16s::m#5
  [239] mulf16s::$12 = mulf16s::$9 - (unsigned int)mulf16s::a#0
  [240] mulf16s::m#2 = mulf16s::m#5 word1= mulf16s::$12
  to:mulf16s::@2
mulf16s::@2: scope:[mulf16s]  from mulf16s::@1 mulf16s::@4
  [241] mulf16s::m#4 = phi( mulf16s::@1/mulf16s::m#5, mulf16s::@4/mulf16s::m#2 )
  [242] mulf16s::return#0 = (long)mulf16s::m#4
  to:mulf16s::@return
mulf16s::@return: scope:[mulf16s]  from mulf16s::@2
  [243] return 
  to:@return

void mul16s_error(int a , int b , long ms , long mn , long mf)
mul16s_error: scope:[mul16s_error]  from mul16s_compare::@7
  [244] phi()
  [245] call print_str
  to:mul16s_error::@1
mul16s_error::@1: scope:[mul16s_error]  from mul16s_error
  [246] print_sint::w#1 = mul16s_error::a#0
  [247] call print_sint
  to:mul16s_error::@2
mul16s_error::@2: scope:[mul16s_error]  from mul16s_error::@1
  [248] phi()
  [249] call print_str
  to:mul16s_error::@3
mul16s_error::@3: scope:[mul16s_error]  from mul16s_error::@2
  [250] print_sint::w#2 = mul16s_error::b#0
  [251] call print_sint
  to:mul16s_error::@4
mul16s_error::@4: scope:[mul16s_error]  from mul16s_error::@3
  [252] phi()
  [253] call print_str
  to:mul16s_error::@5
mul16s_error::@5: scope:[mul16s_error]  from mul16s_error::@4
  [254] print_slong::dw#1 = mul16s_error::ms#0
  [255] call print_slong
  to:mul16s_error::@6
mul16s_error::@6: scope:[mul16s_error]  from mul16s_error::@5
  [256] phi()
  [257] call print_str
  to:mul16s_error::@7
mul16s_error::@7: scope:[mul16s_error]  from mul16s_error::@6
  [258] print_slong::dw#2 = mul16s_error::mn#0
  [259] call print_slong
  to:mul16s_error::@8
mul16s_error::@8: scope:[mul16s_error]  from mul16s_error::@7
  [260] phi()
  [261] call print_str
  to:mul16s_error::@9
mul16s_error::@9: scope:[mul16s_error]  from mul16s_error::@8
  [262] print_slong::dw#3 = mul16s_error::mf#0
  [263] call print_slong
  to:mul16s_error::@10
mul16s_error::@10: scope:[mul16s_error]  from mul16s_error::@9
  [264] phi()
  [265] call print_ln
  to:mul16s_error::@return
mul16s_error::@return: scope:[mul16s_error]  from mul16s_error::@10
  [266] return 
  to:@return

void print_char(char ch)
print_char: scope:[print_char]  from print_sint::@1 print_sint::@3 print_slong::@1 print_slong::@3 print_str::@2 print_uchar print_uchar::@1
  [267] print_char_cursor#89 = phi( print_sint::@1/print_char_cursor#1, print_sint::@3/print_char_cursor#1, print_slong::@1/print_char_cursor#1, print_slong::@3/print_char_cursor#1, print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#145, print_uchar::@1/print_char_cursor#21 )
  [267] print_char::ch#7 = phi( print_sint::@1/'-', print_sint::@3/' ', print_slong::@1/'-', print_slong::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#5, print_uchar::@1/print_char::ch#6 )
  [268] *print_char_cursor#89 = print_char::ch#7
  [269] print_char_cursor#21 = ++ print_char_cursor#89
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [270] return 
  to:@return

void print_uint(unsigned int w)
print_uint: scope:[print_uint]  from mul16u_error::@1 mul16u_error::@3 print_sint::@2 print_ulong print_ulong::@1
  [271] print_char_cursor#140 = phi( mul16u_error::@1/print_char_cursor#1, mul16u_error::@3/print_char_cursor#1, print_sint::@2/print_char_cursor#21, print_ulong/print_char_cursor#141, print_ulong::@1/print_char_cursor#21 )
  [271] print_uint::w#5 = phi( mul16u_error::@1/print_uint::w#3, mul16u_error::@3/print_uint::w#4, print_sint::@2/print_uint::w#0, print_ulong/print_uint::w#1, print_ulong::@1/print_uint::w#2 )
  [272] print_uchar::b#0 = byte1  print_uint::w#5
  [273] call print_uchar
  to:print_uint::@1
print_uint::@1: scope:[print_uint]  from print_uint
  [274] print_uchar::b#1 = byte0  print_uint::w#5
  [275] call print_uchar
  to:print_uint::@return
print_uint::@return: scope:[print_uint]  from print_uint::@1
  [276] return 
  to:@return

void print_ulong(unsigned long dw)
print_ulong: scope:[print_ulong]  from mul16u_error::@5 mul16u_error::@7 mul16u_error::@9 print_slong::@2
  [277] print_char_cursor#141 = phi( mul16u_error::@5/print_char_cursor#1, mul16u_error::@7/print_char_cursor#1, mul16u_error::@9/print_char_cursor#1, print_slong::@2/print_char_cursor#21 )
  [277] print_ulong::dw#4 = phi( mul16u_error::@5/print_ulong::dw#1, mul16u_error::@7/print_ulong::dw#2, mul16u_error::@9/print_ulong::dw#3, print_slong::@2/print_ulong::dw#0 )
  [278] print_uint::w#1 = word1  print_ulong::dw#4
  [279] call print_uint
  to:print_ulong::@1
print_ulong::@1: scope:[print_ulong]  from print_ulong
  [280] print_uint::w#2 = word0  print_ulong::dw#4
  [281] call print_uint
  to:print_ulong::@return
print_ulong::@return: scope:[print_ulong]  from print_ulong::@1
  [282] return 
  to:@return

void print_sint(int w)
print_sint: scope:[print_sint]  from mul16s_error::@1 mul16s_error::@3
  [283] print_sint::w#3 = phi( mul16s_error::@1/print_sint::w#1, mul16s_error::@3/print_sint::w#2 )
  [284] if(print_sint::w#3<0) goto print_sint::@1
  to:print_sint::@3
print_sint::@3: scope:[print_sint]  from print_sint
  [285] phi()
  [286] call print_char
  to:print_sint::@2
print_sint::@2: scope:[print_sint]  from print_sint::@3 print_sint::@4
  [287] print_sint::w#5 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#3 )
  [288] print_uint::w#0 = (unsigned int)print_sint::w#5
  [289] call print_uint
  to:print_sint::@return
print_sint::@return: scope:[print_sint]  from print_sint::@2
  [290] return 
  to:@return
print_sint::@1: scope:[print_sint]  from print_sint
  [291] phi()
  [292] call print_char
  to:print_sint::@4
print_sint::@4: scope:[print_sint]  from print_sint::@1
  [293] print_sint::w#0 = - print_sint::w#3
  to:print_sint::@2

void print_slong(long dw)
print_slong: scope:[print_slong]  from mul16s_error::@5 mul16s_error::@7 mul16s_error::@9
  [294] print_slong::dw#4 = phi( mul16s_error::@5/print_slong::dw#1, mul16s_error::@7/print_slong::dw#2, mul16s_error::@9/print_slong::dw#3 )
  [295] if(print_slong::dw#4<0) goto print_slong::@1
  to:print_slong::@3
print_slong::@3: scope:[print_slong]  from print_slong
  [296] phi()
  [297] call print_char
  to:print_slong::@2
print_slong::@2: scope:[print_slong]  from print_slong::@3 print_slong::@4
  [298] print_slong::dw#6 = phi( print_slong::@4/print_slong::dw#0, print_slong::@3/print_slong::dw#4 )
  [299] print_ulong::dw#0 = (unsigned long)print_slong::dw#6
  [300] call print_ulong
  to:print_slong::@return
print_slong::@return: scope:[print_slong]  from print_slong::@2
  [301] return 
  to:@return
print_slong::@1: scope:[print_slong]  from print_slong
  [302] phi()
  [303] call print_char
  to:print_slong::@4
print_slong::@4: scope:[print_slong]  from print_slong::@1
  [304] print_slong::dw#0 = - print_slong::dw#4
  to:print_slong::@2

void print_uchar(char b)
print_uchar: scope:[print_uchar]  from print_uint print_uint::@1
  [305] print_char_cursor#145 = phi( print_uint/print_char_cursor#140, print_uint::@1/print_char_cursor#21 )
  [305] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
  [306] print_uchar::$0 = print_uchar::b#2 >> 4
  [307] print_char::ch#5 = print_hextab[print_uchar::$0]
  [308] call print_char
  to:print_uchar::@1
print_uchar::@1: scope:[print_uchar]  from print_uchar
  [309] print_uchar::$2 = print_uchar::b#2 & $f
  [310] print_char::ch#6 = print_hextab[print_uchar::$2]
  [311] call print_char
  to:print_uchar::@return
print_uchar::@return: scope:[print_uchar]  from print_uchar::@1
  [312] return 
  to:@return
