
void main()
main: scope:[main]  from
  asm { sei  }
  [1] call memset
  to:main::@1
main::@1: scope:[main]  from main main::@1 main::@5
  [2] main::row#6 = phi( main/DEFAULT_SCREEN, main::@5/main::row#1, main::@1/DEFAULT_SCREEN )
  [2] main::y#2 = phi( main/0, main::@5/main::y#1, main::@1/0 )
  [3] if(main::y#2<8) goto main::@2
  to:main::@1
main::@2: scope:[main]  from main::@1
  [4] main::$2 = 1 << main::y#2
  [5] main::$3 = $ff ^ main::$2
  [6] *KEYBOARD_SCAN = main::$3
  [7] *KEYBOARD_INPUT = 0
  [8] main::key_bit#0 = *KEYBOARD_INPUT ^ $ff
  to:main::@3
main::@3: scope:[main]  from main::@2 main::@6
  [9] main::key_bit#2 = phi( main::@2/main::key_bit#0, main::@6/main::key_bit#1 )
  [9] main::x#2 = phi( main::@2/0, main::@6/main::x#1 )
  [10] if(main::x#2<8) goto main::@4
  to:main::@5
main::@5: scope:[main]  from main::@3
  [11] main::row#1 = main::row#6 + $28
  [12] main::y#1 = ++ main::y#2
  to:main::@1
main::@4: scope:[main]  from main::@3
  [13] main::$6 = main::key_bit#2 & $80
  [14] if(0==main::$6) goto main::@6
  to:main::@7
main::@7: scope:[main]  from main::@4
  [15] main::row#6[main::x#2] = '*'
  to:main::@6
main::@6: scope:[main]  from main::@4 main::@7
  [16] main::key_bit#1 = main::key_bit#2 << 1
  [17] main::x#1 = ++ main::x#2
  to:main::@3

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from main
  [18] phi()
  to:memset::@1
memset::@1: scope:[memset]  from memset memset::@2
  [19] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 )
  [20] if(memset::dst#2!=memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [21] return 
  to:@return
memset::@2: scope:[memset]  from memset::@1
  [22] *memset::dst#2 = memset::c#0
  [23] memset::dst#1 = ++ memset::dst#2
  to:memset::@1
