;;-*-Lisp-*-
(in-package goal)
(bundles "ENGINE.CGO" "GAME.CGO")
(require "engine/dma/dma-buffer.gc")
(require "engine/gfx/shrub/shrubbery-h.gc")
(require "engine/math/matrix-h.gc")
(require "engine/gfx/math-camera-h.gc")

;; DECOMP BEGINS

(define *instance-shrub-work*
  (new 'static
       'instance-shrub-work
       :matrix-tmpl
       (new 'static
            'inline-array
            qword
            20
            (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c050143))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050148))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05014d))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050152))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050157))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05015c))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050161))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050166))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05016b))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c050170))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c050176))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05017b))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050180))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050185))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05018a))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05018f))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050194))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050199))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05019e))
            (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c0501a3)))
       :count-tmpl
       (new 'static
            'inline-array
            vector4w
            20
            (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 10)
            (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 1)
            (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 2)
            (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 3)
            (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 4)
            (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 5)
            (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 6)
            (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 7)
            (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 8)
            (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 9)
            (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 10)
            (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 1)
            (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 2)
            (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 3)
            (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 4)
            (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 5)
            (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 6)
            (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 7)
            (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 8)
            (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 9))
       :mscalf-tmpl
       (new 'static
            'dma-packet
            :dma
            (new 'static 'dma-tag :id (dma-tag-id next))
            :vif0
            (new 'static 'vif-tag :cmd (vif-cmd mscalf) :msk #x1))
       :mscalf-ret-tmpl
       (new 'static
            'dma-packet
            :dma
            (new 'static 'dma-tag :id (dma-tag-id ret))
            :vif0
            (new 'static 'vif-tag :cmd (vif-cmd mscalf) :msk #x1))
       :adgif-tmpl
       (new 'static
            'dma-gif-packet
            :dma-vif
            (new 'static
                 'dma-packet
                 :dma
                 (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id next))
                 :vif1
                 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1))
            :gif
            (new 'static 'array uint64 2 #x1000000000008005 #xe))
       :billboard-tmpl
       (new 'static
            'dma-gif-packet
            :dma-vif
            (new 'static
                 'dma-packet
                 :dma
                 (new 'static 'dma-tag :qwc #xd :id (dma-tag-id next))
                 :vif1
                 (new 'static 'vif-tag :imm #xd :cmd (vif-cmd direct) :msk #x1))
            :gif
            (new 'static 'array uint64 2 #x303e400000008004 #x412))
       :shrub-near-packets
       (new 'static
            'inline-array
            shrub-near-packet
            6
            (new 'static
                 'shrub-near-packet
                 :matrix-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x345 :num #x6 :cmd (vif-cmd unpack-v4-32)))
                 :header-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x34c :cmd (vif-cmd unpack-v4-32)))
                 :stq-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif0
                      (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x9 :cmd (vif-cmd unpack-v2-16)))
                 :color-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x400a :cmd (vif-cmd unpack-v3-8)))
                 :vertex-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #xb :cmd (vif-cmd unpack-v3-16)))
                 :mscal-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1))
                 :init-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x38a :num #x1 :cmd (vif-cmd unpack-v4-32)))
                 :init-data
                 (new 'static 'array uint32 8 #x0 #x0 #x345 #x117 #x0 #x0 #x0 #x1500000c))
            (new 'static
                 'shrub-near-packet
                 :matrix-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x363 :num #x6 :cmd (vif-cmd unpack-v4-32)))
                 :header-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x36a :cmd (vif-cmd unpack-v4-32)))
                 :stq-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif0
                      (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x120 :cmd (vif-cmd unpack-v2-16)))
                 :color-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x4121 :cmd (vif-cmd unpack-v3-8)))
                 :vertex-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x122 :cmd (vif-cmd unpack-v3-16)))
                 :mscal-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1))
                 :init-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x38a :num #x1 :cmd (vif-cmd unpack-v4-32)))
                 :init-data
                 (new 'static 'array uint32 8 #x0 #x0 #x363 #x22e #x0 #x0 #x0 #x1500000c))
            (new 'static
                 'shrub-near-packet
                 :matrix-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x345 :num #x6 :cmd (vif-cmd unpack-v4-32)))
                 :header-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x34c :cmd (vif-cmd unpack-v4-32)))
                 :stq-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif0
                      (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x237 :cmd (vif-cmd unpack-v2-16)))
                 :color-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x4238 :cmd (vif-cmd unpack-v3-8)))
                 :vertex-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x239 :cmd (vif-cmd unpack-v3-16)))
                 :mscal-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1))
                 :init-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x38a :num #x1 :cmd (vif-cmd unpack-v4-32)))
                 :init-data
                 (new 'static 'array uint32 8 #x0 #x0 #x345 #x0 #x0 #x0 #x0 #x1500000c))
            (new 'static
                 'shrub-near-packet
                 :matrix-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x363 :num #x6 :cmd (vif-cmd unpack-v4-32)))
                 :header-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x36a :cmd (vif-cmd unpack-v4-32)))
                 :stq-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif0
                      (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x9 :cmd (vif-cmd unpack-v2-16)))
                 :color-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x400a :cmd (vif-cmd unpack-v3-8)))
                 :vertex-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #xb :cmd (vif-cmd unpack-v3-16)))
                 :mscal-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1))
                 :init-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x38a :num #x1 :cmd (vif-cmd unpack-v4-32)))
                 :init-data
                 (new 'static 'array uint32 8 #x0 #x0 #x363 #x117 #x0 #x0 #x0 #x1500000c))
            (new 'static
                 'shrub-near-packet
                 :matrix-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x345 :num #x6 :cmd (vif-cmd unpack-v4-32)))
                 :header-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x34c :cmd (vif-cmd unpack-v4-32)))
                 :stq-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif0
                      (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x120 :cmd (vif-cmd unpack-v2-16)))
                 :color-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x4121 :cmd (vif-cmd unpack-v3-8)))
                 :vertex-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x122 :cmd (vif-cmd unpack-v3-16)))
                 :mscal-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1))
                 :init-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x38a :num #x1 :cmd (vif-cmd unpack-v4-32)))
                 :init-data
                 (new 'static 'array uint32 8 #x0 #x0 #x345 #x22e #x0 #x0 #x0 #x1500000c))
            (new 'static
                 'shrub-near-packet
                 :matrix-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x363 :num #x6 :cmd (vif-cmd unpack-v4-32)))
                 :header-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x36a :cmd (vif-cmd unpack-v4-32)))
                 :stq-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif0
                      (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x237 :cmd (vif-cmd unpack-v2-16)))
                 :color-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x4238 :cmd (vif-cmd unpack-v3-8)))
                 :vertex-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id ref))
                      :vif1
                      (new 'static 'vif-tag :imm #x239 :cmd (vif-cmd unpack-v3-16)))
                 :mscal-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1))
                 :init-tmpl
                 (new 'static
                      'dma-packet
                      :dma
                      (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next))
                      :vif0
                      (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
                      :vif1
                      (new 'static 'vif-tag :imm #x38a :num #x1 :cmd (vif-cmd unpack-v4-32)))
                 :init-data
                 (new 'static 'array uint32 8 #x0 #x0 #x363 #x0 #x0 #x0 #x0 #x1500000c)))
       :dma-ref
       (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id ref)))
       :dma-end
       (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id end)))
       :wind-const
       (new 'static 'vector :x 0.5 :y 100.0 :z 0.0166 :w -1.0)
       :constants
       (new 'static 'vector :x 128.0 :y 1.0)
       :color-constant
       (new 'static 'vector4w :x #x47000000 :y #x47000000 :z #x47000000)
       :start-bank
       (new 'static 'array uint8 20 #x0 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0)))

(set! (-> *instance-shrub-work* mscalf-tmpl vif0 imm) 103)

(set! (-> *instance-shrub-work* mscalf-ret-tmpl vif0 imm) 103)

(defun upload-generic-shrub ((arg0 dma-buffer) (arg1 generic-shrub-fragment) (arg2 int) (arg3 int))
  (let* ((v1-0 arg0)
         (t0-0 (the-as object (-> v1-0 base))))
    (set! (-> (the-as dma-packet t0-0) dma) (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)))
    (set! (-> (the-as dma-packet t0-0) vif0) (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)))
    (set! (-> (the-as dma-packet t0-0) vif1)
          (new 'static 'vif-tag :num #x6 :cmd (vif-cmd unpack-v4-32) :imm (shr (shl arg2 54) 54)))
    (set! (-> v1-0 base) (&+ (the-as pointer t0-0) 16)))
  (let* ((v1-1 (the-as matrix (-> arg0 base)))
         (t3-0 (-> *math-camera* camera-temp))
         (t0-3 (-> t3-0 vector 0 quad))
         (t1-4 (-> t3-0 vector 1 quad))
         (t2-4 (-> t3-0 vector 2 quad))
         (t3-1 (-> t3-0 vector 3 quad)))
    (set! (-> v1-1 vector 0 quad) t0-3)
    (set! (-> v1-1 vector 1 quad) t1-4)
    (set! (-> v1-1 vector 2 quad) t2-4)
    (set! (-> v1-1 vector 3 quad) t3-1))
  (&+! (-> arg0 base) 64)
  (let* ((v1-4 arg0)
         (t0-4 (the-as object (-> v1-4 base))))
    (set! (-> (the-as vector4w-2 t0-4) vector 0 x) #x3f800000)
    (set! (-> (the-as vector4w-2 t0-4) vector 0 y) #x3f800000)
    (set! (-> (the-as vector4w-2 t0-4) vector 0 z) #x3f800000)
    (set! (-> (the-as vector4w-2 t0-4) vector 0 w) 128)
    (set! (-> (the-as vector4w-2 t0-4) vector 1 x) (the-as int (-> arg1 vtx-cnt)))
    (set! (-> (the-as vector4w-2 t0-4) vector 1 y) 0)
    (set! (-> (the-as vector4w-2 t0-4) vector 1 z) 0)
    (set! (-> (the-as vector4w-2 t0-4) vector 1 w) 0)
    (set! (-> v1-4 base) (&+ (the-as pointer t0-4) 32)))
  (let* ((v1-5 arg0)
         (t0-6 (the-as object (-> v1-5 base))))
    (set! (-> (the-as dma-packet t0-6) dma)
          (new 'static 'dma-tag :id (dma-tag-id ref) :addr (-> arg1 cnt) :qwc (-> arg1 cnt-qwc)))
    (set! (-> (the-as dma-packet t0-6) vif0) (new 'static 'vif-tag))
    (set! (-> (the-as dma-packet t0-6) vif1)
          (new 'static 'vif-tag :cmd (vif-cmd unpack-v4-32) :imm (shr (shl (+ arg2 6) 54) 54) :num (-> arg1 cnt-qwc)))
    (set! (-> v1-5 base) (&+ (the-as pointer t0-6) 16)))
  (let* ((v1-6 arg0)
         (a2-8 (the-as object (-> v1-6 base))))
    (set! (-> (the-as dma-packet a2-8) dma)
          (new 'static 'dma-tag :id (dma-tag-id ref) :addr (-> arg1 stq) :qwc (-> arg1 stq-qwc)))
    (set! (-> (the-as dma-packet a2-8) vif0) (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)))
    (set! (-> (the-as dma-packet a2-8) vif1)
          (new 'static 'vif-tag :cmd (vif-cmd unpack-v2-16) :imm (shr (shl arg3 54) 54) :num (-> arg1 vtx-cnt)))
    (set! (-> v1-6 base) (&+ (the-as pointer a2-8) 16)))
  (let* ((v1-7 arg0)
         (a2-10 (the-as object (-> v1-7 base))))
    (set! (-> (the-as dma-packet a2-10) dma)
          (new 'static 'dma-tag :id (dma-tag-id ref) :addr (-> arg1 col) :qwc (-> arg1 col-qwc)))
    (set! (-> (the-as dma-packet a2-10) vif0) (new 'static 'vif-tag))
    (set! (-> (the-as dma-packet a2-10) vif1)
          (new 'static 'vif-tag :cmd (vif-cmd unpack-v3-8) :imm (shr (shl (+ arg3 1) 54) 54) :num (-> arg1 vtx-cnt)))
    (set! (-> v1-7 base) (&+ (the-as pointer a2-10) 16)))
  (let* ((v1-8 arg0)
         (a2-12 (the-as object (-> v1-8 base))))
    (set! (-> (the-as dma-packet a2-12) dma)
          (new 'static 'dma-tag :id (dma-tag-id ref) :addr (-> arg1 vtx) :qwc (-> arg1 vtx-qwc)))
    (set! (-> (the-as dma-packet a2-12) vif0) (new 'static 'vif-tag))
    (set! (-> (the-as dma-packet a2-12) vif1)
          (new 'static 'vif-tag :cmd (vif-cmd unpack-v3-16) :imm (shr (shl (+ arg3 2) 54) 54) :num (-> arg1 vtx-cnt)))
    (set! (-> v1-8 base) (&+ (the-as pointer a2-12) 16)))
  (let* ((v1-9 arg0)
         (a1-7 (the-as object (-> v1-9 base))))
    (set! (-> (the-as dma-packet a1-7) dma) (new 'static 'dma-tag :id (dma-tag-id cnt)))
    (set! (-> (the-as dma-packet a1-7) vif0) (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)))
    (set! (-> (the-as dma-packet a1-7) vif1) (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1))
    (set! (-> v1-9 base) (&+ (the-as pointer a1-7) 16)))
  arg0)
