Fixing struct type size struct EUI48 to 6
Fixing struct type size union IPV4 to 4
Fixing struct type size union UINT32_T to 4
Fixing struct type size struct IP_HDR to 20
Fixing struct type size struct TCP_HDR to 20
Fixing struct type SIZE_OF union UINT32_T to 4
Fixing struct type SIZE_OF union IPV4 to 4
Fixing struct type SIZE_OF struct EUI48 to 6
Fixing struct type size struct IP to 42
Fixing struct type size union T to 20
Fixing struct type size union HEADER to 42
Fixing struct type size union HEADER to 42
Fixing struct type SIZE_OF union UINT32_T to 4
Fixing struct type SIZE_OF union IPV4 to 4
Fixing struct type SIZE_OF struct EUI48 to 6
Fixing struct type size struct IP to 40
Fixing struct type size union HEADER to 40
Fixing struct type size union HEADER to 40
Fixing struct type SIZE_OF union UINT32_T to 4
Fixing struct type SIZE_OF union IPV4 to 4
Fixing struct type SIZE_OF struct EUI48 to 6
Fixing struct type SIZE_OF union UINT32_T to 4
Fixing struct type SIZE_OF union IPV4 to 4
Fixing struct type SIZE_OF struct EUI48 to 6

CONTROL FLOW GRAPH SSA

void main()
main: scope:[main]  from __start
  ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = $ff
  ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = $ff
  main::$0 = 0 * SIZEOF_UNION_HEADER
  SCREEN[main::$0] = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER)
  *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = $dddddddd
  *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee
  main::$1 = 1 * SIZEOF_UNION_HEADER
  SCREEN[main::$1] = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER)
  to:main::@return
main::@return: scope:[main]  from main
  return 
  to:@return

void __start()
__start: scope:[__start]  from
  call main
  to:__start::@1
__start::@1: scope:[__start]  from __start
  to:__start::@return
__start::@return: scope:[__start]  from __start::@1
  return 
  to:@return

SYMBOL TABLE SSA
__constant char OFFSET_STRUCT_ARP_HDR_DEST_IP = $18
__constant char OFFSET_STRUCT_ARP_HDR_ORIG_HW = 8
__constant char OFFSET_STRUCT_EUI48_B = 0
__constant char OFFSET_STRUCT_IP_HDR_SOURCE = $c
__constant char OFFSET_STRUCT_IP_IP = 0
__constant char OFFSET_STRUCT_IP_T = $14
__constant char OFFSET_STRUCT_TCP_HDR_CHECKSUM = $10
__constant char OFFSET_UNION_HEADER_ARP = 0
__constant char OFFSET_UNION_HEADER_IP = 0
__constant char OFFSET_UNION_IPV4_B = 0
__constant char OFFSET_UNION_IPV4_D = 0
__constant char OFFSET_UNION_T_TCP = 0
__constant union HEADER * const SCREEN = (union HEADER *)$400
__constant char SIZEOF_UNION_HEADER = $28
void __start()
__loadstore union HEADER header = {}
void main()
number main::$0
number main::$1

