@begin: scope:[] from [0] (byte) idx ← (byte) 0 to:@1 @1: scope:[] from @begin [1] phi() [2] callexecute main to:@end @end: scope:[] from @1 [3] phi() __stackcall (void()) print((byte) print::v_p1_x , (byte) print::v_p1_y , (byte) print::v_p2_x , (byte) print::v_p2_y) print: scope:[print] from [4] (byte) print::v_p1_x#0 ← stackidx(byte,(const byte) print::OFFSET_STACK_V_P1_X) [5] (byte) print::v_p1_y#0 ← stackidx(byte,(const byte) print::OFFSET_STACK_V_P1_Y) [6] (byte) print::v_p2_x#0 ← stackidx(byte,(const byte) print::OFFSET_STACK_V_P2_X) [7] (byte) print::v_p2_y#0 ← stackidx(byte,(const byte) print::OFFSET_STACK_V_P2_Y) [8] *((const nomodify byte*) SCREEN + (byte) idx) ← (byte) print::v_p1_x#0 [9] (byte) idx ← ++ (byte) idx [10] *((const nomodify byte*) SCREEN + (byte) idx) ← (byte) print::v_p1_y#0 [11] (byte) idx ← ++ (byte) idx [12] *((const nomodify byte*) SCREEN + (byte) idx) ← (byte) print::v_p2_x#0 [13] (byte) idx ← ++ (byte) idx [14] *((const nomodify byte*) SCREEN + (byte) idx) ← (byte) print::v_p2_y#0 [15] (byte) idx ← ++ (byte) idx [16] *((const nomodify byte*) SCREEN + (byte) idx) ← (byte) ' ' [17] (byte) idx ← ++ (byte) idx to:print::@return print::@return: scope:[print] from print [18] return to:@return __stackcall (struct Vector()) get((byte) get::i) get: scope:[get] from [19] (byte) get::return_p1_x#0 ← stackidx(byte,(const byte) get::OFFSET_STACK_I) [20] (byte) get::return_p1_y#0 ← (byte) get::return_p1_x#0 >> (byte) 1 [21] (byte) get::return_p2_x#0 ← (byte) get::return_p1_x#0 + (byte) 1 [22] (byte) get::return_p2_y#0 ← (byte) get::return_p1_x#0 << (byte) 1 to:get::@return get::@return: scope:[get] from get [23] stackidx(byte,(byte) 0) ← (byte) get::return_p1_x#0 [24] stackidx(byte,(const byte) OFFSET_STRUCT_POINT_Y) ← (byte) get::return_p1_y#0 [25] stackidx(byte,(const byte) OFFSET_STRUCT_VECTOR_P2) ← (byte) get::return_p2_x#0 [26] stackidx(byte,(const byte) OFFSET_STRUCT_VECTOR_P2+(const byte) OFFSET_STRUCT_POINT_Y) ← (byte) get::return_p2_y#0 [27] return to:@return __stackcall (void()) main() main: scope:[main] from [28] phi() to:main::@1 main::@1: scope:[main] from main main::@2 [29] (byte) main::i#2 ← phi( main/(byte) 0 main::@2/(byte) main::i#1 ) [30] if((byte) main::i#2<(byte) 5) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [31] return to:@return main::@2: scope:[main] from main::@1 [32] stackpush(byte) ← (byte) main::i#2 sideeffect stackpushbytes((number) 3) [34] callexecute get [35] (byte) main::v_p1_x#0 ← stackpull(byte) [36] (byte) main::v_p1_y#0 ← stackpull(byte) [37] (byte) main::v_p2_x#0 ← stackpull(byte) [38] (byte) main::v_p2_y#0 ← stackpull(byte) [39] stackpush(byte) ← (byte) main::v_p1_x#0 [40] stackpush(byte) ← (byte) main::v_p1_y#0 [41] stackpush(byte) ← (byte) main::v_p2_x#0 [42] stackpush(byte) ← (byte) main::v_p2_y#0 [43] callexecute print sideeffect stackpullbytes((number) 4) [45] (byte) main::i#1 ← ++ (byte) main::i#2 to:main::@1