
void __start()
__start: scope:[__start]  from
  [0] phi()
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  [1] conio_cursor_x = 0
  [2] conio_cursor_y = 0
  [3] conio_line_text = DEFAULT_SCREEN
  [4] conio_line_color = COLORRAM
  [5] call conio_c64_init
  to:__start::@1
__start::@1: scope:[__start]  from __start::__init1
  [6] phi()
  [7] call main
  to:__start::@return
__start::@return: scope:[__start]  from __start::@1
  [8] return 
  to:@return

void conio_c64_init()
conio_c64_init: scope:[conio_c64_init]  from __start::__init1
  [9] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE
  [10] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2
  to:conio_c64_init::@1
conio_c64_init::@2: scope:[conio_c64_init]  from conio_c64_init
  [11] phi()
  to:conio_c64_init::@1
conio_c64_init::@1: scope:[conio_c64_init]  from conio_c64_init conio_c64_init::@2
  [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 )
  [13] gotoxy::y#2 = conio_c64_init::line#2
  [14] call gotoxy
  to:conio_c64_init::@return
conio_c64_init::@return: scope:[conio_c64_init]  from conio_c64_init::@1
  [15] return 
  to:@return

__stackcall void cputc(char c)
cputc: scope:[cputc]  from
  [16] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C)
  [17] if(cputc::c#0=='
') goto cputc::@1
  to:cputc::@2
cputc::@2: scope:[cputc]  from cputc
  [18] conio_line_text[conio_cursor_x] = cputc::c#0
  [19] conio_line_color[conio_cursor_x] = LIGHT_BLUE
  [20] conio_cursor_x = ++ conio_cursor_x
  [21] if(conio_cursor_x!=$28) goto cputc::@return
  to:cputc::@3
cputc::@3: scope:[cputc]  from cputc::@2
  [22] phi()
  [23] call cputln
  to:cputc::@return
cputc::@return: scope:[cputc]  from cputc::@1 cputc::@2 cputc::@3
  [24] return 
  to:@return
cputc::@1: scope:[cputc]  from cputc
  [25] phi()
  [26] call cputln
  to:cputc::@return

void main()
main: scope:[main]  from __start::@1
  [27] phi()
  [28] call clrscr
  to:main::@1
main::@1: scope:[main]  from main
  [29] phi()
  [30] call printf_str
  to:main::@2
main::@2: scope:[main]  from main::@1
  [31] phi()
  [32] call printf_str
  to:main::@3
main::@3: scope:[main]  from main::@2
  [33] phi()
  [34] call printf_uint
  to:main::@4
main::@4: scope:[main]  from main::@3
  [35] phi()
  [36] call queens
  to:main::@5
main::@5: scope:[main]  from main::@4
  [37] phi()
  [38] call printf_str
  to:main::@6
main::@6: scope:[main]  from main::@5
  [39] printf_ulong::uvalue#0 = count#10
  [40] call printf_ulong
  to:main::@7
main::@7: scope:[main]  from main::@6
  [41] phi()
  [42] call printf_str
  to:main::@return
main::@return: scope:[main]  from main::@7
  [43] return 
  to:@return

void gotoxy(char x , char y)
gotoxy: scope:[gotoxy]  from conio_c64_init::@1 print
  [44] gotoxy::y#4 = phi( conio_c64_init::@1/gotoxy::y#2, print/5 )
  [45] if(gotoxy::y#4<$19+1) goto gotoxy::@3
  to:gotoxy::@1
gotoxy::@3: scope:[gotoxy]  from gotoxy
  [46] phi()
  to:gotoxy::@1
gotoxy::@1: scope:[gotoxy]  from gotoxy gotoxy::@3
  [47] gotoxy::y#5 = phi( gotoxy::@3/gotoxy::y#4, gotoxy/0 )
  to:gotoxy::@2
gotoxy::@2: scope:[gotoxy]  from gotoxy::@1
  [48] conio_cursor_x = 0
  [49] conio_cursor_y = gotoxy::y#5
  [50] gotoxy::$7 = (unsigned int)gotoxy::y#5
  [51] gotoxy::$8 = gotoxy::$7 << 2
  [52] gotoxy::$9 = gotoxy::$8 + gotoxy::$7
  [53] gotoxy::line_offset#0 = gotoxy::$9 << 3
  [54] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0
  [55] conio_line_text = gotoxy::$5
  [56] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0
  [57] conio_line_color = gotoxy::$6
  to:gotoxy::@return
gotoxy::@return: scope:[gotoxy]  from gotoxy::@2
  [58] return 
  to:@return

void cputln()
cputln: scope:[cputln]  from cputc::@1 cputc::@3
  [59] conio_line_text = conio_line_text + $28
  [60] conio_line_color = conio_line_color + $28
  [61] conio_cursor_x = 0
  [62] conio_cursor_y = ++ conio_cursor_y
  [63] call cscroll
  to:cputln::@return
cputln::@return: scope:[cputln]  from cputln
  [64] return 
  to:@return

void clrscr()
clrscr: scope:[clrscr]  from main
  [65] phi()
  to:clrscr::@1
clrscr::@1: scope:[clrscr]  from clrscr clrscr::@5
  [66] clrscr::line_cols#5 = phi( clrscr/COLORRAM, clrscr::@5/clrscr::line_cols#1 )
  [66] clrscr::line_text#5 = phi( clrscr/DEFAULT_SCREEN, clrscr::@5/clrscr::line_text#1 )
  [66] clrscr::l#2 = phi( clrscr/0, clrscr::@5/clrscr::l#1 )
  [67] if(clrscr::l#2<$19) goto clrscr::@3
  to:clrscr::@2
clrscr::@2: scope:[clrscr]  from clrscr::@1
  [68] conio_cursor_x = 0
  [69] conio_cursor_y = 0
  [70] conio_line_text = DEFAULT_SCREEN
  [71] conio_line_color = COLORRAM
  to:clrscr::@return
clrscr::@return: scope:[clrscr]  from clrscr::@2
  [72] return 
  to:@return
clrscr::@3: scope:[clrscr]  from clrscr::@1 clrscr::@4
  [73] clrscr::c#2 = phi( clrscr::@1/0, clrscr::@4/clrscr::c#1 )
  [74] if(clrscr::c#2<$28) goto clrscr::@4
  to:clrscr::@5
clrscr::@5: scope:[clrscr]  from clrscr::@3
  [75] clrscr::line_text#1 = clrscr::line_text#5 + $28
  [76] clrscr::line_cols#1 = clrscr::line_cols#5 + $28
  [77] clrscr::l#1 = ++ clrscr::l#2
  to:clrscr::@1
clrscr::@4: scope:[clrscr]  from clrscr::@3
  [78] clrscr::line_text#5[clrscr::c#2] = ' '
  [79] clrscr::line_cols#5[clrscr::c#2] = LIGHT_BLUE
  [80] clrscr::c#1 = ++ clrscr::c#2
  to:clrscr::@3

void printf_str(void (*putc)(char) , const char *s)
printf_str: scope:[printf_str]  from main::@1 main::@2 main::@5 main::@7 print::@10 print::@11 print::@13 print::@4 print::@8 printf_number_buffer::@5
  [81] printf_str::putc#12 = phi( main::@1/&cputc, main::@2/&cputc, main::@5/&cputc, main::@7/&cputc, print::@10/&cputc, print::@11/&cputc, print::@13/&cputc, print::@4/&cputc, print::@8/&cputc, printf_number_buffer::@5/printf_str::putc#0 )
  [81] printf_str::s#12 = phi( main::@1/main::s, main::@2/main::s1, main::@5/main::s2, main::@7/s3, print::@10/print::s4, print::@11/print::s, print::@13/print::s1, print::@4/s3, print::@8/print::s3, printf_number_buffer::@5/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
  to:printf_str::@1
printf_str::@1: scope:[printf_str]  from printf_str printf_str::@2
  [82] printf_str::s#11 = phi( printf_str/printf_str::s#12, printf_str::@2/printf_str::s#0 )
  [83] printf_str::c#1 = *printf_str::s#11
  [84] printf_str::s#0 = ++ printf_str::s#11
  [85] if(0!=printf_str::c#1) goto printf_str::@2
  to:printf_str::@return
printf_str::@return: scope:[printf_str]  from printf_str::@1
  [86] return 
  to:@return
printf_str::@2: scope:[printf_str]  from printf_str::@1
  [87] stackpush(char) = printf_str::c#1
  [88] callexecute *printf_str::putc#12 
  sideeffect stackpullbytes(1)
  to:printf_str::@1

void printf_uint(void (*putc)(char) , unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
printf_uint: scope:[printf_uint]  from main::@3
  [90] phi()
  to:printf_uint::@1
printf_uint::@1: scope:[printf_uint]  from printf_uint
  [91] *((char *)&printf_buffer) = 0
  [92] call utoa
  to:printf_uint::@2
printf_uint::@2: scope:[printf_uint]  from printf_uint::@1
  [93] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer)
  [94] call printf_number_buffer
  to:printf_uint::@return
printf_uint::@return: scope:[printf_uint]  from printf_uint::@2
  [95] return 
  to:@return

void queens()
queens: scope:[queens]  from main::@4
  [96] phi()
  to:queens::@1
queens::@1: scope:[queens]  from queens queens::@4 queens::@7 queens::@8 queens::@9
  [97] count#10 = phi( queens/0, queens::@4/count#2, queens::@7/count#10, queens::@8/count#10, queens::@9/count#10 )
  [97] queens::row#10 = phi( queens/1, queens::@4/queens::row#10, queens::@7/queens::row#1, queens::@8/queens::row#2, queens::@9/queens::row#10 )
  to:queens::@2
queens::@2: scope:[queens]  from queens::@1
  [98] board[queens::row#10] = ++ board[queens::row#10]
  [99] if(board[queens::row#10]==8+1) goto queens::@3
  to:queens::@5
queens::@5: scope:[queens]  from queens::@2
  [100] legal::row#0 = queens::row#10
  [101] legal::column#0 = board[queens::row#10]
  [102] call legal
  [103] legal::return#0 = legal::return#4
  to:queens::@9
queens::@9: scope:[queens]  from queens::@5
  [104] queens::$2 = legal::return#0
  [105] if(0==queens::$2) goto queens::@1
  to:queens::@6
queens::@6: scope:[queens]  from queens::@9
  [106] if(queens::row#10==8) goto queens::@4
  to:queens::@7
queens::@7: scope:[queens]  from queens::@6
  [107] queens::row#1 = ++ queens::row#10
  to:queens::@1
queens::@4: scope:[queens]  from queens::@6
  [108] count#2 = ++ count#10
  [109] call print
  to:queens::@1
queens::@3: scope:[queens]  from queens::@2
  [110] board[queens::row#10] = 0
  [111] if(queens::row#10==1) goto queens::@return
  to:queens::@8
queens::@8: scope:[queens]  from queens::@3
  [112] queens::row#2 = -- queens::row#10
  to:queens::@1
queens::@return: scope:[queens]  from queens::@3
  [113] return 
  to:@return

void printf_ulong(void (*putc)(char) , unsigned long uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
printf_ulong: scope:[printf_ulong]  from main::@6 print::@12
  [114] printf_ulong::uvalue#2 = phi( main::@6/printf_ulong::uvalue#0, print::@12/printf_ulong::uvalue#1 )
  to:printf_ulong::@1
printf_ulong::@1: scope:[printf_ulong]  from printf_ulong
  [115] *((char *)&printf_buffer) = 0
  [116] ultoa::value#1 = printf_ulong::uvalue#2
  [117] call ultoa
  to:printf_ulong::@2
printf_ulong::@2: scope:[printf_ulong]  from printf_ulong::@1
  [118] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer)
  [119] call printf_number_buffer
  to:printf_ulong::@return
printf_ulong::@return: scope:[printf_ulong]  from printf_ulong::@2
  [120] return 
  to:@return

void cscroll()
cscroll: scope:[cscroll]  from cputln
  [121] if(conio_cursor_y!=$19) goto cscroll::@return
  to:cscroll::@1
cscroll::@1: scope:[cscroll]  from cscroll
  [122] phi()
  [123] call memcpy
  to:cscroll::@2
cscroll::@2: scope:[cscroll]  from cscroll::@1
  [124] phi()
  [125] call memcpy
  to:cscroll::@3
cscroll::@3: scope:[cscroll]  from cscroll::@2
  [126] phi()
  [127] call memset
  to:cscroll::@4
cscroll::@4: scope:[cscroll]  from cscroll::@3
  [128] phi()
  [129] call memset
  to:cscroll::@5
cscroll::@5: scope:[cscroll]  from cscroll::@4
  [130] conio_line_text = conio_line_text - $28
  [131] conio_line_color = conio_line_color - $28
  [132] conio_cursor_y = -- conio_cursor_y
  to:cscroll::@return
cscroll::@return: scope:[cscroll]  from cscroll cscroll::@5
  [133] return 
  to:@return

void utoa(unsigned int value , char *buffer , char radix)
utoa: scope:[utoa]  from printf_uint::@1
  [134] phi()
  to:utoa::@1
utoa::@1: scope:[utoa]  from utoa utoa::@4
  [135] utoa::buffer#11 = phi( utoa::@4/utoa::buffer#14, utoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
  [135] utoa::started#2 = phi( utoa::@4/utoa::started#4, utoa/0 )
  [135] utoa::value#2 = phi( utoa::@4/utoa::value#6, utoa/printf_uint::uvalue#0 )
  [135] utoa::digit#2 = phi( utoa::@4/utoa::digit#1, utoa/0 )
  [136] if(utoa::digit#2<utoa::max_digits#1-1) goto utoa::@2
  to:utoa::@3
utoa::@3: scope:[utoa]  from utoa::@1
  [137] utoa::$11 = (char)utoa::value#2
  [138] *utoa::buffer#11 = DIGITS[utoa::$11]
  [139] utoa::buffer#3 = ++ utoa::buffer#11
  [140] *utoa::buffer#3 = 0
  to:utoa::@return
utoa::@return: scope:[utoa]  from utoa::@3
  [141] return 
  to:@return
utoa::@2: scope:[utoa]  from utoa::@1
  [142] utoa::$10 = utoa::digit#2 << 1
  [143] utoa::digit_value#0 = RADIX_DECIMAL_VALUES[utoa::$10]
  [144] if(0!=utoa::started#2) goto utoa::@5
  to:utoa::@7
utoa::@7: scope:[utoa]  from utoa::@2
  [145] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@5
  to:utoa::@4
utoa::@4: scope:[utoa]  from utoa::@6 utoa::@7
  [146] utoa::buffer#14 = phi( utoa::@7/utoa::buffer#11, utoa::@6/utoa::buffer#4 )
  [146] utoa::started#4 = phi( utoa::@7/utoa::started#2, utoa::@6/1 )
  [146] utoa::value#6 = phi( utoa::@7/utoa::value#2, utoa::@6/utoa::value#0 )
  [147] utoa::digit#1 = ++ utoa::digit#2
  to:utoa::@1
utoa::@5: scope:[utoa]  from utoa::@2 utoa::@7
  [148] utoa_append::buffer#0 = utoa::buffer#11
  [149] utoa_append::value#0 = utoa::value#2
  [150] utoa_append::sub#0 = utoa::digit_value#0
  [151] call utoa_append
  [152] utoa_append::return#0 = utoa_append::value#2
  to:utoa::@6
utoa::@6: scope:[utoa]  from utoa::@5
  [153] utoa::value#0 = utoa_append::return#0
  [154] utoa::buffer#4 = ++ utoa::buffer#11
  to:utoa::@4

void printf_number_buffer(void (*putc)(char) , char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
printf_number_buffer: scope:[printf_number_buffer]  from printf_uchar::@2 printf_uint::@2 printf_ulong::@2
  [155] printf_number_buffer::format_upper_case#10 = phi( printf_uchar::@2/0, printf_uint::@2/printf_uint::format_upper_case#0, printf_ulong::@2/0 )
  [155] printf_number_buffer::putc#10 = phi( printf_uchar::@2/&cputc, printf_uint::@2/printf_uint::putc#0, printf_ulong::@2/&cputc )
  [155] printf_number_buffer::buffer_sign#10 = phi( printf_uchar::@2/printf_number_buffer::buffer_sign#2, printf_uint::@2/printf_number_buffer::buffer_sign#1, printf_ulong::@2/printf_number_buffer::buffer_sign#0 )
  [155] printf_number_buffer::format_zero_padding#10 = phi( printf_uchar::@2/0, printf_uint::@2/printf_uint::format_zero_padding#0, printf_ulong::@2/0 )
  [155] printf_number_buffer::format_justify_left#10 = phi( printf_uchar::@2/0, printf_uint::@2/printf_uint::format_justify_left#0, printf_ulong::@2/0 )
  [155] printf_number_buffer::format_min_length#3 = phi( printf_uchar::@2/0, printf_uint::@2/printf_uint::format_min_length#0, printf_ulong::@2/0 )
  [156] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1
  to:printf_number_buffer::@6
printf_number_buffer::@6: scope:[printf_number_buffer]  from printf_number_buffer
  [157] phi()
  [158] call strlen
  [159] strlen::return#2 = strlen::len#2
  to:printf_number_buffer::@14
printf_number_buffer::@14: scope:[printf_number_buffer]  from printf_number_buffer::@6
  [160] printf_number_buffer::$19 = strlen::return#2
  [161] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19
  [162] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13
  to:printf_number_buffer::@7
printf_number_buffer::@7: scope:[printf_number_buffer]  from printf_number_buffer::@14
  [163] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0
  to:printf_number_buffer::@13
printf_number_buffer::@13: scope:[printf_number_buffer]  from printf_number_buffer::@14 printf_number_buffer::@7
  [164] printf_number_buffer::len#2 = phi( printf_number_buffer::@14/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 )
  [165] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2
  [166] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21
  to:printf_number_buffer::@1
printf_number_buffer::@21: scope:[printf_number_buffer]  from printf_number_buffer::@13
  [167] phi()
  to:printf_number_buffer::@1
printf_number_buffer::@1: scope:[printf_number_buffer]  from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21
  [168] printf_number_buffer::padding#10 = phi( printf_number_buffer/0, printf_number_buffer::@21/printf_number_buffer::padding#1, printf_number_buffer::@13/0 )
  [169] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2
  to:printf_number_buffer::@17
printf_number_buffer::@17: scope:[printf_number_buffer]  from printf_number_buffer::@1
  [170] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2
  to:printf_number_buffer::@16
printf_number_buffer::@16: scope:[printf_number_buffer]  from printf_number_buffer::@17
  [171] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
  to:printf_number_buffer::@2
printf_number_buffer::@8: scope:[printf_number_buffer]  from printf_number_buffer::@16
  [172] printf_padding::putc#0 = printf_number_buffer::putc#10
  [173] printf_padding::length#0 = (char)printf_number_buffer::padding#10
  [174] call printf_padding
  to:printf_number_buffer::@2
printf_number_buffer::@2: scope:[printf_number_buffer]  from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8
  [175] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3
  to:printf_number_buffer::@9
printf_number_buffer::@9: scope:[printf_number_buffer]  from printf_number_buffer::@2
  [176] stackpush(char) = printf_number_buffer::buffer_sign#10
  [177] callexecute *printf_number_buffer::putc#10 
  sideeffect stackpullbytes(1)
  to:printf_number_buffer::@3
printf_number_buffer::@3: scope:[printf_number_buffer]  from printf_number_buffer::@2 printf_number_buffer::@9
  [179] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4
  to:printf_number_buffer::@18
printf_number_buffer::@18: scope:[printf_number_buffer]  from printf_number_buffer::@3
  [180] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
  to:printf_number_buffer::@4
printf_number_buffer::@10: scope:[printf_number_buffer]  from printf_number_buffer::@18
  [181] printf_padding::putc#1 = printf_number_buffer::putc#10
  [182] printf_padding::length#1 = (char)printf_number_buffer::padding#10
  [183] call printf_padding
  to:printf_number_buffer::@4
printf_number_buffer::@4: scope:[printf_number_buffer]  from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3
  [184] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5
  to:printf_number_buffer::@11
printf_number_buffer::@11: scope:[printf_number_buffer]  from printf_number_buffer::@4
  [185] phi()
  [186] call strupr
  to:printf_number_buffer::@5
printf_number_buffer::@5: scope:[printf_number_buffer]  from printf_number_buffer::@11 printf_number_buffer::@4
  [187] printf_str::putc#0 = printf_number_buffer::putc#10
  [188] call printf_str
  to:printf_number_buffer::@15
printf_number_buffer::@15: scope:[printf_number_buffer]  from printf_number_buffer::@5
  [189] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return
  to:printf_number_buffer::@20
printf_number_buffer::@20: scope:[printf_number_buffer]  from printf_number_buffer::@15
  [190] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return
  to:printf_number_buffer::@19
printf_number_buffer::@19: scope:[printf_number_buffer]  from printf_number_buffer::@20
  [191] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
  to:printf_number_buffer::@return
printf_number_buffer::@12: scope:[printf_number_buffer]  from printf_number_buffer::@19
  [192] printf_padding::putc#2 = printf_number_buffer::putc#10
  [193] printf_padding::length#2 = (char)printf_number_buffer::padding#10
  [194] call printf_padding
  to:printf_number_buffer::@return
printf_number_buffer::@return: scope:[printf_number_buffer]  from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20
  [195] return 
  to:@return

char legal(char row , char column)
legal: scope:[legal]  from queens::@5
  [196] phi()
  to:legal::@1
legal::@1: scope:[legal]  from legal legal::@3
  [197] legal::i#10 = phi( legal/1, legal::@3/legal::i#1 )
  [198] legal::$0 = legal::row#0 - 1
  [199] if(legal::i#10<=legal::$0) goto legal::@2
  to:legal::@return
legal::@return: scope:[legal]  from legal::@1 legal::@2 legal::@5
  [200] legal::return#4 = phi( legal::@1/1, legal::@2/0, legal::@5/0 )
  [201] return 
  to:@return
legal::@2: scope:[legal]  from legal::@1
  [202] if(board[legal::i#10]==legal::column#0) goto legal::@return
  to:legal::@4
legal::@4: scope:[legal]  from legal::@2
  [203] legal::diff1_a#0 = board[legal::i#10]
  to:legal::diff1
legal::diff1: scope:[legal]  from legal::@4
  [204] if(legal::diff1_a#0<legal::column#0) goto legal::diff1_@1
  to:legal::diff1_@3
legal::diff1_@3: scope:[legal]  from legal::diff1
  [205] legal::diff1_return#1 = legal::diff1_a#0 - legal::column#0
  to:legal::diff1_@return
legal::diff1_@return: scope:[legal]  from legal::diff1_@1 legal::diff1_@3
  [206] legal::diff1_return#2 = phi( legal::diff1_@1/legal::diff1_return#0, legal::diff1_@3/legal::diff1_return#1 )
  to:legal::diff2
legal::diff2: scope:[legal]  from legal::diff1_@return
  [207] if(legal::i#10<legal::row#0) goto legal::diff2_@1
  to:legal::diff2_@3
legal::diff2_@3: scope:[legal]  from legal::diff2
  [208] legal::diff2_return#1 = legal::i#10 - legal::row#0
  to:legal::diff2_@return
legal::diff2_@return: scope:[legal]  from legal::diff2_@1 legal::diff2_@3
  [209] legal::diff2_return#2 = phi( legal::diff2_@1/legal::diff2_return#0, legal::diff2_@3/legal::diff2_return#1 )
  to:legal::@5
legal::@5: scope:[legal]  from legal::diff2_@return
  [210] if(legal::diff1_return#2!=legal::diff2_return#2) goto legal::@3
  to:legal::@return
legal::@3: scope:[legal]  from legal::@5
  [211] legal::i#1 = ++ legal::i#10
  to:legal::@1
legal::diff2_@1: scope:[legal]  from legal::diff2
  [212] legal::diff2_return#0 = legal::row#0 - legal::i#10
  to:legal::diff2_@return
legal::diff1_@1: scope:[legal]  from legal::diff1
  [213] legal::diff1_return#0 = legal::column#0 - legal::diff1_a#0
  to:legal::diff1_@return

void print()
print: scope:[print]  from queens::@4
  [214] phi()
  [215] call gotoxy
  to:print::@11
print::@11: scope:[print]  from print
  [216] phi()
  [217] call printf_str
  to:print::@12
print::@12: scope:[print]  from print::@11
  [218] printf_ulong::uvalue#1 = count#2
  [219] call printf_ulong
  to:print::@13
print::@13: scope:[print]  from print::@12
  [220] phi()
  [221] call printf_str
  to:print::@1
print::@1: scope:[print]  from print::@13 print::@14
  [222] print::i#2 = phi( print::@13/1, print::@14/print::i#1 )
  [223] if(print::i#2<8+1) goto print::@2
  to:print::@3
print::@3: scope:[print]  from print::@1 print::@7
  [224] print::i1#2 = phi( print::@1/1, print::@7/print::i1#1 )
  [225] if(print::i1#2<8+1) goto print::@4
  to:print::@return
print::@return: scope:[print]  from print::@3
  [226] return 
  to:@return
print::@4: scope:[print]  from print::@3
  [227] phi()
  [228] call printf_str
  to:print::@15
print::@15: scope:[print]  from print::@4
  [229] printf_uchar::uvalue#1 = print::i1#2
  [230] call printf_uchar
  to:print::@5
print::@5: scope:[print]  from print::@15 print::@9
  [231] print::j#2 = phi( print::@9/print::j#1, print::@15/1 )
  [232] if(print::j#2<8+1) goto print::@6
  to:print::@7
print::@7: scope:[print]  from print::@5
  [233] print::i1#1 = ++ print::i1#2
  to:print::@3
print::@6: scope:[print]  from print::@5
  [234] if(board[print::i1#2]==print::j#2) goto print::@8
  to:print::@10
print::@10: scope:[print]  from print::@6
  [235] phi()
  [236] call printf_str
  to:print::@9
print::@9: scope:[print]  from print::@10 print::@8
  [237] print::j#1 = ++ print::j#2
  to:print::@5
print::@8: scope:[print]  from print::@6
  [238] phi()
  [239] call printf_str
  to:print::@9
print::@2: scope:[print]  from print::@1
  [240] printf_uchar::uvalue#0 = print::i#2
  [241] call printf_uchar
  to:print::@14
print::@14: scope:[print]  from print::@2
  [242] print::i#1 = ++ print::i#2
  to:print::@1

void ultoa(unsigned long value , char *buffer , char radix)
ultoa: scope:[ultoa]  from printf_ulong::@1
  [243] phi()
  to:ultoa::@1
ultoa::@1: scope:[ultoa]  from ultoa ultoa::@4
  [244] ultoa::buffer#11 = phi( ultoa::@4/ultoa::buffer#14, ultoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
  [244] ultoa::started#2 = phi( ultoa::@4/ultoa::started#4, ultoa/0 )
  [244] ultoa::value#2 = phi( ultoa::@4/ultoa::value#6, ultoa/ultoa::value#1 )
  [244] ultoa::digit#2 = phi( ultoa::@4/ultoa::digit#1, ultoa/0 )
  [245] if(ultoa::digit#2<$a-1) goto ultoa::@2
  to:ultoa::@3
ultoa::@3: scope:[ultoa]  from ultoa::@1
  [246] ultoa::$11 = (char)ultoa::value#2
  [247] *ultoa::buffer#11 = DIGITS[ultoa::$11]
  [248] ultoa::buffer#3 = ++ ultoa::buffer#11
  [249] *ultoa::buffer#3 = 0
  to:ultoa::@return
ultoa::@return: scope:[ultoa]  from ultoa::@3
  [250] return 
  to:@return
ultoa::@2: scope:[ultoa]  from ultoa::@1
  [251] ultoa::$10 = ultoa::digit#2 << 2
  [252] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10]
  [253] if(0!=ultoa::started#2) goto ultoa::@5
  to:ultoa::@7
ultoa::@7: scope:[ultoa]  from ultoa::@2
  [254] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5
  to:ultoa::@4
ultoa::@4: scope:[ultoa]  from ultoa::@6 ultoa::@7
  [255] ultoa::buffer#14 = phi( ultoa::@7/ultoa::buffer#11, ultoa::@6/ultoa::buffer#4 )
  [255] ultoa::started#4 = phi( ultoa::@7/ultoa::started#2, ultoa::@6/1 )
  [255] ultoa::value#6 = phi( ultoa::@7/ultoa::value#2, ultoa::@6/ultoa::value#0 )
  [256] ultoa::digit#1 = ++ ultoa::digit#2
  to:ultoa::@1
ultoa::@5: scope:[ultoa]  from ultoa::@2 ultoa::@7
  [257] ultoa_append::buffer#0 = ultoa::buffer#11
  [258] ultoa_append::value#0 = ultoa::value#2
  [259] ultoa_append::sub#0 = ultoa::digit_value#0
  [260] call ultoa_append
  [261] ultoa_append::return#0 = ultoa_append::value#2
  to:ultoa::@6
ultoa::@6: scope:[ultoa]  from ultoa::@5
  [262] ultoa::value#0 = ultoa_append::return#0
  [263] ultoa::buffer#4 = ++ ultoa::buffer#11
  to:ultoa::@4

void * memcpy(void *destination , void *source , unsigned int num)
memcpy: scope:[memcpy]  from cscroll::@1 cscroll::@2
  [264] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM )
  [264] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 )
  [265] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28
  [266] memcpy::src#4 = (char *)memcpy::source#2
  [267] memcpy::dst#4 = (char *)memcpy::destination#2
  to:memcpy::@1
memcpy::@1: scope:[memcpy]  from memcpy memcpy::@2
  [268] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 )
  [268] memcpy::src#2 = phi( memcpy/memcpy::src#4, memcpy::@2/memcpy::src#1 )
  [269] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2
  to:memcpy::@return
memcpy::@return: scope:[memcpy]  from memcpy::@1
  [270] return 
  to:@return
memcpy::@2: scope:[memcpy]  from memcpy::@1
  [271] *memcpy::dst#2 = *memcpy::src#2
  [272] memcpy::dst#1 = ++ memcpy::dst#2
  [273] memcpy::src#1 = ++ memcpy::src#2
  to:memcpy::@1

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from cscroll::@3 cscroll::@4
  [274] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE )
  [274] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 )
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [275] memset::end#0 = (char *)memset::str#3 + $28
  [276] memset::dst#4 = (char *)memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [277] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
  [278] if(memset::dst#2!=memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset::@2
  [279] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [280] *memset::dst#2 = memset::c#4
  [281] memset::dst#1 = ++ memset::dst#2
  to:memset::@2

unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub)
utoa_append: scope:[utoa_append]  from utoa::@5
  [282] phi()
  to:utoa_append::@1
utoa_append::@1: scope:[utoa_append]  from utoa_append utoa_append::@2
  [283] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 )
  [283] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 )
  [284] 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
  [285] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2]
  to:utoa_append::@return
utoa_append::@return: scope:[utoa_append]  from utoa_append::@3
  [286] return 
  to:@return
utoa_append::@2: scope:[utoa_append]  from utoa_append::@1
  [287] utoa_append::digit#1 = ++ utoa_append::digit#2
  [288] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0
  to:utoa_append::@1

unsigned int strlen(char *str)
strlen: scope:[strlen]  from printf_number_buffer::@6
  [289] phi()
  to:strlen::@1
strlen::@1: scope:[strlen]  from strlen strlen::@2
  [290] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 )
  [290] strlen::str#2 = phi( strlen/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, strlen::@2/strlen::str#0 )
  [291] if(0!=*strlen::str#2) goto strlen::@2
  to:strlen::@return
strlen::@return: scope:[strlen]  from strlen::@1
  [292] return 
  to:@return
strlen::@2: scope:[strlen]  from strlen::@1
  [293] strlen::len#1 = ++ strlen::len#2
  [294] strlen::str#0 = ++ strlen::str#2
  to:strlen::@1

void printf_padding(void (*putc)(char) , char pad , char length)
printf_padding: scope:[printf_padding]  from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8
  [295] printf_padding::putc#5 = phi( printf_number_buffer::@10/printf_padding::putc#1, printf_number_buffer::@12/printf_padding::putc#2, printf_number_buffer::@8/printf_padding::putc#0 )
  [295] printf_padding::pad#5 = phi( printf_number_buffer::@10/'0', printf_number_buffer::@12/' ', printf_number_buffer::@8/' ' )
  [295] printf_padding::length#4 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 )
  to:printf_padding::@1
printf_padding::@1: scope:[printf_padding]  from printf_padding printf_padding::@3
  [296] printf_padding::i#2 = phi( printf_padding/0, printf_padding::@3/printf_padding::i#1 )
  [297] if(printf_padding::i#2<printf_padding::length#4) goto printf_padding::@2
  to:printf_padding::@return
printf_padding::@return: scope:[printf_padding]  from printf_padding::@1
  [298] return 
  to:@return
printf_padding::@2: scope:[printf_padding]  from printf_padding::@1
  [299] stackpush(char) = printf_padding::pad#5
  [300] callexecute *printf_padding::putc#5 
  sideeffect stackpullbytes(1)
  to:printf_padding::@3
printf_padding::@3: scope:[printf_padding]  from printf_padding::@2
  [302] printf_padding::i#1 = ++ printf_padding::i#2
  to:printf_padding::@1

char * strupr(char *str)
strupr: scope:[strupr]  from printf_number_buffer::@11
  [303] phi()
  to:strupr::@1
strupr::@1: scope:[strupr]  from strupr strupr::@3
  [304] strupr::src#2 = phi( strupr/strupr::str#0, strupr::@3/strupr::src#1 )
  [305] if(0!=*strupr::src#2) goto strupr::@2
  to:strupr::@return
strupr::@return: scope:[strupr]  from strupr::@1
  [306] return 
  to:@return
strupr::@2: scope:[strupr]  from strupr::@1
  [307] toupper::ch#0 = *strupr::src#2
  [308] call toupper
  [309] toupper::return#3 = toupper::return#2
  to:strupr::@3
strupr::@3: scope:[strupr]  from strupr::@2
  [310] strupr::$0 = toupper::return#3
  [311] *strupr::src#2 = strupr::$0
  [312] strupr::src#1 = ++ strupr::src#2
  to:strupr::@1

void printf_uchar(void (*putc)(char) , char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
printf_uchar: scope:[printf_uchar]  from print::@15 print::@2
  [313] printf_uchar::uvalue#2 = phi( print::@15/printf_uchar::uvalue#1, print::@2/printf_uchar::uvalue#0 )
  to:printf_uchar::@1
printf_uchar::@1: scope:[printf_uchar]  from printf_uchar
  [314] *((char *)&printf_buffer) = 0
  [315] uctoa::value#1 = printf_uchar::uvalue#2
  [316] call uctoa
  to:printf_uchar::@2
printf_uchar::@2: scope:[printf_uchar]  from printf_uchar::@1
  [317] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer)
  [318] call printf_number_buffer
  to:printf_uchar::@return
printf_uchar::@return: scope:[printf_uchar]  from printf_uchar::@2
  [319] return 
  to:@return

unsigned long ultoa_append(char *buffer , unsigned long value , unsigned long sub)
ultoa_append: scope:[ultoa_append]  from ultoa::@5
  [320] phi()
  to:ultoa_append::@1
ultoa_append::@1: scope:[ultoa_append]  from ultoa_append ultoa_append::@2
  [321] ultoa_append::digit#2 = phi( ultoa_append/0, ultoa_append::@2/ultoa_append::digit#1 )
  [321] ultoa_append::value#2 = phi( ultoa_append/ultoa_append::value#0, ultoa_append::@2/ultoa_append::value#1 )
  [322] 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
  [323] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2]
  to:ultoa_append::@return
ultoa_append::@return: scope:[ultoa_append]  from ultoa_append::@3
  [324] return 
  to:@return
ultoa_append::@2: scope:[ultoa_append]  from ultoa_append::@1
  [325] ultoa_append::digit#1 = ++ ultoa_append::digit#2
  [326] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0
  to:ultoa_append::@1

char toupper(char ch)
toupper: scope:[toupper]  from strupr::@2
  [327] if(toupper::ch#0<'a') goto toupper::@return
  to:toupper::@2
toupper::@2: scope:[toupper]  from toupper
  [328] if(toupper::ch#0<='z') goto toupper::@1
  to:toupper::@return
toupper::@1: scope:[toupper]  from toupper::@2
  [329] toupper::return#0 = toupper::ch#0 + 'A'-'a'
  to:toupper::@return
toupper::@return: scope:[toupper]  from toupper toupper::@1 toupper::@2
  [330] toupper::return#2 = phi( toupper::@1/toupper::return#0, toupper/toupper::ch#0, toupper::@2/toupper::ch#0 )
  [331] return 
  to:@return

void uctoa(char value , char *buffer , char radix)
uctoa: scope:[uctoa]  from printf_uchar::@1
  [332] phi()
  to:uctoa::@1
uctoa::@1: scope:[uctoa]  from uctoa uctoa::@4
  [333] uctoa::buffer#11 = phi( uctoa::@4/uctoa::buffer#14, uctoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
  [333] uctoa::started#2 = phi( uctoa::@4/uctoa::started#4, uctoa/0 )
  [333] uctoa::value#2 = phi( uctoa::@4/uctoa::value#6, uctoa/uctoa::value#1 )
  [333] uctoa::digit#2 = phi( uctoa::@4/uctoa::digit#1, uctoa/0 )
  [334] if(uctoa::digit#2<2-1) goto uctoa::@2
  to:uctoa::@3
uctoa::@3: scope:[uctoa]  from uctoa::@1
  [335] *uctoa::buffer#11 = DIGITS[uctoa::value#2]
  [336] uctoa::buffer#3 = ++ uctoa::buffer#11
  [337] *uctoa::buffer#3 = 0
  to:uctoa::@return
uctoa::@return: scope:[uctoa]  from uctoa::@3
  [338] return 
  to:@return
uctoa::@2: scope:[uctoa]  from uctoa::@1
  [339] uctoa::digit_value#0 = RADIX_HEXADECIMAL_VALUES_CHAR[uctoa::digit#2]
  [340] if(0!=uctoa::started#2) goto uctoa::@5
  to:uctoa::@7
uctoa::@7: scope:[uctoa]  from uctoa::@2
  [341] if(uctoa::value#2>=uctoa::digit_value#0) goto uctoa::@5
  to:uctoa::@4
uctoa::@4: scope:[uctoa]  from uctoa::@6 uctoa::@7
  [342] uctoa::buffer#14 = phi( uctoa::@7/uctoa::buffer#11, uctoa::@6/uctoa::buffer#4 )
  [342] uctoa::started#4 = phi( uctoa::@7/uctoa::started#2, uctoa::@6/1 )
  [342] uctoa::value#6 = phi( uctoa::@7/uctoa::value#2, uctoa::@6/uctoa::value#0 )
  [343] uctoa::digit#1 = ++ uctoa::digit#2
  to:uctoa::@1
uctoa::@5: scope:[uctoa]  from uctoa::@2 uctoa::@7
  [344] uctoa_append::buffer#0 = uctoa::buffer#11
  [345] uctoa_append::value#0 = uctoa::value#2
  [346] uctoa_append::sub#0 = uctoa::digit_value#0
  [347] call uctoa_append
  [348] uctoa_append::return#0 = uctoa_append::value#2
  to:uctoa::@6
uctoa::@6: scope:[uctoa]  from uctoa::@5
  [349] uctoa::value#0 = uctoa_append::return#0
  [350] uctoa::buffer#4 = ++ uctoa::buffer#11
  to:uctoa::@4

char uctoa_append(char *buffer , char value , char sub)
uctoa_append: scope:[uctoa_append]  from uctoa::@5
  [351] phi()
  to:uctoa_append::@1
uctoa_append::@1: scope:[uctoa_append]  from uctoa_append uctoa_append::@2
  [352] uctoa_append::digit#2 = phi( uctoa_append/0, uctoa_append::@2/uctoa_append::digit#1 )
  [352] uctoa_append::value#2 = phi( uctoa_append/uctoa_append::value#0, uctoa_append::@2/uctoa_append::value#1 )
  [353] if(uctoa_append::value#2>=uctoa_append::sub#0) goto uctoa_append::@2
  to:uctoa_append::@3
uctoa_append::@3: scope:[uctoa_append]  from uctoa_append::@1
  [354] *uctoa_append::buffer#0 = DIGITS[uctoa_append::digit#2]
  to:uctoa_append::@return
uctoa_append::@return: scope:[uctoa_append]  from uctoa_append::@3
  [355] return 
  to:@return
uctoa_append::@2: scope:[uctoa_append]  from uctoa_append::@1
  [356] uctoa_append::digit#1 = ++ uctoa_append::digit#2
  [357] uctoa_append::value#1 = uctoa_append::value#2 - uctoa_append::sub#0
  to:uctoa_append::@1
