@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()

(void()) main()
main: scope:[main]  from @1
  [4] phi()
  [5] call print_cls 
  to:main::@1
main::@1: scope:[main]  from main
  [6] phi()
  [7] call print_str 
  to:main::@2
main::@2: scope:[main]  from main::@1
  [8] phi()
  [9] call print_ln 
  to:main::@3
main::@3: scope:[main]  from main::@2
  [10] phi()
  [11] call print_mulf8u127 
  to:main::@4
main::@4: scope:[main]  from main::@3
  [12] phi()
  [13] call print_mulf8u127 
  to:main::@5
main::@5: scope:[main]  from main::@4
  [14] phi()
  [15] call print_mulf8u127 
  to:main::@6
main::@6: scope:[main]  from main::@5
  [16] phi()
  [17] call print_mulf8u127 
  to:main::@7
main::@7: scope:[main]  from main::@6
  [18] phi()
  [19] call print_mulf8u127 
  to:main::@8
main::@8: scope:[main]  from main::@7
  [20] phi()
  [21] call print_mulf8u127 
  to:main::@9
main::@9: scope:[main]  from main::@8
  [22] phi()
  [23] call print_mulf8u127 
  to:main::@10
main::@10: scope:[main]  from main::@9
  [24] phi()
  [25] call print_mulf8u127 
  to:main::@11
main::@11: scope:[main]  from main::@10
  [26] (byte*) print_char_cursor#141 ← (byte*) print_line_cursor#1
  [27] call print_str 
  to:main::@12
main::@12: scope:[main]  from main::@11
  [28] phi()
  [29] call print_ln 
  to:main::@13
main::@13: scope:[main]  from main::@12
  [30] phi()
  [31] call print_mulf8s127 
  to:main::@14
main::@14: scope:[main]  from main::@13
  [32] phi()
  [33] call print_mulf8s127 
  to:main::@15
main::@15: scope:[main]  from main::@14
  [34] phi()
  [35] call print_mulf8s127 
  to:main::@16
main::@16: scope:[main]  from main::@15
  [36] phi()
  [37] call print_mulf8s127 
  to:main::@17
main::@17: scope:[main]  from main::@16
  [38] phi()
  [39] call print_mulf8s127 
  to:main::@18
main::@18: scope:[main]  from main::@17
  [40] phi()
  [41] call print_mulf8s127 
  to:main::@19
main::@19: scope:[main]  from main::@18
  [42] phi()
  [43] call print_mulf8s127 
  to:main::@20
main::@20: scope:[main]  from main::@19
  [44] phi()
  [45] call print_mulf8s127 
  to:main::@21
main::@21: scope:[main]  from main::@20
  [46] phi()
  [47] call print_mulf8s127 
  to:main::@22
main::@22: scope:[main]  from main::@21
  [48] phi()
  [49] call print_mulf8s127 
  to:main::@return
main::@return: scope:[main]  from main::@22
  [50] return 
  to:@return

(void()) print_mulf8s127((signed byte) print_mulf8s127::a , (signed byte) print_mulf8s127::b)
print_mulf8s127: scope:[print_mulf8s127]  from main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@22
  [51] (signed byte) print_mulf8s127::b#10 ← phi( main::@13/(signed byte) 0 main::@14/(signed byte) $40 main::@15/(signed byte) $7f main::@16/(signed byte) $40 main::@17/(signed byte) -$40 main::@18/(signed byte) -$40 main::@19/(signed byte) $7f main::@20/(signed byte) $7f main::@21/(signed byte) -$7f main::@22/(signed byte) -$7f )
  [51] (signed byte) print_mulf8s127::a#10 ← phi( main::@13/(signed byte) 0 main::@14/(signed byte) $40 main::@15/(signed byte) $40 main::@16/(signed byte) -$40 main::@17/(signed byte) $40 main::@18/(signed byte) -$40 main::@19/(signed byte) $7f main::@20/(signed byte) -$7f main::@21/(signed byte) $7f main::@22/(signed byte) -$7f )
  [52] (signed byte) mulf8s127::a#0 ← (signed byte) print_mulf8s127::a#10
  [53] (signed byte) mulf8s127::b#0 ← (signed byte) print_mulf8s127::b#10
  [54] call mulf8s127 
  [55] (signed word) mulf8s127::return#0 ← (signed word) mulf8s127::return#1
  to:print_mulf8s127::@1
