Fixing pointer addition (word*~) bsearch16u::$7 ← (word*) bsearch16u::items + (byte~) bsearch16u::$6
Fixing pointer addition (word*~) bsearch16u::$15 ← (word*) bsearch16u::pivot + (number) 1
Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items - (number) 1
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
Fixing pointer array-indexing *((word[MAX_OBJECTS]) OBJ_WORLD_X + (byte) move_enemy::obj_slot)
Fixing pointer array-indexing *((word[MAX_OBJECTS]) OBJ_WORLD_X + (byte) move_enemy::obj_slot)
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
Identified constant variable (byte*) HEAP_TOP
Culled Empty Block (label) @1
Culled Empty Block (label) @2
Culled Empty Block (label) @3
Culled Empty Block (label) @4
Culled Empty Block (label) @5
Culled Empty Block (label) @6
Culled Empty Block (label) @7
Culled Empty Block (label) @8
Culled Empty Block (label) @9
Culled Empty Block (label) @10
Culled Empty Block (label) @11
Culled Empty Block (label) @12
Culled Empty Block (label) @13
Culled Empty Block (label) @14
Culled Empty Block (label) @15
Culled Empty Block (label) @16
Culled Empty Block (label) @17
Culled Empty Block (label) @18
Culled Empty Block (label) @19
Culled Empty Block (label) @20
Culled Empty Block (label) @21
Culled Empty Block (label) @22
Culled Empty Block (label) @23
Culled Empty Block (label) @24
Culled Empty Block (label) @25
Culled Empty Block (label) @26
Culled Empty Block (label) @27
Culled Empty Block (label) @28
Culled Empty Block (label) @29
Culled Empty Block (label) @30
Culled Empty Block (label) @31
Culled Empty Block (label) @32
Culled Empty Block (label) @33
Culled Empty Block (label) @34
Culled Empty Block (label) main::@2
Culled Empty Block (label) @36
Culled Empty Block (label) move_enemy::@1
Culled Empty Block (label) @37

CONTROL FLOW GRAPH SSA
@begin: scope:[]  from
  to:@35
