diff --git a/src/main/fragment/cache/fragment-cache-csg65ce02.asm b/src/main/fragment/cache/fragment-cache-csg65ce02.asm
index c07a503ee..2dc45385e 100644
--- a/src/main/fragment/cache/fragment-cache-csg65ce02.asm
+++ b/src/main/fragment/cache/fragment-cache-csg65ce02.asm
@@ -1,4 +1,244 @@
 //KICKC FRAGMENT CACHE 108dd16dc1 108dd18d7f
+//FRAGMENT vbuzz=vbuc1
+ldz #{c1}
+//FRAGMENT vbuzz_lt_vbuc1_then_la1
+cpz #{c1}
+bcc {la1}
+//FRAGMENT pbuc1_derefidx_vbuzz=vbuzz
+tza
+tax
+sta {c1},x
+//FRAGMENT vbuzz=_inc_vbuzz
+inz
+//FRAGMENT vbsz1=_deref_pbsc1
+lda {c1}
+sta {z1}
+//FRAGMENT vbsz1=_neg_vbsz2
+lda {z2}
+neg
+sta {z1}
+//FRAGMENT _deref_pbsc1=vbsz1
+lda {z1}
+sta {c1}
+//FRAGMENT vbsz1=vbsz2_ror_2
+lda {z2}
+asr
+asr
+sta {z1}
+//FRAGMENT vbsaa=_deref_pbsc1
+lda {c1}
+//FRAGMENT vbsxx=_deref_pbsc1
+ldx {c1}
+//FRAGMENT vbsz1=_neg_vbsaa
+neg
+sta {z1}
+//FRAGMENT vbsz1=_neg_vbsxx
+txa
+neg
+sta {z1}
+//FRAGMENT vbsz1=_neg_vbsyy
+tya
+neg
+sta {z1}
+//FRAGMENT vbsz1=_neg_vbszz
+tza
+neg
+sta {z1}
+//FRAGMENT vbsaa=_neg_vbsz1
+lda {z1}
+neg
+//FRAGMENT vbsaa=_neg_vbsaa
+neg
+//FRAGMENT vbsaa=_neg_vbsxx
+txa
+neg
+//FRAGMENT vbsaa=_neg_vbsyy
+tya
+neg
+//FRAGMENT vbsaa=_neg_vbszz
+tza
+neg
+//FRAGMENT vbsxx=_neg_vbsz1
+lda {z1}
+neg
+tax
+//FRAGMENT vbsxx=_neg_vbsaa
+neg
+tax
+//FRAGMENT vbsxx=_neg_vbsxx
+txa
+neg
+tax
+//FRAGMENT vbsxx=_neg_vbsyy
+tya
+neg
+tax
+//FRAGMENT vbsxx=_neg_vbszz
+tza
+neg
+tax
+//FRAGMENT vbsyy=_neg_vbsz1
+lda {z1}
+neg
+tay
+//FRAGMENT vbsyy=_neg_vbsaa
+neg
+tay
+//FRAGMENT vbsyy=_neg_vbsxx
+txa
+neg
+tay
+//FRAGMENT vbsyy=_neg_vbsyy
+tya
+neg
+tay
+//FRAGMENT vbsyy=_neg_vbszz
+tza
+neg
+tay
+//FRAGMENT vbszz=_neg_vbsz1
+lda {z1}
+neg
+taz
+//FRAGMENT vbszz=_neg_vbsaa
+neg
+taz
+//FRAGMENT vbszz=_neg_vbsxx
+txa
+neg
+taz
+//FRAGMENT vbszz=_neg_vbsyy
+tya
+neg
+taz
+//FRAGMENT vbszz=_neg_vbszz
+tza
+neg
+taz
+//FRAGMENT _deref_pbsc1=vbsaa
+sta {c1}
+//FRAGMENT vbsz1=vbsaa_ror_2
+asr
+asr
+sta {z1}
+//FRAGMENT vbsz1=vbsxx_ror_2
+txa
+asr
+asr
+sta {z1}
+//FRAGMENT vbsz1=vbsyy_ror_2
+tya
+asr
+asr
+sta {z1}
+//FRAGMENT vbsz1=vbszz_ror_2
+tza
+asr
+asr
+sta {z1}
+//FRAGMENT vbsaa=vbsz1_ror_2
+lda {z1}
+asr
+asr
+//FRAGMENT vbsaa=vbsaa_ror_2
+asr
+asr
+//FRAGMENT vbsaa=vbsxx_ror_2
+txa
+asr
+asr
+//FRAGMENT vbsaa=vbsyy_ror_2
+tya
+asr
+asr
+//FRAGMENT vbsaa=vbszz_ror_2
+tza
+asr
+asr
+//FRAGMENT vbsxx=vbsz1_ror_2
+lda {z1}
+asr
+asr
+tax
+//FRAGMENT vbsxx=vbsaa_ror_2
+asr
+asr
+tax
+//FRAGMENT vbsxx=vbsxx_ror_2
+txa
+asr
+asr
+tax
+//FRAGMENT vbsxx=vbsyy_ror_2
+tya
+asr
+asr
+tax
+//FRAGMENT vbsxx=vbszz_ror_2
+tza
+asr
+asr
+tax
+//FRAGMENT vbsyy=vbsz1_ror_2
+lda {z1}
+asr
+asr
+tay
+//FRAGMENT vbsyy=vbsaa_ror_2
+asr
+asr
+tay
+//FRAGMENT vbsyy=vbsxx_ror_2
+txa
+asr
+asr
+tay
+//FRAGMENT vbsyy=vbsyy_ror_2
+tya
+asr
+asr
+tay
+//FRAGMENT vbsyy=vbszz_ror_2
+tza
+asr
+asr
+tay
+//FRAGMENT vbszz=vbsz1_ror_2
+lda {z1}
+asr
+asr
+taz
+//FRAGMENT vbszz=vbsaa_ror_2
+asr
+asr
+taz
+//FRAGMENT vbszz=vbsxx_ror_2
+txa
+asr
+asr
+taz
+//FRAGMENT vbszz=vbsyy_ror_2
+tya
+asr
+asr
+taz
+//FRAGMENT vbszz=vbszz_ror_2
+tza
+asr
+asr
+taz
+//FRAGMENT vbsyy=_deref_pbsc1
+ldy {c1}
+//FRAGMENT vbszz=_deref_pbsc1
+lda {c1}
+taz
+//FRAGMENT _deref_pbsc1=vbsxx
+stx {c1}
+//FRAGMENT _deref_pbsc1=vbsyy
+sty {c1}
+//FRAGMENT _deref_pbsc1=vbszz
+tza
+sta {c1}
 //FRAGMENT vbuz1=vbuc1
 lda #{c1}
 sta {z1}
@@ -1878,8 +2118,6 @@ cpx {z1}
 bcs {la1}
 //FRAGMENT vbuxx=vbuc1
 ldx #{c1}
-//FRAGMENT vbuzz=vbuc1
-ldz #{c1}
 //FRAGMENT vbuzz=vbuz1
 ldz {z1}
 //FRAGMENT vbuz1=vbuzz
@@ -1894,8 +2132,6 @@ inx
 ldy #{c1}
 //FRAGMENT vbuyy=_inc_vbuyy
 iny
-//FRAGMENT vbuzz=_inc_vbuzz
-inz
 //FRAGMENT vbuz1_ge_vbuxx_then_la1
 lda {z1}
 stx $ff
@@ -1952,9 +2188,6 @@ bcc {la1}
 cpy #{c1}
 bcc {la1}
 beq {la1}
-//FRAGMENT vbuzz_lt_vbuc1_then_la1
-cpz #{c1}
-bcc {la1}
 //FRAGMENT vbuzz_le_vbuc1_then_la1
 cpz #{c1}
 bcc {la1}
@@ -2176,236 +2409,3 @@ sta {z1}+1
 asw {z1}
 asw {z1}
 asw {z1}
-//FRAGMENT pbuc1_derefidx_vbuzz=vbuzz
-tza
-tax
-sta {c1},x
-//FRAGMENT vbsz1=_deref_pbsc1
-lda {c1}
-sta {z1}
-//FRAGMENT vbsz1=_neg_vbsz2
-lda {z2}
-neg
-sta {z1}
-//FRAGMENT _deref_pbsc1=vbsz1
-lda {z1}
-sta {c1}
-//FRAGMENT vbsz1=vbsz2_ror_2
-lda {z2}
-asr
-asr
-sta {z1}
-//FRAGMENT vbsaa=_deref_pbsc1
-lda {c1}
-//FRAGMENT vbsxx=_deref_pbsc1
-ldx {c1}
-//FRAGMENT vbsz1=_neg_vbsaa
-neg
-sta {z1}
-//FRAGMENT vbsz1=_neg_vbsxx
-txa
-neg
-sta {z1}
-//FRAGMENT vbsz1=_neg_vbsyy
-tya
-neg
-sta {z1}
-//FRAGMENT vbsz1=_neg_vbszz
-tza
-neg
-sta {z1}
-//FRAGMENT vbsaa=_neg_vbsz1
-lda {z1}
-neg
-//FRAGMENT vbsaa=_neg_vbsaa
-neg
-//FRAGMENT vbsaa=_neg_vbsxx
-txa
-neg
-//FRAGMENT vbsaa=_neg_vbsyy
-tya
-neg
-//FRAGMENT vbsaa=_neg_vbszz
-tza
-neg
-//FRAGMENT vbsxx=_neg_vbsz1
-lda {z1}
-neg
-tax
-//FRAGMENT vbsxx=_neg_vbsaa
-neg
-tax
-//FRAGMENT vbsxx=_neg_vbsxx
-txa
-neg
-tax
-//FRAGMENT vbsxx=_neg_vbsyy
-tya
-neg
-tax
-//FRAGMENT vbsxx=_neg_vbszz
-tza
-neg
-tax
-//FRAGMENT vbsyy=_neg_vbsz1
-lda {z1}
-neg
-tay
-//FRAGMENT vbsyy=_neg_vbsaa
-neg
-tay
-//FRAGMENT vbsyy=_neg_vbsxx
-txa
-neg
-tay
-//FRAGMENT vbsyy=_neg_vbsyy
-tya
-neg
-tay
-//FRAGMENT vbsyy=_neg_vbszz
-tza
-neg
-tay
-//FRAGMENT vbszz=_neg_vbsz1
-lda {z1}
-neg
-taz
-//FRAGMENT vbszz=_neg_vbsaa
-neg
-taz
-//FRAGMENT vbszz=_neg_vbsxx
-txa
-neg
-taz
-//FRAGMENT vbszz=_neg_vbsyy
-tya
-neg
-taz
-//FRAGMENT vbszz=_neg_vbszz
-tza
-neg
-taz
-//FRAGMENT _deref_pbsc1=vbsaa
-sta {c1}
-//FRAGMENT vbsz1=vbsaa_ror_2
-asr
-asr
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_ror_2
-txa
-asr
-asr
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_ror_2
-tya
-asr
-asr
-sta {z1}
-//FRAGMENT vbsz1=vbszz_ror_2
-tza
-asr
-asr
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_ror_2
-lda {z1}
-asr
-asr
-//FRAGMENT vbsaa=vbsaa_ror_2
-asr
-asr
-//FRAGMENT vbsaa=vbsxx_ror_2
-txa
-asr
-asr
-//FRAGMENT vbsaa=vbsyy_ror_2
-tya
-asr
-asr
-//FRAGMENT vbsaa=vbszz_ror_2
-tza
-asr
-asr
-//FRAGMENT vbsxx=vbsz1_ror_2
-lda {z1}
-asr
-asr
-tax
-//FRAGMENT vbsxx=vbsaa_ror_2
-asr
-asr
-tax
-//FRAGMENT vbsxx=vbsxx_ror_2
-txa
-asr
-asr
-tax
-//FRAGMENT vbsxx=vbsyy_ror_2
-tya
-asr
-asr
-tax
-//FRAGMENT vbsxx=vbszz_ror_2
-tza
-asr
-asr
-tax
-//FRAGMENT vbsyy=vbsz1_ror_2
-lda {z1}
-asr
-asr
-tay
-//FRAGMENT vbsyy=vbsaa_ror_2
-asr
-asr
-tay
-//FRAGMENT vbsyy=vbsxx_ror_2
-txa
-asr
-asr
-tay
-//FRAGMENT vbsyy=vbsyy_ror_2
-tya
-asr
-asr
-tay
-//FRAGMENT vbsyy=vbszz_ror_2
-tza
-asr
-asr
-tay
-//FRAGMENT vbszz=vbsz1_ror_2
-lda {z1}
-asr
-asr
-taz
-//FRAGMENT vbszz=vbsaa_ror_2
-asr
-asr
-taz
-//FRAGMENT vbszz=vbsxx_ror_2
-txa
-asr
-asr
-taz
-//FRAGMENT vbszz=vbsyy_ror_2
-tya
-asr
-asr
-taz
-//FRAGMENT vbszz=vbszz_ror_2
-tza
-asr
-asr
-taz
-//FRAGMENT vbsyy=_deref_pbsc1
-ldy {c1}
-//FRAGMENT vbszz=_deref_pbsc1
-lda {c1}
-taz
-//FRAGMENT _deref_pbsc1=vbsxx
-stx {c1}
-//FRAGMENT _deref_pbsc1=vbsyy
-sty {c1}
-//FRAGMENT _deref_pbsc1=vbszz
-tza
-sta {c1}
diff --git a/src/main/fragment/cache/fragment-cache-mega45gs02.asm b/src/main/fragment/cache/fragment-cache-mega45gs02.asm
index 72dcc0f24..a571c7e7c 100644
--- a/src/main/fragment/cache/fragment-cache-mega45gs02.asm
+++ b/src/main/fragment/cache/fragment-cache-mega45gs02.asm
@@ -1,72 +1,24 @@
 //KICKC FRAGMENT CACHE 108dd16dc1 108dd18d7f
-//FRAGMENT _deref_pbuc1=vbuc2
-lda #{c2}
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
-lda #{c2}
-ora {c1}
-sta {c1}
+//FRAGMENT vbuz1=vbuc1
+lda #{c1}
+sta {z1}
 //FRAGMENT pbuz1=pbuc1
 lda #<{c1}
 sta {z1}
 lda #>{c1}
 sta {z1}+1
-//FRAGMENT pbuz1_lt_pbuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bcc {la1}
-bne !+
-lda {z1}
-cmp #<{c1}
-bcc {la1}
-!:
-//FRAGMENT _deref_pbuc1=_deref_pbuc2
-lda {c2}
-sta {c1}
-//FRAGMENT vbuz1=_lo_pbuz2
-lda {z2}
-sta {z1}
-//FRAGMENT _deref_pbuz1=vbuz2
-lda {z2}
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1=_inc_pbuz1
-inw {z1}
-//FRAGMENT _deref_pbuz1=vbuc1
-lda #{c1}
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuaa=_lo_pbuz1
-lda {z1}
-//FRAGMENT vbuxx=_lo_pbuz1
-ldx {z1}
-//FRAGMENT _deref_pbuz1=vbuaa
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=vbuxx
-txa
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=vbuyy
-tya
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=vbuzz
-tza
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuyy=_lo_pbuz1
-ldy {z1}
-//FRAGMENT vbuzz=_lo_pbuz1
-ldz {z1}
-//FRAGMENT vbuz1=vbuc1
-lda #{c1}
-sta {z1}
 //FRAGMENT isr_hardware_all_entry
 pha @clob_a
 phx @clob_x
 phy @clob_y
 phz @clob_z
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
+lda #{c2}
+ora {c1}
+sta {c1}
+//FRAGMENT _deref_pbuc1=vbuc2
+lda #{c2}
+sta {c1}
 //FRAGMENT vbuz1=_inc_vbuz1
 inc {z1}
 //FRAGMENT vbuz1=vbuz2
@@ -93,6 +45,8 @@ dec {z1}
 ldy #0
 lda ({z2}),y
 sta {z1}
+//FRAGMENT pbuz1=_inc_pbuz1
+inw {z1}
 //FRAGMENT vbuz1_neq_0_then_la1
 lda {z1}
 bne {la1}
@@ -190,6 +144,10 @@ bne {la1}
 lda {z1}
 cmp #<{c1}
 bne {la1}
+//FRAGMENT _deref_pbuz1=vbuc1
+lda #{c1}
+ldy #0
+sta ({z1}),y
 //FRAGMENT vbuaa=vbuz1
 lda {z1}
 //FRAGMENT vbuxx=vbuz1
@@ -1187,217 +1145,11 @@ inc
 stx {c1}
 //FRAGMENT _deref_pbuc1=vbuzz
 stz {c1}
-//FRAGMENT vbuz1=_deref_pbuc1_plus_1
-lda {c1}
-inc
-sta {z1}
-//FRAGMENT vwuz1=_word_vbuz2
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_2
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=vwuz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_4
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vwuz2
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT 0_neq_vbuz1_then_la1
-lda {z1}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuz3
-lda {z3}
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuc1
-lda #{c1}
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT pbuz1=pbuz1_plus_vbuc1
-lda #{c1}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
 //FRAGMENT pvoz1=pvoc1
 lda #<{c1}
 sta {z1}
 lda #>{c1}
 sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_minus_vbuc1
-sec
-lda {z1}
-sbc #{c1}
-sta {z1}
-lda {z1}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus_vwuc1
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1_neq_pbuz2_then_la1
-lda {z1}+1
-cmp {z2}+1
-bne {la1}
-lda {z1}
-cmp {z2}
-bne {la1}
-//FRAGMENT _deref_pbuz1=_deref_pbuz2
-ldy #0
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1=pbuz2_plus_vbuc1
-lda #{c1}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vbuaa=_deref_pbuc1_plus_1
-lda {c1}
-inc
-//FRAGMENT vbuxx=_deref_pbuc1_plus_1
-ldx {c1}
-inx
-//FRAGMENT vbuz1=vbuxx
-stx {z1}
-//FRAGMENT vwuz1=_word_vbuxx
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_vbuyy
-tya
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_vbuzz
-tza
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT 0_neq_vbuaa_then_la1
-cmp #0
-bne {la1}
-//FRAGMENT vbuz1=vbuaa
-sta {z1}
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuaa
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuxx
-txa
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuyy
-tya
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuzz
-tza
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT 0_neq_vbuxx_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT vbuaa=vbuxx
-txa
-//FRAGMENT 0_neq_vbuyy_then_la1
-cpy #0
-bne {la1}
-//FRAGMENT vbuaa=vbuyy
-tya
-//FRAGMENT 0_neq_vbuzz_then_la1
-cpz #0
-bne {la1}
-//FRAGMENT vbuaa=vbuzz
-tza
-//FRAGMENT vbuz1=vbuyy
-sty {z1}
-//FRAGMENT vbuz1=vbuzz
-tza
-sta {z1}
-//FRAGMENT vbuxx=vbuaa
-tax
-//FRAGMENT vbuyy=_deref_pbuc1_plus_1
-ldy {c1}
-iny
-//FRAGMENT vbuxx=vbuyy
-tya
-tax
-//FRAGMENT vbuzz=_deref_pbuc1_plus_1
-lda {c1}
-inc
-taz
-//FRAGMENT vbuxx=vbuzz
-tza
-tax
-//FRAGMENT vwuz1=vwuz2_plus_vwuz1
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vwuz1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz1_rol_4
-asw {z1}
-asw {z1}
-asw {z1}
-asw {z1}
 //FRAGMENT vwuz1=vwuc1
 lda #<{c1}
 sta {z1}
@@ -1408,6 +1160,9 @@ lda #<{c1}
 sta {z1}
 lda #>{c1}
 sta {z1}+1
+//FRAGMENT _deref_pbuc1=_deref_pbuc2
+lda {c2}
+sta {c1}
 //FRAGMENT pbuz1=pbuz1_plus_vwuc1
 clc
 lda {z1}
@@ -1416,10 +1171,23 @@ sta {z1}
 lda {z1}+1
 adc #>{c1}
 sta {z1}+1
+//FRAGMENT pbuz1=pbuz1_plus_vbuc1
+lda #{c1}
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
 //FRAGMENT pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuz2
 ldy {z2}
 lda ({z3}),y
 sta ({z1}),y
+//FRAGMENT vwuz1=_word_vbuz2
+lda {z2}
+sta {z1}
+lda #0
+sta {z1}+1
 //FRAGMENT pwuz1=pwuz1_plus_vbuc1
 lda #{c1}
 clc
@@ -1493,6 +1261,21 @@ sta ({z1}),y
 sta {z1}
 lda #0
 sta {z1}+1
+//FRAGMENT vwuz1=_word_vbuxx
+txa
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=_word_vbuyy
+tya
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=_word_vbuzz
+tza
+sta {z1}
+lda #0
+sta {z1}+1
 //FRAGMENT vbuz1=vbuaa_rol_1
 asl
 sta {z1}
@@ -1661,6 +1444,8 @@ inc {c1},x
 lda {z1}
 //FRAGMENT vbuxx=_lo_vwuz1
 ldx {z1}
+//FRAGMENT vbuz1=vbuaa
+sta {z1}
 //FRAGMENT vbuaa=_hi_vwuz1
 lda {z1}+1
 //FRAGMENT vbuxx=_hi_vwuz1
@@ -1700,10 +1485,17 @@ ora {z2}
 sta {z1}
 //FRAGMENT vbuz1=vbuxx_bor_vbuxx
 stx {z1}
+//FRAGMENT vbuz1=vbuxx
+stx {z1}
 //FRAGMENT vbuyy=_lo_vwuz1
 ldy {z1}
+//FRAGMENT vbuz1=vbuyy
+sty {z1}
 //FRAGMENT vbuzz=_lo_vwuz1
 ldz {z1}
+//FRAGMENT vbuz1=vbuzz
+tza
+sta {z1}
 //FRAGMENT vbuyy=_hi_vwuz1
 ldy {z1}+1
 //FRAGMENT vbuzz=_hi_vwuz1
@@ -2541,6 +2333,8 @@ tza
 tax
 tya
 sta {c1},x
+//FRAGMENT vbuxx=vbuaa
+tax
 //FRAGMENT vbuyy=vbuaa
 tay
 //FRAGMENT vbuzz=vbuaa
@@ -2609,3 +2403,209 @@ sta {z1}+3
 NO_SYNTHESIS
 //FRAGMENT vduz1=vwsc1
 NO_SYNTHESIS
+//FRAGMENT pbuz1_lt_pbuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bcc {la1}
+bne !+
+lda {z1}
+cmp #<{c1}
+bcc {la1}
+!:
+//FRAGMENT vbuz1=_lo_pbuz2
+lda {z2}
+sta {z1}
+//FRAGMENT _deref_pbuz1=vbuz2
+lda {z2}
+ldy #0
+sta ({z1}),y
+//FRAGMENT vbuaa=_lo_pbuz1
+lda {z1}
+//FRAGMENT vbuxx=_lo_pbuz1
+ldx {z1}
+//FRAGMENT _deref_pbuz1=vbuaa
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=vbuxx
+txa
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=vbuyy
+tya
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=vbuzz
+tza
+ldy #0
+sta ({z1}),y
+//FRAGMENT vbuyy=_lo_pbuz1
+ldy {z1}
+//FRAGMENT vbuzz=_lo_pbuz1
+ldz {z1}
+//FRAGMENT vbuz1=_deref_pbuc1_plus_1
+lda {c1}
+inc
+sta {z1}
+//FRAGMENT vwuz1=vwuz2_rol_2
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT vwuz1=vwuz2_plus_vwuz3
+lda {z2}
+clc
+adc {z3}
+sta {z1}
+lda {z2}+1
+adc {z3}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_rol_4
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_vwuz2
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT 0_neq_vbuz1_then_la1
+lda {z1}
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuz3
+lda {z3}
+ldz {z2}
+sta ({z1}),z
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuc1
+lda #{c1}
+ldz {z2}
+sta ({z1}),z
+//FRAGMENT pbuz1=pbuz1_minus_vbuc1
+sec
+lda {z1}
+sbc #{c1}
+sta {z1}
+lda {z1}+1
+sbc #0
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz2_plus_vwuc1
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT pbuz1_neq_pbuz2_then_la1
+lda {z1}+1
+cmp {z2}+1
+bne {la1}
+lda {z1}
+cmp {z2}
+bne {la1}
+//FRAGMENT _deref_pbuz1=_deref_pbuz2
+ldy #0
+lda ({z2}),y
+ldy #0
+sta ({z1}),y
+//FRAGMENT pbuz1=pbuz2_plus_vbuc1
+lda #{c1}
+clc
+adc {z2}
+sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT vbuaa=_deref_pbuc1_plus_1
+lda {c1}
+inc
+//FRAGMENT vbuxx=_deref_pbuc1_plus_1
+ldx {c1}
+inx
+//FRAGMENT 0_neq_vbuaa_then_la1
+cmp #0
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuaa
+ldz {z2}
+sta ({z1}),z
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuxx
+txa
+ldz {z2}
+sta ({z1}),z
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuyy
+tya
+ldz {z2}
+sta ({z1}),z
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuzz
+tza
+ldz {z2}
+sta ({z1}),z
+//FRAGMENT 0_neq_vbuxx_then_la1
+cpx #0
+bne {la1}
+//FRAGMENT vbuaa=vbuxx
+txa
+//FRAGMENT 0_neq_vbuyy_then_la1
+cpy #0
+bne {la1}
+//FRAGMENT vbuaa=vbuyy
+tya
+//FRAGMENT 0_neq_vbuzz_then_la1
+cpz #0
+bne {la1}
+//FRAGMENT vbuaa=vbuzz
+tza
+//FRAGMENT vbuyy=_deref_pbuc1_plus_1
+ldy {c1}
+iny
+//FRAGMENT vbuxx=vbuyy
+tya
+tax
+//FRAGMENT vbuzz=_deref_pbuc1_plus_1
+lda {c1}
+inc
+taz
+//FRAGMENT vbuxx=vbuzz
+tza
+tax
+//FRAGMENT vwuz1=vwuz2_plus_vwuz1
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_vwuz1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz1_rol_4
+asw {z1}
+asw {z1}
+asw {z1}
+asw {z1}
diff --git a/src/main/fragment/cache/fragment-cache-mos6502x.asm b/src/main/fragment/cache/fragment-cache-mos6502x.asm
index 457d46980..b62ea5120 100644
--- a/src/main/fragment/cache/fragment-cache-mos6502x.asm
+++ b/src/main/fragment/cache/fragment-cache-mos6502x.asm
@@ -263,1612 +263,108 @@ ldy #{c1}
 lda {c1},x
 //FRAGMENT vbuaa=pbuc1_derefidx_vbuyy
 lda {c1},y
-//FRAGMENT vbuz1_lt_vbuc1_then_la1
-lda {z1}
-cmp #{c1}
-bcc {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2
-lda #{c2}
-ldy {z1}
-sta {c1},y
-//FRAGMENT _deref_pbuc1=vbuc2
-lda #{c2}
-sta {c1}
+//FRAGMENT 0_neq_pbuz1_derefidx_vbuz2_then_la1
+ldy {z2}
+lda ({z1}),y
+
+cmp #0
+bne {la1}
+//FRAGMENT vbuxx=vbuz1
+ldx {z1}
+//FRAGMENT vbuaa=pbuz1_derefidx_vbuz2
+ldy {z2}
+lda ({z1}),y
 //FRAGMENT vbuz1=vbuz1_plus_2
 lda {z1}
 clc
 adc #2
 sta {z1}
-//FRAGMENT vbuaa_lt_vbuc1_then_la1
-cmp #{c1}
-bcc {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
+//FRAGMENT pbuz1_derefidx_vbuxx=vbuaa
+stx $ff
+ldy $ff
+sta ({z1}),y
+//FRAGMENT 0_neq_pbuz1_derefidx_vbuaa_then_la1
 tay
-lda #{c2}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
-lda #{c2}
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2
-lda #{c2}
-sta {c1},y
+lda ({z1}),y
+
+cmp #0
+bne {la1}
+//FRAGMENT 0_neq_pbuz1_derefidx_vbuxx_then_la1
+txa
+tay
+lda ({z1}),y
+
+cmp #0
+bne {la1}
+//FRAGMENT 0_neq_pbuz1_derefidx_vbuyy_then_la1
+lda ({z1}),y
+
+cmp #0
+bne {la1}
+//FRAGMENT vbuaa=pbuz1_derefidx_vbuxx
+txa
+tay
+lda ({z1}),y
+//FRAGMENT vbuaa=pbuz1_derefidx_vbuyy
+lda ({z1}),y
 //FRAGMENT vbuxx=vbuxx_plus_2
 inx
 inx
-//FRAGMENT vbuxx_lt_vbuc1_then_la1
-cpx #{c1}
-bcc {la1}
-//FRAGMENT vbuyy_lt_vbuc1_then_la1
-cpy #{c1}
-bcc {la1}
-//FRAGMENT vbuyy=vbuyy_plus_2
-iny
-iny
-//FRAGMENT vwuz1_lt_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bcc {la1}
-bne !+
-lda {z1}
-cmp #<{c1}
-bcc {la1}
-!:
-//FRAGMENT vbsz1=vbsz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbuz1=_hi_vwsz2
-lda {z2}+1
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_plus_vbuz2
-lax {z2}
-axs #-[{c1}]
-stx {z1}
-//FRAGMENT vbuz1=vbuz2
-lda {z2}
-sta {z1}
-//FRAGMENT vwuz1=vwuz1_plus_vwuz2
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=_inc_vwuz1
-inc {z1}
-bne !+
-inc {z1}+1
-!:
-//FRAGMENT pbuz1_neq_pbuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT _deref_pbuz1=vbuc1
-lda #{c1}
-ldy #0
-sta ({z1}),y
-//FRAGMENT 0_neq__deref_pbuz1_then_la1
-ldy #0
-lda ({z1}),y
-cmp #0
-bne {la1}
-//FRAGMENT vbuz1=_deref_pbuz2
-ldy #0
-lda ({z2}),y
-sta {z1}
-//FRAGMENT vwuz1=vwuz1_minus_vwuc1
-lda {z1}
-sec
-sbc #<{c1}
-sta {z1}
-lda {z1}+1
-sbc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_minus_vwuz1
-sec
-lda #<{c1}
-sbc {z1}
-sta {z1}
-lda #>{c1}
-sbc {z1}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_3
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vbuz1=vbuz2_minus_vbuz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_plus_vbuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-//FRAGMENT vbuz1=_dec_vbuz1
-dec {z1}
-//FRAGMENT vbuz1_eq_0_then_la1
-lda {z1}
-beq {la1}
-//FRAGMENT vbsz1=_neg_vbsz2
-lda {z2}
-eor #$ff
-clc
-adc #$01
-sta {z1}
-//FRAGMENT vbsz1_ge_0_then_la1
-lda {z1}
-cmp #0
-bpl {la1}
-//FRAGMENT vbuz1=vbuz2_minus_vbuc1
-lax {z2}
-axs #{c1}
-stx {z1}
-//FRAGMENT vwuz1=vwuz1_sethi_vbuz2
-lda {z2}
-sta {z1}+1
-//FRAGMENT vbsz1_lt_0_then_la1
-lda {z1}
-bmi {la1}
-//FRAGMENT vbsz1=_neg_vbsz1
-lda {z1}
-eor #$ff
-clc
-adc #$01
-sta {z1}
-//FRAGMENT vwuz1=vbuc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz1_rol_1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=vwuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_rol_vbuz3
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-ldy {z3}
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vwuz1=_word_vbuz2
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vbuz1_neq_0_then_la1
-lda {z1}
-bne {la1}
-//FRAGMENT vbuz1=vbuz1_ror_1
-lsr {z1}
-//FRAGMENT vbsaa=vbsz1
-lda {z1}
-//FRAGMENT vbsxx=vbsz1
-ldx {z1}
-//FRAGMENT vbsz1=vbsaa
-sta {z1}
-//FRAGMENT vbuaa=_hi_vwsz1
-lda {z1}+1
-//FRAGMENT vbuxx=_hi_vwsz1
-ldx {z1}+1
-//FRAGMENT vbuaa=vbuc1_plus_vbuz1
-lda #{c1}
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuc1_plus_vbuz1
-lax {z1}
-axs #-[{c1}]
-//FRAGMENT vbuyy=vbuc1_plus_vbuz1
-lda #{c1}
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=vbuc1_plus_vbuaa
-clc
-adc #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuc1_plus_vbuaa
-clc
-adc #{c1}
-//FRAGMENT vbuxx=vbuc1_plus_vbuaa
-tax
-axs #-[{c1}]
-//FRAGMENT vbuz1=vbuxx
-stx {z1}
-//FRAGMENT vbuaa=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-//FRAGMENT vbuxx=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-tay
-//FRAGMENT vbuz1=vbuyy_ror_4
-tya
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_ror_4
-tya
-lsr
-lsr
-lsr
-lsr
-//FRAGMENT vbuxx=vbuyy_ror_4
-tya
-lsr
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=vbuyy_ror_4
-tya
-lsr
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuz1=vbuyy_band_vbuc1
-tya
-and #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_band_vbuc1
-tya
-and #{c1}
-//FRAGMENT vbuxx=vbuyy_band_vbuc1
-ldx #{c1}
-tya
-axs #0
-//FRAGMENT vbuyy=vbuyy_band_vbuc1
-tya
-and #{c1}
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuz1
-lda {z1}
-//FRAGMENT vbuxx=vbuz1
-ldx {z1}
-//FRAGMENT vbuz1=vbuaa
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_minus_vbuz2
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_minus_vbuz2
-txa
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_minus_vbuz2
-tya
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_minus_vbuaa
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_minus_vbuaa
-lda #0
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_minus_vbuaa
-sta $ff
-txa
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_minus_vbuaa
-sta $ff
-tya
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_minus_vbuxx
-stx $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_minus_vbuxx
-lda #0
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_minus_vbuxx
-tya
-stx $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_minus_vbuyy
-sty $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_minus_vbuyy
-lda #0
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-//FRAGMENT vbuaa=vbuaa_minus_vbuz1
-sec
-sbc {z1}
-//FRAGMENT vbuaa=vbuxx_minus_vbuz1
-txa
-sec
-sbc {z1}
-//FRAGMENT vbuaa=vbuyy_minus_vbuz1
-tya
-sec
-sbc {z1}
-//FRAGMENT vbuaa=vbuz1_minus_vbuaa
-eor #$ff
-sec
-adc {z1}
-//FRAGMENT vbuaa=vbuaa_minus_vbuaa
-lda #0
-//FRAGMENT vbuaa=vbuxx_minus_vbuaa
-sta $ff
-txa
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuyy_minus_vbuaa
-sta $ff
-tya
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-//FRAGMENT vbuaa=vbuaa_minus_vbuxx
-stx $ff
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuxx_minus_vbuxx
-lda #0
-//FRAGMENT vbuaa=vbuyy_minus_vbuxx
-tya
-stx $ff
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-//FRAGMENT vbuaa=vbuaa_minus_vbuyy
-sty $ff
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuyy_minus_vbuyy
-lda #0
-//FRAGMENT vbuxx=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-tax
-//FRAGMENT vbuxx=vbuaa_minus_vbuz1
-sec
-sbc {z1}
-tax
-//FRAGMENT vbuxx=vbuxx_minus_vbuz1
-txa
-sec
-sbc {z1}
-tax
-//FRAGMENT vbuxx=vbuyy_minus_vbuz1
-tya
-sec
-sbc {z1}
-tax
-//FRAGMENT vbuxx=vbuz1_minus_vbuaa
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbuxx=vbuaa_minus_vbuaa
-lda #0
-tax
-//FRAGMENT vbuxx=vbuxx_minus_vbuaa
-sta $ff
-txa
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuyy_minus_vbuaa
-sta $ff
-tya
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbuxx=vbuaa_minus_vbuxx
-stx $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuxx_minus_vbuxx
-lda #0
-tax
-//FRAGMENT vbuxx=vbuyy_minus_vbuxx
-tya
-stx $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbuxx=vbuaa_minus_vbuyy
-sty $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuyy_minus_vbuyy
-lda #0
-tax
-//FRAGMENT vbuyy=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-tay
-//FRAGMENT vbuyy=vbuaa_minus_vbuz1
-sec
-sbc {z1}
-tay
-//FRAGMENT vbuyy=vbuxx_minus_vbuz1
-txa
-sec
-sbc {z1}
-tay
-//FRAGMENT vbuyy=vbuyy_minus_vbuz1
-tya
-sec
-sbc {z1}
-tay
-//FRAGMENT vbuyy=vbuz1_minus_vbuaa
-eor #$ff
-sec
-adc {z1}
-tay
-//FRAGMENT vbuyy=vbuaa_minus_vbuaa
-lda #0
-tay
-//FRAGMENT vbuyy=vbuxx_minus_vbuaa
-sta $ff
-txa
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuyy_minus_vbuaa
-sta $ff
-tya
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-tay
-//FRAGMENT vbuyy=vbuaa_minus_vbuxx
-stx $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuxx_minus_vbuxx
-lda #0
-tay
-//FRAGMENT vbuyy=vbuyy_minus_vbuxx
-tya
-stx $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-tay
-//FRAGMENT vbuyy=vbuaa_minus_vbuyy
-sty $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuyy_minus_vbuyy
-lda #0
-tay
-//FRAGMENT vbuaa=vbuz1_plus_vbuz2
-lda {z1}
-clc
-adc {z2}
-//FRAGMENT vbuxx=vbuz1_plus_vbuz2
-lda {z1}
-clc
-adc {z2}
-tax
-//FRAGMENT vbuyy=vbuz1_plus_vbuz2
-lda {z1}
-clc
-adc {z2}
-tay
-//FRAGMENT vbuz1=vbuz2_plus_vbuaa
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_plus_vbuaa
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuz1_plus_vbuaa
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_plus_vbuaa
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=vbuz2_plus_vbuxx
-txa
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_plus_vbuxx
-txa
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuz1_plus_vbuxx
-txa
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_plus_vbuxx
-txa
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=vbuz2_plus_vbuyy
-tya
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_plus_vbuyy
-tya
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuz1_plus_vbuyy
-tya
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_plus_vbuyy
-tya
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=vbuxx_plus_vbuz2
-txa
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_plus_vbuz1
-txa
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuxx_plus_vbuz1
-txa
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuxx_plus_vbuz1
-txa
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=vbuxx_plus_vbuaa
-stx $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_plus_vbuaa
-stx $ff
-clc
-adc $ff
-//FRAGMENT vbuxx=vbuxx_plus_vbuaa
-stx $ff
-clc
-adc $ff
-tax
-//FRAGMENT vbuyy=vbuxx_plus_vbuaa
-stx $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbuz1=vbuxx_plus_vbuxx
-txa
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_plus_vbuxx
-txa
-asl
-//FRAGMENT vbuxx=vbuxx_plus_vbuxx
-txa
-asl
-tax
-//FRAGMENT vbuyy=vbuxx_plus_vbuxx
-txa
-asl
-tay
-//FRAGMENT vbuz1=vbuxx_plus_vbuyy
-txa
-sty $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_plus_vbuyy
-txa
-sty $ff
-clc
-adc $ff
-//FRAGMENT vbuxx=vbuxx_plus_vbuyy
-txa
-sty $ff
-clc
-adc $ff
-tax
-//FRAGMENT vbuyy=vbuxx_plus_vbuyy
-txa
-sty $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbuz1=vbuyy_plus_vbuz2
-tya
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_plus_vbuz1
-tya
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuyy_plus_vbuz1
-tya
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuyy_plus_vbuz1
-tya
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=vbuyy_plus_vbuaa
-sty $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_plus_vbuaa
-sty $ff
-clc
-adc $ff
-//FRAGMENT vbuxx=vbuyy_plus_vbuaa
-sty $ff
-clc
-adc $ff
-tax
-//FRAGMENT vbuyy=vbuyy_plus_vbuaa
-sty $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbuz1=vbuyy_plus_vbuxx
-txa
-sty $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_plus_vbuxx
-txa
-sty $ff
-clc
-adc $ff
-//FRAGMENT vbuxx=vbuyy_plus_vbuxx
-txa
-sty $ff
-clc
-adc $ff
-tax
-//FRAGMENT vbuyy=vbuyy_plus_vbuxx
-txa
-sty $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbuz1=vbuyy_plus_vbuyy
-tya
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_plus_vbuyy
-tya
-asl
-//FRAGMENT vbuxx=vbuyy_plus_vbuyy
-tya
-asl
-tax
-//FRAGMENT vbuyy=vbuyy_plus_vbuyy
-tya
-asl
-tay
-//FRAGMENT vbuxx_eq_0_then_la1
-cpx #0
-beq {la1}
-//FRAGMENT vbsaa=_neg_vbsz1
-lda {z1}
-eor #$ff
-clc
-adc #$01
-//FRAGMENT vbsxx=_neg_vbsz1
-lda {z1}
-eor #$ff
-clc
-adc #$01
-tax
-//FRAGMENT vbsyy=_neg_vbsz1
-lda {z1}
-eor #$ff
-clc
-adc #$01
-tay
-//FRAGMENT vbsz1=_neg_vbsaa
-eor #$ff
-clc
-adc #$01
-sta {z1}
-//FRAGMENT vbsaa=_neg_vbsaa
-eor #$ff
-clc
-adc #$01
-//FRAGMENT vbsxx=_neg_vbsaa
-eor #$ff
-clc
-adc #$01
-tax
-//FRAGMENT vbsyy=_neg_vbsaa
-eor #$ff
-clc
-adc #$01
-tay
-//FRAGMENT vbsz1=_neg_vbsxx
-txa
-eor #$ff
-clc
-adc #$01
-sta {z1}
-//FRAGMENT vbsaa=_neg_vbsxx
-txa
-eor #$ff
-clc
-adc #$01
-//FRAGMENT vbsxx=_neg_vbsxx
-txa
-eor #$ff
-clc
-adc #$01
-tax
-//FRAGMENT vbsyy=_neg_vbsxx
-txa
-eor #$ff
-clc
-adc #$01
-tay
-//FRAGMENT vbsz1=_neg_vbsyy
-tya
-eor #$ff
-clc
-adc #$01
-sta {z1}
-//FRAGMENT vbsaa=_neg_vbsyy
-tya
-eor #$ff
-clc
-adc #$01
-//FRAGMENT vbsxx=_neg_vbsyy
-tya
-eor #$ff
-clc
-adc #$01
-tax
-//FRAGMENT vbsyy=_neg_vbsyy
-tya
-eor #$ff
-clc
-adc #$01
-tay
-//FRAGMENT vbsxx_ge_0_then_la1
-cpx #0
-bpl {la1}
-//FRAGMENT vbuz1=vbuaa_minus_vbuc1
-sec
-sbc #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_minus_vbuc1
-txa
-axs #{c1}
-stx {z1}
-//FRAGMENT vbuz1=vbuyy_minus_vbuc1
-tya
-sec
-sbc #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_minus_vbuc1
-lda {z1}
-sec
-sbc #{c1}
-//FRAGMENT vbuaa=vbuaa_minus_vbuc1
-sec
-sbc #{c1}
-//FRAGMENT vbuaa=vbuxx_minus_vbuc1
-txa
-sec
-sbc #{c1}
-//FRAGMENT vbuaa=vbuyy_minus_vbuc1
-tya
-sec
-sbc #{c1}
-//FRAGMENT vbuxx=vbuz1_minus_vbuc1
-lax {z1}
-axs #{c1}
-//FRAGMENT vbuxx=vbuaa_minus_vbuc1
-tax
-axs #{c1}
-//FRAGMENT vwuz1=vwuz1_sethi_vbuaa
-sta {z1}+1
-//FRAGMENT vbsaa_lt_0_then_la1
-cmp #0
-bmi {la1}
-//FRAGMENT vbuz1=vbuaa_band_vbuc1
-and #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_band_vbuc1
-and #{c1}
-//FRAGMENT vbuxx=vbuaa_band_vbuc1
-ldx #{c1}
-axs #0
-//FRAGMENT vbuaa_eq_0_then_la1
-cmp #0
-beq {la1}
-//FRAGMENT vwuz1=vwuz2_rol_vbuxx
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-cpx #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dex
-bne !-
-!e:
-//FRAGMENT vwuz1=vwuz2_rol_vbuyy
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vwuz1=_word_vbuaa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_vbuxx
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_vbuyy
-tya
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vbuxx_neq_0_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT vbsz1=vbsxx
-stx {z1}
-//FRAGMENT vbuyy_eq_0_then_la1
-cpy #0
-beq {la1}
-//FRAGMENT vbuxx=vbuxx_ror_1
-txa
-lsr
-tax
-//FRAGMENT vbuyy=vbuz1
+//FRAGMENT pbuc1_derefidx_vbuz1=vbuz1
 ldy {z1}
-//FRAGMENT vbuyy_neq_0_then_la1
-cpy #0
-bne {la1}
-//FRAGMENT vbuyy=vbuyy_ror_1
 tya
-lsr
-tay
-//FRAGMENT vbuyy=_hi_vwuz1
-ldy {z1}+1
-//FRAGMENT vbuyy=vbuaa_band_vbuc1
-and #{c1}
-tay
-//FRAGMENT vbuxx=_inc_vbuxx
-inx
-//FRAGMENT vbuyy=_inc_vbuyy
-iny
-//FRAGMENT vbuyy_neq_vbuc1_then_la1
-cpy #{c1}
-bne {la1}
-//FRAGMENT vbuxx=vbuaa
-tax
-//FRAGMENT vbuxx=vbuyy
-tya
-tax
-//FRAGMENT vbuaa=vbuyy
-tya
-//FRAGMENT vbuz1=vbuyy
-sty {z1}
-//FRAGMENT vbuaa=vbuxx
-txa
-//FRAGMENT vbuaa=_dec_vbuaa
-sec
-sbc #1
-//FRAGMENT vbuxx=_dec_vbuxx
-dex
-//FRAGMENT vbuyy=_dec_vbuyy
-dey
-//FRAGMENT vbsz1=vbsyy
-sty {z1}
-//FRAGMENT vbsaa=vbsxx
-txa
-//FRAGMENT vbsaa=vbsyy
-tya
-//FRAGMENT vbsxx=vbsaa
-tax
-//FRAGMENT vbsxx=vbsyy
-tya
-tax
-//FRAGMENT vbsyy=vbsz1
-ldy {z1}
-//FRAGMENT vbsyy=vbsaa
-tay
-//FRAGMENT vbsyy=vbsxx
-txa
-tay
-//FRAGMENT vbuyy=vbuaa
-tay
-//FRAGMENT vwuz1=vwuz1_sethi_vbuxx
-stx {z1}+1
-//FRAGMENT vbuxx=vbuxx_minus_vbuc1
-txa
-axs #{c1}
-//FRAGMENT vbuxx=vbuyy_minus_vbuc1
-tya
-tax
-axs #{c1}
-//FRAGMENT vbuyy=vbuz1_minus_vbuc1
-lda {z1}
-sec
-sbc #{c1}
-tay
-//FRAGMENT vwuz1=vwuz1_sethi_vbuyy
-sty {z1}+1
-//FRAGMENT vbuyy=vbuaa_minus_vbuc1
-sec
-sbc #{c1}
-tay
-//FRAGMENT vbuyy=vbuxx_minus_vbuc1
-txa
-sec
-sbc #{c1}
-tay
-//FRAGMENT vbuyy=vbuyy_minus_vbuc1
-tya
-sec
-sbc #{c1}
-tay
-//FRAGMENT vbsyy_ge_0_then_la1
-cpy #0
-bpl {la1}
-//FRAGMENT vbsxx_lt_0_then_la1
-cpx #0
-bmi {la1}
-//FRAGMENT vbuz1=vbuc1_plus_vbuxx
-txa
-axs #-[{c1}]
-stx {z1}
-//FRAGMENT vbuyy=_hi_vwsz1
-ldy {z1}+1
-//FRAGMENT vbuz1=vbuc1_plus_vbuyy
-tya
-clc
-adc #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_plus__hi_vwsz2
-lda #{c1}
-clc
-adc {z2}+1
-sta {z1}
-//FRAGMENT vwuz1=vwuz1_rol_3
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=vwuz1_rol_vbuz2
-ldy {z2}
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vbuz1_eq_vbuz2_then_la1
-lda {z1}
-cmp {z2}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2
-lda {z2}
-ldy {z1}
 sta {c1},y
-//FRAGMENT vbuz1_eq_vbuaa_then_la1
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuxx
-ldy {z1}
-txa
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuyy
-tya
-ldy {z1}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=vbuz1
-lda {z1}
+//FRAGMENT vbuaa_neq_vbuc1_then_la1
+cmp #{c1}
+bne {la1}
+//FRAGMENT pbuc1_derefidx_vbuaa=vbuaa
+tax
 sta {c1},x
+//FRAGMENT vbuaa=_inc_vbuaa
+clc
+adc #1
 //FRAGMENT pbuc1_derefidx_vbuxx=vbuxx
 txa
 sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuxx=vbuyy
-tya
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=vbuz1
-lda {z1}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuyy=vbuxx
-txa
-sta {c1},y
+//FRAGMENT vbuxx=_inc_vbuxx
+inx
+//FRAGMENT vbuyy_neq_vbuc1_then_la1
+cpy #{c1}
+bne {la1}
 //FRAGMENT pbuc1_derefidx_vbuyy=vbuyy
 tya
 sta {c1},y
-//FRAGMENT vbuz1_eq_vbuyy_then_la1
-tya
-cmp {z1}
-beq {la1}
-//FRAGMENT vbuyy_eq_vbuz1_then_la1
-tya
-cmp {z1}
-beq {la1}
-//FRAGMENT vbuyy_eq_vbuaa_then_la1
-tax
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT vwuz1=vwuz2_plus_1
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_1
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-//FRAGMENT pwuz1=pwuc1_plus_vwuz2
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=_deref_pwuz2_plus__deref_pwuz3
-ldy #0
-clc
-lda ({z2}),y
-adc ({z3}),y
-sta {z1}
+//FRAGMENT vbuyy=_inc_vbuyy
 iny
-lda ({z2}),y
-adc ({z3}),y
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_plus__deref_pwuz3
-ldy #0
-clc
-lda {z2}
-adc ({z3}),y
-sta {z1}
-iny
-lda {z2}+1
-adc ({z3}),y
-sta {z1}+1
-//FRAGMENT vwuz1_neq_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
+//FRAGMENT vbuz1_lt_vbuc1_then_la1
 lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT vwuz1=_deref_pwuz2
-ldy #0
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vduz1=vduz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-//FRAGMENT vwuz1=_lo_vduz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT pvoz1=_deref_qvoc1
-lda {c1}
-sta {z1}
-lda {c1}+1
-sta {z1}+1
-//FRAGMENT 0_neq_vbuz1_then_la1
-lda {z1}
-bne {la1}
-//FRAGMENT vbuz1=_deref_pbuc1
-lda {c1}
-sta {z1}
-//FRAGMENT vduz1=_dword_vwuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda #0
-sta {z1}+2
-sta {z1}+3
-//FRAGMENT vduz1=vduc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-lda #<{c1}>>$10
-sta {z1}+2
-lda #>{c1}>>$10
-sta {z1}+3
-//FRAGMENT vwuz1_neq_0_then_la1
-lda {z1}
-ora {z1}+1
-bne {la1}
-//FRAGMENT vbuz1=vwuz2_band_vbuc1
-lda #{c1}
-and {z2}
-sta {z1}
-//FRAGMENT vduz1=vduz1_plus_vduz2
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-lda {z1}+2
-adc {z2}+2
-sta {z1}+2
-lda {z1}+3
-adc {z2}+3
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz1_ror_1
-lsr {z1}+1
-ror {z1}
-//FRAGMENT vduz1=vduz1_rol_1
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vwuz1_le_0_then_la1
-lda {z1}
-bne !+
-lda {z1}+1
-beq {la1}
-!:
-//FRAGMENT pbuz1=pbuz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-//FRAGMENT pbuz1_neq_pbuz2_then_la1
-lda {z1}+1
-cmp {z2}+1
-bne {la1}
-lda {z1}
-cmp {z2}
-bne {la1}
-//FRAGMENT _deref_pwuc1=vbuc2
-lda #0
-sta {c1}+1
-lda #<{c2}
-sta {c1}
-//FRAGMENT vbuz1_eq_vbuc1_then_la1
-lda #{c1}
-cmp {z1}
-beq {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_(_deref_pbuc2)
-ldy {c2}
-lda {c1},y
-sta {z1}
-//FRAGMENT _deref_pwuc1=_inc__deref_pwuc1
-inc {c1}
-bne !+
-inc {c1}+1
-!:
-//FRAGMENT _deref_pwuc1_eq_vbuc2_then_la1
-lda {c1}+1
-bne !+
-lda {c1}
-cmp #{c2}
-beq {la1}
-!:
-//FRAGMENT vbuz1=_byte_vwuz2
-lda {z2}
-sta {z1}
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1=_inc_pbuz2
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
+cmp #{c1}
+bcc {la1}
 //FRAGMENT vbuz1=vbuz2_rol_1
 lda {z2}
 asl
 sta {z1}
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2
-ldy {z2}
+//FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_plus_vbuc2
+ldy {z1}
+clc
 lda {c1},y
-sta {z1}
+adc #{c2}
+sta {c1},y
 lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1_ge_vwuz2_then_la1
-lda {z2}+1
-cmp {z1}+1
-bne !+
-lda {z2}
-cmp {z1}
-beq {la1}
-!:
+adc #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_plus_pwuc2_derefidx_vbuz1
+ldy {z1}
+clc
+lda {c1},y
+adc {c2},y
+sta {c1},y
+lda {c1}+1,y
+adc {c2}+1,y
+sta {c1}+1,y
+//FRAGMENT vbuaa_lt_vbuc1_then_la1
+cmp #{c1}
 bcc {la1}
-//FRAGMENT 0_eq_vbuz1_then_la1
-lda {z1}
-beq {la1}
-//FRAGMENT vbuz1=_byte_vduz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_rol_2
-lda {z2}
-asl
-asl
-sta {z1}
-//FRAGMENT vduz1=pduc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-lda {c1}+2,y
-sta {z1}+2
-lda {c1}+3,y
-sta {z1}+3
-//FRAGMENT vduz1_ge_vduz2_then_la1
-lda {z1}+3
-cmp {z2}+3
-bcc !+
-bne {la1}
-lda {z1}+2
-cmp {z2}+2
-bcc !+
-bne {la1}
-lda {z1}+1
-cmp {z2}+1
-bcc !+
-bne {la1}
-lda {z1}
-cmp {z2}
-bcs {la1}
-!:
-//FRAGMENT _deref_(_deref_qbuc1)=_deref_pbuc2
-lda {c2}
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_pbuc1=vbuz1
-lda {z1}
-sta {c1}
-//FRAGMENT _deref_qbuc1=pbuz1
-lda {z1}
-sta {c1}
-lda {z1}+1
-sta {c1}+1
-//FRAGMENT vbuz1=vbuz2_bxor_vbuc1
-lda #{c1}
-eor {z2}
-sta {z1}
-//FRAGMENT _deref_(_deref_qbuc1)=vbuz1
-lda {z1}
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1
-inc {c1}
-//FRAGMENT _deref_pbuc1_neq_vbuc2_then_la1
-lda #{c2}
-cmp {c1}
-bne {la1}
-//FRAGMENT _deref_(_deref_qbuc1)=_deref_(_deref_qbuc1)_bxor_vbuc2
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-lda ($fe),y
-eor #{c2}
-sta ($fe),y
-//FRAGMENT pbuz1=_deref_qbuc1
-lda {c1}
-sta {z1}
-lda {c1}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus_vbuc1
-lda #{c1}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pvoz1=pvoz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus_vwuc1
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz1_minus_vwuz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-lda {z1}+1
-sbc {z2}+1
-sta {z1}+1
-//FRAGMENT vduz1=vduz1_minus_vduz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-lda {z1}+1
-sbc {z2}+1
-sta {z1}+1
-lda {z1}+2
-sbc {z2}+2
-sta {z1}+2
-lda {z1}+3
-sbc {z2}+3
-sta {z1}+3
-//FRAGMENT vwuz1=_word__deref_pbuc1
-lda {c1}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_2
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=vwuz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-//FRAGMENT pbuz1=_deref_qbuc1_plus_vwuz2
-clc
-lda {z2}
-adc {c1}
-sta {z1}
-lda {z2}+1
-adc {c1}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus__deref_pwuc1
-clc
-lda {c1}
-adc {z2}
-sta {z1}
-lda {c1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT _deref_pbuz1=_deref_pbuz2
-ldy #0
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT 0_neq_vbuaa_then_la1
-cmp #0
-bne {la1}
-//FRAGMENT vbuaa=_deref_pbuc1
-lda {c1}
-//FRAGMENT vbuxx=_deref_pbuc1
-ldx {c1}
-//FRAGMENT vbuaa=vwuz1_band_vbuc1
-lda #{c1}
-and {z1}
-//FRAGMENT vbuxx=vwuz1_band_vbuc1
-lda #{c1}
-and {z1}
-tax
-//FRAGMENT vbuyy=vwuz1_band_vbuc1
-lda #{c1}
-and {z1}
-tay
-//FRAGMENT vbuaa=pbuc1_derefidx_(_deref_pbuc2)
-ldy {c2}
-lda {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_(_deref_pbuc2)
-ldy {c2}
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_(_deref_pbuc2)
-ldx {c2}
-ldy {c1},x
-//FRAGMENT vbuaa=_byte_vwuz1
-lda {z1}
-//FRAGMENT vbuxx=_byte_vwuz1
-lda {z1}
-tax
-//FRAGMENT vbuyy=_byte_vwuz1
-lda {z1}
-tay
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-sta ({z1}),y
 //FRAGMENT vbuaa=vbuz1_rol_1
 lda {z1}
 asl
@@ -1921,894 +417,6 @@ tax
 tya
 asl
 tay
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda {c1}+1,x
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT 0_neq_vbuxx_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT 0_eq_vbuaa_then_la1
-cmp #0
-beq {la1}
-//FRAGMENT vbuaa=_byte_vduz1
-lda {z1}
-//FRAGMENT vbuxx=_byte_vduz1
-lda {z1}
-tax
-//FRAGMENT vbuyy=_byte_vduz1
-lda {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_rol_2
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_rol_2
-txa
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_rol_2
-tya
-asl
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_rol_2
-lda {z1}
-asl
-asl
-//FRAGMENT vbuaa=vbuaa_rol_2
-asl
-asl
-//FRAGMENT vbuaa=vbuxx_rol_2
-txa
-asl
-asl
-//FRAGMENT vbuaa=vbuyy_rol_2
-tya
-asl
-asl
-//FRAGMENT vbuxx=vbuz1_rol_2
-lda {z1}
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuaa_rol_2
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuxx_rol_2
-txa
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuyy_rol_2
-tya
-asl
-asl
-tax
-//FRAGMENT vbuyy=vbuz1_rol_2
-lda {z1}
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuaa_rol_2
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuxx_rol_2
-txa
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuyy_rol_2
-tya
-asl
-asl
-tay
-//FRAGMENT vduz1=pduc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-lda {c1}+2,y
-sta {z1}+2
-lda {c1}+3,y
-sta {z1}+3
-//FRAGMENT vduz1=pduc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda {c1}+1,x
-sta {z1}+1
-lda {c1}+2,x
-sta {z1}+2
-lda {c1}+3,x
-sta {z1}+3
-//FRAGMENT vduz1=pduc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-lda {c1}+2,y
-sta {z1}+2
-lda {c1}+3,y
-sta {z1}+3
-//FRAGMENT _deref_pbuc1=vbuaa
-sta {c1}
-//FRAGMENT vbuaa=vbuz1_bxor_vbuc1
-lda #{c1}
-eor {z1}
-//FRAGMENT vbuxx=vbuz1_bxor_vbuc1
-lda #{c1}
-eor {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bxor_vbuc1
-lda #{c1}
-eor {z1}
-tay
-//FRAGMENT vbuz1=vbuxx_bxor_vbuc1
-txa
-eor #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bxor_vbuc1
-txa
-eor #{c1}
-//FRAGMENT vbuxx=vbuxx_bxor_vbuc1
-txa
-eor #{c1}
-tax
-//FRAGMENT vbuyy=vbuxx_bxor_vbuc1
-txa
-eor #{c1}
-tay
-//FRAGMENT vbuz1=vbuyy_bxor_vbuc1
-tya
-eor #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bxor_vbuc1
-tya
-eor #{c1}
-//FRAGMENT vbuxx=vbuyy_bxor_vbuc1
-tya
-eor #{c1}
-tax
-//FRAGMENT vbuyy=vbuyy_bxor_vbuc1
-tya
-eor #{c1}
-tay
-//FRAGMENT _deref_(_deref_qbuc1)=vbuaa
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_(_deref_qbuc1)=vbuxx
-txa
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_(_deref_qbuc1)=vbuyy
-tya
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_pbuc1=vbuxx
-stx {c1}
-//FRAGMENT _deref_pbuc1=vbuyy
-sty {c1}
-//FRAGMENT 0_neq_vbuyy_then_la1
-cpy #0
-bne {la1}
-//FRAGMENT 0_eq_vbuxx_then_la1
-cpx #0
-beq {la1}
-//FRAGMENT vbuyy=_deref_pbuc1
-ldy {c1}
-//FRAGMENT 0_eq_vbuyy_then_la1
-cpy #0
-beq {la1}
-//FRAGMENT vwuz1=_deref_pwuz1
-ldy #0
-lda ({z1}),y
-pha
-iny
-lda ({z1}),y
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT pbuz1=pbuz2_plus_vwuz1
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=_deref_pwuz1_plus__deref_pwuz2
-ldy #0
-clc
-lda ({z1}),y
-adc ({z2}),y
-pha
-iny
-lda ({z1}),y
-adc ({z2}),y
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_plus__deref_pwuz1
-ldy #0
-clc
-lda ({z1}),y
-adc {z2}
-pha
-iny
-lda ({z1}),y
-adc {z2}+1
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_plus_vwuz1
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=_deref_qbuc1_plus_vwuz1
-clc
-lda {z1}
-adc {c1}
-sta {z1}
-lda {z1}+1
-adc {c1}+1
-sta {z1}+1
-//FRAGMENT pwuz1=pwuc1_plus_vwuz1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_plus_vwuc1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_plus__deref_pwuc1
-clc
-lda {c1}
-adc {z1}
-sta {z1}
-lda {c1}+1
-adc {z1}+1
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz2_minus_1
-ldx {z2}
-dex
-stx {z1}
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuz3_then_la1
-ldy {z2}
-lda ({z1}),y
-
-cmp {z3}
-bne {la1}
-//FRAGMENT vbuz1_lt_vbuz2_then_la1
-lda {z1}
-cmp {z2}
-bcc {la1}
-//FRAGMENT vbuz1_le_vbuz2_then_la1
-lda {z2}
-cmp {z1}
-bcs {la1}
-//FRAGMENT _deref_pbuz1_neq_vbuz2_then_la1
-ldy #0
-lda ({z1}),y
-cmp {z2}
-bne {la1}
-//FRAGMENT pbuz1=pbuc1_plus_vwuz2
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuc1
-lda #{c1}
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT vbuz1_le_vbuc1_then_la1
-lda #{c1}
-cmp {z1}
-bcs {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuz3
-lda {z3}
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pvoz1=pvoc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_minus_vbuc1
-sec
-lda {z1}
-sbc #{c1}
-sta {z1}
-lda {z1}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT vbuaa=vbuz1_minus_1
-lda {z1}
-sec
-sbc #1
-//FRAGMENT pbuz1_derefidx_vbuaa_neq_vbuz2_then_la1
-tay
-lda ({z1}),y
-
-cmp {z2}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuz2_then_la1
-txa
-tay
-lda ({z1}),y
-
-cmp {z2}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuz2_then_la1
-lda ({z1}),y
-
-cmp {z2}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuxx_then_la1
-ldy {z2}
-lda ({z1}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuaa_neq_vbuxx_then_la1
-tay
-lda ({z1}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuxx_then_la1
-txa
-tay
-lda ({z1}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuxx_then_la1
-lda ({z1}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuyy_then_la1
-tya
-ldy {z2}
-tax
-lda ({z1}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuaa_neq_vbuyy_then_la1
-NO_SYNTHESIS
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuyy_then_la1
-NO_SYNTHESIS
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuyy_then_la1
-lda ({z1}),y
-
-tax
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuxx_lt_vbuz1_then_la1
-cpx {z1}
-bcc {la1}
-//FRAGMENT vbuxx_le_vbuz1_then_la1
-lda {z1}
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuz1_le_vbuxx_then_la1
-cpx {z1}
-bcs {la1}
-//FRAGMENT vbuxx_eq_vbuc1_then_la1
-cpx #{c1}
-beq {la1}
-//FRAGMENT _deref_pbuz1_neq_vbuxx_then_la1
-ldy #0
-lda ({z1}),y
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuaa=vbuc1
-tay
-lda #{c1}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=vbuc1
-txa
-tay
-lda #{c1}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=vbuc1
-lda #{c1}
-sta ({z1}),y
-//FRAGMENT vbuaa_le_vbuc1_then_la1
-cmp #{c1}
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuz1=vbuaa_plus_vbuz2
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_plus_vbuz1
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuaa_plus_vbuz1
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuaa_plus_vbuz1
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_plus_vbuxx
-stx $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_plus_vbuxx
-stx $ff
-clc
-adc $ff
-//FRAGMENT vbuxx=vbuaa_plus_vbuxx
-stx $ff
-clc
-adc $ff
-tax
-//FRAGMENT vbuyy=vbuaa_plus_vbuxx
-stx $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbuz1=vbuaa_plus_vbuyy
-sty $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_plus_vbuyy
-sty $ff
-clc
-adc $ff
-//FRAGMENT vbuxx=vbuaa_plus_vbuyy
-sty $ff
-clc
-adc $ff
-tax
-//FRAGMENT vbuyy=vbuaa_plus_vbuyy
-sty $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbuaa_eq_vbuc1_then_la1
-cmp #{c1}
-beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuaa
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuxx
-ldy {z2}
-txa
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuyy
-tya
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT vbuxx_le_vbuc1_then_la1
-cpx #{c1}
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuyy_eq_vbuc1_then_la1
-cpy #{c1}
-beq {la1}
-//FRAGMENT vbuyy_le_vbuc1_then_la1
-cpy #{c1}
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuxx=vbuz1_minus_1
-ldx {z1}
-dex
-//FRAGMENT vbuyy=vbuz1_minus_1
-lda {z1}
-tay
-dey
-//FRAGMENT vbuz1=vbuz1_plus_vbuaa
-clc
-adc {z1}
-sta {z1}
-//FRAGMENT pbuz1=pbuc1_plus_vwuz1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuc1_then_la1
-ldy {z2}
-lda ({z1}),y
-
-cmp #{c1}
-bne {la1}
-//FRAGMENT vbuz1=vbuz1_plus_vbuz2
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuc1
-lax {z1}
-axs #{c1}
-stx {z1}
-//FRAGMENT pbuz1=pbuz1_plus_vbuz2
-lda {z2}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vwuz1=vwuz1_plus_vbuz2
-lda {z2}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuc1_then_la1
-txa
-tay
-lda ({z1}),y
-
-cmp #{c1}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuc1_then_la1
-lda ({z1}),y
-
-cmp #{c1}
-bne {la1}
-//FRAGMENT vbuz1=vbuz1_plus_vbuxx
-txa
-clc
-adc {z1}
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_plus_vbuyy
-tya
-clc
-adc {z1}
-sta {z1}
-//FRAGMENT pbuz1=pbuz1_plus_vbuaa
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT pbuz1=pbuz1_plus_vbuxx
-txa
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT pbuz1=pbuz1_plus_vbuyy
-tya
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vwuz1=vwuz1_plus_vbuxx
-txa
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vwuz1=vwuz1_plus_vbuyy
-tya
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT _deref_pbuz1_neq_vbuc1_then_la1
-ldy #0
-lda ({z1}),y
-cmp #{c1}
-bne {la1}
-//FRAGMENT 0_eq_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-lda {c1},y
-cmp #0
-beq {la1}
-//FRAGMENT 0_eq__deref_pbuz1_then_la1
-ldy #0
-lda ({z1}),y
-cmp #0
-beq {la1}
-//FRAGMENT _deref_pbuz1_eq_vbuc1_then_la1
-lda #{c1}
-ldy #0
-cmp ({z1}),y
-beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_pbuz3_derefidx_vbuz2_then_la1
-ldy {z2}
-lda ({z1}),y
-
-tax
-lda ({z3}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT 0_eq_pbuc1_derefidx_vbuaa_then_la1
-tay
-lda {c1},y
-cmp #0
-beq {la1}
-//FRAGMENT 0_eq_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-cmp #0
-beq {la1}
-//FRAGMENT 0_eq_pbuc1_derefidx_vbuyy_then_la1
-lda {c1},y
-cmp #0
-beq {la1}
-//FRAGMENT vbuaa_neq_vbuc1_then_la1
-cmp #{c1}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuaa_neq_pbuz2_derefidx_vbuaa_then_la1
-tay
-lda ({z1}),y
-
-tax
-lda ({z2}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_pbuz2_derefidx_vbuxx_then_la1
-txa
-tay
-lda ({z1}),y
-
-tax
-lda ({z2}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_pbuz2_derefidx_vbuyy_then_la1
-lda ({z1}),y
-
-tax
-lda ({z2}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuz1_ge_vbuc1_then_la1
-lda {z1}
-cmp #{c1}
-bcs {la1}
-//FRAGMENT vbuaa_ge_vbuc1_then_la1
-cmp #{c1}
-bcs {la1}
-//FRAGMENT vbuaa_neq_0_then_la1
-cmp #0
-bne {la1}
-//FRAGMENT vbuxx_ge_vbuc1_then_la1
-cpx #{c1}
-bcs {la1}
-//FRAGMENT vbuyy_ge_vbuc1_then_la1
-cpy #{c1}
-bcs {la1}
-//FRAGMENT 0_neq_pbuz1_derefidx_vbuz2_then_la1
-ldy {z2}
-lda ({z1}),y
-
-cmp #0
-bne {la1}
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=vbuaa
-stx $ff
-ldy $ff
-sta ({z1}),y
-//FRAGMENT 0_neq_pbuz1_derefidx_vbuaa_then_la1
-tay
-lda ({z1}),y
-
-cmp #0
-bne {la1}
-//FRAGMENT 0_neq_pbuz1_derefidx_vbuxx_then_la1
-txa
-tay
-lda ({z1}),y
-
-cmp #0
-bne {la1}
-//FRAGMENT 0_neq_pbuz1_derefidx_vbuyy_then_la1
-lda ({z1}),y
-
-cmp #0
-bne {la1}
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuyy
-lda ({z1}),y
-//FRAGMENT vbuz1_neq_vbuz2_then_la1
-lda {z1}
-cmp {z2}
-bne {la1}
-//FRAGMENT vbuz1_gt_vbuz2_then_la1
-lda {z2}
-cmp {z1}
-bcc {la1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbuz1_neq_vbuaa_then_la1
-cmp {z1}
-bne {la1}
-//FRAGMENT vbuz1_gt_vbuaa_then_la1
-cmp {z1}
-bcc {la1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuaa
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuz1_neq_vbuxx_then_la1
-cpx {z1}
-bne {la1}
-//FRAGMENT vbuz1_gt_vbuxx_then_la1
-cpx {z1}
-bcc {la1}
-//FRAGMENT vbuz1_neq_vbuyy_then_la1
-cpy {z1}
-bne {la1}
-//FRAGMENT vbuz1_gt_vbuyy_then_la1
-cpy {z1}
-bcc {la1}
-//FRAGMENT vbuxx_neq_vbuz1_then_la1
-cpx {z1}
-bne {la1}
-//FRAGMENT vbuxx_gt_vbuz1_then_la1
-cpx {z1}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vbuxx_neq_vbuyy_then_la1
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuxx_gt_vbuyy_then_la1
-stx $ff
-cpy $ff
-bcc {la1}
-//FRAGMENT vbuyy_neq_vbuz1_then_la1
-cpy {z1}
-bne {la1}
-//FRAGMENT vbuyy_gt_vbuz1_then_la1
-cpy {z1}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vbuyy_neq_vbuxx_then_la1
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuyy_gt_vbuxx_then_la1
-sty $ff
-cpx $ff
-bcc {la1}
-//FRAGMENT vbuyy=vbuxx
-txa
-tay
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuz1
-ldy {z1}
-tya
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuaa=vbuaa
-tax
-sta {c1},x
-//FRAGMENT vbuaa=_inc_vbuaa
-clc
-adc #1
-//FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_plus_vbuc2
-ldy {z1}
-clc
-lda {c1},y
-adc #{c2}
-sta {c1},y
-lda {c1}+1,y
-adc #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_plus_pwuc2_derefidx_vbuz1
-ldy {z1}
-clc
-lda {c1},y
-adc {c2},y
-sta {c1},y
-lda {c1}+1,y
-adc {c2}+1,y
-sta {c1}+1,y
 //FRAGMENT pwuc1_derefidx_vbuaa=pwuc1_derefidx_vbuaa_plus_vbuc2
 tay
 clc
@@ -2856,32 +464,30 @@ sta {c1},y
 lda {c1}+1,y
 adc {c2}+1,y
 sta {c1}+1,y
-//FRAGMENT isr_hardware_all_entry
-sta rega+1 @clob_a
-stx regx+1 @clob_x
-sty regy+1 @clob_y
-//FRAGMENT isr_hardware_all_exit
-rega: @clob_a @nooptimize lda #0 @clob_a @nooptimize
-regx: @clob_x @nooptimize ldx #0 @clob_x @nooptimize
-regy: @clob_y @nooptimize ldy #0 @clob_y @nooptimize
-rti
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
+//FRAGMENT vbuxx_lt_vbuc1_then_la1
+cpx #{c1}
+bcc {la1}
+//FRAGMENT vbuyy_lt_vbuc1_then_la1
+cpy #{c1}
+bcc {la1}
+//FRAGMENT _deref_pbuc1=vbuc2
 lda #{c2}
-ora {c1}
 sta {c1}
-//FRAGMENT _deref_qprc1=pprc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
-//FRAGMENT isr_rom_min_c64_entry
-
-//FRAGMENT isr_rom_min_c64_exit
-jmp $ea81
+//FRAGMENT vbuz1=_deref_pbuc1
+lda {c1}
+sta {z1}
 //FRAGMENT vbuz1=vbuz2_plus_vbuc1
 lax {z2}
 axs #-[{c1}]
 stx {z1}
+//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2
+lda {z2}
+ldy {z1}
+sta {c1},y
+//FRAGMENT vbuaa=_deref_pbuc1
+lda {c1}
+//FRAGMENT vbuxx=_deref_pbuc1
+ldx {c1}
 //FRAGMENT vbuaa=vbuz1_plus_vbuc1
 lda #{c1}
 clc
@@ -2907,10 +513,24 @@ axs #-[{c1}]
 //FRAGMENT pbuc1_derefidx_vbuz1=vbuaa
 ldy {z1}
 sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuz1=vbuxx
+ldy {z1}
+txa
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuz1=vbuyy
+tya
+ldy {z1}
+sta {c1},y
 //FRAGMENT pbuc1_derefidx_vbuaa=vbuz1
 tay
 lda {z1}
 sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuxx=vbuz1
+lda {z1}
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=vbuz1
+lda {z1}
+sta {c1},y
 //FRAGMENT pbuc1_derefidx_vbuxx=vbuaa
 sta {c1},x
 //FRAGMENT pbuc1_derefidx_vbuyy=vbuaa
@@ -2919,10 +539,16 @@ sta {c1},y
 tay
 txa
 sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuyy=vbuxx
+txa
+sta {c1},y
 //FRAGMENT pbuc1_derefidx_vbuaa=vbuyy
 tax
 tya
 sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuxx=vbuyy
+tya
+sta {c1},x
 //FRAGMENT vbuyy=vbuaa_plus_vbuc1
 clc
 adc #{c1}
@@ -2940,6 +566,8 @@ txa
 clc
 adc #{c1}
 tay
+//FRAGMENT vbuyy=_deref_pbuc1
+ldy {c1}
 //FRAGMENT vbuz1=vbuyy_plus_vbuc1
 tya
 clc
@@ -2957,46 +585,87 @@ axs #-[{c1}]
 ldy {z2}
 iny
 sty {z1}
+//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2
+lda #{c2}
+ldy {z1}
+sta {c1},y
+//FRAGMENT vbuz1=vbuz2
+lda {z2}
+sta {z1}
 //FRAGMENT vbuz1=_inc_vbuaa
 clc
 adc #1
 sta {z1}
+//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
+tay
+lda #{c2}
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
+lda #{c2}
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2
+lda #{c2}
+sta {c1},y
+//FRAGMENT vbuaa=vbuz1
+lda {z1}
 //FRAGMENT vbuz1=_inc_vbuxx
 inx
 stx {z1}
 //FRAGMENT vbuz1=_inc_vbuyy
 iny
 sty {z1}
+//FRAGMENT vbuyy=vbuz1
+ldy {z1}
 //FRAGMENT vbuaa=_inc_vbuz1
 lda {z1}
 clc
 adc #1
+//FRAGMENT vbuz1=vbuaa
+sta {z1}
 //FRAGMENT vbuaa=_inc_vbuxx
 inx
 txa
+//FRAGMENT vbuxx=vbuaa
+tax
 //FRAGMENT vbuaa=_inc_vbuyy
 iny
 tya
+//FRAGMENT vbuyy=vbuaa
+tay
 //FRAGMENT vbuxx=_inc_vbuz1
 ldx {z1}
 inx
+//FRAGMENT vbuz1=vbuxx
+stx {z1}
 //FRAGMENT vbuxx=_inc_vbuaa
 tax
 inx
+//FRAGMENT vbuaa=vbuxx
+txa
 //FRAGMENT vbuxx=_inc_vbuyy
 tya
 tax
 inx
+//FRAGMENT vbuyy=vbuxx
+txa
+tay
 //FRAGMENT vbuyy=_inc_vbuz1
 ldy {z1}
 iny
+//FRAGMENT vbuz1=vbuyy
+sty {z1}
 //FRAGMENT vbuyy=_inc_vbuaa
 tay
 iny
+//FRAGMENT vbuaa=vbuyy
+tya
 //FRAGMENT vbuyy=_inc_vbuxx
 txa
 tay
 iny
+//FRAGMENT vbuxx=vbuyy
+tya
+tax
 //FRAGMENT vwsz1=vwsz2_minus_vbsc1
 lda {z2}
 sec
@@ -3005,6 +674,17 @@ sta {z1}
 lda {z2}+1
 sbc #>{c1}
 sta {z1}+1
+//FRAGMENT pbuz1_neq_pbuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bne {la1}
+//FRAGMENT _deref_pbuz1=vbuc1
+lda #{c1}
+ldy #0
+sta ({z1}),y
 //FRAGMENT vwsz1=vwsz1_minus_vbsc1
 lda {z1}
 sec
@@ -3122,15 +802,6 @@ inc {m1}
 lda #{c1}
 cmp {m1}
 bne {la1}
-//FRAGMENT pbuz1_lt_pbuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bcc {la1}
-bne !+
-lda {z1}
-cmp #<{c1}
-bcc {la1}
-!:
 //FRAGMENT vboz1=vbuz2_eq_vbuc1
 lda {z2}
 eor #{c1}
@@ -3157,6 +828,14 @@ sta {z1}
 lda {z2}
 ora {z3}
 sta {z1}
+//FRAGMENT vbuz1=vbuaa_band_vbuc1
+and #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_band_vbuc1
+and #{c1}
+//FRAGMENT vbuxx=vbuaa_band_vbuc1
+ldx #{c1}
+axs #0
 //FRAGMENT vboaa=vbuz1_eq_vbuc1
 lda {z1}
 eor #{c1}
@@ -3555,6 +1234,24 @@ tya
 sty $ff
 ora $ff
 tay
+//FRAGMENT vbuz1=vbuyy_band_vbuc1
+tya
+and #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_band_vbuc1
+tya
+and #{c1}
+//FRAGMENT vbuxx=vbuyy_band_vbuc1
+ldx #{c1}
+tya
+axs #0
+//FRAGMENT vbuyy=vbuyy_band_vbuc1
+tya
+and #{c1}
+tay
+//FRAGMENT vbuyy=vbuaa_band_vbuc1
+and #{c1}
+tay
 //FRAGMENT vboxx_then_la1
 cpx #0
 bne {la1}
@@ -3734,705 +1431,6 @@ dey
 bne !-
 !e:
 tay
-//FRAGMENT pssz1=pssc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT pssz1=pssz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT pssz1=pssz1_plus_vbuc1
-lda #{c1}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=vbuz1_plus_vbuc1
-lax {z1}
-axs #-[{c1}]
-stx {z1}
-//FRAGMENT pssz1=pssz1_plus_vwuc1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pssz1=pssz1_minus_vwuc1
-lda {z1}
-sec
-sbc #<{c1}
-sta {z1}
-lda {z1}+1
-sbc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_ror_3
-lda {z2}+1
-lsr
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-//FRAGMENT vbuz1=vbuc1_minus_vbuz2
-lda #{c1}
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2
-ldy {z2}
-lda {c2},y
-ldy {z1}
-sta {c1},y
-//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuz1
-ldy {z1}
-lda {c2},y
-sta {c1}
-//FRAGMENT vbuz1=vbuz2_bor_vbuc1
-lda #{c1}
-ora {z2}
-sta {z1}
-//FRAGMENT vwuz1_lt_vbuc1_then_la1
-lda {z1}+1
-bne !+
-lda {z1}
-cmp #{c1}
-bcc {la1}
-!:
-//FRAGMENT vwuz1=vwuz2_minus_vbuc1
-sec
-lda {z2}
-sbc #{c1}
-sta {z1}
-lda {z2}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT vwuz1_gt_vwuc1_then_la1
-lda #>{c1}
-cmp {z1}+1
-bcc {la1}
-bne !+
-lda #<{c1}
-cmp {z1}
-bcc {la1}
-!:
-//FRAGMENT vwuz1=vwuz2_plus_vbuc1
-lda #{c1}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuc2
-lda #{c2}
-and {c1}
-sta {c1}
-//FRAGMENT vbuz1=vbuz2_ror_1
-lda {z2}
-lsr
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuz3
-ldx {z1}
-ldy {z3}
-lda ({z2}),y
-sta {c1},x
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuz3
-ldy {z3}
-lda ({z2}),y
-sta {z1}
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-lda {c1},y
-cmp #0
-bne {la1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_pbuc2_derefidx_vbuz1
-lda {c1}
-ldy {z1}
-and {c2},y
-sta {c1}
-//FRAGMENT vbuz1=vbuz2_plus_1
-ldy {z2}
-iny
-sty {z1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_pbuc2_derefidx_vbuz1
-lda {c1}
-ldy {z1}
-ora {c2},y
-sta {c1}
-//FRAGMENT _deref_pbuz1_neq_0_then_la1
-ldy #0
-lda ({z1}),y
-cmp #0
-bne {la1}
-//FRAGMENT vwuz1_le_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne !+
-lda {z1}
-cmp #<{c1}
-!:
-bcc {la1}
-beq {la1}
-//FRAGMENT pssz1=pssz2_plus_vbuc1
-lda #{c1}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pssz1_eq_pssz2_then_la1
-lda {z1}
-cmp {z2}
-bne !+
-lda {z1}+1
-cmp {z2}+1
-beq {la1}
-!:
-//FRAGMENT pbuc1_derefidx_vbuz1_le_vbuz2_then_la1
-lda {z2}
-ldy {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuz1_derefidx_vbuc1=vbuz2
-lda {z2}
-ldy #{c1}
-sta ({z1}),y
-//FRAGMENT vbuz1=vbuz1_plus_1
-inc {z1}
-//FRAGMENT pbuc1_derefidx_vbuz1=_deref_pbuc2
-lda {c2}
-ldy {z1}
-sta {c1},y
-//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz2)_then_la1
-lda {z1}
-ldx {z2}
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1
-ldy {z1}
-lda {c2},y
-sta {c1},y
-//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz2)_then_la1
-lda {z1}
-ldx {z2}
-ldy {c2},x
-cmp {c1},y
-bcc {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuz2
-ldy {z2}
-lda ({z3}),y
-sta ({z1}),y
-//FRAGMENT vbuaa=vbuc1_minus_vbuz1
-lda #{c1}
-sec
-sbc {z1}
-//FRAGMENT vbuxx=vbuc1_minus_vbuz1
-lda #{c1}
-sec
-sbc {z1}
-tax
-//FRAGMENT vbuyy=vbuc1_minus_vbuz1
-lda #{c1}
-sec
-sbc {z1}
-tay
-//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1
-ldx {z1}
-tay
-lda {c2},x
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuz1
-ldy {z1}
-lda {c2},y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1
-ldx {z1}
-lda {c2},x
-sta {c1},y
-//FRAGMENT vbuaa=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-//FRAGMENT vbuxx=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-tay
-//FRAGMENT vbuz1=vbuxx_ror_1
-txa
-lsr
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_ror_1
-tya
-lsr
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_ror_1
-lda {z1}
-lsr
-//FRAGMENT vbuaa=vbuxx_ror_1
-txa
-lsr
-//FRAGMENT vbuaa=vbuyy_ror_1
-tya
-lsr
-//FRAGMENT vbuxx=vbuz1_ror_1
-lda {z1}
-lsr
-tax
-//FRAGMENT vbuxx=vbuyy_ror_1
-tya
-lsr
-tax
-//FRAGMENT vbuyy=vbuz1_ror_1
-lda {z1}
-lsr
-tay
-//FRAGMENT vbuyy=vbuxx_ror_1
-txa
-lsr
-tay
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuz2
-tya
-ldy {z2}
-tax
-lda ({z1}),y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuxx
-txa
-ldx {z1}
-tay
-lda ({z2}),y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuxx
-sty $ff
-txa
-tay
-lda ({z1}),y
-ldy $ff
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuyy
-lda ({z2}),y
-ldx {z1}
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuyy
-lda ({z1}),y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuyy
-lda ({z1}),y
-sta {c1},y
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuaa
-tay
-lda ({z2}),y
-sta {z1}
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-sta {z1}
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuyy
-lda ({z2}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuaa
-tay
-lda ({z1}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-tax
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuaa
-tay
-lda ({z1}),y
-tax
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-tax
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuyy
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-tay
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuaa
-tay
-lda ({z1}),y
-tay
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-tay
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuyy
-lda ({z1}),y
-tay
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuaa
-tay
-lda {c2},y
-ldy {z1}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuaa
-tay
-lda {c2},y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuaa
-tax
-lda {c2},x
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx
-lda {c2},x
-ldy {z1}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx
-lda {c2},x
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx
-lda {c2},x
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuyy
-lda {c2},y
-ldy {z1}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy
-lda {c2},y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy
-lda {c2},y
-sta {c1},y
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-cmp #0
-bne {la1}
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuyy_then_la1
-lda {c1},y
-cmp #0
-bne {la1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_pbuc2_derefidx_vbuxx
-lda {c1}
-and {c2},x
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_pbuc2_derefidx_vbuyy
-lda {c1}
-and {c2},y
-sta {c1}
-//FRAGMENT vbuaa=vbuz1_plus_1
-lda {z1}
-clc
-adc #1
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_pbuc2_derefidx_vbuxx
-lda {c1}
-ora {c2},x
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_pbuc2_derefidx_vbuyy
-lda {c1}
-ora {c2},y
-sta {c1}
-//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuaa
-tay
-lda {c2},y
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuxx
-tay
-lda {c2},x
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuyy
-tax
-lda {c2},y
-sta {c1},x
-//FRAGMENT vbuaa=vbuc1_plus_vbuxx
-txa
-clc
-adc #{c1}
-//FRAGMENT vbuaa=vbuc1_plus_vbuyy
-tya
-clc
-adc #{c1}
-//FRAGMENT vbuxx=vbuxx_plus_vbuc1
-txa
-axs #-[{c1}]
-//FRAGMENT vbuyy=vbuyy_plus_vbuc1
-tya
-clc
-adc #{c1}
-tay
-//FRAGMENT pbuc1_derefidx_vbuaa_le_vbuz1_then_la1
-tay
-lda {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_le_vbuz1_then_la1
-txa
-tay
-lda {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_le_vbuz1_then_la1
-lda {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_le_vbuxx_then_la1
-ldy {z1}
-txa
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_le_vbuxx_then_la1
-tay
-txa
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_le_vbuxx_then_la1
-txa
-tay
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_le_vbuxx_then_la1
-txa
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_le_vbuyy_then_la1
-tya
-ldy {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_le_vbuyy_then_la1
-tax
-lda {c1},x
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_le_vbuyy_then_la1
-lda {c1},x
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_le_vbuyy_then_la1
-tya
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuz1_derefidx_vbuc1=vbuxx
-ldy #{c1}
-txa
-sta ({z1}),y
-//FRAGMENT vbuz1=vbuxx_plus_1
-inx
-stx {z1}
-//FRAGMENT pbuc1_derefidx_vbuaa=_deref_pbuc2
-tay
-lda {c2}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=_deref_pbuc2
-lda {c2}
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=_deref_pbuc2
-lda {c2}
-sta {c1},y
-//FRAGMENT vbuaa_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
-ldx {z1}
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
-ldy {z1}
-txa
-ldx {c2},y
-cmp {c1},x
-bcs {la1}
-//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
-ldx {z1}
-tya
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
-tax
-lda {z1}
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuaa_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
-tax
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
-tay
-txa
-ldx {c2},y
-cmp {c1},x
-bcs {la1}
-//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
-tax
-tya
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
-lda {z1}
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuaa_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
-txa
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
-tya
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
-lda {z1}
-ldx {c2},y
-cmp {c1},x
-bcs {la1}
-//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
-lda {z1}
-ldy {c2},x
-cmp {c1},y
-bcc {la1}
-//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
-lda {z1}
-ldx {c2},y
-cmp {c1},x
-bcc {la1}
-//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
-ldy {z1}
-txa
-ldx {c2},y
-cmp {c1},x
-bcc {la1}
-//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
-txa
-ldy {c2},x
-cmp {c1},y
-bcc {la1}
-//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
-txa
-ldx {c2},y
-cmp {c1},x
-bcc {la1}
-//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
-ldx {z1}
-tya
-ldy {c2},x
-cmp {c1},y
-bcc {la1}
-//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
-tya
-ldy {c2},x
-cmp {c1},y
-bcc {la1}
-//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
-tya
-ldx {c2},y
-cmp {c1},x
-bcc {la1}
-//FRAGMENT vbuaa_lt_vbuz1_then_la1
-cmp {z1}
-bcc {la1}
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuaa
-tay
-lda ({z2}),y
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuz2_derefidx_vbuyy
-lda ({z2}),y
-sta ({z1}),y
-//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
-txa
-ldx {c2},y
-cmp {c1},x
-bcs {la1}
-//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
-tya
-ldx {c2},y
-cmp {c1},x
-bcs {la1}
-//FRAGMENT vbuxx=vbuxx_plus_1
-inx
-//FRAGMENT vbuyy_lt_vbuz1_then_la1
-cpy {z1}
-bcc {la1}
-//FRAGMENT vbuxx=vbuc1_plus_vbuxx
-txa
-axs #-[{c1}]
-//FRAGMENT vbuxx=vbuc1_plus_vbuyy
-tya
-tax
-axs #-[{c1}]
-//FRAGMENT vbuyy=vbuc1_plus_vbuaa
-clc
-adc #{c1}
-tay
-//FRAGMENT vbuyy=vbuc1_plus_vbuxx
-txa
-clc
-adc #{c1}
-tay
-//FRAGMENT vbuyy=vbuc1_plus_vbuyy
-tya
-clc
-adc #{c1}
-tay
-//FRAGMENT vbuxx=vbuz1_plus_1
-ldx {z1}
-inx
-//FRAGMENT vbuyy=vbuz1_plus_1
-ldy {z1}
-iny
-//FRAGMENT vbuyy=_lo_vwuz1
-ldy {z1}
-//FRAGMENT vbuaa=vbuxx_plus_1
-inx
-txa
-//FRAGMENT vbuaa=vbuyy_plus_1
-iny
-tya
-//FRAGMENT vwuz1=vwuz1_ror_3
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-//FRAGMENT pprz1=pprc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
 //FRAGMENT _deref_pwsc1=vbsc2
 NO_SYNTHESIS
 //FRAGMENT _deref_pwsc1=vwuc2
@@ -4517,6 +1515,15 @@ bvc !+
 eor #$80
 !:
 bmi {la1}
+//FRAGMENT vduz1=vduz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+lda {z2}+2
+sta {z1}+2
+lda {z2}+3
+sta {z1}+3
 //FRAGMENT vwsz1_ge_0_then_la1
 lda {z1}+1
 bpl {la1}
@@ -4538,6 +1545,56 @@ lda {z2}
 sta {z1}+2
 lda {z2}+1
 sta {z1}+3
+//FRAGMENT vduz1=_dword_vwuz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+lda #0
+sta {z1}+2
+sta {z1}+3
+//FRAGMENT vduz1=vduc1
+lda #<{c1}
+sta {z1}
+lda #>{c1}
+sta {z1}+1
+lda #<{c1}>>$10
+sta {z1}+2
+lda #>{c1}>>$10
+sta {z1}+3
+//FRAGMENT vwuz1_neq_0_then_la1
+lda {z1}
+ora {z1}+1
+bne {la1}
+//FRAGMENT vbuz1=vwuz2_band_vbuc1
+lda #{c1}
+and {z2}
+sta {z1}
+//FRAGMENT vbuz1_eq_0_then_la1
+lda {z1}
+beq {la1}
+//FRAGMENT vduz1=vduz1_plus_vduz2
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc {z2}+1
+sta {z1}+1
+lda {z1}+2
+adc {z2}+2
+sta {z1}+2
+lda {z1}+3
+adc {z2}+3
+sta {z1}+3
+//FRAGMENT vwuz1=vwuz1_ror_1
+lsr {z1}+1
+ror {z1}
+//FRAGMENT vduz1=vduz1_rol_1
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
 //FRAGMENT vwsz1=_neg_vwsz2
 sec
 lda #0
@@ -4550,6 +1607,56 @@ sta {z1}+1
 lda #{c1}
 eor {z1}
 sta {z1}
+//FRAGMENT vbuz1=_byte_vwuz2
+lda {z2}
+sta {z1}
+//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+ldy #0
+sta ({z1}),y
+//FRAGMENT pbuz1=_inc_pbuz2
+clc
+lda {z2}
+adc #1
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sta {z1}
+lda {c1}+1,y
+sta {z1}+1
+//FRAGMENT 0_neq_vbuz1_then_la1
+lda {z1}
+bne {la1}
+//FRAGMENT vwuz1_ge_vwuz2_then_la1
+lda {z2}+1
+cmp {z1}+1
+bne !+
+lda {z2}
+cmp {z1}
+beq {la1}
+!:
+bcc {la1}
+//FRAGMENT 0_neq__deref_pbuz1_then_la1
+ldy #0
+lda ({z1}),y
+cmp #0
+bne {la1}
+//FRAGMENT vbuz1=_deref_pbuz2
+ldy #0
+lda ({z2}),y
+sta {z1}
+//FRAGMENT vwuz1=vwuz1_rol_1
+asl {z1}
+rol {z1}+1
+//FRAGMENT vwuz1=vwuz1_bor_vbuc1
+lda #{c1}
+ora {z1}
+sta {z1}
 //FRAGMENT vwuz1_lt_vwuz2_then_la1
 lda {z1}+1
 cmp {z2}+1
@@ -4559,6 +1666,103 @@ lda {z1}
 cmp {z2}
 bcc {la1}
 !:
+//FRAGMENT vwuz1=_inc_vwuz1
+inc {z1}
+bne !+
+inc {z1}+1
+!:
+//FRAGMENT vwuz1=vwuz1_minus_vwuz2
+lda {z1}
+sec
+sbc {z2}
+sta {z1}
+lda {z1}+1
+sbc {z2}+1
+sta {z1}+1
+//FRAGMENT vbuaa=vwuz1_band_vbuc1
+lda #{c1}
+and {z1}
+//FRAGMENT vbuxx=vwuz1_band_vbuc1
+lda #{c1}
+and {z1}
+tax
+//FRAGMENT vbuyy=vwuz1_band_vbuc1
+lda #{c1}
+and {z1}
+tay
+//FRAGMENT vbuaa_eq_0_then_la1
+cmp #0
+beq {la1}
+//FRAGMENT vbuxx_eq_0_then_la1
+cpx #0
+beq {la1}
+//FRAGMENT vbuxx=vbuxx_bxor_vbuc1
+txa
+eor #{c1}
+tax
+//FRAGMENT vbuyy=vbuyy_bxor_vbuc1
+tya
+eor #{c1}
+tay
+//FRAGMENT vbuaa=_byte_vwuz1
+lda {z1}
+//FRAGMENT vbuxx=_byte_vwuz1
+lda {z1}
+tax
+//FRAGMENT vbuyy=_byte_vwuz1
+lda {z1}
+tay
+//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuxx
+lda {c1},x
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuyy
+lda {c1},y
+ldy #0
+sta ({z1}),y
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuaa
+tay
+lda {c1},y
+sta {z1}
+lda {c1}+1,y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx
+lda {c1},x
+sta {z1}
+lda {c1}+1,x
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy
+lda {c1},y
+sta {z1}
+lda {c1}+1,y
+sta {z1}+1
+//FRAGMENT 0_neq_vbuxx_then_la1
+cpx #0
+bne {la1}
+//FRAGMENT vbuaa=_deref_pbuz1
+ldy #0
+lda ({z1}),y
+//FRAGMENT vbuxx=_deref_pbuz1
+ldy #0
+lda ({z1}),y
+tax
+//FRAGMENT vbuyy=_deref_pbuz1
+ldy #0
+lda ({z1}),y
+tay
+//FRAGMENT vbuyy=_hi_vwuz1
+ldy {z1}+1
+//FRAGMENT vbuyy_eq_0_then_la1
+cpy #0
+beq {la1}
+//FRAGMENT 0_neq_vbuyy_then_la1
+cpy #0
+bne {la1}
 //FRAGMENT pwsz1=pwsc1_plus_vwsz1
 clc
 lda {z1}
@@ -4576,6 +1780,1416 @@ lda ({z1}),y
 sta {z1}+1
 pla
 sta {z1}
+//FRAGMENT pbuz1_lt_vwuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bcc {la1}
+bne !+
+lda {z1}
+cmp #<{c1}
+bcc {la1}
+!:
+//FRAGMENT _deref_pbuz1=_inc__deref_pbuz1
+ldy #0
+lda ({z1}),y
+clc
+adc #1
+ldy #0
+sta ({z1}),y
+//FRAGMENT pbuz1_lt_pbuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bcc {la1}
+bne !+
+lda {z1}
+cmp #<{c1}
+bcc {la1}
+!:
+//FRAGMENT vbuxx=vbuxx_plus_vbuc1
+txa
+axs #-[{c1}]
+//FRAGMENT vbuyy=vbuyy_plus_vbuc1
+tya
+clc
+adc #{c1}
+tay
+//FRAGMENT _deref_pbuz1=_deref_pbuz2
+ldy #0
+lda ({z2}),y
+ldy #0
+sta ({z1}),y
+//FRAGMENT vbuz1_neq_vbuz2_then_la1
+lda {z1}
+cmp {z2}
+bne {la1}
+//FRAGMENT vbuz1_gt_vbuz2_then_la1
+lda {z2}
+cmp {z1}
+bcc {la1}
+//FRAGMENT vbuz1=vbuz1_minus_vbuz2
+lda {z1}
+sec
+sbc {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuyy_ror_4
+tya
+lsr
+lsr
+lsr
+lsr
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_ror_4
+tya
+lsr
+lsr
+lsr
+lsr
+//FRAGMENT vbuxx=vbuyy_ror_4
+tya
+lsr
+lsr
+lsr
+lsr
+tax
+//FRAGMENT vbuyy=vbuyy_ror_4
+tya
+lsr
+lsr
+lsr
+lsr
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy
+lda {c1},y
+sta {z1}
+//FRAGMENT vbuz1_neq_vbuaa_then_la1
+cmp {z1}
+bne {la1}
+//FRAGMENT vbuz1_gt_vbuaa_then_la1
+cmp {z1}
+bcc {la1}
+//FRAGMENT vbuaa=vbuaa_minus_vbuz1
+sec
+sbc {z1}
+//FRAGMENT vbuxx=vbuxx_minus_vbuz1
+txa
+sec
+sbc {z1}
+tax
+//FRAGMENT vbuyy=vbuyy_minus_vbuz1
+tya
+sec
+sbc {z1}
+tay
+//FRAGMENT vbuz1=vbuz1_minus_vbuaa
+eor #$ff
+sec
+adc {z1}
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_minus_vbuaa
+lda #0
+//FRAGMENT vbuxx=vbuxx_minus_vbuaa
+sta $ff
+txa
+sec
+sbc $ff
+tax
+//FRAGMENT vbuyy=vbuyy_minus_vbuaa
+sta $ff
+tya
+sec
+sbc $ff
+tay
+//FRAGMENT vbuz1=vbuz1_minus_vbuxx
+txa
+eor #$ff
+sec
+adc {z1}
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_minus_vbuxx
+stx $ff
+sec
+sbc $ff
+//FRAGMENT vbuxx=vbuxx_minus_vbuxx
+lda #0
+tax
+//FRAGMENT vbuyy=vbuyy_minus_vbuxx
+tya
+stx $ff
+sec
+sbc $ff
+tay
+//FRAGMENT vbuz1=vbuz1_minus_vbuyy
+tya
+eor #$ff
+sec
+adc {z1}
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_minus_vbuyy
+sty $ff
+sec
+sbc $ff
+//FRAGMENT vbuxx=vbuxx_minus_vbuyy
+txa
+sty $ff
+sec
+sbc $ff
+tax
+//FRAGMENT vbuyy=vbuyy_minus_vbuyy
+lda #0
+tay
+//FRAGMENT vbuz1_neq_vbuxx_then_la1
+cpx {z1}
+bne {la1}
+//FRAGMENT vbuz1_gt_vbuxx_then_la1
+cpx {z1}
+bcc {la1}
+//FRAGMENT vbuz1_neq_vbuyy_then_la1
+cpy {z1}
+bne {la1}
+//FRAGMENT vbuz1_gt_vbuyy_then_la1
+cpy {z1}
+bcc {la1}
+//FRAGMENT vbuxx_neq_vbuz1_then_la1
+cpx {z1}
+bne {la1}
+//FRAGMENT vbuxx_gt_vbuz1_then_la1
+cpx {z1}
+beq !+
+bcs {la1}
+!:
+//FRAGMENT vbuxx_neq_vbuyy_then_la1
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT vbuxx_gt_vbuyy_then_la1
+stx $ff
+cpy $ff
+bcc {la1}
+//FRAGMENT vbuyy_neq_vbuz1_then_la1
+cpy {z1}
+bne {la1}
+//FRAGMENT vbuyy_gt_vbuz1_then_la1
+cpy {z1}
+beq !+
+bcs {la1}
+!:
+//FRAGMENT vbuyy_neq_vbuxx_then_la1
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT vbuyy_gt_vbuxx_then_la1
+sty $ff
+cpx $ff
+bcc {la1}
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2
+ldy {z2}
+lda {c2},y
+ldy {z1}
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuaa
+tay
+lda {c2},y
+ldy {z1}
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx
+lda {c2},x
+ldy {z1}
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuyy
+lda {c2},y
+ldy {z1}
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1
+ldx {z1}
+tay
+lda {c2},x
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuaa
+tay
+lda {c2},y
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuxx
+tay
+lda {c2},x
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuyy
+tax
+lda {c2},y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuz1
+ldy {z1}
+lda {c2},y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuaa
+tay
+lda {c2},y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx
+lda {c2},x
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy
+lda {c2},y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1
+ldx {z1}
+lda {c2},x
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuaa
+tax
+lda {c2},x
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx
+lda {c2},x
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy
+lda {c2},y
+sta {c1},y
+//FRAGMENT vwuz1=_deref_pwuc1_minus_vwuc2
+sec
+lda {c1}
+sbc #<{c2}
+sta {z1}
+lda {c1}+1
+sbc #>{c2}
+sta {z1}+1
+//FRAGMENT _deref_pwuc1=vwuz1
+lda {z1}
+sta {c1}
+lda {z1}+1
+sta {c1}+1
+//FRAGMENT pbuz1=_deref_qbuc1_plus_vwuc2
+clc
+lda {c1}
+adc #<{c2}
+sta {z1}
+lda {c1}+1
+adc #>{c2}
+sta {z1}+1
+//FRAGMENT _deref_qbuc1=pbuz1
+lda {z1}
+sta {c1}
+lda {z1}+1
+sta {c1}+1
+//FRAGMENT vbuz1_neq_0_then_la1
+lda {z1}
+bne {la1}
+//FRAGMENT vbuaa_neq_0_then_la1
+cmp #0
+bne {la1}
+//FRAGMENT vbuxx_neq_0_then_la1
+cpx #0
+bne {la1}
+//FRAGMENT vbuyy_neq_0_then_la1
+cpy #0
+bne {la1}
+//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1
+inc {c1}
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1
+ldy {z1}
+lda {c2},y
+sta {c1},y
+//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1
+ldy {z1}
+lda {c1},y
+cmp #0
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuz3
+ldy {z3}
+lda {c1},y
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT 0_neq_pbuc1_derefidx_vbuaa_then_la1
+tay
+lda {c1},y
+cmp #0
+bne {la1}
+//FRAGMENT 0_neq_pbuc1_derefidx_vbuxx_then_la1
+lda {c1},x
+cmp #0
+bne {la1}
+//FRAGMENT 0_neq_pbuc1_derefidx_vbuyy_then_la1
+lda {c1},y
+cmp #0
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuz2
+txa
+ldx {z2}
+tay
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz2
+ldx {z2}
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuxx
+lda {c1},x
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuxx
+txa
+tay
+lda {c1},y
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuyy
+lda {c1},y
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy
+lda {c1},y
+stx $ff
+ldy $ff
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuyy
+lda {c1},y
+sta ({z1}),y
+//FRAGMENT vbuyy=vbuyy_plus_2
+iny
+iny
+//FRAGMENT vwsz1=_sword_vbuz2
+lda {z2}
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwsz1=vwsz1_rol_1
+asl {z1}
+rol {z1}+1
+//FRAGMENT _stackpushbyte_=vbuc1
+lda #{c1}
+pha
+//FRAGMENT _stackpullbyte_1
+pla
+//FRAGMENT vbuz1=_stackpullbyte_
+pla
+sta {z1}
+//FRAGMENT _deref_pbuc1=vbuz1
+lda {z1}
+sta {c1}
+//FRAGMENT vbuz1=_stackidxbyte_vbuc1
+tsx
+lda STACK_BASE+{c1},x
+sta {z1}
+//FRAGMENT vbuz1=vbuz2_plus_vbuz3
+lda {z2}
+clc
+adc {z3}
+sta {z1}
+//FRAGMENT _stackidxbyte_vbuc1=vbuz1
+lda {z1}
+tsx
+sta STACK_BASE+{c1},x
+//FRAGMENT vbuaa=_stackpullbyte_
+pla
+//FRAGMENT vbuxx=_stackpullbyte_
+pla
+tax
+//FRAGMENT vbuyy=_stackpullbyte_
+pla
+tay
+//FRAGMENT _deref_pbuc1=vbuaa
+sta {c1}
+//FRAGMENT vbuaa=_stackidxbyte_vbuc1
+tsx
+lda STACK_BASE+{c1},x
+//FRAGMENT vbuxx=_stackidxbyte_vbuc1
+tsx
+lda STACK_BASE+{c1},x
+tax
+//FRAGMENT vbuyy=_stackidxbyte_vbuc1
+tsx
+lda STACK_BASE+{c1},x
+tay
+//FRAGMENT vbuaa=vbuz1_plus_vbuz2
+lda {z1}
+clc
+adc {z2}
+//FRAGMENT vbuxx=vbuz1_plus_vbuz2
+lda {z1}
+clc
+adc {z2}
+tax
+//FRAGMENT vbuyy=vbuz1_plus_vbuz2
+lda {z1}
+clc
+adc {z2}
+tay
+//FRAGMENT vbuz1=vbuyy_plus_vbuz2
+tya
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_plus_vbuz1
+tya
+clc
+adc {z1}
+//FRAGMENT vbuxx=vbuyy_plus_vbuz1
+tya
+clc
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuyy_plus_vbuz1
+tya
+clc
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuz2_plus_vbuaa
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_plus_vbuaa
+clc
+adc {z1}
+//FRAGMENT vbuxx=vbuz1_plus_vbuaa
+clc
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_plus_vbuaa
+clc
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuyy_plus_vbuaa
+sty $ff
+clc
+adc $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_plus_vbuaa
+sty $ff
+clc
+adc $ff
+//FRAGMENT vbuxx=vbuyy_plus_vbuaa
+sty $ff
+clc
+adc $ff
+tax
+//FRAGMENT vbuyy=vbuyy_plus_vbuaa
+sty $ff
+clc
+adc $ff
+tay
+//FRAGMENT vbuz1=vbuz2_plus_vbuxx
+txa
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_plus_vbuxx
+txa
+clc
+adc {z1}
+//FRAGMENT vbuxx=vbuz1_plus_vbuxx
+txa
+clc
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_plus_vbuxx
+txa
+clc
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuyy_plus_vbuxx
+txa
+sty $ff
+clc
+adc $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_plus_vbuxx
+txa
+sty $ff
+clc
+adc $ff
+//FRAGMENT vbuxx=vbuyy_plus_vbuxx
+txa
+sty $ff
+clc
+adc $ff
+tax
+//FRAGMENT vbuyy=vbuyy_plus_vbuxx
+txa
+sty $ff
+clc
+adc $ff
+tay
+//FRAGMENT vbuz1=vbuz2_plus_vbuyy
+tya
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_plus_vbuyy
+tya
+clc
+adc {z1}
+//FRAGMENT vbuxx=vbuz1_plus_vbuyy
+tya
+clc
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_plus_vbuyy
+tya
+clc
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuyy_plus_vbuyy
+tya
+asl
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_plus_vbuyy
+tya
+asl
+//FRAGMENT vbuxx=vbuyy_plus_vbuyy
+tya
+asl
+tax
+//FRAGMENT vbuyy=vbuyy_plus_vbuyy
+tya
+asl
+tay
+//FRAGMENT _stackidxbyte_vbuc1=vbuaa
+tsx
+sta STACK_BASE+{c1},x
+//FRAGMENT _stackidxbyte_vbuc1=vbuxx
+txa
+tsx
+sta STACK_BASE+{c1},x
+//FRAGMENT _stackidxbyte_vbuc1=vbuyy
+tya
+tsx
+sta STACK_BASE+{c1},x
+//FRAGMENT vbuz1=vbuaa_plus_vbuz2
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_plus_vbuz1
+clc
+adc {z1}
+//FRAGMENT vbuxx=vbuaa_plus_vbuz1
+clc
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuaa_plus_vbuz1
+clc
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuxx_plus_vbuz2
+txa
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_plus_vbuz1
+txa
+clc
+adc {z1}
+//FRAGMENT vbuxx=vbuxx_plus_vbuz1
+txa
+clc
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuxx_plus_vbuz1
+txa
+clc
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuaa_plus_vbuaa
+asl
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_plus_vbuaa
+asl
+//FRAGMENT vbuxx=vbuaa_plus_vbuaa
+asl
+tax
+//FRAGMENT vbuyy=vbuaa_plus_vbuaa
+asl
+tay
+//FRAGMENT vbuz1=vbuxx_plus_vbuaa
+stx $ff
+clc
+adc $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_plus_vbuaa
+stx $ff
+clc
+adc $ff
+//FRAGMENT vbuxx=vbuxx_plus_vbuaa
+stx $ff
+clc
+adc $ff
+tax
+//FRAGMENT vbuyy=vbuxx_plus_vbuaa
+stx $ff
+clc
+adc $ff
+tay
+//FRAGMENT vbuz1=vbuaa_plus_vbuxx
+stx $ff
+clc
+adc $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_plus_vbuxx
+stx $ff
+clc
+adc $ff
+//FRAGMENT vbuxx=vbuaa_plus_vbuxx
+stx $ff
+clc
+adc $ff
+tax
+//FRAGMENT vbuyy=vbuaa_plus_vbuxx
+stx $ff
+clc
+adc $ff
+tay
+//FRAGMENT vbuz1=vbuxx_plus_vbuxx
+txa
+asl
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_plus_vbuxx
+txa
+asl
+//FRAGMENT vbuxx=vbuxx_plus_vbuxx
+txa
+asl
+tax
+//FRAGMENT vbuyy=vbuxx_plus_vbuxx
+txa
+asl
+tay
+//FRAGMENT vbuz1=vbuaa_plus_vbuyy
+sty $ff
+clc
+adc $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_plus_vbuyy
+sty $ff
+clc
+adc $ff
+//FRAGMENT vbuxx=vbuaa_plus_vbuyy
+sty $ff
+clc
+adc $ff
+tax
+//FRAGMENT vbuyy=vbuaa_plus_vbuyy
+sty $ff
+clc
+adc $ff
+tay
+//FRAGMENT vbuz1=vbuxx_plus_vbuyy
+txa
+sty $ff
+clc
+adc $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_plus_vbuyy
+txa
+sty $ff
+clc
+adc $ff
+//FRAGMENT vbuxx=vbuxx_plus_vbuyy
+txa
+sty $ff
+clc
+adc $ff
+tax
+//FRAGMENT vbuyy=vbuxx_plus_vbuyy
+txa
+sty $ff
+clc
+adc $ff
+tay
+//FRAGMENT _deref_pbuc1=vbuxx
+stx {c1}
+//FRAGMENT _deref_pbuc1=vbuyy
+sty {c1}
+//FRAGMENT vbuz1=vbuz1_plus_1
+inc {z1}
+//FRAGMENT vbuaa=vbuaa_plus_1
+clc
+adc #1
+//FRAGMENT vbuxx=vbuxx_plus_1
+inx
+//FRAGMENT vbuyy=vbuyy_plus_1
+iny
+//FRAGMENT vbuz1=_dec_vbuz1
+dec {z1}
+//FRAGMENT vbuz1_gt_0_then_la1
+lda {z1}
+bne {la1}
+//FRAGMENT vbuaa_gt_0_then_la1
+cmp #0
+bne {la1}
+//FRAGMENT vbuaa=_dec_vbuaa
+sec
+sbc #1
+//FRAGMENT vbuxx=_dec_vbuxx
+dex
+//FRAGMENT vbuxx_gt_0_then_la1
+cpx #0
+bne {la1}
+//FRAGMENT vbuyy=_dec_vbuyy
+dey
+//FRAGMENT vbuyy_gt_0_then_la1
+cpy #0
+bne {la1}
+//FRAGMENT vwuz1=_word_vbuz2
+lda {z2}
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_rol_2
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT vwuz1=vwuz2_plus_vwuz3
+lda {z2}
+clc
+adc {z3}
+sta {z1}
+lda {z2}+1
+adc {z3}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_rol_3
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_vwuz2
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuz3
+lda {z3}
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT vwuz1=_word_vbuaa
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=_word_vbuxx
+txa
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=_word_vbuyy
+tya
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuaa
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuxx
+ldy {z2}
+txa
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuyy
+tya
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=vbuz2
+txa
+tay
+lda {z2}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=vbuxx
+txa
+tay
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=vbuyy
+stx $ff
+tya
+ldy $ff
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=vbuz2
+lda {z2}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=vbuaa
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=vbuxx
+txa
+sta ({z1}),y
+//FRAGMENT vwuz1=vwuz2_plus_vwuz1
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_vwuz1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz1_rol_3
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT 0_eq_vbuz1_then_la1
+lda {z1}
+beq {la1}
+//FRAGMENT vbuz1=vbuz2_plus_1
+ldy {z2}
+iny
+sty {z1}
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuc1
+lda #{c1}
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT 0_eq_vbuaa_then_la1
+cmp #0
+beq {la1}
+//FRAGMENT vbuz1=vbuaa_plus_1
+clc
+adc #1
+sta {z1}
+//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT vbuz1=vbuxx_plus_1
+inx
+stx {z1}
+//FRAGMENT 0_eq_vbuxx_then_la1
+cpx #0
+beq {la1}
+//FRAGMENT 0_eq_vbuyy_then_la1
+cpy #0
+beq {la1}
+//FRAGMENT vbuz1=_lo_vwsz2
+lda {z2}
+sta {z1}
+//FRAGMENT vbuaa=_lo_vwsz1
+lda {z1}
+//FRAGMENT vbuxx=_lo_vwsz1
+ldx {z1}
+//FRAGMENT vbuyy=_lo_vwsz1
+ldy {z1}
+//FRAGMENT vbuz1_ge_vbuc1_then_la1
+lda {z1}
+cmp #{c1}
+bcs {la1}
+//FRAGMENT vbuaa_ge_vbuc1_then_la1
+cmp #{c1}
+bcs {la1}
+//FRAGMENT vbuxx_ge_vbuc1_then_la1
+cpx #{c1}
+bcs {la1}
+//FRAGMENT vbuyy_ge_vbuc1_then_la1
+cpy #{c1}
+bcs {la1}
+//FRAGMENT pbuz1=pbuz2_plus_vbuc1
+lda #{c1}
+clc
+adc {z2}
+sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT pbuz1_derefidx_vbuaa=vbuz2
+tay
+lda {z2}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuaa=vbuaa
+tay
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuaa=vbuxx
+tay
+txa
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuaa=vbuyy
+sta $ff
+tya
+ldy $ff
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=vbuyy
+tya
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1_eq_vbuz2_then_la1
+lda {z2}
+ldy #0
+cmp ({z1}),y
+beq {la1}
+//FRAGMENT _deref_pbuz1_neq_0_then_la1
+ldy #0
+lda ({z1}),y
+cmp #0
+bne {la1}
+//FRAGMENT _deref_pbuz1_eq_vbuxx_then_la1
+txa
+ldy #0
+cmp ({z1}),y
+beq {la1}
+//FRAGMENT _deref_pbuz1_eq_vbuyy_then_la1
+tya
+ldy #0
+cmp ({z1}),y
+beq {la1}
+//FRAGMENT pbuz1=pbuc1_plus_vbuz2
+lda {z2}
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz2_plus_vwuz3
+lda {z2}
+clc
+adc {z3}
+sta {z1}
+lda {z2}+1
+adc {z3}+1
+sta {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_vbuaa
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_vbuxx
+txa
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_vbuyy
+tya
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz1_plus_vwuz2
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT vbuz1=vbuz1_plus_vbuc1
+lax {z1}
+axs #-[{c1}]
+stx {z1}
+//FRAGMENT vwuz1=vbuz2
+lda {z2}
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT pwuc1_derefidx_vbuz1=vwuz2
+ldy {z1}
+lda {z2}
+sta {c1},y
+lda {z2}+1
+sta {c1}+1,y
+//FRAGMENT vbuz1=pwuc1_derefidx_vbuz2_band_vbuc2
+lda #{c2}
+ldy {z2}
+and {c1},y
+sta {z1}
+//FRAGMENT vbuz1=vbuz2_ror_1
+lda {z2}
+lsr
+sta {z1}
+//FRAGMENT vwuz1=vbuaa
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=vbuxx
+txa
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=vbuyy
+tya
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT pwuc1_derefidx_vbuaa=vwuz1
+tay
+lda {z1}
+sta {c1},y
+lda {z1}+1
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuxx=vwuz1
+lda {z1}
+sta {c1},x
+lda {z1}+1
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuyy=vwuz1
+lda {z1}
+sta {c1},y
+lda {z1}+1
+sta {c1}+1,y
+//FRAGMENT vbuaa=pwuc1_derefidx_vbuz1_band_vbuc2
+lda #{c2}
+ldy {z1}
+and {c1},y
+//FRAGMENT vbuxx=pwuc1_derefidx_vbuz1_band_vbuc2
+lda #{c2}
+ldx {z1}
+and {c1},x
+tax
+//FRAGMENT vbuyy=pwuc1_derefidx_vbuz1_band_vbuc2
+lda #{c2}
+ldy {z1}
+and {c1},y
+tay
+//FRAGMENT vbuz1=pwuc1_derefidx_vbuaa_band_vbuc2
+tay
+lda #{c2}
+and {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pwuc1_derefidx_vbuaa_band_vbuc2
+tay
+lda #{c2}
+and {c1},y
+//FRAGMENT vbuxx=pwuc1_derefidx_vbuaa_band_vbuc2
+tax
+lda #{c2}
+and {c1},x
+tax
+//FRAGMENT vbuyy=pwuc1_derefidx_vbuaa_band_vbuc2
+tay
+lda #{c2}
+and {c1},y
+tay
+//FRAGMENT vbuz1=pwuc1_derefidx_vbuxx_band_vbuc2
+lda #{c2}
+and {c1},x
+sta {z1}
+//FRAGMENT vbuaa=pwuc1_derefidx_vbuxx_band_vbuc2
+lda #{c2}
+and {c1},x
+//FRAGMENT vbuxx=pwuc1_derefidx_vbuxx_band_vbuc2
+lda #{c2}
+and {c1},x
+tax
+//FRAGMENT vbuyy=pwuc1_derefidx_vbuxx_band_vbuc2
+lda #{c2}
+and {c1},x
+tay
+//FRAGMENT vbuz1=pwuc1_derefidx_vbuyy_band_vbuc2
+lda #{c2}
+and {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pwuc1_derefidx_vbuyy_band_vbuc2
+lda #{c2}
+and {c1},y
+//FRAGMENT vbuxx=pwuc1_derefidx_vbuyy_band_vbuc2
+lda #{c2}
+and {c1},y
+tax
+//FRAGMENT vbuyy=pwuc1_derefidx_vbuyy_band_vbuc2
+lda #{c2}
+and {c1},y
+tay
+//FRAGMENT vbuaa=vbuz1_ror_1
+lda {z1}
+lsr
+//FRAGMENT vbuxx=vbuz1_ror_1
+lda {z1}
+lsr
+tax
+//FRAGMENT vbuyy=vbuz1_ror_1
+lda {z1}
+lsr
+tay
+//FRAGMENT vbuz1=vbuaa_ror_1
+lsr
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_ror_1
+lsr
+//FRAGMENT vbuxx=vbuaa_ror_1
+lsr
+tax
+//FRAGMENT vbuyy=vbuaa_ror_1
+lsr
+tay
+//FRAGMENT vbuz1=vbuxx_ror_1
+txa
+lsr
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_ror_1
+txa
+lsr
+//FRAGMENT vbuxx=vbuxx_ror_1
+txa
+lsr
+tax
+//FRAGMENT vbuyy=vbuxx_ror_1
+txa
+lsr
+tay
+//FRAGMENT vbuz1=vbuyy_ror_1
+tya
+lsr
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_ror_1
+tya
+lsr
+//FRAGMENT vbuxx=vbuyy_ror_1
+tya
+lsr
+tax
+//FRAGMENT vbuyy=vbuyy_ror_1
+tya
+lsr
+tay
+//FRAGMENT _deref_pbuc1_neq_vbuc2_then_la1
+lda #{c2}
+cmp {c1}
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz2
+ldx {z2}
+tay
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuxx
+tay
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy
+ldx {c1},y
+tay
+txa
+sta ({z1}),y
+//FRAGMENT vwuz1=vbuz2_word_vbuz3
+lda {z2}
+sta {z1}+1
+lda {z3}
+sta {z1}
+//FRAGMENT vwuz1=vbuaa_word_vbuz2
+sta {z1}+1
+lda {z2}
+sta {z1}
+//FRAGMENT vwuz1=vbuxx_word_vbuz2
+lda {z2}
+stx {z1}+1
+sta {z1}
+//FRAGMENT vwuz1=vbuyy_word_vbuz2
+lda {z2}
+sty {z1}+1
+sta {z1}
+//FRAGMENT vwuz1=vbuz2_word_vbuaa
+ldy {z2}
+sty {z1}+1
+sta {z1}
+//FRAGMENT vwuz1=vbuxx_word_vbuaa
+stx {z1}+1
+sta {z1}
+//FRAGMENT vwuz1=vbuyy_word_vbuaa
+sty {z1}+1
+sta {z1}
+//FRAGMENT vwuz1=vbuz2_word_vbuxx
+lda {z2}
+sta {z1}+1
+stx {z1}
+//FRAGMENT vwuz1=vbuaa_word_vbuxx
+sta {z1}+1
+stx {z1}
+//FRAGMENT vwuz1=vbuyy_word_vbuxx
+sty {z1}+1
+stx {z1}
+//FRAGMENT vwuz1=vbuz2_word_vbuyy
+lda {z2}
+sta {z1}+1
+sty {z1}
+//FRAGMENT vwuz1=vbuaa_word_vbuyy
+sta {z1}+1
+sty {z1}
+//FRAGMENT vwuz1=vbuxx_word_vbuyy
+stx {z1}+1
+sty {z1}
+//FRAGMENT _deref_pbuc1=_dec__deref_pbuc1
+dec {c1}
+//FRAGMENT vbuz1_lt_vbuz2_then_la1
+lda {z1}
+cmp {z2}
+bcc {la1}
+//FRAGMENT vbuz1_lt_vbuaa_then_la1
+cmp {z1}
+beq !+
+bcs {la1}
+!:
+//FRAGMENT vbuaa_lt_vbuz1_then_la1
+cmp {z1}
+bcc {la1}
+//FRAGMENT vbuxx_lt_vbuz1_then_la1
+cpx {z1}
+bcc {la1}
+//FRAGMENT vbuxx_lt_vbuaa_then_la1
+sta $ff
+cpx $ff
+bcc {la1}
+//FRAGMENT vbuz1_lt_vbuxx_then_la1
+cpx {z1}
+beq !+
+bcs {la1}
+!:
+//FRAGMENT vbuaa_lt_vbuxx_then_la1
+stx $ff
+cmp $ff
+bcc {la1}
+//FRAGMENT vbuz1=vbuz1_plus_vbuz2
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuz1_plus_vbuaa
+clc
+adc {z1}
+sta {z1}
+//FRAGMENT vbuz1=vbuz1_plus_vbuxx
+txa
+clc
+adc {z1}
+sta {z1}
+//FRAGMENT vbuz1=vbuz1_plus_vbuyy
+tya
+clc
+adc {z1}
+sta {z1}
+//FRAGMENT pbuz1_derefidx_vbuaa=vbuc1
+tay
+lda #{c1}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=vbuc1
+txa
+tay
+lda #{c1}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=vbuc1
+lda #{c1}
+sta ({z1}),y
+//FRAGMENT _deref_pboc1=vboc2
+lda #{c2}
+sta {c1}
+//FRAGMENT _deref_pboc1_then_la1
+lda {c1}
+cmp #0
+bne {la1}
+//FRAGMENT vboz1=vboc1
+lda #{c1}
+sta {z1}
+//FRAGMENT vboaa=vboc1
+lda #{c1}
+//FRAGMENT vboxx=vboc1
+lda #{c1}
+tax
+//FRAGMENT vboyy=vboc1
+lda #{c1}
+tay
+//FRAGMENT _deref_pbuc1_lt_vbuc2_then_la1
+lda {c1}
+cmp #{c2}
+bcc {la1}
+//FRAGMENT pbuz1_ge_vwuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bcc !+
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bcs {la1}
+!:
+//FRAGMENT _deref_pbuz1_neq_vbuc1_then_la1
+ldy #0
+lda ({z1}),y
+cmp #{c1}
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuz2_eq_vbuc1_then_la1
+lda #{c1}
+ldy {z2}
+cmp ({z1}),y
+beq {la1}
+//FRAGMENT pbuz1_derefidx_vbuaa_eq_vbuc1_then_la1
+tay
+lda #{c1}
+cmp ({z1}),y
+beq {la1}
+//FRAGMENT pbuz1_derefidx_vbuxx_eq_vbuc1_then_la1
+txa
+tay
+lda #{c1}
+cmp ({z1}),y
+beq {la1}
+//FRAGMENT pbuz1_derefidx_vbuyy_eq_vbuc1_then_la1
+lda #{c1}
+cmp ({z1}),y
+beq {la1}
+//FRAGMENT vbuz1_eq_vbuz2_then_la1
+lda {z1}
+cmp {z2}
+beq {la1}
+//FRAGMENT vbuz1_eq_vbuaa_then_la1
+cmp {z1}
+beq {la1}
+//FRAGMENT vbuz1_eq_vbuyy_then_la1
+tya
+cmp {z1}
+beq {la1}
+//FRAGMENT vbuyy_eq_vbuz1_then_la1
+tya
+cmp {z1}
+beq {la1}
+//FRAGMENT vbuyy_eq_vbuaa_then_la1
+tax
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT isr_hardware_all_entry
+sta rega+1 @clob_a
+stx regx+1 @clob_x
+sty regy+1 @clob_y
+//FRAGMENT isr_hardware_all_exit
+rega: @clob_a @nooptimize lda #0 @clob_a @nooptimize
+regx: @clob_x @nooptimize ldx #0 @clob_x @nooptimize
+regy: @clob_y @nooptimize ldy #0 @clob_y @nooptimize
+rti
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
+lda #{c2}
+ora {c1}
+sta {c1}
+//FRAGMENT _deref_qprc1=pprc2
+lda #<{c2}
+sta {c1}
+lda #>{c2}
+sta {c1}+1
+//FRAGMENT isr_rom_min_c64_entry
+
+//FRAGMENT isr_rom_min_c64_exit
+jmp $ea81
+//FRAGMENT pprz1=pprc1
+lda #<{c1}
+sta {z1}
+lda #>{c1}
+sta {z1}+1
 //FRAGMENT pprz1=pprz2
 lda {z2}
 sta {z1}
@@ -4603,32 +3217,6 @@ lda {c1},y
 sta {z1}
 lda {c1}+1,y
 sta {z1}+1
-//FRAGMENT pbuz1_lt_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bcc {la1}
-bne !+
-lda {z1}
-cmp #<{c1}
-bcc {la1}
-!:
-//FRAGMENT _deref_pbuz1=_inc__deref_pbuz1
-ldy #0
-lda ({z1}),y
-clc
-adc #1
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuaa
-ldx {z1}
-tay
-lda ({z2}),y
-sta {c1},x
-//FRAGMENT vwuz1=_deref_pbuc1_word__deref_pbuc2
-lda {c2}
-sta {z1}
-lda {c1}
-sta {z1}+1
 //FRAGMENT vbsz1=vbsc1
 lda #{c1}
 sta {z1}
@@ -4673,6 +3261,12 @@ ldx {z2}
 lda {c2},x
 ldy {c1},x
 sta ({z1}),y
+//FRAGMENT vbsz1=_neg_vbsz1
+lda {z1}
+eor #$ff
+clc
+adc #$01
+sta {z1}
 //FRAGMENT pbuz1_derefidx_(pbsc1_derefidx_vbuaa)=vbuc2
 tax
 lda #{c2}
@@ -4793,182 +3387,22 @@ sta {c1},y
 //FRAGMENT pbsc1_derefidx_vbuyy=vbsyy
 tya
 sta {c1},y
+//FRAGMENT vbsxx=_neg_vbsxx
+txa
+eor #$ff
+clc
+adc #$01
+tax
+//FRAGMENT vbsyy=_neg_vbsyy
+tya
+eor #$ff
+clc
+adc #$01
+tay
 //FRAGMENT pbsc1_derefidx_vbuxx=vbsaa
 sta {c1},x
 //FRAGMENT vbsyy=vbsc1
 ldy #{c1}
-//FRAGMENT vbuz1=vbuz2_plus_vbuz2
-lda {z2}
-asl
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_plus_vbuz3
-lda {z3}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuz3
-ldy {z3}
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2_eq_vbuc1_then_la1
-lda #{c1}
-ldy {z2}
-cmp ({z1}),y
-beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_0_then_la1
-ldy {z2}
-lda ({z1}),y
-
-cmp #0
-bne {la1}
-//FRAGMENT vwuz1=vbuz2_rol_3
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vbuz1=vbuaa_plus_vbuaa
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_plus_vbuz1
-lda {z1}
-asl
-//FRAGMENT vbuaa=vbuaa_plus_vbuaa
-asl
-//FRAGMENT vbuxx=vbuz1_plus_vbuz1
-lda {z1}
-asl
-tax
-//FRAGMENT vbuxx=vbuaa_plus_vbuaa
-asl
-tax
-//FRAGMENT vbuyy=vbuz1_plus_vbuz1
-lda {z1}
-asl
-tay
-//FRAGMENT vbuyy=vbuaa_plus_vbuaa
-asl
-tay
-//FRAGMENT vbuz1=vbuaa_plus_1
-clc
-adc #1
-sta {z1}
-//FRAGMENT vbuxx_eq_vbuz1_then_la1
-cpx {z1}
-beq {la1}
-//FRAGMENT vwuz1=vwuz2_plus_vbuxx
-txa
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_plus_vbuyy
-tya
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuyy
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa_eq_vbuc1_then_la1
-tay
-lda #{c1}
-cmp ({z1}),y
-beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuxx_eq_vbuc1_then_la1
-txa
-tay
-lda #{c1}
-cmp ({z1}),y
-beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_eq_vbuc1_then_la1
-lda #{c1}
-cmp ({z1}),y
-beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_0_then_la1
-txa
-tay
-lda ({z1}),y
-
-cmp #0
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_0_then_la1
-lda ({z1}),y
-
-cmp #0
-bne {la1}
-//FRAGMENT vwuz1=vbuaa_rol_3
-sta {z1}
-lda #0
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=vbuxx_rol_3
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=vbuyy_rol_3
-tya
-sta {z1}
-lda #0
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vbuz1_lt_vbuxx_then_la1
-cpx {z1}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vwuz1=vwuz2_plus_vbuaa
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=vbuyy_plus_1
-iny
-sty {z1}
-//FRAGMENT vbuxx_lt_vbuaa_then_la1
-sta $ff
-cpx $ff
-bcc {la1}
 //FRAGMENT vbuz1=_lo__deref_pwuc1
 lda {c1}
 sta {z1}
@@ -4995,6 +3429,13 @@ sta {z1}
 lda {z2}+1
 adc {z3}+1
 sta {z1}+1
+//FRAGMENT pbuz1_neq_pbuz2_then_la1
+lda {z1}+1
+cmp {z2}+1
+bne {la1}
+lda {z1}
+cmp {z2}
+bne {la1}
 //FRAGMENT vwsz1=vbsc1_minus_vwsz2
 NO_SYNTHESIS
 //FRAGMENT vwsz1=vwuc1_minus_vwsz2
@@ -5095,9 +3536,6 @@ sta {z1}
 lda {z2}+1
 adc #>{c1}
 sta {z1}+1
-//FRAGMENT vbuz1=_lo_vwsz2
-lda {z2}
-sta {z1}
 //FRAGMENT pbuz1=pbuz2_plus_vbuz3
 lda {z3}
 clc
@@ -5149,10 +3587,6 @@ lda ({z2}),y
 ldy {z3}
 ora {c1},y
 sta {z1}
-//FRAGMENT vbuaa=_lo_vwsz1
-lda {z1}
-//FRAGMENT vbuxx=_lo_vwsz1
-ldx {z1}
 //FRAGMENT pbuz1=pbuz2_plus_vbuaa
 clc
 adc {z2}
@@ -5265,8 +3699,6 @@ lda {c1},y
 ldy #0
 ora ({z1}),y
 tay
-//FRAGMENT vbuyy=_lo_vwsz1
-ldy {z1}
 //FRAGMENT vwsz1=vwsz1_plus_vwsz2
 lda {z1}
 clc
@@ -5327,6 +3759,13 @@ sta {z1}
 lda {z1}+1
 adc {z2}+1
 sta {z1}+1
+//FRAGMENT pbuz1=pbuz1_plus_vbuaa
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
 //FRAGMENT vwsz1=vwsz1_rol_6
 lda {z1}+1
 sta $ff
@@ -5345,26 +3784,54 @@ lda #<{c2}
 sta {c1}
 lda #>{c2}
 sta {c1}+1
-//FRAGMENT 0_eq_vwuz1_then_la1
-lda {z1}
-ora {z1}+1
-beq {la1}
-//FRAGMENT vwuz1=_dec_vwuz1
-lda {z1}
-bne !+
-dec {z1}+1
-!:
-dec {z1}
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuaa_then_la1
-tay
-lda {c1},y
-cmp #0
-bne {la1}
 //FRAGMENT _deref_pwuc1=_deref_pwuc2
 lda {c2}
 sta {c1}
 lda {c2}+1
 sta {c1}+1
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuz3
+ldx {z1}
+ldy {z3}
+lda ({z2}),y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuxx
+txa
+ldx {z1}
+tay
+lda ({z2}),y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuyy
+lda ({z2}),y
+ldx {z1}
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuz2
+ldy {z2}
+lda ({z1}),y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuxx
+txa
+tay
+lda ({z1}),y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuyy
+lda ({z1}),y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuz2
+tya
+ldy {z2}
+tax
+lda ({z1}),y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuxx
+sty $ff
+txa
+tay
+lda ({z1}),y
+ldy $ff
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuyy
+lda ({z1}),y
+sta {c1},y
 //FRAGMENT _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3
 ldy #{c3}
 !:
@@ -5386,6 +3853,78 @@ lda {c2}-1,y
 sta {c1}-1,y
 dey
 bne !-
+//FRAGMENT vbuz1=vbuz2_rol_2
+lda {z2}
+asl
+asl
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_rol_2
+lda {z1}
+asl
+asl
+//FRAGMENT vbuxx=vbuz1_rol_2
+lda {z1}
+asl
+asl
+tax
+//FRAGMENT vbuyy=vbuz1_rol_2
+lda {z1}
+asl
+asl
+tay
+//FRAGMENT vbuz1=vbuaa_rol_2
+asl
+asl
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_rol_2
+asl
+asl
+//FRAGMENT vbuxx=vbuaa_rol_2
+asl
+asl
+tax
+//FRAGMENT vbuyy=vbuaa_rol_2
+asl
+asl
+tay
+//FRAGMENT vbuz1=vbuxx_rol_2
+txa
+asl
+asl
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_rol_2
+txa
+asl
+asl
+//FRAGMENT vbuxx=vbuxx_rol_2
+txa
+asl
+asl
+tax
+//FRAGMENT vbuyy=vbuxx_rol_2
+txa
+asl
+asl
+tay
+//FRAGMENT vbuz1=vbuyy_rol_2
+tya
+asl
+asl
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_rol_2
+tya
+asl
+asl
+//FRAGMENT vbuxx=vbuyy_rol_2
+tya
+asl
+asl
+tax
+//FRAGMENT vbuyy=vbuyy_rol_2
+tya
+asl
+asl
+tay
 //FRAGMENT vbuz1=vbuz2_rol_3
 lda {z2}
 asl
@@ -5597,27 +4136,21 @@ bne !-
 //FRAGMENT _deref_pbuc1=_byte_pprz1
 lda {z1}
 sta {c1}
-//FRAGMENT vwuz1=_deref_pwuc1_minus_vwuc2
-sec
-lda {c1}
-sbc #<{c2}
+//FRAGMENT vbuz1=vbuz2_plus_vbuz2
+lda {z2}
+asl
 sta {z1}
-lda {c1}+1
-sbc #>{c2}
-sta {z1}+1
-//FRAGMENT _deref_pwuc1=vwuz1
+//FRAGMENT vbuaa=vbuz1_plus_vbuz1
 lda {z1}
-sta {c1}
-lda {z1}+1
-sta {c1}+1
-//FRAGMENT pbuz1=_deref_qbuc1_plus_vwuc2
-clc
-lda {c1}
-adc #<{c2}
-sta {z1}
-lda {c1}+1
-adc #>{c2}
-sta {z1}+1
+asl
+//FRAGMENT vbuxx=vbuz1_plus_vbuz1
+lda {z1}
+asl
+tax
+//FRAGMENT vbuyy=vbuz1_plus_vbuz1
+lda {z1}
+asl
+tay
 //FRAGMENT 0_neq__deref_pbuc1_then_la1
 lda {c1}
 cmp #0
@@ -5627,12 +4160,14 @@ lda #{c1}
 ldy {z2}
 sty {z1}+1
 sta {z1}
-//FRAGMENT vbuz1=vbuz2_minus__deref_pbuz3
-lda {z2}
-sec
-ldy #0
-sbc ({z3}),y
+//FRAGMENT vwuz1=vwuz2_plus_vbuc1
+lda #{c1}
+clc
+adc {z2}
 sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
 //FRAGMENT vbsz1=_inc_vbsz1
 inc {z1}
 //FRAGMENT vbsz1_neq_vbsc1_then_la1
@@ -5663,6 +4198,14 @@ sta {z1}+1
 lda {z2}
 ror
 sta {z1}
+//FRAGMENT vwuz1=vwuc1_minus_vwuz1
+sec
+lda #<{c1}
+sbc {z1}
+sta {z1}
+lda #>{c1}
+sbc {z1}+1
+sta {z1}+1
 //FRAGMENT vwuz1=_neg_vwuz1
 sec
 lda #0
@@ -5693,6 +4236,10 @@ sta {z1}
 lda {z1}+1
 sbc {c1}+1,y
 sta {z1}+1
+//FRAGMENT vbuz1_eq_vbuc1_then_la1
+lda #{c1}
+cmp {z1}
+beq {la1}
 //FRAGMENT vwuz1=vwuz1_plus_pwuc1_derefidx_vbuz2
 ldy {z2}
 clc
@@ -5722,53 +4269,6 @@ sty {z1}
 lda #{c1}
 stx {z1}+1
 sta {z1}
-//FRAGMENT vwuz1=vwuz1_plus_vbuaa
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=vbuxx_minus__deref_pbuz2
-txa
-sec
-ldy #0
-sbc ({z2}),y
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_minus__deref_pbuz2
-lda {z1}
-sec
-ldy #0
-sbc ({z2}),y
-//FRAGMENT vbuaa=vbuxx_minus__deref_pbuz1
-txa
-sec
-ldy #0
-sbc ({z1}),y
-//FRAGMENT vbuxx=vbuz1_minus__deref_pbuz2
-lda {z1}
-sec
-ldy #0
-sbc ({z2}),y
-tax
-//FRAGMENT vbuxx=vbuxx_minus__deref_pbuz1
-txa
-sec
-ldy #0
-sbc ({z1}),y
-tax
-//FRAGMENT vbuyy=vbuz1_minus__deref_pbuz2
-lda {z1}
-sec
-ldy #0
-sbc ({z2}),y
-tay
-//FRAGMENT vbuyy=vbuxx_minus__deref_pbuz1
-txa
-sec
-ldy #0
-sbc ({z1}),y
-tay
 //FRAGMENT vbsxx_neq_vbsc1_then_la1
 cpx #{c1}
 bne {la1}
@@ -5965,14 +4465,6 @@ ora {z2}
 sta {z1}
 //FRAGMENT vbuz1=vbuxx_bor_vbuxx
 stx {z1}
-//FRAGMENT pbuz1_derefidx_vbuxx=vbuz2
-txa
-tay
-lda {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=vbuz2
-lda {z2}
-sta ({z1}),y
 //FRAGMENT vwuz1=vwuz1_minus_pwuc1_derefidx_vbuaa
 tay
 sec
@@ -5998,6 +4490,9 @@ sta {z1}
 lda {z1}+1
 sbc {c1}+1,y
 sta {z1}+1
+//FRAGMENT vbuxx_eq_vbuc1_then_la1
+cpx #{c1}
+beq {la1}
 //FRAGMENT vwuz1=vwuz1_plus_pwuc1_derefidx_vbuaa
 tay
 clc
@@ -6023,17 +4518,15 @@ sta {z1}
 lda {z1}+1
 adc {c1}+1,y
 sta {z1}+1
-//FRAGMENT vbuz1_lt_vbuaa_then_la1
-cmp {z1}
-beq !+
-bcs {la1}
-!:
 //FRAGMENT vbuxx=vbuxx_minus_2
 dex
 dex
 //FRAGMENT vbuyy=vbuyy_minus_2
 dey
 dey
+//FRAGMENT vbuyy_eq_vbuc1_then_la1
+cpy #{c1}
+beq {la1}
 //FRAGMENT vbuz1=vbuz2_bor_vbuyy
 tya
 ora {z2}
@@ -6079,22 +4572,6 @@ tay
 tya
 ora {z1}
 tay
-//FRAGMENT pbuz1_derefidx_vbuxx=vbuyy
-stx $ff
-tya
-ldy $ff
-sta ({z1}),y
-//FRAGMENT vbuz1_lt_vbuyy_then_la1
-cpy {z1}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vbuxx_lt_vbuyy_then_la1
-sty $ff
-cpx $ff
-bcc {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy=vbuaa
-sta ({z1}),y
 //FRAGMENT vbuaa=vbuyy_bor_vbuaa
 sty $ff
 ora $ff
@@ -6106,9 +4583,15 @@ sta {z1}
 bcc !+
 inc {z1}+1
 !:
+//FRAGMENT vbuaa_eq_vbuc1_then_la1
+cmp #{c1}
+beq {la1}
 //FRAGMENT vbuz1_eq_vbuxx_then_la1
 cpx {z1}
 beq {la1}
+//FRAGMENT vbuxx_eq_vbuz1_then_la1
+cpx {z1}
+beq {la1}
 //FRAGMENT vbuxx_eq_vbuaa_then_la1
 tay
 sty $ff
@@ -6122,53 +4605,10 @@ beq  {la1}
 sty $ff
 cpx $ff
 beq  {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuz3
-ldy {z3}
-lda {c1},y
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuz2
-txa
-ldx {z2}
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz2
-ldx {z2}
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuxx
-txa
-tay
-lda {c1},y
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy
-lda {c1},y
-stx $ff
-ldy $ff
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuyy
-lda {c1},y
-sta ({z1}),y
-//FRAGMENT vwsz1=_sword_vbuz2
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_rol_1
-asl {z1}
-rol {z1}+1
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuc2
+lda #{c2}
+and {c1}
+sta {c1}
 //FRAGMENT vboz1=vbuz2_lt_vbuc1
 lda {z2}
 cmp #{c1}
@@ -6265,6 +4705,70 @@ lda #0
 rol
 eor #1
 tay
+//FRAGMENT vbuz1=vbuc1_plus_vbuz2
+lax {z2}
+axs #-[{c1}]
+stx {z1}
+//FRAGMENT vbuz1=vbuc1_plus_vbuaa
+clc
+adc #{c1}
+sta {z1}
+//FRAGMENT vbuz1=vbuc1_plus_vbuxx
+txa
+axs #-[{c1}]
+stx {z1}
+//FRAGMENT vbuz1=vbuc1_plus_vbuyy
+tya
+clc
+adc #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuc1_plus_vbuz1
+lda #{c1}
+clc
+adc {z1}
+//FRAGMENT vbuaa=vbuc1_plus_vbuaa
+clc
+adc #{c1}
+//FRAGMENT vbuaa=vbuc1_plus_vbuxx
+txa
+clc
+adc #{c1}
+//FRAGMENT vbuaa=vbuc1_plus_vbuyy
+tya
+clc
+adc #{c1}
+//FRAGMENT vbuxx=vbuc1_plus_vbuz1
+lax {z1}
+axs #-[{c1}]
+//FRAGMENT vbuxx=vbuc1_plus_vbuaa
+tax
+axs #-[{c1}]
+//FRAGMENT vbuxx=vbuc1_plus_vbuxx
+txa
+axs #-[{c1}]
+//FRAGMENT vbuxx=vbuc1_plus_vbuyy
+tya
+tax
+axs #-[{c1}]
+//FRAGMENT vbuyy=vbuc1_plus_vbuz1
+lda #{c1}
+clc
+adc {z1}
+tay
+//FRAGMENT vbuyy=vbuc1_plus_vbuaa
+clc
+adc #{c1}
+tay
+//FRAGMENT vbuyy=vbuc1_plus_vbuxx
+txa
+clc
+adc #{c1}
+tay
+//FRAGMENT vbuyy=vbuc1_plus_vbuyy
+tya
+clc
+adc #{c1}
+tay
 //FRAGMENT vbuz1=vbuz2_rol_4
 lda {z2}
 asl
@@ -6434,9 +4938,6 @@ ora {z1}
 txa
 sty $ff
 ora $ff
-//FRAGMENT pbuz1_derefidx_vbuyy=vbuxx
-txa
-sta ({z1}),y
 //FRAGMENT vbuxx=vbuxx_bor_vbuz1
 txa
 ora {z1}
@@ -6599,75 +5100,16 @@ inc {c1},x
 bne !+
 inc {c1}+1,x
 !:
-//FRAGMENT vbuz1=vbuc1_bor_vbuz2
-lda #{c1}
-ora {z2}
-sta {z1}
-//FRAGMENT pbuz1_neq_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT vbuz1=vbuc1_bor_vbuaa
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_bor_vbuxx
-txa
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_bor_vbuyy
-tya
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuc1_bor_vbuz1
-lda #{c1}
-ora {z1}
-//FRAGMENT vbuaa=vbuc1_bor_vbuaa
-ora #{c1}
-//FRAGMENT vbuaa=vbuc1_bor_vbuxx
-txa
-ora #{c1}
-//FRAGMENT vbuaa=vbuc1_bor_vbuyy
-tya
-ora #{c1}
-//FRAGMENT vbuxx=vbuc1_bor_vbuz1
-lda #{c1}
-ora {z1}
-tax
-//FRAGMENT vbuxx=vbuc1_bor_vbuaa
-ora #{c1}
-tax
-//FRAGMENT vbuxx=vbuc1_bor_vbuxx
-txa
-ora #{c1}
-tax
-//FRAGMENT vbuxx=vbuc1_bor_vbuyy
-tya
-ora #{c1}
-tax
-//FRAGMENT vbuyy=vbuc1_bor_vbuz1
-lda #{c1}
-ora {z1}
-tay
-//FRAGMENT vbuyy=vbuc1_bor_vbuaa
-ora #{c1}
-tay
-//FRAGMENT vbuyy=vbuc1_bor_vbuxx
-txa
-ora #{c1}
-tay
-//FRAGMENT vbuyy=vbuc1_bor_vbuyy
-tya
-ora #{c1}
-tay
 //FRAGMENT vwuz1_gt_vbuc1_then_la1
 lda {z1}+1
 bne {la1}
 lda #{c1}
 cmp {z1}
 bcc {la1}
+//FRAGMENT vbuz1=vbuz2_bxor_vbuc1
+lda #{c1}
+eor {z2}
+sta {z1}
 //FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuz1
 lda {c1}
 and {z1}
@@ -6676,6 +5118,17 @@ sta {c1}
 lda {c1}
 ora {z1}
 sta {c1}
+//FRAGMENT vbuaa=vbuz1_bxor_vbuc1
+lda #{c1}
+eor {z1}
+//FRAGMENT vbuxx=vbuz1_bxor_vbuc1
+lda #{c1}
+eor {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_bxor_vbuc1
+lda #{c1}
+eor {z1}
+tay
 //FRAGMENT vbuz1=vbuaa_bxor_vbuc1
 eor #{c1}
 sta {z1}
@@ -6687,6 +5140,28 @@ tax
 //FRAGMENT vbuyy=vbuaa_bxor_vbuc1
 eor #{c1}
 tay
+//FRAGMENT vbuz1=vbuxx_bxor_vbuc1
+txa
+eor #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_bxor_vbuc1
+txa
+eor #{c1}
+//FRAGMENT vbuyy=vbuxx_bxor_vbuc1
+txa
+eor #{c1}
+tay
+//FRAGMENT vbuz1=vbuyy_bxor_vbuc1
+tya
+eor #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_bxor_vbuc1
+tya
+eor #{c1}
+//FRAGMENT vbuxx=vbuyy_bxor_vbuc1
+tya
+eor #{c1}
+tax
 //FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuaa
 and {c1}
 sta {c1}
@@ -6709,52 +5184,20 @@ sta {c1}
 tya
 ora {c1}
 sta {c1}
-//FRAGMENT _stackpushbyte_=vbuc1
+//FRAGMENT vbuyy=_lo_vwuz1
+ldy {z1}
+//FRAGMENT vbuz1_le_vbuc1_then_la1
 lda #{c1}
-pha
-//FRAGMENT _stackpullbyte_1
-pla
-//FRAGMENT vbuz1=_stackpullbyte_
-pla
-sta {z1}
-//FRAGMENT vbuz1=_stackidxbyte_vbuc1
-tsx
-lda STACK_BASE+{c1},x
-sta {z1}
-//FRAGMENT _stackidxbyte_vbuc1=vbuz1
+cmp {z1}
+bcs {la1}
+//FRAGMENT vbuaa_le_vbuc1_then_la1
+cmp #{c1}
+bcc {la1}
+beq {la1}
+//FRAGMENT vbsz1_ge_0_then_la1
 lda {z1}
-tsx
-sta STACK_BASE+{c1},x
-//FRAGMENT vbuaa=_stackpullbyte_
-pla
-//FRAGMENT vbuxx=_stackpullbyte_
-pla
-tax
-//FRAGMENT vbuyy=_stackpullbyte_
-pla
-tay
-//FRAGMENT vbuaa=_stackidxbyte_vbuc1
-tsx
-lda STACK_BASE+{c1},x
-//FRAGMENT vbuxx=_stackidxbyte_vbuc1
-tsx
-lda STACK_BASE+{c1},x
-tax
-//FRAGMENT vbuyy=_stackidxbyte_vbuc1
-tsx
-lda STACK_BASE+{c1},x
-tay
-//FRAGMENT _stackidxbyte_vbuc1=vbuaa
-tsx
-sta STACK_BASE+{c1},x
-//FRAGMENT _stackidxbyte_vbuc1=vbuxx
-txa
-tsx
-sta STACK_BASE+{c1},x
-//FRAGMENT _stackidxbyte_vbuc1=vbuyy
-tya
-tsx
-sta STACK_BASE+{c1},x
+cmp #0
+bpl {la1}
 //FRAGMENT vbsz1=_dec_vbsz1
 dec {z1}
 //FRAGMENT pbuz1=pbuc1_plus_vbsz2
@@ -6848,6 +5291,9 @@ tay
 sty $ff
 ora $ff
 tay
+//FRAGMENT vbsxx_ge_0_then_la1
+cpx #0
+bpl {la1}
 //FRAGMENT vbuyy=vbuxx_bor_vbuyy
 txa
 sty $ff
@@ -6862,47 +5308,291 @@ tax
 ldx #{c1}
 //FRAGMENT vbsxx=_dec_vbsxx
 dex
-//FRAGMENT vduz1=vduz2_minus_vduc1
-lda {z2}
+//FRAGMENT pbuz1=_dec_pbuz1
+lda {z1}
+bne !+
+dec {z1}+1
+!:
+dec {z1}
+//FRAGMENT _stackpushbyte_=vbuz1
+lda {z1}
+pha
+//FRAGMENT _stackpushbyte_1
+pha
+//FRAGMENT _stackpullbyte_2
+pla
+pla
+//FRAGMENT _stackpushbyte_=vbuxx
+txa
+pha
+//FRAGMENT _stackpushbyte_=vbuyy
+tya
+pha
+//FRAGMENT _stackpushbyte_3
+pha
+pha
+pha
+//FRAGMENT _stackpullbyte_4
+tsx
+txa
+axs #-4
+txs
+//FRAGMENT vbuaa=vbuz1_plus_1
+lda {z1}
+clc
+adc #1
+//FRAGMENT vbuyy=vbuz1_plus_1
+ldy {z1}
+iny
+//FRAGMENT vbuz1=vbuyy_plus_1
+iny
+sty {z1}
+//FRAGMENT vbuyy=vbuxx_plus_1
+txa
+tay
+iny
+//FRAGMENT pbuz1=_stackidxptr_vbuc1
+tsx
+lda STACK_BASE+{c1},x
+sta {z1}
+lda STACK_BASE+{c1}+1,x
+sta {z1}+1
+//FRAGMENT pbuc1_derefidx_vbuz1=_deref_pbuz2
+ldy #0
+lda ({z2}),y
+ldy {z1}
+sta {c1},y
+//FRAGMENT _stackpushptr_=pbuc1
+lda #>{c1}
+pha
+lda #<{c1}
+pha
+//FRAGMENT _stackpullbyte_3
+tsx
+txa
+axs #-3
+txs
+//FRAGMENT vbuz1=vbuz2_minus_1
+ldx {z2}
+dex
+stx {z1}
+//FRAGMENT vbuaa=vbuz1_minus_1
+lda {z1}
 sec
-sbc #<{c1}
+sbc #1
+//FRAGMENT _stackpushbyte_=vbuaa
+pha
+//FRAGMENT vbuxx=vbuz1_minus_1
+ldx {z1}
+dex
+//FRAGMENT vbuyy=vbuz1_minus_1
+lda {z1}
+tay
+dey
+//FRAGMENT vbuz1=vbuaa_minus_1
+sec
+sbc #1
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_minus_1
+sec
+sbc #1
+//FRAGMENT vbuxx=vbuaa_minus_1
+tax
+dex
+//FRAGMENT pbuc1_derefidx_vbuz1_neq_0_then_la1
+ldy {z1}
+lda {c1},y
+cmp #0
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuc1=vbuc2
+lda #{c2}
+ldy #{c1}
+sta ({z1}),y
+//FRAGMENT pbuc1_derefidx_vbuaa_neq_0_then_la1
+tay
+lda {c1},y
+cmp #0
+bne {la1}
+//FRAGMENT pbuc1_derefidx_vbuxx_neq_0_then_la1
+lda {c1},x
+cmp #0
+bne {la1}
+//FRAGMENT pbuc1_derefidx_vbuyy_neq_0_then_la1
+lda {c1},y
+cmp #0
+bne {la1}
+//FRAGMENT pvoz1=pvoz2
+lda {z2}
 sta {z1}
 lda {z2}+1
-sbc #>{c1}
 sta {z1}+1
-lda {z2}+2
-sbc #<{c1}>>$10
-sta {z1}+2
-lda {z2}+3
-sbc #>{c1}>>$10
-sta {z1}+3
-//FRAGMENT _deref_pduc1=vduc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
-lda #<{c2}>>$10
-sta {c1}+2
-lda #>{c2}>>$10
-sta {c1}+3
-//FRAGMENT vduz1=vduc1_minus__deref_pduc2
+//FRAGMENT vwuz1=vbuc1
 lda #<{c1}
+sta {z1}
+lda #>{c1}
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz2_minus_vwuz3
+lda {z2}
 sec
-sbc {c2}
+sbc {z3}
 sta {z1}
-lda #>{c1}
-sbc {c2}+1
+lda {z2}+1
+sbc {z3}+1
 sta {z1}+1
-lda #<{c1}>>$10
-sbc {c2}+2
-sta {z1}+2
-lda #>{c1}>>$10
-sbc {c2}+3
-sta {z1}+3
-//FRAGMENT pwuz1=pwuc1
-lda #<{c1}
+//FRAGMENT pwuz1=qwuz2_derefidx_vbuz3
+ldy {z3}
+lda ({z2}),y
 sta {z1}
-lda #>{c1}
+iny
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT vbuz1=pbuz2_derefidx_vbuz3
+ldy {z3}
+lda ({z2}),y
+sta {z1}
+//FRAGMENT vbuz1_le_0_then_la1
+lda {z1}
+cmp #0
+beq {la1}
+//FRAGMENT vwuz1_eq_vwuc1_then_la1
+lda {z1}
+cmp #<{c1}
+bne !+
+lda {z1}+1
+cmp #>{c1}
+beq {la1}
+!:
+//FRAGMENT vwuz1=pwuz2_derefidx_vbuz3
+ldy {z3}
+lda ({z2}),y
+sta {z1}
+iny
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT _deref_pbuz1_eq_vbuc1_then_la1
+lda #{c1}
+ldy #0
+cmp ({z1}),y
+beq {la1}
+//FRAGMENT _deref_pbuz1_gt_vbuz2_then_la1
+ldy #0
+lda ({z1}),y
+cmp {z2}
+beq !+
+bcs {la1}
+!:
+//FRAGMENT pbuz1=pbuz2_plus_vwuc1
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vbuz1=vbuc1_minus_vbuz2
+lda #{c1}
+sec
+sbc {z2}
+sta {z1}
+//FRAGMENT pbuz1=pbuz1_minus_vbuc1
+sec
+lda {z1}
+sbc #{c1}
+sta {z1}
+lda {z1}+1
+sbc #0
+sta {z1}+1
+//FRAGMENT vbuz1=vbuz2_minus_vbuc1
+lax {z2}
+axs #{c1}
+stx {z1}
+//FRAGMENT vbuz1=_neg_vbuz2
+lda {z2}
+eor #$ff
+clc
+adc #$01
+sta {z1}
+//FRAGMENT pbuz1_derefidx_(_deref_pbuz2)=_inc_pbuz1_derefidx_(_deref_pbuz2)
+ldy #0
+lda ({z2}),y
+tay
+lda ({z1}),y
+clc
+adc #1
+sta ({z1}),y
+//FRAGMENT vwuz1_neq_vwuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bne {la1}
+//FRAGMENT vwuz1=_deref_pbuz2_rol_1
+ldy #0
+lda ({z2}),y
+asl
+sta {z1}
+lda #0
+rol
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_rol_1
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+//FRAGMENT qwuz1=qwuz2_plus_vwuz3
+lda {z2}
+clc
+adc {z3}
+sta {z1}
+lda {z2}+1
+adc {z3}+1
+sta {z1}+1
+//FRAGMENT _deref_qwuz1=pwuz2
+ldy #0
+lda {z2}
+sta ({z1}),y
+iny
+lda {z2}+1
+sta ({z1}),y
+//FRAGMENT vwuz1_neq_vbuc1_then_la1
+NO_SYNTHESIS
+//FRAGMENT vwuz1_neq_vbsc1_then_la1
+NO_SYNTHESIS
+//FRAGMENT pwuz1=_deref_qwuz2
+ldy #0
+lda ({z2}),y
+sta {z1}
+iny
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT vwuz1=pbuz2_minus_pbuz3
+lda {z2}
+sec
+sbc {z3}
+sta {z1}
+lda {z2}+1
+sbc {z3}+1
+sta {z1}+1
+//FRAGMENT pwuz1_derefidx_vbuz2=vwuz3
+ldy {z2}
+lda {z3}
+sta ({z1}),y
+iny
+lda {z3}+1
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuz2
+ldy {z2}
+lda ({z1}),y
+clc
+adc #1
+sta ({z1}),y
+//FRAGMENT pwuz1=pwuz2
+lda {z2}
+sta {z1}
+lda {z2}+1
 sta {z1}+1
 //FRAGMENT _deref_pwuz1=vwuz2
 ldy #0
@@ -6919,22 +5609,22 @@ sta {z1}
 bcc !+
 inc {z1}+1
 !:
-//FRAGMENT pwuz1=pwuz2
+//FRAGMENT vwuz1=vwuz1_plus_vbuz2
 lda {z2}
+clc
+adc {z1}
 sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=pwuz2_minus_pwuc1
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vwuz1=pwuz2_minus_pwuz3
 lda {z2}
 sec
-sbc #<{c1}
+sbc {z3}
 sta {z1}
 lda {z2}+1
-sbc #>{c1}
+sbc {z3}+1
 sta {z1}+1
-//FRAGMENT vbuz1_gt_0_then_la1
-lda {z1}
-bne {la1}
 //FRAGMENT _deref_pwuz1_le_vwuz2_then_la1
 ldy #1
 lda ({z1}),y
@@ -6987,14 +5677,96 @@ sta {z1}
 lda #0
 adc {z2}+1
 sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus_1
-clc
-lda {z2}
-adc #1
+//FRAGMENT vbuz1=vbuz1_ror_1
+lsr {z1}
+//FRAGMENT pwuz1=qwuz2_derefidx_vbuaa
+tay
+lda ({z2}),y
 sta {z1}
-lda {z2}+1
-adc #0
+iny
+lda ({z2}),y
 sta {z1}+1
+//FRAGMENT pwuz1=qwuz2_derefidx_vbuxx
+txa
+tay
+lda ({z2}),y
+sta {z1}
+iny
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT pwuz1=qwuz2_derefidx_vbuyy
+lda ({z2}),y
+sta {z1}
+iny
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT vbuxx=pbuz1_derefidx_vbuz2
+ldy {z2}
+lda ({z1}),y
+tax
+//FRAGMENT vbuyy=pbuz1_derefidx_vbuz2
+ldy {z2}
+lda ({z1}),y
+tay
+//FRAGMENT vbuz1=pbuz2_derefidx_vbuxx
+txa
+tay
+lda ({z2}),y
+sta {z1}
+//FRAGMENT vbuxx=pbuz1_derefidx_vbuxx
+txa
+tay
+lda ({z1}),y
+tax
+//FRAGMENT vbuyy=pbuz1_derefidx_vbuxx
+txa
+tay
+lda ({z1}),y
+tay
+//FRAGMENT vbuaa_le_0_then_la1
+cmp #0
+beq {la1}
+//FRAGMENT vwuz1=pwuz2_derefidx_vbuaa
+tay
+lda ({z2}),y
+sta {z1}
+iny
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuz2_derefidx_vbuxx
+txa
+tay
+lda ({z2}),y
+sta {z1}
+iny
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuz2_derefidx_vbuyy
+lda ({z2}),y
+sta {z1}
+iny
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT _deref_pbuz1_gt_vbuxx_then_la1
+ldy #0
+lda ({z1}),y
+sta $ff
+cpx $ff
+bcc {la1}
+//FRAGMENT vbuaa=vbuc1_minus_vbuz1
+lda #{c1}
+sec
+sbc {z1}
+//FRAGMENT vbuxx=vbuc1_minus_vbuz1
+lda #{c1}
+sec
+sbc {z1}
+tax
+//FRAGMENT vbuyy=vbuc1_minus_vbuz1
+lda #{c1}
+sec
+sbc {z1}
+tay
 //FRAGMENT vbuz1=vbuc1_minus_vbuaa
 eor #$ff
 sec
@@ -7057,471 +5829,45 @@ eor #$ff
 sec
 adc #{c1}
 tay
-//FRAGMENT pbuz1_derefidx_vbuxx=vbuxx
+//FRAGMENT vbuz1=vbuaa_minus_vbuc1
+sec
+sbc #{c1}
+sta {z1}
+//FRAGMENT vbuz1=vbuxx_minus_vbuc1
 txa
-tay
-sta ({z1}),y
-//FRAGMENT vbuaa_gt_0_then_la1
-cmp #0
-bne {la1}
-//FRAGMENT vbuz1=vbuaa_ror_1
-lsr
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_ror_1
-lsr
-//FRAGMENT vbuxx=vbuaa_ror_1
-lsr
-tax
-//FRAGMENT vbuyy=vbuaa_ror_1
-lsr
-tay
-//FRAGMENT pwuz1=pwuz2_plus_vbuaa
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pwuz1=pwuz2_plus_vbuxx
-txa
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pwuz1=pwuz2_plus_vbuyy
+axs #{c1}
+stx {z1}
+//FRAGMENT vbuz1=vbuyy_minus_vbuc1
 tya
-clc
-adc {z2}
+sec
+sbc #{c1}
 sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vbuxx_gt_0_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT vbuaa=vbuaa_plus_1
-clc
-adc #1
-//FRAGMENT vbuxx=vbuaa_plus_1
-tax
-inx
-//FRAGMENT vbuxx=vbuyy_plus_1
+//FRAGMENT vbuaa=vbuz1_minus_vbuc1
+lda {z1}
+sec
+sbc #{c1}
+//FRAGMENT vbuaa=vbuaa_minus_vbuc1
+sec
+sbc #{c1}
+//FRAGMENT vbuaa=vbuxx_minus_vbuc1
+txa
+sec
+sbc #{c1}
+//FRAGMENT vbuaa=vbuyy_minus_vbuc1
 tya
+sec
+sbc #{c1}
+//FRAGMENT vbuxx=vbuz1_minus_vbuc1
+lax {z1}
+axs #{c1}
+//FRAGMENT vbuxx=vbuaa_minus_vbuc1
 tax
-inx
-//FRAGMENT vbuyy=vbuaa_plus_1
-tay
-iny
-//FRAGMENT vbuyy=vbuxx_plus_1
-txa
-tay
-iny
-//FRAGMENT vbuyy=vbuyy_plus_1
-iny
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx
-lda {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy
-ldx {c1},y
-//FRAGMENT vwuz1=pwuz1_minus_pwuc1
+axs #{c1}
+//FRAGMENT vbuyy=vbuz1_minus_vbuc1
 lda {z1}
 sec
-sbc #<{c1}
-sta {z1}
-lda {z1}+1
-sbc #>{c1}
-sta {z1}+1
-//FRAGMENT vduz1=vduz1_minus_vduc1
-lda {z1}
-sec
-sbc #<{c1}
-sta {z1}
-lda {z1}+1
-sbc #>{c1}
-sta {z1}+1
-lda {z1}+2
-sbc #<{c1}>>$10
-sta {z1}+2
-lda {z1}+3
-sbc #>{c1}>>$10
-sta {z1}+3
-//FRAGMENT pbuz1=_dec_pbuz1
-lda {z1}
-bne !+
-dec {z1}+1
-!:
-dec {z1}
-//FRAGMENT _stackpushbyte_=vbuz1
-lda {z1}
-pha
-//FRAGMENT _stackpushbyte_1
-pha
-//FRAGMENT _stackpullbyte_2
-pla
-pla
-//FRAGMENT _stackpushbyte_=vbuxx
-txa
-pha
-//FRAGMENT _stackpushbyte_=vbuyy
-tya
-pha
-//FRAGMENT _stackpushbyte_3
-pha
-pha
-pha
-//FRAGMENT _stackpullbyte_4
-tsx
-txa
-axs #-4
-txs
-//FRAGMENT pbuz1=_stackidxptr_vbuc1
-tsx
-lda STACK_BASE+{c1},x
-sta {z1}
-lda STACK_BASE+{c1}+1,x
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuz1=_deref_pbuz2
-ldy #0
-lda ({z2}),y
-ldy {z1}
-sta {c1},y
-//FRAGMENT _stackpushptr_=pbuc1
-lda #>{c1}
-pha
-lda #<{c1}
-pha
-//FRAGMENT _stackpullbyte_3
-tsx
-txa
-axs #-3
-txs
-//FRAGMENT _stackpushbyte_=vbuaa
-pha
-//FRAGMENT vbuz1=vbuaa_minus_1
-sec
-sbc #1
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_minus_1
-sec
-sbc #1
-//FRAGMENT vbuxx=vbuaa_minus_1
-tax
-dex
-//FRAGMENT vwuz1=vbuz2
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vbuz1=_lo_pbuz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbuz1=_hi_pbuz2
-lda {z2}+1
-sta {z1}
-//FRAGMENT vwuz1_eq_0_then_la1
-lda {z1}
-ora {z1}+1
-beq {la1}
-//FRAGMENT vwuz1_gt_vwuz2_then_la1
-lda {z2}+1
-cmp {z1}+1
-bcc {la1}
-bne !+
-lda {z2}
-cmp {z1}
-bcc {la1}
-!:
-//FRAGMENT vwuz1_neq_vwuz2_then_la1
-lda {z1}+1
-cmp {z2}+1
-bne {la1}
-lda {z1}
-cmp {z2}
-bne {la1}
-//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}+1
-lda {c2},y
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_band_vwuc1
-lda {z2}
-and #<{c1}
-sta {z1}
-lda {z2}+1
-and #>{c1}
-sta {z1}+1
-//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
-ldy #0
-lda ({z1}),y
-ldy {z2}
-ora {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT vwuz1=vbuaa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vbuxx
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vbuyy
-tya
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vbuaa=_lo_pbuz1
-lda {z1}
-//FRAGMENT vbuxx=_lo_pbuz1
-ldx {z1}
-//FRAGMENT vbuz1=vbuaa_bor_vbuaa
-sta {z1}
-//FRAGMENT vbuaa=_hi_pbuz1
-lda {z1}+1
-//FRAGMENT vbuxx=_hi_pbuz1
-ldx {z1}+1
-//FRAGMENT vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa
+sbc #{c1}
 tay
-lda {c1},y
-sta {z1}+1
-lda {c2},y
-sta {z1}
-//FRAGMENT vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
-lda {c1},x
-sta {z1}+1
-lda {c2},x
-sta {z1}
-//FRAGMENT vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy
-lda {c1},y
-sta {z1}+1
-lda {c2},y
-sta {z1}
-//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ldy #0
-ora ({z1}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-ora ({z1}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-ora ({z1}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuyy=_hi_pbuz1
-ldy {z1}+1
-//FRAGMENT pbuz1=pbuz1_plus_vwuz2
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuz1_neq_0_then_la1
-ldy {z1}
-lda {c1},y
-cmp #0
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuc1=vbuc2
-lda #{c2}
-ldy #{c1}
-sta ({z1}),y
-//FRAGMENT pbuc1_derefidx_vbuaa_neq_0_then_la1
-tay
-lda {c1},y
-cmp #0
-bne {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_neq_0_then_la1
-lda {c1},x
-cmp #0
-bne {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_neq_0_then_la1
-lda {c1},y
-cmp #0
-bne {la1}
-//FRAGMENT pbuz1=pbuz2_minus_vwuz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-lda {z2}+1
-sbc {z3}+1
-sta {z1}+1
-//FRAGMENT pwuz1=qwuz2_derefidx_vbuz3
-ldy {z3}
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vbuz1_le_0_then_la1
-lda {z1}
-cmp #0
-beq {la1}
-//FRAGMENT vwuz1_eq_vwuc1_then_la1
-lda {z1}
-cmp #<{c1}
-bne !+
-lda {z1}+1
-cmp #>{c1}
-beq {la1}
-!:
-//FRAGMENT _deref_pbuc1=_dec__deref_pbuc1
-dec {c1}
-//FRAGMENT vwuz1=pwuz2_derefidx_vbuz3
-ldy {z3}
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT _deref_pbuz1_gt_vbuz2_then_la1
-ldy #0
-lda ({z1}),y
-cmp {z2}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vbuz1=_neg_vbuz2
-lda {z2}
-eor #$ff
-clc
-adc #$01
-sta {z1}
-//FRAGMENT pbuz1_derefidx_(_deref_pbuz2)=_inc_pbuz1_derefidx_(_deref_pbuz2)
-ldy #0
-lda ({z2}),y
-tay
-lda ({z1}),y
-clc
-adc #1
-sta ({z1}),y
-//FRAGMENT vwuz1=_deref_pbuz2_rol_1
-ldy #0
-lda ({z2}),y
-asl
-sta {z1}
-lda #0
-rol
-sta {z1}+1
-//FRAGMENT qwuz1=qwuz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-//FRAGMENT _deref_qwuz1=pwuz2
-ldy #0
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT vwuz1_neq_vbuc1_then_la1
-NO_SYNTHESIS
-//FRAGMENT vwuz1_neq_vbsc1_then_la1
-NO_SYNTHESIS
-//FRAGMENT pwuz1=_deref_qwuz2
-ldy #0
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vwuz1=pbuz2_minus_pbuz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-lda {z2}+1
-sbc {z3}+1
-sta {z1}+1
-//FRAGMENT pwuz1_derefidx_vbuz2=vwuz3
-ldy {z2}
-lda {z3}
-sta ({z1}),y
-iny
-lda {z3}+1
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-clc
-adc #1
-sta ({z1}),y
-//FRAGMENT vwuz1=pwuz2_minus_pwuz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-lda {z2}+1
-sbc {z3}+1
-sta {z1}+1
-//FRAGMENT pwuz1=qwuz2_derefidx_vbuaa
-tay
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT pwuz1=qwuz2_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT pwuz1=qwuz2_derefidx_vbuyy
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vbuaa_le_0_then_la1
-cmp #0
-beq {la1}
-//FRAGMENT vwuz1=pwuz2_derefidx_vbuaa
-tay
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuz2_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuz2_derefidx_vbuyy
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT _deref_pbuz1_gt_vbuxx_then_la1
-ldy #0
-lda ({z1}),y
-sta $ff
-cpx $ff
-bcc {la1}
 //FRAGMENT vbuz1=_neg_vbuaa
 eor #$ff
 clc
@@ -7620,16 +5966,99 @@ lda ({z1}),y
 clc
 adc #1
 sta ({z1}),y
+//FRAGMENT vwuz1=vwuz1_plus_vbuaa
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vwuz1=vwuz1_plus_vbuxx
+txa
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vwuz1=vwuz1_plus_vbuyy
+tya
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT pwuz1=pwuz2_plus_vbuaa
+clc
+adc {z2}
+sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT pwuz1=pwuz2_plus_vbuxx
+txa
+clc
+adc {z2}
+sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT pwuz1=pwuz2_plus_vbuyy
+tya
+clc
+adc {z2}
+sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
 //FRAGMENT vbuxx_le_0_then_la1
 cpx #0
 beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy=vbuyy
-tya
-sta ({z1}),y
 //FRAGMENT vwuz1=vbuyy_word_vbuc1
 lda #{c1}
 sty {z1}+1
 sta {z1}
+//FRAGMENT vbuyy=vbuaa_minus_vbuc1
+sec
+sbc #{c1}
+tay
+//FRAGMENT vbuxx=vbuxx_minus_vbuc1
+txa
+axs #{c1}
+//FRAGMENT vbuyy=vbuxx_minus_vbuc1
+txa
+sec
+sbc #{c1}
+tay
+//FRAGMENT vbuxx=vbuyy_minus_vbuc1
+tya
+tax
+axs #{c1}
+//FRAGMENT vbuyy=vbuyy_minus_vbuc1
+tya
+sec
+sbc #{c1}
+tay
+//FRAGMENT vbuaa=vbuxx_plus_1
+inx
+txa
+//FRAGMENT vbuaa=vbuyy_plus_1
+iny
+tya
+//FRAGMENT vbuxx=vbuz1_plus_1
+ldx {z1}
+inx
+//FRAGMENT vbuxx=vbuaa_plus_1
+tax
+inx
+//FRAGMENT vbuxx=vbuyy_plus_1
+tya
+tax
+inx
+//FRAGMENT vbuyy=vbuaa_plus_1
+tay
+iny
 //FRAGMENT pbuz1=pbuz2_minus_vwuz1
 lda {z2}
 sec
@@ -7646,6 +6075,14 @@ sta {z1}
 lda #0
 rol
 sta {z1}+1
+//FRAGMENT pbuz1=pbuz1_plus_vwuc1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
 //FRAGMENT qwuz1=qwuz2_plus_vwuz1
 lda {z1}
 clc
@@ -7671,372 +6108,14 @@ sta {z1}
 lda {z1}+1
 sbc {z2}+1
 sta {z1}+1
-//FRAGMENT vbuyy_gt_0_then_la1
-cpy #0
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx
-ldy {c1},x
-//FRAGMENT vduz1=_inc_vduz1
-inc {z1}
-bne !+
-inc {z1}+1
-bne !+
-inc {z1}+2
-bne !+
-inc {z1}+3
-!:
-//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1
-ldy {z1}
-lda {c1},y
-cmp {z2}
-beq {la1}
-//FRAGMENT vbsz1=_sbyte_vwuz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-//FRAGMENT 0_neq_vbsz1_then_la1
+//FRAGMENT vwuz1=vwuz1_plus_vwuz2
 lda {z1}
-cmp #0
-bne {la1}
-//FRAGMENT vbuz1_ge_vbuz2_then_la1
-lda {z1}
-cmp {z2}
-bcs {la1}
-//FRAGMENT vbuaa_le_vbuz1_then_la1
-ldy {z1}
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuz1_then_la1
-tay
-lda {c1},y
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuz1_then_la1
-lda {c1},x
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuz1_then_la1
-lda {c1},y
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuaa_then_la1
-ldx {z1}
-tay
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuaa_then_la1
-tax
-lda {c1},x
-tay
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuaa_then_la1
-tay
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuaa_then_la1
-tax
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuxx_then_la1
-ldy {z1}
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuxx_then_la1
-tay
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuxx_then_la1
-lda {c1},x
-tay
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuxx_then_la1
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuyy_then_la1
-ldx {z1}
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuyy_then_la1
-tax
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuyy_then_la1
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuyy_then_la1
-lda {c1},y
-tax
-sty $ff
-cpx $ff
-beq  {la1}
-//FRAGMENT vbuaa_neq_vbuz1_then_la1
-cmp {z1}
-bne {la1}
-//FRAGMENT vbsaa=_sbyte_vwuz1
-lda {z1}
-//FRAGMENT vbsxx=_sbyte_vwuz1
-ldx {z1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsaa
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsxx
-txa
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsyy
-tya
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbsxx=vbsz1_minus_vbsz2
-lda {z1}
-sec
-sbc {z2}
-tax
-//FRAGMENT vbsxx=vbsz1_minus_vbsaa
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbsxx=vbsz1_minus_vbsxx
-txa
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbsxx=vbsz1_minus_vbsyy
-tya
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbsz1=vbsxx_minus_vbsz2
-txa
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbsaa
-sta $ff
-txa
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbsxx
-lda #0
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbsyy
-txa
-sty $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsxx=vbsxx_minus_vbsz1
-txa
-sec
-sbc {z1}
-tax
-//FRAGMENT vbsxx=vbsxx_minus_vbsaa
-sta $ff
-txa
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbsxx_minus_vbsxx
-lda #0
-tax
-//FRAGMENT vbsxx=vbsxx_minus_vbsyy
-txa
-sty $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbsz1=vbsyy_minus_vbsz2
-tya
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbsaa
-sta $ff
-tya
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbsxx
-tya
-stx $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbsyy
-lda #0
-sta {z1}
-//FRAGMENT vbsxx=vbsyy_minus_vbsz1
-tya
-sec
-sbc {z1}
-tax
-//FRAGMENT vbsxx=vbsyy_minus_vbsaa
-sta $ff
-tya
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbsyy_minus_vbsxx
-tya
-stx $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbsyy_minus_vbsyy
-lda #0
-tax
-//FRAGMENT 0_neq_vbsxx_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT vbuaa_ge_vbuz1_then_la1
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuz1=vbuxx_minus_1
-dex
-stx {z1}
-//FRAGMENT vbuz1=vbuyy_minus_1
-tya
-sec
-sbc #1
-sta {z1}
-//FRAGMENT vbuyy_le_vbuz1_then_la1
-lda {z1}
-sty $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuz1_le_vbuaa_then_la1
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuxx_ge_vbuz1_then_la1
-cpx {z1}
-bcs {la1}
-//FRAGMENT vbuz1_ge_vbuxx_then_la1
-lda {z1}
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuz1_ge_vbuyy_then_la1
-lda {z1}
-sty $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuxx_ge_vbuyy_then_la1
-sty $ff
-cpx $ff
-bcs  {la1}
-//FRAGMENT vbuyy_ge_vbuz1_then_la1
-cpy {z1}
-bcs {la1}
-//FRAGMENT vbuyy_ge_vbuxx_then_la1
-stx $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT vbsaa=_inc_vbsaa
 clc
-adc #1
-//FRAGMENT vbsxx=_inc_vbsxx
-inx
-//FRAGMENT vbsyy=_sbyte_vwuz1
-ldy {z1}
-//FRAGMENT vbsyy=_inc_vbsyy
-iny
-//FRAGMENT vbuaa_lt_vbuxx_then_la1
-stx $ff
-cmp $ff
-bcc {la1}
-//FRAGMENT vbuaa_lt_vbuyy_then_la1
-tax
-sty $ff
-cpx $ff
-bcc {la1}
-//FRAGMENT vbuyy_lt_vbuaa_then_la1
-sta $ff
-cpy $ff
-bcc {la1}
-//FRAGMENT vbuyy_lt_vbuxx_then_la1
-stx $ff
-cpy $ff
-bcc {la1}
-//FRAGMENT vbuxx_le_vbuaa_then_la1
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuyy_le_vbuaa_then_la1
-sty $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuyy_le_vbuxx_then_la1
-sty $ff
-cpx $ff
-bcs  {la1}
-//FRAGMENT vbuz1_le_vbuyy_then_la1
-cpy {z1}
-bcs {la1}
-//FRAGMENT vbuxx_le_vbuyy_then_la1
-stx $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT vbuz1=vbuz2_minus_vbuz1
-lda {z2}
-sec
-sbc {z1}
-sta {z1}
-//FRAGMENT vbsz1=vbsz1_minus_vbsz2
-lda {z1}
-sec
-sbc {z2}
+adc {z2}
 sta {z1}
+lda {z1}+1
+adc {z2}+1
+sta {z1}+1
 //FRAGMENT pbuz1_le_pbuc1_then_la1
 lda {z1}+1
 cmp #>{c1}
@@ -8055,8 +6134,6 @@ lda #<{c1}
 cmp {z1}
 bcc {la1}
 !:
-//FRAGMENT vbuz1=vbuz1_rol_1
-asl {z1}
 //FRAGMENT vdsz1=vdsc1
 lda #<{c1}
 sta {z1}
@@ -8275,6 +6352,16 @@ lda {z2}
 sta {z1}
 lda {z2}+1
 sta {z1}+1
+//FRAGMENT vwuz1=_word1_vduz2
+lda {z2}+2
+sta {z1}
+lda {z2}+3
+sta {z1}+1
+//FRAGMENT vwuz1=_word1_vdsz2
+lda {z2}+2
+sta {z1}
+lda {z2}+3
+sta {z1}+1
 //FRAGMENT vduz1=vduc1_plus_vbuz2
 lda {z2}
 clc
@@ -8289,6 +6376,9 @@ sta {z1}+2
 lda #>{c1}>>$10
 adc #0
 sta {z1}+3
+//FRAGMENT vbuz1=_byte_vduz2
+lda {z2}
+sta {z1}
 //FRAGMENT vduz1=vduc1_plus_vbuaa
 clc
 adc #<{c1}
@@ -8330,22 +6420,745 @@ sta {z1}+2
 lda #>{c1}>>$10
 adc #0
 sta {z1}+3
-//FRAGMENT pbuz1_derefidx_vbuaa=vbuz2
+//FRAGMENT vbuaa=_byte_vduz1
+lda {z1}
+//FRAGMENT vbuxx=_byte_vduz1
+lda {z1}
+tax
+//FRAGMENT vbuyy=_byte_vduz1
+lda {z1}
 tay
+//FRAGMENT pvoz1=pvoc1
+lda #<{c1}
+sta {z1}
+lda #>{c1}
+sta {z1}+1
+//FRAGMENT vwuz1_lt_vbuc1_then_la1
+lda {z1}+1
+bne !+
+lda {z1}
+cmp #{c1}
+bcc {la1}
+!:
+//FRAGMENT vduz1=vduz2_minus_vduc1
+lda {z2}
+sec
+sbc #<{c1}
+sta {z1}
+lda {z2}+1
+sbc #>{c1}
+sta {z1}+1
+lda {z2}+2
+sbc #<{c1}>>$10
+sta {z1}+2
+lda {z2}+3
+sbc #>{c1}>>$10
+sta {z1}+3
+//FRAGMENT vwuz1=_word_vduz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vwuz1_lt_vwuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bcc {la1}
+bne !+
+lda {z1}
+cmp #<{c1}
+bcc {la1}
+!:
+//FRAGMENT vwuz1_le_0_then_la1
+lda {z1}
+bne !+
+lda {z1}+1
+beq {la1}
+!:
+//FRAGMENT _deref_pduc1=vduc2
+lda #<{c2}
+sta {c1}
+lda #>{c2}
+sta {c1}+1
+lda #<{c2}>>$10
+sta {c1}+2
+lda #>{c2}>>$10
+sta {c1}+3
+//FRAGMENT vduz1=vduc1_minus__deref_pduc2
+lda #<{c1}
+sec
+sbc {c2}
+sta {z1}
+lda #>{c1}
+sbc {c2}+1
+sta {z1}+1
+lda #<{c1}>>$10
+sbc {c2}+2
+sta {z1}+2
+lda #>{c1}>>$10
+sbc {c2}+3
+sta {z1}+3
+//FRAGMENT vwuz1=_lo_vduz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vduz1=vwuz2_dword_vwuz3
+lda {z2}
+sta {z1}+2
+lda {z2}+1
+sta {z1}+3
+lda {z3}
+sta {z1}
+lda {z3}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz1_minus_vwuc1
+lda {z1}
+sec
+sbc #<{c1}
+sta {z1}
+lda {z1}+1
+sbc #>{c1}
+sta {z1}+1
+//FRAGMENT vduz1=pduc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sta {z1}
+lda {c1}+1,y
+sta {z1}+1
+lda {c1}+2,y
+sta {z1}+2
+lda {c1}+3,y
+sta {z1}+3
+//FRAGMENT vduz1_ge_vduz2_then_la1
+lda {z1}+3
+cmp {z2}+3
+bcc !+
+bne {la1}
+lda {z1}+2
+cmp {z2}+2
+bcc !+
+bne {la1}
+lda {z1}+1
+cmp {z2}+1
+bcc !+
+bne {la1}
+lda {z1}
+cmp {z2}
+bcs {la1}
+!:
+//FRAGMENT vduz1=vduz1_minus_vduz2
+lda {z1}
+sec
+sbc {z2}
+sta {z1}
+lda {z1}+1
+sbc {z2}+1
+sta {z1}+1
+lda {z1}+2
+sbc {z2}+2
+sta {z1}+2
+lda {z1}+3
+sbc {z2}+3
+sta {z1}+3
+//FRAGMENT vduz1=pduc1_derefidx_vbuaa
+tay
+lda {c1},y
+sta {z1}
+lda {c1}+1,y
+sta {z1}+1
+lda {c1}+2,y
+sta {z1}+2
+lda {c1}+3,y
+sta {z1}+3
+//FRAGMENT vduz1=pduc1_derefidx_vbuxx
+lda {c1},x
+sta {z1}
+lda {c1}+1,x
+sta {z1}+1
+lda {c1}+2,x
+sta {z1}+2
+lda {c1}+3,x
+sta {z1}+3
+//FRAGMENT vduz1=pduc1_derefidx_vbuyy
+lda {c1},y
+sta {z1}
+lda {c1}+1,y
+sta {z1}+1
+lda {c1}+2,y
+sta {z1}+2
+lda {c1}+3,y
+sta {z1}+3
+//FRAGMENT pbuz1=pbuz2_plus_vwuz1
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT vduz1=vduz1_minus_vduc1
+lda {z1}
+sec
+sbc #<{c1}
+sta {z1}
+lda {z1}+1
+sbc #>{c1}
+sta {z1}+1
+lda {z1}+2
+sbc #<{c1}>>$10
+sta {z1}+2
+lda {z1}+3
+sbc #>{c1}>>$10
+sta {z1}+3
+//FRAGMENT _deref_qbuc1=pbuc2
+lda #<{c2}
+sta {c1}
+lda #>{c2}
+sta {c1}+1
+//FRAGMENT _deref_pbsc1=vbsc2
+lda #{c2}
+sta {c1}
+//FRAGMENT 0_neq_vbuaa_then_la1
+cmp #0
+bne {la1}
+//FRAGMENT vwuz1=vwuz2_bor_vbuz3
+lda {z3}
+ora {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vbuz1=vbuz1_rol_1
+asl {z1}
+//FRAGMENT pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuz2
+ldy {z2}
+lda ({z3}),y
+sta ({z1}),y
+//FRAGMENT vwuz1=vwuz2_rol_4
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuz2
+ldy {z2}
+lda {c2},y
+ldy #{c1}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuz2_eq_pbuz3_derefidx_vbuz2_then_la1
+ldy {z2}
+lda ({z1}),y
+
+cmp ({z3}),y
+beq {la1}
+//FRAGMENT vbuz1=pbuz2_derefidx_vbuaa
+tay
+lda ({z2}),y
+sta {z1}
+//FRAGMENT vbuaa=pbuz1_derefidx_vbuaa
+tay
+lda ({z1}),y
+//FRAGMENT vbuxx=pbuz1_derefidx_vbuaa
+tay
+lda ({z1}),y
+tax
+//FRAGMENT vbuyy=pbuz1_derefidx_vbuaa
+tay
+lda ({z1}),y
+tay
+//FRAGMENT vbuz1=pbuz2_derefidx_vbuyy
+lda ({z2}),y
+sta {z1}
+//FRAGMENT vbuxx=pbuz1_derefidx_vbuyy
+lda ({z1}),y
+tax
+//FRAGMENT vbuyy=pbuz1_derefidx_vbuyy
+lda ({z1}),y
+tay
+//FRAGMENT vwuz1=vwuz2_bor_vbuxx
+txa
+ora {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_bor_vbuyy
+tya
+ora {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuaa
+tay
+lda ({z2}),y
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuxx
+txa
+tay
+lda ({z2}),y
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=pbuz2_derefidx_vbuyy
+lda ({z2}),y
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuaa
+tay
+lda {c2},y
+ldy #{c1}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuxx
+lda {c2},x
+ldy #{c1}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuyy
+lda {c2},y
+ldy #{c1}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuaa_eq_pbuz2_derefidx_vbuaa_then_la1
+tay
+lda ({z1}),y
+
+cmp ({z2}),y
+beq {la1}
+//FRAGMENT pbuz1_derefidx_vbuxx_eq_pbuz2_derefidx_vbuxx_then_la1
+txa
+tay
+lda ({z1}),y
+
+cmp ({z2}),y
+beq {la1}
+//FRAGMENT pbuz1_derefidx_vbuyy_eq_pbuz2_derefidx_vbuyy_then_la1
+lda ({z1}),y
+
+cmp ({z2}),y
+beq {la1}
+//FRAGMENT vbuyy_lt_vbuz1_then_la1
+cpy {z1}
+bcc {la1}
+//FRAGMENT vbuyy_lt_vbuxx_then_la1
+stx $ff
+cpy $ff
+bcc {la1}
+//FRAGMENT vbuz1_lt_vbuyy_then_la1
+cpy {z1}
+beq !+
+bcs {la1}
+!:
+//FRAGMENT vbuxx_lt_vbuyy_then_la1
+sty $ff
+cpx $ff
+bcc {la1}
+//FRAGMENT vwuz1=vwuz1_bor_vbuxx
+txa
+ora {z1}
+sta {z1}
+//FRAGMENT vwuz1=vwuz1_rol_4
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT pwuz1=pwuc1
+lda #<{c1}
+sta {z1}
+lda #>{c1}
+sta {z1}+1
+//FRAGMENT pwuz1_derefidx_vbuc1=vwuz2
+ldy #{c1}
 lda {z2}
 sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=vbuaa
-tay
+iny
+lda {z2}+1
 sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=vbuxx
+//FRAGMENT vbuz1=vbuz2_plus_2
+lda {z2}
+clc
+adc #2
+sta {z1}
+//FRAGMENT vbuz1=vbuaa_plus_2
+clc
+adc #2
+sta {z1}
+//FRAGMENT vbuz1=vbuxx_plus_2
+inx
+inx
+stx {z1}
+//FRAGMENT vbuxx_le_vbuc1_then_la1
+cpx #{c1}
+bcc {la1}
+beq {la1}
+//FRAGMENT vbuyy_le_vbuc1_then_la1
+cpy #{c1}
+bcc {la1}
+beq {la1}
+//FRAGMENT vbuxx=vbuz1_plus_2
+ldx {z1}
+inx
+inx
+//FRAGMENT vbuyy=vbuz1_plus_2
+ldy {z1}
+iny
+iny
+//FRAGMENT vbuxx=vbuaa_plus_2
+tax
+inx
+inx
+//FRAGMENT vbuxx=vbuyy_plus_2
+tya
+clc
+adc #2
+tax
+//FRAGMENT vbsz1_lt_vbsc1_then_la1
+lda {z1}
+sec
+sbc #{c1}
+bvc !+
+eor #$80
+!:
+bmi {la1}
+//FRAGMENT vbsaa_lt_vbsc1_then_la1
+sec
+sbc #{c1}
+bvc !+
+eor #$80
+!:
+bmi {la1}
+//FRAGMENT vbsxx_lt_vbsc1_then_la1
+txa
+sec
+sbc #{c1}
+bvc !+
+eor #$80
+!:
+bmi {la1}
+//FRAGMENT vbsyy_lt_vbsc1_then_la1
+tya
+sec
+sbc #{c1}
+bvc !+
+eor #$80
+!:
+bmi {la1}
+//FRAGMENT vbsxx=_inc_vbsxx
+inx
+//FRAGMENT vbsyy=_inc_vbsyy
+iny
+//FRAGMENT vwsz1=vwsz1_plus_vwsc1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vwsz1=vwsz2_ror_7
+lda {z2}+1
+sta {z1}
+and #$80
+beq !+
+lda #$ff
+!:
+sta {z1}+1
+lda {z2}
+rol
+rol {z1}
+rol {z1}+1
+//FRAGMENT vwsz1=vwsz2_plus_vwsc1
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vwsz1=vwsz2_ror_5
+lda {z2}
+sta $ff
+lda {z2}+1
+sta {z1}
+lda #0
+bit {z2}+1
+bpl !+
+lda #$ff
+!:
+sta {z1}+1
+rol $ff
+rol {z1}
+rol {z1}+1
+rol $ff
+rol {z1}
+rol {z1}+1
+rol $ff
+rol {z1}
+rol {z1}+1
+//FRAGMENT _deref_pbuc1=_byte_vwsz1
+lda {z1}
+sta {c1}
+//FRAGMENT vbuz1=_hi_vwsz2
+lda {z2}+1
+sta {z1}
+//FRAGMENT vbuaa=_hi_vwsz1
+lda {z1}+1
+//FRAGMENT vbuxx=_hi_vwsz1
+ldx {z1}+1
+//FRAGMENT vbuyy=_hi_vwsz1
+ldy {z1}+1
+//FRAGMENT vwsz1=vwsc1_minus_vwsz1
+lda #<{c1}
+sec
+sbc {z1}
+sta {z1}
+lda #>{c1}
+sbc {z1}+1
+sta {z1}+1
+//FRAGMENT _deref_pbsc1=vbsz1
+lda {z1}
+sta {c1}
+//FRAGMENT pwuc1_derefidx_vbuz1=_word_vbuz2
+lda {z2}
+ldy {z1}
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuaa=_word_vbuz1
+tay
+lda {z1}
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuxx=_word_vbuz1
+lda {z1}
+sta {c1},x
+lda #0
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuyy=_word_vbuz1
+lda {z1}
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuz1=_word_vbuxx
+ldy {z1}
+txa
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuaa=_word_vbuxx
 tay
 txa
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=vbuyy
-sta $ff
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuxx=_word_vbuxx
+txa
+sta {c1},x
+lda #0
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuyy=_word_vbuxx
+txa
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuz1=_word_vbuyy
 tya
-ldy $ff
-sta ({z1}),y
+ldy {z1}
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuaa=_word_vbuyy
+tax
+tya
+sta {c1},x
+lda #0
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuxx=_word_vbuyy
+tya
+sta {c1},x
+lda #0
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuyy=_word_vbuyy
+tya
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT _deref_pbuc1=_deref_pbuz1
+ldy #0
+lda ({z1}),y
+sta {c1}
+//FRAGMENT vwuz1=pbuc1_minus_pbuz2
+sec
+lda #<{c1}
+sbc {z2}
+sta {z1}
+lda #>{c1}
+sbc {z2}+1
+sta {z1}+1 
+//FRAGMENT vwuz1=pbuc1_minus_pbuz1
+sec
+lda #<{c1}
+sbc {z1}
+sta {z1}
+lda #>{c1}
+sbc {z1}+1
+sta {z1}+1
+//FRAGMENT pbuc1_derefidx_vbuaa=_deref_pbuz1
+tax
+ldy #0
+lda ({z1}),y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuxx=_deref_pbuz1
+ldy #0
+lda ({z1}),y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=_deref_pbuz1
+tya
+tax
+ldy #0
+lda ({z1}),y
+sta {c1},x
+//FRAGMENT vwsz1_neq_vbsc1_then_la1
+NO_SYNTHESIS
+//FRAGMENT vwsz1_neq_vwuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bne {la1}
+//FRAGMENT vwuz1=_word__deref_pbuc1
+lda {c1}
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_rol_8
+lda {z2}
+sta {z1}+1
+lda #0
+sta {z1}
+//FRAGMENT vbuz1_le_vbuz2_then_la1
+lda {z2}
+cmp {z1}
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuz1=_byte_vwuz2
+ldy {z1}
+lda {z2}
+sta {c1},y
+//FRAGMENT vwuz1=vwuz2_plus_1
+clc
+lda {z2}
+adc #1
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_ror_4
+lda {z2}+1
+lsr
+sta {z1}+1
+lda {z2}
+ror
+sta {z1}
+lsr {z1}+1
+ror {z1}
+lsr {z1}+1
+ror {z1}
+lsr {z1}+1
+ror {z1}
+//FRAGMENT vwuz1=vwuz2_ror_8
+lda {z2}+1
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1_ge_vwuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bcc !+
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bcs {la1}
+!:
+//FRAGMENT vwuz1_ge_vbuc1_then_la1
+lda {z1}+1
+bne {la1}
+lda {z1}
+cmp #{c1}
+bcs {la1}
+!:
+//FRAGMENT vbuxx_le_vbuz1_then_la1
+lda {z1}
+stx $ff
+cmp $ff
+bcs {la1}
+//FRAGMENT vbuz1_le_vbuxx_then_la1
+cpx {z1}
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuxx=_byte_vwuz1
+lda {z1}
+sta {c1},x
+//FRAGMENT vbuz1_le_vbuyy_then_la1
+cpy {z1}
+bcs {la1}
+//FRAGMENT vwuz1=vwuz1_plus_1
+inc {z1}
+bne !+
+inc {z1}+1
+!:
+//FRAGMENT vwuz1=vwuz1_rol_8
+lda {z1}
+sta {z1}+1
+lda #0
+sta {z1}
+//FRAGMENT vwuz1=vwuz1_ror_4
+lsr {z1}+1
+ror {z1}
+lsr {z1}+1
+ror {z1}
+lsr {z1}+1
+ror {z1}
+lsr {z1}+1
+ror {z1}
+//FRAGMENT pwsc1_derefidx_vbuz1=vwsc2
+ldy {z1}
+lda #<{c2}
+sta {c1},y
+lda #>{c2}
+sta {c1}+1,y
+//FRAGMENT _deref_pwsc1=_deref_pwsc2
+lda {c2}
+sta {c1}
+lda {c2}+1
+sta {c1}+1
+//FRAGMENT pwsc1_derefidx_vbuaa=vwsc2
+tay
+lda #<{c2}
+sta {c1},y
+lda #>{c2}
+sta {c1}+1,y
+//FRAGMENT pwsc1_derefidx_vbuxx=vwsc2
+lda #<{c2}
+sta {c1},x
+lda #>{c2}
+sta {c1}+1,x
+//FRAGMENT pwsc1_derefidx_vbuyy=vwsc2
+lda #<{c2}
+sta {c1},y
+lda #>{c2}
+sta {c1}+1,y
+//FRAGMENT vwuz1=vwuz2_plus_vbuz3
+lda {z3}
+clc
+adc {z2}
+sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
 //FRAGMENT vwuz1=vwuz2_rol_7
 lda {z2}+1
 lsr
@@ -8368,11 +7181,22 @@ lsr
 sta {z1}
 lda #0
 sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_8
-lda {z2}
-sta {z1}+1
-lda #0
+//FRAGMENT vwuz1=vwuz2_plus_vbuxx
+txa
+clc
+adc {z2}
 sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_plus_vbuyy
+tya
+clc
+adc {z2}
+sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
 //FRAGMENT vwuz1=vwuz1_bxor_vwuz2
 lda {z1}
 eor {z2}
@@ -8380,180 +7204,3672 @@ sta {z1}
 lda {z1}+1
 eor {z2}+1
 sta {z1}+1
-//FRAGMENT vwuz1=_word_vduz2
+//FRAGMENT _deref_pbuc1=_byte_vwuz1
+lda {z1}
+sta {c1}
+//FRAGMENT pbuz1=pbuz1_plus_1
+inc {z1}
+bne !+
+inc {z1}+1
+!:
+//FRAGMENT vbuc1_gt_vbuz1_then_la1
+lda {z1}
+cmp #{c1}
+bcc {la1}
+//FRAGMENT vbuz1=vbuz1_minus_vbuc1
+lax {z1}
+axs #{c1}
+stx {z1}
+//FRAGMENT vbuc1_gt_vbuxx_then_la1
+cpx #{c1}
+bcc {la1}
+//FRAGMENT vwuz1=vbuz2_rol_1
 lda {z2}
+asl
 sta {z1}
-lda {z2}+1
+lda #0
+rol
 sta {z1}+1
-//FRAGMENT vduz1=vwuz2_dword_vwuz3
-lda {z2}
-sta {z1}+2
-lda {z2}+1
-sta {z1}+3
-lda {z3}
-sta {z1}
-lda {z3}+1
-sta {z1}+1
-//FRAGMENT _deref_pbuz1_eq_vbuz2_then_la1
-lda {z2}
-ldy #0
-cmp ({z1}),y
-beq {la1}
-//FRAGMENT _deref_pbuz1_eq_vbuxx_then_la1
+//FRAGMENT vwuz1=vbuxx_rol_1
 txa
-ldy #0
-cmp ({z1}),y
-beq {la1}
-//FRAGMENT _deref_pbuz1_eq_vbuyy_then_la1
+asl
+sta {z1}
+lda #0
+rol
+sta {z1}+1
+//FRAGMENT vwuz1=vbuyy_rol_1
 tya
-ldy #0
-cmp ({z1}),y
-beq {la1}
-//FRAGMENT pbuz1=pbuc1_plus_vbuz2
-lda {z2}
-clc
-adc #<{c1}
+asl
 sta {z1}
-lda #>{c1}
-adc #0
+lda #0
+rol
 sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vbuaa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vbuxx
-txa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vbuyy
-tya
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pwuc1_derefidx_vbuz1=vwuz2
-ldy {z1}
-lda {z2}
-sta {c1},y
-lda {z2}+1
-sta {c1}+1,y
-//FRAGMENT vbuz1=pwuc1_derefidx_vbuz2_band_vbuc2
-lda #{c2}
-ldy {z2}
-and {c1},y
-sta {z1}
-//FRAGMENT pwuc1_derefidx_vbuaa=vwuz1
-tay
-lda {z1}
-sta {c1},y
-lda {z1}+1
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuxx=vwuz1
-lda {z1}
-sta {c1},x
-lda {z1}+1
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=vwuz1
-lda {z1}
-sta {c1},y
-lda {z1}+1
-sta {c1}+1,y
-//FRAGMENT vbuaa=pwuc1_derefidx_vbuz1_band_vbuc2
-lda #{c2}
-ldy {z1}
-and {c1},y
-//FRAGMENT vbuxx=pwuc1_derefidx_vbuz1_band_vbuc2
-lda #{c2}
-ldx {z1}
-and {c1},x
-tax
-//FRAGMENT vbuyy=pwuc1_derefidx_vbuz1_band_vbuc2
-lda #{c2}
-ldy {z1}
-and {c1},y
-tay
-//FRAGMENT vbuz1=pwuc1_derefidx_vbuaa_band_vbuc2
-tay
-lda #{c2}
-and {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pwuc1_derefidx_vbuaa_band_vbuc2
-tay
-lda #{c2}
-and {c1},y
-//FRAGMENT vbuxx=pwuc1_derefidx_vbuaa_band_vbuc2
-tax
-lda #{c2}
-and {c1},x
-tax
-//FRAGMENT vbuyy=pwuc1_derefidx_vbuaa_band_vbuc2
-tay
-lda #{c2}
-and {c1},y
-tay
-//FRAGMENT vbuz1=pwuc1_derefidx_vbuxx_band_vbuc2
-lda #{c2}
-and {c1},x
-sta {z1}
-//FRAGMENT vbuaa=pwuc1_derefidx_vbuxx_band_vbuc2
-lda #{c2}
-and {c1},x
-//FRAGMENT vbuxx=pwuc1_derefidx_vbuxx_band_vbuc2
-lda #{c2}
-and {c1},x
-tax
-//FRAGMENT vbuyy=pwuc1_derefidx_vbuxx_band_vbuc2
-lda #{c2}
-and {c1},x
-tay
-//FRAGMENT vbuz1=pwuc1_derefidx_vbuyy_band_vbuc2
-lda #{c2}
-and {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pwuc1_derefidx_vbuyy_band_vbuc2
-lda #{c2}
-and {c1},y
-//FRAGMENT vbuxx=pwuc1_derefidx_vbuyy_band_vbuc2
-lda #{c2}
-and {c1},y
-tax
-//FRAGMENT vbuyy=pwuc1_derefidx_vbuyy_band_vbuc2
-lda #{c2}
-and {c1},y
-tay
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz2
-ldx {z2}
-tay
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx
 lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuxx
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy
+tax
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy
 ldx {c1},y
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx
+ldy {c1},x
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy
+lda {c1},y
 tay
+//FRAGMENT isr_rom_sys_c64_entry
+
+//FRAGMENT isr_rom_sys_c64_exit
+jmp $ea31
+//FRAGMENT vwsz1_neq_vwsc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bne {la1}
+//FRAGMENT vbuz1=_bnot__deref_pbuc1
+lda {c1}
+eor #$ff
+sta {z1}
+//FRAGMENT vbuaa=_bnot__deref_pbuc1
+lda {c1}
+eor #$ff
+//FRAGMENT vbuxx=_bnot__deref_pbuc1
+lda {c1}
+eor #$ff
+tax
+//FRAGMENT vbuyy=_bnot__deref_pbuc1
+lda {c1}
+eor #$ff
+tay
+//FRAGMENT _deref_pwsc1=vwsz1
+lda {z1}
+sta {c1}
+lda {z1}+1
+sta {c1}+1
+//FRAGMENT pssz1=pssc1_plus_vbuz2
+lda {z2}
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pbuz1_derefidx_vbuc1=vbuz2
+lda {z2}
+ldy #{c1}
+sta ({z1}),y
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuc2
+ldx {z1}
+ldy #{c2}
+lda ({z2}),y
+sta {c1},x
+//FRAGMENT pssz1=pssc1_plus_vbuaa
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pssz1=pssc1_plus_vbuxx
+txa
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pssz1=pssc1_plus_vbuyy
+tya
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pbuz1_derefidx_vbuc1=vbuaa
+ldy #{c1}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuc1=vbuxx
+ldy #{c1}
 txa
 sta ({z1}),y
-//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuz4
-ldy {z4}
+//FRAGMENT pbuz1_derefidx_vbuc1=vbuyy
+tya
+ldy #{c1}
+sta ({z1}),y
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2
+ldy #{c2}
+lda ({z1}),y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuc2
+tya
+ldy #{c2}
+tax
+lda ({z1}),y
+sta {c1},x
+//FRAGMENT pssz1=pssc1
+lda #<{c1}
+sta {z1}
+lda #>{c1}
+sta {z1}+1
+//FRAGMENT pssz1=pssz1_plus_vbuc1
+lda #{c1}
 clc
-lda {z2}
-adc ({z3}),y
+adc {z1}
 sta {z1}
 bcc !+
-inc {z2}+1
+inc {z1}+1
 !:
-//FRAGMENT vwsz1=vwsz2_minus_vbuc1
+//FRAGMENT pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuc2
+ldy #{c2}
+tax
+lda ({z1}),y
+sta {c1},x
+//FRAGMENT _deref_qssc1=pssc2
+lda #<{c2}
+sta {c1}
+lda #>{c2}
+sta {c1}+1
+//FRAGMENT pssc1_neq_pssz1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bne {la1}
+//FRAGMENT vbuz1=vbuc1_plus__deref_pbuz2
+lda #{c1}
+clc
+ldy #0
+adc ({z2}),y
+sta {z1}
+//FRAGMENT vbuz1=_lo_qssz2_derefidx_vbuc1
+ldy #{c1}
+lda ({z2}),y
+sta {z1}
+//FRAGMENT vbuz1=_hi_qssz2_derefidx_vbuc1
+ldy #{c1}+1
+lda ({z2}),y
+sta {z1}
+//FRAGMENT pssz1=qssz1_derefidx_vbuc1
+ldy #{c1}
+lda ({z1}),y
+pha
+iny
+lda ({z1}),y
+sta {z1}+1
+pla
+sta {z1}
+//FRAGMENT vbuaa=vbuc1_plus__deref_pbuz1
+lda #{c1}
+clc
+ldy #0
+adc ({z1}),y
+//FRAGMENT vbuxx=vbuc1_plus__deref_pbuz1
+ldy #0
+lda ({z1}),y
+tax
+axs #-[{c1}]
+//FRAGMENT vbuyy=vbuc1_plus__deref_pbuz1
+lda #{c1}
+clc
+ldy #0
+adc ({z1}),y
+tay
+//FRAGMENT vbuaa=_lo_qssz1_derefidx_vbuc1
+ldy #{c1}
+lda ({z1}),y
+//FRAGMENT vbuxx=_lo_qssz1_derefidx_vbuc1
+ldy #{c1}
+lda ({z1}),y
+tax
+//FRAGMENT vbuyy=_lo_qssz1_derefidx_vbuc1
+ldy #{c1}
+lda ({z1}),y
+tay
+//FRAGMENT vbuaa=_hi_qssz1_derefidx_vbuc1
+ldy #{c1}+1
+lda ({z1}),y
+//FRAGMENT vbuxx=_hi_qssz1_derefidx_vbuc1
+ldy #{c1}+1
+lda ({z1}),y
+tax
+//FRAGMENT vbuyy=_hi_qssz1_derefidx_vbuc1
+ldy #{c1}+1
+lda ({z1}),y
+tay
+//FRAGMENT pssc1_derefidx_vbuz1=pssc2_derefidx_vbuz1_memcpy_vbuc3
+ldx #{c3}
+ldy {z1}
+!:
+lda {c2},y
+sta {c1},y
+iny
+dex
+bne !-
+//FRAGMENT pssc1_derefidx_vbuaa=pssc2_derefidx_vbuaa_memcpy_vbuc3
+ldx #{c3}
+tay
+!:
+lda {c2},y
+sta {c1},y
+iny
+dex
+bne !-
+//FRAGMENT pssc1_derefidx_vbuxx=pssc2_derefidx_vbuxx_memcpy_vbuc3
+ldy #{c3}
+!:
+lda {c2},x
+sta {c1},x
+inx
+dey
+bne !-
+//FRAGMENT pssc1_derefidx_vbuyy=pssc2_derefidx_vbuyy_memcpy_vbuc3
+ldx #{c3}
+!:
+lda {c2},y
+sta {c1},y
+iny
+dex
+bne !-
+//FRAGMENT vbum1_lt_vbuc1_then_la1
+lda {m1}
+cmp #{c1}
+bcc {la1}
+//FRAGMENT pbuc1_derefidx_vbum1=vbum1
+ldy {m1}
+tya
+sta {c1},y
+//FRAGMENT pwuc1_derefidx_vbuz1=vwuc2
+ldy {z1}
+lda #<{c2}
+sta {c1},y
+lda #>{c2}
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuaa=vwuc2
+tay
+lda #<{c2}
+sta {c1},y
+lda #>{c2}
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuxx=vwuc2
+lda #<{c2}
+sta {c1},x
+lda #>{c2}
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuyy=vwuc2
+lda #<{c2}
+sta {c1},y
+lda #>{c2}
+sta {c1}+1,y
+//FRAGMENT _deref_pbuc1_ge_vbuc2_then_la1
+lda {c1}
+cmp #{c2}
+bcs {la1}
+//FRAGMENT vboz1=vboxx
+txa
+sta {z1}
+//FRAGMENT vboaa=vboxx
+txa
+//FRAGMENT vboxx=vboaa
+tax
+//FRAGMENT vboxx=vboyy
+tya
+tax
+//FRAGMENT vboyy=vboxx
+txa
+tay
+//FRAGMENT vbuc1_ge_vbuz1_then_la1
+lda #{c1}
+cmp {z1}
+bcs {la1}
+//FRAGMENT vbuc1_ge_vbuxx_then_la1
+cpx #{c1}
+bcc {la1}
+beq {la1}
+//FRAGMENT vwuz1=_deref_pwuc1
+lda {c1}
+sta {z1}
+lda {c1}+1
+sta {z1}+1
+//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1
+ldy {z1}
+lda {c1},y
+cmp {z2}
+beq {la1}
+//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuz1_then_la1
+lda {c1},x
+cmp {z1}
+beq {la1}
+//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuz1_then_la1
+lda {c1},y
+cmp {z1}
+beq {la1}
+//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuxx_then_la1
+ldy {z1}
+lda {c1},y
+tay
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuxx_then_la1
+lda {c1},x
+tay
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuxx_then_la1
+lda {c1},y
+tay
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuyy_then_la1
+ldx {z1}
+lda {c1},x
+tax
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuyy_then_la1
+lda {c1},x
+tax
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuyy_then_la1
+lda {c1},y
+tax
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_minus_1
+ldx {z1}
+lda {c1},x
+bne !+
+dec {c1}+1,x
+!:
+dec {c1},x
+//FRAGMENT pwuc1_derefidx_vbuaa=pwuc1_derefidx_vbuaa_minus_1
+tax
+lda {c1},x
+bne !+
+dec {c1}+1,x
+!:
+dec {c1},x
+//FRAGMENT pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_1
+lda {c1},x
+bne !+
+dec {c1}+1,x
+!:
+dec {c1},x
+//FRAGMENT pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_minus_1
+sec
+lda {c1},y
+sbc #$01
+sta {c1},y
+lda {c1}+1,y
+sbc #$00
+sta {c1}+1,y
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_1
+ldx {z2}
+ldy {c1},x
+iny
+sty {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_1
+ldy {z1}
+lda {c1},y
+clc
+adc #1
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_1
+ldy {z1}
+ldx {c1},y
+inx
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_1
+ldx {z1}
+ldy {c1},x
+iny
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_1
+tax
+ldy {c1},x
+iny
+sty {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_1
+tay
+lda {c1},y
+clc
+adc #1
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_1
+tay
+ldx {c1},y
+inx
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_1
+tax
+ldy {c1},x
+iny
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_1
+ldy {c1},x
+iny
+sty {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_1
+lda {c1},x
+clc
+adc #1
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_1
+ldy {c1},x
+iny
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_1
+ldx {c1},y
+inx
+stx {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_1
+lda {c1},y
+clc
+adc #1
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_1
+ldx {c1},y
+inx
+//FRAGMENT vbuz1=vbuz2_plus_pbuc1_derefidx_vbuz3
+lda {z2}
+ldy {z3}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_plus_pbuc1_derefidx_vbuz2
+lda {z1}
+ldy {z2}
+clc
+adc {c1},y
+//FRAGMENT vbuxx=vbuz1_plus_pbuc1_derefidx_vbuz2
+lda {z1}
+ldx {z2}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=vbuz1_plus_pbuc1_derefidx_vbuz2
+lda {z1}
+ldy {z2}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=vbuxx_plus_pbuc1_derefidx_vbuz2
+ldy {z2}
+txa
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_plus_pbuc1_derefidx_vbuz1
+ldy {z1}
+txa
+clc
+adc {c1},y
+//FRAGMENT vbuxx=vbuxx_plus_pbuc1_derefidx_vbuz1
+txa
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=vbuxx_plus_pbuc1_derefidx_vbuz1
+ldy {z1}
+txa
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=vbuyy_plus_pbuc1_derefidx_vbuz2
+tya
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_plus_pbuc1_derefidx_vbuz1
+tya
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuxx=vbuyy_plus_pbuc1_derefidx_vbuz1
+ldx {z1}
+tya
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuz1
+tya
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=vbuz2_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {z1}
+//FRAGMENT vbuxx=vbuz1_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuxx_plus_pbuc1_derefidx_vbuxx
+txa
+clc
+adc {c1},x
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_plus_pbuc1_derefidx_vbuxx
+txa
+clc
+adc {c1},x
+//FRAGMENT vbuxx=vbuxx_plus_pbuc1_derefidx_vbuxx
+txa
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=vbuxx_plus_pbuc1_derefidx_vbuxx
+txa
+clc
+adc {c1},x
+tay
+//FRAGMENT vbuz1=vbuyy_plus_pbuc1_derefidx_vbuxx
+tya
+clc
+adc {c1},x
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_plus_pbuc1_derefidx_vbuxx
+tya
+clc
+adc {c1},x
+//FRAGMENT vbuxx=vbuyy_plus_pbuc1_derefidx_vbuxx
+tya
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuxx
+tya
+clc
+adc {c1},x
+tay
+//FRAGMENT vbuz1=vbuz2_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+clc
+adc {z1}
+//FRAGMENT vbuxx=vbuz1_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+clc
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+clc
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuxx_plus_pbuc1_derefidx_vbuyy
+txa
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_plus_pbuc1_derefidx_vbuyy
+txa
+clc
+adc {c1},y
+//FRAGMENT vbuxx=vbuxx_plus_pbuc1_derefidx_vbuyy
+txa
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=vbuxx_plus_pbuc1_derefidx_vbuyy
+txa
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=vbuyy_plus_pbuc1_derefidx_vbuyy
+tya
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_plus_pbuc1_derefidx_vbuyy
+tya
+clc
+adc {c1},y
+//FRAGMENT vbuxx=vbuyy_plus_pbuc1_derefidx_vbuyy
+tya
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuyy
+tya
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=vbuz2_band__deref_pbuc1
+lda {c1}
+and {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_band__deref_pbuc1
+lda {c1}
+and {z1}
+//FRAGMENT vbuxx=vbuz1_band__deref_pbuc1
+lda {c1}
+and {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_band__deref_pbuc1
+lda {c1}
+and {z1}
+tay
+//FRAGMENT vbuz1=vbuaa_band__deref_pbuc1
+and {c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_band__deref_pbuc1
+and {c1}
+//FRAGMENT vbuxx=vbuaa_band__deref_pbuc1
+ldx {c1}
+axs #0
+//FRAGMENT vbuz1=vbuxx_band__deref_pbuc1
+lda {c1}
+sax {z1}
+//FRAGMENT vbuz1=vbuyy_band__deref_pbuc1
+tya
+and {c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_band__deref_pbuc1
+txa
+and {c1}
+//FRAGMENT vbuaa=vbuyy_band__deref_pbuc1
+tya
+and {c1}
+//FRAGMENT vbuxx=vbuxx_band__deref_pbuc1
+lda {c1}
+axs #0
+//FRAGMENT vbuxx=vbuyy_band__deref_pbuc1
+ldx {c1}
+tya
+axs #0
+//FRAGMENT vbuyy=vbuaa_band__deref_pbuc1
+and {c1}
+tay
+//FRAGMENT vbuyy=vbuxx_band__deref_pbuc1
+txa
+and {c1}
+tay
+//FRAGMENT vbuyy=vbuyy_band__deref_pbuc1
+tya
+and {c1}
+tay
+//FRAGMENT vduz1_lt_vwuc1_then_la1
+NO_SYNTHESIS
+//FRAGMENT vduz1_lt_vwsc1_then_la1
+NO_SYNTHESIS
+//FRAGMENT vduz1_lt_vduc1_then_la1
+lda {z1}+3
+cmp #>{c1}>>$10
+bcc {la1}
+bne !+
+lda {z1}+2
+cmp #<{c1}>>$10
+bcc {la1}
+bne !+
+lda {z1}+1
+cmp #>{c1}
+bcc {la1}
+bne !+
+lda {z1}
+cmp #<{c1}
+bcc {la1}
+!:
+//FRAGMENT vduz1=vduz2_rol_4
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+lda {z2}+2
+rol
+sta {z1}+2
+lda {z2}+3
+rol
+sta {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+//FRAGMENT vduz1=vduz2_plus_vduz3
+lda {z2}
+clc
+adc {z3}
+sta {z1}
+lda {z2}+1
+adc {z3}+1
+sta {z1}+1
+lda {z2}+2
+adc {z3}+2
+sta {z1}+2
+lda {z2}+3
+adc {z3}+3
+sta {z1}+3
+//FRAGMENT vduz1=vduz2_rol_2
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+lda {z2}+2
+rol
+sta {z1}+2
+lda {z2}+3
+rol
+sta {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+//FRAGMENT vduz1=vduz2_rol_1
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+lda {z2}+2
+rol
+sta {z1}+2
+lda {z2}+3
+rol
+sta {z1}+3
+//FRAGMENT vduz1=vduz1_plus_vwuc1
+lda {z1}
+clc
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+lda {z1}+2
+adc #0
+sta {z1}+2
+lda {z1}+3
+adc #0
+sta {z1}+3
+//FRAGMENT vduz1=vduz1_rol_2
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+//FRAGMENT pbuz1=_deref_qbuc1
+lda {c1}
+sta {z1}
+lda {c1}+1
+sta {z1}+1
+//FRAGMENT vbsz1=vbsz2
+lda {z2}
+sta {z1}
+//FRAGMENT vbsz1_gt_0_then_la1
+lda {z1}
+cmp #0
+beq !+
+bpl {la1}
+!:
+//FRAGMENT vbsz1=_neg_vbsz2
+lda {z2}
+eor #$ff
+clc
+adc #$01
+sta {z1}
+//FRAGMENT vbsz1_neq_0_then_la1
+lda {z1}
+cmp #0
+bne {la1}
+//FRAGMENT vbuz1=vbuc1_minus_vbuz1
+lda #{c1}
+sec
+sbc {z1}
+sta {z1}
+//FRAGMENT vbuz1=_neg_vbuz1
+lda {z1}
+eor #$ff
+clc
+adc #$01
+sta {z1}
+//FRAGMENT vbsz1=vbsz2_ror_vbuz3
+lda {z2}
+ldy {z3}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsz1=vbsz1_minus_vbsz2
+lda {z1}
+sec
+sbc {z2}
+sta {z1}
+//FRAGMENT vbsz1=vbsz1_plus_vbsz2
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuz1_minus_pbuc1_derefidx_vbuz2
+lda {z1}
+ldy {z2}
+sec
+sbc {c1},y
+sta {z1}
+//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuz2
+lda {z1}
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbsz1=vbsaa
+sta {z1}
+//FRAGMENT vbsaa_neq_vbsc1_then_la1
+cmp #{c1}
+bne {la1}
+//FRAGMENT vbsaa_gt_0_then_la1
+cmp #0
+beq !+
+bpl {la1}
+!:
+//FRAGMENT vbsz1=_neg_vbsaa
+eor #$ff
+clc
+adc #$01
+sta {z1}
+//FRAGMENT vbsz1=_neg_vbsxx
+txa
+eor #$ff
+clc
+adc #$01
+sta {z1}
+//FRAGMENT vbsz1=_neg_vbsyy
+tya
+eor #$ff
+clc
+adc #$01
+sta {z1}
+//FRAGMENT vbsaa=_neg_vbsz1
+lda {z1}
+eor #$ff
+clc
+adc #$01
+//FRAGMENT vbsaa=_neg_vbsaa
+eor #$ff
+clc
+adc #$01
+//FRAGMENT vbsaa=_neg_vbsxx
+txa
+eor #$ff
+clc
+adc #$01
+//FRAGMENT vbsaa=_neg_vbsyy
+tya
+eor #$ff
+clc
+adc #$01
+//FRAGMENT vbsxx=_neg_vbsz1
+lda {z1}
+eor #$ff
+clc
+adc #$01
+tax
+//FRAGMENT vbsxx=_neg_vbsaa
+eor #$ff
+clc
+adc #$01
+tax
+//FRAGMENT vbsxx=_neg_vbsyy
+tya
+eor #$ff
+clc
+adc #$01
+tax
+//FRAGMENT vbsyy=_neg_vbsz1
+lda {z1}
+eor #$ff
+clc
+adc #$01
+tay
+//FRAGMENT vbsyy=_neg_vbsaa
+eor #$ff
+clc
+adc #$01
+tay
+//FRAGMENT vbsyy=_neg_vbsxx
+txa
+eor #$ff
+clc
+adc #$01
+tay
+//FRAGMENT vbsxx_gt_0_then_la1
+txa
+cmp #0
+beq !+
+bpl {la1}
+!:
+//FRAGMENT vbsyy_gt_0_then_la1
+tya
+cmp #0
+beq !+
+bpl {la1}
+!:
+//FRAGMENT vbsxx_neq_0_then_la1
+cpx #0
+bne {la1}
+//FRAGMENT vbsaa=vbsz1_ror_vbuz2
+lda {z1}
+ldy {z2}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsz1_ror_vbuz2
+lda {z1}
+ldx {z2}
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsz1_ror_vbuz2
+lda {z1}
+ldy {z2}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsaa_ror_vbuz2
+ldy {z2}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsaa_ror_vbuz1
+ldy {z1}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsaa_ror_vbuz1
+ldx {z1}
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsaa_ror_vbuz1
+ldy {z1}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsxx_ror_vbuz2
+ldy {z2}
+txa
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsxx_ror_vbuz1
+ldy {z1}
+txa
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsxx_ror_vbuz1
+txa
+ldx {z1}
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsxx_ror_vbuz1
+ldy {z1}
+txa
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsyy_ror_vbuz2
+tya
+ldy {z2}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsyy_ror_vbuz1
+tya
+ldy {z1}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsyy_ror_vbuz1
+ldx {z1}
+tya
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsyy_ror_vbuz1
+tya
+ldy {z1}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsz2_ror_vbuaa
+tay
+lda {z2}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsz1_ror_vbuaa
+tay
+lda {z1}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsz1_ror_vbuaa
+tax
+lda {z1}
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsz1_ror_vbuaa
+tay
+lda {z1}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsaa_ror_vbuaa
+tay
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsaa_ror_vbuaa
+tay
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsaa_ror_vbuaa
+tax
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsaa_ror_vbuaa
+tay
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsxx_ror_vbuaa
+tay
+txa
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsxx_ror_vbuaa
+tay
+txa
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsxx_ror_vbuaa
+tay
+txa
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsxx_ror_vbuaa
+tay
+txa
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsyy_ror_vbuaa
+tax
+tya
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsyy_ror_vbuaa
+tax
+tya
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsyy_ror_vbuaa
+tax
+tya
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsyy_ror_vbuaa
+tax
+tya
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsz2_ror_vbuxx
+lda {z2}
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsz1_ror_vbuxx
+lda {z1}
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsz1_ror_vbuxx
+lda {z1}
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsz1_ror_vbuxx
+lda {z1}
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsaa_ror_vbuxx
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsaa_ror_vbuxx
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsaa_ror_vbuxx
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsaa_ror_vbuxx
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsxx_ror_vbuxx
+txa
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsxx_ror_vbuxx
+txa
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsxx_ror_vbuxx
+txa
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsxx_ror_vbuxx
+txa
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsyy_ror_vbuxx
+tya
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsyy_ror_vbuxx
+tya
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsyy_ror_vbuxx
+tya
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsyy_ror_vbuxx
+tya
+cpx #0
+beq !e+
+!l:
+cmp #$80
+ror
+dex
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsz2_ror_vbuyy
+lda {z2}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsz1_ror_vbuyy
+lda {z1}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsz1_ror_vbuyy
+lda {z1}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsz1_ror_vbuyy
+lda {z1}
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsaa_ror_vbuyy
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsaa_ror_vbuyy
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsaa_ror_vbuyy
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsaa_ror_vbuyy
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsxx_ror_vbuyy
+txa
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsxx_ror_vbuyy
+txa
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsxx_ror_vbuyy
+txa
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsxx_ror_vbuyy
+txa
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsyy_ror_vbuyy
+tya
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+sta {z1}
+//FRAGMENT vbsaa=vbsyy_ror_vbuyy
+tya
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+//FRAGMENT vbsxx=vbsyy_ror_vbuyy
+tya
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tax
+//FRAGMENT vbsyy=vbsyy_ror_vbuyy
+tya
+cpy #0
+beq !e+
+!l:
+cmp #$80
+ror
+dey
+bne !l-
+!e:
+tay
+//FRAGMENT vbsz1=vbsz1_minus_vbsxx
+txa
+eor #$ff
+sec
+adc {z1}
+sta {z1}
+//FRAGMENT vbsz1=vbsz1_minus_vbsyy
+tya
+eor #$ff
+sec
+adc {z1}
+sta {z1}
+//FRAGMENT vbsxx=vbsxx_minus_vbsz1
+txa
+sec
+sbc {z1}
+tax
+//FRAGMENT vbsxx=vbsxx_minus_vbsxx
+lda #0
+tax
+//FRAGMENT vbsxx=vbsxx_minus_vbsyy
+txa
+sty $ff
+sec
+sbc $ff
+tax
+//FRAGMENT vbsyy=vbsyy_minus_vbsz1
+tya
+sec
+sbc {z1}
+tay
+//FRAGMENT vbsyy=vbsyy_minus_vbsxx
+tya
+stx $ff
+sec
+sbc $ff
+tay
+//FRAGMENT vbsyy=vbsyy_minus_vbsyy
+lda #0
+tay
+//FRAGMENT vbsz1=vbsz1_plus_vbsxx
+txa
+clc
+adc {z1}
+sta {z1}
+//FRAGMENT vbsz1=vbsz1_plus_vbsyy
+tya
+clc
+adc {z1}
+sta {z1}
+//FRAGMENT vbsxx=vbsxx_plus_vbsz1
+txa
+clc
+adc {z1}
+tax
+//FRAGMENT vbsxx=vbsxx_plus_vbsxx
+txa
+asl
+tax
+//FRAGMENT vbsxx=vbsxx_plus_vbsyy
+txa
+sty $ff
+clc
+adc $ff
+tax
+//FRAGMENT vbsyy=vbsyy_plus_vbsz1
+tya
+clc
+adc {z1}
+tay
+//FRAGMENT vbsyy=vbsyy_plus_vbsxx
+txa
+sty $ff
+clc
+adc $ff
+tay
+//FRAGMENT vbsyy=vbsyy_plus_vbsyy
+tya
+asl
+tay
+//FRAGMENT vbuxx=vbuxx_minus_pbuc1_derefidx_vbuz1
+txa
+ldx {z1}
+sec
+sbc {c1},x
+tax
+//FRAGMENT vbuyy=vbuyy_minus_pbuc1_derefidx_vbuz1
+tya
+ldy {z1}
+sec
+sbc {c1},y
+tay
+//FRAGMENT vbuz1=vbuz1_minus_pbuc1_derefidx_vbuxx
+lda {z1}
+sec
+sbc {c1},x
+sta {z1}
+//FRAGMENT vbuxx=vbuxx_minus_pbuc1_derefidx_vbuxx
+txa
+tax
+sec
+sbc {c1},x
+tax
+//FRAGMENT vbuyy=vbuyy_minus_pbuc1_derefidx_vbuxx
+tya
+sec
+sbc {c1},x
+tay
+//FRAGMENT vbuz1=vbuz1_minus_pbuc1_derefidx_vbuyy
+lda {z1}
+sec
+sbc {c1},y
+sta {z1}
+//FRAGMENT vbuxx=vbuxx_minus_pbuc1_derefidx_vbuyy
+txa
+sec
+sbc {c1},y
+tax
+//FRAGMENT vbuyy=vbuyy_minus_pbuc1_derefidx_vbuyy
+tya
+tay
+sec
+sbc {c1},y
+tay
+//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {z1}
+sta {z1}
+//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+clc
+adc {z1}
+sta {z1}
+//FRAGMENT vbsxx=vbsz1
+ldx {z1}
+//FRAGMENT vbsz1=vbsxx
+stx {z1}
+//FRAGMENT vbsyy_neq_0_then_la1
+cpy #0
+bne {la1}
+//FRAGMENT vbsyy=vbsz1
+ldy {z1}
+//FRAGMENT _deref_pduc1=vduz1
+lda {z1}
+sta {c1}
+lda {z1}+1
+sta {c1}+1
+lda {z1}+2
+sta {c1}+2
+lda {z1}+3
+sta {c1}+3
+//FRAGMENT vduz1=_dec_vduz2
+lda {z2}
+sec
+sbc #1
+sta {z1}
+lda {z2}+1
+sbc #0
+sta {z1}+1
+lda {z2}+2
+sbc #0
+sta {z1}+2
+lda {z2}+3
+sbc #0
+sta {z1}+3
+//FRAGMENT vduz1=_inc_vduz1
+inc {z1}
+bne !+
+inc {z1}+1
+bne !+
+inc {z1}+2
+bne !+
+inc {z1}+3
+!:
+//FRAGMENT vduz1=vduz1_plus_vbuc1
+lda {z1}
+clc
+adc #{c1}
+sta {z1}
+bcc !+
+inc {z1}+1
+bne !+
+inc {z1}+2
+bne !+
+inc {z1}+3
+!:
+//FRAGMENT vduz1=_dec_vduz1
+lda {z1}
+sec
+sbc #1
+sta {z1}
+lda {z1}+1
+sbc #0
+sta {z1}+1
+lda {z1}+2
+sbc #0
+sta {z1}+2
+lda {z1}+3
+sbc #0
+sta {z1}+3
+//FRAGMENT vwuz1=_stackidxword_vbuc1
+tsx
+lda STACK_BASE+{c1},x
+sta {z1}
+lda STACK_BASE+{c1}+1,x
+sta {z1}+1
+//FRAGMENT _stackidxword_vbuc1=vwuz1
+tsx
+lda {z1}
+sta STACK_BASE+{c1},x
+lda {z1}+1
+sta STACK_BASE+{c1}+1,x
+//FRAGMENT _stackpushword_=vwuc1
+lda #>{c1}
+pha
+lda #<{c1}
+pha
+//FRAGMENT vwuz1=_stackpullword_
+pla
+sta {z1}
+pla
+sta {z1}+1
+//FRAGMENT _stackpushword_=vbuc1
+lda #0
+pha
+lda #<{c1}
+pha
+//FRAGMENT _stackidxsword_vbuc1=vwsz1
+tsx
+lda {z1}
+sta STACK_BASE+{c1},x
+lda {z1}+1
+sta STACK_BASE+{c1}+1,x
+//FRAGMENT _stackpushbyte_2
+pha
+pha
+//FRAGMENT vwsz1=_stackpullsword_
+pla
+sta {z1}
+pla
+sta {z1}+1
+//FRAGMENT pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa
+tax
+inc {c1},x
+//FRAGMENT vbuz1=vbuz1_bor_vbuc1
+lda #{c1}
+ora {z1}
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_bor_vbuc1
+ora #{c1}
+//FRAGMENT vbuxx=vbuxx_bor_vbuc1
+txa
+ora #{c1}
+tax
+//FRAGMENT vbuyy=vbuyy_bor_vbuc1
+tya
+ora #{c1}
+tay
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_(pbuc3_derefidx_vbuz1)
+ldx {z1}
+ldy {c3},x
+lda {c2},y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_(pbuc3_derefidx_vbuxx)
+ldy {c3},x
+lda {c2},y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_(pbuc3_derefidx_vbuyy)
+ldx {c3},y
+lda {c2},x
+sta {c1},y
+//FRAGMENT vbuz1=vbuc1_bxor_vbuz2
+lda #{c1}
+eor {z2}
+sta {z1}
+//FRAGMENT vbuz1=_deref_pbuc1_bxor_vbuc2
+lda #{c2}
+eor {c1}
+sta {z1}
+//FRAGMENT vbuz1=vbuc1_bxor_vbuaa
+eor #{c1}
+sta {z1}
+//FRAGMENT vbuz1=vbuc1_bxor_vbuxx
+txa
+eor #{c1}
+sta {z1}
+//FRAGMENT vbuz1=vbuc1_bxor_vbuyy
+tya
+eor #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuc1_bxor_vbuz1
+lda #{c1}
+eor {z1}
+//FRAGMENT vbuaa=vbuc1_bxor_vbuaa
+eor #{c1}
+//FRAGMENT vbuaa=vbuc1_bxor_vbuxx
+txa
+eor #{c1}
+//FRAGMENT vbuaa=vbuc1_bxor_vbuyy
+tya
+eor #{c1}
+//FRAGMENT vbuxx=vbuc1_bxor_vbuz1
+lda #{c1}
+eor {z1}
+tax
+//FRAGMENT vbuxx=vbuc1_bxor_vbuaa
+eor #{c1}
+tax
+//FRAGMENT vbuxx=vbuc1_bxor_vbuxx
+txa
+eor #{c1}
+tax
+//FRAGMENT vbuxx=vbuc1_bxor_vbuyy
+tya
+eor #{c1}
+tax
+//FRAGMENT vbuyy=vbuc1_bxor_vbuz1
+lda #{c1}
+eor {z1}
+tay
+//FRAGMENT vbuyy=vbuc1_bxor_vbuaa
+eor #{c1}
+tay
+//FRAGMENT vbuyy=vbuc1_bxor_vbuxx
+txa
+eor #{c1}
+tay
+//FRAGMENT vbuyy=vbuc1_bxor_vbuyy
+tya
+eor #{c1}
+tay
+//FRAGMENT vbuaa=_deref_pbuc1_bxor_vbuc2
+lda #{c2}
+eor {c1}
+//FRAGMENT vbuxx=_deref_pbuc1_bxor_vbuc2
+lda #{c2}
+eor {c1}
+tax
+//FRAGMENT vbuyy=_deref_pbuc1_bxor_vbuc2
+lda #{c2}
+eor {c1}
+tay
+//FRAGMENT vbuaa=vbuaa_plus_2
+clc
+adc #2
+//FRAGMENT vbuz1_ge__deref_pbuc1_then_la1
+lda {c1}
+ldy {z1}
+sta $ff
+cpy $ff
+bcs {la1}
+//FRAGMENT vbuxx_ge__deref_pbuc1_then_la1
+ldy {c1}
+sty $ff
+cpx $ff
+bcs  {la1}
+//FRAGMENT vbuyy_ge__deref_pbuc1_then_la1
+lda {c1}
+sta $ff
+cpy $ff
+bcs {la1}
+//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2_word_vbuz3
+ldy {z2}
+lda {c1},y
+sta {z1}+1
+lda {z3}
+sta {z1}
+//FRAGMENT vwuz1=pbuc1_derefidx_vbuaa_word_vbuz2
+tay
+lda {c1},y
+sta {z1}+1
+lda {z2}
+sta {z1}
+//FRAGMENT vwuz1=pbuc1_derefidx_vbuxx_word_vbuz2
+lda {c1},x
+sta {z1}+1
+lda {z2}
+sta {z1}
+//FRAGMENT vwuz1=pbuc1_derefidx_vbuyy_word_vbuz2
+lda {c1},y
+sta {z1}+1
+lda {z2}
+sta {z1}
+//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2_word_vbuaa
+ldx {z2}
+ldy {c1},x
+sty {z1}+1
+sta {z1}
+//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2_word_vbuxx
+ldy {z2}
+lda {c1},y
+sta {z1}+1
+stx {z1}
+//FRAGMENT vwuz1=pbuc1_derefidx_vbuxx_word_vbuxx
+lda {c1},x
+sta {z1}+1
+stx {z1}
+//FRAGMENT _deref_(_deref_qwuc1)=_deref_(_deref_qwuc2)
+ldy {c2}
+sty $fe
+ldy {c2}+1
+sty $ff
+ldy #0
+lda ($fe),y
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+sta ($fe),y
+//FRAGMENT _deref_pbuc1_eq__deref_pbuc2_then_la1
+lda {c1}
+cmp {c2}
+beq {la1}
+//FRAGMENT _deref_pbsc1=_deref_pbsc2
+lda {c2}
+sta {c1}
+//FRAGMENT vbuz1=_deref_pbuc1_plus_1
+ldy {c1}
+iny
+sty {z1}
+//FRAGMENT vbuz1=_deref_pbuc1_minus_1
+ldx {c1}
+dex
+stx {z1}
+//FRAGMENT vbuz1=_deref_pbuc1_plus_vbuc2
+lda #{c2}
+clc
+adc {c1}
+sta {z1}
+//FRAGMENT vbuz1=_deref_pbuc1_minus_vbuc2
+lda {c1}
+sec
+sbc #{c2}
+sta {z1}
+//FRAGMENT vbuz1=vbuz2_minus_vbuz3
+lda {z2}
+sec
+sbc {z3}
+sta {z1}
+//FRAGMENT vbuz1_ge_vbuz2_then_la1
+lda {z1}
+cmp {z2}
+bcs {la1}
+//FRAGMENT vbuaa=_deref_pbuc1_plus_1
+lda {c1}
+clc
+adc #1
+//FRAGMENT vbuaa=_deref_pbuc1_minus_1
+lda {c1}
+sec
+sbc #1
+//FRAGMENT vbuaa=_deref_pbuc1_plus_vbuc2
+lda #{c2}
+clc
+adc {c1}
+//FRAGMENT vbuxx=_deref_pbuc1_plus_vbuc2
+lda {c1}
+tax
+axs #-[{c2}]
+//FRAGMENT vbuyy=_deref_pbuc1_plus_vbuc2
+lda #{c2}
+clc
+adc {c1}
+tay
+//FRAGMENT vbuaa=_deref_pbuc1_minus_vbuc2
+lda {c1}
+sec
+sbc #{c2}
+//FRAGMENT vbuxx=_deref_pbuc1_minus_vbuc2
+lda {c1}
+tax
+axs #{c2}
+//FRAGMENT vbuyy=_deref_pbuc1_minus_vbuc2
+lda {c1}
+sec
+sbc #{c2}
+tay
+//FRAGMENT vbuaa_neq_vbuz1_then_la1
+cmp {z1}
+bne {la1}
+//FRAGMENT vbuaa=vbuz1_minus_vbuz2
+lda {z1}
+sec
+sbc {z2}
+//FRAGMENT vbuxx=vbuz1_minus_vbuz2
+lda {z1}
+sec
+sbc {z2}
+tax
+//FRAGMENT vbuyy=vbuz1_minus_vbuz2
+lda {z1}
+sec
+sbc {z2}
+tay
+//FRAGMENT vbuz1=vbuaa_minus_vbuz2
+sec
+sbc {z2}
+sta {z1}
+//FRAGMENT vbuxx=vbuaa_minus_vbuz1
+sec
+sbc {z1}
+tax
+//FRAGMENT vbuyy=vbuaa_minus_vbuz1
+sec
+sbc {z1}
+tay
+//FRAGMENT vbuz1=vbuxx_minus_vbuz2
+txa
+sec
+sbc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_minus_vbuz1
+txa
+sec
+sbc {z1}
+//FRAGMENT vbuyy=vbuxx_minus_vbuz1
+txa
+sec
+sbc {z1}
+tay
+//FRAGMENT vbuz1=vbuyy_minus_vbuz2
+tya
+sec
+sbc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_minus_vbuz1
+tya
+sec
+sbc {z1}
+//FRAGMENT vbuxx=vbuyy_minus_vbuz1
+tya
+sec
+sbc {z1}
+tax
+//FRAGMENT vbuz1=vbuz2_minus_vbuaa
+eor #$ff
+sec
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_minus_vbuaa
+eor #$ff
+sec
+adc {z1}
+//FRAGMENT vbuxx=vbuz1_minus_vbuaa
+eor #$ff
+sec
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_minus_vbuaa
+eor #$ff
+sec
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuaa_minus_vbuaa
+lda #0
+sta {z1}
+//FRAGMENT vbuxx=vbuaa_minus_vbuaa
+lda #0
+tax
+//FRAGMENT vbuyy=vbuaa_minus_vbuaa
+lda #0
+tay
+//FRAGMENT vbuz1=vbuxx_minus_vbuaa
+sta $ff
+txa
+sec
+sbc $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_minus_vbuaa
+sta $ff
+txa
+sec
+sbc $ff
+//FRAGMENT vbuyy=vbuxx_minus_vbuaa
+sta $ff
+txa
+sec
+sbc $ff
+tay
+//FRAGMENT vbuz1=vbuyy_minus_vbuaa
+sta $ff
+tya
+sec
+sbc $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_minus_vbuaa
+sta $ff
+tya
+sec
+sbc $ff
+//FRAGMENT vbuxx=vbuyy_minus_vbuaa
+sta $ff
+tya
+sec
+sbc $ff
+tax
+//FRAGMENT vbuz1=vbuz2_minus_vbuxx
+txa
+eor #$ff
+sec
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_minus_vbuxx
+txa
+eor #$ff
+sec
+adc {z1}
+//FRAGMENT vbuxx=vbuz1_minus_vbuxx
+txa
+eor #$ff
+sec
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_minus_vbuxx
+txa
+eor #$ff
+sec
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuaa_minus_vbuxx
+stx $ff
+sec
+sbc $ff
+sta {z1}
+//FRAGMENT vbuxx=vbuaa_minus_vbuxx
+stx $ff
+sec
+sbc $ff
+tax
+//FRAGMENT vbuyy=vbuaa_minus_vbuxx
+stx $ff
+sec
+sbc $ff
+tay
+//FRAGMENT vbuz1=vbuxx_minus_vbuxx
+lda #0
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_minus_vbuxx
+lda #0
+//FRAGMENT vbuyy=vbuxx_minus_vbuxx
+lda #0
+tay
+//FRAGMENT vbuz1=vbuyy_minus_vbuxx
+tya
+stx $ff
+sec
+sbc $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_minus_vbuxx
+tya
+stx $ff
+sec
+sbc $ff
+//FRAGMENT vbuxx=vbuyy_minus_vbuxx
+tya
+stx $ff
+sec
+sbc $ff
+tax
+//FRAGMENT vbuz1=vbuz2_minus_vbuyy
+tya
+eor #$ff
+sec
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_minus_vbuyy
+tya
+eor #$ff
+sec
+adc {z1}
+//FRAGMENT vbuxx=vbuz1_minus_vbuyy
+tya
+eor #$ff
+sec
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_minus_vbuyy
+tya
+eor #$ff
+sec
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuaa_minus_vbuyy
+sty $ff
+sec
+sbc $ff
+sta {z1}
+//FRAGMENT vbuxx=vbuaa_minus_vbuyy
+sty $ff
+sec
+sbc $ff
+tax
+//FRAGMENT vbuyy=vbuaa_minus_vbuyy
+sty $ff
+sec
+sbc $ff
+tay
+//FRAGMENT vbuz1=vbuxx_minus_vbuyy
+txa
+sty $ff
+sec
+sbc $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_minus_vbuyy
+txa
+sty $ff
+sec
+sbc $ff
+//FRAGMENT vbuyy=vbuxx_minus_vbuyy
+txa
+sty $ff
+sec
+sbc $ff
+tay
+//FRAGMENT vbuz1=vbuyy_minus_vbuyy
+lda #0
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_minus_vbuyy
+lda #0
+//FRAGMENT vbuxx=vbuyy_minus_vbuyy
+lda #0
+tax
+//FRAGMENT vbuaa_ge_vbuz1_then_la1
+cmp {z1}
+bcs {la1}
+//FRAGMENT vbuxx_ge_vbuz1_then_la1
+cpx {z1}
+bcs {la1}
+//FRAGMENT vbuyy_ge_vbuz1_then_la1
+cpy {z1}
+bcs {la1}
+//FRAGMENT vbuz1_ge_vbuxx_then_la1
+lda {z1}
+stx $ff
+cmp $ff
+bcs {la1}
+//FRAGMENT vbuaa_ge_vbuxx_then_la1
+stx $ff
+cmp $ff
+bcs {la1}
+//FRAGMENT vbuyy_ge_vbuxx_then_la1
+stx $ff
+cpy $ff
+bcs {la1}
+//FRAGMENT vbuz1_ge_vbuyy_then_la1
+lda {z1}
+sty $ff
+cmp $ff
+bcs {la1}
+//FRAGMENT vbuaa_ge_vbuyy_then_la1
+sty $ff
+cmp $ff
+bcs {la1}
+//FRAGMENT vbuxx_ge_vbuyy_then_la1
+sty $ff
+cpx $ff
+bcs  {la1}
+//FRAGMENT vbuxx=_deref_pbuc1_plus_1
+ldx {c1}
+inx
+//FRAGMENT vbuyy=_deref_pbuc1_plus_1
+ldy {c1}
+iny
+//FRAGMENT vbuxx=_deref_pbuc1_minus_1
+ldx {c1}
+dex
+//FRAGMENT vbuyy=_deref_pbuc1_minus_1
+lda {c1}
+tay
+dey
+//FRAGMENT vbsz1_neq_vbsz2_then_la1
+lda {z1}
+cmp {z2}
+bne {la1}
+//FRAGMENT vbsz1_neq_vbsxx_then_la1
+cpx {z1}
+bne {la1}
+//FRAGMENT vbsxx_neq_vbsz1_then_la1
+cpx {z1}
+bne {la1}
+//FRAGMENT pwuz1=pwuc1_plus_vwuz2
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT pwuz1=pwuc1_plus_vwuz1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_plus_vbuaa
+clc
+adc {z2}
+sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT _deref_pbuz1=vbum2
+lda {m2}
+ldy #0
+sta ({z1}),y
+//FRAGMENT pbuc1_derefidx_vbum1=vbuc2
+lda #{c2}
+ldy {m1}
+sta {c1},y
+//FRAGMENT vbuz1=vbum2
+lda {m2}
+sta {z1}
+//FRAGMENT vbuaa=vbum1
+lda {m1}
+//FRAGMENT vbuxx=vbum1
+ldx {m1}
+//FRAGMENT vbuyy=vbum1
+ldy {m1}
+//FRAGMENT qbuc1_derefidx_vbuz1=pbuc2
+ldy {z1}
+lda #<{c2}
+sta {c1},y
+lda #>{c2}
+sta {c1}+1,y
+//FRAGMENT qbuc1_derefidx_vbuaa=pbuc2
+tay
+lda #<{c2}
+sta {c1},y
+lda #>{c2}
+sta {c1}+1,y
+//FRAGMENT qbuc1_derefidx_vbuxx=pbuc2
+lda #<{c2}
+sta {c1},x
+lda #>{c2}
+sta {c1}+1,x
+//FRAGMENT qbuc1_derefidx_vbuyy=pbuc2
+lda #<{c2}
+sta {c1},y
+lda #>{c2}
+sta {c1}+1,y
+//FRAGMENT pbuz1_ge_pbuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bcc !+
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bcs {la1}
+!:
+//FRAGMENT vbuz1=_deref_pbuc1_band_vbuc2
+lda #{c2}
+and {c1}
+sta {z1}
+//FRAGMENT vbuz1=_deref_pbuc1_ror_1
+lda {c1}
+lsr
+sta {z1}
+//FRAGMENT vwuz1_ge_pwuc1_derefidx_vbuz2_then_la1
+ldy {z2}
+lda {c1}+1,y
+cmp {z1}+1
+bne !+
+lda {c1},y
+cmp {z1}
+beq {la1}
+!:
+bcc {la1}
+//FRAGMENT _deref_(_deref_qbuc1)=pbuc2_derefidx_vbuz1
+ldy {z1}
+lda {c2},y
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+sta ($fe),y
+//FRAGMENT _deref_qbuc1=_inc__deref_qbuc1
+inc {c1}
+bne !+
+inc {c1}+1
+!:
+//FRAGMENT vbuaa=_deref_pbuc1_band_vbuc2
+lda #{c2}
+and {c1}
+//FRAGMENT vbuxx=_deref_pbuc1_band_vbuc2
+lda #{c2}
+and {c1}
+tax
+//FRAGMENT vbuyy=_deref_pbuc1_band_vbuc2
+lda #{c2}
+and {c1}
+tay
+//FRAGMENT vbuaa=_deref_pbuc1_ror_1
+lda {c1}
+lsr
+//FRAGMENT vbuxx=_deref_pbuc1_ror_1
+lda {c1}
+lsr
+tax
+//FRAGMENT vbuyy=_deref_pbuc1_ror_1
+lda {c1}
+lsr
+tay
+//FRAGMENT vwuz1_ge_pwuc1_derefidx_vbuaa_then_la1
+tay
+lda {c1}+1,y
+cmp {z1}+1
+bne !+
+lda {c1},y
+cmp {z1}
+beq {la1}
+!:
+bcc {la1}
+//FRAGMENT vwuz1_ge_pwuc1_derefidx_vbuxx_then_la1
+lda {c1}+1,x
+cmp {z1}+1
+bne !+
+lda {c1},x
+cmp {z1}
+beq {la1}
+!:
+bcc {la1}
+//FRAGMENT vwuz1_ge_pwuc1_derefidx_vbuyy_then_la1
+lda {c1}+1,y
+cmp {z1}+1
+bne !+
+lda {c1},y
+cmp {z1}
+beq {la1}
+!:
+bcc {la1}
+//FRAGMENT _deref_(_deref_qbuc1)=pbuc2_derefidx_vbuaa
+tay
+lda {c2},y
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+sta ($fe),y
+//FRAGMENT _deref_(_deref_qbuc1)=pbuc2_derefidx_vbuxx
+lda {c2},x
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+sta ($fe),y
+//FRAGMENT _deref_(_deref_qbuc1)=pbuc2_derefidx_vbuyy
+lda {c2},y
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+sta ($fe),y
+//FRAGMENT _deref_pwuz1=vbuz2
+lda {z2}
+ldy #0
+sta ({z1}),y
+tya
+iny
+sta ({z1}),y
+//FRAGMENT _deref_pwuz1=vbuaa
+ldy #0
+sta ({z1}),y
+tya
+iny
+sta ({z1}),y
+//FRAGMENT _deref_pwuz1=vbuxx
+txa
+ldy #0
+sta ({z1}),y
+tya
+iny
+sta ({z1}),y
+//FRAGMENT _deref_pwuz1=vbuyy
+tya
+ldy #0
+sta ({z1}),y
+tya
+iny
+sta ({z1}),y
+//FRAGMENT vbsz1=vbsz2_rol_1
+lda {z2}
+asl
+sta {z1}
+//FRAGMENT vbsaa=vbsz1_rol_1
+lda {z1}
+asl
+//FRAGMENT vbsxx=vbsz1_rol_1
+lda {z1}
+asl
+tax
+//FRAGMENT vbsyy=vbsz1_rol_1
+lda {z1}
+asl
+tay
+//FRAGMENT vbsz1=vbsaa_rol_1
+asl
+sta {z1}
+//FRAGMENT vbsaa=vbsaa_rol_1
+asl
+//FRAGMENT vbsxx=vbsaa_rol_1
+asl
+tax
+//FRAGMENT vbsyy=vbsaa_rol_1
+asl
+tay
+//FRAGMENT vbsz1=vbsxx_rol_1
+txa
+asl
+sta {z1}
+//FRAGMENT vbsaa=vbsxx_rol_1
+txa
+asl
+//FRAGMENT vbsxx=vbsxx_rol_1
+txa
+asl
+tax
+//FRAGMENT vbsyy=vbsxx_rol_1
+txa
+asl
+tay
+//FRAGMENT vbsz1=vbsyy_rol_1
+tya
+asl
+sta {z1}
+//FRAGMENT vbsaa=vbsyy_rol_1
+tya
+asl
+//FRAGMENT vbsxx=vbsyy_rol_1
+tya
+asl
+tax
+//FRAGMENT vbsyy=vbsyy_rol_1
+tya
+asl
+tay
+//FRAGMENT vwuz1=_deref_pwuz2
+ldy #0
+lda ({z2}),y
+sta {z1}
+iny
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT pwsz1=pwsc1
+lda #<{c1}
+sta {z1}
+lda #>{c1}
+sta {z1}+1
+//FRAGMENT pwsz1=pwsc1_plus_vbuz2
+lda {z2}
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pwsc1_derefidx_vbuz1=_deref_pwsz2
+ldx {z1}
+ldy #0
+lda ({z2}),y
+sta {c1},x
+iny
+lda ({z2}),y
+sta {c1}+1,x
+//FRAGMENT pwsz1=pwsc1_plus_vbuaa
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pwsz1=pwsc1_plus_vbuxx
+txa
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pwsz1=pwsc1_plus_vbuyy
+tya
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pwsc1_derefidx_vbuaa=_deref_pwsz1
+tax
+ldy #0
+lda ({z1}),y
+sta {c1},x
+iny
+lda ({z1}),y
+sta {c1}+1,x
+//FRAGMENT pwsc1_derefidx_vbuxx=_deref_pwsz1
+ldy #0
+lda ({z1}),y
+sta {c1},x
+iny
+lda ({z1}),y
+sta {c1}+1,x
+//FRAGMENT pwsc1_derefidx_vbuyy=_deref_pwsz1
+tya
+tax
+ldy #0
+lda ({z1}),y
+sta {c1},x
+iny
+lda ({z1}),y
+sta {c1}+1,x
+//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sta {z1}
+//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1}+1,y
+sta {z1}
+//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuz1
+ldx {z1}
+lda {c1},x
+tax
+//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+tay
+//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuaa
+tay
+lda {c1},y
+sta {z1}
+//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuaa
+tay
+lda {c1},y
+//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuaa
+tax
+lda {c1},x
+tax
+//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuaa
+tay
+lda {c1},y
+tay
+//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuxx
+lda {c1},x
+sta {z1}
+//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuxx
+lda {c1},x
+//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuxx
+lda {c1},x
+tax
+//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuxx
+lda {c1},x
+tay
+//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuyy
+lda {c1},y
+sta {z1}
+//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuyy
+lda {c1},y
+//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuyy
+lda {c1},y
+tax
+//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuyy
+lda {c1},y
+tay
+//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuz1
+ldy {z1}
+lda {c1}+1,y
+//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuz1
+ldx {z1}
+lda {c1}+1,x
+tax
+//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuz1
+ldy {z1}
+lda {c1}+1,y
+tay
+//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuxx
+lda {c1}+1,x
+sta {z1}
+//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuxx
+lda {c1}+1,x
+//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuxx
+lda {c1}+1,x
+tax
+//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuxx
+lda {c1}+1,x
+tay
+//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuyy
+lda {c1}+1,y
+sta {z1}
+//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuyy
+lda {c1}+1,y
+//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuyy
+lda {c1}+1,y
+tax
+//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuyy
+lda {c1}+1,y
+tay
+//FRAGMENT vbuz1=_lo_pwsc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sta {z1}
+//FRAGMENT vbuz1=_hi_pwsc1_derefidx_vbuz2
+ldy {z2}
+lda {c1}+1,y
+sta {z1}
+//FRAGMENT vbuaa=_lo_pwsc1_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+//FRAGMENT vbuxx=_lo_pwsc1_derefidx_vbuz1
+ldx {z1}
+lda {c1},x
+tax
+//FRAGMENT vbuyy=_lo_pwsc1_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+tay
+//FRAGMENT vbuz1=_lo_pwsc1_derefidx_vbuxx
+lda {c1},x
+sta {z1}
+//FRAGMENT vbuaa=_lo_pwsc1_derefidx_vbuxx
+lda {c1},x
+//FRAGMENT vbuxx=_lo_pwsc1_derefidx_vbuxx
+lda {c1},x
+tax
+//FRAGMENT vbuyy=_lo_pwsc1_derefidx_vbuxx
+lda {c1},x
+tay
+//FRAGMENT vbuz1=_lo_pwsc1_derefidx_vbuyy
+lda {c1},y
+sta {z1}
+//FRAGMENT vbuaa=_lo_pwsc1_derefidx_vbuyy
+lda {c1},y
+//FRAGMENT vbuxx=_lo_pwsc1_derefidx_vbuyy
+lda {c1},y
+tax
+//FRAGMENT vbuyy=_lo_pwsc1_derefidx_vbuyy
+lda {c1},y
+tay
+//FRAGMENT vbuaa=_hi_pwsc1_derefidx_vbuz1
+ldy {z1}
+lda {c1}+1,y
+//FRAGMENT vbuxx=_hi_pwsc1_derefidx_vbuz1
+ldx {z1}
+lda {c1}+1,x
+tax
+//FRAGMENT vbuyy=_hi_pwsc1_derefidx_vbuz1
+ldy {z1}
+lda {c1}+1,y
+tay
+//FRAGMENT vbuz1=_hi_pwsc1_derefidx_vbuxx
+lda {c1}+1,x
+sta {z1}
+//FRAGMENT vbuaa=_hi_pwsc1_derefidx_vbuxx
+lda {c1}+1,x
+//FRAGMENT vbuxx=_hi_pwsc1_derefidx_vbuxx
+lda {c1}+1,x
+tax
+//FRAGMENT vbuyy=_hi_pwsc1_derefidx_vbuxx
+lda {c1}+1,x
+tay
+//FRAGMENT vbuz1=_hi_pwsc1_derefidx_vbuyy
+lda {c1}+1,y
+sta {z1}
+//FRAGMENT vbuaa=_hi_pwsc1_derefidx_vbuyy
+lda {c1}+1,y
+//FRAGMENT vbuxx=_hi_pwsc1_derefidx_vbuyy
+lda {c1}+1,y
+tax
+//FRAGMENT vbuyy=_hi_pwsc1_derefidx_vbuyy
+lda {c1}+1,y
+tay
+//FRAGMENT pbuz1=pbuz2_plus_1
+clc
+lda {z2}
+adc #1
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+//FRAGMENT vbuz1=vbuz2_ror_2
+lda {z2}
+lsr
+lsr
+sta {z1}
+//FRAGMENT vbuz1=vbuaa_ror_2
+lsr
+lsr
+sta {z1}
+//FRAGMENT vbuz1=vbuxx_ror_2
+txa
+lsr
+lsr
+sta {z1}
+//FRAGMENT vbuz1=vbuyy_ror_2
+tya
+lsr
+lsr
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_ror_2
+lda {z1}
+lsr
+lsr
+//FRAGMENT vbuaa=vbuaa_ror_2
+lsr
+lsr
+//FRAGMENT vbuaa=vbuxx_ror_2
+txa
+lsr
+lsr
+//FRAGMENT vbuaa=vbuyy_ror_2
+tya
+lsr
+lsr
+//FRAGMENT vbuxx=vbuz1_ror_2
+lda {z1}
+lsr
+lsr
+tax
+//FRAGMENT vbuxx=vbuaa_ror_2
+lsr
+lsr
+tax
+//FRAGMENT vbuxx=vbuxx_ror_2
+txa
+lsr
+lsr
+tax
+//FRAGMENT vbuxx=vbuyy_ror_2
+tya
+lsr
+lsr
+tax
+//FRAGMENT vbuyy=vbuz1_ror_2
+lda {z1}
+lsr
+lsr
+tay
+//FRAGMENT vbuyy=vbuaa_ror_2
+lsr
+lsr
+tay
+//FRAGMENT vbuyy=vbuxx_ror_2
+txa
+lsr
+lsr
+tay
+//FRAGMENT vbuyy=vbuyy_ror_2
+tya
+lsr
+lsr
+tay
+//FRAGMENT vwuz1=vbuz2_band_vbuc1
+lda {z2}
+and #{c1}
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=vbuaa_band_vbuc1
+and #{c1}
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=vbuxx_band_vbuc1
+txa
+and #{c1}
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=vbuyy_band_vbuc1
+tya
+and #{c1}
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuc1_le_vwuc2_then_la1
+lda #>{c1}
+cmp #>{c2}
+bne !+
+lda #<{c1}
+cmp #<{c2}
+beq {la1}
+!:
+bcc {la1}
+//FRAGMENT pbuz1_derefidx_vbuc1=_byte_vwuz2
+ldy #{c1}
+lda {z2}
+sta ({z1}),y
+//FRAGMENT pssz1=pssc1_plus_vwuz2
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT _deref_pssz1=_deref_pssz2_memcpy_vbuc1
+ldy #00
+!:
+lda ({z2}),y
+sta ({z1}),y
+iny
+cpy #{c1}
+bne !-
+//FRAGMENT pssz1=pssc1_plus_vwuz1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_plus_vbuc2
+lda #{c2}
+clc
+adc {c1}
+sta {c1}
+//FRAGMENT vbuz1=pbuz2_derefidx_vbuc1
+ldy #{c1}
+lda ({z2}),y
+sta {z1}
+//FRAGMENT pssz1=pssz2_plus_vbuc1
+lda #{c1}
+clc
+adc {z2}
+sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT vbuaa=pbuz1_derefidx_vbuc1
+ldy #{c1}
+lda ({z1}),y
+//FRAGMENT vbuxx=pbuz1_derefidx_vbuc1
+ldy #{c1}
+lda ({z1}),y
+tax
+//FRAGMENT vbuyy=pbuz1_derefidx_vbuc1
+ldy #{c1}
+lda ({z1}),y
+tay
+//FRAGMENT vbuz1_lt__deref_pbuc1_then_la1
+lda {z1}
+cmp {c1}
+bcc {la1}
+//FRAGMENT pwuc1_derefidx_vbuz1=(_deref_qwuc2)_derefidx_vbuz1
+ldy {z1}
+lda {c2}
+sta $fe
+lda {c2}+1
+sta $ff
+lda ($fe),y
+sta {c1},y
+iny
+lda ($fe),y
+sta {c1},y
+//FRAGMENT vbuaa_lt__deref_pbuc1_then_la1
+cmp {c1}
+bcc {la1}
+//FRAGMENT pwuc1_derefidx_vbuaa=(_deref_qwuc2)_derefidx_vbuaa
+tay
+lda {c2}
+sta $fe
+lda {c2}+1
+sta $ff
+lda ($fe),y
+sta {c1},y
+iny
+lda ($fe),y
+sta {c1},y
+//FRAGMENT pwuc1_derefidx_vbuxx=(_deref_qwuc2)_derefidx_vbuxx
+txa
+tay
+lda {c2}
+sta $fe
+lda {c2}+1
+sta $ff
+lda ($fe),y
+sta {c1},y
+iny
+lda ($fe),y
+sta {c1},y
+//FRAGMENT pwuc1_derefidx_vbuyy=(_deref_qwuc2)_derefidx_vbuyy
+lda {c2}
+sta $fe
+lda {c2}+1
+sta $ff
+lda ($fe),y
+sta {c1},y
+iny
+lda ($fe),y
+sta {c1},y
+//FRAGMENT vbuxx_lt__deref_pbuc1_then_la1
+cpx {c1}
+bcc {la1}
+//FRAGMENT pssz1_neq_pssc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bne {la1}
+//FRAGMENT pssz1=pssz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_(_deref_pbuz2)
+ldy #0
+lda ({z2}),y
+tay
+lda {c2},y
+ldy {z1}
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_(_deref_pbuz1)
+tax
+ldy #0
+lda ({z1}),y
+tay
+lda {c2},y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1)
+ldy #0
+lda ({z1}),y
+tay
+lda {c2},y
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_(_deref_pbuz1)
+tya
+tax
+ldy #0
+lda ({z1}),y
+tay
+lda {c2},y
+sta {c1},x
+//FRAGMENT _deref_pwuc1=vbuc2
+lda #0
+sta {c1}+1
+lda #<{c2}
+sta {c1}
+//FRAGMENT qssz1=qssc1_plus_vwsz2
+lda #<{c1}
+clc
+adc {z2}
+sta {z1}
+lda #>{c1}
+adc {z2}+1
+sta {z1}+1 
+//FRAGMENT pssz1=_deref_qssz2
+ldy #0
+lda ({z2}),y
+sta {z1}
+iny
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuc1
+ldy #{c1}
+lda ({z2}),y
+ldy #0
+sta ({z1}),y
+//FRAGMENT qssz1=qssc1_plus_vwsz1
+lda #<{c1}
+clc
+adc {z1}
+sta {z1}
+lda #>{c1}
+adc {z1}+1
+sta {z1}+1 
+//FRAGMENT pssz1=_deref_qssz1
+ldy #0
+lda ({z1}),y
+pha
+iny
+lda ({z1}),y
+sta {z1}+1
+pla
+sta {z1}
+//FRAGMENT vwuz1=_deref_pbuz2_word__deref_pbuz3
+ldy #0
+lda ({z3}),y
+sta {z1}
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT 0_neq_vwuz1_then_la1
+lda {z1}
+ora {z1}+1
+bne {la1}
+//FRAGMENT _deref_pbuz1=_byte_vwsz2
+lda {z2}
+ldy #0
+sta ({z1}),y
+//FRAGMENT vbuz1=vbuxx_band_pbuz2_derefidx_vbuc1
+ldy #{c1}
+txa
+and ({z2}),y
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_band_pbuz1_derefidx_vbuc1
+ldy #{c1}
+txa
+and ({z1}),y
+//FRAGMENT vbuxx=vbuxx_band_pbuz1_derefidx_vbuc1
+ldy #{c1}
+lda ({z1}),y
+axs #0
+//FRAGMENT vbuyy=vbuxx_band_pbuz1_derefidx_vbuc1
+ldy #{c1}
+txa
+and ({z1}),y
+tay
+//FRAGMENT _deref_pbuc1_eq_vbuc2_then_la1
+lda #{c2}
+cmp {c1}
+beq {la1}
+//FRAGMENT vbuz1=vbuz2_ror_3
+lda {z2}
+lsr
+lsr
+lsr
+sta {z1}
+//FRAGMENT vbsz1=vbsz2_ror_1
+lda {z2}
+cmp #$80
+ror
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_ror_3
+lda {z1}
+lsr
+lsr
+lsr
+//FRAGMENT vbuxx=vbuz1_ror_3
+lda {z1}
+lsr
+lsr
+lsr
+tax
+//FRAGMENT vbuyy=vbuz1_ror_3
+lda {z1}
+lsr
+lsr
+lsr
+tay
+//FRAGMENT vbuz1=vbuxx_ror_3
+txa
+lsr
+lsr
+lsr
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_ror_3
+txa
+lsr
+lsr
+lsr
+//FRAGMENT vbuxx=vbuxx_ror_3
+txa
+lsr
+lsr
+lsr
+tax
+//FRAGMENT vbuyy=vbuxx_ror_3
+txa
+lsr
+lsr
+lsr
+tay
+//FRAGMENT vbuz1=vbuyy_ror_3
+tya
+lsr
+lsr
+lsr
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_ror_3
+tya
+lsr
+lsr
+lsr
+//FRAGMENT vbuxx=vbuyy_ror_3
+tya
+lsr
+lsr
+lsr
+tax
+//FRAGMENT vbuyy=vbuyy_ror_3
+tya
+lsr
+lsr
+lsr
+tay
+//FRAGMENT vbsaa=vbsz1_ror_1
+lda {z1}
+cmp #$80
+ror
+//FRAGMENT vbsxx=vbsz1_ror_1
+lda {z1}
+cmp #$80
+ror
+tax
+//FRAGMENT vbsyy=vbsz1_ror_1
+lda {z1}
+cmp #$80
+ror
+tay
+//FRAGMENT vbsz1=vbsaa_ror_1
+cmp #$80
+ror
+sta {z1}
+//FRAGMENT vbsaa=vbsaa_ror_1
+cmp #$80
+ror
+//FRAGMENT vbsxx=vbsaa_ror_1
+cmp #$80
+ror
+tax
+//FRAGMENT vbsyy=vbsaa_ror_1
+cmp #$80
+ror
+tay
+//FRAGMENT vbsz1=vbsxx_ror_1
+txa
+cmp #$80
+ror
+sta {z1}
+//FRAGMENT vbsaa=vbsxx_ror_1
+txa
+cmp #$80
+ror
+//FRAGMENT vbsxx=vbsxx_ror_1
+txa
+cmp #$80
+ror
+tax
+//FRAGMENT vbsyy=vbsxx_ror_1
+txa
+cmp #$80
+ror
+tay
+//FRAGMENT vbsz1=vbsyy_ror_1
+tya
+cmp #$80
+ror
+sta {z1}
+//FRAGMENT vbsaa=vbsyy_ror_1
+tya
+cmp #$80
+ror
+//FRAGMENT vbsxx=vbsyy_ror_1
+tya
+cmp #$80
+ror
+tax
+//FRAGMENT vbsyy=vbsyy_ror_1
+tya
+cmp #$80
+ror
+tay
+//FRAGMENT vbuz1=vbuz2_band_vbuz3
+lda {z2}
+and {z3}
+sta {z1}
+//FRAGMENT vbuz1=vbuaa_band_vbuz2
+and {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuxx_band_vbuz2
+lda {z2}
+sax {z1}
+//FRAGMENT vbuz1=vbuyy_band_vbuz2
+tya
+and {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuz2_band_vbuxx
+lda {z2}
+sax {z1}
+//FRAGMENT vbuz1=vbuaa_band_vbuxx
+sax {z1}
+//FRAGMENT vbuaa=vbuz1_band_vbuz2
+lda {z1}
+and {z2}
+//FRAGMENT vbuaa=vbuaa_band_vbuz1
+and {z1}
+//FRAGMENT vbuaa=vbuxx_band_vbuz1
+txa
+and {z1}
+//FRAGMENT vbuaa=vbuyy_band_vbuz1
+tya
+and {z1}
+//FRAGMENT vbuxx=vbuz1_band_vbuz2
+lda {z1}
+and {z2}
+tax
+//FRAGMENT vbuxx=vbuaa_band_vbuz1
+ldx {z1}
+axs #0
+//FRAGMENT vbuxx=vbuxx_band_vbuz1
+lda {z1}
+axs #0
+//FRAGMENT vbuxx=vbuyy_band_vbuz1
+ldx {z1}
+tya
+axs #0
+//FRAGMENT vbuyy=vbuz1_band_vbuz2
+lda {z1}
+and {z2}
+tay
+//FRAGMENT vbuyy=vbuaa_band_vbuz1
+and {z1}
+tay
+//FRAGMENT vbuyy=vbuxx_band_vbuz1
+txa
+and {z1}
+tay
+//FRAGMENT vbuyy=vbuyy_band_vbuz1
+tya
+and {z1}
+tay
+//FRAGMENT pbuc1_derefidx_vbuz1=vbum2
+lda {m2}
+ldy {z1}
+sta {c1},y
+//FRAGMENT vbum1=vbum1_plus_vbuz2
+lda {m1}
+clc
+adc {z2}
+sta {m1}
+//FRAGMENT pbuc1_derefidx_vbuaa=vbum1
+tay
+lda {m1}
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuxx=vbum1
+lda {m1}
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=vbum1
+lda {m1}
+sta {c1},y
+//FRAGMENT vbum1=vbum1_plus_vbuxx
+txa
+clc
+adc {m1}
+sta {m1}
+//FRAGMENT vbum1=vbum1_plus_vbuyy
+tya
+clc
+adc {m1}
+sta {m1}
+//FRAGMENT pbuc1_derefidx_vbuz1=_deref_pbuc2
+lda {c2}
+ldy {z1}
+sta {c1},y
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_plus_vbuz1
+lda {c1}
+clc
+adc {z1}
+sta {c1}
+//FRAGMENT pbuc1_derefidx_vbuaa=_deref_pbuc2
+tay
+lda {c2}
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuxx=_deref_pbuc2
+lda {c2}
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=_deref_pbuc2
+lda {c2}
+sta {c1},y
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_plus_vbuxx
+txa
+clc
+adc {c1}
+sta {c1}
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_plus_vbuyy
+tya
+clc
+adc {c1}
+sta {c1}
+//FRAGMENT pbum1=pbum1_plus_vbuc1
+lda #{c1}
+clc
+adc {m1}
+sta {m1}
+bcc !+
+inc {m1}+1
+!:
+//FRAGMENT vwsz1=vwsz1_plus_vbsz2
+lda {z2}
+pha
+clc
+adc {z1}
+sta {z1}
+pla
+ora #$7f
+bmi !+
+lda #0
+!:
+adc {z1}+1
+sta {z1}+1
+//FRAGMENT vwsz1=vwsz1_plus_vbsaa
+pha
+clc
+adc {z1}
+sta {z1}
+pla
+ora #$7f
+bmi !+
+lda #0
+!:
+adc {z1}+1
+sta {z1}+1
+//FRAGMENT vwsz1=vwsz1_plus_vbsxx
+txa
+pha
+clc
+adc {z1}
+sta {z1}
+pla
+ora #$7f
+bmi !+
+lda #0
+!:
+adc {z1}+1
+sta {z1}+1
+//FRAGMENT vwsz1=vwsz1_plus_vbsyy
+tya
+pha
+clc
+adc {z1}
+sta {z1}
+pla
+ora #$7f
+bmi !+
+lda #0
+!:
+adc {z1}+1
+sta {z1}+1
+//FRAGMENT pwsc1_derefidx_vbuz1_ge_vwsz2_then_la1
+ldy {z1}
+lda {c1},y
+cmp {z2}
+lda {c1}+1,y
+sbc {z2}+1
+bvc !+
+eor #$80
+!:
+bpl {la1}
+//FRAGMENT vbuz1=_lo_pwsc1_derefidx_vbuaa
+tay
+lda {c1},y
+sta {z1}
+//FRAGMENT vbuaa=_lo_pwsc1_derefidx_vbuaa
+tay
+lda {c1},y
+//FRAGMENT vbuxx=_lo_pwsc1_derefidx_vbuaa
+tax
+lda {c1},x
+tax
+//FRAGMENT vbuyy=_lo_pwsc1_derefidx_vbuaa
+tay
+lda {c1},y
+tay
+//FRAGMENT pwsc1_derefidx_vbuaa_ge_vwsz1_then_la1
+tay
+lda {c1},y
+cmp {z1}
+lda {c1}+1,y
+sbc {z1}+1
+bvc !+
+eor #$80
+!:
+bpl {la1}
+//FRAGMENT pwsc1_derefidx_vbuxx_ge_vwsz1_then_la1
+lda {c1},x
+cmp {z1}
+lda {c1}+1,x
+sbc {z1}+1
+bvc !+
+eor #$80
+!:
+bpl {la1}
+//FRAGMENT pwsc1_derefidx_vbuyy_ge_vwsz1_then_la1
+lda {c1},y
+cmp {z1}
+lda {c1}+1,y
+sbc {z1}+1
+bvc !+
+eor #$80
+!:
+bpl {la1}
+//FRAGMENT pbuz1_derefidx_vbuz2=vbuz2
+lda {z2}
+tay
+sta ({z1}),y
+//FRAGMENT pbuz1=pbuz2_minus_vbuc1
 sec
 lda {z2}
 sbc #{c1}
@@ -8561,25 +10877,646 @@ sta {z1}
 lda {z2}+1
 sbc #0
 sta {z1}+1
-//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuxx
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+clc
+adc {c2},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+clc
+adc {c2},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz1
+ldx {z1}
+lda {c1},x
+clc
+adc {c2},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+clc
+adc {c2},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuaa
+tay
+lda {c1},y
+clc
+adc {c2},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuaa
+tay
+lda {c1},y
+clc
+adc {c2},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuaa
+tax
+lda {c1},x
+clc
+adc {c2},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuaa
+tay
+lda {c1},y
+clc
+adc {c2},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c2},x
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c2},x
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c2},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c2},x
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuyy
+lda {c1},y
+clc
+adc {c2},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuyy
+lda {c1},y
+clc
+adc {c2},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuyy
+lda {c1},y
+clc
+adc {c2},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuyy
+lda {c1},y
+clc
+adc {c2},y
+tay
+//FRAGMENT _deref_pbuc1=_deref_(_deref_qbuc2)
+ldy {c2}
+sty $fe
+ldy {c2}+1
+sty $ff
+ldy #0
+lda ($fe),y
+sta {c1}
+//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuz1
+ldy {z1}
+lda {c2},y
+sta {c1}
+//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuaa
+tay
+lda {c2},y
+sta {c1}
+//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuxx
+lda {c2},x
+sta {c1}
+//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuyy
+lda {c2},y
+sta {c1}
+//FRAGMENT _deref_pwsz1=vwsc1
+ldy #0
+lda #<{c1}
+sta ({z1}),y
+iny
+lda #>{c1}
+sta ({z1}),y
+//FRAGMENT vwsz1=_deref_pwsz2_band_vwsc1
+ldy #0
+lda ({z2}),y
+and #<{c1}
+sta {z1}
+iny
+lda ({z2}),y
+and #>{c1}
+sta {z1}+1
+//FRAGMENT vbuz1=_hi__deref_pwsz2
+ldy #1
+lda ({z2}),y
+sta {z1}
+//FRAGMENT pwsz1=pwsz1_plus_vbuc1
+lda #{c1}
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vbuaa=_hi__deref_pwsz1
+ldy #1
+lda ({z1}),y
+//FRAGMENT vbuxx=_hi__deref_pwsz1
+ldy #1
+lda ({z1}),y
+tax
+//FRAGMENT vbuyy=_hi__deref_pwsz1
+ldy #1
+lda ({z1}),y
+tay
+//FRAGMENT pwuc1_derefidx_vbuaa=vbuc2
+tay
+lda #{c2}
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT _deref_pwuz1=vbuc1
+lda #{c1}
+ldy #0
+sta ({z1}),y
+tya
+iny
+sta ({z1}),y
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_plus_pwuc1_derefidx_vbuz3
+ldx {z2}
+ldy {z3}
+clc
+lda {c1},x
+adc {c1},y
+sta {z1}
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vbuaa=vbuz1_plus_2
+lda {z1}
+clc
+adc #2
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_plus_pwuc1_derefidx_vbuz2
+ldy {z2}
+clc
+lda {c1},x
+adc {c1},y
+sta {z1}
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_plus_pwuc1_derefidx_vbuz2
+ldx {z2}
+clc
+lda {c1},x
+adc {c1},y
+sta {z1}
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_plus_pwuc1_derefidx_vbuaa
+ldx {z2}
+tay
+clc
+lda {c1},x
+adc {c1},y
+sta {z1}
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_plus_pwuc1_derefidx_vbuaa
+tay
+clc
+lda {c1},x
+adc {c1},y
+sta {z1}
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_plus_pwuc1_derefidx_vbuaa
+tax
+clc
+lda {c1},x
+adc {c1},y
+sta {z1}
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_plus_pwuc1_derefidx_vbuxx
+ldy {z2}
+clc
+lda {c1},x
+adc {c1},y
+sta {z1}
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_plus_pwuc1_derefidx_vbuxx
 txa
 tay
 clc
-lda {z2}
-adc ({z3}),y
+lda {c1},x
+adc {c1},y
 sta {z1}
-bcc !+
-inc {z2}+1
-!:
-//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuyy
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_plus_pwuc1_derefidx_vbuxx
 clc
-lda {z2}
+lda {c1},x
+adc {c1},y
+sta {z1}
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_plus_pwuc1_derefidx_vbuyy
+ldx {z2}
+clc
+lda {c1},x
+adc {c1},y
+sta {z1}
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_plus_pwuc1_derefidx_vbuyy
+clc
+lda {c1},x
+adc {c1},y
+sta {z1}
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_plus_pwuc1_derefidx_vbuyy
+tya
+tax
+clc
+lda {c1},x
+adc {c1},y
+sta {z1}
+lda {c1}+1,x
+adc {c1}+1,y
+sta {z1}+1
+//FRAGMENT vbuz1=vbuyy_plus_2
+iny
+iny
+sty {z1}
+//FRAGMENT vbuz1=_deref_pbuz2_plus__deref_pbuz3
+ldy #0
+lda ({z2}),y
+clc
+ldy #0
 adc ({z3}),y
 sta {z1}
-bcc !+
-inc {z2}+1
-!:
-//FRAGMENT vwsz1=vwsz2_plus_vwsz1
+//FRAGMENT vbuaa=_deref_pbuz1_plus__deref_pbuz2
+ldy #0
+lda ({z1}),y
+clc
+ldy #0
+adc ({z2}),y
+//FRAGMENT vbuxx=_deref_pbuz1_plus__deref_pbuz2
+ldy #0
+lda ({z1}),y
+clc
+ldy #0
+adc ({z2}),y
+tax
+//FRAGMENT vbuyy=_deref_pbuz1_plus__deref_pbuz2
+ldy #0
+lda ({z1}),y
+clc
+ldy #0
+adc ({z2}),y
+tay
+//FRAGMENT vwuz1=_deref_pwuz2_plus__deref_pwuz3
+ldy #0
+clc
+lda ({z2}),y
+adc ({z3}),y
+sta {z1}
+iny
+lda ({z2}),y
+adc ({z3}),y
+sta {z1}+1
+//FRAGMENT vwuz1=_deref_pwuz2_plus__deref_pwuz1
+ldy #0
+clc
+lda ({z1}),y
+adc ({z2}),y
+pha
+iny
+lda ({z1}),y
+adc ({z2}),y
+sta {z1}+1
+pla
+sta {z1}
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+clc
+adc {c2},y
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz1_plus_vbuc2
+lda #{c2}
+ldy {z1}
+clc
+adc {c1},y
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuaa
+tax
+tay
+lda {c1},x
+clc
+adc {c2},x
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c2},x
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuyy
+lda {c1},y
+clc
+adc {c2},y
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_vbuc2
+lda #{c2}
+clc
+adc {c1},x
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuyy_plus_vbuc2
+lda #{c2}
+clc
+adc {c1},y
+sta {c1},y
+//FRAGMENT _deref_pbuz1=_deref_pbuz1_plus_pbuz1_derefidx_vbuc1
+ldy #0
+lda ({z1}),y
+ldy #{c1}
+clc
+adc ({z1}),y
+ldy #0
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuc1=pbuz1_derefidx_vbuc1_plus_vbuc2
+lda #{c2}
+ldy #{c1}
+clc
+adc ({z1}),y
+sta ({z1}),y
+//FRAGMENT vbuz1=_deref_pbuz2_ror_4
+ldy #0
+lda ({z2}),y
+lsr
+lsr
+lsr
+lsr
+sta {z1}
+//FRAGMENT vbuz1=_hi_pbuz2
+lda {z2}+1
+sta {z1}
+//FRAGMENT vbuaa=_deref_pbuz1_ror_4
+ldy #0
+lda ({z1}),y
+lsr
+lsr
+lsr
+lsr
+//FRAGMENT vbuxx=_deref_pbuz1_ror_4
+ldy #0
+lda ({z1}),y
+lsr
+lsr
+lsr
+lsr
+tax
+//FRAGMENT vbuyy=_deref_pbuz1_ror_4
+ldy #0
+lda ({z1}),y
+lsr
+lsr
+lsr
+lsr
+tay
+//FRAGMENT vbuaa=_hi_pbuz1
+lda {z1}+1
+//FRAGMENT vbuxx=_hi_pbuz1
+ldx {z1}+1
+//FRAGMENT vbuyy=_hi_pbuz1
+ldy {z1}+1
+//FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_plus_vwuc2
+ldy {z1}
+clc
+lda {c1},y
+adc #<{c2}
+sta {c1},y
+lda {c1}+1,y
+adc #>{c2}
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuaa=pwuc1_derefidx_vbuaa_plus_vwuc2
+tay
+clc
+lda {c1},y
+adc #<{c2}
+sta {c1},y
+lda {c1}+1,y
+adc #>{c2}
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_plus_vwuc2
+clc
+lda {c1},x
+adc #<{c2}
+sta {c1},x
+lda {c1}+1,x
+adc #>{c2}
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_plus_vwuc2
+clc
+lda {c1},y
+adc #<{c2}
+sta {c1},y
+lda {c1}+1,y
+adc #>{c2}
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuz1=vbuz2
+lda {z2}
+ldy {z1}
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuaa=vbuz1
+tay
+lda {z1}
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuxx=vbuz1
+lda {z1}
+sta {c1},x
+lda #0
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuyy=vbuz1
+lda {z1}
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuz1=vbuxx
+ldy {z1}
+txa
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuaa=vbuxx
+tay
+txa
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuxx=vbuxx
+txa
+sta {c1},x
+lda #0
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuyy=vbuxx
+txa
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuz1=vbuyy
+tya
+ldy {z1}
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuaa=vbuyy
+tax
+tya
+sta {c1},x
+lda #0
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuxx=vbuyy
+tya
+sta {c1},x
+lda #0
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuyy=vbuyy
+tya
+sta {c1},y
+lda #0
+sta {c1}+1,y
+//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3
+lda {z2}
+ldy {z3}
+and {c1},y
+sta {z1}
+//FRAGMENT vbuz1=vbuaa_ror_3
+lsr
+lsr
+lsr
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_ror_3
+lsr
+lsr
+lsr
+//FRAGMENT vbuxx=vbuaa_ror_3
+lsr
+lsr
+lsr
+tax
+//FRAGMENT vbuyy=vbuaa_ror_3
+lsr
+lsr
+lsr
+tay
+//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuxx
+lda {c1},x
+and {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuyy
+lda {c1},y
+and {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuz2
+lda {z1}
+ldy {z2}
+and {c1},y
+//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx
+lda {c1},x
+and {z1}
+//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuyy
+lda {c1},y
+and {z1}
+//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuz2
+lda {z1}
+ldx {z2}
+and {c1},x
+tax
+//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuxx
+lda {c1},x
+and {z1}
+tax
+//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuyy
+lda {c1},y
+and {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuz2
+lda {z1}
+ldy {z2}
+and {c1},y
+tay
+//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuxx
+lda {c1},x
+and {z1}
+tay
+//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuyy
+lda {c1},y
+and {z1}
+tay
+//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuz2
+ldy {z2}
+and {c1},y
+sta {z1}
+//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuxx
+and {c1},x
+sta {z1}
+//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuyy
+and {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1
+ldy {z1}
+and {c1},y
+//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx
+and {c1},x
+//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy
+and {c1},y
+//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuz1
+ldx {z1}
+and {c1},x
+tax
+//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuxx
+and {c1},x
+tax
+//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuyy
+ldx {c1},y
+axs #0
+//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sax {z1}
+//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuz2
+tya
+ldy {z2}
+and {c1},y
+sta {z1}
+//FRAGMENT vbuyy=vbuaa_band_pbuc1_derefidx_vbuyy
+and {c1},y
+tay
+//FRAGMENT vduz1=vduz2_plus_vwuz3
+lda {z2}
+clc
+adc {z3}
+sta {z1}
+lda {z2}+1
+adc {z3}+1
+sta {z1}+1
+lda {z2}+2
+adc #0
+sta {z1}+2
+lda {z2}+3
+adc #0
+sta {z1}+3
+//FRAGMENT vduz1=vduz1_plus_vwuz2
 lda {z1}
 clc
 adc {z2}
@@ -8587,28 +11524,754 @@ sta {z1}
 lda {z1}+1
 adc {z2}+1
 sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_minus_vbuc1
+lda {z1}+2
+adc #0
+sta {z1}+2
+lda {z1}+3
+adc #0
+sta {z1}+3
+//FRAGMENT _deref_(_deref_qbuc1)=vbuc2
+lda #{c2}
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+sta ($fe),y
+//FRAGMENT _deref_(_deref_qbuc1)=vbuz1
+lda {z1}
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+sta ($fe),y
+//FRAGMENT _deref_(_deref_qbuc1)=vbuaa
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+sta ($fe),y
+//FRAGMENT _deref_(_deref_qbuc1)=vbuxx
+txa
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+sta ($fe),y
+//FRAGMENT _deref_(_deref_qbuc1)=vbuyy
+tya
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+sta ($fe),y
+//FRAGMENT vbsz1_le_vbsc1_then_la1
+lda #{c1}
 sec
-lda {z1}
-sbc #{c1}
-sta {z1}
-bcs !+
-dec {z1}+1
+sbc {z1}
+bvc !+
+eor #$80
 !:
-//FRAGMENT vwsz1=vwsz1_plus_pbuz2_derefidx_vbuyy
-clc
+bpl {la1}
+//FRAGMENT vbsaa=vbsz1
 lda {z1}
+//FRAGMENT vbsaa_le_vbsc1_then_la1
+sec
+sbc #{c1}
+beq {la1}
+bvc !+
+eor #$80
+!:
+bmi {la1}
+//FRAGMENT vbsxx_le_vbsc1_then_la1
+txa
+sec
+sbc #{c1}
+beq {la1}
+bvc !+
+eor #$80
+!:
+bmi {la1}
+//FRAGMENT vbsyy_le_vbsc1_then_la1
+tya
+sec
+sbc #{c1}
+beq {la1}
+bvc !+
+eor #$80
+!:
+bmi {la1}
+//FRAGMENT vbsxx=vbsyy
+tya
+tax
+//FRAGMENT vbsyy_neq_vbsc1_then_la1
+cpy #{c1}
+bne {la1}
+//FRAGMENT vbuaa_gt_vbuz1_then_la1
+cmp {z1}
+beq !+
+bcs {la1}
+!:
+//FRAGMENT pbuz1=_dec_pbuz2
+lda {z2}
+sec
+sbc #1
+sta {z1}
+lda {z2}+1
+sbc #0
+sta {z1}+1
+//FRAGMENT vwsz1_lt_vbsc1_then_la1
+NO_SYNTHESIS
+//FRAGMENT vwsz1_lt_vwuc1_then_la1
+lda {z1}+1
+bmi {la1}
+cmp #>{c1}
+bcc {la1}
+bne !+
+lda {z1}
+cmp #<{c1}
+bcc {la1}
+!:
+//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vwuc2
+lda #<{c2}
+clc
+adc {c1}
+sta {c1}
+lda #>{c2}
+adc {c1}+1
+sta {c1}+1
+//FRAGMENT vbuz1=vbuz1_minus_1
+dec {z1}
+//FRAGMENT vbuxx=vbuxx_minus_1
+dex
+//FRAGMENT vbuyy=vbuyy_minus_1
+tya
+tay
+dey
+//FRAGMENT vwsz1=pwsc1_derefidx_vbuz2_plus__deref_pwsz3
+ldx {z2}
+clc
+ldy #0
+lda {c1},x
+adc ({z3}),y
+sta {z1}
+iny
+lda {c1}+1,x
+adc ({z3}),y
+sta {z1}+1
+//FRAGMENT vwsz1=pwsc1_derefidx_vbuaa_plus__deref_pwsz2
+tax
+clc
+ldy #0
+lda {c1},x
 adc ({z2}),y
 sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
+iny
+lda {c1}+1,x
+adc ({z2}),y
+sta {z1}+1
+//FRAGMENT vwsz1=pwsc1_derefidx_vbuxx_plus__deref_pwsz2
 clc
-adc {c1},y
+ldy #0
+lda {c1},x
+adc ({z2}),y
 sta {z1}
+iny
+lda {c1}+1,x
+adc ({z2}),y
+sta {z1}+1
+//FRAGMENT vwsz1=pwsc1_derefidx_vbuyy_plus__deref_pwsz2
+tya
+tax
+clc
+ldy #0
+lda {c1},x
+adc ({z2}),y
+sta {z1}
+iny
+lda {c1}+1,x
+adc ({z2}),y
+sta {z1}+1
+//FRAGMENT vwsz1=pwsc1_derefidx_vbuaa_plus__deref_pwsz1
+tax
+ldy #0
+clc
+lda {c1},x
+adc ({z1}),y
+pha
+iny
+lda {c1}+1,x
+adc ({z1}),y
+sta {z1}+1
+pla
+sta {z1}
+//FRAGMENT vwuz1_le_vwuz2_then_la1
+lda {z1}+1
+cmp {z2}+1
+bne !+
+lda {z1}
+cmp {z2}
+beq {la1}
+!:
+bcc {la1}
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuaa
+ldx {z1}
+tay
+lda ({z2}),y
+sta {c1},x
+//FRAGMENT pprz1=_deref_qprc1
+lda {c1}
+sta {z1}
+lda {c1}+1
+sta {z1}+1
+//FRAGMENT vbuz1_ge_vbuaa_then_la1
+ldy {z1}
+sta $ff
+cpy $ff
+bcs {la1}
+//FRAGMENT vbuz1_le_vbuaa_then_la1
+cmp {z1}
+bcs {la1}
+//FRAGMENT vbuaa_le_vbuz1_then_la1
+ldy {z1}
+sta $ff
+cpy $ff
+bcs {la1}
+//FRAGMENT vbuaa_le_vbuxx_then_la1
+tay
+sty $ff
+cpx $ff
+bcs  {la1}
+//FRAGMENT vbuaa_le_vbuyy_then_la1
+sta $ff
+cpy $ff
+bcs {la1}
+//FRAGMENT vbuxx_ge_vbuaa_then_la1
+tay
+sty $ff
+cpx $ff
+bcs  {la1}
+//FRAGMENT vbuxx_le_vbuaa_then_la1
+stx $ff
+cmp $ff
+bcs {la1}
+//FRAGMENT vbuxx_le_vbuyy_then_la1
+stx $ff
+cpy $ff
+bcs {la1}
+//FRAGMENT vbuyy_le_vbuz1_then_la1
+lda {z1}
+sty $ff
+cmp $ff
+bcs {la1}
+//FRAGMENT vbuyy_ge_vbuaa_then_la1
+sta $ff
+cpy $ff
+bcs {la1}
+//FRAGMENT vbuyy_le_vbuaa_then_la1
+sty $ff
+cmp $ff
+bcs {la1}
+//FRAGMENT vbuyy_le_vbuxx_then_la1
+sty $ff
+cpx $ff
+bcs  {la1}
+//FRAGMENT pwuc1_derefidx_vbuz1=pwuz2_derefidx_vbuc2
+ldx {z1}
+ldy #{c2}
+lda ({z2}),y
+sta {c1},x
+iny
+lda ({z2}),y
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuaa=pwuz1_derefidx_vbuc2
+ldy #{c2}
+tax
+lda ({z1}),y
+sta {c1},x
+iny
+lda ({z1}),y
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuxx=pwuz1_derefidx_vbuc2
+ldy #{c2}
+lda ({z1}),y
+sta {c1},x
+iny
+lda ({z1}),y
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuyy=pwuz1_derefidx_vbuc2
+tya
+ldy #{c2}
+tax
+lda ({z1}),y
+sta {c1},x
+iny
+lda ({z1}),y
+sta {c1}+1,x
+//FRAGMENT 0_eq_vwuz1_then_la1
+lda {z1}
+ora {z1}+1
+beq {la1}
+//FRAGMENT vbuz1=_dec_vbuz2
+ldy {z2}
+dey
+sty {z1}
+//FRAGMENT vbuz1=_dec_vbuaa
+sec
+sbc #1
+sta {z1}
+//FRAGMENT vbuz1=_dec_vbuxx
+dex
+stx {z1}
+//FRAGMENT vbuz1=_dec_vbuyy
+dey
+sty {z1}
+//FRAGMENT vbuaa=_dec_vbuz1
+lda {z1}
+sec
+sbc #1
+//FRAGMENT vbuaa=_dec_vbuxx
+txa
+sec
+sbc #1
+//FRAGMENT vbuyy=_dec_vbuz1
+ldy {z1}
+dey
+//FRAGMENT 0_neq_vbsz1_then_la1
+lda {z1}
+cmp #0
+bne {la1}
+//FRAGMENT 0_neq_vbsaa_then_la1
+cmp #0
+bne {la1}
+//FRAGMENT vbsaa=vbsc1
+lda #{c1}
+//FRAGMENT vbsaa=_inc_vbsaa
+clc
+adc #1
+//FRAGMENT 0_neq_vbsxx_then_la1
+cpx #0
+bne {la1}
+//FRAGMENT 0_neq_vbsyy_then_la1
+cpy #0
+bne {la1}
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz1_bor_vbuc2
+lda #{c2}
+ldy {z1}
+ora {c1},y
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_bor_vbuc2
+lda #{c2}
+ora {c1},x
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuyy_bor_vbuc2
+lda #{c2}
+ora {c1},y
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1
+lda #{c2}
+ldy {z1}
+cmp {c1},y
+bne {la1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_band_vbuc2
+lda #{c2}
+ldy {z2}
+and {c1},y
+sta {z1}
+//FRAGMENT pbuc1_derefidx_vbuaa_neq_vbuc2_then_la1
+tay
+lda #{c2}
+cmp {c1},y
+bne {la1}
+//FRAGMENT pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
+lda {c1},x
+cmp #{c2}
+bne {la1}
+//FRAGMENT pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1
+lda #{c2}
+cmp {c1},y
+bne {la1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_band_vbuc2
+lda #{c2}
+ldy {z1}
+and {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_band_vbuc2
+lda #{c2}
+ldx {z1}
+and {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_band_vbuc2
+lda #{c2}
+ldy {z1}
+and {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_band_vbuc2
+lda #{c2}
+and {c1},x
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_band_vbuc2
+lda #{c2}
+and {c1},x
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_band_vbuc2
+lda #{c2}
+and {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_band_vbuc2
+lda #{c2}
+and {c1},x
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_band_vbuc2
+lda #{c2}
+and {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_band_vbuc2
+lda #{c2}
+and {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_band_vbuc2
+lda #{c2}
+and {c1},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_band_vbuc2
+lda #{c2}
+and {c1},y
+tay
+//FRAGMENT vwuz1=vwuz1_sethi_vbuz2
+lda {z2}
+sta {z1}+1
+//FRAGMENT vbsz1_lt_0_then_la1
+lda {z1}
+bmi {la1}
+//FRAGMENT vwuz1=vwuz2_rol_vbuz3
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+ldy {z3}
+beq !e+
+!:
+asl {z1}
+rol {z1}+1
+dey
+bne !-
+!e:
+//FRAGMENT vwuz1=vwuz1_sethi_vbuaa
+sta {z1}+1
+//FRAGMENT vbsaa_lt_0_then_la1
+cmp #0
+bmi {la1}
+//FRAGMENT vwuz1=vwuz2_rol_vbuxx
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+cpx #0
+beq !e+
+!:
+asl {z1}
+rol {z1}+1
+dex
+bne !-
+!e:
+//FRAGMENT vwuz1=vwuz2_rol_vbuyy
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+cpy #0
+beq !e+
+!:
+asl {z1}
+rol {z1}+1
+dey
+bne !-
+!e:
+//FRAGMENT vbsz1=vbsyy
+sty {z1}
+//FRAGMENT vbsaa=vbsxx
+txa
+//FRAGMENT vbsaa=vbsyy
+tya
+//FRAGMENT vbsxx=vbsaa
+tax
+//FRAGMENT vbsyy=vbsaa
+tay
+//FRAGMENT vbsyy=vbsxx
+txa
+tay
+//FRAGMENT vwuz1=vwuz1_sethi_vbuxx
+stx {z1}+1
+//FRAGMENT vwuz1=vwuz1_sethi_vbuyy
+sty {z1}+1
+//FRAGMENT vbsyy_ge_0_then_la1
+cpy #0
+bpl {la1}
+//FRAGMENT vbsxx_lt_0_then_la1
+cpx #0
+bmi {la1}
+//FRAGMENT vbuz1=vbuc1_plus__hi_vwsz2
+lda #{c1}
+clc
+adc {z2}+1
+sta {z1}
+//FRAGMENT vwuz1=vwuz1_rol_vbuz2
+ldy {z2}
+beq !e+
+!:
+asl {z1}
+rol {z1}+1
+dey
+bne !-
+!e:
+//FRAGMENT vwuz1=_deref_pbuc1_word__deref_pbuc2
+lda {c2}
+sta {z1}
+lda {c1}
+sta {z1}+1
+//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuz3
+ldy {z3}
+lda ({z2}),y
+ldy #0
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuc1_then_la1
+ldy {z2}
+lda ({z1}),y
+
+cmp #{c1}
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuz2_neq_0_then_la1
+ldy {z2}
+lda ({z1}),y
+
+cmp #0
+bne {la1}
+//FRAGMENT vwuz1=vbuz2_rol_3
+lda {z2}
+sta {z1}
+lda #0
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuxx
+txa
+tay
+lda ({z2}),y
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuyy
+lda ({z2}),y
+ldy #0
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuc1_then_la1
+txa
+tay
+lda ({z1}),y
+
+cmp #{c1}
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuxx_neq_0_then_la1
+txa
+tay
+lda ({z1}),y
+
+cmp #0
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuyy_neq_0_then_la1
+lda ({z1}),y
+
+cmp #0
+bne {la1}
+//FRAGMENT vwuz1=vbuaa_rol_3
+sta {z1}
+lda #0
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT vwuz1=vbuxx_rol_3
+txa
+sta {z1}
+lda #0
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT vwuz1=vbuyy_rol_3
+tya
+sta {z1}
+lda #0
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT vwuz1=_dec_vwuz1
+lda {z1}
+bne !+
+dec {z1}+1
+!:
+dec {z1}
+//FRAGMENT vbuz1=vbuz2_minus__deref_pbuz3
+lda {z2}
+sec
+ldy #0
+sbc ({z3}),y
+sta {z1}
+//FRAGMENT vbuz1=vbuxx_minus__deref_pbuz2
+txa
+sec
+ldy #0
+sbc ({z2}),y
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_minus__deref_pbuz2
+lda {z1}
+sec
+ldy #0
+sbc ({z2}),y
+//FRAGMENT vbuaa=vbuxx_minus__deref_pbuz1
+txa
+sec
+ldy #0
+sbc ({z1}),y
+//FRAGMENT vbuxx=vbuz1_minus__deref_pbuz2
+lda {z1}
+sec
+ldy #0
+sbc ({z2}),y
+tax
+//FRAGMENT vbuxx=vbuxx_minus__deref_pbuz1
+txa
+sec
+ldy #0
+sbc ({z1}),y
+tax
+//FRAGMENT vbuyy=vbuz1_minus__deref_pbuz2
+lda {z1}
+sec
+ldy #0
+sbc ({z2}),y
+tay
+//FRAGMENT vbuyy=vbuxx_minus__deref_pbuz1
+txa
+sec
+ldy #0
+sbc ({z1}),y
+tay
+//FRAGMENT vwuz1=pwuz2_minus_pwuc1
+lda {z2}
+sec
+sbc #<{c1}
+sta {z1}
+lda {z2}+1
+sbc #>{c1}
+sta {z1}+1
+//FRAGMENT vwuz1=pwuz1_minus_pwuc1
+lda {z1}
+sec
+sbc #<{c1}
+sta {z1}
+lda {z1}+1
+sbc #>{c1}
+sta {z1}+1
+//FRAGMENT vbuz1=_lo_pbuz2
+lda {z2}
+sta {z1}
+//FRAGMENT vwuz1_eq_0_then_la1
+lda {z1}
+ora {z1}+1
+beq {la1}
+//FRAGMENT vwuz1_gt_vwuz2_then_la1
+lda {z2}+1
+cmp {z1}+1
+bcc {la1}
+bne !+
+lda {z2}
+cmp {z1}
+bcc {la1}
+!:
+//FRAGMENT vwuz1_neq_vwuz2_then_la1
+lda {z1}+1
+cmp {z2}+1
+bne {la1}
+lda {z1}
+cmp {z2}
+bne {la1}
+//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sta {z1}+1
+lda {c2},y
+sta {z1}
+//FRAGMENT vwuz1=vwuz2_band_vwuc1
+lda {z2}
+and #<{c1}
+sta {z1}
+lda {z2}+1
+and #>{c1}
+sta {z1}+1
+//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
+ldy #0
+lda ({z1}),y
+ldy {z2}
+ora {c1},y
+ldy #0
+sta ({z1}),y
+//FRAGMENT vbuaa=_lo_pbuz1
+lda {z1}
+//FRAGMENT vbuxx=_lo_pbuz1
+ldx {z1}
+//FRAGMENT vbuz1=vbuaa_bor_vbuaa
+sta {z1}
+//FRAGMENT vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa
+tay
+lda {c1},y
+sta {z1}+1
+lda {c2},y
+sta {z1}
+//FRAGMENT vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
+lda {c1},x
+sta {z1}+1
+lda {c2},x
+sta {z1}
+//FRAGMENT vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy
+lda {c1},y
+sta {z1}+1
+lda {c2},y
+sta {z1}
+//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+ldy #0
+ora ({z1}),y
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
+lda {c1},x
+ldy #0
+ora ({z1}),y
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy
+lda {c1},y
+ldy #0
+ora ({z1}),y
+ldy #0
+sta ({z1}),y
 //FRAGMENT vbuz1=pbuz2_derefidx_vbuc1_plus_pbuz2_derefidx_vbuc1
 ldy #{c1}
 lda ({z2}),y
@@ -8621,17 +12284,6 @@ ldy #{c1}
 clc
 adc ({z3}),y
 sta {z1}
-//FRAGMENT vbuz1=vbuz2_ror_2
-lda {z2}
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-clc
-adc {c1},y
-tay
 //FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuaa
 tay
 lda {c1},y
@@ -8644,26 +12296,6 @@ tya
 clc
 adc {c1},x
 tay
-//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {z1}
-sta {z1}
-//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuxx
-tya
-clc
-adc {c1},x
-tay
-//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-clc
-adc {z1}
-sta {z1}
-//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuyy
-tya
-clc
-adc {c1},y
-tay
 //FRAGMENT vbuaa=pbuz1_derefidx_vbuc1_plus_pbuz1_derefidx_vbuc1
 ldy #{c1}
 lda ({z1}),y
@@ -8763,150 +12395,6 @@ ldy #{c1}
 clc
 adc ({z1}),y
 tay
-//FRAGMENT vbuz1=vbuaa_ror_2
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_ror_2
-txa
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_ror_2
-tya
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_ror_2
-lda {z1}
-lsr
-lsr
-//FRAGMENT vbuaa=vbuaa_ror_2
-lsr
-lsr
-//FRAGMENT vbuaa=vbuxx_ror_2
-txa
-lsr
-lsr
-//FRAGMENT vbuaa=vbuyy_ror_2
-tya
-lsr
-lsr
-//FRAGMENT vbuxx=vbuz1_ror_2
-lda {z1}
-lsr
-lsr
-tax
-//FRAGMENT vbuxx=vbuaa_ror_2
-lsr
-lsr
-tax
-//FRAGMENT vbuxx=vbuxx_ror_2
-txa
-lsr
-lsr
-tax
-//FRAGMENT vbuxx=vbuyy_ror_2
-tya
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=vbuz1_ror_2
-lda {z1}
-lsr
-lsr
-tay
-//FRAGMENT vbuyy=vbuaa_ror_2
-lsr
-lsr
-tay
-//FRAGMENT vbuyy=vbuxx_ror_2
-txa
-lsr
-lsr
-tay
-//FRAGMENT vbuyy=vbuyy_ror_2
-tya
-lsr
-lsr
-tay
-//FRAGMENT vwuz1=vbuz2_word_vbuz3
-lda {z2}
-sta {z1}+1
-lda {z3}
-sta {z1}
-//FRAGMENT vwuz1=vbuaa_word_vbuz2
-sta {z1}+1
-lda {z2}
-sta {z1}
-//FRAGMENT vwuz1=vbuxx_word_vbuz2
-lda {z2}
-stx {z1}+1
-sta {z1}
-//FRAGMENT vwuz1=vbuyy_word_vbuz2
-lda {z2}
-sty {z1}+1
-sta {z1}
-//FRAGMENT vwuz1=vbuz2_word_vbuaa
-ldy {z2}
-sty {z1}+1
-sta {z1}
-//FRAGMENT vwuz1=vbuxx_word_vbuaa
-stx {z1}+1
-sta {z1}
-//FRAGMENT vwuz1=vbuyy_word_vbuaa
-sty {z1}+1
-sta {z1}
-//FRAGMENT vwuz1=vbuz2_word_vbuxx
-lda {z2}
-sta {z1}+1
-stx {z1}
-//FRAGMENT vwuz1=vbuaa_word_vbuxx
-sta {z1}+1
-stx {z1}
-//FRAGMENT vwuz1=vbuyy_word_vbuxx
-sty {z1}+1
-stx {z1}
-//FRAGMENT vwuz1=vbuz2_word_vbuyy
-lda {z2}
-sta {z1}+1
-sty {z1}
-//FRAGMENT vwuz1=vbuaa_word_vbuyy
-sta {z1}+1
-sty {z1}
-//FRAGMENT vwuz1=vbuxx_word_vbuyy
-stx {z1}+1
-sty {z1}
-//FRAGMENT _deref_qbuc1=pbuc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
-//FRAGMENT _deref_pbsc1=vbsc2
-lda #{c2}
-sta {c1}
-//FRAGMENT vbuz1=_dec_vbuz2
-ldy {z2}
-dey
-sty {z1}
-//FRAGMENT vbuz1=_dec_vbuaa
-sec
-sbc #1
-sta {z1}
-//FRAGMENT vbuz1=_dec_vbuxx
-dex
-stx {z1}
-//FRAGMENT vbuz1=_dec_vbuyy
-dey
-sty {z1}
-//FRAGMENT vbuaa=_dec_vbuz1
-lda {z1}
-sec
-sbc #1
-//FRAGMENT vbuaa=_dec_vbuxx
-txa
-sec
-sbc #1
 //FRAGMENT vbuaa=_dec_vbuyy
 tya
 sec
@@ -8921,9 +12409,6 @@ dex
 tya
 tax
 dex
-//FRAGMENT vbuyy=_dec_vbuz1
-ldy {z1}
-dey
 //FRAGMENT vbuyy=_dec_vbuaa
 tay
 dey
@@ -8931,92 +12416,6 @@ dey
 txa
 tay
 dey
-//FRAGMENT vwuz1=vwuz2_bor_vbuz3
-lda {z3}
-ora {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_4
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuz2
-ldy {z2}
-lda {c2},y
-ldy #{c1}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2_eq_pbuz3_derefidx_vbuz2_then_la1
-ldy {z2}
-lda ({z1}),y
-
-cmp ({z3}),y
-beq {la1}
-//FRAGMENT vwuz1=vwuz2_bor_vbuxx
-txa
-ora {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_bor_vbuyy
-tya
-ora {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuaa
-tay
-lda {c2},y
-ldy #{c1}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuxx
-lda {c2},x
-ldy #{c1}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuyy
-lda {c2},y
-ldy #{c1}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa_eq_pbuz2_derefidx_vbuaa_then_la1
-tay
-lda ({z1}),y
-
-cmp ({z2}),y
-beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuxx_eq_pbuz2_derefidx_vbuxx_then_la1
-txa
-tay
-lda ({z1}),y
-
-cmp ({z2}),y
-beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_eq_pbuz2_derefidx_vbuyy_then_la1
-lda ({z1}),y
-
-cmp ({z2}),y
-beq {la1}
-//FRAGMENT vwuz1=vwuz1_bor_vbuxx
-txa
-ora {z1}
-sta {z1}
-//FRAGMENT vwuz1=vwuz1_rol_4
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
 //FRAGMENT vbuz1_ge_pbuc1_derefidx_vbuz2_then_la1
 lda {z1}
 ldy {z2}
@@ -9062,11 +12461,6 @@ bne {la1}
 lda {z1}
 cmp {z1}
 bne {la1}
-//FRAGMENT vbuz1_ge_vbuaa_then_la1
-ldy {z1}
-sta $ff
-cpy $ff
-bcs {la1}
 //FRAGMENT vbuz1_ge_pbuc1_derefidx_vbuxx_then_la1
 txa
 tay
@@ -9317,269 +12711,6 @@ tax
 stx $ff
 cpy $ff
 bne {la1}
-//FRAGMENT pwuz1_derefidx_vbuc1=vwuz2
-ldy #{c1}
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT vbuz1=vbuz2_plus_2
-lda {z2}
-clc
-adc #2
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_plus_2
-clc
-adc #2
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_plus_2
-inx
-inx
-stx {z1}
-//FRAGMENT vbuxx=vbuz1_plus_2
-ldx {z1}
-inx
-inx
-//FRAGMENT vbuyy=vbuz1_plus_2
-ldy {z1}
-iny
-iny
-//FRAGMENT vbuxx=vbuaa_plus_2
-tax
-inx
-inx
-//FRAGMENT vbuxx=vbuyy_plus_2
-tya
-clc
-adc #2
-tax
-//FRAGMENT vbsz1_lt_vbsc1_then_la1
-lda {z1}
-sec
-sbc #{c1}
-bvc !+
-eor #$80
-!:
-bmi {la1}
-//FRAGMENT vbsaa_lt_vbsc1_then_la1
-sec
-sbc #{c1}
-bvc !+
-eor #$80
-!:
-bmi {la1}
-//FRAGMENT vbsxx_lt_vbsc1_then_la1
-txa
-sec
-sbc #{c1}
-bvc !+
-eor #$80
-!:
-bmi {la1}
-//FRAGMENT vbsyy_lt_vbsc1_then_la1
-tya
-sec
-sbc #{c1}
-bvc !+
-eor #$80
-!:
-bmi {la1}
-//FRAGMENT vwsz1=vwsz1_plus_vwsc1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz2_ror_7
-lda {z2}+1
-sta {z1}
-and #$80
-beq !+
-lda #$ff
-!:
-sta {z1}+1
-lda {z2}
-rol
-rol {z1}
-rol {z1}+1
-//FRAGMENT vwsz1=vwsz2_plus_vwsc1
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz2_ror_5
-lda {z2}
-sta $ff
-lda {z2}+1
-sta {z1}
-lda #0
-bit {z2}+1
-bpl !+
-lda #$ff
-!:
-sta {z1}+1
-rol $ff
-rol {z1}
-rol {z1}+1
-rol $ff
-rol {z1}
-rol {z1}+1
-rol $ff
-rol {z1}
-rol {z1}+1
-//FRAGMENT _deref_pbuc1=_byte_vwsz1
-lda {z1}
-sta {c1}
-//FRAGMENT vwsz1=vwsc1_minus_vwsz1
-lda #<{c1}
-sec
-sbc {z1}
-sta {z1}
-lda #>{c1}
-sbc {z1}+1
-sta {z1}+1
-//FRAGMENT _deref_pbsc1=vbsz1
-lda {z1}
-sta {c1}
-//FRAGMENT pwuc1_derefidx_vbuz1=_word_vbuz2
-lda {z2}
-ldy {z1}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuaa=_word_vbuz1
-tay
-lda {z1}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuxx=_word_vbuz1
-lda {z1}
-sta {c1},x
-lda #0
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=_word_vbuz1
-lda {z1}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuz1=_word_vbuxx
-ldy {z1}
-txa
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuaa=_word_vbuxx
-tay
-txa
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuxx=_word_vbuxx
-txa
-sta {c1},x
-lda #0
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=_word_vbuxx
-txa
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuz1=_word_vbuyy
-tya
-ldy {z1}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuaa=_word_vbuyy
-tax
-tya
-sta {c1},x
-lda #0
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuxx=_word_vbuyy
-tya
-sta {c1},x
-lda #0
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=_word_vbuyy
-tya
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1
-lda #{c2}
-ldy {z1}
-cmp {c1},y
-bne {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_band_vbuc2
-lda #{c2}
-ldy {z2}
-and {c1},y
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuaa_neq_vbuc2_then_la1
-tay
-lda #{c2}
-cmp {c1},y
-bne {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
-lda {c1},x
-cmp #{c2}
-bne {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1
-lda #{c2}
-cmp {c1},y
-bne {la1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_band_vbuc2
-lda #{c2}
-ldy {z1}
-and {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_band_vbuc2
-lda #{c2}
-ldx {z1}
-and {c1},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_band_vbuc2
-lda #{c2}
-ldy {z1}
-and {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_band_vbuc2
-lda #{c2}
-and {c1},x
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_band_vbuc2
-lda #{c2}
-and {c1},x
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_band_vbuc2
-lda #{c2}
-and {c1},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_band_vbuc2
-lda #{c2}
-and {c1},x
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_band_vbuc2
-lda #{c2}
-and {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_band_vbuc2
-lda #{c2}
-and {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_band_vbuc2
-lda #{c2}
-and {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_band_vbuc2
-lda #{c2}
-and {c1},y
-tay
 //FRAGMENT vwuz1=pbuc1_derefidx_vbuz2
 ldy {z2}
 lda {c1},y
@@ -9602,41 +12733,6 @@ lda {c1},y
 sta {z1}
 lda #0
 sta {z1}+1
-//FRAGMENT _deref_pbuc1=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-sta {c1}
-//FRAGMENT vwuz1=pbuc1_minus_pbuz2
-sec
-lda #<{c1}
-sbc {z2}
-sta {z1}
-lda #>{c1}
-sbc {z2}+1
-sta {z1}+1 
-//FRAGMENT vwuz1=pbuc1_minus_pbuz1
-sec
-lda #<{c1}
-sbc {z1}
-sta {z1}
-lda #>{c1}
-sbc {z1}+1
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuaa=_deref_pbuz1
-tax
-ldy #0
-lda ({z1}),y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuxx=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=_deref_pbuz1
-tya
-tax
-ldy #0
-lda ({z1}),y
-sta {c1},x
 //FRAGMENT vbsz1=pbsc1_derefidx_vbuz2
 ldy {z2}
 lda {c1},y
@@ -9653,6 +12749,11 @@ lda {z2}
 clc
 adc {z3}
 sta {z1}
+//FRAGMENT vbsz1=vbsz2_minus_vbsz3
+lda {z2}
+sec
+sbc {z3}
+sta {z1}
 //FRAGMENT vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3
 ldy {z2}
 lda {c1},y
@@ -9888,26 +12989,11 @@ txa
 sty $ff
 clc
 adc $ff
-//FRAGMENT vbsxx=vbsxx_plus_vbsz1
-txa
-clc
-adc {z1}
-tax
 //FRAGMENT vbsxx=vbsxx_plus_vbsaa
 stx $ff
 clc
 adc $ff
 tax
-//FRAGMENT vbsxx=vbsxx_plus_vbsxx
-txa
-asl
-tax
-//FRAGMENT vbsxx=vbsxx_plus_vbsyy
-txa
-sty $ff
-clc
-adc $ff
-tax
 //FRAGMENT vbsyy=vbsxx_plus_vbsz1
 txa
 clc
@@ -9984,26 +13070,23 @@ tax
 tya
 asl
 tax
-//FRAGMENT vbsyy=vbsyy_plus_vbsz1
-tya
-clc
-adc {z1}
-tay
 //FRAGMENT vbsyy=vbsyy_plus_vbsaa
 sty $ff
 clc
 adc $ff
 tay
-//FRAGMENT vbsyy=vbsyy_plus_vbsxx
+//FRAGMENT vbsz1=vbsz2_minus_vbsxx
 txa
-sty $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbsyy=vbsyy_plus_vbsyy
+eor #$ff
+sec
+adc {z2}
+sta {z1}
+//FRAGMENT vbsz1=vbsz2_minus_vbsyy
 tya
-asl
-tay
+eor #$ff
+sec
+adc {z2}
+sta {z1}
 //FRAGMENT vbsaa=vbsz1_minus_vbsz2
 lda {z1}
 sec
@@ -10018,6 +13101,23 @@ tya
 eor #$ff
 sec
 adc {z1}
+//FRAGMENT vbsxx=vbsz1_minus_vbsz2
+lda {z1}
+sec
+sbc {z2}
+tax
+//FRAGMENT vbsxx=vbsz1_minus_vbsxx
+txa
+eor #$ff
+sec
+adc {z1}
+tax
+//FRAGMENT vbsxx=vbsz1_minus_vbsyy
+tya
+eor #$ff
+sec
+adc {z1}
+tax
 //FRAGMENT vbsyy=vbsz1_minus_vbsz2
 lda {z1}
 sec
@@ -10035,6 +13135,20 @@ eor #$ff
 sec
 adc {z1}
 tay
+//FRAGMENT vbsz1=vbsxx_minus_vbsz2
+txa
+sec
+sbc {z2}
+sta {z1}
+//FRAGMENT vbsz1=vbsxx_minus_vbsxx
+lda #0
+sta {z1}
+//FRAGMENT vbsz1=vbsxx_minus_vbsyy
+txa
+sty $ff
+sec
+sbc $ff
+sta {z1}
 //FRAGMENT vbsaa=vbsxx_minus_vbsz1
 txa
 sec
@@ -10060,6 +13174,20 @@ sty $ff
 sec
 sbc $ff
 tay
+//FRAGMENT vbsz1=vbsyy_minus_vbsz2
+tya
+sec
+sbc {z2}
+sta {z1}
+//FRAGMENT vbsz1=vbsyy_minus_vbsxx
+tya
+stx $ff
+sec
+sbc $ff
+sta {z1}
+//FRAGMENT vbsz1=vbsyy_minus_vbsyy
+lda #0
+sta {z1}
 //FRAGMENT vbsaa=vbsyy_minus_vbsz1
 tya
 sec
@@ -10071,20 +13199,20 @@ sec
 sbc $ff
 //FRAGMENT vbsaa=vbsyy_minus_vbsyy
 lda #0
-//FRAGMENT vbsyy=vbsyy_minus_vbsz1
+//FRAGMENT vbsxx=vbsyy_minus_vbsz1
 tya
 sec
 sbc {z1}
-tay
-//FRAGMENT vbsyy=vbsyy_minus_vbsxx
+tax
+//FRAGMENT vbsxx=vbsyy_minus_vbsxx
 tya
 stx $ff
 sec
 sbc $ff
-tay
-//FRAGMENT vbsyy=vbsyy_minus_vbsyy
+tax
+//FRAGMENT vbsxx=vbsyy_minus_vbsyy
 lda #0
-tay
+tax
 //FRAGMENT vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2
 ldy {z1}
 lda {c1},y
@@ -10953,33 +14081,6 @@ ldy {c1}
 stx {c1}
 //FRAGMENT _deref_pbsc1=vbsyy
 sty {c1}
-//FRAGMENT pbuz1=pbuz1_plus_1
-inc {z1}
-bne !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuc1
-ldy #{c1}
-lda ({z2}),y
-sta {z1}
-//FRAGMENT pbuz1_derefidx_vbuc1=vbuaa
-ldy #{c1}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuc1=vbuyy
-tya
-ldy #{c1}
-sta ({z1}),y
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-tay
 //FRAGMENT vwuz1=vwuc1_plus_vbuz2
 lda {z2}
 clc
@@ -11016,14 +14117,6 @@ sta {z1}
 iny
 lda ({z2}),y
 sta {z1}+1
-//FRAGMENT vbuz1=vbuz2_band__deref_pbuc1
-lda {c1}
-and {z2}
-sta {z1}
-//FRAGMENT vbuz1=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-sta {z1}
 //FRAGMENT vwuz1=vwuc1_plus_vbuaa
 clc
 adc #<{c1}
@@ -11047,1276 +14140,18 @@ sta {z1}
 lda #>{c1}
 adc #0
 sta {z1}+1
-//FRAGMENT vbuaa=vbuz1_band__deref_pbuc1
-lda {c1}
-and {z1}
-//FRAGMENT vbuxx=vbuz1_band__deref_pbuc1
-lda {c1}
-and {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_band__deref_pbuc1
-lda {c1}
-and {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_band__deref_pbuc1
-and {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_band__deref_pbuc1
-and {c1}
-//FRAGMENT vbuxx=vbuaa_band__deref_pbuc1
-ldx {c1}
-axs #0
-//FRAGMENT vbuaa=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-//FRAGMENT vbuxx=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-tax
-//FRAGMENT vbuyy=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-tay
-//FRAGMENT vbuz1=vbuxx_band__deref_pbuc1
-lda {c1}
-sax {z1}
-//FRAGMENT vbuz1=vbuyy_band__deref_pbuc1
-tya
-and {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_band__deref_pbuc1
-txa
-and {c1}
-//FRAGMENT vbuaa=vbuyy_band__deref_pbuc1
-tya
-and {c1}
-//FRAGMENT vbuxx=vbuxx_band__deref_pbuc1
-lda {c1}
-axs #0
-//FRAGMENT vbuxx=vbuyy_band__deref_pbuc1
-ldx {c1}
-tya
-axs #0
-//FRAGMENT vbuyy=vbuaa_band__deref_pbuc1
-and {c1}
-tay
-//FRAGMENT vbuyy=vbuxx_band__deref_pbuc1
-txa
-and {c1}
-tay
-//FRAGMENT vbuyy=vbuyy_band__deref_pbuc1
-tya
-and {c1}
-tay
-//FRAGMENT vwsz1_neq_vbsc1_then_la1
-NO_SYNTHESIS
-//FRAGMENT vwsz1_neq_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT _deref_pbuc1_lt_vbuc2_then_la1
-lda {c1}
-cmp #{c2}
-bcc {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1=_byte_vwuz2
-ldy {z1}
+//FRAGMENT vbsz1=_sbyte_vwuz2
 lda {z2}
-sta {c1},y
-//FRAGMENT vwuz1=vwuz2_ror_4
-lda {z2}+1
-lsr
-sta {z1}+1
-lda {z2}
-ror
 sta {z1}
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-//FRAGMENT vwuz1=vwuz2_ror_8
-lda {z2}+1
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1_ge_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bcc !+
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bcs {la1}
-!:
-//FRAGMENT vwuz1_ge_vbuc1_then_la1
-lda {z1}+1
-bne {la1}
-lda {z1}
-cmp #{c1}
-bcs {la1}
-!:
-//FRAGMENT pbuc1_derefidx_vbuxx=_byte_vwuz1
-lda {z1}
-sta {c1},x
-//FRAGMENT vwuz1=vwuz1_plus_1
-inc {z1}
-bne !+
-inc {z1}+1
-!:
-//FRAGMENT vwuz1=vwuz1_rol_8
-lda {z1}
-sta {z1}+1
-lda #0
-sta {z1}
-//FRAGMENT vwuz1=vwuz1_ror_4
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-//FRAGMENT pwsc1_derefidx_vbuz1=vwsc2
-ldy {z1}
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
-//FRAGMENT _deref_pwsc1=_deref_pwsc2
-lda {c2}
-sta {c1}
-lda {c2}+1
-sta {c1}+1
-//FRAGMENT pwsc1_derefidx_vbuaa=vwsc2
-tay
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
-//FRAGMENT pwsc1_derefidx_vbuxx=vwsc2
-lda #<{c2}
-sta {c1},x
-lda #>{c2}
-sta {c1}+1,x
-//FRAGMENT pwsc1_derefidx_vbuyy=vwsc2
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
-//FRAGMENT _deref_pbuc1=_byte_vwuz1
-lda {z1}
-sta {c1}
-//FRAGMENT vbuz1_eq__deref_pbuc1_then_la1
-lda {c1}
-cmp {z1}
-beq {la1}
-//FRAGMENT _deref_pbuc1_eq_0_then_la1
-lda {c1}
-cmp #0
-beq {la1}
-//FRAGMENT vbuz1=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-sta {z1}
-//FRAGMENT vbuz1=_deref_pbuc1_rol_4
-lda {c1}
-asl
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_bor__deref_pbuc1
-lda {c1}
-ora {z2}
-sta {z1}
-//FRAGMENT vduz1=vduz2_plus_vbuz3
-lda {z3}
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz2_ror_6
-lda {z2}
-asl
-sta $ff
-lda {z2}+1
-rol
-sta {z1}
-lda #0
-rol
-sta {z1}+1
-asl $ff
-rol {z1}
-rol {z1}+1
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuz3)
-ldx {z3}
-ldy {c2},x
-lda {c1},y
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1
-ldx {z1}
-dec {c1},x
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
-ldx {z2}
-ldy {c2},x
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuc1_derefidx_vbuz1_le_pbuc2_derefidx_vbuz1_then_la1
-ldy {z1}
-lda {c2},y
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuz1=_deref_pbuz2_bor_vbuc1
-lda #{c1}
-ldy #0
-ora ({z2}),y
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuz1
-ldy {z1}
-lda ({z2}),y
-sta {c1},y
-//FRAGMENT vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3
-lda {z2}
-ldy {z3}
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3
-lda {z2}
-ldy {z3}
-and {c1},y
-sta {z1}
-//FRAGMENT vduz1=vduz2_rol_2
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-lda {z2}+2
-rol
-sta {z1}+2
-lda {z2}+3
-rol
-sta {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vwuz1=vwuc1_plus_vwuz2
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz2_ror_3
-lda {z2}
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuxx_eq__deref_pbuc1_then_la1
-cpx {c1}
-beq {la1}
-//FRAGMENT vbuxx=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-tax
-//FRAGMENT vbuyy=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-tay
-//FRAGMENT vbuaa=_deref_pbuc1_rol_4
-lda {c1}
-asl
-asl
-asl
-asl
-//FRAGMENT vbuxx=_deref_pbuc1_rol_4
-lda {c1}
-asl
-asl
-asl
-asl
-tax
-//FRAGMENT vbuyy=_deref_pbuc1_rol_4
-lda {c1}
-asl
-asl
-asl
-asl
-tay
-//FRAGMENT vbuaa=vbuz1_bor__deref_pbuc1
-lda {c1}
-ora {z1}
-//FRAGMENT vbuxx=vbuz1_bor__deref_pbuc1
-lda {c1}
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bor__deref_pbuc1
-lda {c1}
-ora {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_bor__deref_pbuc1
-ora {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bor__deref_pbuc1
-ora {c1}
-//FRAGMENT vbuxx=vbuaa_bor__deref_pbuc1
-ora {c1}
-tax
-//FRAGMENT vbuyy=vbuaa_bor__deref_pbuc1
-ora {c1}
-tay
-//FRAGMENT vbuz1=vbuxx_bor__deref_pbuc1
-txa
-ora {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bor__deref_pbuc1
-txa
-ora {c1}
-//FRAGMENT vbuxx=vbuxx_bor__deref_pbuc1
-txa
-ora {c1}
-tax
-//FRAGMENT vbuyy=vbuxx_bor__deref_pbuc1
-txa
-ora {c1}
-tay
-//FRAGMENT vbuz1=vbuyy_bor__deref_pbuc1
-tya
-ora {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bor__deref_pbuc1
-tya
-ora {c1}
-//FRAGMENT vbuxx=vbuyy_bor__deref_pbuc1
-tya
-ora {c1}
-tax
-//FRAGMENT vbuyy=vbuyy_bor__deref_pbuc1
-tya
-ora {c1}
-tay
-//FRAGMENT vduz1=vduz2_plus_vbuxx
-txa
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vbuyy
-tya
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
-tax
-ldy {c2},x
-lda {c1},y
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
-ldy {c2},x
-lda {c1},y
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
-ldx {c2},y
-lda {c1},x
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
-ldy {z2}
-ldx {c2},y
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
-tay
-ldx {c2},y
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
-ldy {c2},x
-ldx {c1},y
-tay
-txa
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
-ldx {c2},y
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
-ldy {z2}
-txa
-ldx {c2},y
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
-tay
-txa
-ldx {c2},y
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
-txa
-tay
-ldx {c2},y
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
-txa
-ldx {c2},y
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
-ldx {z2}
-lda {c2},x
-tax
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
-tax
-lda {c2},x
-tax
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
-lda {c2},x
-tax
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
-ldx {c2},y
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuxx
-dec {c1},x
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
-ldy {c2},x
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuc1_derefidx_vbuxx_le_pbuc2_derefidx_vbuxx_then_la1
-txa
-tay
-lda {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuaa=_deref_pbuz1_bor_vbuc1
-lda #{c1}
-ldy #0
-ora ({z1}),y
-//FRAGMENT vbuxx=_deref_pbuz1_bor_vbuc1
-lda #{c1}
-ldy #0
-ora ({z1}),y
-tax
-//FRAGMENT vbuyy=_deref_pbuz1_bor_vbuc1
-lda #{c1}
-ldy #0
-ora ({z1}),y
-tay
-//FRAGMENT pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuaa
-tay
-lda ({z1}),y
-sta {c1},y
-//FRAGMENT vbuz1_neq_pbuc1_derefidx_vbuaa_then_la1
-tay
-lda {c1},y
-cmp {z1}
-bne {la1}
-//FRAGMENT vbuaa_neq_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-cmp {c1},y
-bne {la1}
-//FRAGMENT vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-eor {c1},y
-//FRAGMENT vbuxx=vbuz1_bxor_pbuc1_derefidx_vbuz2
-lda {z1}
-ldx {z2}
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuz1_bxor_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuxx
-lda {c1},x
-eor {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuxx
-lda {c1},x
-eor {z1}
-//FRAGMENT vbuxx=vbuz1_bxor_pbuc1_derefidx_vbuxx
-lda {c1},x
-eor {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bxor_pbuc1_derefidx_vbuxx
-lda {c1},x
-eor {z1}
-tay
-//FRAGMENT vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuyy
-lda {c1},y
-eor {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuyy
-lda {c1},y
-eor {z1}
-//FRAGMENT vbuxx=vbuz1_bxor_pbuc1_derefidx_vbuyy
-lda {c1},y
-eor {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bxor_pbuc1_derefidx_vbuyy
-lda {c1},y
-eor {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_bxor_pbuc1_derefidx_vbuz2
-ldy {z2}
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuz1
-ldy {z1}
-eor {c1},y
-//FRAGMENT vbuxx=vbuaa_bxor_pbuc1_derefidx_vbuz1
-ldx {z1}
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuaa_bxor_pbuc1_derefidx_vbuz1
-ldy {z1}
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuaa_bxor_pbuc1_derefidx_vbuxx
-eor {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuxx
-eor {c1},x
-//FRAGMENT vbuxx=vbuaa_bxor_pbuc1_derefidx_vbuxx
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuaa_bxor_pbuc1_derefidx_vbuxx
-eor {c1},x
-tay
-//FRAGMENT vbuz1=vbuaa_bxor_pbuc1_derefidx_vbuyy
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy
-eor {c1},y
-//FRAGMENT vbuxx=vbuaa_bxor_pbuc1_derefidx_vbuyy
-eor {c1},y
-tax
-//FRAGMENT vbuyy=vbuaa_bxor_pbuc1_derefidx_vbuyy
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuxx_bxor_pbuc1_derefidx_vbuz2
-ldy {z2}
-txa
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bxor_pbuc1_derefidx_vbuz1
-ldy {z1}
-txa
-eor {c1},y
-//FRAGMENT vbuxx=vbuxx_bxor_pbuc1_derefidx_vbuz1
-txa
-ldx {z1}
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuxx_bxor_pbuc1_derefidx_vbuz1
-ldy {z1}
-txa
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuxx_bxor_pbuc1_derefidx_vbuxx
-txa
-eor {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bxor_pbuc1_derefidx_vbuxx
-txa
-eor {c1},x
-//FRAGMENT vbuxx=vbuxx_bxor_pbuc1_derefidx_vbuxx
-txa
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuxx_bxor_pbuc1_derefidx_vbuxx
-txa
-eor {c1},x
-tay
-//FRAGMENT vbuz1=vbuxx_bxor_pbuc1_derefidx_vbuyy
-txa
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bxor_pbuc1_derefidx_vbuyy
-txa
-eor {c1},y
-//FRAGMENT vbuxx=vbuxx_bxor_pbuc1_derefidx_vbuyy
-txa
-eor {c1},y
-tax
-//FRAGMENT vbuyy=vbuxx_bxor_pbuc1_derefidx_vbuyy
-txa
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuyy_bxor_pbuc1_derefidx_vbuz2
-tya
-ldy {z2}
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bxor_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-eor {c1},y
-//FRAGMENT vbuxx=vbuyy_bxor_pbuc1_derefidx_vbuz1
-ldx {z1}
-tya
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_bxor_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuyy_bxor_pbuc1_derefidx_vbuxx
-tya
-eor {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bxor_pbuc1_derefidx_vbuxx
-tya
-eor {c1},x
-//FRAGMENT vbuxx=vbuyy_bxor_pbuc1_derefidx_vbuxx
-tya
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_bxor_pbuc1_derefidx_vbuxx
-tya
-eor {c1},x
-tay
-//FRAGMENT vbuz1=vbuyy_bxor_pbuc1_derefidx_vbuyy
-tya
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bxor_pbuc1_derefidx_vbuyy
-tya
-eor {c1},y
-//FRAGMENT vbuxx=vbuyy_bxor_pbuc1_derefidx_vbuyy
-tya
-eor {c1},y
-tax
-//FRAGMENT vbuyy=vbuyy_bxor_pbuc1_derefidx_vbuyy
-tya
-eor {c1},y
-tay
-//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-and {c1},y
-//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuz2
-lda {z1}
-ldx {z2}
-and {c1},x
-tax
-//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-and {c1},y
-tay
-//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuz2
-ldy {z2}
-and {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1
-ldy {z1}
-and {c1},y
-//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuz1
-ldx {z1}
-and {c1},x
-tax
-//FRAGMENT vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1
-ldy {z1}
-and {c1},y
-tay
-//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sax {z1}
-//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuz1
-ldy {z1}
-txa
-and {c1},y
-//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-axs #0
-//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuz1
-ldy {z1}
-txa
-and {c1},y
-tay
-//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuz2
-tya
-ldy {z2}
-and {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-and {c1},y
-//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuz1
-ldx {z1}
-tya
-and {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-and {c1},y
-tay
-//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuxx
-lda {c1},x
-and {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx
-lda {c1},x
-and {z1}
-//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuxx
-lda {c1},x
-and {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuxx
-lda {c1},x
-and {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuxx
-and {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx
-and {c1},x
-//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuxx
-and {c1},x
-tax
-//FRAGMENT vbuyy=vbuaa_band_pbuc1_derefidx_vbuxx
-and {c1},x
-tay
-//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuxx
-lda {c1},x
-sax {z1}
-//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuxx
-txa
-and {c1},x
-//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuxx
-lda {c1},x
-axs #0
-//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuxx
-txa
-and {c1},x
-tay
-//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuxx
-tya
-and {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuxx
-tya
-and {c1},x
-//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuxx
-tya
-and {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuxx
-tya
-and {c1},x
-tay
-//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuyy
-lda {c1},y
-and {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuyy
-lda {c1},y
-and {z1}
-//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuyy
-lda {c1},y
-and {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuyy
-lda {c1},y
-and {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuyy
-and {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy
-and {c1},y
-//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuyy
-ldx {c1},y
-axs #0
-//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuyy
-lda {c1},y
-sax {z1}
-//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuyy
-tya
-and {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuyy
-txa
-and {c1},y
-//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuyy
-tya
-and {c1},y
-//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuyy
-lda {c1},y
-axs #0
-//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuyy
-ldx {c1},y
-tya
-axs #0
-//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuyy
-txa
-and {c1},y
-tay
-//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuyy
-tya
-and {c1},y
-tay
-//FRAGMENT vbuz1=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-//FRAGMENT vbuyy=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-tay
-//FRAGMENT vbuz1=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-//FRAGMENT vbuxx=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-tax
-//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuaa
-tay
-lda {c2},y
-sta {c1}
-//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuxx
-lda {c2},x
-sta {c1}
-//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuyy
-lda {c2},y
-sta {c1}
-//FRAGMENT vbuz1=vbuaa_ror_3
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_ror_3
-txa
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_ror_3
-tya
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_ror_3
-lda {z1}
-lsr
-lsr
-lsr
-//FRAGMENT vbuaa=vbuaa_ror_3
-lsr
-lsr
-lsr
-//FRAGMENT vbuaa=vbuxx_ror_3
-txa
-lsr
-lsr
-lsr
-//FRAGMENT vbuaa=vbuyy_ror_3
-tya
-lsr
-lsr
-lsr
-//FRAGMENT vbuxx=vbuz1_ror_3
-lda {z1}
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuxx=vbuaa_ror_3
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuxx=vbuxx_ror_3
-txa
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuxx=vbuyy_ror_3
-tya
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=vbuz1_ror_3
-lda {z1}
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuyy=vbuaa_ror_3
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuyy=vbuxx_ror_3
-txa
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuyy=vbuyy_ror_3
-tya
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-and {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sax {z1}
-//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuaa
-tax
-tya
-and {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-and {z1}
-//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuaa
-tay
-txa
-and {c1},y
-//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuaa
-tax
-tya
-and {c1},x
-//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuaa
-tax
-lda {c1},x
-and {z1}
-tax
-//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-axs #0
-//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuaa
-tax
-tya
-and {c1},x
-tax
-//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-and {z1}
-tay
-//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuaa
-tay
-txa
-and {c1},y
-tay
-//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuaa
-tax
-tya
-and {c1},x
-tay
-//FRAGMENT vbuyy=_lo_pbuz1
-ldy {z1}
-//FRAGMENT vbuz1=vbuz2_bor__lo_pbuz3
-lda {z2}
-ora {z3}
-sta {z1}
-//FRAGMENT vduz1=vduz1_plus_vbuxx
-txa
-clc
-adc {z1}
-sta {z1}
-lda {z1}+1
-adc #0
-sta {z1}+1
-lda {z1}+2
-adc #0
-sta {z1}+2
-lda {z1}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz1_band_vwuc1
-lda {z1}
-and #<{c1}
-sta {z1}
-lda {z1}+1
-and #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_plus_vwuz1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz1_ror_6
-lda {z1}
-asl
-sta $ff
-lda {z1}+1
-rol
-sta {z1}
-lda #0
-rol
-sta {z1}+1
-asl $ff
-rol {z1}
-rol {z1}+1
-//FRAGMENT vbsz1=vbsz2_plus_vbsc1
-lax {z2}
-axs #-[{c1}]
-stx {z1}
-//FRAGMENT vbsz1=vbsc1_plus_vbsz2
-lax {z2}
-axs #-[{c1}]
-stx {z1}
-//FRAGMENT vbsz1=vbsz2_plus_vbsz2
-lda {z2}
-asl
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_plus_vbsc1
-lda #{c1}
-clc
-adc {z1}
-//FRAGMENT vbsxx=vbsz1_plus_vbsc1
-lax {z1}
-axs #-[{c1}]
-//FRAGMENT vbsyy=vbsz1_plus_vbsc1
-lda #{c1}
-clc
-adc {z1}
-tay
-//FRAGMENT vbsaa=vbsc1_plus_vbsz1
-lda #{c1}
-clc
-adc {z1}
-//FRAGMENT vbsxx=vbsc1_plus_vbsz1
-lax {z1}
-axs #-[{c1}]
-//FRAGMENT vbsyy=vbsc1_plus_vbsz1
-lda #{c1}
-clc
-adc {z1}
-tay
-//FRAGMENT vbsaa=vbsz1_plus_vbsz1
-lda {z1}
-asl
-//FRAGMENT vbsxx=vbsz1_plus_vbsz1
-lda {z1}
-asl
-tax
-//FRAGMENT vbsyy=vbsz1_plus_vbsz1
-lda {z1}
-asl
-tay
-//FRAGMENT vbsz1=vbsz2_rol_1
-lda {z2}
-asl
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsc1
-lax {z2}
-axs #{c1}
-stx {z1}
-//FRAGMENT vbsaa=vbsz1_rol_1
-lda {z1}
-asl
-//FRAGMENT vbsxx=vbsz1_rol_1
-lda {z1}
-asl
-tax
-//FRAGMENT vbsyy=vbsz1_rol_1
-lda {z1}
-asl
-tay
-//FRAGMENT vbsz1=vbsxx_rol_1
-txa
-asl
-sta {z1}
-//FRAGMENT vbsaa=vbsxx_rol_1
-txa
-asl
-//FRAGMENT vbsxx=vbsxx_rol_1
-txa
-asl
-tax
-//FRAGMENT vbsyy=vbsxx_rol_1
-txa
-asl
-tay
-//FRAGMENT vbsz1=vbsyy_rol_1
-tya
-asl
-sta {z1}
-//FRAGMENT vbsaa=vbsyy_rol_1
-tya
-asl
-//FRAGMENT vbsxx=vbsyy_rol_1
-tya
-asl
-tax
-//FRAGMENT vbsyy=vbsyy_rol_1
-tya
-asl
-tay
-//FRAGMENT vbsz1=vbsaa_minus_vbsc1
-sec
-sbc #{c1}
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbsc1
-txa
-axs #{c1}
-stx {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbsc1
-tya
-sec
-sbc #{c1}
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_minus_vbsc1
-lda {z1}
-sec
-sbc #{c1}
-//FRAGMENT vbsaa=vbsaa_minus_vbsc1
-sec
-sbc #{c1}
-//FRAGMENT vbsaa=vbsxx_minus_vbsc1
-txa
-sec
-sbc #{c1}
-//FRAGMENT vbsaa=vbsyy_minus_vbsc1
-tya
-sec
-sbc #{c1}
-//FRAGMENT vbsxx=vbsz1_minus_vbsc1
-lax {z1}
-axs #{c1}
-//FRAGMENT vbsxx=vbsaa_minus_vbsc1
-tax
-axs #{c1}
-//FRAGMENT vbsxx=vbsyy_minus_vbsc1
-tya
-tax
-axs #{c1}
-//FRAGMENT vbsyy=vbsz1_minus_vbsc1
-lda {z1}
-sec
-sbc #{c1}
-tay
-//FRAGMENT vbsyy=vbsaa_minus_vbsc1
-sec
-sbc #{c1}
-tay
-//FRAGMENT vbsyy=vbsxx_minus_vbsc1
-txa
-sec
-sbc #{c1}
-tay
-//FRAGMENT vbuc1_gt_vbuz1_then_la1
-lda {z1}
-cmp #{c1}
-bcc {la1}
-//FRAGMENT vbuc1_gt_vbuxx_then_la1
-cpx #{c1}
-bcc {la1}
-//FRAGMENT vwuz1=vbuz2_rol_1
-lda {z2}
-asl
-sta {z1}
-lda #0
-rol
-sta {z1}+1
-//FRAGMENT vwuz1=vbuxx_rol_1
-txa
-asl
-sta {z1}
-lda #0
-rol
-sta {z1}+1
-//FRAGMENT vwuz1=vbuyy_rol_1
-tya
-asl
-sta {z1}
-lda #0
-rol
-sta {z1}+1
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy
-lda {c1},y
-tay
 //FRAGMENT vbsz1=vbsc1_minus_vbsz2
 lda #{c1}
 sec
 sbc {z2}
 sta {z1}
+//FRAGMENT vbsaa=_sbyte_vwuz1
+lda {z1}
+//FRAGMENT vbsxx=_sbyte_vwuz1
+ldx {z1}
 //FRAGMENT vbsz1=vbsc1_minus_vbsaa
 eor #$ff
 sec
@@ -12393,88 +14228,17 @@ eor #$ff
 sec
 adc #{c1}
 tay
-//FRAGMENT 0_neq_vbsaa_then_la1
-cmp #0
-bne {la1}
-//FRAGMENT vbsyy=vbsz1_minus_vbsaa
-eor #$ff
-sec
-adc {z1}
-tay
-//FRAGMENT vbsyy=vbsxx_minus_vbsaa
-sta $ff
-txa
-sec
-sbc $ff
-tay
-//FRAGMENT vbsyy=vbsyy_minus_vbsaa
-sta $ff
-tya
-sec
-sbc $ff
-tay
-//FRAGMENT vbsyy_lt_0_then_la1
-cpy #0
-bmi {la1}
-//FRAGMENT vbsz1_neq_0_then_la1
-lda {z1}
-cmp #0
-bne {la1}
-//FRAGMENT vwsz1=vbsz2
-lda {z2}
-sta {z1}
-and #$80
-beq !+
-lda #$ff
-!:
-sta {z1}+1
-//FRAGMENT vbsaa_neq_0_then_la1
-cmp #0
-bne {la1}
-//FRAGMENT vwsz1=vbsaa
-sta {z1}
-and #$80
-beq !+
-lda #$ff
-!:
-sta {z1}+1
-//FRAGMENT vwsz1=vbsxx
-txa
-sta {z1}
-and #$80
-beq !+
-lda #$ff
-!:
-sta {z1}+1
-//FRAGMENT vwsz1=vbsyy
-tya
-sta {z1}
-and #$80
-beq !+
-lda #$ff
-!:
-sta {z1}+1
-//FRAGMENT vbsxx_neq_0_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT pwsz1=pwsc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
+//FRAGMENT vbsyy=_sbyte_vwuz1
+ldy {z1}
+//FRAGMENT _deref_pbuz1=_deref_pbuc1
+lda {c1}
+ldy #0
+sta ({z1}),y
 //FRAGMENT vwuz1=_hi_vdsz2
 lda {z2}+2
 sta {z1}
 lda {z2}+3
 sta {z1}+1
-//FRAGMENT pwsz1=pwsz1_plus_vbuc1
-lda #{c1}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
 //FRAGMENT pwsz1=pwsc1_plus_vwuz2
 clc
 lda {z2}
@@ -12483,23 +14247,6 @@ sta {z1}
 lda {z2}+1
 adc #>{c1}
 sta {z1}+1
-//FRAGMENT vduz1_lt_vduc1_then_la1
-lda {z1}+3
-cmp #>{c1}>>$10
-bcc {la1}
-bne !+
-lda {z1}+2
-cmp #<{c1}>>$10
-bcc {la1}
-bne !+
-lda {z1}+1
-cmp #>{c1}
-bcc {la1}
-bne !+
-lda {z1}
-cmp #<{c1}
-bcc {la1}
-!:
 //FRAGMENT vduz1=vduc1_minus_vduz1
 lda #<{c1}
 sec
@@ -12546,9 +14293,14 @@ sta {z1}+1
 //FRAGMENT vbuz1=_byte_vwsz2
 lda {z2}
 sta {z1}
-//FRAGMENT vbsz1=_sbyte_vwsz2
-lda {z2}
+//FRAGMENT vwsz1=vwsz1_minus_vwsc1
+lda {z1}
+sec
+sbc #<{c1}
 sta {z1}
+lda {z1}+1
+sbc #>{c1}
+sta {z1}+1
 //FRAGMENT vduz1=vduz2_rol_vbuz3
 ldy {z3}
 lda {z2}
@@ -12577,14 +14329,6 @@ tax
 //FRAGMENT vbuyy=_byte_vwsz1
 lda {z1}
 tay
-//FRAGMENT vbsaa=_sbyte_vwsz1
-lda {z1}
-//FRAGMENT vbsxx=_sbyte_vwsz1
-lda {z1}
-tax
-//FRAGMENT vbsyy=_sbyte_vwsz1
-lda {z1}
-tay
 //FRAGMENT vduz1=vduz2_rol_vbuxx
 lda {z2}
 sta {z1}
@@ -12651,253 +14395,6 @@ rol {z1}+3
 dex
 bne !-
 !e:
-//FRAGMENT isr_rom_sys_c64_entry
-
-//FRAGMENT isr_rom_sys_c64_exit
-jmp $ea31
-//FRAGMENT vwsz1_neq_vwsc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT _deref_pwsc1=vwsz1
-lda {z1}
-sta {c1}
-lda {z1}+1
-sta {c1}+1
-//FRAGMENT pssz1=pssc1_plus_vbuz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuc2
-ldx {z1}
-ldy #{c2}
-lda ({z2}),y
-sta {c1},x
-//FRAGMENT pssz1=pssc1_plus_vbuaa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pssz1=pssc1_plus_vbuxx
-txa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pssz1=pssc1_plus_vbuyy
-tya
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2
-ldy #{c2}
-lda ({z1}),y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuc2
-tya
-ldy #{c2}
-tax
-lda ({z1}),y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuc2
-ldy #{c2}
-tax
-lda ({z1}),y
-sta {c1},x
-//FRAGMENT _deref_qssc1=pssc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
-//FRAGMENT pssc1_neq_pssz1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT vbuz1=vbuc1_plus__deref_pbuz2
-lda #{c1}
-clc
-ldy #0
-adc ({z2}),y
-sta {z1}
-//FRAGMENT vbuz1=_lo_qssz2_derefidx_vbuc1
-ldy #{c1}
-lda ({z2}),y
-sta {z1}
-//FRAGMENT vbuz1=_hi_qssz2_derefidx_vbuc1
-ldy #{c1}+1
-lda ({z2}),y
-sta {z1}
-//FRAGMENT pssz1=qssz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-pha
-iny
-lda ({z1}),y
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT vbuaa=vbuc1_plus__deref_pbuz1
-lda #{c1}
-clc
-ldy #0
-adc ({z1}),y
-//FRAGMENT vbuxx=vbuc1_plus__deref_pbuz1
-ldy #0
-lda ({z1}),y
-tax
-axs #-[{c1}]
-//FRAGMENT vbuyy=vbuc1_plus__deref_pbuz1
-lda #{c1}
-clc
-ldy #0
-adc ({z1}),y
-tay
-//FRAGMENT vbuaa=_lo_qssz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-//FRAGMENT vbuxx=_lo_qssz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=_lo_qssz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-tay
-//FRAGMENT vbuaa=_hi_qssz1_derefidx_vbuc1
-ldy #{c1}+1
-lda ({z1}),y
-//FRAGMENT vbuxx=_hi_qssz1_derefidx_vbuc1
-ldy #{c1}+1
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=_hi_qssz1_derefidx_vbuc1
-ldy #{c1}+1
-lda ({z1}),y
-tay
-//FRAGMENT pssc1_derefidx_vbuz1=pssc2_derefidx_vbuz1_memcpy_vbuc3
-ldx #{c3}
-ldy {z1}
-!:
-lda {c2},y
-sta {c1},y
-iny
-dex
-bne !-
-//FRAGMENT pssc1_derefidx_vbuaa=pssc2_derefidx_vbuaa_memcpy_vbuc3
-ldx #{c3}
-tay
-!:
-lda {c2},y
-sta {c1},y
-iny
-dex
-bne !-
-//FRAGMENT pssc1_derefidx_vbuxx=pssc2_derefidx_vbuxx_memcpy_vbuc3
-ldy #{c3}
-!:
-lda {c2},x
-sta {c1},x
-inx
-dey
-bne !-
-//FRAGMENT pssc1_derefidx_vbuyy=pssc2_derefidx_vbuyy_memcpy_vbuc3
-ldx #{c3}
-!:
-lda {c2},y
-sta {c1},y
-iny
-dex
-bne !-
-//FRAGMENT vbum1_lt_vbuc1_then_la1
-lda {m1}
-cmp #{c1}
-bcc {la1}
-//FRAGMENT pbuc1_derefidx_vbum1=vbum1
-ldy {m1}
-tya
-sta {c1},y
-//FRAGMENT pwuc1_derefidx_vbuz1=vwuc2
-ldy {z1}
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuaa=vwuc2
-tay
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuxx=vwuc2
-lda #<{c2}
-sta {c1},x
-lda #>{c2}
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=vwuc2
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
-//FRAGMENT _deref_pbuc1_ge_vbuc2_then_la1
-lda {c1}
-cmp #{c2}
-bcs {la1}
-//FRAGMENT vboz1=vboxx
-txa
-sta {z1}
-//FRAGMENT vboaa=vboxx
-txa
-//FRAGMENT vboxx=vboaa
-tax
-//FRAGMENT vboxx=vboyy
-tya
-tax
-//FRAGMENT vboyy=vboxx
-txa
-tay
-//FRAGMENT _deref_pbuz1=_deref_pbuc1
-lda {c1}
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbsz1=vbsz1_minus_vbsxx
-txa
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vwsz1=vwsz1_minus_vwsc1
-lda {z1}
-sec
-sbc #<{c1}
-sta {z1}
-lda {z1}+1
-sbc #>{c1}
-sta {z1}+1
-//FRAGMENT vbuc1_ge_vbuz1_then_la1
-lda #{c1}
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuc1_ge_vbuxx_then_la1
-cpx #{c1}
-bcc {la1}
-beq {la1}
 //FRAGMENT vbsz1=pbsc1_derefidx_vbuz2_minus_pbsc2_derefidx_vbuz2
 ldy {z2}
 lda {c1},y
@@ -13007,97 +14504,6 @@ sta ({z1}),y
 tya
 ldy #0
 sta ({z1}),y
-//FRAGMENT vwuz1=_deref_pwuc1
-lda {c1}
-sta {z1}
-lda {c1}+1
-sta {z1}+1
-//FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_minus_1
-ldx {z1}
-lda {c1},x
-bne !+
-dec {c1}+1,x
-!:
-dec {c1},x
-//FRAGMENT pwuc1_derefidx_vbuaa=pwuc1_derefidx_vbuaa_minus_1
-tax
-lda {c1},x
-bne !+
-dec {c1}+1,x
-!:
-dec {c1},x
-//FRAGMENT pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_1
-lda {c1},x
-bne !+
-dec {c1}+1,x
-!:
-dec {c1},x
-//FRAGMENT pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_minus_1
-sec
-lda {c1},y
-sbc #$01
-sta {c1},y
-lda {c1}+1,y
-sbc #$00
-sta {c1}+1,y
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_1
-ldx {z2}
-ldy {c1},x
-iny
-sty {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_1
-ldy {z1}
-lda {c1},y
-clc
-adc #1
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_1
-ldy {z1}
-ldx {c1},y
-inx
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_1
-ldx {z1}
-ldy {c1},x
-iny
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_1
-tax
-ldy {c1},x
-iny
-sty {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_1
-tay
-lda {c1},y
-clc
-adc #1
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_1
-tay
-ldx {c1},y
-inx
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_1
-tax
-ldy {c1},x
-iny
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_1
-ldy {c1},x
-iny
-sty {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_1
-lda {c1},x
-clc
-adc #1
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_1
-ldy {c1},x
-iny
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_1
-ldx {c1},y
-inx
-stx {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_1
-lda {c1},y
-clc
-adc #1
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_1
-ldx {c1},y
-inx
 //FRAGMENT vwuz1_eq_vwuz2_then_la1
 lda {z1}
 cmp {z2}
@@ -13106,15 +14512,6 @@ lda {z1}+1
 cmp {z2}+1
 beq {la1}
 !:
-//FRAGMENT vwuz1_le_vwuz2_then_la1
-lda {z1}+1
-cmp {z2}+1
-bne !+
-lda {z1}
-cmp {z2}
-beq {la1}
-!:
-bcc {la1}
 //FRAGMENT vduz1=vwuz2_dword_vwuc1
 lda #<{c1}
 sta {z1}
@@ -13132,1162 +14529,6 @@ sta {z1}
 lda {z1}+1
 sbc #0
 sta {z1}+1
-//FRAGMENT vbuz1=vbuz2_plus_pbuc1_derefidx_vbuz3
-lda {z2}
-ldy {z3}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_plus_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-clc
-adc {c1},y
-//FRAGMENT vbuxx=vbuz1_plus_pbuc1_derefidx_vbuz2
-lda {z1}
-ldx {z2}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=vbuz1_plus_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=vbuxx_plus_pbuc1_derefidx_vbuz2
-ldy {z2}
-txa
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_plus_pbuc1_derefidx_vbuz1
-ldy {z1}
-txa
-clc
-adc {c1},y
-//FRAGMENT vbuxx=vbuxx_plus_pbuc1_derefidx_vbuz1
-txa
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=vbuxx_plus_pbuc1_derefidx_vbuz1
-ldy {z1}
-txa
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=vbuyy_plus_pbuc1_derefidx_vbuz2
-tya
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_plus_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuxx=vbuyy_plus_pbuc1_derefidx_vbuz1
-ldx {z1}
-tya
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuz1=vbuz2_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuz1_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=vbuxx_plus_pbuc1_derefidx_vbuxx
-txa
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_plus_pbuc1_derefidx_vbuxx
-txa
-clc
-adc {c1},x
-//FRAGMENT vbuxx=vbuxx_plus_pbuc1_derefidx_vbuxx
-txa
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=vbuxx_plus_pbuc1_derefidx_vbuxx
-txa
-clc
-adc {c1},x
-tay
-//FRAGMENT vbuz1=vbuyy_plus_pbuc1_derefidx_vbuxx
-tya
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_plus_pbuc1_derefidx_vbuxx
-tya
-clc
-adc {c1},x
-//FRAGMENT vbuxx=vbuyy_plus_pbuc1_derefidx_vbuxx
-tya
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuz1=vbuz2_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuz1_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=vbuxx_plus_pbuc1_derefidx_vbuyy
-txa
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_plus_pbuc1_derefidx_vbuyy
-txa
-clc
-adc {c1},y
-//FRAGMENT vbuxx=vbuxx_plus_pbuc1_derefidx_vbuyy
-txa
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=vbuxx_plus_pbuc1_derefidx_vbuyy
-txa
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=vbuyy_plus_pbuc1_derefidx_vbuyy
-tya
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_plus_pbuc1_derefidx_vbuyy
-tya
-clc
-adc {c1},y
-//FRAGMENT vbuxx=vbuyy_plus_pbuc1_derefidx_vbuyy
-tya
-clc
-adc {c1},y
-tax
-//FRAGMENT vduz1_lt_vwuc1_then_la1
-NO_SYNTHESIS
-//FRAGMENT vduz1_lt_vwsc1_then_la1
-NO_SYNTHESIS
-//FRAGMENT vduz1=vduz2_rol_4
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-lda {z2}+2
-rol
-sta {z1}+2
-lda {z2}+3
-rol
-sta {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vduz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-lda {z2}+2
-adc {z3}+2
-sta {z1}+2
-lda {z2}+3
-adc {z3}+3
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_rol_1
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-lda {z2}+2
-rol
-sta {z1}+2
-lda {z2}+3
-rol
-sta {z1}+3
-//FRAGMENT vduz1=vduz1_plus_vwuc1
-lda {z1}
-clc
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-lda {z1}+2
-adc #0
-sta {z1}+2
-lda {z1}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vduz1=vduz1_rol_2
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vbsz1_gt_0_then_la1
-lda {z1}
-cmp #0
-beq !+
-bpl {la1}
-!:
-//FRAGMENT vbuz1=vbuc1_minus_vbuz1
-lda #{c1}
-sec
-sbc {z1}
-sta {z1}
-//FRAGMENT vbuz1=_neg_vbuz1
-lda {z1}
-eor #$ff
-clc
-adc #$01
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_ror_vbuz3
-lda {z2}
-ldy {z3}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsz1=vbsz1_plus_vbsz2
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_minus_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsaa_neq_vbsc1_then_la1
-cmp #{c1}
-bne {la1}
-//FRAGMENT vbsaa_gt_0_then_la1
-cmp #0
-beq !+
-bpl {la1}
-!:
-//FRAGMENT vbsxx_gt_0_then_la1
-txa
-cmp #0
-beq !+
-bpl {la1}
-!:
-//FRAGMENT vbsyy_gt_0_then_la1
-tya
-cmp #0
-beq !+
-bpl {la1}
-!:
-//FRAGMENT vbsaa=vbsz1_ror_vbuz2
-lda {z1}
-ldy {z2}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsz1_ror_vbuz2
-lda {z1}
-ldx {z2}
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsz1_ror_vbuz2
-lda {z1}
-ldy {z2}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsaa_ror_vbuz2
-ldy {z2}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsaa_ror_vbuz1
-ldy {z1}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsaa_ror_vbuz1
-ldx {z1}
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsaa_ror_vbuz1
-ldy {z1}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsxx_ror_vbuz2
-ldy {z2}
-txa
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsxx_ror_vbuz1
-ldy {z1}
-txa
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsxx_ror_vbuz1
-txa
-ldx {z1}
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsxx_ror_vbuz1
-ldy {z1}
-txa
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsyy_ror_vbuz2
-tya
-ldy {z2}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsyy_ror_vbuz1
-tya
-ldy {z1}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsyy_ror_vbuz1
-ldx {z1}
-tya
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsyy_ror_vbuz1
-tya
-ldy {z1}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsz2_ror_vbuaa
-tay
-lda {z2}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_ror_vbuaa
-tay
-lda {z1}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsz1_ror_vbuaa
-tax
-lda {z1}
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsz1_ror_vbuaa
-tay
-lda {z1}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsaa_ror_vbuaa
-tay
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsaa_ror_vbuaa
-tay
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsaa_ror_vbuaa
-tax
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsaa_ror_vbuaa
-tay
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsxx_ror_vbuaa
-tay
-txa
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsxx_ror_vbuaa
-tay
-txa
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsxx_ror_vbuaa
-tay
-txa
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsxx_ror_vbuaa
-tay
-txa
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsyy_ror_vbuaa
-tax
-tya
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsyy_ror_vbuaa
-tax
-tya
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsyy_ror_vbuaa
-tax
-tya
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsyy_ror_vbuaa
-tax
-tya
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsz2_ror_vbuxx
-lda {z2}
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_ror_vbuxx
-lda {z1}
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsz1_ror_vbuxx
-lda {z1}
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsz1_ror_vbuxx
-lda {z1}
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsaa_ror_vbuxx
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsaa_ror_vbuxx
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsaa_ror_vbuxx
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsaa_ror_vbuxx
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsxx_ror_vbuxx
-txa
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsxx_ror_vbuxx
-txa
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsxx_ror_vbuxx
-txa
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsxx_ror_vbuxx
-txa
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsyy_ror_vbuxx
-tya
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsyy_ror_vbuxx
-tya
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsyy_ror_vbuxx
-tya
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsyy_ror_vbuxx
-tya
-cpx #0
-beq !e+
-!l:
-cmp #$80
-ror
-dex
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsz2_ror_vbuyy
-lda {z2}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_ror_vbuyy
-lda {z1}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsz1_ror_vbuyy
-lda {z1}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsz1_ror_vbuyy
-lda {z1}
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsaa_ror_vbuyy
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsaa_ror_vbuyy
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsaa_ror_vbuyy
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsaa_ror_vbuyy
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsxx_ror_vbuyy
-txa
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsxx_ror_vbuyy
-txa
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsxx_ror_vbuyy
-txa
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsxx_ror_vbuyy
-txa
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsyy_ror_vbuyy
-tya
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-sta {z1}
-//FRAGMENT vbsaa=vbsyy_ror_vbuyy
-tya
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-//FRAGMENT vbsxx=vbsyy_ror_vbuyy
-tya
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tax
-//FRAGMENT vbsyy=vbsyy_ror_vbuyy
-tya
-cpy #0
-beq !e+
-!l:
-cmp #$80
-ror
-dey
-bne !l-
-!e:
-tay
-//FRAGMENT vbsz1=vbsz1_minus_vbsyy
-tya
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbsz1=vbsz1_plus_vbsxx
-txa
-clc
-adc {z1}
-sta {z1}
-//FRAGMENT vbsz1=vbsz1_plus_vbsyy
-tya
-clc
-adc {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_pbuc1_derefidx_vbuz1
-txa
-ldx {z1}
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_minus_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbuz1=vbuz1_minus_pbuc1_derefidx_vbuxx
-lda {z1}
-sec
-sbc {c1},x
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_pbuc1_derefidx_vbuxx
-txa
-tax
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_minus_pbuc1_derefidx_vbuxx
-tya
-sec
-sbc {c1},x
-tay
-//FRAGMENT vbuz1=vbuz1_minus_pbuc1_derefidx_vbuyy
-lda {z1}
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_pbuc1_derefidx_vbuyy
-txa
-sec
-sbc {c1},y
-tax
-//FRAGMENT vbuyy=vbuyy_minus_pbuc1_derefidx_vbuyy
-tya
-tay
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy_neq_0_then_la1
-cpy #0
-bne {la1}
-//FRAGMENT _deref_pduc1=vduz1
-lda {z1}
-sta {c1}
-lda {z1}+1
-sta {c1}+1
-lda {z1}+2
-sta {c1}+2
-lda {z1}+3
-sta {c1}+3
-//FRAGMENT vduz1=_dec_vduz2
-lda {z2}
-sec
-sbc #1
-sta {z1}
-lda {z2}+1
-sbc #0
-sta {z1}+1
-lda {z2}+2
-sbc #0
-sta {z1}+2
-lda {z2}+3
-sbc #0
-sta {z1}+3
-//FRAGMENT vduz1=vduz1_plus_vbuc1
-lda {z1}
-clc
-adc #{c1}
-sta {z1}
-bcc !+
-inc {z1}+1
-bne !+
-inc {z1}+2
-bne !+
-inc {z1}+3
-!:
-//FRAGMENT vduz1=_dec_vduz1
-lda {z1}
-sec
-sbc #1
-sta {z1}
-lda {z1}+1
-sbc #0
-sta {z1}+1
-lda {z1}+2
-sbc #0
-sta {z1}+2
-lda {z1}+3
-sbc #0
-sta {z1}+3
-//FRAGMENT vwuz1=_stackidxword_vbuc1
-tsx
-lda STACK_BASE+{c1},x
-sta {z1}
-lda STACK_BASE+{c1}+1,x
-sta {z1}+1
-//FRAGMENT _stackidxword_vbuc1=vwuz1
-tsx
-lda {z1}
-sta STACK_BASE+{c1},x
-lda {z1}+1
-sta STACK_BASE+{c1}+1,x
-//FRAGMENT _stackpushword_=vwuc1
-lda #>{c1}
-pha
-lda #<{c1}
-pha
-//FRAGMENT vwuz1=_stackpullword_
-pla
-sta {z1}
-pla
-sta {z1}+1
-//FRAGMENT _stackpushword_=vbuc1
-lda #0
-pha
-lda #<{c1}
-pha
-//FRAGMENT _stackidxsword_vbuc1=vwsz1
-tsx
-lda {z1}
-sta STACK_BASE+{c1},x
-lda {z1}+1
-sta STACK_BASE+{c1}+1,x
-//FRAGMENT _stackpushbyte_2
-pha
-pha
-//FRAGMENT vwsz1=_stackpullsword_
-pla
-sta {z1}
-pla
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa
-tax
-inc {c1},x
-//FRAGMENT vbuaa=vbuaa_bor_vbuc1
-ora #{c1}
 //FRAGMENT vbuz1=_deref_pbuz2_rol_1
 ldy #0
 lda ({z2}),y
@@ -14331,163 +14572,6 @@ inc {c1},x
 bne !+
 inc {c1}+1,x
 !:
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_(pbuc3_derefidx_vbuz1)
-ldx {z1}
-ldy {c3},x
-lda {c2},y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_(pbuc3_derefidx_vbuxx)
-ldy {c3},x
-lda {c2},y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_(pbuc3_derefidx_vbuyy)
-ldx {c3},y
-lda {c2},x
-sta {c1},y
-//FRAGMENT vbuz1=_deref_pbuc1_band_vbuc2
-lda #{c2}
-and {c1}
-sta {z1}
-//FRAGMENT _deref_pbuc1_lt_vbuz1_then_la1
-lda {c1}
-cmp {z1}
-bcc {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
-ldx {z2}
-ldy {c2},x
-ldx {c1},y
-stx {z1}
-//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1}+1,y
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_bxor_vbuz2
-lda #{c1}
-eor {z2}
-sta {z1}
-//FRAGMENT vbuaa=_deref_pbuc1_band_vbuc2
-lda #{c2}
-and {c1}
-//FRAGMENT vbuxx=_deref_pbuc1_band_vbuc2
-lda #{c2}
-and {c1}
-tax
-//FRAGMENT vbuyy=_deref_pbuc1_band_vbuc2
-lda #{c2}
-and {c1}
-tay
-//FRAGMENT _deref_pbuc1_lt_vbuaa_then_la1
-ldy {c1}
-sta $ff
-cpy $ff
-bcc {la1}
-//FRAGMENT vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuz1)
-ldx {z1}
-ldy {c2},x
-lda {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuz1)
-ldx {z1}
-ldy {c2},x
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuz1)
-ldy {z1}
-ldx {c2},y
-ldy {c1},x
-//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuz1
-ldx {z1}
-lda {c1},x
-tax
-//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-tay
-//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuaa
-tay
-lda {c1},y
-//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuaa
-tax
-lda {c1},x
-tax
-//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuaa
-tay
-lda {c1},y
-tay
-//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuxx
-lda {c1},x
-//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuxx
-lda {c1},x
-tax
-//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuxx
-lda {c1},x
-tay
-//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuyy
-lda {c1},y
-//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuyy
-lda {c1},y
-tax
-//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuyy
-lda {c1},y
-tay
-//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuxx
-lda {c1}+1,x
-sta {z1}
-//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1}+1,y
-//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuxx
-lda {c1}+1,x
-//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuz1
-ldx {z1}
-lda {c1}+1,x
-tax
-//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuxx
-lda {c1}+1,x
-tax
-//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1}+1,y
-tay
-//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuxx
-lda {c1}+1,x
-tay
-//FRAGMENT vbuaa=vbuc1_bxor_vbuz1
-lda #{c1}
-eor {z1}
-//FRAGMENT vbuxx=vbuc1_bxor_vbuz1
-lda #{c1}
-eor {z1}
-tax
-//FRAGMENT vbuyy=vbuc1_bxor_vbuz1
-lda #{c1}
-eor {z1}
-tay
-//FRAGMENT _deref_pbuc1_lt_vbuxx_then_la1
-lda {c1}
-stx $ff
-cmp $ff
-bcc {la1}
-//FRAGMENT _deref_pbuc1_lt_vbuyy_then_la1
-ldx {c1}
-sty $ff
-cpx $ff
-bcc {la1}
 //FRAGMENT pwsz1_lt_pwsc1_then_la1
 lda {z1}+1
 cmp #>{c1}
@@ -14497,6 +14581,17 @@ lda {z1}
 cmp #<{c1}
 bcc {la1}
 !:
+//FRAGMENT vbsz1=vbsz2_minus_vbsaa
+eor #$ff
+sec
+adc {z2}
+sta {z1}
+//FRAGMENT vbsz1=vbsxx_minus_vbsaa
+sta $ff
+txa
+sec
+sbc $ff
+sta {z1}
 //FRAGMENT vbsaa=vbsz1_minus_vbsaa
 eor #$ff
 sec
@@ -14506,848 +14601,27 @@ sta $ff
 txa
 sec
 sbc $ff
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuz3
-lda {z3}
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuz2
-ldy {z2}
-clc
-lda #<{c1}
-adc {c2},y
-sta {z1}
-lda #>{c1}
-adc {c2}+1,y
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuz1_ge_vbuc2_then_la1
-ldy {z1}
-lda {c1},y
-cmp #{c2}
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_lt_vbuc2_then_la1
-ldy {z1}
-lda {c1},y
-cmp #{c2}
-bcc {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_band_vbuz3
-lda {z2}
-and {z3}
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_band_vbuz2
-lda {z1}
-and {z2}
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz3
-ldy {z2}
-lda {c1},y
-ldy {z3}
-clc
-adc {c2},y
-sta {z1}
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT pwuz1=pwuz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus__deref_pwuz3
-ldy #0
-clc
-lda {z2}
-adc ({z3}),y
-sta {z1}
-iny
-lda {z2}+1
-adc ({z3}),y
-sta {z1}+1
-//FRAGMENT vwuz1=pbuz2_derefidx_vbuc1_word__deref_pbuz2
-ldy #{c1}
-lda ({z2}),y
-sta {z1}+1
-ldy #0
-lda ({z2}),y
-sta {z1}
-//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuz3_bor_pbuz4_derefidx_vbuz3
-ldy {z3}
-lda ({z2}),y
-ora ({z4}),y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuz2
-lda {c1},x
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuz2
-lda {c1},y
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuz2
-lda {z2}
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuz1
-lda {c1},x
-clc
-adc {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuz1
-lda {c1},y
-clc
-adc {z1}
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuz2
-lda {z2}
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuz1
-lda {c1},x
-clc
+//FRAGMENT vbsxx=vbsz1_minus_vbsaa
+eor #$ff
+sec
 adc {z1}
 tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuz1
-lda {c1},y
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuz2
-lda {z2}
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuz1
-lda {c1},x
-clc
-adc {z1}
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuz1
-lda {c1},y
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuaa
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuaa
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuaa
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuaa
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
-clc
-adc {c1},x
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuaa
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuaa
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuaa
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuaa
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuaa
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuaa
-clc
-adc {c1},x
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuaa
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuxx
-ldy {z2}
-txa
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuxx
-txa
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuxx
-txa
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuxx
-ldy {z1}
-txa
-clc
-adc {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuxx
-txa
-clc
-adc {c1},x
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuxx
-txa
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuxx
-txa
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuxx
-txa
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuxx
-txa
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuxx
-ldy {z1}
-txa
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuxx
-txa
-clc
-adc {c1},x
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuxx
-txa
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuyy
-tya
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuyy
-tya
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuyy
-tya
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuyy
-tya
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuyy
-tya
-clc
-adc {c1},x
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuyy
-tya
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuyy
-ldx {z1}
-tya
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuyy
-tya
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuyy
-tya
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuyy
-tya
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuyy
-tya
-clc
-adc {c1},x
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuyy
-tya
-clc
-adc {c1},y
-tay
-//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuaa
-tay
-clc
-lda #<{c1}
-adc {c2},y
-sta {z1}
-lda #>{c1}
-adc {c2}+1,y
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuxx
-txa
-tay
-clc
-lda #<{c1}
-adc {c2},y
-sta {z1}
-lda #>{c1}
-adc {c2}+1,y
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuyy
-clc
-lda #<{c1}
-adc {c2},y
-sta {z1}
-lda #>{c1}
-adc {c2}+1,y
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1
-lda {c1},x
-cmp #{c2}
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_ge_vbuc2_then_la1
-lda {c1},y
-cmp #{c2}
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_lt_vbuc2_then_la1
-lda {c1},x
-cmp #{c2}
-bcc {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1
-lda {c1},y
-cmp #{c2}
-bcc {la1}
-//FRAGMENT vbuz1=vbuaa_band_vbuz2
-and {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_band_vbuz2
-lda {z2}
-sax {z1}
-//FRAGMENT vbuz1=vbuyy_band_vbuz2
-tya
-and {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_band_vbuxx
-lda {z2}
-sax {z1}
-//FRAGMENT vbuz1=vbuaa_band_vbuxx
-sax {z1}
-//FRAGMENT vbuz1=vbuz1_band_vbuxx
-lda {z1}
-sax {z1}
-//FRAGMENT vbuz1=vbuz1_band_vbuyy
-tya
-and {z1}
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuyy=_byte_vwuz1
-lda {z1}
-sta {c1},y
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuxx
-lda {c2},x
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuyy
-lda {c2},y
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz2
-lda {c1},x
-ldy {z2}
-clc
-adc {c2},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c2},x
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy
-lda {c1},x
-clc
-adc {c2},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz2
-lda {c1},y
-ldy {z2}
-clc
-adc {c2},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx
-lda {c1},y
-clc
-adc {c2},x
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuyy
-lda {c1},y
-clc
-adc {c2},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
-ldy {z1}
-lda {c1},y
-ldy {z2}
-clc
-adc {c2},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx
-lda {c2},x
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy
-lda {c2},y
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1
-lda {c1},x
-ldy {z1}
-clc
-adc {c2},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c2},x
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy
-lda {c1},x
-clc
-adc {c2},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1
-lda {c1},y
-ldy {z1}
-clc
-adc {c2},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx
-lda {c1},y
-clc
-adc {c2},x
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuyy
-lda {c1},y
-clc
-adc {c2},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
-ldx {z1}
-lda {c1},x
-ldx {z2}
-clc
-adc {c2},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx
-lda {c2},x
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy
-lda {c2},y
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1
-lda {c1},x
-ldx {z1}
-clc
-adc {c2},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c2},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy
-lda {c1},x
-clc
-adc {c2},y
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1
-lda {c1},y
-ldx {z1}
-clc
-adc {c2},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx
-lda {c1},y
-clc
-adc {c2},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuyy
-lda {c1},y
-clc
-adc {c2},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
-ldy {z1}
-lda {c1},y
-ldy {z2}
-clc
-adc {c2},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx
-lda {c2},x
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy
-lda {c2},y
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1
-lda {c1},x
-ldy {z1}
-clc
-adc {c2},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c2},x
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy
-lda {c1},x
-clc
-adc {c2},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1
-lda {c1},y
-ldy {z1}
-clc
-adc {c2},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx
-lda {c1},y
-clc
-adc {c2},x
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuyy
-lda {c1},y
-clc
-adc {c2},y
-tay
-//FRAGMENT vbuaa_eq_vbuz1_then_la1
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda {c1}+1,x
-sta {z1}+1
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuz2
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuxx
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuyy
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuz1
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuxx
-clc
-adc {c1},x
-//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuyy
-clc
-adc {c1},y
-//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuz1
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuxx
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuyy
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuz1
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuxx
-clc
-adc {c1},x
-tay
-//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuyy
-clc
-adc {c1},y
-tay
-//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuaa_bor_pbuz3_derefidx_vbuaa
-tay
-lda ({z2}),y
-ora ({z3}),y
-sta {z1}
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuxx_bor_pbuz3_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-ora ({z3}),y
-sta {z1}
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuyy_bor_pbuz3_derefidx_vbuyy
-lda ({z2}),y
-ora ({z3}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-ora ({z3}),y
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa
-tay
-lda ({z1}),y
-ora ({z2}),y
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-ora ({z2}),y
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy
-lda ({z1}),y
-ora ({z2}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-ora ({z3}),y
-tax
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa
-tay
-lda ({z1}),y
-ora ({z2}),y
-tax
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-ora ({z2}),y
-tax
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy
-lda ({z1}),y
-ora ({z2}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-ora ({z3}),y
-tay
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa
-tay
-lda ({z1}),y
-ora ({z2}),y
-tay
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-ora ({z2}),y
-tay
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy
-lda ({z1}),y
-ora ({z2}),y
-tay
-//FRAGMENT vbuxx=vbuyy_minus_1
-tya
-tax
-dex
-//FRAGMENT vbuaa=vbuxx_minus_1
+//FRAGMENT vbsxx=vbsxx_minus_vbsaa
+sta $ff
 txa
 sec
-sbc #1
-//FRAGMENT vbuyy=vbuxx_minus_1
-txa
-tay
-dey
-//FRAGMENT vbuaa=vbuyy_minus_1
-tya
+sbc $ff
+tax
+//FRAGMENT vbsyy=vbsz1_minus_vbsaa
+eor #$ff
 sec
-sbc #1
-//FRAGMENT vbuaa=vbuz1_band_vbuz2
-lda {z1}
-and {z2}
-//FRAGMENT vbuxx=vbuz1_band_vbuz2
-lda {z1}
-and {z2}
-tax
-//FRAGMENT vbuyy=vbuz1_band_vbuz2
-lda {z1}
-and {z2}
+adc {z1}
 tay
-//FRAGMENT vbuaa=vbuaa_band_vbuz1
-and {z1}
-//FRAGMENT vbuaa=vbuxx_band_vbuz1
+//FRAGMENT vbsyy=vbsxx_minus_vbsaa
+sta $ff
 txa
-and {z1}
-//FRAGMENT vbuaa=vbuyy_band_vbuz1
-tya
-and {z1}
-//FRAGMENT vbuaa=vbuaa_band_vbuxx
-stx $ff
-and $ff
-//FRAGMENT vbuaa=vbuaa_band_vbuyy
-sty $ff
-and $ff
-//FRAGMENT pbuz1=pbuz2_plus__deref_pwuz1
-ldy #0
-clc
-lda ({z1}),y
-adc {z2}
-pha
-iny
-lda ({z1}),y
-adc {z2}+1
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT pwuz1=pwuz2_plus_vwuz1
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=_deref_pbuc1_bxor_vbuc2
-lda #{c2}
-eor {c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_bxor_vbuaa
-eor #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_bxor_vbuxx
-txa
-eor #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_bxor_vbuyy
-tya
-eor #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuc1_bxor_vbuaa
-eor #{c1}
-//FRAGMENT vbuaa=vbuc1_bxor_vbuxx
-txa
-eor #{c1}
-//FRAGMENT vbuaa=vbuc1_bxor_vbuyy
-tya
-eor #{c1}
-//FRAGMENT vbuxx=vbuc1_bxor_vbuaa
-eor #{c1}
-tax
-//FRAGMENT vbuxx=vbuc1_bxor_vbuxx
-txa
-eor #{c1}
-tax
-//FRAGMENT vbuxx=vbuc1_bxor_vbuyy
-tya
-eor #{c1}
-tax
-//FRAGMENT vbuyy=vbuc1_bxor_vbuaa
-eor #{c1}
-tay
-//FRAGMENT vbuyy=vbuc1_bxor_vbuxx
-txa
-eor #{c1}
-tay
-//FRAGMENT vbuyy=vbuc1_bxor_vbuyy
-tya
-eor #{c1}
-tay
-//FRAGMENT vbuaa=_deref_pbuc1_bxor_vbuc2
-lda #{c2}
-eor {c1}
-//FRAGMENT vbuxx=_deref_pbuc1_bxor_vbuc2
-lda #{c2}
-eor {c1}
-tax
-//FRAGMENT vbuyy=_deref_pbuc1_bxor_vbuc2
-lda #{c2}
-eor {c1}
+sec
+sbc $ff
 tay
 //FRAGMENT vduz1_neq_vduc1_then_la1
 lda {z1}+3
@@ -15393,25 +14667,6 @@ lda {z2}
 sta {z1}
 lda {z2}+1
 sta {z1}+1
-//FRAGMENT vbuaa=vbuaa_plus_2
-clc
-adc #2
-//FRAGMENT vbuz1_ge__deref_pbuc1_then_la1
-lda {c1}
-ldy {z1}
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT vbuxx_ge__deref_pbuc1_then_la1
-ldy {c1}
-sty $ff
-cpx $ff
-bcs  {la1}
-//FRAGMENT vbuyy_ge__deref_pbuc1_then_la1
-lda {c1}
-sta $ff
-cpy $ff
-bcs {la1}
 //FRAGMENT vduz1=_deref_pduc1
 lda {c1}
 sta {z1}
@@ -15421,65 +14676,6 @@ lda {c1}+2
 sta {z1}+2
 lda {c1}+3
 sta {z1}+3
-//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2_word_vbuz3
-ldy {z2}
-lda {c1},y
-sta {z1}+1
-lda {z3}
-sta {z1}
-//FRAGMENT vwuz1=pbuc1_derefidx_vbuaa_word_vbuz2
-tay
-lda {c1},y
-sta {z1}+1
-lda {z2}
-sta {z1}
-//FRAGMENT vwuz1=pbuc1_derefidx_vbuxx_word_vbuz2
-lda {c1},x
-sta {z1}+1
-lda {z2}
-sta {z1}
-//FRAGMENT vwuz1=pbuc1_derefidx_vbuyy_word_vbuz2
-lda {c1},y
-sta {z1}+1
-lda {z2}
-sta {z1}
-//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2_word_vbuaa
-ldx {z2}
-ldy {c1},x
-sty {z1}+1
-sta {z1}
-//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2_word_vbuxx
-ldy {z2}
-lda {c1},y
-sta {z1}+1
-stx {z1}
-//FRAGMENT vwuz1=pbuc1_derefidx_vbuxx_word_vbuxx
-lda {c1},x
-sta {z1}+1
-stx {z1}
-//FRAGMENT _deref_(_deref_qwuc1)=_deref_(_deref_qwuc2)
-ldy {c2}
-sty $fe
-ldy {c2}+1
-sty $ff
-ldy #0
-lda ($fe),y
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT vbuyy=vbuaa_band_pbuc1_derefidx_vbuyy
-and {c1},y
-tay
-//FRAGMENT _deref_pbuc1_eq__deref_pbuc2_then_la1
-lda {c1}
-cmp {c2}
-beq {la1}
-//FRAGMENT _deref_pbsc1=_deref_pbsc2
-lda {c2}
-sta {c1}
 //FRAGMENT vwsz1_eq_vwsz2_then_la1
 lda {z1}
 cmp {z2}
@@ -15522,128 +14718,6 @@ bvc !+
 eor #$80
 !:
 bpl {la1}
-//FRAGMENT vbuz1=_deref_pbuc1_plus_1
-ldy {c1}
-iny
-sty {z1}
-//FRAGMENT vbuz1=_deref_pbuc1_minus_1
-ldx {c1}
-dex
-stx {z1}
-//FRAGMENT vbuz1=_deref_pbuc1_plus_vbuc2
-lda #{c2}
-clc
-adc {c1}
-sta {z1}
-//FRAGMENT vbuz1=_deref_pbuc1_minus_vbuc2
-lda {c1}
-sec
-sbc #{c2}
-sta {z1}
-//FRAGMENT vbuaa=_deref_pbuc1_plus_1
-lda {c1}
-clc
-adc #1
-//FRAGMENT vbuaa=_deref_pbuc1_minus_1
-lda {c1}
-sec
-sbc #1
-//FRAGMENT vbuaa=_deref_pbuc1_plus_vbuc2
-lda #{c2}
-clc
-adc {c1}
-//FRAGMENT vbuxx=_deref_pbuc1_plus_vbuc2
-lda {c1}
-tax
-axs #-[{c2}]
-//FRAGMENT vbuyy=_deref_pbuc1_plus_vbuc2
-lda #{c2}
-clc
-adc {c1}
-tay
-//FRAGMENT vbuaa=_deref_pbuc1_minus_vbuc2
-lda {c1}
-sec
-sbc #{c2}
-//FRAGMENT vbuxx=_deref_pbuc1_minus_vbuc2
-lda {c1}
-tax
-axs #{c2}
-//FRAGMENT vbuyy=_deref_pbuc1_minus_vbuc2
-lda {c1}
-sec
-sbc #{c2}
-tay
-//FRAGMENT vbuaa_ge_vbuxx_then_la1
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuaa_ge_vbuyy_then_la1
-sty $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuxx=_deref_pbuc1_plus_1
-ldx {c1}
-inx
-//FRAGMENT vbuyy=_deref_pbuc1_plus_1
-ldy {c1}
-iny
-//FRAGMENT vbuxx=_deref_pbuc1_minus_1
-ldx {c1}
-dex
-//FRAGMENT vbuyy=_deref_pbuc1_minus_1
-lda {c1}
-tay
-dey
-//FRAGMENT vbsz1_neq_vbsz2_then_la1
-lda {z1}
-cmp {z2}
-bne {la1}
-//FRAGMENT vbsz1_neq_vbsxx_then_la1
-cpx {z1}
-bne {la1}
-//FRAGMENT vbsxx_neq_vbsz1_then_la1
-cpx {z1}
-bne {la1}
-//FRAGMENT _deref_pbuz1=vbum2
-lda {m2}
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuc1_derefidx_vbum1=vbuc2
-lda #{c2}
-ldy {m1}
-sta {c1},y
-//FRAGMENT vbuz1=vbum2
-lda {m2}
-sta {z1}
-//FRAGMENT vbuaa=vbum1
-lda {m1}
-//FRAGMENT vbuxx=vbum1
-ldx {m1}
-//FRAGMENT vbuyy=vbum1
-ldy {m1}
-//FRAGMENT qbuc1_derefidx_vbuz1=pbuc2
-ldy {z1}
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
-//FRAGMENT qbuc1_derefidx_vbuaa=pbuc2
-tay
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
-//FRAGMENT qbuc1_derefidx_vbuxx=pbuc2
-lda #<{c2}
-sta {c1},x
-lda #>{c2}
-sta {c1}+1,x
-//FRAGMENT qbuc1_derefidx_vbuyy=pbuc2
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
 //FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuz2
 ldy {z2}
 lda {c2},y
@@ -15697,365 +14771,6 @@ sta {z1}
 //FRAGMENT vbuz1=vbuz1_bor_vbuaa
 ora {z1}
 sta {z1}
-//FRAGMENT pbuz1_ge_pbuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bcc !+
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bcs {la1}
-!:
-//FRAGMENT vbuz1=_deref_pbuc1_ror_1
-lda {c1}
-lsr
-sta {z1}
-//FRAGMENT vwuz1_ge_pwuc1_derefidx_vbuz2_then_la1
-ldy {z2}
-lda {c1}+1,y
-cmp {z1}+1
-bne !+
-lda {c1},y
-cmp {z1}
-beq {la1}
-!:
-bcc {la1}
-//FRAGMENT _deref_(_deref_qbuc1)=pbuc2_derefidx_vbuz1
-ldy {z1}
-lda {c2},y
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_qbuc1=_inc__deref_qbuc1
-inc {c1}
-bne !+
-inc {c1}+1
-!:
-//FRAGMENT vbuaa=_deref_pbuc1_ror_1
-lda {c1}
-lsr
-//FRAGMENT vbuxx=_deref_pbuc1_ror_1
-lda {c1}
-lsr
-tax
-//FRAGMENT vbuyy=_deref_pbuc1_ror_1
-lda {c1}
-lsr
-tay
-//FRAGMENT vwuz1_ge_pwuc1_derefidx_vbuaa_then_la1
-tay
-lda {c1}+1,y
-cmp {z1}+1
-bne !+
-lda {c1},y
-cmp {z1}
-beq {la1}
-!:
-bcc {la1}
-//FRAGMENT vwuz1_ge_pwuc1_derefidx_vbuxx_then_la1
-lda {c1}+1,x
-cmp {z1}+1
-bne !+
-lda {c1},x
-cmp {z1}
-beq {la1}
-!:
-bcc {la1}
-//FRAGMENT vwuz1_ge_pwuc1_derefidx_vbuyy_then_la1
-lda {c1}+1,y
-cmp {z1}+1
-bne !+
-lda {c1},y
-cmp {z1}
-beq {la1}
-!:
-bcc {la1}
-//FRAGMENT _deref_(_deref_qbuc1)=pbuc2_derefidx_vbuaa
-tay
-lda {c2},y
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_(_deref_qbuc1)=pbuc2_derefidx_vbuxx
-lda {c2},x
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_(_deref_qbuc1)=pbuc2_derefidx_vbuyy
-lda {c2},y
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_pwuz1=vbuz2
-lda {z2}
-ldy #0
-sta ({z1}),y
-tya
-iny
-sta ({z1}),y
-//FRAGMENT _deref_pwuz1=vbuaa
-ldy #0
-sta ({z1}),y
-tya
-iny
-sta ({z1}),y
-//FRAGMENT _deref_pwuz1=vbuxx
-txa
-ldy #0
-sta ({z1}),y
-tya
-iny
-sta ({z1}),y
-//FRAGMENT _deref_pwuz1=vbuyy
-tya
-ldy #0
-sta ({z1}),y
-tya
-iny
-sta ({z1}),y
-//FRAGMENT vbsz1=vbsaa_rol_1
-asl
-sta {z1}
-//FRAGMENT vbsaa=vbsaa_rol_1
-asl
-//FRAGMENT vbsxx=vbsaa_rol_1
-asl
-tax
-//FRAGMENT vbsyy=vbsaa_rol_1
-asl
-tay
-//FRAGMENT pwsz1=pwsc1_plus_vbuz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pwsc1_derefidx_vbuz1=_deref_pwsz2
-ldx {z1}
-ldy #0
-lda ({z2}),y
-sta {c1},x
-iny
-lda ({z2}),y
-sta {c1}+1,x
-//FRAGMENT pwsz1=pwsc1_plus_vbuaa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pwsz1=pwsc1_plus_vbuxx
-txa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pwsz1=pwsc1_plus_vbuyy
-tya
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pwsc1_derefidx_vbuaa=_deref_pwsz1
-tax
-ldy #0
-lda ({z1}),y
-sta {c1},x
-iny
-lda ({z1}),y
-sta {c1}+1,x
-//FRAGMENT pwsc1_derefidx_vbuxx=_deref_pwsz1
-ldy #0
-lda ({z1}),y
-sta {c1},x
-iny
-lda ({z1}),y
-sta {c1}+1,x
-//FRAGMENT pwsc1_derefidx_vbuyy=_deref_pwsz1
-tya
-tax
-ldy #0
-lda ({z1}),y
-sta {c1},x
-iny
-lda ({z1}),y
-sta {c1}+1,x
-//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuyy
-lda {c1}+1,y
-sta {z1}
-//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuyy
-lda {c1}+1,y
-//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuyy
-lda {c1}+1,y
-tax
-//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuyy
-lda {c1}+1,y
-tay
-//FRAGMENT vbuz1=_lo_pwsc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuz1=_hi_pwsc1_derefidx_vbuz2
-ldy {z2}
-lda {c1}+1,y
-sta {z1}
-//FRAGMENT vbuaa=_lo_pwsc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-//FRAGMENT vbuxx=_lo_pwsc1_derefidx_vbuz1
-ldx {z1}
-lda {c1},x
-tax
-//FRAGMENT vbuyy=_lo_pwsc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-tay
-//FRAGMENT vbuz1=_lo_pwsc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-//FRAGMENT vbuaa=_lo_pwsc1_derefidx_vbuxx
-lda {c1},x
-//FRAGMENT vbuxx=_lo_pwsc1_derefidx_vbuxx
-lda {c1},x
-tax
-//FRAGMENT vbuyy=_lo_pwsc1_derefidx_vbuxx
-lda {c1},x
-tay
-//FRAGMENT vbuz1=_lo_pwsc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuaa=_lo_pwsc1_derefidx_vbuyy
-lda {c1},y
-//FRAGMENT vbuxx=_lo_pwsc1_derefidx_vbuyy
-lda {c1},y
-tax
-//FRAGMENT vbuyy=_lo_pwsc1_derefidx_vbuyy
-lda {c1},y
-tay
-//FRAGMENT vbuaa=_hi_pwsc1_derefidx_vbuz1
-ldy {z1}
-lda {c1}+1,y
-//FRAGMENT vbuxx=_hi_pwsc1_derefidx_vbuz1
-ldx {z1}
-lda {c1}+1,x
-tax
-//FRAGMENT vbuyy=_hi_pwsc1_derefidx_vbuz1
-ldy {z1}
-lda {c1}+1,y
-tay
-//FRAGMENT vbuz1=_hi_pwsc1_derefidx_vbuxx
-lda {c1}+1,x
-sta {z1}
-//FRAGMENT vbuaa=_hi_pwsc1_derefidx_vbuxx
-lda {c1}+1,x
-//FRAGMENT vbuxx=_hi_pwsc1_derefidx_vbuxx
-lda {c1}+1,x
-tax
-//FRAGMENT vbuyy=_hi_pwsc1_derefidx_vbuxx
-lda {c1}+1,x
-tay
-//FRAGMENT vbuz1=_hi_pwsc1_derefidx_vbuyy
-lda {c1}+1,y
-sta {z1}
-//FRAGMENT vbuaa=_hi_pwsc1_derefidx_vbuyy
-lda {c1}+1,y
-//FRAGMENT vbuxx=_hi_pwsc1_derefidx_vbuyy
-lda {c1}+1,y
-tax
-//FRAGMENT vbuyy=_hi_pwsc1_derefidx_vbuyy
-lda {c1}+1,y
-tay
-//FRAGMENT vwuz1=vbuz2_band_vbuc1
-lda {z2}
-and #{c1}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vbuaa_band_vbuc1
-and #{c1}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vbuxx_band_vbuc1
-txa
-and #{c1}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vbuyy_band_vbuc1
-tya
-and #{c1}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuc1_le_vwuc2_then_la1
-lda #>{c1}
-cmp #>{c2}
-bne !+
-lda #<{c1}
-cmp #<{c2}
-beq {la1}
-!:
-bcc {la1}
-//FRAGMENT _deref_pboc1=vboc2
-lda #{c2}
-sta {c1}
-//FRAGMENT _deref_pboc1_then_la1
-lda {c1}
-cmp #0
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuc1=_byte_vwuz2
-ldy #{c1}
-lda {z2}
-sta ({z1}),y
-//FRAGMENT pssz1=pssc1_plus_vwuz2
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT _deref_pssz1=_deref_pssz2_memcpy_vbuc1
-ldy #00
-!:
-lda ({z2}),y
-sta ({z1}),y
-iny
-cpy #{c1}
-bne !-
-//FRAGMENT pssz1=pssc1_plus_vwuz1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_plus_vbuc2
-lda #{c2}
-clc
-adc {c1}
-sta {c1}
 //FRAGMENT pssz1_lt_pssc1_then_la1
 lda {z1}+1
 cmp #>{c1}
@@ -16065,60 +14780,6 @@ lda {z1}
 cmp #<{c1}
 bcc {la1}
 !:
-//FRAGMENT vbuz1_lt__deref_pbuc1_then_la1
-lda {z1}
-cmp {c1}
-bcc {la1}
-//FRAGMENT pwuc1_derefidx_vbuz1=(_deref_qwuc2)_derefidx_vbuz1
-ldy {z1}
-lda {c2}
-sta $fe
-lda {c2}+1
-sta $ff
-lda ($fe),y
-sta {c1},y
-iny
-lda ($fe),y
-sta {c1},y
-//FRAGMENT vbuaa_lt__deref_pbuc1_then_la1
-cmp {c1}
-bcc {la1}
-//FRAGMENT pwuc1_derefidx_vbuaa=(_deref_qwuc2)_derefidx_vbuaa
-tay
-lda {c2}
-sta $fe
-lda {c2}+1
-sta $ff
-lda ($fe),y
-sta {c1},y
-iny
-lda ($fe),y
-sta {c1},y
-//FRAGMENT pwuc1_derefidx_vbuxx=(_deref_qwuc2)_derefidx_vbuxx
-txa
-tay
-lda {c2}
-sta $fe
-lda {c2}+1
-sta $ff
-lda ($fe),y
-sta {c1},y
-iny
-lda ($fe),y
-sta {c1},y
-//FRAGMENT pwuc1_derefidx_vbuyy=(_deref_qwuc2)_derefidx_vbuyy
-lda {c2}
-sta $fe
-lda {c2}+1
-sta $ff
-lda ($fe),y
-sta {c1},y
-iny
-lda ($fe),y
-sta {c1},y
-//FRAGMENT vbuxx_lt__deref_pbuc1_then_la1
-cpx {c1}
-bcc {la1}
 //FRAGMENT (_deref_qbuc1)_derefidx_vbuc2=vbuc3
 lda #{c3}
 ldy #{c2}
@@ -16127,13 +14788,6 @@ stx $fe
 ldx {c1}+1
 stx $ff
 sta ($fe),y
-//FRAGMENT pssz1_neq_pssc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
 //FRAGMENT vwuz1=(_deref_qwuc1)_derefidx_vbuc2
 ldy #{c2}
 lda {c1}
@@ -16145,63 +14799,1070 @@ sta {z1}
 iny
 lda ($fe),y
 sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_(_deref_pbuz2)
-ldy #0
-lda ({z2}),y
-tay
-lda {c2},y
+//FRAGMENT pbuz1_neq_vwuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bne {la1}
+//FRAGMENT vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1
 ldy {z1}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1)
-ldy #0
-lda ({z1}),y
+and {c1},y
 tay
-lda {c2},y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_(_deref_pbuz1)
-tax
-ldy #0
-lda ({z1}),y
-tay
-lda {c2},y
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_(_deref_pbuz1)
-tya
-tax
-ldy #0
-lda ({z1}),y
-tay
-lda {c2},y
-sta {c1},x
-//FRAGMENT qssz1=qssc1_plus_vwsz2
-lda #<{c1}
+//FRAGMENT vbuyy=_lo_pbuz1
+ldy {z1}
+//FRAGMENT vbuz1=vbuz2_bor__lo_pbuz3
+lda {z2}
+ora {z3}
+sta {z1}
+//FRAGMENT vbsaa=pbsc1_derefidx_vbuxx
+lda {c1},x
+//FRAGMENT vbsaa=pbsc1_derefidx_vbuyy
+lda {c1},y
+//FRAGMENT vbsyy_lt_0_then_la1
+cpy #0
+bmi {la1}
+//FRAGMENT vdsz1=vdsz2_rol_4
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+lda {z2}+2
+sta {z1}+2
+lda {z2}+3
+sta {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+//FRAGMENT vwuz1=vbuc1_plus_vwuz2
+lda #{c1}
 clc
 adc {z2}
 sta {z1}
-lda #>{c1}
+lda #0
 adc {z2}+1
-sta {z1}+1 
-//FRAGMENT pssz1=_deref_qssz2
+sta {z1}+1
+//FRAGMENT vwuz1=vbuc1_plus__hi_vdsz2
+NO_SYNTHESIS
+//FRAGMENT vwuz1=vwuc1_plus__hi_vdsz2
+clc
+lda #<{c1}
+adc {z2}+2
+sta {z1}
+lda #>{c1}
+adc {z2}+3
+sta {z1}+1
+//FRAGMENT vwuz1=vbsc1_plus__hi_vdsz2
+NO_SYNTHESIS
+//FRAGMENT vwuz1=vwuz2_minus_vwuz1
+lda {z2}
+sec
+sbc {z1}
+sta {z1}
+lda {z2}+1
+sbc {z1}+1
+sta {z1}+1
+//FRAGMENT vdsz1=vdsz1_rol_4
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+//FRAGMENT vwsz1=vwsz2_ror_2
+lda {z2}+1
+cmp #$80
+ror
+sta {z1}+1
+lda {z2}
+ror
+sta {z1}
+lda {z1}+1
+cmp #$80
+ror {z1}+1
+ror {z1}
+//FRAGMENT vwsz1=vbsc1_plus_vwsz2
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vwsz1=vwsz1_plus_vbuz2
+clc
+lda {z1}
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc #0
+sta {z1}+1
+//FRAGMENT vwsz1=vwsc1_plus_vwsz1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vwsz1=vbsc1_plus_vwsz1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuxx
+lda {c1},x
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuyy
+lda {c1},y
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuz1
+ldy {z1}
+txa
+and {c1},y
+//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuz1
+tya
+ldy {z1}
+and {c1},y
+//FRAGMENT vdsz1_lt_0_then_la1
+lda {z1}+3
+bmi {la1}
+//FRAGMENT vdsz1=_neg_vdsz1
+sec
+lda {z1}
+eor #$ff
+adc #$0
+sta {z1}
+lda {z1}+1
+eor #$ff
+adc #$0
+sta {z1}+1
+lda {z1}+2
+eor #$ff
+adc #$0
+sta {z1}+2
+lda {z1}+3
+eor #$ff
+adc #$0
+sta {z1}+3
+//FRAGMENT _deref_qssz1=pssz2
 ldy #0
+lda {z2}
+sta ({z1}),y
+iny
+lda {z2}+1
+sta ({z1}),y
+//FRAGMENT vwuz1=vwuz1_plus_pwuz2_derefidx_vbuc1
+ldy #{c1}
+clc
+lda {z1}
+adc ({z2}),y
+sta {z1}
+iny
+lda {z1}+1
+adc ({z2}),y
+sta {z1}+1
+//FRAGMENT _deref_pbuz1_eq__deref_pbuz2_then_la1
+ldy #0
+lda ({z1}),y
+ldy #0
+cmp ({z2}),y
+beq {la1}
+//FRAGMENT vbsz1_le_0_then_la1
+lda {z1}
+cmp #1
+bmi {la1}
+//FRAGMENT vwsz1=vwsz1_minus_vbsz2
+lda {z2}
+sta $fe
+ora #$7f
+bmi !+
+lda #0
+!:
+sta $ff
+sec
+lda {z1}
+sbc $fe
+sta {z1}
+lda {z1}+1
+sbc $ff
+sta {z1}+1
+//FRAGMENT _deref_pbsc1_ge_0_then_la1
+lda {c1}
+cmp #0
+bpl {la1}
+//FRAGMENT vbuz1=vbuz2_minus__deref_pbuc1
+lda {z2}
+sec
+sbc {c1}
+sta {z1}
+//FRAGMENT vbsaa_le_0_then_la1
+cmp #1
+bmi {la1}
+//FRAGMENT vbsaa_neq_vbsz1_then_la1
+cmp {z1}
+bne {la1}
+//FRAGMENT vwsz1=vwsz1_minus_vbsxx
+txa
+sta $fe
+ora #$7f
+bmi !+
+lda #0
+!:
+sta $ff
+sec
+lda {z1}
+sbc $fe
+sta {z1}
+lda {z1}+1
+sbc $ff
+sta {z1}+1
+//FRAGMENT vwsz1=vwsz1_minus_vbsyy
+tya
+sta $fe
+ora #$7f
+bmi !+
+lda #0
+!:
+sta $ff
+sec
+lda {z1}
+sbc $fe
+sta {z1}
+lda {z1}+1
+sbc $ff
+sta {z1}+1
+//FRAGMENT vbuaa=vbuz1_minus__deref_pbuc1
+lda {z1}
+sec
+sbc {c1}
+//FRAGMENT vbuxx=vbuz1_minus__deref_pbuc1
+lda {z1}
+sec
+sbc {c1}
+tax
+//FRAGMENT vbuyy=vbuz1_minus__deref_pbuc1
+lda {z1}
+sec
+sbc {c1}
+tay
+//FRAGMENT vbuz1=vbuaa_minus__deref_pbuc1
+sec
+sbc {c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_minus__deref_pbuc1
+sec
+sbc {c1}
+//FRAGMENT vbuxx=vbuaa_minus__deref_pbuc1
+sec
+sbc {c1}
+tax
+//FRAGMENT vbuyy=vbuaa_minus__deref_pbuc1
+sec
+sbc {c1}
+tay
+//FRAGMENT vbuz1=vbuxx_minus__deref_pbuc1
+txa
+sec
+sbc {c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_minus__deref_pbuc1
+txa
+sec
+sbc {c1}
+//FRAGMENT vbuxx=vbuxx_minus__deref_pbuc1
+txa
+sec
+sbc {c1}
+tax
+//FRAGMENT vbuyy=vbuxx_minus__deref_pbuc1
+txa
+sec
+sbc {c1}
+tay
+//FRAGMENT vbuz1=vbuyy_minus__deref_pbuc1
+tya
+sec
+sbc {c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_minus__deref_pbuc1
+tya
+sec
+sbc {c1}
+//FRAGMENT vbuxx=vbuyy_minus__deref_pbuc1
+tya
+sec
+sbc {c1}
+tax
+//FRAGMENT vbuyy=vbuyy_minus__deref_pbuc1
+tya
+sec
+sbc {c1}
+tay
+//FRAGMENT vbsxx_le_0_then_la1
+cpx #1
+bmi {la1}
+//FRAGMENT vbsyy_neq_vbsz1_then_la1
+cpy {z1}
+bne {la1}
+//FRAGMENT vbsyy=_dec_vbsyy
+dey
+//FRAGMENT vbsyy_neq_vbsxx_then_la1
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT vbsyy_le_0_then_la1
+cpy #1
+bmi {la1}
+//FRAGMENT vbsz1_neq_vbsyy_then_la1
+cpy {z1}
+bne {la1}
+//FRAGMENT vbsxx_neq_vbsyy_then_la1
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuz2
+lda {z1}
+ldy {z2}
+ora {c1},y
+sta {z1}
+//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuz4)_plus_pbuz5_derefidx_(pbuz6_derefidx_vbuz4)
+ldy {z4}
+lda ({z6}),y
+sta $ff
+lda ({z3}),y
+tay
 lda ({z2}),y
+ldy $ff
+clc
+adc ({z5}),y
+sta {z1}
+//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+ora {z1}
+sta {z1}
+//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuxx
+lda {c1},x
+ora {z1}
+sta {z1}
+//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuyy
+lda {c1},y
+ora {z1}
+sta {z1}
+//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuz1
+txa
+ldx {z1}
+ora {c1},x
+tax
+//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuaa
+tay
+txa
+ora {c1},y
+tax
+//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuxx
+txa
+ora {c1},x
+tax
+//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuyy
+txa
+ora {c1},y
+tax
+//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuz1
+tya
+ldy {z1}
+ora {c1},y
+tay
+//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuaa
+tax
+tya
+ora {c1},x
+tay
+//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuxx
+tya
+ora {c1},x
+tay
+//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuyy
+tya
+ora {c1},y
+tay
+//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3)
+ldy {z3}
+lda ({z5}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z4}),y
+//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3)
+ldy {z3}
+lda ({z5}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z4}),y
+tax
+//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3)
+ldy {z3}
+lda ({z5}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z4}),y
+tay
+//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuaa)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuaa)
+tay
+lda ({z5}),y
+sta $ff
+lda ({z3}),y
+tay
+lda ({z2}),y
+ldy $ff
+clc
+adc ({z4}),y
+sta {z1}
+//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa)
+tay
+lda ({z4}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z3}),y
+//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa)
+tay
+lda ({z4}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z3}),y
+tax
+//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa)
+tay
+lda ({z4}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z3}),y
+tay
+//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuxx)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuxx)
+txa
+tay
+lda ({z5}),y
+sta $ff
+lda ({z3}),y
+tay
+lda ({z2}),y
+ldy $ff
+clc
+adc ({z4}),y
+sta {z1}
+//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx)
+txa
+tay
+lda ({z4}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z3}),y
+//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx)
+txa
+tay
+lda ({z4}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z3}),y
+tax
+//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx)
+txa
+tay
+lda ({z4}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z3}),y
+tay
+//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuyy)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuyy)
+lda ({z5}),y
+sta $ff
+lda ({z3}),y
+tay
+lda ({z2}),y
+ldy $ff
+clc
+adc ({z4}),y
+sta {z1}
+//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy)
+lda ({z4}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z3}),y
+//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy)
+lda ({z4}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z3}),y
+tax
+//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy)
+lda ({z4}),y
+sta $ff
+lda ({z2}),y
+tay
+lda ({z1}),y
+ldy $ff
+clc
+adc ({z3}),y
+tay
+//FRAGMENT pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuz2
+ldx {z1}
+sec
+lda {c1},x
+sbc {z2}
+sta {c1},x
+bcs !+
+dec {c1}+1,x
+!:
+//FRAGMENT pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuxx
+ldy {z1}
+stx $ff
+sec
+lda {c1},y
+sbc $ff
+sta {c1},y
+lda {c1}+1,y
+sbc #0
+sta {c1},y
+//FRAGMENT pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuyy
+tya
+ldy {z1}
+clc
+sbc {c1},y 
+eor #$ff
+sta {c1},y
+bcc !+
+lda {c1}+1,y
+sbc #$01
+sta {c1}+1,y
+!:
+//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuz1
+tax
+sec
+lda {c1},x
+sbc {z1}
+sta {c1},x
+bcs !+
+dec {c1}+1,x
+!:
+//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuxx
+sec
+stx $ff
+tax
+lda {c1},x
+sbc $ff
+sta {c1},x
+bcs !+
+dec {c1}+1,x
+!:
+//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuyy
+sec
+sty $ff
+tay
+lda {c1},y
+sbc $ff
+sta {c1},y
+lda {c1}+1,y
+sbc #$00
+sta {c1}+1,y
+//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuz1
+sec
+lda {c1},x
+sbc {z1}
+sta {c1},x
+bcs !+
+dec {c1}+1,x
+!:
+//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuxx
+txa
+clc
+sbc {c1},x
+eor #$ff
+sta {c1},x
+bcc !+
+lda {c1}+1,x
+sbc #$01
+sta {c1}+1,x
+!:
+//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuyy
+tya
+clc
+sbc {c1},x
+eor #$ff
+sta {c1},x
+bcc !+
+lda {c1}+1,x
+sbc #$01
+sta {c1}+1,x
+!:
+//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuz1
+sec
+lda {c1},y
+sbc {z1}
+sta {c1},y
+lda {c1}+1,y
+sbc #0
+sta {c1}+1,y
+//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuxx
+stx $ff
+sec
+lda {c1},y
+sbc $ff
+sta {c1},y
+lda {c1}+1,y
+sbc #0
+sta {c1},y
+//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuyy
+tya
+clc
+sbc {c1},y 
+eor #$ff
+sta {c1},y
+bcc !+
+lda {c1}+1,y
+sbc #$01
+sta {c1}+1,y
+!:
+//FRAGMENT vwsz1=_deref_pwsz2_minus__deref_pwsz3
+ldy #0
+sec
+lda ({z2}),y
+sbc ({z3}),y
 sta {z1}
 iny
 lda ({z2}),y
+sbc ({z3}),y
 sta {z1}+1
-//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuc1
-ldy #{c1}
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT qssz1=qssc1_plus_vwsz1
-lda #<{c1}
+//FRAGMENT vwsz1=vbsz2_plus_vwsc1
+lda {z2}
+tax
+clc
+adc #<{c1}
+sta {z1}
+txa
+ora #$7f
+bmi !+
+lda #0
+!:
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vwsz1=vbsaa_plus_vwsc1
+tax
+clc
+adc #<{c1}
+sta {z1}
+txa
+ora #$7f
+bmi !+
+lda #0
+!:
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vwsz1=vbsxx_plus_vwsc1
+txa
+tax
+clc
+adc #<{c1}
+sta {z1}
+txa
+ora #$7f
+bmi !+
+lda #0
+!:
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vwsz1=vbsyy_plus_vwsc1
+tya
+tax
+clc
+adc #<{c1}
+sta {z1}
+txa
+ora #$7f
+bmi !+
+lda #0
+!:
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vduz1_eq_vduz2_then_la1
+lda {z1}
+cmp {z2}
+bne !+
+lda {z1}+1
+cmp {z2}+1
+bne !+
+lda {z1}+2
+cmp {z2}+2
+bne !+
+lda {z1}+3
+cmp {z2}+3
+beq {la1}
+!:
+//FRAGMENT vdsz1_eq_vdsz2_then_la1
+lda {z1}
+cmp {z2}
+bne !+
+lda {z1}+1
+cmp {z2}+1
+bne !+
+lda {z1}+2
+cmp {z2}+2
+bne !+
+lda {z1}+3
+cmp {z2}+3
+beq {la1}
+!:
+//FRAGMENT vdsz1=vdsz1_plus_vwsz2
+lda {z2}+1
+ora #$7f
+bmi !+
+lda #0
+!:
+sta $ff
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc {z2}+1
+sta {z1}+1
+lda {z1}+2
+adc $ff
+sta {z1}+2
+lda {z1}+3
+adc $ff
+sta {z1}+3
+//FRAGMENT vdsz1=vdsz1_minus_vwsz2
+lda {z2}+1
+ora #$7f
+bmi !+
+lda #0
+!:
+sta $ff
+sec
+lda {z1}
+sbc {z2}
+sta {z1}
+lda {z1}+1
+sbc {z2}+1
+sta {z1}+1
+lda {z1}+2
+sbc $ff
+sta {z1}+2
+lda {z1}+3
+sbc $ff
+sta {z1}+3
+//FRAGMENT vwsz1=_dec_vwsz1
+lda {z1}
+bne !+
+dec {z1}+1
+!:
+dec {z1}
+//FRAGMENT pbuz1=pbuz1_plus_vbuz2
+lda {z2}
 clc
 adc {z1}
 sta {z1}
-lda #>{c1}
-adc {z1}+1
-sta {z1}+1 
-//FRAGMENT pssz1=_deref_qssz1
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT pbuz1=pbuz1_plus_vbuxx
+txa
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vwsz1=pwsc1_derefidx_vbuz2_minus_pwsc2_derefidx_vbuz2
+ldy {z2}
+sec
+lda {c1},y
+sbc {c2},y
+sta {z1}
+lda {c1}+1,y
+sbc {c2}+1,y
+sta {z1}+1
+//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_rol_4
+ldy {z2}
+lda {c1},y
+asl
+sta {z1}
+lda {c1}+1,y
+rol
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT pbsc1_derefidx_vbuz1=vbsc2
+lda #{c2}
+ldy {z1}
+sta {c1},y
+//FRAGMENT vwsz1=pwsc1_derefidx_vbuaa_minus_pwsc2_derefidx_vbuaa
+tay
+sec
+lda {c1},y
+sbc {c2},y
+sta {z1}
+lda {c1}+1,y
+sbc {c2}+1,y
+sta {z1}+1
+//FRAGMENT vwsz1=pwsc1_derefidx_vbuxx_minus_pwsc2_derefidx_vbuxx
+sec
+lda {c1},x
+sbc {c2},x
+sta {z1}
+lda {c1}+1,x
+sbc {c2}+1,x
+sta {z1}+1
+//FRAGMENT vwsz1=pwsc1_derefidx_vbuyy_minus_pwsc2_derefidx_vbuyy
+sec
+lda {c1},y
+sbc {c2},y
+sta {z1}
+lda {c1}+1,y
+sbc {c2}+1,y
+sta {z1}+1
+//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuxx
+lda {c1},x
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuyy
+lda {c1},y
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_rol_4
+lda {c1},x
+asl
+sta {z1}
+lda {c1}+1,x
+rol
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_rol_4
+lda {c1},y
+asl
+sta {z1}
+lda {c1}+1,y
+rol
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT pbsc1_derefidx_vbuxx=vbsc2
+lda #{c2}
+sta {c1},x
+//FRAGMENT pbsc1_derefidx_vbuyy=vbsc2
+lda #{c2}
+sta {c1},y
+//FRAGMENT vbum1=vbum2
+lda {m2}
+sta {m1}
+//FRAGMENT vbum1=vbum1_plus_vbuc1
+lax {m1}
+axs #-[{c1}]
+stx {m1}
+//FRAGMENT pbuc1_derefidx_vbum1=pbuc2_derefidx_vbum2
+ldy {m2}
+lda {c2},y
+ldy {m1}
+sta {c1},y
+//FRAGMENT vwsz1=_sword_vbsz2
+lda {z2}
+sta {z1}
+// sign-extend the byte
+ora #$7f 
+bmi !+
+lda #0
+!:
+sta {z1}+1
+//FRAGMENT vwsz1=_sword_vbsyy
+tya
+sta {z1}
+// sign-extend the byte
+ora #$7f 
+bmi !+
+lda #0
+!:
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_plus__deref_pwuz3
+ldy #0
+clc
+lda {z2}
+adc ({z3}),y
+sta {z1}
+iny
+lda {z2}+1
+adc ({z3}),y
+sta {z1}+1
+//FRAGMENT pvoz1=_deref_qvoc1
+lda {c1}
+sta {z1}
+lda {c1}+1
+sta {z1}+1
+//FRAGMENT vbuz1=pbuc1_derefidx_(_deref_pbuc2)
+ldy {c2}
+lda {c1},y
+sta {z1}
+//FRAGMENT _deref_pwuc1=_inc__deref_pwuc1
+inc {c1}
+bne !+
+inc {c1}+1
+!:
+//FRAGMENT _deref_pwuc1_eq_vbuc2_then_la1
+lda {c1}+1
+bne !+
+lda {c1}
+cmp #{c2}
+beq {la1}
+!:
+//FRAGMENT _deref_(_deref_qbuc1)=_deref_pbuc2
+lda {c2}
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+sta ($fe),y
+//FRAGMENT _deref_(_deref_qbuc1)=_deref_(_deref_qbuc1)_bxor_vbuc2
+ldy {c1}
+sty $fe
+ldy {c1}+1
+sty $ff
+ldy #0
+lda ($fe),y
+eor #{c2}
+sta ($fe),y
+//FRAGMENT pbuz1=_deref_qbuc1_plus_vwuz2
+clc
+lda {z2}
+adc {c1}
+sta {z1}
+lda {z2}+1
+adc {c1}+1
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz2_plus__deref_pwuc1
+clc
+lda {c1}
+adc {z2}
+sta {z1}
+lda {c1}+1
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT vbuaa=pbuc1_derefidx_(_deref_pbuc2)
+ldy {c2}
+lda {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_(_deref_pbuc2)
+ldy {c2}
+ldx {c1},y
+//FRAGMENT vbuyy=pbuc1_derefidx_(_deref_pbuc2)
+ldx {c2}
+ldy {c1},x
+//FRAGMENT vwuz1=_deref_pwuz1
 ldy #0
 lda ({z1}),y
 pha
@@ -16210,17 +15871,438 @@ lda ({z1}),y
 sta {z1}+1
 pla
 sta {z1}
-//FRAGMENT vboz1=vboc1
-lda #{c1}
+//FRAGMENT vwuz1=_deref_pwuz1_plus__deref_pwuz2
+ldy #0
+clc
+lda ({z1}),y
+adc ({z2}),y
+pha
+iny
+lda ({z1}),y
+adc ({z2}),y
+sta {z1}+1
+pla
 sta {z1}
-//FRAGMENT vboaa=vboc1
-lda #{c1}
-//FRAGMENT vboxx=vboc1
-lda #{c1}
-tax
-//FRAGMENT vboyy=vboc1
-lda #{c1}
+//FRAGMENT vwuz1=vwuz2_plus__deref_pwuz1
+ldy #0
+clc
+lda ({z1}),y
+adc {z2}
+pha
+iny
+lda ({z1}),y
+adc {z2}+1
+sta {z1}+1
+pla
+sta {z1}
+//FRAGMENT pbuz1=_deref_qbuc1_plus_vwuz1
+clc
+lda {z1}
+adc {c1}
+sta {z1}
+lda {z1}+1
+adc {c1}+1
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz1_plus__deref_pwuc1
+clc
+lda {c1}
+adc {z1}
+sta {z1}
+lda {c1}+1
+adc {z1}+1
+sta {z1}+1
+//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuz3_then_la1
+ldy {z2}
+lda ({z1}),y
+
+cmp {z3}
+bne {la1}
+//FRAGMENT _deref_pbuz1_neq_vbuz2_then_la1
+ldy #0
+lda ({z1}),y
+cmp {z2}
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuaa_neq_vbuz2_then_la1
 tay
+lda ({z1}),y
+
+cmp {z2}
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuz2_then_la1
+txa
+tay
+lda ({z1}),y
+
+cmp {z2}
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuz2_then_la1
+lda ({z1}),y
+
+cmp {z2}
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuxx_then_la1
+ldy {z2}
+lda ({z1}),y
+
+tay
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuaa_neq_vbuxx_then_la1
+tay
+lda ({z1}),y
+
+tay
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuxx_then_la1
+txa
+tay
+lda ({z1}),y
+
+tay
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuxx_then_la1
+lda ({z1}),y
+
+tay
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuyy_then_la1
+tya
+ldy {z2}
+tax
+lda ({z1}),y
+
+tay
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuaa_neq_vbuyy_then_la1
+NO_SYNTHESIS
+//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuyy_then_la1
+NO_SYNTHESIS
+//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuyy_then_la1
+lda ({z1}),y
+
+tax
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT _deref_pbuz1_neq_vbuxx_then_la1
+ldy #0
+lda ({z1}),y
+tay
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuc1_then_la1
+lda ({z1}),y
+
+cmp #{c1}
+bne {la1}
+//FRAGMENT pbuz1=pbuz1_plus_vbuyy
+tya
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT 0_eq_pbuc1_derefidx_vbuz1_then_la1
+ldy {z1}
+lda {c1},y
+cmp #0
+beq {la1}
+//FRAGMENT 0_eq__deref_pbuz1_then_la1
+ldy #0
+lda ({z1}),y
+cmp #0
+beq {la1}
+//FRAGMENT pbuz1_derefidx_vbuz2_neq_pbuz3_derefidx_vbuz2_then_la1
+ldy {z2}
+lda ({z1}),y
+
+tax
+lda ({z3}),y
+
+tay
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT 0_eq_pbuc1_derefidx_vbuaa_then_la1
+tay
+lda {c1},y
+cmp #0
+beq {la1}
+//FRAGMENT 0_eq_pbuc1_derefidx_vbuxx_then_la1
+lda {c1},x
+cmp #0
+beq {la1}
+//FRAGMENT 0_eq_pbuc1_derefidx_vbuyy_then_la1
+lda {c1},y
+cmp #0
+beq {la1}
+//FRAGMENT pbuz1_derefidx_vbuaa_neq_pbuz2_derefidx_vbuaa_then_la1
+tay
+lda ({z1}),y
+
+tax
+lda ({z2}),y
+
+tay
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuxx_neq_pbuz2_derefidx_vbuxx_then_la1
+txa
+tay
+lda ({z1}),y
+
+tax
+lda ({z2}),y
+
+tay
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT pbuz1_derefidx_vbuyy_neq_pbuz2_derefidx_vbuyy_then_la1
+lda ({z1}),y
+
+tax
+lda ({z2}),y
+
+tay
+stx $ff
+cpy $ff
+bne {la1}
+//FRAGMENT vbsz1=vbsyy_minus_vbsaa
+sta $ff
+tya
+sec
+sbc $ff
+sta {z1}
+//FRAGMENT vbsxx=vbsyy_minus_vbsaa
+sta $ff
+tya
+sec
+sbc $ff
+tax
+//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuz4
+ldy {z4}
+clc
+lda {z2}
+adc ({z3}),y
+sta {z1}
+bcc !+
+inc {z2}+1
+!:
+//FRAGMENT vwsz1=vwsz2_minus_vbuc1
+sec
+lda {z2}
+sbc #{c1}
+sta {z1}
+lda {z2}+1
+sbc #0
+sta {z1}+1
+//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuxx
+txa
+tay
+clc
+lda {z2}
+adc ({z3}),y
+sta {z1}
+bcc !+
+inc {z2}+1
+!:
+//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuyy
+clc
+lda {z2}
+adc ({z3}),y
+sta {z1}
+bcc !+
+inc {z2}+1
+!:
+//FRAGMENT vwsz1=vwsz2_plus_vwsz1
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT vwsz1=vwsz1_minus_vbuc1
+sec
+lda {z1}
+sbc #{c1}
+sta {z1}
+bcs !+
+dec {z1}+1
+!:
+//FRAGMENT vwsz1=vwsz1_plus_pbuz2_derefidx_vbuyy
+clc
+lda {z1}
+adc ({z2}),y
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vbsz1=vbsz2_minus_vbsc1
+lax {z2}
+axs #{c1}
+stx {z1}
+//FRAGMENT vbsz1=vbsaa_minus_vbsc1
+sec
+sbc #{c1}
+sta {z1}
+//FRAGMENT vbsz1=vbsxx_minus_vbsc1
+txa
+axs #{c1}
+stx {z1}
+//FRAGMENT vbsz1=vbsyy_minus_vbsc1
+tya
+sec
+sbc #{c1}
+sta {z1}
+//FRAGMENT vbsaa=vbsz1_minus_vbsc1
+lda {z1}
+sec
+sbc #{c1}
+//FRAGMENT vbsaa=vbsaa_minus_vbsc1
+sec
+sbc #{c1}
+//FRAGMENT vbsaa=vbsxx_minus_vbsc1
+txa
+sec
+sbc #{c1}
+//FRAGMENT vbsaa=vbsyy_minus_vbsc1
+tya
+sec
+sbc #{c1}
+//FRAGMENT vbsxx=vbsz1_minus_vbsc1
+lax {z1}
+axs #{c1}
+//FRAGMENT vbsxx=vbsaa_minus_vbsc1
+tax
+axs #{c1}
+//FRAGMENT vbsxx=vbsyy_minus_vbsc1
+tya
+tax
+axs #{c1}
+//FRAGMENT vbsyy=vbsz1_minus_vbsc1
+lda {z1}
+sec
+sbc #{c1}
+tay
+//FRAGMENT vbsyy=vbsaa_minus_vbsc1
+sec
+sbc #{c1}
+tay
+//FRAGMENT vbsyy=vbsxx_minus_vbsc1
+txa
+sec
+sbc #{c1}
+tay
+//FRAGMENT vbsyy=vbsyy_minus_vbsaa
+sta $ff
+tya
+sec
+sbc $ff
+tay
+//FRAGMENT vwsz1=vbsz2
+lda {z2}
+sta {z1}
+and #$80
+beq !+
+lda #$ff
+!:
+sta {z1}+1
+//FRAGMENT vbsaa_neq_0_then_la1
+cmp #0
+bne {la1}
+//FRAGMENT vwsz1=vbsaa
+sta {z1}
+and #$80
+beq !+
+lda #$ff
+!:
+sta {z1}+1
+//FRAGMENT vwsz1=vbsxx
+txa
+sta {z1}
+and #$80
+beq !+
+lda #$ff
+!:
+sta {z1}+1
+//FRAGMENT vwsz1=vbsyy
+tya
+sta {z1}
+and #$80
+beq !+
+lda #$ff
+!:
+sta {z1}+1
+//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuz1_then_la1
+tay
+lda {c1},y
+cmp {z1}
+beq {la1}
+//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuaa_then_la1
+ldx {z1}
+tay
+lda {c1},x
+tax
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuaa_then_la1
+tax
+lda {c1},x
+tay
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuaa_then_la1
+tay
+lda {c1},x
+tax
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuaa_then_la1
+tax
+lda {c1},y
+tay
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuxx_then_la1
+tay
+lda {c1},y
+tay
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuyy_then_la1
+tax
+lda {c1},x
+tax
+sty $ff
+cpx $ff
+beq  {la1}
+//FRAGMENT vbuz1=vbuxx_minus_1
+dex
+stx {z1}
+//FRAGMENT vbuz1=vbuyy_minus_1
+tya
+sec
+sbc #1
+sta {z1}
 //FRAGMENT vbuxx_neq_vbuaa_then_la1
 tay
 stx $ff
@@ -16231,12 +16313,6 @@ tax
 stx $ff
 cpy $ff
 bne {la1}
-//FRAGMENT vwuz1=_deref_pbuz2_word__deref_pbuz3
-ldy #0
-lda ({z3}),y
-sta {z1}
-lda ({z2}),y
-sta {z1}+1
 //FRAGMENT vbuz1=vbuz2_minus_2
 lda {z2}
 sec
@@ -16246,31 +16322,19 @@ sta {z1}
 ldx {z1}
 dex
 dex
-//FRAGMENT vbuz1=_deref_pbuc1_plus_2
-lda {c1}
-clc
-adc #2
-sta {z1}
-//FRAGMENT vbuaa=_deref_pbuc1_plus_2
-lda {c1}
-clc
-adc #2
-//FRAGMENT vbuxx=_deref_pbuc1_plus_2
-ldx {c1}
-inx
-inx
-//FRAGMENT vbuyy=_deref_pbuc1_plus_2
-ldy {c1}
-iny
-iny
-//FRAGMENT 0_neq_vwuz1_then_la1
-lda {z1}
-ora {z1}+1
-bne {la1}
-//FRAGMENT _deref_pbuz1=_byte_vwsz2
+//FRAGMENT vwuz1=vwuz2_ror_6
 lda {z2}
-ldy #0
-sta ({z1}),y
+asl
+sta $ff
+lda {z2}+1
+rol
+sta {z1}
+lda #0
+rol
+sta {z1}+1
+asl $ff
+rol {z1}
+rol {z1}+1
 //FRAGMENT vwuz1=vwuz2_rol_6
 lda {z2}+1
 lsr
@@ -16284,6 +16348,14 @@ sta {z1}
 lsr $ff
 ror {z1}+1
 ror {z1}
+//FRAGMENT vwuz1=vwuz2_minus_vbuc1
+sec
+lda {z2}
+sbc #{c1}
+sta {z1}
+lda {z2}+1
+sbc #0
+sta {z1}+1
 //FRAGMENT vduz1=vwuz2
 lda {z2}
 sta {z1}
@@ -16511,6 +16583,19 @@ and {z1}
 sta {z1}
 lda #0
 sta {z1}+1
+//FRAGMENT vwuz1=vwuz1_ror_6
+lda {z1}
+asl
+sta $ff
+lda {z1}+1
+rol
+sta {z1}
+lda #0
+rol
+sta {z1}+1
+asl $ff
+rol {z1}
+rol {z1}+1
 //FRAGMENT vwuz1=vwuz1_rol_6
 lda {z1}+1
 lsr
@@ -16605,2214 +16690,6 @@ sta {z1}+2
 lda {z1}+3
 adc {z2}+3
 sta {z1}+3
-//FRAGMENT vbuz1=vbuxx_band_pbuz2_derefidx_vbuc1
-ldy #{c1}
-txa
-and ({z2}),y
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_band_pbuz1_derefidx_vbuc1
-ldy #{c1}
-txa
-and ({z1}),y
-//FRAGMENT vbuxx=vbuxx_band_pbuz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-axs #0
-//FRAGMENT vbuyy=vbuxx_band_pbuz1_derefidx_vbuc1
-ldy #{c1}
-txa
-and ({z1}),y
-tay
-//FRAGMENT _deref_pbuc1_eq_vbuc2_then_la1
-lda #{c2}
-cmp {c1}
-beq {la1}
-//FRAGMENT vbsz1=vbsz2_ror_1
-lda {z2}
-cmp #$80
-ror
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_ror_1
-lda {z1}
-cmp #$80
-ror
-//FRAGMENT vbsxx=vbsz1_ror_1
-lda {z1}
-cmp #$80
-ror
-tax
-//FRAGMENT vbsyy=vbsz1_ror_1
-lda {z1}
-cmp #$80
-ror
-tay
-//FRAGMENT vbsz1=vbsaa_ror_1
-cmp #$80
-ror
-sta {z1}
-//FRAGMENT vbsaa=vbsaa_ror_1
-cmp #$80
-ror
-//FRAGMENT vbsxx=vbsaa_ror_1
-cmp #$80
-ror
-tax
-//FRAGMENT vbsyy=vbsaa_ror_1
-cmp #$80
-ror
-tay
-//FRAGMENT vbsz1=vbsxx_ror_1
-txa
-cmp #$80
-ror
-sta {z1}
-//FRAGMENT vbsaa=vbsxx_ror_1
-txa
-cmp #$80
-ror
-//FRAGMENT vbsxx=vbsxx_ror_1
-txa
-cmp #$80
-ror
-tax
-//FRAGMENT vbsyy=vbsxx_ror_1
-txa
-cmp #$80
-ror
-tay
-//FRAGMENT vbsz1=vbsyy_ror_1
-tya
-cmp #$80
-ror
-sta {z1}
-//FRAGMENT vbsaa=vbsyy_ror_1
-tya
-cmp #$80
-ror
-//FRAGMENT vbsxx=vbsyy_ror_1
-tya
-cmp #$80
-ror
-tax
-//FRAGMENT vbsyy=vbsyy_ror_1
-tya
-cmp #$80
-ror
-tay
-//FRAGMENT vbsaa=pbsc1_derefidx_vbuxx
-lda {c1},x
-//FRAGMENT vbsaa=pbsc1_derefidx_vbuyy
-lda {c1},y
-//FRAGMENT vbuxx=vbuaa_band_vbuz1
-ldx {z1}
-axs #0
-//FRAGMENT vbuxx=vbuxx_band_vbuz1
-lda {z1}
-axs #0
-//FRAGMENT vbuxx=vbuyy_band_vbuz1
-ldx {z1}
-tya
-axs #0
-//FRAGMENT vbuyy=vbuaa_band_vbuz1
-and {z1}
-tay
-//FRAGMENT vbuyy=vbuxx_band_vbuz1
-txa
-and {z1}
-tay
-//FRAGMENT vbuyy=vbuyy_band_vbuz1
-tya
-and {z1}
-tay
-//FRAGMENT vdsz1=vdsz2_rol_4
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vwuz1=vbuc1_plus_vwuz2
-lda #{c1}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vbuc1_plus__hi_vdsz2
-NO_SYNTHESIS
-//FRAGMENT vwuz1=vwuc1_plus__hi_vdsz2
-clc
-lda #<{c1}
-adc {z2}+2
-sta {z1}
-lda #>{c1}
-adc {z2}+3
-sta {z1}+1
-//FRAGMENT vwuz1=vbsc1_plus__hi_vdsz2
-NO_SYNTHESIS
-//FRAGMENT vwuz1=vwuz2_minus_vwuz1
-lda {z2}
-sec
-sbc {z1}
-sta {z1}
-lda {z2}+1
-sbc {z1}+1
-sta {z1}+1
-//FRAGMENT vdsz1=vdsz1_rol_4
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vwsz1=vwsz2_ror_2
-lda {z2}+1
-cmp #$80
-ror
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-lda {z1}+1
-cmp #$80
-ror {z1}+1
-ror {z1}
-//FRAGMENT vwsz1=vbsc1_plus_vwsz2
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_plus_vbuz2
-clc
-lda {z1}
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc #0
-sta {z1}+1
-//FRAGMENT vwsz1=vwsc1_plus_vwsz1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vbsc1_plus_vwsz1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT pbuz1_ge_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bcc !+
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bcs {la1}
-!:
-//FRAGMENT pbuc1_derefidx_vbuz1=vbum2
-lda {m2}
-ldy {z1}
-sta {c1},y
-//FRAGMENT vbum1=vbum1_plus_vbuz2
-lda {m1}
-clc
-adc {z2}
-sta {m1}
-//FRAGMENT pbuc1_derefidx_vbuaa=vbum1
-tay
-lda {m1}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=vbum1
-lda {m1}
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=vbum1
-lda {m1}
-sta {c1},y
-//FRAGMENT vbum1=vbum1_plus_vbuxx
-txa
-clc
-adc {m1}
-sta {m1}
-//FRAGMENT vbum1=vbum1_plus_vbuyy
-tya
-clc
-adc {m1}
-sta {m1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_plus_vbuz1
-lda {c1}
-clc
-adc {z1}
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_plus_vbuxx
-txa
-clc
-adc {c1}
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_plus_vbuyy
-tya
-clc
-adc {c1}
-sta {c1}
-//FRAGMENT pbum1=pbum1_plus_vbuc1
-lda #{c1}
-clc
-adc {m1}
-sta {m1}
-bcc !+
-inc {m1}+1
-!:
-//FRAGMENT vwsz1=vwsz1_plus_vbsz2
-lda {z2}
-pha
-clc
-adc {z1}
-sta {z1}
-pla
-ora #$7f
-bmi !+
-lda #0
-!:
-adc {z1}+1
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_plus_vbsaa
-pha
-clc
-adc {z1}
-sta {z1}
-pla
-ora #$7f
-bmi !+
-lda #0
-!:
-adc {z1}+1
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_plus_vbsxx
-txa
-pha
-clc
-adc {z1}
-sta {z1}
-pla
-ora #$7f
-bmi !+
-lda #0
-!:
-adc {z1}+1
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_plus_vbsyy
-tya
-pha
-clc
-adc {z1}
-sta {z1}
-pla
-ora #$7f
-bmi !+
-lda #0
-!:
-adc {z1}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_sethi_vbuz2
-lda {z2}
-sta {z1}+1
-lda #<{c1}
-sta {z1}
-//FRAGMENT pbuz1=pbuz2_setlo_vbuz3
-lda {z3}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_sethi_vbuz2
-lda {z2}
-sta {z1}+1
-lda #<{c1}
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_setlo_vbuz3
-lda {z3}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3
-ldy #0
-lda ({z2}),y
-ldy {z3}
-ora {c1},y
-sta {z1}
-//FRAGMENT pbuz1=pbuc1_sethi_vbuaa
-sta {z1}+1
-lda #<{c1}
-sta {z1}
-//FRAGMENT pbuz1=pbuc1_sethi_vbuxx
-stx {z1}+1
-ldx #<{c1}
-stx {z1}
-//FRAGMENT pbuz1=pbuz2_setlo_vbuaa
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_setlo_vbuxx
-stx {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_setlo_vbuyy
-sty {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_sethi_vbuaa
-sta {z1}+1
-lda #<{c1}
-sta {z1}
-//FRAGMENT vwuz1=vwuc1_sethi_vbuxx
-stx {z1}+1
-ldx #<{c1}
-stx {z1}
-//FRAGMENT vwuz1=vwuz2_setlo_vbuaa
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_setlo_vbuxx
-stx {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_setlo_vbuyy
-sty {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-ora ({z2}),y
-sta {z1}
-//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-ora ({z2}),y
-sta {z1}
-//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
-ldy #0
-lda ({z1}),y
-ldy {z2}
-ora {c1},y
-//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-ora ({z1}),y
-//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-ora ({z1}),y
-//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
-ldx {z2}
-lda {c1},x
-ldy #0
-ora ({z1}),y
-tax
-//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-ora ({z1}),y
-tax
-//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-ora ({z1}),y
-tax
-//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
-ldy #0
-lda ({z1}),y
-ldy {z2}
-ora {c1},y
-tay
-//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-ora ({z1}),y
-tay
-//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-ora ({z1}),y
-tay
-//FRAGMENT pbuz1=pbuc1_sethi_vbuyy
-sty {z1}+1
-ldy #<{c1}
-sty {z1}
-//FRAGMENT vwuz1=vwuc1_sethi_vbuyy
-sty {z1}+1
-ldy #<{c1}
-sty {z1}
-//FRAGMENT pbuz1=pbuz1_setlo_vbuaa
-sta {z1}
-//FRAGMENT vwuz1=vwuz1_setlo_vbuaa
-sta {z1}
-//FRAGMENT vdsz1_lt_0_then_la1
-lda {z1}+3
-bmi {la1}
-//FRAGMENT vdsz1=_neg_vdsz1
-sec
-lda {z1}
-eor #$ff
-adc #$0
-sta {z1}
-lda {z1}+1
-eor #$ff
-adc #$0
-sta {z1}+1
-lda {z1}+2
-eor #$ff
-adc #$0
-sta {z1}+2
-lda {z1}+3
-eor #$ff
-adc #$0
-sta {z1}+3
-//FRAGMENT pwsc1_derefidx_vbuz1_ge_vwsz2_then_la1
-ldy {z1}
-lda {c1},y
-cmp {z2}
-lda {c1}+1,y
-sbc {z2}+1
-bvc !+
-eor #$80
-!:
-bpl {la1}
-//FRAGMENT vbuz1=_lo_pwsc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuaa=_lo_pwsc1_derefidx_vbuaa
-tay
-lda {c1},y
-//FRAGMENT vbuxx=_lo_pwsc1_derefidx_vbuaa
-tax
-lda {c1},x
-tax
-//FRAGMENT vbuyy=_lo_pwsc1_derefidx_vbuaa
-tay
-lda {c1},y
-tay
-//FRAGMENT pwsc1_derefidx_vbuaa_ge_vwsz1_then_la1
-tay
-lda {c1},y
-cmp {z1}
-lda {c1}+1,y
-sbc {z1}+1
-bvc !+
-eor #$80
-!:
-bpl {la1}
-//FRAGMENT pwsc1_derefidx_vbuxx_ge_vwsz1_then_la1
-lda {c1},x
-cmp {z1}
-lda {c1}+1,x
-sbc {z1}+1
-bvc !+
-eor #$80
-!:
-bpl {la1}
-//FRAGMENT pwsc1_derefidx_vbuyy_ge_vwsz1_then_la1
-lda {c1},y
-cmp {z1}
-lda {c1}+1,y
-sbc {z1}+1
-bvc !+
-eor #$80
-!:
-bpl {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuz2
-lda {z2}
-tay
-sta ({z1}),y
-//FRAGMENT pbuz1=pbuz2_minus_vbuc1
-sec
-lda {z2}
-sbc #{c1}
-sta {z1}
-lda {z2}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT _deref_qssz1=pssz2
-ldy #0
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT vwuz1=vwuz1_plus_pwuz2_derefidx_vbuc1
-ldy #{c1}
-clc
-lda {z1}
-adc ({z2}),y
-sta {z1}
-iny
-lda {z1}+1
-adc ({z2}),y
-sta {z1}+1
-//FRAGMENT _deref_pbuz1_eq__deref_pbuz2_then_la1
-ldy #0
-lda ({z1}),y
-ldy #0
-cmp ({z2}),y
-beq {la1}
-//FRAGMENT vbsz1_le_0_then_la1
-lda {z1}
-cmp #1
-bmi {la1}
-//FRAGMENT vwsz1=vwsz1_minus_vbsz2
-lda {z2}
-sta $fe
-ora #$7f
-bmi !+
-lda #0
-!:
-sta $ff
-sec
-lda {z1}
-sbc $fe
-sta {z1}
-lda {z1}+1
-sbc $ff
-sta {z1}+1
-//FRAGMENT _deref_pbsc1_ge_0_then_la1
-lda {c1}
-cmp #0
-bpl {la1}
-//FRAGMENT vbuz1=vbuz2_minus__deref_pbuc1
-lda {z2}
-sec
-sbc {c1}
-sta {z1}
-//FRAGMENT vbsaa_le_0_then_la1
-cmp #1
-bmi {la1}
-//FRAGMENT vbsaa_neq_vbsz1_then_la1
-cmp {z1}
-bne {la1}
-//FRAGMENT vwsz1=vwsz1_minus_vbsxx
-txa
-sta $fe
-ora #$7f
-bmi !+
-lda #0
-!:
-sta $ff
-sec
-lda {z1}
-sbc $fe
-sta {z1}
-lda {z1}+1
-sbc $ff
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_minus_vbsyy
-tya
-sta $fe
-ora #$7f
-bmi !+
-lda #0
-!:
-sta $ff
-sec
-lda {z1}
-sbc $fe
-sta {z1}
-lda {z1}+1
-sbc $ff
-sta {z1}+1
-//FRAGMENT vbuaa=vbuz1_minus__deref_pbuc1
-lda {z1}
-sec
-sbc {c1}
-//FRAGMENT vbuxx=vbuz1_minus__deref_pbuc1
-lda {z1}
-sec
-sbc {c1}
-tax
-//FRAGMENT vbuyy=vbuz1_minus__deref_pbuc1
-lda {z1}
-sec
-sbc {c1}
-tay
-//FRAGMENT vbuz1=vbuaa_minus__deref_pbuc1
-sec
-sbc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_minus__deref_pbuc1
-sec
-sbc {c1}
-//FRAGMENT vbuxx=vbuaa_minus__deref_pbuc1
-sec
-sbc {c1}
-tax
-//FRAGMENT vbuyy=vbuaa_minus__deref_pbuc1
-sec
-sbc {c1}
-tay
-//FRAGMENT vbuz1=vbuxx_minus__deref_pbuc1
-txa
-sec
-sbc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_minus__deref_pbuc1
-txa
-sec
-sbc {c1}
-//FRAGMENT vbuxx=vbuxx_minus__deref_pbuc1
-txa
-sec
-sbc {c1}
-tax
-//FRAGMENT vbuyy=vbuxx_minus__deref_pbuc1
-txa
-sec
-sbc {c1}
-tay
-//FRAGMENT vbuz1=vbuyy_minus__deref_pbuc1
-tya
-sec
-sbc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_minus__deref_pbuc1
-tya
-sec
-sbc {c1}
-//FRAGMENT vbuxx=vbuyy_minus__deref_pbuc1
-tya
-sec
-sbc {c1}
-tax
-//FRAGMENT vbuyy=vbuyy_minus__deref_pbuc1
-tya
-sec
-sbc {c1}
-tay
-//FRAGMENT vbsyy_neq_vbsc1_then_la1
-cpy #{c1}
-bne {la1}
-//FRAGMENT vbsxx_le_0_then_la1
-cpx #1
-bmi {la1}
-//FRAGMENT vbsyy_neq_vbsz1_then_la1
-cpy {z1}
-bne {la1}
-//FRAGMENT vbsyy=_dec_vbsyy
-dey
-//FRAGMENT vbsyy_neq_vbsxx_then_la1
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbsyy_le_0_then_la1
-cpy #1
-bmi {la1}
-//FRAGMENT vbsz1_neq_vbsyy_then_la1
-cpy {z1}
-bne {la1}
-//FRAGMENT vbsxx_neq_vbsyy_then_la1
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-ora {c1},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuz3
-ldy {z2}
-lda {c1},y
-ldy {z3}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuz1
-txa
-ldx {z1}
-ora {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-ora {c1},y
-tay
-//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ora {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuxx
-txa
-ora {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuxx
-tya
-ora {c1},x
-tay
-//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuyy
-lda {c1},y
-ora {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuyy
-txa
-ora {c1},y
-tax
-//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuyy
-tya
-ora {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz2
-tay
-lda {c1},y
-ldy {z2}
-clc
-adc {c2},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1
-tay
-lda {c1},y
-ldy {z1}
-clc
-adc {c2},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1
-tax
-lda {c1},x
-ldx {z1}
-clc
-adc {c2},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1
-tay
-lda {c1},y
-ldy {z1}
-clc
-adc {c2},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx
-tay
-lda {c1},y
-clc
-adc {c2},x
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx
-tay
-lda {c1},y
-clc
-adc {c2},x
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx
-tay
-lda {c1},y
-clc
-adc {c2},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx
-tay
-lda {c1},y
-clc
-adc {c2},x
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy
-tax
-lda {c1},x
-clc
-adc {c2},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy
-tax
-lda {c1},x
-clc
-adc {c2},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy
-tax
-lda {c1},x
-clc
-adc {c2},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy
-tax
-lda {c1},x
-clc
-adc {c2},y
-tay
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2
-ldy {z1}
-lda {c1},y
-ldy {z2}
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2
-ldx {z1}
-lda {c1},x
-ldx {z2}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2
-ldy {z1}
-lda {c1},y
-ldy {z2}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz2
-tay
-lda {c1},y
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1
-tay
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1
-tax
-lda {c1},x
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1
-tay
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz2
-lda {c1},x
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1
-lda {c1},x
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1
-lda {c1},x
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1
-lda {c1},x
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz2
-lda {c1},y
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1
-lda {c1},y
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa
-tax
-lda {c1},x
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa
-tax
-lda {c1},x
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa
-tay
-lda {c1},x
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa
-tay
-lda {c1},x
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa
-tay
-lda {c1},x
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa
-tay
-lda {c1},x
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa
-tax
-lda {c1},x
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa
-tax
-lda {c1},x
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa
-tax
-lda {c1},x
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa
-tax
-lda {c1},x
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx
-tay
-lda {c1},x
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx
-tay
-lda {c1},x
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx
-tay
-lda {c1},x
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx
-tay
-lda {c1},x
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c1},x
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c1},x
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy
-tax
-lda {c1},x
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy
-tax
-lda {c1},x
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy
-tax
-lda {c1},x
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy
-tax
-lda {c1},x
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy
-lda {c1},x
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy
-lda {c1},x
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy
-lda {c1},x
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy
-lda {c1},x
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuaa_le_vbuxx_then_la1
-tay
-sty $ff
-cpx $ff
-bcs  {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-clc
-adc {c2},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-clc
-adc {c2},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz1
-ldx {z1}
-lda {c1},x
-clc
-adc {c2},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-clc
-adc {c2},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuaa
-tay
-lda {c1},y
-clc
-adc {c2},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuaa
-tay
-lda {c1},y
-clc
-adc {c2},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuaa
-tax
-lda {c1},x
-clc
-adc {c2},x
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuaa
-tay
-lda {c1},y
-clc
-adc {c2},y
-tay
-//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuz4)_plus_pbuz5_derefidx_(pbuz6_derefidx_vbuz4)
-ldy {z4}
-lda ({z6}),y
-sta $ff
-lda ({z3}),y
-tay
-lda ({z2}),y
-ldy $ff
-clc
-adc ({z5}),y
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ora {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuaa
-tay
-txa
-ora {c1},y
-tax
-//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuaa
-tax
-tya
-ora {c1},x
-tay
-//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3)
-ldy {z3}
-lda ({z5}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z4}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3)
-ldy {z3}
-lda ({z5}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z4}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3)
-ldy {z3}
-lda ({z5}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z4}),y
-tay
-//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuaa)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuaa)
-tay
-lda ({z5}),y
-sta $ff
-lda ({z3}),y
-tay
-lda ({z2}),y
-ldy $ff
-clc
-adc ({z4}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa)
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa)
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa)
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tay
-//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuxx)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuxx)
-txa
-tay
-lda ({z5}),y
-sta $ff
-lda ({z3}),y
-tay
-lda ({z2}),y
-ldy $ff
-clc
-adc ({z4}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx)
-txa
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx)
-txa
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx)
-txa
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tay
-//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuyy)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuyy)
-lda ({z5}),y
-sta $ff
-lda ({z3}),y
-tay
-lda ({z2}),y
-ldy $ff
-clc
-adc ({z4}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy)
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy)
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy)
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tay
-//FRAGMENT _deref_pbuc1=_deref_(_deref_qbuc2)
-ldy {c2}
-sty $fe
-ldy {c2}+1
-sty $ff
-ldy #0
-lda ($fe),y
-sta {c1}
-//FRAGMENT _deref_pwsz1=vwsc1
-ldy #0
-lda #<{c1}
-sta ({z1}),y
-iny
-lda #>{c1}
-sta ({z1}),y
-//FRAGMENT vwsz1=_deref_pwsz2_band_vwsc1
-ldy #0
-lda ({z2}),y
-and #<{c1}
-sta {z1}
-iny
-lda ({z2}),y
-and #>{c1}
-sta {z1}+1
-//FRAGMENT vbuz1=_hi__deref_pwsz2
-ldy #1
-lda ({z2}),y
-sta {z1}
-//FRAGMENT vbuaa=_hi__deref_pwsz1
-ldy #1
-lda ({z1}),y
-//FRAGMENT vbuxx=_hi__deref_pwsz1
-ldy #1
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=_hi__deref_pwsz1
-ldy #1
-lda ({z1}),y
-tay
-//FRAGMENT pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuz2
-ldx {z1}
-sec
-lda {c1},x
-sbc {z2}
-sta {c1},x
-bcs !+
-dec {c1}+1,x
-!:
-//FRAGMENT pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuxx
-ldy {z1}
-stx $ff
-sec
-lda {c1},y
-sbc $ff
-sta {c1},y
-lda {c1}+1,y
-sbc #0
-sta {c1},y
-//FRAGMENT pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuyy
-tya
-ldy {z1}
-clc
-sbc {c1},y 
-eor #$ff
-sta {c1},y
-bcc !+
-lda {c1}+1,y
-sbc #$01
-sta {c1}+1,y
-!:
-//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuz1
-tax
-sec
-lda {c1},x
-sbc {z1}
-sta {c1},x
-bcs !+
-dec {c1}+1,x
-!:
-//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuxx
-sec
-stx $ff
-tax
-lda {c1},x
-sbc $ff
-sta {c1},x
-bcs !+
-dec {c1}+1,x
-!:
-//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuyy
-sec
-sty $ff
-tay
-lda {c1},y
-sbc $ff
-sta {c1},y
-lda {c1}+1,y
-sbc #$00
-sta {c1}+1,y
-//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuz1
-sec
-lda {c1},x
-sbc {z1}
-sta {c1},x
-bcs !+
-dec {c1}+1,x
-!:
-//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuxx
-txa
-clc
-sbc {c1},x
-eor #$ff
-sta {c1},x
-bcc !+
-lda {c1}+1,x
-sbc #$01
-sta {c1}+1,x
-!:
-//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuyy
-tya
-clc
-sbc {c1},x
-eor #$ff
-sta {c1},x
-bcc !+
-lda {c1}+1,x
-sbc #$01
-sta {c1}+1,x
-!:
-//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuz1
-sec
-lda {c1},y
-sbc {z1}
-sta {c1},y
-lda {c1}+1,y
-sbc #0
-sta {c1}+1,y
-//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuxx
-stx $ff
-sec
-lda {c1},y
-sbc $ff
-sta {c1},y
-lda {c1}+1,y
-sbc #0
-sta {c1},y
-//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuyy
-tya
-clc
-sbc {c1},y 
-eor #$ff
-sta {c1},y
-bcc !+
-lda {c1}+1,y
-sbc #$01
-sta {c1}+1,y
-!:
-//FRAGMENT pwuc1_derefidx_vbuaa=vbuc2
-tay
-lda #{c2}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT _deref_pwuz1=vbuc1
-lda #{c1}
-ldy #0
-sta ({z1}),y
-tya
-iny
-sta ({z1}),y
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_plus_pwuc1_derefidx_vbuz3
-ldx {z2}
-ldy {z3}
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vbuaa=vbuz1_plus_2
-lda {z1}
-clc
-adc #2
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_plus_pwuc1_derefidx_vbuz2
-ldy {z2}
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_plus_pwuc1_derefidx_vbuz2
-ldx {z2}
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_plus_pwuc1_derefidx_vbuaa
-ldx {z2}
-tay
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_plus_pwuc1_derefidx_vbuaa
-tay
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_plus_pwuc1_derefidx_vbuaa
-tax
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_plus_pwuc1_derefidx_vbuxx
-ldy {z2}
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_plus_pwuc1_derefidx_vbuxx
-txa
-tay
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_plus_pwuc1_derefidx_vbuxx
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_plus_pwuc1_derefidx_vbuyy
-ldx {z2}
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_plus_pwuc1_derefidx_vbuyy
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_plus_pwuc1_derefidx_vbuyy
-tya
-tax
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-lda {c1}+1,x
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vbuz1=vbuyy_plus_2
-iny
-iny
-sty {z1}
-//FRAGMENT vbuz1=_deref_pbuz2_plus__deref_pbuz3
-ldy #0
-lda ({z2}),y
-clc
-ldy #0
-adc ({z3}),y
-sta {z1}
-//FRAGMENT vbuaa=_deref_pbuz1_plus__deref_pbuz2
-ldy #0
-lda ({z1}),y
-clc
-ldy #0
-adc ({z2}),y
-//FRAGMENT vbuxx=_deref_pbuz1_plus__deref_pbuz2
-ldy #0
-lda ({z1}),y
-clc
-ldy #0
-adc ({z2}),y
-tax
-//FRAGMENT vbuyy=_deref_pbuz1_plus__deref_pbuz2
-ldy #0
-lda ({z1}),y
-clc
-ldy #0
-adc ({z2}),y
-tay
-//FRAGMENT vwuz1=_deref_pwuz2_plus__deref_pwuz1
-ldy #0
-clc
-lda ({z1}),y
-adc ({z2}),y
-pha
-iny
-lda ({z1}),y
-adc ({z2}),y
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-clc
-adc {c2},y
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz1_plus_vbuc2
-lda #{c2}
-ldy {z1}
-clc
-adc {c1},y
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuaa
-tax
-tay
-lda {c1},x
-clc
-adc {c2},x
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
-lda {c1},x
-clc
-adc {c2},x
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuyy
-lda {c1},y
-clc
-adc {c2},y
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_vbuc2
-lda #{c2}
-clc
-adc {c1},x
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuyy_plus_vbuc2
-lda #{c2}
-clc
-adc {c1},y
-sta {c1},y
-//FRAGMENT _deref_pbuz1=_deref_pbuz1_plus_pbuz1_derefidx_vbuc1
-ldy #0
-lda ({z1}),y
-ldy #{c1}
-clc
-adc ({z1}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuc1=pbuz1_derefidx_vbuc1_plus_vbuc2
-lda #{c2}
-ldy #{c1}
-clc
-adc ({z1}),y
-sta ({z1}),y
-//FRAGMENT vbuz1=_deref_pbuz2_ror_4
-ldy #0
-lda ({z2}),y
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuaa=_deref_pbuz1_ror_4
-ldy #0
-lda ({z1}),y
-lsr
-lsr
-lsr
-lsr
-//FRAGMENT vbuxx=_deref_pbuz1_ror_4
-ldy #0
-lda ({z1}),y
-lsr
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=_deref_pbuz1_ror_4
-ldy #0
-lda ({z1}),y
-lsr
-lsr
-lsr
-lsr
-tay
-//FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_plus_vwuc2
-ldy {z1}
-clc
-lda {c1},y
-adc #<{c2}
-sta {c1},y
-lda {c1}+1,y
-adc #>{c2}
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuaa=pwuc1_derefidx_vbuaa_plus_vwuc2
-tay
-clc
-lda {c1},y
-adc #<{c2}
-sta {c1},y
-lda {c1}+1,y
-adc #>{c2}
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_plus_vwuc2
-clc
-lda {c1},x
-adc #<{c2}
-sta {c1},x
-lda {c1}+1,x
-adc #>{c2}
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_plus_vwuc2
-clc
-lda {c1},y
-adc #<{c2}
-sta {c1},y
-lda {c1}+1,y
-adc #>{c2}
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuz1=vbuz2
-lda {z2}
-ldy {z1}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuaa=vbuz1
-tay
-lda {z1}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuxx=vbuz1
-lda {z1}
-sta {c1},x
-lda #0
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=vbuz1
-lda {z1}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuz1=vbuxx
-ldy {z1}
-txa
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuaa=vbuxx
-tay
-txa
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuxx=vbuxx
-txa
-sta {c1},x
-lda #0
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=vbuxx
-txa
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuz1=vbuyy
-tya
-ldy {z1}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuaa=vbuyy
-tax
-tya
-sta {c1},x
-lda #0
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuxx=vbuyy
-tya
-sta {c1},x
-lda #0
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=vbuyy
-tya
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT vwsz1=_deref_pwsz2_minus__deref_pwsz3
-ldy #0
-sec
-lda ({z2}),y
-sbc ({z3}),y
-sta {z1}
-iny
-lda ({z2}),y
-sbc ({z3}),y
-sta {z1}+1
-//FRAGMENT vduz1=vduz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vduz1=vduz1_plus_vwuz2
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-lda {z1}+2
-adc #0
-sta {z1}+2
-lda {z1}+3
-adc #0
-sta {z1}+3
-//FRAGMENT _deref_(_deref_qbuc1)=vbuc2
-lda #{c2}
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT vbsz1_le_vbsc1_then_la1
-lda #{c1}
-sec
-sbc {z1}
-bvc !+
-eor #$80
-!:
-bpl {la1}
-//FRAGMENT vbsaa_le_vbsc1_then_la1
-sec
-sbc #{c1}
-beq {la1}
-bvc !+
-eor #$80
-!:
-bmi {la1}
-//FRAGMENT vbsxx_le_vbsc1_then_la1
-txa
-sec
-sbc #{c1}
-beq {la1}
-bvc !+
-eor #$80
-!:
-bmi {la1}
-//FRAGMENT vbsyy_le_vbsc1_then_la1
-tya
-sec
-sbc #{c1}
-beq {la1}
-bvc !+
-eor #$80
-!:
-bmi {la1}
-//FRAGMENT vwsz1=vbsz2_plus_vwsc1
-lda {z2}
-tax
-clc
-adc #<{c1}
-sta {z1}
-txa
-ora #$7f
-bmi !+
-lda #0
-!:
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vbsaa_plus_vwsc1
-tax
-clc
-adc #<{c1}
-sta {z1}
-txa
-ora #$7f
-bmi !+
-lda #0
-!:
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vbsxx_plus_vwsc1
-txa
-tax
-clc
-adc #<{c1}
-sta {z1}
-txa
-ora #$7f
-bmi !+
-lda #0
-!:
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vbsyy_plus_vwsc1
-tya
-tax
-clc
-adc #<{c1}
-sta {z1}
-txa
-ora #$7f
-bmi !+
-lda #0
-!:
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vbuaa_gt_vbuz1_then_la1
-cmp {z1}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT pbuz1=_dec_pbuz2
-lda {z2}
-sec
-sbc #1
-sta {z1}
-lda {z2}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT vduz1_eq_vduz2_then_la1
-lda {z1}
-cmp {z2}
-bne !+
-lda {z1}+1
-cmp {z2}+1
-bne !+
-lda {z1}+2
-cmp {z2}+2
-bne !+
-lda {z1}+3
-cmp {z2}+3
-beq {la1}
-!:
-//FRAGMENT vdsz1_eq_vdsz2_then_la1
-lda {z1}
-cmp {z2}
-bne !+
-lda {z1}+1
-cmp {z2}+1
-bne !+
-lda {z1}+2
-cmp {z2}+2
-bne !+
-lda {z1}+3
-cmp {z2}+3
-beq {la1}
-!:
-//FRAGMENT vdsz1=vdsz1_plus_vwsz2
-lda {z2}+1
-ora #$7f
-bmi !+
-lda #0
-!:
-sta $ff
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-lda {z1}+2
-adc $ff
-sta {z1}+2
-lda {z1}+3
-adc $ff
-sta {z1}+3
-//FRAGMENT vdsz1=vdsz1_minus_vwsz2
-lda {z2}+1
-ora #$7f
-bmi !+
-lda #0
-!:
-sta $ff
-sec
-lda {z1}
-sbc {z2}
-sta {z1}
-lda {z1}+1
-sbc {z2}+1
-sta {z1}+1
-lda {z1}+2
-sbc $ff
-sta {z1}+2
-lda {z1}+3
-sbc $ff
-sta {z1}+3
-//FRAGMENT vwsz1=_dec_vwsz1
-lda {z1}
-bne !+
-dec {z1}+1
-!:
-dec {z1}
 //FRAGMENT _deref_pwuc1=vbuz1
 lda {z1}
 sta {c1}
@@ -18832,330 +16709,6 @@ tya
 sta {c1}
 lda #0
 sta {c1}+1
-//FRAGMENT vwsz1_lt_vbsc1_then_la1
-NO_SYNTHESIS
-//FRAGMENT vwsz1_lt_vwuc1_then_la1
-lda {z1}+1
-bmi {la1}
-cmp #>{c1}
-bcc {la1}
-bne !+
-lda {z1}
-cmp #<{c1}
-bcc {la1}
-!:
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuz2_minus_pwsc2_derefidx_vbuz2
-ldy {z2}
-sec
-lda {c1},y
-sbc {c2},y
-sta {z1}
-lda {c1}+1,y
-sbc {c2}+1,y
-sta {z1}+1
-//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_rol_4
-ldy {z2}
-lda {c1},y
-asl
-sta {z1}
-lda {c1}+1,y
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pbsc1_derefidx_vbuz1=vbsc2
-lda #{c2}
-ldy {z1}
-sta {c1},y
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuaa_minus_pwsc2_derefidx_vbuaa
-tay
-sec
-lda {c1},y
-sbc {c2},y
-sta {z1}
-lda {c1}+1,y
-sbc {c2}+1,y
-sta {z1}+1
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuxx_minus_pwsc2_derefidx_vbuxx
-sec
-lda {c1},x
-sbc {c2},x
-sta {z1}
-lda {c1}+1,x
-sbc {c2}+1,x
-sta {z1}+1
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuyy_minus_pwsc2_derefidx_vbuyy
-sec
-lda {c1},y
-sbc {c2},y
-sta {z1}
-lda {c1}+1,y
-sbc {c2}+1,y
-sta {z1}+1
-//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_rol_4
-lda {c1},x
-asl
-sta {z1}
-lda {c1}+1,x
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_rol_4
-lda {c1},y
-asl
-sta {z1}
-lda {c1}+1,y
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pbsc1_derefidx_vbuxx=vbsc2
-lda #{c2}
-sta {c1},x
-//FRAGMENT pbsc1_derefidx_vbuyy=vbsc2
-lda #{c2}
-sta {c1},y
-//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vwuc2
-lda #<{c2}
-clc
-adc {c1}
-sta {c1}
-lda #>{c2}
-adc {c1}+1
-sta {c1}+1
-//FRAGMENT vbuz1=vbuz2_plus__deref_pbuc1
-lda {c1}
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_plus__deref_pbuc1
-lda {c1}
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuz1_plus__deref_pbuc1
-lda {c1}
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_plus__deref_pbuc1
-lda {c1}
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_plus__deref_pbuc1
-clc
-adc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_plus__deref_pbuc1
-clc
-adc {c1}
-//FRAGMENT vbuxx=vbuaa_plus__deref_pbuc1
-clc
-adc {c1}
-tax
-//FRAGMENT vbuyy=vbuaa_plus__deref_pbuc1
-clc
-adc {c1}
-tay
-//FRAGMENT vbuz1=vbuxx_plus__deref_pbuc1
-txa
-clc
-adc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_plus__deref_pbuc1
-txa
-clc
-adc {c1}
-//FRAGMENT vbuxx=vbuxx_plus__deref_pbuc1
-txa
-clc
-adc {c1}
-tax
-//FRAGMENT vbuyy=vbuxx_plus__deref_pbuc1
-txa
-clc
-adc {c1}
-tay
-//FRAGMENT vbuz1=vbuyy_plus__deref_pbuc1
-tya
-clc
-adc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_plus__deref_pbuc1
-tya
-clc
-adc {c1}
-//FRAGMENT vbuxx=vbuyy_plus__deref_pbuc1
-tya
-clc
-adc {c1}
-tax
-//FRAGMENT vbuyy=vbuyy_plus__deref_pbuc1
-tya
-clc
-adc {c1}
-tay
-//FRAGMENT vbuz1=vbuz1_minus_1
-dec {z1}
-//FRAGMENT vbuxx=vbuxx_minus_1
-dex
-//FRAGMENT vbuyy=vbuyy_minus_1
-tya
-tay
-dey
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuz2_plus__deref_pwsz3
-ldx {z2}
-clc
-ldy #0
-lda {c1},x
-adc ({z3}),y
-sta {z1}
-iny
-lda {c1}+1,x
-adc ({z3}),y
-sta {z1}+1
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuaa_plus__deref_pwsz2
-tax
-clc
-ldy #0
-lda {c1},x
-adc ({z2}),y
-sta {z1}
-iny
-lda {c1}+1,x
-adc ({z2}),y
-sta {z1}+1
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuxx_plus__deref_pwsz2
-clc
-ldy #0
-lda {c1},x
-adc ({z2}),y
-sta {z1}
-iny
-lda {c1}+1,x
-adc ({z2}),y
-sta {z1}+1
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuyy_plus__deref_pwsz2
-tya
-tax
-clc
-ldy #0
-lda {c1},x
-adc ({z2}),y
-sta {z1}
-iny
-lda {c1}+1,x
-adc ({z2}),y
-sta {z1}+1
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuaa_plus__deref_pwsz1
-tax
-ldy #0
-clc
-lda {c1},x
-adc ({z1}),y
-pha
-iny
-lda {c1}+1,x
-adc ({z1}),y
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT pprz1=_deref_qprc1
-lda {c1}
-sta {z1}
-lda {c1}+1
-sta {z1}+1
-//FRAGMENT vbuaa_le_vbuyy_then_la1
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT vbuxx_ge_vbuaa_then_la1
-tay
-sty $ff
-cpx $ff
-bcs  {la1}
-//FRAGMENT vbuyy_ge_vbuaa_then_la1
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT pwuc1_derefidx_vbuz1=pwuz2_derefidx_vbuc2
-ldx {z1}
-ldy #{c2}
-lda ({z2}),y
-sta {c1},x
-iny
-lda ({z2}),y
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuaa=pwuz1_derefidx_vbuc2
-ldy #{c2}
-tax
-lda ({z1}),y
-sta {c1},x
-iny
-lda ({z1}),y
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuxx=pwuz1_derefidx_vbuc2
-ldy #{c2}
-lda ({z1}),y
-sta {c1},x
-iny
-lda ({z1}),y
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=pwuz1_derefidx_vbuc2
-tya
-ldy #{c2}
-tax
-lda ({z1}),y
-sta {c1},x
-iny
-lda ({z1}),y
-sta {c1}+1,x
-//FRAGMENT vbsaa=vbsc1
-lda #{c1}
-//FRAGMENT 0_neq_vbsyy_then_la1
-cpy #0
-bne {la1}
-//FRAGMENT vbum1=vbum2
-lda {m2}
-sta {m1}
-//FRAGMENT vbum1=vbum1_plus_vbuc1
-lax {m1}
-axs #-[{c1}]
-stx {m1}
-//FRAGMENT pbuc1_derefidx_vbum1=pbuc2_derefidx_vbum2
-ldy {m2}
-lda {c2},y
-ldy {m1}
-sta {c1},y
 //FRAGMENT vwuz1=pbuz2_minus_pbuc1
 lda {z2}
 sec
@@ -19195,19 +16748,6 @@ sta {z1}
 lda {z1}+1
 sbc #>{c1}
 sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz1_bor_vbuc2
-lda #{c2}
-ldy {z1}
-ora {c1},y
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_bor_vbuc2
-lda #{c2}
-ora {c1},x
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuyy_bor_vbuc2
-lda #{c2}
-ora {c1},y
-sta {c1},y
 //FRAGMENT vduz1=vduz2_rol_0
 lda {z2}
 sta {z1}
@@ -19721,21 +17261,2491 @@ ror {z1}
 dex
 bne !-
 !e:
-//FRAGMENT vwsz1=_sword_vbsz2
+//FRAGMENT vbsz1=vbsz2_plus_vbsc1
+lax {z2}
+axs #-[{c1}]
+stx {z1}
+//FRAGMENT vbsz1=vbsc1_plus_vbsz2
+lax {z2}
+axs #-[{c1}]
+stx {z1}
+//FRAGMENT vbsz1=vbsz2_plus_vbsz2
+lda {z2}
+asl
+sta {z1}
+//FRAGMENT vbsaa=vbsz1_plus_vbsc1
+lda #{c1}
+clc
+adc {z1}
+//FRAGMENT vbsxx=vbsz1_plus_vbsc1
+lax {z1}
+axs #-[{c1}]
+//FRAGMENT vbsyy=vbsz1_plus_vbsc1
+lda #{c1}
+clc
+adc {z1}
+tay
+//FRAGMENT vbsaa=vbsc1_plus_vbsz1
+lda #{c1}
+clc
+adc {z1}
+//FRAGMENT vbsxx=vbsc1_plus_vbsz1
+lax {z1}
+axs #-[{c1}]
+//FRAGMENT vbsyy=vbsc1_plus_vbsz1
+lda #{c1}
+clc
+adc {z1}
+tay
+//FRAGMENT vbsaa=vbsz1_plus_vbsz1
+lda {z1}
+asl
+//FRAGMENT vbsxx=vbsz1_plus_vbsz1
+lda {z1}
+asl
+tax
+//FRAGMENT vbsyy=vbsz1_plus_vbsz1
+lda {z1}
+asl
+tay
+//FRAGMENT vbuz1=vbuc1_bor_vbuz2
+lda #{c1}
+ora {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuc1_bor_vbuaa
+ora #{c1}
+sta {z1}
+//FRAGMENT vbuz1=vbuc1_bor_vbuxx
+txa
+ora #{c1}
+sta {z1}
+//FRAGMENT vbuz1=vbuc1_bor_vbuyy
+tya
+ora #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuc1_bor_vbuz1
+lda #{c1}
+ora {z1}
+//FRAGMENT vbuaa=vbuc1_bor_vbuaa
+ora #{c1}
+//FRAGMENT vbuaa=vbuc1_bor_vbuxx
+txa
+ora #{c1}
+//FRAGMENT vbuaa=vbuc1_bor_vbuyy
+tya
+ora #{c1}
+//FRAGMENT vbuxx=vbuc1_bor_vbuz1
+lda #{c1}
+ora {z1}
+tax
+//FRAGMENT vbuxx=vbuc1_bor_vbuaa
+ora #{c1}
+tax
+//FRAGMENT vbuxx=vbuc1_bor_vbuxx
+txa
+ora #{c1}
+tax
+//FRAGMENT vbuxx=vbuc1_bor_vbuyy
+tya
+ora #{c1}
+tax
+//FRAGMENT vbuyy=vbuc1_bor_vbuz1
+lda #{c1}
+ora {z1}
+tay
+//FRAGMENT vbuyy=vbuc1_bor_vbuaa
+ora #{c1}
+tay
+//FRAGMENT vbuyy=vbuc1_bor_vbuxx
+txa
+ora #{c1}
+tay
+//FRAGMENT vbuyy=vbuc1_bor_vbuyy
+tya
+ora #{c1}
+tay
+//FRAGMENT vbuz1_eq__deref_pbuc1_then_la1
+lda {c1}
+cmp {z1}
+beq {la1}
+//FRAGMENT _deref_pbuc1_eq_0_then_la1
+lda {c1}
+cmp #0
+beq {la1}
+//FRAGMENT vbuz1=_deref_pbuc1_rol_4
+lda {c1}
+asl
+asl
+asl
+asl
+sta {z1}
+//FRAGMENT vbuz1=vbuz2_bor__deref_pbuc1
+lda {c1}
+ora {z2}
+sta {z1}
+//FRAGMENT vduz1=vduz2_plus_vbuz3
+lda {z3}
+clc
+adc {z2}
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+lda {z2}+2
+adc #0
+sta {z1}+2
+lda {z2}+3
+adc #0
+sta {z1}+3
+//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuz3)
+ldx {z3}
+ldy {c2},x
+lda {c1},y
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1
+ldx {z1}
+dec {c1},x
+//FRAGMENT _deref_pbuz1=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
+ldx {z2}
+ldy {c2},x
+lda {c1},y
+ldy #0
+sta ({z1}),y
+//FRAGMENT pbuc1_derefidx_vbuz1_le_pbuc2_derefidx_vbuz1_then_la1
+ldy {z1}
+lda {c2},y
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuz1=_deref_pbuz2_bor_vbuc1
+lda #{c1}
+ldy #0
+ora ({z2}),y
+sta {z1}
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuz1
+ldy {z1}
+lda ({z2}),y
+sta {c1},y
+//FRAGMENT vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3
+lda {z2}
+ldy {z3}
+eor {c1},y
+sta {z1}
+//FRAGMENT vbuz1=vbuz2_bor_vbuc1
+lda #{c1}
+ora {z2}
+sta {z1}
+//FRAGMENT vwuz1=vwuc1_plus_vwuz2
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vbuxx_eq__deref_pbuc1_then_la1
+cpx {c1}
+beq {la1}
+//FRAGMENT vbuaa=_deref_pbuc1_rol_4
+lda {c1}
+asl
+asl
+asl
+asl
+//FRAGMENT vbuxx=_deref_pbuc1_rol_4
+lda {c1}
+asl
+asl
+asl
+asl
+tax
+//FRAGMENT vbuyy=_deref_pbuc1_rol_4
+lda {c1}
+asl
+asl
+asl
+asl
+tay
+//FRAGMENT vbuaa=vbuz1_bor__deref_pbuc1
+lda {c1}
+ora {z1}
+//FRAGMENT vbuxx=vbuz1_bor__deref_pbuc1
+lda {c1}
+ora {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_bor__deref_pbuc1
+lda {c1}
+ora {z1}
+tay
+//FRAGMENT vbuz1=vbuaa_bor__deref_pbuc1
+ora {c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_bor__deref_pbuc1
+ora {c1}
+//FRAGMENT vbuxx=vbuaa_bor__deref_pbuc1
+ora {c1}
+tax
+//FRAGMENT vbuyy=vbuaa_bor__deref_pbuc1
+ora {c1}
+tay
+//FRAGMENT vbuz1=vbuxx_bor__deref_pbuc1
+txa
+ora {c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_bor__deref_pbuc1
+txa
+ora {c1}
+//FRAGMENT vbuxx=vbuxx_bor__deref_pbuc1
+txa
+ora {c1}
+tax
+//FRAGMENT vbuyy=vbuxx_bor__deref_pbuc1
+txa
+ora {c1}
+tay
+//FRAGMENT vbuz1=vbuyy_bor__deref_pbuc1
+tya
+ora {c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_bor__deref_pbuc1
+tya
+ora {c1}
+//FRAGMENT vbuxx=vbuyy_bor__deref_pbuc1
+tya
+ora {c1}
+tax
+//FRAGMENT vbuyy=vbuyy_bor__deref_pbuc1
+tya
+ora {c1}
+tay
+//FRAGMENT vduz1=vduz2_plus_vbuxx
+txa
+clc
+adc {z2}
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+lda {z2}+2
+adc #0
+sta {z1}+2
+lda {z2}+3
+adc #0
+sta {z1}+3
+//FRAGMENT vduz1=vduz2_plus_vbuyy
+tya
+clc
+adc {z2}
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+lda {z2}+2
+adc #0
+sta {z1}+2
+lda {z2}+3
+adc #0
+sta {z1}+3
+//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
+tax
+ldy {c2},x
+lda {c1},y
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
+ldy {c2},x
+lda {c1},y
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
+ldx {c2},y
+lda {c1},x
+ldy {z2}
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
+ldy {z2}
+ldx {c2},y
+tay
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
+tay
+ldx {c2},y
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
+ldy {c2},x
+ldx {c1},y
+tay
+txa
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
+ldx {c2},y
+tay
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
+ldy {z2}
+txa
+ldx {c2},y
+tay
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
+tay
+txa
+ldx {c2},y
+tay
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
+txa
+tay
+ldx {c2},y
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
+txa
+ldx {c2},y
+tay
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
+ldx {z2}
+lda {c2},x
+tax
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
+tax
+lda {c2},x
+tax
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
+lda {c2},x
+tax
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
+ldx {c2},y
+lda {c1},x
+sta ({z1}),y
+//FRAGMENT pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuxx
+dec {c1},x
+//FRAGMENT _deref_pbuz1=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
+ldy {c2},x
+lda {c1},y
+ldy #0
+sta ({z1}),y
+//FRAGMENT pbuc1_derefidx_vbuxx_le_pbuc2_derefidx_vbuxx_then_la1
+txa
+tay
+lda {c2},x
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuaa=_deref_pbuz1_bor_vbuc1
+lda #{c1}
+ldy #0
+ora ({z1}),y
+//FRAGMENT vbuxx=_deref_pbuz1_bor_vbuc1
+lda #{c1}
+ldy #0
+ora ({z1}),y
+tax
+//FRAGMENT vbuyy=_deref_pbuz1_bor_vbuc1
+lda #{c1}
+ldy #0
+ora ({z1}),y
+tay
+//FRAGMENT pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuaa
+tay
+lda ({z1}),y
+sta {c1},y
+//FRAGMENT vbuz1_neq_pbuc1_derefidx_vbuaa_then_la1
+tay
+lda {c1},y
+cmp {z1}
+bne {la1}
+//FRAGMENT vbuaa_neq_pbuc1_derefidx_vbuz1_then_la1
+ldy {z1}
+cmp {c1},y
+bne {la1}
+//FRAGMENT vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2
+lda {z1}
+ldy {z2}
+eor {c1},y
+//FRAGMENT vbuxx=vbuz1_bxor_pbuc1_derefidx_vbuz2
+lda {z1}
+ldx {z2}
+eor {c1},x
+tax
+//FRAGMENT vbuyy=vbuz1_bxor_pbuc1_derefidx_vbuz2
+lda {z1}
+ldy {z2}
+eor {c1},y
+tay
+//FRAGMENT vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuxx
+lda {c1},x
+eor {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuxx
+lda {c1},x
+eor {z1}
+//FRAGMENT vbuxx=vbuz1_bxor_pbuc1_derefidx_vbuxx
+lda {c1},x
+eor {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_bxor_pbuc1_derefidx_vbuxx
+lda {c1},x
+eor {z1}
+tay
+//FRAGMENT vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuyy
+lda {c1},y
+eor {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuyy
+lda {c1},y
+eor {z1}
+//FRAGMENT vbuxx=vbuz1_bxor_pbuc1_derefidx_vbuyy
+lda {c1},y
+eor {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_bxor_pbuc1_derefidx_vbuyy
+lda {c1},y
+eor {z1}
+tay
+//FRAGMENT vbuz1=vbuaa_bxor_pbuc1_derefidx_vbuz2
+ldy {z2}
+eor {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuz1
+ldy {z1}
+eor {c1},y
+//FRAGMENT vbuxx=vbuaa_bxor_pbuc1_derefidx_vbuz1
+ldx {z1}
+eor {c1},x
+tax
+//FRAGMENT vbuyy=vbuaa_bxor_pbuc1_derefidx_vbuz1
+ldy {z1}
+eor {c1},y
+tay
+//FRAGMENT vbuz1=vbuaa_bxor_pbuc1_derefidx_vbuxx
+eor {c1},x
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuxx
+eor {c1},x
+//FRAGMENT vbuxx=vbuaa_bxor_pbuc1_derefidx_vbuxx
+eor {c1},x
+tax
+//FRAGMENT vbuyy=vbuaa_bxor_pbuc1_derefidx_vbuxx
+eor {c1},x
+tay
+//FRAGMENT vbuz1=vbuaa_bxor_pbuc1_derefidx_vbuyy
+eor {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy
+eor {c1},y
+//FRAGMENT vbuxx=vbuaa_bxor_pbuc1_derefidx_vbuyy
+eor {c1},y
+tax
+//FRAGMENT vbuyy=vbuaa_bxor_pbuc1_derefidx_vbuyy
+eor {c1},y
+tay
+//FRAGMENT vbuz1=vbuxx_bxor_pbuc1_derefidx_vbuz2
+ldy {z2}
+txa
+eor {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_bxor_pbuc1_derefidx_vbuz1
+ldy {z1}
+txa
+eor {c1},y
+//FRAGMENT vbuxx=vbuxx_bxor_pbuc1_derefidx_vbuz1
+txa
+ldx {z1}
+eor {c1},x
+tax
+//FRAGMENT vbuyy=vbuxx_bxor_pbuc1_derefidx_vbuz1
+ldy {z1}
+txa
+eor {c1},y
+tay
+//FRAGMENT vbuz1=vbuxx_bxor_pbuc1_derefidx_vbuxx
+txa
+eor {c1},x
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_bxor_pbuc1_derefidx_vbuxx
+txa
+eor {c1},x
+//FRAGMENT vbuxx=vbuxx_bxor_pbuc1_derefidx_vbuxx
+txa
+eor {c1},x
+tax
+//FRAGMENT vbuyy=vbuxx_bxor_pbuc1_derefidx_vbuxx
+txa
+eor {c1},x
+tay
+//FRAGMENT vbuz1=vbuxx_bxor_pbuc1_derefidx_vbuyy
+txa
+eor {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_bxor_pbuc1_derefidx_vbuyy
+txa
+eor {c1},y
+//FRAGMENT vbuxx=vbuxx_bxor_pbuc1_derefidx_vbuyy
+txa
+eor {c1},y
+tax
+//FRAGMENT vbuyy=vbuxx_bxor_pbuc1_derefidx_vbuyy
+txa
+eor {c1},y
+tay
+//FRAGMENT vbuz1=vbuyy_bxor_pbuc1_derefidx_vbuz2
+tya
+ldy {z2}
+eor {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_bxor_pbuc1_derefidx_vbuz1
+tya
+ldy {z1}
+eor {c1},y
+//FRAGMENT vbuxx=vbuyy_bxor_pbuc1_derefidx_vbuz1
+ldx {z1}
+tya
+eor {c1},x
+tax
+//FRAGMENT vbuyy=vbuyy_bxor_pbuc1_derefidx_vbuz1
+tya
+ldy {z1}
+eor {c1},y
+tay
+//FRAGMENT vbuz1=vbuyy_bxor_pbuc1_derefidx_vbuxx
+tya
+eor {c1},x
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_bxor_pbuc1_derefidx_vbuxx
+tya
+eor {c1},x
+//FRAGMENT vbuxx=vbuyy_bxor_pbuc1_derefidx_vbuxx
+tya
+eor {c1},x
+tax
+//FRAGMENT vbuyy=vbuyy_bxor_pbuc1_derefidx_vbuxx
+tya
+eor {c1},x
+tay
+//FRAGMENT vbuz1=vbuyy_bxor_pbuc1_derefidx_vbuyy
+tya
+eor {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_bxor_pbuc1_derefidx_vbuyy
+tya
+eor {c1},y
+//FRAGMENT vbuxx=vbuyy_bxor_pbuc1_derefidx_vbuyy
+tya
+eor {c1},y
+tax
+//FRAGMENT vbuyy=vbuyy_bxor_pbuc1_derefidx_vbuyy
+tya
+eor {c1},y
+tay
+//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+axs #0
+//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuz1
+ldy {z1}
+txa
+and {c1},y
+tay
+//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuz1
+ldx {z1}
+tya
+and {c1},x
+tax
+//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuz1
+tya
+ldy {z1}
+and {c1},y
+tay
+//FRAGMENT vbuyy=vbuaa_band_pbuc1_derefidx_vbuxx
+and {c1},x
+tay
+//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuxx
+lda {c1},x
+sax {z1}
+//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuxx
+txa
+and {c1},x
+//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuxx
+lda {c1},x
+axs #0
+//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuxx
+txa
+and {c1},x
+tay
+//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuxx
+tya
+and {c1},x
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuxx
+tya
+and {c1},x
+//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuxx
+tya
+and {c1},x
+tax
+//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuxx
+tya
+and {c1},x
+tay
+//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuyy
+lda {c1},y
+sax {z1}
+//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuyy
+tya
+and {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuyy
+txa
+and {c1},y
+//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuyy
+tya
+and {c1},y
+//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuyy
+lda {c1},y
+axs #0
+//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuyy
+ldx {c1},y
+tya
+axs #0
+//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuyy
+txa
+and {c1},y
+tay
+//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuyy
+tya
+and {c1},y
+tay
+//FRAGMENT vbuaa=vbuz1_bor_vbuc1
+lda #{c1}
+ora {z1}
+//FRAGMENT vbuxx=vbuz1_bor_vbuc1
+lda #{c1}
+ora {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_bor_vbuc1
+lda #{c1}
+ora {z1}
+tay
+//FRAGMENT vbuz1=vbuxx_bor_vbuc1
+txa
+ora #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_bor_vbuc1
+txa
+ora #{c1}
+//FRAGMENT vbuyy=vbuxx_bor_vbuc1
+txa
+ora #{c1}
+tay
+//FRAGMENT vbuz1=vbuyy_bor_vbuc1
+tya
+ora #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_bor_vbuc1
+tya
+ora #{c1}
+//FRAGMENT vbuxx=vbuyy_bor_vbuc1
+tya
+ora #{c1}
+tax
+//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+and {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+sax {z1}
+//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuaa
+tax
+tya
+and {c1},x
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+and {z1}
+//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuaa
+tay
+txa
+and {c1},y
+//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuaa
+tax
+tya
+and {c1},x
+//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuaa
+tax
+lda {c1},x
+and {z1}
+tax
+//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+axs #0
+//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuaa
+tax
+tya
+and {c1},x
+tax
+//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+and {z1}
+tay
+//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuaa
+tay
+txa
+and {c1},y
+tay
+//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuaa
+tax
+tya
+and {c1},x
+tay
+//FRAGMENT vduz1=vduz1_plus_vbuxx
+txa
+clc
+adc {z1}
+sta {z1}
+lda {z1}+1
+adc #0
+sta {z1}+1
+lda {z1}+2
+adc #0
+sta {z1}+2
+lda {z1}+3
+adc #0
+sta {z1}+3
+//FRAGMENT vwuz1=vwuz1_band_vwuc1
+lda {z1}
+and #<{c1}
+sta {z1}
+lda {z1}+1
+and #>{c1}
+sta {z1}+1
+//FRAGMENT vwuz1=vwuc1_plus_vwuz1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vbsz1=_sbyte_vwsz2
 lda {z2}
 sta {z1}
-// sign-extend the byte
-ora #$7f 
-bmi !+
-lda #0
-!:
-sta {z1}+1
-//FRAGMENT vwsz1=_sword_vbsyy
+//FRAGMENT vbsaa=_sbyte_vwsz1
+lda {z1}
+//FRAGMENT vbsxx=_sbyte_vwsz1
+lda {z1}
+tax
+//FRAGMENT vbsyy=_sbyte_vwsz1
+lda {z1}
+tay
+//FRAGMENT _deref_pbuc1_lt_vbuz1_then_la1
+lda {c1}
+cmp {z1}
+bcc {la1}
+//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz2)_then_la1
+lda {z1}
+ldx {z2}
+ldy {c2},x
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz2)_then_la1
+lda {z1}
+ldx {z2}
+ldy {c2},x
+cmp {c1},y
+bcc {la1}
+//FRAGMENT vbuz1=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
+ldx {z2}
+ldy {c2},x
+ldx {c1},y
+stx {z1}
+//FRAGMENT _deref_pbuc1_lt_vbuaa_then_la1
+ldy {c1}
+sta $ff
+cpy $ff
+bcc {la1}
+//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
+tax
+lda {z1}
+ldy {c2},x
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
+lda {z1}
+ldy {c2},x
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
+lda {z1}
+ldx {c2},y
+cmp {c1},x
+bcs {la1}
+//FRAGMENT vbuaa_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
+ldx {z1}
+ldy {c2},x
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
+lda {z1}
+ldy {c2},x
+cmp {c1},y
+bcc {la1}
+//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
+lda {z1}
+ldx {c2},y
+cmp {c1},x
+bcc {la1}
+//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
+ldy {z1}
+txa
+ldx {c2},y
+cmp {c1},x
+bcc {la1}
+//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
+txa
+ldy {c2},x
+cmp {c1},y
+bcc {la1}
+//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
+txa
+ldx {c2},y
+cmp {c1},x
+bcc {la1}
+//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
+ldx {z1}
 tya
+ldy {c2},x
+cmp {c1},y
+bcc {la1}
+//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
+tya
+ldy {c2},x
+cmp {c1},y
+bcc {la1}
+//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
+tya
+ldx {c2},y
+cmp {c1},x
+bcc {la1}
+//FRAGMENT vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuz1)
+ldx {z1}
+ldy {c2},x
+lda {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuz1)
+ldx {z1}
+ldy {c2},x
+ldx {c1},y
+//FRAGMENT vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuz1)
+ldy {z1}
+ldx {c2},y
+ldy {c1},x
+//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
+ldy {z1}
+txa
+ldx {c2},y
+cmp {c1},x
+bcs {la1}
+//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
+txa
+ldy {c2},x
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
+txa
+ldx {c2},y
+cmp {c1},x
+bcs {la1}
+//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
+ldx {z1}
+tya
+ldy {c2},x
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
+tya
+ldy {c2},x
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
+tya
+ldx {c2},y
+cmp {c1},x
+bcs {la1}
+//FRAGMENT _deref_pbuc1_lt_vbuxx_then_la1
+lda {c1}
+stx $ff
+cmp $ff
+bcc {la1}
+//FRAGMENT _deref_pbuc1_lt_vbuyy_then_la1
+ldx {c1}
+sty $ff
+cpx $ff
+bcc {la1}
+//FRAGMENT vbuz1=_deref_pbuc1_plus_2
+lda {c1}
+clc
+adc #2
 sta {z1}
-// sign-extend the byte
-ora #$7f 
-bmi !+
-lda #0
-!:
+//FRAGMENT vbuaa=_deref_pbuc1_plus_2
+lda {c1}
+clc
+adc #2
+//FRAGMENT vbuxx=_deref_pbuc1_plus_2
+ldx {c1}
+inx
+inx
+//FRAGMENT vbuyy=_deref_pbuc1_plus_2
+ldy {c1}
+iny
+iny
+//FRAGMENT pbuz1=pbuc1_sethi_vbuz2
+lda {z2}
+sta {z1}+1
+lda #<{c1}
+sta {z1}
+//FRAGMENT pbuz1=pbuz2_setlo_vbuz3
+lda {z3}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuc1_sethi_vbuz2
+lda {z2}
+sta {z1}+1
+lda #<{c1}
+sta {z1}
+//FRAGMENT vwuz1=vwuz2_setlo_vbuz3
+lda {z3}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3
+ldy #0
+lda ({z2}),y
+ldy {z3}
+ora {c1},y
+sta {z1}
+//FRAGMENT pbuz1=pbuc1_sethi_vbuaa
+sta {z1}+1
+lda #<{c1}
+sta {z1}
+//FRAGMENT pbuz1=pbuc1_sethi_vbuxx
+stx {z1}+1
+ldx #<{c1}
+stx {z1}
+//FRAGMENT pbuz1=pbuz2_setlo_vbuaa
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz2_setlo_vbuxx
+stx {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz2_setlo_vbuyy
+sty {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuc1_sethi_vbuaa
+sta {z1}+1
+lda #<{c1}
+sta {z1}
+//FRAGMENT vwuz1=vwuc1_sethi_vbuxx
+stx {z1}+1
+ldx #<{c1}
+stx {z1}
+//FRAGMENT vwuz1=vwuz2_setlo_vbuaa
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_setlo_vbuxx
+stx {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_setlo_vbuyy
+sty {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuxx
+lda {c1},x
+ldy #0
+ora ({z2}),y
+sta {z1}
+//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuyy
+lda {c1},y
+ldy #0
+ora ({z2}),y
+sta {z1}
+//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
+ldy #0
+lda ({z1}),y
+ldy {z2}
+ora {c1},y
+//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
+lda {c1},x
+ldy #0
+ora ({z1}),y
+//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy
+lda {c1},y
+ldy #0
+ora ({z1}),y
+//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
+ldx {z2}
+lda {c1},x
+ldy #0
+ora ({z1}),y
+tax
+//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
+lda {c1},x
+ldy #0
+ora ({z1}),y
+tax
+//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy
+lda {c1},y
+ldy #0
+ora ({z1}),y
+tax
+//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
+ldy #0
+lda ({z1}),y
+ldy {z2}
+ora {c1},y
+tay
+//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
+lda {c1},x
+ldy #0
+ora ({z1}),y
+tay
+//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy
+lda {c1},y
+ldy #0
+ora ({z1}),y
+tay
+//FRAGMENT pbuz1=pbuc1_sethi_vbuyy
+sty {z1}+1
+ldy #<{c1}
+sty {z1}
+//FRAGMENT vwuz1=vwuc1_sethi_vbuyy
+sty {z1}+1
+ldy #<{c1}
+sty {z1}
+//FRAGMENT pbuz1=pbuz1_setlo_vbuaa
+sta {z1}
+//FRAGMENT vwuz1=vwuz1_setlo_vbuaa
+sta {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz3
+ldy {z2}
+lda {c1},y
+ldy {z3}
+clc
+adc {c2},y
+sta {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuz3
+ldy {z2}
+lda {c1},y
+ldy {z3}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
+ldy {z1}
+lda {c1},y
+ldy {z2}
+clc
+adc {c2},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
+ldx {z1}
+lda {c1},x
+ldx {z2}
+clc
+adc {c2},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
+ldy {z1}
+lda {c1},y
+ldy {z2}
+clc
+adc {c2},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz2
+tay
+lda {c1},y
+ldy {z2}
+clc
+adc {c2},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1
+tay
+lda {c1},y
+ldy {z1}
+clc
+adc {c2},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1
+tax
+lda {c1},x
+ldx {z1}
+clc
+adc {c2},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1
+tay
+lda {c1},y
+ldy {z1}
+clc
+adc {c2},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz2
+lda {c1},x
+ldy {z2}
+clc
+adc {c2},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1
+lda {c1},x
+ldy {z1}
+clc
+adc {c2},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1
+lda {c1},x
+ldx {z1}
+clc
+adc {c2},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1
+lda {c1},x
+ldy {z1}
+clc
+adc {c2},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz2
+lda {c1},y
+ldy {z2}
+clc
+adc {c2},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1
+lda {c1},y
+ldy {z1}
+clc
+adc {c2},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1
+lda {c1},y
+ldx {z1}
+clc
+adc {c2},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1
+lda {c1},y
+ldy {z1}
+clc
+adc {c2},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuxx
+lda {c2},x
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx
+lda {c2},x
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx
+lda {c2},x
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx
+lda {c2},x
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx
+tay
+lda {c1},y
+clc
+adc {c2},x
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx
+tay
+lda {c1},y
+clc
+adc {c2},x
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx
+tay
+lda {c1},y
+clc
+adc {c2},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx
+tay
+lda {c1},y
+clc
+adc {c2},x
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx
+lda {c1},y
+clc
+adc {c2},x
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx
+lda {c1},y
+clc
+adc {c2},x
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx
+lda {c1},y
+clc
+adc {c2},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx
+lda {c1},y
+clc
+adc {c2},x
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuyy
+lda {c2},y
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy
+lda {c2},y
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy
+lda {c2},y
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy
+lda {c2},y
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy
+tax
+lda {c1},x
+clc
+adc {c2},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy
+tax
+lda {c1},x
+clc
+adc {c2},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy
+tax
+lda {c1},x
+clc
+adc {c2},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy
+tax
+lda {c1},x
+clc
+adc {c2},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy
+lda {c1},x
+clc
+adc {c2},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy
+lda {c1},x
+clc
+adc {c2},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy
+lda {c1},x
+clc
+adc {c2},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy
+lda {c1},x
+clc
+adc {c2},y
+tay
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2
+ldy {z1}
+lda {c1},y
+ldy {z2}
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2
+ldx {z1}
+lda {c1},x
+ldx {z2}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2
+ldy {z1}
+lda {c1},y
+ldy {z2}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz2
+tay
+lda {c1},y
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1
+tay
+lda {c1},y
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1
+tax
+lda {c1},x
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1
+tay
+lda {c1},y
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz2
+lda {c1},x
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1
+lda {c1},x
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1
+lda {c1},x
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1
+lda {c1},x
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz2
+lda {c1},y
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1
+lda {c1},y
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1
+lda {c1},y
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1
+lda {c1},y
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa
+tax
+lda {c1},x
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa
+tax
+lda {c1},x
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa
+tay
+lda {c1},x
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa
+tay
+lda {c1},x
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa
+tay
+lda {c1},x
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa
+tay
+lda {c1},x
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa
+tax
+lda {c1},x
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa
+tax
+lda {c1},x
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa
+tax
+lda {c1},x
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa
+tax
+lda {c1},x
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx
+tay
+lda {c1},x
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx
+tay
+lda {c1},x
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx
+tay
+lda {c1},x
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx
+tay
+lda {c1},x
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c1},x
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c1},x
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c1},x
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy
+tax
+lda {c1},x
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy
+tax
+lda {c1},x
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy
+tax
+lda {c1},x
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy
+tax
+lda {c1},x
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy
+lda {c1},x
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy
+lda {c1},x
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy
+lda {c1},x
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy
+lda {c1},x
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=vbuz2_plus__deref_pbuc1
+lda {c1}
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_plus__deref_pbuc1
+lda {c1}
+clc
+adc {z1}
+//FRAGMENT vbuxx=vbuz1_plus__deref_pbuc1
+lda {c1}
+clc
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_plus__deref_pbuc1
+lda {c1}
+clc
+adc {z1}
+tay
+//FRAGMENT vbuz1=vbuaa_plus__deref_pbuc1
+clc
+adc {c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_plus__deref_pbuc1
+clc
+adc {c1}
+//FRAGMENT vbuxx=vbuaa_plus__deref_pbuc1
+clc
+adc {c1}
+tax
+//FRAGMENT vbuyy=vbuaa_plus__deref_pbuc1
+clc
+adc {c1}
+tay
+//FRAGMENT vbuz1=vbuxx_plus__deref_pbuc1
+txa
+clc
+adc {c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_plus__deref_pbuc1
+txa
+clc
+adc {c1}
+//FRAGMENT vbuxx=vbuxx_plus__deref_pbuc1
+txa
+clc
+adc {c1}
+tax
+//FRAGMENT vbuyy=vbuxx_plus__deref_pbuc1
+txa
+clc
+adc {c1}
+tay
+//FRAGMENT vbuz1=vbuyy_plus__deref_pbuc1
+tya
+clc
+adc {c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_plus__deref_pbuc1
+tya
+clc
+adc {c1}
+//FRAGMENT vbuxx=vbuyy_plus__deref_pbuc1
+tya
+clc
+adc {c1}
+tax
+//FRAGMENT vbuyy=vbuyy_plus__deref_pbuc1
+tya
+clc
+adc {c1}
+tay
+//FRAGMENT vbuaa_lt_vbuyy_then_la1
+tax
+sty $ff
+cpx $ff
+bcc {la1}
+//FRAGMENT vbuyy_lt_vbuaa_then_la1
+sta $ff
+cpy $ff
+bcc {la1}
+//FRAGMENT vbuz1=vbuz2_minus_vbuz1
+lda {z2}
+sec
+sbc {z1}
+sta {z1}
+//FRAGMENT pssz1=pssz1_plus_vwuc1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT pssz1=pssz1_minus_vwuc1
+lda {z1}
+sec
+sbc #<{c1}
+sta {z1}
+lda {z1}+1
+sbc #>{c1}
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_ror_3
+lda {z2}+1
+lsr
+sta {z1}+1
+lda {z2}
+ror
+sta {z1}
+lsr {z1}+1
+ror {z1}
+lsr {z1}+1
+ror {z1}
+//FRAGMENT vwuz1_gt_vwuc1_then_la1
+lda #>{c1}
+cmp {z1}+1
+bcc {la1}
+bne !+
+lda #<{c1}
+cmp {z1}
+bcc {la1}
+!:
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_pbuc2_derefidx_vbuz1
+lda {c1}
+ldy {z1}
+and {c2},y
+sta {c1}
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_pbuc2_derefidx_vbuz1
+lda {c1}
+ldy {z1}
+ora {c2},y
+sta {c1}
+//FRAGMENT vwuz1_le_vwuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne !+
+lda {z1}
+cmp #<{c1}
+!:
+bcc {la1}
+beq {la1}
+//FRAGMENT pssz1_eq_pssz2_then_la1
+lda {z1}
+cmp {z2}
+bne !+
+lda {z1}+1
+cmp {z2}+1
+beq {la1}
+!:
+//FRAGMENT pbuc1_derefidx_vbuz1_le_vbuz2_then_la1
+lda {z2}
+ldy {z1}
+cmp {c1},y
+bcs {la1}
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_pbuc2_derefidx_vbuxx
+lda {c1}
+and {c2},x
+sta {c1}
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_pbuc2_derefidx_vbuyy
+lda {c1}
+and {c2},y
+sta {c1}
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_pbuc2_derefidx_vbuxx
+lda {c1}
+ora {c2},x
+sta {c1}
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_pbuc2_derefidx_vbuyy
+lda {c1}
+ora {c2},y
+sta {c1}
+//FRAGMENT pbuc1_derefidx_vbuaa_le_vbuz1_then_la1
+tay
+lda {z1}
+cmp {c1},y
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuxx_le_vbuz1_then_la1
+txa
+tay
+lda {z1}
+cmp {c1},y
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuyy_le_vbuz1_then_la1
+lda {z1}
+cmp {c1},y
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuz1_le_vbuxx_then_la1
+ldy {z1}
+txa
+cmp {c1},y
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuaa_le_vbuxx_then_la1
+tay
+txa
+cmp {c1},y
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuxx_le_vbuxx_then_la1
+txa
+tay
+cmp {c1},y
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuyy_le_vbuxx_then_la1
+txa
+cmp {c1},y
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuz1_le_vbuyy_then_la1
+tya
+ldy {z1}
+cmp {c1},y
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuaa_le_vbuyy_then_la1
+tax
+lda {c1},x
+sta $ff
+cpy $ff
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuxx_le_vbuyy_then_la1
+lda {c1},x
+sta $ff
+cpy $ff
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuyy_le_vbuyy_then_la1
+tya
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuaa_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
+tax
+ldy {c2},x
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
+tay
+txa
+ldx {c2},y
+cmp {c1},x
+bcs {la1}
+//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
+tax
+tya
+ldy {c2},x
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vbuaa_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
+ldy {c2},x
+cmp {c1},y
+bcs {la1}
+//FRAGMENT vwuz1=vwuz1_ror_3
+lsr {z1}+1
+ror {z1}
+lsr {z1}+1
+ror {z1}
+lsr {z1}+1
+ror {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuz3
+lda {z3}
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuz2
+ldy {z2}
+clc
+lda #<{c1}
+adc {c2},y
+sta {z1}
+lda #>{c1}
+adc {c2}+1,y
+sta {z1}+1
+//FRAGMENT pbuc1_derefidx_vbuz1_ge_vbuc2_then_la1
+ldy {z1}
+lda {c1},y
+cmp #{c2}
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuz1_lt_vbuc2_then_la1
+ldy {z1}
+lda {c1},y
+cmp #{c2}
+bcc {la1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+sta {z1}
+//FRAGMENT vbuz1=vbuz1_band_vbuz2
+lda {z1}
+and {z2}
+sta {z1}
+//FRAGMENT pbuz1=qbuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sta {z1}
+lda {c1}+1,y
+sta {z1}+1
+//FRAGMENT pwuz1=pwuz2_plus_vwuz3
+lda {z2}
+clc
+adc {z3}
+sta {z1}
+lda {z2}+1
+adc {z3}+1
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz2_plus__deref_pwuz3
+ldy #0
+clc
+lda {z2}
+adc ({z3}),y
+sta {z1}
+iny
+lda {z2}+1
+adc ({z3}),y
+sta {z1}+1
+//FRAGMENT vwuz1=pbuz2_derefidx_vbuc1_word__deref_pbuz2
+ldy #{c1}
+lda ({z2}),y
+sta {z1}+1
+ldy #0
+lda ({z2}),y
+sta {z1}
+//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vbuz1=pbuz2_derefidx_vbuz3_bor_pbuz4_derefidx_vbuz3
+ldy {z3}
+lda ({z2}),y
+ora ({z4}),y
+sta {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuz2
+lda {c1},x
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuz2
+lda {c1},y
+clc
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuz2
+lda {z2}
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuz1
+lda {c1},x
+clc
+adc {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuz1
+lda {c1},y
+clc
+adc {z1}
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuz2
+lda {z2}
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuz1
+lda {c1},x
+clc
+adc {z1}
+tax
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuz1
+lda {c1},y
+clc
+adc {z1}
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuz2
+lda {z2}
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuz1
+lda {c1},x
+clc
+adc {z1}
+tay
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuz1
+lda {c1},y
+clc
+adc {z1}
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuaa
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuaa
+clc
+adc {c1},x
+sta {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuaa
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuaa
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
+clc
+adc {c1},x
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuaa
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuaa
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuaa
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuaa
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuaa
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuaa
+clc
+adc {c1},x
+tay
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuaa
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuxx
+ldy {z2}
+txa
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuxx
+txa
+clc
+adc {c1},x
+sta {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuxx
+txa
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuxx
+ldy {z1}
+txa
+clc
+adc {c1},y
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuxx
+txa
+clc
+adc {c1},x
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuxx
+txa
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuxx
+txa
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuxx
+txa
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuxx
+txa
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuxx
+ldy {z1}
+txa
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuxx
+txa
+clc
+adc {c1},x
+tay
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuxx
+txa
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuyy
+tya
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuyy
+tya
+clc
+adc {c1},x
+sta {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuyy
+tya
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuyy
+tya
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuyy
+tya
+clc
+adc {c1},x
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuyy
+tya
+clc
+adc {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuyy
+ldx {z1}
+tya
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuyy
+tya
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuyy
+tya
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuyy
+tya
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuyy
+tya
+clc
+adc {c1},x
+tay
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuyy
+tya
+clc
+adc {c1},y
+tay
+//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuaa
+tay
+clc
+lda #<{c1}
+adc {c2},y
+sta {z1}
+lda #>{c1}
+adc {c2}+1,y
+sta {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuxx
+txa
+tay
+clc
+lda #<{c1}
+adc {c2},y
+sta {z1}
+lda #>{c1}
+adc {c2}+1,y
+sta {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuyy
+clc
+lda #<{c1}
+adc {c2},y
+sta {z1}
+lda #>{c1}
+adc {c2}+1,y
+sta {z1}+1
+//FRAGMENT pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1
+lda {c1},x
+cmp #{c2}
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuyy_ge_vbuc2_then_la1
+lda {c1},y
+cmp #{c2}
+bcs {la1}
+//FRAGMENT pbuc1_derefidx_vbuxx_lt_vbuc2_then_la1
+lda {c1},x
+cmp #{c2}
+bcc {la1}
+//FRAGMENT pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1
+lda {c1},y
+cmp #{c2}
+bcc {la1}
+//FRAGMENT vbuz1=vbuz1_band_vbuxx
+lda {z1}
+sax {z1}
+//FRAGMENT vbuz1=vbuz1_band_vbuyy
+tya
+and {z1}
+sta {z1}
+//FRAGMENT pbuc1_derefidx_vbuyy=_byte_vwuz1
+lda {z1}
+sta {c1},y
+//FRAGMENT vbuaa_eq_vbuz1_then_la1
+cmp {z1}
+beq {la1}
+//FRAGMENT pbuz1=qbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+sta {z1}
+lda {c1}+1,y
+sta {z1}+1
+//FRAGMENT pbuz1=qbuc1_derefidx_vbuxx
+lda {c1},x
+sta {z1}
+lda {c1}+1,x
+sta {z1}+1
+//FRAGMENT pbuz1=qbuc1_derefidx_vbuyy
+lda {c1},y
+sta {z1}
+lda {c1}+1,y
+sta {z1}+1
+//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuz2
+ldy {z2}
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuxx
+clc
+adc {c1},x
+sta {z1}
+//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuyy
+clc
+adc {c1},y
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuz1
+ldy {z1}
+clc
+adc {c1},y
+//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuxx
+clc
+adc {c1},x
+//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuyy
+clc
+adc {c1},y
+//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuz1
+ldx {z1}
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuxx
+clc
+adc {c1},x
+tax
+//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuyy
+clc
+adc {c1},y
+tax
+//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuz1
+ldy {z1}
+clc
+adc {c1},y
+tay
+//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuxx
+clc
+adc {c1},x
+tay
+//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuyy
+clc
+adc {c1},y
+tay
+//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx
+lda {c1},x
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuyy
+lda {c1},y
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vbuz1=pbuz2_derefidx_vbuaa_bor_pbuz3_derefidx_vbuaa
+tay
+lda ({z2}),y
+ora ({z3}),y
+sta {z1}
+//FRAGMENT vbuz1=pbuz2_derefidx_vbuxx_bor_pbuz3_derefidx_vbuxx
+txa
+tay
+lda ({z2}),y
+ora ({z3}),y
+sta {z1}
+//FRAGMENT vbuz1=pbuz2_derefidx_vbuyy_bor_pbuz3_derefidx_vbuyy
+lda ({z2}),y
+ora ({z3}),y
+sta {z1}
+//FRAGMENT vbuaa=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2
+ldy {z2}
+lda ({z1}),y
+ora ({z3}),y
+//FRAGMENT vbuaa=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa
+tay
+lda ({z1}),y
+ora ({z2}),y
+//FRAGMENT vbuaa=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx
+txa
+tay
+lda ({z1}),y
+ora ({z2}),y
+//FRAGMENT vbuaa=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy
+lda ({z1}),y
+ora ({z2}),y
+//FRAGMENT vbuxx=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2
+ldy {z2}
+lda ({z1}),y
+ora ({z3}),y
+tax
+//FRAGMENT vbuxx=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa
+tay
+lda ({z1}),y
+ora ({z2}),y
+tax
+//FRAGMENT vbuxx=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx
+txa
+tay
+lda ({z1}),y
+ora ({z2}),y
+tax
+//FRAGMENT vbuxx=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy
+lda ({z1}),y
+ora ({z2}),y
+tax
+//FRAGMENT vbuyy=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2
+ldy {z2}
+lda ({z1}),y
+ora ({z3}),y
+tay
+//FRAGMENT vbuyy=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa
+tay
+lda ({z1}),y
+ora ({z2}),y
+tay
+//FRAGMENT vbuyy=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx
+txa
+tay
+lda ({z1}),y
+ora ({z2}),y
+tay
+//FRAGMENT vbuyy=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy
+lda ({z1}),y
+ora ({z2}),y
+tay
+//FRAGMENT vbuxx=vbuyy_minus_1
+tya
+tax
+dex
+//FRAGMENT vbuaa=vbuxx_minus_1
+txa
+sec
+sbc #1
+//FRAGMENT vbuyy=vbuxx_minus_1
+txa
+tay
+dey
+//FRAGMENT vbuaa=vbuyy_minus_1
+tya
+sec
+sbc #1
+//FRAGMENT vbuaa=vbuaa_band_vbuxx
+stx $ff
+and $ff
+//FRAGMENT vbuaa=vbuaa_band_vbuyy
+sty $ff
+and $ff
+//FRAGMENT pbuz1=pbuz2_plus__deref_pwuz1
+ldy #0
+clc
+lda ({z1}),y
+adc {z2}
+pha
+iny
+lda ({z1}),y
+adc {z2}+1
+sta {z1}+1
+pla
+sta {z1}
+//FRAGMENT pwuz1=pwuz2_plus_vwuz1
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc {z2}+1
 sta {z1}+1
diff --git a/src/main/fragment/cache/fragment-cache-rom6502x.asm b/src/main/fragment/cache/fragment-cache-rom6502x.asm
index ee223899a..d5b4cd33e 100644
--- a/src/main/fragment/cache/fragment-cache-rom6502x.asm
+++ b/src/main/fragment/cache/fragment-cache-rom6502x.asm
@@ -1,12 +1,13 @@
 //KICKC FRAGMENT CACHE 108dd16dc1 108dd18d7f
-//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1
-inc {c1}
 //FRAGMENT isr_hardware_all_entry
 pha @clob_none
 txa @clob_x
 pha @clob_x
 tya @clob_y
 pha @clob_y
+//FRAGMENT _deref_pbuc1=vbuc2
+lda #{c2}
+sta {c1}
 //FRAGMENT isr_hardware_all_exit
 pla @clob_y
 tay @clob_y
@@ -14,6 +15,17 @@ pla @clob_x
 tax @clob_x
 pla @clob_none
 rti
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
+lda #{c2}
+ora {c1}
+sta {c1}
+//FRAGMENT _deref_qprc1=pprc2
+lda #<{c2}
+sta {c1}
+lda #>{c2}
+sta {c1}+1
+//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1
+inc {c1}
 //FRAGMENT vbuz1=vbuc1
 lda #{c1}
 sta {z1}
@@ -51,30 +63,57 @@ iny
 //FRAGMENT vbuyy_neq_vbuc1_then_la1
 cpy #{c1}
 bne {la1}
-//FRAGMENT _deref_pbuc1=vbuc2
-lda #{c2}
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
-lda #{c2}
-ora {c1}
-sta {c1}
-//FRAGMENT _deref_qprc1=pprc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
 //FRAGMENT vbuz1=vbuz2
 lda {z2}
 sta {z1}
-//FRAGMENT vbuz1=vbuz2_band_vbuc1
-lda #{c1}
-and {z2}
-sta {z1}
 //FRAGMENT 0_eq_vbuz1_then_la1
 lda {z1}
 beq {la1}
-//FRAGMENT _deref_pbuc1=_dec__deref_pbuc1
-dec {c1}
+//FRAGMENT vbuz1_eq_vbuc1_then_la1
+lda #{c1}
+cmp {z1}
+beq {la1}
+//FRAGMENT vbuz1=vbuz2_plus_1
+ldy {z2}
+iny
+sty {z1}
+//FRAGMENT vbuz1_lt_vbuc1_then_la1
+lda {z1}
+cmp #{c1}
+bcc {la1}
+//FRAGMENT vbuz1=vbuz2_rol_2
+lda {z2}
+asl
+asl
+sta {z1}
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2
+ldy {z2}
+lda {c2},y
+ldy {z1}
+sta {c1},y
+//FRAGMENT vbuz1=vbuz1_minus_vbuc1
+lax {z1}
+axs #{c1}
+stx {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz3
+ldy {z2}
+lda {c1},y
+ldy {z3}
+clc
+adc {c2},y
+sta {z1}
+//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2
+lda {z2}
+ldy {z1}
+sta {c1},y
+//FRAGMENT vbuz1_ge_vbuc1_then_la1
+lda {z1}
+cmp #{c1}
+bcs {la1}
+//FRAGMENT vbuz1=vbuz1_plus_vbuc1
+lax {z1}
+axs #-[{c1}]
+stx {z1}
 //FRAGMENT vbuz1=_deref_pbuc1_band_vbuc2
 lda #{c2}
 and {c1}
@@ -101,33 +140,6 @@ lda #<{c1}
 sta {z1}
 lda #>{c1}
 sta {z1}+1
-//FRAGMENT vbuz1_lt_vbuc1_then_la1
-lda {z1}
-cmp #{c1}
-bcc {la1}
-//FRAGMENT pbuz1=pbuc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vbuz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pvoz1=pvoz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz1_plus_2
-lda {z1}
-clc
-adc #2
-sta {z1}
 //FRAGMENT vbuz1=vbuz2_rol_1
 lda {z2}
 asl
@@ -136,6 +148,11 @@ sta {z1}
 lda {z2}
 ora {z3}
 sta {z1}
+//FRAGMENT pbuz1=pbuc1
+lda #<{c1}
+sta {z1}
+lda #>{c1}
+sta {z1}+1
 //FRAGMENT vwuz1_lt_vwuc1_then_la1
 lda {z1}+1
 cmp #>{c1}
@@ -177,683 +194,22 @@ lda {z1}
 cmp {z2}
 bcc {la1}
 !:
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuc1
-ldy #{c1}
-lda ({z2}),y
-sta {z1}
-//FRAGMENT pbuz1=pbuz2_plus_vbuc1
-lda #{c1}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1_neq_pbuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT _deref_pbuz1=_deref_pbuz2
-ldy #0
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
 //FRAGMENT vbuz1=vbuaa
 sta {z1}
 //FRAGMENT vbuaa=vbuz1
 lda {z1}
 //FRAGMENT vbuxx=vbuz1
 ldx {z1}
-//FRAGMENT vbuz1=vbuaa_band_vbuc1
-and #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_band_vbuc1
-lda #{c1}
-sax {z1}
-//FRAGMENT vbuz1=vbuyy_band_vbuc1
-tya
-and #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_band_vbuc1
-lda #{c1}
-and {z1}
-//FRAGMENT vbuaa=vbuaa_band_vbuc1
-and #{c1}
-//FRAGMENT vbuaa=vbuxx_band_vbuc1
-txa
-and #{c1}
-//FRAGMENT vbuaa=vbuyy_band_vbuc1
-tya
-and #{c1}
-//FRAGMENT vbuxx=vbuz1_band_vbuc1
-lda #{c1}
-and {z1}
-tax
-//FRAGMENT vbuxx=vbuaa_band_vbuc1
-ldx #{c1}
-axs #0
 //FRAGMENT 0_eq_vbuaa_then_la1
 cmp #0
 beq {la1}
-//FRAGMENT vbuyy=vbuz1_band_vbuc1
-lda #{c1}
-and {z1}
-tay
-//FRAGMENT vbuaa=_deref_pbuc1_band_vbuc2
-lda #{c2}
-and {c1}
-//FRAGMENT vbuxx=_deref_pbuc1_band_vbuc2
-lda #{c2}
-and {c1}
-tax
-//FRAGMENT vbuyy=_deref_pbuc1_band_vbuc2
-lda #{c2}
-and {c1}
-tay
-//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
-tay
-lda #{c2}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
-lda #{c2}
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2
-lda #{c2}
-sta {c1},y
-//FRAGMENT 0_neq_vbuxx_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT vbuaa_lt_vbuc1_then_la1
-cmp #{c1}
-bcc {la1}
-//FRAGMENT pbuz1=pbuc1_plus_vbuaa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vbuxx
-txa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vbuyy
-tya
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT vbuxx=vbuxx_plus_2
-inx
-inx
-//FRAGMENT vbuz1=vbuaa_rol_1
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_rol_1
-txa
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_rol_1
-tya
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_rol_1
-lda {z1}
-asl
-//FRAGMENT vbuaa=vbuaa_rol_1
-asl
-//FRAGMENT vbuaa=vbuxx_rol_1
-txa
-asl
-//FRAGMENT vbuaa=vbuyy_rol_1
-tya
-asl
-//FRAGMENT vbuxx=vbuz1_rol_1
-lda {z1}
-asl
-tax
-//FRAGMENT vbuxx=vbuaa_rol_1
-asl
-tax
-//FRAGMENT vbuxx=vbuxx_rol_1
-txa
-asl
-tax
-//FRAGMENT vbuxx=vbuyy_rol_1
-tya
-asl
-tax
-//FRAGMENT vbuyy=vbuz1_rol_1
-lda {z1}
-asl
-tay
-//FRAGMENT vbuyy=vbuaa_rol_1
-asl
-tay
-//FRAGMENT vbuyy=vbuxx_rol_1
-txa
-asl
-tay
-//FRAGMENT vbuyy=vbuyy_rol_1
-tya
-asl
-tay
-//FRAGMENT vbuz1=vbuxx_bor_vbuz2
-txa
-ora {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_bor_vbuz2
-tya
-ora {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_bor_vbuaa
-ora {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_bor_vbuaa
-stx $ff
-ora $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_bor_vbuaa
-sty $ff
-ora $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_bor_vbuxx
-txa
-ora {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_bor_vbuxx
-stx {z1}
-//FRAGMENT vbuaa=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-//FRAGMENT vbuxx=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-tay
-//FRAGMENT _deref_pbuc1=vbuaa
-sta {c1}
-//FRAGMENT vbuaa=_hi_pvoz1
-lda {z1}+1
-//FRAGMENT vbuxx=_hi_pvoz1
-ldx {z1}+1
-//FRAGMENT vbuaa=_lo_pvoz1
-lda {z1}
-//FRAGMENT vbuxx=_lo_pvoz1
-ldx {z1}
-//FRAGMENT _deref_pbuc1=vbuxx
-stx {c1}
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-tay
-//FRAGMENT vbuxx_lt_vbuc1_then_la1
-cpx #{c1}
-bcc {la1}
-//FRAGMENT vbuyy=_hi_pvoz1
-ldy {z1}+1
-//FRAGMENT _deref_pbuc1=vbuyy
-sty {c1}
-//FRAGMENT vbuyy=_lo_pvoz1
-ldy {z1}
-//FRAGMENT vbuyy_lt_vbuc1_then_la1
-cpy #{c1}
-bcc {la1}
-//FRAGMENT vbuz1=vbuz2_bor_vbuyy
-tya
-ora {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuc1
-lda #{c1}
-//FRAGMENT vbuaa=vbuz1_bor_vbuz2
-lda {z1}
-ora {z2}
-//FRAGMENT vbuaa=vbuz1_bor_vbuaa
-ora {z1}
-//FRAGMENT vbuaa=vbuz1_bor_vbuxx
-txa
-ora {z1}
-//FRAGMENT vbuaa=vbuz1_bor_vbuyy
-tya
-ora {z1}
-//FRAGMENT vbuz1=vbuxx
-stx {z1}
-//FRAGMENT vbuxx=vbuz1_bor_vbuz2
-lda {z1}
-ora {z2}
-tax
-//FRAGMENT vbuxx=vbuz1_bor_vbuaa
-ora {z1}
-tax
-//FRAGMENT vbuxx=vbuz1_bor_vbuxx
-txa
-ora {z1}
-tax
-//FRAGMENT vbuxx=vbuz1_bor_vbuyy
-tya
-ora {z1}
-tax
-//FRAGMENT vbuz1=vbuyy
-sty {z1}
-//FRAGMENT vbuyy=vbuz1_bor_vbuz2
-lda {z1}
-ora {z2}
-tay
-//FRAGMENT vbuyy=vbuz1_bor_vbuaa
-ora {z1}
-tay
-//FRAGMENT vbuyy=vbuz1_bor_vbuxx
-txa
-ora {z1}
-tay
-//FRAGMENT vbuyy=vbuz1_bor_vbuyy
-tya
-ora {z1}
-tay
-//FRAGMENT vbuz1=vbuxx_bor_vbuyy
-txa
-sty $ff
-ora $ff
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bor_vbuz1
-txa
-ora {z1}
-//FRAGMENT vbuaa=vbuxx_bor_vbuaa
-stx $ff
-ora $ff
-//FRAGMENT vbuaa=vbuxx_bor_vbuyy
-txa
-sty $ff
-ora $ff
-//FRAGMENT vbuxx=vbuxx_bor_vbuz1
-txa
-ora {z1}
-tax
-//FRAGMENT vbuxx=vbuxx_bor_vbuaa
-stx $ff
-ora $ff
-tax
-//FRAGMENT vbuxx=vbuxx_bor_vbuyy
-txa
-sty $ff
-ora $ff
-tax
-//FRAGMENT vbuyy=vbuxx_bor_vbuz1
-txa
-ora {z1}
-tay
-//FRAGMENT vbuyy=vbuxx_bor_vbuaa
-stx $ff
-ora $ff
-tay
-//FRAGMENT vbuyy=vbuxx_bor_vbuyy
-txa
-sty $ff
-ora $ff
-tay
-//FRAGMENT 0_neq_vbuyy_then_la1
-cpy #0
-bne {la1}
-//FRAGMENT 0_eq_vbuxx_then_la1
-cpx #0
-beq {la1}
-//FRAGMENT 0_eq_vbuyy_then_la1
-cpy #0
-beq {la1}
-//FRAGMENT vbuaa=vbuyy_bor_vbuaa
-sty $ff
-ora $ff
-//FRAGMENT vbuxx=vbuaa
-tax
-//FRAGMENT vbuyy=vbuaa
-tay
-//FRAGMENT pbuz1=pbuz1_plus_vbuc1
-lda #{c1}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=_dec_vbuz1
-dec {z1}
-//FRAGMENT pbuz1=pbuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1=_inc_pbuz2
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-//FRAGMENT _deref_pbuz1=vbuc1
-lda #{c1}
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuz1_ge_vbuz2_then_la1
-lda {z1}
-cmp {z2}
-bcs {la1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vwuz1=_word_vbuz2
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_5
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vwuz2
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vbuz1_eq_vbuc1_then_la1
-lda #{c1}
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuz1=pbuz2_plus_vbuz3
-lda {z3}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_minus_vbuc1
-sec
-lda {z1}
-sbc #{c1}
-sta {z1}
-lda {z1}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT vbuz1=_deref_pbuc1
-lda {c1}
-sta {z1}
-//FRAGMENT _deref_pbuz1=vbuz2
-lda {z2}
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuxx=vbuxx_band_vbuc1
-lda #{c1}
-axs #0
-//FRAGMENT vbuyy=vbuxx_band_vbuc1
-txa
-and #{c1}
-tay
-//FRAGMENT vbuxx=vbuyy_band_vbuc1
-ldx #{c1}
-tya
-axs #0
-//FRAGMENT vbuyy=vbuyy_band_vbuc1
-tya
-and #{c1}
-tay
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1
-ldy {z1}
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1
-ldx {z1}
-ldy {c1},x
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa
-tay
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa
-tax
-ldy {c1},x
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-//FRAGMENT 0_neq_vbuaa_then_la1
-cmp #0
-bne {la1}
-//FRAGMENT vbuaa_ge_vbuz1_then_la1
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuz1
-txa
-sec
-sbc {z1}
-tax
-//FRAGMENT vbuz1=vbuz1_minus_vbuaa
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuaa
-sta $ff
-txa
-sec
-sbc $ff
-tax
-//FRAGMENT vbuz1=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuxx
-lda #0
-tax
-//FRAGMENT vbuz1=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vwuz1=_word_vbuaa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_vbuxx
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_vbuyy
-tya
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vbuaa_eq_vbuc1_then_la1
-cmp #{c1}
-beq {la1}
-//FRAGMENT vbuaa=_deref_pbuc1
-lda {c1}
-//FRAGMENT vbuxx=_deref_pbuc1
-ldx {c1}
-//FRAGMENT _deref_pbuz1=vbuaa
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=vbuxx
-txa
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=vbuyy
-tya
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuxx_ge_vbuz1_then_la1
-cpx {z1}
-bcs {la1}
-//FRAGMENT vbuxx_eq_vbuc1_then_la1
-cpx #{c1}
-beq {la1}
-//FRAGMENT vbuyy=_deref_pbuc1
-ldy {c1}
-//FRAGMENT vbuz1_ge_vbuxx_then_la1
-lda {z1}
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuyy=vbuz1
-ldy {z1}
-//FRAGMENT vbuz1_ge_vbuyy_then_la1
-lda {z1}
-sty $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuxx_ge_vbuyy_then_la1
-sty $ff
-cpx $ff
-bcs  {la1}
-//FRAGMENT vbuaa=vbuxx
-txa
-//FRAGMENT vbuyy=vbuxx
-txa
-tay
-//FRAGMENT vbuyy_eq_vbuc1_then_la1
-cpy #{c1}
-beq {la1}
-//FRAGMENT vbuaa=vbuyy
-tya
-//FRAGMENT vbuxx=vbuyy
-tya
-tax
-//FRAGMENT vbuyy_ge_vbuz1_then_la1
-cpy {z1}
-bcs {la1}
-//FRAGMENT vwuz1=vwuz1_rol_5
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vwuz1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz2_plus_1
-ldy {z2}
-iny
-sty {z1}
-//FRAGMENT vbuz1=vbuz2_rol_2
-lda {z2}
-asl
-asl
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2
-ldy {z2}
-lda {c2},y
-ldy {z1}
-sta {c1},y
-//FRAGMENT vbuz1=vbuz1_minus_vbuc1
-lax {z1}
-axs #{c1}
-stx {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz3
-ldy {z2}
-lda {c1},y
-ldy {z3}
-clc
-adc {c2},y
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2
-lda {z2}
-ldy {z1}
-sta {c1},y
-//FRAGMENT vbuz1_ge_vbuc1_then_la1
-lda {z1}
-cmp #{c1}
-bcs {la1}
-//FRAGMENT vbuz1=vbuz1_plus_vbuc1
-lax {z1}
-axs #-[{c1}]
-stx {z1}
 //FRAGMENT vbuaa=vbuz1_plus_1
 lda {z1}
 clc
 adc #1
+//FRAGMENT vbuaa_lt_vbuc1_then_la1
+cmp #{c1}
+bcc {la1}
 //FRAGMENT vbuaa=vbuz1_rol_2
 lda {z1}
 asl
@@ -1166,6 +522,9 @@ sta {c1},y
 //FRAGMENT pbuc1_derefidx_vbuxx=vbuz1
 lda {z1}
 sta {c1},x
+//FRAGMENT vbuxx_lt_vbuc1_then_la1
+cpx #{c1}
+bcc {la1}
 //FRAGMENT vbuxx_ge_vbuc1_then_la1
 cpx #{c1}
 bcs {la1}
@@ -1177,9 +536,248 @@ tya
 clc
 adc #{c1}
 tay
+//FRAGMENT vbuaa=_deref_pbuc1_band_vbuc2
+lda #{c2}
+and {c1}
+//FRAGMENT vbuxx=_deref_pbuc1_band_vbuc2
+lda #{c2}
+and {c1}
+tax
+//FRAGMENT vbuyy=_deref_pbuc1_band_vbuc2
+lda #{c2}
+and {c1}
+tay
+//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
+tay
+lda #{c2}
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
+lda #{c2}
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2
+lda #{c2}
+sta {c1},y
+//FRAGMENT 0_neq_vbuxx_then_la1
+cpx #0
+bne {la1}
+//FRAGMENT vbuz1=vbuaa_rol_1
+asl
+sta {z1}
+//FRAGMENT vbuz1=vbuxx_rol_1
+txa
+asl
+sta {z1}
+//FRAGMENT vbuz1=vbuyy_rol_1
+tya
+asl
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_rol_1
+lda {z1}
+asl
+//FRAGMENT vbuaa=vbuaa_rol_1
+asl
+//FRAGMENT vbuaa=vbuxx_rol_1
+txa
+asl
+//FRAGMENT vbuaa=vbuyy_rol_1
+tya
+asl
+//FRAGMENT vbuxx=vbuz1_rol_1
+lda {z1}
+asl
+tax
+//FRAGMENT vbuxx=vbuaa_rol_1
+asl
+tax
+//FRAGMENT vbuxx=vbuxx_rol_1
+txa
+asl
+tax
+//FRAGMENT vbuxx=vbuyy_rol_1
+tya
+asl
+tax
+//FRAGMENT vbuyy=vbuz1_rol_1
+lda {z1}
+asl
+tay
+//FRAGMENT vbuyy=vbuaa_rol_1
+asl
+tay
+//FRAGMENT vbuyy=vbuxx_rol_1
+txa
+asl
+tay
+//FRAGMENT vbuyy=vbuyy_rol_1
+tya
+asl
+tay
+//FRAGMENT vbuz1=vbuxx_bor_vbuz2
+txa
+ora {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuyy_bor_vbuz2
+tya
+ora {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuz2_bor_vbuaa
+ora {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuxx_bor_vbuaa
+stx $ff
+ora $ff
+sta {z1}
+//FRAGMENT vbuz1=vbuyy_bor_vbuaa
+sty $ff
+ora $ff
+sta {z1}
+//FRAGMENT vbuz1=vbuz2_bor_vbuxx
+txa
+ora {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuxx_bor_vbuxx
+stx {z1}
+//FRAGMENT vbuaa=_deref_pbuz1
+ldy #0
+lda ({z1}),y
+//FRAGMENT vbuxx=_deref_pbuz1
+ldy #0
+lda ({z1}),y
+tax
+//FRAGMENT vbuyy=_deref_pbuz1
+ldy #0
+lda ({z1}),y
+tay
+//FRAGMENT _deref_pbuc1=vbuaa
+sta {c1}
+//FRAGMENT vbuaa=_hi_pvoz1
+lda {z1}+1
+//FRAGMENT vbuxx=_hi_pvoz1
+ldx {z1}+1
+//FRAGMENT vbuaa=_lo_pvoz1
+lda {z1}
+//FRAGMENT vbuxx=_lo_pvoz1
+ldx {z1}
+//FRAGMENT _deref_pbuc1=vbuxx
+stx {c1}
+//FRAGMENT _deref_pbuc1=vbuyy
+sty {c1}
+//FRAGMENT vbuyy=_hi_pvoz1
+ldy {z1}+1
+//FRAGMENT vbuyy=_lo_pvoz1
+ldy {z1}
+//FRAGMENT vbuyy_lt_vbuc1_then_la1
+cpy #{c1}
+bcc {la1}
+//FRAGMENT 0_neq_vbuyy_then_la1
+cpy #0
+bne {la1}
+//FRAGMENT 0_eq_vbuxx_then_la1
+cpx #0
+beq {la1}
+//FRAGMENT 0_eq_vbuyy_then_la1
+cpy #0
+beq {la1}
+//FRAGMENT vbuz1=vbuz2_bor_vbuyy
+tya
+ora {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuc1
+lda #{c1}
+//FRAGMENT vbuaa=vbuz1_bor_vbuz2
+lda {z1}
+ora {z2}
+//FRAGMENT vbuaa=vbuz1_bor_vbuaa
+ora {z1}
+//FRAGMENT vbuaa=vbuz1_bor_vbuxx
+txa
+ora {z1}
+//FRAGMENT vbuaa=vbuz1_bor_vbuyy
+tya
+ora {z1}
+//FRAGMENT vbuz1=vbuxx
+stx {z1}
+//FRAGMENT vbuxx=vbuz1_bor_vbuz2
+lda {z1}
+ora {z2}
+tax
+//FRAGMENT vbuxx=vbuz1_bor_vbuaa
+ora {z1}
+tax
+//FRAGMENT vbuxx=vbuz1_bor_vbuxx
+txa
+ora {z1}
+tax
+//FRAGMENT vbuxx=vbuz1_bor_vbuyy
+tya
+ora {z1}
+tax
+//FRAGMENT vbuz1=vbuyy
+sty {z1}
+//FRAGMENT vbuyy=vbuz1_bor_vbuz2
+lda {z1}
+ora {z2}
+tay
+//FRAGMENT vbuyy=vbuz1_bor_vbuaa
+ora {z1}
+tay
+//FRAGMENT vbuyy=vbuz1_bor_vbuxx
+txa
+ora {z1}
+tay
+//FRAGMENT vbuyy=vbuz1_bor_vbuyy
+tya
+ora {z1}
+tay
+//FRAGMENT vbuz1=vbuxx_bor_vbuyy
+txa
+sty $ff
+ora $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_bor_vbuz1
+txa
+ora {z1}
+//FRAGMENT vbuaa=vbuxx_bor_vbuaa
+stx $ff
+ora $ff
+//FRAGMENT vbuaa=vbuxx_bor_vbuyy
+txa
+sty $ff
+ora $ff
+//FRAGMENT vbuxx=vbuxx_bor_vbuz1
+txa
+ora {z1}
+tax
+//FRAGMENT vbuxx=vbuxx_bor_vbuaa
+stx $ff
+ora $ff
+tax
+//FRAGMENT vbuxx=vbuxx_bor_vbuyy
+txa
+sty $ff
+ora $ff
+tax
+//FRAGMENT vbuyy=vbuxx_bor_vbuz1
+txa
+ora {z1}
+tay
+//FRAGMENT vbuyy=vbuxx_bor_vbuaa
+stx $ff
+ora $ff
+tay
+//FRAGMENT vbuyy=vbuxx_bor_vbuyy
+txa
+sty $ff
+ora $ff
+tay
+//FRAGMENT vbuyy=vbuz1
+ldy {z1}
 //FRAGMENT vbuyy_ge_vbuc1_then_la1
 cpy #{c1}
 bcs {la1}
+//FRAGMENT vbuaa=vbuyy_bor_vbuaa
+sty $ff
+ora $ff
 //FRAGMENT pbuc1_derefidx_vbuxx=vbuaa
 sta {c1},x
 //FRAGMENT pbuc1_derefidx_vbuyy=vbuaa
@@ -1190,3 +788,405 @@ inx
 //FRAGMENT vbuyy=vbuz1_plus_1
 ldy {z1}
 iny
+//FRAGMENT vbuxx=vbuaa
+tax
+//FRAGMENT vbuyy=vbuaa
+tay
+//FRAGMENT vbuz1=vbuz2_band_vbuc1
+lda #{c1}
+and {z2}
+sta {z1}
+//FRAGMENT _deref_pbuc1=_dec__deref_pbuc1
+dec {c1}
+//FRAGMENT pbuz1=pbuc1_plus_vbuz2
+lda {z2}
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pvoz1=pvoz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vbuz1=vbuz1_plus_2
+lda {z1}
+clc
+adc #2
+sta {z1}
+//FRAGMENT vbuz1=pbuz2_derefidx_vbuc1
+ldy #{c1}
+lda ({z2}),y
+sta {z1}
+//FRAGMENT pbuz1=pbuz2_plus_vbuc1
+lda #{c1}
+clc
+adc {z2}
+sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT pbuz1_neq_pbuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bne {la1}
+//FRAGMENT _deref_pbuz1=_deref_pbuz2
+ldy #0
+lda ({z2}),y
+ldy #0
+sta ({z1}),y
+//FRAGMENT vbuz1=vbuaa_band_vbuc1
+and #{c1}
+sta {z1}
+//FRAGMENT vbuz1=vbuxx_band_vbuc1
+lda #{c1}
+sax {z1}
+//FRAGMENT vbuz1=vbuyy_band_vbuc1
+tya
+and #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_band_vbuc1
+lda #{c1}
+and {z1}
+//FRAGMENT vbuaa=vbuaa_band_vbuc1
+and #{c1}
+//FRAGMENT vbuaa=vbuxx_band_vbuc1
+txa
+and #{c1}
+//FRAGMENT vbuaa=vbuyy_band_vbuc1
+tya
+and #{c1}
+//FRAGMENT vbuxx=vbuz1_band_vbuc1
+lda #{c1}
+and {z1}
+tax
+//FRAGMENT vbuxx=vbuaa_band_vbuc1
+ldx #{c1}
+axs #0
+//FRAGMENT vbuyy=vbuz1_band_vbuc1
+lda #{c1}
+and {z1}
+tay
+//FRAGMENT pbuz1=pbuc1_plus_vbuaa
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_vbuxx
+txa
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_vbuyy
+tya
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT vbuxx=vbuxx_plus_2
+inx
+inx
+//FRAGMENT vbuaa=pbuz1_derefidx_vbuc1
+ldy #{c1}
+lda ({z1}),y
+//FRAGMENT vbuxx=pbuz1_derefidx_vbuc1
+ldy #{c1}
+lda ({z1}),y
+tax
+//FRAGMENT vbuyy=pbuz1_derefidx_vbuc1
+ldy #{c1}
+lda ({z1}),y
+tay
+//FRAGMENT pbuz1=pbuz1_plus_vbuc1
+lda #{c1}
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vbuz1=_dec_vbuz1
+dec {z1}
+//FRAGMENT pbuz1=pbuz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+ldy #0
+sta ({z1}),y
+//FRAGMENT pbuz1=_inc_pbuz2
+clc
+lda {z2}
+adc #1
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+//FRAGMENT _deref_pbuz1=vbuc1
+lda #{c1}
+ldy #0
+sta ({z1}),y
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sta {z1}
+//FRAGMENT vbuz1_ge_vbuz2_then_la1
+lda {z1}
+cmp {z2}
+bcs {la1}
+//FRAGMENT vbuz1=vbuz1_minus_vbuz2
+lda {z1}
+sec
+sbc {z2}
+sta {z1}
+//FRAGMENT vwuz1=_word_vbuz2
+lda {z2}
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_rol_5
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_vwuz2
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz2_plus_vbuz3
+lda {z3}
+clc
+adc {z2}
+sta {z1}
+lda #0
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz1_minus_vbuc1
+sec
+lda {z1}
+sbc #{c1}
+sta {z1}
+lda {z1}+1
+sbc #0
+sta {z1}+1
+//FRAGMENT vbuz1=_deref_pbuc1
+lda {c1}
+sta {z1}
+//FRAGMENT _deref_pbuz1=vbuz2
+lda {z2}
+ldy #0
+sta ({z1}),y
+//FRAGMENT vbuxx=vbuxx_band_vbuc1
+lda #{c1}
+axs #0
+//FRAGMENT vbuyy=vbuxx_band_vbuc1
+txa
+and #{c1}
+tay
+//FRAGMENT vbuxx=vbuyy_band_vbuc1
+ldx #{c1}
+tya
+axs #0
+//FRAGMENT vbuyy=vbuyy_band_vbuc1
+tya
+and #{c1}
+tay
+//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuxx
+lda {c1},x
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuyy
+lda {c1},y
+ldy #0
+sta ({z1}),y
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1
+ldy {z1}
+ldx {c1},y
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1
+ldx {z1}
+ldy {c1},x
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa
+tay
+ldx {c1},y
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa
+tax
+ldy {c1},x
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx
+lda {c1},x
+sta {z1}
+//FRAGMENT 0_neq_vbuaa_then_la1
+cmp #0
+bne {la1}
+//FRAGMENT vbuaa_ge_vbuz1_then_la1
+cmp {z1}
+bcs {la1}
+//FRAGMENT vbuxx=vbuxx_minus_vbuz1
+txa
+sec
+sbc {z1}
+tax
+//FRAGMENT vbuz1=vbuz1_minus_vbuaa
+eor #$ff
+sec
+adc {z1}
+sta {z1}
+//FRAGMENT vbuxx=vbuxx_minus_vbuaa
+sta $ff
+txa
+sec
+sbc $ff
+tax
+//FRAGMENT vbuz1=vbuz1_minus_vbuxx
+txa
+eor #$ff
+sec
+adc {z1}
+sta {z1}
+//FRAGMENT vbuxx=vbuxx_minus_vbuxx
+lda #0
+tax
+//FRAGMENT vbuz1=vbuz1_minus_vbuyy
+tya
+eor #$ff
+sec
+adc {z1}
+sta {z1}
+//FRAGMENT vbuxx=vbuxx_minus_vbuyy
+txa
+sty $ff
+sec
+sbc $ff
+tax
+//FRAGMENT vwuz1=_word_vbuaa
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=_word_vbuxx
+txa
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=_word_vbuyy
+tya
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vbuaa_eq_vbuc1_then_la1
+cmp #{c1}
+beq {la1}
+//FRAGMENT vbuaa=_deref_pbuc1
+lda {c1}
+//FRAGMENT vbuxx=_deref_pbuc1
+ldx {c1}
+//FRAGMENT _deref_pbuz1=vbuaa
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=vbuxx
+txa
+ldy #0
+sta ({z1}),y
+//FRAGMENT _deref_pbuz1=vbuyy
+tya
+ldy #0
+sta ({z1}),y
+//FRAGMENT vbuxx_ge_vbuz1_then_la1
+cpx {z1}
+bcs {la1}
+//FRAGMENT vbuxx_eq_vbuc1_then_la1
+cpx #{c1}
+beq {la1}
+//FRAGMENT vbuyy=_deref_pbuc1
+ldy {c1}
+//FRAGMENT vbuz1_ge_vbuxx_then_la1
+lda {z1}
+stx $ff
+cmp $ff
+bcs {la1}
+//FRAGMENT vbuz1_ge_vbuyy_then_la1
+lda {z1}
+sty $ff
+cmp $ff
+bcs {la1}
+//FRAGMENT vbuxx_ge_vbuyy_then_la1
+sty $ff
+cpx $ff
+bcs  {la1}
+//FRAGMENT vbuaa=vbuxx
+txa
+//FRAGMENT vbuyy=vbuxx
+txa
+tay
+//FRAGMENT vbuyy_eq_vbuc1_then_la1
+cpy #{c1}
+beq {la1}
+//FRAGMENT vbuaa=vbuyy
+tya
+//FRAGMENT vbuxx=vbuyy
+tya
+tax
+//FRAGMENT vbuyy_ge_vbuz1_then_la1
+cpy {z1}
+bcs {la1}
+//FRAGMENT vwuz1=vwuz1_rol_5
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_vwuz1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
diff --git a/src/main/fragment/cache/fragment-cache-wdc65c02.asm b/src/main/fragment/cache/fragment-cache-wdc65c02.asm
index b329762dd..7559a15e0 100644
--- a/src/main/fragment/cache/fragment-cache-wdc65c02.asm
+++ b/src/main/fragment/cache/fragment-cache-wdc65c02.asm
@@ -1,12 +1,543 @@
 //KICKC FRAGMENT CACHE 108dd16dc1 108dd18d7f
+//FRAGMENT vbuz1=_deref_pbuc1
+lda {c1}
+sta {z1}
+//FRAGMENT vbuz1=vbuz2_plus_1
+lda {z2}
+inc
+sta {z1}
+//FRAGMENT _deref_pbuc1=vbuz1
+lda {z1}
+sta {c1}
+//FRAGMENT vbuaa=_deref_pbuc1
+lda {c1}
+//FRAGMENT vbuxx=_deref_pbuc1
+ldx {c1}
+//FRAGMENT vbuz1=vbuaa_plus_1
+inc
+sta {z1}
+//FRAGMENT vbuz1=vbuxx_plus_1
+inx
+stx {z1}
+//FRAGMENT _deref_pbuc1=vbuaa
+sta {c1}
+//FRAGMENT vbuyy=_deref_pbuc1
+ldy {c1}
+//FRAGMENT vbuz1=vbuyy_plus_1
+iny
+sty {z1}
+//FRAGMENT vbuaa=vbuz1_plus_1
+lda {z1}
+inc
+//FRAGMENT vbuaa=vbuaa_plus_1
+inc
+//FRAGMENT vbuaa=vbuxx_plus_1
+txa
+inc
+//FRAGMENT vbuaa=vbuyy_plus_1
+tya
+inc
+//FRAGMENT vbuxx=vbuz1_plus_1
+ldx {z1}
+inx
+//FRAGMENT _deref_pbuc1=vbuxx
+stx {c1}
+//FRAGMENT vbuxx=vbuaa_plus_1
+tax
+inx
+//FRAGMENT vbuxx=vbuxx_plus_1
+inx
+//FRAGMENT vbuxx=vbuyy_plus_1
+tya
+inc
+tax
+//FRAGMENT vbuyy=vbuz1_plus_1
+ldy {z1}
+iny
+//FRAGMENT _deref_pbuc1=vbuyy
+sty {c1}
+//FRAGMENT vbuyy=vbuaa_plus_1
+tay
+iny
+//FRAGMENT vbuyy=vbuxx_plus_1
+txa
+inc
+tay
+//FRAGMENT vbuyy=vbuyy_plus_1
+iny
+//FRAGMENT pbuz1=pbuc1
+lda #<{c1}
+sta {z1}
+lda #>{c1}
+sta {z1}+1
 //FRAGMENT vbuz1=vbuc1
 lda #{c1}
 sta {z1}
+//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1
+ldy {z1}
+lda {c1},y
+cmp #0
+bne {la1}
+//FRAGMENT pbuz1=pbuz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sta {z1}
+//FRAGMENT pbuz1=_inc_pbuz2
+clc
+lda {z2}
+adc #1
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+//FRAGMENT vbuz1=_inc_vbuz1
+inc {z1}
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuc2
+lda #{c2}
+and {c1}
+sta {c1}
+//FRAGMENT _deref_pbuc1=vbuc2
+lda #{c2}
+sta {c1}
+//FRAGMENT pbuz1_neq_pbuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bne {la1}
+//FRAGMENT _deref_pbuc1=_deref_pbuz1
+ldy #0
+lda ({z1}),y
+sta {c1}
+//FRAGMENT pbuz1=_inc_pbuz1
+inc {z1}
+bne !+
+inc {z1}+1
+!:
+//FRAGMENT vbuz1=_lo_pbuz2
+lda {z2}
+sta {z1}
+//FRAGMENT vbuz1=_hi_pbuz2
+lda {z2}+1
+sta {z1}
+//FRAGMENT 0_neq_pbuc1_derefidx_vbuaa_then_la1
+tay
+lda {c1},y
+cmp #0
+bne {la1}
+//FRAGMENT 0_neq_pbuc1_derefidx_vbuxx_then_la1
+lda {c1},x
+cmp #0
+bne {la1}
+//FRAGMENT 0_neq_pbuc1_derefidx_vbuyy_then_la1
+lda {c1},y
+cmp #0
+bne {la1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx
+lda {c1},x
+sta {z1}
+//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy
+lda {c1},y
+sta {z1}
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx
+lda {c1},x
+//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy
+lda {c1},y
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1
+ldy {z1}
+ldx {c1},y
+//FRAGMENT vbuaa=_lo_pbuz1
+lda {z1}
+//FRAGMENT vbuxx=_lo_pbuz1
+ldx {z1}
+//FRAGMENT vbuaa=_hi_pbuz1
+lda {z1}+1
+//FRAGMENT vbuxx=_hi_pbuz1
+ldx {z1}+1
+//FRAGMENT vbuyy=_lo_pbuz1
+ldy {z1}
+//FRAGMENT vbuyy=_hi_pbuz1
+ldy {z1}+1
+//FRAGMENT vbuxx=vbuc1
+ldx #{c1}
+//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1
+ldx {z1}
+ldy {c1},x
+//FRAGMENT vbuyy=vbuc1
+ldy #{c1}
+//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy
+ldx {c1},y
+//FRAGMENT vbuyy=_inc_vbuyy
+iny
+//FRAGMENT isr_rom_min_cx16_entry
+
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
+lda #{c2}
+ora {c1}
+sta {c1}
+//FRAGMENT vbuz1_neq_vbuc1_then_la1
+lda #{c1}
+cmp {z1}
+bne {la1}
+//FRAGMENT vbuz1=_dec_vbuz1
+dec {z1}
+//FRAGMENT vbuz1_neq_0_then_la1
+lda {z1}
+bne {la1}
+//FRAGMENT vbuz1_ge_vbuc1_then_la1
+lda {z1}
+cmp #{c1}
+bcs {la1}
+//FRAGMENT vbuz1=vbuz2
+lda {z2}
+sta {z1}
+//FRAGMENT vbuz1_lt_vbuc1_then_la1
+lda {z1}
+cmp #{c1}
+bcc {la1}
+//FRAGMENT isr_rom_min_cx16_exit
+jmp $e049
+//FRAGMENT pbuz1=pbuc1_plus_pbuc2_derefidx_vbuz2
+ldy {z2}
+lda {c2},y
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT vbuz1=vbuz1_plus_vbuc1
+lda #{c1}
+clc
+adc {z1}
+sta {z1}
+//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuz2
+ldy {z2}
+lda {c1},y
+sta ({z1}),y
+//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuz1
+ldy {z1}
+lda {c2},y
+sta {c1}
+//FRAGMENT _deref_qprc1=pprc2
+lda #<{c2}
+sta {c1}
+lda #>{c2}
+sta {c1}+1
+//FRAGMENT _deref_pbuz1=vbuc1
+lda #{c1}
+ldy #0
+sta ({z1}),y
+//FRAGMENT vbuaa_neq_vbuc1_then_la1
+cmp #{c1}
+bne {la1}
+//FRAGMENT vbuaa=vbuz1
+lda {z1}
+//FRAGMENT vbuxx=vbuz1
+ldx {z1}
+//FRAGMENT vbuaa_lt_vbuc1_then_la1
+cmp #{c1}
+bcc {la1}
+//FRAGMENT pbuz1=pbuc1_plus_pbuc2_derefidx_vbuaa
+tay
+lda {c2},y
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_pbuc2_derefidx_vbuxx
+lda {c2},x
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT pbuz1=pbuc1_plus_pbuc2_derefidx_vbuyy
+lda {c2},y
+clc
+adc #<{c1}
+sta {z1}
+lda #>{c1}
+adc #0
+sta {z1}+1
+//FRAGMENT vbuxx=vbuxx_plus_vbuc1
+txa
+clc
+adc #{c1}
+tax
+//FRAGMENT vbuyy=vbuyy_plus_vbuc1
+tya
+clc
+adc #{c1}
+tay
+//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuaa
+tay
+lda {c1},y
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuxx
+txa
+tay
+lda {c1},y
+sta ({z1}),y
+//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuyy
+lda {c1},y
+sta ({z1}),y
+//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuaa
+tay
+lda {c2},y
+sta {c1}
+//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuxx
+lda {c2},x
+sta {c1}
+//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuyy
+lda {c2},y
+sta {c1}
+//FRAGMENT vbuxx_neq_vbuc1_then_la1
+cpx #{c1}
+bne {la1}
+//FRAGMENT vbuxx_lt_vbuc1_then_la1
+cpx #{c1}
+bcc {la1}
+//FRAGMENT vbuxx=_inc_vbuxx
+inx
+//FRAGMENT vbuyy_lt_vbuc1_then_la1
+cpy #{c1}
+bcc {la1}
+//FRAGMENT vbuaa=vbuc1
+lda #{c1}
+//FRAGMENT vbuaa=_inc_vbuaa
+inc
+//FRAGMENT vbuyy_neq_vbuc1_then_la1
+cpy #{c1}
+bne {la1}
 //FRAGMENT vwuz1=vwuc1
 lda #<{c1}
 sta {z1}
 lda #>{c1}
 sta {z1}+1
+//FRAGMENT isr_rom_sys_cx16_entry
+
+//FRAGMENT vwuz1=_inc_vwuz1
+inc {z1}
+bne !+
+inc {z1}+1
+!:
+//FRAGMENT vwuz1_neq_vbuc1_then_la1
+NO_SYNTHESIS
+//FRAGMENT vwuz1_neq_vwuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne {la1}
+lda {z1}
+cmp #<{c1}
+bne {la1}
+//FRAGMENT vwuz1=vbuc1
+lda #<{c1}
+sta {z1}
+lda #>{c1}
+sta {z1}+1
+//FRAGMENT vwuz1=_dec_vwuz1
+lda {z1}
+bne !+
+dec {z1}+1
+!:
+dec {z1}
+//FRAGMENT vwuz1=vwuz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT isr_rom_sys_cx16_exit
+jmp $e034
+//FRAGMENT vwuz1=vwuz2_rol_1
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+//FRAGMENT pwuz1=pwuc1_plus_vwuz2
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT _deref_pwuc1=_deref_pwuz1
+ldy #0
+lda ({z1}),y
+sta {c1}
+iny
+lda ({z1}),y
+sta {c1}+1
+//FRAGMENT pvoz1=pvoz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT pvoz1=pvoc1
+lda #<{c1}
+sta {z1}
+lda #>{c1}
+sta {z1}+1
+//FRAGMENT pbuz1=pbuz1_plus_vbuc1
+lda #{c1}
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vwuz1=vwuz1_plus_vbuc1
+lda #{c1}
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vwuz1_lt_vbuc1_then_la1
+lda {z1}+1
+bne !+
+lda {z1}
+cmp #{c1}
+bcc {la1}
+!:
+//FRAGMENT vwuz1=vwuz1_minus_vbuc1
+sec
+lda {z1}
+sbc #{c1}
+sta {z1}
+lda {z1}+1
+sbc #0
+sta {z1}+1
+//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vbuc2
+NO_SYNTHESIS
+//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vbsc2
+NO_SYNTHESIS
+//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vwuc2
+lda #<{c2}
+clc
+adc {c1}
+sta {c1}
+lda #>{c2}
+adc {c1}+1
+sta {c1}+1
+//FRAGMENT vbuz1=_lo_pvoz2
+lda {z2}
+sta {z1}
+//FRAGMENT vbuz1=_hi_pvoz2
+lda {z2}+1
+sta {z1}
+//FRAGMENT vbuz1=vbuc1_bor_vbuz2
+lda #{c1}
+ora {z2}
+sta {z1}
+//FRAGMENT pbuz1=pbuz2_plus_vwuz3
+lda {z2}
+clc
+adc {z3}
+sta {z1}
+lda {z2}+1
+adc {z3}+1
+sta {z1}+1
+//FRAGMENT pbuz1_neq_pbuz2_then_la1
+lda {z1}+1
+cmp {z2}+1
+bne {la1}
+lda {z1}
+cmp {z2}
+bne {la1}
+//FRAGMENT vbuaa=_lo_pvoz1
+lda {z1}
+//FRAGMENT vbuxx=_lo_pvoz1
+ldx {z1}
+//FRAGMENT vbuaa=_hi_pvoz1
+lda {z1}+1
+//FRAGMENT vbuxx=_hi_pvoz1
+ldx {z1}+1
+//FRAGMENT vbuaa=vbuc1_bor_vbuz1
+lda #{c1}
+ora {z1}
+//FRAGMENT vbuxx=vbuc1_bor_vbuz1
+lda #{c1}
+ora {z1}
+tax
+//FRAGMENT vbuyy=vbuc1_bor_vbuz1
+lda #{c1}
+ora {z1}
+tay
+//FRAGMENT vbuz1=vbuc1_bor_vbuxx
+txa
+ora #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuc1_bor_vbuxx
+txa
+ora #{c1}
+//FRAGMENT vbuxx=vbuc1_bor_vbuxx
+txa
+ora #{c1}
+tax
+//FRAGMENT vbuyy=vbuc1_bor_vbuxx
+txa
+ora #{c1}
+tay
+//FRAGMENT vbuz1=vbuc1_bor_vbuyy
+tya
+ora #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuc1_bor_vbuyy
+tya
+ora #{c1}
+//FRAGMENT vbuxx=vbuc1_bor_vbuyy
+tya
+ora #{c1}
+tax
+//FRAGMENT vbuyy=vbuc1_bor_vbuyy
+tya
+ora #{c1}
+tay
+//FRAGMENT vbuyy=_lo_pvoz1
+ldy {z1}
+//FRAGMENT vbuyy=_hi_pvoz1
+ldy {z1}+1
+//FRAGMENT pbuz1=pbuz2_plus_vwuz1
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc {z2}+1
+sta {z1}+1
+//FRAGMENT pwuz1=pwuc1_plus_vwuz1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vbuz1_lt_vbuz2_then_la1
+lda {z1}
+cmp {z2}
+bcc {la1}
+//FRAGMENT vbuz1=vbuz2_minus_1
+ldx {z2}
+dex
+stx {z1}
 //FRAGMENT vduz1=vduc1
 lda #<{c1}
 sta {z1}
@@ -16,34 +547,44 @@ lda #<{c1}>>$10
 sta {z1}+2
 lda #>{c1}>>$10
 sta {z1}+3
-//FRAGMENT vbuz1=_deref_pbuc1
-lda {c1}
+//FRAGMENT vduz1=vbuc1
+lda #{c1}
 sta {z1}
-//FRAGMENT vbuz1_lt_vbuz2_then_la1
+lda #0
+sta {z1}+1
+sta {z1}+2
+sta {z1}+3
+//FRAGMENT pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz1_plus_1
+ldy {z1}
+lda {c1},y
+inc
+sta {c1},y
+//FRAGMENT vwuz1=vwuz1_plus_vwuc1
+clc
 lda {z1}
-cmp {z2}
-bcc {la1}
-//FRAGMENT vbuz1=vbuz2_minus_1
-ldx {z2}
-dex
-stx {z1}
-//FRAGMENT vbuz1=vbuz2
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vbuz1=vbuz1_plus_2
+lda {z1}
+clc
+adc #2
+sta {z1}
+//FRAGMENT vwuz1=_inc_vwuz2
+clc
 lda {z2}
+adc #1
 sta {z1}
-//FRAGMENT pvoz1=pvoc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
+lda {z2}+1
+adc #0
 sta {z1}+1
-//FRAGMENT vwuz1=vbuc1
-lda #<{c1}
+//FRAGMENT vwuz1=vwuz2_band_vbuc1
+lda #{c1}
+and {z2}
 sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
+lda #0
 sta {z1}+1
 //FRAGMENT _deref_pbuc1=_deref_pbuc1_bor__deref_pbuc2
 lda {c1}
@@ -52,31 +593,16 @@ sta {c1}
 //FRAGMENT 0_eq_vbuz1_then_la1
 lda {z1}
 beq {la1}
-//FRAGMENT vwuz1=vwuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=_inc_vbuz1
-inc {z1}
-//FRAGMENT vwuz1=_inc_vwuz1
-inc {z1}
-bne !+
-inc {z1}+1
-!:
-//FRAGMENT vwuz1_le_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne !+
-lda {z1}
-cmp #<{c1}
-!:
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuz1=vwuz2_band_vbuc1
-lda #{c1}
-and {z2}
+//FRAGMENT vbuz1=_bnot__deref_pbuc1
+lda {c1}
+eor #$ff
 sta {z1}
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuz1
+lda {c1}
+and {z1}
+sta {c1}
+//FRAGMENT vduz1=vwuc1
+NO_SYNTHESIS
 //FRAGMENT vbuz1=_deref_pbuc1_ror_7
 lda {c1}
 rol
@@ -94,9 +620,6 @@ dey
 bne !-
 !e:
 sta {z1}
-//FRAGMENT _deref_pbuc1=vbuz1
-lda {z1}
-sta {c1}
 //FRAGMENT vbuz1=vbuz2_rol_1
 lda {z2}
 asl
@@ -132,6 +655,10 @@ rol
 rol
 and #$03
 sta {z1}
+//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2
+lda #{c2}
+ldy {z1}
+sta {c1},y
 //FRAGMENT pbuc1_derefidx_vbuz1=vbuz2
 lda {z2}
 ldy {z1}
@@ -147,10 +674,6 @@ bcs {la1}
 //FRAGMENT 0_lt_vbuz1_then_la1
 lda {z1}
 bne {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2
-lda #{c2}
-ldy {z1}
-sta {c1},y
 //FRAGMENT vwuz1=_word_vbuz2
 lda {z2}
 sta {z1}
@@ -175,27 +698,6 @@ lda {z2}
 sta {c1},y
 lda {z2}+1
 sta {c1}+1,y
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuc2
-lda #{c2}
-and {c1}
-sta {c1}
-//FRAGMENT vbuz1=_lo_pvoz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbuz1=_hi_pvoz2
-lda {z2}+1
-sta {z1}
-//FRAGMENT _deref_pbuc1=vbuc2
-lda #{c2}
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
-lda #{c2}
-ora {c1}
-sta {c1}
-//FRAGMENT vbuz1=vbuc1_bor_vbuz2
-lda #{c1}
-ora {z2}
-sta {z1}
 //FRAGMENT vwuz1_lt_vwuz2_then_la1
 lda {z1}+1
 cmp {z2}+1
@@ -208,6 +710,10 @@ bcc {la1}
 //FRAGMENT _deref_pbuc1=_deref_pbuc2
 lda {c2}
 sta {c1}
+//FRAGMENT vbuz1_eq_vbuc1_then_la1
+lda #{c1}
+cmp {z1}
+beq {la1}
 //FRAGMENT vwuz1_eq_vbuc1_then_la1
 lda #{c1}
 cmp {z1}
@@ -216,23 +722,16 @@ lda {z1}+1
 bne !+
 jmp {la1}
 !:
-//FRAGMENT vwuz1_neq_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
+//FRAGMENT vbuz1=vbuz1_bor_vbuc1
+lda #{c1}
+ora {z1}
+sta {z1}
 //FRAGMENT pwuc1_derefidx_vbuz1=vwuc2
 ldy {z1}
 lda #<{c2}
 sta {c1},y
 lda #>{c2}
 sta {c1}+1,y
-//FRAGMENT vbuz1=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-sta {z1}
 //FRAGMENT vwuz1=_lo_vduz2
 lda {z2}
 sta {z1}
@@ -282,39 +781,12 @@ sta {z1}
 lda #{c1}
 and {z2}
 sta {z1}
-//FRAGMENT vbuz1_eq_vbuc1_then_la1
-lda #{c1}
-cmp {z1}
-beq {la1}
-//FRAGMENT vbuz1_neq_vbuc1_then_la1
-lda #{c1}
-cmp {z1}
-bne {la1}
 //FRAGMENT pwuc1_derefidx_vbuz1=vbuc2
 lda #{c2}
 ldy {z1}
 sta {c1},y
 lda #0
 sta {c1}+1,y
-//FRAGMENT _deref_pwuc1=vwuc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
-//FRAGMENT _deref_pduc1=vduc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
-lda #<{c2}>>$10
-sta {c1}+2
-lda #>{c2}>>$10
-sta {c1}+3
-//FRAGMENT pbuz1=pbuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
 //FRAGMENT vbuz1=vbuz2_rol_4
 lda {z2}
 asl
@@ -332,12 +804,6 @@ bne {la1}
 lda {z1}
 cmp {z2}
 bcc {la1}
-//FRAGMENT vbuz1=_lo_pbuz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbuz1=_hi_pbuz2
-lda {z2}+1
-sta {z1}
 //FRAGMENT vbuz1=vbuz2_bor_vbuc1
 lda #{c1}
 ora {z2}
@@ -350,158 +816,60 @@ sta {z1}
 lda {z1}+1
 adc {z2}+1
 sta {z1}+1
-//FRAGMENT vbuz1=_deref_pbuz2
-ldy #0
-lda ({z2}),y
+//FRAGMENT vduz1=_deref_pduc1
+lda {c1}
 sta {z1}
-//FRAGMENT pbuz1=_inc_pbuz1
-inc {z1}
-bne !+
-inc {z1}+1
+lda {c1}+1
+sta {z1}+1
+lda {c1}+2
+sta {z1}+2
+lda {c1}+3
+sta {z1}+3
+//FRAGMENT vwuz1=vwuc1_rol_vbuz2
+ldy {z2}
+lda #<{c1}
+sta {z1}
+lda #>{c1}+1
+sta {z1}+1
+cpy #0
+beq !e+
 !:
-//FRAGMENT 0_neq_vbuz1_then_la1
-lda {z1}
-bne {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-//FRAGMENT vbsz1=pbsc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuz1_neq_0_then_la1
-lda {z1}
-bne {la1}
-//FRAGMENT vwuz1=vwuz2_ror_3
-lda {z2}+1
-lsr
-sta {z1}+1
+asl {z1}
+rol {z1}+1
+dey
+bne !-
+!e:
+//FRAGMENT vbuz1=_lo_vwuz2
 lda {z2}
-ror
 sta {z1}
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-//FRAGMENT vwuz1=vwuz2_rol_1
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-//FRAGMENT pwuz1=pwuc1_plus_vwuz2
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT _deref_pwuz1=vwuz2
-ldy #0
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT pbuz1=pbuc1_plus_vwuz2
-clc
-lda {z2}
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vbsz1=vbsz1_minus_1
-dec {z1}
-//FRAGMENT vbuz1=vbuz1_ror_1
-lsr {z1}
-//FRAGMENT vwuz1=vwuz2_ror_2
-lda {z2}+1
-lsr
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-lsr {z1}+1
-ror {z1}
-//FRAGMENT vbsz1=vbsz1_minus_2
-dec {z1}
-dec {z1}
-//FRAGMENT vbuz1=vbuz1_ror_2
-lda {z1}
-lsr
-lsr
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_ror_1
-lda {z2}+1
-lsr
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-//FRAGMENT vbsz1=vbsz1_minus_vbsc1
-lda {z1}
-sec
-sbc #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_ror_4
-lda {z1}
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbsz1_ge_0_then_la1
-lda {z1}
-cmp #0
-bpl {la1}
-//FRAGMENT vbuz1=vbuz2_plus_vbuz3
+//FRAGMENT vduz1=vduz2_plus_vwuz3
 lda {z2}
 clc
 adc {z3}
 sta {z1}
-//FRAGMENT vduz1=vduz2
-lda {z2}
-sta {z1}
 lda {z2}+1
+adc {z3}+1
 sta {z1}+1
 lda {z2}+2
+adc #0
 sta {z1}+2
 lda {z2}+3
+adc #0
 sta {z1}+3
-//FRAGMENT vwuz1=vwuz2_rol_2
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pduz1=pduc1_plus_vwuz2
+//FRAGMENT vduz1=vduz2_plus_vbuz3
+lda {z3}
 clc
-lda {z2}
-adc #<{c1}
+adc {z2}
 sta {z1}
 lda {z2}+1
-adc #>{c1}
+adc #0
 sta {z1}+1
-//FRAGMENT _deref_pduz1=vduz2
-ldy #0
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-iny
 lda {z2}+2
-sta ({z1}),y
-iny
+adc #0
+sta {z1}+2
 lda {z2}+3
-sta ({z1}),y
+adc #0
+sta {z1}+3
 //FRAGMENT vduz1=vduz1_plus_vwuz2
 lda {z1}
 clc
@@ -516,49 +884,13 @@ sta {z1}+2
 lda {z1}+3
 adc #0
 sta {z1}+3
-//FRAGMENT vbuz1=_lo_vwuz2
-lda {z2}
-sta {z1}
-//FRAGMENT pvoz1=pvoz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_minus_vwuz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-lda {z2}+1
-sbc {z3}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_7
-lda {z2}+1
-lsr
-lda {z2}
-ror
-sta {z1}+1
-lda #0
-ror
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_bxor_vwuz3
-lda {z2}
-eor {z3}
-sta {z1}
-lda {z2}+1
-eor {z3}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_ror_9
-lda {z2}+1
-lsr
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_8
-lda {z2}
-sta {z1}+1
-lda #0
+//FRAGMENT vbuz1=_deref_pbuz2
+ldy #0
+lda ({z2}),y
 sta {z1}
+//FRAGMENT 0_neq_vbuz1_then_la1
+lda {z1}
+bne {la1}
 //FRAGMENT pbuz1=_deref_qbuc1
 lda {c1}
 sta {z1}
@@ -618,120 +950,6 @@ lda {z2}
 ldy {z1}
 cmp {c1},y
 bne {la1}
-//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuz1_then_la1
-lda {c1}
-ldy {z1}
-cmp {c2},y
-bne {la1}
-//FRAGMENT vduz1=_dword_vwuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda #0
-sta {z1}+2
-sta {z1}+3
-//FRAGMENT vwuz1_neq_0_then_la1
-lda {z1}
-ora {z1}+1
-bne {la1}
-//FRAGMENT vbuz1_eq_0_then_la1
-lda {z1}
-beq {la1}
-//FRAGMENT vduz1=vduz1_plus_vduz2
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-lda {z1}+2
-adc {z2}+2
-sta {z1}+2
-lda {z1}+3
-adc {z2}+3
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz1_ror_1
-lsr {z1}+1
-ror {z1}
-//FRAGMENT vduz1=vduz1_rol_1
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vduz1_lt_vduz2_then_la1
-lda {z1}+3
-cmp {z2}+3
-bcc {la1}
-bne !+
-lda {z1}+2
-cmp {z2}+2
-bcc {la1}
-bne !+
-lda {z1}+1
-cmp {z2}+1
-bcc {la1}
-bne !+
-lda {z1}
-cmp {z2}
-bcc {la1}
-!:
-//FRAGMENT vduz1=_inc_vduz1
-inc {z1}
-bne !+
-inc {z1}+1
-bne !+
-inc {z1}+2
-bne !+
-inc {z1}+3
-!:
-//FRAGMENT vwuz1=vwuz1_plus_vwuz2
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1_ge_vwuz2_then_la1
-lda {z2}+1
-cmp {z1}+1
-bne !+
-lda {z2}
-cmp {z1}
-beq {la1}
-!:
-bcc {la1}
-//FRAGMENT vwuz1=vwuz1_minus_vwuz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-lda {z1}+1
-sbc {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_plus_1
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-//FRAGMENT vwuz1=_dec_vwuz1
-lda {z1}
-bne !+
-dec {z1}+1
-!:
-dec {z1}
-//FRAGMENT vwuz1=vwuz1_rol_1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=vwuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-sta {z1}
 //FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_rol_4
 ldy {z2}
 lda {c1},y
@@ -753,72 +971,11 @@ sta {z1}
 lda {z2}+1
 adc {z3}+1
 sta {z1}+1
-//FRAGMENT vduz1=_dword__deref_pwuz2
-ldy #0
-sty {z1}+2
-sty {z1}+3
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vduz1=_deref_pduz2
-ldy #0
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-iny
-lda ({z2}),y
-sta {z1}+2
-iny
-lda ({z2}),y
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vduz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-lda {z2}+2
-adc {z3}+2
-sta {z1}+2
-lda {z2}+3
-adc {z3}+3
-sta {z1}+3
-//FRAGMENT vbuz1=vbuz1_rol_vbuz2
-lda {z1}
-ldy {z2}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuz1=_bnot__deref_pbuz2
-ldy #0
-lda ({z2}),y
-eor #$ff
-sta {z1}
-//FRAGMENT vbuz1=_deref_pbuc1_band_vbuz2
-lda {c1}
-and {z2}
-sta {z1}
 //FRAGMENT pbuc1_derefidx_vbuz1_lt_vbuz2_then_la1
 ldy {z1}
 lda {c1},y
 cmp {z2}
 bcc {la1}
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-lda {c1},y
-cmp #0
-bne {la1}
 //FRAGMENT pbuc1_derefidx_vbuz1_lt_vwuz2_then_la1
 ldy {z1}
 lda {c1},y
@@ -840,14 +997,6 @@ rol {z1}+1
 dey
 bne !-
 !e:
-//FRAGMENT pbuz1=pbuz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
 //FRAGMENT vwuz1=vbuz2
 lda {z2}
 sta {z1}
@@ -860,10 +1009,6 @@ lda {z1}
 cmp {z2}
 bcc {la1}
 !:
-//FRAGMENT vbuaa=_deref_pbuc1
-lda {c1}
-//FRAGMENT vbuxx=_deref_pbuc1
-ldx {c1}
 //FRAGMENT vbuaa_lt_vbuz1_then_la1
 cmp {z1}
 bcc {la1}
@@ -873,24 +1018,52 @@ sec
 sbc #1
 //FRAGMENT vbuz1=vbuaa
 sta {z1}
-//FRAGMENT vbuaa=vbuz1
-lda {z1}
-//FRAGMENT vbuxx=vbuz1
-ldx {z1}
+//FRAGMENT pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuaa_plus_1
+tay
+lda {c1},y
+inc
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_1
+lda {c1},x
+inc
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuyy_plus_1
+lda {c1},y
+inc
+sta {c1},y
+//FRAGMENT vbuxx_neq_0_then_la1
+cpx #0
+bne {la1}
+//FRAGMENT vbuz1=vbuxx
+stx {z1}
+//FRAGMENT vbuxx=vbuxx_plus_2
+inx
+inx
 //FRAGMENT 0_eq_vbuaa_then_la1
 cmp #0
 beq {la1}
-//FRAGMENT vbuaa=vwuz1_band_vbuc1
-lda #{c1}
-and {z1}
-//FRAGMENT vbuxx=vwuz1_band_vbuc1
-lda #{c1}
-and {z1}
+//FRAGMENT vbuaa=_bnot__deref_pbuc1
+lda {c1}
+eor #$ff
+//FRAGMENT vbuxx=_bnot__deref_pbuc1
+lda {c1}
+eor #$ff
 tax
-//FRAGMENT vbuyy=vwuz1_band_vbuc1
-lda #{c1}
-and {z1}
+//FRAGMENT vbuyy=_bnot__deref_pbuc1
+lda {c1}
+eor #$ff
 tay
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuaa
+and {c1}
+sta {c1}
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuxx
+txa
+and {c1}
+sta {c1}
+//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuyy
+tya
+and {c1}
+sta {c1}
 //FRAGMENT vbuaa=_deref_pbuc1_ror_7
 lda {c1}
 rol
@@ -1061,8 +1234,6 @@ dey
 bne !-
 !e:
 tay
-//FRAGMENT _deref_pbuc1=vbuaa
-sta {c1}
 //FRAGMENT vbuaa=vbuz1_rol_1
 lda {z1}
 asl
@@ -1355,6 +1526,16 @@ rol
 rol
 and #$03
 tay
+//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
+tay
+lda #{c2}
+sta {c1},y
+//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
+lda #{c2}
+sta {c1},x
+//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2
+lda #{c2}
+sta {c1},y
 //FRAGMENT pbuc1_derefidx_vbuaa=vbuz1
 tay
 lda {z1}
@@ -1406,58 +1587,17 @@ lda {z1}
 sta {c1},y
 lda {z1}+1
 sta {c1}+1,y
-//FRAGMENT vbuaa=_lo_pvoz1
-lda {z1}
-//FRAGMENT vbuxx=_lo_pvoz1
-ldx {z1}
-//FRAGMENT vbuaa=_hi_pvoz1
-lda {z1}+1
-//FRAGMENT vbuxx=_hi_pvoz1
-ldx {z1}+1
-//FRAGMENT vbuz1=vbuc1_bor_vbuxx
-txa
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_bor_vbuyy
-tya
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuc1_bor_vbuz1
-lda #{c1}
-ora {z1}
-//FRAGMENT vbuaa=vbuc1_bor_vbuxx
-txa
-ora #{c1}
-//FRAGMENT vbuaa=vbuc1_bor_vbuyy
-tya
-ora #{c1}
-//FRAGMENT vbuxx=vbuc1_bor_vbuz1
-lda #{c1}
-ora {z1}
-tax
-//FRAGMENT vbuxx=vbuc1_bor_vbuxx
+//FRAGMENT vbuaa_eq_vbuc1_then_la1
+cmp #{c1}
+beq {la1}
+//FRAGMENT vbuxx=vbuxx_bor_vbuc1
 txa
 ora #{c1}
 tax
-//FRAGMENT vbuxx=vbuc1_bor_vbuyy
-tya
-ora #{c1}
-tax
-//FRAGMENT vbuyy=vbuc1_bor_vbuz1
-lda #{c1}
-ora {z1}
-tay
-//FRAGMENT vbuyy=vbuc1_bor_vbuxx
-txa
-ora #{c1}
-tay
-//FRAGMENT vbuyy=vbuc1_bor_vbuyy
+//FRAGMENT vbuyy=vbuyy_bor_vbuc1
 tya
 ora #{c1}
 tay
-//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
-lda #{c2}
-sta {c1},x
 //FRAGMENT pwuc1_derefidx_vbuaa=vwuc2
 tay
 lda #<{c2}
@@ -1474,16 +1614,6 @@ lda #<{c2}
 sta {c1},y
 lda #>{c2}
 sta {c1}+1,y
-//FRAGMENT vbuxx=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-tax
-//FRAGMENT vbuyy=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-tay
-//FRAGMENT vbuz1=vbuxx
-stx {z1}
 //FRAGMENT pbuc1_derefidx_vbuxx=_byte_vwuz1
 lda {z1}
 sta {c1},x
@@ -1570,9 +1700,6 @@ tay
 //FRAGMENT vbuxx_eq_vbuc1_then_la1
 cpx #{c1}
 beq {la1}
-//FRAGMENT vbuxx_neq_vbuc1_then_la1
-cpx #{c1}
-bne {la1}
 //FRAGMENT vbuaa=vbuaa_bor_vbuc1
 ora #{c1}
 //FRAGMENT pwuc1_derefidx_vbuaa=vbuc2
@@ -1758,14 +1885,6 @@ ldy {z1}+1
 bne {la1}
 cmp {z1}
 bcc {la1}
-//FRAGMENT vbuaa=_lo_pbuz1
-lda {z1}
-//FRAGMENT vbuxx=_lo_pbuz1
-ldx {z1}
-//FRAGMENT vbuaa=_hi_pbuz1
-lda {z1}+1
-//FRAGMENT vbuxx=_hi_pbuz1
-ldx {z1}+1
 //FRAGMENT vbuaa=vbuz1_bor_vbuc1
 lda #{c1}
 ora {z1}
@@ -1788,8 +1907,172 @@ ora #{c1}
 txa
 ora #{c1}
 tay
-//FRAGMENT _deref_pbuc1=vbuxx
-stx {c1}
+//FRAGMENT vwuz1=vwuc1_rol_vbuaa
+tay
+lda #<{c1}
+sta {z1}
+lda #>{c1}+1
+sta {z1}+1
+cpy #0
+beq !e+
+!:
+asl {z1}
+rol {z1}+1
+dey
+bne !-
+!e:
+//FRAGMENT vwuz1=vwuc1_rol_vbuxx
+lda #<{c1}
+sta {z1}
+lda #>{c1}+1
+sta {z1}+1
+cpx #0
+beq !e+
+!:
+asl {z1}
+rol {z1}+1
+dex
+bne !-
+!e:
+//FRAGMENT vwuz1=vwuc1_rol_vbuyy
+lda #<{c1}
+sta {z1}
+lda #>{c1}+1
+sta {z1}+1
+cpy #0
+beq !e+
+!:
+asl {z1}
+rol {z1}+1
+dey
+bne !-
+!e:
+//FRAGMENT vbuaa=_lo_vwuz1
+lda {z1}
+//FRAGMENT vbuxx=_lo_vwuz1
+ldx {z1}
+//FRAGMENT vbuz1=vbuxx_bor_vbuz2
+txa
+ora {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuyy_bor_vbuz2
+tya
+ora {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuxx_bor_vbuz1
+txa
+ora {z1}
+//FRAGMENT vbuaa=vbuyy_bor_vbuz1
+tya
+ora {z1}
+//FRAGMENT vbuxx=vbuxx_bor_vbuz1
+txa
+ora {z1}
+tax
+//FRAGMENT vbuxx=vbuyy_bor_vbuz1
+tya
+ora {z1}
+tax
+//FRAGMENT vbuyy=vbuxx_bor_vbuz1
+txa
+ora {z1}
+tay
+//FRAGMENT vbuyy=vbuyy_bor_vbuz1
+tya
+ora {z1}
+tay
+//FRAGMENT vwuz1=_word_vbuyy
+tya
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_rol_vbuxx
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+cpx #0
+beq !e+
+!:
+asl {z1}
+rol {z1}+1
+dex
+bne !-
+!e:
+//FRAGMENT vwuz1=vwuz2_rol_vbuyy
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+cpy #0
+beq !e+
+!:
+asl {z1}
+rol {z1}+1
+dey
+bne !-
+!e:
+//FRAGMENT vduz1=vduz2_plus_vbuaa
+clc
+adc {z2}
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+lda {z2}+2
+adc #0
+sta {z1}+2
+lda {z2}+3
+adc #0
+sta {z1}+3
+//FRAGMENT vduz1=vduz2_plus_vbuxx
+txa
+clc
+adc {z2}
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+lda {z2}+2
+adc #0
+sta {z1}+2
+lda {z2}+3
+adc #0
+sta {z1}+3
+//FRAGMENT vduz1=vduz2_plus_vbuyy
+tya
+clc
+adc {z2}
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+lda {z2}+2
+adc #0
+sta {z1}+2
+lda {z2}+3
+adc #0
+sta {z1}+3
+//FRAGMENT vbuz1=vbuaa_bor_vbuc1
+ora #{c1}
+sta {z1}
+//FRAGMENT vbuxx=vbuaa_bor_vbuc1
+ora #{c1}
+tax
+//FRAGMENT vbuyy=vbuaa_bor_vbuc1
+ora #{c1}
+tay
+//FRAGMENT vbuz1=vbuyy_bor_vbuc1
+tya
+ora #{c1}
+sta {z1}
+//FRAGMENT vbuaa=vbuyy_bor_vbuc1
+tya
+ora #{c1}
+//FRAGMENT vbuxx=vbuyy_bor_vbuc1
+tya
+ora #{c1}
+tax
 //FRAGMENT vbuaa=_deref_pbuz1
 ldy #0
 lda ({z1}),y
@@ -1804,137 +2087,13 @@ tay
 //FRAGMENT 0_neq_vbuaa_then_la1
 cmp #0
 bne {la1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1
-ldy {z1}
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1
-ldx {z1}
-ldy {c1},x
-//FRAGMENT vbsaa=pbsc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbuz1
-ldy {z1}
-ldx {c1},y
-//FRAGMENT vbsyy=pbsc1_derefidx_vbuz1
-ldx {z1}
-ldy {c1},x
-//FRAGMENT vbuxx=vbuxx_ror_2
-txa
-lsr
-lsr
-tax
-//FRAGMENT vbsxx=vbsxx_minus_vbsc1
-txa
-sec
-sbc #{c1}
-tax
-//FRAGMENT vbsxx_ge_0_then_la1
-cpx #0
-bpl {la1}
-//FRAGMENT vbuxx_neq_0_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT vbuaa=vbuz1_rol_2
-lda {z1}
-asl
-asl
-//FRAGMENT vbuyy=vbuz1_rol_2
-lda {z1}
-asl
-asl
-tay
-//FRAGMENT vbuz1=vbuaa_plus_vbuz2
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_plus_vbuz2
-txa
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_plus_vbuz2
-tya
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_plus_vbuz2
-lda {z1}
-clc
-adc {z2}
-//FRAGMENT vbuaa=vbuaa_plus_vbuz1
-clc
-adc {z1}
-//FRAGMENT vbuaa=vbuxx_plus_vbuz1
-txa
-clc
-adc {z1}
-//FRAGMENT vbuaa=vbuyy_plus_vbuz1
-tya
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuz1_plus_vbuz2
-lda {z1}
-clc
-adc {z2}
-tax
-//FRAGMENT vbuxx=vbuaa_plus_vbuz1
-clc
-adc {z1}
-tax
-//FRAGMENT vbuxx=vbuxx_plus_vbuz1
-txa
-clc
-adc {z1}
-tax
-//FRAGMENT vbuxx=vbuyy_plus_vbuz1
-tya
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_plus_vbuz2
-lda {z1}
-clc
-adc {z2}
-tay
-//FRAGMENT vbuyy=vbuaa_plus_vbuz1
-clc
-adc {z1}
-tay
-//FRAGMENT vbuyy=vbuxx_plus_vbuz1
-txa
-clc
-adc {z1}
-tay
-//FRAGMENT vbuyy=vbuyy_plus_vbuz1
-tya
-clc
-adc {z1}
-tay
-//FRAGMENT vbuaa=_lo_vwuz1
-lda {z1}
-//FRAGMENT vbuxx=_lo_vwuz1
-ldx {z1}
 //FRAGMENT vbuz1=pbuc1_derefidx_vbuaa
 tay
 lda {c1},y
 sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
 //FRAGMENT vbuaa=pbuc1_derefidx_vbuaa
 tay
 lda {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx
-lda {c1},x
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy
-lda {c1},y
 //FRAGMENT vbuxx=pbuc1_derefidx_vbuaa
 tay
 ldx {c1},y
@@ -2003,22 +2162,6 @@ sta {z1}
 lda #0
 adc {z2}+1
 sta {z1}+1
-//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuaa_then_la1
-tay
-lda {c1}
-cmp {c2},y
-bne {la1}
-//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuxx_then_la1
-lda {c2},x
-cmp {c1}
-bne {la1}
-//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
-lda {c1}
-cmp {c2},y
-bne {la1}
-//FRAGMENT vbuaa_eq_0_then_la1
-cmp #0
-beq {la1}
 //FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_rol_4
 ldy {z1}
 lda {c1},y
@@ -2192,167 +2335,6 @@ tax
 tya
 ora {c1},x
 tay
-//FRAGMENT vbuxx=vbuxx_rol_vbuz1
-txa
-ldx {z1}
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuz1=vbuz1_rol_vbuaa
-tay
-lda {z1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_rol_vbuaa
-tay
-txa
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-tax
-//FRAGMENT vbuz1=vbuz1_rol_vbuxx
-lda {z1}
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_rol_vbuxx
-txa
-tax
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuz1=vbuz1_rol_vbuyy
-lda {z1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_rol_vbuyy
-txa
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-tax
-//FRAGMENT vbuaa=_bnot__deref_pbuz1
-ldy #0
-lda ({z1}),y
-eor #$ff
-//FRAGMENT vbuxx=_bnot__deref_pbuz1
-ldy #0
-lda ({z1}),y
-eor #$ff
-tax
-//FRAGMENT vbuyy=_bnot__deref_pbuz1
-ldy #0
-lda ({z1}),y
-eor #$ff
-tay
-//FRAGMENT vbuz1=_deref_pbuc1_band_vbuaa
-and {c1}
-sta {z1}
-//FRAGMENT vbuz1=_deref_pbuc1_band_vbuxx
-txa
-and {c1}
-sta {z1}
-//FRAGMENT vbuz1=_deref_pbuc1_band_vbuyy
-tya
-and {c1}
-sta {z1}
-//FRAGMENT vbuaa=_deref_pbuc1_band_vbuz1
-lda {c1}
-and {z1}
-//FRAGMENT vbuaa=_deref_pbuc1_band_vbuaa
-and {c1}
-//FRAGMENT vbuaa=_deref_pbuc1_band_vbuxx
-txa
-and {c1}
-//FRAGMENT vbuaa=_deref_pbuc1_band_vbuyy
-tya
-and {c1}
-//FRAGMENT vbuxx=_deref_pbuc1_band_vbuz1
-lda {c1}
-and {z1}
-tax
-//FRAGMENT vbuxx=_deref_pbuc1_band_vbuaa
-and {c1}
-tax
-//FRAGMENT vbuxx=_deref_pbuc1_band_vbuxx
-txa
-and {c1}
-tax
-//FRAGMENT vbuxx=_deref_pbuc1_band_vbuyy
-tya
-and {c1}
-tax
-//FRAGMENT vbuyy=_deref_pbuc1_band_vbuz1
-lda {c1}
-and {z1}
-tay
-//FRAGMENT vbuyy=_deref_pbuc1_band_vbuaa
-and {c1}
-tay
-//FRAGMENT vbuyy=_deref_pbuc1_band_vbuxx
-txa
-and {c1}
-tay
-//FRAGMENT vbuyy=_deref_pbuc1_band_vbuyy
-tya
-and {c1}
-tay
-//FRAGMENT vbuz1=vbuaa_bor_vbuxx
-stx $ff
-ora $ff
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bor_vbuxx
-stx $ff
-ora $ff
-//FRAGMENT vbuxx=vbuaa_bor_vbuxx
-stx $ff
-ora $ff
-tax
-//FRAGMENT vbuyy=vbuaa_bor_vbuxx
-stx $ff
-ora $ff
-tay
-//FRAGMENT vbuz1=vbuxx_bor_vbuz2
-txa
-ora {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_bor_vbuxx
-stx {z1}
 //FRAGMENT vbuxx=vbuz1_minus_1
 ldx {z1}
 dex
@@ -2423,20 +2405,8 @@ lda {z1}+1
 bne {la1}
 cpy {z1}
 bcc {la1}
-//FRAGMENT vbuyy=_lo_pvoz1
-ldy {z1}
-//FRAGMENT _deref_pbuc1=vbuyy
-sty {c1}
-//FRAGMENT vbuyy=_hi_pvoz1
-ldy {z1}+1
-//FRAGMENT vbuyy=_lo_vwuz1
-ldy {z1}
-//FRAGMENT vbuyy=_hi_vwuz1
-ldy {z1}+1
 //FRAGMENT vbuyy=vbuz1
 ldy {z1}
-//FRAGMENT vbuyy=_lo_pbuz1
-ldy {z1}
 //FRAGMENT vbuz1=vbuyy
 sty {z1}
 //FRAGMENT 0_neq_vbuxx_then_la1
@@ -2445,13 +2415,9 @@ bne {la1}
 //FRAGMENT 0_neq_vbuyy_then_la1
 cpy #0
 bne {la1}
-//FRAGMENT vbuxx=vbuc1
-ldx #{c1}
 //FRAGMENT vbuz1=vbuxx_minus_1
 dex
 stx {z1}
-//FRAGMENT vbuxx=_inc_vbuxx
-inx
 //FRAGMENT vbuaa=vbuxx_minus_1
 txa
 sec
@@ -2464,55 +2430,29 @@ dey
 txa
 tay
 dey
-//FRAGMENT vbuxx_eq_0_then_la1
-cpx #0
-beq {la1}
-//FRAGMENT vbuyy_eq_0_then_la1
-cpy #0
-beq {la1}
-//FRAGMENT vbuyy=vbuc1
-ldy #{c1}
-//FRAGMENT vbuyy=_inc_vbuyy
-iny
-//FRAGMENT vbuyy_neq_vbuc1_then_la1
-cpy #{c1}
-bne {la1}
-//FRAGMENT vbuxx=vbuxx_ror_1
-txa
-lsr
-tax
-//FRAGMENT vbsxx=vbsxx_minus_1
-dex
-//FRAGMENT vbsxx=vbsxx_minus_2
-dex
-dex
-//FRAGMENT vbuaa=vbuc1
-lda #{c1}
 //FRAGMENT vbuxx=vbuyy
 tya
 tax
+//FRAGMENT vbuyy_neq_0_then_la1
+cpy #0
+bne {la1}
+//FRAGMENT vbuyy=vbuyy_plus_2
+iny
+iny
 //FRAGMENT vbuaa=vbuxx
 txa
 //FRAGMENT vbuaa=vbuyy
 tya
-//FRAGMENT vbuyy=vbuxx
-txa
-tay
 //FRAGMENT vbuxx=vbuaa
 tax
 //FRAGMENT vbuyy=vbuaa
 tay
-//FRAGMENT 0_eq_vbuxx_then_la1
-cpx #0
-beq {la1}
-//FRAGMENT 0_eq_vbuyy_then_la1
-cpy #0
-beq {la1}
+//FRAGMENT vbuyy=vbuxx
+txa
+tay
 //FRAGMENT vbuxx=pbuc1_derefidx_vbuxx
 lda {c1},x
 tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy
-ldx {c1},y
 //FRAGMENT vbuyy=pbuc1_derefidx_vbuxx
 ldy {c1},x
 //FRAGMENT vbuyy=pbuc1_derefidx_vbuyy
@@ -2540,403 +2480,13 @@ sta {c1},x
 //FRAGMENT pbuc1_derefidx_vbuxx=vbuyy
 tya
 sta {c1},x
-//FRAGMENT vbuz1=vbuyy_bor_vbuxx
-txa
-sty $ff
-ora $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_bor_vbuaa
-sty $ff
-ora $ff
-sta {z1}
-//FRAGMENT vduz1=vduz1_ror_1
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-//FRAGMENT vwuz1=vwuz1_bxor_vwuz2
-lda {z1}
-eor {z2}
-sta {z1}
-lda {z1}+1
-eor {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz1_rol_vbuz2
-ldy {z2}
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vbuz1=vbuz1_bor_vbuaa
-ora {z1}
-sta {z1}
-//FRAGMENT pwuz1=pwuc1_plus_vwuz1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pduz1=pduc1_plus_vwuz1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_plus_vbuaa
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT pbuz1=pbuz2_plus_vwuz1
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vduz1=vbuc1
-lda #{c1}
-sta {z1}
-lda #0
-sta {z1}+1
-sta {z1}+2
-sta {z1}+3
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz1_plus_1
-ldy {z1}
-lda {c1},y
-inc
-sta {c1},y
-//FRAGMENT vwuz1=vwuz1_plus_vwuc1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz1_plus_2
-lda {z1}
-clc
-adc #2
-sta {z1}
-//FRAGMENT vwuz1=_inc_vwuz2
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_band_vbuc1
-lda #{c1}
-and {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vbuz1=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-sta {z1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuz1
-lda {c1}
-and {z1}
-sta {c1}
-//FRAGMENT vduz1=vwuc1
-NO_SYNTHESIS
-//FRAGMENT pbuz1_neq_pbuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT _deref_pbuc1=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-sta {c1}
-//FRAGMENT vduz1=_deref_pduc1
-lda {c1}
-sta {z1}
-lda {c1}+1
-sta {z1}+1
-lda {c1}+2
-sta {z1}+2
-lda {c1}+3
-sta {z1}+3
-//FRAGMENT vwuz1=vwuc1_rol_vbuz2
-ldy {z2}
-lda #<{c1}
-sta {z1}
-lda #>{c1}+1
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vbuz3
-lda {z3}
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuaa_plus_1
-tay
-lda {c1},y
-inc
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_1
-lda {c1},x
-inc
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuyy_plus_1
-lda {c1},y
-inc
-sta {c1},y
-//FRAGMENT vbuxx=vbuxx_plus_2
-inx
-inx
-//FRAGMENT vbuaa=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-//FRAGMENT vbuxx=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-tax
-//FRAGMENT vbuyy=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-tay
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuaa
-and {c1}
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuxx
-txa
-and {c1}
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuyy
-tya
-and {c1}
-sta {c1}
-//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
-tay
-lda #{c2}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2
-lda #{c2}
-sta {c1},y
-//FRAGMENT vbuaa_eq_vbuc1_then_la1
-cmp #{c1}
-beq {la1}
-//FRAGMENT vbuaa_neq_vbuc1_then_la1
-cmp #{c1}
-bne {la1}
-//FRAGMENT vwuz1=vwuc1_rol_vbuaa
-tay
-lda #<{c1}
-sta {z1}
-lda #>{c1}+1
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vwuz1=vwuc1_rol_vbuxx
-lda #<{c1}
-sta {z1}
-lda #>{c1}+1
-sta {z1}+1
-cpx #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dex
-bne !-
-!e:
-//FRAGMENT vwuz1=vwuc1_rol_vbuyy
-lda #<{c1}
-sta {z1}
-lda #>{c1}+1
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vbuz1=vbuyy_bor_vbuz2
-tya
-ora {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bor_vbuz1
-txa
-ora {z1}
-//FRAGMENT vbuaa=vbuyy_bor_vbuz1
-tya
-ora {z1}
-//FRAGMENT vbuxx=vbuxx_bor_vbuz1
-txa
-ora {z1}
-tax
-//FRAGMENT vbuxx=vbuyy_bor_vbuz1
-tya
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuxx_bor_vbuz1
-txa
-ora {z1}
-tay
-//FRAGMENT vbuyy=vbuyy_bor_vbuz1
-tya
-ora {z1}
-tay
-//FRAGMENT vwuz1=_word_vbuyy
-tya
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_vbuxx
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-cpx #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dex
-bne !-
-!e:
-//FRAGMENT vwuz1=vwuz2_rol_vbuyy
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_plus_vbuaa
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vbuxx
-txa
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vbuyy
-tya
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vbuz1=vbuaa_bor_vbuc1
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuxx=vbuaa_bor_vbuc1
-ora #{c1}
-tax
-//FRAGMENT vbuyy=vbuaa_bor_vbuc1
-ora #{c1}
-tay
-//FRAGMENT vbuz1=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-//FRAGMENT vbuxx=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-tax
-//FRAGMENT vbuyy_neq_0_then_la1
-cpy #0
-bne {la1}
-//FRAGMENT vbuyy=vbuyy_plus_2
-iny
-iny
-//FRAGMENT vbuaa=_inc_vbuaa
-inc
 //FRAGMENT vbuyy_lt_vbuz1_then_la1
 cpy {z1}
 bcc {la1}
-//FRAGMENT vbuyy=_deref_pbuc1
-ldy {c1}
+//FRAGMENT vbuyy=_lo_vwuz1
+ldy {z1}
+//FRAGMENT vbuyy=_hi_vwuz1
+ldy {z1}+1
 //FRAGMENT vbuaa=vbuaa_bor_vbuyy
 sty $ff
 ora $ff
@@ -2947,12 +2497,27 @@ sta {z1}
 //FRAGMENT vbuyy_eq_vbuc1_then_la1
 cpy #{c1}
 beq {la1}
+//FRAGMENT 0_eq_vbuxx_then_la1
+cpx #0
+beq {la1}
+//FRAGMENT 0_eq_vbuyy_then_la1
+cpy #0
+beq {la1}
+//FRAGMENT vbuz1=vbuyy_bor_vbuaa
+sty $ff
+ora $ff
+sta {z1}
 //FRAGMENT vwuz1=vwuz1_band_vbuc1
 lda #{c1}
 and {z1}
 sta {z1}
 lda #0
 sta {z1}+1
+//FRAGMENT vduz1=vduz1_ror_1
+lsr {z1}+3
+ror {z1}+2
+ror {z1}+1
+ror {z1}
 //FRAGMENT vduz1=vduz1_plus_vbuaa
 clc
 adc {z1}
@@ -2966,9 +2531,36 @@ sta {z1}+2
 lda {z1}+3
 adc #0
 sta {z1}+3
+//FRAGMENT vwuz1=vwuz1_rol_vbuz2
+ldy {z2}
+beq !e+
+!:
+asl {z1}
+rol {z1}+1
+dey
+bne !-
+!e:
+//FRAGMENT vbuz1=vbuz1_bor_vbuaa
+ora {z1}
+sta {z1}
 //FRAGMENT vbuz1=vbuaa_bor_vbuz1
 ora {z1}
 sta {z1}
+//FRAGMENT pbuz1=pbuz1_plus_vbuaa
+clc
+adc {z1}
+sta {z1}
+bcc !+
+inc {z1}+1
+!:
+//FRAGMENT vwuz1=vwuz1_plus_vwuz2
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc {z2}+1
+sta {z1}+1
 //FRAGMENT _deref_pssc1=_deref_pssc2_memcpy_vbuc3
 ldy #{c3}
 !:
@@ -2978,11 +2570,35 @@ dey
 bne !-
 //FRAGMENT vduz1=vwsc1
 NO_SYNTHESIS
+//FRAGMENT _deref_pwuc1=vwuc2
+lda #<{c2}
+sta {c1}
+lda #>{c2}
+sta {c1}+1
 //FRAGMENT _deref_pwuc1=vbuc2
 lda #0
 sta {c1}+1
 lda #<{c2}
 sta {c1}
+//FRAGMENT vduz1=vduz2_plus_vduz3
+lda {z2}
+clc
+adc {z3}
+sta {z1}
+lda {z2}+1
+adc {z3}+1
+sta {z1}+1
+lda {z2}+2
+adc {z3}+2
+sta {z1}+2
+lda {z2}+3
+adc {z3}+3
+sta {z1}+3
+//FRAGMENT vwuz1=vwuz2_rol_8
+lda {z2}
+sta {z1}+1
+lda #0
+sta {z1}
 //FRAGMENT vwuz1=vwuz2_bor_vbuz3
 lda {z3}
 ora {z2}
@@ -3033,6 +2649,23 @@ sta {z1}
 lda {z2}+1
 adc #>{c1}
 sta {z1}+1
+//FRAGMENT vduz1_lt_vduz2_then_la1
+lda {z1}+3
+cmp {z2}+3
+bcc {la1}
+bne !+
+lda {z1}+2
+cmp {z2}+2
+bcc {la1}
+bne !+
+lda {z1}+1
+cmp {z2}+1
+bcc {la1}
+bne !+
+lda {z1}
+cmp {z2}
+bcc {la1}
+!:
 //FRAGMENT pbuz1_neq_vwuc1_then_la1
 lda {z1}+1
 cmp #>{c1}
@@ -3040,10 +2673,24 @@ bne {la1}
 lda {z1}
 cmp #<{c1}
 bne {la1}
-//FRAGMENT _deref_pbuz1=vbuc1
-lda #{c1}
-ldy #0
-sta ({z1}),y
+//FRAGMENT vduz1=_inc_vduz1
+inc {z1}
+bne !+
+inc {z1}+1
+bne !+
+inc {z1}+2
+bne !+
+inc {z1}+3
+!:
+//FRAGMENT _deref_pduc1=vduc2
+lda #<{c2}
+sta {c1}
+lda #>{c2}
+sta {c1}+1
+lda #<{c2}>>$10
+sta {c1}+2
+lda #>{c2}>>$10
+sta {c1}+3
 //FRAGMENT 0_neq__deref_pbuz1_then_la1
 ldy #0
 lda ({z1}),y
@@ -3138,14 +2785,6 @@ ldy {z2}
 lda {c1},y
 ldy #0
 sta ({z1}),y
-//FRAGMENT pbuz1=_inc_pbuz2
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
 //FRAGMENT vbuz1=pbuz2_derefidx_vbuz3
 ldy {z3}
 lda ({z2}),y
@@ -3314,132 +2953,6 @@ cpy {z1}
 beq !+
 bcs {la1}
 !:
-//FRAGMENT isr_rom_sys_cx16_entry
-
-//FRAGMENT vwuz1_neq_vbuc1_then_la1
-NO_SYNTHESIS
-//FRAGMENT vbuz1_lt_vbuc1_then_la1
-lda {z1}
-cmp #{c1}
-bcc {la1}
-//FRAGMENT isr_rom_sys_cx16_exit
-jmp $e034
-//FRAGMENT _deref_pwuc1=_deref_pwuz1
-ldy #0
-lda ({z1}),y
-sta {c1}
-iny
-lda ({z1}),y
-sta {c1}+1
-//FRAGMENT pbuz1=pbuz1_plus_vbuc1
-lda #{c1}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vwuz1=vwuz1_plus_vbuc1
-lda #{c1}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vwuz1_lt_vbuc1_then_la1
-lda {z1}+1
-bne !+
-lda {z1}
-cmp #{c1}
-bcc {la1}
-!:
-//FRAGMENT vwuz1=vwuz1_minus_vbuc1
-sec
-lda {z1}
-sbc #{c1}
-sta {z1}
-lda {z1}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT _deref_qprc1=pprc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
-//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vbuc2
-NO_SYNTHESIS
-//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vbsc2
-NO_SYNTHESIS
-//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vwuc2
-lda #<{c2}
-clc
-adc {c1}
-sta {c1}
-lda #>{c2}
-adc {c1}+1
-sta {c1}+1
-//FRAGMENT pbuz1_neq_pbuz2_then_la1
-lda {z1}+1
-cmp {z2}+1
-bne {la1}
-lda {z1}
-cmp {z2}
-bne {la1}
-//FRAGMENT vbuaa_lt_vbuc1_then_la1
-cmp #{c1}
-bcc {la1}
-//FRAGMENT vbuxx_lt_vbuc1_then_la1
-cpx #{c1}
-bcc {la1}
-//FRAGMENT vbuz1=vbuz2_plus_1
-lda {z2}
-inc
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_plus_1
-inc
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_plus_1
-inx
-stx {z1}
-//FRAGMENT vbuz1=vbuyy_plus_1
-iny
-sty {z1}
-//FRAGMENT vbuaa=vbuz1_plus_1
-lda {z1}
-inc
-//FRAGMENT vbuaa=vbuaa_plus_1
-inc
-//FRAGMENT vbuaa=vbuxx_plus_1
-txa
-inc
-//FRAGMENT vbuaa=vbuyy_plus_1
-tya
-inc
-//FRAGMENT vbuxx=vbuz1_plus_1
-ldx {z1}
-inx
-//FRAGMENT vbuxx=vbuaa_plus_1
-tax
-inx
-//FRAGMENT vbuxx=vbuxx_plus_1
-inx
-//FRAGMENT vbuxx=vbuyy_plus_1
-tya
-inc
-tax
-//FRAGMENT vbuyy=vbuz1_plus_1
-ldy {z1}
-iny
-//FRAGMENT vbuyy=vbuaa_plus_1
-tay
-iny
-//FRAGMENT vbuyy=vbuxx_plus_1
-txa
-inc
-tay
-//FRAGMENT vbuyy=vbuyy_plus_1
-iny
 //FRAGMENT vwsz1=vwsc1
 lda #<{c1}
 sta {z1}
@@ -3491,6 +3004,15 @@ ldy {c1}+1
 sty $ff
 ldy #0
 sta ($fe),y
+//FRAGMENT vduz1=vduz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+lda {z2}+2
+sta {z1}+2
+lda {z2}+3
+sta {z1}+3
 //FRAGMENT vbuz1=_deref_(_deref_qbuc1)
 ldy {c1}
 sty $fe
@@ -3558,8 +3080,6 @@ dey
 bne !-
 !e:
 sta {z1}
-//FRAGMENT vbuz1=_dec_vbuz1
-dec {z1}
 //FRAGMENT vduz1=vduz1_plus_vbuc1
 lda {z1}
 clc
@@ -3992,6 +3512,11 @@ sta {z1}+2
 lda {z1}+3
 and #>{c1}>>$10
 sta {z1}+3
+//FRAGMENT vduz1=vduz1_rol_1
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
 //FRAGMENT vduz1=vduz1_rol_8
 lda {z1}+2
 sta {z1}+3
@@ -4001,21 +3526,6 @@ lda {z1}
 sta {z1}+1
 lda #0
 sta {z1}
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuaa_then_la1
-tay
-lda {c1},y
-cmp #0
-bne {la1}
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-cmp #0
-bne {la1}
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuyy_then_la1
-lda {c1},y
-cmp #0
-bne {la1}
-//FRAGMENT vbuyy=_hi_pbuz1
-ldy {z1}+1
 //FRAGMENT vduz1_lt_vduc1_then_la1
 lda {z1}+3
 cmp #>{c1}>>$10
@@ -4069,6 +3579,20 @@ sta {z1}+2
 lda {z1}+3
 adc #0
 sta {z1}+3
+//FRAGMENT vduz1=vduz1_plus_vduz2
+lda {z1}
+clc
+adc {z2}
+sta {z1}
+lda {z1}+1
+adc {z2}+1
+sta {z1}+1
+lda {z1}+2
+adc {z2}+2
+sta {z1}+2
+lda {z1}+3
+adc {z2}+3
+sta {z1}+3
 //FRAGMENT vbuz1=_byte_vduz2
 lda {z2}
 sta {z1}
@@ -4099,6 +3623,15 @@ lda {z1}
 cmp {z2}
 bcs {la1}
 !:
+//FRAGMENT vwuz1_ge_vwuz2_then_la1
+lda {z2}+1
+cmp {z1}+1
+bne !+
+lda {z2}
+cmp {z1}
+beq {la1}
+!:
+bcc {la1}
 //FRAGMENT vduz1=vduz1_minus_vduz2
 lda {z1}
 sec
@@ -4113,6 +3646,14 @@ sta {z1}+2
 lda {z1}+3
 sbc {z2}+3
 sta {z1}+3
+//FRAGMENT vwuz1=vwuz1_minus_vwuz2
+lda {z1}
+sec
+sbc {z2}
+sta {z1}
+lda {z1}+1
+sbc {z2}+1
+sta {z1}+1
 //FRAGMENT vbuaa=_byte_vduz1
 lda {z1}
 //FRAGMENT vbuxx=_byte_vduz1
@@ -4130,6 +3671,10 @@ tya
 asl
 asl
 sta {z1}
+//FRAGMENT vbuaa=vbuz1_rol_2
+lda {z1}
+asl
+asl
 //FRAGMENT vbuaa=vbuaa_rol_2
 asl
 asl
@@ -4150,6 +3695,11 @@ tya
 asl
 asl
 tax
+//FRAGMENT vbuyy=vbuz1_rol_2
+lda {z1}
+asl
+asl
+tay
 //FRAGMENT vbuyy=vbuaa_rol_2
 asl
 asl
@@ -4195,93 +3745,543 @@ sta {z1}+3
 //FRAGMENT vbuyy_ge_vbuz1_then_la1
 cpy {z1}
 bcs {la1}
-//FRAGMENT isr_rom_min_cx16_entry
-
-//FRAGMENT vbuz1_ge_vbuc1_then_la1
+//FRAGMENT vwuz1_le_vwuc1_then_la1
+lda {z1}+1
+cmp #>{c1}
+bne !+
 lda {z1}
-cmp #{c1}
-bcs {la1}
-//FRAGMENT isr_rom_min_cx16_exit
-jmp $e049
-//FRAGMENT pbuz1=pbuc1_plus_pbuc2_derefidx_vbuz2
-ldy {z2}
-lda {c2},y
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz1_plus_vbuc1
+cmp #<{c1}
+!:
+bcc {la1}
+beq {la1}
+//FRAGMENT vbuz1=vwuz2_band_vbuc1
 lda #{c1}
-clc
-adc {z1}
+and {z2}
 sta {z1}
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuz2
+//FRAGMENT vbsz1=pbsc1_derefidx_vbuz2
 ldy {z2}
 lda {c1},y
+sta {z1}
+//FRAGMENT vwuz1=vwuz2_ror_3
+lda {z2}+1
+lsr
+sta {z1}+1
+lda {z2}
+ror
+sta {z1}
+lsr {z1}+1
+ror {z1}
+lsr {z1}+1
+ror {z1}
+//FRAGMENT _deref_pwuz1=vwuz2
+ldy #0
+lda {z2}
 sta ({z1}),y
-//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuz1
+iny
+lda {z2}+1
+sta ({z1}),y
+//FRAGMENT pbuz1=pbuc1_plus_vwuz2
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT vbsz1=vbsz1_minus_1
+dec {z1}
+//FRAGMENT vbuz1=vbuz1_ror_1
+lsr {z1}
+//FRAGMENT vwuz1=vwuz2_ror_2
+lda {z2}+1
+lsr
+sta {z1}+1
+lda {z2}
+ror
+sta {z1}
+lsr {z1}+1
+ror {z1}
+//FRAGMENT vbsz1=vbsz1_minus_2
+dec {z1}
+dec {z1}
+//FRAGMENT vbuz1=vbuz1_ror_2
+lda {z1}
+lsr
+lsr
+sta {z1}
+//FRAGMENT vwuz1=vwuz2_ror_1
+lda {z2}+1
+lsr
+sta {z1}+1
+lda {z2}
+ror
+sta {z1}
+//FRAGMENT vbsz1=vbsz1_minus_vbsc1
+lda {z1}
+sec
+sbc #{c1}
+sta {z1}
+//FRAGMENT vbuz1=vbuz1_ror_4
+lda {z1}
+lsr
+lsr
+lsr
+lsr
+sta {z1}
+//FRAGMENT vbsz1_ge_0_then_la1
+lda {z1}
+cmp #0
+bpl {la1}
+//FRAGMENT vbuz1=vbuz2_plus_vbuz3
+lda {z2}
+clc
+adc {z3}
+sta {z1}
+//FRAGMENT vwuz1=vwuz2_rol_2
+lda {z2}
+asl
+sta {z1}
+lda {z2}+1
+rol
+sta {z1}+1
+asl {z1}
+rol {z1}+1
+//FRAGMENT pduz1=pduc1_plus_vwuz2
+clc
+lda {z2}
+adc #<{c1}
+sta {z1}
+lda {z2}+1
+adc #>{c1}
+sta {z1}+1
+//FRAGMENT _deref_pduz1=vduz2
+ldy #0
+lda {z2}
+sta ({z1}),y
+iny
+lda {z2}+1
+sta ({z1}),y
+iny
+lda {z2}+2
+sta ({z1}),y
+iny
+lda {z2}+3
+sta ({z1}),y
+//FRAGMENT vwuz1=vwuz2_minus_vwuz3
+lda {z2}
+sec
+sbc {z3}
+sta {z1}
+lda {z2}+1
+sbc {z3}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_rol_7
+lda {z2}+1
+lsr
+lda {z2}
+ror
+sta {z1}+1
+lda #0
+ror
+sta {z1}
+//FRAGMENT vwuz1=vwuz2_bxor_vwuz3
+lda {z2}
+eor {z3}
+sta {z1}
+lda {z2}+1
+eor {z3}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_ror_9
+lda {z2}+1
+lsr
+sta {z1}
+lda #0
+sta {z1}+1
+//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuz1_then_la1
+lda {c1}
 ldy {z1}
-lda {c2},y
-sta {c1}
-//FRAGMENT pbuz1=pbuc1_plus_pbuc2_derefidx_vbuaa
+cmp {c2},y
+bne {la1}
+//FRAGMENT vduz1=_dword_vwuz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+lda #0
+sta {z1}+2
+sta {z1}+3
+//FRAGMENT vwuz1_neq_0_then_la1
+lda {z1}
+ora {z1}+1
+bne {la1}
+//FRAGMENT vbuz1_eq_0_then_la1
+lda {z1}
+beq {la1}
+//FRAGMENT vwuz1=vwuz1_ror_1
+lsr {z1}+1
+ror {z1}
+//FRAGMENT vwuz1=vwuz2_plus_1
+clc
+lda {z2}
+adc #1
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz1_rol_1
+asl {z1}
+rol {z1}+1
+//FRAGMENT vwuz1=vwuz1_bor_vbuc1
+lda #{c1}
+ora {z1}
+sta {z1}
+//FRAGMENT vduz1=_dword__deref_pwuz2
+ldy #0
+sty {z1}+2
+sty {z1}+3
+lda ({z2}),y
+sta {z1}
+iny
+lda ({z2}),y
+sta {z1}+1
+//FRAGMENT vduz1=_deref_pduz2
+ldy #0
+lda ({z2}),y
+sta {z1}
+iny
+lda ({z2}),y
+sta {z1}+1
+iny
+lda ({z2}),y
+sta {z1}+2
+iny
+lda ({z2}),y
+sta {z1}+3
+//FRAGMENT vbuz1=vbuz1_rol_vbuz2
+lda {z1}
+ldy {z2}
+cpy #0
+beq !e+
+!:
+asl
+dey
+bne !-
+!e:
+sta {z1}
+//FRAGMENT vbuz1=_bnot__deref_pbuz2
+ldy #0
+lda ({z2}),y
+eor #$ff
+sta {z1}
+//FRAGMENT vbuz1=_deref_pbuc1_band_vbuz2
+lda {c1}
+and {z2}
+sta {z1}
+//FRAGMENT vbuaa=vwuz1_band_vbuc1
+lda #{c1}
+and {z1}
+//FRAGMENT vbuxx=vwuz1_band_vbuc1
+lda #{c1}
+and {z1}
+tax
+//FRAGMENT vbuyy=vwuz1_band_vbuc1
+lda #{c1}
+and {z1}
 tay
-lda {c2},y
+//FRAGMENT vbsaa=pbsc1_derefidx_vbuz1
+ldy {z1}
+lda {c1},y
+//FRAGMENT vbsxx=pbsc1_derefidx_vbuz1
+ldy {z1}
+ldx {c1},y
+//FRAGMENT vbsyy=pbsc1_derefidx_vbuz1
+ldx {z1}
+ldy {c1},x
+//FRAGMENT vbuxx=vbuxx_ror_2
+txa
+lsr
+lsr
+tax
+//FRAGMENT vbsxx=vbsxx_minus_vbsc1
+txa
+sec
+sbc #{c1}
+tax
+//FRAGMENT vbsxx_ge_0_then_la1
+cpx #0
+bpl {la1}
+//FRAGMENT vbuz1=vbuaa_plus_vbuz2
 clc
-adc #<{c1}
+adc {z2}
 sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_pbuc2_derefidx_vbuxx
-lda {c2},x
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_pbuc2_derefidx_vbuyy
-lda {c2},y
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT vbuxx=vbuxx_plus_vbuc1
+//FRAGMENT vbuz1=vbuxx_plus_vbuz2
 txa
 clc
-adc #{c1}
-tax
-//FRAGMENT vbuyy=vbuyy_plus_vbuc1
+adc {z2}
+sta {z1}
+//FRAGMENT vbuz1=vbuyy_plus_vbuz2
 tya
 clc
-adc #{c1}
-tay
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuxx
+adc {z2}
+sta {z1}
+//FRAGMENT vbuaa=vbuz1_plus_vbuz2
+lda {z1}
+clc
+adc {z2}
+//FRAGMENT vbuaa=vbuaa_plus_vbuz1
+clc
+adc {z1}
+//FRAGMENT vbuaa=vbuxx_plus_vbuz1
 txa
+clc
+adc {z1}
+//FRAGMENT vbuaa=vbuyy_plus_vbuz1
+tya
+clc
+adc {z1}
+//FRAGMENT vbuxx=vbuz1_plus_vbuz2
+lda {z1}
+clc
+adc {z2}
+tax
+//FRAGMENT vbuxx=vbuaa_plus_vbuz1
+clc
+adc {z1}
+tax
+//FRAGMENT vbuxx=vbuxx_plus_vbuz1
+txa
+clc
+adc {z1}
+tax
+//FRAGMENT vbuxx=vbuyy_plus_vbuz1
+tya
+clc
+adc {z1}
+tax
+//FRAGMENT vbuyy=vbuz1_plus_vbuz2
+lda {z1}
+clc
+adc {z2}
 tay
-lda {c1},y
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuyy
-lda {c1},y
-sta ({z1}),y
-//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuaa
+//FRAGMENT vbuyy=vbuaa_plus_vbuz1
+clc
+adc {z1}
 tay
-lda {c2},y
-sta {c1}
-//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuxx
+//FRAGMENT vbuyy=vbuxx_plus_vbuz1
+txa
+clc
+adc {z1}
+tay
+//FRAGMENT vbuyy=vbuyy_plus_vbuz1
+tya
+clc
+adc {z1}
+tay
+//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuaa_then_la1
+tay
+lda {c1}
+cmp {c2},y
+bne {la1}
+//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuxx_then_la1
 lda {c2},x
-sta {c1}
-//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuyy
-lda {c2},y
-sta {c1}
-//FRAGMENT vbuyy_lt_vbuc1_then_la1
-cpy #{c1}
-bcc {la1}
+cmp {c1}
+bne {la1}
+//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
+lda {c1}
+cmp {c2},y
+bne {la1}
+//FRAGMENT vbuaa_eq_0_then_la1
+cmp #0
+beq {la1}
+//FRAGMENT vbuxx=vbuxx_rol_vbuz1
+txa
+ldx {z1}
+cpx #0
+beq !e+
+!:
+asl
+dex
+bne !-
+!e:
+tax
+//FRAGMENT vbuz1=vbuz1_rol_vbuaa
+tay
+lda {z1}
+cpy #0
+beq !e+
+!:
+asl
+dey
+bne !-
+!e:
+sta {z1}
+//FRAGMENT vbuxx=vbuxx_rol_vbuaa
+tay
+txa
+cpy #0
+beq !e+
+!:
+asl
+dey
+bne !-
+!e:
+tax
+//FRAGMENT vbuz1=vbuz1_rol_vbuxx
+lda {z1}
+cpx #0
+beq !e+
+!:
+asl
+dex
+bne !-
+!e:
+sta {z1}
+//FRAGMENT vbuxx=vbuxx_rol_vbuxx
+txa
+tax
+cpx #0
+beq !e+
+!:
+asl
+dex
+bne !-
+!e:
+tax
+//FRAGMENT vbuz1=vbuz1_rol_vbuyy
+lda {z1}
+cpy #0
+beq !e+
+!:
+asl
+dey
+bne !-
+!e:
+sta {z1}
+//FRAGMENT vbuxx=vbuxx_rol_vbuyy
+txa
+cpy #0
+beq !e+
+!:
+asl
+dey
+bne !-
+!e:
+tax
+//FRAGMENT vbuaa=_bnot__deref_pbuz1
+ldy #0
+lda ({z1}),y
+eor #$ff
+//FRAGMENT vbuxx=_bnot__deref_pbuz1
+ldy #0
+lda ({z1}),y
+eor #$ff
+tax
+//FRAGMENT vbuyy=_bnot__deref_pbuz1
+ldy #0
+lda ({z1}),y
+eor #$ff
+tay
+//FRAGMENT vbuz1=_deref_pbuc1_band_vbuaa
+and {c1}
+sta {z1}
+//FRAGMENT vbuz1=_deref_pbuc1_band_vbuxx
+txa
+and {c1}
+sta {z1}
+//FRAGMENT vbuz1=_deref_pbuc1_band_vbuyy
+tya
+and {c1}
+sta {z1}
+//FRAGMENT vbuaa=_deref_pbuc1_band_vbuz1
+lda {c1}
+and {z1}
+//FRAGMENT vbuaa=_deref_pbuc1_band_vbuaa
+and {c1}
+//FRAGMENT vbuaa=_deref_pbuc1_band_vbuxx
+txa
+and {c1}
+//FRAGMENT vbuaa=_deref_pbuc1_band_vbuyy
+tya
+and {c1}
+//FRAGMENT vbuxx=_deref_pbuc1_band_vbuz1
+lda {c1}
+and {z1}
+tax
+//FRAGMENT vbuxx=_deref_pbuc1_band_vbuaa
+and {c1}
+tax
+//FRAGMENT vbuxx=_deref_pbuc1_band_vbuxx
+txa
+and {c1}
+tax
+//FRAGMENT vbuxx=_deref_pbuc1_band_vbuyy
+tya
+and {c1}
+tax
+//FRAGMENT vbuyy=_deref_pbuc1_band_vbuz1
+lda {c1}
+and {z1}
+tay
+//FRAGMENT vbuyy=_deref_pbuc1_band_vbuaa
+and {c1}
+tay
+//FRAGMENT vbuyy=_deref_pbuc1_band_vbuxx
+txa
+and {c1}
+tay
+//FRAGMENT vbuyy=_deref_pbuc1_band_vbuyy
+tya
+and {c1}
+tay
+//FRAGMENT vbuz1=vbuaa_bor_vbuxx
+stx $ff
+ora $ff
+sta {z1}
+//FRAGMENT vbuaa=vbuaa_bor_vbuxx
+stx $ff
+ora $ff
+//FRAGMENT vbuxx=vbuaa_bor_vbuxx
+stx $ff
+ora $ff
+tax
+//FRAGMENT vbuyy=vbuaa_bor_vbuxx
+stx $ff
+ora $ff
+tay
+//FRAGMENT vbuz1=vbuxx_bor_vbuxx
+stx {z1}
+//FRAGMENT vbuxx_eq_0_then_la1
+cpx #0
+beq {la1}
+//FRAGMENT vbuyy_eq_0_then_la1
+cpy #0
+beq {la1}
+//FRAGMENT vbuxx=vbuxx_ror_1
+txa
+lsr
+tax
+//FRAGMENT vbsxx=vbsxx_minus_1
+dex
+//FRAGMENT vbsxx=vbsxx_minus_2
+dex
+dex
+//FRAGMENT vbuz1=vbuyy_bor_vbuxx
+txa
+sty $ff
+ora $ff
+sta {z1}
+//FRAGMENT vwuz1=vwuz1_bxor_vwuz2
+lda {z1}
+eor {z2}
+sta {z1}
+lda {z1}+1
+eor {z2}+1
+sta {z1}+1
+//FRAGMENT pduz1=pduc1_plus_vwuz1
+clc
+lda {z1}
+adc #<{c1}
+sta {z1}
+lda {z1}+1
+adc #>{c1}
+sta {z1}+1
diff --git a/src/main/java/dk/camelot64/kickc/model/Initializers.java b/src/main/java/dk/camelot64/kickc/model/Initializers.java
index d20064c33..d5471b8c0 100644
--- a/src/main/java/dk/camelot64/kickc/model/Initializers.java
+++ b/src/main/java/dk/camelot64/kickc/model/Initializers.java
@@ -73,6 +73,9 @@ public class Initializers {
     * @return The constantified value. A {@link ConstantValue} is possible
     */
    public static RValue constantify(RValue initValue, ValueTypeSpec typeSpec, Program program, StatementSource source) {
+      // Remove any const/volatile qualifiers
+      typeSpec = new ValueTypeSpec(typeSpec.getType().getQualified(false, false));
+
       if(initValue == null) {
          // Add an zero-value
          initValue = createZeroValue(typeSpec, source);
diff --git a/src/main/java/dk/camelot64/kickc/model/VariableBuilder.java b/src/main/java/dk/camelot64/kickc/model/VariableBuilder.java
index e1004e78d..2ee42c406 100644
--- a/src/main/java/dk/camelot64/kickc/model/VariableBuilder.java
+++ b/src/main/java/dk/camelot64/kickc/model/VariableBuilder.java
@@ -54,13 +54,20 @@ public class VariableBuilder {
     * @return The variable
     */
    public Variable build() {
-      Variable variable = new Variable(varName, getKind(), type, scope, getMemoryArea(), dataSegment, null);
+
+      // Todo: #121 move to type parsing!
+      SymbolType typeQualified = type.getQualified(this.isVolatile(), this.isNoModify());
+
+      Variable variable = new Variable(varName, getKind(), typeQualified, scope, getMemoryArea(), dataSegment, null);
+
+      // Todo: #121 remove!
       variable.setNoModify(this.isNoModify());
       variable.setVolatile(this.isVolatile());
-      variable.setExport(this.isExport());
-      variable.setPermanent(this.isPermanent());
       variable.setToNoModify(this.isToNoModify());
       variable.setToVolatile(this.isToVolatile());
+
+      variable.setExport(this.isExport());
+      variable.setPermanent(this.isPermanent());
       variable.setOptimize(this.isOptimize());
       variable.setRegister(this.getRegister());
       if(variable.getRegister() instanceof Registers.RegisterMainMem) {
diff --git a/src/main/java/dk/camelot64/kickc/model/symbols/Variable.java b/src/main/java/dk/camelot64/kickc/model/symbols/Variable.java
index 51ebb2405..e23e076dc 100644
--- a/src/main/java/dk/camelot64/kickc/model/symbols/Variable.java
+++ b/src/main/java/dk/camelot64/kickc/model/symbols/Variable.java
@@ -193,11 +193,14 @@ public class Variable implements Symbol {
       version.setMemoryAlignment(phiMaster.getMemoryAlignment());
       version.setMemoryAddress(phiMaster.getMemoryAddress());
       version.setOptimize(phiMaster.isOptimize());
-      version.setNoModify(phiMaster.isNoModify());
-      version.setRegister(phiMaster.getRegister());
+
+      // TODO: #121 remove
       version.setVolatile(phiMaster.isVolatile());
+      version.setNoModify(phiMaster.isNoModify());
       version.setToNoModify(phiMaster.isToNoModify());
       version.setToVolatile(phiMaster.isToVolatile());
+
+      version.setRegister(phiMaster.getRegister());
       version.setPermanent(phiMaster.isPermanent());
       version.setExport(phiMaster.isExport());
       version.setComments(phiMaster.getComments());
@@ -239,11 +242,13 @@ public class Variable implements Symbol {
       constVar.setMemoryAlignment(variable.getMemoryAlignment());
       constVar.setMemoryAddress(variable.getMemoryAddress());
       constVar.setOptimize(variable.isOptimize());
-      constVar.setNoModify(variable.isNoModify());
       constVar.setRegister(variable.getRegister());
+      // Todo: #121 remove
       constVar.setVolatile(variable.isVolatile());
+      constVar.setNoModify(variable.isNoModify());
       constVar.setToNoModify(variable.isToNoModify());
       constVar.setToVolatile(variable.isToVolatile());
+
       constVar.setPermanent(variable.isPermanent());
       constVar.setExport(variable.isExport());
       constVar.setComments(variable.getComments());
@@ -262,11 +267,14 @@ public class Variable implements Symbol {
       copy.setMemoryAlignment(original.getMemoryAlignment());
       copy.setMemoryAddress(original.getMemoryAddress());
       copy.setOptimize(original.isOptimize());
-      copy.setNoModify(original.isNoModify());
       copy.setPermanent(original.isPermanent());
+
+      // Todo: #121 remove
       copy.setVolatile(original.isVolatile());
+      copy.setNoModify(original.isNoModify());
       copy.setToNoModify(original.isToNoModify());
       copy.setToVolatile(original.isToVolatile());
+
       copy.setExport(original.isExport());
       copy.setRegister(original.getRegister());
       copy.setComments(original.getComments());
@@ -288,18 +296,24 @@ public class Variable implements Symbol {
       if(isParameter && memberDefinition.isArray()) {
          // Array struct members are converted to pointers when unwound (use same kind as the struct variable)
          SymbolTypePointer arrayType = (SymbolTypePointer) memberDefinition.getType();
-         memberVariable = new Variable(name, structVar.getKind(), new SymbolTypePointer(arrayType.getElementType()), structVar.getScope(), memoryArea, structVar.getDataSegment(), null);
+         SymbolType typeQualified = new SymbolTypePointer(arrayType.getElementType()).getQualified(structVar.isVolatile, structVar.isNoModify());
+         memberVariable = new Variable(name, structVar.getKind(), typeQualified, structVar.getScope(), memoryArea, structVar.getDataSegment(), null);
       } else if(memberDefinition.isKindConstant()) {
          // Constant members are unwound as constants
-         memberVariable = new Variable(name, Kind.CONSTANT, memberDefinition.getType(), structVar.getScope(), memoryArea, structVar.getDataSegment(), memberDefinition.getInitValue());
+         SymbolType typeQualified = memberDefinition.getType().getQualified(structVar.isVolatile, structVar.isNoModify());
+         memberVariable = new Variable(name, Kind.CONSTANT, typeQualified, structVar.getScope(), memoryArea, structVar.getDataSegment(), memberDefinition.getInitValue());
       } else {
          // For others the kind is preserved from the member definition
-         memberVariable = new Variable(name, structVar.getKind(), memberDefinition.getType(), structVar.getScope(), memoryArea, structVar.getDataSegment(), memberDefinition.getInitValue());
+         SymbolType typeQualified = memberDefinition.getType().getQualified(structVar.isVolatile, structVar.isNoModify());
+         memberVariable = new Variable(name, structVar.getKind(),typeQualified, structVar.getScope(), memoryArea, structVar.getDataSegment(), memberDefinition.getInitValue());
       }
+
+      // Todo: #121 fix struct member qualifiers - and remove!
       memberVariable.setVolatile(structVar.isVolatile());
       memberVariable.setNoModify(structVar.isNoModify());
       memberVariable.setToNoModify(structVar.isToNoModify());
       memberVariable.setToVolatile(structVar.isToVolatile());
+
       memberVariable.setExport(structVar.isExport());
       memberVariable.setPermanent(structVar.isPermanent());
       return memberVariable;
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolType.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolType.java
index cabdd4966..9cdce4c17 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolType.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolType.java
@@ -11,6 +11,14 @@ public interface SymbolType extends Serializable {
    /** Specifies that the variable is not allowed to be modified (const keyword). The compiler should try to detect modifications and generate compile-time errors if they occur.*/
    boolean isNomodify();
 
+   /** Get the type with different type qualifiers.
+    *
+    * @param isVolatile Should the type be marked as volatile
+    * @param isNomodify Should the type be marked as nomodify (keyword const)
+    * @return The type with different qualifiers
+    */
+   SymbolType getQualified(boolean isVolatile, boolean isNomodify);
+
    /** Unsigned byte (8 bits)). */
    SymbolTypeIntegerFixed BYTE = new SymbolTypeIntegerFixed("byte", 0, 255, false, 8, false, false);
    /** Signed byte (8 bits). */
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeBlockScope.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeBlockScope.java
index 476b28041..e60c2107a 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeBlockScope.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeBlockScope.java
@@ -4,12 +4,11 @@ package dk.camelot64.kickc.model.types;
 public class SymbolTypeBlockScope implements SymbolType {
 
    public SymbolTypeBlockScope() {
-
    }
 
    @Override
-   public String getTypeName() {
-      return "BLOCK";
+   public SymbolType getQualified(boolean isVolatile, boolean isNomodify) {
+      return this;
    }
 
    @Override
@@ -22,6 +21,11 @@ public class SymbolTypeBlockScope implements SymbolType {
       return false;
    }
 
+   @Override
+   public String getTypeName() {
+      return "BLOCK";
+   }
+
    @Override
    public int getSizeBytes() {
       return -1;
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeEnum.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeEnum.java
index f321bc604..437777f27 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeEnum.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeEnum.java
@@ -8,7 +8,7 @@ import java.util.Objects;
 public class SymbolTypeEnum implements SymbolType {
 
    /** Name of the enum type. */
-   private String name;
+   private String enumName;
 
    /** The enum definition. */
    private EnumDefinition definition;
@@ -18,11 +18,16 @@ public class SymbolTypeEnum implements SymbolType {
 
    public SymbolTypeEnum(EnumDefinition definition, boolean isVolatile, boolean isNomodify) {
       this.definition = definition;
-      this.name = definition.getLocalName();
+      this.enumName = definition.getLocalName();
       this.isVolatile = isVolatile;
       this.isNomodify = isNomodify;
    }
 
+   @Override
+   public SymbolType getQualified(boolean isVolatile, boolean isNomodify) {
+      return new SymbolTypeEnum(this.definition, isVolatile, isNomodify);
+   }
+
    @Override
    public boolean isVolatile() {
       return isVolatile;
@@ -35,7 +40,17 @@ public class SymbolTypeEnum implements SymbolType {
 
    @Override
    public String getTypeName() {
-      return "enum " + name;
+      String name = "";
+
+      // TODO #121 Add
+      /*
+      if(isVolatile)
+         name += "volatile ";
+      if(isNomodify)
+         name += "const ";
+      */
+      name += "enum  " + this.enumName;
+      return name;
    }
 
    @Override
@@ -57,12 +72,12 @@ public class SymbolTypeEnum implements SymbolType {
       if(this == o) return true;
       if(o == null || getClass() != o.getClass()) return false;
       SymbolTypeEnum that = (SymbolTypeEnum) o;
-      return Objects.equals(name, that.name);
+      return Objects.equals(enumName, that.enumName);
    }
 
    @Override
    public int hashCode() {
-      return Objects.hash(name);
+      return Objects.hash(enumName);
    }
 
 }
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInference.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInference.java
index dc662b859..87c2d3920 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInference.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInference.java
@@ -19,10 +19,10 @@ public class SymbolTypeInference {
          Variable variable = symbols.getVar((SymbolVariableRef) rValue);
          if(variable==null)
             throw new CompileError("Unknown variable "+rValue.toString());
-         type = variable.getType();
+         type = variable.getType().getQualified(false, variable.getType().isNomodify());
       } else if(rValue instanceof Symbol) {
          Symbol rSymbol = (Symbol) rValue;
-         type = rSymbol.getType();
+         type = rSymbol.getType().getQualified(false, rSymbol.getType().isNomodify());
       } else if(rValue instanceof LvalueIntermediate) {
          return inferType(symbols, ((LvalueIntermediate) rValue).getVariable());
       } else if(rValue instanceof ConstantInteger) {
@@ -36,12 +36,14 @@ public class SymbolTypeInference {
       } else if(rValue instanceof ConstantUnary) {
          ConstantUnary constUnary = (ConstantUnary) rValue;
          SymbolType valueType = inferType(symbols, constUnary.getOperand());
-         return constUnary.getOperator().inferType(valueType);
+         final SymbolType unaryType = constUnary.getOperator().inferType(valueType);
+         return unaryType.getQualified(false, true);
       } else if(rValue instanceof ConstantBinary) {
          ConstantBinary constBin = (ConstantBinary) rValue;
          SymbolType leftType = inferType(symbols, constBin.getLeft());
          SymbolType rightType = inferType(symbols, constBin.getRight());
-         return constBin.getOperator().inferType(leftType, rightType);
+         final SymbolType binaryType = constBin.getOperator().inferType(leftType, rightType);
+         return binaryType.getQualified(false, true);
       } else if(rValue instanceof ValueList) {
          return SymbolType.VAR;
       } else if(rValue instanceof PointerDereference) {
@@ -97,7 +99,7 @@ public class SymbolTypeInference {
          } else {
             throw new InternalError("Cannot infer type of " + assignment.toString());
          }
-         return rValueType;
+         return rValueType.getQualified(false, false);
       } else if(rValue instanceof StructMemberRef) {
          StructMemberRef structMemberRef = (StructMemberRef) rValue;
          SymbolType structType = inferType(symbols, structMemberRef.getStruct());
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerAuto.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerAuto.java
index 99cc35d95..f0ffa83df 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerAuto.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerAuto.java
@@ -11,6 +11,11 @@ public class SymbolTypeIntegerAuto implements SymbolTypeInteger {
       this.typeName = typeName;
    }
 
+   @Override
+   public SymbolType getQualified(boolean isVolatile, boolean isNomodify) {
+      return this;
+   }
+
    @Override
    public boolean isVolatile() {
       return false;
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerFixed.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerFixed.java
index 0088f6010..2de51bb1e 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerFixed.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerFixed.java
@@ -7,16 +7,19 @@ import java.util.Objects;
 /** Integer type with a fixed size (byte, signed byte, word, ...). */
 public class SymbolTypeIntegerFixed implements SymbolTypeInteger {
 
-   private final String typeName;
+   /** The basename of the the type (without any qualifiers). */
+   private final String typeBaseName;
+
    private final long minValue;
    private final long maxValue;
    private final boolean signed;
    private final int bits;
+
    private final boolean isVolatile;
    private final boolean isNomodify;
 
-   SymbolTypeIntegerFixed(String typeName, long minValue, long maxValue, boolean signed, int bits, boolean isVolatile, boolean isNomodify) {
-      this.typeName = typeName;
+   SymbolTypeIntegerFixed(String typeBaseName, long minValue, long maxValue, boolean signed, int bits, boolean isVolatile, boolean isNomodify) {
+      this.typeBaseName = typeBaseName;
       this.minValue = minValue;
       this.maxValue = maxValue;
       this.signed = signed;
@@ -25,10 +28,15 @@ public class SymbolTypeIntegerFixed implements SymbolTypeInteger {
       this.isNomodify = isNomodify;
    }
 
+   @Override
+   public SymbolType getQualified(boolean isVolatile, boolean isNomodify) {
+      return new SymbolTypeIntegerFixed(this.typeBaseName, this.minValue, this.maxValue, this.signed, this.bits, isVolatile, isNomodify);
+   }
+
    /**
-    * Get all fixed size integer types.
+    * Get all (unqualified) fixed size integer types.
     *
-    * @return All fixed size integer types
+    * @return All (unqualified) fixed size integer types
     */
    public static Collection<SymbolTypeIntegerFixed> getIntegerFixedTypes() {
       ArrayList<SymbolTypeIntegerFixed> types = new ArrayList<>();
@@ -88,7 +96,16 @@ public class SymbolTypeIntegerFixed implements SymbolTypeInteger {
 
    @Override
    public String getTypeName() {
-      return typeName;
+      String name = "";
+      // TODO #121 Add
+      /*
+      if(isVolatile)
+         name += "volatile ";
+      if(isNomodify)
+         name += "const ";
+       */
+      name += typeBaseName;
+      return name;
    }
 
    public long getMinValue() {
@@ -122,11 +139,11 @@ public class SymbolTypeIntegerFixed implements SymbolTypeInteger {
       if(this == o) return true;
       if(o == null || getClass() != o.getClass()) return false;
       SymbolTypeIntegerFixed that = (SymbolTypeIntegerFixed) o;
-      return Objects.equals(typeName, that.typeName);
+      return Objects.equals(typeBaseName, that.typeBaseName);
    }
 
    @Override
    public int hashCode() {
-      return Objects.hash(typeName);
+      return Objects.hash(typeBaseName);
    }
 }
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeNamed.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeNamed.java
index e04caff74..c2ecf2d1f 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeNamed.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeNamed.java
@@ -3,18 +3,23 @@ package dk.camelot64.kickc.model.types;
 /** Basic named (string, char, ...) Symbol Types */
 public class SymbolTypeNamed implements SymbolType {
 
-   private String typeName;
+   private String typeBaseName;
    private int sizeBytes;
    private final boolean isVolatile;
    private final boolean isNomodify;
 
-   SymbolTypeNamed(String typeName, int sizeBytes, boolean isVolatile, boolean isNomodify) {
-      this.typeName = typeName;
+   SymbolTypeNamed(String typeBaseName, int sizeBytes, boolean isVolatile, boolean isNomodify) {
+      this.typeBaseName = typeBaseName;
       this.sizeBytes = sizeBytes;
       this.isVolatile = isVolatile;
       this.isNomodify = isNomodify;
    }
 
+   @Override
+   public SymbolType getQualified(boolean isVolatile, boolean isNomodify) {
+      return new SymbolTypeNamed(this.typeBaseName, this.sizeBytes, isVolatile, isNomodify);
+   }
+
    @Override
    public boolean isVolatile() {
       return isVolatile;
@@ -26,7 +31,16 @@ public class SymbolTypeNamed implements SymbolType {
    }
 
    public String getTypeName() {
-      return typeName;
+      String name = "";
+      // TODO #121 Add
+      /*
+      if(isVolatile)
+         name += "volatile ";
+      if(isNomodify)
+         name += "const ";
+       */
+      name += typeBaseName;
+      return name;
    }
 
    @Override
@@ -45,12 +59,12 @@ public class SymbolTypeNamed implements SymbolType {
 
       SymbolTypeNamed that = (SymbolTypeNamed) o;
 
-      return typeName != null ? typeName.equals(that.typeName) : that.typeName == null;
+      return typeBaseName != null ? typeBaseName.equals(that.typeBaseName) : that.typeBaseName == null;
    }
 
    @Override
    public int hashCode() {
-      return typeName != null ? typeName.hashCode() : 0;
+      return typeBaseName != null ? typeBaseName.hashCode() : 0;
    }
 
    @Override
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypePointer.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypePointer.java
index bdb916c87..fcc90dc1c 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypePointer.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypePointer.java
@@ -18,7 +18,6 @@ public class SymbolTypePointer implements SymbolType {
    private final boolean isVolatile;
    private final boolean isNomodify;
 
-
    public SymbolTypePointer(SymbolType elementType, ArraySpec arraySpec, boolean isVolatile, boolean isNomodify) {
       this.elementType = elementType;
       this.arraySpec = arraySpec;
@@ -30,14 +29,19 @@ public class SymbolTypePointer implements SymbolType {
       this(elementType, null, false, false);
    }
 
+   @Override
+   public SymbolType getQualified(boolean isVolatile, boolean isNomodify) {
+      return new SymbolTypePointer(this.elementType, this.arraySpec, isVolatile, isNomodify);
+   }
+
    @Override
    public boolean isVolatile() {
-      return false;
+      return isVolatile;
    }
 
    @Override
    public boolean isNomodify() {
-      return false;
+      return isNomodify;
    }
 
    public SymbolType getElementType() {
@@ -54,7 +58,15 @@ public class SymbolTypePointer implements SymbolType {
 
    @Override
    public String getTypeName() {
-      return elementType.getTypeName() + "*";
+      String name = elementType.getTypeName() + "*";
+      // TODO #121 Add
+      /*
+      if(isVolatile)
+         name += " volatile";
+      if(isNomodify)
+         name += " const";
+       */
+      return name;
    }
 
    @Override
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProcedure.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProcedure.java
index 552bedda8..a735380b2 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProcedure.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProcedure.java
@@ -11,6 +11,11 @@ public class SymbolTypeProcedure implements SymbolType {
       this.returnType = returnType;
    }
 
+   @Override
+   public SymbolType getQualified(boolean isVolatile, boolean isNomodify) {
+      return this;
+   }
+
    @Override
    public boolean isVolatile() {
       return false;
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProgram.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProgram.java
index 2b362b20c..6ad418c18 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProgram.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProgram.java
@@ -4,7 +4,11 @@ package dk.camelot64.kickc.model.types;
 public class SymbolTypeProgram implements SymbolType {
 
    public SymbolTypeProgram() {
+   }
 
+   @Override
+   public SymbolType getQualified(boolean isVolatile, boolean isNomodify) {
+      return this;
    }
 
    @Override
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeStruct.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeStruct.java
index 0cf8548b8..7dbf7f24f 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeStruct.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeStruct.java
@@ -13,7 +13,7 @@ import java.util.Objects;
 public class SymbolTypeStruct implements SymbolType {
 
    /** Name of the struct type. */
-   private String name;
+   private String structName;
 
    /** Size of the struct in bytes. */
    private int sizeBytes;
@@ -21,13 +21,25 @@ public class SymbolTypeStruct implements SymbolType {
    private final boolean isVolatile;
    private final boolean isNomodify;
 
+   public SymbolTypeStruct(String structName, int sizeBytes, boolean isVolatile, boolean isNomodify) {
+      this.structName = structName;
+      this.sizeBytes = sizeBytes;
+      this.isVolatile = isVolatile;
+      this.isNomodify = isNomodify;
+   }
+
    public SymbolTypeStruct(StructDefinition structDefinition, boolean isVolatile, boolean isNomodify) {
-      this.name = structDefinition.getLocalName();
+      this.structName = structDefinition.getLocalName();
       this.sizeBytes = calculateSizeBytes(structDefinition, null);
       this.isVolatile = isVolatile;
       this.isNomodify = isNomodify;
    }
 
+   @Override
+   public SymbolType getQualified(boolean isVolatile, boolean isNomodify) {
+      return new SymbolTypeStruct(this.structName, this.sizeBytes, isVolatile, isNomodify);
+   }
+
    @Override
    public boolean isVolatile() {
       return isVolatile;
@@ -40,15 +52,24 @@ public class SymbolTypeStruct implements SymbolType {
 
    @Override
    public String getTypeName() {
-      return "struct " + name;
-   }
-
-   public String getStructTypeName() {
+      String name = "";
+      // TODO #121 Add
+      /*
+      if(isVolatile)
+         name += "volatile ";
+      if(isNomodify)
+         name += "const ";
+   */
+      name += "struct " + this.structName;
       return name;
    }
 
+   public String getStructTypeName() {
+      return structName;
+   }
+
    public StructDefinition getStructDefinition(ProgramScope programScope) {
-      return programScope.getLocalStructDefinition(name);
+      return programScope.getLocalStructDefinition(structName);
    }
 
    @Override
@@ -98,12 +119,12 @@ public class SymbolTypeStruct implements SymbolType {
       if(this == o) return true;
       if(o == null || getClass() != o.getClass()) return false;
       SymbolTypeStruct that = (SymbolTypeStruct) o;
-      return Objects.equals(name, that.name);
+      return Objects.equals(structName, that.structName);
    }
 
    @Override
    public int hashCode() {
-      return Objects.hash(name, sizeBytes);
+      return Objects.hash(structName, sizeBytes);
    }
 
    @Override
diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeTypeDefScope.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeTypeDefScope.java
index 25356a172..35030c38d 100644
--- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeTypeDefScope.java
+++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeTypeDefScope.java
@@ -4,7 +4,11 @@ package dk.camelot64.kickc.model.types;
 public class SymbolTypeTypeDefScope implements SymbolType {
 
    public SymbolTypeTypeDefScope() {
+   }
 
+   @Override
+   public SymbolType getQualified(boolean isVolatile, boolean isNomodify) {
+      return this;
    }
 
    @Override
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java
index e1d23a067..c9e59da2d 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java
@@ -794,9 +794,11 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
       }
 
       /** The declared type of a variable. Combines SymbolType, type directives (const, volatile) and ArraySpec. It holds advanced type information like <p><code>char volatile * const * [42]</code> */
+      // TODO: #121 Remove when const/volatile are put into type
       static class VariableDeclType {
          /** The type. */
          SymbolType type;
+         // TODO: #121 Remove when const/volatile are put into type
          /** Const / Volatile Directives if applied to the type */
          List<Directive> typeDirectives;
          /** If the type is SymbolTypePointer this holds the declaration type of the elements. */
@@ -820,6 +822,12 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
 
          void setTypeDirectives(List<Directive> directives) {
             this.typeDirectives = directives;
+            for(Directive directive : directives) {
+               if(directive instanceof Directive.Const)
+                  setType(type.getQualified(type.isVolatile(), true));
+               if(directive instanceof Directive.Volatile)
+                  setType(type.getQualified(true, type.isNomodify()));
+            }
          }
 
          void setElementDeclType(VariableDeclType elementDeclType) {
@@ -851,8 +859,20 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
       void setDeclDirectives(List<Directive> directives) {
          this.declDirectives = new ArrayList<>();
          for(Directive directive : directives) {
-            if(directive instanceof Directive.Const || directive instanceof Directive.Volatile) {
+            if(directive instanceof Directive.Volatile) {
                // Type directive
+               SymbolType type = this.declType.getType();
+               SymbolType typeQualified = type.getQualified(true, type.isNomodify());
+               this.declType.setType(typeQualified);
+               // TODO: #121 Remove when const/volatile are put into type
+               if(!this.declType.getTypeDirectives().contains(directive))
+                  this.declType.getTypeDirectives().add(directive);
+            } else if(directive instanceof Directive.Const) {
+               // Type directive
+               SymbolType type = this.declType.getType();
+               SymbolType typeQualified = type.getQualified(type.isVolatile(), true);
+               this.declType.setType(typeQualified);
+               // TODO: #121 Remove when const/volatile are put into type
                if(!this.declType.getTypeDirectives().contains(directive))
                   this.declType.getTypeDirectives().add(directive);
             } else {
@@ -868,9 +888,11 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
          // Add all general directives
          dirs.addAll(declDirectives);
          // Add type-directives
+         // TODO: #121 Remove when const/volatile are put into type
          final VariableDeclType effectiveDeclType = getEffectiveDeclType();
          dirs.addAll(effectiveDeclType.getTypeDirectives());
          // Convert element directives
+         // TODO: #121 Remove when const/volatile are put into type
          final VariableDeclType elementDeclType = effectiveDeclType.getElementDeclType();
          if(elementDeclType != null) {
             for(Directive elementTypeDirective : elementDeclType.getTypeDirectives()) {
@@ -881,6 +903,7 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
                }
             }
             // Produce error on any deeper directives
+            // TODO: #121 Remove when const/volatile are put into type
             VariableDeclType deepDeclType = elementDeclType.getElementDeclType();
             while(deepDeclType != null) {
                if(!deepDeclType.getTypeDirectives().isEmpty()) {
@@ -2039,6 +2062,7 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
             type = elementType;
             declType = elementDeclType;
          }
+         // TODO: #121 Remove when const/volatile are put into type
          if(typeDefVariable.isNoModify())
             varDecl.getDeclType().getTypeDirectives().add(new Directive.Const());
          if(typeDefVariable.isVolatile())
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass1AddressOfHandling.java b/src/main/java/dk/camelot64/kickc/passes/Pass1AddressOfHandling.java
index f493cffa3..3bf76331a 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass1AddressOfHandling.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass1AddressOfHandling.java
@@ -7,6 +7,7 @@ import dk.camelot64.kickc.model.iterator.ProgramValueIterator;
 import dk.camelot64.kickc.model.operators.Operators;
 import dk.camelot64.kickc.model.symbols.Symbol;
 import dk.camelot64.kickc.model.symbols.Variable;
+import dk.camelot64.kickc.model.types.SymbolType;
 import dk.camelot64.kickc.model.types.SymbolTypeStruct;
 import dk.camelot64.kickc.model.values.ConstantSymbolPointer;
 import dk.camelot64.kickc.model.values.RValue;
@@ -60,11 +61,17 @@ public class Pass1AddressOfHandling extends Pass2SsaOptimization {
    private void updateAddressOfVariable(Variable variable, String stmtStr) {
       if(variable.getType() instanceof SymbolTypeStruct) {
          variable.setKind(Variable.Kind.LOAD_STORE);
+         SymbolType typeQualified = variable.getType().getQualified(true, variable.getType().isNomodify());
+         variable.setType(typeQualified);
+         // TODO: #121 remove
          variable.setVolatile(true);
          getLog().append("Setting struct to load/store in variable affected by address-of " + stmtStr);
          //getLog().append("Setting struct to load/store in variable affected by address-of: " + variable.toString() + " in " + stmtStr);
       } else {
          variable.setKind(Variable.Kind.LOAD_STORE);
+         SymbolType typeQualified = variable.getType().getQualified(true, variable.getType().isNomodify());
+         variable.setType(typeQualified);
+         // TODO: #121 remove
          variable.setVolatile(true);
          getLog().append("Setting inferred volatile on symbol affected by address-of " + stmtStr);
          //getLog().append("Setting inferred volatile on symbol affected by address-of: " + variable.toString() + " in " + stmtStr);
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass1AsmUsesHandling.java b/src/main/java/dk/camelot64/kickc/passes/Pass1AsmUsesHandling.java
index be1c8f65f..7274dbddb 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass1AsmUsesHandling.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass1AsmUsesHandling.java
@@ -4,6 +4,7 @@ import dk.camelot64.kickc.model.Program;
 import dk.camelot64.kickc.model.iterator.ProgramValue;
 import dk.camelot64.kickc.model.iterator.ProgramValueIterator;
 import dk.camelot64.kickc.model.symbols.Variable;
+import dk.camelot64.kickc.model.types.SymbolType;
 import dk.camelot64.kickc.model.types.SymbolTypeStruct;
 import dk.camelot64.kickc.model.values.SymbolVariableRef;
 import dk.camelot64.kickc.model.values.Value;
@@ -39,9 +40,13 @@ public class Pass1AsmUsesHandling extends Pass2SsaOptimization {
    private void updateAddressOfVariable(Variable variable, String stmtStr) {
       if(variable.getType() instanceof SymbolTypeStruct) {
          variable.setKind(Variable.Kind.LOAD_STORE);
+         // TODO: #121 Add volatile??
          getLog().append("Setting struct to load/store in variable affected by address-of: " + variable.toString() + " in " + stmtStr);
       } else {
          variable.setKind(Variable.Kind.LOAD_STORE);
+         SymbolType typeQualified = variable.getType().getQualified(true, variable.getType().isNomodify());
+         variable.setType(typeQualified);
+         // TODO: #121 Remove
          variable.setVolatile(true);
          getLog().append("Setting inferred volatile on symbol affected by address-of: " + variable.toString() + " in " + stmtStr);
       }
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass1StructTypeSizeFix.java b/src/main/java/dk/camelot64/kickc/passes/Pass1StructTypeSizeFix.java
index cdb3e77e6..bc9fe384d 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass1StructTypeSizeFix.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass1StructTypeSizeFix.java
@@ -1,12 +1,16 @@
 package dk.camelot64.kickc.passes;
 
 import dk.camelot64.kickc.model.Program;
+import dk.camelot64.kickc.model.iterator.ProgramValueIterator;
 import dk.camelot64.kickc.model.symbols.Scope;
 import dk.camelot64.kickc.model.symbols.StructDefinition;
 import dk.camelot64.kickc.model.symbols.Variable;
 import dk.camelot64.kickc.model.types.SymbolType;
 import dk.camelot64.kickc.model.types.SymbolTypePointer;
 import dk.camelot64.kickc.model.types.SymbolTypeStruct;
+import dk.camelot64.kickc.model.values.ConstantStructValue;
+import dk.camelot64.kickc.model.values.StructUnwoundPlaceholder;
+import dk.camelot64.kickc.model.values.StructZero;
 import dk.camelot64.kickc.passes.utils.SizeOfConstants;
 
 /**
@@ -27,6 +31,20 @@ public class Pass1StructTypeSizeFix extends Pass2SsaOptimization {
          modified |= fixStructSize(variable.getType());
       }
 
+      // Update all types hidden inside values
+      ProgramValueIterator.execute(getProgram(), (programValue, currentStmt, stmtIt, currentBlock) -> {
+         if(programValue.get() instanceof StructZero) {
+            final SymbolTypeStruct typeStruct = ((StructZero) programValue.get()).getTypeStruct();
+            fixStructSize(typeStruct);
+         } else if(programValue.get() instanceof ConstantStructValue) {
+            final SymbolTypeStruct typeStruct = ((ConstantStructValue) programValue.get()).getStructType();
+            fixStructSize(typeStruct);
+         } else if(programValue.get() instanceof StructUnwoundPlaceholder) {
+            final SymbolTypeStruct typeStruct = ((StructUnwoundPlaceholder) programValue.get()).getTypeStruct();
+            fixStructSize(typeStruct);
+         }
+      });
+
       // Update all SIZEOF_XXX constants
       for(Scope subScope : getScope().getAllScopes(false)) {
          if(subScope instanceof StructDefinition) {
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass2ConditionalJumpSimplification.java b/src/main/java/dk/camelot64/kickc/passes/Pass2ConditionalJumpSimplification.java
index f11e080b6..7285ccbb1 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass2ConditionalJumpSimplification.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass2ConditionalJumpSimplification.java
@@ -13,6 +13,7 @@ import dk.camelot64.kickc.model.statements.StatementConditionalJump;
 import dk.camelot64.kickc.model.StatementInfos;
 import dk.camelot64.kickc.model.symbols.Scope;
 import dk.camelot64.kickc.model.symbols.Variable;
+import dk.camelot64.kickc.model.types.SymbolType;
 import dk.camelot64.kickc.model.values.RValue;
 import dk.camelot64.kickc.model.values.ScopeRef;
 import dk.camelot64.kickc.model.values.SymbolRef;
@@ -134,7 +135,8 @@ public class Pass2ConditionalJumpSimplification extends Pass2SsaOptimization {
                   final ScopeRef conditionDefineScopeRef = conditionDefineBlock.getScope();
                   final Scope conditionDefineScope = getScope().getScope(conditionDefineScopeRef);
                   final Variable intermediateLoadStoreVar = conditionDefineScope.addVariableIntermediate();
-                  intermediateLoadStoreVar.setType(referencedLoadStoreVariable.getType());
+                  SymbolType typeQualified = referencedLoadStoreVariable.getType().getQualified(false, referencedLoadStoreVariable.getType().isNomodify());
+                  intermediateLoadStoreVar.setType(typeQualified);
                   final StatementAssignment intermediateLoadStoreAssignment = new StatementAssignment(intermediateLoadStoreVar.getVariableRef(), referencedLoadStoreVariable.getRef(), true, simpleCondition.conditionAssignment.getSource(), Comment.NO_COMMENTS);
                   conditionDefineBlock.addStatementAfter(intermediateLoadStoreAssignment, simpleCondition.conditionAssignment);
                   // Replace all references to the load/store variable in the expressions with the new intermediate
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass2DeInlineWordDerefIdx.java b/src/main/java/dk/camelot64/kickc/passes/Pass2DeInlineWordDerefIdx.java
index dcf4cad15..daec58c41 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass2DeInlineWordDerefIdx.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass2DeInlineWordDerefIdx.java
@@ -9,6 +9,7 @@ import dk.camelot64.kickc.model.symbols.Scope;
 import dk.camelot64.kickc.model.symbols.Variable;
 import dk.camelot64.kickc.model.types.SymbolType;
 import dk.camelot64.kickc.model.types.SymbolTypeInference;
+import dk.camelot64.kickc.model.types.SymbolTypePointer;
 import dk.camelot64.kickc.model.values.*;
 
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -40,6 +41,10 @@ public class Pass2DeInlineWordDerefIdx extends Pass2SsaOptimization {
                programValue.set(new PointerDereferenceSimple(tmpVar.getRef()));
                SymbolType pointerType = SymbolTypeInference.inferType(getScope(), new AssignmentRValue(tmpVarAssignment));
                tmpVar.setType(pointerType);
+               if(((SymbolTypePointer)pointerType).getElementType().isNomodify())
+                  tmpVar.setToNoModify(true);
+               if(((SymbolTypePointer)pointerType).getElementType().isVolatile())
+                  tmpVar.setToVolatile(true);
                optimized.set(true);
             }
          }
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass2NopCastInlining.java b/src/main/java/dk/camelot64/kickc/passes/Pass2NopCastInlining.java
index 09ad310ef..93d269e82 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass2NopCastInlining.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass2NopCastInlining.java
@@ -77,7 +77,9 @@ public class Pass2NopCastInlining extends Pass2SsaOptimization {
                               delete.add((SymbolRef) castValue.getValue());
                               // Change the type of the assignment variable
                               Variable castVar = getScope().getVariable((VariableRef) castValue.getValue());
-                              assignmentVar.setType(castVar.getType());
+                              // Copy type qualifiers from the variable being assigned
+                              SymbolType qualifiedType = castVar.getType().getQualified(assignmentVar.getType().isVolatile(), assignmentVar.getType().isNomodify());
+                              assignmentVar.setType(qualifiedType);
                               // Remove the assignment
                               stmtIt.remove();
                            }
diff --git a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java
index 5555082d7..6062dfc94 100644
--- a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java
+++ b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java
@@ -8,6 +8,10 @@ import dk.camelot64.kickc.asm.AsmProgram;
 import dk.camelot64.kickc.model.CompileError;
 import dk.camelot64.kickc.model.Program;
 import dk.camelot64.kickc.model.TargetPlatform;
+import dk.camelot64.kickc.model.symbols.Symbol;
+import dk.camelot64.kickc.model.symbols.Variable;
+import dk.camelot64.kickc.model.types.SymbolType;
+import dk.camelot64.kickc.model.types.SymbolTypePointer;
 import dk.camelot64.kickc.parser.CTargetPlatformParser;
 import kickass.KickAssembler65CE02;
 import kickass.nonasm.c64.CharToPetsciiConverter;
@@ -2236,7 +2240,7 @@ public class TestPrograms {
 
    @Test
    public void testStructPtr12() throws IOException, URISyntaxException {
-      compileAndCompare("struct-ptr-12.c");
+      compileAndCompare("struct-ptr-12.c", log());
    }
 
    @Test
@@ -2916,7 +2920,7 @@ public class TestPrograms {
 
    @Test
    public void testTypeIdPlusBytes() throws IOException, URISyntaxException {
-      compileAndCompare("typeid-plus-bytes.c");
+      compileAndCompare("typeid-plus-bytes.c", log());
    }
 
    @Test
@@ -5094,6 +5098,25 @@ public class TestPrograms {
       defines.put("__KICKC__", "1");
       defines.putAll(program.getTargetPlatform().getDefines());
       compiler.compile(files, defines);
+
+      // TODO: #121 Delete when const/volatile is confirmed to work on SymbolType
+      for(Symbol symbol : program.getScope().getAllSymbols(true)) {
+         if(symbol instanceof Variable) {
+            Variable var = (Variable) symbol;
+            SymbolType varType = var.getType();
+            assertEquals(var.isVolatile(), varType.isVolatile(), "Variable volatile "+var.toString());
+            assertEquals(var.isNoModify(), varType.isNomodify(), "Variable nomodify "+var.toString());
+            boolean isToVolatile = false;
+            boolean isToNomodify = false;
+            if(varType instanceof SymbolTypePointer) {
+               isToVolatile = ((SymbolTypePointer) varType).getElementType().isVolatile();
+               isToNomodify = ((SymbolTypePointer) varType).getElementType().isNomodify();
+            }
+            assertEquals(var.isToVolatile(), isToVolatile, "Variable to volatile "+var.toString());
+            assertEquals(var.isToNoModify(), isToNomodify, "Variable to nomodify "+var.toString());
+         }
+      }
+
       compileAsm(fileName, program);
       boolean success = true;
       ReferenceHelper helper = new ReferenceHelperFolder(refPath);
diff --git a/src/test/kc/complex/includes/includes-3.c b/src/test/kc/complex/includes/includes-3.c
index 94c5cc336..c6d9f4d9c 100644
--- a/src/test/kc/complex/includes/includes-3.c
+++ b/src/test/kc/complex/includes/includes-3.c
@@ -2,7 +2,7 @@
 
 #include "lib.h"
 
-const char* SCREEN = 0x0400;
+char* const SCREEN = 0x0400;
 
 void main() {
 
diff --git a/src/test/kc/examples/mega65/camelot-1536dots.c b/src/test/kc/examples/mega65/camelot-1536dots.c
index 30a3624b6..710fefa8b 100644
--- a/src/test/kc/examples/mega65/camelot-1536dots.c
+++ b/src/test/kc/examples/mega65/camelot-1536dots.c
@@ -65,8 +65,6 @@ void main() {
   SEI();
   // Map memory to BANK 0 : 0x00XXXX - giving access to I/O
   memoryRemap(0x00,0,0);
-  // Fast CPU, M65 IO
-  POKE(0,65);
   // Disable Kernal & Basic
   *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK;
   *PROCPORT = PROCPORT_RAM_IO;
@@ -124,10 +122,13 @@ void main() {
       VICIV->CHARPTR_HILO = 0;
       graphics_render = GRAPHICS1;
     }
+    VICIV->BORDER_COLOR = BLUE;
     // Clear the graphics
     memset_dma(graphics_render, 0x00, 40*25*8);
+    VICIV->BORDER_COLOR = PURPLE;
     // Render some dots
     render_dots();
+    VICIV->BORDER_COLOR = BLACK;
     //Play  SID
     (*musicPlay)();
 
@@ -212,7 +213,7 @@ unsigned int SINX2[SINX2_SIZE+256] = kickasm {{
 
 void graphics_mode(void) {
   // 16-bit text mode
-  VICIV->CONTROLC = VICIV_CHR16;
+  VICIV->CONTROLC = VICIV_CHR16|VICIV_VFAST;
   // H320, fast CPU
   VICIV->CONTROLB = VICIV_FAST;
   // 320x200 per char, 16 pixels wide per char
diff --git a/src/test/ref/32bit-rols.log b/src/test/ref/32bit-rols.log
index 4acd02364..eb04e492d 100644
--- a/src/test/ref/32bit-rols.log
+++ b/src/test/ref/32bit-rols.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_sint 0 (struct printf_format_number){ 2, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/adventofcode/2020-01.log b/src/test/ref/adventofcode/2020-01.log
index 600fd1433..aa837a7c8 100644
--- a/src/test/ref/adventofcode/2020-01.log
+++ b/src/test/ref/adventofcode/2020-01.log
@@ -3,6 +3,7 @@ Fixing struct type size struct ATARI_GTIA_READ to 32
 Fixing struct type size struct ATARI_POKEY_READ to 16
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct ATARI_GTIA_READ to 32
 Fixing struct type SIZE_OF struct ATARI_POKEY_READ to 16
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
@@ -6808,13 +6809,13 @@ ASSEMBLER BEFORE OPTIMIZATION
 // Find 2 entries that give 2020 when added together
 // And 3 entries that give 2020 when added together
   // Upstart
-  // Atari XL/XE executable XEX file with a single segment
-// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
-.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
-.file [name="2020-01.xex", type="bin", segments="XexFile"]
-.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
-.segmentdef Program [segments="Code, Data"]
-.segmentdef Code [start=$2000]
+  // Atari XL/XE executable XEX file with a single segment
+// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
+.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
+.file [name="2020-01.xex", type="bin", segments="XexFile"]
+.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
+.segmentdef Program [segments="Code, Data"]
+.segmentdef Code [start=$2000]
 .segmentdef Data [startAfter="Code"]
   // Global Constants & labels
   .const SIZEOF_WORD = 2
@@ -9782,13 +9783,13 @@ Score: 27696937
 // Find 2 entries that give 2020 when added together
 // And 3 entries that give 2020 when added together
   // Upstart
-  // Atari XL/XE executable XEX file with a single segment
-// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
-.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
-.file [name="2020-01.xex", type="bin", segments="XexFile"]
-.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
-.segmentdef Program [segments="Code, Data"]
-.segmentdef Code [start=$2000]
+  // Atari XL/XE executable XEX file with a single segment
+// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
+.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
+.file [name="2020-01.xex", type="bin", segments="XexFile"]
+.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
+.segmentdef Program [segments="Code, Data"]
+.segmentdef Code [start=$2000]
 .segmentdef Data [startAfter="Code"]
   // Global Constants & labels
   .const SIZEOF_WORD = 2
diff --git a/src/test/ref/adventofcode/2020-02.log b/src/test/ref/adventofcode/2020-02.log
index 955039065..42d9e0a3e 100644
--- a/src/test/ref/adventofcode/2020-02.log
+++ b/src/test/ref/adventofcode/2020-02.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Setting inferred volatile on symbol affected by address-of main::$3 = call strtouc main::pwd &main::pwd 
diff --git a/src/test/ref/adventofcode/2020-03.log b/src/test/ref/adventofcode/2020-03.log
index 792ce544e..d520e2e50 100644
--- a/src/test/ref/adventofcode/2020-03.log
+++ b/src/test/ref/adventofcode/2020-03.log
@@ -3,6 +3,7 @@ Fixing struct type size struct ATARI_GTIA_READ to 32
 Fixing struct type size struct ATARI_POKEY_READ to 16
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct ATARI_GTIA_READ to 32
 Fixing struct type SIZE_OF struct ATARI_POKEY_READ to 16
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
diff --git a/src/test/ref/adventofcode/2020-04.log b/src/test/ref/adventofcode/2020-04.log
index 5162b342d..285738438 100644
--- a/src/test/ref/adventofcode/2020-04.log
+++ b/src/test/ref/adventofcode/2020-04.log
@@ -4,6 +4,7 @@ Fixing struct type size struct ATARI_GTIA_READ to 32
 Fixing struct type size struct ATARI_POKEY_READ to 16
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct ATARI_GTIA_READ to 32
 Fixing struct type SIZE_OF struct ATARI_POKEY_READ to 16
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
diff --git a/src/test/ref/atarixl-md5.log b/src/test/ref/atarixl-md5.log
index cf801d9f1..565806bd1 100644
--- a/src/test/ref/atarixl-md5.log
+++ b/src/test/ref/atarixl-md5.log
@@ -3,6 +3,7 @@ Fixing struct type size struct ATARI_GTIA_READ to 32
 Fixing struct type size struct ATARI_POKEY_READ to 16
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct ATARI_GTIA_READ to 32
 Fixing struct type SIZE_OF struct ATARI_POKEY_READ to 16
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
diff --git a/src/test/ref/atoi-1.log b/src/test/ref/atoi-1.log
index cb9f5b347..214ee4b0e 100644
--- a/src/test/ref/atoi-1.log
+++ b/src/test/ref/atoi-1.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_sint main::$1 (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/casting-negative.log b/src/test/ref/casting-negative.log
index 9d2867b64..9adc3c3b9 100644
--- a/src/test/ref/casting-negative.log
+++ b/src/test/ref/casting-negative.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_sint test_casting::signed_short_value (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/circlechars.log b/src/test/ref/circlechars.log
index 2fc0358ce..88e233ba8 100644
--- a/src/test/ref/circlechars.log
+++ b/src/test/ref/circlechars.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_uint main::count (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/complex/includes/includes-3.log b/src/test/ref/complex/includes/includes-3.log
index 2852c1948..367fcf807 100644
--- a/src/test/ref/complex/includes/includes-3.log
+++ b/src/test/ref/complex/includes/includes-3.log
@@ -39,7 +39,7 @@ __start::@return: scope:[__start]  from __start::@2
   to:@return
 
 SYMBOL TABLE SSA
-const to_nomodify byte* SCREEN = (byte*)$400
+const nomodify byte* SCREEN = (byte*)$400
 void __start()
 void main()
 byte main::i
@@ -172,7 +172,7 @@ Removing instruction __breturn:
 Succesful ASM optimization Pass5UnusedLabelElimination
 
 FINAL SYMBOL TABLE
-const to_nomodify byte* SCREEN = (byte*) 1024
+const nomodify byte* SCREEN = (byte*) 1024
 void main()
 byte main::i
 byte value
diff --git a/src/test/ref/complex/includes/includes-3.sym b/src/test/ref/complex/includes/includes-3.sym
index b47759ca2..50e0bc797 100644
--- a/src/test/ref/complex/includes/includes-3.sym
+++ b/src/test/ref/complex/includes/includes-3.sym
@@ -1,4 +1,4 @@
-const to_nomodify byte* SCREEN = (byte*) 1024
+const nomodify byte* SCREEN = (byte*) 1024
 void main()
 byte main::i
 byte value
diff --git a/src/test/ref/cpu-65ce02-eightqueens.log b/src/test/ref/cpu-65ce02-eightqueens.log
index 917e7283b..6f68c6784 100644
--- a/src/test/ref/cpu-65ce02-eightqueens.log
+++ b/src/test/ref/cpu-65ce02-eightqueens.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_uint 8 (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/declared-memory-var-4.log b/src/test/ref/declared-memory-var-4.log
index 3222fdecb..9a265f346 100644
--- a/src/test/ref/declared-memory-var-4.log
+++ b/src/test/ref/declared-memory-var-4.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct foo to 14
 Fixing struct type size struct foo to 14
+Fixing struct type size struct foo to 14
 Fixing struct type SIZE_OF struct foo to 14
 Fixing struct type SIZE_OF struct foo to 14
 Setting struct to load/store in variable affected by address-of main::barp = &bar
diff --git a/src/test/ref/examples/atarixl/atarixl-conio.log b/src/test/ref/examples/atarixl/atarixl-conio.log
index f17b4e51a..5185d4c7c 100644
--- a/src/test/ref/examples/atarixl/atarixl-conio.log
+++ b/src/test/ref/examples/atarixl/atarixl-conio.log
@@ -3,6 +3,7 @@ Fixing struct type size struct ATARI_GTIA_READ to 32
 Fixing struct type size struct ATARI_POKEY_READ to 16
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct ATARI_GTIA_READ to 32
 Fixing struct type SIZE_OF struct ATARI_POKEY_READ to 16
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
diff --git a/src/test/ref/examples/conio/nacht-screen.log b/src/test/ref/examples/conio/nacht-screen.log
index eb8cefb29..3c4b8e4df 100644
--- a/src/test/ref/examples/conio/nacht-screen.log
+++ b/src/test/ref/examples/conio/nacht-screen.log
@@ -1,4 +1,17 @@
 Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
+Fixing struct type size struct $0 to 41
 Fixing struct type SIZE_OF struct $0 to 41
 Fixing struct type SIZE_OF struct $0 to 41
 Setting inferred volatile on symbol affected by address-of main::$0 = call screensize &XSize &YSize 
diff --git a/src/test/ref/examples/cx16/cx16-bankaddressing.log b/src/test/ref/examples/cx16/cx16-bankaddressing.log
index 0991eea01..18e063be8 100644
--- a/src/test/ref/examples/cx16/cx16-bankaddressing.log
+++ b/src/test/ref/examples/cx16/cx16-bankaddressing.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Setting inferred volatile on symbol affected by address-of kbhit::ch
diff --git a/src/test/ref/examples/cx16/cx16-bankload.log b/src/test/ref/examples/cx16/cx16-bankload.log
index 2ff18c214..2504f6005 100644
--- a/src/test/ref/examples/cx16/cx16-bankload.log
+++ b/src/test/ref/examples/cx16/cx16-bankload.log
@@ -1,6 +1,7 @@
 Loading link script "cx16-bankload.ld"
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Setting inferred volatile on symbol affected by address-of kbhit::ch
diff --git a/src/test/ref/examples/cx16/cx16-tilemap.log b/src/test/ref/examples/cx16/cx16-tilemap.log
index f7bce9736..a3ce17b29 100644
--- a/src/test/ref/examples/cx16/cx16-tilemap.log
+++ b/src/test/ref/examples/cx16/cx16-tilemap.log
@@ -1,6 +1,7 @@
 Resolved forward reference irq_vsync to __interrupt(rom_sys_cx16) void irq_vsync()
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Setting inferred volatile on symbol affected by address-of kbhit::ch
diff --git a/src/test/ref/examples/cx16/cx16-veralayers.log b/src/test/ref/examples/cx16/cx16-veralayers.log
index 08220fc12..9396f7bd1 100644
--- a/src/test/ref/examples/cx16/cx16-veralayers.log
+++ b/src/test/ref/examples/cx16/cx16-veralayers.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Setting inferred volatile on symbol affected by address-of kbhit::ch
diff --git a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.log b/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.log
index 17d41d084..11ecfc878 100644
--- a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.log
+++ b/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Setting inferred volatile on symbol affected by address-of kbhit::ch
@@ -9775,21 +9776,21 @@ word~ bitmap_init::$25 2002.0
 word~ bitmap_init::$26 2002.0
 byte~ bitmap_init::$27 202.0
 word~ bitmap_init::$28 2002.0
-word*~ bitmap_init::$29 2002.0
+to_nomodify word*~ bitmap_init::$29 2002.0
 byte~ bitmap_init::$3 202.0
-byte*~ bitmap_init::$30 2002.0
-byte*~ bitmap_init::$31 2002.0
-word*~ bitmap_init::$32 2002.0
-byte*~ bitmap_init::$33 2002.0
-byte*~ bitmap_init::$34 2002.0
-word*~ bitmap_init::$35 2002.0
-byte*~ bitmap_init::$36 2002.0
-byte*~ bitmap_init::$37 2002.0
-word*~ bitmap_init::$38 2002.0
-byte*~ bitmap_init::$39 2002.0
+to_nomodify byte*~ bitmap_init::$30 2002.0
+to_nomodify byte*~ bitmap_init::$31 2002.0
+to_nomodify word*~ bitmap_init::$32 2002.0
+to_nomodify byte*~ bitmap_init::$33 2002.0
+to_nomodify byte*~ bitmap_init::$34 2002.0
+to_nomodify word*~ bitmap_init::$35 2002.0
+to_nomodify byte*~ bitmap_init::$36 2002.0
+to_nomodify byte*~ bitmap_init::$37 2002.0
+to_nomodify word*~ bitmap_init::$38 2002.0
+to_nomodify byte*~ bitmap_init::$39 2002.0
 byte~ bitmap_init::$4 202.0
-byte*~ bitmap_init::$40 2002.0
-dword*~ bitmap_init::$41 2002.0
+to_nomodify byte*~ bitmap_init::$40 2002.0
+to_nomodify dword*~ bitmap_init::$41 2002.0
 word~ bitmap_init::$7 667.3333333333334
 dword bitmap_init::address
 byte bitmap_init::bitmask
@@ -10013,10 +10014,10 @@ word bitmap_line_ydxi::yd#1 6667.333333333333
 word bitmap_line_ydxi::yd#5 1.3334666933333334E7
 void bitmap_plot(word bitmap_plot::x , word bitmap_plot::y , byte bitmap_plot::c)
 word~ bitmap_plot::$10 2.000000002E9
-word*~ bitmap_plot::$12 1.000000001E9
-dword*~ bitmap_plot::$13 2.000000002E9
-byte*~ bitmap_plot::$14 2.000000002E9
-byte*~ bitmap_plot::$15 2.000000002E9
+to_nomodify word*~ bitmap_plot::$12 1.000000001E9
+to_nomodify dword*~ bitmap_plot::$13 2.000000002E9
+to_nomodify byte*~ bitmap_plot::$14 2.000000002E9
+to_nomodify byte*~ bitmap_plot::$15 2.000000002E9
 byte~ bitmap_plot::$3 2.000000002E9
 byte~ bitmap_plot::$6 2.000000002E9
 byte~ bitmap_plot::$7 2.000000002E9
@@ -19035,21 +19036,21 @@ word~ bitmap_init::$25 zp[2]:82 2002.0
 word~ bitmap_init::$26 zp[2]:114 2002.0
 byte~ bitmap_init::$27 reg byte a 202.0
 word~ bitmap_init::$28 zp[2]:104 2002.0
-word*~ bitmap_init::$29 zp[2]:67 2002.0
+to_nomodify word*~ bitmap_init::$29 zp[2]:67 2002.0
 byte~ bitmap_init::$3 reg byte a 202.0
-byte*~ bitmap_init::$30 zp[2]:69 2002.0
-byte*~ bitmap_init::$31 zp[2]:72 2002.0
-word*~ bitmap_init::$32 zp[2]:106 2002.0
-byte*~ bitmap_init::$33 zp[2]:108 2002.0
-byte*~ bitmap_init::$34 zp[2]:110 2002.0
-word*~ bitmap_init::$35 zp[2]:82 2002.0
-byte*~ bitmap_init::$36 zp[2]:84 2002.0
-byte*~ bitmap_init::$37 zp[2]:86 2002.0
-word*~ bitmap_init::$38 zp[2]:114 2002.0
-byte*~ bitmap_init::$39 zp[2]:90 2002.0
+to_nomodify byte*~ bitmap_init::$30 zp[2]:69 2002.0
+to_nomodify byte*~ bitmap_init::$31 zp[2]:72 2002.0
+to_nomodify word*~ bitmap_init::$32 zp[2]:106 2002.0
+to_nomodify byte*~ bitmap_init::$33 zp[2]:108 2002.0
+to_nomodify byte*~ bitmap_init::$34 zp[2]:110 2002.0
+to_nomodify word*~ bitmap_init::$35 zp[2]:82 2002.0
+to_nomodify byte*~ bitmap_init::$36 zp[2]:84 2002.0
+to_nomodify byte*~ bitmap_init::$37 zp[2]:86 2002.0
+to_nomodify word*~ bitmap_init::$38 zp[2]:114 2002.0
+to_nomodify byte*~ bitmap_init::$39 zp[2]:90 2002.0
 byte~ bitmap_init::$4 reg byte a 202.0
-byte*~ bitmap_init::$40 zp[2]:92 2002.0
-dword*~ bitmap_init::$41 zp[2]:104 2002.0
+to_nomodify byte*~ bitmap_init::$40 zp[2]:92 2002.0
+to_nomodify dword*~ bitmap_init::$41 zp[2]:104 2002.0
 word~ bitmap_init::$7 zp[2]:65 667.3333333333334
 dword bitmap_init::address
 const dword bitmap_init::address#0 address = 0
@@ -19275,10 +19276,10 @@ word bitmap_line_ydxi::yd#1 yd zp[2]:69 6667.333333333333
 word bitmap_line_ydxi::yd#5 yd zp[2]:69 1.3334666933333334E7
 void bitmap_plot(word bitmap_plot::x , word bitmap_plot::y , byte bitmap_plot::c)
 word~ bitmap_plot::$10 zp[2]:98 2.000000002E9
-word*~ bitmap_plot::$12 zp[2]:92 1.000000001E9
-dword*~ bitmap_plot::$13 zp[2]:98 2.000000002E9
-byte*~ bitmap_plot::$14 zp[2]:104 2.000000002E9
-byte*~ bitmap_plot::$15 zp[2]:110 2.000000002E9
+to_nomodify word*~ bitmap_plot::$12 zp[2]:92 1.000000001E9
+to_nomodify dword*~ bitmap_plot::$13 zp[2]:98 2.000000002E9
+to_nomodify byte*~ bitmap_plot::$14 zp[2]:104 2.000000002E9
+to_nomodify byte*~ bitmap_plot::$15 zp[2]:110 2.000000002E9
 byte~ bitmap_plot::$3 reg byte x 2.000000002E9
 byte~ bitmap_plot::$6 reg byte a 2.000000002E9
 byte~ bitmap_plot::$7 reg byte a 2.000000002E9
diff --git a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.sym b/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.sym
index f9f792f2d..9247200a2 100644
--- a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.sym
+++ b/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.sym
@@ -86,21 +86,21 @@ word~ bitmap_init::$25 zp[2]:82 2002.0
 word~ bitmap_init::$26 zp[2]:114 2002.0
 byte~ bitmap_init::$27 reg byte a 202.0
 word~ bitmap_init::$28 zp[2]:104 2002.0
-word*~ bitmap_init::$29 zp[2]:67 2002.0
+to_nomodify word*~ bitmap_init::$29 zp[2]:67 2002.0
 byte~ bitmap_init::$3 reg byte a 202.0
-byte*~ bitmap_init::$30 zp[2]:69 2002.0
-byte*~ bitmap_init::$31 zp[2]:72 2002.0
-word*~ bitmap_init::$32 zp[2]:106 2002.0
-byte*~ bitmap_init::$33 zp[2]:108 2002.0
-byte*~ bitmap_init::$34 zp[2]:110 2002.0
-word*~ bitmap_init::$35 zp[2]:82 2002.0
-byte*~ bitmap_init::$36 zp[2]:84 2002.0
-byte*~ bitmap_init::$37 zp[2]:86 2002.0
-word*~ bitmap_init::$38 zp[2]:114 2002.0
-byte*~ bitmap_init::$39 zp[2]:90 2002.0
+to_nomodify byte*~ bitmap_init::$30 zp[2]:69 2002.0
+to_nomodify byte*~ bitmap_init::$31 zp[2]:72 2002.0
+to_nomodify word*~ bitmap_init::$32 zp[2]:106 2002.0
+to_nomodify byte*~ bitmap_init::$33 zp[2]:108 2002.0
+to_nomodify byte*~ bitmap_init::$34 zp[2]:110 2002.0
+to_nomodify word*~ bitmap_init::$35 zp[2]:82 2002.0
+to_nomodify byte*~ bitmap_init::$36 zp[2]:84 2002.0
+to_nomodify byte*~ bitmap_init::$37 zp[2]:86 2002.0
+to_nomodify word*~ bitmap_init::$38 zp[2]:114 2002.0
+to_nomodify byte*~ bitmap_init::$39 zp[2]:90 2002.0
 byte~ bitmap_init::$4 reg byte a 202.0
-byte*~ bitmap_init::$40 zp[2]:92 2002.0
-dword*~ bitmap_init::$41 zp[2]:104 2002.0
+to_nomodify byte*~ bitmap_init::$40 zp[2]:92 2002.0
+to_nomodify dword*~ bitmap_init::$41 zp[2]:104 2002.0
 word~ bitmap_init::$7 zp[2]:65 667.3333333333334
 dword bitmap_init::address
 const dword bitmap_init::address#0 address = 0
@@ -326,10 +326,10 @@ word bitmap_line_ydxi::yd#1 yd zp[2]:69 6667.333333333333
 word bitmap_line_ydxi::yd#5 yd zp[2]:69 1.3334666933333334E7
 void bitmap_plot(word bitmap_plot::x , word bitmap_plot::y , byte bitmap_plot::c)
 word~ bitmap_plot::$10 zp[2]:98 2.000000002E9
-word*~ bitmap_plot::$12 zp[2]:92 1.000000001E9
-dword*~ bitmap_plot::$13 zp[2]:98 2.000000002E9
-byte*~ bitmap_plot::$14 zp[2]:104 2.000000002E9
-byte*~ bitmap_plot::$15 zp[2]:110 2.000000002E9
+to_nomodify word*~ bitmap_plot::$12 zp[2]:92 1.000000001E9
+to_nomodify dword*~ bitmap_plot::$13 zp[2]:98 2.000000002E9
+to_nomodify byte*~ bitmap_plot::$14 zp[2]:104 2.000000002E9
+to_nomodify byte*~ bitmap_plot::$15 zp[2]:110 2.000000002E9
 byte~ bitmap_plot::$3 reg byte x 2.000000002E9
 byte~ bitmap_plot::$6 reg byte a 2.000000002E9
 byte~ bitmap_plot::$7 reg byte a 2.000000002E9
diff --git a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.log b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.log
index 2bd92b736..32fa54874 100644
--- a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.log
+++ b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Setting inferred volatile on symbol affected by address-of kbhit::ch
diff --git a/src/test/ref/examples/eightqueens/eightqueens-recursive.log b/src/test/ref/examples/eightqueens/eightqueens-recursive.log
index 49deedd51..ad64fdc4e 100644
--- a/src/test/ref/examples/eightqueens/eightqueens-recursive.log
+++ b/src/test/ref/examples/eightqueens/eightqueens-recursive.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Setting inferred volatile on symbol affected by address-of: queen::column in asm { ldacolumn pha ldar pha  }
diff --git a/src/test/ref/examples/eightqueens/eightqueens.log b/src/test/ref/examples/eightqueens/eightqueens.log
index 236e8ae31..fc098edcc 100644
--- a/src/test/ref/examples/eightqueens/eightqueens.log
+++ b/src/test/ref/examples/eightqueens/eightqueens.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_uint 8 (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/examples/helloworld/helloworld.log b/src/test/ref/examples/helloworld/helloworld.log
index 38d88af00..c8738779b 100644
--- a/src/test/ref/examples/helloworld/helloworld.log
+++ b/src/test/ref/examples/helloworld/helloworld.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Inlined call vicSelectGfxBank::$0 = call toDd00 vicSelectGfxBank::gfx 
diff --git a/src/test/ref/examples/mega65/helloworld-mega65.log b/src/test/ref/examples/mega65/helloworld-mega65.log
index 335893cc8..d818afd7c 100644
--- a/src/test/ref/examples/mega65/helloworld-mega65.log
+++ b/src/test/ref/examples/mega65/helloworld-mega65.log
@@ -1,6 +1,7 @@
 Fixing struct type size struct F018_DMAGIC to 17
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct F018_DMAGIC to 17
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct F018_DMAGIC to 17
diff --git a/src/test/ref/examples/nes/nes-conio.log b/src/test/ref/examples/nes/nes-conio.log
index 25be863ab..387f31599 100644
--- a/src/test/ref/examples/nes/nes-conio.log
+++ b/src/test/ref/examples/nes/nes-conio.log
@@ -4,6 +4,7 @@ Resolved forward reference x_scroll to x_scroll
 Resolved forward reference y_scroll to y_scroll
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Inlined call call disableVideoOutput 
diff --git a/src/test/ref/function-pointer-noarg-call-14.log b/src/test/ref/function-pointer-noarg-call-14.log
index 133bc5f31..76fe8935f 100644
--- a/src/test/ref/function-pointer-noarg-call-14.log
+++ b/src/test/ref/function-pointer-noarg-call-14.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Inlined call vicSelectGfxBank::$0 = call toDd00 vicSelectGfxBank::gfx 
diff --git a/src/test/ref/printf-1.log b/src/test/ref/printf-1.log
index 9b26edb37..9bb6f1101 100644
--- a/src/test/ref/printf-1.log
+++ b/src/test/ref/printf-1.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list main::$1 = call printf_string "cml" (struct printf_format_string){ $a, 0 } 
diff --git a/src/test/ref/printf-12.log b/src/test/ref/printf-12.log
index e7561da14..14b4651cc 100644
--- a/src/test/ref/printf-12.log
+++ b/src/test/ref/printf-12.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Setting inferred volatile on symbol affected by address-of call printf_uint (word)&main::c { 0, 0, 0, 0, 0, HEXADECIMAL } 
diff --git a/src/test/ref/printf-13.log b/src/test/ref/printf-13.log
index 8463158ff..eeeb43876 100644
--- a/src/test/ref/printf-13.log
+++ b/src/test/ref/printf-13.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_string "x" (struct printf_format_string){ 3, 0 } 
diff --git a/src/test/ref/printf-14.log b/src/test/ref/printf-14.log
index a255bbef8..b65d65330 100644
--- a/src/test/ref/printf-14.log
+++ b/src/test/ref/printf-14.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_uchar main::c (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/printf-15.log b/src/test/ref/printf-15.log
index 74314a084..cbfba84d3 100644
--- a/src/test/ref/printf-15.log
+++ b/src/test/ref/printf-15.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Inlined call vicSelectGfxBank::$0 = call toDd00 vicSelectGfxBank::gfx 
diff --git a/src/test/ref/printf-16.log b/src/test/ref/printf-16.log
index 9b05e1125..e2b828c3f 100644
--- a/src/test/ref/printf-16.log
+++ b/src/test/ref/printf-16.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_sint 1 (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/printf-2.log b/src/test/ref/printf-2.log
index 4479b2e0c..90b748874 100644
--- a/src/test/ref/printf-2.log
+++ b/src/test/ref/printf-2.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list main::$1 = call printf_schar -$4d (struct printf_format_number){ 6, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/printf-speed.log b/src/test/ref/printf-speed.log
index 040ad400d..eb13d3bd3 100644
--- a/src/test/ref/printf-speed.log
+++ b/src/test/ref/printf-speed.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_string main::$3 (struct printf_format_string){ 0, 0 } 
diff --git a/src/test/ref/prng-xorshift.log b/src/test/ref/prng-xorshift.log
index 586495276..2588798d5 100644
--- a/src/test/ref/prng-xorshift.log
+++ b/src/test/ref/prng-xorshift.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_uint main::rnd (struct printf_format_number){ 5, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/rand-1.log b/src/test/ref/rand-1.log
index ce4285cfd..5bbd775da 100644
--- a/src/test/ref/rand-1.log
+++ b/src/test/ref/rand-1.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_uint main::rnd (struct printf_format_number){ 5, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/stars-1.log b/src/test/ref/stars-1.log
index 9bd21a71b..7363137ef 100644
--- a/src/test/ref/stars-1.log
+++ b/src/test/ref/stars-1.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_uint (word)main::pStar (struct printf_format_number){ 0, 0, 0, 0, 0, HEXADECIMAL } 
diff --git a/src/test/ref/stars-2.log b/src/test/ref/stars-2.log
index 5ce27987c..b516ba62c 100644
--- a/src/test/ref/stars-2.log
+++ b/src/test/ref/stars-2.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_uchar (stars.star_x)[main::i] (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL } 
diff --git a/src/test/ref/stdlib-string-memchr-1.log b/src/test/ref/stdlib-string-memchr-1.log
index 34d5d0225..b29d61236 100644
--- a/src/test/ref/stdlib-string-memchr-1.log
+++ b/src/test/ref/stdlib-string-memchr-1.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type size struct printf_buffer_number to 12
+Fixing struct type size struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Fixing struct type SIZE_OF struct printf_buffer_number to 12
 Added struct type cast to parameter value list call printf_uchar assert_char::expect (struct printf_format_number){ 0, 0, 0, 0, 0, HEXADECIMAL } 
diff --git a/src/test/ref/struct-11.log b/src/test/ref/struct-11.log
index 30174da15..b0a3e090f 100644
--- a/src/test/ref/struct-11.log
+++ b/src/test/ref/struct-11.log
@@ -1,6 +1,8 @@
 Fixing struct type size struct Person to 65
 Fixing struct type size struct Person to 65
 Fixing struct type size struct Person to 65
+Fixing struct type size struct Person to 65
+Fixing struct type size struct Person to 65
 Fixing struct type SIZE_OF struct Person to 65
 Fixing struct type SIZE_OF struct Person to 65
 Inlined call call __init 
diff --git a/src/test/ref/struct-12.log b/src/test/ref/struct-12.log
index 8d2e76278..60e5e8e95 100644
--- a/src/test/ref/struct-12.log
+++ b/src/test/ref/struct-12.log
@@ -1,6 +1,8 @@
 Fixing struct type size struct Person to 65
 Fixing struct type size struct Person to 65
 Fixing struct type size struct Person to 65
+Fixing struct type size struct Person to 65
+Fixing struct type size struct Person to 65
 Fixing struct type SIZE_OF struct Person to 65
 Fixing struct type SIZE_OF struct Person to 65
 Inlined call call __init 
diff --git a/src/test/ref/struct-24.log b/src/test/ref/struct-24.log
index 08c122e92..92e4c1edb 100644
--- a/src/test/ref/struct-24.log
+++ b/src/test/ref/struct-24.log
@@ -1,4 +1,5 @@
 Fixing struct type size struct Point to 3
+Fixing struct type size struct Point to 3
 Fixing struct type SIZE_OF struct Point to 3
 Fixing struct type SIZE_OF struct Point to 3
 
diff --git a/src/test/ref/struct-26.log b/src/test/ref/struct-26.log
index a7368734f..6dcb2e00e 100644
--- a/src/test/ref/struct-26.log
+++ b/src/test/ref/struct-26.log
@@ -1,5 +1,6 @@
 Fixing struct type size struct Point to 3
 Fixing struct type size struct Point to 3
+Fixing struct type size struct Point to 3
 Fixing struct type SIZE_OF struct Point to 3
 Fixing struct type SIZE_OF struct Point to 3
 
diff --git a/src/test/ref/struct-27.log b/src/test/ref/struct-27.log
index 550789efe..76bcb0805 100644
--- a/src/test/ref/struct-27.log
+++ b/src/test/ref/struct-27.log
@@ -1,4 +1,5 @@
 Fixing struct type size struct Point to 4
+Fixing struct type size struct Point to 4
 Fixing struct type SIZE_OF struct Point to 4
 Fixing struct type SIZE_OF struct Point to 4
 
diff --git a/src/test/ref/struct-28.log b/src/test/ref/struct-28.log
index fb8fa1753..2ee6bafd4 100644
--- a/src/test/ref/struct-28.log
+++ b/src/test/ref/struct-28.log
@@ -1,4 +1,5 @@
 Fixing struct type size struct Point to 3
+Fixing struct type size struct Point to 3
 Fixing struct type SIZE_OF struct Point to 3
 Fixing struct type SIZE_OF struct Point to 3
 
diff --git a/src/test/ref/struct-29.log b/src/test/ref/struct-29.log
index b7e98d795..12aa20741 100644
--- a/src/test/ref/struct-29.log
+++ b/src/test/ref/struct-29.log
@@ -1,4 +1,5 @@
 Fixing struct type size struct Point to 3
+Fixing struct type size struct Point to 3
 Fixing struct type SIZE_OF struct Point to 3
 Fixing struct type SIZE_OF struct Point to 3
 
diff --git a/src/test/ref/struct-30.log b/src/test/ref/struct-30.log
index 4f725c0d2..6bb9b2e02 100644
--- a/src/test/ref/struct-30.log
+++ b/src/test/ref/struct-30.log
@@ -1,4 +1,5 @@
 Fixing struct type size struct Point to 4
+Fixing struct type size struct Point to 4
 Fixing struct type SIZE_OF struct Point to 4
 Fixing struct type SIZE_OF struct Point to 4
 
diff --git a/src/test/ref/struct-36.log b/src/test/ref/struct-36.log
index cc87bf2ef..50f39f108 100644
--- a/src/test/ref/struct-36.log
+++ b/src/test/ref/struct-36.log
@@ -1,4 +1,5 @@
 Fixing struct type size struct Point to 3
+Fixing struct type size struct Point to 3
 Fixing struct type SIZE_OF struct Point to 3
 Fixing struct type SIZE_OF struct Point to 3
 
diff --git a/src/test/ref/struct-43.log b/src/test/ref/struct-43.log
index 966a7408b..65742c115 100644
--- a/src/test/ref/struct-43.log
+++ b/src/test/ref/struct-43.log
@@ -1,4 +1,5 @@
 Fixing struct type size struct Point to 7
+Fixing struct type size struct Point to 7
 Fixing struct type SIZE_OF struct Point to 7
 Fixing struct type SIZE_OF struct Point to 7
 
diff --git a/src/test/ref/struct-ptr-23.log b/src/test/ref/struct-ptr-23.log
index 452d958f0..a0f054a3f 100644
--- a/src/test/ref/struct-ptr-23.log
+++ b/src/test/ref/struct-ptr-23.log
@@ -1,6 +1,8 @@
 Fixing struct type size struct Person to 5
 Fixing struct type size struct Person to 5
 Fixing struct type size struct Person to 5
+Fixing struct type size struct Person to 5
+Fixing struct type size struct Person to 5
 Fixing struct type SIZE_OF struct Person to 5
 Fixing struct type SIZE_OF struct Person to 5
 Inlined call call __init 
diff --git a/src/test/ref/struct-ptr-28.log b/src/test/ref/struct-ptr-28.log
index 500854ed8..f9e89c9d4 100644
--- a/src/test/ref/struct-ptr-28.log
+++ b/src/test/ref/struct-ptr-28.log
@@ -1,6 +1,8 @@
 Fixing struct type size struct Person to 17
 Fixing struct type size struct Person to 17
 Fixing struct type size struct Person to 17
+Fixing struct type size struct Person to 17
+Fixing struct type size struct Person to 17
 Fixing struct type SIZE_OF struct Person to 17
 Fixing struct type SIZE_OF struct Person to 17
 Setting struct to load/store in variable affected by address-of main::$0 = call print_person &main::jesper 
diff --git a/src/test/ref/struct-ptr-31.log b/src/test/ref/struct-ptr-31.log
index 2089f3b76..3ba97d343 100644
--- a/src/test/ref/struct-ptr-31.log
+++ b/src/test/ref/struct-ptr-31.log
@@ -1,5 +1,7 @@
 Fixing struct type size struct Person to 17
 Fixing struct type size struct Person to 17
+Fixing struct type size struct Person to 17
+Fixing struct type size struct Person to 17
 Fixing struct type SIZE_OF struct Person to 17
 Fixing struct type SIZE_OF struct Person to 17
 Fixing constant pointer addition persons+1
diff --git a/src/test/ref/struct-ptr-33.log b/src/test/ref/struct-ptr-33.log
index a05719923..84c44496b 100644
--- a/src/test/ref/struct-ptr-33.log
+++ b/src/test/ref/struct-ptr-33.log
@@ -1,5 +1,7 @@
 Fixing struct type size struct Person to 16
 Fixing struct type size struct Person to 16
+Fixing struct type size struct Person to 16
+Fixing struct type size struct Person to 16
 Fixing struct type SIZE_OF struct Person to 16
 Fixing struct type SIZE_OF struct Person to 16
 
diff --git a/src/test/ref/struct-ptr-34.log b/src/test/ref/struct-ptr-34.log
index 17994898a..06a94ed9c 100644
--- a/src/test/ref/struct-ptr-34.log
+++ b/src/test/ref/struct-ptr-34.log
@@ -1,6 +1,8 @@
 Fixing struct type size struct Person to 17
 Fixing struct type size struct Person to 17
 Fixing struct type size struct Person to 17
+Fixing struct type size struct Person to 17
+Fixing struct type size struct Person to 17
 Fixing struct type SIZE_OF struct Person to 17
 Fixing struct type SIZE_OF struct Person to 17
 Inlined call call __init 
diff --git a/src/test/ref/struct-ptr-35.log b/src/test/ref/struct-ptr-35.log
index 3913b523a..76cfbfe13 100644
--- a/src/test/ref/struct-ptr-35.log
+++ b/src/test/ref/struct-ptr-35.log
@@ -2,6 +2,8 @@ Fixing struct type size struct Tile to 25
 Fixing struct type size struct Tile to 25
 Fixing struct type size struct Tile to 25
 Fixing struct type size struct Tile to 25
+Fixing struct type size struct Tile to 25
+Fixing struct type size struct Tile to 25
 Fixing struct type SIZE_OF struct Tile to 25
 Fixing struct type SIZE_OF struct Tile to 25
 Setting struct to load/store in variable affected by address-of S1