print_mulf8s127::@1: scope:[print_mulf8s127]  from print_mulf8s127
  [56] (signed word) print_mulf8s127::c#0 ← (signed word) mulf8s127::return#0
  [57] (signed byte) print_sbyte::b#1 ← (signed byte) print_mulf8s127::a#10
  [58] (byte*) print_char_cursor#148 ← (byte*) print_line_cursor#1
  [59] call print_sbyte 
  to:print_mulf8s127::@2
print_mulf8s127::@2: scope:[print_mulf8s127]  from print_mulf8s127::@1
  [60] phi()
  [61] call print_char 
  to:print_mulf8s127::@3
print_mulf8s127::@3: scope:[print_mulf8s127]  from print_mulf8s127::@2
  [62] (signed byte) print_sbyte::b#2 ← (signed byte) print_mulf8s127::b#10
  [63] call print_sbyte 
  to:print_mulf8s127::@4
print_mulf8s127::@4: scope:[print_mulf8s127]  from print_mulf8s127::@3
  [64] phi()
  [65] call print_char 
  to:print_mulf8s127::@5
print_mulf8s127::@5: scope:[print_mulf8s127]  from print_mulf8s127::@4
  [66] (signed word) print_sword::w#1 ← (signed word) print_mulf8s127::c#0
  [67] call print_sword 
  to:print_mulf8s127::@6
print_mulf8s127::@6: scope:[print_mulf8s127]  from print_mulf8s127::@5
  [68] phi()
  [69] call print_ln 
  to:print_mulf8s127::@return
print_mulf8s127::@return: scope:[print_mulf8s127]  from print_mulf8s127::@6
  [70] return 
  to:@return

(void()) print_ln()
print_ln: scope:[print_ln]  from main::@12 main::@2 print_mulf8s127::@6 print_mulf8u127::@6
  [71] (byte*) print_char_cursor#123 ← phi( main::@12/(byte*) print_char_cursor#122 main::@2/(byte*) print_char_cursor#122 print_mulf8s127::@6/(byte*) print_char_cursor#19 print_mulf8u127::@6/(byte*) print_char_cursor#19 )
  [71] (byte*) print_line_cursor#63 ← phi( main::@12/(byte*) print_line_cursor#1 main::@2/(byte*) 1024 print_mulf8s127::@6/(byte*) print_line_cursor#1 print_mulf8u127::@6/(byte*) print_line_cursor#1 )
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [72] (byte*) print_line_cursor#32 ← phi( print_ln/(byte*) print_line_cursor#63 print_ln::@1/(byte*) print_line_cursor#1 )
  [73] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#32 + (byte) $28
  [74] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#123) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [75] return 
  to:@return