@35: scope:[]  from @begin
  (byte) MAX_OBJECTS#0 ← (number) $10
  (word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 ← { fill( MAX_OBJECTS#0, 0) }
  to:@38
main: scope:[main]  from @38
  (byte) main::i#0 ← (byte) 0
  to:main::@1
main::@1: scope:[main]  from main main::@3
  (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@3/(byte) main::i#1 )
  (byte) move_enemy::obj_slot#0 ← (byte) main::i#2
  call move_enemy 
  (bool) move_enemy::return#0 ← (bool) move_enemy::return#2
  to:main::@3
main::@3: scope:[main]  from main::@1
  (byte) main::i#3 ← phi( main::@1/(byte) main::i#2 )
  (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,5)
  (bool~) main::$1 ← (byte) main::i#1 != rangelast(0,5)
  if((bool~) main::$1) goto main::@1
  to:main::@return
main::@return: scope:[main]  from main::@3
  return 
  to:@return
move_enemy: scope:[move_enemy]  from main::@1
  (byte) move_enemy::obj_slot#1 ← phi( main::@1/(byte) move_enemy::obj_slot#0 )
  (byte~) move_enemy::$0 ← (byte) move_enemy::obj_slot#1 * (const byte) SIZEOF_WORD
  *((word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) ← *((word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) - (number) 1
  (bool) move_enemy::return#1 ← true
  to:move_enemy::@return
move_enemy::@return: scope:[move_enemy]  from move_enemy
  (bool) move_enemy::return#3 ← phi( move_enemy/(bool) move_enemy::return#1 )
  (bool) move_enemy::return#2 ← (bool) move_enemy::return#3
  return 
  to:@return
@38: scope:[]  from @35
  call main 
  to:@39
@39: scope:[]  from @38
  to:@end
@end: scope:[]  from @39

SYMBOL TABLE SSA
(label) @35
(label) @38
(label) @39
(label) @begin
(label) @end
(byte) MAX_OBJECTS
(byte) MAX_OBJECTS#0
(word[MAX_OBJECTS#0]) OBJ_WORLD_X
(word[MAX_OBJECTS#0]) OBJ_WORLD_X#0
(const byte) RADIX::BINARY = (number) 2
(const byte) RADIX::DECIMAL = (number) $a
(const byte) RADIX::HEXADECIMAL = (number) $10
(const byte) RADIX::OCTAL = (number) 8
(const byte) SIZEOF_WORD = (byte) 2
(void()) main()
(bool~) main::$1
(label) main::@1
(label) main::@3
(label) main::@return
(byte) main::i
(byte) main::i#0
(byte) main::i#1
(byte) main::i#2
(byte) main::i#3
(bool()) move_enemy((byte) move_enemy::obj_slot)
(byte~) move_enemy::$0
(label) move_enemy::@return
(byte) move_enemy::obj_slot
(byte) move_enemy::obj_slot#0
(byte) move_enemy::obj_slot#1
(bool) move_enemy::return
(bool) move_enemy::return#0
(bool) move_enemy::return#1
(bool) move_enemy::return#2
(bool) move_enemy::return#3

Adding number conversion cast (unumber) $10 in (byte) MAX_OBJECTS#0 ← (number) $10
Adding number conversion cast (unumber) 1 in *((word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) ← *((word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) - (number) 1
Successful SSA optimization PassNAddNumberTypeConversions
Inlining cast (byte) MAX_OBJECTS#0 ← (unumber)(number) $10
Successful SSA optimization Pass2InlineCast
Simplifying constant integer cast $10
Simplifying constant integer cast 1
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (byte) $10
Finalized unsigned number type (byte) 1
Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (byte) main::i#2 = (byte) main::i#3 
Alias (bool) move_enemy::return#1 = (bool) move_enemy::return#3 (bool) move_enemy::return#2 
Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte) move_enemy::obj_slot#1 (byte) move_enemy::obj_slot#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$1 [10] if((byte) main::i#1!=rangelast(0,5)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) MAX_OBJECTS#0 = $10
Constant (const byte) main::i#0 = 0
Constant (const bool) move_enemy::return#1 = true
Successful SSA optimization Pass2ConstantIdentification
Constant (const bool) move_enemy::return#0 = move_enemy::return#1
Successful SSA optimization Pass2ConstantIdentification
Constant value identified { fill( MAX_OBJECTS#0, 0) } in [1] (word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 ← { fill( MAX_OBJECTS#0, 0) }
Successful SSA optimization Pass2ConstantValues
Resolved ranged next value [8] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [10] if(main::i#1!=rangelast(0,5)) goto main::@1 to (number) 6
Eliminating unused constant (const bool) move_enemy::return#0
Successful SSA optimization PassNEliminateUnusedVars
Eliminating unused constant (const bool) move_enemy::return#1
Successful SSA optimization PassNEliminateUnusedVars
Adding number conversion cast (unumber) 6 in if((byte) main::i#1!=(number) 6) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 6
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (byte) 6
Successful SSA optimization PassNFinalizeNumberTypeConversions
Constant (const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 = { fill( MAX_OBJECTS#0, 0) }
Successful SSA optimization Pass2ConstantIdentification
Rewriting multiplication to use shift [6] (byte~) move_enemy::$0 ← (byte) move_enemy::obj_slot#0 * (const byte) SIZEOF_WORD
Successful SSA optimization Pass2MultiplyToShiftRewriting
Inlining constant with var siblings (const byte) main::i#0
Constant inlined main::i#0 = (byte) 0
Successful SSA optimization Pass2ConstantInlining
Eliminating unused constant (const byte) SIZEOF_WORD
Successful SSA optimization PassNEliminateUnusedVars
Added new block during phi lifting main::@4(between main::@3 and main::@1)
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @35
Adding NOP phi() at start of @38
Adding NOP phi() at start of @39
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
CALL GRAPH
Calls in [] to main:3 
Calls in [main] to move_enemy:9 

Created 1 initial phi equivalence classes
Coalesced [13] main::i#4 ← main::i#1
Coalesced down to 1 phi equivalence classes
Culled Empty Block (label) @35
Culled Empty Block (label) @39
Culled Empty Block (label) main::@4
Renumbering block @38 to @1
Renumbering block main::@3 to main::@2
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @1
Adding NOP phi() at start of @end
Adding NOP phi() at start of main

FINAL CONTROL FLOW GRAPH
@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()
main: scope:[main]  from @1
  [4] phi()
  to:main::@1
main::@1: scope:[main]  from main main::@2
  [5] (byte) main::i#2 ← phi( main/(byte) 0 main::@2/(byte) main::i#1 )
  [6] (byte) move_enemy::obj_slot#0 ← (byte) main::i#2
  [7] call move_enemy 
  to:main::@2
main::@2: scope:[main]  from main::@1
  [8] (byte) main::i#1 ← ++ (byte) main::i#2
  [9] if((byte) main::i#1!=(byte) 6) goto main::@1
  to:main::@return
main::@return: scope:[main]  from main::@2
  [10] return 
  to:@return
move_enemy: scope:[move_enemy]  from main::@1
  [11] (byte~) move_enemy::$0 ← (byte) move_enemy::obj_slot#0 << (byte) 1
  [12] *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) ← *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) - (byte) 1
  to:move_enemy::@return
move_enemy::@return: scope:[move_enemy]  from move_enemy
  [13] return 
  to:@return


VARIABLE REGISTER WEIGHTS
(byte) MAX_OBJECTS
(word[MAX_OBJECTS#0]) OBJ_WORLD_X
(void()) main()
(byte) main::i
(byte) main::i#1 16.5
(byte) main::i#2 11.0
(bool()) move_enemy((byte) move_enemy::obj_slot)
(byte~) move_enemy::$0 6.0
(byte) move_enemy::obj_slot
(byte) move_enemy::obj_slot#0 13.0
(bool) move_enemy::return

Initial phi equivalence classes
[ main::i#2 main::i#1 ]
Added variable move_enemy::obj_slot#0 to zero page equivalence class [ move_enemy::obj_slot#0 ]
Added variable move_enemy::$0 to zero page equivalence class [ move_enemy::$0 ]
Complete equivalence classes
[ main::i#2 main::i#1 ]
[ move_enemy::obj_slot#0 ]
[ move_enemy::$0 ]
Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
Allocated zp ZP_BYTE:3 [ move_enemy::obj_slot#0 ]
Allocated zp ZP_BYTE:4 [ move_enemy::$0 ]

INITIAL ASM
  // File Comments
// Adding a missing word-fragment for Travis Fisher
  // Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(bbegin)
.pc = $80d "Program"
  // Global Constants & labels
  .const MAX_OBJECTS = $10
  // @begin
bbegin:
  // [1] phi from @begin to @1 [phi:@begin->@1]
b1_from_bbegin:
  jmp b1
  // @1
b1:
  // [2] call main 
  // [4] phi from @1 to main [phi:@1->main]
main_from_b1:
  jsr main
  // [3] phi from @1 to @end [phi:@1->@end]
bend_from_b1:
  jmp bend
  // @end
bend:
  // main
main: {
    .label i = 2
    // [5] phi from main to main::@1 [phi:main->main::@1]
  b1_from_main:
    // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta i
    jmp b1
    // [5] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
  b1_from_b2:
    // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@2->main::@1#0] -- register_copy 
    jmp b1
    // main::@1
  b1:
    // [6] (byte) move_enemy::obj_slot#0 ← (byte) main::i#2 -- vbuz1=vbuz2 
    lda i
    sta move_enemy.obj_slot
    // [7] call move_enemy 
    jsr move_enemy
    jmp b2
    // main::@2
  b2:
    // [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 
    inc i
    // [9] if((byte) main::i#1!=(byte) 6) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 
    lda #6
    cmp i
    bne b1_from_b2
    jmp breturn
    // main::@return
  breturn:
    // [10] return 
    rts
}
  // move_enemy
// move_enemy(byte zeropage(3) obj_slot)
move_enemy: {
    .label _0 = 4
    .label obj_slot = 3
    // [11] (byte~) move_enemy::$0 ← (byte) move_enemy::obj_slot#0 << (byte) 1 -- vbuz1=vbuz2_rol_1 
    lda obj_slot
    asl
    sta _0
    // [12] *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) ← *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) - (byte) 1 -- pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_minus_1 
    ldx _0
    lda OBJ_WORLD_X,x
    bne !+
    dec OBJ_WORLD_X+1,x
  !:
    dec OBJ_WORLD_X,x
    jmp breturn
    // move_enemy::@return
  breturn:
    // [13] return 
    rts
}
  // File Data
  OBJ_WORLD_X: .fill 2*MAX_OBJECTS, 0

REGISTER UPLIFT POTENTIAL REGISTERS
Statement [11] (byte~) move_enemy::$0 ← (byte) move_enemy::obj_slot#0 << (byte) 1 [ move_enemy::$0 ] ( main:2::move_enemy:7 [ main::i#2 move_enemy::$0 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
Statement [12] *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) ← *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) - (byte) 1 [ ] ( main:2::move_enemy:7 [ main::i#2 ] ) always clobbers reg byte a 
Statement [11] (byte~) move_enemy::$0 ← (byte) move_enemy::obj_slot#0 << (byte) 1 [ move_enemy::$0 ] ( main:2::move_enemy:7 [ main::i#2 move_enemy::$0 ] ) always clobbers reg byte a 
Statement [12] *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) ← *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) - (byte) 1 [ ] ( main:2::move_enemy:7 [ main::i#2 ] ) always clobbers reg byte a 
Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:3 [ move_enemy::obj_slot#0 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:4 [ move_enemy::$0 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y , 

REGISTER UPLIFT SCOPES
Uplift Scope [main] 27.5: zp ZP_BYTE:2 [ main::i#2 main::i#1 ] 
Uplift Scope [move_enemy] 13: zp ZP_BYTE:3 [ move_enemy::obj_slot#0 ] 6: zp ZP_BYTE:4 [ move_enemy::$0 ] 
Uplift Scope [RADIX] 
Uplift Scope [] 

Uplifting [main] best 354 combination reg byte y [ main::i#2 main::i#1 ] 
Uplifting [move_enemy] best 319 combination reg byte y [ move_enemy::obj_slot#0 ] reg byte a [ move_enemy::$0 ] 
Uplifting [RADIX] best 319 combination 
Uplifting [] best 319 combination 

ASSEMBLER BEFORE OPTIMIZATION
  // File Comments
// Adding a missing word-fragment for Travis Fisher
  // Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(bbegin)
.pc = $80d "Program"
  // Global Constants & labels
  .const MAX_OBJECTS = $10
  // @begin
bbegin:
  // [1] phi from @begin to @1 [phi:@begin->@1]
b1_from_bbegin:
  jmp b1
  // @1
b1:
  // [2] call main 
  // [4] phi from @1 to main [phi:@1->main]
main_from_b1:
  jsr main
  // [3] phi from @1 to @end [phi:@1->@end]
bend_from_b1:
  jmp bend
  // @end
bend:
  // main
main: {
    // [5] phi from main to main::@1 [phi:main->main::@1]
  b1_from_main:
    // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 
    ldy #0
    jmp b1
    // [5] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
  b1_from_b2:
    // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@2->main::@1#0] -- register_copy 
    jmp b1
    // main::@1
  b1:
    // [6] (byte) move_enemy::obj_slot#0 ← (byte) main::i#2
    // [7] call move_enemy 
    jsr move_enemy
    jmp b2
    // main::@2
  b2:
    // [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuyy=_inc_vbuyy 
    iny
    // [9] if((byte) main::i#1!=(byte) 6) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 
    cpy #6
    bne b1_from_b2
    jmp breturn
    // main::@return
  breturn:
    // [10] return 
    rts
}
  // move_enemy
// move_enemy(byte register(Y) obj_slot)
move_enemy: {
    // [11] (byte~) move_enemy::$0 ← (byte) move_enemy::obj_slot#0 << (byte) 1 -- vbuaa=vbuyy_rol_1 
    tya
    asl
    // [12] *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) ← *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) - (byte) 1 -- pwuc1_derefidx_vbuaa=pwuc1_derefidx_vbuaa_minus_1 
    tax
    lda OBJ_WORLD_X,x
    bne !+
    dec OBJ_WORLD_X+1,x
  !:
    dec OBJ_WORLD_X,x
    jmp breturn
    // move_enemy::@return
  breturn:
    // [13] return 
    rts
}
  // File Data
  OBJ_WORLD_X: .fill 2*MAX_OBJECTS, 0

ASSEMBLER OPTIMIZATIONS
Removing instruction jmp b1
Removing instruction jmp bend
Removing instruction jmp b1
Removing instruction jmp b2
Removing instruction jmp breturn
Removing instruction jmp breturn
Succesful ASM optimization Pass5NextJumpElimination
Replacing label b1_from_b2 with b1
Removing instruction b1_from_bbegin:
Removing instruction b1:
Removing instruction main_from_b1:
Removing instruction bend_from_b1:
Removing instruction b1_from_b2:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction bend:
Removing instruction b1_from_main:
Removing instruction b2:
Removing instruction breturn:
Removing instruction breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
Updating BasicUpstart to call main directly
Removing instruction jsr main
Succesful ASM optimization Pass5SkipBegin
Removing instruction jmp b1
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction bbegin:
Succesful ASM optimization Pass5UnusedLabelElimination

FINAL SYMBOL TABLE
(label) @1
(label) @begin
(label) @end
(byte) MAX_OBJECTS
(const byte) MAX_OBJECTS#0 MAX_OBJECTS = (byte) $10
(word[MAX_OBJECTS#0]) OBJ_WORLD_X
(const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 OBJ_WORLD_X = { fill( MAX_OBJECTS#0, 0) }
(const byte) RADIX::BINARY BINARY = (number) 2
(const byte) RADIX::DECIMAL DECIMAL = (number) $a
(const byte) RADIX::HEXADECIMAL HEXADECIMAL = (number) $10
(const byte) RADIX::OCTAL OCTAL = (number) 8
(void()) main()
(label) main::@1
(label) main::@2
(label) main::@return
(byte) main::i
(byte) main::i#1 reg byte y 16.5
(byte) main::i#2 reg byte y 11.0
(bool()) move_enemy((byte) move_enemy::obj_slot)
(byte~) move_enemy::$0 reg byte a 6.0
(label) move_enemy::@return
(byte) move_enemy::obj_slot
(byte) move_enemy::obj_slot#0 reg byte y 13.0
(bool) move_enemy::return

reg byte y [ main::i#2 main::i#1 ]
reg byte y [ move_enemy::obj_slot#0 ]
reg byte a [ move_enemy::$0 ]


FINAL ASSEMBLER
Score: 184

  // File Comments
// Adding a missing word-fragment for Travis Fisher
  // Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
  // Global Constants & labels
  .const MAX_OBJECTS = $10
  // @begin
  // [1] phi from @begin to @1 [phi:@begin->@1]
  // @1
  // [2] call main 
  // [4] phi from @1 to main [phi:@1->main]
  // [3] phi from @1 to @end [phi:@1->@end]
  // @end
  // main
main: {
    // [5] phi from main to main::@1 [phi:main->main::@1]
    // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 
    ldy #0
    // [5] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
    // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@2->main::@1#0] -- register_copy 
    // main::@1
  b1:
    // move_enemy(i)
    // [6] (byte) move_enemy::obj_slot#0 ← (byte) main::i#2
    // [7] call move_enemy 
    jsr move_enemy
    // main::@2
    // for(byte i:0..5)
    // [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuyy=_inc_vbuyy 
    iny
    // [9] if((byte) main::i#1!=(byte) 6) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 
    cpy #6
    bne b1
    // main::@return
    // }
    // [10] return 
    rts
}
  // move_enemy
// move_enemy(byte register(Y) obj_slot)
move_enemy: {
    // OBJ_WORLD_X[obj_slot] -= 1
    // [11] (byte~) move_enemy::$0 ← (byte) move_enemy::obj_slot#0 << (byte) 1 -- vbuaa=vbuyy_rol_1 
    tya
    asl
    // [12] *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) ← *((const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 + (byte~) move_enemy::$0) - (byte) 1 -- pwuc1_derefidx_vbuaa=pwuc1_derefidx_vbuaa_minus_1 
    tax
    lda OBJ_WORLD_X,x
    bne !+
    dec OBJ_WORLD_X+1,x
  !:
    dec OBJ_WORLD_X,x
    // move_enemy::@return
    // }
    // [13] return 
    rts
}
  // File Data
  OBJ_WORLD_X: .fill 2*MAX_OBJECTS, 0

