diff --git a/decompiler/VuDisasm/VuDisassembler.cpp b/decompiler/VuDisasm/VuDisassembler.cpp index 0d72667e36..c330465ad0 100644 --- a/decompiler/VuDisasm/VuDisassembler.cpp +++ b/decompiler/VuDisasm/VuDisassembler.cpp @@ -86,9 +86,9 @@ VuDisassembler::VuDisassembler(VuKind kind) : m_kind(kind) { m_upper_op6_table[0b011110].set(VuInstrK::MULi); // 30 m_upper_op6_table[0b011111].set(VuInstrK::MINIi); // 31 - m_upper_op6_table[0b100000].set(VuInstrK::ADDq); // 32 - // m_upper_op6_table[0b100001].set(VuInstrK::MADDq); // 33 - m_upper_op6_table[0b100010].set(VuInstrK::ADDi); // 34 + m_upper_op6_table[0b100000].set(VuInstrK::ADDq); // 32 + m_upper_op6_table[0b100001].set(VuInstrK::MADDq); // 33 + m_upper_op6_table[0b100010].set(VuInstrK::ADDi); // 34 // m_upper_op6_table[0b100011].set(VuInstrK::MADDi); // 35 // m_upper_op6_table[0b100100].set(VuInstrK::SUBq); // 36 // m_upper_op6_table[0b100101].set(VuInstrK::MSUBq); // 37 @@ -143,6 +143,7 @@ VuDisassembler::VuDisassembler(VuKind kind) : m_kind(kind) { add_op(VuInstrK::ADDA, "adda").iemdt().dst_mask().dst_acc().src_vfs().src_vft(); add_op(VuInstrK::MADD, "madd").iemdt().dst_mask().dss_fd_fs_ft(); add_op(VuInstrK::ADDq, "addq").iemdt().dst_mask().vft_zero().dst_vfd().src_vfs().src_q(); + add_op(VuInstrK::MADDq, "madd").iemdt().dst_mask().vft_zero().dst_vfd().src_vfs().src_q(); add_op(VuInstrK::MULi, "muli").iemdt().dst_mask().vft_zero().dst_vfd().src_vfs().src_i(); add_op(VuInstrK::ADDi, "addi").iemdt().dst_mask().vft_zero().dst_vfd().src_vfs().src_i(); add_op(VuInstrK::MULAq, "mula").iemdt().dst_mask().dst_acc().vft_zero().src_vfs().src_q(); diff --git a/decompiler/VuDisasm/VuInstruction.h b/decompiler/VuDisasm/VuInstruction.h index db470777ea..23849b7b7f 100644 --- a/decompiler/VuDisasm/VuInstruction.h +++ b/decompiler/VuDisasm/VuInstruction.h @@ -37,7 +37,7 @@ enum class VuInstrK { MULAbc, MADD, // MADDi, - // MADDq, + MADDq, MADDbc, MADDA, // MADDAi, // 30 diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index 60809a1e6d..d744269502 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -4263,13 +4263,13 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (deftype display-frame (basic) - ((buffer dma-buffer 11 :offset-assert 4) ;; guessed by decompiler - (calc-buf dma-buffer :offset 8) - (vu1-buf dma-buffer :offset 8) - (debug-buf dma-buffer :offset 36) - (global-buf dma-buffer :offset 40) - (bucket-group dma-bucket :offset 44) ;; (inline-array dma-bucket) - (profile-array profile-array :inline :offset-assert 48) + ((buffer dma-buffer 11 :offset-assert 4) ;; guessed by decompiler + (calc-buf dma-buffer :offset 8) + (vu1-buf dma-buffer :offset 8) + (debug-buf dma-buffer :offset 36) + (global-buf dma-buffer :offset 40) + (bucket-group (inline-array dma-bucket) :offset 44) + (profile-array profile-array :inline :offset-assert 48) (start-time time-frame :offset-assert 56) (run-time time-frame :offset-assert 64) ;; int64 ) @@ -10584,12 +10584,12 @@ ) (deftype emerc-vu1-low-mem (structure) - ((tri-strip-gif qword :inline :offset-assert 0) - (ad-gif qword :inline :offset-assert 16) - (hvdf-offset vector :inline :offset-assert 32) - (perspective vector 4 :inline :offset-assert 48) - (fog vector :inline :offset-assert 112) - (unperspect vector :inline :offset-assert 128) + ((tri-strip-gif gs-gif-tag :inline :offset-assert 0) + (ad-gif gs-gif-tag :inline :offset-assert 16) + (hvdf-offset vector :inline :offset-assert 32) + (perspective vector 4 :inline :offset-assert 48) + (fog vector :inline :offset-assert 112) + (unperspect vector :inline :offset-assert 128) ) :method-count-assert 9 :size-assert #x90 @@ -21774,7 +21774,7 @@ ;; emerc-vu1 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern emerc-vu1-block object) +(define-extern emerc-vu1-block vu-function) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; merc-blend-shape ;; @@ -21901,7 +21901,7 @@ ;; (define-extern merc-stats-display function) ;; (function merc-ctrl none) (define-extern merc-stats (function none)) ;; (define-extern merc-edge-stats function) ;; (function none) -;; (define-extern merc-vu1-add-vu-function function) ;; (function dma-packet vu-function int dma-gif-packet) +(define-extern merc-vu1-add-vu-function (function dma-packet vu-function int dma-gif-packet)) ;; (define-extern merc-vu1-initialize-chain function) ;; (function dma-gif-packet dma-packet) ;; (define-extern merc-vu1-init-buffer function) ;; (function bucket-id gs-test int none) ;; (define-extern merc-vu1-init-buffers function) ;; (function none) @@ -21910,9 +21910,9 @@ ;; emerc ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern emerc-vu1-initialize-chain function) -;; (define-extern emerc-vu1-init-buffer function) -;; (define-extern emerc-vu1-init-buffers function) +(define-extern emerc-vu1-initialize-chain (function dma-gif-packet dma-packet)) +(define-extern emerc-vu1-init-buffer (function bucket-id gs-test int none)) +(define-extern emerc-vu1-init-buffers (function none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ripple ;; diff --git a/decompiler/config/jak2/label_types.jsonc b/decompiler/config/jak2/label_types.jsonc index 613aff2ef2..a65fe2a1d5 100644 --- a/decompiler/config/jak2/label_types.jsonc +++ b/decompiler/config/jak2/label_types.jsonc @@ -112,5 +112,8 @@ ], "collide-cache": [ ["L171", "vector"] + ], + "emerc-vu1": [ + ["L1", "vu-function"] ] } diff --git a/decompiler/config/jak2/type_casts.jsonc b/decompiler/config/jak2/type_casts.jsonc index 1ea6847784..1b6cc04bca 100644 --- a/decompiler/config/jak2/type_casts.jsonc +++ b/decompiler/config/jak2/type_casts.jsonc @@ -1421,6 +1421,18 @@ [116, "f0", "float"], [137, "f0", "float"] ], + "emerc-vu1-initialize-chain": [ + [[19, 59], "s5", "emerc-vu1-low-mem"], + [80, "gp", "(inline-array dma-packet)"], + [[12, 18], "gp", "(pointer vif-tag)"] + ], + "emerc-vu1-init-buffer": [ + [[25, 31], "a0", "dma-packet"], + [[37, 40], "a0", "gs-gif-tag"], + [44, "a0", "(pointer gs-test)"], + [46, "a0", "(pointer gs-reg64)"], + [[49, 61], "v1", "dma-packet"] + ], // placeholder "placeholder-do-not-add-below": [], "drawable-load": [[[25, 28], "s5", "drawable"]], diff --git a/decompiler/config/jak2/var_names.jsonc b/decompiler/config/jak2/var_names.jsonc index 2c4759a796..f4016baf04 100644 --- a/decompiler/config/jak2/var_names.jsonc +++ b/decompiler/config/jak2/var_names.jsonc @@ -290,5 +290,12 @@ "matrix-local->world": { "args": ["smooth?"] + }, + "emerc-vu1-init-buffer": { + "args": ["dma-bucket", "test"], + "vars": { + "gp-0": "bucket", + "s4-0": "dma-buf" + } } } diff --git a/goal_src/jak2/engine/camera/cam-debug.gc b/goal_src/jak2/engine/camera/cam-debug.gc index 7bd519a926..eca98b1162 100644 --- a/goal_src/jak2/engine/camera/cam-debug.gc +++ b/goal_src/jak2/engine/camera/cam-debug.gc @@ -283,7 +283,7 @@ (set! (-> v1-5 base) (&+ (the-as pointer a0-2) 16)) ) (dma-bucket-insert-tag - (the-as (inline-array dma-bucket) (-> *display* frames (-> *display* on-screen) bucket-group)) + (-> *display* frames (-> *display* on-screen) bucket-group) (bucket-id bucket-318) a2-0 (the-as (pointer dma-tag) a3-16) diff --git a/goal_src/jak2/engine/gfx/hw/display-h.gc b/goal_src/jak2/engine/gfx/hw/display-h.gc index a3bdbd15ce..7cfca4f82c 100644 --- a/goal_src/jak2/engine/gfx/hw/display-h.gc +++ b/goal_src/jak2/engine/gfx/hw/display-h.gc @@ -18,15 +18,15 @@ ;; per-frame DMA buffers, timing, and profiling info. (deftype display-frame (basic) - ((buffer dma-buffer 11 :offset-assert 4) - (calc-buf dma-buffer :offset 8) - (vu1-buf dma-buffer :offset 8) - (debug-buf dma-buffer :offset 36) - (global-buf dma-buffer :offset 40) - (bucket-group dma-bucket :offset 44) - (profile-array profile-array :inline :offset-assert 48) - (start-time time-frame :offset-assert 56) - (run-time time-frame :offset-assert 64) + ((buffer dma-buffer 11 :offset-assert 4) + (calc-buf dma-buffer :offset 8) + (vu1-buf dma-buffer :offset 8) + (debug-buf dma-buffer :offset 36) + (global-buf dma-buffer :offset 40) + (bucket-group (inline-array dma-bucket) :offset 44) + (profile-array profile-array :inline :offset-assert 48) + (start-time time-frame :offset-assert 56) + (run-time time-frame :offset-assert 64) ) :method-count-assert 9 :size-assert #x48 diff --git a/goal_src/jak2/engine/gfx/merc/emerc-vu1.gc b/goal_src/jak2/engine/gfx/merc/emerc-vu1.gc index 710244a33e..c13b70b0a7 100644 --- a/goal_src/jak2/engine/gfx/merc/emerc-vu1.gc +++ b/goal_src/jak2/engine/gfx/merc/emerc-vu1.gc @@ -7,3 +7,4 @@ ;; DECOMP BEGINS +(define emerc-vu1-block (new 'static 'vu-function :length #x56b :qlength #x2b6)) \ No newline at end of file diff --git a/goal_src/jak2/engine/gfx/merc/emerc.gc b/goal_src/jak2/engine/gfx/merc/emerc.gc index 101f4fbfab..6bc7c9661a 100644 --- a/goal_src/jak2/engine/gfx/merc/emerc.gc +++ b/goal_src/jak2/engine/gfx/merc/emerc.gc @@ -5,5 +5,254 @@ ;; name in dgo: emerc ;; dgos: ENGINE, GAME +(define-extern merc-vu1-add-vu-function (function dma-packet vu-function int dma-gif-packet)) + ;; DECOMP BEGINS +(defun emerc-vu1-initialize-chain ((arg0 dma-gif-packet)) + (let ((gp-0 (the-as object (merc-vu1-add-vu-function (the-as dma-packet arg0) emerc-vu1-block 1)))) + (set! (-> (the-as dma-gif-packet gp-0) dma-vif dma) (new 'static 'dma-tag :qwc #xb :id (dma-tag-id cnt))) + (set! (-> (the-as dma-gif-packet gp-0) dma-vif vif0) (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))) + (set! (-> (the-as dma-gif-packet gp-0) dma-vif vif1) (new 'static 'vif-tag :cmd (vif-cmd stmod))) + (set! (-> (the-as (pointer vif-tag) gp-0) 4) (new 'static 'vif-tag :imm #x1ba :cmd (vif-cmd base))) + (set! (-> (the-as (pointer vif-tag) gp-0) 5) (new 'static 'vif-tag :imm #xfe46 :cmd (vif-cmd offset))) + (set! (-> (the-as (pointer vif-tag) gp-0) 6) (new 'static 'vif-tag)) + (set! (-> (the-as (pointer vif-tag) gp-0) 7) (new 'static 'vif-tag :num #x9 :cmd (vif-cmd unpack-v4-32))) + (let ((s5-0 (the-as emerc-vu1-low-mem (&+ (the-as dma-gif-packet gp-0) 32)))) + (set! (-> s5-0 tri-strip-gif tag) + (new 'static 'gif-tag64 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :tme #x1 :fge #x1) + :nreg #x3 + ) + ) + (set! (-> s5-0 tri-strip-gif regs) + (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + (set! (-> s5-0 tri-strip-gif word 3) (shr (make-u128 0 (shl #x303e4000 32)) 32)) + (set! (-> s5-0 ad-gif tag) (new 'static 'gif-tag64 :nloop #x5 :nreg #x1)) + (set! (-> s5-0 ad-gif regs) (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d))) + (set! (-> s5-0 hvdf-offset quad) (-> *math-camera* hvdf-off quad)) + (quad-copy! (the-as pointer (-> s5-0 perspective)) (the-as pointer (-> *math-camera* perspective)) 4) + (set-vector! (-> s5-0 fog) (-> *math-camera* pfog0) (-> *math-camera* fog-min) (-> *math-camera* fog-max) 0.0) + (set-vector! + (-> s5-0 unperspect) + (/ 1.0 (-> *math-camera* perspective vector 0 x)) + (/ 1.0 (-> *math-camera* perspective vector 1 y)) + 0.5 + (/ 1.0 (-> *math-camera* perspective vector 2 w)) + ) + ) + (let ((v1-21 (-> (the-as (inline-array dma-packet) gp-0) 11))) + (set! (-> v1-21 dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> v1-21 vif0) (new 'static 'vif-tag)) + (set! (-> v1-21 vif1) (new 'static 'vif-tag :cmd (vif-cmd mscal) :msk #x1 :imm #x0)) + (&+ v1-21 16) + ) + ) + ) + +(defun emerc-vu1-init-buffer ((dma-bucket bucket-id) (test gs-test) (arg2 int)) + (let ((bucket (-> *display* frames (-> *display* on-screen) bucket-group dma-bucket))) + (when (!= bucket (-> bucket last)) + (let* ((dma-buf (-> *display* frames (-> *display* on-screen) global-buf)) + (s3-1 (-> dma-buf base)) + ) + (set! (-> dma-buf base) + (the-as pointer (emerc-vu1-initialize-chain (the-as dma-gif-packet (-> dma-buf base)))) + ) + (let* ((v1-12 dma-buf) + (a0-4 (the-as object (-> v1-12 base))) + ) + (set! (-> (the-as dma-packet a0-4) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-4) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-4) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-12 base) (&+ (the-as pointer a0-4) 16)) + ) + (let* ((v1-13 dma-buf) + (a0-6 (the-as object (-> v1-13 base))) + ) + (set! (-> (the-as gs-gif-tag a0-6) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-6) regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-13 base) (&+ (the-as pointer a0-6) 16)) + ) + (let* ((v1-14 dma-buf) + (a0-8 (-> v1-14 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-8) 0) test) + (set! (-> (the-as (pointer gs-reg64) a0-8) 1) (gs-reg64 test-1)) + (set! (-> v1-14 base) (&+ a0-8 16)) + ) + (let ((v1-15 (the-as dma-packet (-> dma-buf base)))) + (set! (-> v1-15 dma) (new 'static 'dma-tag :id (dma-tag-id next) :addr (-> bucket next))) + (set! (-> v1-15 vif0) (new 'static 'vif-tag)) + (set! (-> v1-15 vif1) (new 'static 'vif-tag)) + (set! (-> dma-buf base) (the-as pointer (the-as dma-packet (&+ v1-15 16)))) + ) + (set! (-> bucket next) (the-as uint s3-1)) + ) + ) + ) + 0 + (none) + ) + +(defun emerc-vu1-init-buffers () + (when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask rn14)) + (emerc-vu1-init-buffer (bucket-id bucket-15) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-26) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-37) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-48) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-59) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-70) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer + (bucket-id bucket-189) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-198) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-202) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-206) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-210) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-214) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-218) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-222) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer (bucket-id bucket-80) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-89) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-98) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer + (bucket-id bucket-107) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-116) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-125) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-193) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-132) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-142) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-152) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-162) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-172) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-182) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-226) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-230) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-234) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-238) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-242) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-246) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-250) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + ) + 0 + (none) + ) diff --git a/goal_src/jak2/engine/gfx/merc/merc-h.gc b/goal_src/jak2/engine/gfx/merc/merc-h.gc index 1d131ea311..3e9cef04a2 100644 --- a/goal_src/jak2/engine/gfx/merc/merc-h.gc +++ b/goal_src/jak2/engine/gfx/merc/merc-h.gc @@ -328,12 +328,12 @@ ) (deftype emerc-vu1-low-mem (structure) - ((tri-strip-gif qword :inline :offset-assert 0) - (ad-gif qword :inline :offset-assert 16) - (hvdf-offset vector :inline :offset-assert 32) - (perspective vector 4 :inline :offset-assert 48) - (fog vector :inline :offset-assert 112) - (unperspect vector :inline :offset-assert 128) + ((tri-strip-gif gs-gif-tag :inline :offset-assert 0) + (ad-gif gs-gif-tag :inline :offset-assert 16) + (hvdf-offset vector :inline :offset-assert 32) + (perspective vector 4 :inline :offset-assert 48) + (fog vector :inline :offset-assert 112) + (unperspect vector :inline :offset-assert 128) ) :method-count-assert 9 :size-assert #x90 diff --git a/goal_src/jak2/engine/gfx/sprite/sprite.gc b/goal_src/jak2/engine/gfx/sprite/sprite.gc index 0f90d02e3e..99dea985c5 100644 --- a/goal_src/jak2/engine/gfx/sprite/sprite.gc +++ b/goal_src/jak2/engine/gfx/sprite/sprite.gc @@ -1025,7 +1025,7 @@ (set! (-> dma-buff base) (&+ (the-as pointer pkt7) 16)) ) (dma-bucket-insert-tag - (the-as (inline-array dma-bucket) (-> *display* frames (-> *display* on-screen) bucket-group)) + (-> *display* frames (-> *display* on-screen) bucket-group) (bucket-id bucket-313) dma-bucket-begin (the-as (pointer dma-tag) a3-0) diff --git a/test/decompiler/reference/jak2/engine/camera/cam-debug_REF.gc b/test/decompiler/reference/jak2/engine/camera/cam-debug_REF.gc index cbfab9c621..79bf117f5c 100644 --- a/test/decompiler/reference/jak2/engine/camera/cam-debug_REF.gc +++ b/test/decompiler/reference/jak2/engine/camera/cam-debug_REF.gc @@ -269,7 +269,7 @@ (set! (-> v1-5 base) (&+ (the-as pointer a0-2) 16)) ) (dma-bucket-insert-tag - (the-as (inline-array dma-bucket) (-> *display* frames (-> *display* on-screen) bucket-group)) + (-> *display* frames (-> *display* on-screen) bucket-group) (bucket-id bucket-318) a2-0 (the-as (pointer dma-tag) a3-16) diff --git a/test/decompiler/reference/jak2/engine/gfx/hw/display-h_REF.gc b/test/decompiler/reference/jak2/engine/gfx/hw/display-h_REF.gc index db2ccfb826..b1e92007b3 100644 --- a/test/decompiler/reference/jak2/engine/gfx/hw/display-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/hw/display-h_REF.gc @@ -3,15 +3,15 @@ ;; definition of type display-frame (deftype display-frame (basic) - ((buffer dma-buffer 11 :offset-assert 4) - (calc-buf dma-buffer :offset 8) - (vu1-buf dma-buffer :offset 8) - (debug-buf dma-buffer :offset 36) - (global-buf dma-buffer :offset 40) - (bucket-group dma-bucket :offset 44) - (profile-array profile-array :inline :offset-assert 48) - (start-time time-frame :offset-assert 56) - (run-time time-frame :offset-assert 64) + ((buffer dma-buffer 11 :offset-assert 4) + (calc-buf dma-buffer :offset 8) + (vu1-buf dma-buffer :offset 8) + (debug-buf dma-buffer :offset 36) + (global-buf dma-buffer :offset 40) + (bucket-group (inline-array dma-bucket) :offset 44) + (profile-array profile-array :inline :offset-assert 48) + (start-time time-frame :offset-assert 56) + (run-time time-frame :offset-assert 64) ) :method-count-assert 9 :size-assert #x48 diff --git a/test/decompiler/reference/jak2/engine/gfx/merc/emerc-vu1_REF.gc b/test/decompiler/reference/jak2/engine/gfx/merc/emerc-vu1_REF.gc new file mode 100644 index 0000000000..17225ac1a1 --- /dev/null +++ b/test/decompiler/reference/jak2/engine/gfx/merc/emerc-vu1_REF.gc @@ -0,0 +1,9 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol emerc-vu1-block, type vu-function +(define emerc-vu1-block (new 'static 'vu-function :length #x56b :qlength #x2b6)) + + + + diff --git a/test/decompiler/reference/jak2/engine/gfx/merc/emerc_REF.gc b/test/decompiler/reference/jak2/engine/gfx/merc/emerc_REF.gc new file mode 100644 index 0000000000..6d70161ce3 --- /dev/null +++ b/test/decompiler/reference/jak2/engine/gfx/merc/emerc_REF.gc @@ -0,0 +1,260 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function emerc-vu1-initialize-chain +;; INFO: Used lq/sq +(defun emerc-vu1-initialize-chain ((arg0 dma-gif-packet)) + (let ((gp-0 (the-as object (merc-vu1-add-vu-function (the-as dma-packet arg0) emerc-vu1-block 1)))) + (set! (-> (the-as dma-gif-packet gp-0) dma-vif dma) (new 'static 'dma-tag :qwc #xb :id (dma-tag-id cnt))) + (set! (-> (the-as dma-gif-packet gp-0) dma-vif vif0) (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))) + (set! (-> (the-as dma-gif-packet gp-0) dma-vif vif1) (new 'static 'vif-tag :cmd (vif-cmd stmod))) + (set! (-> (the-as (pointer vif-tag) gp-0) 4) (new 'static 'vif-tag :imm #x1ba :cmd (vif-cmd base))) + (set! (-> (the-as (pointer vif-tag) gp-0) 5) (new 'static 'vif-tag :imm #xfe46 :cmd (vif-cmd offset))) + (set! (-> (the-as (pointer vif-tag) gp-0) 6) (new 'static 'vif-tag)) + (set! (-> (the-as (pointer vif-tag) gp-0) 7) (new 'static 'vif-tag :num #x9 :cmd (vif-cmd unpack-v4-32))) + (let ((s5-0 (the-as emerc-vu1-low-mem (&+ (the-as dma-gif-packet gp-0) 32)))) + (set! (-> s5-0 tri-strip-gif tag) + (new 'static 'gif-tag64 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :tme #x1 :fge #x1) + :nreg #x3 + ) + ) + (set! (-> s5-0 tri-strip-gif regs) + (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + (set! (-> s5-0 tri-strip-gif word 3) (shr (make-u128 0 (shl #x303e4000 32)) 32)) + (set! (-> s5-0 ad-gif tag) (new 'static 'gif-tag64 :nloop #x5 :nreg #x1)) + (set! (-> s5-0 ad-gif regs) (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d))) + (set! (-> s5-0 hvdf-offset quad) (-> *math-camera* hvdf-off quad)) + (quad-copy! (the-as pointer (-> s5-0 perspective)) (the-as pointer (-> *math-camera* perspective)) 4) + (set-vector! (-> s5-0 fog) (-> *math-camera* pfog0) (-> *math-camera* fog-min) (-> *math-camera* fog-max) 0.0) + (set-vector! + (-> s5-0 unperspect) + (/ 1.0 (-> *math-camera* perspective vector 0 x)) + (/ 1.0 (-> *math-camera* perspective vector 1 y)) + 0.5 + (/ 1.0 (-> *math-camera* perspective vector 2 w)) + ) + ) + (let ((v1-21 (-> (the-as (inline-array dma-packet) gp-0) 11))) + (set! (-> v1-21 dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> v1-21 vif0) (new 'static 'vif-tag)) + (set! (-> v1-21 vif1) (new 'static 'vif-tag :cmd (vif-cmd mscal) :msk #x1 :imm #x0)) + (&+ v1-21 16) + ) + ) + ) + +;; definition for function emerc-vu1-init-buffer +;; INFO: Return type mismatch int vs none. +(defun emerc-vu1-init-buffer ((dma-bucket bucket-id) (test gs-test) (arg2 int)) + (let ((bucket (-> *display* frames (-> *display* on-screen) bucket-group dma-bucket))) + (when (!= bucket (-> bucket last)) + (let* ((dma-buf (-> *display* frames (-> *display* on-screen) global-buf)) + (s3-1 (-> dma-buf base)) + ) + (set! (-> dma-buf base) + (the-as pointer (emerc-vu1-initialize-chain (the-as dma-gif-packet (-> dma-buf base)))) + ) + (let* ((v1-12 dma-buf) + (a0-4 (the-as object (-> v1-12 base))) + ) + (set! (-> (the-as dma-packet a0-4) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-4) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-4) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-12 base) (&+ (the-as pointer a0-4) 16)) + ) + (let* ((v1-13 dma-buf) + (a0-6 (the-as object (-> v1-13 base))) + ) + (set! (-> (the-as gs-gif-tag a0-6) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-6) regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-13 base) (&+ (the-as pointer a0-6) 16)) + ) + (let* ((v1-14 dma-buf) + (a0-8 (-> v1-14 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-8) 0) test) + (set! (-> (the-as (pointer gs-reg64) a0-8) 1) (gs-reg64 test-1)) + (set! (-> v1-14 base) (&+ a0-8 16)) + ) + (let ((v1-15 (the-as dma-packet (-> dma-buf base)))) + (set! (-> v1-15 dma) (new 'static 'dma-tag :id (dma-tag-id next) :addr (-> bucket next))) + (set! (-> v1-15 vif0) (new 'static 'vif-tag)) + (set! (-> v1-15 vif1) (new 'static 'vif-tag)) + (set! (-> dma-buf base) (the-as pointer (the-as dma-packet (&+ v1-15 16)))) + ) + (set! (-> bucket next) (the-as uint s3-1)) + ) + ) + ) + 0 + (none) + ) + +;; definition for function emerc-vu1-init-buffers +;; INFO: Return type mismatch int vs none. +(defun emerc-vu1-init-buffers () + (when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask rn14)) + (emerc-vu1-init-buffer (bucket-id bucket-15) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-26) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-37) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-48) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-59) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-70) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer + (bucket-id bucket-189) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-198) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-202) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-206) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-210) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-214) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-218) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-222) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer (bucket-id bucket-80) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-89) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer (bucket-id bucket-98) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0) + (emerc-vu1-init-buffer + (bucket-id bucket-107) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-116) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-125) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-193) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-132) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-142) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-152) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-162) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-172) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-182) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-226) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-230) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-234) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-238) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-242) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-246) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id bucket-250) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + ) + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/jak2/engine/gfx/merc/merc-h_REF.gc b/test/decompiler/reference/jak2/engine/gfx/merc/merc-h_REF.gc index 96c3747d21..2f18cf1bb5 100644 --- a/test/decompiler/reference/jak2/engine/gfx/merc/merc-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/merc/merc-h_REF.gc @@ -744,12 +744,12 @@ ;; definition of type emerc-vu1-low-mem (deftype emerc-vu1-low-mem (structure) - ((tri-strip-gif qword :inline :offset-assert 0) - (ad-gif qword :inline :offset-assert 16) - (hvdf-offset vector :inline :offset-assert 32) - (perspective vector 4 :inline :offset-assert 48) - (fog vector :inline :offset-assert 112) - (unperspect vector :inline :offset-assert 128) + ((tri-strip-gif gs-gif-tag :inline :offset-assert 0) + (ad-gif gs-gif-tag :inline :offset-assert 16) + (hvdf-offset vector :inline :offset-assert 32) + (perspective vector 4 :inline :offset-assert 48) + (fog vector :inline :offset-assert 112) + (unperspect vector :inline :offset-assert 128) ) :method-count-assert 9 :size-assert #x90 @@ -896,7 +896,3 @@ ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/jak2/engine/gfx/sprite/sprite_REF.gc b/test/decompiler/reference/jak2/engine/gfx/sprite/sprite_REF.gc index b1784e3748..e0b8895f09 100644 --- a/test/decompiler/reference/jak2/engine/gfx/sprite/sprite_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/sprite/sprite_REF.gc @@ -912,7 +912,7 @@ (set! (-> dma-buff base) (&+ (the-as pointer pkt7) 16)) ) (dma-bucket-insert-tag - (the-as (inline-array dma-bucket) (-> *display* frames (-> *display* on-screen) bucket-group)) + (-> *display* frames (-> *display* on-screen) bucket-group) (bucket-id bucket-313) dma-bucket-begin (the-as (pointer dma-tag) a3-0) diff --git a/test/decompiler/reference/jak2/engine/ui/text_REF.gc b/test/decompiler/reference/jak2/engine/ui/text_REF.gc index 97fd796dbf..de4d407476 100644 --- a/test/decompiler/reference/jak2/engine/ui/text_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/text_REF.gc @@ -580,7 +580,7 @@ (set! (-> s2-1 base) (&+ v1-121 16)) ) (dma-bucket-insert-tag - (the-as (inline-array dma-bucket) (-> *display* frames (-> *display* on-screen) bucket-group)) + (-> *display* frames (-> *display* on-screen) bucket-group) (the-as bucket-id arg4) s3-1 (the-as (pointer dma-tag) a3-2) diff --git a/test/decompiler/test_VuDisasm.cpp b/test/decompiler/test_VuDisasm.cpp index 8986ccda8b..5232db8e93 100644 --- a/test/decompiler/test_VuDisasm.cpp +++ b/test/decompiler/test_VuDisasm.cpp @@ -30,6 +30,13 @@ std::string get_expected(const std::string& name) { } } // namespace +TEST(VuDisasm, Emerc) { + auto data = get_test_data("jak2/emerc-vu1"); + VuDisassembler disasm(VuDisassembler::VuKind::VU1); + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("jak2/emerc-vu1")); +} + TEST(VuDisasm, Sprite_Jak2) { auto data = get_test_data("jak2/sprite"); VuDisassembler disasm(VuDisassembler::VuKind::VU1); diff --git a/test/decompiler/vu_reference/jak2/emerc-vu1-result.txt b/test/decompiler/vu_reference/jak2/emerc-vu1-result.txt new file mode 100644 index 0000000000..395827e92c --- /dev/null +++ b/test/decompiler/vu_reference/jak2/emerc-vu1-result.txt @@ -0,0 +1,1473 @@ + lq. vf00, -661(vi00) | addx. vf00, vf00, vf00 + lq. vf00, 694(vi00) | addx. vf00, vf00, vf00 + lq.xyzw vf01, 7(vi00) | nop + lq.xyzw vf25, 3(vi00) | nop + lq.xyzw vf26, 4(vi00) | nop + lq.xyzw vf27, 5(vi00) | nop + lq.xyzw vf28, 6(vi00) | nop + lq.xyzw vf08, 8(vi00) | nop + mr32.xyzw vf01, vf01 | nop + move.y vf25, vf26 | nop + move.zw vf25, vf27 | nop + sq.xyzw vf25, 3(vi00) | nop + sq.xyzw vf08, 124(vi00) | nop + 2048.0 | nop :i + 255.0 | maxi.x vf17, vf00, I :i + -65537.0 | maxi.y vf17, vf00, I :i + mr32.xyzw vf02, vf01 | minii.z vf17, vf00, I + lq.xyzw vf22, 2(vi00) | minii.z vf18, vf00, I + 0.003921569 | minii.z vf19, vf00, I :i + sq.xyzw vf28, 4(vi00) | minii.w vf29, vf00, I :e + mr32.xyzw vf03, vf02 | nop + lq.xyzw vf25, 139(vi00) | nop + lq.xyzw vf26, 3(vi00) | nop + lq.xyz vf01, 132(vi00) | nop + lq.xyz vf02, 133(vi00) | nop + lq.xyz vf03, 134(vi00) | addy.xy vf19, vf00, vf25 + lq.xyzw vf04, 135(vi00) | mulx.xyzw vf26, vf26, vf25 + lq.xyzw vf05, 136(vi00) | nop + lq.xyzw vf06, 137(vi00) | nop + lq.xyzw vf07, 138(vi00) | nop + sq.xyzw vf26, 5(vi00) | nop + lq.xyzw vf28, 139(vi00) | minix.xyzw vf15, vf00, vf00 + xtop vi15 | nop + iaddiu vi12, vi15, 0x8c | nop + nop | nop + ilwr.w vi03, vi12 | maxz.xy vf18, vf00, vf28 + iaddiu vi15, vi00, 0x173 | nop + lq.xyzw vf14, 0(vi00) | nop + nop | nop + iadd vi03, vi03, vi12 | nop + ilwr.w vi09, vi03 | nop + lqi.xyzw vf27, vi03 | nop + ilw.x vi04, 1(vi12) | nop + iaddiu vi05, vi00, 0x7f | addw.xyz vf15, vf15, vf00 + iand vi09, vi09, vi05 | nop + ilw.y vi06, 1(vi12) | miniz.w vf19, vf00, vf27 + nop | miniy.w vf18, vf00, vf27 + ilwr.z vi01, vi12 | minix.w vf17, vf00, vf27 + lq.xyzw vf13, 1(vi00) | nop + ilwr.w vi02, vi03 | nop + lqi.xyzw vf08, vi03 | nop + lqi.xyzw vf09, vi03 | nop + lqi.xyzw vf10, vi03 | nop + lqi.xyzw vf11, vi03 | nop + lqi.xyzw vf12, vi03 | nop + iadd vi02, vi02, vi15 | nop + mtir vi08, vf09.w | nop + sqi.xyzw vf13, vi02 | nop + sqi.xyzw vf08, vi02 | nop + sqi.xyzw vf09, vi02 | nop + mfir.x vf14, vi08 | nop + sqi.xyzw vf10, vi02 | nop + sqi.xyzw vf11, vi02 | nop + sqi.xyzw vf12, vi02 | nop + sq.xyzw vf14, 0(vi02) | nop + lq.xyzw vf28, 3(vi00) | nop + ilw.y vi08, 3(vi12) | nop + lq.xyzw vf16, 5(vi00) | nop + lq.xyzw vf20, 4(vi00) | nop + ilw.z vi09, 3(vi12) | mul.xyzw vf27, vf28, vf15 + ior vi11, vi08, vi00 | mul.xyzw vf28, vf28, vf00 + ibeq vi00, vi08, L2 | mul.xyzw vf15, vf16, vf15 + iaddi vi13, vi12, 0x3 | mul.xyzw vf16, vf16, vf00 +L1: + lq.xyzw vf08, 0(vi08) | addax.xyzw vf20, vf00 + lq.xyzw vf10, 1(vi08) | madda.xyzw ACC, vf27, vf25 + lq.xyzw vf12, 2(vi08) | maddz.xyzw vf26, vf28, vf25 + lq.xyzw vf25, 3(vi08) | nop + sq.xyzw vf09, 0(vi11) | mula.xyzw ACC, vf15, vf08 + sq.xyzw vf11, 1(vi11) | maddz.xyzw vf09, vf16, vf08 + sq.xyzw vf13, 2(vi11) | mula.xyzw ACC, vf15, vf10 + sq.xyzw vf26, 3(vi11) | maddz.xyzw vf11, vf16, vf10 + ibeq vi00, vi08, L2 | mula.xyzw ACC, vf15, vf12 + ilwr.w vi10, vi13 | maddz.xyzw vf13, vf16, vf12 + lq.xyzw vf08, 0(vi09) | addax.xyzw vf20, vf00 + lq.xyzw vf10, 1(vi09) | madda.xyzw ACC, vf27, vf25 + lq.xyzw vf12, 2(vi09) | maddz.xyzw vf26, vf28, vf25 + lq.xyzw vf25, 3(vi09) | nop + sq.xyzw vf09, 0(vi08) | mula.xyzw ACC, vf15, vf08 + sq.xyzw vf11, 1(vi08) | maddz.xyzw vf09, vf16, vf08 + sq.xyzw vf13, 2(vi08) | mula.xyzw ACC, vf15, vf10 + sq.xyzw vf26, 3(vi08) | maddz.xyzw vf11, vf16, vf10 + ibeq vi00, vi09, L2 | mula.xyzw ACC, vf15, vf12 + ilw.x vi11, 1(vi13) | maddz.xyzw vf13, vf16, vf12 + lq.xyzw vf08, 0(vi10) | addax.xyzw vf20, vf00 + lq.xyzw vf10, 1(vi10) | madda.xyzw ACC, vf27, vf25 + lq.xyzw vf12, 2(vi10) | maddz.xyzw vf26, vf28, vf25 + lq.xyzw vf25, 3(vi10) | nop + sq.xyzw vf09, 0(vi09) | mula.xyzw ACC, vf15, vf08 + sq.xyzw vf11, 1(vi09) | maddz.xyzw vf09, vf16, vf08 + sq.xyzw vf13, 2(vi09) | mula.xyzw ACC, vf15, vf10 + sq.xyzw vf26, 3(vi09) | maddz.xyzw vf11, vf16, vf10 + ibeq vi00, vi10, L2 | mula.xyzw ACC, vf15, vf12 + ilw.y vi08, 1(vi13) | maddz.xyzw vf13, vf16, vf12 + lq.xyzw vf08, 0(vi11) | addax.xyzw vf20, vf00 + lq.xyzw vf10, 1(vi11) | madda.xyzw ACC, vf27, vf25 + lq.xyzw vf12, 2(vi11) | maddz.xyzw vf26, vf28, vf25 + lq.xyzw vf25, 3(vi11) | nop + sq.xyzw vf09, 0(vi10) | mula.xyzw ACC, vf15, vf08 + sq.xyzw vf11, 1(vi10) | maddz.xyzw vf09, vf16, vf08 + sq.xyzw vf13, 2(vi10) | mula.xyzw ACC, vf15, vf10 + sq.xyzw vf26, 3(vi10) | maddz.xyzw vf11, vf16, vf10 + iaddi vi13, vi13, 0x1 | nop + ibne vi00, vi11, L1 | mula.xyzw ACC, vf15, vf12 + ilwr.z vi09, vi13 | maddz.xyzw vf13, vf16, vf12 +L2: + ilw.x vi02, 3(vi12) | nop + ibeq vi00, vi04, L13 | nop + iadd vi01, vi01, vi12 | nop + ilwr.x vi08, vi01 | nop + lqi.xyzw vf08, vi01 | nop + lqi.xyzw vf11, vi01 | nop + lqi.xyzw vf14, vi01 | nop + lq.xyz vf29, 4(vi08) | nop + lq.xyz vf30, 5(vi08) | add.zw vf08, vf08, vf17 + lq.xyzw vf31, 6(vi08) | add.xyzw vf11, vf11, vf18 + iaddi vi04, vi04, -0x1 | add.xyzw vf14, vf14, vf19 + iadd vi02, vi02, vi12 | nop + lqi.xyzw vf24, vi02 | mulaz.xyzw ACC, vf29, vf08 + mtir vi10, vf11.x | maddaz.xyzw ACC, vf30, vf11 + mtir vi13, vf11.y | maddz.xyz vf11, vf31, vf14 + lq.xyzw vf25, 0(vi08) | nop + lq.xyzw vf26, 1(vi08) | itof0.xyzw vf24, vf24 + lq.xyzw vf27, 2(vi08) | nop + erleng.xyz P, vf11 | nop + lq.xyzw vf28, 3(vi08) | mulaw.xyzw ACC, vf25, vf08 + nop | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + lqi.xyzw vf09, vi01 | nop + ilwr.y vi03, vi12 | nop + ilw.z vi07, 1(vi12) | nop + lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 + lqi.xyzw vf15, vi01 | nop + mtir vi08, vf09.x | nop + sq.xyzw vf08, -4(vi01) | miniw.w vf08, vf08, vf01 + iadd vi03, vi03, vi12 | nop + div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 + iadd vi04, vi04, vi03 | add.xyzw vf12, vf12, vf18 + lq.xyz vf29, 4(vi08) | add.xyzw vf15, vf15, vf19 + lq.xyz vf30, 5(vi08) | nop + iadd vi06, vi06, vi04 | nop + lq.xyzw vf31, 6(vi08) | nop + lq.xyzw vf25, 0(vi08) | nop + lq.xyzw vf26, 1(vi08) | mul.xyz vf08, vf08, Q + mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q + mtir vi14, vf12.y | nop + lq.xyzw vf27, 2(vi08) | nop + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 + iadd vi07, vi07, vi06 | mulaz.xyzw ACC, vf29, vf09 + lq.xyzw vf28, 3(vi08) | maddaz.xyzw ACC, vf30, vf12 + mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 + nop | nop + 1024.0 | miniw.w vf08, vf08, vf03 :i + nop | mulaw.xyzw ACC, vf25, vf09 + ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 + erleng.xyz P, vf12 | maxi.xy vf08, vf08, I + 3072.0 | nop :i + nop | minii.xy vf08, vf08, I + sq.xyzw vf11, -1(vi03) | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 + ibne vi04, vi03, L4 | madday.xyzw ACC, vf02, vf11 + nop | maddz.xyzw vf11, vf03, vf11 + ibne vi06, vi03, L17 | nop + nop | nop + b L52 | nop + nop | nop +L3: + sq.xyzw vf11, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf11 :i + lqi.xyzw vf10, vi01 | minii.xy vf08, vf08, I + sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 + sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 +L4: + lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 + lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 + mtir vi08, vf10.x | itof0.xyzw vf23, vf23 + ilw.y vi09, -9(vi01) | maxx.xyzw vf11, vf11, vf00 + sq.xyzw vf09, -4(vi01) | miniw.w vf09, vf09, vf01 + div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 + move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 + lq.xyz vf29, 4(vi08) | add.xyzw vf16, vf16, vf19 + lq.xyz vf30, 5(vi08) | mulax.xyzw ACC, vf04, vf11 + ibgtz vi09, L5 | madday.xyzw ACC, vf05, vf11 + lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L5: + lq.xyzw vf25, 0(vi08) | maddw.xyzw vf11, vf07, vf00 + lq.xyzw vf26, 1(vi08) | mul.xyz vf09, vf09, Q + mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q + mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 + lq.xyzw vf27, 2(vi08) | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 + ibne vi00, vi09, L6 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L6: + mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 + sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 + sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 + sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 + lq.xyzw vf28, 3(vi08) | mulw.xyzw vf12, vf12, vf20 + 1024.0 | ftoi0.xyzw vf11, vf11 :i + erleng.xyz P, vf13 | maxi.xy vf09, vf09, I + ibne vi04, vi03, L7 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 + ibne vi06, vi03, L22 | nop + ilw.y vi09, -6(vi01) | nop + ibne vi07, vi03, L57 | nop + nop | nop + b L67 | nop + nop | nop +L7: + sq.xyzw vf12, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf12 :i + lqi.xyzw vf08, vi01 | minii.xy vf09, vf09, I + sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 + sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 + lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 + lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 + mtir vi08, vf08.x | itof0.xyzw vf23, vf23 + ilw.y vi09, -9(vi01) | maxx.xyzw vf12, vf12, vf00 + sq.xyzw vf10, -4(vi01) | miniw.w vf10, vf10, vf01 + div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 + move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 + lq.xyz vf29, 4(vi08) | add.xyzw vf14, vf14, vf19 + lq.xyz vf30, 5(vi08) | mulax.xyzw ACC, vf04, vf12 + ibgtz vi09, L8 | madday.xyzw ACC, vf05, vf12 + lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L8: + lq.xyzw vf25, 0(vi08) | maddw.xyzw vf12, vf07, vf00 + lq.xyzw vf26, 1(vi08) | mul.xyz vf10, vf10, Q + mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q + mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 + lq.xyzw vf27, 2(vi08) | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 + ibne vi00, vi09, L9 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L9: + mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 + sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 + sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 + sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 + lq.xyzw vf28, 3(vi08) | mulw.xyzw vf13, vf13, vf20 + 1024.0 | ftoi0.xyzw vf12, vf12 :i + erleng.xyz P, vf11 | maxi.xy vf10, vf10, I + ibne vi04, vi03, L10 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + ibne vi06, vi03, L27 | nop + ilw.y vi09, -6(vi01) | nop + ibne vi07, vi03, L62 | nop + nop | nop + b L72 | nop + nop | nop +L10: + sq.xyzw vf13, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf13 :i + lqi.xyzw vf09, vi01 | minii.xy vf10, vf10, I + sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 + sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 + lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 + lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 + mtir vi08, vf09.x | itof0.xyzw vf23, vf23 + ilw.y vi09, -9(vi01) | maxx.xyzw vf13, vf13, vf00 + sq.xyzw vf08, -4(vi01) | miniw.w vf08, vf08, vf01 + div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 + move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 + lq.xyz vf29, 4(vi08) | add.xyzw vf15, vf15, vf19 + lq.xyz vf30, 5(vi08) | mulax.xyzw ACC, vf04, vf13 + ibgtz vi09, L11 | madday.xyzw ACC, vf05, vf13 + lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L11: + lq.xyzw vf25, 0(vi08) | maddw.xyzw vf13, vf07, vf00 + lq.xyzw vf26, 1(vi08) | mul.xyz vf08, vf08, Q + mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q + mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 + lq.xyzw vf27, 2(vi08) | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 + ibne vi00, vi09, L12 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L12: + mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 + sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 + sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 + sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 + lq.xyzw vf28, 3(vi08) | mulw.xyzw vf11, vf11, vf20 + 1024.0 | ftoi0.xyzw vf13, vf13 :i + erleng.xyz P, vf12 | maxi.xy vf08, vf08, I + ibne vi04, vi03, L3 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + ibne vi06, vi03, L16 | nop + ilw.y vi09, -6(vi01) | nop + ibne vi07, vi03, L51 | nop + nop | nop + b L77 | nop + nop | nop +L13: + ibeq vi00, vi06, L47 | nop + iadd vi02, vi02, vi12 | nop + lqi.xyzw vf08, vi01 | nop + lqi.xyzw vf24, vi02 | nop + lqi.xyzw vf11, vi01 | nop + lqi.xyzw vf14, vi01 | nop + mtir vi10, vf08.x | nop + mtir vi13, vf08.y | itof0.xyzw vf24, vf24 + iaddi vi06, vi06, -0x1 | add.zw vf08, vf08, vf17 + nop | add.xyzw vf11, vf11, vf18 + iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 + nop | mulw.xyzw vf24, vf24, vf29 + iand vi13, vi13, vi05 | nop + lq.xyzw vf20, 0(vi10) | nop + lq.xyzw vf25, 0(vi13) | nop + lq.xyzw vf23, 1(vi10) | nop + lq.xyzw vf26, 1(vi13) | nop + lq.xyzw vf20, 2(vi10) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf27, 2(vi13) | maddy.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 3(vi10) | mulax.xyzw ACC, vf23, vf24 + lq.xyzw vf28, 3(vi13) | maddy.xyzw vf26, vf26, vf24 + lq.xyzw vf20, 4(vi10) | mulax.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi13) | maddy.xyzw vf27, vf27, vf24 + lq.xyzw vf23, 5(vi10) | mulax.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi13) | maddy.xyzw vf28, vf28, vf24 + lq.xyzw vf20, 6(vi10) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf31, 6(vi13) | maddy.xyz vf29, vf29, vf24 + mtir vi10, vf11.x | mulax.xyzw ACC, vf23, vf24 + mtir vi13, vf11.y | maddy.xyz vf30, vf30, vf24 + nop | mulax.xyzw ACC, vf20, vf24 + nop | maddy.xyzw vf31, vf31, vf24 + nop | mulaz.xyzw ACC, vf29, vf08 + nop | maddaz.xyzw ACC, vf30, vf11 + nop | maddz.xyz vf11, vf31, vf14 + nop | nop + nop | nop + nop | mulaw.xyzw ACC, vf25, vf08 + nop | nop + erleng.xyz P, vf11 | nop + nop | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + lqi.xyzw vf09, vi01 | nop + ilwr.y vi03, vi12 | nop + ilw.z vi07, 1(vi12) | nop + lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 + lqi.xyzw vf15, vi01 | nop + mtir vi11, vf09.x | nop + mtir vi14, vf09.y | nop + sq.xyzw vf08, -4(vi01) | miniw.w vf08, vf08, vf01 + div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 + iadd vi03, vi03, vi12 | add.xyzw vf12, vf12, vf18 + iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 + iadd vi06, vi06, vi03 | nop + iadd vi07, vi07, vi06 | nop + iand vi14, vi14, vi05 | nop + ibne vi05, vi11, L14 | nop + iaddiu vi08, vi00, 0x23a | mul.xyz vf08, vf08, Q + mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q + mtir vi14, vf12.y | nop + b L15 | nop + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L14: + lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q + lq.xyzw vf25, 0(vi14) | nop + lq.xyzw vf23, 1(vi11) | nop + lq.xyzw vf26, 1(vi14) | add.xyzw vf08, vf08, vf22 + lq.xyzw vf20, 2(vi11) | mulaz.xyzw ACC, vf20, vf24 + lq.xyzw vf27, 2(vi14) | maddw.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 3(vi11) | mulaz.xyzw ACC, vf23, vf24 + lq.xyzw vf28, 3(vi14) | maddw.xyzw vf26, vf26, vf24 + lq.xyzw vf20, 4(vi11) | mulaz.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi14) | maddw.xyzw vf27, vf27, vf24 + lq.xyzw vf23, 5(vi11) | mulaz.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi14) | maddw.xyzw vf28, vf28, vf24 + lq.xyzw vf20, 6(vi11) | mulaz.xyzw ACC, vf20, vf24 + lq.xyzw vf31, 6(vi14) | maddw.xyz vf29, vf29, vf24 + lqi.xyzw vf23, vi02 | mulaz.xyzw ACC, vf23, vf24 + mtir vi11, vf12.x | maddw.xyz vf30, vf30, vf24 + mtir vi14, vf12.y | mulaz.xyzw ACC, vf20, vf24 + iaddiu vi08, vi00, 0x18c | maddw.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L15: + nop | mulaz.xyzw ACC, vf29, vf09 + nop | maddaz.xyzw ACC, vf30, vf12 + mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 + nop | nop + 1024.0 | miniw.w vf08, vf08, vf03 :i + nop | mulaw.xyzw ACC, vf25, vf09 + ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 + erleng.xyz P, vf12 | maxi.xy vf08, vf08, I + 3072.0 | nop :i + sq.xyzw vf11, -1(vi03) | minii.xy vf08, vf08, I + ibeq vi06, vi03, L50 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 + jr vi08 | madday.xyzw ACC, vf02, vf11 + nop | maddz.xyzw vf11, vf03, vf11 +L16: + sq.xyzw vf11, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf11 :i + lqi.xyzw vf10, vi01 | minii.xy vf08, vf08, I + sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 + sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 +L17: + lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 + lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 + mtir vi12, vf10.x | itof0.xyzw vf23, vf23 + mtir vi15, vf10.y | maxx.xyzw vf11, vf11, vf00 + sq.xyzw vf09, -4(vi01) | miniw.w vf09, vf09, vf01 + div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 + move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 + iand vi12, vi12, vi05 | add.xyzw vf16, vf16, vf19 + nop | mulax.xyzw ACC, vf04, vf11 + ibgtz vi09, L18 | madday.xyzw ACC, vf05, vf11 + iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L18: + ibne vi05, vi12, L19 | maddw.xyzw vf11, vf07, vf00 + ilw.x vi09, -9(vi01) | mul.xyz vf09, vf09, Q + mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q + mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 + b L20 | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 +L19: + lq.xyzw vf20, 0(vi12) | mul.xyzw vf15, vf15, Q + nop | mulw.xyzw vf24, vf24, vf29 + lq.xyzw vf25, 0(vi15) | ftoi4.xyzw vf21, vf21 + lq.xyzw vf23, 1(vi12) | mul.xyzw vf11, vf11, vf23 + lq.xyzw vf26, 1(vi15) | add.xyzw vf09, vf09, vf22 + lq.xyzw vf20, 2(vi12) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf27, 2(vi15) | maddy.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 3(vi12) | mulax.xyzw ACC, vf23, vf24 + lq.xyzw vf28, 3(vi15) | maddy.xyzw vf26, vf26, vf24 + lq.xyzw vf20, 4(vi12) | mulax.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi15) | maddy.xyzw vf27, vf27, vf24 + lq.xyzw vf23, 5(vi12) | mulax.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi15) | maddy.xyzw vf28, vf28, vf24 + lq.xyzw vf20, 6(vi12) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf31, 6(vi15) | maddy.xyz vf29, vf29, vf24 + mtir vi12, vf13.x | mulax.xyzw ACC, vf23, vf24 + mtir vi15, vf13.y | maddy.xyz vf30, vf30, vf24 + b L35 | mulax.xyzw ACC, vf20, vf24 + lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 +L20: + ibgez vi09, L21 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L21: + mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 + sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 + sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 + sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 + ilw.y vi09, -6(vi01) | mulw.xyzw vf12, vf12, vf20 + 1024.0 | ftoi0.xyzw vf11, vf11 :i + erleng.xyz P, vf13 | maxi.xy vf09, vf09, I + ibne vi06, vi03, L22 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 + ibne vi07, vi03, L57 | nop + nop | nop + b L67 | nop + nop | nop +L22: + sq.xyzw vf12, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf12 :i + lqi.xyzw vf08, vi01 | minii.xy vf09, vf09, I + sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 + sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 + lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 + lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 + mtir vi10, vf08.x | itof0.xyzw vf23, vf23 + mtir vi13, vf08.y | maxx.xyzw vf12, vf12, vf00 + sq.xyzw vf10, -4(vi01) | miniw.w vf10, vf10, vf01 + div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 + move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 + iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 + nop | mulax.xyzw ACC, vf04, vf12 + ibgtz vi09, L23 | madday.xyzw ACC, vf05, vf12 + iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L23: + ibne vi05, vi10, L24 | maddw.xyzw vf12, vf07, vf00 + ilw.x vi09, -9(vi01) | mul.xyz vf10, vf10, Q + mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q + mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 + b L25 | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 +L24: + lq.xyzw vf20, 0(vi10) | mul.xyzw vf16, vf16, Q + nop | mulw.xyzw vf24, vf24, vf29 + lq.xyzw vf25, 0(vi13) | ftoi4.xyzw vf21, vf21 + lq.xyzw vf23, 1(vi10) | mul.xyzw vf12, vf12, vf23 + lq.xyzw vf26, 1(vi13) | add.xyzw vf10, vf10, vf22 + lq.xyzw vf20, 2(vi10) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf27, 2(vi13) | maddy.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 3(vi10) | mulax.xyzw ACC, vf23, vf24 + lq.xyzw vf28, 3(vi13) | maddy.xyzw vf26, vf26, vf24 + lq.xyzw vf20, 4(vi10) | mulax.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi13) | maddy.xyzw vf27, vf27, vf24 + lq.xyzw vf23, 5(vi10) | mulax.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi13) | maddy.xyzw vf28, vf28, vf24 + lq.xyzw vf20, 6(vi10) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf31, 6(vi13) | maddy.xyz vf29, vf29, vf24 + mtir vi10, vf11.x | mulax.xyzw ACC, vf23, vf24 + mtir vi13, vf11.y | maddy.xyz vf30, vf30, vf24 + b L40 | mulax.xyzw ACC, vf20, vf24 + lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 +L25: + ibgez vi09, L26 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L26: + mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 + sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 + sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 + sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 + ilw.y vi09, -6(vi01) | mulw.xyzw vf13, vf13, vf20 + 1024.0 | ftoi0.xyzw vf12, vf12 :i + erleng.xyz P, vf11 | maxi.xy vf10, vf10, I + ibne vi06, vi03, L27 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + ibne vi07, vi03, L62 | nop + nop | nop + b L72 | nop + nop | nop +L27: + sq.xyzw vf13, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf13 :i + lqi.xyzw vf09, vi01 | minii.xy vf10, vf10, I + sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 + sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 + lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 + lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 + mtir vi11, vf09.x | itof0.xyzw vf23, vf23 + mtir vi14, vf09.y | maxx.xyzw vf13, vf13, vf00 + sq.xyzw vf08, -4(vi01) | miniw.w vf08, vf08, vf01 + div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 + move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 + iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 + nop | mulax.xyzw ACC, vf04, vf13 + ibgtz vi09, L28 | madday.xyzw ACC, vf05, vf13 + iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L28: + ibne vi05, vi11, L29 | maddw.xyzw vf13, vf07, vf00 + ilw.x vi09, -9(vi01) | mul.xyz vf08, vf08, Q + mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q + mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 + b L30 | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L29: + lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q + nop | mulw.xyzw vf24, vf24, vf29 + lq.xyzw vf25, 0(vi14) | ftoi4.xyzw vf21, vf21 + lq.xyzw vf23, 1(vi11) | mul.xyzw vf13, vf13, vf23 + lq.xyzw vf26, 1(vi14) | add.xyzw vf08, vf08, vf22 + lq.xyzw vf20, 2(vi11) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf27, 2(vi14) | maddy.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 3(vi11) | mulax.xyzw ACC, vf23, vf24 + lq.xyzw vf28, 3(vi14) | maddy.xyzw vf26, vf26, vf24 + lq.xyzw vf20, 4(vi11) | mulax.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi14) | maddy.xyzw vf27, vf27, vf24 + lq.xyzw vf23, 5(vi11) | mulax.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi14) | maddy.xyzw vf28, vf28, vf24 + lq.xyzw vf20, 6(vi11) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf31, 6(vi14) | maddy.xyz vf29, vf29, vf24 + mtir vi11, vf12.x | mulax.xyzw ACC, vf23, vf24 + mtir vi14, vf12.y | maddy.xyz vf30, vf30, vf24 + b L45 | mulax.xyzw ACC, vf20, vf24 + lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 +L30: + ibgez vi09, L31 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L31: + mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 + sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 + sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 + sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 + ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 + 1024.0 | ftoi0.xyzw vf13, vf13 :i + erleng.xyz P, vf12 | maxi.xy vf08, vf08, I + ibne vi06, vi03, L16 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + ibne vi07, vi03, L51 | nop + nop | nop + b L77 | nop + nop | nop +L32: + sq.xyzw vf11, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf11 :i + lqi.xyzw vf10, vi01 | minii.xy vf08, vf08, I + sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 + sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 + lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 + lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 + mtir vi12, vf10.x | itof0.xyzw vf23, vf23 + mtir vi15, vf10.y | maxx.xyzw vf11, vf11, vf00 + sq.xyzw vf09, -4(vi01) | miniw.w vf09, vf09, vf01 + div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 + move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 + iand vi12, vi12, vi05 | add.xyzw vf16, vf16, vf19 + nop | mulax.xyzw ACC, vf04, vf11 + ibgtz vi09, L33 | madday.xyzw ACC, vf05, vf11 + iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L33: + ibne vi05, vi12, L34 | maddw.xyzw vf11, vf07, vf00 + ilw.x vi09, -9(vi01) | mul.xyz vf09, vf09, Q + mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q + mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 + b L35 | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 +L34: + lq.xyzw vf20, 0(vi12) | mul.xyzw vf15, vf15, Q + lq.xyzw vf25, 0(vi15) | ftoi4.xyzw vf21, vf21 + lq.xyzw vf23, 1(vi12) | mul.xyzw vf11, vf11, vf23 + lq.xyzw vf26, 1(vi15) | add.xyzw vf09, vf09, vf22 + lq.xyzw vf20, 2(vi12) | mulaz.xyzw ACC, vf20, vf24 + lq.xyzw vf27, 2(vi15) | maddw.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 3(vi12) | mulaz.xyzw ACC, vf23, vf24 + lq.xyzw vf28, 3(vi15) | maddw.xyzw vf26, vf26, vf24 + lq.xyzw vf20, 4(vi12) | mulaz.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi15) | maddw.xyzw vf27, vf27, vf24 + lq.xyzw vf23, 5(vi12) | mulaz.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi15) | maddw.xyzw vf28, vf28, vf24 + lq.xyzw vf20, 6(vi12) | mulaz.xyzw ACC, vf20, vf24 + lq.xyzw vf31, 6(vi15) | maddw.xyz vf29, vf29, vf24 + lqi.xyzw vf23, vi02 | mulaz.xyzw ACC, vf23, vf24 + mtir vi12, vf13.x | maddw.xyz vf30, vf30, vf24 + mtir vi15, vf13.y | mulaz.xyzw ACC, vf20, vf24 + b L20 | maddw.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L35: + ibgez vi09, L36 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L36: + mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 + sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 + sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 + sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 + ilw.y vi09, -6(vi01) | mulw.xyzw vf12, vf12, vf20 + 1024.0 | ftoi0.xyzw vf11, vf11 :i + erleng.xyz P, vf13 | maxi.xy vf09, vf09, I + ibne vi06, vi03, L37 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 + ibne vi07, vi03, L57 | nop + nop | nop + b L67 | nop + nop | nop +L37: + sq.xyzw vf12, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf12 :i + lqi.xyzw vf08, vi01 | minii.xy vf09, vf09, I + sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 + sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 + lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 + lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 + mtir vi10, vf08.x | itof0.xyzw vf23, vf23 + mtir vi13, vf08.y | maxx.xyzw vf12, vf12, vf00 + sq.xyzw vf10, -4(vi01) | miniw.w vf10, vf10, vf01 + div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 + move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 + iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 + nop | mulax.xyzw ACC, vf04, vf12 + ibgtz vi09, L38 | madday.xyzw ACC, vf05, vf12 + iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L38: + ibne vi05, vi10, L39 | maddw.xyzw vf12, vf07, vf00 + ilw.x vi09, -9(vi01) | mul.xyz vf10, vf10, Q + mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q + mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 + b L40 | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 +L39: + lq.xyzw vf20, 0(vi10) | mul.xyzw vf16, vf16, Q + lq.xyzw vf25, 0(vi13) | ftoi4.xyzw vf21, vf21 + lq.xyzw vf23, 1(vi10) | mul.xyzw vf12, vf12, vf23 + lq.xyzw vf26, 1(vi13) | add.xyzw vf10, vf10, vf22 + lq.xyzw vf20, 2(vi10) | mulaz.xyzw ACC, vf20, vf24 + lq.xyzw vf27, 2(vi13) | maddw.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 3(vi10) | mulaz.xyzw ACC, vf23, vf24 + lq.xyzw vf28, 3(vi13) | maddw.xyzw vf26, vf26, vf24 + lq.xyzw vf20, 4(vi10) | mulaz.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi13) | maddw.xyzw vf27, vf27, vf24 + lq.xyzw vf23, 5(vi10) | mulaz.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi13) | maddw.xyzw vf28, vf28, vf24 + lq.xyzw vf20, 6(vi10) | mulaz.xyzw ACC, vf20, vf24 + lq.xyzw vf31, 6(vi13) | maddw.xyz vf29, vf29, vf24 + lqi.xyzw vf23, vi02 | mulaz.xyzw ACC, vf23, vf24 + mtir vi10, vf11.x | maddw.xyz vf30, vf30, vf24 + mtir vi13, vf11.y | mulaz.xyzw ACC, vf20, vf24 + b L25 | maddw.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L40: + ibgez vi09, L41 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L41: + mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 + sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 + sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 + sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 + ilw.y vi09, -6(vi01) | mulw.xyzw vf13, vf13, vf20 + 1024.0 | ftoi0.xyzw vf12, vf12 :i + erleng.xyz P, vf11 | maxi.xy vf10, vf10, I + ibne vi06, vi03, L42 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + ibne vi07, vi03, L62 | nop + nop | nop + b L72 | nop + nop | nop +L42: + sq.xyzw vf13, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf13 :i + lqi.xyzw vf09, vi01 | minii.xy vf10, vf10, I + sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 + sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 + lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 + lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 + mtir vi11, vf09.x | itof0.xyzw vf23, vf23 + mtir vi14, vf09.y | maxx.xyzw vf13, vf13, vf00 + sq.xyzw vf08, -4(vi01) | miniw.w vf08, vf08, vf01 + div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 + move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 + iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 + nop | mulax.xyzw ACC, vf04, vf13 + ibgtz vi09, L43 | madday.xyzw ACC, vf05, vf13 + iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L43: + ibne vi05, vi11, L44 | maddw.xyzw vf13, vf07, vf00 + ilw.x vi09, -9(vi01) | mul.xyz vf08, vf08, Q + mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q + mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 + b L45 | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L44: + lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q + lq.xyzw vf25, 0(vi14) | ftoi4.xyzw vf21, vf21 + lq.xyzw vf23, 1(vi11) | mul.xyzw vf13, vf13, vf23 + lq.xyzw vf26, 1(vi14) | add.xyzw vf08, vf08, vf22 + lq.xyzw vf20, 2(vi11) | mulaz.xyzw ACC, vf20, vf24 + lq.xyzw vf27, 2(vi14) | maddw.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 3(vi11) | mulaz.xyzw ACC, vf23, vf24 + lq.xyzw vf28, 3(vi14) | maddw.xyzw vf26, vf26, vf24 + lq.xyzw vf20, 4(vi11) | mulaz.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi14) | maddw.xyzw vf27, vf27, vf24 + lq.xyzw vf23, 5(vi11) | mulaz.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi14) | maddw.xyzw vf28, vf28, vf24 + lq.xyzw vf20, 6(vi11) | mulaz.xyzw ACC, vf20, vf24 + lq.xyzw vf31, 6(vi14) | maddw.xyz vf29, vf29, vf24 + lqi.xyzw vf23, vi02 | mulaz.xyzw ACC, vf23, vf24 + mtir vi11, vf12.x | maddw.xyz vf30, vf30, vf24 + mtir vi14, vf12.y | mulaz.xyzw ACC, vf20, vf24 + b L30 | maddw.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L45: + ibgez vi09, L46 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L46: + mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 + sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 + sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 + sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 + ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 + 1024.0 | ftoi0.xyzw vf13, vf13 :i + erleng.xyz P, vf12 | maxi.xy vf08, vf08, I + ibne vi06, vi03, L32 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + ibne vi07, vi03, L57 | nop + nop | nop + b L77 | nop + nop | nop +L47: + lqi.xyzw vf08, vi01 | nop + lqi.xyzw vf24, vi02 | nop + lqi.xyzw vf11, vi01 | nop + lqi.xyzw vf14, vi01 | nop + mtir vi10, vf08.x | nop + mtir vi13, vf08.y | itof0.xyzw vf24, vf24 + nop | add.zw vf08, vf08, vf17 + nop | add.xyzw vf11, vf11, vf18 + iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 + ilw.w vi08, -1(vi02) | mulw.xyzw vf24, vf24, vf29 + iand vi13, vi13, vi05 | nop + lq.xyzw vf20, 0(vi10) | nop + lq.xyzw vf31, 0(vi13) | nop + lq.xyzw vf25, 0(vi08) | nop + lq.xyzw vf23, 1(vi10) | nop + lq.xyzw vf20, 1(vi13) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 2(vi10) | maddz.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 2(vi13) | mulax.xyzw ACC, vf23, vf24 + lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 + lq.xyzw vf20, 3(vi10) | maddz.xyzw vf26, vf26, vf24 + lq.xyzw vf31, 3(vi13) | mulax.xyzw ACC, vf31, vf24 + lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 + lq.xyzw vf23, 4(vi10) | maddz.xyzw vf27, vf27, vf24 + lq.xyzw vf20, 4(vi13) | mulax.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 5(vi10) | maddz.xyzw vf28, vf28, vf24 + lq.xyzw vf23, 5(vi13) | mulax.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 + lq.xyzw vf20, 6(vi10) | maddz.xyz vf29, vf29, vf24 + lq.xyzw vf22, 6(vi13) | mulax.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 + lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 + mtir vi10, vf11.x | mulax.xyzw ACC, vf20, vf24 + mtir vi13, vf11.y | madday.xyzw ACC, vf22, vf24 + lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 + nop | itof0.xyzw vf24, vf23 + nop | mulaz.xyzw ACC, vf29, vf08 + nop | maddaz.xyzw ACC, vf30, vf11 + nop | maddz.xyz vf11, vf31, vf14 + nop | nop + nop | nop + nop | mulaw.xyzw ACC, vf25, vf08 + nop | nop + erleng.xyz P, vf11 | nop + nop | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + lqi.xyzw vf09, vi01 | nop + ilwr.y vi03, vi12 | nop + ilw.z vi07, 1(vi12) | nop + lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 + lqi.xyzw vf15, vi01 | nop + mtir vi11, vf09.x | nop + mtir vi14, vf09.y | nop + sq.xyzw vf08, -4(vi01) | miniw.w vf08, vf08, vf01 + div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 + iadd vi03, vi03, vi12 | add.xyzw vf12, vf12, vf18 + iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 + ilw.w vi08, -1(vi02) | nop + iadd vi07, vi07, vi03 | nop + iand vi14, vi14, vi05 | nop + ibne vi05, vi11, L48 | nop + iaddi vi07, vi07, -0x1 | mul.xyz vf08, vf08, Q + mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q + mtir vi14, vf12.y | nop + b L49 | nop + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L48: + lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q + nop | mulw.xyzw vf24, vf24, vf29 + lq.xyzw vf31, 0(vi14) | nop + lq.xyzw vf25, 0(vi08) | nop + lq.xyzw vf23, 1(vi11) | add.xyzw vf08, vf08, vf22 + lq.xyzw vf20, 1(vi14) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 2(vi11) | maddz.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 2(vi14) | mulax.xyzw ACC, vf23, vf24 + lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 + lq.xyzw vf20, 3(vi11) | maddz.xyzw vf26, vf26, vf24 + lq.xyzw vf31, 3(vi14) | mulax.xyzw ACC, vf31, vf24 + lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 + lq.xyzw vf23, 4(vi11) | maddz.xyzw vf27, vf27, vf24 + lq.xyzw vf20, 4(vi14) | mulax.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 5(vi11) | maddz.xyzw vf28, vf28, vf24 + lq.xyzw vf23, 5(vi14) | mulax.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 + lq.xyzw vf20, 6(vi11) | maddz.xyz vf29, vf29, vf24 + lq.xyzw vf22, 6(vi14) | mulax.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 + lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 + mtir vi11, vf12.x | mulax.xyzw ACC, vf20, vf24 + mtir vi14, vf12.y | madday.xyzw ACC, vf22, vf24 + lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L49: + nop | mulaz.xyzw ACC, vf29, vf09 + nop | maddaz.xyzw ACC, vf30, vf12 + mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 + nop | nop + 1024.0 | miniw.w vf08, vf08, vf03 :i + nop | mulaw.xyzw ACC, vf25, vf09 + ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 + erleng.xyz P, vf12 | maxi.xy vf08, vf08, I + 3072.0 | nop :i + sq.xyzw vf11, -1(vi03) | minii.xy vf08, vf08, I + nop | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 +L50: + lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 + b L52 | madday.xyzw ACC, vf02, vf11 + nop | maddz.xyzw vf11, vf03, vf11 +L51: + sq.xyzw vf11, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf11 :i + lqi.xyzw vf10, vi01 | minii.xy vf08, vf08, I + sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 + sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 +L52: + lqi.xyzw vf13, vi01 | add.xyzw vf09, vf09, vf28 + lqi.xyzw vf16, vi01 | maxw.w vf08, vf08, vf02 + mtir vi12, vf10.x | itof0.xyzw vf23, vf23 + mtir vi15, vf10.y | maxx.xyzw vf11, vf11, vf00 + sq.xyzw vf09, -4(vi01) | miniw.w vf09, vf09, vf01 + div Q, vf01.w, vf09.w | add.zw vf10, vf10, vf17 + move.xyzw vf21, vf08 | add.xyzw vf13, vf13, vf18 + iand vi12, vi12, vi05 | add.xyzw vf16, vf16, vf19 + ilw.w vi08, -1(vi02) | mulax.xyzw ACC, vf04, vf11 + ibgtz vi09, L53 | madday.xyzw ACC, vf05, vf11 + iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L53: + ibne vi05, vi12, L54 | maddw.xyzw vf11, vf07, vf00 + ilw.x vi09, -9(vi01) | mul.xyz vf09, vf09, Q + mtir vi12, vf13.x | mul.xyzw vf15, vf15, Q + mtir vi15, vf13.y | ftoi4.xyzw vf21, vf21 + b L55 | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 +L54: + lq.xyzw vf20, 0(vi12) | mul.xyzw vf15, vf15, Q + nop | mulw.xyzw vf24, vf24, vf29 + lq.xyzw vf31, 0(vi15) | ftoi4.xyzw vf21, vf21 + lq.xyzw vf25, 0(vi08) | mul.xyzw vf11, vf11, vf23 + lq.xyzw vf23, 1(vi12) | add.xyzw vf09, vf09, vf22 + lq.xyzw vf20, 1(vi15) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 2(vi12) | maddz.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 2(vi15) | mulax.xyzw ACC, vf23, vf24 + lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 + lq.xyzw vf20, 3(vi12) | maddz.xyzw vf26, vf26, vf24 + lq.xyzw vf31, 3(vi15) | mulax.xyzw ACC, vf31, vf24 + lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 + lq.xyzw vf23, 4(vi12) | maddz.xyzw vf27, vf27, vf24 + lq.xyzw vf20, 4(vi15) | mulax.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 5(vi12) | maddz.xyzw vf28, vf28, vf24 + lq.xyzw vf23, 5(vi15) | mulax.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 + lq.xyzw vf20, 6(vi12) | maddz.xyz vf29, vf29, vf24 + lq.xyzw vf22, 6(vi15) | mulax.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 + lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 + mtir vi12, vf13.x | mulax.xyzw ACC, vf20, vf24 + mtir vi15, vf13.y | madday.xyzw ACC, vf22, vf24 + lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L55: + ibgez vi09, L56 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L56: + mfp.w vf20, P | maddz.xyz vf13, vf31, vf16 + sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 + sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 + sq.xyzw vf21, 2(vi13) | mulaw.xyzw ACC, vf25, vf10 + ilw.y vi09, -6(vi01) | mulw.xyzw vf12, vf12, vf20 + 1024.0 | ftoi0.xyzw vf11, vf11 :i + erleng.xyz P, vf13 | maxi.xy vf09, vf09, I + ibeq vi07, vi03, L67 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 +L57: + sq.xyzw vf12, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf12 :i + lqi.xyzw vf08, vi01 | minii.xy vf09, vf09, I + sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 + sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 + lqi.xyzw vf11, vi01 | add.xyzw vf10, vf10, vf28 + lqi.xyzw vf14, vi01 | maxw.w vf09, vf09, vf02 + mtir vi10, vf08.x | itof0.xyzw vf23, vf23 + mtir vi13, vf08.y | maxx.xyzw vf12, vf12, vf00 + sq.xyzw vf10, -4(vi01) | miniw.w vf10, vf10, vf01 + div Q, vf01.w, vf10.w | add.zw vf08, vf08, vf17 + move.xyzw vf21, vf09 | add.xyzw vf11, vf11, vf18 + iand vi10, vi10, vi05 | add.xyzw vf14, vf14, vf19 + ilw.w vi08, -1(vi02) | mulax.xyzw ACC, vf04, vf12 + ibgtz vi09, L58 | madday.xyzw ACC, vf05, vf12 + iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L58: + ibne vi05, vi10, L59 | maddw.xyzw vf12, vf07, vf00 + ilw.x vi09, -9(vi01) | mul.xyz vf10, vf10, Q + mtir vi10, vf11.x | mul.xyzw vf16, vf16, Q + mtir vi13, vf11.y | ftoi4.xyzw vf21, vf21 + b L60 | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 +L59: + lq.xyzw vf20, 0(vi10) | mul.xyzw vf16, vf16, Q + nop | mulw.xyzw vf24, vf24, vf29 + lq.xyzw vf31, 0(vi13) | ftoi4.xyzw vf21, vf21 + lq.xyzw vf25, 0(vi08) | mul.xyzw vf12, vf12, vf23 + lq.xyzw vf23, 1(vi10) | add.xyzw vf10, vf10, vf22 + lq.xyzw vf20, 1(vi13) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 2(vi10) | maddz.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 2(vi13) | mulax.xyzw ACC, vf23, vf24 + lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 + lq.xyzw vf20, 3(vi10) | maddz.xyzw vf26, vf26, vf24 + lq.xyzw vf31, 3(vi13) | mulax.xyzw ACC, vf31, vf24 + lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 + lq.xyzw vf23, 4(vi10) | maddz.xyzw vf27, vf27, vf24 + lq.xyzw vf20, 4(vi13) | mulax.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 5(vi10) | maddz.xyzw vf28, vf28, vf24 + lq.xyzw vf23, 5(vi13) | mulax.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 + lq.xyzw vf20, 6(vi10) | maddz.xyz vf29, vf29, vf24 + lq.xyzw vf22, 6(vi13) | mulax.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 + lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 + mtir vi10, vf11.x | mulax.xyzw ACC, vf20, vf24 + mtir vi13, vf11.y | madday.xyzw ACC, vf22, vf24 + lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L60: + ibgez vi09, L61 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L61: + mfp.w vf20, P | maddz.xyz vf11, vf31, vf14 + sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 + sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 + sq.xyzw vf21, 2(vi14) | mulaw.xyzw ACC, vf25, vf08 + ilw.y vi09, -6(vi01) | mulw.xyzw vf13, vf13, vf20 + 1024.0 | ftoi0.xyzw vf12, vf12 :i + erleng.xyz P, vf11 | maxi.xy vf10, vf10, I + ibeq vi07, vi03, L72 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 +L62: + sq.xyzw vf13, -1(vi03) | nop + 3072.0 | mulax.xyzw ACC, vf01, vf13 :i + lqi.xyzw vf09, vi01 | minii.xy vf10, vf10, I + sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 + sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 + lqi.xyzw vf12, vi01 | add.xyzw vf08, vf08, vf28 + lqi.xyzw vf15, vi01 | maxw.w vf10, vf10, vf02 + mtir vi11, vf09.x | itof0.xyzw vf23, vf23 + mtir vi14, vf09.y | maxx.xyzw vf13, vf13, vf00 + sq.xyzw vf08, -4(vi01) | miniw.w vf08, vf08, vf01 + div Q, vf01.w, vf08.w | add.zw vf09, vf09, vf17 + move.xyzw vf21, vf10 | add.xyzw vf12, vf12, vf18 + iand vi11, vi11, vi05 | add.xyzw vf15, vf15, vf19 + ilw.w vi08, -1(vi02) | mulax.xyzw ACC, vf04, vf13 + ibgtz vi09, L63 | madday.xyzw ACC, vf05, vf13 + iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L63: + ibne vi05, vi11, L64 | maddw.xyzw vf13, vf07, vf00 + ilw.x vi09, -9(vi01) | mul.xyz vf08, vf08, Q + mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q + mtir vi14, vf12.y | ftoi4.xyzw vf21, vf21 + b L65 | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L64: + lq.xyzw vf20, 0(vi11) | mul.xyzw vf14, vf14, Q + nop | mulw.xyzw vf24, vf24, vf29 + lq.xyzw vf31, 0(vi14) | ftoi4.xyzw vf21, vf21 + lq.xyzw vf25, 0(vi08) | mul.xyzw vf13, vf13, vf23 + lq.xyzw vf23, 1(vi11) | add.xyzw vf08, vf08, vf22 + lq.xyzw vf20, 1(vi14) | mulax.xyzw ACC, vf20, vf24 + lq.xyzw vf26, 1(vi08) | madday.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 2(vi11) | maddz.xyzw vf25, vf25, vf24 + lq.xyzw vf23, 2(vi14) | mulax.xyzw ACC, vf23, vf24 + lq.xyzw vf27, 2(vi08) | madday.xyzw ACC, vf20, vf24 + lq.xyzw vf20, 3(vi11) | maddz.xyzw vf26, vf26, vf24 + lq.xyzw vf31, 3(vi14) | mulax.xyzw ACC, vf31, vf24 + lq.xyzw vf28, 3(vi08) | madday.xyzw ACC, vf23, vf24 + lq.xyzw vf23, 4(vi11) | maddz.xyzw vf27, vf27, vf24 + lq.xyzw vf20, 4(vi14) | mulax.xyzw ACC, vf20, vf24 + lq.xyz vf29, 4(vi08) | madday.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 5(vi11) | maddz.xyzw vf28, vf28, vf24 + lq.xyzw vf23, 5(vi14) | mulax.xyzw ACC, vf23, vf24 + lq.xyz vf30, 5(vi08) | madday.xyzw ACC, vf20, vf24 + lq.xyzw vf20, 6(vi11) | maddz.xyz vf29, vf29, vf24 + lq.xyzw vf22, 6(vi14) | mulax.xyzw ACC, vf31, vf24 + lq.xyzw vf31, 6(vi08) | madday.xyzw ACC, vf23, vf24 + lqi.xyzw vf23, vi02 | maddz.xyz vf30, vf30, vf24 + mtir vi11, vf12.x | mulax.xyzw ACC, vf20, vf24 + mtir vi14, vf12.y | madday.xyzw ACC, vf22, vf24 + lq.xyzw vf22, 2(vi00) | maddz.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L65: + ibgez vi09, L66 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L66: + mfp.w vf20, P | maddz.xyz vf12, vf31, vf15 + sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 + sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 + sq.xyzw vf21, 2(vi15) | mulaw.xyzw ACC, vf25, vf09 + ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 + 1024.0 | ftoi0.xyzw vf13, vf13 :i + erleng.xyz P, vf12 | maxi.xy vf08, vf08, I + ibne vi07, vi03, L51 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + b L77 | nop + nop | nop +L67: + 3072.0 | mulax.xyzw ACC, vf01, vf12 :i + sq.xyzw vf12, -1(vi03) | minii.xy vf09, vf09, I + sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 + sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 + iaddiu vi05, vi00, 0x173 | add.xyzw vf10, vf10, vf28 + lq.xyzw vf26, 1(vi00) | maxw.w vf09, vf09, vf02 + iaddi vi08, vi00, 0x1 | itof0.xyzw vf23, vf23 + isw.x vi08, -2(vi05) | maxx.xyzw vf12, vf12, vf00 + sq.xyzw vf10, -1(vi01) | miniw.w vf10, vf10, vf01 + div Q, vf01.w, vf10.w | nop + move.xyzw vf21, vf09 | nop + iaddiu vi08, vi00, 0x42 | nop + isw.z vi08, -1(vi05) | mulax.xyzw ACC, vf04, vf12 + ibgtz vi09, L68 | madday.xyzw ACC, vf05, vf12 + isw.x vi00, -1(vi05) | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L68: + sq.yzw vf26, -2(vi05) | maddw.xyzw vf12, vf07, vf00 + ilw.x vi09, -6(vi01) | mul.xyz vf10, vf10, Q + iaddiu vi08, vi00, 0x171 | mul.xyzw vf16, vf16, Q + nop | ftoi4.xyzw vf21, vf21 + nop | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 + ibgez vi09, L69 | nop + sq.xyzw vf21, 2(vi11) | nop + nop | ftoi4.xyzw vf21, vf09 +L69: + mfp.w vf20, P | nop + sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 + sq.xyzw vf15, 0(vi14) | miniw.w vf10, vf10, vf03 + sq.xyzw vf21, 2(vi14) | nop + ilw.y vi09, -3(vi01) | mulw.xyzw vf13, vf13, vf20 + 1024.0 | ftoi0.xyzw vf12, vf12 :i + nop | maxi.xy vf10, vf10, I + nop | nop + 3072.0 | mulax.xyzw ACC, vf01, vf13 :i + sq.xyzw vf13, -1(vi03) | minii.xy vf10, vf10, I + sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 + sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 + nop | nop + nop | maxw.w vf10, vf10, vf02 + nop | itof0.xyzw vf23, vf23 + nop | maxx.xyzw vf13, vf13, vf00 + nop | nop + move.xyzw vf21, vf10 | nop + nop | nop + nop | mulax.xyzw ACC, vf04, vf13 + ibgtz vi09, L70 | madday.xyzw ACC, vf05, vf13 + nop | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L70: + nop | maddw.xyzw vf13, vf07, vf00 + ilw.x vi09, -3(vi01) | nop + xtop vi05 | nop + iaddiu vi05, vi05, 0x8c | ftoi4.xyzw vf21, vf21 + ilwr.z vi01, vi05 | mul.xyzw vf13, vf13, vf23 + ilwr.y vi03, vi05 | nop + ibgez vi09, L71 | nop + sq.xyzw vf21, 2(vi12) | nop + nop | ftoi4.xyzw vf21, vf10 +L71: + nop | nop + sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 + sq.xyzw vf16, 0(vi15) | nop + sq.xyzw vf21, 2(vi15) | nop + nop | nop + nop | ftoi0.xyzw vf13, vf13 + lq.xyzw vf23, 124(vi00) | nop + iadd vi01, vi01, vi05 | nop + iadd vi03, vi03, vi05 | nop + sq.xyzw vf13, 1(vi12) | nop + b L82 | nop + sq.xyzw vf13, 1(vi15) | nop +L72: + 3072.0 | mulax.xyzw ACC, vf01, vf13 :i + sq.xyzw vf13, -1(vi03) | minii.xy vf10, vf10, I + sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 + sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 + iaddiu vi05, vi00, 0x173 | add.xyzw vf08, vf08, vf28 + lq.xyzw vf26, 1(vi00) | maxw.w vf10, vf10, vf02 + iaddi vi08, vi00, 0x1 | itof0.xyzw vf23, vf23 + isw.x vi08, -2(vi05) | maxx.xyzw vf13, vf13, vf00 + sq.xyzw vf08, -1(vi01) | miniw.w vf08, vf08, vf01 + div Q, vf01.w, vf08.w | nop + move.xyzw vf21, vf10 | nop + iaddiu vi08, vi00, 0x42 | nop + isw.z vi08, -1(vi05) | mulax.xyzw ACC, vf04, vf13 + ibgtz vi09, L73 | madday.xyzw ACC, vf05, vf13 + isw.x vi00, -1(vi05) | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L73: + sq.yzw vf26, -2(vi05) | maddw.xyzw vf13, vf07, vf00 + ilw.x vi09, -6(vi01) | mul.xyz vf08, vf08, Q + iaddiu vi08, vi00, 0x171 | mul.xyzw vf14, vf14, Q + nop | ftoi4.xyzw vf21, vf21 + nop | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 + ibgez vi09, L74 | nop + sq.xyzw vf21, 2(vi12) | nop + nop | ftoi4.xyzw vf21, vf10 +L74: + mfp.w vf20, P | nop + sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 + sq.xyzw vf16, 0(vi15) | miniw.w vf08, vf08, vf03 + sq.xyzw vf21, 2(vi15) | nop + ilw.y vi09, -3(vi01) | mulw.xyzw vf11, vf11, vf20 + 1024.0 | ftoi0.xyzw vf13, vf13 :i + nop | maxi.xy vf08, vf08, I + nop | nop + 3072.0 | mulax.xyzw ACC, vf01, vf11 :i + sq.xyzw vf11, -1(vi03) | minii.xy vf08, vf08, I + sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 + sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 + nop | nop + nop | maxw.w vf08, vf08, vf02 + nop | itof0.xyzw vf23, vf23 + nop | maxx.xyzw vf11, vf11, vf00 + nop | nop + move.xyzw vf21, vf08 | nop + nop | nop + nop | mulax.xyzw ACC, vf04, vf11 + ibgtz vi09, L75 | madday.xyzw ACC, vf05, vf11 + nop | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L75: + nop | maddw.xyzw vf11, vf07, vf00 + ilw.x vi09, -3(vi01) | nop + xtop vi05 | nop + iaddiu vi05, vi05, 0x8c | ftoi4.xyzw vf21, vf21 + ilwr.z vi01, vi05 | mul.xyzw vf11, vf11, vf23 + ilwr.y vi03, vi05 | nop + ibgez vi09, L76 | nop + sq.xyzw vf21, 2(vi10) | nop + nop | ftoi4.xyzw vf21, vf08 +L76: + nop | nop + sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 + sq.xyzw vf14, 0(vi13) | nop + sq.xyzw vf21, 2(vi13) | nop + nop | nop + nop | ftoi0.xyzw vf11, vf11 + lq.xyzw vf23, 124(vi00) | nop + iadd vi01, vi01, vi05 | nop + iadd vi03, vi03, vi05 | nop + sq.xyzw vf11, 1(vi10) | nop + b L82 | nop + sq.xyzw vf11, 1(vi13) | nop +L77: + 3072.0 | mulax.xyzw ACC, vf01, vf11 :i + sq.xyzw vf11, -1(vi03) | minii.xy vf08, vf08, I + sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 + sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 + iaddiu vi05, vi00, 0x173 | add.xyzw vf09, vf09, vf28 + lq.xyzw vf26, 1(vi00) | maxw.w vf08, vf08, vf02 + iaddi vi08, vi00, 0x1 | itof0.xyzw vf23, vf23 + isw.x vi08, -2(vi05) | maxx.xyzw vf11, vf11, vf00 + sq.xyzw vf09, -1(vi01) | miniw.w vf09, vf09, vf01 + div Q, vf01.w, vf09.w | nop + move.xyzw vf21, vf08 | nop + iaddiu vi08, vi00, 0x42 | nop + isw.z vi08, -1(vi05) | mulax.xyzw ACC, vf04, vf11 + ibgtz vi09, L78 | madday.xyzw ACC, vf05, vf11 + isw.x vi00, -1(vi05) | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L78: + sq.yzw vf26, -2(vi05) | maddw.xyzw vf11, vf07, vf00 + ilw.x vi09, -6(vi01) | mul.xyz vf09, vf09, Q + iaddiu vi08, vi00, 0x171 | mul.xyzw vf15, vf15, Q + nop | ftoi4.xyzw vf21, vf21 + nop | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 + ibgez vi09, L79 | nop + sq.xyzw vf21, 2(vi10) | nop + nop | ftoi4.xyzw vf21, vf08 +L79: + mfp.w vf20, P | nop + sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 + sq.xyzw vf14, 0(vi13) | miniw.w vf09, vf09, vf03 + sq.xyzw vf21, 2(vi13) | nop + ilw.y vi09, -3(vi01) | mulw.xyzw vf12, vf12, vf20 + 1024.0 | ftoi0.xyzw vf11, vf11 :i + nop | maxi.xy vf09, vf09, I + nop | nop + 3072.0 | mulax.xyzw ACC, vf01, vf12 :i + sq.xyzw vf12, -1(vi03) | minii.xy vf09, vf09, I + sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 + sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 + nop | nop + nop | maxw.w vf09, vf09, vf02 + nop | itof0.xyzw vf23, vf23 + nop | maxx.xyzw vf12, vf12, vf00 + nop | nop + move.xyzw vf21, vf09 | nop + nop | nop + nop | mulax.xyzw ACC, vf04, vf12 + ibgtz vi09, L80 | madday.xyzw ACC, vf05, vf12 + nop | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L80: + nop | maddw.xyzw vf12, vf07, vf00 + ilw.x vi09, -3(vi01) | nop + xtop vi05 | nop + iaddiu vi05, vi05, 0x8c | ftoi4.xyzw vf21, vf21 + ilwr.z vi01, vi05 | mul.xyzw vf12, vf12, vf23 + ilwr.y vi03, vi05 | nop + ibgez vi09, L81 | nop + sq.xyzw vf21, 2(vi11) | nop + nop | ftoi4.xyzw vf21, vf09 +L81: + nop | nop + sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 + sq.xyzw vf15, 0(vi14) | nop + sq.xyzw vf21, 2(vi14) | nop + nop | nop + nop | ftoi0.xyzw vf12, vf12 + lq.xyzw vf23, 124(vi00) | nop + iadd vi01, vi01, vi05 | nop + iadd vi03, vi03, vi05 | nop + sq.xyzw vf12, 1(vi11) | nop + sq.xyzw vf12, 1(vi14) | nop +L82: + xgkick vi08 | nop + lq.xyzw vf08, 2(vi01) | nop + lqi.xyzw vf10, vi03 | nop + ilw.x vi04, 1(vi05) | nop + ilw.y vi06, 1(vi05) | nop + ilw.z vi07, 1(vi05) | mul.xyzw vf09, vf08, vf23 + iadd vi04, vi04, vi06 | subw.z vf10, vf10, vf00 + iaddi vi01, vi01, 0x3 | nop + iadd vi04, vi04, vi07 | nop + iadd vi02, vi03, vi04 | addw.z vf09, vf00, vf09 + iaddi vi02, vi02, 0x2 | nop + lq.xyzw vf14, 118(vi00) | maxw.xyzw vf21, vf00, vf00 + lq.xyzw vf26, 371(vi00) | nop + nop | mul.xyz vf15, vf09, vf10 + lq.xyzw vf27, 119(vi00) | nop + nop | nop + lq.xyzw vf28, 120(vi00) | nop + nop | adday.xyzw vf15, vf15 + lq.xyzw vf31, 121(vi00) | maddz.x vf15, vf21, vf15 + nop | nop + sq.xyzw vf26, 813(vi00) | nop + lq.xyzw vf08, 2(vi01) | nop + lqi.xyzw vf11, vi03 | nop + div Q, vf15.x, vf10.z | nop + sq.xyzw vf27, 814(vi00) | mulaw.xyzw ACC, vf09, vf00 + nop | mul.xyzw vf09, vf08, vf23 + sq.xyzw vf28, 815(vi00) | subw.z vf11, vf11, vf00 + iaddi vi01, vi01, 0x3 | nop + sq.xyzw vf31, 816(vi00) | nop + nop | addw.z vf09, vf00, vf09 + lq.xyzw vf26, 0(vi00) | madd.xyzw vf10, vf10, Q + nop | nop + lq.xyzw vf27, 122(vi00) | nop + nop | mul.xyz vf15, vf09, vf11 + eleng.xyz P, vf10 | nop + lq.xyzw vf28, 123(vi00) | nop + nop | nop + lq.xyzw vf31, 377(vi00) | adday.xyzw vf15, vf15 + nop | maddz.x vf15, vf21, vf15 + mr32.xyzw vf26, vf26 | nop + nop | nop + lq.xyzw vf08, 2(vi01) | nop + lqi.xyzw vf12, vi03 | nop + div Q, vf15.x, vf11.z | nop + mr32.xyzw vf26, vf26 | mulaw.xyzw ACC, vf09, vf00 + sq.xyzw vf27, 817(vi00) | mul.xyzw vf09, vf08, vf23 + lq.xyzw vf25, -5(vi01) | subw.z vf12, vf12, vf00 + iaddi vi01, vi01, 0x3 | nop + sq.xyzw vf28, 818(vi00) | nop + nop | addw.z vf09, vf00, vf09 + sq.xyzw vf31, 819(vi00) | madd.xyzw vf11, vf11, Q + nop | nop + mfp.w vf10, P | nop + sq.y vf26, 819(vi00) | mul.xyz vf15, vf09, vf12 + eleng.xyz P, vf11 | nop + nop | nop + div Q, vf23.z, vf10.w | nop + nop | adday.xyzw vf15, vf15 + nop | maddz.x vf15, vf21, vf15 + nop | nop + nop | add.xyzw vf25, vf25, vf18 +L83: + lq.xyzw vf08, 2(vi01) | nop + lqi.xyzw vf13, vi03 | addaz.xyzw vf00, vf23 + div Q, vf15.x, vf12.z | madd.xyzw vf10, vf10, Q + mtir vi10, vf25.x | mulaw.xyzw ACC, vf09, vf00 + mtir vi13, vf25.y | mul.xyzw vf09, vf08, vf23 + lq.xyzw vf25, -5(vi01) | subw.z vf13, vf13, vf00 + iaddi vi01, vi01, 0x3 | nop + lq.xyzw vf24, 0(vi10) | nop + lq.xyzw vf16, 2(vi10) | addw.z vf09, vf00, vf09 + lq.xyzw vf20, 2(vi13) | madd.xyzw vf12, vf12, Q + sq.xyzw vf14, 443(vi10) | nop + mfp.w vf11, P | nop + sq.xyzw vf14, 443(vi13) | mul.xyz vf15, vf09, vf13 + eleng.xyz P, vf12 | mulz.xy vf24, vf10, vf24 + sq.xyzw vf16, 444(vi10) | nop + div Q, vf23.z, vf11.w | nop + sq.xyzw vf20, 444(vi13) | adday.xyzw vf15, vf15 + sq.xyzw vf24, 442(vi10) | maddz.x vf15, vf21, vf15 + ibeq vi02, vi03, L84 | nop + sq.xyzw vf24, 442(vi13) | add.xyzw vf25, vf25, vf18 + lq.xyzw vf08, 2(vi01) | nop + lqi.xyzw vf10, vi03 | addaz.xyzw vf00, vf23 + div Q, vf15.x, vf13.z | madd.xyzw vf11, vf11, Q + mtir vi10, vf25.x | mulaw.xyzw ACC, vf09, vf00 + mtir vi13, vf25.y | mul.xyzw vf09, vf08, vf23 + lq.xyzw vf25, -5(vi01) | subw.z vf10, vf10, vf00 + iaddi vi01, vi01, 0x3 | nop + lq.xyzw vf24, 0(vi10) | nop + lq.xyzw vf16, 2(vi10) | addw.z vf09, vf00, vf09 + lq.xyzw vf20, 2(vi13) | madd.xyzw vf13, vf13, Q + sq.xyzw vf14, 443(vi10) | nop + mfp.w vf12, P | nop + sq.xyzw vf14, 443(vi13) | mul.xyz vf15, vf09, vf10 + eleng.xyz P, vf13 | mulz.xy vf24, vf11, vf24 + sq.xyzw vf16, 444(vi10) | nop + div Q, vf23.z, vf12.w | nop + sq.xyzw vf20, 444(vi13) | adday.xyzw vf15, vf15 + sq.xyzw vf24, 442(vi10) | maddz.x vf15, vf21, vf15 + ibeq vi02, vi03, L84 | nop + sq.xyzw vf24, 442(vi13) | add.xyzw vf25, vf25, vf18 + lq.xyzw vf08, 2(vi01) | nop + lqi.xyzw vf11, vi03 | addaz.xyzw vf00, vf23 + div Q, vf15.x, vf10.z | madd.xyzw vf12, vf12, Q + mtir vi10, vf25.x | mulaw.xyzw ACC, vf09, vf00 + mtir vi13, vf25.y | mul.xyzw vf09, vf08, vf23 + lq.xyzw vf25, -5(vi01) | subw.z vf11, vf11, vf00 + iaddi vi01, vi01, 0x3 | nop + lq.xyzw vf24, 0(vi10) | nop + lq.xyzw vf16, 2(vi10) | addw.z vf09, vf00, vf09 + lq.xyzw vf20, 2(vi13) | madd.xyzw vf10, vf10, Q + sq.xyzw vf14, 443(vi10) | nop + mfp.w vf13, P | nop + sq.xyzw vf14, 443(vi13) | mul.xyz vf15, vf09, vf11 + eleng.xyz P, vf10 | mulz.xy vf24, vf12, vf24 + sq.xyzw vf16, 444(vi10) | nop + div Q, vf23.z, vf13.w | nop + sq.xyzw vf20, 444(vi13) | adday.xyzw vf15, vf15 + sq.xyzw vf24, 442(vi10) | maddz.x vf15, vf21, vf15 + ibeq vi02, vi03, L84 | nop + sq.xyzw vf24, 442(vi13) | add.xyzw vf25, vf25, vf18 + lq.xyzw vf08, 2(vi01) | nop + lqi.xyzw vf12, vi03 | addaz.xyzw vf00, vf23 + div Q, vf15.x, vf11.z | madd.xyzw vf13, vf13, Q + mtir vi10, vf25.x | mulaw.xyzw ACC, vf09, vf00 + mtir vi13, vf25.y | mul.xyzw vf09, vf08, vf23 + lq.xyzw vf25, -5(vi01) | subw.z vf12, vf12, vf00 + iaddi vi01, vi01, 0x3 | nop + lq.xyzw vf24, 0(vi10) | nop + lq.xyzw vf16, 2(vi10) | addw.z vf09, vf00, vf09 + lq.xyzw vf20, 2(vi13) | madd.xyzw vf11, vf11, Q + sq.xyzw vf14, 443(vi10) | nop + mfp.w vf10, P | nop + sq.xyzw vf14, 443(vi13) | mul.xyz vf15, vf09, vf12 + eleng.xyz P, vf11 | mulz.xy vf24, vf13, vf24 + sq.xyzw vf16, 444(vi10) | nop + div Q, vf23.z, vf10.w | nop + sq.xyzw vf20, 444(vi13) | adday.xyzw vf15, vf15 + sq.xyzw vf24, 442(vi10) | maddz.x vf15, vf21, vf15 + ibne vi02, vi03, L83 | nop + sq.xyzw vf24, 442(vi13) | add.xyzw vf25, vf25, vf18 +L84: + iaddiu vi08, vi00, 0x32d | nop + xgkick vi08 | nop + nop | nop :e + nop | nop diff --git a/test/decompiler/vu_reference/jak2/emerc-vu1.txt b/test/decompiler/vu_reference/jak2/emerc-vu1.txt new file mode 100644 index 0000000000..6184dac63b --- /dev/null +++ b/test/decompiler/vu_reference/jak2/emerc-vu1.txt @@ -0,0 +1,2778 @@ + .word 0x56b + .word 0x0 + .word 0x2b6 + .word 0x0 + .word 0x1e10007 + .word 0x2ff + .word 0x1f90003 + .word 0x2ff + .word 0x1fa0004 + .word 0x2ff + .word 0x1fb0005 + .word 0x2ff + .word 0x1fc0006 + .word 0x2ff + .word 0x1e80008 + .word 0x2ff + .word 0x81e10b3d + .word 0x2ff + .word 0x8099d33c + .word 0x2ff + .word 0x8079db3c + .word 0x2ff + .word 0x3e0c803 + .word 0x2ff + .word 0x3e0407c + .word 0x2ff + .word 0x45000000 + .word 0x800002ff + .word 0x437f0000 + .word 0x8100045d + .word 0xc7800080 + .word 0x8080045d + .word 0x81e20b3d + .word 0x40045f + .word 0x1f60002 + .word 0x40049f + .word 0x3b808081 + .word 0x804004df + .word 0x3e0e004 + .word 0x4020075f + .word 0x81e3133d + .word 0x2ff + .word 0x1f9008b + .word 0x2ff + .word 0x1fa0003 + .word 0x2ff + .word 0x1c10084 + .word 0x2ff + .word 0x1c20085 + .word 0x2ff + .word 0x1c30086 + .word 0x19904c1 + .word 0x1e40087 + .word 0x1f9d698 + .word 0x1e50088 + .word 0x2ff + .word 0x1e60089 + .word 0x2ff + .word 0x1e7008a + .word 0x2ff + .word 0x3e0d005 + .word 0x2ff + .word 0x1fc008b + .word 0x1e003d4 + .word 0x800f06bc + .word 0x2ff + .word 0x100c788c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x802363fe + .word 0x19c0492 + .word 0x100f0173 + .word 0x2ff + .word 0x1ee0000 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x800c18f0 + .word 0x2ff + .word 0x80291bfe + .word 0x2ff + .word 0x81fb1b7c + .word 0x2ff + .word 0x9046001 + .word 0x2ff + .word 0x1005007f + .word 0x1c07bc3 + .word 0x80054a74 + .word 0x2ff + .word 0x8866001 + .word 0x3b04d6 + .word 0x80000030 + .word 0x3b0495 + .word 0x804163fe + .word 0x3b0454 + .word 0x1ed0001 + .word 0x2ff + .word 0x80221bfe + .word 0x2ff + .word 0x81e81b7c + .word 0x2ff + .word 0x81e91b7c + .word 0x2ff + .word 0x81ea1b7c + .word 0x2ff + .word 0x81eb1b7c + .word 0x2ff + .word 0x81ec1b7c + .word 0x2ff + .word 0x800f10b0 + .word 0x2ff + .word 0x80684bfc + .word 0x2ff + .word 0x81e26b7d + .word 0x2ff + .word 0x81e2437d + .word 0x2ff + .word 0x81e24b7d + .word 0x2ff + .word 0x810e43fd + .word 0x2ff + .word 0x81e2537d + .word 0x2ff + .word 0x81e25b7d + .word 0x2ff + .word 0x81e2637d + .word 0x2ff + .word 0x3e27000 + .word 0x2ff + .word 0x1fc0003 + .word 0x2ff + .word 0x8886003 + .word 0x2ff + .word 0x1f00005 + .word 0x2ff + .word 0x1f40004 + .word 0x2ff + .word 0x8496003 + .word 0x1efe6ea + .word 0x800042f5 + .word 0x1e0e72a + .word 0x5000402a + .word 0x1ef83ea + .word 0x800d60f2 + .word 0x1e0842a + .word 0x1e84000 + .word 0x1e0a03c + .word 0x1ea4001 + .word 0x1f9dabd + .word 0x1ec4002 + .word 0x1f9e68a + .word 0x1f94003 + .word 0x2ff + .word 0x3eb4800 + .word 0x1e87abe + .word 0x3eb5801 + .word 0x1e8824a + .word 0x3eb6802 + .word 0x1ea7abe + .word 0x3ebd003 + .word 0x1ea82ca + .word 0x50004020 + .word 0x1ec7abe + .word 0x802a6bfe + .word 0x1ec834a + .word 0x1e84800 + .word 0x1e0a03c + .word 0x1ea4801 + .word 0x1f9dabd + .word 0x1ec4802 + .word 0x1f9e68a + .word 0x1f94803 + .word 0x2ff + .word 0x3e84800 + .word 0x1e87abe + .word 0x3e85801 + .word 0x1e8824a + .word 0x3e86802 + .word 0x1ea7abe + .word 0x3e8d003 + .word 0x1ea82ca + .word 0x50004816 + .word 0x1ec7abe + .word 0x90b6801 + .word 0x1ec834a + .word 0x1e85000 + .word 0x1e0a03c + .word 0x1ea5001 + .word 0x1f9dabd + .word 0x1ec5002 + .word 0x1f9e68a + .word 0x1f95003 + .word 0x2ff + .word 0x3e94800 + .word 0x1e87abe + .word 0x3e95801 + .word 0x1e8824a + .word 0x3e96802 + .word 0x1ea7abe + .word 0x3e9d003 + .word 0x1ea82ca + .word 0x5000500c + .word 0x1ec7abe + .word 0x8886801 + .word 0x1ec834a + .word 0x1e85800 + .word 0x1e0a03c + .word 0x1ea5801 + .word 0x1f9dabd + .word 0x1ec5802 + .word 0x1f9e68a + .word 0x1f95803 + .word 0x2ff + .word 0x3ea4800 + .word 0x1e87abe + .word 0x3ea5801 + .word 0x1e8824a + .word 0x3ea6802 + .word 0x1ea7abe + .word 0x3ead003 + .word 0x1ea82ca + .word 0x800d6872 + .word 0x2ff + .word 0x52005fd8 + .word 0x1ec7abe + .word 0x80496bfe + .word 0x1ec834a + .word 0x9026003 + .word 0x2ff + .word 0x500020b6 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x81080bfe + .word 0x2ff + .word 0x81e80b7c + .word 0x2ff + .word 0x81eb0b7c + .word 0x2ff + .word 0x81ee0b7c + .word 0x2ff + .word 0x1dd4004 + .word 0x2ff + .word 0x1de4005 + .word 0x714228 + .word 0x1ff4006 + .word 0x1f25ae8 + .word 0x800427f2 + .word 0x1f373a8 + .word 0x800c10b0 + .word 0x2ff + .word 0x81f8137c + .word 0x1e8e9be + .word 0x800a5bfc + .word 0x1ebf0be + .word 0x802d5bfc + .word 0x1cefaca + .word 0x1f94000 + .word 0x2ff + .word 0x1fa4001 + .word 0x1f8c13c + .word 0x1fb4002 + .word 0x2ff + .word 0x81c05f3f + .word 0x2ff + .word 0x1fc4003 + .word 0x1e8c9bf + .word 0x80000030 + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .word 0x81e90b7c + .word 0x2ff + .word 0x808363fe + .word 0x2ff + .word 0x8476001 + .word 0x2ff + .word 0x81ec0b7c + .word 0x1fc4228 + .word 0x81ef0b7c + .word 0x2ff + .word 0x80084bfc + .word 0x2ff + .word 0x3e147fc + .word 0x214217 + .word 0x800c18f0 + .word 0x2ff + .word 0x81e80bbc + .word 0x714a68 + .word 0x80032130 + .word 0x1f26328 + .word 0x1dd4004 + .word 0x1f37be8 + .word 0x1de4005 + .word 0x2ff + .word 0x800431b0 + .word 0x2ff + .word 0x1ff4006 + .word 0x2ff + .word 0x1f94000 + .word 0x2ff + .word 0x1fa4001 + .word 0x1c0421c + .word 0x800b63fc + .word 0x1e0739c + .word 0x802e63fc + .word 0x2ff + .word 0x1fb4002 + .word 0x2ff + .word 0x81f71b7c + .word 0x1f64228 + .word 0x800639f0 + .word 0x1e9e9be + .word 0x1fc4003 + .word 0x1ecf0be + .word 0x8034067c + .word 0x1cffb0a + .word 0x80000030 + .word 0x2ff + .word 0x44800000 + .word 0x80234217 + .word 0x80000030 + .word 0x1e9c9bf + .word 0x8890ffa + .word 0x1f45adb + .word 0x81c0673f + .word 0x180421d + .word 0x45400000 + .word 0x800002ff + .word 0x80000030 + .word 0x180421f + .word 0x3e35fff + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x81ea0b7c + .word 0x1eb09bc + .word 0x5204180a + .word 0x1eb10bd + .word 0x80000030 + .word 0x1eb1aca + .word 0x520618e2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400002a9 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e35fff + .word 0x2ff + .word 0x45400000 + .word 0x81eb09bc + .word 0x81ea0b7c + .word 0x180421f + .word 0x3ec6801 + .word 0x1eb10bd + .word 0x3ef6801 + .word 0x1eb1aca + .word 0x81ed0b7c + .word 0x1fc4a68 + .word 0x81f00b7c + .word 0x224213 + .word 0x800853fc + .word 0x1f7b93c + .word 0x8890ff7 + .word 0x1e05ad0 + .word 0x3e14ffc + .word 0x214a57 + .word 0x81e90bbc + .word 0x7152a8 + .word 0x81f5433c + .word 0x1f26b68 + .word 0x1dd4004 + .word 0x1f38428 + .word 0x1de4005 + .word 0x1eb21bc + .word 0x5a004802 + .word 0x1eb28bd + .word 0x1ff4006 + .word 0x1eb30be + .word 0x80000030 + .word 0x31ad40 + .word 0x1f94000 + .word 0x1e03acb + .word 0x1fa4001 + .word 0x1c04a5c + .word 0x800c6bfc + .word 0x1e07bdc + .word 0x802f6bfc + .word 0x1f5a97d + .word 0x1fb4002 + .word 0x1f75aea + .word 0x81f71b7c + .word 0x1f64a68 + .word 0x52004802 + .word 0x1eae9be + .word 0x3eaa802 + .word 0x1edf0be + .word 0x80000030 + .word 0x1f5417d + .word 0x8034067c + .word 0x1d0fb4a + .word 0x3ea7000 + .word 0x1f15ad5 + .word 0x3ed7000 + .word 0x234a57 + .word 0x3eda802 + .word 0x1eac9bf + .word 0x1fc4003 + .word 0x1f4631b + .word 0x44800000 + .word 0x81eb597c + .word 0x81c06f3f + .word 0x1804a5d + .word 0x52041807 + .word 0x1edd0bf + .word 0x8050033d + .word 0x1f0da8b + .word 0x520618f0 + .word 0x2ff + .word 0x8890ffa + .word 0x2ff + .word 0x52071abb + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000337 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e367ff + .word 0x2ff + .word 0x45400000 + .word 0x81ec09bc + .word 0x81e80b7c + .word 0x1804a5f + .word 0x3ea5801 + .word 0x1ec10bd + .word 0x3ed5801 + .word 0x1ec1b0a + .word 0x81eb0b7c + .word 0x1fc52a8 + .word 0x81ee0b7c + .word 0x224a53 + .word 0x800843fc + .word 0x1f7b93c + .word 0x8890ff7 + .word 0x1e06310 + .word 0x3e157fc + .word 0x215297 + .word 0x81ea0bbc + .word 0x714228 + .word 0x81f54b3c + .word 0x1f25ae8 + .word 0x1dd4004 + .word 0x1f373a8 + .word 0x1de4005 + .word 0x1ec21bc + .word 0x5a004802 + .word 0x1ec28bd + .word 0x1ff4006 + .word 0x1ec30be + .word 0x80000030 + .word 0x31ad40 + .word 0x1f94000 + .word 0x1e03b0b + .word 0x1fa4001 + .word 0x1c0529c + .word 0x800a5bfc + .word 0x1e0841c + .word 0x802d5bfc + .word 0x1f5a97d + .word 0x1fb4002 + .word 0x1f7632a + .word 0x81f71b7c + .word 0x1f652a8 + .word 0x52004802 + .word 0x1e8e9be + .word 0x3eba802 + .word 0x1ebf0be + .word 0x80000030 + .word 0x1f5497d + .word 0x8034067c + .word 0x1cefaca + .word 0x3eb7800 + .word 0x1f16315 + .word 0x3ee7800 + .word 0x235297 + .word 0x3eea802 + .word 0x1e8c9bf + .word 0x1fc4003 + .word 0x1f46b5b + .word 0x44800000 + .word 0x81ec617c + .word 0x81c05f3f + .word 0x180529d + .word 0x52041807 + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .word 0x52061901 + .word 0x2ff + .word 0x8890ffa + .word 0x2ff + .word 0x52071ad0 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000353 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e36fff + .word 0x2ff + .word 0x45400000 + .word 0x81ed09bc + .word 0x81e90b7c + .word 0x180529f + .word 0x3eb6001 + .word 0x1ed10bd + .word 0x3ee6001 + .word 0x1ed1b4a + .word 0x81ec0b7c + .word 0x1fc4228 + .word 0x81ef0b7c + .word 0x225293 + .word 0x80084bfc + .word 0x1f7b93c + .word 0x8890ff7 + .word 0x1e06b50 + .word 0x3e147fc + .word 0x214217 + .word 0x81e80bbc + .word 0x714a68 + .word 0x81f5533c + .word 0x1f26328 + .word 0x1dd4004 + .word 0x1f37be8 + .word 0x1de4005 + .word 0x1ed21bc + .word 0x5a004802 + .word 0x1ed28bd + .word 0x1ff4006 + .word 0x1ed30be + .word 0x80000030 + .word 0x31ad40 + .word 0x1f94000 + .word 0x1e03b4b + .word 0x1fa4001 + .word 0x1c0421c + .word 0x800b63fc + .word 0x1e0739c + .word 0x802e63fc + .word 0x1f5a97d + .word 0x1fb4002 + .word 0x1f76b6a + .word 0x81f71b7c + .word 0x1f64228 + .word 0x52004802 + .word 0x1e9e9be + .word 0x3eca802 + .word 0x1ecf0be + .word 0x80000030 + .word 0x1f5517d + .word 0x8034067c + .word 0x1cffb0a + .word 0x3ec8000 + .word 0x1f16b55 + .word 0x3ef8000 + .word 0x234217 + .word 0x3efa802 + .word 0x1e9c9bf + .word 0x1fc4003 + .word 0x1f45adb + .word 0x44800000 + .word 0x81ed697c + .word 0x81c0673f + .word 0x180421d + .word 0x52041f8c + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x52061864 + .word 0x2ff + .word 0x8890ffa + .word 0x2ff + .word 0x52071a2b + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000036f + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x500031ba + .word 0x2ff + .word 0x800c10b0 + .word 0x2ff + .word 0x81e80b7c + .word 0x2ff + .word 0x81f8137c + .word 0x2ff + .word 0x81eb0b7c + .word 0x2ff + .word 0x81ee0b7c + .word 0x2ff + .word 0x800a43fc + .word 0x2ff + .word 0x802d43fc + .word 0x1f8c13c + .word 0x800637f2 + .word 0x714228 + .word 0x80000030 + .word 0x1f25ae8 + .word 0x800552b4 + .word 0x1f373a8 + .word 0x80000030 + .word 0x1fdc61b + .word 0x80056b74 + .word 0x2ff + .word 0x1f45000 + .word 0x2ff + .word 0x1f96800 + .word 0x2ff + .word 0x1f75001 + .word 0x2ff + .word 0x1fa6801 + .word 0x2ff + .word 0x1f45002 + .word 0x1f8a1bc + .word 0x1fb6802 + .word 0x1f8ce49 + .word 0x1f75003 + .word 0x1f8b9bc + .word 0x1fc6803 + .word 0x1f8d689 + .word 0x1f45004 + .word 0x1f8a1bc + .word 0x1dd6804 + .word 0x1f8dec9 + .word 0x1f75005 + .word 0x1f8b9bc + .word 0x1de6805 + .word 0x1f8e709 + .word 0x1f45006 + .word 0x1f8a1bc + .word 0x1ff6806 + .word 0x1d8ef49 + .word 0x800a5bfc + .word 0x1f8b9bc + .word 0x802d5bfc + .word 0x1d8f789 + .word 0x80000030 + .word 0x1f8a1bc + .word 0x80000030 + .word 0x1f8ffc9 + .word 0x80000030 + .word 0x1e8e9be + .word 0x80000030 + .word 0x1ebf0be + .word 0x80000030 + .word 0x1cefaca + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e8c9bf + .word 0x80000030 + .word 0x2ff + .word 0x81c05f3f + .word 0x2ff + .word 0x80000030 + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .word 0x81e90b7c + .word 0x2ff + .word 0x808363fe + .word 0x2ff + .word 0x8476001 + .word 0x2ff + .word 0x81ec0b7c + .word 0x1fc4228 + .word 0x81ef0b7c + .word 0x2ff + .word 0x800b4bfc + .word 0x2ff + .word 0x802e4bfc + .word 0x2ff + .word 0x3e147fc + .word 0x214217 + .word 0x81e80bbc + .word 0x714a68 + .word 0x800c18f0 + .word 0x1f26328 + .word 0x80055af4 + .word 0x1f37be8 + .word 0x800331b0 + .word 0x2ff + .word 0x800639f0 + .word 0x2ff + .word 0x800573b4 + .word 0x2ff + .word 0x52055805 + .word 0x2ff + .word 0x1008023a + .word 0x1c0421c + .word 0x800b63fc + .word 0x1e0739c + .word 0x802e63fc + .word 0x2ff + .word 0x40000014 + .word 0x2ff + .word 0x81f71b7c + .word 0x1f64228 + .word 0x1f45800 + .word 0x1e0739c + .word 0x1f97000 + .word 0x2ff + .word 0x1f75801 + .word 0x2ff + .word 0x1fa7001 + .word 0x1f64228 + .word 0x1f45802 + .word 0x1f8a1be + .word 0x1fb7002 + .word 0x1f8ce4b + .word 0x1f75803 + .word 0x1f8b9be + .word 0x1fc7003 + .word 0x1f8d68b + .word 0x1f45804 + .word 0x1f8a1be + .word 0x1dd7004 + .word 0x1f8decb + .word 0x1f75805 + .word 0x1f8b9be + .word 0x1de7005 + .word 0x1f8e70b + .word 0x1f45806 + .word 0x1f8a1be + .word 0x1ff7006 + .word 0x1d8ef4b + .word 0x81f7137c + .word 0x1f8b9be + .word 0x800b63fc + .word 0x1d8f78b + .word 0x802e63fc + .word 0x1f8a1be + .word 0x1008018c + .word 0x1f8ffcb + .word 0x81f71b7c + .word 0x1f8b93c + .word 0x80000030 + .word 0x1e9e9be + .word 0x80000030 + .word 0x1ecf0be + .word 0x8034067c + .word 0x1cffb0a + .word 0x80000030 + .word 0x2ff + .word 0x44800000 + .word 0x80234217 + .word 0x80000030 + .word 0x1e9c9bf + .word 0x8890ffa + .word 0x1f45adb + .word 0x81c0673f + .word 0x180421d + .word 0x45400000 + .word 0x800002ff + .word 0x3e35fff + .word 0x180421f + .word 0x500619ca + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x81ea0b7c + .word 0x1eb09bc + .word 0x48004000 + .word 0x1eb10bd + .word 0x80000030 + .word 0x1eb1aca + .word 0x3e35fff + .word 0x2ff + .word 0x45400000 + .word 0x81eb09bc + .word 0x81ea0b7c + .word 0x180421f + .word 0x3ec6801 + .word 0x1eb10bd + .word 0x3ef6801 + .word 0x1eb1aca + .word 0x81ed0b7c + .word 0x1fc4a68 + .word 0x81f00b7c + .word 0x224213 + .word 0x800c53fc + .word 0x1f7b93c + .word 0x802f53fc + .word 0x1e05ad0 + .word 0x3e14ffc + .word 0x214a57 + .word 0x81e90bbc + .word 0x7152a8 + .word 0x81f5433c + .word 0x1f26b68 + .word 0x80056334 + .word 0x1f38428 + .word 0x80000030 + .word 0x1eb21bc + .word 0x5a004802 + .word 0x1eb28bd + .word 0x80057bf4 + .word 0x1eb30be + .word 0x80000030 + .word 0x31ad40 + .word 0x52056005 + .word 0x1e03acb + .word 0x9090ff7 + .word 0x1c04a5c + .word 0x800c6bfc + .word 0x1e07bdc + .word 0x802f6bfc + .word 0x1f5a97d + .word 0x40000014 + .word 0x1f75aea + .word 0x81f71b7c + .word 0x1f64a68 + .word 0x1f46000 + .word 0x1e07bdc + .word 0x80000030 + .word 0x1fdc61b + .word 0x1f97800 + .word 0x1f5a97d + .word 0x1f76001 + .word 0x1f75aea + .word 0x1fa7801 + .word 0x1f64a68 + .word 0x1f46002 + .word 0x1f8a1bc + .word 0x1fb7802 + .word 0x1f8ce49 + .word 0x1f76003 + .word 0x1f8b9bc + .word 0x1fc7803 + .word 0x1f8d689 + .word 0x1f46004 + .word 0x1f8a1bc + .word 0x1dd7804 + .word 0x1f8dec9 + .word 0x1f76005 + .word 0x1f8b9bc + .word 0x1de7805 + .word 0x1f8e709 + .word 0x1f46006 + .word 0x1f8a1bc + .word 0x1ff7806 + .word 0x1d8ef49 + .word 0x800c6bfc + .word 0x1f8b9bc + .word 0x802f6bfc + .word 0x1d8f789 + .word 0x400000af + .word 0x1f8a1bc + .word 0x81f71b7c + .word 0x1f8ffc9 + .word 0x5e004802 + .word 0x1eae9be + .word 0x3eaa802 + .word 0x1edf0be + .word 0x80000030 + .word 0x1f5417d + .word 0x8034067c + .word 0x1d0fb4a + .word 0x3ea7000 + .word 0x1f15ad5 + .word 0x3ed7000 + .word 0x234a57 + .word 0x3eda802 + .word 0x1eac9bf + .word 0x8890ffa + .word 0x1f4631b + .word 0x44800000 + .word 0x81eb597c + .word 0x81c06f3f + .word 0x1804a5d + .word 0x52061805 + .word 0x1edd0bf + .word 0x8050033d + .word 0x1f0da8b + .word 0x520719d0 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000024c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e367ff + .word 0x2ff + .word 0x45400000 + .word 0x81ec09bc + .word 0x81e80b7c + .word 0x1804a5f + .word 0x3ea5801 + .word 0x1ec10bd + .word 0x3ed5801 + .word 0x1ec1b0a + .word 0x81eb0b7c + .word 0x1fc52a8 + .word 0x81ee0b7c + .word 0x224a53 + .word 0x800a43fc + .word 0x1f7b93c + .word 0x802d43fc + .word 0x1e06310 + .word 0x3e157fc + .word 0x215297 + .word 0x81ea0bbc + .word 0x714228 + .word 0x81f54b3c + .word 0x1f25ae8 + .word 0x800552b4 + .word 0x1f373a8 + .word 0x80000030 + .word 0x1ec21bc + .word 0x5a004802 + .word 0x1ec28bd + .word 0x80056b74 + .word 0x1ec30be + .word 0x80000030 + .word 0x31ad40 + .word 0x52055005 + .word 0x1e03b0b + .word 0x9090ff7 + .word 0x1c0529c + .word 0x800a5bfc + .word 0x1e0841c + .word 0x802d5bfc + .word 0x1f5a97d + .word 0x40000014 + .word 0x1f7632a + .word 0x81f71b7c + .word 0x1f652a8 + .word 0x1f45000 + .word 0x1e0841c + .word 0x80000030 + .word 0x1fdc61b + .word 0x1f96800 + .word 0x1f5a97d + .word 0x1f75001 + .word 0x1f7632a + .word 0x1fa6801 + .word 0x1f652a8 + .word 0x1f45002 + .word 0x1f8a1bc + .word 0x1fb6802 + .word 0x1f8ce49 + .word 0x1f75003 + .word 0x1f8b9bc + .word 0x1fc6803 + .word 0x1f8d689 + .word 0x1f45004 + .word 0x1f8a1bc + .word 0x1dd6804 + .word 0x1f8dec9 + .word 0x1f75005 + .word 0x1f8b9bc + .word 0x1de6805 + .word 0x1f8e709 + .word 0x1f45006 + .word 0x1f8a1bc + .word 0x1ff6806 + .word 0x1d8ef49 + .word 0x800a5bfc + .word 0x1f8b9bc + .word 0x802d5bfc + .word 0x1d8f789 + .word 0x400000af + .word 0x1f8a1bc + .word 0x81f71b7c + .word 0x1f8ffc9 + .word 0x5e004802 + .word 0x1e8e9be + .word 0x3eba802 + .word 0x1ebf0be + .word 0x80000030 + .word 0x1f5497d + .word 0x8034067c + .word 0x1cefaca + .word 0x3eb7800 + .word 0x1f16315 + .word 0x3ee7800 + .word 0x235297 + .word 0x3eea802 + .word 0x1e8c9bf + .word 0x8890ffa + .word 0x1f46b5b + .word 0x44800000 + .word 0x81ec617c + .word 0x81c05f3f + .word 0x180529d + .word 0x52061805 + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .word 0x520719d4 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000257 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e36fff + .word 0x2ff + .word 0x45400000 + .word 0x81ed09bc + .word 0x81e90b7c + .word 0x180529f + .word 0x3eb6001 + .word 0x1ed10bd + .word 0x3ee6001 + .word 0x1ed1b4a + .word 0x81ec0b7c + .word 0x1fc4228 + .word 0x81ef0b7c + .word 0x225293 + .word 0x800b4bfc + .word 0x1f7b93c + .word 0x802e4bfc + .word 0x1e06b50 + .word 0x3e147fc + .word 0x214217 + .word 0x81e80bbc + .word 0x714a68 + .word 0x81f5533c + .word 0x1f26328 + .word 0x80055af4 + .word 0x1f37be8 + .word 0x80000030 + .word 0x1ed21bc + .word 0x5a004802 + .word 0x1ed28bd + .word 0x800573b4 + .word 0x1ed30be + .word 0x80000030 + .word 0x31ad40 + .word 0x52055805 + .word 0x1e03b4b + .word 0x9090ff7 + .word 0x1c0421c + .word 0x800b63fc + .word 0x1e0739c + .word 0x802e63fc + .word 0x1f5a97d + .word 0x40000014 + .word 0x1f76b6a + .word 0x81f71b7c + .word 0x1f64228 + .word 0x1f45800 + .word 0x1e0739c + .word 0x80000030 + .word 0x1fdc61b + .word 0x1f97000 + .word 0x1f5a97d + .word 0x1f75801 + .word 0x1f76b6a + .word 0x1fa7001 + .word 0x1f64228 + .word 0x1f45802 + .word 0x1f8a1bc + .word 0x1fb7002 + .word 0x1f8ce49 + .word 0x1f75803 + .word 0x1f8b9bc + .word 0x1fc7003 + .word 0x1f8d689 + .word 0x1f45804 + .word 0x1f8a1bc + .word 0x1dd7004 + .word 0x1f8dec9 + .word 0x1f75805 + .word 0x1f8b9bc + .word 0x1de7005 + .word 0x1f8e709 + .word 0x1f45806 + .word 0x1f8a1bc + .word 0x1ff7006 + .word 0x1d8ef49 + .word 0x800b63fc + .word 0x1f8b9bc + .word 0x802e63fc + .word 0x1d8f789 + .word 0x400000af + .word 0x1f8a1bc + .word 0x81f71b7c + .word 0x1f8ffc9 + .word 0x5e004802 + .word 0x1e9e9be + .word 0x3eca802 + .word 0x1ecf0be + .word 0x80000030 + .word 0x1f5517d + .word 0x8034067c + .word 0x1cffb0a + .word 0x3ec8000 + .word 0x1f16b55 + .word 0x3ef8000 + .word 0x234217 + .word 0x3efa802 + .word 0x1e9c9bf + .word 0x8890ffa + .word 0x1f45adb + .word 0x44800000 + .word 0x81ed697c + .word 0x81c0673f + .word 0x180421d + .word 0x52061f57 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x5207191e + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000262 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e35fff + .word 0x2ff + .word 0x45400000 + .word 0x81eb09bc + .word 0x81ea0b7c + .word 0x180421f + .word 0x3ec6801 + .word 0x1eb10bd + .word 0x3ef6801 + .word 0x1eb1aca + .word 0x81ed0b7c + .word 0x1fc4a68 + .word 0x81f00b7c + .word 0x224213 + .word 0x800c53fc + .word 0x1f7b93c + .word 0x802f53fc + .word 0x1e05ad0 + .word 0x3e14ffc + .word 0x214a57 + .word 0x81e90bbc + .word 0x7152a8 + .word 0x81f5433c + .word 0x1f26b68 + .word 0x80056334 + .word 0x1f38428 + .word 0x80000030 + .word 0x1eb21bc + .word 0x5a004802 + .word 0x1eb28bd + .word 0x80057bf4 + .word 0x1eb30be + .word 0x80000030 + .word 0x31ad40 + .word 0x52056005 + .word 0x1e03acb + .word 0x9090ff7 + .word 0x1c04a5c + .word 0x800c6bfc + .word 0x1e07bdc + .word 0x802f6bfc + .word 0x1f5a97d + .word 0x40000014 + .word 0x1f75aea + .word 0x81f71b7c + .word 0x1f64a68 + .word 0x1f46000 + .word 0x1e07bdc + .word 0x1f97800 + .word 0x1f5a97d + .word 0x1f76001 + .word 0x1f75aea + .word 0x1fa7801 + .word 0x1f64a68 + .word 0x1f46002 + .word 0x1f8a1be + .word 0x1fb7802 + .word 0x1f8ce4b + .word 0x1f76003 + .word 0x1f8b9be + .word 0x1fc7803 + .word 0x1f8d68b + .word 0x1f46004 + .word 0x1f8a1be + .word 0x1dd7804 + .word 0x1f8decb + .word 0x1f76005 + .word 0x1f8b9be + .word 0x1de7805 + .word 0x1f8e70b + .word 0x1f46006 + .word 0x1f8a1be + .word 0x1ff7806 + .word 0x1d8ef4b + .word 0x81f7137c + .word 0x1f8b9be + .word 0x800c6bfc + .word 0x1d8f78b + .word 0x802f6bfc + .word 0x1f8a1be + .word 0x40000753 + .word 0x1f8ffcb + .word 0x81f71b7c + .word 0x1f8b93c + .word 0x5e004802 + .word 0x1eae9be + .word 0x3eaa802 + .word 0x1edf0be + .word 0x80000030 + .word 0x1f5417d + .word 0x8034067c + .word 0x1d0fb4a + .word 0x3ea7000 + .word 0x1f15ad5 + .word 0x3ed7000 + .word 0x234a57 + .word 0x3eda802 + .word 0x1eac9bf + .word 0x8890ffa + .word 0x1f4631b + .word 0x44800000 + .word 0x81eb597c + .word 0x81c06f3f + .word 0x1804a5d + .word 0x52061805 + .word 0x1edd0bf + .word 0x8050033d + .word 0x1f0da8b + .word 0x52071922 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000019e + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e367ff + .word 0x2ff + .word 0x45400000 + .word 0x81ec09bc + .word 0x81e80b7c + .word 0x1804a5f + .word 0x3ea5801 + .word 0x1ec10bd + .word 0x3ed5801 + .word 0x1ec1b0a + .word 0x81eb0b7c + .word 0x1fc52a8 + .word 0x81ee0b7c + .word 0x224a53 + .word 0x800a43fc + .word 0x1f7b93c + .word 0x802d43fc + .word 0x1e06310 + .word 0x3e157fc + .word 0x215297 + .word 0x81ea0bbc + .word 0x714228 + .word 0x81f54b3c + .word 0x1f25ae8 + .word 0x800552b4 + .word 0x1f373a8 + .word 0x80000030 + .word 0x1ec21bc + .word 0x5a004802 + .word 0x1ec28bd + .word 0x80056b74 + .word 0x1ec30be + .word 0x80000030 + .word 0x31ad40 + .word 0x52055005 + .word 0x1e03b0b + .word 0x9090ff7 + .word 0x1c0529c + .word 0x800a5bfc + .word 0x1e0841c + .word 0x802d5bfc + .word 0x1f5a97d + .word 0x40000014 + .word 0x1f7632a + .word 0x81f71b7c + .word 0x1f652a8 + .word 0x1f45000 + .word 0x1e0841c + .word 0x1f96800 + .word 0x1f5a97d + .word 0x1f75001 + .word 0x1f7632a + .word 0x1fa6801 + .word 0x1f652a8 + .word 0x1f45002 + .word 0x1f8a1be + .word 0x1fb6802 + .word 0x1f8ce4b + .word 0x1f75003 + .word 0x1f8b9be + .word 0x1fc6803 + .word 0x1f8d68b + .word 0x1f45004 + .word 0x1f8a1be + .word 0x1dd6804 + .word 0x1f8decb + .word 0x1f75005 + .word 0x1f8b9be + .word 0x1de6805 + .word 0x1f8e70b + .word 0x1f45006 + .word 0x1f8a1be + .word 0x1ff6806 + .word 0x1d8ef4b + .word 0x81f7137c + .word 0x1f8b9be + .word 0x800a5bfc + .word 0x1d8f78b + .word 0x802d5bfc + .word 0x1f8a1be + .word 0x40000753 + .word 0x1f8ffcb + .word 0x81f71b7c + .word 0x1f8b93c + .word 0x5e004802 + .word 0x1e8e9be + .word 0x3eba802 + .word 0x1ebf0be + .word 0x80000030 + .word 0x1f5497d + .word 0x8034067c + .word 0x1cefaca + .word 0x3eb7800 + .word 0x1f16315 + .word 0x3ee7800 + .word 0x235297 + .word 0x3eea802 + .word 0x1e8c9bf + .word 0x8890ffa + .word 0x1f46b5b + .word 0x44800000 + .word 0x81ec617c + .word 0x81c05f3f + .word 0x180529d + .word 0x52061805 + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .word 0x52071926 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400001a9 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e36fff + .word 0x2ff + .word 0x45400000 + .word 0x81ed09bc + .word 0x81e90b7c + .word 0x180529f + .word 0x3eb6001 + .word 0x1ed10bd + .word 0x3ee6001 + .word 0x1ed1b4a + .word 0x81ec0b7c + .word 0x1fc4228 + .word 0x81ef0b7c + .word 0x225293 + .word 0x800b4bfc + .word 0x1f7b93c + .word 0x802e4bfc + .word 0x1e06b50 + .word 0x3e147fc + .word 0x214217 + .word 0x81e80bbc + .word 0x714a68 + .word 0x81f5533c + .word 0x1f26328 + .word 0x80055af4 + .word 0x1f37be8 + .word 0x80000030 + .word 0x1ed21bc + .word 0x5a004802 + .word 0x1ed28bd + .word 0x800573b4 + .word 0x1ed30be + .word 0x80000030 + .word 0x31ad40 + .word 0x52055805 + .word 0x1e03b4b + .word 0x9090ff7 + .word 0x1c0421c + .word 0x800b63fc + .word 0x1e0739c + .word 0x802e63fc + .word 0x1f5a97d + .word 0x40000014 + .word 0x1f76b6a + .word 0x81f71b7c + .word 0x1f64228 + .word 0x1f45800 + .word 0x1e0739c + .word 0x1f97000 + .word 0x1f5a97d + .word 0x1f75801 + .word 0x1f76b6a + .word 0x1fa7001 + .word 0x1f64228 + .word 0x1f45802 + .word 0x1f8a1be + .word 0x1fb7002 + .word 0x1f8ce4b + .word 0x1f75803 + .word 0x1f8b9be + .word 0x1fc7003 + .word 0x1f8d68b + .word 0x1f45804 + .word 0x1f8a1be + .word 0x1dd7004 + .word 0x1f8decb + .word 0x1f75805 + .word 0x1f8b9be + .word 0x1de7005 + .word 0x1f8e70b + .word 0x1f45806 + .word 0x1f8a1be + .word 0x1ff7006 + .word 0x1d8ef4b + .word 0x81f7137c + .word 0x1f8b9be + .word 0x800b63fc + .word 0x1d8f78b + .word 0x802e63fc + .word 0x1f8a1be + .word 0x40000753 + .word 0x1f8ffcb + .word 0x81f71b7c + .word 0x1f8b93c + .word 0x5e004802 + .word 0x1e9e9be + .word 0x3eca802 + .word 0x1ecf0be + .word 0x80000030 + .word 0x1f5517d + .word 0x8034067c + .word 0x1cffb0a + .word 0x3ec8000 + .word 0x1f16b55 + .word 0x3ef8000 + .word 0x234217 + .word 0x3efa802 + .word 0x1e9c9bf + .word 0x8890ffa + .word 0x1f45adb + .word 0x44800000 + .word 0x81ed697c + .word 0x81c0673f + .word 0x180421d + .word 0x52061f57 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x520718ae + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400001b4 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e80b7c + .word 0x2ff + .word 0x81f8137c + .word 0x2ff + .word 0x81eb0b7c + .word 0x2ff + .word 0x81ee0b7c + .word 0x2ff + .word 0x800a43fc + .word 0x2ff + .word 0x802d43fc + .word 0x1f8c13c + .word 0x80000030 + .word 0x714228 + .word 0x80000030 + .word 0x1f25ae8 + .word 0x800552b4 + .word 0x1f373a8 + .word 0x82817ff + .word 0x1fdc61b + .word 0x80056b74 + .word 0x2ff + .word 0x1f45000 + .word 0x2ff + .word 0x1ff6800 + .word 0x2ff + .word 0x1f94000 + .word 0x2ff + .word 0x1f75001 + .word 0x2ff + .word 0x1f46801 + .word 0x1f8a1bc + .word 0x1fa4001 + .word 0x1f8f8bd + .word 0x1ff5002 + .word 0x1f8ce4a + .word 0x1f76802 + .word 0x1f8b9bc + .word 0x1fb4002 + .word 0x1f8a0bd + .word 0x1f45003 + .word 0x1f8d68a + .word 0x1ff6803 + .word 0x1f8f9bc + .word 0x1fc4003 + .word 0x1f8b8bd + .word 0x1f75004 + .word 0x1f8deca + .word 0x1f46804 + .word 0x1f8a1bc + .word 0x1dd4004 + .word 0x1f8f8bd + .word 0x1ff5005 + .word 0x1f8e70a + .word 0x1f76805 + .word 0x1f8b9bc + .word 0x1de4005 + .word 0x1f8a0bd + .word 0x1f45006 + .word 0x1d8ef4a + .word 0x1f66806 + .word 0x1f8f9bc + .word 0x1ff4006 + .word 0x1f8b8bd + .word 0x81f7137c + .word 0x1d8f78a + .word 0x800a5bfc + .word 0x1f8a1bc + .word 0x802d5bfc + .word 0x1f8b0bd + .word 0x1f60002 + .word 0x1f8ffca + .word 0x80000030 + .word 0x1f8b93c + .word 0x80000030 + .word 0x1e8e9be + .word 0x80000030 + .word 0x1ebf0be + .word 0x80000030 + .word 0x1cefaca + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e8c9bf + .word 0x80000030 + .word 0x2ff + .word 0x81c05f3f + .word 0x2ff + .word 0x80000030 + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .word 0x81e90b7c + .word 0x2ff + .word 0x808363fe + .word 0x2ff + .word 0x8476001 + .word 0x2ff + .word 0x81ec0b7c + .word 0x1fc4228 + .word 0x81ef0b7c + .word 0x2ff + .word 0x800b4bfc + .word 0x2ff + .word 0x802e4bfc + .word 0x2ff + .word 0x3e147fc + .word 0x214217 + .word 0x81e80bbc + .word 0x714a68 + .word 0x800c18f0 + .word 0x1f26328 + .word 0x80055af4 + .word 0x1f37be8 + .word 0x82817ff + .word 0x2ff + .word 0x800339f0 + .word 0x2ff + .word 0x800573b4 + .word 0x2ff + .word 0x52055805 + .word 0x2ff + .word 0x80073ff2 + .word 0x1c0421c + .word 0x800b63fc + .word 0x1e0739c + .word 0x802e63fc + .word 0x2ff + .word 0x4000001c + .word 0x2ff + .word 0x81f71b7c + .word 0x1f64228 + .word 0x1f45800 + .word 0x1e0739c + .word 0x80000030 + .word 0x1fdc61b + .word 0x1ff7000 + .word 0x2ff + .word 0x1f94000 + .word 0x2ff + .word 0x1f75801 + .word 0x1f64228 + .word 0x1f47001 + .word 0x1f8a1bc + .word 0x1fa4001 + .word 0x1f8f8bd + .word 0x1ff5802 + .word 0x1f8ce4a + .word 0x1f77002 + .word 0x1f8b9bc + .word 0x1fb4002 + .word 0x1f8a0bd + .word 0x1f45803 + .word 0x1f8d68a + .word 0x1ff7003 + .word 0x1f8f9bc + .word 0x1fc4003 + .word 0x1f8b8bd + .word 0x1f75804 + .word 0x1f8deca + .word 0x1f47004 + .word 0x1f8a1bc + .word 0x1dd4004 + .word 0x1f8f8bd + .word 0x1ff5805 + .word 0x1f8e70a + .word 0x1f77005 + .word 0x1f8b9bc + .word 0x1de4005 + .word 0x1f8a0bd + .word 0x1f45806 + .word 0x1d8ef4a + .word 0x1f67006 + .word 0x1f8f9bc + .word 0x1ff4006 + .word 0x1f8b8bd + .word 0x81f7137c + .word 0x1d8f78a + .word 0x800b63fc + .word 0x1f8a1bc + .word 0x802e63fc + .word 0x1f8b0bd + .word 0x1f60002 + .word 0x1f8ffca + .word 0x81f71b7c + .word 0x1f8b93c + .word 0x80000030 + .word 0x1e9e9be + .word 0x80000030 + .word 0x1ecf0be + .word 0x8034067c + .word 0x1cffb0a + .word 0x80000030 + .word 0x2ff + .word 0x44800000 + .word 0x80234217 + .word 0x80000030 + .word 0x1e9c9bf + .word 0x8890ffa + .word 0x1f45adb + .word 0x81c0673f + .word 0x180421d + .word 0x45400000 + .word 0x800002ff + .word 0x3e35fff + .word 0x180421f + .word 0x80000030 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x81ea0b7c + .word 0x1eb09bc + .word 0x40000006 + .word 0x1eb10bd + .word 0x80000030 + .word 0x1eb1aca + .word 0x3e35fff + .word 0x2ff + .word 0x45400000 + .word 0x81eb09bc + .word 0x81ea0b7c + .word 0x180421f + .word 0x3ec6801 + .word 0x1eb10bd + .word 0x3ef6801 + .word 0x1eb1aca + .word 0x81ed0b7c + .word 0x1fc4a68 + .word 0x81f00b7c + .word 0x224213 + .word 0x800c53fc + .word 0x1f7b93c + .word 0x802f53fc + .word 0x1e05ad0 + .word 0x3e14ffc + .word 0x214a57 + .word 0x81e90bbc + .word 0x7152a8 + .word 0x81f5433c + .word 0x1f26b68 + .word 0x80056334 + .word 0x1f38428 + .word 0x82817ff + .word 0x1eb21bc + .word 0x5a004802 + .word 0x1eb28bd + .word 0x80057bf4 + .word 0x1eb30be + .word 0x80000030 + .word 0x31ad40 + .word 0x52056005 + .word 0x1e03acb + .word 0x9090ff7 + .word 0x1c04a5c + .word 0x800c6bfc + .word 0x1e07bdc + .word 0x802f6bfc + .word 0x1f5a97d + .word 0x4000001c + .word 0x1f75aea + .word 0x81f71b7c + .word 0x1f64a68 + .word 0x1f46000 + .word 0x1e07bdc + .word 0x80000030 + .word 0x1fdc61b + .word 0x1ff7800 + .word 0x1f5a97d + .word 0x1f94000 + .word 0x1f75aea + .word 0x1f76001 + .word 0x1f64a68 + .word 0x1f47801 + .word 0x1f8a1bc + .word 0x1fa4001 + .word 0x1f8f8bd + .word 0x1ff6002 + .word 0x1f8ce4a + .word 0x1f77802 + .word 0x1f8b9bc + .word 0x1fb4002 + .word 0x1f8a0bd + .word 0x1f46003 + .word 0x1f8d68a + .word 0x1ff7803 + .word 0x1f8f9bc + .word 0x1fc4003 + .word 0x1f8b8bd + .word 0x1f76004 + .word 0x1f8deca + .word 0x1f47804 + .word 0x1f8a1bc + .word 0x1dd4004 + .word 0x1f8f8bd + .word 0x1ff6005 + .word 0x1f8e70a + .word 0x1f77805 + .word 0x1f8b9bc + .word 0x1de4005 + .word 0x1f8a0bd + .word 0x1f46006 + .word 0x1d8ef4a + .word 0x1f67806 + .word 0x1f8f9bc + .word 0x1ff4006 + .word 0x1f8b8bd + .word 0x81f7137c + .word 0x1d8f78a + .word 0x800c6bfc + .word 0x1f8a1bc + .word 0x802f6bfc + .word 0x1f8b0bd + .word 0x1f60002 + .word 0x1f8ffca + .word 0x81f71b7c + .word 0x1f8b93c + .word 0x5e004802 + .word 0x1eae9be + .word 0x3eaa802 + .word 0x1edf0be + .word 0x80000030 + .word 0x1f5417d + .word 0x8034067c + .word 0x1d0fb4a + .word 0x3ea7000 + .word 0x1f15ad5 + .word 0x3ed7000 + .word 0x234a57 + .word 0x3eda802 + .word 0x1eac9bf + .word 0x8890ffa + .word 0x1f4631b + .word 0x44800000 + .word 0x81eb597c + .word 0x81c06f3f + .word 0x1804a5d + .word 0x5007187f + .word 0x1edd0bf + .word 0x8050033d + .word 0x1f0da8b + .word 0x3e367ff + .word 0x2ff + .word 0x45400000 + .word 0x81ec09bc + .word 0x81e80b7c + .word 0x1804a5f + .word 0x3ea5801 + .word 0x1ec10bd + .word 0x3ed5801 + .word 0x1ec1b0a + .word 0x81eb0b7c + .word 0x1fc52a8 + .word 0x81ee0b7c + .word 0x224a53 + .word 0x800a43fc + .word 0x1f7b93c + .word 0x802d43fc + .word 0x1e06310 + .word 0x3e157fc + .word 0x215297 + .word 0x81ea0bbc + .word 0x714228 + .word 0x81f54b3c + .word 0x1f25ae8 + .word 0x800552b4 + .word 0x1f373a8 + .word 0x82817ff + .word 0x1ec21bc + .word 0x5a004802 + .word 0x1ec28bd + .word 0x80056b74 + .word 0x1ec30be + .word 0x80000030 + .word 0x31ad40 + .word 0x52055005 + .word 0x1e03b0b + .word 0x9090ff7 + .word 0x1c0529c + .word 0x800a5bfc + .word 0x1e0841c + .word 0x802d5bfc + .word 0x1f5a97d + .word 0x4000001c + .word 0x1f7632a + .word 0x81f71b7c + .word 0x1f652a8 + .word 0x1f45000 + .word 0x1e0841c + .word 0x80000030 + .word 0x1fdc61b + .word 0x1ff6800 + .word 0x1f5a97d + .word 0x1f94000 + .word 0x1f7632a + .word 0x1f75001 + .word 0x1f652a8 + .word 0x1f46801 + .word 0x1f8a1bc + .word 0x1fa4001 + .word 0x1f8f8bd + .word 0x1ff5002 + .word 0x1f8ce4a + .word 0x1f76802 + .word 0x1f8b9bc + .word 0x1fb4002 + .word 0x1f8a0bd + .word 0x1f45003 + .word 0x1f8d68a + .word 0x1ff6803 + .word 0x1f8f9bc + .word 0x1fc4003 + .word 0x1f8b8bd + .word 0x1f75004 + .word 0x1f8deca + .word 0x1f46804 + .word 0x1f8a1bc + .word 0x1dd4004 + .word 0x1f8f8bd + .word 0x1ff5005 + .word 0x1f8e70a + .word 0x1f76805 + .word 0x1f8b9bc + .word 0x1de4005 + .word 0x1f8a0bd + .word 0x1f45006 + .word 0x1d8ef4a + .word 0x1f66806 + .word 0x1f8f9bc + .word 0x1ff4006 + .word 0x1f8b8bd + .word 0x81f7137c + .word 0x1d8f78a + .word 0x800a5bfc + .word 0x1f8a1bc + .word 0x802d5bfc + .word 0x1f8b0bd + .word 0x1f60002 + .word 0x1f8ffca + .word 0x81f71b7c + .word 0x1f8b93c + .word 0x5e004802 + .word 0x1e8e9be + .word 0x3eba802 + .word 0x1ebf0be + .word 0x80000030 + .word 0x1f5497d + .word 0x8034067c + .word 0x1cefaca + .word 0x3eb7800 + .word 0x1f16315 + .word 0x3ee7800 + .word 0x235297 + .word 0x3eea802 + .word 0x1e8c9bf + .word 0x8890ffa + .word 0x1f46b5b + .word 0x44800000 + .word 0x81ec617c + .word 0x81c05f3f + .word 0x180529d + .word 0x50071886 + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .word 0x3e36fff + .word 0x2ff + .word 0x45400000 + .word 0x81ed09bc + .word 0x81e90b7c + .word 0x180529f + .word 0x3eb6001 + .word 0x1ed10bd + .word 0x3ee6001 + .word 0x1ed1b4a + .word 0x81ec0b7c + .word 0x1fc4228 + .word 0x81ef0b7c + .word 0x225293 + .word 0x800b4bfc + .word 0x1f7b93c + .word 0x802e4bfc + .word 0x1e06b50 + .word 0x3e147fc + .word 0x214217 + .word 0x81e80bbc + .word 0x714a68 + .word 0x81f5533c + .word 0x1f26328 + .word 0x80055af4 + .word 0x1f37be8 + .word 0x82817ff + .word 0x1ed21bc + .word 0x5a004802 + .word 0x1ed28bd + .word 0x800573b4 + .word 0x1ed30be + .word 0x80000030 + .word 0x31ad40 + .word 0x52055805 + .word 0x1e03b4b + .word 0x9090ff7 + .word 0x1c0421c + .word 0x800b63fc + .word 0x1e0739c + .word 0x802e63fc + .word 0x1f5a97d + .word 0x4000001c + .word 0x1f76b6a + .word 0x81f71b7c + .word 0x1f64228 + .word 0x1f45800 + .word 0x1e0739c + .word 0x80000030 + .word 0x1fdc61b + .word 0x1ff7000 + .word 0x1f5a97d + .word 0x1f94000 + .word 0x1f76b6a + .word 0x1f75801 + .word 0x1f64228 + .word 0x1f47001 + .word 0x1f8a1bc + .word 0x1fa4001 + .word 0x1f8f8bd + .word 0x1ff5802 + .word 0x1f8ce4a + .word 0x1f77002 + .word 0x1f8b9bc + .word 0x1fb4002 + .word 0x1f8a0bd + .word 0x1f45803 + .word 0x1f8d68a + .word 0x1ff7003 + .word 0x1f8f9bc + .word 0x1fc4003 + .word 0x1f8b8bd + .word 0x1f75804 + .word 0x1f8deca + .word 0x1f47004 + .word 0x1f8a1bc + .word 0x1dd4004 + .word 0x1f8f8bd + .word 0x1ff5805 + .word 0x1f8e70a + .word 0x1f77005 + .word 0x1f8b9bc + .word 0x1de4005 + .word 0x1f8a0bd + .word 0x1f45806 + .word 0x1d8ef4a + .word 0x1f67006 + .word 0x1f8f9bc + .word 0x1ff4006 + .word 0x1f8b8bd + .word 0x81f7137c + .word 0x1d8f78a + .word 0x800b63fc + .word 0x1f8a1bc + .word 0x802e63fc + .word 0x1f8b0bd + .word 0x1f60002 + .word 0x1f8ffca + .word 0x81f71b7c + .word 0x1f8b93c + .word 0x5e004802 + .word 0x1e9e9be + .word 0x3eca802 + .word 0x1ecf0be + .word 0x80000030 + .word 0x1f5517d + .word 0x8034067c + .word 0x1cffb0a + .word 0x3ec8000 + .word 0x1f16b55 + .word 0x3ef8000 + .word 0x234217 + .word 0x3efa802 + .word 0x1e9c9bf + .word 0x8890ffa + .word 0x1f45adb + .word 0x44800000 + .word 0x81ed697c + .word 0x81c0673f + .word 0x180421d + .word 0x52071f47 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x4000008b + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x45400000 + .word 0x81ec09bc + .word 0x3e367ff + .word 0x1804a5f + .word 0x3ea5801 + .word 0x1ec10bd + .word 0x3ed5801 + .word 0x1ec1b0a + .word 0x10050173 + .word 0x1fc52a8 + .word 0x1fa0001 + .word 0x224a53 + .word 0x80080072 + .word 0x1f7b93c + .word 0xb082ffe + .word 0x1e06310 + .word 0x3e157ff + .word 0x215297 + .word 0x81ea0bbc + .word 0x2ff + .word 0x81f54b3c + .word 0x2ff + .word 0x10080042 + .word 0x2ff + .word 0xa482fff + .word 0x1ec21bc + .word 0x5a004802 + .word 0x1ec28bd + .word 0xb002fff + .word 0x1ec30be + .word 0x80000030 + .word 0x31ad40 + .word 0x2e5d7fe + .word 0x1e03b0b + .word 0x9090ffa + .word 0x1c0529c + .word 0x10080171 + .word 0x1e0841c + .word 0x80000030 + .word 0x1f5a97d + .word 0x80000030 + .word 0x1f7632a + .word 0x81f71b7c + .word 0x1f652a8 + .word 0x5e004802 + .word 0x2ff + .word 0x3eba802 + .word 0x2ff + .word 0x80000030 + .word 0x1f5497d + .word 0x8034067c + .word 0x2ff + .word 0x3eb7800 + .word 0x1f16315 + .word 0x3ee7800 + .word 0x235297 + .word 0x3eea802 + .word 0x2ff + .word 0x8890ffd + .word 0x1f46b5b + .word 0x44800000 + .word 0x81ec617c + .word 0x80000030 + .word 0x180529d + .word 0x80000030 + .word 0x2ff + .word 0x45400000 + .word 0x81ed09bc + .word 0x3e36fff + .word 0x180529f + .word 0x3eb6001 + .word 0x1ed10bd + .word 0x3ee6001 + .word 0x1ed1b4a + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x225293 + .word 0x80000030 + .word 0x1f7b93c + .word 0x80000030 + .word 0x1e06b50 + .word 0x80000030 + .word 0x2ff + .word 0x81f5533c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1ed21bc + .word 0x5a004802 + .word 0x1ed28bd + .word 0x80000030 + .word 0x1ed30be + .word 0x80000030 + .word 0x31ad40 + .word 0x80000030 + .word 0x1e03b4b + .word 0x9090ffd + .word 0x2ff + .word 0x800506bc + .word 0x2ff + .word 0x1005288c + .word 0x1f5a97d + .word 0x80412bfe + .word 0x1f76b6a + .word 0x80832bfe + .word 0x2ff + .word 0x5e004802 + .word 0x2ff + .word 0x3eca802 + .word 0x2ff + .word 0x80000030 + .word 0x1f5517d + .word 0x80000030 + .word 0x2ff + .word 0x3ec8000 + .word 0x1f16b55 + .word 0x3ef8000 + .word 0x2ff + .word 0x3efa802 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1ed697c + .word 0x1f7007c + .word 0x2ff + .word 0x80050870 + .word 0x2ff + .word 0x800518f0 + .word 0x2ff + .word 0x3ec6801 + .word 0x2ff + .word 0x4000008a + .word 0x2ff + .word 0x3ef6801 + .word 0x2ff + .word 0x45400000 + .word 0x81ed09bc + .word 0x3e36fff + .word 0x180529f + .word 0x3eb6001 + .word 0x1ed10bd + .word 0x3ee6001 + .word 0x1ed1b4a + .word 0x10050173 + .word 0x1fc4228 + .word 0x1fa0001 + .word 0x225293 + .word 0x80080072 + .word 0x1f7b93c + .word 0xb082ffe + .word 0x1e06b50 + .word 0x3e147ff + .word 0x214217 + .word 0x81e80bbc + .word 0x2ff + .word 0x81f5533c + .word 0x2ff + .word 0x10080042 + .word 0x2ff + .word 0xa482fff + .word 0x1ed21bc + .word 0x5a004802 + .word 0x1ed28bd + .word 0xb002fff + .word 0x1ed30be + .word 0x80000030 + .word 0x31ad40 + .word 0x2e5d7fe + .word 0x1e03b4b + .word 0x9090ffa + .word 0x1c0421c + .word 0x10080171 + .word 0x1e0739c + .word 0x80000030 + .word 0x1f5a97d + .word 0x80000030 + .word 0x1f76b6a + .word 0x81f71b7c + .word 0x1f64228 + .word 0x5e004802 + .word 0x2ff + .word 0x3eca802 + .word 0x2ff + .word 0x80000030 + .word 0x1f5517d + .word 0x8034067c + .word 0x2ff + .word 0x3ec8000 + .word 0x1f16b55 + .word 0x3ef8000 + .word 0x234217 + .word 0x3efa802 + .word 0x2ff + .word 0x8890ffd + .word 0x1f45adb + .word 0x44800000 + .word 0x81ed697c + .word 0x80000030 + .word 0x180421d + .word 0x80000030 + .word 0x2ff + .word 0x45400000 + .word 0x81eb09bc + .word 0x3e35fff + .word 0x180421f + .word 0x3ec6801 + .word 0x1eb10bd + .word 0x3ef6801 + .word 0x1eb1aca + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x224213 + .word 0x80000030 + .word 0x1f7b93c + .word 0x80000030 + .word 0x1e05ad0 + .word 0x80000030 + .word 0x2ff + .word 0x81f5433c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1eb21bc + .word 0x5a004802 + .word 0x1eb28bd + .word 0x80000030 + .word 0x1eb30be + .word 0x80000030 + .word 0x31ad40 + .word 0x80000030 + .word 0x1e03acb + .word 0x9090ffd + .word 0x2ff + .word 0x800506bc + .word 0x2ff + .word 0x1005288c + .word 0x1f5a97d + .word 0x80412bfe + .word 0x1f75aea + .word 0x80832bfe + .word 0x2ff + .word 0x5e004802 + .word 0x2ff + .word 0x3eaa802 + .word 0x2ff + .word 0x80000030 + .word 0x1f5417d + .word 0x80000030 + .word 0x2ff + .word 0x3ea7000 + .word 0x1f15ad5 + .word 0x3ed7000 + .word 0x2ff + .word 0x3eda802 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1eb597c + .word 0x1f7007c + .word 0x2ff + .word 0x80050870 + .word 0x2ff + .word 0x800518f0 + .word 0x2ff + .word 0x3ea5801 + .word 0x2ff + .word 0x40000045 + .word 0x2ff + .word 0x3ed5801 + .word 0x2ff + .word 0x45400000 + .word 0x81eb09bc + .word 0x3e35fff + .word 0x180421f + .word 0x3ec6801 + .word 0x1eb10bd + .word 0x3ef6801 + .word 0x1eb1aca + .word 0x10050173 + .word 0x1fc4a68 + .word 0x1fa0001 + .word 0x224213 + .word 0x80080072 + .word 0x1f7b93c + .word 0xb082ffe + .word 0x1e05ad0 + .word 0x3e14fff + .word 0x214a57 + .word 0x81e90bbc + .word 0x2ff + .word 0x81f5433c + .word 0x2ff + .word 0x10080042 + .word 0x2ff + .word 0xa482fff + .word 0x1eb21bc + .word 0x5a004802 + .word 0x1eb28bd + .word 0xb002fff + .word 0x1eb30be + .word 0x80000030 + .word 0x31ad40 + .word 0x2e5d7fe + .word 0x1e03acb + .word 0x9090ffa + .word 0x1c04a5c + .word 0x10080171 + .word 0x1e07bdc + .word 0x80000030 + .word 0x1f5a97d + .word 0x80000030 + .word 0x1f75aea + .word 0x81f71b7c + .word 0x1f64a68 + .word 0x5e004802 + .word 0x2ff + .word 0x3eaa802 + .word 0x2ff + .word 0x80000030 + .word 0x1f5417d + .word 0x8034067c + .word 0x2ff + .word 0x3ea7000 + .word 0x1f15ad5 + .word 0x3ed7000 + .word 0x234a57 + .word 0x3eda802 + .word 0x2ff + .word 0x8890ffd + .word 0x1f4631b + .word 0x44800000 + .word 0x81eb597c + .word 0x80000030 + .word 0x1804a5d + .word 0x80000030 + .word 0x2ff + .word 0x45400000 + .word 0x81ec09bc + .word 0x3e367ff + .word 0x1804a5f + .word 0x3ea5801 + .word 0x1ec10bd + .word 0x3ed5801 + .word 0x1ec1b0a + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x224a53 + .word 0x80000030 + .word 0x1f7b93c + .word 0x80000030 + .word 0x1e06310 + .word 0x80000030 + .word 0x2ff + .word 0x81f54b3c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1ec21bc + .word 0x5a004802 + .word 0x1ec28bd + .word 0x80000030 + .word 0x1ec30be + .word 0x80000030 + .word 0x31ad40 + .word 0x80000030 + .word 0x1e03b0b + .word 0x9090ffd + .word 0x2ff + .word 0x800506bc + .word 0x2ff + .word 0x1005288c + .word 0x1f5a97d + .word 0x80412bfe + .word 0x1f7632a + .word 0x80832bfe + .word 0x2ff + .word 0x5e004802 + .word 0x2ff + .word 0x3eba802 + .word 0x2ff + .word 0x80000030 + .word 0x1f5497d + .word 0x80000030 + .word 0x2ff + .word 0x3eb7800 + .word 0x1f16315 + .word 0x3ee7800 + .word 0x2ff + .word 0x3eea802 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1ec617c + .word 0x1f7007c + .word 0x2ff + .word 0x80050870 + .word 0x2ff + .word 0x800518f0 + .word 0x2ff + .word 0x3eb6001 + .word 0x2ff + .word 0x3ee6001 + .word 0x2ff + .word 0x800046fc + .word 0x2ff + .word 0x1e80802 + .word 0x2ff + .word 0x81ea1b7c + .word 0x2ff + .word 0x9042801 + .word 0x2ff + .word 0x8862801 + .word 0x2ff + .word 0x8472801 + .word 0x1f7426a + .word 0x80062130 + .word 0x405287 + .word 0x800108f2 + .word 0x2ff + .word 0x80072130 + .word 0x2ff + .word 0x800418b0 + .word 0x490243 + .word 0x800210b2 + .word 0x2ff + .word 0x1ee0076 + .word 0x1e00553 + .word 0x1fa0173 + .word 0x2ff + .word 0x80000030 + .word 0x1ca4bea + .word 0x1fb0077 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fc0078 + .word 0x2ff + .word 0x80000030 + .word 0x1ef783d + .word 0x1ff0079 + .word 0x10fabca + .word 0x80000030 + .word 0x2ff + .word 0x3e0d32d + .word 0x2ff + .word 0x1e80802 + .word 0x2ff + .word 0x81eb1b7c + .word 0x2ff + .word 0x810a7bbc + .word 0x2ff + .word 0x3e0db2e + .word 0x1e049bf + .word 0x80000030 + .word 0x1f7426a + .word 0x3e0e32f + .word 0x405ac7 + .word 0x800108f2 + .word 0x2ff + .word 0x3e0fb30 + .word 0x2ff + .word 0x80000030 + .word 0x490243 + .word 0x1fa0000 + .word 0x1e052a1 + .word 0x80000030 + .word 0x2ff + .word 0x1fb007a + .word 0x2ff + .word 0x80000030 + .word 0x1cb4bea + .word 0x81c0573e + .word 0x2ff + .word 0x1fc007b + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1ff0179 + .word 0x1ef783d + .word 0x80000030 + .word 0x10fabca + .word 0x81fad33d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1e80802 + .word 0x2ff + .word 0x81ec1b7c + .word 0x2ff + .word 0x810b7bbc + .word 0x2ff + .word 0x81fad33d + .word 0x1e049bf + .word 0x3e0db31 + .word 0x1f7426a + .word 0x1f90ffb + .word 0x406307 + .word 0x800108f2 + .word 0x2ff + .word 0x3e0e332 + .word 0x2ff + .word 0x80000030 + .word 0x490243 + .word 0x3e0fb33 + .word 0x1e05ae1 + .word 0x80000030 + .word 0x2ff + .word 0x802a067c + .word 0x2ff + .word 0x280d333 + .word 0x1cc4bea + .word 0x81c05f3e + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81cabbbc + .word 0x2ff + .word 0x80000030 + .word 0x1ef783d + .word 0x80000030 + .word 0x10fabca + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1f2ce68 + .word 0x1e80802 + .word 0x2ff + .word 0x81ed1b7c + .word 0x1f7003e + .word 0x810c7bbc + .word 0x1e052a1 + .word 0x800acbfc + .word 0x1e049bf + .word 0x802dcbfc + .word 0x1f7426a + .word 0x1f90ffb + .word 0x406b47 + .word 0x800108f2 + .word 0x2ff + .word 0x1f85000 + .word 0x2ff + .word 0x1f05002 + .word 0x490243 + .word 0x1f46802 + .word 0x1e06321 + .word 0x3ea71bb + .word 0x2ff + .word 0x802b067c + .word 0x2ff + .word 0x3ed71bb + .word 0x1cd4bea + .word 0x81c0673e + .word 0x198561a + .word 0x3ea81bc + .word 0x2ff + .word 0x81cbbbbc + .word 0x2ff + .word 0x3eda1bc + .word 0x1ef783d + .word 0x3eac1ba + .word 0x10fabca + .word 0x5002183d + .word 0x2ff + .word 0x3edc1ba + .word 0x1f2ce68 + .word 0x1e80802 + .word 0x2ff + .word 0x81ea1b7c + .word 0x1f7003e + .word 0x810d7bbc + .word 0x1e05ae1 + .word 0x800acbfc + .word 0x1e049bf + .word 0x802dcbfc + .word 0x1f7426a + .word 0x1f90ffb + .word 0x405287 + .word 0x800108f2 + .word 0x2ff + .word 0x1f85000 + .word 0x2ff + .word 0x1f05002 + .word 0x490243 + .word 0x1f46802 + .word 0x1e06b61 + .word 0x3ea71bb + .word 0x2ff + .word 0x802c067c + .word 0x2ff + .word 0x3ed71bb + .word 0x1ca4bea + .word 0x81c06f3e + .word 0x1985e1a + .word 0x3ea81bc + .word 0x2ff + .word 0x81ccbbbc + .word 0x2ff + .word 0x3eda1bc + .word 0x1ef783d + .word 0x3eac1ba + .word 0x10fabca + .word 0x50021829 + .word 0x2ff + .word 0x3edc1ba + .word 0x1f2ce68 + .word 0x1e80802 + .word 0x2ff + .word 0x81eb1b7c + .word 0x1f7003e + .word 0x810a7bbc + .word 0x1e06321 + .word 0x800acbfc + .word 0x1e049bf + .word 0x802dcbfc + .word 0x1f7426a + .word 0x1f90ffb + .word 0x405ac7 + .word 0x800108f2 + .word 0x2ff + .word 0x1f85000 + .word 0x2ff + .word 0x1f05002 + .word 0x490243 + .word 0x1f46802 + .word 0x1e052a1 + .word 0x3ea71bb + .word 0x2ff + .word 0x802d067c + .word 0x2ff + .word 0x3ed71bb + .word 0x1cb4bea + .word 0x81c0573e + .word 0x198661a + .word 0x3ea81bc + .word 0x2ff + .word 0x81cdbbbc + .word 0x2ff + .word 0x3eda1bc + .word 0x1ef783d + .word 0x3eac1ba + .word 0x10fabca + .word 0x50021815 + .word 0x2ff + .word 0x3edc1ba + .word 0x1f2ce68 + .word 0x1e80802 + .word 0x2ff + .word 0x81ec1b7c + .word 0x1f7003e + .word 0x810b7bbc + .word 0x1e06b61 + .word 0x800acbfc + .word 0x1e049bf + .word 0x802dcbfc + .word 0x1f7426a + .word 0x1f90ffb + .word 0x406307 + .word 0x800108f2 + .word 0x2ff + .word 0x1f85000 + .word 0x2ff + .word 0x1f05002 + .word 0x490243 + .word 0x1f46802 + .word 0x1e05ae1 + .word 0x3ea71bb + .word 0x2ff + .word 0x802a067c + .word 0x2ff + .word 0x3ed71bb + .word 0x1cc4bea + .word 0x81c05f3e + .word 0x1986e1a + .word 0x3ea81bc + .word 0x2ff + .word 0x81cabbbc + .word 0x2ff + .word 0x3eda1bc + .word 0x1ef783d + .word 0x3eac1ba + .word 0x10fabca + .word 0x52021fb1 + .word 0x2ff + .word 0x3edc1ba + .word 0x1f2ce68 + .word 0x1008032d + .word 0x2ff + .word 0x800046fc + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff \ No newline at end of file