(void()) print_sword((signed word) print_sword::w)
print_sword: scope:[print_sword]  from print_mulf8s127::@5
  [76] if((signed word) print_sword::w#1<(signed byte) 0) goto print_sword::@1
  to:print_sword::@3
print_sword::@3: scope:[print_sword]  from print_sword
  [77] phi()
  [78] call print_char 
  to:print_sword::@2
print_sword::@2: scope:[print_sword]  from print_sword::@3 print_sword::@4
  [79] (signed word) print_sword::w#4 ← phi( print_sword::@4/(signed word) print_sword::w#0 print_sword::@3/(signed word) print_sword::w#1 )
  [80] (word) print_word::w#0 ← (word)(signed word) print_sword::w#4
  [81] call print_word 
  to:print_sword::@return
print_sword::@return: scope:[print_sword]  from print_sword::@2
  [82] return 
  to:@return
print_sword::@1: scope:[print_sword]  from print_sword
  [83] phi()
  [84] call print_char 
  to:print_sword::@4
print_sword::@4: scope:[print_sword]  from print_sword::@1
  [85] (signed word) print_sword::w#0 ← - (signed word) print_sword::w#1
  to:print_sword::@2

(void()) print_char((byte) print_char::ch)
print_char: scope:[print_char]  from print_byte print_byte::@1 print_mulf8s127::@2 print_mulf8s127::@4 print_mulf8u127::@2 print_mulf8u127::@4 print_sbyte::@1 print_sbyte::@3 print_sword::@1 print_sword::@3
  [86] (byte*) print_char_cursor#80 ← phi( print_byte/(byte*) print_char_cursor#131 print_byte::@1/(byte*) print_char_cursor#19 print_mulf8s127::@2/(byte*) print_char_cursor#19 print_mulf8s127::@4/(byte*) print_char_cursor#19 print_mulf8u127::@2/(byte*) print_char_cursor#19 print_mulf8u127::@4/(byte*) print_char_cursor#19 print_sbyte::@1/(byte*) print_char_cursor#127 print_sbyte::@3/(byte*) print_char_cursor#127 print_sword::@1/(byte*) print_char_cursor#19 print_sword::@3/(byte*) print_char_cursor#19 )
  [86] (byte) print_char::ch#10 ← phi( print_byte/(byte) print_char::ch#4 print_byte::@1/(byte) print_char::ch#5 print_mulf8s127::@2/(byte) '*' print_mulf8s127::@4/(byte) '=' print_mulf8u127::@2/(byte) '*' print_mulf8u127::@4/(byte) '=' print_sbyte::@1/(byte) '-' print_sbyte::@3/(byte) ' ' print_sword::@1/(byte) '-' print_sword::@3/(byte) ' ' )
  [87] *((byte*) print_char_cursor#80) ← (byte) print_char::ch#10
  [88] (byte*) print_char_cursor#19 ← ++ (byte*) print_char_cursor#80
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [89] return 
  to:@return

(void()) print_word((word) print_word::w)
print_word: scope:[print_word]  from print_mulf8u127::@5 print_sword::@2
  [90] (word) print_word::w#2 ← phi( print_mulf8u127::@5/(word) print_word::w#1 print_sword::@2/(word) print_word::w#0 )
  [91] (byte) print_byte::b#1 ← > (word) print_word::w#2
  [92] call print_byte 
  to:print_word::@1
print_word::@1: scope:[print_word]  from print_word
  [93] (byte) print_byte::b#2 ← < (word) print_word::w#2
  [94] call print_byte 
  to:print_word::@return
print_word::@return: scope:[print_word]  from print_word::@1
  [95] return 
  to:@return

(void()) print_byte((byte) print_byte::b)
print_byte: scope:[print_byte]  from print_mulf8u127::@1 print_mulf8u127::@3 print_sbyte::@2 print_word print_word::@1
  [96] (byte*) print_char_cursor#131 ← phi( print_mulf8u127::@1/(byte*) print_char_cursor#150 print_mulf8u127::@3/(byte*) print_char_cursor#19 print_sbyte::@2/(byte*) print_char_cursor#19 print_word/(byte*) print_char_cursor#19 print_word::@1/(byte*) print_char_cursor#19 )
  [96] (byte) print_byte::b#5 ← phi( print_mulf8u127::@1/(byte) print_byte::b#3 print_mulf8u127::@3/(byte) print_byte::b#4 print_sbyte::@2/(byte) print_byte::b#0 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 )
  [97] (byte~) print_byte::$0 ← (byte) print_byte::b#5 >> (byte) 4
  [98] (byte) print_char::ch#4 ← *((const byte*) print_hextab + (byte~) print_byte::$0)
  [99] call print_char 
  to:print_byte::@1
print_byte::@1: scope:[print_byte]  from print_byte
  [100] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte) $f
  [101] (byte) print_char::ch#5 ← *((const byte*) print_hextab + (byte~) print_byte::$2)
  [102] call print_char 
  to:print_byte::@return
print_byte::@return: scope:[print_byte]  from print_byte::@1
  [103] return 
  to:@return

(void()) print_sbyte((signed byte) print_sbyte::b)
print_sbyte: scope:[print_sbyte]  from print_mulf8s127::@1 print_mulf8s127::@3
  [104] (byte*) print_char_cursor#127 ← phi( print_mulf8s127::@1/(byte*) print_char_cursor#148 print_mulf8s127::@3/(byte*) print_char_cursor#19 )
  [104] (signed byte) print_sbyte::b#3 ← phi( print_mulf8s127::@1/(signed byte) print_sbyte::b#1 print_mulf8s127::@3/(signed byte) print_sbyte::b#2 )
  [105] if((signed byte) print_sbyte::b#3<(signed byte) 0) goto print_sbyte::@1
  to:print_sbyte::@3
print_sbyte::@3: scope:[print_sbyte]  from print_sbyte
  [106] phi()
  [107] call print_char 
  to:print_sbyte::@2
print_sbyte::@2: scope:[print_sbyte]  from print_sbyte::@3 print_sbyte::@4
  [108] (signed byte) print_sbyte::b#5 ← phi( print_sbyte::@4/(signed byte) print_sbyte::b#0 print_sbyte::@3/(signed byte) print_sbyte::b#3 )
  [109] (byte) print_byte::b#0 ← (byte)(signed byte) print_sbyte::b#5
  [110] call print_byte 
  to:print_sbyte::@return
print_sbyte::@return: scope:[print_sbyte]  from print_sbyte::@2
  [111] return 
  to:@return
print_sbyte::@1: scope:[print_sbyte]  from print_sbyte
  [112] phi()
  [113] call print_char 
  to:print_sbyte::@4
print_sbyte::@4: scope:[print_sbyte]  from print_sbyte::@1
  [114] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#3
  to:print_sbyte::@2

(signed word()) mulf8s127((signed byte) mulf8s127::a , (signed byte) mulf8s127::b)
mulf8s127: scope:[mulf8s127]  from print_mulf8s127
  [115] (byte) mulf8u127::a#1 ← (byte)(signed byte) mulf8s127::a#0
  [116] (byte) mulf8u127::b#1 ← (byte)(signed byte) mulf8s127::b#0
  [117] call mulf8u127 
  [118] (word) mulf8u127::return#3 ← (word) mulf8u127::return#1
  to:mulf8s127::@7
mulf8s127::@7: scope:[mulf8s127]  from mulf8s127
  [119] (word) mulf8s127::c#0 ← (word) mulf8u127::return#3
  [120] if((signed byte) mulf8s127::a#0>=(signed byte) 0) goto mulf8s127::@9
  to:mulf8s127::@4
mulf8s127::@4: scope:[mulf8s127]  from mulf8s127::@7
  [121] (signed word~) mulf8s127::$12 ← (signed word)(signed byte) mulf8s127::b#0
  [122] (signed word~) mulf8s127::$13 ← (signed word~) mulf8s127::$12 << (byte) 1
  [123] (signed word) mulf8s127::c#1 ← (signed word)(word) mulf8s127::c#0 - (signed word~) mulf8s127::$13
  to:mulf8s127::@1
mulf8s127::@1: scope:[mulf8s127]  from mulf8s127::@4 mulf8s127::@9
  [124] (signed word) mulf8s127::c#5 ← phi( mulf8s127::@4/(signed word) mulf8s127::c#1 mulf8s127::@9/(signed word) mulf8s127::c#11 )
  [125] if((signed byte) mulf8s127::b#0>=(signed byte) 0) goto mulf8s127::@2
  to:mulf8s127::@5
mulf8s127::@5: scope:[mulf8s127]  from mulf8s127::@1
  [126] (signed word~) mulf8s127::$14 ← (signed word)(signed byte) mulf8s127::a#0
  [127] (signed word~) mulf8s127::$15 ← (signed word~) mulf8s127::$14 << (byte) 1
  [128] (signed word) mulf8s127::c#2 ← (signed word) mulf8s127::c#5 - (signed word~) mulf8s127::$15
  to:mulf8s127::@2
mulf8s127::@2: scope:[mulf8s127]  from mulf8s127::@1 mulf8s127::@5
  [129] (signed word) mulf8s127::c#7 ← phi( mulf8s127::@1/(signed word) mulf8s127::c#5 mulf8s127::@5/(signed word) mulf8s127::c#2 )
  [130] if((signed byte) mulf8s127::a#0>=(signed byte) 0) goto mulf8s127::@3
  to:mulf8s127::@8
mulf8s127::@8: scope:[mulf8s127]  from mulf8s127::@2
  [131] if((signed byte) mulf8s127::b#0>=(signed byte) 0) goto mulf8s127::@3
  to:mulf8s127::@6
mulf8s127::@6: scope:[mulf8s127]  from mulf8s127::@8
  [132] (signed word) mulf8s127::c#3 ← (signed word) mulf8s127::c#7 - (signed word) $200
  to:mulf8s127::@3
mulf8s127::@3: scope:[mulf8s127]  from mulf8s127::@2 mulf8s127::@6 mulf8s127::@8
  [133] (signed word) mulf8s127::return#1 ← phi( mulf8s127::@2/(signed word) mulf8s127::c#7 mulf8s127::@6/(signed word) mulf8s127::c#3 )
  to:mulf8s127::@return
mulf8s127::@return: scope:[mulf8s127]  from mulf8s127::@3
  [134] return 
  to:@return
mulf8s127::@9: scope:[mulf8s127]  from mulf8s127::@7
  [135] (signed word) mulf8s127::c#11 ← (signed word)(word) mulf8s127::c#0
  to:mulf8s127::@1

(word()) mulf8u127((byte) mulf8u127::a , (byte) mulf8u127::b)
mulf8u127: scope:[mulf8u127]  from mulf8s127 print_mulf8u127
  [136] (byte) mulf8u127::b#2 ← phi( mulf8s127/(byte) mulf8u127::b#1 print_mulf8u127/(byte) mulf8u127::b#0 )
  [136] (byte) mulf8u127::a#2 ← phi( mulf8s127/(byte) mulf8u127::a#1 print_mulf8u127/(byte) mulf8u127::a#0 )
  [137] *((const byte*) mulf8u127::memA) ← (byte) mulf8u127::a#2
  [138] *((const byte*) mulf8u127::memB) ← (byte) mulf8u127::b#2
  asm { ldamemA stasm1+1 stasm3+1 eor#$ff stasm2+1 stasm4+1 ldxmemB sec sm1: ldamulf127_sqr1_lo,x sm2: sbcmulf127_sqr2_lo,x staresL sm3: ldamulf127_sqr1_hi,x sm4: sbcmulf127_sqr2_hi,x staresH  }
  [140] (word) mulf8u127::return#1 ← *((const word*) mulf8u127::res)
  to:mulf8u127::@return
mulf8u127::@return: scope:[mulf8u127]  from mulf8u127
  [141] return 
  to:@return

(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str]  from main::@1 main::@11
  [142] (byte*) print_char_cursor#136 ← phi( main::@1/(byte*) 1024 main::@11/(byte*) print_char_cursor#141 )
  [142] (byte*) print_str::str#5 ← phi( main::@1/(const string) main::str main::@11/(const string) main::str1 )
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@2
  [143] (byte*) print_char_cursor#122 ← phi( print_str/(byte*) print_char_cursor#136 print_str::@2/(byte*) print_char_cursor#1 )
  [143] (byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#5 print_str::@2/(byte*) print_str::str#0 )
  [144] if((byte) 0!=*((byte*) print_str::str#3)) goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [145] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [146] *((byte*) print_char_cursor#122) ← *((byte*) print_str::str#3)
  [147] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#122
  [148] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#3
  to:print_str::@1

(void()) print_mulf8u127((byte) print_mulf8u127::a , (byte) print_mulf8u127::b)
print_mulf8u127: scope:[print_mulf8u127]  from main::@10 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9
  [149] (byte) print_mulf8u127::b#10 ← phi( main::@10/(byte) $ff main::@3/(byte) 0 main::@4/(byte) $7f main::@5/(byte) $40 main::@6/(byte) $7f main::@7/(byte) $c0 main::@8/(byte) $7f main::@9/(byte) $c0 )
  [149] (byte) print_mulf8u127::a#8 ← phi( main::@10/(byte) $ff main::@3/(byte) 0 main::@4/(byte) $7f main::@5/(byte) $40 main::@6/(byte) $40 main::@7/(byte) $40 main::@8/(byte) $ff main::@9/(byte) $c0 )
  [150] (byte) mulf8u127::a#0 ← (byte) print_mulf8u127::a#8
  [151] (byte) mulf8u127::b#0 ← (byte) print_mulf8u127::b#10
  [152] call mulf8u127 
  [153] (word) mulf8u127::return#0 ← (word) mulf8u127::return#1
  to:print_mulf8u127::@1
print_mulf8u127::@1: scope:[print_mulf8u127]  from print_mulf8u127
  [154] (word) print_mulf8u127::c#0 ← (word) mulf8u127::return#0
  [155] (byte) print_byte::b#3 ← (byte) print_mulf8u127::a#8
  [156] (byte*) print_char_cursor#150 ← (byte*) print_line_cursor#1
  [157] call print_byte 
  to:print_mulf8u127::@2
print_mulf8u127::@2: scope:[print_mulf8u127]  from print_mulf8u127::@1
  [158] phi()
  [159] call print_char 
  to:print_mulf8u127::@3
print_mulf8u127::@3: scope:[print_mulf8u127]  from print_mulf8u127::@2
  [160] (byte) print_byte::b#4 ← (byte) print_mulf8u127::b#10
  [161] call print_byte 
  to:print_mulf8u127::@4
print_mulf8u127::@4: scope:[print_mulf8u127]  from print_mulf8u127::@3
  [162] phi()
  [163] call print_char 
  to:print_mulf8u127::@5
print_mulf8u127::@5: scope:[print_mulf8u127]  from print_mulf8u127::@4
  [164] (word) print_word::w#1 ← (word) print_mulf8u127::c#0
  [165] call print_word 
  to:print_mulf8u127::@6
print_mulf8u127::@6: scope:[print_mulf8u127]  from print_mulf8u127::@5
  [166] phi()
  [167] call print_ln 
  to:print_mulf8u127::@return
print_mulf8u127::@return: scope:[print_mulf8u127]  from print_mulf8u127::@6
  [168] return 
  to:@return

(void()) print_cls()
print_cls: scope:[print_cls]  from main
  [169] phi()
  [170] call memset 
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [171] return 
  to:@return

(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset]  from print_cls
  [172] phi()
  to:memset::@1
memset::@1: scope:[memset]  from memset memset::@2
  [173] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
  [174] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [175] return 
  to:@return
memset::@2: scope:[memset]  from memset::@1
  [176] *((byte*) memset::dst#2) ← (const byte) memset::c#0
  [177] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
  to:memset::@1
