
void __start()
__start: scope:[__start]  from
  [0] phi()
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  [1] frame_cnt = 1
  to:__start::@1
__start::@1: scope:[__start]  from __start::__init1
  [2] phi()
  [3] call main
  to:__start::@return
__start::@return: scope:[__start]  from __start::@1
  [4] return 
  to:@return

__interrupt(hardware_clobber) void irq()
irq: scope:[irq]  from
  [5] *BG_COLOR = WHITE
  [6] if(0==frame_cnt) goto irq::@1
  to:irq::@2
irq::@2: scope:[irq]  from irq
  [7] frame_cnt = ++ frame_cnt
  to:irq::@1
irq::@1: scope:[irq]  from irq irq::@2
  [8] *BG_COLOR = BLACK
  [9] *IRQ_STATUS = IRQ_RASTER
  to:irq::@return
irq::@return: scope:[irq]  from irq::@1
  [10] return 
  to:@return

void main()
main: scope:[main]  from __start::@1
  [11] phi()
  [12] call sin16s_gen2
  to:main::@9
main::@9: scope:[main]  from main
  [13] phi()
  [14] call bitmap_init
  to:main::@10
main::@10: scope:[main]  from main::@9
  [15] phi()
  [16] call bitmap_clear
  to:main::@11
main::@11: scope:[main]  from main::@10
  [17] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3
  to:main::toD0181
main::toD0181: scope:[main]  from main::@11
  [18] phi()
  to:main::@8
main::@8: scope:[main]  from main::toD0181
  [19] *D018 = main::toD0181_return#0
  [20] call init_irq
  to:main::@1
main::@1: scope:[main]  from main::@5 main::@8
  [21] main::r_add#10 = phi( main::@8/$20, main::@5/main::r_add#12 )
  [21] main::idx_y#3 = phi( main::@8/$80, main::@5/main::idx_y#10 )
  [21] main::r#10 = phi( main::@8/0, main::@5/main::r#1 )
  [21] main::idx_x#11 = phi( main::@8/0, main::@5/main::idx_x#10 )
  to:main::@2
main::@2: scope:[main]  from main::@1
  [22] main::$26 = main::idx_x#11 << 1
  [23] main::$30 = SINE + main::$26
  [24] main::cos_x#0 = *main::$30
  [25] mul16s::a#1 = main::r#10
  [26] mul16s::b#1 = main::cos_x#0
  [27] call mul16s
  [28] mul16s::return#3 = mul16s::return#1
  to:main::@12
main::@12: scope:[main]  from main::@2
  [29] main::xpos#0 = mul16s::return#3
  [30] main::$28 = word1  main::xpos#0
  [31] main::$7 = (int)main::$28 >> 2
  [32] main::x#0 = $a0 + main::$7
  [33] main::$27 = main::idx_y#3 << 1
  [34] main::$31 = SINE + main::$27
  [35] main::sin_y#0 = *main::$31
  [36] mul16s::a#2 = main::r#10
  [37] mul16s::b#2 = main::sin_y#0
  [38] call mul16s
  [39] mul16s::return#4 = mul16s::return#1
  to:main::@13
main::@13: scope:[main]  from main::@12
  [40] main::ypos#0 = mul16s::return#4
  [41] main::$29 = word1  main::ypos#0
  [42] main::$11 = (int)main::$29 >> 2
  [43] main::y#0 = $64 + main::$11
  [44] bitmap_plot::x#0 = (unsigned int)main::x#0
  [45] bitmap_plot::y#0 = (char)(unsigned int)main::y#0
  [46] call bitmap_plot
  to:main::@14
