
void main()
main: scope:[main]  from
  [0] phi()
  to:main::toD0181
main::toD0181: scope:[main]  from main
  [1] phi()
  to:main::@14
main::@14: scope:[main]  from main::toD0181
  [2] *D018 = main::toD0181_return#0
  [3] call print_cls
  to:main::@15
main::@15: scope:[main]  from main::@14
  [4] phi()
  [5] call print_str
  to:main::@16
main::@16: scope:[main]  from main::@15
  [6] phi()
  [7] call print_ln
  to:main::@17
main::@17: scope:[main]  from main::@16
  [8] print_char_cursor#90 = print_line_cursor#0
  [9] call print_str
  to:main::@18
main::@18: scope:[main]  from main::@17
  [10] phi()
  [11] call print_uint_decimal
  to:main::@19
main::@19: scope:[main]  from main::@18
  [12] phi()
  [13] call print_ln
  to:main::@20
main::@20: scope:[main]  from main::@19
  [14] phi()
  [15] call memset
  to:main::@21
main::@21: scope:[main]  from main::@20
  [16] phi()
  [17] call clock_start
  to:main::@1
main::@1: scope:[main]  from main::@21 main::@4
  [18] main::sieve_i#2 = phi( main::@21/sieve+2, main::@4/main::sieve_i#1 )
  [18] main::i#12 = phi( main::@21/2, main::@4/main::i#2 )
  [19] if(main::i#12<SQRT_COUNT) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@1
  [20] phi()
  [21] call clock
  [22] clock::return#2 = clock::return#0
  to:main::@22
main::@22: scope:[main]  from main::@3
  [23] main::$10 = clock::return#2
  [24] main::cyclecount#0 = main::$10 - CLOCKS_PER_INIT
  [25] div32u16u::dividend#0 = main::cyclecount#0
  [26] call div32u16u
  [27] div32u16u::return#2 = div32u16u::return#0
  to:main::@23
main::@23: scope:[main]  from main::@22
  [28] main::$12 = div32u16u::return#2
  [29] main::sec100s#0 = (unsigned int)main::$12
  [30] print_char_cursor#91 = print_line_cursor#0
  [31] call print_str
  to:main::@24
main::@24: scope:[main]  from main::@23
  [32] print_uint_decimal::w#1 = main::sec100s#0
  [33] call print_uint_decimal
  to:main::@25
main::@25: scope:[main]  from main::@24
  [34] phi()
  [35] call print_str
  to:main::@26
main::@26: scope:[main]  from main::@25
  [36] print_ulong_decimal::w#0 = main::cyclecount#0
  [37] call print_ulong_decimal
  to:main::@27
main::@27: scope:[main]  from main::@26
  [38] phi()
  [39] call print_ln
  to:main::@8
main::@8: scope:[main]  from main::@11 main::@27
  [40] print_char_cursor#65 = phi( main::@11/print_char_cursor#79, main::@27/print_line_cursor#0 )
  [40] main::i#10 = phi( main::@11/main::i#3, main::@27/2 )
  [41] if(main::i#10<$514) goto main::@9
  to:main::@10
main::@10: scope:[main]  from main::@8
  [42] print_char_cursor#89 = print_char_cursor#65
  [43] call print_str
  to:main::@13
main::@13: scope:[main]  from main::@10 main::@13
  [44] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7)
  to:main::@13
main::@9: scope:[main]  from main::@8
  [45] main::$33 = sieve + main::i#10
  [46] if(0!=*main::$33) goto main::@11
  to:main::@12
main::@12: scope:[main]  from main::@9
  [47] print_uint_decimal::w#2 = main::i#10
  [48] print_char_cursor#97 = print_char_cursor#65
  [49] call print_uint_decimal
  to:main::@28
main::@28: scope:[main]  from main::@12
  [50] phi()
  [51] call print_char
  to:main::@11
main::@11: scope:[main]  from main::@28 main::@9
  [52] print_char_cursor#79 = phi( main::@28/print_char_cursor#39, main::@9/print_char_cursor#65 )
  [53] main::i#3 = ++ main::i#10
  to:main::@8
main::@2: scope:[main]  from main::@1
  [54] if(0!=*main::sieve_i#2) goto main::@4
  to:main::@7
main::@7: scope:[main]  from main::@2
  [55] main::j#0 = main::i#12 << 1
  [56] main::s#0 = sieve + main::j#0
  to:main::@5
main::@5: scope:[main]  from main::@6 main::@7
  [57] main::s#2 = phi( main::@6/main::s#1, main::@7/main::s#0 )
  [57] main::j#2 = phi( main::@6/main::j#1, main::@7/main::j#0 )
  [58] if(main::j#2<COUNT) goto main::@6
  to:main::@4
main::@4: scope:[main]  from main::@2 main::@5
  [59] main::i#2 = ++ main::i#12
  [60] main::sieve_i#1 = ++ main::sieve_i#2
  to:main::@1
main::@6: scope:[main]  from main::@5
  [61] *main::s#2 = 1
  [62] main::s#1 = main::s#2 + main::i#12
  [63] main::j#1 = main::j#2 + main::i#12
  to:main::@5

void print_cls()
print_cls: scope:[print_cls]  from main::@14
  [64] phi()
  [65] call memset
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [66] return 
  to:@return

void print_str(char *str)
print_str: scope:[print_str]  from main::@10 main::@15 main::@17 main::@23 main::@25 print_uint_decimal::@1 print_ulong_decimal::@1
  [67] print_char_cursor#69 = phi( main::@10/print_char_cursor#89, main::@15/print_screen#0, main::@17/print_char_cursor#90, main::@23/print_char_cursor#91, main::@25/print_char_cursor#1, print_uint_decimal::@1/print_char_cursor#61, print_ulong_decimal::@1/print_char_cursor#1 )
  [67] print_str::str#11 = phi( main::@10/main::str4, main::@15/main::str, main::@17/main::str1, main::@23/main::str2, main::@25/main::str3, print_uint_decimal::@1/decimal_digits, print_ulong_decimal::@1/decimal_digits_long )
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@3
  [68] print_char_cursor#1 = phi( print_str/print_char_cursor#69, print_str::@3/print_char_cursor#96 )
  [68] print_str::str#10 = phi( print_str/print_str::str#11, print_str::@3/print_str::str#0 )
  [69] if(0!=*print_str::str#10) goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [70] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [71] print_char::ch#0 = *print_str::str#10
  [72] call print_char
  to:print_str::@3
print_str::@3: scope:[print_str]  from print_str::@2
  [73] print_str::str#0 = ++ print_str::str#10
  [74] print_char_cursor#96 = print_char_cursor#39
  to:print_str::@1

void print_ln()
print_ln: scope:[print_ln]  from main::@16 main::@19 main::@27
  [75] print_line_cursor#23 = phi( main::@16/print_screen#0, main::@19/print_line_cursor#0, main::@27/print_line_cursor#0 )
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [76] print_line_cursor#12 = phi( print_ln/print_line_cursor#23, print_ln::@1/print_line_cursor#0 )
  [77] print_line_cursor#0 = print_line_cursor#12 + $28
  [78] if(print_line_cursor#0<print_char_cursor#1) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [79] return 
  to:@return

void print_uint_decimal(unsigned int w)
print_uint_decimal: scope:[print_uint_decimal]  from main::@12 main::@18 main::@24
  [80] print_char_cursor#61 = phi( main::@12/print_char_cursor#97, main::@18/print_char_cursor#1, main::@24/print_char_cursor#1 )
  [80] print_uint_decimal::w#3 = phi( main::@12/print_uint_decimal::w#2, main::@18/COUNT, main::@24/print_uint_decimal::w#1 )
  [81] utoa::value#0 = print_uint_decimal::w#3
  [82] call utoa
  to:print_uint_decimal::@1
print_uint_decimal::@1: scope:[print_uint_decimal]  from print_uint_decimal
  [83] phi()
  [84] call print_str
  to:print_uint_decimal::@return
print_uint_decimal::@return: scope:[print_uint_decimal]  from print_uint_decimal::@1
  [85] return 
  to:@return

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from main::@20 print_cls
  [86] memset::c#4 = phi( main::@20/0, print_cls/' ' )
  [86] memset::str#3 = phi( main::@20/(void *)sieve, print_cls/(void *)print_screen#0 )
  [86] memset::num#2 = phi( main::@20/COUNT, print_cls/$3e8 )
  [87] if(memset::num#2<=0) goto memset::@return
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [88] memset::end#0 = (char *)memset::str#3 + memset::num#2
  [89] memset::dst#4 = (char *)memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [90] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
  [91] if(memset::dst#2!=memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset memset::@2
  [92] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [93] *memset::dst#2 = memset::c#4
  [94] memset::dst#1 = ++ memset::dst#2
  to:memset::@2

void clock_start()
clock_start: scope:[clock_start]  from main::@21
  [95] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0
  [96] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
  [97] *CIA2_TIMER_AB = $ffffffff
  [98] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
  [99] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START
  to:clock_start::@return
clock_start::@return: scope:[clock_start]  from clock_start
  [100] return 
  to:@return

unsigned long clock()
clock: scope:[clock]  from main::@3
  [101] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0
  [102] clock::return#0 = $ffffffff - *CIA2_TIMER_AB
  [103] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START
  to:clock::@return
clock::@return: scope:[clock]  from clock
  [104] return 
  to:@return

unsigned long div32u16u(unsigned long dividend , unsigned int divisor)
div32u16u: scope:[div32u16u]  from main::@22
  [105] divr16u::dividend#1 = word1  div32u16u::dividend#0
  [106] call divr16u
  [107] divr16u::return#2 = divr16u::return#0
  to:div32u16u::@1
div32u16u::@1: scope:[div32u16u]  from div32u16u
  [108] div32u16u::quotient_hi#0 = divr16u::return#2
  [109] divr16u::dividend#2 = word0  div32u16u::dividend#0
  [110] divr16u::rem#4 = rem16u#0
  [111] call divr16u
  [112] divr16u::return#3 = divr16u::return#0
  to:div32u16u::@2
div32u16u::@2: scope:[div32u16u]  from div32u16u::@1
  [113] div32u16u::quotient_lo#0 = divr16u::return#3
  [114] div32u16u::return#0 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0
  to:div32u16u::@return
div32u16u::@return: scope:[div32u16u]  from div32u16u::@2
  [115] return 
  to:@return

void print_ulong_decimal(unsigned long w)
print_ulong_decimal: scope:[print_ulong_decimal]  from main::@26
  [116] ultoa::value#0 = print_ulong_decimal::w#0
  [117] call ultoa
  to:print_ulong_decimal::@1
print_ulong_decimal::@1: scope:[print_ulong_decimal]  from print_ulong_decimal
  [118] phi()
  [119] call print_str
  to:print_ulong_decimal::@return
print_ulong_decimal::@return: scope:[print_ulong_decimal]  from print_ulong_decimal::@1
  [120] return 
  to:@return

void print_char(char ch)
print_char: scope:[print_char]  from main::@28 print_str::@2
  [121] print_char::ch#2 = phi( main::@28/' ', print_str::@2/print_char::ch#0 )
  [122] *print_char_cursor#1 = print_char::ch#2
  [123] print_char_cursor#39 = ++ print_char_cursor#1
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [124] return 
  to:@return

void utoa(unsigned int value , char *buffer , char radix)
utoa: scope:[utoa]  from print_uint_decimal
  [125] phi()
  to:utoa::@1
utoa::@1: scope:[utoa]  from utoa utoa::@4
  [126] utoa::buffer#11 = phi( utoa::@4/utoa::buffer#14, utoa/decimal_digits )
  [126] utoa::started#2 = phi( utoa::@4/utoa::started#4, utoa/0 )
  [126] utoa::value#2 = phi( utoa::@4/utoa::value#6, utoa/utoa::value#0 )
  [126] utoa::digit#2 = phi( utoa::@4/utoa::digit#1, utoa/0 )
  [127] if(utoa::digit#2<utoa::max_digits#1-1) goto utoa::@2
  to:utoa::@3
utoa::@3: scope:[utoa]  from utoa::@1
  [128] utoa::$11 = (char)utoa::value#2
  [129] *utoa::buffer#11 = DIGITS[utoa::$11]
  [130] utoa::buffer#4 = ++ utoa::buffer#11
  [131] *utoa::buffer#4 = 0
  to:utoa::@return
utoa::@return: scope:[utoa]  from utoa::@3
  [132] return 
  to:@return
utoa::@2: scope:[utoa]  from utoa::@1
  [133] utoa::$10 = utoa::digit#2 << 1
  [134] utoa::digit_value#0 = RADIX_DECIMAL_VALUES[utoa::$10]
  [135] if(0!=utoa::started#2) goto utoa::@5
  to:utoa::@7
utoa::@7: scope:[utoa]  from utoa::@2
  [136] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@5
  to:utoa::@4
utoa::@4: scope:[utoa]  from utoa::@6 utoa::@7
  [137] utoa::buffer#14 = phi( utoa::@7/utoa::buffer#11, utoa::@6/utoa::buffer#5 )
  [137] utoa::started#4 = phi( utoa::@7/utoa::started#2, utoa::@6/1 )
  [137] utoa::value#6 = phi( utoa::@7/utoa::value#2, utoa::@6/utoa::value#1 )
  [138] utoa::digit#1 = ++ utoa::digit#2
  to:utoa::@1
utoa::@5: scope:[utoa]  from utoa::@2 utoa::@7
  [139] utoa_append::buffer#0 = utoa::buffer#11
  [140] utoa_append::value#0 = utoa::value#2
  [141] utoa_append::sub#0 = utoa::digit_value#0
  [142] call utoa_append
  [143] utoa_append::return#0 = utoa_append::value#2
  to:utoa::@6
utoa::@6: scope:[utoa]  from utoa::@5
  [144] utoa::value#1 = utoa_append::return#0
  [145] utoa::buffer#5 = ++ utoa::buffer#11
  to:utoa::@4

unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem)
divr16u: scope:[divr16u]  from div32u16u div32u16u::@1
  [146] divr16u::dividend#5 = phi( div32u16u/divr16u::dividend#1, div32u16u::@1/divr16u::dividend#2 )
  [146] divr16u::rem#10 = phi( div32u16u/0, div32u16u::@1/divr16u::rem#4 )
  to:divr16u::@1
divr16u::@1: scope:[divr16u]  from divr16u divr16u::@3
  [147] divr16u::i#2 = phi( divr16u/0, divr16u::@3/divr16u::i#1 )
  [147] divr16u::quotient#3 = phi( divr16u/0, divr16u::@3/divr16u::return#0 )
  [147] divr16u::dividend#3 = phi( divr16u/divr16u::dividend#5, divr16u::@3/divr16u::dividend#0 )
  [147] divr16u::rem#5 = phi( divr16u/divr16u::rem#10, divr16u::@3/divr16u::rem#11 )
  [148] divr16u::rem#0 = divr16u::rem#5 << 1
  [149] divr16u::$1 = byte1  divr16u::dividend#3
  [150] divr16u::$2 = divr16u::$1 & $80
  [151] if(divr16u::$2==0) goto divr16u::@2
  to:divr16u::@4
divr16u::@4: scope:[divr16u]  from divr16u::@1
  [152] divr16u::rem#1 = divr16u::rem#0 | 1
  to:divr16u::@2
divr16u::@2: scope:[divr16u]  from divr16u::@1 divr16u::@4
  [153] divr16u::rem#6 = phi( divr16u::@1/divr16u::rem#0, divr16u::@4/divr16u::rem#1 )
  [154] divr16u::dividend#0 = divr16u::dividend#3 << 1
  [155] divr16u::quotient#1 = divr16u::quotient#3 << 1
  [156] if(divr16u::rem#6<div32u16u::divisor#0) goto divr16u::@3
  to:divr16u::@5
divr16u::@5: scope:[divr16u]  from divr16u::@2
  [157] divr16u::quotient#2 = ++ divr16u::quotient#1
  [158] divr16u::rem#2 = divr16u::rem#6 - div32u16u::divisor#0
  to:divr16u::@3
divr16u::@3: scope:[divr16u]  from divr16u::@2 divr16u::@5
  [159] divr16u::return#0 = phi( divr16u::@2/divr16u::quotient#1, divr16u::@5/divr16u::quotient#2 )
  [159] divr16u::rem#11 = phi( divr16u::@2/divr16u::rem#6, divr16u::@5/divr16u::rem#2 )
  [160] divr16u::i#1 = ++ divr16u::i#2
  [161] if(divr16u::i#1!=$10) goto divr16u::@1
  to:divr16u::@6
divr16u::@6: scope:[divr16u]  from divr16u::@3
  [162] rem16u#0 = divr16u::rem#11
  to:divr16u::@return
divr16u::@return: scope:[divr16u]  from divr16u::@6
  [163] return 
  to:@return

void ultoa(unsigned long value , char *buffer , char radix)
ultoa: scope:[ultoa]  from print_ulong_decimal
  [164] phi()
  to:ultoa::@1
ultoa::@1: scope:[ultoa]  from ultoa ultoa::@4
  [165] ultoa::buffer#11 = phi( ultoa::@4/ultoa::buffer#14, ultoa/decimal_digits_long )
  [165] ultoa::started#2 = phi( ultoa::@4/ultoa::started#4, ultoa/0 )
  [165] ultoa::value#2 = phi( ultoa::@4/ultoa::value#6, ultoa/ultoa::value#0 )
  [165] ultoa::digit#2 = phi( ultoa::@4/ultoa::digit#1, ultoa/0 )
  [166] if(ultoa::digit#2<ultoa::max_digits#1-1) goto ultoa::@2
  to:ultoa::@3
ultoa::@3: scope:[ultoa]  from ultoa::@1
  [167] ultoa::$11 = (char)ultoa::value#2
  [168] *ultoa::buffer#11 = DIGITS[ultoa::$11]
  [169] ultoa::buffer#4 = ++ ultoa::buffer#11
  [170] *ultoa::buffer#4 = 0
  to:ultoa::@return
ultoa::@return: scope:[ultoa]  from ultoa::@3
  [171] return 
  to:@return
ultoa::@2: scope:[ultoa]  from ultoa::@1
  [172] ultoa::$10 = ultoa::digit#2 << 2
  [173] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10]
  [174] if(0!=ultoa::started#2) goto ultoa::@5
  to:ultoa::@7
ultoa::@7: scope:[ultoa]  from ultoa::@2
  [175] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5
  to:ultoa::@4
ultoa::@4: scope:[ultoa]  from ultoa::@6 ultoa::@7
  [176] ultoa::buffer#14 = phi( ultoa::@7/ultoa::buffer#11, ultoa::@6/ultoa::buffer#5 )
  [176] ultoa::started#4 = phi( ultoa::@7/ultoa::started#2, ultoa::@6/1 )
  [176] ultoa::value#6 = phi( ultoa::@7/ultoa::value#2, ultoa::@6/ultoa::value#1 )
  [177] ultoa::digit#1 = ++ ultoa::digit#2
  to:ultoa::@1
ultoa::@5: scope:[ultoa]  from ultoa::@2 ultoa::@7
  [178] ultoa_append::buffer#0 = ultoa::buffer#11
  [179] ultoa_append::value#0 = ultoa::value#2
  [180] ultoa_append::sub#0 = ultoa::digit_value#0
  [181] call ultoa_append
  [182] ultoa_append::return#0 = ultoa_append::value#2
  to:ultoa::@6
ultoa::@6: scope:[ultoa]  from ultoa::@5
  [183] ultoa::value#1 = ultoa_append::return#0
  [184] ultoa::buffer#5 = ++ ultoa::buffer#11
  to:ultoa::@4

unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub)
utoa_append: scope:[utoa_append]  from utoa::@5
  [185] phi()
  to:utoa_append::@1
utoa_append::@1: scope:[utoa_append]  from utoa_append utoa_append::@2
  [186] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 )
  [186] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 )
  [187] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2
  to:utoa_append::@3
utoa_append::@3: scope:[utoa_append]  from utoa_append::@1
  [188] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2]
  to:utoa_append::@return
utoa_append::@return: scope:[utoa_append]  from utoa_append::@3
  [189] return 
  to:@return
utoa_append::@2: scope:[utoa_append]  from utoa_append::@1
  [190] utoa_append::digit#1 = ++ utoa_append::digit#2
  [191] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0
  to:utoa_append::@1

unsigned long ultoa_append(char *buffer , unsigned long value , unsigned long sub)
ultoa_append: scope:[ultoa_append]  from ultoa::@5
  [192] phi()
  to:ultoa_append::@1
ultoa_append::@1: scope:[ultoa_append]  from ultoa_append ultoa_append::@2
  [193] ultoa_append::digit#2 = phi( ultoa_append/0, ultoa_append::@2/ultoa_append::digit#1 )
  [193] ultoa_append::value#2 = phi( ultoa_append/ultoa_append::value#0, ultoa_append::@2/ultoa_append::value#1 )
  [194] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2
  to:ultoa_append::@3
ultoa_append::@3: scope:[ultoa_append]  from ultoa_append::@1
  [195] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2]
  to:ultoa_append::@return
ultoa_append::@return: scope:[ultoa_append]  from ultoa_append::@3
  [196] return 
  to:@return
ultoa_append::@2: scope:[ultoa_append]  from ultoa_append::@1
  [197] ultoa_append::digit#1 = ++ ultoa_append::digit#2
  [198] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0
  to:ultoa_append::@1
