@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] *((const byte*) VIC_MEMORY) ← (byte) $14
  [5] call memset 
  to:main::@6
main::@6: scope:[main]  from main
  [6] phi()
  [7] call memset 
  to:main::@1
main::@1: scope:[main]  from main::@2 main::@6
  [8] (byte*) main::sc#2 ← phi( main::@6/(const byte*) SCREEN+(byte) $28 main::@2/(byte*) main::sc#1 )
  [8] (byte*) main::msg#2 ← phi( main::@6/(const byte*) MESSAGE main::@2/(byte*) main::msg#1 )
  [9] if((byte) 0!=*((byte*) main::msg#2)) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@1 main::@4 main::@5
  [10] if(*((const byte*) RASTER)==(byte) $36) goto main::@4
  to:main::@7
main::@7: scope:[main]  from main::@3
  [11] if(*((const byte*) RASTER)==(byte) $42) goto main::@4
  to:main::@5
main::@5: scope:[main]  from main::@7
  [12] *((const byte*) BGCOL) ← (const byte) BLACK
  to:main::@3
main::@4: scope:[main]  from main::@3 main::@7
  [13] *((const byte*) BGCOL) ← (const byte) WHITE
  to:main::@3
main::@2: scope:[main]  from main::@1
  [14] *((byte*) main::sc#2) ← *((byte*) main::msg#2)
  [15] (byte*) main::sc#1 ← ++ (byte*) main::sc#2
  [16] (byte*) main::msg#1 ← ++ (byte*) main::msg#2
  to:main::@1

(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset]  from main main::@6
  [17] (byte) memset::c#4 ← phi( main/(byte) ' ' main::@6/(const byte) WHITE )
  [17] (void*) memset::str#3 ← phi( main/(void*)(const byte*) SCREEN main::@6/(void*)(const byte*) COLS )
  [17] (word) memset::num#2 ← phi( main/(word)(number) $28*(number) $19 main::@6/(word)(number) $28*(number) $19 )
  [18] if((word) memset::num#2<=(byte) 0) goto memset::@return
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [19] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2
  [20] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [21] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 )
  [22] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset memset::@2
  [23] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [24] *((byte*) memset::dst#2) ← (byte) memset::c#4
  [25] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
  to:memset::@2

(void()) syscall2()
syscall2: scope:[syscall2]  from
  [26] *((const byte*) SCREEN+(byte) $4e) ← (byte) '<'
  to:syscall2::@return
syscall2::@return: scope:[syscall2]  from syscall2
  [27] return 
  to:@return

(void()) syscall1()
syscall1: scope:[syscall1]  from
  [28] *((const byte*) SCREEN+(byte) $4f) ← (byte) '>'
  to:syscall1::@return
syscall1::@return: scope:[syscall1]  from syscall1
  [29] return 
  to:@return