Adding number conversion cast (unumber) $ff in ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = $ff
Adding number conversion cast (unumber) 5 in ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = ((unumber)) $ff
Adding number conversion cast (unumber) $ff in ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = $ff
Adding number conversion cast (unumber) 3 in ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = ((unumber)) $ff
Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_UNION_HEADER
Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_UNION_HEADER
Adding number conversion cast (unumber) $dddddddd in *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = $dddddddd
Adding number conversion cast (unumber) $eeee in *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee
Adding number conversion cast (unumber) 1 in main::$1 = 1 * SIZEOF_UNION_HEADER
Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)1 * SIZEOF_UNION_HEADER
Successful SSA optimization PassNAddNumberTypeConversions
Inlining cast ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[(unumber)5] = (unumber)$ff
Inlining cast ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[(unumber)3] = (unumber)$ff
Inlining cast *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = (unumber)$dddddddd
Inlining cast *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = (unumber)$eeee
Successful SSA optimization Pass2InlineCast
Simplifying constant pointer cast (union HEADER *) 1024
Simplifying constant integer cast $ff
Simplifying constant integer cast 5
Simplifying constant integer cast $ff
Simplifying constant integer cast 3
Simplifying constant integer cast 0
Simplifying constant integer cast $dddddddd
Simplifying constant integer cast $eeee
Simplifying constant integer cast 1
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (char) $ff
Finalized unsigned number type (char) 5
Finalized unsigned number type (char) $ff
Finalized unsigned number type (char) 3
Finalized unsigned number type (char) 0
Finalized unsigned number type (unsigned long) $dddddddd
Finalized unsigned number type (unsigned int) $eeee
Finalized unsigned number type (char) 1
Successful SSA optimization PassNFinalizeNumberTypeConversions
Inferred type updated to char in main::$0 = 0 * SIZEOF_UNION_HEADER
Inferred type updated to char in main::$1 = 1 * SIZEOF_UNION_HEADER
Constant right-side identified [2] main::$0 = 0 * SIZEOF_UNION_HEADER
Constant right-side identified [6] main::$1 = 1 * SIZEOF_UNION_HEADER
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::$0 = 0*SIZEOF_UNION_HEADER
Constant main::$1 = 1*SIZEOF_UNION_HEADER
Successful SSA optimization Pass2ConstantIdentification
Simplifying constant evaluating to zero 0*SIZEOF_UNION_HEADER in 
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero (char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW in [0] ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = $ff
Simplifying expression containing zero (struct ARP_HDR *)&header in [0] ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW)[5] = $ff
Simplifying expression containing zero (char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP in [1] ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = $ff
Simplifying expression containing zero (struct ARP_HDR *)&header in [1] ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP)[3] = $ff
Simplifying expression containing zero SCREEN in [3] SCREEN[main::$0] = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER)
Simplifying expression containing zero (unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE in [4] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = $dddddddd
Simplifying expression containing zero (struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP in [4] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd
Simplifying expression containing zero (struct IP *)&header in [4] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd
Simplifying expression containing zero (struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T in [5] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee
Simplifying expression containing zero (struct IP *)&header in [5] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused constant main::$0
Eliminating unused constant OFFSET_UNION_HEADER_ARP
Eliminating unused constant OFFSET_STRUCT_EUI48_B
Eliminating unused constant OFFSET_UNION_IPV4_B
Eliminating unused constant OFFSET_UNION_HEADER_IP
Eliminating unused constant OFFSET_STRUCT_IP_IP
Eliminating unused constant OFFSET_UNION_IPV4_D
Eliminating unused constant OFFSET_UNION_T_TCP
Successful SSA optimization PassNEliminateUnusedVars
Removing unused procedure __start
Removing unused procedure block __start
Removing unused procedure block __start::@1
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
Constant inlined main::$1 = 1*SIZEOF_UNION_HEADER
Successful SSA optimization Pass2ConstantInlining
Consolidated array index constant in *((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5)
Consolidated array index constant in *((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3)
Consolidated array index constant in *(SCREEN+1*SIZEOF_UNION_HEADER)
Successful SSA optimization Pass2ConstantAdditionElimination
Finalized unsigned number type (char) 2
Finalized unsigned number type (char) 2
Finalized unsigned number type (char) 4
Finalized unsigned number type (char) 4
Finalized unsigned number type (char) 4
Finalized unsigned number type (char) 4
Finalized unsigned number type (char) 6
Finalized unsigned number type (char) 6
Finalized unsigned number type (char) $28
Finalized unsigned number type (char) $28
Successful SSA optimization PassNFinalizeNumberTypeConversions
CALL GRAPH

Created 0 initial phi equivalence classes
Coalesced down to 0 phi equivalence classes

FINAL CONTROL FLOW GRAPH

void main()
main: scope:[main]  from
  [0] *((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff
  [1] *((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff
  [2] *SCREEN = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER)
  [3] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd
  [4] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee
  [5] *(SCREEN+1*SIZEOF_UNION_HEADER) = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER)
  to:main::@return
main::@return: scope:[main]  from main
  [6] return 
  to:@return


VARIABLE REGISTER WEIGHTS
__loadstore union HEADER header = {}
void main()

Initial phi equivalence classes
Added variable header to live range equivalence class [ header ]
Complete equivalence classes
[ header ]
Allocated mem[40] [ header ]
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [0] *((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff [ header ] (  [ header ] { }  ) always clobbers reg byte a 
Statement [1] *((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff [ header ] (  [ header ] { }  ) always clobbers reg byte a 
Statement [2] *SCREEN = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) [ header ] (  [ header ] { }  ) always clobbers reg byte a reg byte y 
Statement [3] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd [ header ] (  [ header ] { }  ) always clobbers reg byte a 
Statement [4] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee [ header ] (  [ header ] { }  ) always clobbers reg byte a 
Statement [5] *(SCREEN+1*SIZEOF_UNION_HEADER) = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) [ ] (  [ ] { }  ) always clobbers reg byte a reg byte y 
Potential registers mem[40] [ header ] : mem[40] , 

REGISTER UPLIFT SCOPES
Uplift Scope [UINT32_T] 
Uplift Scope [IPV4] 
Uplift Scope [EUI48] 
Uplift Scope [ARP_HDR] 
Uplift Scope [IP_HDR] 
Uplift Scope [ICMP_HDR] 
Uplift Scope [TCP_HDR] 
Uplift Scope [UDP_HDR] 
Uplift Scope [HEADER] 
Uplift Scope [IP] 
Uplift Scope [T] 
Uplift Scope [main] 
Uplift Scope [] 0: mem[40] [ header ] 

Uplifting [UINT32_T] best 89 combination 
Uplifting [IPV4] best 89 combination 
Uplifting [EUI48] best 89 combination 
Uplifting [ARP_HDR] best 89 combination 
Uplifting [IP_HDR] best 89 combination 
Uplifting [ICMP_HDR] best 89 combination 
Uplifting [TCP_HDR] best 89 combination 
Uplifting [UDP_HDR] best 89 combination 
Uplifting [HEADER] best 89 combination 
Uplifting [IP] best 89 combination 
Uplifting [T] best 89 combination 
Uplifting [main] best 89 combination 
Uplifting [] best 89 combination mem[40] [ header ] 

ASSEMBLER BEFORE OPTIMIZATION
  // File Comments
  // Upstart
  // Commodore 64 PRG executable file
.file [name="weeip-ipv4.prg", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=$80d]
.segmentdef Data [startAfter="Code"]
.segment Basic
:BasicUpstart(main)
  // Global Constants & labels
  .const SIZEOF_UNION_HEADER = $28
  .const OFFSET_STRUCT_ARP_HDR_ORIG_HW = 8
  .const OFFSET_STRUCT_ARP_HDR_DEST_IP = $18
  .const OFFSET_STRUCT_IP_HDR_SOURCE = $c
  .const OFFSET_STRUCT_IP_T = $14
  .const OFFSET_STRUCT_TCP_HDR_CHECKSUM = $10
  .label SCREEN = $400
.segment Code
  // main
main: {
    // [0] *((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff -- _deref_pbuc1=vbuc2 
    lda #$ff
    sta header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5
    // [1] *((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff -- _deref_pbuc1=vbuc2 
    lda #$ff
    sta header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3
    // [2] *SCREEN = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 
    ldy #SIZEOF_UNION_HEADER
  !:
    lda header-1,y
    sta SCREEN-1,y
    dey
    bne !-
    // [3] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd -- _deref_pduc1=vduc2 
    lda #<$dddddddd
    sta header+OFFSET_STRUCT_IP_HDR_SOURCE
    lda #>$dddddddd
    sta header+OFFSET_STRUCT_IP_HDR_SOURCE+1
    lda #<$dddddddd>>$10
    sta header+OFFSET_STRUCT_IP_HDR_SOURCE+2
    lda #>$dddddddd>>$10
    sta header+OFFSET_STRUCT_IP_HDR_SOURCE+3
    // [4] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee -- _deref_pwuc1=vwuc2 
    lda #<$eeee
    sta header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM
    lda #>$eeee
    sta header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM+1
    // [5] *(SCREEN+1*SIZEOF_UNION_HEADER) = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 
    ldy #SIZEOF_UNION_HEADER
  !:
    lda header-1,y
    sta SCREEN+1*SIZEOF_UNION_HEADER-1,y
    dey
    bne !-
    jmp __breturn
    // main::@return
  __breturn:
    // [6] return 
    rts
}
  // File Data
.segment Data
  header: .fill SIZEOF_UNION_HEADER, 0

ASSEMBLER OPTIMIZATIONS
Removing instruction jmp __breturn
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction lda #$ff
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination

FINAL SYMBOL TABLE
__constant char OFFSET_STRUCT_ARP_HDR_DEST_IP = $18
__constant char OFFSET_STRUCT_ARP_HDR_ORIG_HW = 8
__constant char OFFSET_STRUCT_IP_HDR_SOURCE = $c
__constant char OFFSET_STRUCT_IP_T = $14
__constant char OFFSET_STRUCT_TCP_HDR_CHECKSUM = $10
__constant union HEADER * const SCREEN = (union HEADER *) 1024
__constant char SIZEOF_UNION_HEADER = $28
__loadstore union HEADER header = {} // mem[40]
void main()

mem[40] [ header ]


FINAL ASSEMBLER
Score: 84

  // File Comments
  // Upstart
  // Commodore 64 PRG executable file
.file [name="weeip-ipv4.prg", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=$80d]
.segmentdef Data [startAfter="Code"]
.segment Basic
:BasicUpstart(main)
  // Global Constants & labels
  .const SIZEOF_UNION_HEADER = $28
  .const OFFSET_STRUCT_ARP_HDR_ORIG_HW = 8
  .const OFFSET_STRUCT_ARP_HDR_DEST_IP = $18
  .const OFFSET_STRUCT_IP_HDR_SOURCE = $c
  .const OFFSET_STRUCT_IP_T = $14
  .const OFFSET_STRUCT_TCP_HDR_CHECKSUM = $10
  .label SCREEN = $400
.segment Code
  // main
main: {
    // header.arp.orig_hw.b[5] = 0xff
    // [0] *((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff -- _deref_pbuc1=vbuc2 
    lda #$ff
    sta header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5
    // header.arp.dest_ip.b[3] = 0xff
    // [1] *((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff -- _deref_pbuc1=vbuc2 
    sta header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3
    // SCREEN[0] = header
    // [2] *SCREEN = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 
    ldy #SIZEOF_UNION_HEADER
  !:
    lda header-1,y
    sta SCREEN-1,y
    dey
    bne !-
    // header.ip.ip.source.d = 0xdddddddd
    // [3] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd -- _deref_pduc1=vduc2 
    lda #<$dddddddd
    sta header+OFFSET_STRUCT_IP_HDR_SOURCE
    lda #>$dddddddd
    sta header+OFFSET_STRUCT_IP_HDR_SOURCE+1
    lda #<$dddddddd>>$10
    sta header+OFFSET_STRUCT_IP_HDR_SOURCE+2
    lda #>$dddddddd>>$10
    sta header+OFFSET_STRUCT_IP_HDR_SOURCE+3
    // header.ip.t.tcp.checksum = 0xeeee
    // [4] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee -- _deref_pwuc1=vwuc2 
    lda #<$eeee
    sta header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM
    lda #>$eeee
    sta header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM+1
    // SCREEN[1] = header
    // [5] *(SCREEN+1*SIZEOF_UNION_HEADER) = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 
    ldy #SIZEOF_UNION_HEADER
  !:
    lda header-1,y
    sta SCREEN+1*SIZEOF_UNION_HEADER-1,y
    dey
    bne !-
    // main::@return
    // }
    // [6] return 
    rts
}
  // File Data
.segment Data
  header: .fill SIZEOF_UNION_HEADER, 0