main::@14: scope:[main]  from main::@13
  [47] plots_per_frame[frame_cnt] = ++ plots_per_frame[frame_cnt]
  [48] main::idx_x#1 = main::idx_x#11 + main::r_add#10
  [49] if(main::idx_x#1<$200) goto main::@16
  to:main::@3
main::@16: scope:[main]  from main::@14
  [50] phi()
  to:main::@3
main::@3: scope:[main]  from main::@14 main::@16
  [51] main::idx_x#10 = phi( main::@16/main::idx_x#1, main::@14/0 )
  [52] main::idx_y#1 = main::idx_y#3 + main::r_add#10
  [53] if(main::idx_y#1<$200) goto main::@17
  to:main::@4
main::@17: scope:[main]  from main::@3
  [54] phi()
  to:main::@4
main::@4: scope:[main]  from main::@17 main::@3
  [55] main::idx_y#10 = phi( main::@17/main::idx_y#1, main::@3/0 )
  [56] main::r#1 = main::r#10 + main::r_add#10
  [57] if(main::idx_x#10!=0) goto main::@5
  to:main::@15
main::@15: scope:[main]  from main::@4
  [58] if(main::r_add#10==1) goto main::@5
  to:main::@6
main::@6: scope:[main]  from main::@15
  [59] main::r_add#1 = main::r_add#10 >> 1
  to:main::@5
main::@5: scope:[main]  from main::@15 main::@4 main::@6
  [60] main::r_add#12 = phi( main::@4/main::r_add#10, main::@6/main::r_add#1 )
  [61] if(main::r#1>=(int)$200*$c+$100) goto main::@7
  to:main::@1
main::@7: scope:[main]  from main::@5 main::@7
  [62] *BORDER_COLOR = ++ *BORDER_COLOR
  to:main::@7

void sin16s_gen2(int *sintab , unsigned int wavelength , int min , int max)
sin16s_gen2: scope:[sin16s_gen2]  from main
  [63] phi()
  [64] call div32u16u
  [65] div32u16u::return#0 = div32u16u::return#1
  to:sin16s_gen2::@3
sin16s_gen2::@3: scope:[sin16s_gen2]  from sin16s_gen2
  [66] sin16s_gen2::step#0 = div32u16u::return#0
  to:sin16s_gen2::@1
sin16s_gen2::@1: scope:[sin16s_gen2]  from sin16s_gen2::@3 sin16s_gen2::@5
  [67] sin16s_gen2::sintab#2 = phi( sin16s_gen2::@3/SINE, sin16s_gen2::@5/sin16s_gen2::sintab#0 )
  [67] sin16s_gen2::x#2 = phi( sin16s_gen2::@3/0, sin16s_gen2::@5/sin16s_gen2::x#1 )
  [67] sin16s_gen2::i#2 = phi( sin16s_gen2::@3/0, sin16s_gen2::@5/sin16s_gen2::i#1 )
  [68] if(sin16s_gen2::i#2<sin16s_gen2::wavelength#0) goto sin16s_gen2::@2
  to:sin16s_gen2::@return
sin16s_gen2::@return: scope:[sin16s_gen2]  from sin16s_gen2::@1
  [69] return 
  to:@return
sin16s_gen2::@2: scope:[sin16s_gen2]  from sin16s_gen2::@1
  [70] sin16s::x#0 = sin16s_gen2::x#2
  [71] call sin16s
  [72] sin16s::return#0 = sin16s::return#1
  to:sin16s_gen2::@4
sin16s_gen2::@4: scope:[sin16s_gen2]  from sin16s_gen2::@2
  [73] mul16s::a#0 = sin16s::return#0
  [74] call mul16s
  [75] mul16s::return#0 = mul16s::return#1
  to:sin16s_gen2::@5
sin16s_gen2::@5: scope:[sin16s_gen2]  from sin16s_gen2::@4
  [76] sin16s_gen2::$6 = mul16s::return#0
  [77] sin16s_gen2::$8 = word1  sin16s_gen2::$6
  [78] *sin16s_gen2::sintab#2 = (int)sin16s_gen2::$8
  [79] sin16s_gen2::sintab#0 = sin16s_gen2::sintab#2 + SIZEOF_INT
  [80] sin16s_gen2::x#1 = sin16s_gen2::x#2 + sin16s_gen2::step#0
  [81] sin16s_gen2::i#1 = ++ sin16s_gen2::i#2
  to:sin16s_gen2::@1

void bitmap_init(char *gfx , char *screen)
bitmap_init: scope:[bitmap_init]  from main::@9
  [82] phi()
  to:bitmap_init::@1
bitmap_init::@1: scope:[bitmap_init]  from bitmap_init bitmap_init::@2
  [83] bitmap_init::x#2 = phi( bitmap_init/0, bitmap_init::@2/bitmap_init::x#1 )
  [83] bitmap_init::bits#3 = phi( bitmap_init/$80, bitmap_init::@2/bitmap_init::bits#4 )
  [84] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3
  [85] bitmap_init::bits#1 = bitmap_init::bits#3 >> 1
  [86] if(bitmap_init::bits#1!=0) goto bitmap_init::@6
  to:bitmap_init::@2
bitmap_init::@6: scope:[bitmap_init]  from bitmap_init::@1
  [87] phi()
  to:bitmap_init::@2
bitmap_init::@2: scope:[bitmap_init]  from bitmap_init::@1 bitmap_init::@6
  [88] bitmap_init::bits#4 = phi( bitmap_init::@6/bitmap_init::bits#1, bitmap_init::@1/$80 )
  [89] bitmap_init::x#1 = ++ bitmap_init::x#2
  [90] if(bitmap_init::x#1!=0) goto bitmap_init::@1
  to:bitmap_init::@3
bitmap_init::@3: scope:[bitmap_init]  from bitmap_init::@2 bitmap_init::@4
  [91] bitmap_init::yoffs#2 = phi( bitmap_init::@2/BITMAP, bitmap_init::@4/bitmap_init::yoffs#4 )
  [91] bitmap_init::y#2 = phi( bitmap_init::@2/0, bitmap_init::@4/bitmap_init::y#1 )
  [92] bitmap_init::$7 = bitmap_init::y#2 & 7
  [93] bitmap_init::$4 = byte0  bitmap_init::yoffs#2
  [94] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4
  [95] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5
  [96] bitmap_init::$6 = byte1  bitmap_init::yoffs#2
  [97] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6
  [98] if(bitmap_init::$7!=7) goto bitmap_init::@4
  to:bitmap_init::@5
bitmap_init::@5: scope:[bitmap_init]  from bitmap_init::@3
  [99] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8
  to:bitmap_init::@4
bitmap_init::@4: scope:[bitmap_init]  from bitmap_init::@3 bitmap_init::@5
  [100] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 )
  [101] bitmap_init::y#1 = ++ bitmap_init::y#2
  [102] if(bitmap_init::y#1!=0) goto bitmap_init::@3
  to:bitmap_init::@return
bitmap_init::@return: scope:[bitmap_init]  from bitmap_init::@4
  [103] return 
  to:@return

void bitmap_clear(char bgcol , char fgcol)
bitmap_clear: scope:[bitmap_clear]  from main::@10
  [104] phi()
  [105] call memset
  to:bitmap_clear::@1
bitmap_clear::@1: scope:[bitmap_clear]  from bitmap_clear
  [106] phi()
  [107] call memset
  to:bitmap_clear::@return
bitmap_clear::@return: scope:[bitmap_clear]  from bitmap_clear::@1
  [108] return 
  to:@return

void init_irq()
init_irq: scope:[init_irq]  from main::@8
  asm { sei  }
  [110] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK
  [111] *PROCPORT = PROCPORT_RAM_IO
  [112] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR
  [113] *VICII_CONTROL1 = *VICII_CONTROL1 | $80
  [114] *RASTER = 0
  [115] *IRQ_ENABLE = IRQ_RASTER
  [116] *HARDWARE_IRQ = &irq
  asm { cli  }
  to:init_irq::@return
init_irq::@return: scope:[init_irq]  from init_irq
  [118] return 
  to:@return

long mul16s(int a , int b)
mul16s: scope:[mul16s]  from main::@12 main::@2 sin16s_gen2::@4
  [119] mul16s::b#3 = phi( main::@12/mul16s::b#2, main::@2/mul16s::b#1, sin16s_gen2::@4/sin16s_gen2::ampl#0 )
  [119] mul16s::a#3 = phi( main::@12/mul16s::a#2, main::@2/mul16s::a#1, sin16s_gen2::@4/mul16s::a#0 )
  [120] mul16u::a#2 = (unsigned int)mul16s::a#3
  [121] mul16u::b#1 = (unsigned int)mul16s::b#3
  [122] call mul16u
  [123] mul16u::return#3 = mul16u::res#2
  to:mul16s::@5
mul16s::@5: scope:[mul16s]  from mul16s
  [124] mul16s::m#0 = mul16u::return#3
  [125] if(mul16s::a#3>=0) goto mul16s::@1
  to:mul16s::@3
mul16s::@3: scope:[mul16s]  from mul16s::@5
  [126] mul16s::$6 = word1  mul16s::m#0
  [127] mul16s::$11 = mul16s::$6 - (unsigned int)mul16s::b#3
  [128] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11
  to:mul16s::@1
mul16s::@1: scope:[mul16s]  from mul16s::@3 mul16s::@5
  [129] mul16s::m#5 = phi( mul16s::@3/mul16s::m#1, mul16s::@5/mul16s::m#0 )
  [130] if(mul16s::b#3>=0) goto mul16s::@2
  to:mul16s::@4
mul16s::@4: scope:[mul16s]  from mul16s::@1
  [131] mul16s::$9 = word1  mul16s::m#5
  [132] mul16s::$12 = mul16s::$9 - (unsigned int)mul16s::a#3
  [133] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12
  to:mul16s::@2
mul16s::@2: scope:[mul16s]  from mul16s::@1 mul16s::@4
  [134] mul16s::m#4 = phi( mul16s::@1/mul16s::m#5, mul16s::@4/mul16s::m#2 )
  [135] mul16s::return#1 = (long)mul16s::m#4
  to:mul16s::@return
mul16s::@return: scope:[mul16s]  from mul16s::@2
  [136] return 
  to:@return

void bitmap_plot(unsigned int x , char y)
bitmap_plot: scope:[bitmap_plot]  from main::@13
  [137] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0]
  [138] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8
  [139] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1
  [140] bitmap_plot::$2 = byte0  bitmap_plot::x#0
  [141] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2]
  to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
  [142] return 
  to:@return

unsigned long div32u16u(unsigned long dividend , unsigned int divisor)
div32u16u: scope:[div32u16u]  from sin16s_gen2
  [143] phi()
  [144] call divr16u
  [145] divr16u::return#2 = divr16u::return#0
  to:div32u16u::@1
div32u16u::@1: scope:[div32u16u]  from div32u16u
  [146] div32u16u::quotient_hi#0 = divr16u::return#2
  [147] divr16u::rem#4 = rem16u#14
  [148] call divr16u
  [149] divr16u::return#3 = divr16u::return#0
  to:div32u16u::@2
div32u16u::@2: scope:[div32u16u]  from div32u16u::@1
  [150] div32u16u::quotient_lo#0 = divr16u::return#3
  [151] div32u16u::return#1 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0
  to:div32u16u::@return
div32u16u::@return: scope:[div32u16u]  from div32u16u::@2
  [152] return 
  to:@return

int sin16s(unsigned long x)
sin16s: scope:[sin16s]  from sin16s_gen2::@2
  [153] if(sin16s::x#0<PI_u4f28) goto sin16s::@1
  to:sin16s::@4
sin16s::@4: scope:[sin16s]  from sin16s
  [154] sin16s::x#1 = sin16s::x#0 - PI_u4f28
  to:sin16s::@1
sin16s::@1: scope:[sin16s]  from sin16s sin16s::@4
  [155] sin16s::isUpper#2 = phi( sin16s/0, sin16s::@4/1 )
  [155] sin16s::x#4 = phi( sin16s/sin16s::x#0, sin16s::@4/sin16s::x#1 )
  [156] if(sin16s::x#4<PI_HALF_u4f28) goto sin16s::@2
  to:sin16s::@5
sin16s::@5: scope:[sin16s]  from sin16s::@1
  [157] sin16s::x#2 = PI_u4f28 - sin16s::x#4
  to:sin16s::@2
sin16s::@2: scope:[sin16s]  from sin16s::@1 sin16s::@5
  [158] sin16s::x#6 = phi( sin16s::@1/sin16s::x#4, sin16s::@5/sin16s::x#2 )
  [159] sin16s::$4 = sin16s::x#6 << 3
  [160] sin16s::x1#0 = word1  sin16s::$4
  [161] mulu16_sel::v1#0 = sin16s::x1#0
  [162] mulu16_sel::v2#0 = sin16s::x1#0
  [163] call mulu16_sel
  [164] mulu16_sel::return#0 = mulu16_sel::return#12
  to:sin16s::@7
sin16s::@7: scope:[sin16s]  from sin16s::@2
  [165] sin16s::x2#0 = mulu16_sel::return#0
  [166] mulu16_sel::v1#1 = sin16s::x2#0
  [167] mulu16_sel::v2#1 = sin16s::x1#0
  [168] call mulu16_sel
  [169] mulu16_sel::return#1 = mulu16_sel::return#12
  to:sin16s::@8
sin16s::@8: scope:[sin16s]  from sin16s::@7
  [170] sin16s::x3#0 = mulu16_sel::return#1
  [171] mulu16_sel::v1#2 = sin16s::x3#0
  [172] call mulu16_sel
  [173] mulu16_sel::return#2 = mulu16_sel::return#12
  to:sin16s::@9
sin16s::@9: scope:[sin16s]  from sin16s::@8
  [174] sin16s::x3_6#0 = mulu16_sel::return#2
  [175] sin16s::usinx#0 = sin16s::x1#0 - sin16s::x3_6#0
  [176] mulu16_sel::v1#3 = sin16s::x3#0
  [177] mulu16_sel::v2#3 = sin16s::x1#0
  [178] call mulu16_sel
  [179] mulu16_sel::return#10 = mulu16_sel::return#12
  to:sin16s::@10
sin16s::@10: scope:[sin16s]  from sin16s::@9
  [180] sin16s::x4#0 = mulu16_sel::return#10
  [181] mulu16_sel::v1#4 = sin16s::x4#0
  [182] mulu16_sel::v2#4 = sin16s::x1#0
  [183] call mulu16_sel
  [184] mulu16_sel::return#11 = mulu16_sel::return#12
  to:sin16s::@11
sin16s::@11: scope:[sin16s]  from sin16s::@10
  [185] sin16s::x5#0 = mulu16_sel::return#11
  [186] sin16s::x5_128#0 = sin16s::x5#0 >> 4
  [187] sin16s::usinx#1 = sin16s::usinx#0 + sin16s::x5_128#0
  [188] if(sin16s::isUpper#2==0) goto sin16s::@12
  to:sin16s::@6
sin16s::@6: scope:[sin16s]  from sin16s::@11
  [189] sin16s::sinx#1 = - (int)sin16s::usinx#1
  to:sin16s::@3
sin16s::@3: scope:[sin16s]  from sin16s::@12 sin16s::@6
  [190] sin16s::return#1 = phi( sin16s::@12/sin16s::return#5, sin16s::@6/sin16s::sinx#1 )
  to:sin16s::@return
sin16s::@return: scope:[sin16s]  from sin16s::@3
  [191] return 
  to:@return
sin16s::@12: scope:[sin16s]  from sin16s::@11
  [192] sin16s::return#5 = (int)sin16s::usinx#1
  to:sin16s::@3

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from bitmap_clear bitmap_clear::@1
  [193] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 )
  [193] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP )
  [193] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 )
  [194] if(memset::num#2<=0) goto memset::@return
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [195] memset::end#0 = (char *)memset::str#3 + memset::num#2
  [196] memset::dst#4 = (char *)memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [197] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
  [198] if(memset::dst#2!=memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset memset::@2
  [199] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [200] *memset::dst#2 = memset::c#4
  [201] memset::dst#1 = ++ memset::dst#2
  to:memset::@2

unsigned long mul16u(unsigned int a , unsigned int b)
mul16u: scope:[mul16u]  from mul16s mulu16_sel
  [202] mul16u::a#6 = phi( mul16s/mul16u::a#2, mulu16_sel/mul16u::a#0 )
  [202] mul16u::b#2 = phi( mul16s/mul16u::b#1, mulu16_sel/mul16u::b#0 )
  [203] mul16u::mb#0 = (unsigned long)mul16u::b#2
  to:mul16u::@1
mul16u::@1: scope:[mul16u]  from mul16u mul16u::@3
  [204] mul16u::mb#2 = phi( mul16u/mul16u::mb#0, mul16u::@3/mul16u::mb#1 )
  [204] mul16u::res#2 = phi( mul16u/0, mul16u::@3/mul16u::res#6 )
  [204] mul16u::a#3 = phi( mul16u/mul16u::a#6, mul16u::@3/mul16u::a#1 )
  [205] if(mul16u::a#3!=0) goto mul16u::@2
  to:mul16u::@return
mul16u::@return: scope:[mul16u]  from mul16u::@1
  [206] return 
  to:@return
mul16u::@2: scope:[mul16u]  from mul16u::@1
  [207] mul16u::$1 = mul16u::a#3 & 1
  [208] if(mul16u::$1==0) goto mul16u::@3
  to:mul16u::@4
mul16u::@4: scope:[mul16u]  from mul16u::@2
  [209] mul16u::res#1 = mul16u::res#2 + mul16u::mb#2
  to:mul16u::@3
mul16u::@3: scope:[mul16u]  from mul16u::@2 mul16u::@4
  [210] mul16u::res#6 = phi( mul16u::@2/mul16u::res#2, mul16u::@4/mul16u::res#1 )
  [211] mul16u::a#1 = mul16u::a#3 >> 1
  [212] mul16u::mb#1 = mul16u::mb#2 << 1
  to:mul16u::@1

unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem)
divr16u: scope:[divr16u]  from div32u16u div32u16u::@1
  [213] divr16u::dividend#5 = phi( div32u16u/word1 PI2_u4f28, div32u16u::@1/word0 PI2_u4f28 )
  [213] divr16u::rem#10 = phi( div32u16u/0, div32u16u::@1/divr16u::rem#4 )
  to:divr16u::@1
divr16u::@1: scope:[divr16u]  from divr16u divr16u::@3
  [214] divr16u::i#2 = phi( divr16u/0, divr16u::@3/divr16u::i#1 )
  [214] divr16u::quotient#3 = phi( divr16u/0, divr16u::@3/divr16u::return#0 )
  [214] divr16u::dividend#3 = phi( divr16u/divr16u::dividend#5, divr16u::@3/divr16u::dividend#0 )
  [214] divr16u::rem#5 = phi( divr16u/divr16u::rem#10, divr16u::@3/divr16u::rem#11 )
  [215] divr16u::rem#0 = divr16u::rem#5 << 1
  [216] divr16u::$1 = byte1  divr16u::dividend#3
  [217] divr16u::$2 = divr16u::$1 & $80
  [218] if(divr16u::$2==0) goto divr16u::@2
  to:divr16u::@4
divr16u::@4: scope:[divr16u]  from divr16u::@1
  [219] divr16u::rem#1 = divr16u::rem#0 | 1
  to:divr16u::@2
divr16u::@2: scope:[divr16u]  from divr16u::@1 divr16u::@4
  [220] divr16u::rem#6 = phi( divr16u::@1/divr16u::rem#0, divr16u::@4/divr16u::rem#1 )
  [221] divr16u::dividend#0 = divr16u::dividend#3 << 1
  [222] divr16u::quotient#1 = divr16u::quotient#3 << 1
  [223] if(divr16u::rem#6<sin16s_gen2::wavelength#0) goto divr16u::@3
  to:divr16u::@5
divr16u::@5: scope:[divr16u]  from divr16u::@2
  [224] divr16u::quotient#2 = ++ divr16u::quotient#1
  [225] divr16u::rem#2 = divr16u::rem#6 - sin16s_gen2::wavelength#0
  to:divr16u::@3
divr16u::@3: scope:[divr16u]  from divr16u::@2 divr16u::@5
  [226] divr16u::return#0 = phi( divr16u::@2/divr16u::quotient#1, divr16u::@5/divr16u::quotient#2 )
  [226] divr16u::rem#11 = phi( divr16u::@2/divr16u::rem#6, divr16u::@5/divr16u::rem#2 )
  [227] divr16u::i#1 = ++ divr16u::i#2
  [228] if(divr16u::i#1!=$10) goto divr16u::@1
  to:divr16u::@6
divr16u::@6: scope:[divr16u]  from divr16u::@3
  [229] rem16u#14 = divr16u::rem#11
  to:divr16u::@return
divr16u::@return: scope:[divr16u]  from divr16u::@6
  [230] return 
  to:@return

unsigned int mulu16_sel(unsigned int v1 , unsigned int v2 , char select)
mulu16_sel: scope:[mulu16_sel]  from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@8 sin16s::@9
  [231] mulu16_sel::select#5 = phi( sin16s::@10/0, sin16s::@2/0, sin16s::@7/1, sin16s::@8/1, sin16s::@9/0 )
  [231] mulu16_sel::v2#5 = phi( sin16s::@10/mulu16_sel::v2#4, sin16s::@2/mulu16_sel::v2#0, sin16s::@7/mulu16_sel::v2#1, sin16s::@8/(unsigned int)$10000/6, sin16s::@9/mulu16_sel::v2#3 )
  [231] mulu16_sel::v1#5 = phi( sin16s::@10/mulu16_sel::v1#4, sin16s::@2/mulu16_sel::v1#0, sin16s::@7/mulu16_sel::v1#1, sin16s::@8/mulu16_sel::v1#2, sin16s::@9/mulu16_sel::v1#3 )
  [232] mul16u::a#0 = mulu16_sel::v1#5
  [233] mul16u::b#0 = mulu16_sel::v2#5
  [234] call mul16u
  [235] mul16u::return#0 = mul16u::res#2
  to:mulu16_sel::@1
mulu16_sel::@1: scope:[mulu16_sel]  from mulu16_sel
  [236] mulu16_sel::$0 = mul16u::return#0
  [237] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5
  [238] mulu16_sel::return#12 = word1  mulu16_sel::$1
  to:mulu16_sel::@return
mulu16_sel::@return: scope:[mulu16_sel]  from mulu16_sel::@1
  [239] return 
  to:@return
