From a96710f0c5b3fd2c98409816cf35dd3209bdfef6 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sun, 23 May 2021 16:59:09 -0400 Subject: [PATCH] VU micro mode disassembler (#517) * wip * more * the rest of the disassembler --- decompiler/CMakeLists.txt | 4 + decompiler/VuDisasm/VuDisassembler.cpp | 708 +++ decompiler/VuDisasm/VuDisassembler.h | 228 + decompiler/VuDisasm/VuInstruction.cpp | 92 + decompiler/VuDisasm/VuInstruction.h | 209 + decompiler/VuDisasm/VuProgram.cpp | 3 + decompiler/VuDisasm/VuProgram.h | 22 + test/CMakeLists.txt | 1 + test/decompiler/test_DataParser.cpp | 2 +- test/decompiler/test_VuDisasm.cpp | 162 + .../vu_reference/background-vu0-result.txt | 59 + .../vu_reference/background-vu0.txt | 118 + .../vu_reference/bones-vu0-result.txt | 63 + test/decompiler/vu_reference/bones-vu0.txt | 126 + .../vu_reference/collide-vu0-result.txt | 90 + test/decompiler/vu_reference/collide-vu0.txt | 180 + .../vu_reference/generic-result.txt | 1178 +++++ .../vu_reference/generic-vu0-result.txt | 295 ++ test/decompiler/vu_reference/generic-vu0.txt | 591 +++ test/decompiler/vu_reference/generic.txt | 2188 +++++++++ test/decompiler/vu_reference/merc-result.txt | 2198 +++++++++ test/decompiler/vu_reference/merc.txt | 4042 +++++++++++++++++ .../vu_reference/mercneric-vu0-result.txt | 201 + .../decompiler/vu_reference/mercneric-vu0.txt | 380 ++ .../vu_reference/ocean-texture-result.txt | 152 + .../decompiler/vu_reference/ocean-texture.txt | 292 ++ .../vu_reference/ocean-vu0-result.txt | 72 + test/decompiler/vu_reference/ocean-vu0.txt | 144 + .../decompiler/vu_reference/shadow-result.txt | 792 ++++ .../vu_reference/shadow-vu0-result.txt | 88 + test/decompiler/vu_reference/shadow-vu0.txt | 176 + test/decompiler/vu_reference/shadow.txt | 1480 ++++++ test/decompiler/vu_reference/shrub-result.txt | 681 +++ test/decompiler/vu_reference/shrub.txt | 1236 +++++ test/decompiler/vu_reference/sky-result.txt | 215 + test/decompiler/vu_reference/sky.txt | 410 ++ .../vu_reference/sprite-distort-result.txt | 65 + .../vu_reference/sprite-distort.txt | 126 + .../decompiler/vu_reference/sprite-result.txt | 898 ++++ test/decompiler/vu_reference/sprite.txt | 1708 +++++++ test/decompiler/vu_reference/tfrag-result.txt | 2008 ++++++++ test/decompiler/vu_reference/tfrag.txt | 3734 +++++++++++++++ .../vu_reference/tie-near-result.txt | 1892 ++++++++ test/decompiler/vu_reference/tie-near.txt | 3568 +++++++++++++++ test/decompiler/vu_reference/tie-result.txt | 1037 +++++ test/decompiler/vu_reference/tie.txt | 1988 ++++++++ test/decompiler/vu_reference/tnear-result.txt | 957 ++++ test/decompiler/vu_reference/tnear.txt | 1808 ++++++++ 48 files changed, 38666 insertions(+), 1 deletion(-) create mode 100644 decompiler/VuDisasm/VuDisassembler.cpp create mode 100644 decompiler/VuDisasm/VuDisassembler.h create mode 100644 decompiler/VuDisasm/VuInstruction.cpp create mode 100644 decompiler/VuDisasm/VuInstruction.h create mode 100644 decompiler/VuDisasm/VuProgram.cpp create mode 100644 decompiler/VuDisasm/VuProgram.h create mode 100644 test/decompiler/test_VuDisasm.cpp create mode 100644 test/decompiler/vu_reference/background-vu0-result.txt create mode 100644 test/decompiler/vu_reference/background-vu0.txt create mode 100644 test/decompiler/vu_reference/bones-vu0-result.txt create mode 100644 test/decompiler/vu_reference/bones-vu0.txt create mode 100644 test/decompiler/vu_reference/collide-vu0-result.txt create mode 100644 test/decompiler/vu_reference/collide-vu0.txt create mode 100644 test/decompiler/vu_reference/generic-result.txt create mode 100644 test/decompiler/vu_reference/generic-vu0-result.txt create mode 100644 test/decompiler/vu_reference/generic-vu0.txt create mode 100644 test/decompiler/vu_reference/generic.txt create mode 100644 test/decompiler/vu_reference/merc-result.txt create mode 100644 test/decompiler/vu_reference/merc.txt create mode 100644 test/decompiler/vu_reference/mercneric-vu0-result.txt create mode 100644 test/decompiler/vu_reference/mercneric-vu0.txt create mode 100644 test/decompiler/vu_reference/ocean-texture-result.txt create mode 100644 test/decompiler/vu_reference/ocean-texture.txt create mode 100644 test/decompiler/vu_reference/ocean-vu0-result.txt create mode 100644 test/decompiler/vu_reference/ocean-vu0.txt create mode 100644 test/decompiler/vu_reference/shadow-result.txt create mode 100644 test/decompiler/vu_reference/shadow-vu0-result.txt create mode 100644 test/decompiler/vu_reference/shadow-vu0.txt create mode 100644 test/decompiler/vu_reference/shadow.txt create mode 100644 test/decompiler/vu_reference/shrub-result.txt create mode 100644 test/decompiler/vu_reference/shrub.txt create mode 100644 test/decompiler/vu_reference/sky-result.txt create mode 100644 test/decompiler/vu_reference/sky.txt create mode 100644 test/decompiler/vu_reference/sprite-distort-result.txt create mode 100644 test/decompiler/vu_reference/sprite-distort.txt create mode 100644 test/decompiler/vu_reference/sprite-result.txt create mode 100644 test/decompiler/vu_reference/sprite.txt create mode 100644 test/decompiler/vu_reference/tfrag-result.txt create mode 100644 test/decompiler/vu_reference/tfrag.txt create mode 100644 test/decompiler/vu_reference/tie-near-result.txt create mode 100644 test/decompiler/vu_reference/tie-near.txt create mode 100644 test/decompiler/vu_reference/tie-result.txt create mode 100644 test/decompiler/vu_reference/tie.txt create mode 100644 test/decompiler/vu_reference/tnear-result.txt create mode 100644 test/decompiler/vu_reference/tnear.txt diff --git a/decompiler/CMakeLists.txt b/decompiler/CMakeLists.txt index 3a5411a72f..e77b784d54 100644 --- a/decompiler/CMakeLists.txt +++ b/decompiler/CMakeLists.txt @@ -56,6 +56,10 @@ add_library( util/DecompilerTypeSystem.cpp util/TP_Type.cpp + VuDisasm/VuDisassembler.cpp + VuDisasm/VuInstruction.cpp + VuDisasm/VuProgram.cpp + config.cpp) target_link_libraries(decomp diff --git a/decompiler/VuDisasm/VuDisassembler.cpp b/decompiler/VuDisasm/VuDisassembler.cpp new file mode 100644 index 0000000000..e59527b2c2 --- /dev/null +++ b/decompiler/VuDisasm/VuDisassembler.cpp @@ -0,0 +1,708 @@ +#include +#include + +#include "VuDisassembler.h" +#include "third-party/fmt/core.h" +#include "common/util/assert.h" +#include "common/util/print_float.h" + +namespace decompiler { + +namespace { +int upper_op6(u32 in) { + return in & 0b111111; +} + +int upper_op11(u32 in) { + return in & 0b11111111111; +} + +int upper_dest_mask(u32 in) { + return 0b1111 & (in >> 21); +} + +int upper_ft(u32 in) { + return 0b11111 & (in >> 16); +} + +int upper_fs(u32 in) { + return 0b11111 & (in >> 11); +} + +int upper_fd(u32 in) { + return 0b11111 & (in >> 6); +} + +int upper_bc(u32 in) { + return 0b11 & in; +} + +int lower_op(u32 in) { + return (in >> 25); +} + +int upper_imm15_unsigned(u32 in) { + u32 p1 = (in & 0b11111111111); + u32 p2 = (in >> 21) & 0b1111; + return p1 | (p2 << 11); +} + +} // namespace +VuDisassembler::VuDisassembler() { + m_upper_op6_table[0b000000].set(VuInstrK::ADDbc); // 0 + m_upper_op6_table[0b000001].set(VuInstrK::ADDbc); // 1 + m_upper_op6_table[0b000010].set(VuInstrK::ADDbc); // 2 + m_upper_op6_table[0b000011].set(VuInstrK::ADDbc); // 3 + m_upper_op6_table[0b000100].set(VuInstrK::SUBbc); // 4 + m_upper_op6_table[0b000101].set(VuInstrK::SUBbc); // 5 + m_upper_op6_table[0b000110].set(VuInstrK::SUBbc); // 6 + m_upper_op6_table[0b000111].set(VuInstrK::SUBbc); // 7 + m_upper_op6_table[0b001000].set(VuInstrK::MADDbc); // 8 + m_upper_op6_table[0b001001].set(VuInstrK::MADDbc); // 9 + m_upper_op6_table[0b001010].set(VuInstrK::MADDbc); // 10 + m_upper_op6_table[0b001011].set(VuInstrK::MADDbc); // 11 + m_upper_op6_table[0b001100].set(VuInstrK::MSUBbc); // 12 + m_upper_op6_table[0b001101].set(VuInstrK::MSUBbc); // 13 + m_upper_op6_table[0b001110].set(VuInstrK::MSUBbc); // 14 + m_upper_op6_table[0b001111].set(VuInstrK::MSUBbc); // 15 + m_upper_op6_table[0b010000].set(VuInstrK::MAXbc); // 16 + m_upper_op6_table[0b010001].set(VuInstrK::MAXbc); // 17 + m_upper_op6_table[0b010010].set(VuInstrK::MAXbc); // 18 + m_upper_op6_table[0b010011].set(VuInstrK::MAXbc); // 19 + m_upper_op6_table[0b010100].set(VuInstrK::MINIbc); // 20 + m_upper_op6_table[0b010101].set(VuInstrK::MINIbc); // 21 + m_upper_op6_table[0b010110].set(VuInstrK::MINIbc); // 22 + m_upper_op6_table[0b010111].set(VuInstrK::MINIbc); // 23 + m_upper_op6_table[0b011000].set(VuInstrK::MULbc); // 24 + m_upper_op6_table[0b011001].set(VuInstrK::MULbc); // 25 + m_upper_op6_table[0b011010].set(VuInstrK::MULbc); // 26 + m_upper_op6_table[0b011011].set(VuInstrK::MULbc); // 27 + m_upper_op6_table[0b011100].set(VuInstrK::MULq); // 28 + m_upper_op6_table[0b011101].set(VuInstrK::MAXi); // 29 + 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[0b100011].set(VuInstrK::MADDi); // 35 + // m_upper_op6_table[0b100100].set(VuInstrK::SUBq); // 36 + // m_upper_op6_table[0b100101].set(VuInstrK::MSUBq); // 37 + // m_upper_op6_table[0b100110].set(VuInstrK::SUBi); // 38 + // m_upper_op6_table[0b100111].set(VuInstrK::MSUBi); // 39 + m_upper_op6_table[0b101000].set(VuInstrK::ADD); // 40 + m_upper_op6_table[0b101001].set(VuInstrK::MADD); // 41 + m_upper_op6_table[0b101010].set(VuInstrK::MUL); // 42 + m_upper_op6_table[0b101011].set(VuInstrK::MAX); // 43 + m_upper_op6_table[0b101100].set(VuInstrK::SUB); // 44 + // m_upper_op6_table[0b101101].set(VuInstrK::MSUB); // 45 + m_upper_op6_table[0b101110].set(VuInstrK::OPMSUB); // 46 + m_upper_op6_table[0b101111].set(VuInstrK::MINI); // 47 + // ??? + m_upper_op6_table[0b111100].set_11(); // 60 + m_upper_op6_table[0b111101].set_11(); // 61 + m_upper_op6_table[0b111110].set_11(); // 62 + m_upper_op6_table[0b111111].set_11(); // 63 + + add_op(VuInstrK::NOP, "nop").iemdt(); + add_op(VuInstrK::LOWER_NOP, "nop"); + add_op(VuInstrK::FTOI4, "ftoi4").iemdt().dst_mask().dst_vf_ft().src_vf_fs(); + add_op(VuInstrK::FTOI0, "ftoi0").iemdt().dst_mask().dst_vf_ft().src_vf_fs(); + add_op(VuInstrK::ITOF0, "itof0").iemdt().dst_mask().dst_vf_ft().src_vf_fs(); + add_op(VuInstrK::ITOF12, "itof12").iemdt().dst_mask().dst_vf_ft().src_vf_fs(); + add_op(VuInstrK::ITOF15, "itof15").iemdt().dst_mask().dst_vf_ft().src_vf_fs(); + add_op(VuInstrK::FTOI12, "ftoi12").iemdt().dst_mask().dst_vf_ft().src_vf_fs(); + add_op(VuInstrK::ADD, "add").iemdt().dst_mask().dss_fd_fs_ft(); + add_op(VuInstrK::MULbc, "mul").iemdt().dst_mask().bc().dss_fd_fs_ft(); + add_op(VuInstrK::ADDbc, "add").iemdt().dst_mask().dss_fd_fs_ft().bc(); + add_op(VuInstrK::MAXbc, "max").iemdt().dst_mask().dss_fd_fs_ft().bc(); + add_op(VuInstrK::MULAbc, "mula").iemdt().bc().dst_mask().dst_acc().src_vfs().src_vft(); + add_op(VuInstrK::MADDAbc, "madda").iemdt().bc().dst_mask().dst_acc().src_vfs().src_vft(); + add_op(VuInstrK::MSUBAbc, "msuba").iemdt().bc().dst_mask().dst_acc().src_vfs().src_vft(); + add_op(VuInstrK::MADDbc, "madd").iemdt().dst_mask().dss_fd_fs_ft().bc(); + add_op(VuInstrK::SUBbc, "sub").iemdt().dst_mask().dss_fd_fs_ft().bc(); + add_op(VuInstrK::OPMULA, "opmula").iemdt().dst_mask().dst_acc().src_vfs().src_vft(); + add_op(VuInstrK::OPMSUB, "opmsub").iemdt().dst_mask().dss_fd_fs_ft(); + add_op(VuInstrK::MUL, "mul").iemdt().dst_mask().dss_fd_fs_ft(); + add_op(VuInstrK::MULq, "mul").iemdt().dst_mask().dst_vfd().src_vfs().src_q().vft_zero(); + add_op(VuInstrK::SUB, "sub").iemdt().dst_mask().dss_fd_fs_ft(); + add_op(VuInstrK::MSUBbc, "msub").iemdt().dst_mask().dss_fd_fs_ft(); + add_op(VuInstrK::MADDA, "madda").iemdt().dst_mask().dst_acc().src_vfs().src_vft(); + add_op(VuInstrK::MULA, "mula").iemdt().dst_mask().dst_acc().src_vfs().src_vft(); + add_op(VuInstrK::MINIbc, "mini").iemdt().dst_mask().bc().dss_fd_fs_ft(); + add_op(VuInstrK::MAXi, "maxi").iemdt().dst_mask().dst_vfd().src_vfs().vft_zero().src_i(); + add_op(VuInstrK::MINIi, "minii").iemdt().dst_mask().dst_vfd().src_vfs().vft_zero().src_i(); + add_op(VuInstrK::ADDAbc, "adda").iemdt().dst_mask().bc().dst_vfs().src_vft(); + add_op(VuInstrK::CLIP, "clip").iemdt().dst_mask().bc().src_vfs().src_vft(); + add_op(VuInstrK::MINI, "mini").iemdt().dst_mask().dss_fd_fs_ft(); + add_op(VuInstrK::MAX, "max").iemdt().dst_mask().dss_fd_fs_ft(); + 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::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(); + + m_lower_op6_table[0b000000].set(VuInstrK::LQ); + m_lower_op6_table[0b000001].set(VuInstrK::SQ); + m_lower_op6_table[0b000100].set(VuInstrK::ILW); + m_lower_op6_table[0b000101].set(VuInstrK::ISW); + m_lower_op6_table[0b001000].set(VuInstrK::IADDIU); + m_lower_op6_table[0b001001].set(VuInstrK::ISUBIU); + // m_lower_op6_table[0b010000].set(VuInstrK::FCEQ); + m_lower_op6_table[0b010001].set(VuInstrK::FCSET); + m_lower_op6_table[0b010010].set(VuInstrK::FCAND); + m_lower_op6_table[0b010011].set(VuInstrK::FCOR); + // m_lower_op6_table[0b010100].set(VuInstrK::FSEQ); + // m_lower_op6_table[0b010101].set(VuInstrK::FSSET); + m_lower_op6_table[0b010110].set(VuInstrK::FSAND); + // m_lower_op6_table[0b010111].set(VuInstrK::FSOR); + // m_lower_op6_table[0b011000].set(VuInstrK::FMEQ); + // ?? + m_lower_op6_table[0b011010].set(VuInstrK::FMAND); + // m_lower_op6_table[0b011011].set(VuInstrK::FMOR); + m_lower_op6_table[0b011100].set(VuInstrK::FCGET); + // ?? + m_lower_op6_table[0b100000].set(VuInstrK::B); + m_lower_op6_table[0b100001].set(VuInstrK::BAL); + m_lower_op6_table[0b100100].set(VuInstrK::JR); + m_lower_op6_table[0b100101].set(VuInstrK::JALR); + m_lower_op6_table[0b101000].set(VuInstrK::IBEQ); + m_lower_op6_table[0b101001].set(VuInstrK::IBNE); + m_lower_op6_table[0b101100].set(VuInstrK::IBLTZ); + m_lower_op6_table[0b101101].set(VuInstrK::IBGTZ); + m_lower_op6_table[0b101110].set(VuInstrK::IBLEZ); + m_lower_op6_table[0b101111].set(VuInstrK::IBGEZ); + + add_op(VuInstrK::IBNE, "ibne").dst_mask_zero().src_vit().src_vis().rel_branch11(); + add_op(VuInstrK::LQ, "lq").dst_mask().dst_vft().src_imm11_load_store().src_vis(); + add_op(VuInstrK::ILW, "ilw").dst_mask().dst_vit().src_imm11_load_store().src_vis(); + add_op(VuInstrK::IADDIU, "iaddiu").dst_vit().src_vis().src_imm15_unsigned(); + add_op(VuInstrK::IADDI, "iaddi").dst_vit().src_vis().src_imm5_signed().dst_mask_zero(); + add_op(VuInstrK::IOR, "ior").dst_vid().src_vis().src_vit().dst_mask_zero(); + add_op(VuInstrK::SQI, "sqi").dst_vfs().src_vit().dst_mask(); + add_op(VuInstrK::ISW, "isw").src_vit().src_imm11_load_store().src_vis().dst_mask(); + add_op(VuInstrK::LQI, "lqi").dst_mask().dst_vft().src_vis(); + add_op(VuInstrK::IADD, "iadd").dst_mask_zero().dst_vid().src_vis().src_vit(); + add_op(VuInstrK::XGKICK, "xgkick").dst_mask_zero().vft_zero().src_vis(); + add_op(VuInstrK::ISUB, "isub").dst_mask_zero().dst_vid().src_vis().src_vit(); + add_op(VuInstrK::SQ, "sq").dst_mask().dst_vfs().src_imm11_load_store().src_vit(); + add_op(VuInstrK::FMAND, "fmand").imm15_zero().dst_vit().src_vis(); + add_op(VuInstrK::DIV, "div").ftf_1().fsf_0().dst_q().src_vfs().src_vft(); + add_op(VuInstrK::MOVE, "move").dst_mask().dst_vft().src_vfs(); + add_op(VuInstrK::MR32, "mr32").dst_mask().dst_vft().src_vfs(); + add_op(VuInstrK::RSQRT, "rsqrt").ftf_1().fsf_0().dst_q().src_vfs().src_vft(); + add_op(VuInstrK::ILWR, "ilwr").dst_mask().dst_vit().src_vis(); + add_op(VuInstrK::MTIR, "mtir").ftf_zero().fsf_0().dst_vit().src_vfs(); + add_op(VuInstrK::JR, "jr").dst_mask_zero().vit_zero().src_vis().imm11_zero(); + add_op(VuInstrK::IAND, "iand").dst_mask_zero().dst_vid().src_vis().src_vit(); + add_op(VuInstrK::IBEQ, "ibeq").src_vit().src_vis().dst_mask_zero().rel_branch11(); + add_op(VuInstrK::B, "b").dst_mask_zero().vit_zero().vis_zero().rel_branch11(); + // add_op(VuInstrK::XITOP, "xitop").dst_mask_zero().vis_zero().src_vit(); + add_op(VuInstrK::XTOP, "xtop").dst_mask_zero().vis_zero().src_vit(); + add_op(VuInstrK::BAL, "bal").dst_mask_zero().vis_zero().dst_vit().rel_branch11(); + add_op(VuInstrK::MFIR, "mfir").dst_mask().dst_vft().src_vis(); + add_op(VuInstrK::IBGTZ, "ibgtz").dst_mask_zero().vit_zero().src_vis().rel_branch11(); + add_op(VuInstrK::FCGET, "fcget").imm15_zero().vis_zero().dst_vit(); + add_op(VuInstrK::ISUBIU, "isubiu").dst_vit().src_vis().imm15_unsigned(); + add_op(VuInstrK::FSAND, "fsand").dst_vit().imm15_unsigned().vis_zero(); // really imm12. + add_op(VuInstrK::IBLTZ, "ibltz").dst_mask_zero().vit_zero().src_vis().rel_branch11(); + add_op(VuInstrK::FCSET, "fcset").src_imm24_unsigned(); + add_op(VuInstrK::FCAND, "fcand vi01,").src_imm24_unsigned(); + add_op(VuInstrK::FCOR, "fcor vi01,").src_imm24_unsigned(); + add_op(VuInstrK::IBGEZ, "ibgez").dst_mask_zero().vit_zero().src_vis().rel_branch11(); + add_op(VuInstrK::ISWR, "iswr").dst_mask().src_vit().src_vis(); + add_op(VuInstrK::JALR, "jalr").dst_mask_zero().dst_vit().src_vis().imm11_zero(); + add_op(VuInstrK::WAITQ, "waitq").dst_mask_zero().vft_zero().vis_zero(); + add_op(VuInstrK::IBLEZ, "iblez").dst_mask_zero().vit_zero().src_vis().rel_branch11(); + add_op(VuInstrK::SQRT, "sqrt").fsf_zero().ftf_0().vis_zero().dst_q().src_vft(); + add_op(VuInstrK::SQD, "sqd").dst_mask().src_vfs().src_vit(); + add_op(VuInstrK::ERLENG, "erleng").dst_mask().vft_zero().src_vfs().dst_p(); + add_op(VuInstrK::MFP, "mfp").dst_mask().dst_vft().src_p(); +} + +VuDisassembler::OpInfo& VuDisassembler::add_op(VuInstrK kind, const std::string& name) { + assert((int)kind < (int)VuInstrK::INVALID); + auto& elt = m_op_info[(int)kind]; + elt.name = name; + elt.known = true; + return elt; +} + +VuInstrK VuDisassembler::lower_kind(u32 in) { + auto op = lower_op(in); + if (in == 0b10000000000000000000000000110000) { + return VuInstrK::LOWER_NOP; + } + if (op == 0b1000000) { + switch (in & 0b111111) { + case 0b110010: + return VuInstrK::IADDI; + case 0b110101: + return VuInstrK::IOR; + case 0b110000: + return VuInstrK::IADD; + case 0b110001: + return VuInstrK::ISUB; + case 0b110100: + return VuInstrK::IAND; + } + switch (in & 0b11111111111) { + case 0b01100'1111'00: + return VuInstrK::MOVE; + case 0b01100'1111'01: + return VuInstrK::MR32; + case 0b01101'1111'00: + return VuInstrK::LQI; + case 0b01101'1111'01: + return VuInstrK::SQI; + case 0b01101'1111'11: + return VuInstrK::SQD; + case 0b01110'1111'00: + return VuInstrK::DIV; + case 0b01110'1111'01: + return VuInstrK::SQRT; + case 0b01110'1111'10: + return VuInstrK::RSQRT; + case 0b01110'1111'11: + return VuInstrK::WAITQ; + case 0b01111'1111'00: + return VuInstrK::MTIR; + case 0b01111'1111'01: + return VuInstrK::MFIR; + case 0b01111'1111'10: + return VuInstrK::ILWR; + case 0b01111'1111'11: + return VuInstrK::ISWR; + case 0b11001'1111'00: + return VuInstrK::MFP; + case 0b11010'1111'00: + return VuInstrK::XTOP; + case 0b11011'1111'00: + return VuInstrK::XGKICK; + case 0b11100'1111'11: + return VuInstrK::ERLENG; + } + fmt::print("Unknown lower special: 0b{:b}\n", in); + assert(false); + } else { + assert((op & 0b1000000) == 0); + assert(op < 64); + auto elt = m_lower_op6_table[(int)op]; + if (!elt.known) { + fmt::print("Invalid lower op6: 0b{:b} 0b{:b} 0x{:x}\n", op, in, in); + assert(false); + } + return elt.kind; + } +} + +VuInstrK VuDisassembler::upper_kind(u32 in) { + auto& upper_info = m_upper_op6_table[upper_op6(in)]; + if (upper_info.goto_11) { + switch (upper_op11(in)) { + case 0b00000'1111'00: + case 0b00000'1111'01: + case 0b00000'1111'10: + case 0b00000'1111'11: + return VuInstrK::ADDAbc; + case 0b00010'1111'00: + case 0b00010'1111'01: + case 0b00010'1111'10: + case 0b00010'1111'11: + return VuInstrK::MADDAbc; + case 0b00011'1111'00: + case 0b00011'1111'01: + case 0b00011'1111'10: + case 0b00011'1111'11: + return VuInstrK::MSUBAbc; + case 0b00100'1111'00: + return VuInstrK::ITOF0; + case 0b00100'1111'10: + return VuInstrK::ITOF12; + case 0b00100'1111'11: + return VuInstrK::ITOF15; + case 0b00101'1111'00: + return VuInstrK::FTOI0; + case 0b00101'1111'01: + return VuInstrK::FTOI4; + case 0b00101'1111'10: + return VuInstrK::FTOI12; + case 0b00110'1111'00: + case 0b00110'1111'01: + case 0b00110'1111'10: + case 0b00110'1111'11: + return VuInstrK::MULAbc; + case 0b00111'1111'11: + return VuInstrK::CLIP; + case 0b01010'1111'00: + return VuInstrK::ADDA; + case 0b01010'1111'01: + return VuInstrK::MADDA; + case 0b01010'1111'10: + return VuInstrK::MULA; + case 0b01011'1111'10: + return VuInstrK::OPMULA; + case 0b01011'1111'11: + assert(upper_dest_mask(in) == 0); + assert(upper_fs(in) == 0); + assert(upper_ft(in) == 0); + return VuInstrK::NOP; + break; + + default: + fmt::print("Invalid op11: 0b{:b}\n", upper_op11(in)); + assert(false); + } + } + if (!upper_info.known) { + fmt::print("Invalid upper op6: 0b{:b}\n", upper_op6(in)); + assert(false); + } + return upper_info.kind; +} + +VuProgram VuDisassembler::disassemble(void* data, int size_bytes, bool debug_print) { + auto bytes = (u8*)data; + // should be 8 byte aligned size. + assert((size_bytes & 0x7) == 0); + VuProgram prog; + int instruction_count = size_bytes / 8; + for (int i = 0; i < instruction_count; i++) { + u32 lower, upper; + memcpy(&lower, bytes + i * 8, 4); + memcpy(&upper, bytes + i * 8 + 4, 4); + + // decode + auto upper_instr = decode(upper_kind(upper), upper, i); + auto lower_instr = upper_instr.i_bit() ? VuInstruction::make_fp_constant(lower) + : decode(lower_kind(lower), lower, i); + + prog.add_instruction(upper_instr, lower_instr); + + // debug + if (debug_print) { + fmt::print("{}\n", to_string(VuInstructionPair{upper_instr, lower_instr})); + } + } + + name_labels(); + + if (debug_print) { + fmt::print("----------------------------------\n"); + fmt::print("{}\n", to_string(prog)); + } + + return prog; +} + +VuInstruction VuDisassembler::decode(VuInstrK kind, u32 data, int instr_idx) { + VuInstruction instr; + instr.kind = kind; + auto& inst = info(kind); + if (!inst.known) { + fmt::print("instr idx {} is unknown\n", (int)kind); + assert(false); + } + for (auto& step : inst.decode) { + s64 value = -1; + switch (step.field) { + case VuDecodeStep::FieldK::IEMDT: + value = data >> 25; + assert((value & 3) == 0); + break; + case VuDecodeStep::FieldK::DST_MASK: + value = upper_dest_mask(data); + break; + case VuDecodeStep::FieldK::FS: + value = upper_fs(data); + break; + case VuDecodeStep::FieldK::FT: + value = upper_ft(data); + break; + case VuDecodeStep::FieldK::FD: + value = upper_fd(data); + break; + case VuDecodeStep::FieldK::BC: + value = upper_bc(data); + break; + case VuDecodeStep::FieldK::NONE: + break; + case VuDecodeStep::FieldK::IMM11_BRANCH: { + s32 signed_11 = upper_op11(data) << 21; + signed_11 >>= 21; + value = add_label(signed_11 + instr_idx + 1); + } break; + case VuDecodeStep::FieldK::IMM11_SIGNED: { + s32 signed_value = (data << 21); + signed_value = (signed_value >> 21); + value = signed_value; + } break; + case VuDecodeStep::FieldK::IMM15_UNSIGNED: + value = upper_imm15_unsigned(data); + break; + case VuDecodeStep::FieldK::IMM5_SIGNED: { + s32 signed_value = (data << 21); + value = (signed_value >> 27); + break; + } + case VuDecodeStep::FieldK::FTF: + value = (data >> 23) & 0b11; + break; + + case VuDecodeStep::FieldK::FSF: + value = (data >> 21) & 0b11; + break; + + case VuDecodeStep::FieldK::IMM24_UNSIGNED: + value = (data & 0b1111'1111'1111'1111'1111'1111); + break; + + default: + assert(false); + } + + switch (step.atom) { + case VuDecodeStep::AtomK::IEMDT: + instr.iemdt = value; + break; + case VuDecodeStep::AtomK::DST_MASK: + instr.mask = value; + break; + case VuDecodeStep::AtomK::DST_VF: + assert(!instr.dst); + instr.dst = VuInstructionAtom::make_vf(value); + break; + case VuDecodeStep::AtomK::DST_VI: + assert(!instr.dst); + instr.dst = VuInstructionAtom::make_vi(value); + break; + case VuDecodeStep::AtomK::SRC_VF: + instr.src.push_back(VuInstructionAtom::make_vf(value)); + break; + case VuDecodeStep::AtomK::BC: + assert(!instr.bc); + instr.bc = value; + break; + case VuDecodeStep::AtomK::ASSERT_ZERO: + assert(value == 0); + break; + case VuDecodeStep::AtomK::SRC_VI: + instr.src.push_back(VuInstructionAtom::make_vi(value)); + break; + case VuDecodeStep::AtomK::BRANCH_TARGET: + instr.src.push_back(VuInstructionAtom::make_label(value)); + break; + case VuDecodeStep::AtomK::LOAD_STORE_OFFSET: + instr.src.push_back(VuInstructionAtom::make_load_store_imm(value)); + break; + case VuDecodeStep::AtomK::SRC_IMM: + instr.src.push_back(VuInstructionAtom::make_imm(value)); + break; + case VuDecodeStep::AtomK::DST_ACC: + assert(!instr.dst); + instr.dst = VuInstructionAtom::make_acc(); + break; + case VuDecodeStep::AtomK::DST_Q: + assert(!instr.dst); + instr.dst = VuInstructionAtom::make_q(); + break; + case VuDecodeStep::AtomK::DST_P: + assert(!instr.dst); + instr.dst = VuInstructionAtom::make_p(); + break; + case VuDecodeStep::AtomK::SRC_Q: + instr.src.push_back(VuInstructionAtom::make_q()); + break; + case VuDecodeStep::AtomK::SRC_I: + instr.src.push_back(VuInstructionAtom::make_i()); + break; + case VuDecodeStep::AtomK::SRC_P: + instr.src.push_back(VuInstructionAtom::make_p()); + break; + case VuDecodeStep::AtomK::SECOND_SOURCE_FIELD: + instr.second_src_field = value; + break; + case VuDecodeStep::AtomK::FIRST_SOURCE_FIELD: + instr.first_src_field = value; + break; + default: + assert(false); + } + } + + return instr; +} + +namespace { +char bc_to_part(int x) { + switch (x) { + case 0: + return 'x'; + case 1: + return 'y'; + case 2: + return 'z'; + case 3: + return 'w'; + default: + return '?'; + } +} +} // namespace + +std::string VuDisassembler::to_string(const VuInstruction& instr) const { + if (instr.kind == VuInstrK::FP_CONSTANT) { + return float_to_string(instr.fp); + } + + auto& in = info(instr.kind); + if (!in.known) { + assert(false); + } + + std::string result; + result += in.name; + + if (instr.bc) { + result += bc_to_part(*instr.bc); + } + + if (instr.mask) { + u8 val = *instr.mask; + result += '.'; + if (val & 8) { + result += 'x'; + } + if (val & 4) { + result += 'y'; + } + if (val & 2) { + result += 'z'; + } + if (val & 1) { + result += 'w'; + } + } + + bool comma = false; + if (instr.dst) { + result += " "; + result += instr.dst->to_string(m_label_names); + result += ','; + comma = true; + } + + bool close = false; + int idx = 0; + for (auto& src : instr.src) { + if (close) { + } else { + result += " "; + } + + result += src.to_string(m_label_names); + + if (idx == 0 && instr.first_src_field) { + result += '.'; + result += bc_to_part(*instr.first_src_field); + } + + if (idx == 1 && instr.second_src_field) { + result += '.'; + result += bc_to_part(*instr.second_src_field); + } + + if (src.kind() == VuInstructionAtom::Kind::LOAD_STORE_IMM) { + result += '('; + close = true; + } else { + if (close) { + result += ")"; + close = false; + comma = false; + } else { + result += ','; + comma = true; + } + } + + idx++; + } + + assert(!close); + + if (comma) { + result.pop_back(); + } + + if (instr.iemdt) { + u8 val = *instr.iemdt; + if (val & 0b100) { + result += " :t"; + } + + if (val & 0b1000) { + result += " :d"; + } + + if (val & 0b10000) { + result += " :m"; + } + + if (val & 0b100000) { + result += " :e"; + } + + if (val & 0b1000000) { + result += " :i"; + } + } + + return result; +} + +std::string VuDisassembler::to_string(const VuInstructionPair& pair) const { + return fmt::format(" {:25s} | {:25s}", to_string(pair.lower), to_string(pair.upper)); +} + +std::string VuDisassembler::to_string(const VuProgram& prog) const { + std::string result; + for (int i = 0; i < (int)prog.instructions().size(); i++) { + auto lab = m_labels.find(i); + if (lab != m_labels.end()) { + result += m_label_names.at(lab->second); + result += ':'; + result += '\n'; + } + result += to_string(prog.instructions().at(i)); + result += '\n'; + } + return result; +} + +int VuDisassembler::add_label(int instr) { + auto existing = m_labels.find(instr); + if (existing == m_labels.end()) { + int new_idx = m_labels.size(); + m_labels[instr] = new_idx; + return new_idx; + } else { + return existing->second; + } +} + +void VuDisassembler::name_labels() { + std::vector instrs_with_labels; + for (auto [instr, label_idx] : m_labels) { + instrs_with_labels.push_back(instr); + } + + m_label_names.resize(instrs_with_labels.size()); + std::sort(instrs_with_labels.begin(), instrs_with_labels.end()); + int idx = 1; + for (auto& instr : instrs_with_labels) { + auto label_idx = m_labels.at(instr); + m_label_names.at(label_idx) = fmt::format("L{}", idx++); + } +} +} // namespace decompiler \ No newline at end of file diff --git a/decompiler/VuDisasm/VuDisassembler.h b/decompiler/VuDisasm/VuDisassembler.h new file mode 100644 index 0000000000..011a74ad37 --- /dev/null +++ b/decompiler/VuDisasm/VuDisassembler.h @@ -0,0 +1,228 @@ +#pragma once + +#include + +#include "decompiler/VuDisasm/VuProgram.h" +#include "common/util/assert.h" + +namespace decompiler { + +struct VuDecodeStep { + enum class FieldK { + IEMDT, + DST_MASK, + FT, + FS, + FD, + BC, + IMM11_BRANCH, + IMM11_SIGNED, + IMM15_UNSIGNED, + IMM5_SIGNED, + IMM24_UNSIGNED, + FTF, + FSF, + NONE, + } field; + + enum class AtomK { + IEMDT, + DST_MASK, + DST_VF, + DST_VI, + DST_ACC, + DST_Q, + DST_P, + SRC_P, + SRC_Q, + SRC_I, + SRC_VF, + SRC_VI, + SRC_IMM, + BC, + ASSERT_ZERO, + LOAD_STORE_OFFSET, + SECOND_SOURCE_FIELD, + FIRST_SOURCE_FIELD, + BRANCH_TARGET + } atom; +}; + +class VuDisassembler { + public: + VuDisassembler(); + VuProgram disassemble(void* data, int size_bytes, bool debug_print = false); + std::string to_string(const VuInstruction& instr) const; + std::string to_string(const VuInstructionPair& pair) const; + std::string to_string(const VuProgram& prog) const; + + private: + VuInstrK upper_kind(u32 in); + VuInstrK lower_kind(u32 in); + VuInstruction decode(VuInstrK kind, u32 data, int instr_idx); + + struct VuUpperOp6 { + bool goto_11 = false; + VuInstrK kind = VuInstrK::INVALID; + bool known = false; + void set_11() { + known = true; + goto_11 = true; + } + + void set(VuInstrK _kind) { + known = true; + kind = _kind; + } + }; + + struct VuLowerOp6 { + bool goto_other = false; + VuInstrK kind = VuInstrK::INVALID; + bool known = false; + void set_other() { + known = true; + goto_other = true; + } + + void set(VuInstrK _kind) { + known = true; + kind = _kind; + } + }; + + struct OpInfo { + OpInfo() = default; + OpInfo(const std::string& _name) : name(_name) {} + + OpInfo& iemdt() { return step({VuDecodeStep::FieldK::IEMDT, VuDecodeStep::AtomK::IEMDT}); } + OpInfo& bc() { return step({VuDecodeStep::FieldK::BC, VuDecodeStep::AtomK::BC}); } + OpInfo& dst_vf_ft() { return step({VuDecodeStep::FieldK::FT, VuDecodeStep::AtomK::DST_VF}); } + OpInfo& src_vf_fs() { return step({VuDecodeStep::FieldK::FS, VuDecodeStep::AtomK::SRC_VF}); } + OpInfo& dss_fd_fs_ft() { + return step({VuDecodeStep::FieldK::FD, VuDecodeStep::AtomK::DST_VF}) + .step({VuDecodeStep::FieldK::FS, VuDecodeStep::AtomK::SRC_VF}) + .step({VuDecodeStep::FieldK::FT, VuDecodeStep::AtomK::SRC_VF}); + } + + OpInfo& dst_mask() { + return step({VuDecodeStep::FieldK::DST_MASK, VuDecodeStep::AtomK::DST_MASK}); + } + + OpInfo& dst_acc() { return step({VuDecodeStep::FieldK::NONE, VuDecodeStep::AtomK::DST_ACC}); } + OpInfo& dst_vfd() { return step({VuDecodeStep::FieldK::FD, VuDecodeStep::AtomK::DST_VF}); } + OpInfo& dst_q() { return step({VuDecodeStep::FieldK::NONE, VuDecodeStep::AtomK::DST_Q}); } + OpInfo& dst_p() { return step({VuDecodeStep::FieldK::NONE, VuDecodeStep::AtomK::DST_P}); } + OpInfo& src_q() { return step({VuDecodeStep::FieldK::NONE, VuDecodeStep::AtomK::SRC_Q}); } + OpInfo& src_i() { return step({VuDecodeStep::FieldK::NONE, VuDecodeStep::AtomK::SRC_I}); } + OpInfo& src_p() { return step({VuDecodeStep::FieldK::NONE, VuDecodeStep::AtomK::SRC_P}); } + + OpInfo& step(VuDecodeStep x) { + decode.push_back(x); + return *this; + } + + OpInfo& dst_mask_zero() { + return step({VuDecodeStep::FieldK::DST_MASK, VuDecodeStep::AtomK::ASSERT_ZERO}); + } + + OpInfo& vft_zero() { + return step({VuDecodeStep::FieldK::FT, VuDecodeStep::AtomK::ASSERT_ZERO}); + } + + OpInfo& vit_zero() { return vft_zero(); } + + OpInfo& vis_zero() { + return step({VuDecodeStep::FieldK::FS, VuDecodeStep::AtomK::ASSERT_ZERO}); + } + + OpInfo& ftf_zero() { + return step({VuDecodeStep::FieldK::FTF, VuDecodeStep::AtomK::ASSERT_ZERO}); + } + + OpInfo& fsf_zero() { + return step({VuDecodeStep::FieldK::FSF, VuDecodeStep::AtomK::ASSERT_ZERO}); + } + + OpInfo& src_vit() { return step({VuDecodeStep::FieldK::FT, VuDecodeStep::AtomK::SRC_VI}); } + + OpInfo& src_vis() { return step({VuDecodeStep::FieldK::FS, VuDecodeStep::AtomK::SRC_VI}); } + + OpInfo& src_vft() { return step({VuDecodeStep::FieldK::FT, VuDecodeStep::AtomK::SRC_VF}); } + + OpInfo& src_vfs() { return step({VuDecodeStep::FieldK::FS, VuDecodeStep::AtomK::SRC_VF}); } + + OpInfo& rel_branch11() { + return step({VuDecodeStep::FieldK::IMM11_BRANCH, VuDecodeStep::AtomK::BRANCH_TARGET}); + } + + OpInfo& imm15_unsigned() { + return step({VuDecodeStep::FieldK::IMM15_UNSIGNED, VuDecodeStep::AtomK::SRC_IMM}); + } + + OpInfo& dst_vft() { return step({VuDecodeStep::FieldK::FT, VuDecodeStep::AtomK::DST_VF}); } + + OpInfo& dst_vfs() { return step({VuDecodeStep::FieldK::FS, VuDecodeStep::AtomK::DST_VF}); } + + OpInfo& dst_vit() { return step({VuDecodeStep::FieldK::FT, VuDecodeStep::AtomK::DST_VI}); } + + OpInfo& dst_vid() { return step({VuDecodeStep::FieldK::FD, VuDecodeStep::AtomK::DST_VI}); } + + OpInfo& ftf_1() { + return step({VuDecodeStep::FieldK::FTF, VuDecodeStep::AtomK::SECOND_SOURCE_FIELD}); + } + OpInfo& ftf_0() { + return step({VuDecodeStep::FieldK::FTF, VuDecodeStep::AtomK::FIRST_SOURCE_FIELD}); + } + OpInfo& fsf_0() { + return step({VuDecodeStep::FieldK::FSF, VuDecodeStep::AtomK::FIRST_SOURCE_FIELD}); + } + + OpInfo& src_imm11_load_store() { + return step({VuDecodeStep::FieldK::IMM11_SIGNED, VuDecodeStep::AtomK::LOAD_STORE_OFFSET}); + } + + OpInfo& imm11_zero() { + return step({VuDecodeStep::FieldK::IMM11_SIGNED, VuDecodeStep::AtomK::ASSERT_ZERO}); + } + + OpInfo& src_imm15_unsigned() { + return step({VuDecodeStep::FieldK::IMM15_UNSIGNED, VuDecodeStep::AtomK::SRC_IMM}); + } + + OpInfo& src_imm24_unsigned() { + return step({VuDecodeStep::FieldK::IMM24_UNSIGNED, VuDecodeStep::AtomK::SRC_IMM}); + } + + OpInfo& src_imm5_signed() { + return step({VuDecodeStep::FieldK::IMM5_SIGNED, VuDecodeStep::AtomK::SRC_IMM}); + } + + OpInfo& imm15_zero() { + return step({VuDecodeStep::FieldK::IMM15_UNSIGNED, VuDecodeStep::AtomK::ASSERT_ZERO}); + } + + std::string name; + std::vector decode; + bool known = false; + }; + + const OpInfo& info(VuInstrK op) const { + assert((int)op < (int)VuInstrK::INVALID); + return m_op_info[(int)op]; + } + + VuUpperOp6 m_upper_op6_table[64]; + VuLowerOp6 m_lower_op6_table[64]; + OpInfo m_op_info[(int)VuInstrK::INVALID]; + + std::unordered_map m_labels; + std::vector m_label_names; + + int add_label(int instr); + void name_labels(); + + OpInfo& add_op(VuInstrK kind, const std::string& name); +}; + +} // namespace decompiler diff --git a/decompiler/VuDisasm/VuInstruction.cpp b/decompiler/VuDisasm/VuInstruction.cpp new file mode 100644 index 0000000000..931c5c2b06 --- /dev/null +++ b/decompiler/VuDisasm/VuInstruction.cpp @@ -0,0 +1,92 @@ +#include "common/util/assert.h" +#include "third-party/fmt/core.h" + +#include "VuInstruction.h" + +namespace decompiler { +VuInstructionAtom VuInstructionAtom::make_vf(int idx) { + assert(idx >= 0 && idx <= 31); + return {Kind::VF, idx}; +} + +VuInstructionAtom VuInstructionAtom::make_vi(int idx) { + assert(idx >= 0 && idx <= 15); + return {Kind::VI, idx}; +} + +VuInstructionAtom VuInstructionAtom::make_label(int idx) { + return {Kind::LABEL, idx}; +} + +VuInstructionAtom VuInstructionAtom::make_q() { + return {Kind::Q}; +} + +VuInstructionAtom VuInstructionAtom::make_acc() { + return {Kind::ACC}; +} + +VuInstructionAtom VuInstructionAtom::make_imm(u64 value) { + return {Kind::IMM, (s64)value}; +} + +VuInstructionAtom VuInstructionAtom::make_load_store_imm(s64 value) { + return {Kind::LOAD_STORE_IMM, value}; +} + +VuInstructionAtom VuInstructionAtom::make_i() { + return {Kind::I}; +} + +VuInstructionAtom VuInstructionAtom::make_p() { + return {Kind::P}; +} + +VuInstructionAtom VuInstructionAtom::make_r() { + return {Kind::R}; +} + +std::string VuInstructionAtom::to_string(const std::vector& labels) const { + switch (m_kind) { + case Kind::VF: + return fmt::format("vf{:02d}", m_value); + case Kind::Q: + return "Q"; + case Kind::ACC: + return "ACC"; + case Kind::IMM: + if (m_value < 0) { + return fmt::format("-0x{:x}", -m_value); + } else { + return fmt::format("0x{:x}", m_value); + } + + case Kind::I: + return "I"; + case Kind::P: + return "P"; + case Kind::R: + return "R"; + case Kind::LABEL: + if (m_value < (int)labels.size()) { + return labels.at(m_value); + } else { + return "BAD-LABEL"; + } + case Kind::LOAD_STORE_IMM: + return fmt::format("{}", m_value); + case Kind::VI: + return fmt::format("vi{:02d}", m_value); + case Kind::INVALID: + default: + assert(false); + } +} + +VuInstruction VuInstruction::make_fp_constant(u32 value) { + VuInstruction result; + memcpy(&result.fp, &value, sizeof(float)); + result.kind = VuInstrK::FP_CONSTANT; + return result; +} +} // namespace decompiler \ No newline at end of file diff --git a/decompiler/VuDisasm/VuInstruction.h b/decompiler/VuDisasm/VuInstruction.h new file mode 100644 index 0000000000..94bc44cccc --- /dev/null +++ b/decompiler/VuDisasm/VuInstruction.h @@ -0,0 +1,209 @@ +#pragma once + +#include +#include + +#include "common/common_types.h" + +namespace decompiler { + +enum class VuInstrK { + // upper + // ABS, + ADD, + ADDi, + ADDq, + ADDbc, + ADDA, + // ADDAi, + // ADDAq, + ADDAbc, + SUB, + // SUBi, // 10 + // SUBq, + SUBbc, + // SUBA, + // SUBAi, + // SUBAq, + // SUBAbc, + MUL, + MULi, + MULq, + MULbc, // 20 + MULA, + // MULAi, + // MULAq, + MULAbc, + MADD, + // MADDi, + // MADDq, + MADDbc, + MADDA, + // MADDAi, // 30 + // MADDAq, + MADDAbc, + // MSUB, + // MSUBi, + // MSUBq, + MSUBbc, + // MSUBA, + // MSUBAi, + // MSUBAq, + MSUBAbc, // 40 + MAX, + MAXi, + MAXbc, + MINI, + MINIi, + MINIbc, + OPMULA, + OPMSUB, + NOP, // 49 + FTOI0, // 50 + FTOI4, + FTOI12, + // FTOI15, + ITOF0, + // ITOF4, + ITOF12, + ITOF15, + CLIP, + + // lower + DIV, + SQRT, // 60 + RSQRT, + IADD, + IADDI, + IADDIU, + IAND, + IOR, + ISUB, + ISUBIU, + MOVE, + MFIR, // 70 + MTIR, + MR32, + LQ, + LQD, + LQI, + SQ, + SQD, + SQI, + ILW, + ISW, // 80 + ILWR, + ISWR, + // LOI, + // RINIT, + // RGET, + // RNEXT, + // RXOR, + WAITQ, + FSAND, + // FSEQ, // 90 + // FSOR, + // FSSET, + FMAND, + // FMEQ, + // FMOR, + FCAND, + // FCEQ, + FCOR, + FCSET, + FCGET, // 100 + IBEQ, + // IBEZ, + IBGEZ, + IBGTZ, + IBLEZ, + IBLTZ, + IBNE, + B, + BAL, + JR, // 110 + JALR, + MFP, + // WAITP, + // ESADD, + // ERSADD, + // ELENG, + ERLENG, + // EATANxy, + // EATANxz, + // ESUM, + // ERCPR, + // ESQRT, + // ERSQRT, + // ESIN, + // IATAN, + // EEXP, + XGKICK, + XTOP, + // XITOP, + LOWER_NOP, // really iadd vi0 vi0 vi0 + + FP_CONSTANT, + + INVALID +}; + +/*! + * Represents an operand in a VU instruction. + */ +class VuInstructionAtom { + public: + enum class Kind { + VF, + VI, + Q, + ACC, + IMM, + LOAD_STORE_IMM, + I, + P, + R, + LABEL, + INVALID, + }; + + static VuInstructionAtom make_vf(int idx); + static VuInstructionAtom make_vi(int idx); + static VuInstructionAtom make_label(int idx); + static VuInstructionAtom make_q(); + static VuInstructionAtom make_acc(); + static VuInstructionAtom make_imm(u64 value); + static VuInstructionAtom make_load_store_imm(s64 value); + static VuInstructionAtom make_i(); + static VuInstructionAtom make_p(); + static VuInstructionAtom make_r(); + + std::string to_string(const std::vector& labels) const; + Kind kind() const { return m_kind; } + + private: + VuInstructionAtom(Kind kind, s64 idx = -1) : m_kind(kind), m_value(idx) {} + Kind m_kind = Kind::INVALID; + s64 m_value = -1; +}; + +struct VuInstruction { + VuInstrK kind = VuInstrK::INVALID; + std::optional dst; + std::vector src; + std::optional bc; + std::optional mask; + std::optional iemdt; + std::optional first_src_field, second_src_field; + float fp; + + bool i_bit() const { return iemdt && (*iemdt & 0b1000000); } + + static VuInstruction make_fp_constant(u32 value); +}; + +struct VuInstructionPair { + VuInstruction upper, lower; +}; + +} // namespace decompiler \ No newline at end of file diff --git a/decompiler/VuDisasm/VuProgram.cpp b/decompiler/VuDisasm/VuProgram.cpp new file mode 100644 index 0000000000..1d1e78272b --- /dev/null +++ b/decompiler/VuDisasm/VuProgram.cpp @@ -0,0 +1,3 @@ + + +#include "VuProgram.h" diff --git a/decompiler/VuDisasm/VuProgram.h b/decompiler/VuDisasm/VuProgram.h new file mode 100644 index 0000000000..a0c6f3617b --- /dev/null +++ b/decompiler/VuDisasm/VuProgram.h @@ -0,0 +1,22 @@ +#pragma once + +#include + +#include "decompiler/VuDisasm/VuInstruction.h" + +namespace decompiler { +class VuProgram { + public: + VuProgram() = default; + void add_instruction(const VuInstruction& upper, const VuInstruction& lower) { + VuInstructionPair p; + p.upper = upper; + p.lower = lower; + m_instructions.push_back(p); + } + const std::vector& instructions() const { return m_instructions; } + + private: + std::vector m_instructions; +}; +} // namespace decompiler diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 648f018964..3d93927d3e 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -30,6 +30,7 @@ add_executable(goalc-test ${CMAKE_CURRENT_LIST_DIR}/decompiler/test_math_decomp.cpp ${CMAKE_CURRENT_LIST_DIR}/decompiler/test_DataParser.cpp ${CMAKE_CURRENT_LIST_DIR}/decompiler/test_DisasmVifDecompile.cpp + ${CMAKE_CURRENT_LIST_DIR}/decompiler/test_VuDisasm.cpp ${GOALC_TEST_FRAMEWORK_SOURCES} ${GOALC_TEST_CASES}) diff --git a/test/decompiler/test_DataParser.cpp b/test/decompiler/test_DataParser.cpp index cf717a61d3..6872e0d724 100644 --- a/test/decompiler/test_DataParser.cpp +++ b/test/decompiler/test_DataParser.cpp @@ -384,4 +384,4 @@ TEST_F(DataDecompTest, KernelContext) { " :current-process #f\n" " :relocating-process #f\n" " :low-memory-message #t)\n"); -} \ No newline at end of file +} diff --git a/test/decompiler/test_VuDisasm.cpp b/test/decompiler/test_VuDisasm.cpp new file mode 100644 index 0000000000..c418ef7f03 --- /dev/null +++ b/test/decompiler/test_VuDisasm.cpp @@ -0,0 +1,162 @@ + +#include "third-party/fmt/core.h" +#include "gtest/gtest.h" +#include "decompiler/util/DataParser.h" +#include "decompiler/VuDisasm/VuDisassembler.h" +#include "common/util/FileUtil.h" + +using namespace decompiler; + +namespace { +std::vector get_test_data(const std::string& name) { + auto text = file_util::read_text_file( + file_util::get_file_path({fmt::format("test/decompiler/vu_reference/{}.txt", name)})); + + auto parsed = parse_data(text); + + std::vector data; + for (auto& w : parsed.words) { + EXPECT_EQ(w.kind, LinkedWord::Kind::PLAIN_DATA); + data.push_back(w.data); + } + return data; +} + +std::string get_expected(const std::string& name) { + return file_util::read_text_file( + file_util::get_file_path({fmt::format("test/decompiler/vu_reference/{}-result.txt", name)})); +} +} // namespace + +TEST(VuDisasm, SpriteDistort) { + auto data = get_test_data("sprite-distort"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("sprite-distort")); +} + +TEST(VuDisasm, BackgroundVu0) { + auto data = get_test_data("background-vu0"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("background-vu0")); +} + +TEST(VuDisasm, CollideVu0) { + auto data = get_test_data("collide-vu0"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("collide-vu0")); +} + +TEST(VuDisasm, BonesVu0) { + auto data = get_test_data("bones-vu0"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("bones-vu0")); +} + +TEST(VuDisasm, ShadowVu0) { + auto data = get_test_data("shadow-vu0"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("shadow-vu0")); +} + +TEST(VuDisasm, OceanVu0) { + auto data = get_test_data("ocean-vu0"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("ocean-vu0")); +} + +TEST(VuDisasm, GenericVu0) { + auto data = get_test_data("generic-vu0"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("generic-vu0")); +} + +TEST(VuDisasm, MercnericVu0) { + auto data = get_test_data("mercneric-vu0"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("mercneric-vu0")); +} + +TEST(VuDisasm, OceanTexture) { + auto data = get_test_data("ocean-texture"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("ocean-texture")); +} + +TEST(VuDisasm, Sky) { + auto data = get_test_data("sky"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("sky")); +} + +TEST(VuDisasm, Shrub) { + auto data = get_test_data("shrub"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("shrub")); +} + +TEST(VuDisasm, Shadow) { + auto data = get_test_data("shadow"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("shadow")); +} + +TEST(VuDisasm, TNear) { + auto data = get_test_data("tnear"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("tnear")); +} + +TEST(VuDisasm, Sprite) { + auto data = get_test_data("sprite"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("sprite")); +} + +TEST(VuDisasm, Tie) { + auto data = get_test_data("tie"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("tie")); +} + +TEST(VuDisasm, Generic) { + auto data = get_test_data("generic"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("generic")); +} + +TEST(VuDisasm, TieNear) { + auto data = get_test_data("tie-near"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("tie-near")); +} + +TEST(VuDisasm, Tfrag) { + auto data = get_test_data("tfrag"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("tfrag")); +} + +TEST(VuDisasm, Merc) { + auto data = get_test_data("merc"); + VuDisassembler disasm; + auto prog = disasm.disassemble(data.data(), data.size() * 4, false); + EXPECT_EQ(disasm.to_string(prog), get_expected("merc")); +} \ No newline at end of file diff --git a/test/decompiler/vu_reference/background-vu0-result.txt b/test/decompiler/vu_reference/background-vu0-result.txt new file mode 100644 index 0000000000..c19192b351 --- /dev/null +++ b/test/decompiler/vu_reference/background-vu0-result.txt @@ -0,0 +1,59 @@ + sq.xyzw vf24, 4(vi00) | maxw.xyzw vf01, vf00, vf00 + sq.xyzw vf25, 5(vi00) | nop + sq.xyzw vf26, 6(vi00) | nop + sq.xyzw vf27, 7(vi00) | nop + sq.xyzw vf16, 0(vi00) | mulz.xyzw vf24, vf01, vf24 + sq.xyzw vf17, 1(vi00) | mulz.xyzw vf25, vf01, vf25 + sq.xyzw vf18, 2(vi00) | mulz.xyzw vf26, vf01, vf26 + sq.xyzw vf19, 3(vi00) | mulz.xyzw vf27, vf01, vf27 + sq.xyzw vf24, 12(vi00) | nop + sq.xyzw vf25, 13(vi00) | nop + sq.xyzw vf26, 14(vi00) | nop + sq.xyzw vf27, 15(vi00) | nop + sq.xyzw vf28, 8(vi00) | nop + sq.xyzw vf29, 9(vi00) | nop + sq.xyzw vf30, 10(vi00) | nop + sq.xyzw vf31, 11(vi00) | nop :e + iaddiu vi02, vi00, 0xf0 | nop + lq.xyzw vf16, 0(vi00) | nop + lq.xyzw vf17, 1(vi00) | nop + lq.xyzw vf18, 2(vi00) | nop + lq.xyzw vf19, 3(vi00) | nop + lq.xyzw vf24, 12(vi00) | nop + lq.xyzw vf25, 13(vi00) | nop + lq.xyzw vf26, 14(vi00) | nop :e + lq.xyzw vf27, 15(vi00) | nop + lq.xyzw vf16, 0(vi00) | nop + lq.xyzw vf17, 1(vi00) | nop + lq.xyzw vf18, 2(vi00) | nop :e + lq.xyzw vf19, 3(vi00) | nop + lq.xyzw vf24, 4(vi00) | nop + lq.xyzw vf25, 5(vi00) | nop + lq.xyzw vf26, 6(vi00) | nop :e + lq.xyzw vf27, 7(vi00) | nop + lq.xyzw vf24, 12(vi00) | mulax.xyzw ACC, vf16, vf02 + lq.xyzw vf25, 13(vi00) | madday.xyzw ACC, vf17, vf02 + lq.xyzw vf26, 14(vi00) | maddaz.xyzw ACC, vf18, vf02 + lq.xyzw vf27, 15(vi00) | msubaw.xyzw ACC, vf19, vf00 + nop | maddw.xyzw vf04, vf01, vf02 + nop | mulax.xyzw ACC, vf24, vf02 + nop | madday.xyzw ACC, vf25, vf02 + nop | maddaz.xyzw ACC, vf26, vf02 :e + fmand vi01, vi02 | maddw.xyzw vf06, vf27, vf00 + lq.xyzw vf16, 0(vi00) | nop + lq.xyzw vf17, 1(vi00) | nop + lq.xyzw vf18, 2(vi00) | nop + lq.xyzw vf19, 3(vi00) | nop + lq.xyzw vf28, 8(vi00) | mulax.xyzw ACC, vf16, vf02 + lq.xyzw vf29, 9(vi00) | madday.xyzw ACC, vf17, vf02 + lq.xyzw vf30, 10(vi00) | maddaz.xyzw ACC, vf18, vf02 + lq.xyzw vf31, 11(vi00) | msubaw.xyzw ACC, vf19, vf00 + lq.xyzw vf24, 4(vi00) | maddw.xyzw vf04, vf01, vf02 + lq.xyzw vf25, 5(vi00) | mulax.xyzw ACC, vf28, vf02 + lq.xyzw vf26, 6(vi00) | madday.xyzw ACC, vf29, vf02 + lq.xyzw vf27, 7(vi00) | maddaz.xyzw ACC, vf30, vf02 + fmand vi01, vi02 | maddw.xyzw vf05, vf31, vf00 + nop | mulax.xyzw ACC, vf24, vf02 + nop | madday.xyzw ACC, vf25, vf02 + nop | maddaz.xyzw ACC, vf26, vf02 :e + nop | maddw.xyzw vf06, vf27, vf00 diff --git a/test/decompiler/vu_reference/background-vu0.txt b/test/decompiler/vu_reference/background-vu0.txt new file mode 100644 index 0000000000..e824e8610b --- /dev/null +++ b/test/decompiler/vu_reference/background-vu0.txt @@ -0,0 +1,118 @@ + .word 0x3e0c004 + .word 0x1e00053 + .word 0x3e0c805 + .word 0x2ff + .word 0x3e0d006 + .word 0x2ff + .word 0x3e0d807 + .word 0x2ff + .word 0x3e08000 + .word 0x1f80e1a + .word 0x3e08801 + .word 0x1f90e5a + .word 0x3e09002 + .word 0x1fa0e9a + .word 0x3e09803 + .word 0x1fb0eda + .word 0x3e0c00c + .word 0x2ff + .word 0x3e0c80d + .word 0x2ff + .word 0x3e0d00e + .word 0x2ff + .word 0x3e0d80f + .word 0x2ff + .word 0x3e0e008 + .word 0x2ff + .word 0x3e0e809 + .word 0x2ff + .word 0x3e0f00a + .word 0x2ff + .word 0x3e0f80b + .word 0x400002ff + .word 0x100200f0 + .word 0x2ff + .word 0x1f00000 + .word 0x2ff + .word 0x1f10001 + .word 0x2ff + .word 0x1f20002 + .word 0x2ff + .word 0x1f30003 + .word 0x2ff + .word 0x1f8000c + .word 0x2ff + .word 0x1f9000d + .word 0x2ff + .word 0x1fa000e + .word 0x400002ff + .word 0x1fb000f + .word 0x2ff + .word 0x1f00000 + .word 0x2ff + .word 0x1f10001 + .word 0x2ff + .word 0x1f20002 + .word 0x400002ff + .word 0x1f30003 + .word 0x2ff + .word 0x1f80004 + .word 0x2ff + .word 0x1f90005 + .word 0x2ff + .word 0x1fa0006 + .word 0x400002ff + .word 0x1fb0007 + .word 0x2ff + .word 0x1f8000c + .word 0x1e281bc + .word 0x1f9000d + .word 0x1e288bd + .word 0x1fa000e + .word 0x1e290be + .word 0x1fb000f + .word 0x1e098ff + .word 0x80000030 + .word 0x1e2090b + .word 0x80000030 + .word 0x1e2c1bc + .word 0x80000030 + .word 0x1e2c8bd + .word 0x80000030 + .word 0x41e2d0be + .word 0x34011000 + .word 0x1e0d98b + .word 0x1f00000 + .word 0x2ff + .word 0x1f10001 + .word 0x2ff + .word 0x1f20002 + .word 0x2ff + .word 0x1f30003 + .word 0x2ff + .word 0x1fc0008 + .word 0x1e281bc + .word 0x1fd0009 + .word 0x1e288bd + .word 0x1fe000a + .word 0x1e290be + .word 0x1ff000b + .word 0x1e098ff + .word 0x1f80004 + .word 0x1e2090b + .word 0x1f90005 + .word 0x1e2e1bc + .word 0x1fa0006 + .word 0x1e2e8bd + .word 0x1fb0007 + .word 0x1e2f0be + .word 0x34011000 + .word 0x1e0f94b + .word 0x80000030 + .word 0x1e2c1bc + .word 0x80000030 + .word 0x1e2c8bd + .word 0x80000030 + .word 0x41e2d0be + .word 0x80000030 + .word 0x1e0d98b \ No newline at end of file diff --git a/test/decompiler/vu_reference/bones-vu0-result.txt b/test/decompiler/vu_reference/bones-vu0-result.txt new file mode 100644 index 0000000000..c49b01170d --- /dev/null +++ b/test/decompiler/vu_reference/bones-vu0-result.txt @@ -0,0 +1,63 @@ + nop | mulax.xyzw ACC, vf05, vf01 + nop | madday.xyzw ACC, vf06, vf01 + nop | maddaz.xyzw ACC, vf07, vf01 + nop | maddw.xyzw vf13, vf08, vf01 + nop | mulax.xyzw ACC, vf05, vf02 + nop | madday.xyzw ACC, vf06, vf02 + nop | maddaz.xyzw ACC, vf07, vf02 + nop | maddw.xyzw vf14, vf08, vf02 + nop | mulax.xyzw ACC, vf05, vf03 + nop | madday.xyzw ACC, vf06, vf03 + nop | maddaz.xyzw ACC, vf07, vf03 + nop | maddw.xyzw vf15, vf08, vf03 + nop | mulax.xyzw ACC, vf05, vf04 + nop | madday.xyzw ACC, vf06, vf04 + nop | maddaz.xyzw ACC, vf07, vf04 + nop | maddw.xyzw vf16, vf08, vf04 + nop | opmula.xyz ACC, vf14, vf15 + nop | opmsub.xyz vf09, vf15, vf14 + nop | opmula.xyz ACC, vf15, vf13 + nop | opmsub.xyz vf10, vf13, vf15 + nop | opmula.xyz ACC, vf13, vf14 + nop | mul.xyz vf12, vf13, vf09 + nop | opmsub.xyz vf11, vf14, vf13 + nop | mulax.xyzw ACC, vf28, vf13 + nop | madday.xyzw ACC, vf29, vf13 + nop | maddaz.xyzw ACC, vf30, vf13 + nop | maddw.xyzw vf13, vf31, vf13 + nop | mulax.w ACC, vf00, vf12 + nop | madday.w ACC, vf00, vf12 + nop | maddz.w vf12, vf00, vf12 + nop | mulax.xyzw ACC, vf28, vf14 + nop | madday.xyzw ACC, vf29, vf14 + nop | maddaz.xyzw ACC, vf30, vf14 + div Q, vf00.w, vf12.w | maddw.xyzw vf14, vf31, vf14 + nop | mulax.xyzw ACC, vf28, vf15 + nop | madday.xyzw ACC, vf29, vf15 + nop | maddaz.xyzw ACC, vf30, vf15 + nop | maddw.xyzw vf15, vf31, vf15 + nop | mulax.xyzw ACC, vf28, vf16 + nop | madday.xyzw ACC, vf29, vf16 + nop | maddaz.xyzw ACC, vf30, vf16 + nop | maddw.xyzw vf16, vf31, vf16 + nop | mul.xyzw vf09, vf09, Q + nop | mul.xyzw vf10, vf10, Q + nop | mul.xyzw vf11, vf11, Q + nop | mulax.xyzw ACC, vf25, vf09 + nop | madday.xyzw ACC, vf26, vf09 + nop | maddz.xyzw vf09, vf27, vf09 + nop | mulax.xyzw ACC, vf25, vf10 + nop | madday.xyzw ACC, vf26, vf10 + nop | maddz.xyzw vf10, vf27, vf10 + nop | mulax.xyzw ACC, vf25, vf11 + nop | madday.xyzw ACC, vf26, vf11 :e + nop | maddz.xyzw vf11, vf27, vf11 + nop | mulax.xyzw ACC, vf01, vf04 + nop | madday.xyzw ACC, vf02, vf04 + nop | maddz.xyzw vf07, vf03, vf04 + nop | mulax.xyzw ACC, vf01, vf05 + nop | madday.xyzw ACC, vf02, vf05 + nop | maddz.xyzw vf08, vf03, vf05 + nop | mulax.xyzw ACC, vf01, vf06 + nop | madday.xyzw ACC, vf02, vf06 :e + nop | maddz.xyzw vf09, vf03, vf06 diff --git a/test/decompiler/vu_reference/bones-vu0.txt b/test/decompiler/vu_reference/bones-vu0.txt new file mode 100644 index 0000000000..b0f3dce395 --- /dev/null +++ b/test/decompiler/vu_reference/bones-vu0.txt @@ -0,0 +1,126 @@ + .word 0x80000030 + .word 0x1e129bc + .word 0x80000030 + .word 0x1e130bd + .word 0x80000030 + .word 0x1e138be + .word 0x80000030 + .word 0x1e1434b + .word 0x80000030 + .word 0x1e229bc + .word 0x80000030 + .word 0x1e230bd + .word 0x80000030 + .word 0x1e238be + .word 0x80000030 + .word 0x1e2438b + .word 0x80000030 + .word 0x1e329bc + .word 0x80000030 + .word 0x1e330bd + .word 0x80000030 + .word 0x1e338be + .word 0x80000030 + .word 0x1e343cb + .word 0x80000030 + .word 0x1e429bc + .word 0x80000030 + .word 0x1e430bd + .word 0x80000030 + .word 0x1e438be + .word 0x80000030 + .word 0x1e4440b + .word 0x80000030 + .word 0x1cf72fe + .word 0x80000030 + .word 0x1ce7a6e + .word 0x80000030 + .word 0x1cd7afe + .word 0x80000030 + .word 0x1cf6aae + .word 0x80000030 + .word 0x1ce6afe + .word 0x80000030 + .word 0x1c96b2a + .word 0x80000030 + .word 0x1cd72ee + .word 0x80000030 + .word 0x1ede1bc + .word 0x80000030 + .word 0x1ede8bd + .word 0x80000030 + .word 0x1edf0be + .word 0x80000030 + .word 0x1edfb4b + .word 0x80000030 + .word 0x2c01bc + .word 0x80000030 + .word 0x2c00bd + .word 0x80000030 + .word 0x2c030a + .word 0x80000030 + .word 0x1eee1bc + .word 0x80000030 + .word 0x1eee8bd + .word 0x80000030 + .word 0x1eef0be + .word 0x81ec03bc + .word 0x1eefb8b + .word 0x80000030 + .word 0x1efe1bc + .word 0x80000030 + .word 0x1efe8bd + .word 0x80000030 + .word 0x1eff0be + .word 0x80000030 + .word 0x1effbcb + .word 0x80000030 + .word 0x1f0e1bc + .word 0x80000030 + .word 0x1f0e8bd + .word 0x80000030 + .word 0x1f0f0be + .word 0x80000030 + .word 0x1f0fc0b + .word 0x80000030 + .word 0x1e04a5c + .word 0x80000030 + .word 0x1e0529c + .word 0x80000030 + .word 0x1e05adc + .word 0x80000030 + .word 0x1e9c9bc + .word 0x80000030 + .word 0x1e9d0bd + .word 0x80000030 + .word 0x1e9da4a + .word 0x80000030 + .word 0x1eac9bc + .word 0x80000030 + .word 0x1ead0bd + .word 0x80000030 + .word 0x1eada8a + .word 0x80000030 + .word 0x1ebc9bc + .word 0x80000030 + .word 0x41ebd0bd + .word 0x80000030 + .word 0x1ebdaca + .word 0x80000030 + .word 0x1e409bc + .word 0x80000030 + .word 0x1e410bd + .word 0x80000030 + .word 0x1e419ca + .word 0x80000030 + .word 0x1e509bc + .word 0x80000030 + .word 0x1e510bd + .word 0x80000030 + .word 0x1e51a0a + .word 0x80000030 + .word 0x1e609bc + .word 0x80000030 + .word 0x41e610bd + .word 0x80000030 + .word 0x1e61a4a \ No newline at end of file diff --git a/test/decompiler/vu_reference/collide-vu0-result.txt b/test/decompiler/vu_reference/collide-vu0-result.txt new file mode 100644 index 0000000000..2421cdbd3e --- /dev/null +++ b/test/decompiler/vu_reference/collide-vu0-result.txt @@ -0,0 +1,90 @@ + nop | mulaw.xyzw ACC, vf04, vf00 + nop | maddax.xyzw ACC, vf01, vf05 + nop | madday.xyzw ACC, vf02, vf05 + nop | maddz.xyz vf05, vf03, vf05 + nop | mulaw.xyzw ACC, vf04, vf00 + nop | maddax.xyzw ACC, vf01, vf06 + nop | madday.xyzw ACC, vf02, vf06 + nop | maddz.xyz vf06, vf03, vf06 + nop | mulaw.xyzw ACC, vf04, vf00 + nop | maddax.xyzw ACC, vf01, vf07 + nop | madday.xyzw ACC, vf02, vf07 + nop | maddz.xyz vf07, vf03, vf07 + nop | mulaw.xyzw ACC, vf04, vf00 + nop | maddax.xyzw ACC, vf01, vf08 + nop | madday.xyzw ACC, vf02, vf08 + nop | maddz.xyz vf08, vf03, vf08 + nop | subw.xyz vf09, vf05, vf05 + nop | subw.xyz vf11, vf06, vf06 + nop | subw.xyz vf13, vf07, vf07 + nop | subw.xyz vf15, vf08, vf08 + nop | addw.xyz vf10, vf05, vf05 + nop | addw.xyz vf12, vf06, vf06 + nop | addw.xyz vf14, vf07, vf07 + nop | addw.xyz vf16, vf08, vf08 + nop | ftoi0.xyzw vf09, vf09 + nop | ftoi0.xyzw vf11, vf11 + nop | ftoi0.xyzw vf13, vf13 + nop | ftoi0.xyzw vf15, vf15 + nop | ftoi0.xyzw vf10, vf10 + nop | ftoi0.xyzw vf12, vf12 + nop | ftoi0.xyzw vf14, vf14 :e + nop | ftoi0.xyzw vf16, vf16 + nop | itof0.xyzw vf20, vf20 + nop | itof12.xyzw vf17, vf17 + nop | itof12.xyzw vf18, vf18 + nop | itof12.xyzw vf19, vf19 + nop | add.xyz vf20, vf20, vf23 + nop | itof12.xyzw vf21, vf21 + nop | mulax.xyzw ACC, vf01, vf20 + nop | madday.xyzw ACC, vf02, vf20 + nop | maddaz.xyzw ACC, vf03, vf20 + nop | maddw.xyz vf20, vf04, vf00 + nop | mulax.xyzw ACC, vf01, vf17 + nop | madday.xyzw ACC, vf02, vf17 + nop | maddaz.xyzw ACC, vf03, vf17 + nop | maddx.xyz vf17, vf04, vf00 + nop | mulax.xyzw ACC, vf01, vf18 + nop | madday.xyzw ACC, vf02, vf18 + nop | maddaz.xyzw ACC, vf03, vf18 + nop | maddx.xyz vf18, vf04, vf00 + nop | mulax.xyzw ACC, vf01, vf19 + nop | madday.xyzw ACC, vf02, vf19 + nop | maddaz.xyzw ACC, vf03, vf19 :e + nop | maddx.xyz vf19, vf04, vf00 + nop | mulaw.xyzw ACC, vf20, vf00 + nop | maddax.xyzw ACC, vf17, vf05 + nop | madday.xyzw ACC, vf18, vf05 + nop | maddz.xyzw vf09, vf19, vf05 + nop | mulaw.xyzw ACC, vf20, vf00 + nop | maddax.xyzw ACC, vf17, vf06 + nop | madday.xyzw ACC, vf18, vf06 + nop | maddz.xyzw vf11, vf19, vf06 + nop | mulaw.xyzw ACC, vf20, vf00 + nop | maddax.xyzw ACC, vf17, vf07 + nop | madday.xyzw ACC, vf18, vf07 + nop | maddz.xyzw vf13, vf19, vf07 + nop | mulaw.xyzw ACC, vf20, vf00 + nop | maddax.xyzw ACC, vf17, vf08 + nop | madday.xyzw ACC, vf18, vf08 + nop | maddz.xyzw vf15, vf19, vf08 + nop | mulw.x vf22, vf21, vf05 + nop | mulw.y vf22, vf21, vf06 + nop | mulw.z vf22, vf21, vf07 + nop | mulw.w vf22, vf21, vf08 + nop | addx.xyz vf10, vf09, vf22 + nop | subx.xyz vf09, vf09, vf22 + nop | addy.xyz vf12, vf11, vf22 + nop | suby.xyz vf11, vf11, vf22 + nop | addz.xyz vf14, vf13, vf22 + nop | subz.xyz vf13, vf13, vf22 + nop | addw.xyz vf16, vf15, vf22 + nop | subw.xyz vf15, vf15, vf22 + nop | ftoi0.xyzw vf10, vf10 + nop | ftoi0.xyzw vf09, vf09 + nop | ftoi0.xyzw vf12, vf12 + nop | ftoi0.xyzw vf11, vf11 + nop | ftoi0.xyzw vf14, vf14 + nop | ftoi0.xyzw vf13, vf13 + nop | ftoi0.xyzw vf16, vf16 :e + nop | ftoi0.xyzw vf15, vf15 diff --git a/test/decompiler/vu_reference/collide-vu0.txt b/test/decompiler/vu_reference/collide-vu0.txt new file mode 100644 index 0000000000..f63eaf5692 --- /dev/null +++ b/test/decompiler/vu_reference/collide-vu0.txt @@ -0,0 +1,180 @@ + .word 0x80000030 + .word 0x1e021bf + .word 0x80000030 + .word 0x1e508bc + .word 0x80000030 + .word 0x1e510bd + .word 0x80000030 + .word 0x1c5194a + .word 0x80000030 + .word 0x1e021bf + .word 0x80000030 + .word 0x1e608bc + .word 0x80000030 + .word 0x1e610bd + .word 0x80000030 + .word 0x1c6198a + .word 0x80000030 + .word 0x1e021bf + .word 0x80000030 + .word 0x1e708bc + .word 0x80000030 + .word 0x1e710bd + .word 0x80000030 + .word 0x1c719ca + .word 0x80000030 + .word 0x1e021bf + .word 0x80000030 + .word 0x1e808bc + .word 0x80000030 + .word 0x1e810bd + .word 0x80000030 + .word 0x1c81a0a + .word 0x80000030 + .word 0x1c52a47 + .word 0x80000030 + .word 0x1c632c7 + .word 0x80000030 + .word 0x1c73b47 + .word 0x80000030 + .word 0x1c843c7 + .word 0x80000030 + .word 0x1c52a83 + .word 0x80000030 + .word 0x1c63303 + .word 0x80000030 + .word 0x1c73b83 + .word 0x80000030 + .word 0x1c84403 + .word 0x80000030 + .word 0x1e9497c + .word 0x80000030 + .word 0x1eb597c + .word 0x80000030 + .word 0x1ed697c + .word 0x80000030 + .word 0x1ef797c + .word 0x80000030 + .word 0x1ea517c + .word 0x80000030 + .word 0x1ec617c + .word 0x80000030 + .word 0x41ee717c + .word 0x80000030 + .word 0x1f0817c + .word 0x80000030 + .word 0x1f4a13c + .word 0x80000030 + .word 0x1f1893e + .word 0x80000030 + .word 0x1f2913e + .word 0x80000030 + .word 0x1f3993e + .word 0x80000030 + .word 0x1d7a528 + .word 0x80000030 + .word 0x1f5a93e + .word 0x80000030 + .word 0x1f409bc + .word 0x80000030 + .word 0x1f410bd + .word 0x80000030 + .word 0x1f418be + .word 0x80000030 + .word 0x1c0250b + .word 0x80000030 + .word 0x1f109bc + .word 0x80000030 + .word 0x1f110bd + .word 0x80000030 + .word 0x1f118be + .word 0x80000030 + .word 0x1c02448 + .word 0x80000030 + .word 0x1f209bc + .word 0x80000030 + .word 0x1f210bd + .word 0x80000030 + .word 0x1f218be + .word 0x80000030 + .word 0x1c02488 + .word 0x80000030 + .word 0x1f309bc + .word 0x80000030 + .word 0x1f310bd + .word 0x80000030 + .word 0x41f318be + .word 0x80000030 + .word 0x1c024c8 + .word 0x80000030 + .word 0x1e0a1bf + .word 0x80000030 + .word 0x1e588bc + .word 0x80000030 + .word 0x1e590bd + .word 0x80000030 + .word 0x1e59a4a + .word 0x80000030 + .word 0x1e0a1bf + .word 0x80000030 + .word 0x1e688bc + .word 0x80000030 + .word 0x1e690bd + .word 0x80000030 + .word 0x1e69aca + .word 0x80000030 + .word 0x1e0a1bf + .word 0x80000030 + .word 0x1e788bc + .word 0x80000030 + .word 0x1e790bd + .word 0x80000030 + .word 0x1e79b4a + .word 0x80000030 + .word 0x1e0a1bf + .word 0x80000030 + .word 0x1e888bc + .word 0x80000030 + .word 0x1e890bd + .word 0x80000030 + .word 0x1e89bca + .word 0x80000030 + .word 0x105ad9b + .word 0x80000030 + .word 0x86ad9b + .word 0x80000030 + .word 0x47ad9b + .word 0x80000030 + .word 0x28ad9b + .word 0x80000030 + .word 0x1d64a80 + .word 0x80000030 + .word 0x1d64a44 + .word 0x80000030 + .word 0x1d65b01 + .word 0x80000030 + .word 0x1d65ac5 + .word 0x80000030 + .word 0x1d66b82 + .word 0x80000030 + .word 0x1d66b46 + .word 0x80000030 + .word 0x1d67c03 + .word 0x80000030 + .word 0x1d67bc7 + .word 0x80000030 + .word 0x1ea517c + .word 0x80000030 + .word 0x1e9497c + .word 0x80000030 + .word 0x1ec617c + .word 0x80000030 + .word 0x1eb597c + .word 0x80000030 + .word 0x1ee717c + .word 0x80000030 + .word 0x1ed697c + .word 0x80000030 + .word 0x41f0817c + .word 0x80000030 + .word 0x1ef797c \ No newline at end of file diff --git a/test/decompiler/vu_reference/generic-result.txt b/test/decompiler/vu_reference/generic-result.txt new file mode 100644 index 0000000000..9ac9e42bd1 --- /dev/null +++ b/test/decompiler/vu_reference/generic-result.txt @@ -0,0 +1,1178 @@ + b L5 | nop + nop | nop + b L6 | nop + nop | nop + b L1 | nop + nop | nop + b L34 | nop + nop | nop + b L9 | nop + nop | nop + b L2 | nop + nop | nop + b L7 | nop + nop | nop +L2: + iaddiu vi02, vi00, 0x381 | nop + lq.xyzw vf31, 7(vi02) | nop + isubiu vi02, vi13, 0x363 | addw.z vf22, vf00, vf00 + iaddiu vi13, vi13, 0x1e | addw.z vf23, vf00, vf00 + ibne vi00, vi02, L3 | addw.z vf24, vf00, vf00 + lq.xyzw vf03, 899(vi00) | addw.z vf25, vf00, vf00 + iaddiu vi13, vi00, 0x345 | nop +L3: + ilw.x vi01, 5(vi13) | nop + iaddi vi07, vi12, 0xa | nop + iaddi vi05, vi01, -0x1 | nop + lq.xyzw vf17, 4(vi13) | nop + sq.xyzw vf31, 5(vi13) | nop + sq.xyzw vf31, 6(vi13) | nop + 0.0078125 | nop :i + move.xyzw vf13, vf17 | muli.xyz vf17, vf17, I + move.xyzw vf14, vf17 | nop + move.xyzw vf15, vf17 | nop + move.xyzw vf16, vf17 | nop + sq.xyzw vf03, 4(vi13) | nop + isw.w vi01, 5(vi13) | nop + isw.w vi00, 6(vi13) | nop +L4: + lq.xyz vf13, 0(vi07) | nop + lq.xyz vf14, 3(vi07) | nop + lq.xyz vf15, 6(vi07) | nop + lq.xyz vf16, 9(vi07) | nop + iaddi vi07, vi07, 0xc | itof0.xyz vf13, vf13 + iaddi vi05, vi05, -0x4 | itof0.xyz vf14, vf14 + nop | itof0.xyz vf15, vf15 + nop | itof0.xyz vf16, vf16 + nop | mul.xyz vf13, vf13, vf17 + nop | mul.xyz vf14, vf14, vf17 + nop | mul.xyz vf15, vf15, vf17 + nop | mul.xyz vf16, vf16, vf17 + lq.xyzw vf18, -11(vi07) | ftoi0.xyz vf13, vf13 + lq.xyzw vf19, -8(vi07) | ftoi0.xyz vf14, vf14 + lq.xyzw vf20, -5(vi07) | ftoi0.xyz vf15, vf15 + lq.xyzw vf21, -2(vi07) | ftoi0.xyz vf16, vf16 + sq.xyzw vf13, -12(vi07) | itof0.xyzw vf18, vf18 + sq.xyzw vf14, -9(vi07) | itof0.xyzw vf19, vf19 + sq.xyzw vf15, -6(vi07) | itof0.xyzw vf20, vf20 + sq.xyzw vf16, -3(vi07) | itof0.xyzw vf21, vf21 + sq.xyzw vf18, -11(vi07) | nop + sq.xyzw vf19, -8(vi07) | nop + sq.xyzw vf20, -5(vi07) | nop + ibgez vi05, L4 | nop + sq.xyzw vf21, -2(vi07) | nop + b L17 | nop + nop | nop +L5: + iaddiu vi01, vi00, 0x381 | nop + lq.xyzw vf01, 0(vi01) | nop + lq.xyzw vf02, 1(vi01) | nop + lq.xyzw vf03, 2(vi01) | nop + lq.xyzw vf04, 3(vi01) | nop + lq.xyzw vf05, 4(vi01) | nop + lq.xyzw vf06, 5(vi01) | nop + lq.xyzw vf07, 6(vi01) | nop +L6: + iaddiu vi13, vi00, 0x363 | nop + iaddi vi02, vi13, 0x5 | nop + iaddi vi12, vi00, 0x0 | nop + isw.x vi02, 9(vi01) | nop + isw.y vi02, 9(vi01) | nop + sq.xyzw vf00, 907(vi00) | nop + sq.xyzw vf00, 914(vi00) | nop + sq.xyzw vf00, 921(vi00) | nop + sq.xyzw vf00, 928(vi00) | nop + sq.xyzw vf00, 935(vi00) | nop + sq.xyzw vf00, 942(vi00) | nop + iaddiu vi01, vi00, 0x40f | nop + isw.z vi01, 907(vi00) | nop + iaddiu vi01, vi00, 0x411 | nop + isw.z vi01, 914(vi00) | nop + iaddiu vi01, vi00, 0x413 | nop + isw.z vi01, 921(vi00) | nop + iaddiu vi01, vi00, 0x415 | nop + isw.z vi01, 928(vi00) | nop + iaddiu vi01, vi00, 0x417 | nop + isw.z vi01, 935(vi00) | nop + iaddiu vi01, vi00, 0x419 | nop :e + isw.z vi01, 942(vi00) | nop +L7: + iaddiu vi01, vi00, 0x381 | nop + ilw.z vi13, 9(vi01) | nop + ilw.w vi12, 9(vi01) | nop + iaddi vi02, vi13, 0x6 | nop + isw.x vi02, 9(vi01) | nop :e + isw.y vi02, 9(vi01) | nop + isubiu vi02, vi13, 0x363 | nop + iaddiu vi13, vi13, 0x1e | nop + ibne vi00, vi02, L8 | nop + isubiu vi01, vi01, 0x100 | nop + iaddiu vi13, vi00, 0x345 | nop +L8: + iaddi vi03, vi13, 0x7 | nop + iaddi vi03, vi13, 0x7 | nop + isw.x vi03, 906(vi00) | nop + jr vi15 | nop + isw.y vi03, 906(vi00) | nop +L9: + isubiu vi02, vi13, 0x363 | addw.z vf22, vf00, vf00 + iaddiu vi13, vi13, 0x1e | addw.z vf23, vf00, vf00 + ibne vi00, vi02, L10 | addw.z vf24, vf00, vf00 + nop | addw.z vf25, vf00, vf00 + iaddiu vi13, vi00, 0x345 | nop +L10: + iaddi vi03, vi13, 0x7 | nop + ilw.w vi01, 5(vi13) | nop + isw.x vi03, 906(vi00) | nop + iaddi vi10, vi12, 0x9 | subw.w vf18, vf00, vf00 + lq.xyzw vf08, 0(vi13) | subw.w vf19, vf00, vf00 + lq.xyzw vf09, 1(vi13) | subw.w vf20, vf00, vf00 + lq.xyzw vf10, 2(vi13) | subw.w vf21, vf00, vf00 + lq.xyzw vf11, 3(vi13) | ftoi12.z vf22, vf22 + iadd vi02, vi01, vi01 | ftoi12.z vf23, vf23 + iadd vi01, vi01, vi02 | sub.xyzw vf16, vf16, vf16 + iaddi vi11, vi00, -0x2 | sub.xyzw vf17, vf17, vf17 + lq.xy vf22, 0(vi10) | nop + lq.xyz vf16, 2(vi10) | nop + mtir vi02, vf22.x | mulaw.xyzw ACC, vf11, vf00 + iaddi vi10, vi10, 0x3 | maddax.xyzw ACC, vf08, vf16 + lq.xy vf23, 0(vi10) | madday.xyzw ACC, vf09, vf16 + lq.xyz vf17, 2(vi10) | nop + iand vi06, vi02, vi11 | nop + mfir.x vf22, vi06 | maddz.xyzw vf12, vf10, vf16 + iadd vi14, vi10, vi01 | ftoi12.z vf24, vf24 + isw.w vi12, 906(vi00) | ftoi12.z vf25, vf25 + nop | nop + div Q, vf01.x, vf12.w | itof12.xyz vf18, vf22 + mtir vi03, vf23.x | mulaw.xyzw ACC, vf11, vf00 + iaddi vi10, vi10, 0x3 | maddax.xyzw ACC, vf08, vf17 + lq.xy vf24, 0(vi10) | madday.xyzw ACC, vf09, vf17 + lq.xyz vf16, 2(vi10) | nop + iand vi07, vi03, vi11 | nop + mfir.x vf23, vi07 | maddz.xyzw vf13, vf10, vf17 + nop | mul.xyz vf12, vf12, Q + nop | mul.xyz vf18, vf18, Q + nop | nop + div Q, vf01.x, vf13.w | itof12.xyz vf19, vf23 + nop | add.xyzw vf12, vf12, vf04 + mtir vi04, vf24.x | mulaw.xyzw ACC, vf11, vf00 + iaddi vi10, vi10, 0x3 | maddax.xyzw ACC, vf08, vf16 + lq.xy vf25, 0(vi10) | madday.xyzw ACC, vf09, vf16 + lq.xyz vf17, 2(vi10) | miniz.w vf12, vf12, vf01 + iand vi08, vi04, vi11 | nop + mfir.x vf24, vi08 | maddz.xyzw vf14, vf10, vf16 + nop | mul.xyz vf13, vf13, Q + nop | mul.xyz vf19, vf19, Q + iaddi vi14, vi14, 0x9 | maxy.w vf12, vf12, vf01 +L11: + div Q, vf01.x, vf14.w | itof12.xyz vf20, vf24 + ibeq vi02, vi06, L12 | add.xyzw vf13, vf13, vf04 + mtir vi05, vf25.x | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf12, vf12, vf01 +L12: + iaddi vi10, vi10, 0x3 | maddax.xyzw ACC, vf08, vf17 + lq.xy vf22, 0(vi10) | madday.xyzw ACC, vf09, vf17 + lq.xyz vf16, 2(vi10) | miniz.w vf13, vf13, vf01 + iand vi09, vi05, vi11 | ftoi4.xyzw vf12, vf12 + mfir.x vf25, vi09 | maddz.xyzw vf15, vf10, vf17 + sq.xyzw vf18, -12(vi10) | mul.xyz vf14, vf14, Q + ibeq vi14, vi10, L16 | mul.xyz vf20, vf20, Q + sq.xyzw vf12, -10(vi10) | maxy.w vf13, vf13, vf01 + div Q, vf01.x, vf15.w | itof12.xyz vf21, vf25 + ibeq vi03, vi07, L13 | add.xyzw vf14, vf14, vf04 + mtir vi02, vf22.x | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf13, vf13, vf01 +L13: + iaddi vi10, vi10, 0x3 | maddax.xyzw ACC, vf08, vf16 + lq.xy vf23, 0(vi10) | madday.xyzw ACC, vf09, vf16 + lq.xyz vf17, 2(vi10) | miniz.w vf14, vf14, vf01 + iand vi06, vi02, vi11 | ftoi4.xyzw vf13, vf13 + mfir.x vf22, vi06 | maddz.xyzw vf12, vf10, vf16 + sq.xyzw vf19, -12(vi10) | mul.xyz vf15, vf15, Q + ibeq vi14, vi10, L16 | mul.xyz vf21, vf21, Q + sq.xyzw vf13, -10(vi10) | maxy.w vf14, vf14, vf01 + div Q, vf01.x, vf12.w | itof12.xyz vf18, vf22 + ibeq vi04, vi08, L14 | add.xyzw vf15, vf15, vf04 + mtir vi03, vf23.x | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf14, vf14, vf01 +L14: + iaddi vi10, vi10, 0x3 | maddax.xyzw ACC, vf08, vf17 + lq.xy vf24, 0(vi10) | madday.xyzw ACC, vf09, vf17 + lq.xyz vf16, 2(vi10) | miniz.w vf15, vf15, vf01 + iand vi07, vi03, vi11 | ftoi4.xyzw vf14, vf14 + mfir.x vf23, vi07 | maddz.xyzw vf13, vf10, vf17 + sq.xyzw vf20, -12(vi10) | mul.xyz vf12, vf12, Q + ibeq vi14, vi10, L16 | mul.xyz vf18, vf18, Q + sq.xyzw vf14, -10(vi10) | maxy.w vf15, vf15, vf01 + div Q, vf01.x, vf13.w | itof12.xyz vf19, vf23 + ibeq vi05, vi09, L15 | add.xyzw vf12, vf12, vf04 + mtir vi04, vf24.x | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf15, vf15, vf01 +L15: + iaddi vi10, vi10, 0x3 | maddax.xyzw ACC, vf08, vf16 + lq.xy vf25, 0(vi10) | madday.xyzw ACC, vf09, vf16 + lq.xyz vf17, 2(vi10) | miniz.w vf12, vf12, vf01 + iand vi08, vi04, vi11 | ftoi4.xyzw vf15, vf15 + mfir.x vf24, vi08 | maddz.xyzw vf14, vf10, vf16 + sq.xyzw vf21, -12(vi10) | mul.xyz vf13, vf13, Q + ibne vi14, vi10, L11 | mul.xyz vf19, vf19, Q + sq.xyzw vf15, -10(vi10) | maxy.w vf12, vf12, vf01 +L16: + b L83 | nop + ilw.w vi12, 906(vi00) | nop + isubiu vi02, vi13, 0x363 | addw.z vf22, vf00, vf00 + iaddiu vi13, vi13, 0x1e | addw.z vf23, vf00, vf00 + ibne vi00, vi02, L17 | addw.z vf24, vf00, vf00 + nop | addw.z vf25, vf00, vf00 + iaddiu vi13, vi00, 0x345 | nop +L17: + iaddi vi03, vi13, 0x7 | nop + ilw.w vi01, 5(vi13) | nop + isw.x vi03, 906(vi00) | nop + iaddi vi10, vi12, 0x9 | subw.w vf18, vf00, vf00 + lq.xyzw vf08, 0(vi13) | subw.w vf19, vf00, vf00 + lq.xyzw vf09, 1(vi13) | subw.w vf20, vf00, vf00 + lq.xyzw vf10, 2(vi13) | subw.w vf21, vf00, vf00 + lq.xyzw vf11, 3(vi13) | ftoi12.z vf22, vf22 + iadd vi02, vi01, vi01 | ftoi12.z vf23, vf23 + iadd vi01, vi01, vi02 | sub.xyzw vf16, vf16, vf16 + iaddi vi11, vi00, -0x2 | nop + iadd vi14, vi10, vi01 | ftoi12.z vf24, vf24 + isw.w vi12, 906(vi00) | ftoi12.z vf25, vf25 + iaddi vi14, vi14, 0x9 | nop + lq.xy vf22, 0(vi10) | nop + lq.xyz vf16, 2(vi10) | nop + nop | nop + nop | nop + nop | mulaw.xyzw ACC, vf11, vf00 + mtir vi02, vf22.x | maddax.xyzw ACC, vf08, vf16 + iaddi vi10, vi10, 0x3 | madday.xyzw ACC, vf09, vf16 + lq.xy vf23, 0(vi10) | maddz.xyzw vf12, vf10, vf16 + lq.xyz vf16, 2(vi10) | nop + iand vi06, vi02, vi11 | nop + mfir.x vf22, vi06 | nop + nop | nop + nop | nop + nop | nop + nop | itof12.xyz vf18, vf22 + div Q, vf01.x, vf12.w | mul.xyzw vf26, vf12, vf05 + nop | nop + nop | mulaw.xyzw ACC, vf11, vf00 + mtir vi03, vf23.x | maddax.xyzw ACC, vf08, vf16 + iaddi vi10, vi10, 0x3 | madday.xyzw ACC, vf09, vf16 + lq.xy vf24, 0(vi10) | maddz.xyzw vf13, vf10, vf16 + lq.xyz vf16, 2(vi10) | nop + iand vi07, vi03, vi11 | nop + mfir.x vf23, vi07 | mul.xyz vf12, vf12, Q + fcset 0x0 | nop + nop | nop + nop | mul.xyz vf18, vf18, Q + nop | itof12.xyz vf19, vf23 + div Q, vf01.x, vf13.w | mulaw.xyzw ACC, vf11, vf00 + nop | add.xyzw vf12, vf12, vf04 + nop | maddax.xyzw ACC, vf08, vf16 + mtir vi04, vf24.x | madday.xyzw ACC, vf09, vf16 + iaddi vi10, vi10, 0x3 | maddz.xyzw vf14, vf10, vf16 + lq.xy vf25, 0(vi10) | miniz.w vf12, vf12, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf27, vf13, vf05 + iand vi08, vi04, vi11 | nop + mfir.x vf24, vi08 | mul.xyz vf13, vf13, Q + nop | maxy.w vf12, vf12, vf01 + nop | clipw.xyz vf26, vf26 + nop | mul.xyz vf19, vf19, Q + ibeq vi02, vi06, L18 | itof12.xyz vf20, vf24 + div Q, vf01.x, vf14.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf12, vf12, vf01 +L18: + nop | add.xyzw vf13, vf13, vf04 + nop | maddax.xyzw ACC, vf08, vf16 + mtir vi05, vf25.x | madday.xyzw ACC, vf09, vf16 + iaddi vi10, vi10, 0x3 | maddz.xyzw vf15, vf10, vf16 + lq.xy vf22, 0(vi10) | miniz.w vf13, vf13, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf28, vf14, vf05 + iand vi09, vi05, vi11 | ftoi4.xyzw vf12, vf12 + mfir.x vf25, vi09 | mul.xyz vf14, vf14, Q + sq.xyzw vf18, -12(vi10) | maxy.w vf13, vf13, vf01 + ibeq vi14, vi10, L29 | clipw.xyz vf27, vf27 + sq.xyzw vf12, -10(vi10) | mul.xyz vf20, vf20, Q + ibeq vi03, vi07, L19 | itof12.xyz vf21, vf25 + div Q, vf01.x, vf15.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf13, vf13, vf01 +L19: + nop | add.xyzw vf14, vf14, vf04 + nop | maddax.xyzw ACC, vf08, vf16 + mtir vi02, vf22.x | madday.xyzw ACC, vf09, vf16 + iaddi vi10, vi10, 0x3 | maddz.xyzw vf12, vf10, vf16 + lq.xy vf23, 0(vi10) | miniz.w vf14, vf14, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf29, vf15, vf05 + iand vi06, vi02, vi11 | ftoi4.xyzw vf13, vf13 + mfir.x vf22, vi06 | mul.xyz vf15, vf15, Q + sq.xyzw vf19, -12(vi10) | maxy.w vf14, vf14, vf01 + ibeq vi14, vi10, L29 | clipw.xyz vf28, vf28 + sq.xyzw vf13, -10(vi10) | mul.xyz vf21, vf21, Q +L20: + ibeq vi04, vi08, L21 | itof12.xyz vf18, vf22 + div Q, vf01.x, vf12.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf14, vf14, vf01 +L21: + fcand vi01, 0x3ffff | add.xyzw vf15, vf15, vf04 + ibne vi00, vi01, L32 | maddax.xyzw ACC, vf08, vf16 + mtir vi03, vf23.x | madday.xyzw ACC, vf09, vf16 +L22: + iaddi vi10, vi10, 0x3 | maddz.xyzw vf13, vf10, vf16 + lq.xy vf24, 0(vi10) | miniz.w vf15, vf15, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf26, vf12, vf05 + iand vi07, vi03, vi11 | ftoi4.xyzw vf14, vf14 + mfir.x vf23, vi07 | mul.xyz vf12, vf12, Q + sq.xyzw vf20, -12(vi10) | maxy.w vf15, vf15, vf01 + ibeq vi14, vi10, L29 | clipw.xyz vf29, vf29 + sq.xyzw vf14, -10(vi10) | mul.xyz vf18, vf18, Q + ibeq vi05, vi09, L23 | itof12.xyz vf19, vf23 + div Q, vf01.x, vf13.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf15, vf15, vf01 +L23: + fcand vi01, 0x3ffff | add.xyzw vf12, vf12, vf04 + ibne vi00, vi01, L33 | maddax.xyzw ACC, vf08, vf16 + mtir vi04, vf24.x | madday.xyzw ACC, vf09, vf16 +L24: + iaddi vi10, vi10, 0x3 | maddz.xyzw vf14, vf10, vf16 + lq.xy vf25, 0(vi10) | miniz.w vf12, vf12, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf27, vf13, vf05 + iand vi08, vi04, vi11 | ftoi4.xyzw vf15, vf15 + mfir.x vf24, vi08 | mul.xyz vf13, vf13, Q + sq.xyzw vf21, -12(vi10) | maxy.w vf12, vf12, vf01 + ibeq vi14, vi10, L29 | clipw.xyz vf26, vf26 + sq.xyzw vf15, -10(vi10) | mul.xyz vf19, vf19, Q + ibeq vi02, vi06, L25 | itof12.xyz vf20, vf24 + div Q, vf01.x, vf14.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf12, vf12, vf01 +L25: + fcand vi01, 0x3ffff | add.xyzw vf13, vf13, vf04 + ibne vi00, vi01, L30 | maddax.xyzw ACC, vf08, vf16 + mtir vi05, vf25.x | madday.xyzw ACC, vf09, vf16 +L26: + iaddi vi10, vi10, 0x3 | maddz.xyzw vf15, vf10, vf16 + lq.xy vf22, 0(vi10) | miniz.w vf13, vf13, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf28, vf14, vf05 + iand vi09, vi05, vi11 | ftoi4.xyzw vf12, vf12 + mfir.x vf25, vi09 | mul.xyz vf14, vf14, Q + sq.xyzw vf18, -12(vi10) | maxy.w vf13, vf13, vf01 + ibeq vi14, vi10, L29 | clipw.xyz vf27, vf27 + sq.xyzw vf12, -10(vi10) | mul.xyz vf20, vf20, Q + ibeq vi03, vi07, L27 | itof12.xyz vf21, vf25 + div Q, vf01.x, vf15.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf13, vf13, vf01 +L27: + fcand vi01, 0x3ffff | add.xyzw vf14, vf14, vf04 + ibne vi00, vi01, L31 | maddax.xyzw ACC, vf08, vf16 + mtir vi02, vf22.x | madday.xyzw ACC, vf09, vf16 +L28: + iaddi vi10, vi10, 0x3 | maddz.xyzw vf12, vf10, vf16 + lq.xy vf23, 0(vi10) | miniz.w vf14, vf14, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf29, vf15, vf05 + iand vi06, vi02, vi11 | ftoi4.xyzw vf13, vf13 + mfir.x vf22, vi06 | mul.xyz vf15, vf15, Q + sq.xyzw vf19, -12(vi10) | maxy.w vf14, vf14, vf01 + ibne vi14, vi10, L20 | clipw.xyz vf28, vf28 + sq.xyzw vf13, -10(vi10) | mul.xyz vf21, vf21, Q +L29: + b L83 | nop + ilw.w vi12, 906(vi00) | nop +L30: + b L26 | addw.w vf12, vf12, vf01 + nop | nop +L31: + b L28 | addw.w vf13, vf13, vf01 + nop | nop +L32: + b L22 | addw.w vf14, vf14, vf01 + nop | nop +L33: + b L24 | addw.w vf15, vf15, vf01 + nop | nop +L34: + isubiu vi02, vi13, 0x363 | addw.z vf22, vf00, vf00 + iaddiu vi13, vi13, 0x1e | addw.z vf23, vf00, vf00 + ibne vi00, vi02, L35 | addw.z vf24, vf00, vf00 + nop | addw.z vf25, vf00, vf00 + iaddiu vi13, vi00, 0x345 | nop +L35: + iaddi vi03, vi13, 0x7 | nop + ilw.w vi01, 5(vi13) | nop + isw.x vi03, 906(vi00) | nop + iaddi vi10, vi12, 0x9 | subw.w vf18, vf00, vf00 + lq.xyzw vf08, 0(vi13) | subw.w vf19, vf00, vf00 + lq.xyzw vf09, 1(vi13) | subw.w vf20, vf00, vf00 + lq.xyzw vf10, 2(vi13) | subw.w vf21, vf00, vf00 + lq.xyzw vf11, 3(vi13) | ftoi12.z vf22, vf22 + iadd vi02, vi01, vi01 | ftoi12.z vf23, vf23 + iadd vi01, vi01, vi02 | sub.xyzw vf16, vf16, vf16 + iaddi vi11, vi00, -0x2 | nop + iadd vi14, vi10, vi01 | ftoi12.z vf24, vf24 + isw.w vi12, 906(vi00) | ftoi12.z vf25, vf25 + iaddi vi14, vi14, 0x9 | nop + lq.xy vf22, 0(vi10) | nop + lq.xyz vf16, 2(vi10) | nop + nop | nop + nop | nop + nop | mulaw.xyzw ACC, vf11, vf00 + mtir vi02, vf22.x | maddax.xyzw ACC, vf08, vf16 + iaddi vi10, vi10, 0x3 | madday.xyzw ACC, vf09, vf16 + lq.xy vf23, 0(vi10) | maddz.xyzw vf12, vf10, vf16 + lq.xyz vf16, 2(vi10) | nop + iand vi06, vi02, vi11 | nop + mfir.x vf22, vi06 | nop + nop | nop + nop | nop + nop | nop + nop | itof12.xyz vf18, vf22 + div Q, vf01.x, vf12.w | mul.xyzw vf26, vf12, vf05 + nop | nop + nop | mulaw.xyzw ACC, vf11, vf00 + mtir vi03, vf23.x | maddax.xyzw ACC, vf08, vf16 + iaddi vi10, vi10, 0x3 | madday.xyzw ACC, vf09, vf16 + lq.xy vf24, 0(vi10) | maddz.xyzw vf13, vf10, vf16 + lq.xyz vf16, 2(vi10) | nop + iand vi07, vi03, vi11 | nop + mfir.x vf23, vi07 | mul.xyz vf12, vf12, Q + fcset 0x0 | nop + nop | nop + nop | mul.xyz vf18, vf18, Q + nop | itof12.xyz vf19, vf23 + div Q, vf01.x, vf13.w | mulaw.xyzw ACC, vf11, vf00 + nop | add.xyzw vf12, vf12, vf04 + nop | maddax.xyzw ACC, vf08, vf16 + mtir vi04, vf24.x | madday.xyzw ACC, vf09, vf16 + iaddi vi10, vi10, 0x3 | maddz.xyzw vf14, vf10, vf16 + lq.xy vf25, 0(vi10) | miniz.w vf12, vf12, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf27, vf13, vf05 + iand vi08, vi04, vi11 | nop + mfir.x vf24, vi08 | mul.xyz vf13, vf13, Q + nop | maxy.w vf12, vf12, vf01 + nop | clipw.xyz vf26, vf26 + nop | mul.xyz vf19, vf19, Q + ibeq vi02, vi06, L36 | itof12.xyz vf20, vf24 + div Q, vf01.x, vf14.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf12, vf12, vf01 +L36: + nop | add.xyzw vf13, vf13, vf04 + nop | maddax.xyzw ACC, vf08, vf16 + mtir vi05, vf25.x | madday.xyzw ACC, vf09, vf16 + iaddi vi10, vi10, 0x3 | maddz.xyzw vf15, vf10, vf16 + lq.xy vf22, 0(vi10) | miniz.w vf13, vf13, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf28, vf14, vf05 + iand vi09, vi05, vi11 | ftoi4.xyzw vf12, vf12 + mfir.x vf25, vi09 | mul.xyz vf14, vf14, Q + sq.xyzw vf18, -12(vi10) | maxy.w vf13, vf13, vf01 + ibeq vi14, vi10, L47 | clipw.xyz vf27, vf27 + sq.xyzw vf12, -10(vi10) | mul.xyz vf20, vf20, Q + ibeq vi03, vi07, L37 | itof12.xyz vf21, vf25 + div Q, vf01.x, vf15.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf13, vf13, vf01 +L37: + nop | add.xyzw vf14, vf14, vf04 + nop | maddax.xyzw ACC, vf08, vf16 + mtir vi02, vf22.x | madday.xyzw ACC, vf09, vf16 + iaddi vi10, vi10, 0x3 | maddz.xyzw vf12, vf10, vf16 + lq.xy vf23, 0(vi10) | miniz.w vf14, vf14, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf29, vf15, vf05 + iand vi06, vi02, vi11 | ftoi4.xyzw vf13, vf13 + mfir.x vf22, vi06 | mul.xyz vf15, vf15, Q + sq.xyzw vf19, -12(vi10) | maxy.w vf14, vf14, vf01 + ibeq vi14, vi10, L47 | clipw.xyz vf28, vf28 + sq.xyzw vf13, -10(vi10) | mul.xyz vf21, vf21, Q +L38: + ibeq vi04, vi08, L39 | itof12.xyz vf18, vf22 + div Q, vf01.x, vf12.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf14, vf14, vf01 +L39: + fcand vi01, 0x3ffff | add.xyzw vf15, vf15, vf04 + ibne vi00, vi01, L56 | maddax.xyzw ACC, vf08, vf16 + mtir vi03, vf23.x | madday.xyzw ACC, vf09, vf16 +L40: + iaddi vi10, vi10, 0x3 | maddz.xyzw vf13, vf10, vf16 + lq.xy vf24, 0(vi10) | miniz.w vf15, vf15, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf26, vf12, vf05 + iand vi07, vi03, vi11 | ftoi4.xyzw vf14, vf14 + mfir.x vf23, vi07 | mul.xyz vf12, vf12, Q + sq.xyzw vf20, -12(vi10) | maxy.w vf15, vf15, vf01 + ibeq vi14, vi10, L47 | clipw.xyz vf29, vf29 + sq.xyzw vf14, -10(vi10) | mul.xyz vf18, vf18, Q + ibeq vi05, vi09, L41 | itof12.xyz vf19, vf23 + div Q, vf01.x, vf13.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf15, vf15, vf01 +L41: + fcand vi01, 0x3ffff | add.xyzw vf12, vf12, vf04 + ibne vi00, vi01, L60 | maddax.xyzw ACC, vf08, vf16 + mtir vi04, vf24.x | madday.xyzw ACC, vf09, vf16 +L42: + iaddi vi10, vi10, 0x3 | maddz.xyzw vf14, vf10, vf16 + lq.xy vf25, 0(vi10) | miniz.w vf12, vf12, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf27, vf13, vf05 + iand vi08, vi04, vi11 | ftoi4.xyzw vf15, vf15 + mfir.x vf24, vi08 | mul.xyz vf13, vf13, Q + sq.xyzw vf21, -12(vi10) | maxy.w vf12, vf12, vf01 + ibeq vi14, vi10, L47 | clipw.xyz vf26, vf26 + sq.xyzw vf15, -10(vi10) | mul.xyz vf19, vf19, Q + ibeq vi02, vi06, L43 | itof12.xyz vf20, vf24 + div Q, vf01.x, vf14.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf12, vf12, vf01 +L43: + fcand vi01, 0x3ffff | add.xyzw vf13, vf13, vf04 + ibne vi00, vi01, L48 | maddax.xyzw ACC, vf08, vf16 + mtir vi05, vf25.x | madday.xyzw ACC, vf09, vf16 +L44: + iaddi vi10, vi10, 0x3 | maddz.xyzw vf15, vf10, vf16 + lq.xy vf22, 0(vi10) | miniz.w vf13, vf13, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf28, vf14, vf05 + iand vi09, vi05, vi11 | ftoi4.xyzw vf12, vf12 + mfir.x vf25, vi09 | mul.xyz vf14, vf14, Q + sq.xyzw vf18, -12(vi10) | maxy.w vf13, vf13, vf01 + ibeq vi14, vi10, L47 | clipw.xyz vf27, vf27 + sq.xyzw vf12, -10(vi10) | mul.xyz vf20, vf20, Q + ibeq vi03, vi07, L45 | itof12.xyz vf21, vf25 + div Q, vf01.x, vf15.w | mulaw.xyzw ACC, vf11, vf00 + nop | addw.w vf13, vf13, vf01 +L45: + fcand vi01, 0x3ffff | add.xyzw vf14, vf14, vf04 + ibne vi00, vi01, L52 | maddax.xyzw ACC, vf08, vf16 + mtir vi02, vf22.x | madday.xyzw ACC, vf09, vf16 +L46: + iaddi vi10, vi10, 0x3 | maddz.xyzw vf12, vf10, vf16 + lq.xy vf23, 0(vi10) | miniz.w vf14, vf14, vf01 + lq.xyz vf16, 2(vi10) | mul.xyzw vf29, vf15, vf05 + iand vi06, vi02, vi11 | ftoi4.xyzw vf13, vf13 + mfir.x vf22, vi06 | mul.xyz vf15, vf15, Q + sq.xyzw vf19, -12(vi10) | maxy.w vf14, vf14, vf01 + ibne vi14, vi10, L38 | clipw.xyz vf28, vf28 + sq.xyzw vf13, -10(vi10) | mul.xyz vf21, vf21, Q +L47: + b L83 | nop + ilw.w vi12, 906(vi00) | nop +L48: + ibne vi02, vi06, L44 | nop + sq.xyzw vf23, 998(vi00) | addw.w vf12, vf12, vf01 + sq.xyzw vf24, 999(vi00) | mul.xyzw vf23, vf28, vf07 + sq.xyzw vf25, 1000(vi00) | mul.xyzw vf24, vf29, vf07 + isw.x vi01, 1001(vi00) | mul.xyzw vf25, vf26, vf07 + isw.y vi02, 1001(vi00) | nop + isw.z vi03, 1001(vi00) | clipw.xyz vf23, vf23 + isw.w vi04, 1001(vi00) | clipw.xyz vf24, vf24 + mfir.x vf31, vi05 | clipw.xyz vf25, vf25 + iaddiu vi04, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi02 | nop + fcget vi03 | nop + iand vi01, vi01, vi04 | clipw.xyz vf28, vf28 + iand vi01, vi01, vi02 | clipw.xyz vf29, vf29 + iand vi01, vi01, vi03 | clipw.xyz vf26, vf26 + mfir.y vf31, vi06 | nop + ibeq vi00, vi01, L50 | nop + mfir.z vf31, vi07 | nop +L49: + div Q, vf01.x, vf14.w | nop + lq.xyzw vf23, 998(vi00) | nop + lq.xyzw vf24, 999(vi00) | nop + lq.xyzw vf25, 1000(vi00) | nop + ilw.x vi01, 1001(vi00) | nop + ilw.y vi02, 1001(vi00) | nop + ilw.z vi03, 1001(vi00) | nop + b L44 | nop + ilw.w vi04, 1001(vi00) | nop +L50: + mfir.w vf31, vi08 | nop + mfir.x vf30, vi09 | nop + mfir.y vf30, vi10 | nop + mfir.z vf30, vi11 | nop + mfir.w vf30, vi12 | nop + sq.xyzw vf12, 1004(vi00) | nop + lq.xyzw vf12, -15(vi10) | nop + sq.xyzw vf13, 1005(vi00) | nop + lq.xyzw vf13, -12(vi10) | nop + sq.xyzw vf14, 1006(vi00) | nop + div Q, vf00.w, vf12.z | nop + sq.xyzw vf31, 1002(vi00) | nop + sq.xyzw vf30, 1003(vi00) | nop + sq.xyzw vf15, 1007(vi00) | nop + sq.xyzw vf16, 1008(vi00) | nop + lq.xyzw vf03, 4(vi13) | nop + lq.xyzw vf15, -14(vi10) | sub.xw vf31, vf00, vf00 + div Q, vf00.w, vf13.z | nop + lq.xyzw vf16, -11(vi10) | mul.xyz vf12, vf12, Q + lq.xyzw vf17, -8(vi10) | addx.y vf31, vf00, vf03 + nop | itof0.xyzw vf15, vf15 + sq.xyzw vf28, 989(vi00) | nop + sq.xyzw vf12, 991(vi00) | itof0.xyzw vf16, vf16 + sq.xyzw vf29, 992(vi00) | itof0.xyzw vf17, vf17 + div Q, vf00.w, vf18.z | nop + nop | mul.xyz vf13, vf13, Q + sq.xyzw vf26, 995(vi00) | nop + move.z vf31, vf03 | nop + sq.xyzw vf15, 990(vi00) | nop + sq.xyzw vf16, 993(vi00) | nop + sq.xyzw vf17, 996(vi00) | nop + sq.xyzw vf13, 994(vi00) | nop + sq.xyzw vf31, 961(vi00) | mul.xyz vf14, vf18, Q + nop | nop + nop | nop + bal vi15, L67 | nop + sq.xyzw vf14, 997(vi00) | nop + ibeq vi00, vi05, L51 | nop + nop | nop + bal vi15, L64 | nop + nop | nop +L51: + ilw.x vi05, 1002(vi00) | nop + ilw.y vi06, 1002(vi00) | nop + ilw.z vi07, 1002(vi00) | nop + ilw.w vi08, 1002(vi00) | nop + ilw.x vi09, 1003(vi00) | nop + ilw.y vi10, 1003(vi00) | nop + ilw.z vi11, 1003(vi00) | nop + ilw.w vi12, 1003(vi00) | nop + lq.xyzw vf12, 1004(vi00) | nop + lq.xyzw vf13, 1005(vi00) | nop + lq.xyzw vf14, 1006(vi00) | nop + lq.xyzw vf15, 1007(vi00) | nop + b L49 | nop + lq.xyzw vf16, 1008(vi00) | nop +L52: + ibne vi03, vi07, L46 | nop + sq.xyzw vf23, 998(vi00) | addw.w vf13, vf13, vf01 + sq.xyzw vf24, 999(vi00) | mul.xyzw vf23, vf29, vf07 + sq.xyzw vf25, 1000(vi00) | mul.xyzw vf24, vf26, vf07 + isw.x vi01, 1001(vi00) | mul.xyzw vf25, vf27, vf07 + isw.y vi02, 1001(vi00) | nop + isw.z vi03, 1001(vi00) | clipw.xyz vf23, vf23 + isw.w vi04, 1001(vi00) | clipw.xyz vf24, vf24 + mfir.x vf31, vi05 | clipw.xyz vf25, vf25 + iaddiu vi04, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi02 | nop + fcget vi03 | nop + iand vi01, vi01, vi04 | clipw.xyz vf29, vf29 + iand vi01, vi01, vi02 | clipw.xyz vf26, vf26 + iand vi01, vi01, vi03 | clipw.xyz vf27, vf27 + mfir.y vf31, vi06 | nop + ibeq vi00, vi01, L54 | nop + mfir.z vf31, vi07 | nop +L53: + div Q, vf01.x, vf15.w | nop + lq.xyzw vf23, 998(vi00) | nop + lq.xyzw vf24, 999(vi00) | nop + lq.xyzw vf25, 1000(vi00) | nop + ilw.x vi01, 1001(vi00) | nop + ilw.y vi02, 1001(vi00) | nop + ilw.z vi03, 1001(vi00) | nop + b L46 | nop + ilw.w vi04, 1001(vi00) | nop +L54: + mfir.w vf31, vi08 | nop + mfir.x vf30, vi09 | nop + mfir.y vf30, vi10 | nop + mfir.z vf30, vi11 | nop + mfir.w vf30, vi12 | nop + sq.xyzw vf12, 1004(vi00) | nop + lq.xyzw vf12, -15(vi10) | nop + sq.xyzw vf13, 1005(vi00) | nop + lq.xyzw vf13, -12(vi10) | nop + sq.xyzw vf14, 1006(vi00) | nop + div Q, vf00.w, vf12.z | nop + sq.xyzw vf31, 1002(vi00) | nop + sq.xyzw vf30, 1003(vi00) | nop + sq.xyzw vf15, 1007(vi00) | nop + sq.xyzw vf16, 1008(vi00) | nop + lq.xyzw vf03, 4(vi13) | nop + lq.xyzw vf15, -14(vi10) | sub.xw vf31, vf00, vf00 + div Q, vf00.w, vf13.z | nop + lq.xyzw vf16, -11(vi10) | mul.xyz vf12, vf12, Q + lq.xyzw vf17, -8(vi10) | addx.y vf31, vf00, vf03 + nop | itof0.xyzw vf15, vf15 + sq.xyzw vf29, 989(vi00) | nop + sq.xyzw vf12, 991(vi00) | itof0.xyzw vf16, vf16 + sq.xyzw vf26, 992(vi00) | itof0.xyzw vf17, vf17 + div Q, vf00.w, vf19.z | nop + nop | mul.xyz vf13, vf13, Q + sq.xyzw vf27, 995(vi00) | nop + move.z vf31, vf03 | nop + sq.xyzw vf15, 990(vi00) | nop + sq.xyzw vf16, 993(vi00) | nop + sq.xyzw vf17, 996(vi00) | nop + sq.xyzw vf13, 994(vi00) | nop + sq.xyzw vf31, 961(vi00) | mul.xyz vf14, vf19, Q + nop | nop + nop | nop + bal vi15, L67 | nop + sq.xyzw vf14, 997(vi00) | nop + ibeq vi00, vi05, L55 | nop + nop | nop + bal vi15, L64 | nop + nop | nop +L55: + ilw.x vi05, 1002(vi00) | nop + ilw.y vi06, 1002(vi00) | nop + ilw.z vi07, 1002(vi00) | nop + ilw.w vi08, 1002(vi00) | nop + ilw.x vi09, 1003(vi00) | nop + ilw.y vi10, 1003(vi00) | nop + ilw.z vi11, 1003(vi00) | nop + ilw.w vi12, 1003(vi00) | nop + lq.xyzw vf12, 1004(vi00) | nop + lq.xyzw vf13, 1005(vi00) | nop + lq.xyzw vf14, 1006(vi00) | nop + lq.xyzw vf15, 1007(vi00) | nop + b L53 | nop + lq.xyzw vf16, 1008(vi00) | nop +L56: + ibne vi04, vi08, L40 | nop + sq.xyzw vf23, 998(vi00) | addw.w vf14, vf14, vf01 + sq.xyzw vf24, 999(vi00) | mul.xyzw vf23, vf26, vf07 + sq.xyzw vf25, 1000(vi00) | mul.xyzw vf24, vf27, vf07 + isw.x vi01, 1001(vi00) | mul.xyzw vf25, vf28, vf07 + isw.y vi02, 1001(vi00) | nop + isw.z vi03, 1001(vi00) | clipw.xyz vf23, vf23 + isw.w vi04, 1001(vi00) | clipw.xyz vf24, vf24 + mfir.x vf31, vi05 | clipw.xyz vf25, vf25 + iaddiu vi04, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi02 | nop + fcget vi03 | nop + iand vi01, vi01, vi04 | clipw.xyz vf26, vf26 + iand vi01, vi01, vi02 | clipw.xyz vf27, vf27 + iand vi01, vi01, vi03 | clipw.xyz vf28, vf28 + mfir.y vf31, vi06 | nop + ibeq vi00, vi01, L58 | nop + mfir.z vf31, vi07 | nop +L57: + div Q, vf01.x, vf12.w | nop + lq.xyzw vf23, 998(vi00) | nop + lq.xyzw vf24, 999(vi00) | nop + lq.xyzw vf25, 1000(vi00) | nop + ilw.x vi01, 1001(vi00) | nop + ilw.y vi02, 1001(vi00) | nop + ilw.z vi03, 1001(vi00) | nop + b L40 | nop + ilw.w vi04, 1001(vi00) | nop +L58: + mfir.w vf31, vi08 | nop + mfir.x vf30, vi09 | nop + mfir.y vf30, vi10 | nop + mfir.z vf30, vi11 | nop + mfir.w vf30, vi12 | nop + sq.xyzw vf12, 1004(vi00) | nop + lq.xyzw vf12, -15(vi10) | nop + sq.xyzw vf13, 1005(vi00) | nop + lq.xyzw vf13, -12(vi10) | nop + sq.xyzw vf14, 1006(vi00) | nop + div Q, vf00.w, vf12.z | nop + sq.xyzw vf31, 1002(vi00) | nop + sq.xyzw vf30, 1003(vi00) | nop + sq.xyzw vf15, 1007(vi00) | nop + sq.xyzw vf16, 1008(vi00) | nop + lq.xyzw vf03, 4(vi13) | nop + lq.xyzw vf15, -14(vi10) | sub.xw vf31, vf00, vf00 + div Q, vf00.w, vf13.z | nop + lq.xyzw vf16, -11(vi10) | mul.xyz vf12, vf12, Q + lq.xyzw vf17, -8(vi10) | addx.y vf31, vf00, vf03 + nop | itof0.xyzw vf15, vf15 + sq.xyzw vf26, 989(vi00) | nop + sq.xyzw vf12, 991(vi00) | itof0.xyzw vf16, vf16 + sq.xyzw vf27, 992(vi00) | itof0.xyzw vf17, vf17 + div Q, vf00.w, vf20.z | nop + nop | mul.xyz vf13, vf13, Q + sq.xyzw vf28, 995(vi00) | nop + move.z vf31, vf03 | nop + sq.xyzw vf15, 990(vi00) | nop + sq.xyzw vf16, 993(vi00) | nop + sq.xyzw vf17, 996(vi00) | nop + sq.xyzw vf13, 994(vi00) | nop + sq.xyzw vf31, 961(vi00) | mul.xyz vf14, vf20, Q + nop | nop + nop | nop + bal vi15, L67 | nop + sq.xyzw vf14, 997(vi00) | nop + ibeq vi00, vi05, L59 | nop + nop | nop + bal vi15, L64 | nop + nop | nop +L59: + ilw.x vi05, 1002(vi00) | nop + ilw.y vi06, 1002(vi00) | nop + ilw.z vi07, 1002(vi00) | nop + ilw.w vi08, 1002(vi00) | nop + ilw.x vi09, 1003(vi00) | nop + ilw.y vi10, 1003(vi00) | nop + ilw.z vi11, 1003(vi00) | nop + ilw.w vi12, 1003(vi00) | nop + lq.xyzw vf12, 1004(vi00) | nop + lq.xyzw vf13, 1005(vi00) | nop + lq.xyzw vf14, 1006(vi00) | nop + lq.xyzw vf15, 1007(vi00) | nop + b L57 | nop + lq.xyzw vf16, 1008(vi00) | nop +L60: + ibne vi05, vi09, L42 | nop + sq.xyzw vf23, 998(vi00) | addw.w vf15, vf15, vf01 + sq.xyzw vf24, 999(vi00) | mul.xyzw vf23, vf27, vf07 + sq.xyzw vf25, 1000(vi00) | mul.xyzw vf24, vf28, vf07 + isw.x vi01, 1001(vi00) | mul.xyzw vf25, vf29, vf07 + isw.y vi02, 1001(vi00) | nop + isw.z vi03, 1001(vi00) | clipw.xyz vf23, vf23 + isw.w vi04, 1001(vi00) | clipw.xyz vf24, vf24 + mfir.x vf31, vi05 | clipw.xyz vf25, vf25 + iaddiu vi04, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi02 | nop + fcget vi03 | nop + iand vi01, vi01, vi04 | clipw.xyz vf27, vf27 + iand vi01, vi01, vi02 | clipw.xyz vf28, vf28 + iand vi01, vi01, vi03 | clipw.xyz vf29, vf29 + mfir.y vf31, vi06 | nop + ibeq vi00, vi01, L62 | nop + mfir.z vf31, vi07 | nop +L61: + div Q, vf01.x, vf13.w | nop + lq.xyzw vf23, 998(vi00) | nop + lq.xyzw vf24, 999(vi00) | nop + lq.xyzw vf25, 1000(vi00) | nop + ilw.x vi01, 1001(vi00) | nop + ilw.y vi02, 1001(vi00) | nop + ilw.z vi03, 1001(vi00) | nop + b L42 | nop + ilw.w vi04, 1001(vi00) | nop +L62: + mfir.w vf31, vi08 | nop + mfir.x vf30, vi09 | nop + mfir.y vf30, vi10 | nop + mfir.z vf30, vi11 | nop + mfir.w vf30, vi12 | nop + sq.xyzw vf12, 1004(vi00) | nop + lq.xyzw vf12, -15(vi10) | nop + sq.xyzw vf13, 1005(vi00) | nop + lq.xyzw vf13, -12(vi10) | nop + sq.xyzw vf14, 1006(vi00) | nop + div Q, vf00.w, vf12.z | nop + sq.xyzw vf31, 1002(vi00) | nop + sq.xyzw vf30, 1003(vi00) | nop + sq.xyzw vf15, 1007(vi00) | nop + sq.xyzw vf16, 1008(vi00) | nop + lq.xyzw vf03, 4(vi13) | nop + lq.xyzw vf15, -14(vi10) | sub.xw vf31, vf00, vf00 + div Q, vf00.w, vf13.z | nop + lq.xyzw vf16, -11(vi10) | mul.xyz vf12, vf12, Q + lq.xyzw vf17, -8(vi10) | addx.y vf31, vf00, vf03 + nop | itof0.xyzw vf15, vf15 + sq.xyzw vf27, 989(vi00) | nop + sq.xyzw vf12, 991(vi00) | itof0.xyzw vf16, vf16 + sq.xyzw vf28, 992(vi00) | itof0.xyzw vf17, vf17 + div Q, vf00.w, vf21.z | nop + nop | mul.xyz vf13, vf13, Q + sq.xyzw vf29, 995(vi00) | nop + move.z vf31, vf03 | nop + sq.xyzw vf15, 990(vi00) | nop + sq.xyzw vf16, 993(vi00) | nop + sq.xyzw vf17, 996(vi00) | nop + sq.xyzw vf13, 994(vi00) | nop + sq.xyzw vf31, 961(vi00) | mul.xyz vf14, vf21, Q + nop | nop + nop | nop + bal vi15, L67 | nop + sq.xyzw vf14, 997(vi00) | nop + ibeq vi00, vi05, L63 | nop + nop | nop + bal vi15, L64 | nop + nop | nop +L63: + ilw.x vi05, 1002(vi00) | nop + ilw.y vi06, 1002(vi00) | nop + ilw.z vi07, 1002(vi00) | nop + ilw.w vi08, 1002(vi00) | nop + ilw.x vi09, 1003(vi00) | nop + ilw.y vi10, 1003(vi00) | nop + ilw.z vi11, 1003(vi00) | nop + ilw.w vi12, 1003(vi00) | nop + lq.xyzw vf12, 1004(vi00) | nop + lq.xyzw vf13, 1005(vi00) | nop + lq.xyzw vf14, 1006(vi00) | nop + lq.xyzw vf15, 1007(vi00) | nop + b L61 | nop + lq.xyzw vf16, 1008(vi00) | nop +L64: + ilw.w vi01, 8(vi13) | nop + ilw.y vi02, 1003(vi00) | nop + iaddi vi03, vi13, 0x7 | nop + ibltz vi01, L66 | nop + ilw.w vi04, 906(vi00) | nop + iaddi vi02, vi02, -0xf | nop + isub vi02, vi02, vi04 | nop +L65: + ilw.w vi04, 5(vi03) | nop + ilw.w vi01, 6(vi03) | nop + nop | nop + nop | nop + isub vi04, vi02, vi04 | nop + nop | nop + ibltz vi04, L66 | nop + nop | nop + ibgtz vi01, L65 | nop + iaddi vi03, vi03, 0x5 | nop +L66: + iaddiu vi01, vi00, 0x3b9 | nop + lq.xyzw vf12, 0(vi03) | nop + lq.xyzw vf13, 1(vi03) | nop + lq.xyzw vf14, 2(vi03) | nop + lq.xyzw vf15, 3(vi03) | nop + sq.xyzw vf02, 0(vi01) | nop + sq.xyzw vf12, 1(vi01) | nop + sq.xyzw vf13, 2(vi01) | nop + sq.xyzw vf14, 3(vi01) | nop + sq.xyzw vf15, 4(vi01) | nop + lq.xyzw vf12, 4(vi03) | nop + lq.xyzw vf13, 5(vi13) | nop + lq.xyzw vf14, 6(vi13) | nop + sq.xyzw vf12, 5(vi01) | nop + sq.xyzw vf13, 6(vi01) | nop + sq.xyzw vf14, 7(vi01) | nop + xgkick vi01 | nop + lq.xyzw vf12, 905(vi00) | nop + iaddiu vi01, vi00, 0x3f3 | nop + isubiu vi02, vi00, 0x7fff | nop + sq.xyzw vf02, 0(vi01) | nop + iswr.x vi02, vi01 | nop + sq.xyzw vf12, 1(vi01) | nop + xgkick vi01 | nop +L67: + sq.xyzw vf00, 907(vi00) | nop + sq.xyzw vf00, 914(vi00) | nop + sq.xyzw vf00, 921(vi00) | nop + sq.xyzw vf00, 928(vi00) | nop + sq.xyzw vf00, 935(vi00) | nop + sq.xyzw vf00, 942(vi00) | nop + iaddiu vi01, vi00, 0x40f | nop + isw.z vi01, 907(vi00) | nop + iaddiu vi01, vi00, 0x411 | nop + isw.z vi01, 914(vi00) | nop + iaddiu vi01, vi00, 0x413 | nop + isw.z vi01, 921(vi00) | nop + iaddiu vi01, vi00, 0x415 | nop + isw.z vi01, 928(vi00) | nop + iaddiu vi01, vi00, 0x417 | nop + isw.z vi01, 935(vi00) | nop + iaddiu vi01, vi00, 0x419 | nop + isw.z vi01, 942(vi00) | nop + iaddiu vi03, vi00, 0x3c2 | nop + iaddiu vi04, vi00, 0x3c1 | nop + mfir.x vf31, vi15 | nop + iaddi vi05, vi00, 0x0 | nop + bal vi15, L68 | nop + iaddiu vi07, vi00, 0x3dd | nop + bal vi15, L68 | nop + iaddiu vi07, vi00, 0x3e0 | nop + bal vi15, L68 | nop + iaddiu vi07, vi00, 0x3e3 | nop + b L77 | nop + nop | nop +L68: + iaddiu vi09, vi00, 0x38b | nop +L69: + iaddi vi10, vi00, 0x0 | nop +L70: + isubiu vi01, vi09, 0x3b5 | nop + ilwr.y vi08, vi09 | nop + ibgez vi01, L74 | nop + ilwr.z vi06, vi09 | nop + lq.xyzw vf24, 0(vi07) | nop + lq.xyzw vf23, 0(vi08) | nop + ibne vi00, vi08, L71 | nop + iswr.y vi07, vi09 | nop + jalr vi11, vi06 | nop + iswr.x vi07, vi09 | nop + nop | nop + nop | nop + nop | nop + fsand vi02, 0x2 | nop + ibne vi00, vi02, L75 | nop + nop | nop + b L70 | nop + iaddi vi09, vi09, 0x7 | nop +L71: + jalr vi11, vi06 | nop + lq.xyzw vf15, 1(vi08) | nop + lq.xyzw vf16, 1(vi07) | nop + lq.xyzw vf12, 2(vi08) | nop + fsand vi01, 0x2 | nop + fsand vi02, 0x2 | subw.w vf31, vf30, vf31 + ibne vi00, vi01, L73 | nop + lq.xyzw vf13, 2(vi07) | nop + ibne vi00, vi02, L72 | nop + div Q, vf30.w, vf31.w | nop + b L70 | nop + iaddi vi09, vi09, 0x7 | nop +L72: + bal vi11, L82 | nop + iaddi vi07, vi09, 0x1 | nop + sq.xyzw vf25, 1(vi09) | nop + sq.xyzw vf17, 2(vi09) | nop + sq.xyzw vf14, 3(vi09) | nop + b L70 | nop + iaddi vi09, vi09, 0x7 | nop +L73: + ibne vi00, vi02, L75 | nop + div Q, vf30.w, vf31.w | nop + bal vi11, L82 | nop + nop | nop + sq.xyzw vf25, 4(vi09) | nop + sq.xyzw vf17, 5(vi09) | nop + sq.xyzw vf14, 6(vi09) | nop + iaddi vi09, vi09, 0x7 | nop + isw.x vi09, 949(vi10) | nop + isw.y vi07, 949(vi10) | nop + iaddi vi10, vi10, 0x1 | nop + b L70 | nop + iaddi vi07, vi09, -0x3 | nop +L74: + lq.xyzw vf23, 0(vi07) | nop + lq.xyzw vf15, 1(vi07) | nop + lq.xyzw vf12, 2(vi07) | nop + iaddi vi05, vi05, 0x1 | nop + nop | nop + div Q, vf00.w, vf23.w | nop + nop | ftoi0.xyzw vf15, vf15 + nop | mul.xyzw vf23, vf23, vf06 + iaddi vi03, vi03, 0x3 | nop + waitq | nop + sq.xyzw vf15, -2(vi03) | mul.xyz vf23, vf23, Q + nop | mul.xyz vf12, vf12, Q + nop | add.xyzw vf23, vf23, vf04 + nop | maxy.w vf23, vf23, vf01 + nop | miniz.w vf23, vf23, vf01 + nop | ftoi4.xyzw vf23, vf23 + sq.xyzw vf12, -3(vi03) | nop + sq.xyzw vf23, -1(vi03) | nop +L75: + iblez vi10, L76 | nop + nop | nop + ilw.x vi09, 948(vi10) | nop + ilw.y vi07, 948(vi10) | nop + b L70 | nop + iaddi vi10, vi10, -0x1 | nop +L76: + jr vi15 | nop + nop | nop +L77: + iaddiu vi09, vi00, 0x38b | nop +L78: + ilwr.x vi08, vi09 | nop + ilwr.y vi07, vi09 | nop + ilwr.z vi06, vi09 | nop + nop | nop + ibeq vi00, vi08, L80 | nop + lq.xyzw vf23, 0(vi07) | nop + ibeq vi07, vi08, L80 | nop + lq.xyzw vf24, 0(vi08) | nop + jalr vi11, vi06 | nop + lq.xyzw vf15, 1(vi07) | nop + lq.xyzw vf16, 1(vi08) | nop + lq.xyzw vf12, 2(vi07) | nop + fsand vi01, 0x2 | nop + fsand vi02, 0x2 | subw.w vf31, vf30, vf31 + ibeq vi02, vi01, L80 | nop + lq.xyzw vf13, 2(vi08) | nop + ibeq vi00, vi01, L79 | nop + div Q, vf30.w, vf31.w | nop + bal vi11, L82 | nop + nop | nop + sq.xyzw vf25, 4(vi09) | nop + sq.xyzw vf17, 5(vi09) | nop + sq.xyzw vf14, 6(vi09) | nop + iaddi vi07, vi09, 0x4 | nop + ior vi12, vi09, vi00 | nop + bal vi15, L69 | nop + iaddi vi09, vi09, 0x7 | nop + b L80 | nop + ior vi09, vi12, vi00 | nop +L79: + bal vi11, L82 | nop + nop | nop + sq.xyzw vf25, 1(vi09) | nop + sq.xyzw vf17, 2(vi09) | nop + sq.xyzw vf14, 3(vi09) | nop + iaddi vi07, vi09, 0x1 | nop + ior vi12, vi09, vi00 | nop + bal vi15, L69 | nop + iaddi vi09, vi09, 0x7 | nop + ior vi09, vi12, vi00 | nop +L80: + isubiu vi01, vi09, 0x3ae | nop + iswr.x vi00, vi09 | nop + iswr.y vi00, vi09 | nop + ibltz vi01, L78 | nop + iaddi vi09, vi09, 0x7 | nop + ibeq vi00, vi05, L81 | nop + mtir vi15, vf31.x | nop + iaddiu vi05, vi05, 0x4000 | nop + iaddiu vi05, vi05, 0x4000 | nop + iswr.x vi05, vi04 | nop +L81: + nop | nop + jr vi15 | nop + nop | nop + jr vi11 | addx.w vf30, vf23, vf23 + nop | addx.w vf31, vf24, vf24 + jr vi11 | subx.w vf30, vf23, vf23 + nop | subx.w vf31, vf24, vf24 + jr vi11 | addy.w vf30, vf23, vf23 + nop | addy.w vf31, vf24, vf24 + jr vi11 | suby.w vf30, vf23, vf23 + nop | suby.w vf31, vf24, vf24 + jr vi11 | addz.w vf30, vf23, vf23 + nop | addz.w vf31, vf24, vf24 + jr vi11 | subz.w vf30, vf23, vf23 + nop | subz.w vf31, vf24, vf24 +L82: + nop | sub.xyzw vf25, vf24, vf23 + nop | sub.xyzw vf17, vf16, vf15 + nop | sub.xyzw vf14, vf13, vf12 + waitq | mul.xyzw vf25, vf25, Q + nop | mul.xyzw vf17, vf17, Q + nop | mul.xyzw vf14, vf14, Q + nop | add.xyzw vf25, vf23, vf25 + jr vi11 | add.xyzw vf17, vf15, vf17 + nop | add.xyzw vf14, vf12, vf14 +L83: + iaddi vi14, vi13, 0x7 | nop + lq.xyzw vf03, 4(vi13) | nop + ilw.w vi02, 6(vi13) | nop + lq.xyzw vf21, 5(vi13) | nop + lq.xyzw vf22, 6(vi13) | nop +L84: + ilwr.w vi03, vi14 | nop + ilw.w vi04, 1(vi14) | nop + lqi.xyzw vf16, vi14 | nop + lqi.xyzw vf17, vi14 | nop + lqi.xyzw vf18, vi14 | nop + lqi.xyzw vf19, vi14 | nop + lqi.xyzw vf20, vi14 | nop + iadd vi06, vi03, vi12 | nop + sqi.xyzw vf02, vi06 | nop + sqi.xyzw vf16, vi06 | nop + sqi.xyzw vf17, vi06 | nop + sqi.xyzw vf18, vi06 | nop + sqi.xyzw vf19, vi06 | nop + sqi.xyzw vf20, vi06 | nop + sqi.xyzw vf21, vi06 | nop + sqi.xyzw vf22, vi06 | nop + sqi.xyzw vf03, vi06 | nop + ibgez vi04, L84 | nop + isw.x vi04, -1(vi06) | nop + iadd vi02, vi12, vi02 | nop + nop | nop + xgkick vi02 | nop + isubiu vi01, vi12, 0x22e | nop + nop | nop + ibltz vi01, L85 | nop + iaddiu vi12, vi12, 0x117 | nop + iaddi vi12, vi00, 0x0 | nop +L85: + nop | nop :e + nop | nop diff --git a/test/decompiler/vu_reference/generic-vu0-result.txt b/test/decompiler/vu_reference/generic-vu0-result.txt new file mode 100644 index 0000000000..b3c6ed3ba1 --- /dev/null +++ b/test/decompiler/vu_reference/generic-vu0-result.txt @@ -0,0 +1,295 @@ + move.xyzw vf21, vf17 | mulax.xyzw ACC, vf10, vf01 + move.xyzw vf22, vf18 | madday.xyzw ACC, vf11, vf01 + move.xyzw vf23, vf19 | maddz.xyzw vf01, vf12, vf01 + move.xyzw vf24, vf20 | mulax.xyzw ACC, vf10, vf02 + nop | itof0.xyzw vf17, vf05 + nop | itof0.xyzw vf18, vf06 + nop | itof0.xyzw vf19, vf07 + nop | itof0.xyzw vf20, vf08 + nop | madday.xyzw ACC, vf11, vf02 + nop | maddz.xyzw vf02, vf12, vf02 + nop | mulax.xyzw ACC, vf10, vf03 + nop | madday.xyzw ACC, vf11, vf03 + nop | maddz.xyzw vf03, vf12, vf03 + nop | mulax.xyzw ACC, vf10, vf04 + nop | madday.xyzw ACC, vf11, vf04 + nop | maddz.xyzw vf04, vf12, vf04 + nop | maxx.xyzw vf01, vf01, vf00 + nop | maxx.xyzw vf02, vf02, vf00 + nop | maxx.xyzw vf03, vf03, vf00 + nop | maxx.xyzw vf04, vf04, vf00 + nop | mulaw.xyzw ACC, vf13, vf00 + nop | maddax.xyzw ACC, vf14, vf01 + nop | madday.xyzw ACC, vf15, vf01 + nop | maddz.xyzw vf01, vf16, vf01 + nop | mulaw.xyzw ACC, vf13, vf00 + nop | maddax.xyzw ACC, vf14, vf02 + nop | madday.xyzw ACC, vf15, vf02 + nop | maddz.xyzw vf02, vf16, vf02 + nop | mulaw.xyzw ACC, vf13, vf00 + nop | maddax.xyzw ACC, vf14, vf03 + nop | madday.xyzw ACC, vf15, vf03 + nop | maddz.xyzw vf03, vf16, vf03 + nop | mulaw.xyzw ACC, vf13, vf00 + nop | maddax.xyzw ACC, vf14, vf04 + nop | madday.xyzw ACC, vf15, vf04 + nop | maddz.xyzw vf04, vf16, vf04 + nop | mul.xyzw vf17, vf17, vf01 + nop | mul.xyzw vf18, vf18, vf02 + nop | mul.xyzw vf19, vf19, vf03 + nop | mul.xyzw vf20, vf20, vf04 + nop | minix.xyzw vf17, vf17, vf09 + nop | minix.xyzw vf18, vf18, vf09 + nop | minix.xyzw vf19, vf19, vf09 + nop | minix.xyzw vf20, vf20, vf09 + nop | ftoi0.xyzw vf17, vf17 + nop | ftoi0.xyzw vf18, vf18 + nop | ftoi0.xyzw vf19, vf19 :e + nop | ftoi0.xyzw vf20, vf20 + nop | mulx.xyzw vf13, vf09, vf31 + nop | subw.z vf21, vf21, vf00 + nop | addy.x vf29, vf29, vf29 + nop | mulx.xyz vf08, vf08, vf30 + nop | addw.xy vf05, vf05, vf31 + nop | mul.xyz vf30, vf21, vf13 + nop | addz.x vf29, vf29, vf29 + nop | add.xyz vf08, vf08, vf16 + move.xyzw vf28, vf27 | ftoi12.xy vf17, vf05 + move.xyzw vf02, vf22 | addy.x vf30, vf30, vf30 + rsqrt Q, vf31.z, vf29.x | mul.xyz vf06, vf06, Q + nop | mul.xyz vf29, vf08, vf08 + nop | mulx.xyz vf01, vf21, vf28 + nop | addz.x vf30, vf30, vf30 + nop | mulx.xyzw vf14, vf10, vf31 + nop | subw.z vf02, vf02, vf00 + nop | addy.x vf29, vf29, vf29 + nop | mulx.xyz vf01, vf01, vf30 + nop | addw.xy vf06, vf06, vf31 + nop | mul.xyz vf30, vf02, vf14 + nop | addz.x vf29, vf29, vf29 + nop | add.xyz vf01, vf01, vf13 + nop | ftoi12.xy vf18, vf06 + nop | addy.x vf30, vf30, vf30 + rsqrt Q, vf31.z, vf29.x | mul.xyz vf07, vf07, Q + move.xyzw vf03, vf23 | mul.xyz vf29, vf01, vf01 + nop | muly.xyz vf02, vf02, vf28 + nop | addz.x vf30, vf30, vf30 + nop | mulx.xyzw vf15, vf11, vf31 + nop | subw.z vf03, vf03, vf00 + nop | addy.x vf29, vf29, vf29 + nop | mulx.xyz vf02, vf02, vf30 + nop | addw.xy vf07, vf07, vf31 + nop | mul.xyz vf30, vf03, vf15 + nop | addz.x vf29, vf29, vf29 + nop | add.xyz vf02, vf02, vf14 + nop | ftoi12.xy vf19, vf07 + nop | addy.x vf30, vf30, vf30 + rsqrt Q, vf31.z, vf29.x | mul.xyz vf08, vf08, Q + move.xyzw vf04, vf24 | mul.xyz vf29, vf02, vf02 + nop | mulz.xyz vf03, vf03, vf28 + nop | addz.x vf30, vf30, vf30 + nop | mulx.xyzw vf16, vf12, vf31 + nop | subw.z vf04, vf04, vf00 + nop | addy.x vf29, vf29, vf29 + nop | mulx.xyz vf03, vf03, vf30 + nop | addw.xy vf08, vf08, vf31 + nop | mul.xyz vf30, vf04, vf16 + nop | addz.x vf29, vf29, vf29 + nop | add.xyz vf03, vf03, vf15 + nop | ftoi12.xy vf20, vf08 + nop | addy.x vf30, vf30, vf30 + rsqrt Q, vf31.z, vf29.x | mul.xyz vf05, vf01, Q + move.xyzw vf06, vf02 | mul.xyz vf29, vf03, vf03 + move.xyzw vf07, vf03 | mulw.xyz vf08, vf04, vf28 :e + nop | addz.x vf30, vf30, vf30 + iaddi vi02, vi00, 0x0 | nop + iadd vi03, vi02, vi08 | nop + iaddiu vi03, vi03, 0x10 | nop + iadd vi01, vi03, vi09 | nop + iadd vi01, vi01, vi09 | nop + iaddiu vi01, vi01, 0x10 | nop + iaddi vi10, vi00, 0x0 | nop + ior vi11, vi03, vi00 | nop + ior vi12, vi01, vi00 | nop :e + iadd vi13, vi01, vi08 | nop + nop | itof12.xyzw vf09, vf05 + nop | itof12.xyzw vf10, vf06 + nop | itof12.xyzw vf11, vf07 + nop | itof12.xyzw vf12, vf08 + sqi.xyzw vf09, vi01 | nop + sqi.xyzw vf10, vi01 | nop + sqi.xyzw vf11, vi01 | nop :e + sqi.xyzw vf12, vi01 | nop + mr32.w vf17, vf13 | itof0.xyz vf09, vf01 + mr32.w vf18, vf14 | itof0.xyz vf10, vf02 + mr32.w vf19, vf15 | itof0.xyz vf11, vf03 + mr32.w vf20, vf16 | itof0.xyz vf12, vf04 + move.w vf09, vf17 | nop + move.w vf10, vf18 | nop + move.w vf11, vf19 | nop + move.w vf12, vf20 | nop + sqi.xyzw vf09, vi02 | nop + sqi.xyzw vf10, vi02 | nop + sqi.xyzw vf11, vi02 | nop :e + sqi.xyzw vf12, vi02 | nop + mr32.w vf17, vf13 | itof0.xyz vf09, vf01 + mr32.w vf18, vf14 | itof0.xyz vf10, vf02 + nop | itof0.xyz vf11, vf03 + nop | nop + move.w vf09, vf17 | nop + move.w vf10, vf18 | nop + nop | nop + iaddi vi03, vi03, 0x2 | nop + sqi.xyzw vf09, vi02 | nop + sq.xyzw vf10, -2(vi03) | nop :e + sq.xyzw vf11, -1(vi03) | nop + mr32.w vf17, vf13 | itof0.xyz vf09, vf01 + mr32.w vf18, vf14 | itof0.xyz vf10, vf02 + mr32.w vf19, vf15 | itof0.xyz vf11, vf03 + nop | itof0.xyz vf12, vf04 + move.w vf09, vf17 | nop + move.w vf10, vf18 | nop + move.w vf11, vf19 | nop + iaddi vi03, vi03, 0x2 | nop + sqi.xyzw vf09, vi02 | nop + sqi.xyzw vf10, vi02 | nop + sq.xyzw vf11, -2(vi03) | nop :e + sq.xyzw vf12, -1(vi03) | nop + mr32.w vf17, vf13 | itof0.xyz vf09, vf01 + mr32.w vf18, vf14 | itof0.xyz vf10, vf02 + mr32.w vf19, vf15 | itof0.xyz vf11, vf03 + nop | nop + move.w vf09, vf17 | nop + move.w vf10, vf18 | nop + move.w vf11, vf19 | nop + nop | nop + sqi.xyzw vf09, vi02 | nop + sqi.xyzw vf10, vi02 | nop :e + sqi.xyzw vf11, vi02 | nop + mr32.w vf17, vf13 | itof0.xyz vf09, vf01 + mr32.w vf19, vf14 | itof0.xyz vf10, vf02 + nop | itof0.xyz vf11, vf03 + iaddi vi03, vi03, 0x4 | itof0.xyz vf12, vf04 + move.w vf09, vf17 | nop + move.w vf11, vf19 | nop + sq.xyz vf10, -3(vi03) | nop + sq.xyz vf12, -1(vi03) | nop + sq.xyzw vf09, -4(vi03) | nop :e + sq.xyzw vf11, -2(vi03) | nop + ior vi02, vi10, vi00 | nop + ior vi01, vi12, vi00 | nop + lqi.xyzw vf05, vi02 | nop + nop | nop + nop | nop + lqi.xyzw vf09, vi01 | mulaw.xyzw ACC, vf04, vf00 + move.xyzw vf19, vf21 | maddax.xyzw ACC, vf01, vf05 + move.xyzw vf16, vf22 | madday.xyzw ACC, vf02, vf05 + move.xyzw vf20, vf23 | maddz.xyz vf13, vf03, vf05 + lqi.xyzw vf06, vi02 | mulax.xyzw ACC, vf01, vf09 + move.xyzw vf15, vf24 | madday.xyzw ACC, vf02, vf09 + nop | maddz.xyzw vf17, vf03, vf09 + lqi.xyzw vf10, vi01 | mulaw.xyzw ACC, vf04, vf00 + move.w vf13, vf05 | maddax.xyzw ACC, vf01, vf06 + nop | madday.xyzw ACC, vf02, vf06 + nop | maddz.xyz vf14, vf03, vf06 + lqi.xyzw vf07, vi02 | mulax.xyzw ACC, vf01, vf10 + nop | madday.xyzw ACC, vf02, vf10 + nop | maddz.xyzw vf18, vf03, vf10 + lqi.xyzw vf11, vi01 | mulaw.xyzw ACC, vf04, vf00 + move.w vf14, vf06 | maddax.xyzw ACC, vf01, vf07 + nop | madday.xyzw ACC, vf02, vf07 + nop | maddz.xyz vf24, vf03, vf07 + lqi.xyzw vf08, vi02 | mulax.xyzw ACC, vf01, vf11 + nop | madday.xyzw ACC, vf02, vf11 + nop | maddz.xyzw vf21, vf03, vf11 + lqi.xyzw vf12, vi01 | mulaw.xyzw ACC, vf04, vf00 + move.w vf24, vf07 | maddax.xyzw ACC, vf01, vf08 + nop | madday.xyzw ACC, vf02, vf08 + nop | maddz.xyz vf22, vf03, vf08 + lqi.xyzw vf05, vi02 | mulax.xyzw ACC, vf01, vf12 + move.w vf22, vf08 | madday.xyzw ACC, vf02, vf12 :e + nop | maddz.xyzw vf23, vf03, vf12 + move.xyzw vf19, vf21 | nop + move.xyzw vf16, vf22 | nop + move.xyzw vf20, vf23 | nop :e + move.xyzw vf15, vf24 | nop + ior vi03, vi11, vi00 | nop + ior vi01, vi13, vi00 | nop + lqi.xyzw vf05, vi03 | nop + lqi.xyzw vf25, vi03 | nop + lqi.xyzw vf09, vi01 | nop + nop | nop + move.xyzw vf16, vf21 | mulax.xyz ACC, vf05, vf29 + nop | maddw.xyz vf30, vf25, vf00 + nop | mulax.xyzw ACC, vf01, vf09 + nop | madday.xyzw ACC, vf02, vf09 + move.w vf13, vf05 | maddz.xyz vf17, vf03, vf09 + lqi.xyzw vf06, vi03 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyzw vf26, vi03 | maddax.xyzw ACC, vf01, vf30 + lqi.xyzw vf10, vi01 | madday.xyzw ACC, vf02, vf30 + nop | maddz.xyz vf13, vf03, vf30 + nop | mulax.xyz ACC, vf06, vf29 + nop | maddw.xyz vf30, vf26, vf00 + nop | mulax.xyzw ACC, vf01, vf10 + nop | madday.xyzw ACC, vf02, vf10 + move.w vf14, vf06 | maddz.xyz vf18, vf03, vf10 + lqi.xyzw vf07, vi03 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyzw vf27, vi03 | maddax.xyzw ACC, vf01, vf30 + lqi.xyzw vf11, vi01 | madday.xyzw ACC, vf02, vf30 + nop | maddz.xyz vf14, vf03, vf30 + nop | mulax.xyz ACC, vf07, vf29 + nop | maddw.xyz vf30, vf27, vf00 + nop | mulax.xyzw ACC, vf01, vf11 + nop | madday.xyzw ACC, vf02, vf11 + move.w vf15, vf07 | maddz.xyz vf19, vf03, vf11 + lqi.xyzw vf08, vi03 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyzw vf28, vi03 | maddax.xyzw ACC, vf01, vf30 + lqi.xyzw vf12, vi01 | madday.xyzw ACC, vf02, vf30 + nop | maddz.xyz vf15, vf03, vf30 + nop | mulax.xyz ACC, vf08, vf29 + nop | maddw.xyz vf30, vf28, vf00 + nop | mulax.xyzw ACC, vf01, vf12 + nop | madday.xyzw ACC, vf02, vf12 + move.w vf21, vf08 | maddz.xyz vf20, vf03, vf12 + lqi.xyzw vf05, vi03 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyzw vf25, vi03 | maddax.xyzw ACC, vf01, vf30 + lqi.xyzw vf09, vi01 | madday.xyzw ACC, vf02, vf30 :e + nop | maddz.xyz vf21, vf03, vf30 + move.xyzw vf16, vf21 | nop :e + nop | nop + ior vi01, vi13, vi00 | nop + lqi.xyzw vf09, vi01 | nop + ior vi03, vi11, vi00 | nop + lq.xyzw vf05, 1(vi03) | nop + iaddi vi03, vi03, 0x2 | nop + move.xyzw vf15, vf21 | mulax.xyzw ACC, vf01, vf09 + move.xyzw vf20, vf22 | madday.xyzw ACC, vf02, vf09 + lq.w vf13, -2(vi03) | maddz.xyz vf17, vf03, vf09 + lqi.xyzw vf10, vi01 | mulaw.xyzw ACC, vf04, vf00 + move.xyzw vf16, vf23 | maddax.xyzw ACC, vf01, vf05 + lq.xyzw vf06, 1(vi03) | madday.xyzw ACC, vf02, vf05 + iaddi vi03, vi03, 0x2 | maddz.xyz vf13, vf03, vf05 + nop | mulax.xyzw ACC, vf01, vf10 + nop | madday.xyzw ACC, vf02, vf10 + lq.w vf14, -2(vi03) | maddz.xyz vf18, vf03, vf10 + lqi.xyzw vf11, vi01 | mulaw.xyzw ACC, vf04, vf00 + nop | maddax.xyzw ACC, vf01, vf06 + lq.xyzw vf07, 1(vi03) | madday.xyzw ACC, vf02, vf06 + iaddi vi03, vi03, 0x2 | maddz.xyz vf14, vf03, vf06 + nop | mulax.xyzw ACC, vf01, vf11 + nop | madday.xyzw ACC, vf02, vf11 + lq.w vf21, -2(vi03) | maddz.xyz vf19, vf03, vf11 + lqi.xyzw vf12, vi01 | mulaw.xyzw ACC, vf04, vf00 + nop | maddax.xyzw ACC, vf01, vf07 + lq.xyzw vf08, 1(vi03) | madday.xyzw ACC, vf02, vf07 + iaddi vi03, vi03, 0x2 | maddz.xyz vf21, vf03, vf07 + nop | mulax.xyzw ACC, vf01, vf12 + nop | madday.xyzw ACC, vf02, vf12 + lq.w vf23, -2(vi03) | maddz.xyz vf22, vf03, vf12 + lqi.xyzw vf09, vi01 | mulaw.xyzw ACC, vf04, vf00 + nop | maddax.xyzw ACC, vf01, vf08 + lq.xyzw vf05, 1(vi03) | madday.xyzw ACC, vf02, vf08 :e + iaddi vi03, vi03, 0x2 | maddz.xyz vf23, vf03, vf08 + move.xyzw vf15, vf21 | nop + move.xyzw vf20, vf22 | nop :e + move.xyzw vf16, vf23 | nop diff --git a/test/decompiler/vu_reference/generic-vu0.txt b/test/decompiler/vu_reference/generic-vu0.txt new file mode 100644 index 0000000000..5fe7ad98ff --- /dev/null +++ b/test/decompiler/vu_reference/generic-vu0.txt @@ -0,0 +1,591 @@ + .word 0x81f58b3c + .word 0x1e151bc + .word 0x81f6933c + .word 0x1e158bd + .word 0x81f79b3c + .word 0x1e1604a + .word 0x81f8a33c + .word 0x1e251bc + .word 0x80000030 + .word 0x1f1293c + .word 0x80000030 + .word 0x1f2313c + .word 0x80000030 + .word 0x1f3393c + .word 0x80000030 + .word 0x1f4413c + .word 0x80000030 + .word 0x1e258bd + .word 0x80000030 + .word 0x1e2608a + .word 0x80000030 + .word 0x1e351bc + .word 0x80000030 + .word 0x1e358bd + .word 0x80000030 + .word 0x1e360ca + .word 0x80000030 + .word 0x1e451bc + .word 0x80000030 + .word 0x1e458bd + .word 0x80000030 + .word 0x1e4610a + .word 0x80000030 + .word 0x1e00850 + .word 0x80000030 + .word 0x1e01090 + .word 0x80000030 + .word 0x1e018d0 + .word 0x80000030 + .word 0x1e02110 + .word 0x80000030 + .word 0x1e069bf + .word 0x80000030 + .word 0x1e170bc + .word 0x80000030 + .word 0x1e178bd + .word 0x80000030 + .word 0x1e1804a + .word 0x80000030 + .word 0x1e069bf + .word 0x80000030 + .word 0x1e270bc + .word 0x80000030 + .word 0x1e278bd + .word 0x80000030 + .word 0x1e2808a + .word 0x80000030 + .word 0x1e069bf + .word 0x80000030 + .word 0x1e370bc + .word 0x80000030 + .word 0x1e378bd + .word 0x80000030 + .word 0x1e380ca + .word 0x80000030 + .word 0x1e069bf + .word 0x80000030 + .word 0x1e470bc + .word 0x80000030 + .word 0x1e478bd + .word 0x80000030 + .word 0x1e4810a + .word 0x80000030 + .word 0x1e18c6a + .word 0x80000030 + .word 0x1e294aa + .word 0x80000030 + .word 0x1e39cea + .word 0x80000030 + .word 0x1e4a52a + .word 0x80000030 + .word 0x1e98c54 + .word 0x80000030 + .word 0x1e99494 + .word 0x80000030 + .word 0x1e99cd4 + .word 0x80000030 + .word 0x1e9a514 + .word 0x80000030 + .word 0x1f1897c + .word 0x80000030 + .word 0x1f2917c + .word 0x80000030 + .word 0x41f3997c + .word 0x80000030 + .word 0x1f4a17c + .word 0x80000030 + .word 0x1ff4b58 + .word 0x80000030 + .word 0x40ad47 + .word 0x80000030 + .word 0x11def41 + .word 0x80000030 + .word 0x1de4218 + .word 0x80000030 + .word 0x19f2943 + .word 0x80000030 + .word 0x1cdafaa + .word 0x80000030 + .word 0x11def42 + .word 0x80000030 + .word 0x1d04228 + .word 0x81fcdb3c + .word 0x191297e + .word 0x81e2b33c + .word 0x11ef781 + .word 0x805dfbbe + .word 0x1c0319c + .word 0x80000030 + .word 0x1c8476a + .word 0x80000030 + .word 0x1dca858 + .word 0x80000030 + .word 0x11ef782 + .word 0x80000030 + .word 0x1ff5398 + .word 0x80000030 + .word 0x401087 + .word 0x80000030 + .word 0x11def41 + .word 0x80000030 + .word 0x1de0858 + .word 0x80000030 + .word 0x19f3183 + .word 0x80000030 + .word 0x1ce17aa + .word 0x80000030 + .word 0x11def42 + .word 0x80000030 + .word 0x1cd0868 + .word 0x80000030 + .word 0x192317e + .word 0x80000030 + .word 0x11ef781 + .word 0x805dfbbe + .word 0x1c039dc + .word 0x81e3bb3c + .word 0x1c10f6a + .word 0x80000030 + .word 0x1dc1099 + .word 0x80000030 + .word 0x11ef782 + .word 0x80000030 + .word 0x1ff5bd8 + .word 0x80000030 + .word 0x4018c7 + .word 0x80000030 + .word 0x11def41 + .word 0x80000030 + .word 0x1de1098 + .word 0x80000030 + .word 0x19f39c3 + .word 0x80000030 + .word 0x1cf1faa + .word 0x80000030 + .word 0x11def42 + .word 0x80000030 + .word 0x1ce10a8 + .word 0x80000030 + .word 0x193397e + .word 0x80000030 + .word 0x11ef781 + .word 0x805dfbbe + .word 0x1c0421c + .word 0x81e4c33c + .word 0x1c2176a + .word 0x80000030 + .word 0x1dc18da + .word 0x80000030 + .word 0x11ef782 + .word 0x80000030 + .word 0x1ff6418 + .word 0x80000030 + .word 0x402107 + .word 0x80000030 + .word 0x11def41 + .word 0x80000030 + .word 0x1de18d8 + .word 0x80000030 + .word 0x19f4203 + .word 0x80000030 + .word 0x1d027aa + .word 0x80000030 + .word 0x11def42 + .word 0x80000030 + .word 0x1cf18e8 + .word 0x80000030 + .word 0x194417e + .word 0x80000030 + .word 0x11ef781 + .word 0x805dfbbe + .word 0x1c0095c + .word 0x81e6133c + .word 0x1c31f6a + .word 0x81e71b3c + .word 0x41dc221b + .word 0x80000030 + .word 0x11ef782 + .word 0x80020032 + .word 0x2ff + .word 0x800810f0 + .word 0x2ff + .word 0x10031810 + .word 0x2ff + .word 0x80091870 + .word 0x2ff + .word 0x80090870 + .word 0x2ff + .word 0x10010810 + .word 0x2ff + .word 0x800a0032 + .word 0x2ff + .word 0x80001af5 + .word 0x2ff + .word 0x80000b35 + .word 0x400002ff + .word 0x80080b70 + .word 0x2ff + .word 0x80000030 + .word 0x1e9293e + .word 0x80000030 + .word 0x1ea313e + .word 0x80000030 + .word 0x1eb393e + .word 0x80000030 + .word 0x1ec413e + .word 0x81e14b7d + .word 0x2ff + .word 0x81e1537d + .word 0x2ff + .word 0x81e15b7d + .word 0x400002ff + .word 0x81e1637d + .word 0x2ff + .word 0x80316b3d + .word 0x1c9093c + .word 0x8032733d + .word 0x1ca113c + .word 0x80337b3d + .word 0x1cb193c + .word 0x8034833d + .word 0x1cc213c + .word 0x80298b3c + .word 0x2ff + .word 0x802a933c + .word 0x2ff + .word 0x802b9b3c + .word 0x2ff + .word 0x802ca33c + .word 0x2ff + .word 0x81e24b7d + .word 0x2ff + .word 0x81e2537d + .word 0x2ff + .word 0x81e25b7d + .word 0x400002ff + .word 0x81e2637d + .word 0x2ff + .word 0x80316b3d + .word 0x1c9093c + .word 0x8032733d + .word 0x1ca113c + .word 0x80000030 + .word 0x1cb193c + .word 0x80000030 + .word 0x2ff + .word 0x80298b3c + .word 0x2ff + .word 0x802a933c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x800318b2 + .word 0x2ff + .word 0x81e24b7d + .word 0x2ff + .word 0x3e357fe + .word 0x400002ff + .word 0x3e35fff + .word 0x2ff + .word 0x80316b3d + .word 0x1c9093c + .word 0x8032733d + .word 0x1ca113c + .word 0x80337b3d + .word 0x1cb193c + .word 0x80000030 + .word 0x1cc213c + .word 0x80298b3c + .word 0x2ff + .word 0x802a933c + .word 0x2ff + .word 0x802b9b3c + .word 0x2ff + .word 0x800318b2 + .word 0x2ff + .word 0x81e24b7d + .word 0x2ff + .word 0x81e2537d + .word 0x2ff + .word 0x3e35ffe + .word 0x400002ff + .word 0x3e367ff + .word 0x2ff + .word 0x80316b3d + .word 0x1c9093c + .word 0x8032733d + .word 0x1ca113c + .word 0x80337b3d + .word 0x1cb193c + .word 0x80000030 + .word 0x2ff + .word 0x80298b3c + .word 0x2ff + .word 0x802a933c + .word 0x2ff + .word 0x802b9b3c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e24b7d + .word 0x2ff + .word 0x81e2537d + .word 0x400002ff + .word 0x81e25b7d + .word 0x2ff + .word 0x80316b3d + .word 0x1c9093c + .word 0x8033733d + .word 0x1ca113c + .word 0x80000030 + .word 0x1cb193c + .word 0x80031932 + .word 0x1cc213c + .word 0x80298b3c + .word 0x2ff + .word 0x802b9b3c + .word 0x2ff + .word 0x3c357fd + .word 0x2ff + .word 0x3c367ff + .word 0x2ff + .word 0x3e34ffc + .word 0x400002ff + .word 0x3e35ffe + .word 0x2ff + .word 0x800050b5 + .word 0x2ff + .word 0x80006075 + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e90b7c + .word 0x1e021bf + .word 0x81f3ab3c + .word 0x1e508bc + .word 0x81f0b33c + .word 0x1e510bd + .word 0x81f4bb3c + .word 0x1c51b4a + .word 0x81e6137c + .word 0x1e909bc + .word 0x81efc33c + .word 0x1e910bd + .word 0x80000030 + .word 0x1e91c4a + .word 0x81ea0b7c + .word 0x1e021bf + .word 0x802d2b3c + .word 0x1e608bc + .word 0x80000030 + .word 0x1e610bd + .word 0x80000030 + .word 0x1c61b8a + .word 0x81e7137c + .word 0x1ea09bc + .word 0x80000030 + .word 0x1ea10bd + .word 0x80000030 + .word 0x1ea1c8a + .word 0x81eb0b7c + .word 0x1e021bf + .word 0x802e333c + .word 0x1e708bc + .word 0x80000030 + .word 0x1e710bd + .word 0x80000030 + .word 0x1c71e0a + .word 0x81e8137c + .word 0x1eb09bc + .word 0x80000030 + .word 0x1eb10bd + .word 0x80000030 + .word 0x1eb1d4a + .word 0x81ec0b7c + .word 0x1e021bf + .word 0x80383b3c + .word 0x1e808bc + .word 0x80000030 + .word 0x1e810bd + .word 0x80000030 + .word 0x1c81d8a + .word 0x81e5137c + .word 0x1ec09bc + .word 0x8036433c + .word 0x41ec10bd + .word 0x80000030 + .word 0x1ec1dca + .word 0x81f3ab3c + .word 0x2ff + .word 0x81f0b33c + .word 0x2ff + .word 0x81f4bb3c + .word 0x400002ff + .word 0x81efc33c + .word 0x2ff + .word 0x800058f5 + .word 0x2ff + .word 0x80006875 + .word 0x2ff + .word 0x81e51b7c + .word 0x2ff + .word 0x81f91b7c + .word 0x2ff + .word 0x81e90b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81f0ab3c + .word 0x1dd29bc + .word 0x80000030 + .word 0x1c0cf8b + .word 0x80000030 + .word 0x1e909bc + .word 0x80000030 + .word 0x1e910bd + .word 0x802d2b3c + .word 0x1c91c4a + .word 0x81e61b7c + .word 0x1e021bf + .word 0x81fa1b7c + .word 0x1fe08bc + .word 0x81ea0b7c + .word 0x1fe10bd + .word 0x80000030 + .word 0x1de1b4a + .word 0x80000030 + .word 0x1dd31bc + .word 0x80000030 + .word 0x1c0d78b + .word 0x80000030 + .word 0x1ea09bc + .word 0x80000030 + .word 0x1ea10bd + .word 0x802e333c + .word 0x1ca1c8a + .word 0x81e71b7c + .word 0x1e021bf + .word 0x81fb1b7c + .word 0x1fe08bc + .word 0x81eb0b7c + .word 0x1fe10bd + .word 0x80000030 + .word 0x1de1b8a + .word 0x80000030 + .word 0x1dd39bc + .word 0x80000030 + .word 0x1c0df8b + .word 0x80000030 + .word 0x1eb09bc + .word 0x80000030 + .word 0x1eb10bd + .word 0x802f3b3c + .word 0x1cb1cca + .word 0x81e81b7c + .word 0x1e021bf + .word 0x81fc1b7c + .word 0x1fe08bc + .word 0x81ec0b7c + .word 0x1fe10bd + .word 0x80000030 + .word 0x1de1bca + .word 0x80000030 + .word 0x1dd41bc + .word 0x80000030 + .word 0x1c0e78b + .word 0x80000030 + .word 0x1ec09bc + .word 0x80000030 + .word 0x1ec10bd + .word 0x8035433c + .word 0x1cc1d0a + .word 0x81e51b7c + .word 0x1e021bf + .word 0x81f91b7c + .word 0x1fe08bc + .word 0x81e90b7c + .word 0x41fe10bd + .word 0x80000030 + .word 0x1de1d4a + .word 0x81f0ab3c + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x80006875 + .word 0x2ff + .word 0x81e90b7c + .word 0x2ff + .word 0x800058f5 + .word 0x2ff + .word 0x1e51801 + .word 0x2ff + .word 0x800318b2 + .word 0x2ff + .word 0x81efab3c + .word 0x1e909bc + .word 0x81f4b33c + .word 0x1e910bd + .word 0x2d1ffe + .word 0x1c91c4a + .word 0x81ea0b7c + .word 0x1e021bf + .word 0x81f0bb3c + .word 0x1e508bc + .word 0x1e61801 + .word 0x1e510bd + .word 0x800318b2 + .word 0x1c51b4a + .word 0x80000030 + .word 0x1ea09bc + .word 0x80000030 + .word 0x1ea10bd + .word 0x2e1ffe + .word 0x1ca1c8a + .word 0x81eb0b7c + .word 0x1e021bf + .word 0x80000030 + .word 0x1e608bc + .word 0x1e71801 + .word 0x1e610bd + .word 0x800318b2 + .word 0x1c61b8a + .word 0x80000030 + .word 0x1eb09bc + .word 0x80000030 + .word 0x1eb10bd + .word 0x351ffe + .word 0x1cb1cca + .word 0x81ec0b7c + .word 0x1e021bf + .word 0x80000030 + .word 0x1e708bc + .word 0x1e81801 + .word 0x1e710bd + .word 0x800318b2 + .word 0x1c71d4a + .word 0x80000030 + .word 0x1ec09bc + .word 0x80000030 + .word 0x1ec10bd + .word 0x371ffe + .word 0x1cc1d8a + .word 0x81e90b7c + .word 0x1e021bf + .word 0x80000030 + .word 0x1e808bc + .word 0x1e51801 + .word 0x41e810bd + .word 0x800318b2 + .word 0x1c81dca + .word 0x81efab3c + .word 0x2ff + .word 0x81f4b33c + .word 0x400002ff + .word 0x81f0bb3c + .word 0x2ff + diff --git a/test/decompiler/vu_reference/generic.txt b/test/decompiler/vu_reference/generic.txt new file mode 100644 index 0000000000..e10f52ffa5 --- /dev/null +++ b/test/decompiler/vu_reference/generic.txt @@ -0,0 +1,2188 @@ + .word 0x4000003d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000043 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000043f + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000161 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000064 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000003 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000050 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x10020381 + .word 0x2ff + .word 0x1ff1007 + .word 0x2ff + .word 0x12026b63 + .word 0x400583 + .word 0x100d681e + .word 0x4005c3 + .word 0x52001002 + .word 0x400603 + .word 0x1e30383 + .word 0x400643 + .word 0x100d0345 + .word 0x2ff + .word 0x9016805 + .word 0x2ff + .word 0x800762b2 + .word 0x2ff + .word 0x80050ff2 + .word 0x2ff + .word 0x1f16804 + .word 0x2ff + .word 0x3edf805 + .word 0x2ff + .word 0x3edf806 + .word 0x2ff + .word 0x3c000000 + .word 0x800002ff + .word 0x81ed8b3c + .word 0x1c08c5e + .word 0x81ee8b3c + .word 0x2ff + .word 0x81ef8b3c + .word 0x2ff + .word 0x81f08b3c + .word 0x2ff + .word 0x3ed1804 + .word 0x2ff + .word 0xa216805 + .word 0x2ff + .word 0xa206806 + .word 0x2ff + .word 0x1cd3800 + .word 0x2ff + .word 0x1ce3803 + .word 0x2ff + .word 0x1cf3806 + .word 0x2ff + .word 0x1d03809 + .word 0x2ff + .word 0x80073b32 + .word 0x1cd693c + .word 0x80052f32 + .word 0x1ce713c + .word 0x80000030 + .word 0x1cf793c + .word 0x80000030 + .word 0x1d0813c + .word 0x80000030 + .word 0x1d16b6a + .word 0x80000030 + .word 0x1d173aa + .word 0x80000030 + .word 0x1d17bea + .word 0x80000030 + .word 0x1d1842a + .word 0x1f23ff5 + .word 0x1cd697c + .word 0x1f33ff8 + .word 0x1ce717c + .word 0x1f43ffb + .word 0x1cf797c + .word 0x1f53ffe + .word 0x1d0817c + .word 0x3e76ff4 + .word 0x1f2913c + .word 0x3e777f7 + .word 0x1f3993c + .word 0x3e77ffa + .word 0x1f4a13c + .word 0x3e787fd + .word 0x1f5a93c + .word 0x3e797f5 + .word 0x2ff + .word 0x3e79ff8 + .word 0x2ff + .word 0x3e7a7fb + .word 0x2ff + .word 0x5e002fe8 + .word 0x2ff + .word 0x3e7affe + .word 0x2ff + .word 0x40000097 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x10010381 + .word 0x2ff + .word 0x1e10800 + .word 0x2ff + .word 0x1e20801 + .word 0x2ff + .word 0x1e30802 + .word 0x2ff + .word 0x1e40803 + .word 0x2ff + .word 0x1e50804 + .word 0x2ff + .word 0x1e60805 + .word 0x2ff + .word 0x1e70806 + .word 0x2ff + .word 0x100d0363 + .word 0x2ff + .word 0x80026972 + .word 0x2ff + .word 0x800c0032 + .word 0x2ff + .word 0xb020809 + .word 0x2ff + .word 0xa820809 + .word 0x2ff + .word 0x3e0038b + .word 0x2ff + .word 0x3e00392 + .word 0x2ff + .word 0x3e00399 + .word 0x2ff + .word 0x3e003a0 + .word 0x2ff + .word 0x3e003a7 + .word 0x2ff + .word 0x3e003ae + .word 0x2ff + .word 0x1001040f + .word 0x2ff + .word 0xa41038b + .word 0x2ff + .word 0x10010411 + .word 0x2ff + .word 0xa410392 + .word 0x2ff + .word 0x10010413 + .word 0x2ff + .word 0xa410399 + .word 0x2ff + .word 0x10010415 + .word 0x2ff + .word 0xa4103a0 + .word 0x2ff + .word 0x10010417 + .word 0x2ff + .word 0xa4103a7 + .word 0x2ff + .word 0x10010419 + .word 0x400002ff + .word 0xa4103ae + .word 0x2ff + .word 0x10010381 + .word 0x2ff + .word 0x84d0809 + .word 0x2ff + .word 0x82c0809 + .word 0x2ff + .word 0x800269b2 + .word 0x2ff + .word 0xb020809 + .word 0x400002ff + .word 0xa820809 + .word 0x2ff + .word 0x12026b63 + .word 0x2ff + .word 0x100d681e + .word 0x2ff + .word 0x52001002 + .word 0x2ff + .word 0x12010900 + .word 0x2ff + .word 0x100d0345 + .word 0x2ff + .word 0x800369f2 + .word 0x2ff + .word 0x800369f2 + .word 0x2ff + .word 0xb03038a + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0xa83038a + .word 0x2ff + .word 0x12026b63 + .word 0x400583 + .word 0x100d681e + .word 0x4005c3 + .word 0x52001002 + .word 0x400603 + .word 0x80000030 + .word 0x400643 + .word 0x100d0345 + .word 0x2ff + .word 0x800369f2 + .word 0x2ff + .word 0x8216805 + .word 0x2ff + .word 0xb03038a + .word 0x2ff + .word 0x800a6272 + .word 0x200487 + .word 0x1e86800 + .word 0x2004c7 + .word 0x1e96801 + .word 0x200507 + .word 0x1ea6802 + .word 0x200547 + .word 0x1eb6803 + .word 0x56b17e + .word 0x800108b0 + .word 0x57b97e + .word 0x80020870 + .word 0x1f0842c + .word 0x800b07b2 + .word 0x1f18c6c + .word 0x1965000 + .word 0x2ff + .word 0x1d05002 + .word 0x2ff + .word 0x8002b3fc + .word 0x1e059bf + .word 0x800a50f2 + .word 0x1f040bc + .word 0x1975000 + .word 0x1f048bd + .word 0x1d15002 + .word 0x2ff + .word 0x800b11b4 + .word 0x2ff + .word 0x811633fd + .word 0x1f0530a + .word 0x800153b0 + .word 0x58c17e + .word 0xa2c038a + .word 0x59c97e + .word 0x80000030 + .word 0x2ff + .word 0x818c0bbc + .word 0x1d2b13e + .word 0x8003bbfc + .word 0x1e059bf + .word 0x800a50f2 + .word 0x1f140bc + .word 0x1985000 + .word 0x1f148bd + .word 0x1d05002 + .word 0x2ff + .word 0x800b19f4 + .word 0x2ff + .word 0x81173bfd + .word 0x1f1534a + .word 0x80000030 + .word 0x1c0631c + .word 0x80000030 + .word 0x1c0949c + .word 0x80000030 + .word 0x2ff + .word 0x818d0bbc + .word 0x1d3b93e + .word 0x80000030 + .word 0x1e46328 + .word 0x8004c3fc + .word 0x1e059bf + .word 0x800a50f2 + .word 0x1f040bc + .word 0x1995000 + .word 0x1f048bd + .word 0x1d15002 + .word 0x216316 + .word 0x800b2234 + .word 0x2ff + .word 0x811843fd + .word 0x1f0538a + .word 0x80000030 + .word 0x1c06b5c + .word 0x80000030 + .word 0x1c09cdc + .word 0x800e7272 + .word 0x216311 + .word 0x818e0bbc + .word 0x1d4c13e + .word 0x50023002 + .word 0x1e46b68 + .word 0x8005cbfc + .word 0x1e059bf + .word 0x80000030 + .word 0x216303 + .word 0x800a50f2 + .word 0x1f140bc + .word 0x1965000 + .word 0x1f148bd + .word 0x1d05002 + .word 0x216b56 + .word 0x800b2a74 + .word 0x1ec617d + .word 0x81194bfd + .word 0x1f153ca + .word 0x3ea97f4 + .word 0x1c0739c + .word 0x500e5025 + .word 0x1c0a51c + .word 0x3ea67f6 + .word 0x216b51 + .word 0x818f0bbc + .word 0x1d5c93e + .word 0x50033802 + .word 0x1e473a8 + .word 0x8002b3fc + .word 0x1e059bf + .word 0x80000030 + .word 0x216b43 + .word 0x800a50f2 + .word 0x1f040bc + .word 0x1975000 + .word 0x1f048bd + .word 0x1d15002 + .word 0x217396 + .word 0x800b11b4 + .word 0x1ed697d + .word 0x811633fd + .word 0x1f0530a + .word 0x3ea9ff4 + .word 0x1c07bdc + .word 0x500e5019 + .word 0x1c0ad5c + .word 0x3ea6ff6 + .word 0x217391 + .word 0x818c0bbc + .word 0x1d2b13e + .word 0x50044002 + .word 0x1e47be8 + .word 0x8003bbfc + .word 0x1e059bf + .word 0x80000030 + .word 0x217383 + .word 0x800a50f2 + .word 0x1f140bc + .word 0x1985000 + .word 0x1f148bd + .word 0x1d05002 + .word 0x217bd6 + .word 0x800b19f4 + .word 0x1ee717d + .word 0x81173bfd + .word 0x1f1534a + .word 0x3eaa7f4 + .word 0x1c0631c + .word 0x500e500d + .word 0x1c0949c + .word 0x3ea77f6 + .word 0x217bd1 + .word 0x818d0bbc + .word 0x1d3b93e + .word 0x50054802 + .word 0x1e46328 + .word 0x8004c3fc + .word 0x1e059bf + .word 0x80000030 + .word 0x217bc3 + .word 0x800a50f2 + .word 0x1f040bc + .word 0x1995000 + .word 0x1f048bd + .word 0x1d15002 + .word 0x216316 + .word 0x800b2234 + .word 0x1ef797d + .word 0x811843fd + .word 0x1f0538a + .word 0x3eaaff4 + .word 0x1c06b5c + .word 0x520e57d1 + .word 0x1c09cdc + .word 0x3ea7ff6 + .word 0x216311 + .word 0x40000356 + .word 0x2ff + .word 0x82c038a + .word 0x2ff + .word 0x12026b63 + .word 0x400583 + .word 0x100d681e + .word 0x4005c3 + .word 0x52001002 + .word 0x400603 + .word 0x80000030 + .word 0x400643 + .word 0x100d0345 + .word 0x2ff + .word 0x800369f2 + .word 0x2ff + .word 0x8216805 + .word 0x2ff + .word 0xb03038a + .word 0x2ff + .word 0x800a6272 + .word 0x200487 + .word 0x1e86800 + .word 0x2004c7 + .word 0x1e96801 + .word 0x200507 + .word 0x1ea6802 + .word 0x200547 + .word 0x1eb6803 + .word 0x56b17e + .word 0x800108b0 + .word 0x57b97e + .word 0x80020870 + .word 0x1f0842c + .word 0x800b07b2 + .word 0x2ff + .word 0x800153b0 + .word 0x58c17e + .word 0xa2c038a + .word 0x59c97e + .word 0x800e7272 + .word 0x2ff + .word 0x1965000 + .word 0x2ff + .word 0x1d05002 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e059bf + .word 0x8002b3fc + .word 0x1f040bc + .word 0x800a50f2 + .word 0x1f048bd + .word 0x1975000 + .word 0x1f0530a + .word 0x1d05002 + .word 0x2ff + .word 0x800b11b4 + .word 0x2ff + .word 0x811633fd + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1d2b13e + .word 0x818c0bbc + .word 0x1e566aa + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e059bf + .word 0x8003bbfc + .word 0x1f040bc + .word 0x800a50f2 + .word 0x1f048bd + .word 0x1985000 + .word 0x1f0534a + .word 0x1d05002 + .word 0x2ff + .word 0x800b19f4 + .word 0x2ff + .word 0x81173bfd + .word 0x1c0631c + .word 0x22000000 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c0949c + .word 0x80000030 + .word 0x1d3b93e + .word 0x818d0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x1e46328 + .word 0x80000030 + .word 0x1f040bc + .word 0x8004c3fc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f0538a + .word 0x1995000 + .word 0x216316 + .word 0x1d05002 + .word 0x1e56eea + .word 0x800b2234 + .word 0x2ff + .word 0x811843fd + .word 0x1c06b5c + .word 0x80000030 + .word 0x216311 + .word 0x80000030 + .word 0x1dad1ff + .word 0x80000030 + .word 0x1c09cdc + .word 0x50023002 + .word 0x1d4c13e + .word 0x818e0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x216303 + .word 0x80000030 + .word 0x1e46b68 + .word 0x80000030 + .word 0x1f040bc + .word 0x8005cbfc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f053ca + .word 0x1965000 + .word 0x216b56 + .word 0x1d05002 + .word 0x1e5772a + .word 0x800b2a74 + .word 0x1ec617d + .word 0x81194bfd + .word 0x1c0739c + .word 0x3ea97f4 + .word 0x216b51 + .word 0x500e5047 + .word 0x1dbd9ff + .word 0x3ea67f6 + .word 0x1c0a51c + .word 0x50033802 + .word 0x1d5c93e + .word 0x818f0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x216b43 + .word 0x80000030 + .word 0x1e473a8 + .word 0x80000030 + .word 0x1f040bc + .word 0x8002b3fc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f0530a + .word 0x1975000 + .word 0x217396 + .word 0x1d05002 + .word 0x1e57f6a + .word 0x800b11b4 + .word 0x1ed697d + .word 0x811633fd + .word 0x1c07bdc + .word 0x3ea9ff4 + .word 0x217391 + .word 0x500e5039 + .word 0x1dce1ff + .word 0x3ea6ff6 + .word 0x1c0ad5c + .word 0x50044002 + .word 0x1d2b13e + .word 0x818c0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x217383 + .word 0x2403ffff + .word 0x1e47be8 + .word 0x52000839 + .word 0x1f040bc + .word 0x8003bbfc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f0534a + .word 0x1985000 + .word 0x217bd6 + .word 0x1d05002 + .word 0x1e566aa + .word 0x800b19f4 + .word 0x1ee717d + .word 0x81173bfd + .word 0x1c0631c + .word 0x3eaa7f4 + .word 0x217bd1 + .word 0x500e502b + .word 0x1dde9ff + .word 0x3ea77f6 + .word 0x1c0949c + .word 0x50054802 + .word 0x1d3b93e + .word 0x818d0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x217bc3 + .word 0x2403ffff + .word 0x1e46328 + .word 0x5200082d + .word 0x1f040bc + .word 0x8004c3fc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f0538a + .word 0x1995000 + .word 0x216316 + .word 0x1d05002 + .word 0x1e56eea + .word 0x800b2234 + .word 0x1ef797d + .word 0x811843fd + .word 0x1c06b5c + .word 0x3eaaff4 + .word 0x216311 + .word 0x500e501d + .word 0x1dad1ff + .word 0x3ea7ff6 + .word 0x1c09cdc + .word 0x50023002 + .word 0x1d4c13e + .word 0x818e0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x216303 + .word 0x2403ffff + .word 0x1e46b68 + .word 0x52000819 + .word 0x1f040bc + .word 0x8005cbfc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f053ca + .word 0x1965000 + .word 0x216b56 + .word 0x1d05002 + .word 0x1e5772a + .word 0x800b2a74 + .word 0x1ec617d + .word 0x81194bfd + .word 0x1c0739c + .word 0x3ea97f4 + .word 0x216b51 + .word 0x500e500f + .word 0x1dbd9ff + .word 0x3ea67f6 + .word 0x1c0a51c + .word 0x50033802 + .word 0x1d5c93e + .word 0x818f0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x216b43 + .word 0x2403ffff + .word 0x1e473a8 + .word 0x5200080d + .word 0x1f040bc + .word 0x8002b3fc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f0530a + .word 0x1975000 + .word 0x217396 + .word 0x1d05002 + .word 0x1e57f6a + .word 0x800b11b4 + .word 0x1ed697d + .word 0x811633fd + .word 0x1c07bdc + .word 0x3ea9ff4 + .word 0x217391 + .word 0x520e57c9 + .word 0x1dce1ff + .word 0x3ea6ff6 + .word 0x1c0ad5c + .word 0x400002c5 + .word 0x2ff + .word 0x82c038a + .word 0x2ff + .word 0x400007e7 + .word 0x216303 + .word 0x80000030 + .word 0x2ff + .word 0x400007f3 + .word 0x216b43 + .word 0x80000030 + .word 0x2ff + .word 0x400007c7 + .word 0x217383 + .word 0x80000030 + .word 0x2ff + .word 0x400007d3 + .word 0x217bc3 + .word 0x80000030 + .word 0x2ff + .word 0x12026b63 + .word 0x400583 + .word 0x100d681e + .word 0x4005c3 + .word 0x52001002 + .word 0x400603 + .word 0x80000030 + .word 0x400643 + .word 0x100d0345 + .word 0x2ff + .word 0x800369f2 + .word 0x2ff + .word 0x8216805 + .word 0x2ff + .word 0xb03038a + .word 0x2ff + .word 0x800a6272 + .word 0x200487 + .word 0x1e86800 + .word 0x2004c7 + .word 0x1e96801 + .word 0x200507 + .word 0x1ea6802 + .word 0x200547 + .word 0x1eb6803 + .word 0x56b17e + .word 0x800108b0 + .word 0x57b97e + .word 0x80020870 + .word 0x1f0842c + .word 0x800b07b2 + .word 0x2ff + .word 0x800153b0 + .word 0x58c17e + .word 0xa2c038a + .word 0x59c97e + .word 0x800e7272 + .word 0x2ff + .word 0x1965000 + .word 0x2ff + .word 0x1d05002 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e059bf + .word 0x8002b3fc + .word 0x1f040bc + .word 0x800a50f2 + .word 0x1f048bd + .word 0x1975000 + .word 0x1f0530a + .word 0x1d05002 + .word 0x2ff + .word 0x800b11b4 + .word 0x2ff + .word 0x811633fd + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1d2b13e + .word 0x818c0bbc + .word 0x1e566aa + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e059bf + .word 0x8003bbfc + .word 0x1f040bc + .word 0x800a50f2 + .word 0x1f048bd + .word 0x1985000 + .word 0x1f0534a + .word 0x1d05002 + .word 0x2ff + .word 0x800b19f4 + .word 0x2ff + .word 0x81173bfd + .word 0x1c0631c + .word 0x22000000 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c0949c + .word 0x80000030 + .word 0x1d3b93e + .word 0x818d0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x1e46328 + .word 0x80000030 + .word 0x1f040bc + .word 0x8004c3fc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f0538a + .word 0x1995000 + .word 0x216316 + .word 0x1d05002 + .word 0x1e56eea + .word 0x800b2234 + .word 0x2ff + .word 0x811843fd + .word 0x1c06b5c + .word 0x80000030 + .word 0x216311 + .word 0x80000030 + .word 0x1dad1ff + .word 0x80000030 + .word 0x1c09cdc + .word 0x50023002 + .word 0x1d4c13e + .word 0x818e0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x216303 + .word 0x80000030 + .word 0x1e46b68 + .word 0x80000030 + .word 0x1f040bc + .word 0x8005cbfc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f053ca + .word 0x1965000 + .word 0x216b56 + .word 0x1d05002 + .word 0x1e5772a + .word 0x800b2a74 + .word 0x1ec617d + .word 0x81194bfd + .word 0x1c0739c + .word 0x3ea97f4 + .word 0x216b51 + .word 0x500e5047 + .word 0x1dbd9ff + .word 0x3ea67f6 + .word 0x1c0a51c + .word 0x50033802 + .word 0x1d5c93e + .word 0x818f0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x216b43 + .word 0x80000030 + .word 0x1e473a8 + .word 0x80000030 + .word 0x1f040bc + .word 0x8002b3fc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f0530a + .word 0x1975000 + .word 0x217396 + .word 0x1d05002 + .word 0x1e57f6a + .word 0x800b11b4 + .word 0x1ed697d + .word 0x811633fd + .word 0x1c07bdc + .word 0x3ea9ff4 + .word 0x217391 + .word 0x500e5039 + .word 0x1dce1ff + .word 0x3ea6ff6 + .word 0x1c0ad5c + .word 0x50044002 + .word 0x1d2b13e + .word 0x818c0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x217383 + .word 0x2403ffff + .word 0x1e47be8 + .word 0x520008db + .word 0x1f040bc + .word 0x8003bbfc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f0534a + .word 0x1985000 + .word 0x217bd6 + .word 0x1d05002 + .word 0x1e566aa + .word 0x800b19f4 + .word 0x1ee717d + .word 0x81173bfd + .word 0x1c0631c + .word 0x3eaa7f4 + .word 0x217bd1 + .word 0x500e502b + .word 0x1dde9ff + .word 0x3ea77f6 + .word 0x1c0949c + .word 0x50054802 + .word 0x1d3b93e + .word 0x818d0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x217bc3 + .word 0x2403ffff + .word 0x1e46328 + .word 0x52000920 + .word 0x1f040bc + .word 0x8004c3fc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f0538a + .word 0x1995000 + .word 0x216316 + .word 0x1d05002 + .word 0x1e56eea + .word 0x800b2234 + .word 0x1ef797d + .word 0x811843fd + .word 0x1c06b5c + .word 0x3eaaff4 + .word 0x216311 + .word 0x500e501d + .word 0x1dad1ff + .word 0x3ea7ff6 + .word 0x1c09cdc + .word 0x50023002 + .word 0x1d4c13e + .word 0x818e0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x216303 + .word 0x2403ffff + .word 0x1e46b68 + .word 0x52000819 + .word 0x1f040bc + .word 0x8005cbfc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f053ca + .word 0x1965000 + .word 0x216b56 + .word 0x1d05002 + .word 0x1e5772a + .word 0x800b2a74 + .word 0x1ec617d + .word 0x81194bfd + .word 0x1c0739c + .word 0x3ea97f4 + .word 0x216b51 + .word 0x500e500f + .word 0x1dbd9ff + .word 0x3ea67f6 + .word 0x1c0a51c + .word 0x50033802 + .word 0x1d5c93e + .word 0x818f0bbc + .word 0x1e059bf + .word 0x80000030 + .word 0x216b43 + .word 0x2403ffff + .word 0x1e473a8 + .word 0x5200085e + .word 0x1f040bc + .word 0x8002b3fc + .word 0x1f048bd + .word 0x800a50f2 + .word 0x1f0530a + .word 0x1975000 + .word 0x217396 + .word 0x1d05002 + .word 0x1e57f6a + .word 0x800b11b4 + .word 0x1ed697d + .word 0x811633fd + .word 0x1c07bdc + .word 0x3ea9ff4 + .word 0x217391 + .word 0x520e57c9 + .word 0x1dce1ff + .word 0x3ea6ff6 + .word 0x1c0ad5c + .word 0x4000022c + .word 0x2ff + .word 0x82c038a + .word 0x2ff + .word 0x520237e7 + .word 0x2ff + .word 0x3e0bbe6 + .word 0x216303 + .word 0x3e0c3e7 + .word 0x1e7e5ea + .word 0x3e0cbe8 + .word 0x1e7ee2a + .word 0xb0103e9 + .word 0x1e7d66a + .word 0xa8203e9 + .word 0x2ff + .word 0xa4303e9 + .word 0x1d7b9ff + .word 0xa2403e9 + .word 0x1d8c1ff + .word 0x811f2bfd + .word 0x1d9c9ff + .word 0x1004003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x38020000 + .word 0x2ff + .word 0x38030000 + .word 0x2ff + .word 0x80040874 + .word 0x1dce1ff + .word 0x80020874 + .word 0x1dde9ff + .word 0x80030874 + .word 0x1dad1ff + .word 0x809f33fd + .word 0x2ff + .word 0x5000080a + .word 0x2ff + .word 0x805f3bfd + .word 0x2ff + .word 0x818e0bbc + .word 0x2ff + .word 0x1f703e6 + .word 0x2ff + .word 0x1f803e7 + .word 0x2ff + .word 0x1f903e8 + .word 0x2ff + .word 0x90103e9 + .word 0x2ff + .word 0x88203e9 + .word 0x2ff + .word 0x84303e9 + .word 0x2ff + .word 0x400007cd + .word 0x2ff + .word 0x82403e9 + .word 0x2ff + .word 0x803f43fd + .word 0x2ff + .word 0x811e4bfd + .word 0x2ff + .word 0x809e53fd + .word 0x2ff + .word 0x805e5bfd + .word 0x2ff + .word 0x803e63fd + .word 0x2ff + .word 0x3e063ec + .word 0x2ff + .word 0x1ec57f1 + .word 0x2ff + .word 0x3e06bed + .word 0x2ff + .word 0x1ed57f4 + .word 0x2ff + .word 0x3e073ee + .word 0x2ff + .word 0x816c03bc + .word 0x2ff + .word 0x3e0fbea + .word 0x2ff + .word 0x3e0f3eb + .word 0x2ff + .word 0x3e07bef + .word 0x2ff + .word 0x3e083f0 + .word 0x2ff + .word 0x1e36804 + .word 0x2ff + .word 0x1ef57f2 + .word 0x12007ec + .word 0x816d03bc + .word 0x2ff + .word 0x1f057f5 + .word 0x1c0631c + .word 0x1f157f8 + .word 0x8307c0 + .word 0x80000030 + .word 0x1ef793c + .word 0x3e0e3dd + .word 0x2ff + .word 0x3e063df + .word 0x1f0813c + .word 0x3e0ebe0 + .word 0x1f1893c + .word 0x817203bc + .word 0x2ff + .word 0x80000030 + .word 0x1c06b5c + .word 0x3e0d3e3 + .word 0x2ff + .word 0x805f1b3c + .word 0x2ff + .word 0x3e07bde + .word 0x2ff + .word 0x3e083e1 + .word 0x2ff + .word 0x3e08be4 + .word 0x2ff + .word 0x3e06be2 + .word 0x2ff + .word 0x3e0fbc1 + .word 0x1c0939c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0135 + .word 0x2ff + .word 0x3e073e5 + .word 0x2ff + .word 0x50002803 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0108 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x90503ea + .word 0x2ff + .word 0x88603ea + .word 0x2ff + .word 0x84703ea + .word 0x2ff + .word 0x82803ea + .word 0x2ff + .word 0x90903eb + .word 0x2ff + .word 0x88a03eb + .word 0x2ff + .word 0x84b03eb + .word 0x2ff + .word 0x82c03eb + .word 0x2ff + .word 0x1ec03ec + .word 0x2ff + .word 0x1ed03ed + .word 0x2ff + .word 0x1ee03ee + .word 0x2ff + .word 0x1ef03ef + .word 0x2ff + .word 0x400007c1 + .word 0x2ff + .word 0x1f003f0 + .word 0x2ff + .word 0x52033fa2 + .word 0x2ff + .word 0x3e0bbe6 + .word 0x216b43 + .word 0x3e0c3e7 + .word 0x1e7edea + .word 0x3e0cbe8 + .word 0x1e7d62a + .word 0xb0103e9 + .word 0x1e7de6a + .word 0xa8203e9 + .word 0x2ff + .word 0xa4303e9 + .word 0x1d7b9ff + .word 0xa2403e9 + .word 0x1d8c1ff + .word 0x811f2bfd + .word 0x1d9c9ff + .word 0x1004003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x38020000 + .word 0x2ff + .word 0x38030000 + .word 0x2ff + .word 0x80040874 + .word 0x1dde9ff + .word 0x80020874 + .word 0x1dad1ff + .word 0x80030874 + .word 0x1dbd9ff + .word 0x809f33fd + .word 0x2ff + .word 0x5000080a + .word 0x2ff + .word 0x805f3bfd + .word 0x2ff + .word 0x818f0bbc + .word 0x2ff + .word 0x1f703e6 + .word 0x2ff + .word 0x1f803e7 + .word 0x2ff + .word 0x1f903e8 + .word 0x2ff + .word 0x90103e9 + .word 0x2ff + .word 0x88203e9 + .word 0x2ff + .word 0x84303e9 + .word 0x2ff + .word 0x40000788 + .word 0x2ff + .word 0x82403e9 + .word 0x2ff + .word 0x803f43fd + .word 0x2ff + .word 0x811e4bfd + .word 0x2ff + .word 0x809e53fd + .word 0x2ff + .word 0x805e5bfd + .word 0x2ff + .word 0x803e63fd + .word 0x2ff + .word 0x3e063ec + .word 0x2ff + .word 0x1ec57f1 + .word 0x2ff + .word 0x3e06bed + .word 0x2ff + .word 0x1ed57f4 + .word 0x2ff + .word 0x3e073ee + .word 0x2ff + .word 0x816c03bc + .word 0x2ff + .word 0x3e0fbea + .word 0x2ff + .word 0x3e0f3eb + .word 0x2ff + .word 0x3e07bef + .word 0x2ff + .word 0x3e083f0 + .word 0x2ff + .word 0x1e36804 + .word 0x2ff + .word 0x1ef57f2 + .word 0x12007ec + .word 0x816d03bc + .word 0x2ff + .word 0x1f057f5 + .word 0x1c0631c + .word 0x1f157f8 + .word 0x8307c0 + .word 0x80000030 + .word 0x1ef793c + .word 0x3e0ebdd + .word 0x2ff + .word 0x3e063df + .word 0x1f0813c + .word 0x3e0d3e0 + .word 0x1f1893c + .word 0x817303bc + .word 0x2ff + .word 0x80000030 + .word 0x1c06b5c + .word 0x3e0dbe3 + .word 0x2ff + .word 0x805f1b3c + .word 0x2ff + .word 0x3e07bde + .word 0x2ff + .word 0x3e083e1 + .word 0x2ff + .word 0x3e08be4 + .word 0x2ff + .word 0x3e06be2 + .word 0x2ff + .word 0x3e0fbc1 + .word 0x1c09b9c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f00e2 + .word 0x2ff + .word 0x3e073e5 + .word 0x2ff + .word 0x50002803 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f00b5 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x90503ea + .word 0x2ff + .word 0x88603ea + .word 0x2ff + .word 0x84703ea + .word 0x2ff + .word 0x82803ea + .word 0x2ff + .word 0x90903eb + .word 0x2ff + .word 0x88a03eb + .word 0x2ff + .word 0x84b03eb + .word 0x2ff + .word 0x82c03eb + .word 0x2ff + .word 0x1ec03ec + .word 0x2ff + .word 0x1ed03ed + .word 0x2ff + .word 0x1ee03ee + .word 0x2ff + .word 0x1ef03ef + .word 0x2ff + .word 0x400007c1 + .word 0x2ff + .word 0x1f003f0 + .word 0x2ff + .word 0x52044725 + .word 0x2ff + .word 0x3e0bbe6 + .word 0x217383 + .word 0x3e0c3e7 + .word 0x1e7d5ea + .word 0x3e0cbe8 + .word 0x1e7de2a + .word 0xb0103e9 + .word 0x1e7e66a + .word 0xa8203e9 + .word 0x2ff + .word 0xa4303e9 + .word 0x1d7b9ff + .word 0xa2403e9 + .word 0x1d8c1ff + .word 0x811f2bfd + .word 0x1d9c9ff + .word 0x1004003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x38020000 + .word 0x2ff + .word 0x38030000 + .word 0x2ff + .word 0x80040874 + .word 0x1dad1ff + .word 0x80020874 + .word 0x1dbd9ff + .word 0x80030874 + .word 0x1dce1ff + .word 0x809f33fd + .word 0x2ff + .word 0x5000080a + .word 0x2ff + .word 0x805f3bfd + .word 0x2ff + .word 0x818c0bbc + .word 0x2ff + .word 0x1f703e6 + .word 0x2ff + .word 0x1f803e7 + .word 0x2ff + .word 0x1f903e8 + .word 0x2ff + .word 0x90103e9 + .word 0x2ff + .word 0x88203e9 + .word 0x2ff + .word 0x84303e9 + .word 0x2ff + .word 0x4000070b + .word 0x2ff + .word 0x82403e9 + .word 0x2ff + .word 0x803f43fd + .word 0x2ff + .word 0x811e4bfd + .word 0x2ff + .word 0x809e53fd + .word 0x2ff + .word 0x805e5bfd + .word 0x2ff + .word 0x803e63fd + .word 0x2ff + .word 0x3e063ec + .word 0x2ff + .word 0x1ec57f1 + .word 0x2ff + .word 0x3e06bed + .word 0x2ff + .word 0x1ed57f4 + .word 0x2ff + .word 0x3e073ee + .word 0x2ff + .word 0x816c03bc + .word 0x2ff + .word 0x3e0fbea + .word 0x2ff + .word 0x3e0f3eb + .word 0x2ff + .word 0x3e07bef + .word 0x2ff + .word 0x3e083f0 + .word 0x2ff + .word 0x1e36804 + .word 0x2ff + .word 0x1ef57f2 + .word 0x12007ec + .word 0x816d03bc + .word 0x2ff + .word 0x1f057f5 + .word 0x1c0631c + .word 0x1f157f8 + .word 0x8307c0 + .word 0x80000030 + .word 0x1ef793c + .word 0x3e0d3dd + .word 0x2ff + .word 0x3e063df + .word 0x1f0813c + .word 0x3e0dbe0 + .word 0x1f1893c + .word 0x817403bc + .word 0x2ff + .word 0x80000030 + .word 0x1c06b5c + .word 0x3e0e3e3 + .word 0x2ff + .word 0x805f1b3c + .word 0x2ff + .word 0x3e07bde + .word 0x2ff + .word 0x3e083e1 + .word 0x2ff + .word 0x3e08be4 + .word 0x2ff + .word 0x3e06be2 + .word 0x2ff + .word 0x3e0fbc1 + .word 0x1c0a39c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f008f + .word 0x2ff + .word 0x3e073e5 + .word 0x2ff + .word 0x50002803 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0062 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x90503ea + .word 0x2ff + .word 0x88603ea + .word 0x2ff + .word 0x84703ea + .word 0x2ff + .word 0x82803ea + .word 0x2ff + .word 0x90903eb + .word 0x2ff + .word 0x88a03eb + .word 0x2ff + .word 0x84b03eb + .word 0x2ff + .word 0x82c03eb + .word 0x2ff + .word 0x1ec03ec + .word 0x2ff + .word 0x1ed03ed + .word 0x2ff + .word 0x1ee03ee + .word 0x2ff + .word 0x1ef03ef + .word 0x2ff + .word 0x400007c1 + .word 0x2ff + .word 0x1f003f0 + .word 0x2ff + .word 0x52054ee0 + .word 0x2ff + .word 0x3e0bbe6 + .word 0x217bc3 + .word 0x3e0c3e7 + .word 0x1e7ddea + .word 0x3e0cbe8 + .word 0x1e7e62a + .word 0xb0103e9 + .word 0x1e7ee6a + .word 0xa8203e9 + .word 0x2ff + .word 0xa4303e9 + .word 0x1d7b9ff + .word 0xa2403e9 + .word 0x1d8c1ff + .word 0x811f2bfd + .word 0x1d9c9ff + .word 0x1004003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x38020000 + .word 0x2ff + .word 0x38030000 + .word 0x2ff + .word 0x80040874 + .word 0x1dbd9ff + .word 0x80020874 + .word 0x1dce1ff + .word 0x80030874 + .word 0x1dde9ff + .word 0x809f33fd + .word 0x2ff + .word 0x5000080a + .word 0x2ff + .word 0x805f3bfd + .word 0x2ff + .word 0x818d0bbc + .word 0x2ff + .word 0x1f703e6 + .word 0x2ff + .word 0x1f803e7 + .word 0x2ff + .word 0x1f903e8 + .word 0x2ff + .word 0x90103e9 + .word 0x2ff + .word 0x88203e9 + .word 0x2ff + .word 0x84303e9 + .word 0x2ff + .word 0x400006c6 + .word 0x2ff + .word 0x82403e9 + .word 0x2ff + .word 0x803f43fd + .word 0x2ff + .word 0x811e4bfd + .word 0x2ff + .word 0x809e53fd + .word 0x2ff + .word 0x805e5bfd + .word 0x2ff + .word 0x803e63fd + .word 0x2ff + .word 0x3e063ec + .word 0x2ff + .word 0x1ec57f1 + .word 0x2ff + .word 0x3e06bed + .word 0x2ff + .word 0x1ed57f4 + .word 0x2ff + .word 0x3e073ee + .word 0x2ff + .word 0x816c03bc + .word 0x2ff + .word 0x3e0fbea + .word 0x2ff + .word 0x3e0f3eb + .word 0x2ff + .word 0x3e07bef + .word 0x2ff + .word 0x3e083f0 + .word 0x2ff + .word 0x1e36804 + .word 0x2ff + .word 0x1ef57f2 + .word 0x12007ec + .word 0x816d03bc + .word 0x2ff + .word 0x1f057f5 + .word 0x1c0631c + .word 0x1f157f8 + .word 0x8307c0 + .word 0x80000030 + .word 0x1ef793c + .word 0x3e0dbdd + .word 0x2ff + .word 0x3e063df + .word 0x1f0813c + .word 0x3e0e3e0 + .word 0x1f1893c + .word 0x817503bc + .word 0x2ff + .word 0x80000030 + .word 0x1c06b5c + .word 0x3e0ebe3 + .word 0x2ff + .word 0x805f1b3c + .word 0x2ff + .word 0x3e07bde + .word 0x2ff + .word 0x3e083e1 + .word 0x2ff + .word 0x3e08be4 + .word 0x2ff + .word 0x3e06be2 + .word 0x2ff + .word 0x3e0fbc1 + .word 0x1c0ab9c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f003c + .word 0x2ff + .word 0x3e073e5 + .word 0x2ff + .word 0x50002803 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f000f + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x90503ea + .word 0x2ff + .word 0x88603ea + .word 0x2ff + .word 0x84703ea + .word 0x2ff + .word 0x82803ea + .word 0x2ff + .word 0x90903eb + .word 0x2ff + .word 0x88a03eb + .word 0x2ff + .word 0x84b03eb + .word 0x2ff + .word 0x82c03eb + .word 0x2ff + .word 0x1ec03ec + .word 0x2ff + .word 0x1ed03ed + .word 0x2ff + .word 0x1ee03ee + .word 0x2ff + .word 0x1ef03ef + .word 0x2ff + .word 0x400007c1 + .word 0x2ff + .word 0x1f003f0 + .word 0x2ff + .word 0x8216808 + .word 0x2ff + .word 0x88203eb + .word 0x2ff + .word 0x800369f2 + .word 0x2ff + .word 0x5800080d + .word 0x2ff + .word 0x824038a + .word 0x2ff + .word 0x80021472 + .word 0x2ff + .word 0x800410b1 + .word 0x2ff + .word 0x8241805 + .word 0x2ff + .word 0x8211806 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80041131 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x58002003 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x5a000ff7 + .word 0x2ff + .word 0x80031972 + .word 0x2ff + .word 0x100103b9 + .word 0x2ff + .word 0x1ec1800 + .word 0x2ff + .word 0x1ed1801 + .word 0x2ff + .word 0x1ee1802 + .word 0x2ff + .word 0x1ef1803 + .word 0x2ff + .word 0x3e11000 + .word 0x2ff + .word 0x3e16001 + .word 0x2ff + .word 0x3e16802 + .word 0x2ff + .word 0x3e17003 + .word 0x2ff + .word 0x3e17804 + .word 0x2ff + .word 0x1ec1804 + .word 0x2ff + .word 0x1ed6805 + .word 0x2ff + .word 0x1ee6806 + .word 0x2ff + .word 0x3e16005 + .word 0x2ff + .word 0x3e16806 + .word 0x2ff + .word 0x3e17007 + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x1ec0389 + .word 0x2ff + .word 0x100103f3 + .word 0x2ff + .word 0x13e207ff + .word 0x2ff + .word 0x3e11000 + .word 0x2ff + .word 0x81020bff + .word 0x2ff + .word 0x3e16001 + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x3e0038b + .word 0x2ff + .word 0x3e00392 + .word 0x2ff + .word 0x3e00399 + .word 0x2ff + .word 0x3e003a0 + .word 0x2ff + .word 0x3e003a7 + .word 0x2ff + .word 0x3e003ae + .word 0x2ff + .word 0x1001040f + .word 0x2ff + .word 0xa41038b + .word 0x2ff + .word 0x10010411 + .word 0x2ff + .word 0xa410392 + .word 0x2ff + .word 0x10010413 + .word 0x2ff + .word 0xa410399 + .word 0x2ff + .word 0x10010415 + .word 0x2ff + .word 0xa4103a0 + .word 0x2ff + .word 0x10010417 + .word 0x2ff + .word 0xa4103a7 + .word 0x2ff + .word 0x10010419 + .word 0x2ff + .word 0xa4103ae + .word 0x2ff + .word 0x100303c2 + .word 0x2ff + .word 0x100403c1 + .word 0x2ff + .word 0x811f7bfd + .word 0x2ff + .word 0x80050032 + .word 0x2ff + .word 0x420f0007 + .word 0x2ff + .word 0x100703dd + .word 0x2ff + .word 0x420f0005 + .word 0x2ff + .word 0x100703e0 + .word 0x2ff + .word 0x420f0003 + .word 0x2ff + .word 0x100703e3 + .word 0x2ff + .word 0x4000004f + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1009038b + .word 0x2ff + .word 0x800a0032 + .word 0x2ff + .word 0x12014bb5 + .word 0x2ff + .word 0x80884bfe + .word 0x2ff + .word 0x5e00082f + .word 0x2ff + .word 0x80464bfe + .word 0x2ff + .word 0x1f83800 + .word 0x2ff + .word 0x1f74000 + .word 0x2ff + .word 0x5200400b + .word 0x2ff + .word 0x80874bff + .word 0x2ff + .word 0x4a0b3000 + .word 0x2ff + .word 0x81074bff + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x2c020002 + .word 0x2ff + .word 0x52001035 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400007ef + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x4a0b3000 + .word 0x2ff + .word 0x1ef4001 + .word 0x2ff + .word 0x1f03801 + .word 0x2ff + .word 0x1ec4002 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x2c020002 + .word 0x3ff7c7 + .word 0x5200080c + .word 0x2ff + .word 0x1ed3802 + .word 0x2ff + .word 0x52001003 + .word 0x2ff + .word 0x81fff3bc + .word 0x2ff + .word 0x400007e3 + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x420b006e + .word 0x2ff + .word 0x80074872 + .word 0x2ff + .word 0x3e9c801 + .word 0x2ff + .word 0x3e98802 + .word 0x2ff + .word 0x3e97003 + .word 0x2ff + .word 0x400007dc + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x5200101e + .word 0x2ff + .word 0x81fff3bc + .word 0x2ff + .word 0x420b0065 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e9c804 + .word 0x2ff + .word 0x3e98805 + .word 0x2ff + .word 0x3e97006 + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0xb0953b5 + .word 0x2ff + .word 0xa8753b5 + .word 0x2ff + .word 0x800a5072 + .word 0x2ff + .word 0x400007cf + .word 0x2ff + .word 0x80074f72 + .word 0x2ff + .word 0x1f73800 + .word 0x2ff + .word 0x1ef3801 + .word 0x2ff + .word 0x1ec3802 + .word 0x2ff + .word 0x80052872 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81f703bc + .word 0x2ff + .word 0x80000030 + .word 0x1ef797c + .word 0x80000030 + .word 0x1e6bdea + .word 0x800318f2 + .word 0x2ff + .word 0x800003bf + .word 0x2ff + .word 0x3e37ffe + .word 0x1c0bddc + .word 0x80000030 + .word 0x1c0631c + .word 0x80000030 + .word 0x1e4bde8 + .word 0x80000030 + .word 0x21bdd1 + .word 0x80000030 + .word 0x21bdd6 + .word 0x80000030 + .word 0x1f7b97d + .word 0x3e367fd + .word 0x2ff + .word 0x3e3bfff + .word 0x2ff + .word 0x5c005005 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x90953b4 + .word 0x2ff + .word 0x88753b4 + .word 0x2ff + .word 0x400007b7 + .word 0x2ff + .word 0x800a57f2 + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1009038b + .word 0x2ff + .word 0x81084bfe + .word 0x2ff + .word 0x80874bfe + .word 0x2ff + .word 0x80464bfe + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x50004022 + .word 0x2ff + .word 0x1f73800 + .word 0x2ff + .word 0x50074020 + .word 0x2ff + .word 0x1f84000 + .word 0x2ff + .word 0x4a0b3000 + .word 0x2ff + .word 0x1ef3801 + .word 0x2ff + .word 0x1f04001 + .word 0x2ff + .word 0x1ec3802 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x2c020002 + .word 0x3ff7c7 + .word 0x50020818 + .word 0x2ff + .word 0x1ed4002 + .word 0x2ff + .word 0x5000080c + .word 0x2ff + .word 0x81fff3bc + .word 0x2ff + .word 0x420b002d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e9c804 + .word 0x2ff + .word 0x3e98805 + .word 0x2ff + .word 0x3e97006 + .word 0x2ff + .word 0x80074932 + .word 0x2ff + .word 0x80004b35 + .word 0x2ff + .word 0x420f0798 + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x4000000b + .word 0x2ff + .word 0x80006275 + .word 0x2ff + .word 0x420b0022 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e9c801 + .word 0x2ff + .word 0x3e98802 + .word 0x2ff + .word 0x3e97003 + .word 0x2ff + .word 0x80074872 + .word 0x2ff + .word 0x80004b35 + .word 0x2ff + .word 0x420f078d + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x80006275 + .word 0x2ff + .word 0x12014bae + .word 0x2ff + .word 0x81004bff + .word 0x2ff + .word 0x80804bff + .word 0x2ff + .word 0x58000fd5 + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x50002804 + .word 0x2ff + .word 0x800ffbfc + .word 0x2ff + .word 0x11052800 + .word 0x2ff + .word 0x11052800 + .word 0x2ff + .word 0x810523ff + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x48005800 + .word 0x37bf80 + .word 0x80000030 + .word 0x38c7c0 + .word 0x48005800 + .word 0x37bf84 + .word 0x80000030 + .word 0x38c7c4 + .word 0x48005800 + .word 0x37bf81 + .word 0x80000030 + .word 0x38c7c1 + .word 0x48005800 + .word 0x37bf85 + .word 0x80000030 + .word 0x38c7c5 + .word 0x48005800 + .word 0x37bf82 + .word 0x80000030 + .word 0x38c7c2 + .word 0x48005800 + .word 0x37bf86 + .word 0x80000030 + .word 0x38c7c6 + .word 0x80000030 + .word 0x1f7c66c + .word 0x80000030 + .word 0x1ef846c + .word 0x80000030 + .word 0x1ec6bac + .word 0x800003bf + .word 0x1e0ce5c + .word 0x80000030 + .word 0x1e08c5c + .word 0x80000030 + .word 0x1e0739c + .word 0x80000030 + .word 0x1f9be68 + .word 0x48005800 + .word 0x1f17c68 + .word 0x80000030 + .word 0x1ee63a8 + .word 0x800e69f2 + .word 0x2ff + .word 0x1e36804 + .word 0x2ff + .word 0x8226806 + .word 0x2ff + .word 0x1f56805 + .word 0x2ff + .word 0x1f66806 + .word 0x2ff + .word 0x802373fe + .word 0x2ff + .word 0x8247001 + .word 0x2ff + .word 0x81f0737c + .word 0x2ff + .word 0x81f1737c + .word 0x2ff + .word 0x81f2737c + .word 0x2ff + .word 0x81f3737c + .word 0x2ff + .word 0x81f4737c + .word 0x2ff + .word 0x800c19b0 + .word 0x2ff + .word 0x81e6137d + .word 0x2ff + .word 0x81e6837d + .word 0x2ff + .word 0x81e68b7d + .word 0x2ff + .word 0x81e6937d + .word 0x2ff + .word 0x81e69b7d + .word 0x2ff + .word 0x81e6a37d + .word 0x2ff + .word 0x81e6ab7d + .word 0x2ff + .word 0x81e6b37d + .word 0x2ff + .word 0x81e61b7d + .word 0x2ff + .word 0x5e0027ee + .word 0x2ff + .word 0xb0437ff + .word 0x2ff + .word 0x800260b0 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x800016fc + .word 0x2ff + .word 0x1201622e + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x58000802 + .word 0x2ff + .word 0x100c6117 + .word 0x2ff + .word 0x800c0032 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff \ No newline at end of file diff --git a/test/decompiler/vu_reference/merc-result.txt b/test/decompiler/vu_reference/merc-result.txt new file mode 100644 index 0000000000..9cb75a5989 --- /dev/null +++ b/test/decompiler/vu_reference/merc-result.txt @@ -0,0 +1,2198 @@ + 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 + mr32.xyzw vf01, vf01 | nop + move.y vf25, vf26 | nop + move.zw vf25, vf27 | nop + sq.xyzw vf25, 3(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 + iaddi vi07, vi00, 0x1 | nop + b L4 | nop + isw.w vi07, 1(vi00) | nop + iaddi vi07, vi00, 0x0 | nop +L4: + 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 + b L5 | nop + sq.xyzw vf26, 5(vi00) | nop + iaddi vi07, vi00, 0x1 | nop + b L5 | nop + isw.w vi07, 1(vi00) | nop + iaddi vi07, vi00, 0x0 | nop +L5: + lq.xyzw vf28, 139(vi00) | minix.xyzw vf15, vf00, vf00 + xtop vi15 | nop + iaddiu vi12, vi15, 0x8c | nop + ibeq vi00, vi15, L6 | nop + ilwr.w vi03, vi12 | maxz.xy vf18, vf00, vf28 + nop | maxw.xy vf18, vf00, vf28 +L6: + ilw.w vi10, 133(vi00) | nop + iaddiu vi15, vi15, 0x173 | nop + ilw.y vi02, 2(vi12) | nop + lq.xyzw vf14, 0(vi00) | nop + ibeq vi00, vi10, L7 | nop + iadd vi03, vi03, vi12 | nop + mr32.xyzw vf27, vf14 | nop + ilw.w vi11, 134(vi00) | nop + iaddiu vi13, vi00, 0x42 | nop + mr32.y vf14, vf27 | nop +L7: + 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 + ibeq vi00, vi02, L9 | miniy.w vf18, vf00, vf27 + ilwr.z vi01, vi12 | minix.w vf17, vf00, vf27 + ibne vi00, vi09, L8 | nop + sq.yzw vf14, 0(vi15) | nop + iaddiu vi02, vi02, 0x4000 | nop + iaddiu vi02, vi02, 0x4000 | nop + iswr.x vi02, vi15 | nop + b L12 | nop + nop | nop +L8: + iswr.x vi02, vi15 | nop +L9: + lq.xyzw vf13, 1(vi00) | nop +L10: + 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 + ibeq vi00, vi10, L11 | nop + sqi.xyzw vf12, vi02 | nop + mtir vi14, vf12.z | nop + isw.x vi10, -1(vi02) | nop + ibeq vi14, vi13, L11 | nop + isw.y vi11, -1(vi02) | nop + ilw.x vi13, -4(vi02) | nop + isubiu vi14, vi00, 0x1d | nop + iand vi13, vi13, vi14 | nop + iaddi vi13, vi13, 0xc | nop + isw.x vi13, -4(vi02) | nop + iaddiu vi13, vi00, 0x42 | nop + isw.z vi13, -1(vi02) | nop +L11: + ibgtz vi08, L10 | nop + sq.xyzw vf14, 0(vi02) | nop +L12: + 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, L14 | mul.xyzw vf15, vf16, vf15 + iaddi vi13, vi12, 0x3 | mul.xyzw vf16, vf16, vf00 +L13: + 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, L14 | 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, L14 | 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, L14 | 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, L13 | mula.xyzw ACC, vf15, vf12 + ilwr.z vi09, vi13 | maddz.xyzw vf13, vf16, vf12 +L14: + ilw.x vi02, 3(vi12) | nop + ibeq vi00, vi04, L26 | 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 + ior vi15, vi07, vi00 | 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 + ibeq vi00, vi15, L15 | nop + iadd vi03, vi03, vi12 | nop + nop | miniw.w vf08, vf08, vf01 +L15: + 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 + ibne vi00, vi15, L82 | mulaw.xyzw ACC, vf25, vf09 + ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 + erleng.xyz P, vf12 | nop + nop | 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, L17 | madday.xyzw ACC, vf02, vf11 + nop | maddz.xyzw vf11, vf03, vf11 + ibne vi06, vi03, L31 | nop + nop | nop + b L67 | nop + nop | nop +L16: + lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 + 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 vi08, vf10.x | itof0.xyzw vf23, vf23 + ilw.y vi09, -9(vi01) | maxx.xyzw vf11, vf11, vf00 + 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, L18 | madday.xyzw ACC, vf05, vf11 + lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L18: + 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, L19 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L19: + 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 + erleng.xyz P, vf13 | ftoi0.xyzw vf11, vf11 + ibne vi04, vi03, L20 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 + ibne vi06, vi03, L36 | nop + ilw.y vi09, -6(vi01) | nop + ibne vi07, vi03, L72 | nop + nop | nop + b L1 | nop + nop | nop +L20: + lqi.xyzw vf08, vi01 | mulax.xyzw ACC, vf01, vf12 + 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 + 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, L21 | madday.xyzw ACC, vf05, vf12 + lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L21: + 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, L22 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L22: + 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 + erleng.xyz P, vf11 | ftoi0.xyzw vf12, vf12 + ibne vi04, vi03, L23 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + ibne vi06, vi03, L41 | nop + ilw.y vi09, -6(vi01) | nop + ibne vi07, vi03, L77 | nop + nop | nop + b L2 | nop + nop | nop +L23: + lqi.xyzw vf09, vi01 | mulax.xyzw ACC, vf01, vf13 + 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 + 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, L24 | madday.xyzw ACC, vf05, vf13 + lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L24: + 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, L25 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L25: + 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 + erleng.xyz P, vf12 | ftoi0.xyzw vf13, vf13 + ibne vi04, vi03, L16 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + ibne vi06, vi03, L30 | nop + ilw.y vi09, -6(vi01) | nop + ibne vi07, vi03, L66 | nop + nop | nop + b L3 | nop + nop | nop +L26: + ibeq vi00, vi06, L61 | 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 + iaddiu vi08, vi00, 0x243 | nop + erleng.xyz P, vf11 | nop + ior vi15, vi07, vi00 | 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 + ibeq vi00, vi15, L27 | nop + mtir vi14, vf09.y | nop + iaddiu vi08, vi00, 0x539 | miniw.w vf08, vf08, vf01 +L27: + 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, L28 | nop + nop | mul.xyz vf08, vf08, Q + mtir vi11, vf12.x | mul.xyzw vf14, vf14, Q + mtir vi14, vf12.y | nop + b L29 | nop + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L28: + 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, 0x1a1 | maddw.xyzw vf31, vf31, vf24 + ibeq vi00, vi15, L29 | nop + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 + iaddiu vi08, vi00, 0x48e | nop +L29: + 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 + ibne vi00, vi15, L93 | mulaw.xyzw ACC, vf25, vf09 + ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 + erleng.xyz P, vf12 | nop + ibeq vi06, vi03, L65 | 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 +L30: + lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 + sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 + sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 +L31: + 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 + 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, L32 | madday.xyzw ACC, vf05, vf11 + iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L32: + ibne vi05, vi12, L33 | 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 L34 | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 +L33: + 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 L49 | mulax.xyzw ACC, vf20, vf24 + lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 +L34: + ibgez vi09, L35 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L35: + 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 + erleng.xyz P, vf13 | ftoi0.xyzw vf11, vf11 + ibne vi06, vi03, L36 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 + ibne vi07, vi03, L72 | nop + nop | nop + b L1 | nop + nop | nop +L36: + lqi.xyzw vf08, vi01 | mulax.xyzw ACC, vf01, vf12 + 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 + 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, L37 | madday.xyzw ACC, vf05, vf12 + iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L37: + ibne vi05, vi10, L38 | 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 L39 | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 +L38: + 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 L54 | mulax.xyzw ACC, vf20, vf24 + lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 +L39: + ibgez vi09, L40 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L40: + 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 + erleng.xyz P, vf11 | ftoi0.xyzw vf12, vf12 + ibne vi06, vi03, L41 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + ibne vi07, vi03, L77 | nop + nop | nop + b L2 | nop + nop | nop +L41: + lqi.xyzw vf09, vi01 | mulax.xyzw ACC, vf01, vf13 + 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 + 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, L42 | madday.xyzw ACC, vf05, vf13 + iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L42: + ibne vi05, vi11, L43 | 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 L44 | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L43: + 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 L59 | mulax.xyzw ACC, vf20, vf24 + lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 +L44: + ibgez vi09, L45 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L45: + 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 + erleng.xyz P, vf12 | ftoi0.xyzw vf13, vf13 + ibne vi06, vi03, L30 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + ibne vi07, vi03, L66 | nop + nop | nop + b L3 | nop + nop | nop +L46: + lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 + 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 + 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, L47 | madday.xyzw ACC, vf05, vf11 + iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L47: + ibne vi05, vi12, L48 | 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 L49 | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 +L48: + 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 L34 | maddw.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L49: + ibgez vi09, L50 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L50: + 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 + erleng.xyz P, vf13 | ftoi0.xyzw vf11, vf11 + ibne vi06, vi03, L51 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 + ibne vi07, vi03, L72 | nop + nop | nop + b L1 | nop + nop | nop +L51: + lqi.xyzw vf08, vi01 | mulax.xyzw ACC, vf01, vf12 + 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 + 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, L52 | madday.xyzw ACC, vf05, vf12 + iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L52: + ibne vi05, vi10, L53 | 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 L54 | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 +L53: + 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 L39 | maddw.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L54: + ibgez vi09, L55 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L55: + 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 + erleng.xyz P, vf11 | ftoi0.xyzw vf12, vf12 + ibne vi06, vi03, L56 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + ibne vi07, vi03, L77 | nop + nop | nop + b L2 | nop + nop | nop +L56: + lqi.xyzw vf09, vi01 | mulax.xyzw ACC, vf01, vf13 + 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 + 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, L57 | madday.xyzw ACC, vf05, vf13 + iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L57: + ibne vi05, vi11, L58 | 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 L59 | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L58: + 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 L44 | maddw.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L59: + ibgez vi09, L60 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L60: + 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 + erleng.xyz P, vf12 | ftoi0.xyzw vf13, vf13 + ibne vi06, vi03, L46 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + ibne vi07, vi03, L72 | nop + nop | nop + b L3 | nop + nop | nop +L61: + 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 + ior vi15, vi07, vi00 | 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 + ibeq vi00, vi15, L62 | nop + mtir vi14, vf09.y | nop + nop | miniw.w vf08, vf08, vf01 +L62: + 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, L63 | 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 L64 | nop + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L63: + 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 +L64: + 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 + ibne vi00, vi15, L125 | mulaw.xyzw ACC, vf25, vf09 + ilw.y vi09, -6(vi01) | mulw.xyzw vf11, vf11, vf20 + erleng.xyz P, vf12 | nop + nop | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 +L65: + lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 + b L67 | madday.xyzw ACC, vf02, vf11 + nop | maddz.xyzw vf11, vf03, vf11 +L66: + lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 + sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 + sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 +L67: + 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 + 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, L68 | madday.xyzw ACC, vf05, vf11 + iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L68: + ibne vi05, vi12, L69 | 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 L70 | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 +L69: + 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 +L70: + ibgez vi09, L71 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L71: + 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 + erleng.xyz P, vf13 | ftoi0.xyzw vf11, vf11 + ibeq vi07, vi03, L143 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 +L72: + lqi.xyzw vf08, vi01 | mulax.xyzw ACC, vf01, vf12 + 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 + 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, L73 | madday.xyzw ACC, vf05, vf12 + iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L73: + ibne vi05, vi10, L74 | 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 L75 | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 +L74: + 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 +L75: + ibgez vi09, L76 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L76: + 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 + erleng.xyz P, vf11 | ftoi0.xyzw vf12, vf12 + ibeq vi07, vi03, L153 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 +L77: + lqi.xyzw vf09, vi01 | mulax.xyzw ACC, vf01, vf13 + 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 + 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, L78 | madday.xyzw ACC, vf05, vf13 + iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L78: + ibne vi05, vi11, L79 | 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 L80 | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L79: + 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 +L80: + ibgez vi09, L81 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L81: + 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 + erleng.xyz P, vf12 | ftoi0.xyzw vf13, vf13 + ibne vi07, vi03, L66 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + b L163 | nop + nop | nop +L82: + erleng.xyz P, vf12 | maxi.xy vf08, vf08, I + 3072.0 | nop :i + nop | minii.xy vf08, vf08, I + nop | 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, L84 | madday.xyzw ACC, vf02, vf11 + nop | maddz.xyzw vf11, vf03, vf11 + ibne vi06, vi03, L95 | nop + nop | nop + b L128 | nop + nop | nop +L83: + 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 +L84: + 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 + nop | 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, L85 | madday.xyzw ACC, vf05, vf11 + lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L85: + 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, L86 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L86: + 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, L87 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 + ibne vi06, vi03, L100 | nop + ilw.y vi09, -6(vi01) | nop + ibne vi07, vi03, L133 | nop + nop | nop + b L143 | nop + nop | nop +L87: + 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 + nop | 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, L88 | madday.xyzw ACC, vf05, vf12 + lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L88: + 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, L89 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L89: + 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, L90 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + ibne vi06, vi03, L105 | nop + ilw.y vi09, -6(vi01) | nop + ibne vi07, vi03, L138 | nop + nop | nop + b L153 | nop + nop | nop +L90: + 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 + nop | 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, L91 | madday.xyzw ACC, vf05, vf13 + lq.xyzw vf31, 6(vi08) | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L91: + 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, L92 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L92: + 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, L83 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + ibne vi06, vi03, L94 | nop + ilw.y vi09, -6(vi01) | nop + ibne vi07, vi03, L127 | nop + nop | nop + b L163 | nop + nop | nop +L93: + erleng.xyz P, vf12 | maxi.xy vf08, vf08, I + 3072.0 | nop :i + nop | minii.xy vf08, vf08, I + ibeq vi06, vi03, L126 | 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 +L94: + 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 +L95: + 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 + nop | 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, L96 | madday.xyzw ACC, vf05, vf11 + iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L96: + ibne vi05, vi12, L97 | 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 L98 | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 +L97: + 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 L113 | mulax.xyzw ACC, vf20, vf24 + lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 +L98: + ibgez vi09, L99 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L99: + 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, L100 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 + ibne vi07, vi03, L133 | nop + nop | nop + b L143 | nop + nop | nop +L100: + 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 + nop | 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, L101 | madday.xyzw ACC, vf05, vf12 + iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L101: + ibne vi05, vi10, L102 | 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 L103 | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 +L102: + 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 L118 | mulax.xyzw ACC, vf20, vf24 + lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 +L103: + ibgez vi09, L104 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L104: + 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, L105 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + ibne vi07, vi03, L138 | nop + nop | nop + b L153 | nop + nop | nop +L105: + 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 + nop | 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, L106 | madday.xyzw ACC, vf05, vf13 + iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L106: + ibne vi05, vi11, L107 | 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 L108 | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L107: + 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 L123 | mulax.xyzw ACC, vf20, vf24 + lqi.xyzw vf23, vi03 | maddy.xyzw vf31, vf31, vf24 +L108: + ibgez vi09, L109 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L109: + 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, L94 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + ibne vi07, vi03, L127 | nop + nop | nop + b L163 | nop + nop | nop +L110: + 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 + nop | 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, L111 | madday.xyzw ACC, vf05, vf11 + iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L111: + ibne vi05, vi12, L112 | 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 L113 | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 +L112: + 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 L98 | maddw.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L113: + ibgez vi09, L114 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L114: + 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, L115 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 + ibne vi07, vi03, L133 | nop + nop | nop + b L143 | nop + nop | nop +L115: + 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 + nop | 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, L116 | madday.xyzw ACC, vf05, vf12 + iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L116: + ibne vi05, vi10, L117 | 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 L118 | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 +L117: + 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 L103 | maddw.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L118: + ibgez vi09, L119 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L119: + 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, L120 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 + ibne vi07, vi03, L138 | nop + nop | nop + b L153 | nop + nop | nop +L120: + 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 + nop | 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, L121 | madday.xyzw ACC, vf05, vf13 + iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L121: + ibne vi05, vi11, L122 | 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 L123 | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L122: + 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 L108 | maddw.xyzw vf31, vf31, vf24 + lqi.xyzw vf23, vi03 | itof0.xyzw vf24, vf23 +L123: + ibgez vi09, L124 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L124: + 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, L110 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + ibne vi07, vi03, L133 | nop + nop | nop + b L163 | nop + nop | nop +L125: + erleng.xyz P, vf12 | maxi.xy vf08, vf08, I + 3072.0 | nop :i + nop | minii.xy vf08, vf08, I + nop | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 +L126: + lqi.xyzw vf10, vi01 | mulax.xyzw ACC, vf01, vf11 + b L128 | madday.xyzw ACC, vf02, vf11 + nop | maddz.xyzw vf11, vf03, vf11 +L127: + 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 +L128: + 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 + nop | 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, L129 | madday.xyzw ACC, vf05, vf11 + iand vi15, vi15, vi05 | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L129: + ibne vi05, vi12, L130 | 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 L131 | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 +L130: + 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 +L131: + ibgez vi09, L132 | mulaz.xyzw ACC, vf29, vf10 + sq.xyzw vf21, 2(vi10) | maddaz.xyzw ACC, vf30, vf13 + nop | ftoi4.xyzw vf21, vf08 +L132: + 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, L143 | maddaw.xyzw ACC, vf26, vf13 + mr32.z vf16, vf00 | maddw.xyzw vf10, vf27, vf16 +L133: + 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 + nop | 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, L134 | madday.xyzw ACC, vf05, vf12 + iand vi13, vi13, vi05 | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L134: + ibne vi05, vi10, L135 | 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 L136 | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 +L135: + 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 +L136: + ibgez vi09, L137 | mulaz.xyzw ACC, vf29, vf08 + sq.xyzw vf21, 2(vi11) | maddaz.xyzw ACC, vf30, vf11 + nop | ftoi4.xyzw vf21, vf09 +L137: + 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, L153 | maddaw.xyzw ACC, vf26, vf11 + mr32.z vf14, vf00 | maddw.xyzw vf08, vf27, vf14 +L138: + 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 + nop | 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, L139 | madday.xyzw ACC, vf05, vf13 + iand vi14, vi14, vi05 | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L139: + ibne vi05, vi11, L140 | 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 L141 | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 +L140: + 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 +L141: + ibgez vi09, L142 | mulaz.xyzw ACC, vf29, vf09 + sq.xyzw vf21, 2(vi12) | maddaz.xyzw ACC, vf30, vf12 + nop | ftoi4.xyzw vf21, vf10 +L142: + 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, L127 | maddaw.xyzw ACC, vf26, vf12 + mr32.z vf15, vf00 | maddw.xyzw vf09, vf27, vf15 + b L163 | nop + nop | nop +L143: + ilw.w vi08, 1(vi00) | nop + xtop vi02 | mulax.xyzw ACC, vf01, vf12 + sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 + sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 + iaddiu vi04, vi02, 0x8c | add.xyzw vf10, vf10, vf28 + ilwr.x vi05, vi04 | maxw.w vf09, vf09, vf02 + ilw.w vi06, 1(vi04) | itof0.xyzw vf23, vf23 + ibne vi00, vi08, L151 | nop + ilw.x vi07, 2(vi04) | maxx.xyzw vf12, vf12, vf00 +L144: + div Q, vf01.w, vf10.w | minix.xyzw vf25, vf00, vf00 + move.xyzw vf21, vf09 | minix.xyzw vf26, vf00, vf00 + iadd vi05, vi05, vi04 | nop + iaddiu vi04, vi02, 0x173 | mulax.xyzw ACC, vf04, vf12 + ibgtz vi09, L145 | madday.xyzw ACC, vf05, vf12 + iadd vi06, vi06, vi05 | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L145: + iadd vi07, vi07, vi06 | maddw.xyzw vf12, vf07, vf00 + ilw.x vi09, -6(vi01) | mul.xyz vf10, vf10, Q + iaddiu vi08, vi00, 0x1ba | mul.xyzw vf16, vf16, Q + isub vi08, vi08, vi02 | ftoi4.xyzw vf21, vf21 + iaddiu vi08, vi08, 0x173 | mul.xyzw vf12, vf12, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf10, vf10, vf22 + ibgez vi09, L146 | nop + sq.xyzw vf21, 2(vi11) | nop + nop | ftoi4.xyzw vf21, vf09 +L146: + 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 + mfir.x vf25, vi04 | ftoi0.xyzw vf12, vf12 + mfir.y vf25, vi04 | nop + mfir.x vf26, vi08 | nop + ilw.w vi02, 1(vi00) | nop + mfir.y vf26, vi04 | mulax.xyzw ACC, vf01, vf13 + sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 + sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 + nop | nop + ibne vi00, vi02, L152 | maxw.w vf10, vf10, vf02 + nop | itof0.xyzw vf23, vf23 +L147: + 8388608.0 | maxx.xyzw vf13, vf13, vf00 :i + 256.0 | maxi.xy vf27, vf00, I :i + move.xyzw vf21, vf10 | maxi.w vf27, vf00, I + nop | nop + nop | mulax.xyzw ACC, vf04, vf13 + ibgtz vi09, L148 | madday.xyzw ACC, vf05, vf13 + nop | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L148: + nop | maddw.xyzw vf13, vf07, vf00 + ilw.x vi09, -3(vi01) | itof0.xyzw vf25, vf25 + nop | itof0.xyzw vf26, vf26 + nop | ftoi4.xyzw vf21, vf21 + nop | mul.xyzw vf13, vf13, vf23 + ior vi02, vi05, vi00 | add.xyzw vf25, vf25, vf27 + ibgez vi09, L149 | add.xyzw vf26, vf26, vf27 + sq.xyzw vf21, 2(vi12) | nop + nop | ftoi4.xyzw vf21, vf10 +L149: + ibne vi06, vi05, L150 | nop + sq.xyzw vf16, 0(vi12) | miniy.xyzw vf13, vf13, vf17 + ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 +L150: + sq.xyzw vf16, 0(vi15) | nop + sq.xyzw vf21, 2(vi15) | nop + lqi.xyzw vf27, vi05 | nop + nop | ftoi0.xyzw vf13, vf13 + nop | nop + nop | nop + nop | itof0.xyzw vf27, vf27 + sq.xyzw vf13, 1(vi12) | nop + b L173 | nop + sq.xyzw vf13, 1(vi15) | nop +L151: + 3072.0 | miniw.w vf10, vf10, vf01 :i + b L144 | minii.xy vf09, vf09, I + nop | nop +L152: + 1024.0 | nop :i + 3072.0 | maxi.xy vf10, vf10, I :i + b L147 | minii.xy vf10, vf10, I + isw.w vi00, 1(vi00) | nop +L153: + ilw.w vi08, 1(vi00) | nop + xtop vi02 | mulax.xyzw ACC, vf01, vf13 + sq.xyzw vf12, 1(vi11) | madday.xyzw ACC, vf02, vf13 + sq.xyzw vf12, 1(vi14) | maddz.xyzw vf13, vf03, vf13 + iaddiu vi04, vi02, 0x8c | add.xyzw vf08, vf08, vf28 + ilwr.x vi05, vi04 | maxw.w vf10, vf10, vf02 + ilw.w vi06, 1(vi04) | itof0.xyzw vf23, vf23 + ibne vi00, vi08, L161 | nop + ilw.x vi07, 2(vi04) | maxx.xyzw vf13, vf13, vf00 +L154: + div Q, vf01.w, vf08.w | minix.xyzw vf25, vf00, vf00 + move.xyzw vf21, vf10 | minix.xyzw vf26, vf00, vf00 + iadd vi05, vi05, vi04 | nop + iaddiu vi04, vi02, 0x173 | mulax.xyzw ACC, vf04, vf13 + ibgtz vi09, L155 | madday.xyzw ACC, vf05, vf13 + iadd vi06, vi06, vi05 | maddaz.xyzw ACC, vf06, vf13 + nop | addx.w vf21, vf21, vf17 +L155: + iadd vi07, vi07, vi06 | maddw.xyzw vf13, vf07, vf00 + ilw.x vi09, -6(vi01) | mul.xyz vf08, vf08, Q + iaddiu vi08, vi00, 0x1ba | mul.xyzw vf14, vf14, Q + isub vi08, vi08, vi02 | ftoi4.xyzw vf21, vf21 + iaddiu vi08, vi08, 0x173 | mul.xyzw vf13, vf13, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf08, vf08, vf22 + ibgez vi09, L156 | nop + sq.xyzw vf21, 2(vi12) | nop + nop | ftoi4.xyzw vf21, vf10 +L156: + 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 + mfir.x vf25, vi04 | ftoi0.xyzw vf13, vf13 + mfir.y vf25, vi04 | nop + mfir.x vf26, vi08 | nop + ilw.w vi02, 1(vi00) | nop + mfir.y vf26, vi04 | mulax.xyzw ACC, vf01, vf11 + sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 + sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 + nop | nop + ibne vi00, vi02, L162 | maxw.w vf08, vf08, vf02 + nop | itof0.xyzw vf23, vf23 +L157: + 8388608.0 | maxx.xyzw vf11, vf11, vf00 :i + 256.0 | maxi.xy vf27, vf00, I :i + move.xyzw vf21, vf08 | maxi.w vf27, vf00, I + nop | nop + nop | mulax.xyzw ACC, vf04, vf11 + ibgtz vi09, L158 | madday.xyzw ACC, vf05, vf11 + nop | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L158: + nop | maddw.xyzw vf11, vf07, vf00 + ilw.x vi09, -3(vi01) | itof0.xyzw vf25, vf25 + nop | itof0.xyzw vf26, vf26 + nop | ftoi4.xyzw vf21, vf21 + nop | mul.xyzw vf11, vf11, vf23 + ior vi02, vi05, vi00 | add.xyzw vf25, vf25, vf27 + ibgez vi09, L159 | add.xyzw vf26, vf26, vf27 + sq.xyzw vf21, 2(vi10) | nop + nop | ftoi4.xyzw vf21, vf08 +L159: + ibne vi06, vi05, L160 | nop + sq.xyzw vf14, 0(vi10) | miniy.xyzw vf11, vf11, vf17 + ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 +L160: + sq.xyzw vf14, 0(vi13) | nop + sq.xyzw vf21, 2(vi13) | nop + lqi.xyzw vf27, vi05 | nop + nop | ftoi0.xyzw vf11, vf11 + nop | nop + nop | nop + nop | itof0.xyzw vf27, vf27 + sq.xyzw vf11, 1(vi10) | nop + b L173 | nop + sq.xyzw vf11, 1(vi13) | nop +L161: + 3072.0 | miniw.w vf08, vf08, vf01 :i + b L154 | minii.xy vf10, vf10, I + nop | nop +L162: + 1024.0 | nop :i + 3072.0 | maxi.xy vf08, vf08, I :i + b L157 | minii.xy vf08, vf08, I + isw.w vi00, 1(vi00) | nop +L163: + ilw.w vi08, 1(vi00) | nop + xtop vi02 | mulax.xyzw ACC, vf01, vf11 + sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf11 + sq.xyzw vf13, 1(vi15) | maddz.xyzw vf11, vf03, vf11 + iaddiu vi04, vi02, 0x8c | add.xyzw vf09, vf09, vf28 + ilwr.x vi05, vi04 | maxw.w vf08, vf08, vf02 + ilw.w vi06, 1(vi04) | itof0.xyzw vf23, vf23 + ibne vi00, vi08, L171 | nop + ilw.x vi07, 2(vi04) | maxx.xyzw vf11, vf11, vf00 +L164: + div Q, vf01.w, vf09.w | minix.xyzw vf25, vf00, vf00 + move.xyzw vf21, vf08 | minix.xyzw vf26, vf00, vf00 + iadd vi05, vi05, vi04 | nop + iaddiu vi04, vi02, 0x173 | mulax.xyzw ACC, vf04, vf11 + ibgtz vi09, L165 | madday.xyzw ACC, vf05, vf11 + iadd vi06, vi06, vi05 | maddaz.xyzw ACC, vf06, vf11 + nop | addx.w vf21, vf21, vf17 +L165: + iadd vi07, vi07, vi06 | maddw.xyzw vf11, vf07, vf00 + ilw.x vi09, -6(vi01) | mul.xyz vf09, vf09, Q + iaddiu vi08, vi00, 0x1ba | mul.xyzw vf15, vf15, Q + isub vi08, vi08, vi02 | ftoi4.xyzw vf21, vf21 + iaddiu vi08, vi08, 0x173 | mul.xyzw vf11, vf11, vf23 + lqi.xyzw vf23, vi03 | add.xyzw vf09, vf09, vf22 + ibgez vi09, L166 | nop + sq.xyzw vf21, 2(vi10) | nop + nop | ftoi4.xyzw vf21, vf08 +L166: + 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 + mfir.x vf25, vi04 | ftoi0.xyzw vf11, vf11 + mfir.y vf25, vi04 | nop + mfir.x vf26, vi08 | nop + ilw.w vi02, 1(vi00) | nop + mfir.y vf26, vi04 | mulax.xyzw ACC, vf01, vf12 + sq.xyzw vf11, 1(vi10) | madday.xyzw ACC, vf02, vf12 + sq.xyzw vf11, 1(vi13) | maddz.xyzw vf12, vf03, vf12 + nop | nop + ibne vi00, vi02, L172 | maxw.w vf09, vf09, vf02 + nop | itof0.xyzw vf23, vf23 +L167: + 8388608.0 | maxx.xyzw vf12, vf12, vf00 :i + 256.0 | maxi.xy vf27, vf00, I :i + move.xyzw vf21, vf09 | maxi.w vf27, vf00, I + nop | nop + nop | mulax.xyzw ACC, vf04, vf12 + ibgtz vi09, L168 | madday.xyzw ACC, vf05, vf12 + nop | maddaz.xyzw ACC, vf06, vf12 + nop | addx.w vf21, vf21, vf17 +L168: + nop | maddw.xyzw vf12, vf07, vf00 + ilw.x vi09, -3(vi01) | itof0.xyzw vf25, vf25 + nop | itof0.xyzw vf26, vf26 + nop | ftoi4.xyzw vf21, vf21 + nop | mul.xyzw vf12, vf12, vf23 + ior vi02, vi05, vi00 | add.xyzw vf25, vf25, vf27 + ibgez vi09, L169 | add.xyzw vf26, vf26, vf27 + sq.xyzw vf21, 2(vi11) | nop + nop | ftoi4.xyzw vf21, vf09 +L169: + ibne vi06, vi05, L170 | nop + sq.xyzw vf15, 0(vi11) | miniy.xyzw vf12, vf12, vf17 + ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 +L170: + sq.xyzw vf15, 0(vi14) | nop + sq.xyzw vf21, 2(vi14) | nop + lqi.xyzw vf27, vi05 | nop + nop | ftoi0.xyzw vf12, vf12 + nop | nop + nop | nop + nop | itof0.xyzw vf27, vf27 + sq.xyzw vf12, 1(vi11) | nop + b L173 | nop + sq.xyzw vf12, 1(vi14) | nop +L171: + 3072.0 | miniw.w vf09, vf09, vf01 :i + b L164 | minii.xy vf08, vf08, I + nop | nop +L172: + 1024.0 | nop :i + 3072.0 | maxi.xy vf09, vf09, I :i + b L167 | minii.xy vf09, vf09, I + isw.w vi00, 1(vi00) | nop +L173: + ibeq vi07, vi02, L179 | nop + ilw.w vi15, 132(vi00) | nop + ibne vi06, vi05, L174 | add.xyzw vf11, vf27, vf25 + nop | nop + ibne vi07, vi06, L174 | nop + ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 + nop | nop + nop | nop + mtir vi08, vf11.x | nop + mtir vi10, vf11.y | nop + nop | nop + nop | nop + lq.xyzw vf16, 2(vi08) | maxx.xyzw vf15, vf11, vf00 + lq.xyzw vf13, 0(vi08) | nop + b L178 | nop + nop | nop +L174: + lqi.xyzw vf27, vi05 | nop + nop | nop + mtir vi08, vf11.x | nop + mtir vi09, vf11.y | nop + nop | itof0.xyzw vf27, vf27 + nop | nop + lq.xyzw vf12, 2(vi08) | maxx.xyzw vf15, vf11, vf00 + lq.xyzw vf13, 0(vi08) | nop + ibne vi06, vi05, L175 | add.xyzw vf11, vf27, vf25 + nop | nop + ibeq vi07, vi06, L177 | nop + ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 +L175: + lqi.xyzw vf27, vi05 | itof15.w vf12, vf12 + lq.xyzw vf14, 1(vi08) | nop + mtir vi08, vf11.x | nop + mtir vi10, vf11.y | nop + sq.xyzw vf13, 0(vi09) | itof0.xyzw vf27, vf27 + sq.xyzw vf14, 1(vi09) | add.w vf12, vf12, vf15 + lq.xyzw vf16, 2(vi08) | maxx.xyzw vf15, vf11, vf00 + lq.xyzw vf13, 0(vi08) | nop + ibne vi06, vi05, L176 | add.xyzw vf11, vf27, vf25 + sq.xyzw vf12, 2(vi09) | nop + ibne vi07, vi06, L176 | nop + ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 + move.xyzw vf12, vf16 | nop + b L177 | nop + ior vi09, vi10, vi00 | nop +L176: + lqi.xyzw vf27, vi05 | itof15.w vf16, vf16 + lq.xyzw vf14, 1(vi08) | nop + mtir vi08, vf11.x | nop + mtir vi09, vf11.y | nop + sq.xyzw vf13, 0(vi10) | itof0.xyzw vf27, vf27 + sq.xyzw vf14, 1(vi10) | add.w vf16, vf16, vf15 + lq.xyzw vf12, 2(vi08) | maxx.xyzw vf15, vf11, vf00 + lq.xyzw vf13, 0(vi08) | nop + ibne vi06, vi05, L175 | add.xyzw vf11, vf27, vf25 + sq.xyzw vf16, 2(vi10) | nop + ibne vi07, vi06, L175 | nop + ior vi06, vi07, vi00 | max.xyzw vf25, vf26, vf26 +L177: + nop | itof15.w vf12, vf12 + lq.xyzw vf14, 1(vi08) | nop + mtir vi08, vf11.x | nop + mtir vi10, vf11.y | nop + sq.xyzw vf13, 0(vi09) | nop + sq.xyzw vf14, 1(vi09) | add.w vf12, vf12, vf15 + lq.xyzw vf16, 2(vi08) | maxx.xyzw vf15, vf11, vf00 + lq.xyzw vf13, 0(vi08) | nop + nop | nop + sq.xyzw vf12, 2(vi09) | nop +L178: + nop | itof15.w vf16, vf16 + lq.xyzw vf14, 1(vi08) | nop + nop | nop + nop | nop + sq.xyzw vf13, 0(vi10) | nop + sq.xyzw vf14, 1(vi10) | add.w vf16, vf16, vf15 + nop | nop + nop | nop + nop | nop + sq.xyzw vf16, 2(vi10) | nop +L179: + ibne vi00, vi15, L180 | nop + nop | nop + xgkick vi04 | nop + nop | nop :e + nop | nop +L180: + lq.xyzw vf20, 132(vi00) | nop + lq.xyzw vf21, 1(vi00) | nop + iaddi vi01, vi00, 0x1 | nop + isw.x vi01, -2(vi04) | nop + iaddiu vi02, vi00, 0x47 | maxw.x vf20, vf00, vf20 + isw.z vi02, -1(vi04) | nop + sq.yzw vf21, -2(vi04) | nop + isw.w vi00, 132(vi00) | nop + sq.x vf20, -1(vi04) | nop + iaddi vi04, vi04, -0x2 | nop + xgkick vi04 | nop + nop | nop :e + nop | nop diff --git a/test/decompiler/vu_reference/merc.txt b/test/decompiler/vu_reference/merc.txt new file mode 100644 index 0000000000..d119435598 --- /dev/null +++ b/test/decompiler/vu_reference/merc.txt @@ -0,0 +1,4042 @@ + .word 0x1e10007 + .word 0x2ff + .word 0x1f90003 + .word 0x2ff + .word 0x1fa0004 + .word 0x2ff + .word 0x1fb0005 + .word 0x2ff + .word 0x1fc0006 + .word 0x2ff + .word 0x81e10b3d + .word 0x2ff + .word 0x8099d33c + .word 0x2ff + .word 0x8079db3c + .word 0x2ff + .word 0x3e0c803 + .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 0x80070072 + .word 0x2ff + .word 0x40000002 + .word 0x2ff + .word 0xa270001 + .word 0x2ff + .word 0x80070032 + .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 0x40000005 + .word 0x2ff + .word 0x3e0d005 + .word 0x2ff + .word 0x80070072 + .word 0x2ff + .word 0x40000002 + .word 0x2ff + .word 0xa270001 + .word 0x2ff + .word 0x80070032 + .word 0x2ff + .word 0x1fc008b + .word 0x1e003d4 + .word 0x800f06bc + .word 0x2ff + .word 0x100c788c + .word 0x2ff + .word 0x50007802 + .word 0x2ff + .word 0x802363fe + .word 0x19c0492 + .word 0x80000030 + .word 0x19c0493 + .word 0x82a0085 + .word 0x2ff + .word 0x100f7973 + .word 0x2ff + .word 0x8826002 + .word 0x2ff + .word 0x1ee0000 + .word 0x2ff + .word 0x50005005 + .word 0x2ff + .word 0x800c18f0 + .word 0x2ff + .word 0x81fb733d + .word 0x2ff + .word 0x82b0086 + .word 0x2ff + .word 0x100d0042 + .word 0x2ff + .word 0x808edb3d + .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 0x50001009 + .word 0x3b0495 + .word 0x804163fe + .word 0x3b0454 + .word 0x52004806 + .word 0x2ff + .word 0x2ef7000 + .word 0x2ff + .word 0x11021000 + .word 0x2ff + .word 0x11021000 + .word 0x2ff + .word 0x81027bff + .word 0x2ff + .word 0x40000020 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81027bff + .word 0x2ff + .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 0x5000500c + .word 0x2ff + .word 0x81e2637d + .word 0x2ff + .word 0x804e63fc + .word 0x2ff + .word 0xb0a17ff + .word 0x2ff + .word 0x500e6808 + .word 0x2ff + .word 0xa8b17ff + .word 0x2ff + .word 0x90d17fc + .word 0x2ff + .word 0x120e001d + .word 0x2ff + .word 0x800e6b74 + .word 0x2ff + .word 0x800d6b32 + .word 0x2ff + .word 0xb0d17fc + .word 0x2ff + .word 0x100d0042 + .word 0x2ff + .word 0xa4d17ff + .word 0x2ff + .word 0x5a0047e4 + .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 0x500020a9 + .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 0x80003bf5 + .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 0x50007802 + .word 0x2ff + .word 0x800c18f0 + .word 0x2ff + .word 0x80000030 + .word 0x214217 + .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 0x52007b3a + .word 0x1e9c9bf + .word 0x8890ffa + .word 0x1f45adb + .word 0x81c0673f + .word 0x2ff + .word 0x80000030 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x81ea0b7c + .word 0x1eb09bc + .word 0x52041808 + .word 0x1eb10bd + .word 0x80000030 + .word 0x1eb1aca + .word 0x520618d5 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000283 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81ea0b7c + .word 0x1eb09bc + .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 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 0x81c06f3f + .word 0x1eb597c + .word 0x52041807 + .word 0x1edd0bf + .word 0x8050033d + .word 0x1f0da8b + .word 0x520618e5 + .word 0x2ff + .word 0x8890ffa + .word 0x2ff + .word 0x52071a97 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400005ae + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e80b7c + .word 0x1ec09bc + .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 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 0x81c05f3f + .word 0x1ec617c + .word 0x52041807 + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .word 0x520618f6 + .word 0x2ff + .word 0x8890ffa + .word 0x2ff + .word 0x52071aac + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400005d6 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e90b7c + .word 0x1ed09bc + .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 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 0x81c0673f + .word 0x1ed697c + .word 0x52041f98 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x52061865 + .word 0x2ff + .word 0x8890ffa + .word 0x2ff + .word 0x52071a13 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400005fe + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x500031a3 + .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 0x10080243 + .word 0x2ff + .word 0x81c05f3f + .word 0x2ff + .word 0x80003bf5 + .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 0x50007802 + .word 0x2ff + .word 0x802e4bfc + .word 0x2ff + .word 0x10080539 + .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 0x80000030 + .word 0x1c0421c + .word 0x800b63fc + .word 0x1e0739c + .word 0x802e63fc + .word 0x2ff + .word 0x40000016 + .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 0x100801a1 + .word 0x1f8ffcb + .word 0x50007802 + .word 0x2ff + .word 0x81f71b7c + .word 0x1f8b93c + .word 0x1008048e + .word 0x2ff + .word 0x80000030 + .word 0x1e9e9be + .word 0x80000030 + .word 0x1ecf0be + .word 0x8034067c + .word 0x1cffb0a + .word 0x80000030 + .word 0x2ff + .word 0x44800000 + .word 0x80234217 + .word 0x52007aeb + .word 0x1e9c9bf + .word 0x8890ffa + .word 0x1f45adb + .word 0x81c0673f + .word 0x2ff + .word 0x500619b1 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x81ea0b7c + .word 0x1eb09bc + .word 0x48004000 + .word 0x1eb10bd + .word 0x80000030 + .word 0x1eb1aca + .word 0x81ea0b7c + .word 0x1eb09bc + .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 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 0x400000a3 + .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 0x81c06f3f + .word 0x1eb597c + .word 0x52061805 + .word 0x1edd0bf + .word 0x8050033d + .word 0x1f0da8b + .word 0x520719b7 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400004ce + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e80b7c + .word 0x1ec09bc + .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 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 0x400000a3 + .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 0x81c05f3f + .word 0x1ec617c + .word 0x52061805 + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .word 0x520719bb + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400004e5 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e90b7c + .word 0x1ed09bc + .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 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 0x400000a3 + .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 0x81c0673f + .word 0x1ed697c + .word 0x52061f63 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x52071911 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400004fc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81ea0b7c + .word 0x1eb09bc + .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 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 0x4000075f + .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 0x81c06f3f + .word 0x1eb597c + .word 0x52061805 + .word 0x1edd0bf + .word 0x8050033d + .word 0x1f0da8b + .word 0x52071915 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000042c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e80b7c + .word 0x1ec09bc + .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 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 0x4000075f + .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 0x81c05f3f + .word 0x1ec617c + .word 0x52061805 + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .word 0x52071919 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000443 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e90b7c + .word 0x1ed09bc + .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 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 0x4000075f + .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 0x81c0673f + .word 0x1ed697c + .word 0x52061f63 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x520718a9 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000045a + .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 0x80003bf5 + .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 0x50007802 + .word 0x2ff + .word 0x802e4bfc + .word 0x2ff + .word 0x80000030 + .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 0x52007a99 + .word 0x1e9c9bf + .word 0x8890ffa + .word 0x1f45adb + .word 0x81c0673f + .word 0x2ff + .word 0x80000030 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x81ea0b7c + .word 0x1eb09bc + .word 0x40000004 + .word 0x1eb10bd + .word 0x80000030 + .word 0x1eb1aca + .word 0x81ea0b7c + .word 0x1eb09bc + .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 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 0x81c06f3f + .word 0x1eb597c + .word 0x50071b1a + .word 0x1edd0bf + .word 0x8050033d + .word 0x1f0da8b + .word 0x81e80b7c + .word 0x1ec09bc + .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 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 0x81c05f3f + .word 0x1ec617c + .word 0x50071b2d + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .word 0x81e90b7c + .word 0x1ed09bc + .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 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 0x81c0673f + .word 0x1ed697c + .word 0x52071f53 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x4000033e + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81c0673f + .word 0x180421d + .word 0x45400000 + .word 0x800002ff + .word 0x80000030 + .word 0x180421f + .word 0x80000030 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x81ea0b7c + .word 0x1eb09bc + .word 0x52041809 + .word 0x1eb10bd + .word 0x80000030 + .word 0x1eb1aca + .word 0x52061887 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400001e3 + .word 0x2ff + .word 0x80000030 + .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 0x80000030 + .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 0x52061896 + .word 0x2ff + .word 0x8890ffa + .word 0x2ff + .word 0x520719f6 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000270 + .word 0x2ff + .word 0x80000030 + .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 0x80000030 + .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 0x520618a7 + .word 0x2ff + .word 0x8890ffa + .word 0x2ff + .word 0x52071a0b + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000295 + .word 0x2ff + .word 0x80000030 + .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 0x80000030 + .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 0x52041f8f + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x5206180d + .word 0x2ff + .word 0x8890ffa + .word 0x2ff + .word 0x52071969 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400002ba + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81c0673f + .word 0x180421d + .word 0x45400000 + .word 0x800002ff + .word 0x80000030 + .word 0x180421f + .word 0x5006195f + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x81ea0b7c + .word 0x1eb09bc + .word 0x48004000 + .word 0x1eb10bd + .word 0x80000030 + .word 0x1eb1aca + .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 0x80000030 + .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 0x400000ac + .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 0x52071965 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400001df + .word 0x2ff + .word 0x80000030 + .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 0x80000030 + .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 0x400000ac + .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 0x52071969 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400001f3 + .word 0x2ff + .word 0x80000030 + .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 0x80000030 + .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 0x400000ac + .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 0x52061f5a + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x520718b6 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000207 + .word 0x2ff + .word 0x80000030 + .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 0x80000030 + .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 0x40000756 + .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 0x520718ba + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000134 + .word 0x2ff + .word 0x80000030 + .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 0x80000030 + .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 0x40000756 + .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 0x520718be + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000148 + .word 0x2ff + .word 0x80000030 + .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 0x80000030 + .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 0x40000756 + .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 0x52061f5a + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x52071848 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000015c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81c0673f + .word 0x180421d + .word 0x45400000 + .word 0x800002ff + .word 0x80000030 + .word 0x180421f + .word 0x80000030 + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x81ea0b7c + .word 0x1eb09bc + .word 0x40000005 + .word 0x1eb10bd + .word 0x80000030 + .word 0x1eb1aca + .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 0x80000030 + .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 0x5007187d + .word 0x1edd0bf + .word 0x8050033d + .word 0x1f0da8b + .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 0x80000030 + .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 0x5007188d + .word 0x1ebd0bf + .word 0x804e033d + .word 0x1eeda0b + .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 0x80000030 + .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 0x52071f4a + .word 0x1ecd0bf + .word 0x804f033d + .word 0x1efda4b + .word 0x4000009b + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x8280001 + .word 0x2ff + .word 0x800206bc + .word 0x1ec09bc + .word 0x3ea5801 + .word 0x1ec10bd + .word 0x3ed5801 + .word 0x1ec1b0a + .word 0x1004108c + .word 0x1fc52a8 + .word 0x810523fe + .word 0x224a53 + .word 0x8262001 + .word 0x1f7b93c + .word 0x5200403e + .word 0x2ff + .word 0x9072002 + .word 0x1e06310 + .word 0x81ea0bbc + .word 0x1e00654 + .word 0x81f54b3c + .word 0x1e00694 + .word 0x80042970 + .word 0x2ff + .word 0x10041173 + .word 0x1ec21bc + .word 0x5a004802 + .word 0x1ec28bd + .word 0x800531b0 + .word 0x1ec30be + .word 0x80000030 + .word 0x31ad40 + .word 0x800639f0 + .word 0x1e03b0b + .word 0x9090ffa + .word 0x1c0529c + .word 0x100801ba + .word 0x1e0841c + .word 0x80024231 + .word 0x1f5a97d + .word 0x10084173 + .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 0x811923fd + .word 0x1ec617c + .word 0x809923fd + .word 0x2ff + .word 0x811a43fd + .word 0x2ff + .word 0x8220001 + .word 0x2ff + .word 0x809a23fd + .word 0x1ed09bc + .word 0x3eb6001 + .word 0x1ed10bd + .word 0x3ee6001 + .word 0x1ed1b4a + .word 0x80000030 + .word 0x2ff + .word 0x52001022 + .word 0x225293 + .word 0x80000030 + .word 0x1f7b93c + .word 0x4b000000 + .word 0x81e06b50 + .word 0x43800000 + .word 0x818006dd + .word 0x81f5533c + .word 0x2006dd + .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 0x1f9c93c + .word 0x80000030 + .word 0x1fad13c + .word 0x80000030 + .word 0x1f5a97d + .word 0x80000030 + .word 0x1f76b6a + .word 0x800028b5 + .word 0x1fbce68 + .word 0x5e004802 + .word 0x1fbd6a8 + .word 0x3eca802 + .word 0x2ff + .word 0x80000030 + .word 0x1f5517d + .word 0x52062802 + .word 0x2ff + .word 0x3ec8000 + .word 0x1f16b55 + .word 0x800039b5 + .word 0x1fad66b + .word 0x3ef8000 + .word 0x2ff + .word 0x3efa802 + .word 0x2ff + .word 0x81fb2b7c + .word 0x2ff + .word 0x80000030 + .word 0x1ed697c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbd93c + .word 0x3ec6801 + .word 0x2ff + .word 0x400000a2 + .word 0x2ff + .word 0x3ef6801 + .word 0x2ff + .word 0x45400000 + .word 0x80215297 + .word 0x400007c1 + .word 0x1804a5f + .word 0x80000030 + .word 0x2ff + .word 0x44800000 + .word 0x800002ff + .word 0x45400000 + .word 0x8180529d + .word 0x400007dc + .word 0x180529f + .word 0xa200001 + .word 0x2ff + .word 0x8280001 + .word 0x2ff + .word 0x800206bc + .word 0x1ed09bc + .word 0x3eb6001 + .word 0x1ed10bd + .word 0x3ee6001 + .word 0x1ed1b4a + .word 0x1004108c + .word 0x1fc4228 + .word 0x810523fe + .word 0x225293 + .word 0x8262001 + .word 0x1f7b93c + .word 0x5200403e + .word 0x2ff + .word 0x9072002 + .word 0x1e06b50 + .word 0x81e80bbc + .word 0x1e00654 + .word 0x81f5533c + .word 0x1e00694 + .word 0x80042970 + .word 0x2ff + .word 0x10041173 + .word 0x1ed21bc + .word 0x5a004802 + .word 0x1ed28bd + .word 0x800531b0 + .word 0x1ed30be + .word 0x80000030 + .word 0x31ad40 + .word 0x800639f0 + .word 0x1e03b4b + .word 0x9090ffa + .word 0x1c0421c + .word 0x100801ba + .word 0x1e0739c + .word 0x80024231 + .word 0x1f5a97d + .word 0x10084173 + .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 0x811923fd + .word 0x1ed697c + .word 0x809923fd + .word 0x2ff + .word 0x811a43fd + .word 0x2ff + .word 0x8220001 + .word 0x2ff + .word 0x809a23fd + .word 0x1eb09bc + .word 0x3ec6801 + .word 0x1eb10bd + .word 0x3ef6801 + .word 0x1eb1aca + .word 0x80000030 + .word 0x2ff + .word 0x52001022 + .word 0x224213 + .word 0x80000030 + .word 0x1f7b93c + .word 0x4b000000 + .word 0x81e05ad0 + .word 0x43800000 + .word 0x818006dd + .word 0x81f5433c + .word 0x2006dd + .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 0x1f9c93c + .word 0x80000030 + .word 0x1fad13c + .word 0x80000030 + .word 0x1f5a97d + .word 0x80000030 + .word 0x1f75aea + .word 0x800028b5 + .word 0x1fbce68 + .word 0x5e004802 + .word 0x1fbd6a8 + .word 0x3eaa802 + .word 0x2ff + .word 0x80000030 + .word 0x1f5417d + .word 0x52062802 + .word 0x2ff + .word 0x3ea7000 + .word 0x1f15ad5 + .word 0x800039b5 + .word 0x1fad66b + .word 0x3ed7000 + .word 0x2ff + .word 0x3eda802 + .word 0x2ff + .word 0x81fb2b7c + .word 0x2ff + .word 0x80000030 + .word 0x1eb597c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbd93c + .word 0x3ea5801 + .word 0x2ff + .word 0x40000055 + .word 0x2ff + .word 0x3ed5801 + .word 0x2ff + .word 0x45400000 + .word 0x80214217 + .word 0x400007c1 + .word 0x180529f + .word 0x80000030 + .word 0x2ff + .word 0x44800000 + .word 0x800002ff + .word 0x45400000 + .word 0x8180421d + .word 0x400007dc + .word 0x180421f + .word 0xa200001 + .word 0x2ff + .word 0x8280001 + .word 0x2ff + .word 0x800206bc + .word 0x1eb09bc + .word 0x3ec6801 + .word 0x1eb10bd + .word 0x3ef6801 + .word 0x1eb1aca + .word 0x1004108c + .word 0x1fc4a68 + .word 0x810523fe + .word 0x224213 + .word 0x8262001 + .word 0x1f7b93c + .word 0x5200403e + .word 0x2ff + .word 0x9072002 + .word 0x1e05ad0 + .word 0x81e90bbc + .word 0x1e00654 + .word 0x81f5433c + .word 0x1e00694 + .word 0x80042970 + .word 0x2ff + .word 0x10041173 + .word 0x1eb21bc + .word 0x5a004802 + .word 0x1eb28bd + .word 0x800531b0 + .word 0x1eb30be + .word 0x80000030 + .word 0x31ad40 + .word 0x800639f0 + .word 0x1e03acb + .word 0x9090ffa + .word 0x1c04a5c + .word 0x100801ba + .word 0x1e07bdc + .word 0x80024231 + .word 0x1f5a97d + .word 0x10084173 + .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 0x811923fd + .word 0x1eb597c + .word 0x809923fd + .word 0x2ff + .word 0x811a43fd + .word 0x2ff + .word 0x8220001 + .word 0x2ff + .word 0x809a23fd + .word 0x1ec09bc + .word 0x3ea5801 + .word 0x1ec10bd + .word 0x3ed5801 + .word 0x1ec1b0a + .word 0x80000030 + .word 0x2ff + .word 0x52001022 + .word 0x224a53 + .word 0x80000030 + .word 0x1f7b93c + .word 0x4b000000 + .word 0x81e06310 + .word 0x43800000 + .word 0x818006dd + .word 0x81f54b3c + .word 0x2006dd + .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 0x1f9c93c + .word 0x80000030 + .word 0x1fad13c + .word 0x80000030 + .word 0x1f5a97d + .word 0x80000030 + .word 0x1f7632a + .word 0x800028b5 + .word 0x1fbce68 + .word 0x5e004802 + .word 0x1fbd6a8 + .word 0x3eba802 + .word 0x2ff + .word 0x80000030 + .word 0x1f5497d + .word 0x52062802 + .word 0x2ff + .word 0x3eb7800 + .word 0x1f16315 + .word 0x800039b5 + .word 0x1fad66b + .word 0x3ee7800 + .word 0x2ff + .word 0x3eea802 + .word 0x2ff + .word 0x81fb2b7c + .word 0x2ff + .word 0x80000030 + .word 0x1ec617c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbd93c + .word 0x3eb6001 + .word 0x2ff + .word 0x40000008 + .word 0x2ff + .word 0x3ee6001 + .word 0x2ff + .word 0x45400000 + .word 0x80214a57 + .word 0x400007c1 + .word 0x180421f + .word 0x80000030 + .word 0x2ff + .word 0x44800000 + .word 0x800002ff + .word 0x45400000 + .word 0x81804a5d + .word 0x400007dc + .word 0x1804a5f + .word 0xa200001 + .word 0x2ff + .word 0x5007104a + .word 0x2ff + .word 0x82f0084 + .word 0x2ff + .word 0x5206280d + .word 0x1f9dae8 + .word 0x80000030 + .word 0x2ff + .word 0x5207300b + .word 0x2ff + .word 0x800039b5 + .word 0x1fad66b + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80085bfc + .word 0x2ff + .word 0x802a5bfc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1f04002 + .word 0x1e05bd0 + .word 0x1ed4000 + .word 0x2ff + .word 0x40000032 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81fb2b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80085bfc + .word 0x2ff + .word 0x80295bfc + .word 0x2ff + .word 0x80000030 + .word 0x1fbd93c + .word 0x80000030 + .word 0x2ff + .word 0x1ec4002 + .word 0x1e05bd0 + .word 0x1ed4000 + .word 0x2ff + .word 0x52062803 + .word 0x1f9dae8 + .word 0x80000030 + .word 0x2ff + .word 0x5007301c + .word 0x2ff + .word 0x800039b5 + .word 0x1fad66b + .word 0x81fb2b7c + .word 0x2c613f + .word 0x1ee4001 + .word 0x2ff + .word 0x80085bfc + .word 0x2ff + .word 0x802a5bfc + .word 0x2ff + .word 0x3e96800 + .word 0x1fbd93c + .word 0x3e97001 + .word 0x2f6328 + .word 0x1f04002 + .word 0x1e05bd0 + .word 0x1ed4000 + .word 0x2ff + .word 0x52062806 + .word 0x1f9dae8 + .word 0x3e96002 + .word 0x2ff + .word 0x52073004 + .word 0x2ff + .word 0x800039b5 + .word 0x1fad66b + .word 0x81ec833c + .word 0x2ff + .word 0x4000000d + .word 0x2ff + .word 0x80005275 + .word 0x2ff + .word 0x81fb2b7c + .word 0x30813f + .word 0x1ee4001 + .word 0x2ff + .word 0x80085bfc + .word 0x2ff + .word 0x80295bfc + .word 0x2ff + .word 0x3ea6800 + .word 0x1fbd93c + .word 0x3ea7001 + .word 0x2f8428 + .word 0x1ec4002 + .word 0x1e05bd0 + .word 0x1ed4000 + .word 0x2ff + .word 0x52062fe8 + .word 0x1f9dae8 + .word 0x3ea8002 + .word 0x2ff + .word 0x520737e6 + .word 0x2ff + .word 0x800039b5 + .word 0x1fad66b + .word 0x80000030 + .word 0x2c613f + .word 0x1ee4001 + .word 0x2ff + .word 0x80085bfc + .word 0x2ff + .word 0x802a5bfc + .word 0x2ff + .word 0x3e96800 + .word 0x2ff + .word 0x3e97001 + .word 0x2f6328 + .word 0x1f04002 + .word 0x1e05bd0 + .word 0x1ed4000 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e96002 + .word 0x2ff + .word 0x80000030 + .word 0x30813f + .word 0x1ee4001 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3ea6800 + .word 0x2ff + .word 0x3ea7001 + .word 0x2f8428 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3ea8002 + .word 0x2ff + .word 0x52007804 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x800026fc + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x1f40084 + .word 0x2ff + .word 0x1f50001 + .word 0x2ff + .word 0x80010072 + .word 0x2ff + .word 0xb0127fe + .word 0x2ff + .word 0x10020047 + .word 0x1140513 + .word 0xa4227ff + .word 0x2ff + .word 0x2e4affe + .word 0x2ff + .word 0xa200084 + .word 0x2ff + .word 0x304a7ff + .word 0x2ff + .word 0x800427b2 + .word 0x2ff + .word 0x800026fc + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff \ No newline at end of file diff --git a/test/decompiler/vu_reference/mercneric-vu0-result.txt b/test/decompiler/vu_reference/mercneric-vu0-result.txt new file mode 100644 index 0000000000..ea236ba1ad --- /dev/null +++ b/test/decompiler/vu_reference/mercneric-vu0-result.txt @@ -0,0 +1,201 @@ + 0.003921569 | maxw.x vf17, vf00, vf00 :i + -65537.0 | maxi.y vf17, vf00, I :i + iaddiu vi10, vi10, 0x88 | minii.z vf05, vf00, I + iaddiu vi08, vi00, 0x8c | minii.z vf06, vf00, I + sqi.xyzw vf01, vi08 | minii.z vf07, vf00, I + sqi.xyzw vf02, vi08 | minix.w vf05, vf00, vf27 + sqi.xyzw vf03, vi08 | miniy.w vf06, vf00, vf27 + sqi.xyzw vf04, vi08 | miniz.w vf07, vf00, vf27 + ibne vi00, vi13, L1 | nop + iaddiu vi05, vi00, 0x182 | nop + iaddiu vi05, vi00, 0x1ab | nop +L1: + ibne vi00, vi12, L2 | nop + iaddiu vi03, vi00, 0x146 | nop + ior vi03, vi05, vi00 | nop +L2: + ibne vi00, vi11, L3 | nop + iaddiu vi01, vi00, 0x13a | nop + ior vi01, vi03, vi00 | nop +L3: + lqi.xyzw vf29, vi10 | nop + iadd vi02, vi08, vi11 | nop + iadd vi04, vi02, vi12 | nop + iadd vi06, vi04, vi13 | nop + mtir vi13, vf29.w | itof0.xyzw vf18, vf29 :e + iaddiu vi09, vi00, 0x7f | nop + sq.xyzw vf23, 3(vi14) | mulx.xyzw vf11, vf20, vf19 + sq.xyzw vf24, 4(vi14) | mulx.xyzw vf12, vf21, vf19 + sq.xyzw vf25, 5(vi14) | mulx.xyzw vf13, vf22, vf19 + sq.xyzw vf26, 6(vi14) | nop + sq.xyzw vf11, 0(vi14) | nop + sq.xyzw vf12, 1(vi14) | nop + sq.xyzw vf13, 2(vi14) | nop :e + nop | nop + mtir vi11, vf01.x | maddz.xyzw vf11, vf26, vf10 + jr vi01 | mul.xyzw vf14, vf13, Q + sqi.xyzw vf04, vi08 | mulaw.xyzw ACC, vf20, vf08 + rsqrt Q, vf00.w, vf16.x | maddaw.xyzw ACC, vf21, vf09 + lq.xyzw vf24, -124(vi11) | maddaw.xyzw ACC, vf22, vf10 + lq.xyzw vf25, -123(vi11) | maddw.xyzw vf15, vf23, vf00 + lq.xyzw vf26, -122(vi11) | mul.xyzw vf16, vf11, vf11 + lq.xyzw vf20, -128(vi11) | add.xyzw vf08, vf01, vf05 + lq.xyzw vf21, -127(vi11) | add.xyzw vf09, vf02, vf06 + lq.xyzw vf22, -126(vi11) | add.xyzw vf10, vf03, vf07 + ibne vi08, vi02, L4 | adday.xyzw vf16, vf16 + lq.xyzw vf23, -125(vi11) | maddz.xyzw vf16, vf17, vf16 + ior vi01, vi03, vi00 | nop +L4: + move.xyzw vf13, vf12 | mulaz.xyzw ACC, vf24, vf08 :e + move.xyzw vf12, vf11 | maddaz.xyzw ACC, vf25, vf09 + rsqrt Q, vf00.w, vf16.x | maddaw.xyzw ACC, vf21, vf09 + mtir vi12, vf01.y | maddaw.xyzw ACC, vf22, vf10 + iand vi11, vi11, vi09 | maddw.xyzw vf15, vf23, vf00 + lq.xyzw vf19, 4(vi11) | mul.xyzw vf16, vf11, vf11 + ibeq vi09, vi11, L7 | add.xyzw vf08, vf01, vf05 + iand vi12, vi12, vi09 | add.xyzw vf09, vf02, vf06 + nop | muly.xyzw vf18, vf18, vf17 + lq.xyzw vf24, 4(vi12) | add.xyzw vf10, vf03, vf07 + lq.xyzw vf27, 5(vi11) | adday.xyzw vf16, vf16 + lq.xyzw vf25, 5(vi12) | maddz.xyzw vf16, vf17, vf16 + lq.xyzw vf28, 6(vi11) | mulax.xyzw ACC, vf19, vf18 + lq.xyzw vf26, 6(vi12) | maddy.xyzw vf24, vf24, vf18 + lq.xyzw vf29, 0(vi11) | mulax.xyzw ACC, vf27, vf18 + lq.xyzw vf20, 0(vi12) | maddy.xyzw vf25, vf25, vf18 + lq.xyzw vf19, 1(vi11) | mulax.xyzw ACC, vf28, vf18 + lq.xyzw vf21, 1(vi12) | maddy.xyzw vf26, vf26, vf18 + lq.xyzw vf27, 2(vi11) | mulax.xyzw ACC, vf29, vf18 + lq.xyzw vf22, 2(vi12) | maddy.xyzw vf20, vf20, vf18 + lq.xyzw vf28, 3(vi11) | mulax.xyzw ACC, vf19, vf18 + lq.xyzw vf23, 3(vi12) | maddy.xyzw vf21, vf21, vf18 + nop | mulax.xyzw ACC, vf27, vf18 + iaddiu vi01, vi00, 0x161 | maddy.xyzw vf22, vf22, vf18 + ibne vi08, vi04, L5 | mulax.xyzw ACC, vf28, vf18 + nop | maddy.xyzw vf23, vf23, vf18 + ior vi01, vi05, vi00 | nop +L5: + move.xyzw vf13, vf12 | mulaz.xyzw ACC, vf24, vf08 :e + move.xyzw vf12, vf11 | maddaz.xyzw ACC, vf25, vf09 + rsqrt Q, vf00.w, vf16.x | maddaw.xyzw ACC, vf21, vf09 + mtir vi12, vf01.y | maddaw.xyzw ACC, vf22, vf10 + iand vi11, vi11, vi09 | maddw.xyzw vf15, vf23, vf00 + lq.xyzw vf19, 4(vi11) | mul.xyzw vf16, vf11, vf11 + ibeq vi09, vi11, L7 | add.xyzw vf08, vf01, vf05 + iand vi12, vi12, vi09 | add.xyzw vf09, vf02, vf06 + lq.xyzw vf24, 4(vi12) | add.xyzw vf10, vf03, vf07 + lq.xyzw vf27, 5(vi11) | adday.xyzw vf16, vf16 + lq.xyzw vf25, 5(vi12) | maddz.xyzw vf16, vf17, vf16 + lq.xyzw vf28, 6(vi11) | mulaz.xyzw ACC, vf19, vf18 + lq.xyzw vf26, 6(vi12) | maddw.xyzw vf24, vf24, vf18 + lq.xyzw vf29, 0(vi11) | mulaz.xyzw ACC, vf27, vf18 + lq.xyzw vf20, 0(vi12) | maddw.xyzw vf25, vf25, vf18 + lq.xyzw vf19, 1(vi11) | mulaz.xyzw ACC, vf28, vf18 + lq.xyzw vf21, 1(vi12) | maddw.xyzw vf26, vf26, vf18 + lq.xyzw vf27, 2(vi11) | mulaz.xyzw ACC, vf29, vf18 + lq.xyzw vf22, 2(vi12) | maddw.xyzw vf20, vf20, vf18 + lq.xyzw vf28, 3(vi11) | mulaz.xyzw ACC, vf19, vf18 + lq.xyzw vf23, 3(vi12) | maddw.xyzw vf21, vf21, vf18 + lqi.xyzw vf29, vi10 | mulaz.xyzw ACC, vf27, vf18 + iaddiu vi01, vi00, 0x146 | maddw.xyzw vf22, vf22, vf18 + ibne vi08, vi04, L6 | mulaz.xyzw ACC, vf28, vf18 + nop | maddw.xyzw vf23, vf23, vf18 + ior vi01, vi05, vi00 | nop +L6: + mtir vi13, vf29.w | itof0.xyzw vf18, vf29 + move.xyzw vf13, vf12 | mulaz.xyzw ACC, vf24, vf08 :e + move.xyzw vf12, vf11 | maddaz.xyzw ACC, vf25, vf09 +L7: + nop | add.xyzw vf10, vf03, vf07 + ibne vi08, vi04, L8 | adday.xyzw vf16, vf16 + nop | maddz.xyzw vf16, vf17, vf16 + ior vi01, vi05, vi00 | nop +L8: + move.xyzw vf13, vf12 | mulaz.xyzw ACC, vf24, vf08 :e + move.xyzw vf12, vf11 | maddaz.xyzw ACC, vf25, vf09 + rsqrt Q, vf00.w, vf16.x | maddaw.xyzw ACC, vf21, vf09 + mtir vi12, vf01.y | maddaw.xyzw ACC, vf22, vf10 + iand vi11, vi11, vi09 | maddw.xyzw vf15, vf23, vf00 + lq.xyzw vf19, 4(vi11) | mul.xyzw vf16, vf11, vf11 + ibeq vi09, vi11, L10 | add.xyzw vf08, vf01, vf05 + iand vi12, vi12, vi09 | add.xyzw vf09, vf02, vf06 + nop | muly.xyzw vf18, vf18, vf17 + lq.xyzw vf27, 4(vi12) | add.xyzw vf10, vf03, vf07 + lq.xyzw vf24, 4(vi13) | adday.xyzw vf16, vf16 + lq.xyzw vf28, 5(vi11) | maddz.xyzw vf16, vf17, vf16 + lq.xyzw vf19, 5(vi12) | mulax.xyzw ACC, vf19, vf18 + lq.xyzw vf25, 5(vi13) | madday.xyzw ACC, vf27, vf18 + lq.xyzw vf27, 6(vi11) | maddz.xyzw vf24, vf24, vf18 + lq.xyzw vf28, 6(vi12) | mulax.xyzw ACC, vf28, vf18 + lq.xyzw vf26, 6(vi13) | madday.xyzw ACC, vf19, vf18 + lq.xyzw vf19, 0(vi11) | maddz.xyzw vf25, vf25, vf18 + lq.xyzw vf27, 0(vi12) | mulax.xyzw ACC, vf27, vf18 + lq.xyzw vf20, 0(vi13) | madday.xyzw ACC, vf28, vf18 + lq.xyzw vf28, 1(vi11) | maddz.xyzw vf26, vf26, vf18 + lq.xyzw vf19, 1(vi12) | mulax.xyzw ACC, vf19, vf18 + lq.xyzw vf21, 1(vi13) | madday.xyzw ACC, vf27, vf18 + lq.xyzw vf27, 2(vi11) | maddz.xyzw vf20, vf20, vf18 + lq.xyzw vf28, 2(vi12) | mulax.xyzw ACC, vf28, vf18 + lq.xyzw vf22, 2(vi13) | madday.xyzw ACC, vf19, vf18 + lq.xyzw vf19, 3(vi11) | maddz.xyzw vf21, vf21, vf18 + lq.xyzw vf27, 3(vi12) | mulax.xyzw ACC, vf27, vf18 + lq.xyzw vf23, 3(vi13) | madday.xyzw ACC, vf28, vf18 + lqi.xyzw vf29, vi10 | maddz.xyzw vf22, vf22, vf18 + ibne vi08, vi06, L9 | mulax.xyzw ACC, vf19, vf18 + nop | madday.xyzw ACC, vf27, vf18 + iaddiu vi01, vi00, 0x1ab | nop +L9: + nop | maddz.xyzw vf23, vf23, vf18 + mtir vi13, vf29.w | itof0.xyz vf18, vf29 + move.xyzw vf13, vf12 | mulaz.xyzw ACC, vf24, vf08 :e + move.xyzw vf12, vf11 | maddaz.xyzw ACC, vf25, vf09 +L10: + nop | add.xyzw vf10, vf03, vf07 + ibne vi08, vi06, L11 | adday.xyzw vf16, vf16 + nop | maddz.xyzw vf16, vf17, vf16 + iaddiu vi01, vi00, 0x1ab | nop +L11: + move.xyzw vf13, vf12 | mulaz.xyzw ACC, vf24, vf08 :e + move.xyzw vf12, vf11 | maddaz.xyzw ACC, vf25, vf09 + rsqrt Q, vf00.w, vf16.x | maddaw.xyzw ACC, vf21, vf09 + nop | maddaw.xyzw ACC, vf22, vf10 + nop | maddw.xyzw vf15, vf23, vf00 + nop | mul.xyzw vf16, vf11, vf11 + nop | add.xyzw vf08, vf01, vf05 + nop | add.xyzw vf09, vf02, vf06 + nop | add.xyzw vf10, vf03, vf07 + nop | adday.xyzw vf16, vf16 + nop | maddz.xyzw vf16, vf17, vf16 + move.xyzw vf13, vf12 | mulaz.xyzw ACC, vf24, vf08 :e + move.xyzw vf12, vf11 | maddaz.xyzw ACC, vf25, vf09 + nop | mulaz.xyzw ACC, vf09, vf01 + nop | maddax.xyzw ACC, vf10, vf01 + nop | maddy.xyzw vf01, vf11, vf01 + nop | mulaz.xyzw ACC, vf09, vf02 + nop | maddax.xyzw ACC, vf10, vf02 + nop | maddy.xyzw vf02, vf11, vf02 + fmand vi01, vi09 | mulaz.xyzw ACC, vf09, vf03 + nop | maddax.xyzw ACC, vf10, vf03 + nop | maddy.xyzw vf03, vf11, vf03 + fmand vi02, vi09 | mulaz.xyzw ACC, vf09, vf04 + nop | maddax.xyzw ACC, vf10, vf04 + nop | maddy.xyzw vf04, vf11, vf04 + fmand vi03, vi09 | nop + nop | nop + nop | nop :e + fmand vi04, vi09 | nop + nop | mulaz.xyzw ACC, vf09, vf05 + nop | maddax.xyzw ACC, vf10, vf05 + nop | maddy.xyzw vf05, vf11, vf05 + nop | mulaz.xyzw ACC, vf09, vf06 + nop | maddax.xyzw ACC, vf10, vf06 + nop | maddy.xyzw vf06, vf11, vf06 + fmand vi05, vi09 | mulaz.xyzw ACC, vf09, vf07 + nop | maddax.xyzw ACC, vf10, vf07 + nop | maddy.xyzw vf07, vf11, vf07 + fmand vi06, vi09 | mulaz.xyzw ACC, vf09, vf08 + nop | maddax.xyzw ACC, vf10, vf08 + nop | maddy.xyzw vf08, vf11, vf08 + fmand vi07, vi09 | nop + nop | nop + nop | nop :e + fmand vi08, vi09 | nop diff --git a/test/decompiler/vu_reference/mercneric-vu0.txt b/test/decompiler/vu_reference/mercneric-vu0.txt new file mode 100644 index 0000000000..d57f4ea949 --- /dev/null +++ b/test/decompiler/vu_reference/mercneric-vu0.txt @@ -0,0 +1,380 @@ + .word 0x3b808081 + .word 0x81000453 + .word 0xc7800080 + .word 0x8080045d + .word 0x100a5088 + .word 0x40015f + .word 0x1008008c + .word 0x40019f + .word 0x81e80b7d + .word 0x4001df + .word 0x81e8137d + .word 0x3b0154 + .word 0x81e81b7d + .word 0x3b0195 + .word 0x81e8237d + .word 0x3b01d6 + .word 0x52006802 + .word 0x2ff + .word 0x10050182 + .word 0x2ff + .word 0x100501ab + .word 0x2ff + .word 0x52006002 + .word 0x2ff + .word 0x10030146 + .word 0x2ff + .word 0x800028f5 + .word 0x2ff + .word 0x52005802 + .word 0x2ff + .word 0x1001013a + .word 0x2ff + .word 0x80001875 + .word 0x2ff + .word 0x81fd537c + .word 0x2ff + .word 0x800b40b0 + .word 0x2ff + .word 0x800c1130 + .word 0x2ff + .word 0x800d21b0 + .word 0x2ff + .word 0x806debfc + .word 0x41f2e93c + .word 0x1009007f + .word 0x2ff + .word 0x3eeb803 + .word 0x1f3a2d8 + .word 0x3eec004 + .word 0x1f3ab18 + .word 0x3eec805 + .word 0x1f3b358 + .word 0x3eed006 + .word 0x2ff + .word 0x3ee5800 + .word 0x2ff + .word 0x3ee6001 + .word 0x2ff + .word 0x3ee6802 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x800b0bfc + .word 0x1ead2ca + .word 0x48000800 + .word 0x1e06b9c + .word 0x81e8237d + .word 0x1e8a1bf + .word 0x807003be + .word 0x1e9a8bf + .word 0x1f85f84 + .word 0x1eab0bf + .word 0x1f95f85 + .word 0x1e0bbcb + .word 0x1fa5f86 + .word 0x1eb5c2a + .word 0x1f45f80 + .word 0x1e50a28 + .word 0x1f55f81 + .word 0x1e61268 + .word 0x1f65f82 + .word 0x1e71aa8 + .word 0x52081002 + .word 0x1f0803d + .word 0x1f75f83 + .word 0x1f08c0a + .word 0x80001875 + .word 0x2ff + .word 0x81ed633c + .word 0x41e8c1be + .word 0x81ec5b3c + .word 0x1e9c8be + .word 0x807003be + .word 0x1e9a8bf + .word 0x802c0bfc + .word 0x1eab0bf + .word 0x80095af4 + .word 0x1e0bbcb + .word 0x1f35804 + .word 0x1eb5c2a + .word 0x50095831 + .word 0x1e50a28 + .word 0x80096334 + .word 0x1e61268 + .word 0x80000030 + .word 0x1f19499 + .word 0x1f86004 + .word 0x1e71aa8 + .word 0x1fb5805 + .word 0x1f0803d + .word 0x1f96005 + .word 0x1f08c0a + .word 0x1fc5806 + .word 0x1f299bc + .word 0x1fa6006 + .word 0x1f2c609 + .word 0x1fd5800 + .word 0x1f2d9bc + .word 0x1f46000 + .word 0x1f2ce49 + .word 0x1f35801 + .word 0x1f2e1bc + .word 0x1f56001 + .word 0x1f2d689 + .word 0x1fb5802 + .word 0x1f2e9bc + .word 0x1f66002 + .word 0x1f2a509 + .word 0x1fc5803 + .word 0x1f299bc + .word 0x1f76003 + .word 0x1f2ad49 + .word 0x80000030 + .word 0x1f2d9bc + .word 0x10010161 + .word 0x1f2b589 + .word 0x52082002 + .word 0x1f2e1bc + .word 0x80000030 + .word 0x1f2bdc9 + .word 0x80002875 + .word 0x2ff + .word 0x81ed633c + .word 0x41e8c1be + .word 0x81ec5b3c + .word 0x1e9c8be + .word 0x807003be + .word 0x1e9a8bf + .word 0x802c0bfc + .word 0x1eab0bf + .word 0x80095af4 + .word 0x1e0bbcb + .word 0x1f35804 + .word 0x1eb5c2a + .word 0x50095816 + .word 0x1e50a28 + .word 0x80096334 + .word 0x1e61268 + .word 0x1f86004 + .word 0x1e71aa8 + .word 0x1fb5805 + .word 0x1f0803d + .word 0x1f96005 + .word 0x1f08c0a + .word 0x1fc5806 + .word 0x1f299be + .word 0x1fa6006 + .word 0x1f2c60b + .word 0x1fd5800 + .word 0x1f2d9be + .word 0x1f46000 + .word 0x1f2ce4b + .word 0x1f35801 + .word 0x1f2e1be + .word 0x1f56001 + .word 0x1f2d68b + .word 0x1fb5802 + .word 0x1f2e9be + .word 0x1f66002 + .word 0x1f2a50b + .word 0x1fc5803 + .word 0x1f299be + .word 0x1f76003 + .word 0x1f2ad4b + .word 0x81fd537c + .word 0x1f2d9be + .word 0x10010146 + .word 0x1f2b58b + .word 0x52082002 + .word 0x1f2e1be + .word 0x80000030 + .word 0x1f2bdcb + .word 0x80002875 + .word 0x2ff + .word 0x806debfc + .word 0x1f2e93c + .word 0x81ed633c + .word 0x41e8c1be + .word 0x81ec5b3c + .word 0x1e9c8be + .word 0x80000030 + .word 0x1e71aa8 + .word 0x52082002 + .word 0x1f0803d + .word 0x80000030 + .word 0x1f08c0a + .word 0x80002875 + .word 0x2ff + .word 0x81ed633c + .word 0x41e8c1be + .word 0x81ec5b3c + .word 0x1e9c8be + .word 0x807003be + .word 0x1e9a8bf + .word 0x802c0bfc + .word 0x1eab0bf + .word 0x80095af4 + .word 0x1e0bbcb + .word 0x1f35804 + .word 0x1eb5c2a + .word 0x5009581e + .word 0x1e50a28 + .word 0x80096334 + .word 0x1e61268 + .word 0x80000030 + .word 0x1f19499 + .word 0x1fb6004 + .word 0x1e71aa8 + .word 0x1f86804 + .word 0x1f0803d + .word 0x1fc5805 + .word 0x1f08c0a + .word 0x1f36005 + .word 0x1f299bc + .word 0x1f96805 + .word 0x1f2d8bd + .word 0x1fb5806 + .word 0x1f2c60a + .word 0x1fc6006 + .word 0x1f2e1bc + .word 0x1fa6806 + .word 0x1f298bd + .word 0x1f35800 + .word 0x1f2ce4a + .word 0x1fb6000 + .word 0x1f2d9bc + .word 0x1f46800 + .word 0x1f2e0bd + .word 0x1fc5801 + .word 0x1f2d68a + .word 0x1f36001 + .word 0x1f299bc + .word 0x1f56801 + .word 0x1f2d8bd + .word 0x1fb5802 + .word 0x1f2a50a + .word 0x1fc6002 + .word 0x1f2e1bc + .word 0x1f66802 + .word 0x1f298bd + .word 0x1f35803 + .word 0x1f2ad4a + .word 0x1fb6003 + .word 0x1f2d9bc + .word 0x1f76803 + .word 0x1f2e0bd + .word 0x81fd537c + .word 0x1f2b58a + .word 0x52083002 + .word 0x1f299bc + .word 0x80000030 + .word 0x1f2d8bd + .word 0x100101ab + .word 0x2ff + .word 0x80000030 + .word 0x1f2bdca + .word 0x806debfc + .word 0x1d2e93c + .word 0x81ed633c + .word 0x41e8c1be + .word 0x81ec5b3c + .word 0x1e9c8be + .word 0x80000030 + .word 0x1e71aa8 + .word 0x52083002 + .word 0x1f0803d + .word 0x80000030 + .word 0x1f08c0a + .word 0x100101ab + .word 0x2ff + .word 0x81ed633c + .word 0x41e8c1be + .word 0x81ec5b3c + .word 0x1e9c8be + .word 0x807003be + .word 0x1e9a8bf + .word 0x80000030 + .word 0x1eab0bf + .word 0x80000030 + .word 0x1e0bbcb + .word 0x80000030 + .word 0x1eb5c2a + .word 0x80000030 + .word 0x1e50a28 + .word 0x80000030 + .word 0x1e61268 + .word 0x80000030 + .word 0x1e71aa8 + .word 0x80000030 + .word 0x1f0803d + .word 0x80000030 + .word 0x1f08c0a + .word 0x81ed633c + .word 0x41e8c1be + .word 0x81ec5b3c + .word 0x1e9c8be + .word 0x80000030 + .word 0x1e149be + .word 0x80000030 + .word 0x1e150bc + .word 0x80000030 + .word 0x1e15849 + .word 0x80000030 + .word 0x1e249be + .word 0x80000030 + .word 0x1e250bc + .word 0x80000030 + .word 0x1e25889 + .word 0x34014800 + .word 0x1e349be + .word 0x80000030 + .word 0x1e350bc + .word 0x80000030 + .word 0x1e358c9 + .word 0x34024800 + .word 0x1e449be + .word 0x80000030 + .word 0x1e450bc + .word 0x80000030 + .word 0x1e45909 + .word 0x34034800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x34044800 + .word 0x2ff + .word 0x80000030 + .word 0x1e549be + .word 0x80000030 + .word 0x1e550bc + .word 0x80000030 + .word 0x1e55949 + .word 0x80000030 + .word 0x1e649be + .word 0x80000030 + .word 0x1e650bc + .word 0x80000030 + .word 0x1e65989 + .word 0x34054800 + .word 0x1e749be + .word 0x80000030 + .word 0x1e750bc + .word 0x80000030 + .word 0x1e759c9 + .word 0x34064800 + .word 0x1e849be + .word 0x80000030 + .word 0x1e850bc + .word 0x80000030 + .word 0x1e85a09 + .word 0x34074800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x34084800 + .word 0x2ff \ No newline at end of file diff --git a/test/decompiler/vu_reference/ocean-texture-result.txt b/test/decompiler/vu_reference/ocean-texture-result.txt new file mode 100644 index 0000000000..334a8bd679 --- /dev/null +++ b/test/decompiler/vu_reference/ocean-texture-result.txt @@ -0,0 +1,152 @@ + b L1 | nop + nop | nop + b L2 | nop + nop | nop + nop | nop :e + nop | nop +L1: + lq.xyzw vf14, 988(vi00) | maxw.xyzw vf01, vf00, vf00 + lq.xyzw vf02, 989(vi00) | nop + lq.xyzw vf03, 986(vi00) | nop + lq.xyzw vf04, 987(vi00) | nop + lq.xyzw vf05, 985(vi00) | nop + lq.xyzw vf06, 991(vi00) | nop + lq.xyzw vf07, 990(vi00) | nop + iaddiu vi11, vi00, 0x80 | nop + mtir vi08, vf03.x | nop + mtir vi09, vf03.x | nop + mr32.xyzw vf03, vf03 | nop + xtop vi05 | nop + mtir vi06, vf04.x | nop + bal vi12, L3 | nop + mr32.xyzw vf04, vf04 | nop + mtir vi06, vf04.x | nop + bal vi12, L3 | nop + mr32.xyzw vf04, vf04 | nop + mtir vi03, vf04.x | nop + bal vi12, L5 | nop + mtir vi04, vf04.y | nop + mtir vi06, vf04.x | nop + bal vi12, L3 | nop + mr32.xyzw vf04, vf04 | nop + mtir vi03, vf04.x | nop + bal vi12, L5 | nop + mtir vi04, vf04.y | nop + nop | nop :e + nop | nop +L2: + xtop vi05 | nop + mtir vi06, vf04.x | nop + bal vi12, L3 | nop + mr32.xyzw vf04, vf04 | nop + mtir vi03, vf04.x | nop + bal vi12, L5 | nop + mtir vi04, vf04.y | nop + mtir vi06, vf04.x | nop + bal vi12, L3 | nop + mr32.xyzw vf04, vf04 | nop + mtir vi03, vf04.x | nop + bal vi12, L5 | nop + mtir vi04, vf04.y | nop + mtir vi06, vf04.x | nop + bal vi12, L3 | nop + mr32.xyzw vf04, vf04 | nop + mtir vi03, vf04.x | nop + bal vi12, L5 | nop + mtir vi04, vf04.y | nop + nop | nop :e + nop | nop +L3: + ior vi07, vi06, vi00 | nop + move.xyzw vf15, vf14 | nop + iaddi vi01, vi00, 0x8 | nop + lq.xyzw vf24, 1(vi05) | mulw.xyzw vf20, vf15, vf00 + lq.xyzw vf25, 3(vi05) | mulw.xyzw vf21, vf15, vf00 + lq.xyzw vf26, 5(vi05) | mulw.xyzw vf22, vf15, vf00 + nop | mulw.xyzw vf23, vf15, vf00 + nop | mulax.xyzw ACC, vf24, vf06 + nop | madday.xyzw ACC, vf25, vf06 + nop | maddz.xyzw vf27, vf26, vf06 + nop | addx.x vf21, vf21, vf02 + nop | addy.x vf22, vf22, vf02 +L4: + nop | addz.x vf23, vf23, vf02 + nop | addw.x vf15, vf15, vf02 + sq.xyzw vf20, 2(vi06) | mulx.x vf28, vf01, vf24 + sq.xyzw vf21, 5(vi06) | muly.x vf29, vf01, vf24 + sq.xyzw vf22, 8(vi06) | mulz.x vf30, vf01, vf24 + sq.xyzw vf23, 11(vi06) | mulw.x vf31, vf01, vf24 + lq.xyzw vf16, 0(vi05) | mulx.y vf28, vf01, vf25 + lq.xyzw vf17, 2(vi05) | muly.y vf29, vf01, vf25 + lq.xyzw vf18, 4(vi05) | mulz.y vf30, vf01, vf25 + lq.xyzw vf19, 6(vi05) | mulw.y vf31, vf01, vf25 + iaddi vi05, vi05, 0x8 | mulx.xy vf28, vf28, vf27 + nop | muly.xy vf29, vf29, vf27 + nop | mulz.xy vf30, vf30, vf27 + nop | mulw.xy vf31, vf31, vf27 + nop | mulw.xy vf28, vf28, vf16 + nop | mulw.xy vf29, vf29, vf17 + nop | mulw.xy vf30, vf30, vf18 + nop | mulw.xy vf31, vf31, vf19 + nop | ftoi0.xyzw vf16, vf16 + nop | ftoi0.xyzw vf17, vf17 + nop | ftoi0.xyzw vf18, vf18 + iaddi vi01, vi01, -0x1 | ftoi0.xyzw vf19, vf19 + mfir.w vf16, vi11 | add.xyzw vf28, vf28, vf06 + mfir.w vf17, vi11 | add.xyzw vf29, vf29, vf06 + mfir.w vf18, vi11 | add.xyzw vf30, vf30, vf06 + mfir.w vf19, vi11 | add.xyzw vf31, vf31, vf06 + nop | mulx.xyzw vf28, vf28, vf07 + nop | mulx.xyzw vf29, vf29, vf07 + nop | mulx.xyzw vf30, vf30, vf07 + nop | mulx.xyzw vf31, vf31, vf07 + nop | addy.xyzw vf28, vf28, vf07 + nop | addy.xyzw vf29, vf29, vf07 + nop | addy.xyzw vf30, vf30, vf07 + nop | addy.xyzw vf31, vf31, vf07 + sq.xyzw vf16, 1(vi06) | sub.zw vf28, vf01, vf00 + sq.xyzw vf17, 4(vi06) | sub.zw vf29, vf01, vf00 + sq.xyzw vf18, 7(vi06) | sub.zw vf30, vf01, vf00 + sq.xyzw vf19, 10(vi06) | sub.zw vf31, vf01, vf00 + lq.xyzw vf24, 1(vi05) | mulw.xyzw vf20, vf15, vf00 + lq.xyzw vf25, 3(vi05) | mulw.xyzw vf21, vf15, vf00 + lq.xyzw vf26, 5(vi05) | mulw.xyzw vf22, vf15, vf00 + sq.xyzw vf28, 0(vi06) | mulw.xyzw vf23, vf15, vf00 + sq.xyzw vf29, 3(vi06) | mulax.xyzw ACC, vf24, vf06 + sq.xyzw vf30, 6(vi06) | madday.xyzw ACC, vf25, vf06 + sq.xyzw vf31, 9(vi06) | maddz.xyzw vf27, vf26, vf06 + ibgtz vi01, L4 | addx.x vf21, vf21, vf02 + iaddi vi06, vi06, 0xc | addy.x vf22, vf22, vf02 + lq.xyzw vf28, 0(vi07) | addx.y vf14, vf14, vf02 + lq.xyzw vf16, 1(vi07) | nop + sq.xyzw vf20, 2(vi06) | nop + sq.xyzw vf28, 0(vi06) | nop + jr vi12 | nop + sq.xyzw vf16, 1(vi06) | nop +L5: + iaddiu vi01, vi00, 0x21 | nop + sq.xyzw vf05, 0(vi08) | nop + iaddi vi08, vi08, 0x1 | nop +L6: + iaddi vi01, vi01, -0x1 | nop + lq.xyzw vf20, 2(vi03) | nop + lq.xyzw vf21, 2(vi04) | nop + lq.xyzw vf28, 0(vi03) | nop + lq.xyzw vf16, 1(vi03) | nop + lq.xyzw vf29, 0(vi04) | ftoi4.xyzw vf20, vf20 + lq.xyzw vf17, 1(vi04) | ftoi4.xyzw vf21, vf21 + sq.xyzw vf28, 0(vi08) | nop + sq.xyzw vf16, 1(vi08) | nop + sq.xyzw vf20, 2(vi08) | nop + sq.xyzw vf29, 3(vi08) | nop + sq.xyzw vf17, 4(vi08) | nop + sq.xyzw vf21, 5(vi08) | nop + iaddi vi03, vi03, 0x3 | nop + iaddi vi04, vi04, 0x3 | nop + ibgtz vi01, L6 | nop + iaddi vi08, vi08, 0x6 | nop + xgkick vi09 | nop + mtir vi08, vf03.x | nop + mtir vi09, vf03.x | nop + jr vi12 | nop + mr32.xyzw vf03, vf03 | nop diff --git a/test/decompiler/vu_reference/ocean-texture.txt b/test/decompiler/vu_reference/ocean-texture.txt new file mode 100644 index 0000000000..2adec8301c --- /dev/null +++ b/test/decompiler/vu_reference/ocean-texture.txt @@ -0,0 +1,292 @@ + .word 0x40000005 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000020 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x1ee03dc + .word 0x1e00053 + .word 0x1e203dd + .word 0x2ff + .word 0x1e303da + .word 0x2ff + .word 0x1e403db + .word 0x2ff + .word 0x1e503d9 + .word 0x2ff + .word 0x1e603df + .word 0x2ff + .word 0x1e703de + .word 0x2ff + .word 0x100b0080 + .word 0x2ff + .word 0x80081bfc + .word 0x2ff + .word 0x80091bfc + .word 0x2ff + .word 0x81e31b3d + .word 0x2ff + .word 0x800506bc + .word 0x2ff + .word 0x800623fc + .word 0x2ff + .word 0x420c0024 + .word 0x2ff + .word 0x81e4233d + .word 0x2ff + .word 0x800623fc + .word 0x2ff + .word 0x420c0021 + .word 0x2ff + .word 0x81e4233d + .word 0x2ff + .word 0x800323fc + .word 0x2ff + .word 0x420c005f + .word 0x2ff + .word 0x802423fc + .word 0x2ff + .word 0x800623fc + .word 0x2ff + .word 0x420c001b + .word 0x2ff + .word 0x81e4233d + .word 0x2ff + .word 0x800323fc + .word 0x2ff + .word 0x420c0059 + .word 0x2ff + .word 0x802423fc + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x800506bc + .word 0x2ff + .word 0x800623fc + .word 0x2ff + .word 0x420c0012 + .word 0x2ff + .word 0x81e4233d + .word 0x2ff + .word 0x800323fc + .word 0x2ff + .word 0x420c0050 + .word 0x2ff + .word 0x802423fc + .word 0x2ff + .word 0x800623fc + .word 0x2ff + .word 0x420c000c + .word 0x2ff + .word 0x81e4233d + .word 0x2ff + .word 0x800323fc + .word 0x2ff + .word 0x420c004a + .word 0x2ff + .word 0x802423fc + .word 0x2ff + .word 0x800623fc + .word 0x2ff + .word 0x420c0006 + .word 0x2ff + .word 0x81e4233d + .word 0x2ff + .word 0x800323fc + .word 0x2ff + .word 0x420c0044 + .word 0x2ff + .word 0x802423fc + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x800031f5 + .word 0x2ff + .word 0x81ef733c + .word 0x2ff + .word 0x80010232 + .word 0x2ff + .word 0x1f82801 + .word 0x1e07d1b + .word 0x1f92803 + .word 0x1e07d5b + .word 0x1fa2805 + .word 0x1e07d9b + .word 0x80000030 + .word 0x1e07ddb + .word 0x80000030 + .word 0x1e6c1bc + .word 0x80000030 + .word 0x1e6c8bd + .word 0x80000030 + .word 0x1e6d6ca + .word 0x80000030 + .word 0x102ad40 + .word 0x80000030 + .word 0x102b581 + .word 0x80000030 + .word 0x102bdc2 + .word 0x80000030 + .word 0x1027bc3 + .word 0x3e6a002 + .word 0x1180f18 + .word 0x3e6a805 + .word 0x1180f59 + .word 0x3e6b008 + .word 0x1180f9a + .word 0x3e6b80b + .word 0x1180fdb + .word 0x1f02800 + .word 0x990f18 + .word 0x1f12802 + .word 0x990f59 + .word 0x1f22804 + .word 0x990f9a + .word 0x1f32806 + .word 0x990fdb + .word 0x80052a32 + .word 0x19be718 + .word 0x80000030 + .word 0x19bef59 + .word 0x80000030 + .word 0x19bf79a + .word 0x80000030 + .word 0x19bffdb + .word 0x80000030 + .word 0x190e71b + .word 0x80000030 + .word 0x191ef5b + .word 0x80000030 + .word 0x192f79b + .word 0x80000030 + .word 0x193ffdb + .word 0x80000030 + .word 0x1f0817c + .word 0x80000030 + .word 0x1f1897c + .word 0x80000030 + .word 0x1f2917c + .word 0x80010ff2 + .word 0x1f3997c + .word 0x80305bfd + .word 0x1e6e728 + .word 0x80315bfd + .word 0x1e6ef68 + .word 0x80325bfd + .word 0x1e6f7a8 + .word 0x80335bfd + .word 0x1e6ffe8 + .word 0x80000030 + .word 0x1e7e718 + .word 0x80000030 + .word 0x1e7ef58 + .word 0x80000030 + .word 0x1e7f798 + .word 0x80000030 + .word 0x1e7ffd8 + .word 0x80000030 + .word 0x1e7e701 + .word 0x80000030 + .word 0x1e7ef41 + .word 0x80000030 + .word 0x1e7f781 + .word 0x80000030 + .word 0x1e7ffc1 + .word 0x3e68001 + .word 0x600f2c + .word 0x3e68804 + .word 0x600f6c + .word 0x3e69007 + .word 0x600fac + .word 0x3e6980a + .word 0x600fec + .word 0x1f82801 + .word 0x1e07d1b + .word 0x1f92803 + .word 0x1e07d5b + .word 0x1fa2805 + .word 0x1e07d9b + .word 0x3e6e000 + .word 0x1e07ddb + .word 0x3e6e803 + .word 0x1e6c1bc + .word 0x3e6f006 + .word 0x1e6c8bd + .word 0x3e6f809 + .word 0x1e6d6ca + .word 0x5a000fd2 + .word 0x102ad40 + .word 0x80063332 + .word 0x102b581 + .word 0x1fc3800 + .word 0x827380 + .word 0x1f03801 + .word 0x2ff + .word 0x3e6a002 + .word 0x2ff + .word 0x3e6e000 + .word 0x2ff + .word 0x48006000 + .word 0x2ff + .word 0x3e68001 + .word 0x2ff + .word 0x10010021 + .word 0x2ff + .word 0x3e82800 + .word 0x2ff + .word 0x80084072 + .word 0x2ff + .word 0x80010ff2 + .word 0x2ff + .word 0x1f41802 + .word 0x2ff + .word 0x1f52002 + .word 0x2ff + .word 0x1fc1800 + .word 0x2ff + .word 0x1f01801 + .word 0x2ff + .word 0x1fd2000 + .word 0x1f4a17d + .word 0x1f12001 + .word 0x1f5a97d + .word 0x3e8e000 + .word 0x2ff + .word 0x3e88001 + .word 0x2ff + .word 0x3e8a002 + .word 0x2ff + .word 0x3e8e803 + .word 0x2ff + .word 0x3e88804 + .word 0x2ff + .word 0x3e8a805 + .word 0x2ff + .word 0x800318f2 + .word 0x2ff + .word 0x800420f2 + .word 0x2ff + .word 0x5a000ff0 + .word 0x2ff + .word 0x800841b2 + .word 0x2ff + .word 0x80004efc + .word 0x2ff + .word 0x80081bfc + .word 0x2ff + .word 0x80091bfc + .word 0x2ff + .word 0x48006000 + .word 0x2ff + .word 0x81e31b3d + .word 0x2ff \ No newline at end of file diff --git a/test/decompiler/vu_reference/ocean-vu0-result.txt b/test/decompiler/vu_reference/ocean-vu0-result.txt new file mode 100644 index 0000000000..757823150a --- /dev/null +++ b/test/decompiler/vu_reference/ocean-vu0-result.txt @@ -0,0 +1,72 @@ + nop | mulay.x ACC, vf12, vf02 + nop | mulax.z ACC, vf12, vf03 + nop | msub.xz vf24, vf12, vf02 + nop | mulaz.x ACC, vf12, vf02 + nop | mulay.z ACC, vf12, vf03 + nop | msub.xz vf25, vf12, vf02 + nop | mulaw.x ACC, vf12, vf02 + nop | mulaz.z ACC, vf12, vf03 + nop | msub.xz vf26, vf12, vf02 + nop | mulax.x ACC, vf12, vf04 + nop | mulaw.z ACC, vf12, vf03 + nop | msub.xz vf27, vf12, vf02 + nop | mul.xz vf28, vf24, vf24 + nop | mul.xz vf29, vf25, vf25 + nop | mul.xz vf30, vf26, vf26 + nop | mul.xz vf31, vf27, vf27 + nop | subx.y vf24, vf01, vf28 + nop | subx.y vf25, vf01, vf29 + nop | subx.y vf26, vf01, vf30 + nop | subx.y vf27, vf01, vf31 + nop | subz.y vf24, vf24, vf28 + nop | subz.y vf25, vf25, vf29 + nop | subz.y vf26, vf26, vf30 + nop | subz.y vf27, vf27, vf31 + nop | mulx.w vf24, vf01, vf02 + nop | muly.w vf25, vf01, vf02 + nop | mulz.w vf26, vf01, vf02 + nop | mulw.w vf27, vf01, vf02 + nop | mulax.xyzw ACC, vf05, vf24 + nop | madday.xyzw ACC, vf06, vf24 + nop | maddz.xyz vf16, vf07, vf24 + nop | subw.z vf24, vf24, vf00 + nop | mulax.xyzw ACC, vf05, vf25 + nop | madday.xyzw ACC, vf06, vf25 + nop | maddz.xyz vf17, vf07, vf25 + div Q, vf00.w, vf24.z | subw.z vf25, vf25, vf00 + nop | mulax.xyzw ACC, vf05, vf26 + nop | madday.xyzw ACC, vf06, vf26 + nop | maddz.xyz vf18, vf07, vf26 + nop | subw.z vf26, vf26, vf00 + nop | mulax.xyzw ACC, vf05, vf27 + nop | madday.xyzw ACC, vf06, vf27 + nop | mul.w vf20, vf00, Q + div Q, vf00.w, vf25.z | maddz.xyz vf19, vf07, vf27 + nop | subw.z vf27, vf27, vf00 + nop | maxx.xyz vf16, vf16, vf00 + nop | maxx.xyz vf17, vf17, vf00 + nop | maxx.xyz vf18, vf18, vf00 + nop | maxx.xyz vf19, vf19, vf00 + nop | mul.w vf21, vf00, Q + div Q, vf00.w, vf26.z | mula.xyzw ACC, vf01, vf11 + nop | maddax.xyz ACC, vf08, vf16 + nop | madday.xyz ACC, vf09, vf16 + nop | maddz.xyz vf20, vf10, vf16 + nop | mula.xyzw ACC, vf01, vf11 + nop | maddax.xyz ACC, vf08, vf17 + nop | madday.xyz ACC, vf09, vf17 + nop | mul.w vf22, vf00, Q + nop | maddz.xyz vf21, vf10, vf17 + div Q, vf00.w, vf27.z | mula.xyzw ACC, vf01, vf11 + nop | maddax.xyz ACC, vf08, vf18 + nop | madday.xyz ACC, vf09, vf18 + nop | maddz.xyz vf22, vf10, vf18 + nop | mula.xyzw ACC, vf01, vf11 + nop | maddax.xyz ACC, vf08, vf19 + nop | madday.xyz ACC, vf09, vf19 + nop | maddz.xyz vf23, vf10, vf19 + nop | mul.w vf23, vf00, Q + nop | miniy.xyz vf20, vf20, vf12 + nop | miniy.xyz vf21, vf21, vf12 + nop | miniy.xyz vf22, vf22, vf12 :e + nop | miniy.xyz vf23, vf23, vf12 diff --git a/test/decompiler/vu_reference/ocean-vu0.txt b/test/decompiler/vu_reference/ocean-vu0.txt new file mode 100644 index 0000000000..05eb59ab0a --- /dev/null +++ b/test/decompiler/vu_reference/ocean-vu0.txt @@ -0,0 +1,144 @@ + .word 0x80000030 + .word 0x10261bd + .word 0x80000030 + .word 0x4361bc + .word 0x80000030 + .word 0x142660c + .word 0x80000030 + .word 0x10261be + .word 0x80000030 + .word 0x4361bd + .word 0x80000030 + .word 0x142664d + .word 0x80000030 + .word 0x10261bf + .word 0x80000030 + .word 0x4361be + .word 0x80000030 + .word 0x142668e + .word 0x80000030 + .word 0x10461bc + .word 0x80000030 + .word 0x4361bf + .word 0x80000030 + .word 0x14266cf + .word 0x80000030 + .word 0x158c72a + .word 0x80000030 + .word 0x159cf6a + .word 0x80000030 + .word 0x15ad7aa + .word 0x80000030 + .word 0x15bdfea + .word 0x80000030 + .word 0x9c0e04 + .word 0x80000030 + .word 0x9d0e44 + .word 0x80000030 + .word 0x9e0e84 + .word 0x80000030 + .word 0x9f0ec4 + .word 0x80000030 + .word 0x9cc606 + .word 0x80000030 + .word 0x9dce46 + .word 0x80000030 + .word 0x9ed686 + .word 0x80000030 + .word 0x9fdec6 + .word 0x80000030 + .word 0x220e18 + .word 0x80000030 + .word 0x220e59 + .word 0x80000030 + .word 0x220e9a + .word 0x80000030 + .word 0x220edb + .word 0x80000030 + .word 0x1f829bc + .word 0x80000030 + .word 0x1f830bd + .word 0x80000030 + .word 0x1d83c0a + .word 0x80000030 + .word 0x40c607 + .word 0x80000030 + .word 0x1f929bc + .word 0x80000030 + .word 0x1f930bd + .word 0x80000030 + .word 0x1d93c4a + .word 0x817803bc + .word 0x40ce47 + .word 0x80000030 + .word 0x1fa29bc + .word 0x80000030 + .word 0x1fa30bd + .word 0x80000030 + .word 0x1da3c8a + .word 0x80000030 + .word 0x40d687 + .word 0x80000030 + .word 0x1fb29bc + .word 0x80000030 + .word 0x1fb30bd + .word 0x80000030 + .word 0x20051c + .word 0x817903bc + .word 0x1db3cca + .word 0x80000030 + .word 0x40dec7 + .word 0x80000030 + .word 0x1c08410 + .word 0x80000030 + .word 0x1c08c50 + .word 0x80000030 + .word 0x1c09490 + .word 0x80000030 + .word 0x1c09cd0 + .word 0x80000030 + .word 0x20055c + .word 0x817a03bc + .word 0x1eb0abe + .word 0x80000030 + .word 0x1d040bc + .word 0x80000030 + .word 0x1d048bd + .word 0x80000030 + .word 0x1d0550a + .word 0x80000030 + .word 0x1eb0abe + .word 0x80000030 + .word 0x1d140bc + .word 0x80000030 + .word 0x1d148bd + .word 0x80000030 + .word 0x20059c + .word 0x80000030 + .word 0x1d1554a + .word 0x817b03bc + .word 0x1eb0abe + .word 0x80000030 + .word 0x1d240bc + .word 0x80000030 + .word 0x1d248bd + .word 0x80000030 + .word 0x1d2558a + .word 0x80000030 + .word 0x1eb0abe + .word 0x80000030 + .word 0x1d340bc + .word 0x80000030 + .word 0x1d348bd + .word 0x80000030 + .word 0x1d355ca + .word 0x80000030 + .word 0x2005dc + .word 0x80000030 + .word 0x1cca515 + .word 0x80000030 + .word 0x1ccad55 + .word 0x80000030 + .word 0x41ccb595 + .word 0x80000030 + .word 0x1ccbdd5 \ No newline at end of file diff --git a/test/decompiler/vu_reference/shadow-result.txt b/test/decompiler/vu_reference/shadow-result.txt new file mode 100644 index 0000000000..672bc652ca --- /dev/null +++ b/test/decompiler/vu_reference/shadow-result.txt @@ -0,0 +1,792 @@ + b L1 | nop + nop | nop + b L2 | nop + nop | nop + b L13 | nop + nop | nop + b L21 | nop + nop | nop + nop | nop :e + nop | nop +L1: + iaddiu vi01, vi00, 0x358 | nop + iaddiu vi02, vi00, 0x364 | nop + mfir.x vf01, vi01 | nop + mfir.y vf01, vi02 | nop + mfir.z vf01, vi01 | nop + mfir.w vf01, vi02 | nop + lq.xyzw vf02, 880(vi00) | nop + lq.xyzw vf03, 882(vi00) | nop + lq.xyzw vf04, 883(vi00) | nop + lq.xyzw vf05, 884(vi00) | nop + lq.xyzw vf12, 885(vi00) | nop :e + lq.xyzw vf13, 881(vi00) | nop +L2: + iaddiu vi03, vi00, 0x158 | nop + ilwr.x vi08, vi03 | nop + mtir vi02, vf01.x | nop + iaddi vi03, vi03, 0x1 | addw.z vf25, vf00, vf00 + lq.xyzw vf25, 888(vi00) | addw.z vf26, vf00, vf00 + lq.xyzw vf29, 889(vi00) | addw.z vf27, vf00, vf00 + lq.xyzw vf30, 891(vi00) | addw.z vf28, vf00, vf00 + lq.xyzw vf06, 0(vi00) | nop + lq.xyzw vf07, 1(vi00) | nop + lq.xyzw vf08, 2(vi00) | nop + lq.xyzw vf09, 3(vi00) | nop + mtir vi01, vf01.y | nop + sq.xyzw vf25, 0(vi02) | nop + sq.xyzw vf29, 1(vi02) | nop + sq.xyzw vf30, 2(vi02) | nop + sq.xyzw vf25, 0(vi01) | nop + sq.xyzw vf29, 1(vi01) | nop + sq.xyzw vf30, 2(vi01) | nop +L3: + lqi.xyzw vf16, vi03 | nop + nop | nop + nop | nop + nop | nop + mtir vi04, vf16.x | nop + mtir vi05, vf16.y | nop + mtir vi06, vf16.z | nop + nop | nop + lq.xyzw vf17, 4(vi04) | nop + lq.xyzw vf18, 4(vi05) | nop + lq.xyzw vf19, 4(vi06) | nop + nop | mulaw.xyzw ACC, vf09, vf00 + move.xyzw vf15, vf17 | maddax.xyzw ACC, vf06, vf17 + nop | madday.xyzw ACC, vf07, vf17 + nop | maddz.xyzw vf17, vf08, vf17 + nop | mulaw.xyzw ACC, vf09, vf00 + nop | sub.xyzw vf29, vf18, vf15 + nop | sub.xyzw vf30, vf19, vf15 + div Q, vf12.x, vf17.w | maddax.xyzw ACC, vf06, vf18 + nop | mul.xyzw vf21, vf17, vf02 + nop | madday.xyzw ACC, vf07, vf18 + nop | maddz.xyzw vf18, vf08, vf18 + nop | mulaw.xyzw ACC, vf09, vf00 + nop | maddax.xyzw ACC, vf06, vf19 + nop | madday.xyzw ACC, vf07, vf19 + div Q, vf12.x, vf18.w | mul.xyz vf17, vf17, Q + nop | maddz.xyzw vf19, vf08, vf19 + nop | mul.xyzw vf22, vf18, vf02 + nop | opmula.xyz ACC, vf29, vf30 + nop | opmsub.xyz vf29, vf30, vf29 + nop | add.xy vf25, vf17, vf03 + nop | add.xyzw vf17, vf17, vf05 + div Q, vf12.x, vf19.w | mul.xyz vf18, vf18, Q + nop | mul.xyzw vf23, vf19, vf02 + nop | mul.xyz vf29, vf29, vf15 + nop | mul.xy vf25, vf25, vf04 + nop | mini.xyzw vf10, vf10, vf17 + nop | max.xyzw vf11, vf11, vf17 + nop | ftoi4.xyzw vf17, vf17 + nop | add.xy vf26, vf18, vf03 + nop | add.xyzw vf18, vf18, vf05 + fcset 0x0 | addy.x vf29, vf29, vf29 + nop | mul.xyz vf19, vf19, Q + sq.xyzw vf25, 4(vi02) | mini.xyzw vf10, vf10, vf18 + sq.xyzw vf17, 5(vi02) | max.xyzw vf11, vf11, vf18 + nop | clipw.xyz vf21, vf21 + nop | mul.xy vf26, vf26, vf04 + nop | addz.x vf29, vf29, vf29 + nop | ftoi4.xyzw vf18, vf18 + nop | add.xy vf27, vf19, vf03 + sq.xyzw vf26, 6(vi02) | add.xyzw vf19, vf19, vf05 + fsand vi01, 0x2 | clipw.xyz vf22, vf22 + sq.xyzw vf18, 7(vi02) | clipw.xyz vf23, vf23 + ibeq vi00, vi01, L4 | mul.xy vf27, vf27, vf04 + nop | mini.xyzw vf10, vf10, vf19 + b L5 | nop + lq.xyzw vf31, 887(vi00) | max.xyzw vf11, vf11, vf19 +L4: + lq.xyzw vf31, 886(vi00) | max.xyzw vf11, vf11, vf19 +L5: + fcand vi01, 0x3ffff | ftoi4.xyzw vf19, vf19 + ibne vi00, vi01, L11 | nop + iaddi vi08, vi08, -0x1 | nop + sq.xyzw vf27, 8(vi02) | nop + sq.xyzw vf31, 3(vi02) | nop + sq.xyzw vf19, 9(vi02) | nop + xgkick vi02 | nop + mtir vi02, vf01.y | nop + mr32.xyzw vf01, vf01 | nop +L6: + ibgtz vi08, L3 | nop + nop | nop + iaddiu vi03, vi00, 0x158 | nop + ilwr.x vi08, vi03 | nop + iaddi vi03, vi03, 0x1 | nop +L7: + lqi.xyzw vf16, vi03 | nop + nop | nop + nop | nop + nop | nop + mtir vi04, vf16.x | nop + mtir vi05, vf16.y | nop + mtir vi06, vf16.z | nop + nop | nop + lq.xyzw vf17, 174(vi04) | nop + lq.xyzw vf18, 174(vi06) | nop + lq.xyzw vf19, 174(vi05) | nop + nop | mulaw.xyzw ACC, vf09, vf00 + move.xyzw vf15, vf17 | maddax.xyzw ACC, vf06, vf17 + nop | madday.xyzw ACC, vf07, vf17 + nop | maddz.xyzw vf17, vf08, vf17 + nop | mulaw.xyzw ACC, vf09, vf00 + nop | sub.xyzw vf29, vf18, vf15 + nop | sub.xyzw vf30, vf19, vf15 + div Q, vf12.x, vf17.w | maddax.xyzw ACC, vf06, vf18 + nop | mul.xyzw vf21, vf17, vf02 + nop | madday.xyzw ACC, vf07, vf18 + nop | maddz.xyzw vf18, vf08, vf18 + nop | mulaw.xyzw ACC, vf09, vf00 + nop | maddax.xyzw ACC, vf06, vf19 + nop | madday.xyzw ACC, vf07, vf19 + div Q, vf12.x, vf18.w | mul.xyz vf17, vf17, Q + nop | maddz.xyzw vf19, vf08, vf19 + nop | mul.xyzw vf22, vf18, vf02 + nop | opmula.xyz ACC, vf29, vf30 + nop | opmsub.xyz vf29, vf30, vf29 + nop | add.xy vf25, vf17, vf03 + nop | add.xyzw vf17, vf17, vf05 + div Q, vf12.x, vf19.w | mul.xyz vf18, vf18, Q + nop | mul.xyzw vf23, vf19, vf02 + nop | mul.xyz vf29, vf29, vf15 + nop | mul.xy vf25, vf25, vf04 + nop | mini.xyzw vf10, vf10, vf17 + nop | max.xyzw vf11, vf11, vf17 + nop | ftoi4.xyzw vf17, vf17 + nop | add.xy vf26, vf18, vf03 + nop | add.xyzw vf18, vf18, vf05 + fcset 0x0 | addy.x vf29, vf29, vf29 + nop | mul.xyz vf19, vf19, Q + sq.xyzw vf25, 4(vi02) | mini.xyzw vf10, vf10, vf18 + sq.xyzw vf17, 5(vi02) | max.xyzw vf11, vf11, vf18 + nop | clipw.xyz vf21, vf21 + nop | mul.xy vf26, vf26, vf04 + iaddi vi08, vi08, -0x1 | addz.x vf29, vf29, vf29 + nop | ftoi4.xyzw vf18, vf18 + nop | add.xy vf27, vf19, vf03 + sq.xyzw vf26, 6(vi02) | add.xyzw vf19, vf19, vf05 + fsand vi01, 0x2 | clipw.xyz vf22, vf22 + sq.xyzw vf18, 7(vi02) | clipw.xyz vf23, vf23 + ibeq vi00, vi01, L8 | mul.xy vf27, vf27, vf04 + nop | mini.xyzw vf10, vf10, vf19 + b L9 | nop + lq.xyzw vf31, 887(vi00) | max.xyzw vf11, vf11, vf19 +L8: + lq.xyzw vf31, 886(vi00) | max.xyzw vf11, vf11, vf19 +L9: + fcand vi01, 0x3ffff | ftoi4.xyzw vf19, vf19 + ibne vi00, vi01, L12 | nop + sq.xyzw vf27, 8(vi02) | nop + sq.xyzw vf31, 3(vi02) | nop + sq.xyzw vf19, 9(vi02) | nop + xgkick vi02 | nop + mtir vi02, vf01.y | nop + mr32.xyzw vf01, vf01 | nop +L10: + ibgtz vi08, L7 | nop + nop | nop + nop | nop :e + nop | nop +L11: + sq.xyzw vf21, 1000(vi00) | nop + sq.xyzw vf22, 1003(vi00) | nop + sq.xyzw vf23, 1006(vi00) | nop + sq.xyzw vf31, 942(vi00) | nop + mfir.x vf29, vi02 | nop + mfir.y vf29, vi03 | nop + mfir.z vf29, vi07 | nop + bal vi15, L36 | nop + mfir.w vf29, vi08 | nop + mtir vi08, vf29.w | nop + mtir vi03, vf29.y | nop + mtir vi07, vf29.z | nop + b L6 | nop + mtir vi02, vf29.x | nop +L12: + sq.xyzw vf21, 1000(vi00) | nop + sq.xyzw vf22, 1003(vi00) | nop + sq.xyzw vf23, 1006(vi00) | nop + sq.xyzw vf31, 942(vi00) | nop + mfir.x vf29, vi02 | nop + mfir.y vf29, vi03 | nop + mfir.z vf29, vi07 | nop + bal vi15, L36 | nop + mfir.w vf29, vi08 | nop + mtir vi08, vf29.w | nop + mtir vi03, vf29.y | nop + mtir vi07, vf29.z | nop + b L10 | nop + mtir vi02, vf29.x | nop +L13: + iaddiu vi03, vi00, 0x258 | nop + ilwr.x vi08, vi03 | nop + mtir vi02, vf01.x | nop + iaddi vi03, vi03, 0x1 | addw.z vf25, vf00, vf00 + lq.xyzw vf25, 888(vi00) | addw.z vf26, vf00, vf00 + lq.xyzw vf29, 889(vi00) | addw.z vf27, vf00, vf00 + lq.xyzw vf30, 892(vi00) | nop + lq.xyzw vf06, 0(vi00) | nop + lq.xyzw vf07, 1(vi00) | nop + lq.xyzw vf08, 2(vi00) | nop + lq.xyzw vf09, 3(vi00) | nop + mtir vi01, vf01.y | nop + sq.xyzw vf25, 0(vi02) | nop + sq.xyzw vf29, 1(vi02) | nop + sq.xyzw vf30, 2(vi02) | nop + sq.xyzw vf25, 0(vi01) | nop + sq.xyzw vf29, 1(vi01) | nop + sq.xyzw vf30, 2(vi01) | nop +L14: + lqi.xyzw vf16, vi03 | nop + nop | nop + nop | nop + nop | nop + mtir vi06, vf16.z | nop + mtir vi04, vf16.x | nop + mtir vi05, vf16.y | nop + ibeq vi00, vi06, L15 | nop + nop | nop + lq.xyzw vf17, 4(vi04) | nop + lq.xyzw vf18, 4(vi05) | nop + lq.xyzw vf19, 174(vi05) | nop + b L16 | nop + lq.xyzw vf20, 174(vi04) | nop +L15: + lq.xyzw vf17, 4(vi05) | nop + lq.xyzw vf18, 4(vi04) | nop + lq.xyzw vf19, 174(vi04) | nop + lq.xyzw vf20, 174(vi05) | nop +L16: + move.xyzw vf15, vf17 | mulaw.xyzw ACC, vf09, vf00 + nop | maddax.xyzw ACC, vf06, vf17 + nop | madday.xyzw ACC, vf07, vf17 + nop | maddz.xyzw vf17, vf08, vf17 + nop | mulaw.xyzw ACC, vf09, vf00 + nop | sub.xyzw vf29, vf18, vf15 + nop | sub.xyzw vf30, vf19, vf15 + div Q, vf12.x, vf17.w | maddax.xyzw ACC, vf06, vf18 + nop | mul.xyzw vf21, vf17, vf02 + nop | madday.xyzw ACC, vf07, vf18 + nop | maddz.xyzw vf18, vf08, vf18 + nop | mulaw.xyzw ACC, vf09, vf00 + nop | maddax.xyzw ACC, vf06, vf19 + nop | madday.xyzw ACC, vf07, vf19 + div Q, vf12.x, vf18.w | mul.xyz vf17, vf17, Q + nop | maddz.xyzw vf19, vf08, vf19 + nop | mulaw.xyzw ACC, vf09, vf00 + nop | maddax.xyzw ACC, vf06, vf20 + nop | madday.xyzw ACC, vf07, vf20 + nop | maddz.xyzw vf20, vf08, vf20 + nop | mul.xyzw vf22, vf18, vf02 + div Q, vf12.x, vf19.w | mul.xyz vf18, vf18, Q + nop | add.xy vf25, vf17, vf03 + nop | add.xyzw vf17, vf17, vf05 + nop | opmula.xyz ACC, vf29, vf30 + nop | opmsub.xyz vf29, vf30, vf29 + nop | mul.xyzw vf23, vf19, vf02 + nop | mul.xyz vf29, vf29, vf15 + div Q, vf12.x, vf20.w | mul.xyz vf19, vf19, Q + nop | mul.xyzw vf24, vf20, vf02 + nop | mul.xy vf25, vf25, vf04 + nop | mini.xyzw vf10, vf10, vf17 + nop | max.xyzw vf11, vf11, vf17 + nop | ftoi4.xyzw vf17, vf17 + nop | add.xy vf26, vf18, vf03 + nop | mul.xyz vf20, vf20, Q + nop | add.xyzw vf18, vf18, vf05 + nop | addy.x vf29, vf29, vf29 + sq.xyzw vf25, 4(vi02) | mini.xyzw vf10, vf10, vf18 + sq.xyzw vf17, 5(vi02) | max.xyzw vf11, vf11, vf18 + nop | clipw.xyz vf21, vf21 + nop | mul.xy vf26, vf26, vf04 + nop | addz.x vf29, vf29, vf29 + nop | ftoi4.xyzw vf18, vf18 + nop | add.xy vf27, vf19, vf03 + sq.xyzw vf26, 6(vi02) | add.xyzw vf19, vf19, vf05 + fsand vi01, 0x2 | clipw.xyz vf22, vf22 + sq.xyzw vf18, 7(vi02) | clipw.xyz vf23, vf23 + nop | clipw.xyz vf24, vf24 + nop | add.xy vf28, vf20, vf03 + nop | add.xyzw vf20, vf20, vf05 + nop | mul.xy vf27, vf27, vf04 + nop | mini.xyzw vf10, vf10, vf19 + nop | max.xyzw vf11, vf11, vf19 + ibeq vi00, vi01, L17 | mul.xy vf28, vf28, vf04 + nop | mini.xyzw vf10, vf10, vf20 + b L18 | nop + lq.xyzw vf31, 887(vi00) | max.xyzw vf11, vf11, vf20 +L17: + lq.xyzw vf31, 886(vi00) | max.xyzw vf11, vf11, vf20 +L18: + fcand vi01, 0xffffff | ftoi4.xyzw vf19, vf19 + ibne vi00, vi01, L20 | max.xyzw vf11, vf11, vf20 + iaddi vi08, vi08, -0x1 | nop + sq.xyzw vf27, 8(vi02) | ftoi4.xyzw vf20, vf20 + sq.xyzw vf31, 3(vi02) | nop + sq.xyzw vf19, 9(vi02) | nop + sq.xyzw vf28, 10(vi02) | nop + sq.xyzw vf20, 11(vi02) | nop + xgkick vi02 | nop + mtir vi02, vf01.y | nop + mr32.xyzw vf01, vf01 | nop +L19: + ibgtz vi08, L14 | nop + nop | nop + nop | nop :e + nop | nop +L20: + sq.xyzw vf21, 1000(vi00) | nop + sq.xyzw vf22, 1003(vi00) | nop + sq.xyzw vf23, 1006(vi00) | nop + sq.xyzw vf24, 1009(vi00) | nop + sq.xyzw vf31, 942(vi00) | nop + mfir.x vf29, vi02 | nop + mfir.y vf29, vi03 | nop + mfir.z vf29, vi07 | nop + bal vi15, L37 | nop + mfir.w vf29, vi08 | nop + mtir vi08, vf29.w | nop + mtir vi03, vf29.y | nop + mtir vi07, vf29.z | nop + b L19 | nop + mtir vi02, vf29.x | nop +L21: + iaddiu vi03, vi00, 0x158 | nop + ilwr.x vi08, vi03 | nop + mtir vi02, vf01.x | nop + iaddi vi03, vi03, 0x1 | addw.z vf25, vf00, vf00 + lq.xyzw vf25, 888(vi00) | addw.z vf26, vf00, vf00 + lq.xyzw vf29, 889(vi00) | addw.z vf27, vf00, vf00 + lq.xyzw vf30, 891(vi00) | addw.z vf28, vf00, vf00 + lq.xyzw vf06, 0(vi00) | nop + lq.xyzw vf07, 1(vi00) | nop + lq.xyzw vf08, 2(vi00) | nop + lq.xyzw vf09, 3(vi00) | nop + mtir vi01, vf01.y | nop + sq.xyzw vf25, 0(vi02) | nop + sq.xyzw vf29, 1(vi02) | nop + sq.xyzw vf30, 2(vi02) | nop + sq.xyzw vf25, 0(vi01) | nop + sq.xyzw vf29, 1(vi01) | nop + sq.xyzw vf30, 2(vi01) | nop +L22: + lqi.xyzw vf16, vi03 | nop + nop | nop + nop | nop + nop | nop + mtir vi01, vf16.w | nop + mtir vi04, vf16.x | nop + mtir vi05, vf16.y | nop + mtir vi06, vf16.z | nop + ibeq vi00, vi01, L23 | nop + lq.xyzw vf17, 4(vi04) | nop + lq.xyzw vf18, 4(vi05) | nop + b L24 | nop + lq.xyzw vf19, 4(vi06) | nop +L23: + lq.xyzw vf19, 4(vi05) | nop + lq.xyzw vf18, 4(vi06) | nop +L24: + nop | mulaw.xyzw ACC, vf09, vf00 + move.xyzw vf15, vf17 | maddax.xyzw ACC, vf06, vf17 + nop | madday.xyzw ACC, vf07, vf17 + nop | sub.xyzw vf29, vf18, vf17 + nop | sub.xyzw vf30, vf19, vf17 + nop | maddz.xyzw vf17, vf08, vf17 + nop | mulaw.xyzw ACC, vf09, vf00 + div Q, vf12.x, vf17.w | maddax.xyzw ACC, vf06, vf18 + nop | madday.xyzw ACC, vf07, vf18 + nop | mul.xyzw vf21, vf17, vf02 + nop | maddz.xyzw vf18, vf08, vf18 + nop | mulaw.xyzw ACC, vf09, vf00 + nop | maddax.xyzw ACC, vf06, vf19 + nop | madday.xyzw ACC, vf07, vf19 + div Q, vf12.x, vf18.w | mul.xyz vf17, vf17, Q + nop | maddz.xyzw vf19, vf08, vf19 + nop | mul.xyzw vf22, vf18, vf02 + nop | opmula.xyz ACC, vf29, vf30 + nop | opmsub.xyz vf29, vf30, vf29 + nop | add.xy vf25, vf17, vf03 + nop | add.xyzw vf17, vf17, vf05 + div Q, vf12.x, vf19.w | mul.xyz vf18, vf18, Q + nop | mul.xyzw vf23, vf19, vf02 + nop | mul.xyz vf29, vf29, vf15 + nop | mul.xy vf25, vf25, vf04 + nop | mini.xyzw vf10, vf10, vf17 + nop | max.xyzw vf11, vf11, vf17 + nop | ftoi4.xyzw vf17, vf17 + nop | add.xy vf26, vf18, vf03 + nop | add.xyzw vf18, vf18, vf05 + fcset 0x0 | addy.x vf29, vf29, vf29 + nop | mul.xyz vf19, vf19, Q + sq.xyzw vf25, 4(vi02) | mini.xyzw vf10, vf10, vf18 + sq.xyzw vf17, 5(vi02) | max.xyzw vf11, vf11, vf18 + nop | clipw.xyz vf21, vf21 + nop | mul.xy vf26, vf26, vf04 + nop | addz.x vf29, vf29, vf29 + nop | ftoi4.xyzw vf18, vf18 + nop | add.xy vf27, vf19, vf03 + sq.xyzw vf26, 6(vi02) | add.xyzw vf19, vf19, vf05 + fsand vi01, 0x2 | clipw.xyz vf22, vf22 + sq.xyzw vf18, 7(vi02) | clipw.xyz vf23, vf23 + ibeq vi00, vi01, L25 | mul.xy vf27, vf27, vf04 + nop | mini.xyzw vf10, vf10, vf19 + b L26 | nop + lq.xyzw vf31, 887(vi00) | max.xyzw vf11, vf11, vf19 +L25: + lq.xyzw vf31, 886(vi00) | max.xyzw vf11, vf11, vf19 +L26: + fcand vi01, 0x3ffff | ftoi4.xyzw vf19, vf19 + ibne vi00, vi01, L34 | nop + iaddi vi08, vi08, -0x1 | nop + sq.xyzw vf27, 8(vi02) | nop + sq.xyzw vf31, 3(vi02) | nop + sq.xyzw vf19, 9(vi02) | nop + xgkick vi02 | nop + mtir vi02, vf01.y | nop + mr32.xyzw vf01, vf01 | nop +L27: + ibgtz vi08, L22 | nop + nop | nop + iaddiu vi03, vi00, 0x158 | nop + ilwr.x vi08, vi03 | nop + iaddi vi03, vi03, 0x1 | nop +L28: + lqi.xyzw vf16, vi03 | nop + nop | nop + nop | nop + nop | nop + mtir vi01, vf16.w | nop + mtir vi04, vf16.x | nop + mtir vi05, vf16.y | nop + mtir vi06, vf16.z | nop + ibne vi00, vi01, L29 | nop + lq.xyzw vf17, 174(vi04) | nop + lq.xyzw vf18, 174(vi05) | nop + b L30 | nop + lq.xyzw vf19, 174(vi06) | nop +L29: + lq.xyzw vf19, 174(vi05) | nop + lq.xyzw vf18, 174(vi06) | nop +L30: + nop | mulaw.xyzw ACC, vf09, vf00 + move.xyzw vf15, vf17 | maddax.xyzw ACC, vf06, vf17 + nop | madday.xyzw ACC, vf07, vf17 + nop | maddz.xyzw vf17, vf08, vf17 + nop | mulaw.xyzw ACC, vf09, vf00 + nop | sub.xyzw vf29, vf18, vf15 + nop | sub.xyzw vf30, vf19, vf15 + div Q, vf12.x, vf17.w | maddax.xyzw ACC, vf06, vf18 + nop | mul.xyzw vf21, vf17, vf02 + nop | madday.xyzw ACC, vf07, vf18 + nop | maddz.xyzw vf18, vf08, vf18 + nop | mulaw.xyzw ACC, vf09, vf00 + nop | maddax.xyzw ACC, vf06, vf19 + nop | madday.xyzw ACC, vf07, vf19 + div Q, vf12.x, vf18.w | mul.xyz vf17, vf17, Q + nop | maddz.xyzw vf19, vf08, vf19 + nop | mul.xyzw vf22, vf18, vf02 + nop | opmula.xyz ACC, vf29, vf30 + nop | opmsub.xyz vf29, vf30, vf29 + nop | add.xy vf25, vf17, vf03 + nop | add.xyzw vf17, vf17, vf05 + div Q, vf12.x, vf19.w | mul.xyz vf18, vf18, Q + nop | mul.xyzw vf23, vf19, vf02 + nop | mul.xyz vf29, vf29, vf15 + nop | mul.xy vf25, vf25, vf04 + nop | mini.xyzw vf10, vf10, vf17 + nop | max.xyzw vf11, vf11, vf17 + nop | ftoi4.xyzw vf17, vf17 + nop | add.xy vf26, vf18, vf03 + nop | add.xyzw vf18, vf18, vf05 + fcset 0x0 | addy.x vf29, vf29, vf29 + nop | mul.xyz vf19, vf19, Q + sq.xyzw vf25, 4(vi02) | mini.xyzw vf10, vf10, vf18 + sq.xyzw vf17, 5(vi02) | max.xyzw vf11, vf11, vf18 + nop | clipw.xyz vf21, vf21 + nop | mul.xy vf26, vf26, vf04 + nop | addz.x vf29, vf29, vf29 + nop | ftoi4.xyzw vf18, vf18 + nop | add.xy vf27, vf19, vf03 + sq.xyzw vf26, 6(vi02) | add.xyzw vf19, vf19, vf05 + fsand vi01, 0x2 | clipw.xyz vf22, vf22 + sq.xyzw vf18, 7(vi02) | clipw.xyz vf23, vf23 + ibeq vi00, vi01, L31 | mul.xy vf27, vf27, vf04 + nop | mini.xyzw vf10, vf10, vf19 + b L32 | nop + lq.xyzw vf31, 887(vi00) | max.xyzw vf11, vf11, vf19 +L31: + lq.xyzw vf31, 886(vi00) | max.xyzw vf11, vf11, vf19 +L32: + fcand vi01, 0x3ffff | ftoi4.xyzw vf19, vf19 + ibne vi00, vi01, L35 | nop + iaddi vi08, vi08, -0x1 | nop + sq.xyzw vf27, 8(vi02) | nop + sq.xyzw vf31, 3(vi02) | nop + sq.xyzw vf19, 9(vi02) | nop + xgkick vi02 | nop + mtir vi02, vf01.y | nop + mr32.xyzw vf01, vf01 | nop +L33: + ibgtz vi08, L28 | nop + nop | nop + nop | nop :e + nop | nop +L34: + sq.xyzw vf21, 1000(vi00) | nop + sq.xyzw vf22, 1003(vi00) | nop + sq.xyzw vf23, 1006(vi00) | nop + sq.xyzw vf31, 942(vi00) | nop + mfir.x vf29, vi02 | nop + mfir.y vf29, vi03 | nop + mfir.z vf29, vi07 | nop + bal vi15, L36 | nop + mfir.w vf29, vi08 | nop + mtir vi08, vf29.w | nop + mtir vi03, vf29.y | nop + mtir vi07, vf29.z | nop + b L27 | nop + mtir vi02, vf29.x | nop +L35: + sq.xyzw vf21, 1000(vi00) | nop + sq.xyzw vf22, 1003(vi00) | nop + sq.xyzw vf23, 1006(vi00) | nop + sq.xyzw vf31, 942(vi00) | nop + mfir.x vf29, vi02 | nop + mfir.y vf29, vi03 | nop + mfir.z vf29, vi07 | nop + bal vi15, L36 | nop + mfir.w vf29, vi08 | nop + mtir vi08, vf29.w | nop + mtir vi03, vf29.y | nop + mtir vi07, vf29.z | nop + b L33 | nop + mtir vi02, vf29.x | nop +L36: + sq.xyzw vf00, 893(vi00) | nop + sq.xyzw vf00, 900(vi00) | nop + sq.xyzw vf00, 907(vi00) | nop + sq.xyzw vf00, 914(vi00) | nop + sq.xyzw vf00, 921(vi00) | nop + sq.xyzw vf00, 928(vi00) | nop + iaddiu vi01, vi00, 0x2d4 | nop + isw.z vi01, 893(vi00) | nop + iaddiu vi01, vi00, 0x2d6 | nop + isw.z vi01, 900(vi00) | nop + iaddiu vi01, vi00, 0x2d8 | nop + isw.z vi01, 907(vi00) | nop + iaddiu vi01, vi00, 0x2da | nop + isw.z vi01, 914(vi00) | nop + iaddiu vi01, vi00, 0x2dc | nop + isw.z vi01, 921(vi00) | nop + iaddiu vi01, vi00, 0x2de | nop + isw.z vi01, 928(vi00) | nop + iaddiu vi03, vi00, 0x3b0 | nop + iaddiu vi04, vi00, 0x3af | nop + mfir.x vf31, vi15 | nop + iaddi vi05, vi00, 0x0 | nop + bal vi15, L38 | nop + iaddiu vi07, vi00, 0x3e8 | nop + bal vi15, L38 | nop + iaddiu vi07, vi00, 0x3eb | nop + bal vi15, L38 | nop + iaddiu vi07, vi00, 0x3ee | nop + b L47 | nop + nop | nop +L37: + sq.xyzw vf00, 893(vi00) | nop + sq.xyzw vf00, 900(vi00) | nop + sq.xyzw vf00, 907(vi00) | nop + sq.xyzw vf00, 914(vi00) | nop + sq.xyzw vf00, 921(vi00) | nop + sq.xyzw vf00, 928(vi00) | nop + iaddiu vi01, vi00, 0x2d4 | nop + isw.z vi01, 893(vi00) | nop + iaddiu vi01, vi00, 0x2d6 | nop + isw.z vi01, 900(vi00) | nop + iaddiu vi01, vi00, 0x2d8 | nop + isw.z vi01, 907(vi00) | nop + iaddiu vi01, vi00, 0x2da | nop + isw.z vi01, 914(vi00) | nop + iaddiu vi01, vi00, 0x2dc | nop + isw.z vi01, 921(vi00) | nop + iaddiu vi01, vi00, 0x2de | nop + isw.z vi01, 928(vi00) | nop + iaddiu vi03, vi00, 0x3b0 | nop + iaddiu vi04, vi00, 0x3af | nop + mfir.x vf31, vi15 | nop + iaddi vi05, vi00, 0x0 | nop + bal vi15, L38 | nop + iaddiu vi07, vi00, 0x3e8 | nop + bal vi15, L38 | nop + iaddiu vi07, vi00, 0x3eb | nop + bal vi15, L38 | nop + iaddiu vi07, vi00, 0x3ee | nop + bal vi15, L38 | nop + iaddiu vi07, vi00, 0x3f1 | nop + b L47 | nop + nop | nop +L38: + iaddiu vi09, vi00, 0x37d | nop +L39: + iaddi vi10, vi00, 0x0 | nop +L40: + isubiu vi01, vi09, 0x3a7 | nop + ilwr.y vi08, vi09 | nop + ibgez vi01, L44 | nop + ilwr.z vi06, vi09 | nop + lq.xyzw vf15, 0(vi07) | nop + lq.xyzw vf14, 0(vi08) | nop + ibne vi00, vi08, L41 | nop + iswr.y vi07, vi09 | nop + jalr vi11, vi06 | nop + iswr.x vi07, vi09 | nop + nop | nop + nop | nop + nop | nop + fsand vi02, 0x2 | nop + ibne vi00, vi02, L45 | nop + nop | nop + b L40 | nop + iaddi vi09, vi09, 0x7 | nop +L41: + jalr vi11, vi06 | nop + nop | nop + nop | nop + nop | nop + fsand vi01, 0x2 | nop + fsand vi02, 0x2 | subw.w vf31, vf30, vf31 + ibne vi00, vi01, L43 | nop + nop | nop + ibne vi00, vi02, L42 | nop + div Q, vf30.w, vf31.w | nop + b L40 | nop + iaddi vi09, vi09, 0x7 | nop +L42: + bal vi11, L52 | nop + iaddi vi07, vi09, 0x1 | nop + sq.xyzw vf16, 1(vi09) | nop + b L40 | nop + iaddi vi09, vi09, 0x7 | nop +L43: + ibne vi00, vi02, L45 | nop + div Q, vf30.w, vf31.w | nop + bal vi11, L52 | nop + nop | nop + sq.xyzw vf16, 4(vi09) | nop + iaddi vi09, vi09, 0x7 | nop + isw.x vi09, 935(vi10) | nop + isw.y vi07, 935(vi10) | nop + iaddi vi10, vi10, 0x1 | nop + b L40 | nop + iaddi vi07, vi09, -0x3 | nop +L44: + lq.xyzw vf14, 0(vi07) | nop + iaddi vi05, vi05, 0x1 | nop + div Q, vf00.w, vf14.w | nop + nop | mul.xyzw vf14, vf14, vf13 + iaddi vi03, vi03, 0x2 | nop + waitq | subw.w vf14, vf00, vf00 + nop | mul.xyz vf14, vf14, Q + nop | add.xy vf26, vf14, vf03 + nop | add.xyzw vf14, vf14, vf05 + nop | mul.xy vf26, vf26, vf04 + nop | mini.xyzw vf10, vf10, vf14 + nop | max.xyzw vf11, vf11, vf14 + sq.xyzw vf26, -2(vi03) | ftoi4.xyzw vf14, vf14 + sq.xyzw vf14, -1(vi03) | nop +L45: + iblez vi10, L46 | nop + nop | nop + ilw.x vi09, 934(vi10) | nop + ilw.y vi07, 934(vi10) | nop + b L40 | nop + iaddi vi10, vi10, -0x1 | nop +L46: + jr vi15 | nop + nop | nop +L47: + iaddiu vi09, vi00, 0x37d | nop +L48: + ilwr.x vi08, vi09 | nop + ilwr.y vi07, vi09 | nop + ilwr.z vi06, vi09 | nop + nop | nop + ibeq vi00, vi08, L50 | nop + lq.xyzw vf14, 0(vi07) | nop + ibeq vi07, vi08, L50 | nop + lq.xyzw vf15, 0(vi08) | nop + jalr vi11, vi06 | nop + nop | nop + nop | nop + nop | nop + fsand vi01, 0x2 | nop + fsand vi02, 0x2 | subw.w vf31, vf30, vf31 + ibeq vi02, vi01, L50 | nop + nop | nop + ibeq vi00, vi01, L49 | nop + div Q, vf30.w, vf31.w | nop + bal vi11, L52 | nop + nop | nop + sq.xyzw vf16, 4(vi09) | nop + iaddi vi07, vi09, 0x4 | nop + ior vi12, vi09, vi00 | nop + bal vi15, L39 | nop + iaddi vi09, vi09, 0x7 | nop + b L50 | nop + ior vi09, vi12, vi00 | nop +L49: + bal vi11, L52 | nop + nop | nop + sq.xyzw vf16, 1(vi09) | nop + iaddi vi07, vi09, 0x1 | nop + ior vi12, vi09, vi00 | nop + bal vi15, L39 | nop + iaddi vi09, vi09, 0x7 | nop + ior vi09, vi12, vi00 | nop +L50: + isubiu vi01, vi09, 0x3a0 | nop + iswr.x vi00, vi09 | nop + iswr.y vi00, vi09 | nop + ibltz vi01, L48 | nop + iaddi vi09, vi09, 0x7 | nop + ibeq vi00, vi05, L51 | nop + mtir vi15, vf31.x | nop + iaddiu vi05, vi05, 0x4000 | nop + iaddiu vi05, vi05, 0x4000 | nop + iswr.x vi05, vi04 | nop + iaddiu vi01, vi00, 0x3ac | nop + xgkick vi01 | nop + lq.xyzw vf30, 888(vi00) | nop + lq.xyzw vf31, 890(vi00) | nop + iaddiu vi01, vi00, 0x3fe | nop + isubiu vi02, vi00, 0x7fff | nop + sq.xyzw vf30, 0(vi01) | nop + iswr.x vi02, vi01 | nop + sq.xyzw vf31, 1(vi01) | nop + nop | nop + xgkick vi01 | nop +L51: + nop | nop + jr vi15 | nop + nop | nop + jr vi11 | addx.w vf30, vf14, vf14 + nop | addx.w vf31, vf15, vf15 + jr vi11 | subx.w vf30, vf14, vf14 + nop | subx.w vf31, vf15, vf15 + jr vi11 | addy.w vf30, vf14, vf14 + nop | addy.w vf31, vf15, vf15 + jr vi11 | suby.w vf30, vf14, vf14 + nop | suby.w vf31, vf15, vf15 + jr vi11 | addz.w vf30, vf14, vf14 + nop | addz.w vf31, vf15, vf15 + jr vi11 | subz.w vf30, vf14, vf14 + nop | subz.w vf31, vf15, vf15 +L52: + nop | sub.xyzw vf16, vf15, vf14 + waitq | mul.xyzw vf16, vf16, Q + jr vi11 | add.xyzw vf16, vf14, vf16 + nop | nop diff --git a/test/decompiler/vu_reference/shadow-vu0-result.txt b/test/decompiler/vu_reference/shadow-vu0-result.txt new file mode 100644 index 0000000000..9a714a3445 --- /dev/null +++ b/test/decompiler/vu_reference/shadow-vu0-result.txt @@ -0,0 +1,88 @@ + nop | sub.xyzw vf05, vf03, vf02 + nop | sub.xyzw vf06, vf04, vf02 + nop | sub.xyzw vf10, vf08, vf07 + nop | sub.xyzw vf11, vf09, vf07 + nop | sub.xyzw vf15, vf13, vf12 + nop | sub.xyzw vf16, vf14, vf12 + nop | sub.xyzw vf20, vf18, vf17 + nop | sub.xyzw vf21, vf19, vf17 + nop | opmula.xyz ACC, vf05, vf06 + nop | opmsub.xyz vf05, vf06, vf05 + nop | opmula.xyz ACC, vf10, vf11 + nop | opmsub.xyz vf10, vf11, vf10 + nop | opmula.xyz ACC, vf15, vf16 + nop | opmsub.xyz vf15, vf16, vf15 + nop | opmula.xyz ACC, vf20, vf21 + nop | opmsub.xyz vf20, vf21, vf20 + nop | mul.xyz vf05, vf05, vf01 + nop | mul.xyz vf10, vf10, vf01 + nop | mul.xyz vf15, vf15, vf01 + nop | mul.xyz vf20, vf20, vf01 + nop | addx.y vf05, vf05, vf05 + nop | addx.y vf10, vf10, vf10 + nop | addx.y vf15, vf15, vf15 + nop | addx.y vf20, vf20, vf20 + nop | addz.y vf22, vf05, vf05 + nop | addz.y vf23, vf10, vf10 + nop | addz.y vf24, vf15, vf15 :e + nop | addz.y vf25, vf20, vf20 + nop | mul.xyzw vf27, vf20, Q + div Q, vf13.x, vf17.x | sub.xyzw vf19, vf01, vf03 + move.xyzw vf23, vf07 | sub.xyzw vf20, vf01, vf04 + nop | sub.xyzw vf21, vf01, vf05 + move.xyzw vf25, vf09 | sub.xyzw vf22, vf01, vf06 + move.xyzw vf26, vf10 | sub.xyzw vf24, vf08, vf27 + nop | mul.xyzw vf11, vf03, vf02 + nop | mul.xyz vf15, vf19, vf02 + div Q, vf14.x, vf18.x | mul.xyzw vf12, vf04, vf02 + move.xyzw vf07, vf03 | mul.xyzw vf28, vf28, Q + move.xyzw vf08, vf04 | mul.xyz vf16, vf20, vf02 + move.xyzw vf09, vf05 | addy.x vf11, vf11, vf11 + move.xyzw vf10, vf06 | addy.x vf15, vf15, vf15 + nop | sub.xyzw vf25, vf25, vf28 + nop | addy.x vf12, vf12, vf12 + nop | mul.xyzw vf29, vf29, Q + nop | addy.x vf16, vf16, vf16 + nop | addz.x vf11, vf11, vf11 + nop | addz.x vf15, vf15, vf15 + nop | sub.xyzw vf26, vf26, vf29 + nop | addz.x vf12, vf12, vf12 + nop | addz.x vf16, vf16, vf16 + nop | addw.x vf11, vf11, vf11 + nop | mul.xyzw vf13, vf09, vf02 + nop | addw.x vf12, vf12, vf12 + nop | mul.xyz vf17, vf21, vf02 + nop | mul.xyzw vf14, vf10, vf02 + div Q, vf11.x, vf15.x | mul.xyz vf18, vf22, vf02 + nop | addy.x vf13, vf13, vf13 + nop | addy.x vf17, vf17, vf17 + nop | addy.x vf14, vf14, vf14 + nop | addy.x vf18, vf18, vf18 + nop | addz.x vf13, vf13, vf13 + nop | addz.x vf17, vf17, vf17 + div Q, vf12.x, vf16.x | addz.x vf14, vf14, vf14 + nop | mul.xyzw vf19, vf19, Q + move.xyzw vf28, vf21 | addz.x vf18, vf18, vf18 + move.xyzw vf29, vf22 | addw.x vf13, vf13, vf13 + nop | addw.x vf14, vf14, vf14 :e + nop | sub.xyzw vf07, vf07, vf19 + nop | mul.xyzw vf27, vf20, Q + div Q, vf13.x, vf17.x | nop + move.xyzw vf23, vf07 | nop + nop | nop + move.xyzw vf25, vf09 | nop + move.xyzw vf26, vf10 | sub.xyzw vf24, vf08, vf27 + nop | nop + nop | nop + div Q, vf14.x, vf18.x | nop + nop | mul.xyzw vf28, vf28, Q + nop | nop + nop | nop + nop | nop + nop | sub.xyzw vf25, vf25, vf28 + nop | nop + nop | mul.xyzw vf29, vf29, Q + nop | nop + nop | nop + nop | nop :e + nop | sub.xyzw vf26, vf26, vf29 diff --git a/test/decompiler/vu_reference/shadow-vu0.txt b/test/decompiler/vu_reference/shadow-vu0.txt new file mode 100644 index 0000000000..a5c7decf36 --- /dev/null +++ b/test/decompiler/vu_reference/shadow-vu0.txt @@ -0,0 +1,176 @@ + .word 0x80000030 + .word 0x1e2196c + .word 0x80000030 + .word 0x1e221ac + .word 0x80000030 + .word 0x1e742ac + .word 0x80000030 + .word 0x1e74aec + .word 0x80000030 + .word 0x1ec6bec + .word 0x80000030 + .word 0x1ec742c + .word 0x80000030 + .word 0x1f1952c + .word 0x80000030 + .word 0x1f19d6c + .word 0x80000030 + .word 0x1c62afe + .word 0x80000030 + .word 0x1c5316e + .word 0x80000030 + .word 0x1cb52fe + .word 0x80000030 + .word 0x1ca5aae + .word 0x80000030 + .word 0x1d07afe + .word 0x80000030 + .word 0x1cf83ee + .word 0x80000030 + .word 0x1d5a2fe + .word 0x80000030 + .word 0x1d4ad2e + .word 0x80000030 + .word 0x1c1296a + .word 0x80000030 + .word 0x1c152aa + .word 0x80000030 + .word 0x1c17bea + .word 0x80000030 + .word 0x1c1a52a + .word 0x80000030 + .word 0x852940 + .word 0x80000030 + .word 0x8a5280 + .word 0x80000030 + .word 0x8f7bc0 + .word 0x80000030 + .word 0x94a500 + .word 0x80000030 + .word 0x852d82 + .word 0x80000030 + .word 0x8a55c2 + .word 0x80000030 + .word 0x408f7e02 + .word 0x80000030 + .word 0x94a642 + .word 0x80000030 + .word 0x1e0a6dc + .word 0x80116bbc + .word 0x1e30cec + .word 0x81f73b3c + .word 0x1e40d2c + .word 0x80000030 + .word 0x1e50d6c + .word 0x81f94b3c + .word 0x1e60dac + .word 0x81fa533c + .word 0x1fb462c + .word 0x80000030 + .word 0x1e21aea + .word 0x80000030 + .word 0x1c29bea + .word 0x801273bc + .word 0x1e2232a + .word 0x81e71b3c + .word 0x1e0e71c + .word 0x81e8233c + .word 0x1c2a42a + .word 0x81e92b3c + .word 0x10b5ac1 + .word 0x81ea333c + .word 0x10f7bc1 + .word 0x80000030 + .word 0x1fcce6c + .word 0x80000030 + .word 0x10c6301 + .word 0x80000030 + .word 0x1e0ef5c + .word 0x80000030 + .word 0x1108401 + .word 0x80000030 + .word 0x10b5ac2 + .word 0x80000030 + .word 0x10f7bc2 + .word 0x80000030 + .word 0x1fdd6ac + .word 0x80000030 + .word 0x10c6302 + .word 0x80000030 + .word 0x1108402 + .word 0x80000030 + .word 0x10b5ac3 + .word 0x80000030 + .word 0x1e24b6a + .word 0x80000030 + .word 0x10c6303 + .word 0x80000030 + .word 0x1c2ac6a + .word 0x80000030 + .word 0x1e253aa + .word 0x800f5bbc + .word 0x1c2b4aa + .word 0x80000030 + .word 0x10d6b41 + .word 0x80000030 + .word 0x1118c41 + .word 0x80000030 + .word 0x10e7381 + .word 0x80000030 + .word 0x1129481 + .word 0x80000030 + .word 0x10d6b42 + .word 0x80000030 + .word 0x1118c42 + .word 0x801063bc + .word 0x10e7382 + .word 0x80000030 + .word 0x1e09cdc + .word 0x81fcab3c + .word 0x1129482 + .word 0x81fdb33c + .word 0x10d6b43 + .word 0x80000030 + .word 0x410e7383 + .word 0x80000030 + .word 0x1f339ec + .word 0x80000030 + .word 0x1e0a6dc + .word 0x80116bbc + .word 0x2ff + .word 0x81f73b3c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81f94b3c + .word 0x2ff + .word 0x81fa533c + .word 0x1fb462c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x801273bc + .word 0x2ff + .word 0x80000030 + .word 0x1e0e71c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fcce6c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e0ef5c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x1fdd6ac \ No newline at end of file diff --git a/test/decompiler/vu_reference/shadow.txt b/test/decompiler/vu_reference/shadow.txt new file mode 100644 index 0000000000..0376686d82 --- /dev/null +++ b/test/decompiler/vu_reference/shadow.txt @@ -0,0 +1,1480 @@ + .word 0x40000009 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000013 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400000cd + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000148 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x10010358 + .word 0x2ff + .word 0x10020364 + .word 0x2ff + .word 0x81010bfd + .word 0x2ff + .word 0x808113fd + .word 0x2ff + .word 0x80410bfd + .word 0x2ff + .word 0x802113fd + .word 0x2ff + .word 0x1e20370 + .word 0x2ff + .word 0x1e30372 + .word 0x2ff + .word 0x1e40373 + .word 0x2ff + .word 0x1e50374 + .word 0x2ff + .word 0x1ec0375 + .word 0x400002ff + .word 0x1ed0371 + .word 0x2ff + .word 0x10030158 + .word 0x2ff + .word 0x81081bfe + .word 0x2ff + .word 0x80020bfc + .word 0x2ff + .word 0x80031872 + .word 0x400643 + .word 0x1f90378 + .word 0x400683 + .word 0x1fd0379 + .word 0x4006c3 + .word 0x1fe037b + .word 0x400703 + .word 0x1e60000 + .word 0x2ff + .word 0x1e70001 + .word 0x2ff + .word 0x1e80002 + .word 0x2ff + .word 0x1e90003 + .word 0x2ff + .word 0x80210bfc + .word 0x2ff + .word 0x3e2c800 + .word 0x2ff + .word 0x3e2e801 + .word 0x2ff + .word 0x3e2f002 + .word 0x2ff + .word 0x3e1c800 + .word 0x2ff + .word 0x3e1e801 + .word 0x2ff + .word 0x3e1f002 + .word 0x2ff + .word 0x81f01b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x800483fc + .word 0x2ff + .word 0x802583fc + .word 0x2ff + .word 0x804683fc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1f12004 + .word 0x2ff + .word 0x1f22804 + .word 0x2ff + .word 0x1f33004 + .word 0x2ff + .word 0x80000030 + .word 0x1e049bf + .word 0x81ef8b3c + .word 0x1f130bc + .word 0x80000030 + .word 0x1f138bd + .word 0x80000030 + .word 0x1f1444a + .word 0x80000030 + .word 0x1e049bf + .word 0x80000030 + .word 0x1ef976c + .word 0x80000030 + .word 0x1ef9fac + .word 0x819163bc + .word 0x1f230bc + .word 0x80000030 + .word 0x1e28d6a + .word 0x80000030 + .word 0x1f238bd + .word 0x80000030 + .word 0x1f2448a + .word 0x80000030 + .word 0x1e049bf + .word 0x80000030 + .word 0x1f330bc + .word 0x80000030 + .word 0x1f338bd + .word 0x819263bc + .word 0x1c08c5c + .word 0x80000030 + .word 0x1f344ca + .word 0x80000030 + .word 0x1e295aa + .word 0x80000030 + .word 0x1deeafe + .word 0x80000030 + .word 0x1ddf76e + .word 0x80000030 + .word 0x1838e68 + .word 0x80000030 + .word 0x1e58c68 + .word 0x819363bc + .word 0x1c0949c + .word 0x80000030 + .word 0x1e29dea + .word 0x80000030 + .word 0x1cfef6a + .word 0x80000030 + .word 0x184ce6a + .word 0x80000030 + .word 0x1f152af + .word 0x80000030 + .word 0x1f15aeb + .word 0x80000030 + .word 0x1f1897d + .word 0x80000030 + .word 0x18396a8 + .word 0x80000030 + .word 0x1e594a8 + .word 0x22000000 + .word 0x11def41 + .word 0x80000030 + .word 0x1c09cdc + .word 0x3e2c804 + .word 0x1f252af + .word 0x3e28805 + .word 0x1f25aeb + .word 0x80000030 + .word 0x1d5a9ff + .word 0x80000030 + .word 0x184d6aa + .word 0x80000030 + .word 0x11def42 + .word 0x80000030 + .word 0x1f2917d + .word 0x80000030 + .word 0x1839ee8 + .word 0x3e2d006 + .word 0x1e59ce8 + .word 0x2c010002 + .word 0x1d6b1ff + .word 0x3e29007 + .word 0x1d7b9ff + .word 0x50000803 + .word 0x184deea + .word 0x80000030 + .word 0x1f352af + .word 0x40000002 + .word 0x2ff + .word 0x1ff0377 + .word 0x1f35aeb + .word 0x1ff0376 + .word 0x1f35aeb + .word 0x2403ffff + .word 0x1f3997d + .word 0x52000852 + .word 0x2ff + .word 0x800847f2 + .word 0x2ff + .word 0x3e2d808 + .word 0x2ff + .word 0x3e2f803 + .word 0x2ff + .word 0x3e29809 + .word 0x2ff + .word 0x800016fc + .word 0x2ff + .word 0x80220bfc + .word 0x2ff + .word 0x81e10b3d + .word 0x2ff + .word 0x5a0047bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x10030158 + .word 0x2ff + .word 0x81081bfe + .word 0x2ff + .word 0x80031872 + .word 0x2ff + .word 0x81f01b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x800483fc + .word 0x2ff + .word 0x802583fc + .word 0x2ff + .word 0x804683fc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1f120ae + .word 0x2ff + .word 0x1f230ae + .word 0x2ff + .word 0x1f328ae + .word 0x2ff + .word 0x80000030 + .word 0x1e049bf + .word 0x81ef8b3c + .word 0x1f130bc + .word 0x80000030 + .word 0x1f138bd + .word 0x80000030 + .word 0x1f1444a + .word 0x80000030 + .word 0x1e049bf + .word 0x80000030 + .word 0x1ef976c + .word 0x80000030 + .word 0x1ef9fac + .word 0x819163bc + .word 0x1f230bc + .word 0x80000030 + .word 0x1e28d6a + .word 0x80000030 + .word 0x1f238bd + .word 0x80000030 + .word 0x1f2448a + .word 0x80000030 + .word 0x1e049bf + .word 0x80000030 + .word 0x1f330bc + .word 0x80000030 + .word 0x1f338bd + .word 0x819263bc + .word 0x1c08c5c + .word 0x80000030 + .word 0x1f344ca + .word 0x80000030 + .word 0x1e295aa + .word 0x80000030 + .word 0x1deeafe + .word 0x80000030 + .word 0x1ddf76e + .word 0x80000030 + .word 0x1838e68 + .word 0x80000030 + .word 0x1e58c68 + .word 0x819363bc + .word 0x1c0949c + .word 0x80000030 + .word 0x1e29dea + .word 0x80000030 + .word 0x1cfef6a + .word 0x80000030 + .word 0x184ce6a + .word 0x80000030 + .word 0x1f152af + .word 0x80000030 + .word 0x1f15aeb + .word 0x80000030 + .word 0x1f1897d + .word 0x80000030 + .word 0x18396a8 + .word 0x80000030 + .word 0x1e594a8 + .word 0x22000000 + .word 0x11def41 + .word 0x80000030 + .word 0x1c09cdc + .word 0x3e2c804 + .word 0x1f252af + .word 0x3e28805 + .word 0x1f25aeb + .word 0x80000030 + .word 0x1d5a9ff + .word 0x80000030 + .word 0x184d6aa + .word 0x800847f2 + .word 0x11def42 + .word 0x80000030 + .word 0x1f2917d + .word 0x80000030 + .word 0x1839ee8 + .word 0x3e2d006 + .word 0x1e59ce8 + .word 0x2c010002 + .word 0x1d6b1ff + .word 0x3e29007 + .word 0x1d7b9ff + .word 0x50000803 + .word 0x184deea + .word 0x80000030 + .word 0x1f352af + .word 0x40000002 + .word 0x2ff + .word 0x1ff0377 + .word 0x1f35aeb + .word 0x1ff0376 + .word 0x1f35aeb + .word 0x2403ffff + .word 0x1f3997d + .word 0x52000818 + .word 0x2ff + .word 0x3e2d808 + .word 0x2ff + .word 0x3e2f803 + .word 0x2ff + .word 0x3e29809 + .word 0x2ff + .word 0x800016fc + .word 0x2ff + .word 0x80220bfc + .word 0x2ff + .word 0x81e10b3d + .word 0x2ff + .word 0x5a0047bd + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x3e0abe8 + .word 0x2ff + .word 0x3e0b3eb + .word 0x2ff + .word 0x3e0bbee + .word 0x2ff + .word 0x3e0fbae + .word 0x2ff + .word 0x811d13fd + .word 0x2ff + .word 0x809d1bfd + .word 0x2ff + .word 0x805d3bfd + .word 0x2ff + .word 0x420f0156 + .word 0x2ff + .word 0x803d43fd + .word 0x2ff + .word 0x8068ebfc + .word 0x2ff + .word 0x8023ebfc + .word 0x2ff + .word 0x8047ebfc + .word 0x2ff + .word 0x400007a8 + .word 0x2ff + .word 0x8002ebfc + .word 0x2ff + .word 0x3e0abe8 + .word 0x2ff + .word 0x3e0b3eb + .word 0x2ff + .word 0x3e0bbee + .word 0x2ff + .word 0x3e0fbae + .word 0x2ff + .word 0x811d13fd + .word 0x2ff + .word 0x809d1bfd + .word 0x2ff + .word 0x805d3bfd + .word 0x2ff + .word 0x420f0148 + .word 0x2ff + .word 0x803d43fd + .word 0x2ff + .word 0x8068ebfc + .word 0x2ff + .word 0x8023ebfc + .word 0x2ff + .word 0x8047ebfc + .word 0x2ff + .word 0x400007e1 + .word 0x2ff + .word 0x8002ebfc + .word 0x2ff + .word 0x10030258 + .word 0x2ff + .word 0x81081bfe + .word 0x2ff + .word 0x80020bfc + .word 0x2ff + .word 0x80031872 + .word 0x400643 + .word 0x1f90378 + .word 0x400683 + .word 0x1fd0379 + .word 0x4006c3 + .word 0x1fe037c + .word 0x2ff + .word 0x1e60000 + .word 0x2ff + .word 0x1e70001 + .word 0x2ff + .word 0x1e80002 + .word 0x2ff + .word 0x1e90003 + .word 0x2ff + .word 0x80210bfc + .word 0x2ff + .word 0x3e2c800 + .word 0x2ff + .word 0x3e2e801 + .word 0x2ff + .word 0x3e2f002 + .word 0x2ff + .word 0x3e1c800 + .word 0x2ff + .word 0x3e1e801 + .word 0x2ff + .word 0x3e1f002 + .word 0x2ff + .word 0x81f01b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x804683fc + .word 0x2ff + .word 0x800483fc + .word 0x2ff + .word 0x802583fc + .word 0x2ff + .word 0x50003006 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1f12004 + .word 0x2ff + .word 0x1f22804 + .word 0x2ff + .word 0x1f328ae + .word 0x2ff + .word 0x40000005 + .word 0x2ff + .word 0x1f420ae + .word 0x2ff + .word 0x1f12804 + .word 0x2ff + .word 0x1f22004 + .word 0x2ff + .word 0x1f320ae + .word 0x2ff + .word 0x1f428ae + .word 0x2ff + .word 0x81ef8b3c + .word 0x1e049bf + .word 0x80000030 + .word 0x1f130bc + .word 0x80000030 + .word 0x1f138bd + .word 0x80000030 + .word 0x1f1444a + .word 0x80000030 + .word 0x1e049bf + .word 0x80000030 + .word 0x1ef976c + .word 0x80000030 + .word 0x1ef9fac + .word 0x819163bc + .word 0x1f230bc + .word 0x80000030 + .word 0x1e28d6a + .word 0x80000030 + .word 0x1f238bd + .word 0x80000030 + .word 0x1f2448a + .word 0x80000030 + .word 0x1e049bf + .word 0x80000030 + .word 0x1f330bc + .word 0x80000030 + .word 0x1f338bd + .word 0x819263bc + .word 0x1c08c5c + .word 0x80000030 + .word 0x1f344ca + .word 0x80000030 + .word 0x1e049bf + .word 0x80000030 + .word 0x1f430bc + .word 0x80000030 + .word 0x1f438bd + .word 0x80000030 + .word 0x1f4450a + .word 0x80000030 + .word 0x1e295aa + .word 0x819363bc + .word 0x1c0949c + .word 0x80000030 + .word 0x1838e68 + .word 0x80000030 + .word 0x1e58c68 + .word 0x80000030 + .word 0x1deeafe + .word 0x80000030 + .word 0x1ddf76e + .word 0x80000030 + .word 0x1e29dea + .word 0x80000030 + .word 0x1cfef6a + .word 0x819463bc + .word 0x1c09cdc + .word 0x80000030 + .word 0x1e2a62a + .word 0x80000030 + .word 0x184ce6a + .word 0x80000030 + .word 0x1f152af + .word 0x80000030 + .word 0x1f15aeb + .word 0x80000030 + .word 0x1f1897d + .word 0x80000030 + .word 0x18396a8 + .word 0x80000030 + .word 0x1c0a51c + .word 0x80000030 + .word 0x1e594a8 + .word 0x80000030 + .word 0x11def41 + .word 0x3e2c804 + .word 0x1f252af + .word 0x3e28805 + .word 0x1f25aeb + .word 0x80000030 + .word 0x1d5a9ff + .word 0x80000030 + .word 0x184d6aa + .word 0x80000030 + .word 0x11def42 + .word 0x80000030 + .word 0x1f2917d + .word 0x80000030 + .word 0x1839ee8 + .word 0x3e2d006 + .word 0x1e59ce8 + .word 0x2c010002 + .word 0x1d6b1ff + .word 0x3e29007 + .word 0x1d7b9ff + .word 0x80000030 + .word 0x1d8c1ff + .word 0x80000030 + .word 0x183a728 + .word 0x80000030 + .word 0x1e5a528 + .word 0x80000030 + .word 0x184deea + .word 0x80000030 + .word 0x1f352af + .word 0x80000030 + .word 0x1f35aeb + .word 0x50000803 + .word 0x184e72a + .word 0x80000030 + .word 0x1f452af + .word 0x40000002 + .word 0x2ff + .word 0x1ff0377 + .word 0x1f45aeb + .word 0x1ff0376 + .word 0x1f45aeb + .word 0x24ffffff + .word 0x1f3997d + .word 0x5200080d + .word 0x1f45aeb + .word 0x800847f2 + .word 0x2ff + .word 0x3e2d808 + .word 0x1f4a17d + .word 0x3e2f803 + .word 0x2ff + .word 0x3e29809 + .word 0x2ff + .word 0x3e2e00a + .word 0x2ff + .word 0x3e2a00b + .word 0x2ff + .word 0x800016fc + .word 0x2ff + .word 0x80220bfc + .word 0x2ff + .word 0x81e10b3d + .word 0x2ff + .word 0x5a0047a7 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x3e0abe8 + .word 0x2ff + .word 0x3e0b3eb + .word 0x2ff + .word 0x3e0bbee + .word 0x2ff + .word 0x3e0c3f1 + .word 0x2ff + .word 0x3e0fbae + .word 0x2ff + .word 0x811d13fd + .word 0x2ff + .word 0x809d1bfd + .word 0x2ff + .word 0x805d3bfd + .word 0x2ff + .word 0x420f00e9 + .word 0x2ff + .word 0x803d43fd + .word 0x2ff + .word 0x8068ebfc + .word 0x2ff + .word 0x8023ebfc + .word 0x2ff + .word 0x8047ebfc + .word 0x2ff + .word 0x400007ee + .word 0x2ff + .word 0x8002ebfc + .word 0x2ff + .word 0x10030158 + .word 0x2ff + .word 0x81081bfe + .word 0x2ff + .word 0x80020bfc + .word 0x2ff + .word 0x80031872 + .word 0x400643 + .word 0x1f90378 + .word 0x400683 + .word 0x1fd0379 + .word 0x4006c3 + .word 0x1fe037b + .word 0x400703 + .word 0x1e60000 + .word 0x2ff + .word 0x1e70001 + .word 0x2ff + .word 0x1e80002 + .word 0x2ff + .word 0x1e90003 + .word 0x2ff + .word 0x80210bfc + .word 0x2ff + .word 0x3e2c800 + .word 0x2ff + .word 0x3e2e801 + .word 0x2ff + .word 0x3e2f002 + .word 0x2ff + .word 0x3e1c800 + .word 0x2ff + .word 0x3e1e801 + .word 0x2ff + .word 0x3e1f002 + .word 0x2ff + .word 0x81f01b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806183fc + .word 0x2ff + .word 0x800483fc + .word 0x2ff + .word 0x802583fc + .word 0x2ff + .word 0x804683fc + .word 0x2ff + .word 0x50000804 + .word 0x2ff + .word 0x1f12004 + .word 0x2ff + .word 0x1f22804 + .word 0x2ff + .word 0x40000003 + .word 0x2ff + .word 0x1f33004 + .word 0x2ff + .word 0x1f32804 + .word 0x2ff + .word 0x1f23004 + .word 0x2ff + .word 0x80000030 + .word 0x1e049bf + .word 0x81ef8b3c + .word 0x1f130bc + .word 0x80000030 + .word 0x1f138bd + .word 0x80000030 + .word 0x1f1976c + .word 0x80000030 + .word 0x1f19fac + .word 0x80000030 + .word 0x1f1444a + .word 0x80000030 + .word 0x1e049bf + .word 0x819163bc + .word 0x1f230bc + .word 0x80000030 + .word 0x1f238bd + .word 0x80000030 + .word 0x1e28d6a + .word 0x80000030 + .word 0x1f2448a + .word 0x80000030 + .word 0x1e049bf + .word 0x80000030 + .word 0x1f330bc + .word 0x80000030 + .word 0x1f338bd + .word 0x819263bc + .word 0x1c08c5c + .word 0x80000030 + .word 0x1f344ca + .word 0x80000030 + .word 0x1e295aa + .word 0x80000030 + .word 0x1deeafe + .word 0x80000030 + .word 0x1ddf76e + .word 0x80000030 + .word 0x1838e68 + .word 0x80000030 + .word 0x1e58c68 + .word 0x819363bc + .word 0x1c0949c + .word 0x80000030 + .word 0x1e29dea + .word 0x80000030 + .word 0x1cfef6a + .word 0x80000030 + .word 0x184ce6a + .word 0x80000030 + .word 0x1f152af + .word 0x80000030 + .word 0x1f15aeb + .word 0x80000030 + .word 0x1f1897d + .word 0x80000030 + .word 0x18396a8 + .word 0x80000030 + .word 0x1e594a8 + .word 0x22000000 + .word 0x11def41 + .word 0x80000030 + .word 0x1c09cdc + .word 0x3e2c804 + .word 0x1f252af + .word 0x3e28805 + .word 0x1f25aeb + .word 0x80000030 + .word 0x1d5a9ff + .word 0x80000030 + .word 0x184d6aa + .word 0x80000030 + .word 0x11def42 + .word 0x80000030 + .word 0x1f2917d + .word 0x80000030 + .word 0x1839ee8 + .word 0x3e2d006 + .word 0x1e59ce8 + .word 0x2c010002 + .word 0x1d6b1ff + .word 0x3e29007 + .word 0x1d7b9ff + .word 0x50000803 + .word 0x184deea + .word 0x80000030 + .word 0x1f352af + .word 0x40000002 + .word 0x2ff + .word 0x1ff0377 + .word 0x1f35aeb + .word 0x1ff0376 + .word 0x1f35aeb + .word 0x2403ffff + .word 0x1f3997d + .word 0x52000857 + .word 0x2ff + .word 0x800847f2 + .word 0x2ff + .word 0x3e2d808 + .word 0x2ff + .word 0x3e2f803 + .word 0x2ff + .word 0x3e29809 + .word 0x2ff + .word 0x800016fc + .word 0x2ff + .word 0x80220bfc + .word 0x2ff + .word 0x81e10b3d + .word 0x2ff + .word 0x5a0047b8 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x10030158 + .word 0x2ff + .word 0x81081bfe + .word 0x2ff + .word 0x80031872 + .word 0x2ff + .word 0x81f01b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806183fc + .word 0x2ff + .word 0x800483fc + .word 0x2ff + .word 0x802583fc + .word 0x2ff + .word 0x804683fc + .word 0x2ff + .word 0x52000804 + .word 0x2ff + .word 0x1f120ae + .word 0x2ff + .word 0x1f228ae + .word 0x2ff + .word 0x40000003 + .word 0x2ff + .word 0x1f330ae + .word 0x2ff + .word 0x1f328ae + .word 0x2ff + .word 0x1f230ae + .word 0x2ff + .word 0x80000030 + .word 0x1e049bf + .word 0x81ef8b3c + .word 0x1f130bc + .word 0x80000030 + .word 0x1f138bd + .word 0x80000030 + .word 0x1f1444a + .word 0x80000030 + .word 0x1e049bf + .word 0x80000030 + .word 0x1ef976c + .word 0x80000030 + .word 0x1ef9fac + .word 0x819163bc + .word 0x1f230bc + .word 0x80000030 + .word 0x1e28d6a + .word 0x80000030 + .word 0x1f238bd + .word 0x80000030 + .word 0x1f2448a + .word 0x80000030 + .word 0x1e049bf + .word 0x80000030 + .word 0x1f330bc + .word 0x80000030 + .word 0x1f338bd + .word 0x819263bc + .word 0x1c08c5c + .word 0x80000030 + .word 0x1f344ca + .word 0x80000030 + .word 0x1e295aa + .word 0x80000030 + .word 0x1deeafe + .word 0x80000030 + .word 0x1ddf76e + .word 0x80000030 + .word 0x1838e68 + .word 0x80000030 + .word 0x1e58c68 + .word 0x819363bc + .word 0x1c0949c + .word 0x80000030 + .word 0x1e29dea + .word 0x80000030 + .word 0x1cfef6a + .word 0x80000030 + .word 0x184ce6a + .word 0x80000030 + .word 0x1f152af + .word 0x80000030 + .word 0x1f15aeb + .word 0x80000030 + .word 0x1f1897d + .word 0x80000030 + .word 0x18396a8 + .word 0x80000030 + .word 0x1e594a8 + .word 0x22000000 + .word 0x11def41 + .word 0x80000030 + .word 0x1c09cdc + .word 0x3e2c804 + .word 0x1f252af + .word 0x3e28805 + .word 0x1f25aeb + .word 0x80000030 + .word 0x1d5a9ff + .word 0x80000030 + .word 0x184d6aa + .word 0x80000030 + .word 0x11def42 + .word 0x80000030 + .word 0x1f2917d + .word 0x80000030 + .word 0x1839ee8 + .word 0x3e2d006 + .word 0x1e59ce8 + .word 0x2c010002 + .word 0x1d6b1ff + .word 0x3e29007 + .word 0x1d7b9ff + .word 0x50000803 + .word 0x184deea + .word 0x80000030 + .word 0x1f352af + .word 0x40000002 + .word 0x2ff + .word 0x1ff0377 + .word 0x1f35aeb + .word 0x1ff0376 + .word 0x1f35aeb + .word 0x2403ffff + .word 0x1f3997d + .word 0x52000819 + .word 0x2ff + .word 0x800847f2 + .word 0x2ff + .word 0x3e2d808 + .word 0x2ff + .word 0x3e2f803 + .word 0x2ff + .word 0x3e29809 + .word 0x2ff + .word 0x800016fc + .word 0x2ff + .word 0x80220bfc + .word 0x2ff + .word 0x81e10b3d + .word 0x2ff + .word 0x5a0047b8 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x3e0abe8 + .word 0x2ff + .word 0x3e0b3eb + .word 0x2ff + .word 0x3e0bbee + .word 0x2ff + .word 0x3e0fbae + .word 0x2ff + .word 0x811d13fd + .word 0x2ff + .word 0x809d1bfd + .word 0x2ff + .word 0x805d3bfd + .word 0x2ff + .word 0x420f0014 + .word 0x2ff + .word 0x803d43fd + .word 0x2ff + .word 0x8068ebfc + .word 0x2ff + .word 0x8023ebfc + .word 0x2ff + .word 0x8047ebfc + .word 0x2ff + .word 0x400007a3 + .word 0x2ff + .word 0x8002ebfc + .word 0x2ff + .word 0x3e0abe8 + .word 0x2ff + .word 0x3e0b3eb + .word 0x2ff + .word 0x3e0bbee + .word 0x2ff + .word 0x3e0fbae + .word 0x2ff + .word 0x811d13fd + .word 0x2ff + .word 0x809d1bfd + .word 0x2ff + .word 0x805d3bfd + .word 0x2ff + .word 0x420f0006 + .word 0x2ff + .word 0x803d43fd + .word 0x2ff + .word 0x8068ebfc + .word 0x2ff + .word 0x8023ebfc + .word 0x2ff + .word 0x8047ebfc + .word 0x2ff + .word 0x400007e1 + .word 0x2ff + .word 0x8002ebfc + .word 0x2ff + .word 0x3e0037d + .word 0x2ff + .word 0x3e00384 + .word 0x2ff + .word 0x3e0038b + .word 0x2ff + .word 0x3e00392 + .word 0x2ff + .word 0x3e00399 + .word 0x2ff + .word 0x3e003a0 + .word 0x2ff + .word 0x100102d4 + .word 0x2ff + .word 0xa41037d + .word 0x2ff + .word 0x100102d6 + .word 0x2ff + .word 0xa410384 + .word 0x2ff + .word 0x100102d8 + .word 0x2ff + .word 0xa41038b + .word 0x2ff + .word 0x100102da + .word 0x2ff + .word 0xa410392 + .word 0x2ff + .word 0x100102dc + .word 0x2ff + .word 0xa410399 + .word 0x2ff + .word 0x100102de + .word 0x2ff + .word 0xa4103a0 + .word 0x2ff + .word 0x100303b0 + .word 0x2ff + .word 0x100403af + .word 0x2ff + .word 0x811f7bfd + .word 0x2ff + .word 0x80050032 + .word 0x2ff + .word 0x420f0027 + .word 0x2ff + .word 0x100703e8 + .word 0x2ff + .word 0x420f0025 + .word 0x2ff + .word 0x100703eb + .word 0x2ff + .word 0x420f0023 + .word 0x2ff + .word 0x100703ee + .word 0x2ff + .word 0x40000067 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e0037d + .word 0x2ff + .word 0x3e00384 + .word 0x2ff + .word 0x3e0038b + .word 0x2ff + .word 0x3e00392 + .word 0x2ff + .word 0x3e00399 + .word 0x2ff + .word 0x3e003a0 + .word 0x2ff + .word 0x100102d4 + .word 0x2ff + .word 0xa41037d + .word 0x2ff + .word 0x100102d6 + .word 0x2ff + .word 0xa410384 + .word 0x2ff + .word 0x100102d8 + .word 0x2ff + .word 0xa41038b + .word 0x2ff + .word 0x100102da + .word 0x2ff + .word 0xa410392 + .word 0x2ff + .word 0x100102dc + .word 0x2ff + .word 0xa410399 + .word 0x2ff + .word 0x100102de + .word 0x2ff + .word 0xa4103a0 + .word 0x2ff + .word 0x100303b0 + .word 0x2ff + .word 0x100403af + .word 0x2ff + .word 0x811f7bfd + .word 0x2ff + .word 0x80050032 + .word 0x2ff + .word 0x420f0009 + .word 0x2ff + .word 0x100703e8 + .word 0x2ff + .word 0x420f0007 + .word 0x2ff + .word 0x100703eb + .word 0x2ff + .word 0x420f0005 + .word 0x2ff + .word 0x100703ee + .word 0x2ff + .word 0x420f0003 + .word 0x2ff + .word 0x100703f1 + .word 0x2ff + .word 0x40000047 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1009037d + .word 0x2ff + .word 0x800a0032 + .word 0x2ff + .word 0x12014ba7 + .word 0x2ff + .word 0x80884bfe + .word 0x2ff + .word 0x5e00082b + .word 0x2ff + .word 0x80464bfe + .word 0x2ff + .word 0x1ef3800 + .word 0x2ff + .word 0x1ee4000 + .word 0x2ff + .word 0x5200400b + .word 0x2ff + .word 0x80874bff + .word 0x2ff + .word 0x4a0b3000 + .word 0x2ff + .word 0x81074bff + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x2c020002 + .word 0x2ff + .word 0x5200102d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400007ef + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x4a0b3000 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x2c020002 + .word 0x3ff7c7 + .word 0x5200080a + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x52001003 + .word 0x2ff + .word 0x81fff3bc + .word 0x2ff + .word 0x400007e3 + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x420b006d + .word 0x2ff + .word 0x80074872 + .word 0x2ff + .word 0x3e98001 + .word 0x2ff + .word 0x400007de + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x52001018 + .word 0x2ff + .word 0x81fff3bc + .word 0x2ff + .word 0x420b0066 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e98004 + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0xb0953a7 + .word 0x2ff + .word 0xa8753a7 + .word 0x2ff + .word 0x800a5072 + .word 0x2ff + .word 0x400007d3 + .word 0x2ff + .word 0x80074f72 + .word 0x2ff + .word 0x1ee3800 + .word 0x2ff + .word 0x80052872 + .word 0x2ff + .word 0x81ee03bc + .word 0x2ff + .word 0x80000030 + .word 0x1ed73aa + .word 0x800318b2 + .word 0x2ff + .word 0x800003bf + .word 0x200387 + .word 0x80000030 + .word 0x1c0739c + .word 0x80000030 + .word 0x18376a8 + .word 0x80000030 + .word 0x1e573a8 + .word 0x80000030 + .word 0x184d6aa + .word 0x80000030 + .word 0x1ee52af + .word 0x80000030 + .word 0x1ee5aeb + .word 0x3e3d7fe + .word 0x1ee717d + .word 0x3e377ff + .word 0x2ff + .word 0x5c005005 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x90953a6 + .word 0x2ff + .word 0x88753a6 + .word 0x2ff + .word 0x400007bf + .word 0x2ff + .word 0x800a57f2 + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1009037d + .word 0x2ff + .word 0x81084bfe + .word 0x2ff + .word 0x80874bfe + .word 0x2ff + .word 0x80464bfe + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x5000401e + .word 0x2ff + .word 0x1ee3800 + .word 0x2ff + .word 0x5007401c + .word 0x2ff + .word 0x1ef4000 + .word 0x2ff + .word 0x4a0b3000 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x2c020002 + .word 0x3ff7c7 + .word 0x50020814 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x5000080a + .word 0x2ff + .word 0x81fff3bc + .word 0x2ff + .word 0x420b0034 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e98004 + .word 0x2ff + .word 0x80074932 + .word 0x2ff + .word 0x80004b35 + .word 0x2ff + .word 0x420f07a2 + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x40000009 + .word 0x2ff + .word 0x80006275 + .word 0x2ff + .word 0x420b002b + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e98001 + .word 0x2ff + .word 0x80074872 + .word 0x2ff + .word 0x80004b35 + .word 0x2ff + .word 0x420f0799 + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x80006275 + .word 0x2ff + .word 0x12014ba0 + .word 0x2ff + .word 0x81004bff + .word 0x2ff + .word 0x80804bff + .word 0x2ff + .word 0x58000fd9 + .word 0x2ff + .word 0x800949f2 + .word 0x2ff + .word 0x5000280f + .word 0x2ff + .word 0x800ffbfc + .word 0x2ff + .word 0x11052800 + .word 0x2ff + .word 0x11052800 + .word 0x2ff + .word 0x810523ff + .word 0x2ff + .word 0x100103ac + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x1fe0378 + .word 0x2ff + .word 0x1ff037a + .word 0x2ff + .word 0x100103fe + .word 0x2ff + .word 0x13e207ff + .word 0x2ff + .word 0x3e1f000 + .word 0x2ff + .word 0x81020bff + .word 0x2ff + .word 0x3e1f801 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x48005800 + .word 0x2e7780 + .word 0x80000030 + .word 0x2f7fc0 + .word 0x48005800 + .word 0x2e7784 + .word 0x80000030 + .word 0x2f7fc4 + .word 0x48005800 + .word 0x2e7781 + .word 0x80000030 + .word 0x2f7fc1 + .word 0x48005800 + .word 0x2e7785 + .word 0x80000030 + .word 0x2f7fc5 + .word 0x48005800 + .word 0x2e7782 + .word 0x80000030 + .word 0x2f7fc2 + .word 0x48005800 + .word 0x2e7786 + .word 0x80000030 + .word 0x2f7fc6 + .word 0x80000030 + .word 0x1ee7c2c + .word 0x800003bf + .word 0x1e0841c + .word 0x48005800 + .word 0x1f07428 + .word 0x80000030 + .word 0x2ff \ No newline at end of file diff --git a/test/decompiler/vu_reference/shrub-result.txt b/test/decompiler/vu_reference/shrub-result.txt new file mode 100644 index 0000000000..5897efc088 --- /dev/null +++ b/test/decompiler/vu_reference/shrub-result.txt @@ -0,0 +1,681 @@ + lq.xyzw vf31, 0(vi00) | nop + lq.xyzw vf30, 1(vi00) | nop + lq.xyzw vf29, 2(vi00) | nop + iaddiu vi11, vi00, 0xa2 | nop + iaddiu vi01, vi00, 0x338 | nop + mfir.x vf17, vi01 | nop + mfir.z vf17, vi01 | nop + iaddiu vi01, vi00, 0x1a8 | nop + mfir.y vf17, vi01 | nop + mfir.w vf17, vi01 | nop + iaddi vi01, vi00, 0x1 | nop + mfir.z vf25, vi01 | nop + iaddi vi01, vi00, 0x1 | itof0.xyzw vf17, vf17 + mfir.z vf26, vi01 | nop + iaddi vi01, vi00, 0x1 | nop + mfir.z vf27, vi01 | nop :e + nop | addy.xyzw vf17, vf17, vf30 + iaddiu vi01, vi00, 0xa4 | subx.xz vf17, vf00, vf17 + isub vi11, vi01, vi11 | addy.xyzw vf28, vf00, vf30 + b L1 | nop + iaddiu vi13, vi00, 0x175 | nop + iaddiu vi01, vi00, 0xa4 | subx.xz vf17, vf00, vf17 + isub vi11, vi01, vi11 | addy.xyzw vf28, vf00, vf30 + iaddiu vi13, vi00, 0x142 | nop +L1: + isw.y vi13, 1(vi00) | nop + iaddi vi09, vi11, 0x1 | suby.xz vf17, vf17, vf17 + ilwr.y vi05, vi11 | nop + ilwr.x vi15, vi11 | nop + lqi.xyzw vf01, vi09 | nop + nop | addx.xz vf17, vf17, vf30 + nop | nop + iaddi vi15, vi15, -0x1 | nop + mtir vi04, vf01.w | nop + mtir vi02, vf17.x | nop + ibne vi00, vi15, L2 | nop + mtir vi03, vf17.y | nop + nop | addz.y vf28, vf28, vf31 +L2: + lqi.xyzw vf02, vi09 | nop + iadd vi01, vi04, vi02 | nop + iadd vi14, vi04, vi03 | nop + iaddi vi05, vi05, -0x1 | nop + mtir vi04, vf02.w | nop + sq.xyzw vf01, 0(vi01) | nop + ibeq vi00, vi05, L3 | nop + sq.xyzw vf01, 0(vi14) | nop + lqi.xyzw vf01, vi09 | nop + iadd vi01, vi04, vi02 | nop + iadd vi14, vi04, vi03 | nop + iaddi vi05, vi05, -0x1 | nop + mtir vi04, vf01.w | nop + sq.xyzw vf02, 0(vi01) | nop + ibne vi00, vi05, L2 | nop + sq.xyzw vf02, 0(vi14) | nop +L3: + iaddi vi09, vi09, -0x1 | nop + ilwr.x vi05, vi11 | nop +L4: + lqi.xyzw vf01, vi09 | nop + lqi.xyzw vf02, vi09 | nop + lqi.xyzw vf03, vi09 | nop + lqi.xyzw vf04, vi09 | nop + mtir vi04, vf01.w | nop + iaddi vi05, vi05, -0x1 | nop + nop | nop + nop | nop + iadd vi01, vi04, vi02 | nop + sq.xyzw vf31, 0(vi01) | nop + sq.xyzw vf01, 1(vi01) | nop + sq.xyzw vf02, 2(vi01) | nop + sq.xyzw vf03, 3(vi01) | nop + sq.xyzw vf04, 4(vi01) | nop + iadd vi01, vi04, vi03 | nop + sq.xyzw vf31, 0(vi01) | nop + sq.xyzw vf01, 1(vi01) | nop + sq.xyzw vf02, 2(vi01) | nop + sq.xyzw vf03, 3(vi01) | nop + ibne vi00, vi05, L4 | nop + sq.xyzw vf04, 4(vi01) | nop + ilwr.z vi12, vi11 | nop + ilwr.w vi06, vi11 | nop + isw.x vi09, 1(vi00) | nop + iaddi vi15, vi00, 0x1 | nop + ior vi05, vi12, vi00 | nop + iadd vi06, vi06, vi11 | nop + iadd vi07, vi06, vi12 | nop + iadd vi08, vi07, vi12 | nop + iaddi vi05, vi05, 0x1 | nop +L5: + lq.xyzw vf01, 0(vi06) | nop + lq.xyz vf03, 0(vi07) | nop + lq.xyz vf05, 0(vi08) | nop + iaddi vi05, vi05, -0x2 | nop + lq.xyzw vf08, 1(vi06) | itof0.xyzw vf01, vf01 + lq.xyz vf10, 1(vi07) | itof0.xyzw vf03, vf03 + lq.xyz vf12, 1(vi08) | itof12.xyzw vf05, vf05 + nop | nop + sqi.xyzw vf01, vi06 | itof0.xyzw vf08, vf08 + sqi.xyz vf03, vi07 | itof0.xyzw vf10, vf10 + ibeq vi00, vi05, L6 | itof12.xyzw vf12, vf12 + sqi.xyz vf05, vi08 | nop + sqi.xyzw vf08, vi06 | nop + sqi.xyz vf10, vi07 | nop + ibne vi15, vi05, L5 | nop + sqi.xyz vf12, vi08 | nop +L6: + nop | nop :e + nop | nop + ilw.y vi13, 1(vi00) | nop + iaddiu vi01, vi00, 0x2b7 | nop + ilwr.w vi06, vi11 | nop + ilw.x vi09, 1(vi00) | nop + isub vi13, vi01, vi13 | nop + isw.y vi13, 1(vi00) | nop + ilwr.x vi14, vi13 | nop + lq.xyzw vf21, 4(vi13) | nop + lq.xyzw vf18, 1(vi13) | nop + lq.xyzw vf19, 2(vi13) | nop + lq.xyzw vf20, 3(vi13) | nop + lq.xyzw vf22, 5(vi13) | mulaz.w ACC, vf21, vf30 + iaddi vi13, vi13, 0x6 | maddw.w vf09, vf30, vf00 + iadd vi06, vi06, vi11 | nop + iadd vi07, vi06, vi12 | nop + iadd vi08, vi07, vi12 | nop + move.w vf04, vf22 | miniy.w vf09, vf09, vf29 + move.w vf11, vf22 | nop + lqi.xyzw vf01, vi06 | nop + lqi.xyzw vf05, vi08 | nop + lqi.xyzw vf03, vi07 | ftoi4.w vf02, vf09 + lqi.xyzw vf08, vi06 | ftoi4.w vf09, vf09 + lqi.xyzw vf12, vi08 | add.xyzw vf07, vf01, vf17 + lqi.xyzw vf10, vi07 | mulaw.xyzw ACC, vf21, vf00 + nop | maddax.xyzw ACC, vf18, vf01 + nop | madday.xyzw ACC, vf19, vf01 + nop | maddz.xyzw vf01, vf20, vf01 + nop | add.xyzw vf14, vf08, vf17 + nop | mulaw.xyzw ACC, vf21, vf00 + nop | maddax.xyzw ACC, vf18, vf08 + div Q, vf00.w, vf01.w | madday.xyzw ACC, vf19, vf08 + nop | maddz.xyzw vf08, vf20, vf08 + nop | nop + nop | nop + nop | nop + nop | nop + nop | nop + nop | mul.xyz vf02, vf01, Q + nop | mul.xyzw vf06, vf05, Q + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | nop + lqi.xyzw vf05, vi08 | nop + mtir vi02, vf07.w | nop + lqi.xyzw vf03, vi07 | nop + nop | nop + nop | add.xyzw vf07, vf01, vf17 + nop | mulaw.xyzw ACC, vf21, vf00 + nop | maddax.xyzw ACC, vf18, vf01 + nop | madday.xyzw ACC, vf19, vf01 + nop | maddz.xyzw vf01, vf20, vf01 + nop | mul.xyz vf09, vf08, Q + nop | mul.xyzw vf13, vf12, Q +L7: + lqi.xyzw vf08, vi06 | mul.xyz vf11, vf10, vf22 + div Q, vf00.w, vf01.w | nop + lqi.xyzw vf12, vi08 | nop + mtir vi05, vf14.w | nop + lqi.xyzw vf10, vi07 | sub.xyzw vf15, vf02, vf09 + sq.xyzw vf06, 1(vi02) | ftoi4.xyz vf02, vf02 + sq.xyzw vf04, 2(vi02) | add.xyzw vf14, vf08, vf17 + lqi.xyzw vf23, vi09 | mulaw.xyzw ACC, vf21, vf00 + lqi.xyzw vf24, vi09 | maddax.xyzw ACC, vf18, vf08 + sq.xyzw vf02, 3(vi02) | madday.xyzw ACC, vf19, vf08 + isubiu vi10, vi00, 0x40 | maddz.xyzw vf08, vf20, vf08 +L8: + mtir vi01, vf03.w | mul.xyz vf02, vf01, Q + sq.xyzw vf25, 0(vi02) | mul.xyzw vf06, vf05, Q + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | nop + lqi.xyzw vf05, vi08 | nop + mtir vi02, vf07.w | nop + lqi.xyzw vf03, vi07 | sub.xyzw vf16, vf09, vf02 + sq.xyzw vf13, 1(vi05) | ftoi4.xyz vf09, vf09 + sq.xyzw vf11, 2(vi05) | add.xyzw vf07, vf01, vf17 + nop | mulaw.xyzw ACC, vf21, vf00 + nop | maddax.xyzw ACC, vf18, vf01 + sq.xyzw vf09, 3(vi05) | madday.xyzw ACC, vf19, vf01 + nop | maddz.xyzw vf01, vf20, vf01 + mtir vi04, vf10.w | mul.xyz vf09, vf08, Q + sq.xyzw vf25, 0(vi05) | mul.xyzw vf13, vf12, Q + lqi.xyzw vf08, vi06 | mul.xyz vf11, vf10, vf22 + div Q, vf00.w, vf01.w | nop + lqi.xyzw vf12, vi08 | mulay.x ACC, vf15, vf16 + mtir vi05, vf14.w | msubay.x ACC, vf16, vf15 + lqi.xyzw vf10, vi07 | sub.xyzw vf15, vf02, vf09 + sq.xyzw vf06, 1(vi02) | ftoi4.xyz vf02, vf02 + sq.xyzw vf04, 2(vi02) | add.xyzw vf14, vf08, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + ibltz vi01, L27 | maddax.xyzw ACC, vf18, vf08 + sq.xyzw vf02, 3(vi02) | madday.xyzw ACC, vf19, vf08 +L9: + ibeq vi01, vi03, L16 | maddz.xyzw vf08, vf20, vf08 + mtir vi01, vf03.w | mul.xyz vf02, vf01, Q + b L14 | nop + sq.xyzw vf23, 0(vi02) | mul.xyzw vf06, vf05, Q + nop | mul.xyzw vf06, vf05, Q +L10: + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | nop + lqi.xyzw vf05, vi08 | nop + mtir vi02, vf07.w | nop + lqi.xyzw vf03, vi07 | sub.xyzw vf16, vf09, vf02 + sq.xyzw vf13, 1(vi05) | ftoi4.xyz vf09, vf09 + sq.xyzw vf11, 2(vi05) | add.xyzw vf07, vf01, vf17 + lqi.xyzw vf23, vi09 | mulaw.xyzw ACC, vf21, vf00 + lqi.xyzw vf24, vi09 | maddax.xyzw ACC, vf18, vf01 + sq.xyzw vf09, 3(vi05) | madday.xyzw ACC, vf19, vf01 + isubiu vi10, vi00, 0x40 | maddz.xyzw vf01, vf20, vf01 +L11: + mtir vi04, vf10.w | mul.xyz vf09, vf08, Q + sq.xyzw vf25, 0(vi05) | mul.xyzw vf13, vf12, Q + lqi.xyzw vf08, vi06 | mul.xyz vf11, vf10, vf22 + div Q, vf00.w, vf01.w | nop + lqi.xyzw vf12, vi08 | nop + mtir vi05, vf14.w | nop + lqi.xyzw vf10, vi07 | sub.xyzw vf15, vf02, vf09 + sq.xyzw vf06, 1(vi02) | ftoi4.xyz vf02, vf02 + sq.xyzw vf04, 2(vi02) | add.xyzw vf14, vf08, vf17 + nop | mulaw.xyzw ACC, vf21, vf00 + nop | maddax.xyzw ACC, vf18, vf08 + sq.xyzw vf02, 3(vi02) | madday.xyzw ACC, vf19, vf08 + nop | maddz.xyzw vf08, vf20, vf08 + mtir vi01, vf03.w | mul.xyz vf02, vf01, Q + sq.xyzw vf25, 0(vi02) | mul.xyzw vf06, vf05, Q + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | nop + lqi.xyzw vf05, vi08 | mulay.x ACC, vf15, vf16 + mtir vi02, vf07.w | msubay.x ACC, vf16, vf15 + lqi.xyzw vf03, vi07 | sub.xyzw vf16, vf09, vf02 + sq.xyzw vf13, 1(vi05) | ftoi4.xyz vf09, vf09 + sq.xyzw vf11, 2(vi05) | add.xyzw vf07, vf01, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + ibltz vi04, L26 | maddax.xyzw ACC, vf18, vf01 + sq.xyzw vf09, 3(vi05) | madday.xyzw ACC, vf19, vf01 +L12: + ibeq vi04, vi03, L17 | maddz.xyzw vf01, vf20, vf01 + mtir vi04, vf10.w | mul.xyz vf09, vf08, Q + b L15 | nop + sq.xyzw vf23, 0(vi05) | mul.xyzw vf13, vf12, Q +L13: + sq.xyzw vf26, 0(vi02) | mul.xyzw vf06, vf05, Q +L14: + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | nop + lqi.xyzw vf05, vi08 | mulay.x ACC, vf15, vf16 + mtir vi02, vf07.w | msubay.x ACC, vf16, vf15 + lqi.xyzw vf03, vi07 | sub.xyzw vf16, vf09, vf02 + sq.xyzw vf13, 1(vi05) | ftoi4.xyz vf09, vf09 + sq.xyzw vf11, 2(vi05) | add.xyzw vf07, vf01, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + ibltz vi04, L22 | maddax.xyzw ACC, vf18, vf01 + sq.xyzw vf09, 3(vi05) | madday.xyzw ACC, vf19, vf01 + ibeq vi04, vi03, L17 | maddz.xyzw vf01, vf20, vf01 + mtir vi04, vf10.w | mul.xyz vf09, vf08, Q + sq.xyzw vf26, 0(vi05) | mul.xyzw vf13, vf12, Q +L15: + lqi.xyzw vf08, vi06 | mul.xyz vf11, vf10, vf22 + div Q, vf00.w, vf01.w | nop + lqi.xyzw vf12, vi08 | mulay.x ACC, vf15, vf16 + mtir vi05, vf14.w | msubay.x ACC, vf16, vf15 + lqi.xyzw vf10, vi07 | sub.xyzw vf15, vf02, vf09 + sq.xyzw vf06, 1(vi02) | ftoi4.xyz vf02, vf02 + sq.xyzw vf04, 2(vi02) | add.xyzw vf14, vf08, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + ibltz vi01, L23 | maddax.xyzw ACC, vf18, vf08 + sq.xyzw vf02, 3(vi02) | madday.xyzw ACC, vf19, vf08 + ibne vi01, vi03, L13 | maddz.xyzw vf08, vf20, vf08 + mtir vi01, vf03.w | mul.xyz vf02, vf01, Q +L16: + b L19 | nop + sq.xyzw vf24, 0(vi02) | mul.xyzw vf06, vf05, Q +L17: + b L20 | nop + sq.xyzw vf24, 0(vi05) | mul.xyzw vf13, vf12, Q +L18: + sq.xyzw vf27, 0(vi02) | mul.xyzw vf06, vf05, Q +L19: + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | nop + lqi.xyzw vf05, vi08 | mulax.y ACC, vf15, vf16 + mtir vi02, vf07.w | msubax.y ACC, vf16, vf15 + lqi.xyzw vf03, vi07 | sub.xyzw vf16, vf09, vf02 + sq.xyzw vf13, 1(vi05) | ftoi4.xyz vf09, vf09 + sq.xyzw vf11, 2(vi05) | add.xyzw vf07, vf01, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + ibltz vi04, L24 | maddax.xyzw ACC, vf18, vf01 + sq.xyzw vf09, 3(vi05) | madday.xyzw ACC, vf19, vf01 + ibeq vi04, vi03, L21 | maddz.xyzw vf01, vf20, vf01 + mtir vi04, vf10.w | mul.xyz vf09, vf08, Q + sq.xyzw vf27, 0(vi05) | mul.xyzw vf13, vf12, Q +L20: + lqi.xyzw vf08, vi06 | mul.xyz vf11, vf10, vf22 + div Q, vf00.w, vf01.w | nop + lqi.xyzw vf12, vi08 | mulax.y ACC, vf15, vf16 + mtir vi05, vf14.w | msubax.y ACC, vf16, vf15 + lqi.xyzw vf10, vi07 | sub.xyzw vf15, vf02, vf09 + sq.xyzw vf06, 1(vi02) | ftoi4.xyz vf02, vf02 + sq.xyzw vf04, 2(vi02) | add.xyzw vf14, vf08, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + ibltz vi01, L25 | maddax.xyzw ACC, vf18, vf08 + sq.xyzw vf02, 3(vi02) | madday.xyzw ACC, vf19, vf08 + ibne vi01, vi03, L18 | maddz.xyzw vf08, vf20, vf08 + mtir vi01, vf03.w | mul.xyz vf02, vf01, Q + b L14 | nop + sq.xyzw vf23, 0(vi02) | mul.xyzw vf06, vf05, Q +L21: + b L15 | nop + sq.xyzw vf23, 0(vi05) | mul.xyzw vf13, vf12, Q +L22: + ibne vi10, vi04, L28 | nop + iaddiu vi04, vi04, 0x80 | nop + lqi.xyzw vf23, vi09 | nop + b L11 | nop + lqi.xyzw vf24, vi09 | maddz.xyzw vf01, vf20, vf01 +L23: + ibne vi10, vi01, L33 | nop + iaddiu vi01, vi01, 0x80 | nop + lqi.xyzw vf23, vi09 | nop + b L8 | nop + lqi.xyzw vf24, vi09 | maddz.xyzw vf08, vf20, vf08 +L24: + ibne vi10, vi04, L38 | nop + iaddiu vi04, vi04, 0x80 | nop + lqi.xyzw vf23, vi09 | nop + b L11 | nop + lqi.xyzw vf24, vi09 | maddz.xyzw vf01, vf20, vf01 +L25: + ibne vi10, vi01, L43 | nop + iaddiu vi01, vi01, 0x80 | nop + lqi.xyzw vf23, vi09 | nop + b L8 | nop + lqi.xyzw vf24, vi09 | maddz.xyzw vf08, vf20, vf08 +L26: + ibeq vi10, vi04, L12 | nop + iaddiu vi04, vi04, 0x80 | nop + ilwr.w vi06, vi11 | maddz.xyzw vf01, vf20, vf01 + mr32.xyzw vf17, vf17 | mul.xyz vf09, vf08, Q + lqi.xyzw vf18, vi13 | nop + lqi.xyzw vf19, vi13 | nop + lqi.xyzw vf20, vi13 | nop + lqi.xyzw vf21, vi13 | nop + iadd vi06, vi06, vi11 | nop + iadd vi07, vi06, vi12 | nop + iadd vi08, vi07, vi12 | nop + ibeq vi04, vi03, L48 | nop + mtir vi04, vf10.w | nop + b L29 | nop + sq.xyzw vf23, 0(vi05) | mul.xyzw vf13, vf12, Q +L27: + ibeq vi10, vi01, L9 | nop + iaddiu vi01, vi01, 0x80 | nop + ilwr.w vi06, vi11 | maddz.xyzw vf08, vf20, vf08 + mr32.xyzw vf17, vf17 | mul.xyz vf02, vf01, Q + lqi.xyzw vf18, vi13 | nop + lqi.xyzw vf19, vi13 | nop + lqi.xyzw vf20, vi13 | nop + lqi.xyzw vf21, vi13 | nop + iadd vi06, vi06, vi11 | nop + iadd vi07, vi06, vi12 | nop + iadd vi08, vi07, vi12 | nop + ibeq vi01, vi03, L52 | nop + mtir vi01, vf03.w | nop + b L34 | nop + sq.xyzw vf23, 0(vi02) | mul.xyzw vf06, vf05, Q +L28: + ilwr.w vi06, vi11 | maddz.xyzw vf01, vf20, vf01 + mr32.xyzw vf17, vf17 | mul.xyz vf09, vf08, Q + lqi.xyzw vf18, vi13 | nop + lqi.xyzw vf19, vi13 | nop + lqi.xyzw vf20, vi13 | nop + lqi.xyzw vf21, vi13 | nop + iadd vi06, vi06, vi11 | nop + iadd vi07, vi06, vi12 | nop + iadd vi08, vi07, vi12 | nop + ibeq vi04, vi03, L48 | nop + mtir vi04, vf10.w | nop + sq.xyzw vf26, 0(vi05) | mul.xyzw vf13, vf12, Q +L29: + lqi.xyzw vf08, vi06 | mul.xyz vf11, vf10, vf22 + div Q, vf00.w, vf01.w | nop + lqi.xyzw vf12, vi08 | mulay.x ACC, vf15, vf16 + mtir vi05, vf14.w | msubay.x ACC, vf16, vf15 + lqi.xyzw vf10, vi07 | sub.xyzw vf15, vf02, vf09 + sq.xyzw vf06, 1(vi02) | ftoi4.xyz vf02, vf02 + sq.xyzw vf04, 2(vi02) | add.xyzw vf14, vf08, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + ilw.x vi09, 1(vi00) | maddax.xyzw ACC, vf18, vf08 + sq.xyzw vf02, 3(vi02) | madday.xyzw ACC, vf19, vf08 + ibeq vi01, vi03, L49 | maddz.xyzw vf08, vf20, vf08 + mtir vi01, vf03.w | mul.xyz vf02, vf01, Q + sq.xyzw vf26, 0(vi02) | mul.xyzw vf06, vf05, Q +L30: + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | nop + lqi.xyzw vf05, vi08 | mulay.x ACC, vf15, vf16 + mtir vi02, vf07.w | msubay.x ACC, vf16, vf15 + lqi.xyzw vf03, vi07 | sub.xyzw vf16, vf09, vf02 + sq.xyzw vf13, 1(vi05) | ftoi4.xyz vf09, vf09 + sq.xyzw vf11, 2(vi05) | add.xyzw vf07, vf01, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + mtir vi10, vf28.x | maddax.xyzw ACC, vf18, vf01 + sq.xyzw vf09, 3(vi05) | madday.xyzw ACC, vf19, vf01 + lqi.xyzw vf22, vi13 | mulz.w vf09, vf21, vf30 + ibeq vi04, vi03, L50 | maddz.xyzw vf01, vf20, vf01 + mtir vi04, vf10.w | mul.xyz vf09, vf08, Q + sq.xyzw vf26, 0(vi05) | mul.xyzw vf13, vf12, Q +L31: + lqi.xyzw vf08, vi06 | mul.xyz vf11, vf10, vf22 + div Q, vf00.w, vf01.w | mulay.x ACC, vf15, vf16 + lqi.xyzw vf12, vi08 | addw.w vf09, vf30, vf09 + mtir vi05, vf14.w | msubay.x ACC, vf16, vf15 + lqi.xyzw vf10, vi07 | sub.xyzw vf15, vf02, vf09 + sq.xyzw vf06, 1(vi02) | ftoi4.xyz vf02, vf02 + sq.xyzw vf04, 2(vi02) | add.xyzw vf14, vf08, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + iaddi vi14, vi14, -0x1 | maddax.xyzw ACC, vf18, vf08 + sq.xyzw vf02, 3(vi02) | madday.xyzw ACC, vf19, vf08 + mtir vi15, vf17.x | miniy.w vf09, vf09, vf29 + ibeq vi01, vi03, L51 | maddz.xyzw vf08, vf20, vf08 + mtir vi01, vf03.w | mul.xyz vf02, vf01, Q + sq.xyzw vf26, 0(vi02) | mul.xyzw vf06, vf05, Q +L32: + move.w vf04, vf22 | addy.x vf28, vf00, vf28 + move.w vf11, vf22 | nop + iadd vi15, vi15, vi10 | nop + ibne vi00, vi14, L10 | ftoi4.w vf02, vf09 + xgkick vi15 | ftoi4.w vf09, vf09 + nop | nop :e + nop | nop +L33: + ilwr.w vi06, vi11 | maddz.xyzw vf08, vf20, vf08 + mr32.xyzw vf17, vf17 | mul.xyz vf02, vf01, Q + lqi.xyzw vf18, vi13 | nop + lqi.xyzw vf19, vi13 | nop + lqi.xyzw vf20, vi13 | nop + lqi.xyzw vf21, vi13 | nop + iadd vi06, vi06, vi11 | nop + iadd vi07, vi06, vi12 | nop + iadd vi08, vi07, vi12 | nop + ibeq vi01, vi03, L52 | nop + mtir vi01, vf03.w | nop + sq.xyzw vf26, 0(vi02) | mul.xyzw vf06, vf05, Q +L34: + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | nop + lqi.xyzw vf05, vi08 | mulay.x ACC, vf15, vf16 + mtir vi02, vf07.w | msubay.x ACC, vf16, vf15 + lqi.xyzw vf03, vi07 | sub.xyzw vf16, vf09, vf02 + sq.xyzw vf13, 1(vi05) | ftoi4.xyz vf09, vf09 + sq.xyzw vf11, 2(vi05) | add.xyzw vf07, vf01, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + ilw.x vi09, 1(vi00) | maddax.xyzw ACC, vf18, vf01 + sq.xyzw vf09, 3(vi05) | madday.xyzw ACC, vf19, vf01 + ibeq vi04, vi03, L53 | maddz.xyzw vf01, vf20, vf01 + mtir vi04, vf10.w | mul.xyz vf09, vf08, Q + sq.xyzw vf26, 0(vi05) | mul.xyzw vf13, vf12, Q +L35: + lqi.xyzw vf08, vi06 | mul.xyz vf11, vf10, vf22 + div Q, vf00.w, vf01.w | nop + lqi.xyzw vf12, vi08 | mulay.x ACC, vf15, vf16 + mtir vi05, vf14.w | msubay.x ACC, vf16, vf15 + lqi.xyzw vf10, vi07 | sub.xyzw vf15, vf02, vf09 + sq.xyzw vf06, 1(vi02) | ftoi4.xyz vf02, vf02 + sq.xyzw vf04, 2(vi02) | add.xyzw vf14, vf08, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + mtir vi10, vf28.x | maddax.xyzw ACC, vf18, vf08 + sq.xyzw vf02, 3(vi02) | madday.xyzw ACC, vf19, vf08 + lqi.xyzw vf22, vi13 | mulz.w vf02, vf21, vf30 + ibeq vi01, vi03, L54 | maddz.xyzw vf08, vf20, vf08 + mtir vi01, vf03.w | mul.xyz vf02, vf01, Q + sq.xyzw vf26, 0(vi02) | mul.xyzw vf06, vf05, Q +L36: + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | mulay.x ACC, vf15, vf16 + lqi.xyzw vf05, vi08 | addw.w vf02, vf30, vf02 + mtir vi02, vf07.w | msubay.x ACC, vf16, vf15 + lqi.xyzw vf03, vi07 | sub.xyzw vf16, vf09, vf02 + sq.xyzw vf13, 1(vi05) | ftoi4.xyz vf09, vf09 + sq.xyzw vf11, 2(vi05) | add.xyzw vf07, vf01, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + iaddi vi14, vi14, -0x1 | maddax.xyzw ACC, vf18, vf01 + sq.xyzw vf09, 3(vi05) | madday.xyzw ACC, vf19, vf01 + mtir vi15, vf17.x | miniy.w vf02, vf02, vf29 + ibeq vi04, vi03, L55 | maddz.xyzw vf01, vf20, vf01 + mtir vi04, vf10.w | mul.xyz vf09, vf08, Q + sq.xyzw vf26, 0(vi05) | mul.xyzw vf13, vf12, Q +L37: + move.w vf04, vf22 | addy.x vf28, vf00, vf28 + move.w vf11, vf22 | nop + iadd vi15, vi15, vi10 | nop + ibne vi00, vi14, L7 | ftoi4.w vf09, vf02 + xgkick vi15 | ftoi4.w vf02, vf02 + nop | nop :e + nop | nop +L38: + ilwr.w vi06, vi11 | maddz.xyzw vf01, vf20, vf01 + mr32.xyzw vf17, vf17 | mul.xyz vf09, vf08, Q + lqi.xyzw vf18, vi13 | nop + lqi.xyzw vf19, vi13 | nop + lqi.xyzw vf20, vi13 | nop + lqi.xyzw vf21, vi13 | nop + iadd vi06, vi06, vi11 | nop + iadd vi07, vi06, vi12 | nop + iadd vi08, vi07, vi12 | nop + ibeq vi04, vi03, L56 | nop + mtir vi04, vf10.w | nop + sq.xyzw vf27, 0(vi05) | mul.xyzw vf13, vf12, Q +L39: + lqi.xyzw vf08, vi06 | mul.xyz vf11, vf10, vf22 + div Q, vf00.w, vf01.w | nop + lqi.xyzw vf12, vi08 | mulax.y ACC, vf15, vf16 + mtir vi05, vf14.w | msubax.y ACC, vf16, vf15 + lqi.xyzw vf10, vi07 | sub.xyzw vf15, vf02, vf09 + sq.xyzw vf06, 1(vi02) | ftoi4.xyz vf02, vf02 + sq.xyzw vf04, 2(vi02) | add.xyzw vf14, vf08, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + ilw.x vi09, 1(vi00) | maddax.xyzw ACC, vf18, vf08 + sq.xyzw vf02, 3(vi02) | madday.xyzw ACC, vf19, vf08 + ibeq vi01, vi03, L57 | maddz.xyzw vf08, vf20, vf08 + mtir vi01, vf03.w | mul.xyz vf02, vf01, Q + sq.xyzw vf27, 0(vi02) | mul.xyzw vf06, vf05, Q +L40: + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | nop + lqi.xyzw vf05, vi08 | mulax.y ACC, vf15, vf16 + mtir vi02, vf07.w | msubax.y ACC, vf16, vf15 + lqi.xyzw vf03, vi07 | sub.xyzw vf16, vf09, vf02 + sq.xyzw vf13, 1(vi05) | ftoi4.xyz vf09, vf09 + sq.xyzw vf11, 2(vi05) | add.xyzw vf07, vf01, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + mtir vi10, vf28.x | maddax.xyzw ACC, vf18, vf01 + sq.xyzw vf09, 3(vi05) | madday.xyzw ACC, vf19, vf01 + lqi.xyzw vf22, vi13 | mulz.w vf09, vf21, vf30 + ibeq vi04, vi03, L58 | maddz.xyzw vf01, vf20, vf01 + mtir vi04, vf10.w | mul.xyz vf09, vf08, Q + sq.xyzw vf27, 0(vi05) | mul.xyzw vf13, vf12, Q +L41: + lqi.xyzw vf08, vi06 | mul.xyz vf11, vf10, vf22 + div Q, vf00.w, vf01.w | mulax.y ACC, vf15, vf16 + lqi.xyzw vf12, vi08 | addw.w vf09, vf30, vf09 + mtir vi05, vf14.w | msubax.y ACC, vf16, vf15 + lqi.xyzw vf10, vi07 | sub.xyzw vf15, vf02, vf09 + sq.xyzw vf06, 1(vi02) | ftoi4.xyz vf02, vf02 + sq.xyzw vf04, 2(vi02) | add.xyzw vf14, vf08, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + iaddi vi14, vi14, -0x1 | maddax.xyzw ACC, vf18, vf08 + sq.xyzw vf02, 3(vi02) | madday.xyzw ACC, vf19, vf08 + mtir vi15, vf17.x | miniy.w vf09, vf09, vf29 + ibeq vi01, vi03, L59 | maddz.xyzw vf08, vf20, vf08 + mtir vi01, vf03.w | mul.xyz vf02, vf01, Q + sq.xyzw vf27, 0(vi02) | mul.xyzw vf06, vf05, Q +L42: + move.w vf04, vf22 | addy.x vf28, vf00, vf28 + move.w vf11, vf22 | nop + iadd vi15, vi15, vi10 | nop + ibne vi00, vi14, L10 | ftoi4.w vf02, vf09 + xgkick vi15 | ftoi4.w vf09, vf09 + nop | nop :e + nop | nop +L43: + ilwr.w vi06, vi11 | maddz.xyzw vf08, vf20, vf08 + mr32.xyzw vf17, vf17 | mul.xyz vf02, vf01, Q + lqi.xyzw vf18, vi13 | nop + lqi.xyzw vf19, vi13 | nop + lqi.xyzw vf20, vi13 | nop + lqi.xyzw vf21, vi13 | nop + iadd vi06, vi06, vi11 | nop + iadd vi07, vi06, vi12 | nop + iadd vi08, vi07, vi12 | nop + ibeq vi01, vi03, L60 | nop + mtir vi01, vf03.w | nop + sq.xyzw vf27, 0(vi02) | mul.xyzw vf06, vf05, Q +L44: + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | nop + lqi.xyzw vf05, vi08 | mulax.y ACC, vf15, vf16 + mtir vi02, vf07.w | msubax.y ACC, vf16, vf15 + lqi.xyzw vf03, vi07 | sub.xyzw vf16, vf09, vf02 + sq.xyzw vf13, 1(vi05) | ftoi4.xyz vf09, vf09 + sq.xyzw vf11, 2(vi05) | add.xyzw vf07, vf01, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + ilw.x vi09, 1(vi00) | maddax.xyzw ACC, vf18, vf01 + sq.xyzw vf09, 3(vi05) | madday.xyzw ACC, vf19, vf01 + ibeq vi04, vi03, L61 | maddz.xyzw vf01, vf20, vf01 + mtir vi04, vf10.w | mul.xyz vf09, vf08, Q + sq.xyzw vf27, 0(vi05) | mul.xyzw vf13, vf12, Q +L45: + lqi.xyzw vf08, vi06 | mul.xyz vf11, vf10, vf22 + div Q, vf00.w, vf01.w | nop + lqi.xyzw vf12, vi08 | mulax.y ACC, vf15, vf16 + mtir vi05, vf14.w | msubax.y ACC, vf16, vf15 + lqi.xyzw vf10, vi07 | sub.xyzw vf15, vf02, vf09 + sq.xyzw vf06, 1(vi02) | ftoi4.xyz vf02, vf02 + sq.xyzw vf04, 2(vi02) | add.xyzw vf14, vf08, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + mtir vi10, vf28.x | maddax.xyzw ACC, vf18, vf08 + sq.xyzw vf02, 3(vi02) | madday.xyzw ACC, vf19, vf08 + lqi.xyzw vf22, vi13 | mulz.w vf02, vf21, vf30 + ibeq vi01, vi03, L62 | maddz.xyzw vf08, vf20, vf08 + mtir vi01, vf03.w | mul.xyz vf02, vf01, Q + sq.xyzw vf27, 0(vi02) | mul.xyzw vf06, vf05, Q +L46: + lqi.xyzw vf01, vi06 | mul.xyz vf04, vf03, vf22 + div Q, vf00.w, vf08.w | mulax.y ACC, vf15, vf16 + lqi.xyzw vf05, vi08 | addw.w vf02, vf30, vf02 + mtir vi02, vf07.w | msubax.y ACC, vf16, vf15 + lqi.xyzw vf03, vi07 | sub.xyzw vf16, vf09, vf02 + sq.xyzw vf13, 1(vi05) | ftoi4.xyz vf09, vf09 + sq.xyzw vf11, 2(vi05) | add.xyzw vf07, vf01, vf17 + fsand vi03, 0x2 | mulaw.xyzw ACC, vf21, vf00 + iaddi vi14, vi14, -0x1 | maddax.xyzw ACC, vf18, vf01 + sq.xyzw vf09, 3(vi05) | madday.xyzw ACC, vf19, vf01 + mtir vi15, vf17.x | miniy.w vf02, vf02, vf29 + ibeq vi04, vi03, L63 | maddz.xyzw vf01, vf20, vf01 + mtir vi04, vf10.w | mul.xyz vf09, vf08, Q + sq.xyzw vf27, 0(vi05) | mul.xyzw vf13, vf12, Q +L47: + move.w vf04, vf22 | addy.x vf28, vf00, vf28 + move.w vf11, vf22 | nop + iadd vi15, vi15, vi10 | nop + ibne vi00, vi14, L7 | ftoi4.w vf09, vf02 + xgkick vi15 | ftoi4.w vf02, vf02 + nop | nop :e + nop | nop +L48: + b L39 | nop + sq.xyzw vf24, 0(vi05) | mul.xyzw vf13, vf12, Q +L49: + b L40 | nop + sq.xyzw vf24, 0(vi02) | mul.xyzw vf06, vf05, Q +L50: + b L41 | nop + sq.xyzw vf24, 0(vi05) | mul.xyzw vf13, vf12, Q +L51: + b L42 | nop + sq.xyzw vf24, 0(vi02) | mul.xyzw vf06, vf05, Q +L52: + b L44 | nop + sq.xyzw vf24, 0(vi02) | mul.xyzw vf06, vf05, Q +L53: + b L45 | nop + sq.xyzw vf24, 0(vi05) | mul.xyzw vf13, vf12, Q +L54: + b L46 | nop + sq.xyzw vf24, 0(vi02) | mul.xyzw vf06, vf05, Q +L55: + b L47 | nop + sq.xyzw vf24, 0(vi05) | mul.xyzw vf13, vf12, Q +L56: + b L29 | nop + sq.xyzw vf23, 0(vi05) | mul.xyzw vf13, vf12, Q +L57: + b L30 | nop + sq.xyzw vf23, 0(vi02) | mul.xyzw vf06, vf05, Q +L58: + b L31 | nop + sq.xyzw vf23, 0(vi05) | mul.xyzw vf13, vf12, Q +L59: + b L32 | nop + sq.xyzw vf23, 0(vi02) | mul.xyzw vf06, vf05, Q +L60: + b L34 | nop + sq.xyzw vf23, 0(vi02) | mul.xyzw vf06, vf05, Q +L61: + b L35 | nop + sq.xyzw vf23, 0(vi05) | mul.xyzw vf13, vf12, Q +L62: + b L36 | nop + sq.xyzw vf23, 0(vi02) | mul.xyzw vf06, vf05, Q +L63: + b L37 | nop + sq.xyzw vf23, 0(vi05) | mul.xyzw vf13, vf12, Q diff --git a/test/decompiler/vu_reference/shrub.txt b/test/decompiler/vu_reference/shrub.txt new file mode 100644 index 0000000000..b039be5fa1 --- /dev/null +++ b/test/decompiler/vu_reference/shrub.txt @@ -0,0 +1,1236 @@ + .word 0x1ff0000 + .word 0x2ff + .word 0x1fe0001 + .word 0x2ff + .word 0x1fd0002 + .word 0x2ff + .word 0x100b00a2 + .word 0x2ff + .word 0x10010338 + .word 0x2ff + .word 0x81110bfd + .word 0x2ff + .word 0x80510bfd + .word 0x2ff + .word 0x100101a8 + .word 0x2ff + .word 0x80910bfd + .word 0x2ff + .word 0x80310bfd + .word 0x2ff + .word 0x80010072 + .word 0x2ff + .word 0x80590bfd + .word 0x2ff + .word 0x80010072 + .word 0x1f1893c + .word 0x805a0bfd + .word 0x2ff + .word 0x80010072 + .word 0x2ff + .word 0x805b0bfd + .word 0x400002ff + .word 0x80000030 + .word 0x1fe8c41 + .word 0x100100a4 + .word 0x1510444 + .word 0x800b0af1 + .word 0x1fe0701 + .word 0x40000004 + .word 0x2ff + .word 0x100d0175 + .word 0x2ff + .word 0x100100a4 + .word 0x1510444 + .word 0x800b0af1 + .word 0x1fe0701 + .word 0x100d0142 + .word 0x2ff + .word 0xa8d0001 + .word 0x2ff + .word 0x80095872 + .word 0x1518c45 + .word 0x80855bfe + .word 0x2ff + .word 0x810f5bfe + .word 0x2ff + .word 0x81e14b7c + .word 0x2ff + .word 0x80000030 + .word 0x15e8c40 + .word 0x80000030 + .word 0x2ff + .word 0x800f7ff2 + .word 0x2ff + .word 0x80640bfc + .word 0x2ff + .word 0x80028bfc + .word 0x2ff + .word 0x52007802 + .word 0x2ff + .word 0x80238bfc + .word 0x2ff + .word 0x80000030 + .word 0x9fe702 + .word 0x81e24b7c + .word 0x2ff + .word 0x80022070 + .word 0x2ff + .word 0x800323b0 + .word 0x2ff + .word 0x80052ff2 + .word 0x2ff + .word 0x806413fc + .word 0x2ff + .word 0x3e10800 + .word 0x2ff + .word 0x50002809 + .word 0x2ff + .word 0x3ee0800 + .word 0x2ff + .word 0x81e14b7c + .word 0x2ff + .word 0x80022070 + .word 0x2ff + .word 0x800323b0 + .word 0x2ff + .word 0x80052ff2 + .word 0x2ff + .word 0x80640bfc + .word 0x2ff + .word 0x3e11000 + .word 0x2ff + .word 0x52002ff1 + .word 0x2ff + .word 0x3ee1000 + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x81055bfe + .word 0x2ff + .word 0x81e14b7c + .word 0x2ff + .word 0x81e24b7c + .word 0x2ff + .word 0x81e34b7c + .word 0x2ff + .word 0x81e44b7c + .word 0x2ff + .word 0x80640bfc + .word 0x2ff + .word 0x80052ff2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80022070 + .word 0x2ff + .word 0x3e1f800 + .word 0x2ff + .word 0x3e10801 + .word 0x2ff + .word 0x3e11002 + .word 0x2ff + .word 0x3e11803 + .word 0x2ff + .word 0x3e12004 + .word 0x2ff + .word 0x80032070 + .word 0x2ff + .word 0x3e1f800 + .word 0x2ff + .word 0x3e10801 + .word 0x2ff + .word 0x3e11002 + .word 0x2ff + .word 0x3e11803 + .word 0x2ff + .word 0x52002fec + .word 0x2ff + .word 0x3e12004 + .word 0x2ff + .word 0x804c5bfe + .word 0x2ff + .word 0x80265bfe + .word 0x2ff + .word 0xb090001 + .word 0x2ff + .word 0x800f0072 + .word 0x2ff + .word 0x80006175 + .word 0x2ff + .word 0x800b31b0 + .word 0x2ff + .word 0x800c31f0 + .word 0x2ff + .word 0x800c3a30 + .word 0x2ff + .word 0x80052872 + .word 0x2ff + .word 0x1e13000 + .word 0x2ff + .word 0x1c33800 + .word 0x2ff + .word 0x1c54000 + .word 0x2ff + .word 0x80052fb2 + .word 0x2ff + .word 0x1e83001 + .word 0x1e1093c + .word 0x1ca3801 + .word 0x1e3193c + .word 0x1cc4001 + .word 0x1e5293e + .word 0x80000030 + .word 0x2ff + .word 0x81e60b7d + .word 0x1e8413c + .word 0x81c71b7d + .word 0x1ea513c + .word 0x50002805 + .word 0x1ec613e + .word 0x81c82b7d + .word 0x2ff + .word 0x81e6437d + .word 0x2ff + .word 0x81c7537d + .word 0x2ff + .word 0x520f2ff1 + .word 0x2ff + .word 0x81c8637d + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x88d0001 + .word 0x2ff + .word 0x100102b7 + .word 0x2ff + .word 0x80265bfe + .word 0x2ff + .word 0x9090001 + .word 0x2ff + .word 0x800d0b71 + .word 0x2ff + .word 0xa8d0001 + .word 0x2ff + .word 0x810e6bfe + .word 0x2ff + .word 0x1f56804 + .word 0x2ff + .word 0x1f26801 + .word 0x2ff + .word 0x1f36802 + .word 0x2ff + .word 0x1f46803 + .word 0x2ff + .word 0x1f66805 + .word 0x3ea9be + .word 0x800d69b2 + .word 0x20f24b + .word 0x800b31b0 + .word 0x2ff + .word 0x800c31f0 + .word 0x2ff + .word 0x800c3a30 + .word 0x2ff + .word 0x8024b33c + .word 0x3d4a55 + .word 0x802bb33c + .word 0x2ff + .word 0x81e1337c + .word 0x2ff + .word 0x81e5437c + .word 0x2ff + .word 0x81e33b7c + .word 0x22497d + .word 0x81e8337c + .word 0x29497d + .word 0x81ec437c + .word 0x1f109e8 + .word 0x81ea3b7c + .word 0x1e0a9bf + .word 0x80000030 + .word 0x1e190bc + .word 0x80000030 + .word 0x1e198bd + .word 0x80000030 + .word 0x1e1a04a + .word 0x80000030 + .word 0x1f143a8 + .word 0x80000030 + .word 0x1e0a9bf + .word 0x80000030 + .word 0x1e890bc + .word 0x81e103bc + .word 0x1e898bd + .word 0x80000030 + .word 0x1e8a20a + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c0089c + .word 0x80000030 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x2ff + .word 0x81e5437c + .word 0x2ff + .word 0x80623bfc + .word 0x2ff + .word 0x81e33b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1f109e8 + .word 0x80000030 + .word 0x1e0a9bf + .word 0x80000030 + .word 0x1e190bc + .word 0x80000030 + .word 0x1e198bd + .word 0x80000030 + .word 0x1e1a04a + .word 0x80000030 + .word 0x1c0425c + .word 0x80000030 + .word 0x1e0635c + .word 0x81e8337c + .word 0x1d652ea + .word 0x81e103bc + .word 0x2ff + .word 0x81ec437c + .word 0x2ff + .word 0x806573fc + .word 0x2ff + .word 0x81ea3b7c + .word 0x1e913ec + .word 0x3e23001 + .word 0x1c2117d + .word 0x3e22002 + .word 0x1f143a8 + .word 0x81f74b7c + .word 0x1e0a9bf + .word 0x81f84b7c + .word 0x1e890bc + .word 0x3e21003 + .word 0x1e898bd + .word 0x120a0040 + .word 0x1e8a20a + .word 0x80611bfc + .word 0x1c0089c + .word 0x3e2c800 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x2ff + .word 0x81e5437c + .word 0x2ff + .word 0x80623bfc + .word 0x2ff + .word 0x81e33b7c + .word 0x1e24c2c + .word 0x3e56801 + .word 0x1c9497d + .word 0x3e55802 + .word 0x1f109e8 + .word 0x80000030 + .word 0x1e0a9bf + .word 0x80000030 + .word 0x1e190bc + .word 0x3e54803 + .word 0x1e198bd + .word 0x80000030 + .word 0x1e1a04a + .word 0x806453fc + .word 0x1c0425c + .word 0x3e5c800 + .word 0x1e0635c + .word 0x81e8337c + .word 0x1d652ea + .word 0x81e103bc + .word 0x2ff + .word 0x81ec437c + .word 0x11079bd + .word 0x806573fc + .word 0x10f80fd + .word 0x81ea3b7c + .word 0x1e913ec + .word 0x3e23001 + .word 0x1c2117d + .word 0x3e22002 + .word 0x1f143a8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x5800088d + .word 0x1e890bc + .word 0x3e21003 + .word 0x1e898bd + .word 0x50011846 + .word 0x1e8a20a + .word 0x80611bfc + .word 0x1c0089c + .word 0x4000002b + .word 0x2ff + .word 0x3e2b800 + .word 0x1e0299c + .word 0x80000030 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x2ff + .word 0x81e5437c + .word 0x2ff + .word 0x80623bfc + .word 0x2ff + .word 0x81e33b7c + .word 0x1e24c2c + .word 0x3e56801 + .word 0x1c9497d + .word 0x3e55802 + .word 0x1f109e8 + .word 0x81f74b7c + .word 0x1e0a9bf + .word 0x81f84b7c + .word 0x1e190bc + .word 0x3e54803 + .word 0x1e198bd + .word 0x120a0040 + .word 0x1e1a04a + .word 0x806453fc + .word 0x1c0425c + .word 0x3e5c800 + .word 0x1e0635c + .word 0x81e8337c + .word 0x1d652ea + .word 0x81e103bc + .word 0x2ff + .word 0x81ec437c + .word 0x2ff + .word 0x806573fc + .word 0x2ff + .word 0x81ea3b7c + .word 0x1e913ec + .word 0x3e23001 + .word 0x1c2117d + .word 0x3e22002 + .word 0x1f143a8 + .word 0x80000030 + .word 0x1e0a9bf + .word 0x80000030 + .word 0x1e890bc + .word 0x3e21003 + .word 0x1e898bd + .word 0x80000030 + .word 0x1e8a20a + .word 0x80611bfc + .word 0x1c0089c + .word 0x3e2c800 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x2ff + .word 0x81e5437c + .word 0x11079bd + .word 0x80623bfc + .word 0x10f80fd + .word 0x81e33b7c + .word 0x1e24c2c + .word 0x3e56801 + .word 0x1c9497d + .word 0x3e55802 + .word 0x1f109e8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x58002055 + .word 0x1e190bc + .word 0x3e54803 + .word 0x1e198bd + .word 0x5004181f + .word 0x1e1a04a + .word 0x806453fc + .word 0x1c0425c + .word 0x4000000f + .word 0x2ff + .word 0x3e5b800 + .word 0x1e0635c + .word 0x3e2d000 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x2ff + .word 0x81e5437c + .word 0x11079bd + .word 0x80623bfc + .word 0x10f80fd + .word 0x81e33b7c + .word 0x1e24c2c + .word 0x3e56801 + .word 0x1c9497d + .word 0x3e55802 + .word 0x1f109e8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x58002032 + .word 0x1e190bc + .word 0x3e54803 + .word 0x1e198bd + .word 0x50041810 + .word 0x1e1a04a + .word 0x806453fc + .word 0x1c0425c + .word 0x3e5d000 + .word 0x1e0635c + .word 0x81e8337c + .word 0x1d652ea + .word 0x81e103bc + .word 0x2ff + .word 0x81ec437c + .word 0x11079bd + .word 0x806573fc + .word 0x10f80fd + .word 0x81ea3b7c + .word 0x1e913ec + .word 0x3e23001 + .word 0x1c2117d + .word 0x3e22002 + .word 0x1f143a8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x5800082a + .word 0x1e890bc + .word 0x3e21003 + .word 0x1e898bd + .word 0x52011fe7 + .word 0x1e8a20a + .word 0x80611bfc + .word 0x1c0089c + .word 0x40000004 + .word 0x2ff + .word 0x3e2c000 + .word 0x1e0299c + .word 0x4000000f + .word 0x2ff + .word 0x3e5c000 + .word 0x1e0635c + .word 0x3e2d800 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x2ff + .word 0x81e5437c + .word 0x9079bc + .word 0x80623bfc + .word 0x8f80fc + .word 0x81e33b7c + .word 0x1e24c2c + .word 0x3e56801 + .word 0x1c9497d + .word 0x3e55802 + .word 0x1f109e8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x5800201e + .word 0x1e190bc + .word 0x3e54803 + .word 0x1e198bd + .word 0x50041810 + .word 0x1e1a04a + .word 0x806453fc + .word 0x1c0425c + .word 0x3e5d800 + .word 0x1e0635c + .word 0x81e8337c + .word 0x1d652ea + .word 0x81e103bc + .word 0x2ff + .word 0x81ec437c + .word 0x9079bc + .word 0x806573fc + .word 0x8f80fc + .word 0x81ea3b7c + .word 0x1e913ec + .word 0x3e23001 + .word 0x1c2117d + .word 0x3e22002 + .word 0x1f143a8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x58000816 + .word 0x1e890bc + .word 0x3e21003 + .word 0x1e898bd + .word 0x52011fe7 + .word 0x1e8a20a + .word 0x80611bfc + .word 0x1c0089c + .word 0x400007c8 + .word 0x2ff + .word 0x3e2b800 + .word 0x1e0299c + .word 0x400007d3 + .word 0x2ff + .word 0x3e5b800 + .word 0x1e0635c + .word 0x520a2031 + .word 0x2ff + .word 0x10042080 + .word 0x2ff + .word 0x81f74b7c + .word 0x2ff + .word 0x400007a3 + .word 0x2ff + .word 0x81f84b7c + .word 0x1e1a04a + .word 0x520a0868 + .word 0x2ff + .word 0x10010880 + .word 0x2ff + .word 0x81f74b7c + .word 0x2ff + .word 0x40000775 + .word 0x2ff + .word 0x81f84b7c + .word 0x1e8a20a + .word 0x520a209f + .word 0x2ff + .word 0x10042080 + .word 0x2ff + .word 0x81f74b7c + .word 0x2ff + .word 0x40000799 + .word 0x2ff + .word 0x81f84b7c + .word 0x1e1a04a + .word 0x520a08d6 + .word 0x2ff + .word 0x10010880 + .word 0x2ff + .word 0x81f74b7c + .word 0x2ff + .word 0x4000076b + .word 0x2ff + .word 0x81f84b7c + .word 0x1e8a20a + .word 0x500a27ab + .word 0x2ff + .word 0x10042080 + .word 0x2ff + .word 0x80265bfe + .word 0x1e1a04a + .word 0x81f18b3d + .word 0x1c0425c + .word 0x81f26b7c + .word 0x2ff + .word 0x81f36b7c + .word 0x2ff + .word 0x81f46b7c + .word 0x2ff + .word 0x81f56b7c + .word 0x2ff + .word 0x800b31b0 + .word 0x2ff + .word 0x800c31f0 + .word 0x2ff + .word 0x800c3a30 + .word 0x2ff + .word 0x50041902 + .word 0x2ff + .word 0x806453fc + .word 0x2ff + .word 0x4000001c + .word 0x2ff + .word 0x3e5b800 + .word 0x1e0635c + .word 0x500a0f73 + .word 0x2ff + .word 0x10010880 + .word 0x2ff + .word 0x80265bfe + .word 0x1e8a20a + .word 0x81f18b3d + .word 0x1c0089c + .word 0x81f26b7c + .word 0x2ff + .word 0x81f36b7c + .word 0x2ff + .word 0x81f46b7c + .word 0x2ff + .word 0x81f56b7c + .word 0x2ff + .word 0x800b31b0 + .word 0x2ff + .word 0x800c31f0 + .word 0x2ff + .word 0x800c3a30 + .word 0x2ff + .word 0x500118fb + .word 0x2ff + .word 0x80611bfc + .word 0x2ff + .word 0x40000049 + .word 0x2ff + .word 0x3e2b800 + .word 0x1e0299c + .word 0x80265bfe + .word 0x1e1a04a + .word 0x81f18b3d + .word 0x1c0425c + .word 0x81f26b7c + .word 0x2ff + .word 0x81f36b7c + .word 0x2ff + .word 0x81f46b7c + .word 0x2ff + .word 0x81f56b7c + .word 0x2ff + .word 0x800b31b0 + .word 0x2ff + .word 0x800c31f0 + .word 0x2ff + .word 0x800c3a30 + .word 0x2ff + .word 0x500418e6 + .word 0x2ff + .word 0x806453fc + .word 0x2ff + .word 0x3e5d000 + .word 0x1e0635c + .word 0x81e8337c + .word 0x1d652ea + .word 0x81e103bc + .word 0x2ff + .word 0x81ec437c + .word 0x11079bd + .word 0x806573fc + .word 0x10f80fd + .word 0x81ea3b7c + .word 0x1e913ec + .word 0x3e23001 + .word 0x1c2117d + .word 0x3e22002 + .word 0x1f143a8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x9090001 + .word 0x1e890bc + .word 0x3e21003 + .word 0x1e898bd + .word 0x500118db + .word 0x1e8a20a + .word 0x80611bfc + .word 0x1c0089c + .word 0x3e2d000 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x2ff + .word 0x81e5437c + .word 0x11079bd + .word 0x80623bfc + .word 0x10f80fd + .word 0x81e33b7c + .word 0x1e24c2c + .word 0x3e56801 + .word 0x1c9497d + .word 0x3e55802 + .word 0x1f109e8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x800ae3fc + .word 0x1e190bc + .word 0x3e54803 + .word 0x1e198bd + .word 0x81f66b7c + .word 0x3eaa5a + .word 0x500418cf + .word 0x1e1a04a + .word 0x806453fc + .word 0x1c0425c + .word 0x3e5d000 + .word 0x1e0635c + .word 0x81e8337c + .word 0x1d652ea + .word 0x81e103bc + .word 0x11079bd + .word 0x81ec437c + .word 0x29f243 + .word 0x806573fc + .word 0x10f80fd + .word 0x81ea3b7c + .word 0x1e913ec + .word 0x3e23001 + .word 0x1c2117d + .word 0x3e22002 + .word 0x1f143a8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x800e77f2 + .word 0x1e890bc + .word 0x3e21003 + .word 0x1e898bd + .word 0x800f8bfc + .word 0x3d4a55 + .word 0x500118c3 + .word 0x1e8a20a + .word 0x80611bfc + .word 0x1c0089c + .word 0x3e2d000 + .word 0x1e0299c + .word 0x8024b33c + .word 0x11c0701 + .word 0x802bb33c + .word 0x2ff + .word 0x800a7bf0 + .word 0x2ff + .word 0x52007731 + .word 0x22497d + .word 0x80007efc + .word 0x29497d + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x80265bfe + .word 0x1e8a20a + .word 0x81f18b3d + .word 0x1c0089c + .word 0x81f26b7c + .word 0x2ff + .word 0x81f36b7c + .word 0x2ff + .word 0x81f46b7c + .word 0x2ff + .word 0x81f56b7c + .word 0x2ff + .word 0x800b31b0 + .word 0x2ff + .word 0x800c31f0 + .word 0x2ff + .word 0x800c3a30 + .word 0x2ff + .word 0x500118b2 + .word 0x2ff + .word 0x80611bfc + .word 0x2ff + .word 0x3e2d000 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x2ff + .word 0x81e5437c + .word 0x11079bd + .word 0x80623bfc + .word 0x10f80fd + .word 0x81e33b7c + .word 0x1e24c2c + .word 0x3e56801 + .word 0x1c9497d + .word 0x3e55802 + .word 0x1f109e8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x9090001 + .word 0x1e190bc + .word 0x3e54803 + .word 0x1e198bd + .word 0x500418a7 + .word 0x1e1a04a + .word 0x806453fc + .word 0x1c0425c + .word 0x3e5d000 + .word 0x1e0635c + .word 0x81e8337c + .word 0x1d652ea + .word 0x81e103bc + .word 0x2ff + .word 0x81ec437c + .word 0x11079bd + .word 0x806573fc + .word 0x10f80fd + .word 0x81ea3b7c + .word 0x1e913ec + .word 0x3e23001 + .word 0x1c2117d + .word 0x3e22002 + .word 0x1f143a8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x800ae3fc + .word 0x1e890bc + .word 0x3e21003 + .word 0x1e898bd + .word 0x81f66b7c + .word 0x3ea89a + .word 0x5001189b + .word 0x1e8a20a + .word 0x80611bfc + .word 0x1c0089c + .word 0x3e2d000 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x11079bd + .word 0x81e5437c + .word 0x22f083 + .word 0x80623bfc + .word 0x10f80fd + .word 0x81e33b7c + .word 0x1e24c2c + .word 0x3e56801 + .word 0x1c9497d + .word 0x3e55802 + .word 0x1f109e8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x800e77f2 + .word 0x1e190bc + .word 0x3e54803 + .word 0x1e198bd + .word 0x800f8bfc + .word 0x3d1095 + .word 0x5004188f + .word 0x1e1a04a + .word 0x806453fc + .word 0x1c0425c + .word 0x3e5d000 + .word 0x1e0635c + .word 0x8024b33c + .word 0x11c0701 + .word 0x802bb33c + .word 0x2ff + .word 0x800a7bf0 + .word 0x2ff + .word 0x520076cc + .word 0x29117d + .word 0x80007efc + .word 0x22117d + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x80265bfe + .word 0x1e1a04a + .word 0x81f18b3d + .word 0x1c0425c + .word 0x81f26b7c + .word 0x2ff + .word 0x81f36b7c + .word 0x2ff + .word 0x81f46b7c + .word 0x2ff + .word 0x81f56b7c + .word 0x2ff + .word 0x800b31b0 + .word 0x2ff + .word 0x800c31f0 + .word 0x2ff + .word 0x800c3a30 + .word 0x2ff + .word 0x5004187e + .word 0x2ff + .word 0x806453fc + .word 0x2ff + .word 0x3e5d800 + .word 0x1e0635c + .word 0x81e8337c + .word 0x1d652ea + .word 0x81e103bc + .word 0x2ff + .word 0x81ec437c + .word 0x9079bc + .word 0x806573fc + .word 0x8f80fc + .word 0x81ea3b7c + .word 0x1e913ec + .word 0x3e23001 + .word 0x1c2117d + .word 0x3e22002 + .word 0x1f143a8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x9090001 + .word 0x1e890bc + .word 0x3e21003 + .word 0x1e898bd + .word 0x50011873 + .word 0x1e8a20a + .word 0x80611bfc + .word 0x1c0089c + .word 0x3e2d800 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x2ff + .word 0x81e5437c + .word 0x9079bc + .word 0x80623bfc + .word 0x8f80fc + .word 0x81e33b7c + .word 0x1e24c2c + .word 0x3e56801 + .word 0x1c9497d + .word 0x3e55802 + .word 0x1f109e8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x800ae3fc + .word 0x1e190bc + .word 0x3e54803 + .word 0x1e198bd + .word 0x81f66b7c + .word 0x3eaa5a + .word 0x50041867 + .word 0x1e1a04a + .word 0x806453fc + .word 0x1c0425c + .word 0x3e5d800 + .word 0x1e0635c + .word 0x81e8337c + .word 0x1d652ea + .word 0x81e103bc + .word 0x9079bc + .word 0x81ec437c + .word 0x29f243 + .word 0x806573fc + .word 0x8f80fc + .word 0x81ea3b7c + .word 0x1e913ec + .word 0x3e23001 + .word 0x1c2117d + .word 0x3e22002 + .word 0x1f143a8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x800e77f2 + .word 0x1e890bc + .word 0x3e21003 + .word 0x1e898bd + .word 0x800f8bfc + .word 0x3d4a55 + .word 0x5001185b + .word 0x1e8a20a + .word 0x80611bfc + .word 0x1c0089c + .word 0x3e2d800 + .word 0x1e0299c + .word 0x8024b33c + .word 0x11c0701 + .word 0x802bb33c + .word 0x2ff + .word 0x800a7bf0 + .word 0x2ff + .word 0x520076b9 + .word 0x22497d + .word 0x80007efc + .word 0x29497d + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x80265bfe + .word 0x1e8a20a + .word 0x81f18b3d + .word 0x1c0089c + .word 0x81f26b7c + .word 0x2ff + .word 0x81f36b7c + .word 0x2ff + .word 0x81f46b7c + .word 0x2ff + .word 0x81f56b7c + .word 0x2ff + .word 0x800b31b0 + .word 0x2ff + .word 0x800c31f0 + .word 0x2ff + .word 0x800c3a30 + .word 0x2ff + .word 0x5001184a + .word 0x2ff + .word 0x80611bfc + .word 0x2ff + .word 0x3e2d800 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x2ff + .word 0x81e5437c + .word 0x9079bc + .word 0x80623bfc + .word 0x8f80fc + .word 0x81e33b7c + .word 0x1e24c2c + .word 0x3e56801 + .word 0x1c9497d + .word 0x3e55802 + .word 0x1f109e8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x9090001 + .word 0x1e190bc + .word 0x3e54803 + .word 0x1e198bd + .word 0x5004183f + .word 0x1e1a04a + .word 0x806453fc + .word 0x1c0425c + .word 0x3e5d800 + .word 0x1e0635c + .word 0x81e8337c + .word 0x1d652ea + .word 0x81e103bc + .word 0x2ff + .word 0x81ec437c + .word 0x9079bc + .word 0x806573fc + .word 0x8f80fc + .word 0x81ea3b7c + .word 0x1e913ec + .word 0x3e23001 + .word 0x1c2117d + .word 0x3e22002 + .word 0x1f143a8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x800ae3fc + .word 0x1e890bc + .word 0x3e21003 + .word 0x1e898bd + .word 0x81f66b7c + .word 0x3ea89a + .word 0x50011833 + .word 0x1e8a20a + .word 0x80611bfc + .word 0x1c0089c + .word 0x3e2d800 + .word 0x1e0299c + .word 0x81e1337c + .word 0x1d6192a + .word 0x81e803bc + .word 0x9079bc + .word 0x81e5437c + .word 0x22f083 + .word 0x80623bfc + .word 0x8f80fc + .word 0x81e33b7c + .word 0x1e24c2c + .word 0x3e56801 + .word 0x1c9497d + .word 0x3e55802 + .word 0x1f109e8 + .word 0x2c030002 + .word 0x1e0a9bf + .word 0x800e77f2 + .word 0x1e190bc + .word 0x3e54803 + .word 0x1e198bd + .word 0x800f8bfc + .word 0x3d1095 + .word 0x50041827 + .word 0x1e1a04a + .word 0x806453fc + .word 0x1c0425c + .word 0x3e5d800 + .word 0x1e0635c + .word 0x8024b33c + .word 0x11c0701 + .word 0x802bb33c + .word 0x2ff + .word 0x800a7bf0 + .word 0x2ff + .word 0x52007654 + .word 0x29117d + .word 0x80007efc + .word 0x22117d + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x40000793 + .word 0x2ff + .word 0x3e5c000 + .word 0x1e0635c + .word 0x4000079e + .word 0x2ff + .word 0x3e2c000 + .word 0x1e0299c + .word 0x400007aa + .word 0x2ff + .word 0x3e5c000 + .word 0x1e0635c + .word 0x400007b6 + .word 0x2ff + .word 0x3e2c000 + .word 0x1e0299c + .word 0x400007c7 + .word 0x2ff + .word 0x3e2c000 + .word 0x1e0299c + .word 0x400007d2 + .word 0x2ff + .word 0x3e5c000 + .word 0x1e0635c + .word 0x400007de + .word 0x2ff + .word 0x3e2c000 + .word 0x1e0299c + .word 0x400007ea + .word 0x2ff + .word 0x3e5c000 + .word 0x1e0635c + .word 0x4000070b + .word 0x2ff + .word 0x3e5b800 + .word 0x1e0635c + .word 0x40000716 + .word 0x2ff + .word 0x3e2b800 + .word 0x1e0299c + .word 0x40000722 + .word 0x2ff + .word 0x3e5b800 + .word 0x1e0635c + .word 0x4000072e + .word 0x2ff + .word 0x3e2b800 + .word 0x1e0299c + .word 0x4000073f + .word 0x2ff + .word 0x3e2b800 + .word 0x1e0299c + .word 0x4000074a + .word 0x2ff + .word 0x3e5b800 + .word 0x1e0635c + .word 0x40000756 + .word 0x2ff + .word 0x3e2b800 + .word 0x1e0299c + .word 0x40000762 + .word 0x2ff + .word 0x3e5b800 + .word 0x1e0635c \ No newline at end of file diff --git a/test/decompiler/vu_reference/sky-result.txt b/test/decompiler/vu_reference/sky-result.txt new file mode 100644 index 0000000000..e5eb95c45d --- /dev/null +++ b/test/decompiler/vu_reference/sky-result.txt @@ -0,0 +1,215 @@ + iaddi vi14, vi00, 0x0 | nop + lq.xyzw vf28, 291(vi00) | nop + lq.xyzw vf29, 292(vi00) | nop + lq.xyzw vf30, 293(vi00) | nop + lq.xyzw vf31, 294(vi00) | nop + lq.xyzw vf27, 295(vi00) | nop + lq.xyzw vf26, 296(vi00) | nop :e + lq.xyzw vf25, 297(vi00) | nop +L1: + lq.xyzw vf05, 299(vi00) | nop + lq.xyzw vf07, 308(vi00) | nop + lq.xyzw vf08, 307(vi00) | nop + ior vi04, vi14, vi00 | nop + iaddiu vi02, vi00, 0x100 | mulax.xyzw ACC, vf28, vf01 + lq.xyzw vf04, 305(vi00) | madday.xyzw ACC, vf29, vf01 + iaddiu vi03, vi00, 0x11 | maddz.xyzw vf01, vf30, vf01 + sqi.xyzw vf07, vi04 | nop + sqi.xyzw vf08, vi04 | nop + sqi.xyzw vf04, vi04 | nop + sqi.xyzw vf05, vi04 | nop + sq.x vf03, -1(vi04) | nop + sqi.xyzw vf01, vi04 | nop +L2: + lqi.xyzw vf06, vi02 | nop + sqi.xyzw vf05, vi04 | nop + sq.x vf09, -1(vi04) | nop + nop | nop + nop | mulx.xyzw vf06, vf06, vf02 + nop | nop + nop | nop + nop | nop + nop | add.xyzw vf06, vf06, vf01 + iaddi vi03, vi03, -0x1 | nop + nop | nop + ibne vi00, vi03, L2 | nop + sqi.xyzw vf06, vi04 | nop + iaddi vi04, vi14, 0x3 | nop + iaddi vi05, vi00, 0x0 | nop + iaddi vi06, vi00, 0x0 | nop + iaddiu vi03, vi00, 0x11 | nop + lq.xyzw vf07, 1(vi04) | nop + iaddi vi04, vi04, 0x2 | nop + nop | nop + nop | nop + div Q, vf25.x, vf07.w | mul.xyzw vf08, vf07, vf27 + move.z vf07, vf00 | nop + nop | nop + nop | nop + nop | clipw.xyz vf08, vf08 + nop | nop + nop | nop + iaddiu vi01, vi00, 0x2f | mul.xy vf07, vf07, Q + fcget vi05 | nop + iand vi05, vi05, vi01 | nop + nop | nop + nop | add.xyzw vf07, vf07, vf26 + nop | nop + nop | nop + nop | nop + nop | maxx.w vf07, vf07, vf00 + nop | nop + nop | nop + nop | nop + nop | ftoi4.xyzw vf07, vf07 + nop | nop + nop | nop + nop | nop + sq.xyzw vf07, -1(vi04) | nop +L3: + lq.xyzw vf07, 1(vi04) | nop + iaddi vi04, vi04, 0x2 | nop + nop | nop + nop | nop + div Q, vf25.x, vf07.w | mul.xyzw vf08, vf07, vf27 + move.z vf07, vf00 | nop + nop | nop + nop | nop + nop | clipw.xyz vf08, vf08 + nop | nop + nop | nop + iaddiu vi01, vi00, 0x2f | mul.xy vf07, vf07, Q + fcget vi07 | nop + iand vi07, vi07, vi01 | nop + iand vi06, vi06, vi05 | nop + iand vi06, vi06, vi07 | add.xyzw vf07, vf07, vf26 + nop | nop + ibne vi00, vi06, L4 | nop + nop | nop + nop | maxx.w vf07, vf07, vf00 + nop | nop + nop | nop + nop | nop + nop | ftoi4.xyzw vf07, vf07 + iaddi vi03, vi03, -0x1 | nop + ior vi06, vi07, vi00 | nop + ibne vi00, vi03, L3 | nop + sq.xyzw vf07, -1(vi04) | nop + b L5 | nop + xgkick vi14 | nop +L4: + nop | maxx.w vf07, vf07, vf00 + nop | nop + nop | nop + nop | nop + nop | addw.w vf07, vf07, vf25 + nop | nop + nop | nop + nop | nop + nop | ftoi4.xyzw vf07, vf07 + iaddi vi03, vi03, -0x1 | nop + ior vi06, vi07, vi00 | nop + ibne vi00, vi03, L3 | nop + sq.xyzw vf07, -1(vi04) | nop + xgkick vi14 | nop +L5: + iaddiu vi01, vi00, 0x80 | nop + isub vi14, vi01, vi14 | nop + iaddi vi08, vi00, 0x2 | nop +L6: + iaddiu vi02, vi00, 0x100 | nop + lq.xyzw vf04, 306(vi00) | nop + iaddiu vi03, vi00, 0x11 | nop + ior vi04, vi14, vi00 | nop + mr32.xyzw vf03, vf03 | nop + mr32.xyzw vf09, vf09 | nop + sqi.xyzw vf04, vi04 | nop + nop | nop +L7: + lqi.xyzw vf06, vi02 | nop + sq.xyzw vf05, 0(vi04) | nop + sq.x vf03, 0(vi04) | nop + sq.xyzw vf05, 2(vi04) | nop + sq.x vf09, 2(vi04) | mulx.xyzw vf10, vf06, vf02 + iaddi vi04, vi04, 0x4 | muly.xyzw vf06, vf06, vf02 + nop | nop + nop | nop + nop | add.xyzw vf10, vf10, vf01 + nop | add.xyzw vf06, vf06, vf01 + nop | nop + iaddi vi03, vi03, -0x1 | nop + sq.xyzw vf10, -3(vi04) | nop + ibne vi00, vi03, L7 | nop + sq.xyzw vf06, -1(vi04) | nop + iaddi vi04, vi14, 0x1 | nop + iaddi vi05, vi00, 0x0 | nop + iaddi vi06, vi00, 0x0 | nop + iaddiu vi03, vi00, 0x22 | nop +L8: + lq.xyzw vf07, 1(vi04) | nop + iaddi vi04, vi04, 0x2 | nop + nop | nop + nop | nop + div Q, vf25.x, vf07.w | mul.xyzw vf08, vf07, vf27 + move.z vf07, vf00 | nop + nop | nop + nop | nop + nop | clipw.xyz vf08, vf08 + nop | nop + nop | nop + iaddiu vi01, vi00, 0x2f | mul.xy vf07, vf07, Q + fcget vi07 | nop + iand vi07, vi07, vi01 | nop + iand vi05, vi05, vi06 | nop + iand vi05, vi05, vi07 | add.xyzw vf07, vf07, vf26 + nop | nop + ibne vi00, vi05, L9 | nop + nop | nop + nop | maxx.w vf07, vf07, vf00 + nop | nop + nop | nop + nop | nop + ior vi05, vi06, vi00 | ftoi4.xyzw vf07, vf07 + iaddi vi03, vi03, -0x1 | nop + ior vi06, vi07, vi00 | nop + ibne vi00, vi03, L8 | nop + sq.xyzw vf07, -1(vi04) | nop + b L10 | nop + xgkick vi14 | nop +L9: + nop | maxx.w vf07, vf07, vf00 + nop | nop + nop | nop + nop | nop + nop | addw.w vf07, vf07, vf25 + nop | nop + nop | nop + nop | nop + ior vi05, vi06, vi00 | ftoi4.xyzw vf07, vf07 + iaddi vi03, vi03, -0x1 | nop + ior vi06, vi07, vi00 | nop + ibne vi00, vi03, L8 | nop + sq.xyzw vf07, -1(vi04) | nop + xgkick vi14 | nop +L10: + iaddi vi08, vi08, -0x1 | nop + iaddiu vi01, vi00, 0x80 | nop + isub vi14, vi01, vi14 | nop + ibne vi00, vi08, L6 | nop + mr32.xyzw vf02, vf02 | nop + jr vi15 | nop + nop | nop + lq.xyzw vf01, 273(vi00) | nop + lq.xyzw vf02, 274(vi00) | nop + lq.xyzw vf03, 275(vi00) | nop + lq.xyzw vf09, 276(vi00) | nop + bal vi15, L1 | nop + nop | nop + lq.xyzw vf01, 277(vi00) | nop + lq.xyzw vf02, 278(vi00) | nop + lq.xyzw vf03, 279(vi00) | nop + lq.xyzw vf09, 280(vi00) | nop + bal vi15, L1 | nop + nop | nop + nop | nop :e + nop | nop diff --git a/test/decompiler/vu_reference/sky.txt b/test/decompiler/vu_reference/sky.txt new file mode 100644 index 0000000000..c8c31be47f --- /dev/null +++ b/test/decompiler/vu_reference/sky.txt @@ -0,0 +1,410 @@ + .word 0x800e0032 + .word 0x2ff + .word 0x1fc0123 + .word 0x2ff + .word 0x1fd0124 + .word 0x2ff + .word 0x1fe0125 + .word 0x2ff + .word 0x1ff0126 + .word 0x2ff + .word 0x1fb0127 + .word 0x2ff + .word 0x1fa0128 + .word 0x400002ff + .word 0x1f90129 + .word 0x2ff + .word 0x1e5012b + .word 0x2ff + .word 0x1e70134 + .word 0x2ff + .word 0x1e80133 + .word 0x2ff + .word 0x80007135 + .word 0x2ff + .word 0x10020100 + .word 0x1e1e1bc + .word 0x1e40131 + .word 0x1e1e8bd + .word 0x10030011 + .word 0x1e1f04a + .word 0x81e43b7d + .word 0x2ff + .word 0x81e4437d + .word 0x2ff + .word 0x81e4237d + .word 0x2ff + .word 0x81e42b7d + .word 0x2ff + .word 0x3041fff + .word 0x2ff + .word 0x81e40b7d + .word 0x2ff + .word 0x81e6137c + .word 0x2ff + .word 0x81e42b7d + .word 0x2ff + .word 0x3044fff + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e23198 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e131a8 + .word 0x80031ff2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x52001ff4 + .word 0x2ff + .word 0x81e4337d + .word 0x2ff + .word 0x800470f2 + .word 0x2ff + .word 0x80050032 + .word 0x2ff + .word 0x80060032 + .word 0x2ff + .word 0x10030011 + .word 0x2ff + .word 0x1e72001 + .word 0x2ff + .word 0x800420b2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x8187cbbc + .word 0x1fb3a2a + .word 0x8047033c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c841ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1001002f + .word 0x18039dc + .word 0x38050000 + .word 0x2ff + .word 0x80012974 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fa39e8 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2039d0 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e7397d + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e43fff + .word 0x2ff + .word 0x1e72001 + .word 0x2ff + .word 0x800420b2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x8187cbbc + .word 0x1fb3a2a + .word 0x8047033c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c841ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1001002f + .word 0x18039dc + .word 0x38070000 + .word 0x2ff + .word 0x800139f4 + .word 0x2ff + .word 0x800531b4 + .word 0x2ff + .word 0x800731b4 + .word 0x1fa39e8 + .word 0x80000030 + .word 0x2ff + .word 0x5200300c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2039d0 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e7397d + .word 0x80031ff2 + .word 0x2ff + .word 0x800039b5 + .word 0x2ff + .word 0x52001fe5 + .word 0x2ff + .word 0x3e43fff + .word 0x2ff + .word 0x4000000f + .word 0x2ff + .word 0x800076fc + .word 0x2ff + .word 0x80000030 + .word 0x2039d0 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x3939c3 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e7397d + .word 0x80031ff2 + .word 0x2ff + .word 0x800039b5 + .word 0x2ff + .word 0x52001fd6 + .word 0x2ff + .word 0x3e43fff + .word 0x2ff + .word 0x800076fc + .word 0x2ff + .word 0x10010080 + .word 0x2ff + .word 0x800e0bb1 + .word 0x2ff + .word 0x800800b2 + .word 0x2ff + .word 0x10020100 + .word 0x2ff + .word 0x1e40132 + .word 0x2ff + .word 0x10030011 + .word 0x2ff + .word 0x80007135 + .word 0x2ff + .word 0x81e31b3d + .word 0x2ff + .word 0x81e94b3d + .word 0x2ff + .word 0x81e4237d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e6137c + .word 0x2ff + .word 0x3e42800 + .word 0x2ff + .word 0x3041800 + .word 0x2ff + .word 0x3e42802 + .word 0x2ff + .word 0x3044802 + .word 0x1e23298 + .word 0x80042132 + .word 0x1e23199 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e152a8 + .word 0x80000030 + .word 0x1e131a8 + .word 0x80000030 + .word 0x2ff + .word 0x80031ff2 + .word 0x2ff + .word 0x3e457fd + .word 0x2ff + .word 0x52001ff2 + .word 0x2ff + .word 0x3e437ff + .word 0x2ff + .word 0x80047072 + .word 0x2ff + .word 0x80050032 + .word 0x2ff + .word 0x80060032 + .word 0x2ff + .word 0x10030022 + .word 0x2ff + .word 0x1e72001 + .word 0x2ff + .word 0x800420b2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x8187cbbc + .word 0x1fb3a2a + .word 0x8047033c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c841ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1001002f + .word 0x18039dc + .word 0x38070000 + .word 0x2ff + .word 0x800139f4 + .word 0x2ff + .word 0x80062974 + .word 0x2ff + .word 0x80072974 + .word 0x1fa39e8 + .word 0x80000030 + .word 0x2ff + .word 0x5200280c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2039d0 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80003175 + .word 0x1e7397d + .word 0x80031ff2 + .word 0x2ff + .word 0x800039b5 + .word 0x2ff + .word 0x52001fe5 + .word 0x2ff + .word 0x3e43fff + .word 0x2ff + .word 0x4000000f + .word 0x2ff + .word 0x800076fc + .word 0x2ff + .word 0x80000030 + .word 0x2039d0 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x3939c3 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80003175 + .word 0x1e7397d + .word 0x80031ff2 + .word 0x2ff + .word 0x800039b5 + .word 0x2ff + .word 0x52001fd6 + .word 0x2ff + .word 0x3e43fff + .word 0x2ff + .word 0x800076fc + .word 0x2ff + .word 0x800847f2 + .word 0x2ff + .word 0x10010080 + .word 0x2ff + .word 0x800e0bb1 + .word 0x2ff + .word 0x520047b5 + .word 0x2ff + .word 0x81e2133d + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1e10111 + .word 0x2ff + .word 0x1e20112 + .word 0x2ff + .word 0x1e30113 + .word 0x2ff + .word 0x1e90114 + .word 0x2ff + .word 0x420f0744 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1e10115 + .word 0x2ff + .word 0x1e20116 + .word 0x2ff + .word 0x1e30117 + .word 0x2ff + .word 0x1e90118 + .word 0x2ff + .word 0x420f073e + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff \ No newline at end of file diff --git a/test/decompiler/vu_reference/sprite-distort-result.txt b/test/decompiler/vu_reference/sprite-distort-result.txt new file mode 100644 index 0000000000..96584eeda7 --- /dev/null +++ b/test/decompiler/vu_reference/sprite-distort-result.txt @@ -0,0 +1,65 @@ + lq.xyzw vf01, 489(vi00) | nop + lq.xyzw vf05, 490(vi00) | nop + ilw.x vi01, 511(vi00) | nop + iaddiu vi04, vi00, 0x200 | nop + iaddi vi02, vi00, 0x0 | nop +L1: + ilw.w vi07, 1(vi04) | nop + ior vi05, vi02, vi00 | nop + ilw.x vi06, 477(vi07) | nop + sqi.xyzw vf01, vi05 | nop + iaddiu vi08, vi07, 0x4000 | nop + iaddiu vi08, vi08, 0x4000 | nop + isw.x vi08, -1(vi05) | nop + lqi.xyzw vf02, vi04 | nop + lqi.xyzw vf03, vi04 | nop + lqi.xyzw vf04, vi04 | nop + nop | ftoi4.xyzw vf14, vf02 +L2: + lqi.xyzw vf06, vi06 | nop + lqi.xyzw vf07, vi06 | nop + lq.xyzw vf08, 0(vi06) | nop + lq.xyzw vf09, 1(vi06) | nop + iaddi vi07, vi07, -0x1 | muly.xyzw vf10, vf06, vf04 + nop | mulz.xyzw vf11, vf07, vf04 + nop | muly.xyzw vf12, vf08, vf04 + nop | mulz.xyzw vf13, vf09, vf04 + nop | mulx.xyzw vf06, vf06, vf04 + nop | mulx.xyzw vf07, vf07, vf04 + nop | mulx.xyzw vf08, vf08, vf04 + nop | mulx.xyzw vf09, vf09, vf04 + nop | add.xyzw vf10, vf10, vf02 + nop | add.xyzw vf11, vf11, vf03 + nop | add.xyzw vf12, vf12, vf02 + nop | add.xyzw vf13, vf13, vf03 + nop | add.xyzw vf06, vf06, vf02 + nop | add.xyzw vf07, vf07, vf03 + nop | add.xyzw vf08, vf08, vf02 + nop | add.xyzw vf09, vf09, vf03 + nop | ftoi4.xyzw vf10, vf10 + nop | ftoi4.xyzw vf12, vf12 + nop | ftoi4.xyzw vf06, vf06 + nop | ftoi4.xyzw vf08, vf08 + sqi.xyzw vf07, vi05 | nop + sqi.xyzw vf05, vi05 | nop + sqi.xyzw vf06, vi05 | nop + sqi.xyzw vf09, vi05 | nop + sqi.xyzw vf05, vi05 | nop + sqi.xyzw vf08, vi05 | nop + sqi.xyzw vf11, vi05 | nop + sqi.xyzw vf05, vi05 | nop + sqi.xyzw vf10, vi05 | nop + sqi.xyzw vf13, vi05 | nop + sqi.xyzw vf05, vi05 | nop + sqi.xyzw vf12, vi05 | nop + sqi.xyzw vf03, vi05 | nop + sqi.xyzw vf05, vi05 | nop + ibne vi00, vi07, L2 | nop + sqi.xyzw vf14, vi05 | nop + xgkick vi02 | nop + iaddi vi01, vi01, -0x1 | nop + iaddiu vi03, vi00, 0xb0 | nop + ibne vi00, vi01, L1 | nop + isub vi02, vi03, vi02 | nop + nop | nop :e + nop | nop diff --git a/test/decompiler/vu_reference/sprite-distort.txt b/test/decompiler/vu_reference/sprite-distort.txt new file mode 100644 index 0000000000..91852ebe53 --- /dev/null +++ b/test/decompiler/vu_reference/sprite-distort.txt @@ -0,0 +1,126 @@ + .word 0x1e101e9 + .word 0x2ff + .word 0x1e501ea + .word 0x2ff + .word 0x90101ff + .word 0x2ff + .word 0x10040200 + .word 0x2ff + .word 0x80020032 + .word 0x2ff + .word 0x8272001 + .word 0x2ff + .word 0x80001175 + .word 0x2ff + .word 0x90639dd + .word 0x2ff + .word 0x81e50b7d + .word 0x2ff + .word 0x11083800 + .word 0x2ff + .word 0x11084000 + .word 0x2ff + .word 0xb082fff + .word 0x2ff + .word 0x81e2237c + .word 0x2ff + .word 0x81e3237c + .word 0x2ff + .word 0x81e4237c + .word 0x2ff + .word 0x80000030 + .word 0x1ee117d + .word 0x81e6337c + .word 0x2ff + .word 0x81e7337c + .word 0x2ff + .word 0x1e83000 + .word 0x2ff + .word 0x1e93001 + .word 0x2ff + .word 0x80073ff2 + .word 0x1e43299 + .word 0x80000030 + .word 0x1e43ada + .word 0x80000030 + .word 0x1e44319 + .word 0x80000030 + .word 0x1e44b5a + .word 0x80000030 + .word 0x1e43198 + .word 0x80000030 + .word 0x1e439d8 + .word 0x80000030 + .word 0x1e44218 + .word 0x80000030 + .word 0x1e44a58 + .word 0x80000030 + .word 0x1e252a8 + .word 0x80000030 + .word 0x1e35ae8 + .word 0x80000030 + .word 0x1e26328 + .word 0x80000030 + .word 0x1e36b68 + .word 0x80000030 + .word 0x1e231a8 + .word 0x80000030 + .word 0x1e339e8 + .word 0x80000030 + .word 0x1e24228 + .word 0x80000030 + .word 0x1e34a68 + .word 0x80000030 + .word 0x1ea517d + .word 0x80000030 + .word 0x1ec617d + .word 0x80000030 + .word 0x1e6317d + .word 0x80000030 + .word 0x1e8417d + .word 0x81e53b7d + .word 0x2ff + .word 0x81e52b7d + .word 0x2ff + .word 0x81e5337d + .word 0x2ff + .word 0x81e54b7d + .word 0x2ff + .word 0x81e52b7d + .word 0x2ff + .word 0x81e5437d + .word 0x2ff + .word 0x81e55b7d + .word 0x2ff + .word 0x81e52b7d + .word 0x2ff + .word 0x81e5537d + .word 0x2ff + .word 0x81e56b7d + .word 0x2ff + .word 0x81e52b7d + .word 0x2ff + .word 0x81e5637d + .word 0x2ff + .word 0x81e51b7d + .word 0x2ff + .word 0x81e52b7d + .word 0x2ff + .word 0x52003fd9 + .word 0x2ff + .word 0x81e5737d + .word 0x2ff + .word 0x800016fc + .word 0x2ff + .word 0x80010ff2 + .word 0x2ff + .word 0x100300b0 + .word 0x2ff + .word 0x52000fc9 + .word 0x2ff + .word 0x800218b1 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff \ No newline at end of file diff --git a/test/decompiler/vu_reference/sprite-result.txt b/test/decompiler/vu_reference/sprite-result.txt new file mode 100644 index 0000000000..a5c0f2f13d --- /dev/null +++ b/test/decompiler/vu_reference/sprite-result.txt @@ -0,0 +1,898 @@ + lq.xyzw vf29, 996(vi00) | nop + lq.xyzw vf31, 997(vi00) | nop :e + iaddiu vi15, vi00, 0x320 | nop + xtop vi02 | nop + nop | nop + ilwr.x vi04, vi02 | nop + iaddi vi02, vi02, 0x1 | nop + iaddiu vi03, vi02, 0x90 | nop +L1: + ilw.y vi08, 1(vi02) | nop + lq.xyzw vf25, 900(vi00) | nop + lq.xyzw vf26, 901(vi00) | nop + lq.xyzw vf27, 902(vi00) | nop + lq.xyzw vf28, 903(vi00) | nop + lq.xyzw vf30, 904(vi00) | nop + lqi.xyzw vf01, vi02 | nop + lqi.xyzw vf05, vi02 | nop + lqi.xyzw vf11, vi02 | nop + lq.xyzw vf12, 1020(vi00) | mulaw.xyzw ACC, vf28, vf00 + nop | maddax.xyzw ACC, vf25, vf01 + nop | madday.xyzw ACC, vf26, vf01 + nop | maddz.xyzw vf02, vf27, vf01 + move.w vf05, vf00 | addw.z vf01, vf00, vf05 + nop | nop + div Q, vf31.x, vf02.w | muly.z vf05, vf05, vf31 + nop | mul.xyzw vf03, vf02, vf29 + nop | nop + nop | nop + nop | mulz.z vf04, vf05, vf05 + lq.xyzw vf14, 1001(vi00) | clipw.xyz vf03, vf03 + iaddi vi06, vi00, 0x1 | adda.xyzw ACC, vf11, vf11 +L2: + ior vi05, vi15, vi00 | mul.zw vf01, vf01, Q + lq.xyzw vf06, 998(vi00) | mulz.xyzw vf15, vf05, vf04 + lq.xyzw vf14, 1002(vi00) | mula.xyzw ACC, vf05, vf14 + fmand vi01, vi06 | mul.xyz vf02, vf02, Q + ibne vi00, vi01, L5 | addz.x vf01, vf00, vf01 + lqi.xyzw vf07, vi03 | mulz.xyzw vf16, vf15, vf04 + lq.xyzw vf14, 1003(vi00) | madda.xyzw ACC, vf15, vf14 + lqi.xyzw vf08, vi03 | add.xyzw vf10, vf02, vf30 + lqi.xyzw vf09, vi03 | mulw.x vf01, vf01, vf01 + sqi.xyzw vf06, vi05 | mulz.xyzw vf15, vf16, vf04 + lq.xyzw vf14, 1004(vi00) | madda.xyzw ACC, vf16, vf14 + sqi.xyzw vf07, vi05 | maxx.w vf10, vf10, vf12 + sqi.xyzw vf08, vi05 | maxz.zw vf01, vf01, vf31 + sqi.xyzw vf09, vi05 | mulz.xyzw vf16, vf15, vf04 + lq.xyzw vf14, 1005(vi00) | madda.xyzw ACC, vf15, vf14 + lqi.xyzw vf06, vi03 | mulw.x vf01, vf01, vf31 + lqi.xyzw vf07, vi03 | miniy.w vf10, vf10, vf12 + lq.xyzw vf08, 999(vi08) | miniz.zw vf01, vf01, vf12 + ilw.x vi07, -2(vi02) | madd.xyzw vf05, vf16, vf14 + lqi.xyzw vf23, vi02 | miniw.x vf01, vf01, vf00 + nop | suby.w vf02, vf10, vf12 + lqi.xyzw vf24, vi02 | mulx.w vf11, vf11, vf01 + fcand vi01, 0x3f | mulaw.xyzw ACC, vf28, vf00 + lq.xyzw vf17, 1006(vi00) | maddax.xyzw ACC, vf25, vf23 + fmand vi09, vi06 | nop + ibne vi00, vi09, L6 | nop + lq.xyzw vf18, 1007(vi00) | madday.xyzw ACC, vf26, vf23 +L3: + lq.xyzw vf19, 980(vi07) | ftoi0.xyzw vf11, vf11 + lq.xyzw vf20, 981(vi07) | maddz.xyzw vf02, vf27, vf23 + lq.xyzw vf21, 982(vi07) | mulaw.xyzw ACC, vf17, vf05 + lq.xyzw vf22, 983(vi07) | msub.xyzw vf12, vf18, vf05 + sq.xyzw vf11, 3(vi05) | mulaz.xyzw ACC, vf17, vf05 + lqi.xyzw vf11, vi02 | maddw.xyzw vf13, vf18, vf05 + move.w vf24, vf00 | addw.z vf23, vf00, vf24 + div Q, vf31.x, vf02.w | mulw.xyzw vf12, vf12, vf01 + ibne vi00, vi01, L4 | muly.z vf24, vf24, vf31 + ilw.y vi08, -2(vi02) | mulz.xyzw vf13, vf13, vf01 + sqi.xyzw vf06, vi05 | mul.xyzw vf03, vf02, vf29 + sqi.xyzw vf07, vi05 | mulaw.xyzw ACC, vf10, vf00 + sqi.xyzw vf08, vi05 | maddax.xyzw ACC, vf12, vf19 + lq.xyzw vf06, 988(vi00) | maddy.xyzw vf19, vf13, vf19 + lq.xyzw vf07, 989(vi00) | mulaw.xyzw ACC, vf10, vf00 + lq.xyzw vf08, 990(vi00) | maddax.xyzw ACC, vf12, vf20 + lq.xyzw vf09, 991(vi00) | maddy.xyzw vf20, vf13, vf20 + sq.xyzw vf06, 1(vi05) | mulaw.xyzw ACC, vf10, vf00 + sq.xyzw vf07, 3(vi05) | maddax.xyzw ACC, vf12, vf21 + sq.xyzw vf08, 5(vi05) | maddy.xyzw vf21, vf13, vf21 + sq.xyzw vf09, 7(vi05) | mulaw.xyzw ACC, vf10, vf00 + nop | maddax.xyzw ACC, vf12, vf22 + nop | maddy.xyzw vf22, vf13, vf22 + lq.xyzw vf12, 1020(vi00) | ftoi4.xyzw vf19, vf19 + lq.xyzw vf14, 1001(vi00) | ftoi4.xyzw vf20, vf20 + move.xyzw vf05, vf24 | ftoi4.xyzw vf21, vf21 + move.xyzw vf01, vf23 | ftoi4.xyzw vf22, vf22 + sq.xyzw vf19, 2(vi05) | mulz.z vf04, vf24, vf24 + sq.xyzw vf20, 4(vi05) | clipw.xyz vf03, vf03 + sq.xyzw vf21, 6(vi05) | nop + sq.xyzw vf22, 8(vi05) | nop + xgkick vi15 | nop + iaddi vi04, vi04, -0x1 | nop + iaddiu vi01, vi00, 0x672 | nop + ibne vi00, vi04, L2 | nop + isub vi15, vi01, vi15 | adda.xyzw ACC, vf11, vf11 + nop | nop :e + nop | nop +L4: + iaddi vi04, vi04, -0x1 | nop + iaddi vi02, vi02, -0x3 | nop + ibne vi00, vi04, L1 | nop + nop | nop + nop | nop :e + nop | nop +L5: + iaddi vi04, vi04, -0x1 | nop + iaddi vi03, vi03, 0x4 | nop + ibne vi00, vi04, L1 | nop + nop | nop + nop | nop :e + nop | nop +L6: + b L3 | nop + lq.xyzw vf08, 1000(vi00) | nop + xtop vi02 | nop + nop | nop + ilwr.x vi04, vi02 | nop + iaddi vi02, vi02, 0x1 | nop + iaddiu vi03, vi02, 0x90 | nop +L7: + ilw.y vi08, 1(vi02) | nop + lq.xyzw vf25, 900(vi00) | nop + lq.xyzw vf26, 901(vi00) | nop + lq.xyzw vf27, 902(vi00) | nop + lq.xyzw vf28, 903(vi00) | nop + lq.xyzw vf30, 904(vi08) | nop + lqi.xyzw vf01, vi02 | nop + lqi.xyzw vf05, vi02 | nop + lqi.xyzw vf11, vi02 | nop + lq.xyzw vf12, 1020(vi00) | mulaw.xyzw ACC, vf28, vf00 + ilw.y vi08, 1(vi02) | maddax.xyzw ACC, vf25, vf01 + nop | madday.xyzw ACC, vf26, vf01 + nop | maddz.xyzw vf02, vf27, vf01 + move.w vf05, vf00 | addw.z vf01, vf00, vf05 + nop | nop + div Q, vf31.x, vf02.w | muly.z vf05, vf05, vf31 + nop | mul.xyzw vf03, vf02, vf29 + nop | nop + nop | nop + nop | mulz.z vf04, vf05, vf05 + lq.xyzw vf14, 1001(vi00) | clipw.xyz vf03, vf03 + iaddi vi06, vi00, 0x1 | adda.xyzw ACC, vf11, vf11 +L8: + ior vi05, vi15, vi00 | mul.zw vf01, vf01, Q + lq.xyzw vf06, 998(vi00) | mulz.xyzw vf15, vf05, vf04 + lq.xyzw vf14, 1002(vi00) | mula.xyzw ACC, vf05, vf14 + fmand vi01, vi06 | mul.xyz vf02, vf02, Q + ibne vi00, vi01, L10 | addz.x vf01, vf00, vf01 + lqi.xyzw vf07, vi03 | mulz.xyzw vf16, vf15, vf04 + lq.xyzw vf14, 1003(vi00) | madda.xyzw ACC, vf15, vf14 + lqi.xyzw vf08, vi03 | add.xyzw vf10, vf02, vf30 + lqi.xyzw vf09, vi03 | mulw.x vf01, vf01, vf01 + sqi.xyzw vf06, vi05 | mulz.xyzw vf15, vf16, vf04 + lq.xyzw vf14, 1004(vi00) | madda.xyzw ACC, vf16, vf14 + sqi.xyzw vf07, vi05 | maxx.w vf10, vf10, vf12 + sqi.xyzw vf08, vi05 | maxz.zw vf01, vf01, vf31 + sqi.xyzw vf09, vi05 | mulz.xyzw vf16, vf15, vf04 + lq.xyzw vf14, 1005(vi00) | madda.xyzw ACC, vf15, vf14 + lqi.xyzw vf06, vi03 | mulw.x vf01, vf01, vf31 + lqi.xyzw vf07, vi03 | miniy.w vf10, vf10, vf12 + lq.xyzw vf08, 1000(vi00) | nop + ilw.x vi07, -2(vi02) | madd.xyzw vf05, vf16, vf14 + lq.xyzw vf30, 904(vi08) | nop + lqi.xyzw vf23, vi02 | miniw.x vf01, vf01, vf00 + lqi.xyzw vf24, vi02 | mulx.w vf11, vf11, vf01 + fcand vi01, 0x3f | mulaw.xyzw ACC, vf28, vf00 + lq.xyzw vf17, 1006(vi00) | maddax.xyzw ACC, vf25, vf23 + lq.xyzw vf18, 1007(vi00) | madday.xyzw ACC, vf26, vf23 + lq.xyzw vf19, 980(vi07) | ftoi0.xyzw vf11, vf11 + lq.xyzw vf20, 981(vi07) | maddz.xyzw vf02, vf27, vf23 + lq.xyzw vf21, 982(vi07) | mulaw.xyzw ACC, vf17, vf05 + lq.xyzw vf22, 983(vi07) | msub.xyzw vf12, vf18, vf05 + sq.xyzw vf11, 3(vi05) | mulaz.xyzw ACC, vf17, vf05 + lqi.xyzw vf11, vi02 | maddw.xyzw vf13, vf18, vf05 + move.w vf24, vf00 | addw.z vf23, vf00, vf24 + div Q, vf31.x, vf02.w | mulw.xyzw vf12, vf12, vf01 + ibne vi00, vi01, L9 | muly.z vf24, vf24, vf31 + ilw.y vi08, 1(vi02) | mulz.xyzw vf13, vf13, vf01 + sqi.xyzw vf06, vi05 | mul.xyzw vf03, vf02, vf29 + sqi.xyzw vf07, vi05 | mulaw.xyzw ACC, vf10, vf00 + sqi.xyzw vf08, vi05 | maddax.xyzw ACC, vf12, vf19 + lq.xyzw vf06, 988(vi00) | maddy.xyzw vf19, vf13, vf19 + lq.xyzw vf07, 989(vi00) | mulaw.xyzw ACC, vf10, vf00 + lq.xyzw vf08, 990(vi00) | maddax.xyzw ACC, vf12, vf20 + lq.xyzw vf09, 991(vi00) | maddy.xyzw vf20, vf13, vf20 + sq.xyzw vf06, 1(vi05) | mulaw.xyzw ACC, vf10, vf00 + sq.xyzw vf07, 3(vi05) | maddax.xyzw ACC, vf12, vf21 + sq.xyzw vf08, 5(vi05) | maddy.xyzw vf21, vf13, vf21 + sq.xyzw vf09, 7(vi05) | mulaw.xyzw ACC, vf10, vf00 + nop | maddax.xyzw ACC, vf12, vf22 + nop | maddy.xyzw vf22, vf13, vf22 + lq.xyzw vf12, 1020(vi00) | ftoi4.xyzw vf19, vf19 + lq.xyzw vf14, 1001(vi00) | ftoi4.xyzw vf20, vf20 + move.xyzw vf05, vf24 | ftoi4.xyzw vf21, vf21 + move.xyzw vf01, vf23 | ftoi4.xyzw vf22, vf22 + sq.xyzw vf19, 2(vi05) | mulz.z vf04, vf24, vf24 + sq.xyzw vf20, 4(vi05) | clipw.xyz vf03, vf03 + sq.xyzw vf21, 6(vi05) | nop + sq.xyzw vf22, 8(vi05) | nop + xgkick vi15 | nop + iaddi vi04, vi04, -0x1 | nop + iaddiu vi01, vi00, 0x672 | nop + ibne vi00, vi04, L8 | nop + isub vi15, vi01, vi15 | adda.xyzw ACC, vf11, vf11 + nop | nop :e + nop | nop +L9: + iaddi vi04, vi04, -0x1 | nop + iaddi vi02, vi02, -0x3 | nop + ibne vi00, vi04, L7 | nop + nop | nop + nop | nop :e + nop | nop +L10: + iaddi vi04, vi04, -0x1 | nop + iaddi vi03, vi03, 0x4 | nop + ibne vi00, vi04, L7 | nop + nop | nop + nop | nop :e + nop | nop + lq.xyzw vf25, 900(vi00) | nop + lq.xyzw vf26, 901(vi00) | nop + lq.xyzw vf27, 902(vi00) | nop + lq.xyzw vf28, 903(vi00) | nop + lq.xyzw vf30, 904(vi00) | nop + xtop vi02 | nop + nop | nop + ilwr.x vi04, vi02 | nop + iaddi vi02, vi02, 0x1 | nop + iaddiu vi03, vi02, 0x90 | nop + lq.xyzw vf23, 1020(vi00) | nop + iaddi vi06, vi00, 0x1 | nop +L11: + lq.xyzw vf06, 1(vi02) | nop + lq.xyzw vf07, 2(vi02) | nop + iaddi vi01, vi00, 0x2 | nop + nop | nop + nop | mul.xyzw vf05, vf06, vf06 + nop | addw.y vf08, vf00, vf06 + nop | subw.w vf06, vf06, vf06 + nop | adda.xyzw ACC, vf07, vf07 + nop | addy.x vf05, vf05, vf05 + nop | nop + nop | nop + fmand vi01, vi06 | nop + ibne vi00, vi01, L15 | addz.x vf05, vf05, vf05 + nop | nop + nop | nop + nop | nop + nop | subx.w vf05, vf00, vf05 + nop | nop + nop | nop + nop | nop + sqrt Q, vf05.w | nop + nop | nop + nop | nop + nop | nop + nop | nop + nop | nop + nop | nop + nop | addq.w vf06, vf06, Q + nop | nop + nop | nop + nop | nop + nop | add.xyzw vf13, vf06, vf06 + nop | addw.x vf09, vf00, vf06 + nop | addz.y vf09, vf00, vf06 + nop | suby.z vf09, vf00, vf06 + nop | subw.w vf09, vf00, vf00 + nop | subz.x vf10, vf00, vf06 + nop | addw.y vf10, vf00, vf06 + nop | addx.z vf10, vf00, vf06 + nop | subw.w vf10, vf00, vf00 + nop | addy.x vf11, vf00, vf06 + nop | subx.y vf11, vf00, vf06 + nop | addw.z vf11, vf00, vf06 + nop | subw.w vf11, vf00, vf00 +L12: + lq.xyzw vf12, 0(vi02) | opmula.xyz ACC, vf13, vf09 + lq.xyzw vf07, 2(vi02) | opmsub.xyz vf09, vf09, vf13 + iaddi vi02, vi02, 0x3 | opmula.xyz ACC, vf13, vf10 + lq.xyzw vf06, 1(vi02) | opmsub.xyz vf10, vf10, vf13 + ior vi05, vi15, vi00 | opmula.xyz ACC, vf13, vf11 + lq.xyzw vf01, 998(vi00) | opmsub.xyz vf11, vf11, vf13 + lqi.xyzw vf02, vi03 | addw.x vf09, vf09, vf00 + lqi.xyzw vf03, vi03 | addw.y vf10, vf10, vf00 + lqi.xyzw vf04, vi03 | addw.z vf11, vf11, vf00 + sqi.xyzw vf01, vi05 | mul.xyzw vf05, vf06, vf06 + move.w vf12, vf00 | mulw.xyzw vf09, vf09, vf12 + iaddi vi06, vi00, 0x1 | muly.xyzw vf11, vf11, vf08 + lq.xyzw vf14, 992(vi00) | adda.xyzw ACC, vf07, vf07 + lq.xyzw vf15, 993(vi00) | ftoi0.xyzw vf07, vf07 + lq.xyzw vf16, 994(vi00) | addw.y vf08, vf00, vf06 + lq.xyzw vf17, 995(vi00) | subw.w vf06, vf06, vf06 + fmand vi01, vi06 | mulax.xyzw ACC, vf09, vf14 + ibne vi00, vi01, L14 | madday.xyzw ACC, vf10, vf14 + sq.xyzw vf07, 7(vi05) | maddaz.xyzw ACC, vf11, vf14 + sq.xyzw vf07, 10(vi05) | maddw.xyzw vf14, vf12, vf00 + sqi.xyzw vf02, vi05 | addy.x vf05, vf05, vf05 + sq.xyzw vf07, 12(vi05) | mulax.xyzw ACC, vf09, vf15 + sq.xyzw vf07, 15(vi05) | madday.xyzw ACC, vf10, vf15 + sqi.xyzw vf03, vi05 | maddaz.xyzw ACC, vf11, vf15 + sqi.xyzw vf04, vi05 | addz.x vf05, vf05, vf05 + lqi.xyzw vf01, vi03 | maddw.xyzw vf15, vf12, vf00 + lqi.xyzw vf02, vi03 | mulax.xyzw ACC, vf09, vf16 + lq.xyzw vf03, 1008(vi00) | madday.xyzw ACC, vf10, vf16 + nop | subx.w vf05, vf00, vf05 + sqi.xyzw vf01, vi05 | maddaz.xyzw ACC, vf11, vf16 + sqi.xyzw vf02, vi05 | maddw.xyzw vf16, vf12, vf00 + sqi.xyzw vf03, vi05 | mulax.xyzw ACC, vf09, vf17 + sqrt Q, vf05.w | madday.xyzw ACC, vf10, vf17 + nop | maddaz.xyzw ACC, vf11, vf17 + nop | maddw.xyzw vf17, vf12, vf00 + lq.xyzw vf18, 988(vi00) | mulax.xyzw ACC, vf25, vf14 + lq.xyzw vf19, 989(vi00) | madday.xyzw ACC, vf26, vf14 + lq.xyzw vf20, 990(vi00) | maddaz.xyzw ACC, vf27, vf14 + lq.xyzw vf21, 991(vi00) | maddw.xyzw vf14, vf28, vf00 + nop | addq.w vf06, vf06, Q + nop | mulax.xyzw ACC, vf25, vf15 + nop | madday.xyzw ACC, vf26, vf15 + nop | maddaz.xyzw ACC, vf27, vf15 + div Q, vf31.x, vf14.w | mul.xyzw vf09, vf14, vf29 + nop | maddw.xyzw vf15, vf28, vf00 + nop | mulax.xyzw ACC, vf25, vf16 + nop | madday.xyzw ACC, vf26, vf16 + nop | maddaz.xyzw ACC, vf27, vf16 + nop | mul.xyzw vf10, vf15, vf29 + nop | maddw.xyzw vf16, vf28, vf00 + div Q, vf31.x, vf15.w | mul.xyz vf14, vf14, Q + nop | mul.xyzw vf18, vf18, Q + nop | mulax.xyzw ACC, vf25, vf17 + nop | madday.xyzw ACC, vf26, vf17 + nop | maddaz.xyzw ACC, vf27, vf17 + sq.xyzw vf18, 0(vi05) | mul.xyzw vf11, vf16, vf29 + nop | maddw.xyzw vf17, vf28, vf00 + div Q, vf31.x, vf16.w | mul.xyz vf15, vf15, Q + nop | mul.xyzw vf19, vf19, Q + nop | add.xyzw vf14, vf14, vf30 + nop | add.xyzw vf15, vf15, vf30 + nop | mul.xyzw vf12, vf17, vf29 + sq.xyzw vf19, 3(vi05) | clipw.xyz vf09, vf09 + nop | clipw.xyz vf10, vf10 + div Q, vf31.x, vf17.w | mul.xyz vf16, vf16, Q + nop | mul.xyzw vf20, vf20, Q + nop | clipw.xyz vf11, vf11 + nop | clipw.xyz vf12, vf12 + nop | add.xyzw vf16, vf16, vf30 + sq.xyzw vf20, 6(vi05) | maxx.w vf14, vf14, vf23 + nop | maxx.w vf15, vf15, vf23 + fcand vi01, 0x410410 | mul.xyz vf17, vf17, Q + ibne vi00, vi01, L13 | mul.xyzw vf21, vf21, Q + fcand vi01, 0xffffff | maxx.w vf16, vf16, vf23 + ibne vi00, vi01, L16 | miniy.w vf14, vf14, vf23 + nop | add.xyzw vf17, vf17, vf30 + sq.xyzw vf21, 9(vi05) | miniy.w vf15, vf15, vf23 + nop | miniy.w vf16, vf16, vf23 + nop | ftoi4.xyzw vf14, vf14 + nop | maxx.w vf17, vf17, vf23 + nop | ftoi4.xyzw vf15, vf15 + nop | ftoi4.xyzw vf16, vf16 + sq.xyzw vf14, 2(vi05) | add.xyzw vf13, vf06, vf06 + nop | miniy.w vf17, vf17, vf23 + sq.xyzw vf15, 5(vi05) | addw.x vf09, vf00, vf06 + sq.xyzw vf16, 8(vi05) | addz.y vf09, vf00, vf06 + nop | suby.z vf09, vf00, vf06 + nop | ftoi4.xyzw vf17, vf17 + nop | subw.w vf09, vf00, vf00 + nop | subz.x vf10, vf00, vf06 + nop | addw.y vf10, vf00, vf06 + sq.xyzw vf17, 11(vi05) | addx.z vf10, vf00, vf06 + xgkick vi15 | subw.w vf10, vf00, vf00 + iaddi vi04, vi04, -0x1 | addy.x vf11, vf00, vf06 + iaddiu vi01, vi00, 0x672 | subx.y vf11, vf00, vf06 + ibne vi00, vi04, L12 | addw.z vf11, vf00, vf06 + isub vi15, vi01, vi15 | subw.w vf11, vf00, vf00 + nop | nop :e + nop | nop +L13: + iaddi vi04, vi04, -0x1 | nop + nop | nop + ibne vi00, vi04, L11 | nop + nop | nop + nop | nop :e + nop | nop +L14: + iaddi vi04, vi04, -0x1 | nop + iaddi vi03, vi03, 0x2 | nop + ibne vi00, vi04, L11 | nop + nop | nop + nop | nop :e + nop | nop +L15: + iaddi vi04, vi04, -0x1 | nop + iaddi vi03, vi03, 0x5 | nop + ibne vi00, vi04, L11 | nop + iaddi vi02, vi02, 0x3 | nop + nop | nop :e + nop | nop +L16: + fcor vi01, 0x7df7df | nop + ibne vi00, vi01, L13 | nop + fcor vi01, 0xdf7df7 | nop + ibne vi00, vi01, L13 | nop + fcor vi01, 0xefbefb | nop + ibne vi00, vi01, L13 | nop + fcor vi01, 0xf7df7d | nop + ibne vi00, vi01, L13 | nop + fcor vi01, 0xfbefbe | nop + ibne vi00, vi01, L13 | nop + ior vi07, vi05, vi00 | nop + nop | itof0.xyzw vf07, vf07 + sq.xyzw vf09, 2(vi07) | nop + sq.xyzw vf10, 5(vi07) | nop + sq.xyzw vf11, 8(vi07) | nop + sq.xyzw vf12, 11(vi07) | nop + sq.xyzw vf09, 14(vi07) | nop + lq.xyzw vf18, 988(vi00) | nop + lq.xyzw vf19, 989(vi00) | nop + lq.xyzw vf20, 990(vi00) | nop + lq.xyzw vf21, 991(vi00) | nop + sq.xyzw vf18, 0(vi07) | nop + sq.xyzw vf19, 3(vi07) | nop + sq.xyzw vf20, 6(vi07) | nop + sq.xyzw vf21, 9(vi07) | nop + sq.xyzw vf18, 12(vi07) | nop + sq.xyzw vf07, 1(vi07) | nop + sq.xyzw vf07, 4(vi07) | nop + sq.xyzw vf07, 7(vi07) | nop + sq.xyzw vf07, 10(vi07) | nop + sq.xyzw vf07, 13(vi07) | nop + iaddi vi09, vi00, 0x4 | nop + bal vi11, L18 | nop + nop | nop + lq.xyzw vf01, 1014(vi00) | nop + ibeq vi00, vi09, L13 | nop + iaddiu vi10, vi09, 0x4000 | nop + iaddiu vi10, vi10, 0x4000 | nop + sqd.xyzw vf01, vi05 | nop + iswr.x vi10, vi05 | nop + iaddi vi05, vi05, 0x1 | nop + lq.xyzw vf29, 1015(vi00) | nop +L17: + lqi.xyzw vf17, vi05 | nop + lqi.xyzw vf20, vi05 | nop + lqi.xyzw vf14, vi05 | nop + nop | nop + nop | nop + nop | nop + div Q, vf00.w, vf14.w | mul.xyzw vf14, vf14, vf29 + nop | nop + nop | nop + nop | nop + nop | nop + nop | nop + nop | nop + nop | mul.xyz vf14, vf14, Q + nop | mul.xyzw vf17, vf17, Q + nop | nop + nop | nop + nop | add.xyzw vf14, vf14, vf30 + nop | nop + nop | nop + nop | nop + nop | maxx.w vf14, vf14, vf23 + nop | nop + nop | nop + nop | nop + nop | miniy.w vf14, vf14, vf23 + nop | nop + nop | nop + nop | ftoi0.xyzw vf20, vf20 + nop | ftoi4.xyzw vf14, vf14 + nop | nop + sq.xyzw vf17, -3(vi05) | nop + sq.xyzw vf20, -2(vi05) | nop + sq.xyzw vf14, -1(vi05) | nop + iaddi vi09, vi09, -0x1 | nop + nop | nop + ibne vi00, vi09, L17 | nop + nop | nop + lq.xyzw vf29, 996(vi00) | nop + xgkick vi15 | nop + iaddi vi04, vi04, -0x1 | nop + iaddiu vi01, vi00, 0x672 | nop + ibne vi00, vi04, L11 | nop + isub vi15, vi01, vi15 | nop + nop | nop :e + nop | nop +L18: + ior vi08, vi07, vi00 | nop + lq.xyzw vf14, 2(vi07) | nop + ior vi10, vi09, vi00 | nop + lq.xyzw vf17, 0(vi07) | nop + lq.xyzw vf20, 1(vi07) | nop + iaddi vi07, vi07, 0x3 | clipw.xyz vf14, vf14 +L19: + lq.xyzw vf15, 2(vi07) | nop + lq.xyzw vf18, 0(vi07) | nop + lq.xyzw vf21, 1(vi07) | nop + iaddi vi07, vi07, 0x3 | nop + nop | clipw.xyz vf15, vf15 + nop | nop + nop | nop + nop | nop + fcor vi01, 0xfff7df | nop + ibne vi00, vi01, L30 | nop + fcand vi01, 0x20 | nop + ibne vi00, vi01, L31 | nop + fcand vi01, 0x800 | nop + ibne vi00, vi01, L32 | nop + nop | nop + sqi.xyzw vf17, vi08 | nop + sqi.xyzw vf20, vi08 | nop + sqi.xyzw vf14, vi08 | nop +L20: + move.xyzw vf17, vf18 | nop + iaddi vi09, vi09, -0x1 | nop + move.xyzw vf20, vf21 | nop + ibne vi00, vi09, L19 | nop + move.xyzw vf14, vf15 | nop + lq.xyzw vf17, 0(vi05) | nop + lq.xyzw vf20, 1(vi05) | nop + lq.xyzw vf14, 2(vi05) | nop + ior vi07, vi05, vi00 | nop + sqi.xyzw vf17, vi08 | nop + sqi.xyzw vf20, vi08 | nop + sqi.xyzw vf14, vi08 | nop + ibeq vi00, vi10, L29 | nop + ior vi09, vi10, vi00 | nop + ior vi08, vi07, vi00 | nop + lq.xyzw vf14, 2(vi07) | nop + ior vi10, vi09, vi00 | nop + lq.xyzw vf17, 0(vi07) | nop + lq.xyzw vf20, 1(vi07) | nop + iaddi vi07, vi07, 0x3 | clipw.xyz vf14, vf14 +L21: + lq.xyzw vf15, 2(vi07) | nop + lq.xyzw vf18, 0(vi07) | nop + lq.xyzw vf21, 1(vi07) | nop + iaddi vi07, vi07, 0x3 | nop + nop | clipw.xyz vf15, vf15 + nop | nop + nop | nop + nop | nop + fcor vi01, 0xfffdf7 | nop + ibne vi00, vi01, L33 | nop + fcand vi01, 0x8 | nop + ibne vi00, vi01, L34 | nop + fcand vi01, 0x200 | nop + ibne vi00, vi01, L35 | nop + nop | nop + sqi.xyzw vf17, vi08 | nop + sqi.xyzw vf20, vi08 | nop + sqi.xyzw vf14, vi08 | nop +L22: + move.xyzw vf17, vf18 | nop + iaddi vi09, vi09, -0x1 | nop + move.xyzw vf20, vf21 | nop + ibne vi00, vi09, L21 | nop + move.xyzw vf14, vf15 | nop + lq.xyzw vf17, 0(vi05) | nop + lq.xyzw vf20, 1(vi05) | nop + lq.xyzw vf14, 2(vi05) | nop + ior vi07, vi05, vi00 | nop + sqi.xyzw vf17, vi08 | nop + sqi.xyzw vf20, vi08 | nop + sqi.xyzw vf14, vi08 | nop + ibeq vi00, vi10, L29 | nop + ior vi09, vi10, vi00 | nop + ior vi08, vi07, vi00 | nop + lq.xyzw vf14, 2(vi07) | nop + ior vi10, vi09, vi00 | nop + lq.xyzw vf17, 0(vi07) | nop + lq.xyzw vf20, 1(vi07) | nop + iaddi vi07, vi07, 0x3 | clipw.xyz vf14, vf14 +L23: + lq.xyzw vf15, 2(vi07) | nop + lq.xyzw vf18, 0(vi07) | nop + lq.xyzw vf21, 1(vi07) | nop + iaddi vi07, vi07, 0x3 | nop + nop | clipw.xyz vf15, vf15 + nop | nop + nop | nop + nop | nop + fcor vi01, 0xfffefb | nop + ibne vi00, vi01, L36 | nop + fcand vi01, 0x4 | nop + ibne vi00, vi01, L37 | nop + fcand vi01, 0x100 | nop + ibne vi00, vi01, L38 | nop + nop | nop + sqi.xyzw vf17, vi08 | nop + sqi.xyzw vf20, vi08 | nop + sqi.xyzw vf14, vi08 | nop +L24: + move.xyzw vf17, vf18 | nop + iaddi vi09, vi09, -0x1 | nop + move.xyzw vf20, vf21 | nop + ibne vi00, vi09, L23 | nop + move.xyzw vf14, vf15 | nop + lq.xyzw vf17, 0(vi05) | nop + lq.xyzw vf20, 1(vi05) | nop + lq.xyzw vf14, 2(vi05) | nop + ior vi07, vi05, vi00 | nop + sqi.xyzw vf17, vi08 | nop + sqi.xyzw vf20, vi08 | nop + sqi.xyzw vf14, vi08 | nop + ibeq vi00, vi10, L29 | nop + ior vi09, vi10, vi00 | nop + ior vi08, vi07, vi00 | nop + lq.xyzw vf14, 2(vi07) | nop + ior vi10, vi09, vi00 | nop + lq.xyzw vf17, 0(vi07) | nop + lq.xyzw vf20, 1(vi07) | nop + iaddi vi07, vi07, 0x3 | clipw.xyz vf14, vf14 +L25: + lq.xyzw vf15, 2(vi07) | nop + lq.xyzw vf18, 0(vi07) | nop + lq.xyzw vf21, 1(vi07) | nop + iaddi vi07, vi07, 0x3 | nop + nop | clipw.xyz vf15, vf15 + nop | nop + nop | nop + nop | nop + fcor vi01, 0xffff7d | nop + ibne vi00, vi01, L39 | nop + fcand vi01, 0x2 | nop + ibne vi00, vi01, L40 | nop + fcand vi01, 0x80 | nop + ibne vi00, vi01, L41 | nop + nop | nop + sqi.xyzw vf17, vi08 | nop + sqi.xyzw vf20, vi08 | nop + sqi.xyzw vf14, vi08 | nop +L26: + move.xyzw vf17, vf18 | nop + iaddi vi09, vi09, -0x1 | nop + move.xyzw vf20, vf21 | nop + ibne vi00, vi09, L25 | nop + move.xyzw vf14, vf15 | nop + lq.xyzw vf17, 0(vi05) | nop + lq.xyzw vf20, 1(vi05) | nop + lq.xyzw vf14, 2(vi05) | nop + ior vi07, vi05, vi00 | nop + sqi.xyzw vf17, vi08 | nop + sqi.xyzw vf20, vi08 | nop + sqi.xyzw vf14, vi08 | nop + ibeq vi00, vi10, L29 | nop + ior vi09, vi10, vi00 | nop + ior vi08, vi07, vi00 | nop + lq.xyzw vf14, 2(vi07) | nop + ior vi10, vi09, vi00 | nop + lq.xyzw vf17, 0(vi07) | nop + lq.xyzw vf20, 1(vi07) | nop + iaddi vi07, vi07, 0x3 | clipw.xyz vf14, vf14 +L27: + lq.xyzw vf15, 2(vi07) | nop + lq.xyzw vf18, 0(vi07) | nop + lq.xyzw vf21, 1(vi07) | nop + iaddi vi07, vi07, 0x3 | nop + nop | clipw.xyz vf15, vf15 + nop | nop + nop | nop + nop | nop + fcor vi01, 0xffffbe | nop + ibne vi00, vi01, L42 | nop + fcand vi01, 0x1 | nop + ibne vi00, vi01, L43 | nop + fcand vi01, 0x40 | nop + ibne vi00, vi01, L44 | nop + nop | nop + sqi.xyzw vf17, vi08 | nop + sqi.xyzw vf20, vi08 | nop + sqi.xyzw vf14, vi08 | nop +L28: + move.xyzw vf17, vf18 | nop + iaddi vi09, vi09, -0x1 | nop + move.xyzw vf20, vf21 | nop + ibne vi00, vi09, L27 | nop + move.xyzw vf14, vf15 | nop + lq.xyzw vf17, 0(vi05) | nop + lq.xyzw vf20, 1(vi05) | nop + lq.xyzw vf14, 2(vi05) | nop + ior vi07, vi05, vi00 | nop + sqi.xyzw vf17, vi08 | nop + sqi.xyzw vf20, vi08 | nop + sqi.xyzw vf14, vi08 | nop + ibeq vi00, vi10, L29 | nop + ior vi09, vi10, vi00 | nop +L29: + jr vi11 | nop + nop | nop +L30: + b L20 | nop + iaddi vi10, vi10, -0x1 | nop +L31: + sqi.xyzw vf17, vi08 | sub.xyzw vf16, vf15, vf14 + sqi.xyzw vf20, vi08 | sub.xyzw vf19, vf18, vf17 + sqi.xyzw vf14, vi08 | sub.xyzw vf22, vf21, vf20 + ibeq vi07, vi08, L20 | nop + nop | addz.w vf13, vf16, vf16 + nop | addw.z vf13, vf14, vf14 + div Q, vf13.z, vf13.w | nop + waitq | nop + nop | mul.xyzw vf19, vf19, Q + nop | mul.xyzw vf22, vf22, Q + nop | mul.xyzw vf16, vf16, Q + nop | sub.xyzw vf19, vf17, vf19 + nop | sub.xyzw vf22, vf20, vf22 + nop | sub.xyzw vf16, vf14, vf16 + iaddi vi10, vi10, 0x1 | nop + sqi.xyzw vf19, vi08 | nop + sqi.xyzw vf22, vi08 | nop + b L20 | nop + sqi.xyzw vf16, vi08 | nop +L32: + nop | sub.xyzw vf16, vf14, vf15 + nop | sub.xyzw vf19, vf17, vf18 + nop | sub.xyzw vf22, vf20, vf21 + nop | addz.w vf13, vf16, vf16 + nop | addw.z vf13, vf15, vf15 + div Q, vf13.z, vf13.w | nop + waitq | nop + nop | mul.xyzw vf19, vf19, Q + nop | mul.xyzw vf22, vf22, Q + nop | mul.xyzw vf16, vf16, Q + nop | sub.xyzw vf19, vf18, vf19 + nop | sub.xyzw vf22, vf21, vf22 + nop | sub.xyzw vf16, vf15, vf16 + sqi.xyzw vf19, vi08 | nop + sqi.xyzw vf22, vi08 | nop + b L20 | nop + sqi.xyzw vf16, vi08 | nop +L33: + b L22 | nop + iaddi vi10, vi10, -0x1 | nop +L34: + sqi.xyzw vf17, vi08 | sub.xyzw vf16, vf15, vf14 + sqi.xyzw vf20, vi08 | sub.xyzw vf19, vf18, vf17 + sqi.xyzw vf14, vi08 | sub.xyzw vf22, vf21, vf20 + ibeq vi07, vi08, L22 | nop + nop | addy.w vf13, vf16, vf16 + nop | addw.y vf13, vf14, vf14 + div Q, vf13.y, vf13.w | nop + waitq | nop + nop | mul.xyzw vf19, vf19, Q + nop | mul.xyzw vf22, vf22, Q + nop | mul.xyzw vf16, vf16, Q + nop | sub.xyzw vf19, vf17, vf19 + nop | sub.xyzw vf22, vf20, vf22 + nop | sub.xyzw vf16, vf14, vf16 + iaddi vi10, vi10, 0x1 | nop + sqi.xyzw vf19, vi08 | nop + sqi.xyzw vf22, vi08 | nop + b L22 | nop + sqi.xyzw vf16, vi08 | nop +L35: + nop | sub.xyzw vf16, vf14, vf15 + nop | sub.xyzw vf19, vf17, vf18 + nop | sub.xyzw vf22, vf20, vf21 + nop | addy.w vf13, vf16, vf16 + nop | addw.y vf13, vf15, vf15 + div Q, vf13.y, vf13.w | nop + waitq | nop + nop | mul.xyzw vf19, vf19, Q + nop | mul.xyzw vf22, vf22, Q + nop | mul.xyzw vf16, vf16, Q + nop | sub.xyzw vf19, vf18, vf19 + nop | sub.xyzw vf22, vf21, vf22 + nop | sub.xyzw vf16, vf15, vf16 + sqi.xyzw vf19, vi08 | nop + sqi.xyzw vf22, vi08 | nop + b L22 | nop + sqi.xyzw vf16, vi08 | nop +L36: + b L24 | nop + iaddi vi10, vi10, -0x1 | nop +L37: + sqi.xyzw vf17, vi08 | sub.xyzw vf16, vf15, vf14 + sqi.xyzw vf20, vi08 | sub.xyzw vf19, vf18, vf17 + sqi.xyzw vf14, vi08 | sub.xyzw vf22, vf21, vf20 + ibeq vi07, vi08, L24 | nop + nop | suby.w vf13, vf16, vf16 + nop | subw.y vf13, vf14, vf14 + div Q, vf13.y, vf13.w | nop + waitq | nop + nop | mul.xyzw vf19, vf19, Q + nop | mul.xyzw vf22, vf22, Q + nop | mul.xyzw vf16, vf16, Q + nop | add.xyzw vf19, vf17, vf19 + nop | add.xyzw vf22, vf20, vf22 + nop | add.xyzw vf16, vf14, vf16 + iaddi vi10, vi10, 0x1 | nop + sqi.xyzw vf19, vi08 | nop + sqi.xyzw vf22, vi08 | nop + b L24 | nop + sqi.xyzw vf16, vi08 | nop +L38: + nop | sub.xyzw vf16, vf14, vf15 + nop | sub.xyzw vf19, vf17, vf18 + nop | sub.xyzw vf22, vf20, vf21 + nop | suby.w vf13, vf16, vf16 + nop | subw.y vf13, vf15, vf15 + div Q, vf13.y, vf13.w | nop + waitq | nop + nop | mul.xyzw vf19, vf19, Q + nop | mul.xyzw vf22, vf22, Q + nop | mul.xyzw vf16, vf16, Q + nop | add.xyzw vf19, vf18, vf19 + nop | add.xyzw vf22, vf21, vf22 + nop | add.xyzw vf16, vf15, vf16 + sqi.xyzw vf19, vi08 | nop + sqi.xyzw vf22, vi08 | nop + b L24 | nop + sqi.xyzw vf16, vi08 | nop +L39: + b L26 | nop + iaddi vi10, vi10, -0x1 | nop +L40: + sqi.xyzw vf17, vi08 | sub.xyzw vf16, vf15, vf14 + sqi.xyzw vf20, vi08 | sub.xyzw vf19, vf18, vf17 + sqi.xyzw vf14, vi08 | sub.xyzw vf22, vf21, vf20 + ibeq vi07, vi08, L26 | nop + nop | addx.w vf13, vf16, vf16 + nop | addw.x vf13, vf14, vf14 + div Q, vf13.x, vf13.w | nop + waitq | nop + nop | mul.xyzw vf19, vf19, Q + nop | mul.xyzw vf22, vf22, Q + nop | mul.xyzw vf16, vf16, Q + nop | sub.xyzw vf19, vf17, vf19 + nop | sub.xyzw vf22, vf20, vf22 + nop | sub.xyzw vf16, vf14, vf16 + iaddi vi10, vi10, 0x1 | nop + sqi.xyzw vf19, vi08 | nop + sqi.xyzw vf22, vi08 | nop + b L26 | nop + sqi.xyzw vf16, vi08 | nop +L41: + nop | sub.xyzw vf16, vf14, vf15 + nop | sub.xyzw vf19, vf17, vf18 + nop | sub.xyzw vf22, vf20, vf21 + nop | addx.w vf13, vf16, vf16 + nop | addw.x vf13, vf15, vf15 + div Q, vf13.x, vf13.w | nop + waitq | nop + nop | mul.xyzw vf19, vf19, Q + nop | mul.xyzw vf22, vf22, Q + nop | mul.xyzw vf16, vf16, Q + nop | sub.xyzw vf19, vf18, vf19 + nop | sub.xyzw vf22, vf21, vf22 + nop | sub.xyzw vf16, vf15, vf16 + sqi.xyzw vf19, vi08 | nop + sqi.xyzw vf22, vi08 | nop + b L26 | nop + sqi.xyzw vf16, vi08 | nop +L42: + b L28 | nop + iaddi vi10, vi10, -0x1 | nop +L43: + sqi.xyzw vf17, vi08 | sub.xyzw vf16, vf15, vf14 + sqi.xyzw vf20, vi08 | sub.xyzw vf19, vf18, vf17 + sqi.xyzw vf14, vi08 | sub.xyzw vf22, vf21, vf20 + ibeq vi07, vi08, L28 | nop + nop | subx.w vf13, vf16, vf16 + nop | subw.x vf13, vf14, vf14 + div Q, vf13.x, vf13.w | nop + waitq | nop + nop | mul.xyzw vf19, vf19, Q + nop | mul.xyzw vf22, vf22, Q + nop | mul.xyzw vf16, vf16, Q + nop | add.xyzw vf19, vf17, vf19 + nop | add.xyzw vf22, vf20, vf22 + nop | add.xyzw vf16, vf14, vf16 + iaddi vi10, vi10, 0x1 | nop + sqi.xyzw vf19, vi08 | nop + sqi.xyzw vf22, vi08 | nop + b L28 | nop + sqi.xyzw vf16, vi08 | nop +L44: + nop | sub.xyzw vf16, vf14, vf15 + nop | sub.xyzw vf19, vf17, vf18 + nop | sub.xyzw vf22, vf20, vf21 + nop | subx.w vf13, vf16, vf16 + nop | subw.x vf13, vf15, vf15 + div Q, vf13.x, vf13.w | nop + waitq | nop + nop | mul.xyzw vf19, vf19, Q + nop | mul.xyzw vf22, vf22, Q + nop | mul.xyzw vf16, vf16, Q + nop | add.xyzw vf19, vf18, vf19 + nop | add.xyzw vf22, vf21, vf22 + nop | add.xyzw vf16, vf15, vf16 + sqi.xyzw vf19, vi08 | nop + sqi.xyzw vf22, vi08 | nop + b L28 | nop + sqi.xyzw vf16, vi08 | nop diff --git a/test/decompiler/vu_reference/sprite.txt b/test/decompiler/vu_reference/sprite.txt new file mode 100644 index 0000000000..fd456ce0cf --- /dev/null +++ b/test/decompiler/vu_reference/sprite.txt @@ -0,0 +1,1708 @@ + .word 0x1fd03e4 + .word 0x2ff + .word 0x1ff03e5 + .word 0x400002ff + .word 0x100f0320 + .word 0x2ff + .word 0x800206bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x810413fe + .word 0x2ff + .word 0x80021072 + .word 0x2ff + .word 0x10031090 + .word 0x2ff + .word 0x8881001 + .word 0x2ff + .word 0x1f90384 + .word 0x2ff + .word 0x1fa0385 + .word 0x2ff + .word 0x1fb0386 + .word 0x2ff + .word 0x1fc0387 + .word 0x2ff + .word 0x1fe0388 + .word 0x2ff + .word 0x81e1137c + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x81eb137c + .word 0x2ff + .word 0x1ec03fc + .word 0x1e0e1bf + .word 0x80000030 + .word 0x1e1c8bc + .word 0x80000030 + .word 0x1e1d0bd + .word 0x80000030 + .word 0x1e1d88a + .word 0x8025033c + .word 0x450043 + .word 0x80000030 + .word 0x2ff + .word 0x8182fbbc + .word 0x5f2959 + .word 0x80000030 + .word 0x1fd10ea + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x45291a + .word 0x1ee03e9 + .word 0x1c319ff + .word 0x80060072 + .word 0x1eb5abc + .word 0x80007975 + .word 0x60085c + .word 0x1e603e6 + .word 0x1e42bda + .word 0x1ee03ea + .word 0x1ee2abe + .word 0x34013000 + .word 0x1c0109c + .word 0x52000842 + .word 0x1010042 + .word 0x81e71b7c + .word 0x1e47c1a + .word 0x1ee03eb + .word 0x1ee7abd + .word 0x81e81b7c + .word 0x1fe12a8 + .word 0x81e91b7c + .word 0x101085b + .word 0x81e5337d + .word 0x1e483da + .word 0x1ee03ec + .word 0x1ee82bd + .word 0x81e53b7d + .word 0x2c5290 + .word 0x81e5437d + .word 0x7f0852 + .word 0x81e54b7d + .word 0x1e47c1a + .word 0x1ee03ed + .word 0x1ee7abd + .word 0x81e61b7c + .word 0x11f085b + .word 0x81e71b7c + .word 0x2c5295 + .word 0x1e843e7 + .word 0x6c0856 + .word 0x90717fe + .word 0x1ee8169 + .word 0x81f7137c + .word 0x1000857 + .word 0x80000030 + .word 0x2c5085 + .word 0x81f8137c + .word 0x215ad8 + .word 0x2400003f + .word 0x1e0e1bf + .word 0x1f103ee + .word 0x1f7c8bc + .word 0x34093000 + .word 0x2ff + .word 0x52004833 + .word 0x2ff + .word 0x1f203ef + .word 0x1f7d0bd + .word 0x1f33bd4 + .word 0x1eb597c + .word 0x1f43bd5 + .word 0x1f7d88a + .word 0x1f53bd6 + .word 0x1e589bf + .word 0x1f63bd7 + .word 0x1e5930e + .word 0x3e55803 + .word 0x1e589be + .word 0x81eb137c + .word 0x1e5934b + .word 0x8038033c + .word 0x5805c3 + .word 0x8182fbbc + .word 0x1e1631b + .word 0x5200081d + .word 0x5fc619 + .word 0x88817fe + .word 0x1e16b5a + .word 0x81e5337d + .word 0x1fd10ea + .word 0x81e53b7d + .word 0x1e051bf + .word 0x81e5437d + .word 0x1f360bc + .word 0x1e603dc + .word 0x1f36cc9 + .word 0x1e703dd + .word 0x1e051bf + .word 0x1e803de + .word 0x1f460bc + .word 0x1e903df + .word 0x1f46d09 + .word 0x3e53001 + .word 0x1e051bf + .word 0x3e53803 + .word 0x1f560bc + .word 0x3e54005 + .word 0x1f56d49 + .word 0x3e54807 + .word 0x1e051bf + .word 0x80000030 + .word 0x1f660bc + .word 0x80000030 + .word 0x1f66d89 + .word 0x1ec03fc + .word 0x1f3997d + .word 0x1ee03e9 + .word 0x1f4a17d + .word 0x81e5c33c + .word 0x1f5a97d + .word 0x81e1bb3c + .word 0x1f6b17d + .word 0x3e59802 + .word 0x58c11a + .word 0x3e5a004 + .word 0x1c319ff + .word 0x3e5a806 + .word 0x2ff + .word 0x3e5b008 + .word 0x2ff + .word 0x80007efc + .word 0x2ff + .word 0x800427f2 + .word 0x2ff + .word 0x10010672 + .word 0x2ff + .word 0x520027c2 + .word 0x2ff + .word 0x800f0bf1 + .word 0x1eb5abc + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x800427f2 + .word 0x2ff + .word 0x80021772 + .word 0x2ff + .word 0x520027a6 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x800427f2 + .word 0x2ff + .word 0x80031932 + .word 0x2ff + .word 0x520027a0 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x400007cd + .word 0x2ff + .word 0x1e803e8 + .word 0x2ff + .word 0x800206bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x810413fe + .word 0x2ff + .word 0x80021072 + .word 0x2ff + .word 0x10031090 + .word 0x2ff + .word 0x8881001 + .word 0x2ff + .word 0x1f90384 + .word 0x2ff + .word 0x1fa0385 + .word 0x2ff + .word 0x1fb0386 + .word 0x2ff + .word 0x1fc0387 + .word 0x2ff + .word 0x1fe4388 + .word 0x2ff + .word 0x81e1137c + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x81eb137c + .word 0x2ff + .word 0x1ec03fc + .word 0x1e0e1bf + .word 0x8881001 + .word 0x1e1c8bc + .word 0x80000030 + .word 0x1e1d0bd + .word 0x80000030 + .word 0x1e1d88a + .word 0x8025033c + .word 0x450043 + .word 0x80000030 + .word 0x2ff + .word 0x8182fbbc + .word 0x5f2959 + .word 0x80000030 + .word 0x1fd10ea + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x45291a + .word 0x1ee03e9 + .word 0x1c319ff + .word 0x80060072 + .word 0x1eb5abc + .word 0x80007975 + .word 0x60085c + .word 0x1e603e6 + .word 0x1e42bda + .word 0x1ee03ea + .word 0x1ee2abe + .word 0x34013000 + .word 0x1c0109c + .word 0x52000840 + .word 0x1010042 + .word 0x81e71b7c + .word 0x1e47c1a + .word 0x1ee03eb + .word 0x1ee7abd + .word 0x81e81b7c + .word 0x1fe12a8 + .word 0x81e91b7c + .word 0x101085b + .word 0x81e5337d + .word 0x1e483da + .word 0x1ee03ec + .word 0x1ee82bd + .word 0x81e53b7d + .word 0x2c5290 + .word 0x81e5437d + .word 0x7f0852 + .word 0x81e54b7d + .word 0x1e47c1a + .word 0x1ee03ed + .word 0x1ee7abd + .word 0x81e61b7c + .word 0x11f085b + .word 0x81e71b7c + .word 0x2c5295 + .word 0x1e803e8 + .word 0x2ff + .word 0x90717fe + .word 0x1ee8169 + .word 0x1fe4388 + .word 0x2ff + .word 0x81f7137c + .word 0x1000857 + .word 0x81f8137c + .word 0x215ad8 + .word 0x2400003f + .word 0x1e0e1bf + .word 0x1f103ee + .word 0x1f7c8bc + .word 0x1f203ef + .word 0x1f7d0bd + .word 0x1f33bd4 + .word 0x1eb597c + .word 0x1f43bd5 + .word 0x1f7d88a + .word 0x1f53bd6 + .word 0x1e589bf + .word 0x1f63bd7 + .word 0x1e5930e + .word 0x3e55803 + .word 0x1e589be + .word 0x81eb137c + .word 0x1e5934b + .word 0x8038033c + .word 0x5805c3 + .word 0x8182fbbc + .word 0x1e1631b + .word 0x5200081d + .word 0x5fc619 + .word 0x8881001 + .word 0x1e16b5a + .word 0x81e5337d + .word 0x1fd10ea + .word 0x81e53b7d + .word 0x1e051bf + .word 0x81e5437d + .word 0x1f360bc + .word 0x1e603dc + .word 0x1f36cc9 + .word 0x1e703dd + .word 0x1e051bf + .word 0x1e803de + .word 0x1f460bc + .word 0x1e903df + .word 0x1f46d09 + .word 0x3e53001 + .word 0x1e051bf + .word 0x3e53803 + .word 0x1f560bc + .word 0x3e54005 + .word 0x1f56d49 + .word 0x3e54807 + .word 0x1e051bf + .word 0x80000030 + .word 0x1f660bc + .word 0x80000030 + .word 0x1f66d89 + .word 0x1ec03fc + .word 0x1f3997d + .word 0x1ee03e9 + .word 0x1f4a17d + .word 0x81e5c33c + .word 0x1f5a97d + .word 0x81e1bb3c + .word 0x1f6b17d + .word 0x3e59802 + .word 0x58c11a + .word 0x3e5a004 + .word 0x1c319ff + .word 0x3e5a806 + .word 0x2ff + .word 0x3e5b008 + .word 0x2ff + .word 0x80007efc + .word 0x2ff + .word 0x800427f2 + .word 0x2ff + .word 0x10010672 + .word 0x2ff + .word 0x520027c4 + .word 0x2ff + .word 0x800f0bf1 + .word 0x1eb5abc + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x800427f2 + .word 0x2ff + .word 0x80021772 + .word 0x2ff + .word 0x520027a8 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x800427f2 + .word 0x2ff + .word 0x80031932 + .word 0x2ff + .word 0x520027a2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x1f90384 + .word 0x2ff + .word 0x1fa0385 + .word 0x2ff + .word 0x1fb0386 + .word 0x2ff + .word 0x1fc0387 + .word 0x2ff + .word 0x1fe0388 + .word 0x2ff + .word 0x800206bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x810413fe + .word 0x2ff + .word 0x80021072 + .word 0x2ff + .word 0x10031090 + .word 0x2ff + .word 0x1f703fc + .word 0x2ff + .word 0x80060072 + .word 0x2ff + .word 0x1e61001 + .word 0x2ff + .word 0x1e71002 + .word 0x2ff + .word 0x800100b2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e6316a + .word 0x80000030 + .word 0x860203 + .word 0x80000030 + .word 0x263187 + .word 0x80000030 + .word 0x1e73abc + .word 0x80000030 + .word 0x1052941 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x34013000 + .word 0x2ff + .word 0x5200088e + .word 0x1052942 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x250144 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x818503bd + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2031a0 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e63368 + .word 0x80000030 + .word 0x1060243 + .word 0x80000030 + .word 0x860242 + .word 0x80000030 + .word 0x460245 + .word 0x80000030 + .word 0x200247 + .word 0x80000030 + .word 0x1060286 + .word 0x80000030 + .word 0x860283 + .word 0x80000030 + .word 0x460280 + .word 0x80000030 + .word 0x200287 + .word 0x80000030 + .word 0x10602c1 + .word 0x80000030 + .word 0x8602c4 + .word 0x80000030 + .word 0x4602c3 + .word 0x80000030 + .word 0x2002c7 + .word 0x1ec1000 + .word 0x1c96afe + .word 0x1e71002 + .word 0x1cd4a6e + .word 0x800210f2 + .word 0x1ca6afe + .word 0x1e61001 + .word 0x1cd52ae + .word 0x80007975 + .word 0x1cb6afe + .word 0x1e103e6 + .word 0x1cd5aee + .word 0x81e21b7c + .word 0x1004a43 + .word 0x81e31b7c + .word 0x805283 + .word 0x81e41b7c + .word 0x405ac3 + .word 0x81e50b7d + .word 0x1e6316a + .word 0x802c033c + .word 0x1ec4a5b + .word 0x80060072 + .word 0x1e85ad9 + .word 0x1ee03e0 + .word 0x1e73abc + .word 0x1ef03e1 + .word 0x1e7397c + .word 0x1f003e2 + .word 0x860203 + .word 0x1f103e3 + .word 0x263187 + .word 0x34013000 + .word 0x1ee49bc + .word 0x52000857 + .word 0x1ee50bd + .word 0x3e53807 + .word 0x1ee58be + .word 0x3e5380a + .word 0x1e0638b + .word 0x81e5137d + .word 0x1052941 + .word 0x3e5380c + .word 0x1ef49bc + .word 0x3e5380f + .word 0x1ef50bd + .word 0x81e51b7d + .word 0x1ef58be + .word 0x81e5237d + .word 0x1052942 + .word 0x81e11b7c + .word 0x1e063cb + .word 0x81e21b7c + .word 0x1f049bc + .word 0x1e303f0 + .word 0x1f050bd + .word 0x80000030 + .word 0x250144 + .word 0x81e50b7d + .word 0x1f058be + .word 0x81e5137d + .word 0x1e0640b + .word 0x81e51b7d + .word 0x1f149bc + .word 0x818503bd + .word 0x1f150bd + .word 0x80000030 + .word 0x1f158be + .word 0x80000030 + .word 0x1e0644b + .word 0x1f203dc + .word 0x1eec9bc + .word 0x1f303dd + .word 0x1eed0bd + .word 0x1f403de + .word 0x1eed8be + .word 0x1f503df + .word 0x1e0e38b + .word 0x80000030 + .word 0x2031a0 + .word 0x80000030 + .word 0x1efc9bc + .word 0x80000030 + .word 0x1efd0bd + .word 0x80000030 + .word 0x1efd8be + .word 0x818efbbc + .word 0x1fd726a + .word 0x80000030 + .word 0x1e0e3cb + .word 0x80000030 + .word 0x1f0c9bc + .word 0x80000030 + .word 0x1f0d0bd + .word 0x80000030 + .word 0x1f0d8be + .word 0x80000030 + .word 0x1fd7aaa + .word 0x80000030 + .word 0x1e0e40b + .word 0x818ffbbc + .word 0x1c0739c + .word 0x80000030 + .word 0x1e0949c + .word 0x80000030 + .word 0x1f1c9bc + .word 0x80000030 + .word 0x1f1d0bd + .word 0x80000030 + .word 0x1f1d8be + .word 0x3e59000 + .word 0x1fd82ea + .word 0x80000030 + .word 0x1e0e44b + .word 0x8190fbbc + .word 0x1c07bdc + .word 0x80000030 + .word 0x1e09cdc + .word 0x80000030 + .word 0x1fe73a8 + .word 0x80000030 + .word 0x1fe7be8 + .word 0x80000030 + .word 0x1fd8b2a + .word 0x3e59803 + .word 0x1c949ff + .word 0x80000030 + .word 0x1ca51ff + .word 0x8191fbbc + .word 0x1c0841c + .word 0x80000030 + .word 0x1e0a51c + .word 0x80000030 + .word 0x1cb59ff + .word 0x80000030 + .word 0x1cc61ff + .word 0x80000030 + .word 0x1fe8428 + .word 0x3e5a006 + .word 0x377390 + .word 0x80000030 + .word 0x377bd0 + .word 0x24410410 + .word 0x1c08c5c + .word 0x5200081a + .word 0x1e0ad5c + .word 0x24ffffff + .word 0x378410 + .word 0x5200082a + .word 0x377395 + .word 0x80000030 + .word 0x1fe8c68 + .word 0x3e5a809 + .word 0x377bd5 + .word 0x80000030 + .word 0x378415 + .word 0x80000030 + .word 0x1ee717d + .word 0x80000030 + .word 0x378c50 + .word 0x80000030 + .word 0x1ef797d + .word 0x80000030 + .word 0x1f0817d + .word 0x3e57002 + .word 0x1e63368 + .word 0x80000030 + .word 0x378c55 + .word 0x3e57805 + .word 0x1060243 + .word 0x3e58008 + .word 0x860242 + .word 0x80000030 + .word 0x460245 + .word 0x80000030 + .word 0x1f1897d + .word 0x80000030 + .word 0x200247 + .word 0x80000030 + .word 0x1060286 + .word 0x80000030 + .word 0x860283 + .word 0x3e5880b + .word 0x460280 + .word 0x80007efc + .word 0x200287 + .word 0x800427f2 + .word 0x10602c1 + .word 0x10010672 + .word 0x8602c4 + .word 0x520027a0 + .word 0x4602c3 + .word 0x800f0bf1 + .word 0x2002c7 + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x800427f2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x5200276e + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x800427f2 + .word 0x2ff + .word 0x800318b2 + .word 0x2ff + .word 0x52002768 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x800427f2 + .word 0x2ff + .word 0x80031972 + .word 0x2ff + .word 0x52002762 + .word 0x2ff + .word 0x800210f2 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x267df7df + .word 0x2ff + .word 0x52000fec + .word 0x2ff + .word 0x26df7df7 + .word 0x2ff + .word 0x52000fea + .word 0x2ff + .word 0x26efbefb + .word 0x2ff + .word 0x52000fe8 + .word 0x2ff + .word 0x26f7df7d + .word 0x2ff + .word 0x52000fe6 + .word 0x2ff + .word 0x26fbefbe + .word 0x2ff + .word 0x52000fe4 + .word 0x2ff + .word 0x800029f5 + .word 0x2ff + .word 0x80000030 + .word 0x1e7393c + .word 0x3e74802 + .word 0x2ff + .word 0x3e75005 + .word 0x2ff + .word 0x3e75808 + .word 0x2ff + .word 0x3e7600b + .word 0x2ff + .word 0x3e7480e + .word 0x2ff + .word 0x1f203dc + .word 0x2ff + .word 0x1f303dd + .word 0x2ff + .word 0x1f403de + .word 0x2ff + .word 0x1f503df + .word 0x2ff + .word 0x3e79000 + .word 0x2ff + .word 0x3e79803 + .word 0x2ff + .word 0x3e7a006 + .word 0x2ff + .word 0x3e7a809 + .word 0x2ff + .word 0x3e7900c + .word 0x2ff + .word 0x3e73801 + .word 0x2ff + .word 0x3e73804 + .word 0x2ff + .word 0x3e73807 + .word 0x2ff + .word 0x3e7380a + .word 0x2ff + .word 0x3e7380d + .word 0x2ff + .word 0x80090132 + .word 0x2ff + .word 0x420b0037 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1e103f6 + .word 0x2ff + .word 0x50004fca + .word 0x2ff + .word 0x110a4800 + .word 0x2ff + .word 0x110a5000 + .word 0x2ff + .word 0x81e50b7f + .word 0x2ff + .word 0x810a2bff + .word 0x2ff + .word 0x80052872 + .word 0x2ff + .word 0x1fd03f7 + .word 0x2ff + .word 0x81f12b7c + .word 0x2ff + .word 0x81f42b7c + .word 0x2ff + .word 0x81ee2b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81ee03bc + .word 0x1fd73aa + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c0739c + .word 0x80000030 + .word 0x1e08c5c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fe73a8 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x377390 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x377395 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1f4a17c + .word 0x80000030 + .word 0x1ee717d + .word 0x80000030 + .word 0x2ff + .word 0x3e58ffd + .word 0x2ff + .word 0x3e5a7fe + .word 0x2ff + .word 0x3e577ff + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x52004fdb + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fd03e4 + .word 0x2ff + .word 0x80007efc + .word 0x2ff + .word 0x800427f2 + .word 0x2ff + .word 0x10010672 + .word 0x2ff + .word 0x5200270a + .word 0x2ff + .word 0x800f0bf1 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x80003a35 + .word 0x2ff + .word 0x1ee3802 + .word 0x2ff + .word 0x80004ab5 + .word 0x2ff + .word 0x1f13800 + .word 0x2ff + .word 0x1f43801 + .word 0x2ff + .word 0x800738f2 + .word 0x1ce71ff + .word 0x1ef3802 + .word 0x2ff + .word 0x1f23800 + .word 0x2ff + .word 0x1f53801 + .word 0x2ff + .word 0x800738f2 + .word 0x2ff + .word 0x80000030 + .word 0x1cf79ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x26fff7df + .word 0x2ff + .word 0x520008b0 + .word 0x2ff + .word 0x24000020 + .word 0x2ff + .word 0x520008b0 + .word 0x2ff + .word 0x24000800 + .word 0x2ff + .word 0x520008c1 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e88b7d + .word 0x2ff + .word 0x81e8a37d + .word 0x2ff + .word 0x81e8737d + .word 0x2ff + .word 0x81f1933c + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x81f4ab3c + .word 0x2ff + .word 0x52004fea + .word 0x2ff + .word 0x81ee7b3c + .word 0x2ff + .word 0x1f12800 + .word 0x2ff + .word 0x1f42801 + .word 0x2ff + .word 0x1ee2802 + .word 0x2ff + .word 0x800029f5 + .word 0x2ff + .word 0x81e88b7d + .word 0x2ff + .word 0x81e8a37d + .word 0x2ff + .word 0x81e8737d + .word 0x2ff + .word 0x50005099 + .word 0x2ff + .word 0x80005275 + .word 0x2ff + .word 0x80003a35 + .word 0x2ff + .word 0x1ee3802 + .word 0x2ff + .word 0x80004ab5 + .word 0x2ff + .word 0x1f13800 + .word 0x2ff + .word 0x1f43801 + .word 0x2ff + .word 0x800738f2 + .word 0x1ce71ff + .word 0x1ef3802 + .word 0x2ff + .word 0x1f23800 + .word 0x2ff + .word 0x1f53801 + .word 0x2ff + .word 0x800738f2 + .word 0x2ff + .word 0x80000030 + .word 0x1cf79ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x26fffdf7 + .word 0x2ff + .word 0x520008b0 + .word 0x2ff + .word 0x24000008 + .word 0x2ff + .word 0x520008b0 + .word 0x2ff + .word 0x24000200 + .word 0x2ff + .word 0x520008c1 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e88b7d + .word 0x2ff + .word 0x81e8a37d + .word 0x2ff + .word 0x81e8737d + .word 0x2ff + .word 0x81f1933c + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x81f4ab3c + .word 0x2ff + .word 0x52004fea + .word 0x2ff + .word 0x81ee7b3c + .word 0x2ff + .word 0x1f12800 + .word 0x2ff + .word 0x1f42801 + .word 0x2ff + .word 0x1ee2802 + .word 0x2ff + .word 0x800029f5 + .word 0x2ff + .word 0x81e88b7d + .word 0x2ff + .word 0x81e8a37d + .word 0x2ff + .word 0x81e8737d + .word 0x2ff + .word 0x50005073 + .word 0x2ff + .word 0x80005275 + .word 0x2ff + .word 0x80003a35 + .word 0x2ff + .word 0x1ee3802 + .word 0x2ff + .word 0x80004ab5 + .word 0x2ff + .word 0x1f13800 + .word 0x2ff + .word 0x1f43801 + .word 0x2ff + .word 0x800738f2 + .word 0x1ce71ff + .word 0x1ef3802 + .word 0x2ff + .word 0x1f23800 + .word 0x2ff + .word 0x1f53801 + .word 0x2ff + .word 0x800738f2 + .word 0x2ff + .word 0x80000030 + .word 0x1cf79ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x26fffefb + .word 0x2ff + .word 0x520008b0 + .word 0x2ff + .word 0x24000004 + .word 0x2ff + .word 0x520008b0 + .word 0x2ff + .word 0x24000100 + .word 0x2ff + .word 0x520008c1 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e88b7d + .word 0x2ff + .word 0x81e8a37d + .word 0x2ff + .word 0x81e8737d + .word 0x2ff + .word 0x81f1933c + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x81f4ab3c + .word 0x2ff + .word 0x52004fea + .word 0x2ff + .word 0x81ee7b3c + .word 0x2ff + .word 0x1f12800 + .word 0x2ff + .word 0x1f42801 + .word 0x2ff + .word 0x1ee2802 + .word 0x2ff + .word 0x800029f5 + .word 0x2ff + .word 0x81e88b7d + .word 0x2ff + .word 0x81e8a37d + .word 0x2ff + .word 0x81e8737d + .word 0x2ff + .word 0x5000504d + .word 0x2ff + .word 0x80005275 + .word 0x2ff + .word 0x80003a35 + .word 0x2ff + .word 0x1ee3802 + .word 0x2ff + .word 0x80004ab5 + .word 0x2ff + .word 0x1f13800 + .word 0x2ff + .word 0x1f43801 + .word 0x2ff + .word 0x800738f2 + .word 0x1ce71ff + .word 0x1ef3802 + .word 0x2ff + .word 0x1f23800 + .word 0x2ff + .word 0x1f53801 + .word 0x2ff + .word 0x800738f2 + .word 0x2ff + .word 0x80000030 + .word 0x1cf79ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x26ffff7d + .word 0x2ff + .word 0x520008b0 + .word 0x2ff + .word 0x24000002 + .word 0x2ff + .word 0x520008b0 + .word 0x2ff + .word 0x24000080 + .word 0x2ff + .word 0x520008c1 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e88b7d + .word 0x2ff + .word 0x81e8a37d + .word 0x2ff + .word 0x81e8737d + .word 0x2ff + .word 0x81f1933c + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x81f4ab3c + .word 0x2ff + .word 0x52004fea + .word 0x2ff + .word 0x81ee7b3c + .word 0x2ff + .word 0x1f12800 + .word 0x2ff + .word 0x1f42801 + .word 0x2ff + .word 0x1ee2802 + .word 0x2ff + .word 0x800029f5 + .word 0x2ff + .word 0x81e88b7d + .word 0x2ff + .word 0x81e8a37d + .word 0x2ff + .word 0x81e8737d + .word 0x2ff + .word 0x50005027 + .word 0x2ff + .word 0x80005275 + .word 0x2ff + .word 0x80003a35 + .word 0x2ff + .word 0x1ee3802 + .word 0x2ff + .word 0x80004ab5 + .word 0x2ff + .word 0x1f13800 + .word 0x2ff + .word 0x1f43801 + .word 0x2ff + .word 0x800738f2 + .word 0x1ce71ff + .word 0x1ef3802 + .word 0x2ff + .word 0x1f23800 + .word 0x2ff + .word 0x1f53801 + .word 0x2ff + .word 0x800738f2 + .word 0x2ff + .word 0x80000030 + .word 0x1cf79ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x26ffffbe + .word 0x2ff + .word 0x520008b0 + .word 0x2ff + .word 0x24000001 + .word 0x2ff + .word 0x520008b0 + .word 0x2ff + .word 0x24000040 + .word 0x2ff + .word 0x520008c1 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e88b7d + .word 0x2ff + .word 0x81e8a37d + .word 0x2ff + .word 0x81e8737d + .word 0x2ff + .word 0x81f1933c + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x81f4ab3c + .word 0x2ff + .word 0x52004fea + .word 0x2ff + .word 0x81ee7b3c + .word 0x2ff + .word 0x1f12800 + .word 0x2ff + .word 0x1f42801 + .word 0x2ff + .word 0x1ee2802 + .word 0x2ff + .word 0x800029f5 + .word 0x2ff + .word 0x81e88b7d + .word 0x2ff + .word 0x81e8a37d + .word 0x2ff + .word 0x81e8737d + .word 0x2ff + .word 0x50005001 + .word 0x2ff + .word 0x80005275 + .word 0x2ff + .word 0x48005800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000757 + .word 0x2ff + .word 0x800a57f2 + .word 0x2ff + .word 0x81e88b7d + .word 0x1ee7c2c + .word 0x81e8a37d + .word 0x1f194ec + .word 0x81e8737d + .word 0x1f4adac + .word 0x50074752 + .word 0x2ff + .word 0x80000030 + .word 0x308342 + .word 0x80000030 + .word 0x4e7343 + .word 0x81cd6bbc + .word 0x2ff + .word 0x800003bf + .word 0x2ff + .word 0x80000030 + .word 0x1e09cdc + .word 0x80000030 + .word 0x1e0b59c + .word 0x80000030 + .word 0x1e0841c + .word 0x80000030 + .word 0x1f38cec + .word 0x80000030 + .word 0x1f6a5ac + .word 0x80000030 + .word 0x1f0742c + .word 0x800a5072 + .word 0x2ff + .word 0x81e89b7d + .word 0x2ff + .word 0x81e8b37d + .word 0x2ff + .word 0x40000744 + .word 0x2ff + .word 0x81e8837d + .word 0x2ff + .word 0x80000030 + .word 0x1ef742c + .word 0x80000030 + .word 0x1f28cec + .word 0x80000030 + .word 0x1f5a5ac + .word 0x80000030 + .word 0x308342 + .word 0x80000030 + .word 0x4f7b43 + .word 0x81cd6bbc + .word 0x2ff + .word 0x800003bf + .word 0x2ff + .word 0x80000030 + .word 0x1e09cdc + .word 0x80000030 + .word 0x1e0b59c + .word 0x80000030 + .word 0x1e0841c + .word 0x80000030 + .word 0x1f394ec + .word 0x80000030 + .word 0x1f6adac + .word 0x80000030 + .word 0x1f07c2c + .word 0x81e89b7d + .word 0x2ff + .word 0x81e8b37d + .word 0x2ff + .word 0x40000733 + .word 0x2ff + .word 0x81e8837d + .word 0x2ff + .word 0x40000757 + .word 0x2ff + .word 0x800a57f2 + .word 0x2ff + .word 0x81e88b7d + .word 0x1ee7c2c + .word 0x81e8a37d + .word 0x1f194ec + .word 0x81e8737d + .word 0x1f4adac + .word 0x50074752 + .word 0x2ff + .word 0x80000030 + .word 0x308341 + .word 0x80000030 + .word 0x8e7343 + .word 0x81ad6bbc + .word 0x2ff + .word 0x800003bf + .word 0x2ff + .word 0x80000030 + .word 0x1e09cdc + .word 0x80000030 + .word 0x1e0b59c + .word 0x80000030 + .word 0x1e0841c + .word 0x80000030 + .word 0x1f38cec + .word 0x80000030 + .word 0x1f6a5ac + .word 0x80000030 + .word 0x1f0742c + .word 0x800a5072 + .word 0x2ff + .word 0x81e89b7d + .word 0x2ff + .word 0x81e8b37d + .word 0x2ff + .word 0x40000744 + .word 0x2ff + .word 0x81e8837d + .word 0x2ff + .word 0x80000030 + .word 0x1ef742c + .word 0x80000030 + .word 0x1f28cec + .word 0x80000030 + .word 0x1f5a5ac + .word 0x80000030 + .word 0x308341 + .word 0x80000030 + .word 0x8f7b43 + .word 0x81ad6bbc + .word 0x2ff + .word 0x800003bf + .word 0x2ff + .word 0x80000030 + .word 0x1e09cdc + .word 0x80000030 + .word 0x1e0b59c + .word 0x80000030 + .word 0x1e0841c + .word 0x80000030 + .word 0x1f394ec + .word 0x80000030 + .word 0x1f6adac + .word 0x80000030 + .word 0x1f07c2c + .word 0x81e89b7d + .word 0x2ff + .word 0x81e8b37d + .word 0x2ff + .word 0x40000733 + .word 0x2ff + .word 0x81e8837d + .word 0x2ff + .word 0x40000757 + .word 0x2ff + .word 0x800a57f2 + .word 0x2ff + .word 0x81e88b7d + .word 0x1ee7c2c + .word 0x81e8a37d + .word 0x1f194ec + .word 0x81e8737d + .word 0x1f4adac + .word 0x50074752 + .word 0x2ff + .word 0x80000030 + .word 0x308345 + .word 0x80000030 + .word 0x8e7347 + .word 0x81ad6bbc + .word 0x2ff + .word 0x800003bf + .word 0x2ff + .word 0x80000030 + .word 0x1e09cdc + .word 0x80000030 + .word 0x1e0b59c + .word 0x80000030 + .word 0x1e0841c + .word 0x80000030 + .word 0x1f38ce8 + .word 0x80000030 + .word 0x1f6a5a8 + .word 0x80000030 + .word 0x1f07428 + .word 0x800a5072 + .word 0x2ff + .word 0x81e89b7d + .word 0x2ff + .word 0x81e8b37d + .word 0x2ff + .word 0x40000744 + .word 0x2ff + .word 0x81e8837d + .word 0x2ff + .word 0x80000030 + .word 0x1ef742c + .word 0x80000030 + .word 0x1f28cec + .word 0x80000030 + .word 0x1f5a5ac + .word 0x80000030 + .word 0x308345 + .word 0x80000030 + .word 0x8f7b47 + .word 0x81ad6bbc + .word 0x2ff + .word 0x800003bf + .word 0x2ff + .word 0x80000030 + .word 0x1e09cdc + .word 0x80000030 + .word 0x1e0b59c + .word 0x80000030 + .word 0x1e0841c + .word 0x80000030 + .word 0x1f394e8 + .word 0x80000030 + .word 0x1f6ada8 + .word 0x80000030 + .word 0x1f07c28 + .word 0x81e89b7d + .word 0x2ff + .word 0x81e8b37d + .word 0x2ff + .word 0x40000733 + .word 0x2ff + .word 0x81e8837d + .word 0x2ff + .word 0x40000757 + .word 0x2ff + .word 0x800a57f2 + .word 0x2ff + .word 0x81e88b7d + .word 0x1ee7c2c + .word 0x81e8a37d + .word 0x1f194ec + .word 0x81e8737d + .word 0x1f4adac + .word 0x50074752 + .word 0x2ff + .word 0x80000030 + .word 0x308340 + .word 0x80000030 + .word 0x10e7343 + .word 0x818d6bbc + .word 0x2ff + .word 0x800003bf + .word 0x2ff + .word 0x80000030 + .word 0x1e09cdc + .word 0x80000030 + .word 0x1e0b59c + .word 0x80000030 + .word 0x1e0841c + .word 0x80000030 + .word 0x1f38cec + .word 0x80000030 + .word 0x1f6a5ac + .word 0x80000030 + .word 0x1f0742c + .word 0x800a5072 + .word 0x2ff + .word 0x81e89b7d + .word 0x2ff + .word 0x81e8b37d + .word 0x2ff + .word 0x40000744 + .word 0x2ff + .word 0x81e8837d + .word 0x2ff + .word 0x80000030 + .word 0x1ef742c + .word 0x80000030 + .word 0x1f28cec + .word 0x80000030 + .word 0x1f5a5ac + .word 0x80000030 + .word 0x308340 + .word 0x80000030 + .word 0x10f7b43 + .word 0x818d6bbc + .word 0x2ff + .word 0x800003bf + .word 0x2ff + .word 0x80000030 + .word 0x1e09cdc + .word 0x80000030 + .word 0x1e0b59c + .word 0x80000030 + .word 0x1e0841c + .word 0x80000030 + .word 0x1f394ec + .word 0x80000030 + .word 0x1f6adac + .word 0x80000030 + .word 0x1f07c2c + .word 0x81e89b7d + .word 0x2ff + .word 0x81e8b37d + .word 0x2ff + .word 0x40000733 + .word 0x2ff + .word 0x81e8837d + .word 0x2ff + .word 0x40000757 + .word 0x2ff + .word 0x800a57f2 + .word 0x2ff + .word 0x81e88b7d + .word 0x1ee7c2c + .word 0x81e8a37d + .word 0x1f194ec + .word 0x81e8737d + .word 0x1f4adac + .word 0x50074752 + .word 0x2ff + .word 0x80000030 + .word 0x308344 + .word 0x80000030 + .word 0x10e7347 + .word 0x818d6bbc + .word 0x2ff + .word 0x800003bf + .word 0x2ff + .word 0x80000030 + .word 0x1e09cdc + .word 0x80000030 + .word 0x1e0b59c + .word 0x80000030 + .word 0x1e0841c + .word 0x80000030 + .word 0x1f38ce8 + .word 0x80000030 + .word 0x1f6a5a8 + .word 0x80000030 + .word 0x1f07428 + .word 0x800a5072 + .word 0x2ff + .word 0x81e89b7d + .word 0x2ff + .word 0x81e8b37d + .word 0x2ff + .word 0x40000744 + .word 0x2ff + .word 0x81e8837d + .word 0x2ff + .word 0x80000030 + .word 0x1ef742c + .word 0x80000030 + .word 0x1f28cec + .word 0x80000030 + .word 0x1f5a5ac + .word 0x80000030 + .word 0x308344 + .word 0x80000030 + .word 0x10f7b47 + .word 0x818d6bbc + .word 0x2ff + .word 0x800003bf + .word 0x2ff + .word 0x80000030 + .word 0x1e09cdc + .word 0x80000030 + .word 0x1e0b59c + .word 0x80000030 + .word 0x1e0841c + .word 0x80000030 + .word 0x1f394e8 + .word 0x80000030 + .word 0x1f6ada8 + .word 0x80000030 + .word 0x1f07c28 + .word 0x81e89b7d + .word 0x2ff + .word 0x81e8b37d + .word 0x2ff + .word 0x40000733 + .word 0x2ff + .word 0x81e8837d + .word 0x2ff \ No newline at end of file diff --git a/test/decompiler/vu_reference/tfrag-result.txt b/test/decompiler/vu_reference/tfrag-result.txt new file mode 100644 index 0000000000..5971441ad5 --- /dev/null +++ b/test/decompiler/vu_reference/tfrag-result.txt @@ -0,0 +1,2008 @@ + b L14 | nop + nop | nop + b L13 | nop + xtop vi14 | nop + b L4 | nop + xtop vi14 | nop + b L5 | nop + xtop vi14 | nop + b L6 | nop + xtop vi14 | nop + b L7 | nop + xtop vi14 | nop + b L8 | nop + xtop vi14 | nop + b L9 | nop + xtop vi14 | nop + b L10 | nop + xtop vi14 | nop + b L11 | nop + xtop vi14 | nop + b L12 | nop + xtop vi14 | nop + b L13 | nop + xtop vi14 | nop + b L13 | nop + xtop vi14 | nop +L4: + b L2 | nop + nop | nop +L5: + b L3 | nop + nop | nop +L6: + bal vi15, L15 | nop + nop | nop + bal vi15, L29 | nop + nop | nop + bal vi15, L51 | nop + nop | nop + b L1 | nop + nop | nop +L7: + bal vi15, L15 | nop + nop | nop + bal vi15, L21 | nop + nop | nop + b L1 | nop + nop | nop +L8: + b L3 | nop + nop | nop +L9: + bal vi15, L15 | nop + nop | nop + bal vi15, L21 | nop + nop | nop + bal vi15, L28 | nop + nop | nop + bal vi15, L50 | nop + nop | nop + b L1 | nop + nop | nop +L10: + bal vi15, L16 | nop + nop | nop + bal vi15, L20 | nop + nop | nop + b L1 | nop + nop | nop +L11: + bal vi15, L16 | nop + nop | nop + bal vi15, L20 | nop + nop | nop + b L87 | nop + nop | nop +L12: + b L3 | nop + nop | nop +L13: + lq.xyzw vf04, 664(vi00) | nop :e + nop | nop +L14: + iaddiu vi14, vi00, 0x2a0 | nop + iaddiu vi01, vi00, 0x350 | nop + mfir.x vf03, vi14 | nop + mfir.y vf03, vi01 | nop + mfir.z vf03, vi14 | nop + mfir.w vf03, vi01 | nop :e + lq.xyzw vf04, 664(vi00) | nop +L15: + ilw.z vi05, 1(vi14) | nop + b L17 | nop + ilwr.x vi02, vi14 | nop +L16: + ilwr.z vi02, vi14 | nop + ilwr.x vi04, vi14 | nop + ilw.z vi05, 1(vi14) | nop + b L17 | nop + iadd vi02, vi02, vi04 | nop + ilwr.z vi02, vi14 | nop + ilw.x vi01, 1(vi14) | nop + ilwr.x vi04, vi14 | nop + ilw.z vi05, 1(vi14) | nop + iadd vi02, vi02, vi04 | nop + iadd vi02, vi02, vi01 | nop +L17: + iadd vi05, vi05, vi14 | nop + lqi.xyzw vf12, vi05 | nop + lqi.xyzw vf16, vi05 | nop + lq.xyzw vf01, 656(vi00) | nop + lq.xyzw vf02, 657(vi00) | nop + lq.xyzw vf05, 5(vi14) | itof0.xyzw vf12, vf12 + lq.xyzw vf08, 8(vi14) | itof0.xyzw vf16, vf16 + lqi.xyzw vf13, vi05 | nop + lqi.xyzw vf17, vi05 | nop + nop | nop + lq.xyzw vf06, 6(vi14) | mulaw.xyzw ACC, vf08, vf00 + lq.xyzw vf07, 7(vi14) | itof0.xyzw vf13, vf13 + nop | itof0.xyzw vf17, vf17 + lqi.xyzw vf14, vi05 | maddax.xyzw ACC, vf05, vf12 + lqi.xyzw vf18, vi05 | madday.xyzw ACC, vf06, vf12 + nop | maddz.xyzw vf12, vf07, vf12 + nop | mulaw.xyzw ACC, vf08, vf00 + nop | itof0.xyzw vf14, vf14 + iaddi vi06, vi05, -0x6 | itof0.xyzw vf18, vf18 +L18: + lqi.xyzw vf15, vi05 | maddax.xyzw ACC, vf05, vf13 + lqi.xyzw vf19, vi05 | madday.xyzw ACC, vf06, vf13 + iaddi vi02, vi02, -0x1 | maddz.xyzw vf13, vf07, vf13 + sqi.xyzw vf12, vi06 | mulaw.xyzw ACC, vf08, vf00 + ibeq vi00, vi02, L19 | itof0.xyzw vf15, vf15 + sqi.xyzw vf16, vi06 | itof0.xyzw vf19, vf19 + lqi.xyzw vf12, vi05 | maddax.xyzw ACC, vf05, vf14 + lqi.xyzw vf16, vi05 | madday.xyzw ACC, vf06, vf14 + iaddi vi02, vi02, -0x1 | maddz.xyzw vf14, vf07, vf14 + sqi.xyzw vf13, vi06 | mulaw.xyzw ACC, vf08, vf00 + ibeq vi00, vi02, L19 | itof0.xyzw vf12, vf12 + sqi.xyzw vf17, vi06 | itof0.xyzw vf16, vf16 + lqi.xyzw vf13, vi05 | maddax.xyzw ACC, vf05, vf15 + lqi.xyzw vf17, vi05 | madday.xyzw ACC, vf06, vf15 + iaddi vi02, vi02, -0x1 | maddz.xyzw vf15, vf07, vf15 + sqi.xyzw vf14, vi06 | mulaw.xyzw ACC, vf08, vf00 + ibeq vi00, vi02, L19 | itof0.xyzw vf13, vf13 + sqi.xyzw vf18, vi06 | itof0.xyzw vf17, vf17 + lqi.xyzw vf14, vi05 | maddax.xyzw ACC, vf05, vf12 + lqi.xyzw vf18, vi05 | madday.xyzw ACC, vf06, vf12 + iaddi vi02, vi02, -0x1 | maddz.xyzw vf12, vf07, vf12 + sqi.xyzw vf15, vi06 | mulaw.xyzw ACC, vf08, vf00 + ibne vi00, vi02, L18 | itof0.xyzw vf14, vf14 + sqi.xyzw vf19, vi06 | itof0.xyzw vf18, vf18 +L19: + jr vi15 | nop + nop | nop +L20: + ilw.x vi02, 1(vi14) | nop + ilw.w vi03, 2(vi14) | nop + ilw.x vi04, 4(vi14) | nop + lq.xyzw vf01, 656(vi00) | nop + ibeq vi00, vi02, L24 | nop + lq.xyzw vf02, 657(vi00) | nop + lq.xy vf18, 667(vi00) | nop + b L22 | nop + lq.xy vf19, 669(vi00) | nop +L21: + ilwr.z vi02, vi14 | nop + ilw.y vi03, 2(vi14) | nop + ilw.z vi04, 3(vi14) | nop + lq.xyzw vf01, 656(vi00) | nop + ibeq vi00, vi02, L24 | nop + lq.xyzw vf02, 657(vi00) | nop + lq.xy vf18, 666(vi00) | nop + lq.xy vf19, 668(vi00) | nop +L22: + lq.xyzw vf05, 5(vi14) | nop + lq.xyzw vf06, 6(vi14) | nop + lq.xyzw vf07, 7(vi14) | nop + ibne vi00, vi14, L25 | nop + lq.xyzw vf08, 8(vi14) | nop + ilwr.w vi05, vi03 | nop + iaddi vi03, vi03, 0x1 | nop + ilwr.x vi07, vi04 | nop + nop | nop + lq.xyzw vf27, 0(vi05) | nop + nop | nop + ilwr.w vi08, vi07 | nop + nop | nop + nop | itof0.xyzw vf12, vf27 + ilw.z vi09, -1(vi03) | nop + lq.xyzw vf20, 0(vi08) | nop + nop | mulaw.xyzw ACC, vf08, vf00 + lq.xyzw vf14, 1(vi05) | maddax.xyzw ACC, vf05, vf12 + lq.xyzw vf22, 0(vi09) | madday.xyzw ACC, vf06, vf12 + nop | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf23, 1(vi09) | nop + ilwr.w vi06, vi03 | nop + iaddi vi03, vi03, 0x1 | mulaw.xy ACC, vf19, vf00 + ilwr.y vi07, vi04 | maddw.xy vf16, vf18, vf12 + lq.xyzw vf21, 1(vi08) | nop + lq.xyzw vf27, 0(vi06) | nop + nop | add.xyzw vf25, vf20, vf22 + ilwr.w vi08, vi07 | mini.xy vf16, vf16, vf02 + nop | add.xyzw vf26, vf21, vf23 + nop | itof0.xyzw vf13, vf27 +L23: + ilw.z vi09, -1(vi03) | itof0.xyzw vf14, vf14 + lq.xyzw vf20, 0(vi08) | maxx.xy vf16, vf16, vf00 + ior vi10, vi05, vi00 | mulaw.xyzw ACC, vf08, vf00 + lq.xyzw vf15, 1(vi06) | maddax.xyzw ACC, vf05, vf13 + lq.xyzw vf22, 0(vi09) | madday.xyzw ACC, vf06, vf13 + nop | maddz.xyzw vf13, vf07, vf13 + lq.xyzw vf23, 1(vi09) | mulax.xyzw ACC, vf25, vf16 + ilwr.w vi05, vi03 | maddy.xyzw vf12, vf12, vf16 + iaddi vi02, vi02, -0x1 | mulaw.xy ACC, vf19, vf00 + ilwr.z vi07, vi04 | maddw.xy vf17, vf18, vf13 + lq.xyzw vf21, 1(vi08) | mulax.xyzw ACC, vf26, vf16 + lq.xyzw vf27, 0(vi05) | maddy.xyzw vf14, vf14, vf16 + sq.xyzw vf12, 0(vi10) | add.xyzw vf25, vf20, vf22 + ilwr.w vi08, vi07 | mini.xy vf17, vf17, vf02 + ibeq vi00, vi02, L24 | add.xyzw vf26, vf21, vf23 + sq.xyzw vf14, 1(vi10) | itof0.xyzw vf12, vf27 + ilwr.z vi09, vi03 | itof0.xyzw vf15, vf15 + lq.xyzw vf20, 0(vi08) | maxx.xy vf17, vf17, vf00 + ior vi10, vi06, vi00 | mulaw.xyzw ACC, vf08, vf00 + lq.xyzw vf14, 1(vi05) | maddax.xyzw ACC, vf05, vf12 + lq.xyzw vf22, 0(vi09) | madday.xyzw ACC, vf06, vf12 + iaddi vi02, vi02, -0x1 | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf23, 1(vi09) | mulax.xyzw ACC, vf25, vf17 + ilw.w vi06, 1(vi03) | maddy.xyzw vf13, vf13, vf17 + iaddi vi03, vi03, 0x2 | mulaw.xy ACC, vf19, vf00 + ilwr.w vi07, vi04 | maddw.xy vf16, vf18, vf12 + lq.xyzw vf21, 1(vi08) | mulax.xyzw ACC, vf26, vf17 + lq.xyzw vf27, 0(vi06) | maddy.xyzw vf15, vf15, vf17 + sq.xyzw vf13, 0(vi10) | add.xyzw vf25, vf20, vf22 + ilwr.w vi08, vi07 | mini.xy vf16, vf16, vf02 + ibeq vi00, vi02, L24 | add.xyzw vf26, vf21, vf23 + sq.xyzw vf15, 1(vi10) | itof0.xyzw vf13, vf27 + ilw.z vi09, -1(vi03) | itof0.xyzw vf14, vf14 + lq.xyzw vf20, 0(vi08) | maxx.xy vf16, vf16, vf00 + ior vi10, vi05, vi00 | mulaw.xyzw ACC, vf08, vf00 + lq.xyzw vf15, 1(vi06) | maddax.xyzw ACC, vf05, vf13 + lq.xyzw vf22, 0(vi09) | madday.xyzw ACC, vf06, vf13 + iaddi vi04, vi04, 0x1 | maddz.xyzw vf13, vf07, vf13 + lq.xyzw vf23, 1(vi09) | mulax.xyzw ACC, vf25, vf16 + ilwr.w vi05, vi03 | maddy.xyzw vf12, vf12, vf16 + iaddi vi02, vi02, -0x1 | mulaw.xy ACC, vf19, vf00 + ilwr.x vi07, vi04 | maddw.xy vf17, vf18, vf13 + lq.xyzw vf21, 1(vi08) | mulax.xyzw ACC, vf26, vf16 + lq.xyzw vf27, 0(vi05) | maddy.xyzw vf14, vf14, vf16 + sq.xyzw vf12, 0(vi10) | add.xyzw vf25, vf20, vf22 + ilwr.w vi08, vi07 | mini.xy vf17, vf17, vf02 + ibeq vi00, vi02, L24 | add.xyzw vf26, vf21, vf23 + sq.xyzw vf14, 1(vi10) | itof0.xyzw vf12, vf27 + ilwr.z vi09, vi03 | itof0.xyzw vf15, vf15 + lq.xyzw vf20, 0(vi08) | maxx.xy vf17, vf17, vf00 + ior vi10, vi06, vi00 | mulaw.xyzw ACC, vf08, vf00 + lq.xyzw vf14, 1(vi05) | maddax.xyzw ACC, vf05, vf12 + lq.xyzw vf22, 0(vi09) | madday.xyzw ACC, vf06, vf12 + iaddi vi02, vi02, -0x1 | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf23, 1(vi09) | mulax.xyzw ACC, vf25, vf17 + ilw.w vi06, 1(vi03) | maddy.xyzw vf13, vf13, vf17 + iaddi vi03, vi03, 0x2 | mulaw.xy ACC, vf19, vf00 + ilwr.y vi07, vi04 | maddw.xy vf16, vf18, vf12 + lq.xyzw vf21, 1(vi08) | mulax.xyzw ACC, vf26, vf17 + lq.xyzw vf27, 0(vi06) | maddy.xyzw vf15, vf15, vf17 + sq.xyzw vf13, 0(vi10) | add.xyzw vf25, vf20, vf22 + ilwr.w vi08, vi07 | mini.xy vf16, vf16, vf02 + ibne vi00, vi02, L23 | add.xyzw vf26, vf21, vf23 + sq.xyzw vf15, 1(vi10) | itof0.xyzw vf13, vf27 +L24: + jr vi15 | nop + nop | nop +L25: + ilw.w vi05, 328(vi03) | nop + iaddi vi03, vi03, 0x1 | nop + ilw.x vi07, 328(vi04) | nop + nop | nop + lq.xyzw vf27, 328(vi05) | nop + nop | nop + ilw.w vi08, 328(vi07) | nop + nop | nop + nop | itof0.xyzw vf12, vf27 + ilw.z vi09, 327(vi03) | nop + lq.xyzw vf20, 328(vi08) | nop + nop | mulaw.xyzw ACC, vf08, vf00 + lq.xyzw vf14, 329(vi05) | maddax.xyzw ACC, vf05, vf12 + lq.xyzw vf22, 328(vi09) | madday.xyzw ACC, vf06, vf12 + nop | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf23, 329(vi09) | nop + ilw.w vi06, 328(vi03) | nop + iaddi vi03, vi03, 0x1 | mulaw.xy ACC, vf19, vf00 + ilw.y vi07, 328(vi04) | maddw.xy vf16, vf18, vf12 + lq.xyzw vf21, 329(vi08) | nop + lq.xyzw vf27, 328(vi06) | nop + nop | add.xyzw vf25, vf20, vf22 + ilw.w vi08, 328(vi07) | mini.xy vf16, vf16, vf02 + nop | add.xyzw vf26, vf21, vf23 + nop | itof0.xyzw vf13, vf27 +L26: + ilw.z vi09, 327(vi03) | itof0.xyzw vf14, vf14 + lq.xyzw vf20, 328(vi08) | maxx.xy vf16, vf16, vf00 + ior vi10, vi05, vi00 | mulaw.xyzw ACC, vf08, vf00 + lq.xyzw vf15, 329(vi06) | maddax.xyzw ACC, vf05, vf13 + lq.xyzw vf22, 328(vi09) | madday.xyzw ACC, vf06, vf13 + nop | maddz.xyzw vf13, vf07, vf13 + lq.xyzw vf23, 329(vi09) | mulax.xyzw ACC, vf25, vf16 + ilw.w vi05, 328(vi03) | maddy.xyzw vf12, vf12, vf16 + iaddi vi02, vi02, -0x1 | mulaw.xy ACC, vf19, vf00 + ilw.z vi07, 328(vi04) | maddw.xy vf17, vf18, vf13 + lq.xyzw vf21, 329(vi08) | mulax.xyzw ACC, vf26, vf16 + lq.xyzw vf27, 328(vi05) | maddy.xyzw vf14, vf14, vf16 + sq.xyzw vf12, 328(vi10) | add.xyzw vf25, vf20, vf22 + ilw.w vi08, 328(vi07) | mini.xy vf17, vf17, vf02 + ibeq vi00, vi02, L27 | add.xyzw vf26, vf21, vf23 + sq.xyzw vf14, 329(vi10) | itof0.xyzw vf12, vf27 + ilw.z vi09, 328(vi03) | itof0.xyzw vf15, vf15 + lq.xyzw vf20, 328(vi08) | maxx.xy vf17, vf17, vf00 + ior vi10, vi06, vi00 | mulaw.xyzw ACC, vf08, vf00 + lq.xyzw vf14, 329(vi05) | maddax.xyzw ACC, vf05, vf12 + lq.xyzw vf22, 328(vi09) | madday.xyzw ACC, vf06, vf12 + iaddi vi02, vi02, -0x1 | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf23, 329(vi09) | mulax.xyzw ACC, vf25, vf17 + ilw.w vi06, 329(vi03) | maddy.xyzw vf13, vf13, vf17 + iaddi vi03, vi03, 0x2 | mulaw.xy ACC, vf19, vf00 + ilw.w vi07, 328(vi04) | maddw.xy vf16, vf18, vf12 + lq.xyzw vf21, 329(vi08) | mulax.xyzw ACC, vf26, vf17 + lq.xyzw vf27, 328(vi06) | maddy.xyzw vf15, vf15, vf17 + sq.xyzw vf13, 328(vi10) | add.xyzw vf25, vf20, vf22 + ilw.w vi08, 328(vi07) | mini.xy vf16, vf16, vf02 + ibeq vi00, vi02, L27 | add.xyzw vf26, vf21, vf23 + sq.xyzw vf15, 329(vi10) | itof0.xyzw vf13, vf27 + ilw.z vi09, 327(vi03) | itof0.xyzw vf14, vf14 + lq.xyzw vf20, 328(vi08) | maxx.xy vf16, vf16, vf00 + ior vi10, vi05, vi00 | mulaw.xyzw ACC, vf08, vf00 + lq.xyzw vf15, 329(vi06) | maddax.xyzw ACC, vf05, vf13 + lq.xyzw vf22, 328(vi09) | madday.xyzw ACC, vf06, vf13 + iaddi vi04, vi04, 0x1 | maddz.xyzw vf13, vf07, vf13 + lq.xyzw vf23, 329(vi09) | mulax.xyzw ACC, vf25, vf16 + ilw.w vi05, 328(vi03) | maddy.xyzw vf12, vf12, vf16 + iaddi vi02, vi02, -0x1 | mulaw.xy ACC, vf19, vf00 + ilw.x vi07, 328(vi04) | maddw.xy vf17, vf18, vf13 + lq.xyzw vf21, 329(vi08) | mulax.xyzw ACC, vf26, vf16 + lq.xyzw vf27, 328(vi05) | maddy.xyzw vf14, vf14, vf16 + sq.xyzw vf12, 328(vi10) | add.xyzw vf25, vf20, vf22 + ilw.w vi08, 328(vi07) | mini.xy vf17, vf17, vf02 + ibeq vi00, vi02, L27 | add.xyzw vf26, vf21, vf23 + sq.xyzw vf14, 329(vi10) | itof0.xyzw vf12, vf27 + ilw.z vi09, 328(vi03) | itof0.xyzw vf15, vf15 + lq.xyzw vf20, 328(vi08) | maxx.xy vf17, vf17, vf00 + ior vi10, vi06, vi00 | mulaw.xyzw ACC, vf08, vf00 + lq.xyzw vf14, 329(vi05) | maddax.xyzw ACC, vf05, vf12 + lq.xyzw vf22, 328(vi09) | madday.xyzw ACC, vf06, vf12 + iaddi vi02, vi02, -0x1 | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf23, 329(vi09) | mulax.xyzw ACC, vf25, vf17 + ilw.w vi06, 329(vi03) | maddy.xyzw vf13, vf13, vf17 + iaddi vi03, vi03, 0x2 | mulaw.xy ACC, vf19, vf00 + ilw.y vi07, 328(vi04) | maddw.xy vf16, vf18, vf12 + lq.xyzw vf21, 329(vi08) | mulax.xyzw ACC, vf26, vf17 + lq.xyzw vf27, 328(vi06) | maddy.xyzw vf15, vf15, vf17 + sq.xyzw vf13, 328(vi10) | add.xyzw vf25, vf20, vf22 + ilw.w vi08, 328(vi07) | mini.xy vf16, vf16, vf02 + ibne vi00, vi02, L26 | add.xyzw vf26, vf21, vf23 + sq.xyzw vf15, 329(vi10) | itof0.xyzw vf13, vf27 +L27: + jr vi15 | nop + nop | nop +L28: + ilw.x vi02, 1(vi14) | nop + ilw.w vi03, 2(vi14) | nop + ilw.x vi04, 4(vi14) | nop + lq.xyzw vf01, 656(vi00) | nop + ibeq vi00, vi02, L35 | nop + lq.xyzw vf02, 657(vi00) | nop + lq.xy vf18, 667(vi00) | nop + lq.xy vf19, 669(vi00) | nop + b L30 | nop + lq.w vf26, 667(vi00) | nop +L29: + ilwr.z vi02, vi14 | nop + ilw.y vi03, 2(vi14) | nop + ilw.z vi04, 3(vi14) | nop + lq.xyzw vf01, 656(vi00) | nop + ibeq vi00, vi02, L35 | nop + lq.xyzw vf02, 657(vi00) | nop + lq.xy vf18, 666(vi00) | nop + lq.xy vf19, 668(vi00) | nop + lq.w vf26, 666(vi00) | nop +L30: + lq.xyzw vf05, 5(vi14) | nop + lq.xyzw vf06, 6(vi14) | nop + lq.xyzw vf07, 7(vi14) | nop + ibne vi00, vi14, L40 | nop + lq.xyzw vf08, 8(vi14) | nop + ilwr.w vi05, vi03 | nop + nop | nop + nop | nop + nop | nop + lq.xyzw vf12, 0(vi05) | nop + ilwr.z vi10, vi03 | nop + ilwr.x vi07, vi04 | nop + nop | nop + nop | itof0.xyzw vf12, vf12 + nop | nop + nop | mulaw.xyzw ACC, vf08, vf00 + ilwr.w vi09, vi07 | nop + lq.xyzw vf22, 0(vi10) | maddax.xyzw ACC, vf05, vf12 + nop | madday.xyzw ACC, vf06, vf12 + lq.xyzw vf23, 1(vi10) | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf20, 0(vi09) | nop + lq.xyzw vf21, 1(vi09) | nop + lq.xyzw vf14, 1(vi05) | nop + ilw.w vi06, 1(vi03) | nop + nop | mulaw.xy ACC, vf19, vf00 + nop | maddw.xy vf16, vf18, vf12 + nop | add.xyzw vf24, vf20, vf22 + nop | add.xyzw vf25, vf21, vf23 +L31: + lq.xyzw vf13, 0(vi06) | nop + ilw.z vi10, 1(vi03) | subw.w vf00, vf20, vf26 + ilwr.y vi08, vi04 | subw.w vf00, vf22, vf26 + ior vi11, vi05, vi00 | mini.xy vf16, vf16, vf02 + iaddi vi02, vi02, -0x1 | itof0.xyzw vf13, vf13 + fsand vi01, 0x2 | itof0.xyzw vf14, vf14 + fsand vi12, 0x2 | mulaw.xyzw ACC, vf08, vf00 + ilwr.w vi09, vi08 | maxx.xy vf16, vf16, vf00 + lq.xyzw vf22, 0(vi10) | maddax.xyzw ACC, vf05, vf13 + iand vi01, vi01, vi12 | madday.xyzw ACC, vf06, vf13 + lq.xyzw vf23, 1(vi10) | maddz.xyzw vf13, vf07, vf13 + lq.xyzw vf20, 0(vi09) | mulax.xyzw ACC, vf24, vf16 + lq.xyzw vf21, 1(vi09) | maddy.xyzw vf12, vf12, vf16 + ibne vi00, vi01, L36 | mulax.xyzw ACC, vf25, vf16 + lq.xyzw vf15, 1(vi06) | maddy.xyzw vf14, vf14, vf16 + ilw.w vi05, 2(vi03) | nop + nop | mulaw.xy ACC, vf19, vf00 + sq.xyzw vf12, 0(vi11) | maddw.xy vf17, vf18, vf13 + ibeq vi00, vi02, L35 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf14, 1(vi11) | add.xyzw vf25, vf21, vf23 +L32: + lq.xyzw vf12, 0(vi05) | nop + ilw.z vi10, 2(vi03) | subw.w vf00, vf20, vf26 + ilwr.z vi07, vi04 | subw.w vf00, vf22, vf26 + ior vi11, vi06, vi00 | mini.xy vf17, vf17, vf02 + iaddi vi02, vi02, -0x1 | itof0.xyzw vf12, vf12 + fsand vi01, 0x2 | itof0.xyzw vf15, vf15 + fsand vi12, 0x2 | mulaw.xyzw ACC, vf08, vf00 + ilwr.w vi09, vi07 | maxx.xy vf17, vf17, vf00 + lq.xyzw vf22, 0(vi10) | maddax.xyzw ACC, vf05, vf12 + iand vi01, vi01, vi12 | madday.xyzw ACC, vf06, vf12 + lq.xyzw vf23, 1(vi10) | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf20, 0(vi09) | mulax.xyzw ACC, vf24, vf17 + lq.xyzw vf21, 1(vi09) | maddy.xyzw vf13, vf13, vf17 + ibne vi00, vi01, L37 | mulax.xyzw ACC, vf25, vf17 + lq.xyzw vf14, 1(vi05) | maddy.xyzw vf15, vf15, vf17 + ilw.w vi06, 3(vi03) | nop + nop | mulaw.xy ACC, vf19, vf00 + sq.xyzw vf13, 0(vi11) | maddw.xy vf16, vf18, vf12 + ibeq vi00, vi02, L35 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf15, 1(vi11) | add.xyzw vf25, vf21, vf23 +L33: + lq.xyzw vf13, 0(vi06) | nop + ilw.z vi10, 3(vi03) | subw.w vf00, vf20, vf26 + ilwr.w vi08, vi04 | subw.w vf00, vf22, vf26 + ior vi11, vi05, vi00 | mini.xy vf16, vf16, vf02 + iaddi vi02, vi02, -0x1 | itof0.xyzw vf13, vf13 + fsand vi01, 0x2 | itof0.xyzw vf14, vf14 + fsand vi12, 0x2 | mulaw.xyzw ACC, vf08, vf00 + ilwr.w vi09, vi08 | maxx.xy vf16, vf16, vf00 + lq.xyzw vf22, 0(vi10) | maddax.xyzw ACC, vf05, vf13 + iand vi01, vi01, vi12 | madday.xyzw ACC, vf06, vf13 + lq.xyzw vf23, 1(vi10) | maddz.xyzw vf13, vf07, vf13 + lq.xyzw vf20, 0(vi09) | mulax.xyzw ACC, vf24, vf16 + lq.xyzw vf21, 1(vi09) | maddy.xyzw vf12, vf12, vf16 + ibne vi00, vi01, L38 | mulax.xyzw ACC, vf25, vf16 + lq.xyzw vf15, 1(vi06) | maddy.xyzw vf14, vf14, vf16 + ilw.w vi05, 4(vi03) | nop + iaddi vi04, vi04, 0x1 | mulaw.xy ACC, vf19, vf00 + sq.xyzw vf12, 0(vi11) | maddw.xy vf17, vf18, vf13 + ibeq vi00, vi02, L35 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf14, 1(vi11) | add.xyzw vf25, vf21, vf23 +L34: + lq.xyzw vf12, 0(vi05) | nop + ilw.z vi10, 4(vi03) | subw.w vf00, vf20, vf26 + ilwr.x vi07, vi04 | subw.w vf00, vf22, vf26 + ior vi11, vi06, vi00 | mini.xy vf17, vf17, vf02 + iaddi vi02, vi02, -0x1 | itof0.xyzw vf12, vf12 + fsand vi01, 0x2 | itof0.xyzw vf15, vf15 + fsand vi12, 0x2 | mulaw.xyzw ACC, vf08, vf00 + ilwr.w vi09, vi07 | maxx.xy vf17, vf17, vf00 + lq.xyzw vf22, 0(vi10) | maddax.xyzw ACC, vf05, vf12 + iand vi01, vi01, vi12 | madday.xyzw ACC, vf06, vf12 + lq.xyzw vf23, 1(vi10) | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf20, 0(vi09) | mulax.xyzw ACC, vf24, vf17 + lq.xyzw vf21, 1(vi09) | maddy.xyzw vf13, vf13, vf17 + ibne vi00, vi01, L39 | mulax.xyzw ACC, vf25, vf17 + lq.xyzw vf14, 1(vi05) | maddy.xyzw vf15, vf15, vf17 + ilw.w vi06, 5(vi03) | nop + iaddi vi03, vi03, 0x4 | mulaw.xy ACC, vf19, vf00 + sq.xyzw vf13, 0(vi11) | maddw.xy vf16, vf18, vf12 + ibne vi00, vi02, L31 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf15, 1(vi11) | add.xyzw vf25, vf21, vf23 +L35: + jr vi15 | nop + nop | nop +L36: + lq.xyzw vf27, 0(vi07) | nop + ilw.w vi05, 2(vi03) | mulaw.xy ACC, vf19, vf00 + nop | maddw.xy vf17, vf18, vf13 + ibne vi00, vi02, L32 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf27, 0(vi03) | add.xyzw vf25, vf21, vf23 + jr vi15 | nop + nop | nop +L37: + lq.xyzw vf27, 0(vi08) | nop + ilw.w vi06, 3(vi03) | mulaw.xy ACC, vf19, vf00 + nop | maddw.xy vf16, vf18, vf12 + ibne vi00, vi02, L33 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf27, 1(vi03) | add.xyzw vf25, vf21, vf23 + jr vi15 | nop + nop | nop +L38: + lq.xyzw vf27, 0(vi07) | nop + ilw.w vi05, 4(vi03) | mulaw.xy ACC, vf19, vf00 + iaddi vi04, vi04, 0x1 | maddw.xy vf17, vf18, vf13 + ibne vi00, vi02, L34 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf27, 2(vi03) | add.xyzw vf25, vf21, vf23 + jr vi15 | nop + nop | nop +L39: + lq.xyzw vf27, 0(vi08) | nop + ilw.w vi06, 5(vi03) | mulaw.xy ACC, vf19, vf00 + iaddi vi03, vi03, 0x4 | maddw.xy vf16, vf18, vf12 + ibne vi00, vi02, L31 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf27, -1(vi03) | add.xyzw vf25, vf21, vf23 + jr vi15 | nop + nop | nop +L40: + ilw.w vi05, 328(vi03) | nop + nop | nop + nop | nop + nop | nop + lq.xyzw vf12, 328(vi05) | nop + ilw.z vi10, 328(vi03) | nop + ilw.x vi07, 328(vi04) | nop + nop | nop + nop | itof0.xyzw vf12, vf12 + nop | nop + nop | mulaw.xyzw ACC, vf08, vf00 + ilw.w vi09, 328(vi07) | nop + lq.xyzw vf22, 328(vi10) | maddax.xyzw ACC, vf05, vf12 + nop | madday.xyzw ACC, vf06, vf12 + lq.xyzw vf23, 329(vi10) | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf20, 328(vi09) | nop + lq.xyzw vf21, 329(vi09) | nop + lq.xyzw vf14, 329(vi05) | nop + ilw.w vi06, 329(vi03) | nop + nop | mulaw.xy ACC, vf19, vf00 + nop | maddw.xy vf16, vf18, vf12 + nop | add.xyzw vf24, vf20, vf22 + nop | add.xyzw vf25, vf21, vf23 +L41: + lq.xyzw vf13, 328(vi06) | nop + ilw.z vi10, 329(vi03) | subw.w vf00, vf20, vf26 + ilw.y vi08, 328(vi04) | subw.w vf00, vf22, vf26 + ior vi11, vi05, vi00 | mini.xy vf16, vf16, vf02 + iaddi vi02, vi02, -0x1 | itof0.xyzw vf13, vf13 + fsand vi01, 0x2 | itof0.xyzw vf14, vf14 + fsand vi12, 0x2 | mulaw.xyzw ACC, vf08, vf00 + ilw.w vi09, 328(vi08) | maxx.xy vf16, vf16, vf00 + lq.xyzw vf22, 328(vi10) | maddax.xyzw ACC, vf05, vf13 + iand vi01, vi01, vi12 | madday.xyzw ACC, vf06, vf13 + lq.xyzw vf23, 329(vi10) | maddz.xyzw vf13, vf07, vf13 + lq.xyzw vf20, 328(vi09) | mulax.xyzw ACC, vf24, vf16 + lq.xyzw vf21, 329(vi09) | maddy.xyzw vf12, vf12, vf16 + ibne vi00, vi01, L46 | mulax.xyzw ACC, vf25, vf16 + lq.xyzw vf15, 329(vi06) | maddy.xyzw vf14, vf14, vf16 + ilw.w vi05, 330(vi03) | nop + nop | mulaw.xy ACC, vf19, vf00 + sq.xyzw vf12, 328(vi11) | maddw.xy vf17, vf18, vf13 + ibeq vi00, vi02, L45 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf14, 329(vi11) | add.xyzw vf25, vf21, vf23 +L42: + lq.xyzw vf12, 328(vi05) | nop + ilw.z vi10, 330(vi03) | subw.w vf00, vf20, vf26 + ilw.z vi07, 328(vi04) | subw.w vf00, vf22, vf26 + ior vi11, vi06, vi00 | mini.xy vf17, vf17, vf02 + iaddi vi02, vi02, -0x1 | itof0.xyzw vf12, vf12 + fsand vi01, 0x2 | itof0.xyzw vf15, vf15 + fsand vi12, 0x2 | mulaw.xyzw ACC, vf08, vf00 + ilw.w vi09, 328(vi07) | maxx.xy vf17, vf17, vf00 + lq.xyzw vf22, 328(vi10) | maddax.xyzw ACC, vf05, vf12 + iand vi01, vi01, vi12 | madday.xyzw ACC, vf06, vf12 + lq.xyzw vf23, 329(vi10) | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf20, 328(vi09) | mulax.xyzw ACC, vf24, vf17 + lq.xyzw vf21, 329(vi09) | maddy.xyzw vf13, vf13, vf17 + ibne vi00, vi01, L47 | mulax.xyzw ACC, vf25, vf17 + lq.xyzw vf14, 329(vi05) | maddy.xyzw vf15, vf15, vf17 + ilw.w vi06, 331(vi03) | nop + nop | mulaw.xy ACC, vf19, vf00 + sq.xyzw vf13, 328(vi11) | maddw.xy vf16, vf18, vf12 + ibeq vi00, vi02, L45 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf15, 329(vi11) | add.xyzw vf25, vf21, vf23 +L43: + lq.xyzw vf13, 328(vi06) | nop + ilw.z vi10, 331(vi03) | subw.w vf00, vf20, vf26 + ilw.w vi08, 328(vi04) | subw.w vf00, vf22, vf26 + ior vi11, vi05, vi00 | mini.xy vf16, vf16, vf02 + iaddi vi02, vi02, -0x1 | itof0.xyzw vf13, vf13 + fsand vi01, 0x2 | itof0.xyzw vf14, vf14 + fsand vi12, 0x2 | mulaw.xyzw ACC, vf08, vf00 + ilw.w vi09, 328(vi08) | maxx.xy vf16, vf16, vf00 + lq.xyzw vf22, 328(vi10) | maddax.xyzw ACC, vf05, vf13 + iand vi01, vi01, vi12 | madday.xyzw ACC, vf06, vf13 + lq.xyzw vf23, 329(vi10) | maddz.xyzw vf13, vf07, vf13 + lq.xyzw vf20, 328(vi09) | mulax.xyzw ACC, vf24, vf16 + lq.xyzw vf21, 329(vi09) | maddy.xyzw vf12, vf12, vf16 + ibne vi00, vi01, L48 | mulax.xyzw ACC, vf25, vf16 + lq.xyzw vf15, 329(vi06) | maddy.xyzw vf14, vf14, vf16 + ilw.w vi05, 332(vi03) | nop + iaddi vi04, vi04, 0x1 | mulaw.xy ACC, vf19, vf00 + sq.xyzw vf12, 328(vi11) | maddw.xy vf17, vf18, vf13 + ibeq vi00, vi02, L45 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf14, 329(vi11) | add.xyzw vf25, vf21, vf23 +L44: + lq.xyzw vf12, 328(vi05) | nop + ilw.z vi10, 332(vi03) | subw.w vf00, vf20, vf26 + ilw.x vi07, 328(vi04) | subw.w vf00, vf22, vf26 + ior vi11, vi06, vi00 | mini.xy vf17, vf17, vf02 + iaddi vi02, vi02, -0x1 | itof0.xyzw vf12, vf12 + fsand vi01, 0x2 | itof0.xyzw vf15, vf15 + fsand vi12, 0x2 | mulaw.xyzw ACC, vf08, vf00 + ilw.w vi09, 328(vi07) | maxx.xy vf17, vf17, vf00 + lq.xyzw vf22, 328(vi10) | maddax.xyzw ACC, vf05, vf12 + iand vi01, vi01, vi12 | madday.xyzw ACC, vf06, vf12 + lq.xyzw vf23, 329(vi10) | maddz.xyzw vf12, vf07, vf12 + lq.xyzw vf20, 328(vi09) | mulax.xyzw ACC, vf24, vf17 + lq.xyzw vf21, 329(vi09) | maddy.xyzw vf13, vf13, vf17 + ibne vi00, vi01, L49 | mulax.xyzw ACC, vf25, vf17 + lq.xyzw vf14, 329(vi05) | maddy.xyzw vf15, vf15, vf17 + ilw.w vi06, 333(vi03) | nop + iaddi vi03, vi03, 0x4 | mulaw.xy ACC, vf19, vf00 + sq.xyzw vf13, 328(vi11) | maddw.xy vf16, vf18, vf12 + ibne vi00, vi02, L41 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf15, 329(vi11) | add.xyzw vf25, vf21, vf23 +L45: + jr vi15 | nop + nop | nop +L46: + lq.xyzw vf27, 328(vi07) | nop + ilw.w vi05, 330(vi03) | mulaw.xy ACC, vf19, vf00 + nop | maddw.xy vf17, vf18, vf13 + ibne vi00, vi02, L42 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf27, 328(vi03) | add.xyzw vf25, vf21, vf23 + jr vi15 | nop + nop | nop +L47: + lq.xyzw vf27, 328(vi08) | nop + ilw.w vi06, 331(vi03) | mulaw.xy ACC, vf19, vf00 + nop | maddw.xy vf16, vf18, vf12 + ibne vi00, vi02, L43 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf27, 329(vi03) | add.xyzw vf25, vf21, vf23 + jr vi15 | nop + nop | nop +L48: + lq.xyzw vf27, 328(vi07) | nop + ilw.w vi05, 332(vi03) | mulaw.xy ACC, vf19, vf00 + iaddi vi04, vi04, 0x1 | maddw.xy vf17, vf18, vf13 + ibne vi00, vi02, L44 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf27, 330(vi03) | add.xyzw vf25, vf21, vf23 + jr vi15 | nop + nop | nop +L49: + lq.xyzw vf27, 328(vi08) | nop + ilw.w vi06, 333(vi03) | mulaw.xy ACC, vf19, vf00 + iaddi vi03, vi03, 0x4 | maddw.xy vf16, vf18, vf12 + ibne vi00, vi02, L41 | add.xyzw vf24, vf20, vf22 + sq.xyzw vf27, 327(vi03) | add.xyzw vf25, vf21, vf23 + jr vi15 | nop + nop | nop +L50: + ilw.y vi11, 1(vi14) | nop + ilw.x vi02, 3(vi14) | nop + ilw.y vi03, 4(vi14) | nop + b L52 | nop + lq.w vf10, 667(vi00) | nop +L51: + ilwr.w vi11, vi14 | nop + ilw.z vi02, 2(vi14) | nop + ilw.w vi03, 3(vi14) | nop + lq.w vf10, 666(vi00) | nop +L52: + ibeq vi00, vi11, L62 | nop + iadd vi02, vi02, vi14 | nop + iadd vi10, vi02, vi11 | nop + ibne vi00, vi14, L67 | nop + iaddi vi10, vi10, 0x3 | nop + lqi.xyzw vf06, vi02 | nop + ilwr.x vi04, vi03 | nop + nop | nop + nop | nop + mtir vi09, vf06.z | nop + lqi.xyzw vf06, vi02 | nop + ilwr.w vi08, vi04 | nop + ilwr.y vi05, vi03 | nop + lq.xyzw vf08, 0(vi09) | nop + nop | nop + nop | nop + lq.xyzw vf07, 0(vi08) | nop + nop | nop + mtir vi09, vf06.z | nop +L53: + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L54: + ilwr.w vi08, vi05 | nop + ilwr.z vi06, vi03 | nop + lq.xyzw vf08, 0(vi09) | nop + fsand vi01, 0x2 | subw.w vf00, vf07, vf10 + ibne vi00, vi01, L63 | nop + lq.xyzw vf07, 0(vi08) | nop +L55: + ibeq vi10, vi02, L62 | nop + mtir vi09, vf06.z | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L56: + ilwr.w vi08, vi06 | nop + ilwr.w vi07, vi03 | nop + lq.xyzw vf08, 0(vi09) | nop + fsand vi01, 0x2 | subw.w vf00, vf07, vf10 + ibne vi00, vi01, L64 | nop + lq.xyzw vf07, 0(vi08) | nop +L57: + ibeq vi10, vi02, L62 | nop + mtir vi09, vf06.z | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L58: + ilwr.w vi08, vi07 | nop + ilw.x vi04, 1(vi03) | nop + lq.xyzw vf08, 0(vi09) | nop + fsand vi01, 0x2 | subw.w vf00, vf07, vf10 + ibne vi00, vi01, L65 | nop + lq.xyzw vf07, 0(vi08) | nop +L59: + ibeq vi10, vi02, L62 | nop + mtir vi09, vf06.z | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L60: + ilwr.w vi08, vi04 | nop + ilw.y vi05, 1(vi03) | nop + lq.xyzw vf08, 0(vi09) | nop + fsand vi01, 0x2 | subw.w vf00, vf07, vf10 + ibne vi00, vi01, L66 | nop + lq.xyzw vf07, 0(vi08) | nop +L61: + iaddi vi03, vi03, 0x1 | nop + ibne vi10, vi02, L53 | nop + mtir vi09, vf06.z | nop +L62: + jr vi15 | nop + nop | nop +L63: + lq.xyzw vf09, 0(vi04) | nop + fsand vi01, 0x2 | nop + ibeq vi00, vi01, L55 | nop + mtir vi09, vf06.z | nop + ibeq vi10, vi02, L62 | nop + sq.xyzw vf09, -3(vi02) | nop + b L56 | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L64: + lq.xyzw vf09, 0(vi05) | nop + fsand vi01, 0x2 | nop + ibeq vi00, vi01, L57 | nop + mtir vi09, vf06.z | nop + ibeq vi10, vi02, L62 | nop + sq.xyzw vf09, -3(vi02) | nop + b L58 | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L65: + lq.xyzw vf09, 0(vi06) | nop + fsand vi01, 0x2 | nop + ibeq vi00, vi01, L59 | nop + mtir vi09, vf06.z | nop + ibeq vi10, vi02, L62 | nop + sq.xyzw vf09, -3(vi02) | nop + b L60 | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L66: + lq.xyzw vf09, 0(vi07) | nop + fsand vi01, 0x2 | nop + ibeq vi00, vi01, L61 | nop + mtir vi09, vf06.z | nop + ibeq vi10, vi02, L62 | nop + sq.xyzw vf09, -3(vi02) | nop + iaddi vi03, vi03, 0x1 | nop + b L54 | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L67: + lqi.xyzw vf06, vi02 | nop + ilw.x vi04, 328(vi03) | nop + nop | nop + nop | nop + mtir vi09, vf06.z | nop + lqi.xyzw vf06, vi02 | nop + ilw.w vi08, 328(vi04) | nop + ilw.y vi05, 328(vi03) | nop + lq.xyzw vf08, 328(vi09) | nop + nop | nop + nop | nop + lq.xyzw vf07, 328(vi08) | nop + nop | nop + mtir vi09, vf06.z | nop +L68: + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L69: + ilw.w vi08, 328(vi05) | nop + ilw.z vi06, 328(vi03) | nop + lq.xyzw vf08, 328(vi09) | nop + fsand vi01, 0x2 | subw.w vf00, vf07, vf10 + ibne vi00, vi01, L78 | nop + lq.xyzw vf07, 328(vi08) | nop +L70: + ibeq vi10, vi02, L77 | nop + mtir vi09, vf06.z | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L71: + ilw.w vi08, 328(vi06) | nop + ilw.w vi07, 328(vi03) | nop + lq.xyzw vf08, 328(vi09) | nop + fsand vi01, 0x2 | subw.w vf00, vf07, vf10 + ibne vi00, vi01, L79 | nop + lq.xyzw vf07, 328(vi08) | nop +L72: + ibeq vi10, vi02, L77 | nop + mtir vi09, vf06.z | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L73: + ilw.w vi08, 328(vi07) | nop + ilw.x vi04, 329(vi03) | nop + lq.xyzw vf08, 328(vi09) | nop + fsand vi01, 0x2 | subw.w vf00, vf07, vf10 + ibne vi00, vi01, L80 | nop + lq.xyzw vf07, 328(vi08) | nop +L74: + ibeq vi10, vi02, L77 | nop + mtir vi09, vf06.z | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L75: + ilw.w vi08, 328(vi04) | nop + ilw.y vi05, 329(vi03) | nop + lq.xyzw vf08, 328(vi09) | nop + fsand vi01, 0x2 | subw.w vf00, vf07, vf10 + ibne vi00, vi01, L81 | nop + lq.xyzw vf07, 328(vi08) | nop +L76: + iaddi vi03, vi03, 0x1 | nop + ibne vi10, vi02, L68 | nop + mtir vi09, vf06.z | nop +L77: + jr vi15 | nop + nop | nop +L78: + lq.xyzw vf09, 328(vi04) | nop + fsand vi01, 0x2 | nop + ibeq vi00, vi01, L70 | nop + mtir vi09, vf06.z | nop + ibeq vi10, vi02, L77 | nop + sq.xyzw vf09, -3(vi02) | nop + b L71 | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L79: + lq.xyzw vf09, 328(vi05) | nop + fsand vi01, 0x2 | nop + ibeq vi00, vi01, L72 | nop + mtir vi09, vf06.z | nop + ibeq vi10, vi02, L77 | nop + sq.xyzw vf09, -3(vi02) | nop + b L73 | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L80: + lq.xyzw vf09, 328(vi06) | nop + fsand vi01, 0x2 | nop + ibeq vi00, vi01, L74 | nop + mtir vi09, vf06.z | nop + ibeq vi10, vi02, L77 | nop + sq.xyzw vf09, -3(vi02) | nop + b L75 | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L81: + lq.xyzw vf09, 328(vi07) | nop + fsand vi01, 0x2 | nop + ibeq vi00, vi01, L76 | nop + mtir vi09, vf06.z | nop + ibeq vi10, vi02, L77 | nop + sq.xyzw vf09, -3(vi02) | nop + iaddi vi03, vi03, 0x1 | nop + b L69 | nop + lqi.xyzw vf06, vi02 | subw.w vf00, vf08, vf10 +L82: + fcset 0x0 | nop + iblez vi12, L83 | nop + iaddi vi09, vi09, 0x1 | nop + ior vi10, vi06, vi00 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L83: + ilw.y vi01, -1(vi09) | nop + ilw.z vi13, -1(vi09) | nop + ibeq vi00, vi12, L86 | nop + ilwr.x vi07, vi10 | nop + ibltz vi01, L84 | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + sqi.xyzw vf05, vi06 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + sqi.xyzw vf31, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + ior vi10, vi06, vi00 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L84: + mtir vi01, vf03.x | nop + mtir vi06, vf03.y | nop + mr32.xyzw vf03, vf03 | nop + iadd vi07, vi07, vi11 | nop + ibgez vi13, L85 | nop + iswr.x vi07, vi10 | nop + xgkick vi01 | nop + ior vi10, vi06, vi00 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L85: + iadd vi13, vi13, vi08 | nop + xgkick vi01 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + sqi.xyzw vf05, vi06 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + sqi.xyzw vf31, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + ior vi10, vi06, vi00 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L86: + mtir vi01, vf03.x | nop + mr32.xyzw vf03, vf03 | nop + iadd vi07, vi07, vi11 | nop + iswr.x vi07, vi10 | nop + xgkick vi01 | nop + lq.xyzw vf04, 664(vi00) | nop :e + nop | nop +L87: + ilw.w vi08, 4(vi14) | addw.z vf25, vf00, vf00 + lq.xyzw vf06, 658(vi00) | nop + lq.xyzw vf07, 661(vi00) | nop + lq.xyzw vf05, 660(vi00) | nop + iadd vi08, vi08, vi14 | nop + lq.w vf29, 1(vi08) | nop + fcset 0x0 | nop + ilw.z vi09, 4(vi14) | nop + ilw.y vi03, 3(vi14) | nop + lq.xyzw vf08, 662(vi00) | nop + iadd vi09, vi09, vi14 | addw.z vf02, vf00, vf29 + ibne vi00, vi14, L96 | nop + mtir vi06, vf03.x | addw.z vf25, vf25, vf29 + ilwr.x vi12, vi09 | nop + ilwr.z vi13, vi09 | nop + iaddiu vi11, vi00, 0x4000 | nop + iaddiu vi11, vi11, 0x4000 | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + ilwr.x vi02, vi03 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + ilwr.w vi04, vi02 | nop + lq.xy vf25, 0(vi02) | nop + sqi.xyzw vf05, vi06 | nop + sqi.xyzw vf29, vi06 | nop + lq.xyzw vf09, 0(vi04) | nop + lq.xyzw vf17, 1(vi04) | nop + sqi.xyzw vf30, vi06 | nop + sqi.xyzw vf31, vi06 | nop + ilwr.y vi02, vi03 | nop + lqi.xyzw vf29, vi13 | subz.xyz vf21, vf25, vf02 + lqi.xyzw vf30, vi13 | nop + div Q, vf01.x, vf09.w | nop + ilwr.w vi04, vi02 | nop + lq.xy vf25, 0(vi02) | mul.xyzw vf13, vf09, vf08 + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + lq.xyzw vf10, 0(vi04) | nop + lq.xyzw vf18, 1(vi04) | nop + iadd vi01, vi12, vi12 | mul.xyz vf09, vf09, Q + iadd vi01, vi01, vi12 | mul.xyz vf21, vf21, Q + ilwr.z vi02, vi03 | nop + iadd vi05, vi06, vi01 | subz.xyz vf22, vf25, vf02 + ior vi10, vi06, vi00 | nop + div Q, vf01.x, vf10.w | nop + ilwr.w vi04, vi02 | add.xyzw vf09, vf09, vf07 + lq.xy vf25, 0(vi02) | mul.xyzw vf14, vf10, vf08 + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | mul.xyzw vf17, vf17, vf04 + lq.xyzw vf11, 0(vi04) | miniz.w vf09, vf09, vf01 + lq.xyzw vf19, 1(vi04) | clipw.xyz vf13, vf13 + iaddi vi09, vi09, 0x1 | mul.xyz vf10, vf10, Q + ilwr.x vi12, vi09 | mul.xyz vf22, vf22, Q +L88: + ilwr.w vi02, vi03 | maxy.w vf09, vf09, vf01 + fcand vi01, 0x3ffff | subz.xyz vf23, vf25, vf02 + ibeq vi00, vi01, L89 | nop + div Q, vf01.x, vf11.w | ftoi0.xyzw vf17, vf17 + nop | addw.w vf09, vf09, vf01 +L89: + ilwr.w vi04, vi02 | add.xyzw vf10, vf10, vf07 + lq.xy vf25, 0(vi02) | mul.xyzw vf15, vf11, vf08 + sqi.xyzw vf21, vi06 | nop + sqi.xyzw vf17, vi06 | ftoi4.xyzw vf09, vf09 + iaddi vi03, vi03, 0x1 | mul.xyzw vf18, vf18, vf04 + lq.xyzw vf12, 0(vi04) | miniz.w vf10, vf10, vf01 + lq.xyzw vf20, 1(vi04) | clipw.xyz vf14, vf14 + ibeq vi05, vi06, L93 | mul.xyz vf11, vf11, Q + sqi.xyzw vf09, vi06 | mul.xyz vf23, vf23, Q + ilwr.x vi02, vi03 | maxy.w vf10, vf10, vf01 + fcand vi01, 0x3ffff | subz.xyz vf24, vf25, vf02 + ibeq vi00, vi01, L90 | nop + div Q, vf01.x, vf12.w | ftoi0.xyzw vf18, vf18 + nop | addw.w vf10, vf10, vf01 +L90: + ilwr.w vi04, vi02 | add.xyzw vf11, vf11, vf07 + lq.xy vf25, 0(vi02) | mul.xyzw vf16, vf12, vf08 + sqi.xyzw vf22, vi06 | mul.xyzw vf19, vf19, vf04 + sqi.xyzw vf18, vi06 | ftoi4.xyzw vf10, vf10 + lq.xyzw vf09, 0(vi04) | miniz.w vf11, vf11, vf01 + lq.xyzw vf17, 1(vi04) | clipw.xyz vf15, vf15 + ibeq vi05, vi06, L94 | mul.xyz vf12, vf12, Q + sqi.xyzw vf10, vi06 | mul.xyz vf24, vf24, Q + ilwr.y vi02, vi03 | maxy.w vf11, vf11, vf01 + fcand vi01, 0x3ffff | subz.xyz vf21, vf25, vf02 + ibeq vi00, vi01, L91 | ftoi0.xyzw vf19, vf19 + div Q, vf01.x, vf09.w | nop + nop | addw.w vf11, vf11, vf01 +L91: + ilwr.w vi04, vi02 | add.xyzw vf12, vf12, vf07 + lq.xy vf25, 0(vi02) | mul.xyzw vf13, vf09, vf08 + sqi.xyzw vf23, vi06 | mul.xyzw vf20, vf20, vf04 + sqi.xyzw vf19, vi06 | ftoi4.xyzw vf11, vf11 + lq.xyzw vf10, 0(vi04) | miniz.w vf12, vf12, vf01 + lq.xyzw vf18, 1(vi04) | clipw.xyz vf16, vf16 + ibeq vi05, vi06, L95 | mul.xyz vf09, vf09, Q + sqi.xyzw vf11, vi06 | mul.xyz vf21, vf21, Q + ilwr.z vi02, vi03 | maxy.w vf12, vf12, vf01 + fcand vi01, 0x3ffff | subz.xyz vf22, vf25, vf02 + ibeq vi00, vi01, L92 | ftoi0.xyzw vf20, vf20 + div Q, vf01.x, vf10.w | nop + nop | addw.w vf12, vf12, vf01 +L92: + ilwr.w vi04, vi02 | add.xyzw vf09, vf09, vf07 + lq.xy vf25, 0(vi02) | mul.xyzw vf14, vf10, vf08 + sqi.xyzw vf24, vi06 | mul.xyzw vf17, vf17, vf04 + sqi.xyzw vf20, vi06 | ftoi4.xyzw vf12, vf12 + lq.xyzw vf11, 0(vi04) | miniz.w vf09, vf09, vf01 + lq.xyzw vf19, 1(vi04) | clipw.xyz vf13, vf13 + ibne vi05, vi06, L88 | mul.xyz vf10, vf10, Q + sqi.xyzw vf12, vi06 | mul.xyz vf22, vf22, Q + b L82 | nop + iaddiu vi15, vi00, 0x3b9 | nop +L93: + b L82 | nop + iaddiu vi15, vi00, 0x3c7 | nop +L94: + b L82 | nop + iaddiu vi15, vi00, 0x3d4 | nop +L95: + b L82 | nop + iaddiu vi15, vi00, 0x3e1 | nop +L96: + ilwr.x vi12, vi09 | nop + ilwr.z vi13, vi09 | nop + iaddiu vi11, vi00, 0x4000 | nop + iaddiu vi11, vi11, 0x4000 | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + ilw.x vi02, 328(vi03) | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + ilw.w vi04, 328(vi02) | nop + lq.xy vf25, 328(vi02) | nop + sqi.xyzw vf05, vi06 | nop + sqi.xyzw vf29, vi06 | nop + lq.xyzw vf09, 328(vi04) | nop + lq.xyzw vf17, 329(vi04) | nop + sqi.xyzw vf30, vi06 | nop + sqi.xyzw vf31, vi06 | nop + ilw.y vi02, 328(vi03) | nop + lqi.xyzw vf29, vi13 | subz.xyz vf21, vf25, vf02 + lqi.xyzw vf30, vi13 | nop + div Q, vf01.x, vf09.w | nop + ilw.w vi04, 328(vi02) | nop + lq.xy vf25, 328(vi02) | mul.xyzw vf13, vf09, vf08 + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + lq.xyzw vf10, 328(vi04) | nop + lq.xyzw vf18, 329(vi04) | nop + iadd vi01, vi12, vi12 | mul.xyz vf09, vf09, Q + iadd vi01, vi01, vi12 | mul.xyz vf21, vf21, Q + ilw.z vi02, 328(vi03) | nop + iadd vi05, vi06, vi01 | subz.xyz vf22, vf25, vf02 + ior vi10, vi06, vi00 | nop + div Q, vf01.x, vf10.w | nop + ilw.w vi04, 328(vi02) | add.xyzw vf09, vf09, vf07 + lq.xy vf25, 328(vi02) | mul.xyzw vf14, vf10, vf08 + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | mul.xyzw vf17, vf17, vf04 + lq.xyzw vf11, 328(vi04) | miniz.w vf09, vf09, vf01 + lq.xyzw vf19, 329(vi04) | clipw.xyz vf13, vf13 + iaddi vi09, vi09, 0x1 | mul.xyz vf10, vf10, Q + ilwr.x vi12, vi09 | mul.xyz vf22, vf22, Q +L97: + ilw.w vi02, 328(vi03) | maxy.w vf09, vf09, vf01 + fcand vi01, 0x3ffff | subz.xyz vf23, vf25, vf02 + ibeq vi00, vi01, L98 | nop + div Q, vf01.x, vf11.w | ftoi0.xyzw vf17, vf17 + nop | addw.w vf09, vf09, vf01 +L98: + ilw.w vi04, 328(vi02) | add.xyzw vf10, vf10, vf07 + lq.xy vf25, 328(vi02) | mul.xyzw vf15, vf11, vf08 + sqi.xyzw vf21, vi06 | nop + sqi.xyzw vf17, vi06 | ftoi4.xyzw vf09, vf09 + iaddi vi03, vi03, 0x1 | mul.xyzw vf18, vf18, vf04 + lq.xyzw vf12, 328(vi04) | miniz.w vf10, vf10, vf01 + lq.xyzw vf20, 329(vi04) | clipw.xyz vf14, vf14 + ibeq vi05, vi06, L102 | mul.xyz vf11, vf11, Q + sqi.xyzw vf09, vi06 | mul.xyz vf23, vf23, Q + ilw.x vi02, 328(vi03) | maxy.w vf10, vf10, vf01 + fcand vi01, 0x3ffff | subz.xyz vf24, vf25, vf02 + ibeq vi00, vi01, L99 | nop + div Q, vf01.x, vf12.w | ftoi0.xyzw vf18, vf18 + nop | addw.w vf10, vf10, vf01 +L99: + ilw.w vi04, 328(vi02) | add.xyzw vf11, vf11, vf07 + lq.xy vf25, 328(vi02) | mul.xyzw vf16, vf12, vf08 + sqi.xyzw vf22, vi06 | mul.xyzw vf19, vf19, vf04 + sqi.xyzw vf18, vi06 | ftoi4.xyzw vf10, vf10 + lq.xyzw vf09, 328(vi04) | miniz.w vf11, vf11, vf01 + lq.xyzw vf17, 329(vi04) | clipw.xyz vf15, vf15 + ibeq vi05, vi06, L103 | mul.xyz vf12, vf12, Q + sqi.xyzw vf10, vi06 | mul.xyz vf24, vf24, Q + ilw.y vi02, 328(vi03) | maxy.w vf11, vf11, vf01 + fcand vi01, 0x3ffff | subz.xyz vf21, vf25, vf02 + ibeq vi00, vi01, L100 | ftoi0.xyzw vf19, vf19 + div Q, vf01.x, vf09.w | nop + nop | addw.w vf11, vf11, vf01 +L100: + ilw.w vi04, 328(vi02) | add.xyzw vf12, vf12, vf07 + lq.xy vf25, 328(vi02) | mul.xyzw vf13, vf09, vf08 + sqi.xyzw vf23, vi06 | mul.xyzw vf20, vf20, vf04 + sqi.xyzw vf19, vi06 | ftoi4.xyzw vf11, vf11 + lq.xyzw vf10, 328(vi04) | miniz.w vf12, vf12, vf01 + lq.xyzw vf18, 329(vi04) | clipw.xyz vf16, vf16 + ibeq vi05, vi06, L104 | mul.xyz vf09, vf09, Q + sqi.xyzw vf11, vi06 | mul.xyz vf21, vf21, Q + ilw.z vi02, 328(vi03) | maxy.w vf12, vf12, vf01 + fcand vi01, 0x3ffff | subz.xyz vf22, vf25, vf02 + ibeq vi00, vi01, L101 | ftoi0.xyzw vf20, vf20 + div Q, vf01.x, vf10.w | nop + nop | addw.w vf12, vf12, vf01 +L101: + ilw.w vi04, 328(vi02) | add.xyzw vf09, vf09, vf07 + lq.xy vf25, 328(vi02) | mul.xyzw vf14, vf10, vf08 + sqi.xyzw vf24, vi06 | mul.xyzw vf17, vf17, vf04 + sqi.xyzw vf20, vi06 | ftoi4.xyzw vf12, vf12 + lq.xyzw vf11, 328(vi04) | miniz.w vf09, vf09, vf01 + lq.xyzw vf19, 329(vi04) | clipw.xyz vf13, vf13 + ibne vi05, vi06, L97 | mul.xyz vf10, vf10, Q + sqi.xyzw vf12, vi06 | mul.xyz vf22, vf22, Q + b L82 | nop + iaddiu vi15, vi00, 0x420 | nop +L102: + b L82 | nop + iaddiu vi15, vi00, 0x42e | nop +L103: + b L82 | nop + iaddiu vi15, vi00, 0x43b | nop +L104: + b L82 | nop + iaddiu vi15, vi00, 0x448 | nop + lq.xyzw vf05, 660(vi00) | addw.z vf13, vf00, vf00 + lq.xyzw vf06, 658(vi00) | nop + ilw.w vi08, 4(vi14) | nop + ilw.z vi09, 4(vi14) | nop + ilw.y vi03, 3(vi14) | addz.z vf13, vf13, vf02 + lq.xyzw vf07, 661(vi00) | nop + iadd vi08, vi08, vi14 | nop + iadd vi09, vi09, vi14 | nop + ibne vi00, vi14, L109 | nop + mtir vi06, vf03.x | nop + ilwr.x vi12, vi09 | nop + ilwr.z vi13, vi09 | nop + iaddiu vi11, vi00, 0x4000 | nop + iaddiu vi11, vi11, 0x4000 | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + sqi.xyzw vf05, vi06 | nop + sqi.xyzw vf29, vi06 | nop + ilwr.x vi02, vi03 | nop + sqi.xyzw vf30, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + ilwr.w vi04, vi02 | nop + lq.xy vf13, 0(vi02) | nop + ilwr.y vi02, vi03 | nop + sqi.xyzw vf31, vi06 | nop + lq.xyzw vf09, 0(vi04) | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + lq.xyzw vf14, 1(vi04) | nop + div Q, vf01.x, vf09.w | subz.xyz vf18, vf13, vf02 + iadd vi01, vi12, vi12 | nop + ilwr.w vi04, vi02 | nop + lq.xy vf13, 0(vi02) | nop + ilwr.z vi02, vi03 | mul.xyzw vf14, vf14, vf04 + iadd vi01, vi01, vi12 | nop + lq.xyzw vf10, 0(vi04) | nop + iadd vi05, vi06, vi01 | mul.xyz vf09, vf09, Q + ior vi10, vi06, vi00 | mul.xyz vf18, vf18, Q + lq.xyzw vf15, 1(vi04) | nop + div Q, vf01.x, vf10.w | subz.xyz vf19, vf13, vf02 + sqi.xyzw vf06, vi06 | add.xyzw vf09, vf09, vf07 + ilwr.w vi04, vi02 | ftoi0.xyzw vf14, vf14 + lq.xy vf13, 0(vi02) | nop + ilwr.w vi02, vi03 | mul.xyzw vf15, vf15, vf04 + isw.x vi12, -1(vi06) | maxy.w vf09, vf09, vf01 + lq.xyzw vf11, 0(vi04) | nop + iaddi vi09, vi09, 0x1 | mul.xyz vf10, vf10, Q + ilwr.x vi12, vi09 | mul.xyz vf19, vf19, Q +L105: + iaddi vi03, vi03, 0x1 | nop + lq.xyzw vf16, 1(vi04) | miniz.w vf09, vf09, vf01 + div Q, vf01.x, vf11.w | subz.xyz vf20, vf13, vf02 + sqi.xyzw vf18, vi06 | add.xyzw vf10, vf10, vf07 + ilwr.w vi04, vi02 | ftoi0.xyzw vf15, vf15 + lq.xy vf13, 0(vi02) | ftoi4.xyzw vf09, vf09 + ilwr.x vi02, vi03 | mul.xyzw vf16, vf16, vf04 + sqi.xyzw vf14, vi06 | maxy.w vf10, vf10, vf01 + lq.xyzw vf12, 0(vi04) | nop + ibeq vi05, vi06, L106 | mul.xyz vf11, vf11, Q + sqi.xyzw vf09, vi06 | mul.xyz vf20, vf20, Q + lq.xyzw vf17, 1(vi04) | miniz.w vf10, vf10, vf01 + div Q, vf01.x, vf12.w | subz.xyz vf21, vf13, vf02 + sqi.xyzw vf19, vi06 | add.xyzw vf11, vf11, vf07 + ilwr.w vi04, vi02 | ftoi0.xyzw vf16, vf16 + lq.xy vf13, 0(vi02) | ftoi4.xyzw vf10, vf10 + ilwr.y vi02, vi03 | mul.xyzw vf17, vf17, vf04 + sqi.xyzw vf15, vi06 | maxy.w vf11, vf11, vf01 + lq.xyzw vf09, 0(vi04) | nop + ibeq vi05, vi06, L107 | mul.xyz vf12, vf12, Q + sqi.xyzw vf10, vi06 | mul.xyz vf21, vf21, Q + lq.xyzw vf14, 1(vi04) | miniz.w vf11, vf11, vf01 + div Q, vf01.x, vf09.w | subz.xyz vf18, vf13, vf02 + sqi.xyzw vf20, vi06 | add.xyzw vf12, vf12, vf07 + ilwr.w vi04, vi02 | ftoi0.xyzw vf17, vf17 + lq.xy vf13, 0(vi02) | ftoi4.xyzw vf11, vf11 + ilwr.z vi02, vi03 | mul.xyzw vf14, vf14, vf04 + sqi.xyzw vf16, vi06 | maxy.w vf12, vf12, vf01 + lq.xyzw vf10, 0(vi04) | nop + ibeq vi05, vi06, L108 | mul.xyz vf09, vf09, Q + sqi.xyzw vf11, vi06 | mul.xyz vf18, vf18, Q + lq.xyzw vf15, 1(vi04) | miniz.w vf12, vf12, vf01 + div Q, vf01.x, vf10.w | subz.xyz vf19, vf13, vf02 + sqi.xyzw vf21, vi06 | add.xyzw vf09, vf09, vf07 + ilwr.w vi04, vi02 | ftoi0.xyzw vf14, vf14 + lq.xy vf13, 0(vi02) | ftoi4.xyzw vf12, vf12 + ilwr.w vi02, vi03 | mul.xyzw vf15, vf15, vf04 + sqi.xyzw vf17, vi06 | maxy.w vf09, vf09, vf01 + lq.xyzw vf11, 0(vi04) | nop + ibne vi05, vi06, L105 | mul.xyz vf10, vf10, Q + sqi.xyzw vf12, vi06 | mul.xyz vf19, vf19, Q + b L82 | nop + iaddiu vi15, vi00, 0x491 | nop +L106: + b L82 | nop + iaddiu vi15, vi00, 0x49c | nop +L107: + b L82 | nop + iaddiu vi15, vi00, 0x4a6 | nop +L108: + b L82 | nop + iaddiu vi15, vi00, 0x4b0 | nop +L109: + ilwr.x vi12, vi09 | nop + ilwr.z vi13, vi09 | nop + iaddiu vi11, vi00, 0x4000 | nop + iaddiu vi11, vi11, 0x4000 | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + sqi.xyzw vf05, vi06 | nop + sqi.xyzw vf29, vi06 | nop + ilw.x vi02, 328(vi03) | nop + sqi.xyzw vf30, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + ilw.w vi04, 328(vi02) | nop + lq.xy vf13, 328(vi02) | nop + ilw.y vi02, 328(vi03) | nop + sqi.xyzw vf31, vi06 | nop + lq.xyzw vf09, 328(vi04) | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + lq.xyzw vf14, 329(vi04) | nop + div Q, vf01.x, vf09.w | subz.xyz vf18, vf13, vf02 + iadd vi01, vi12, vi12 | nop + ilw.w vi04, 328(vi02) | nop + lq.xy vf13, 328(vi02) | nop + ilw.z vi02, 328(vi03) | mul.xyzw vf14, vf14, vf04 + iadd vi01, vi01, vi12 | nop + lq.xyzw vf10, 328(vi04) | nop + iadd vi05, vi06, vi01 | mul.xyz vf09, vf09, Q + ior vi10, vi06, vi00 | mul.xyz vf18, vf18, Q + lq.xyzw vf15, 329(vi04) | nop + div Q, vf01.x, vf10.w | subz.xyz vf19, vf13, vf02 + sqi.xyzw vf06, vi06 | add.xyzw vf09, vf09, vf07 + ilw.w vi04, 328(vi02) | ftoi0.xyzw vf14, vf14 + lq.xy vf13, 328(vi02) | nop + ilw.w vi02, 328(vi03) | mul.xyzw vf15, vf15, vf04 + isw.x vi12, -1(vi06) | maxy.w vf09, vf09, vf01 + lq.xyzw vf11, 328(vi04) | nop + iaddi vi09, vi09, 0x1 | mul.xyz vf10, vf10, Q + ilwr.x vi12, vi09 | mul.xyz vf19, vf19, Q +L110: + iaddi vi03, vi03, 0x1 | nop + lq.xyzw vf16, 329(vi04) | miniz.w vf09, vf09, vf01 + div Q, vf01.x, vf11.w | subz.xyz vf20, vf13, vf02 + sqi.xyzw vf18, vi06 | add.xyzw vf10, vf10, vf07 + ilw.w vi04, 328(vi02) | ftoi0.xyzw vf15, vf15 + lq.xy vf13, 328(vi02) | ftoi4.xyzw vf09, vf09 + ilw.x vi02, 328(vi03) | mul.xyzw vf16, vf16, vf04 + sqi.xyzw vf14, vi06 | maxy.w vf10, vf10, vf01 + lq.xyzw vf12, 328(vi04) | nop + ibeq vi05, vi06, L111 | mul.xyz vf11, vf11, Q + sqi.xyzw vf09, vi06 | mul.xyz vf20, vf20, Q + lq.xyzw vf17, 329(vi04) | miniz.w vf10, vf10, vf01 + div Q, vf01.x, vf12.w | subz.xyz vf21, vf13, vf02 + sqi.xyzw vf19, vi06 | add.xyzw vf11, vf11, vf07 + ilw.w vi04, 328(vi02) | ftoi0.xyzw vf16, vf16 + lq.xy vf13, 328(vi02) | ftoi4.xyzw vf10, vf10 + ilw.y vi02, 328(vi03) | mul.xyzw vf17, vf17, vf04 + sqi.xyzw vf15, vi06 | maxy.w vf11, vf11, vf01 + lq.xyzw vf09, 328(vi04) | nop + ibeq vi05, vi06, L112 | mul.xyz vf12, vf12, Q + sqi.xyzw vf10, vi06 | mul.xyz vf21, vf21, Q + lq.xyzw vf14, 329(vi04) | miniz.w vf11, vf11, vf01 + div Q, vf01.x, vf09.w | subz.xyz vf18, vf13, vf02 + sqi.xyzw vf20, vi06 | add.xyzw vf12, vf12, vf07 + ilw.w vi04, 328(vi02) | ftoi0.xyzw vf17, vf17 + lq.xy vf13, 328(vi02) | ftoi4.xyzw vf11, vf11 + ilw.z vi02, 328(vi03) | mul.xyzw vf14, vf14, vf04 + sqi.xyzw vf16, vi06 | maxy.w vf12, vf12, vf01 + lq.xyzw vf10, 328(vi04) | nop + ibeq vi05, vi06, L113 | mul.xyz vf09, vf09, Q + sqi.xyzw vf11, vi06 | mul.xyz vf18, vf18, Q + lq.xyzw vf15, 329(vi04) | miniz.w vf12, vf12, vf01 + div Q, vf01.x, vf10.w | subz.xyz vf19, vf13, vf02 + sqi.xyzw vf21, vi06 | add.xyzw vf09, vf09, vf07 + ilw.w vi04, 328(vi02) | ftoi0.xyzw vf14, vf14 + lq.xy vf13, 328(vi02) | ftoi4.xyzw vf12, vf12 + ilw.w vi02, 328(vi03) | mul.xyzw vf15, vf15, vf04 + sqi.xyzw vf17, vi06 | maxy.w vf09, vf09, vf01 + lq.xyzw vf11, 328(vi04) | nop + ibne vi05, vi06, L110 | mul.xyz vf10, vf10, Q + sqi.xyzw vf12, vi06 | mul.xyz vf19, vf19, Q + b L82 | nop + iaddiu vi15, vi00, 0x4ec | nop +L111: + b L82 | nop + iaddiu vi15, vi00, 0x4f7 | nop +L112: + b L82 | nop + iaddiu vi15, vi00, 0x501 | nop +L113: + b L82 | nop + iaddiu vi15, vi00, 0x50b | nop + lq.xyzw vf05, 660(vi00) | nop + lq.xyzw vf06, 658(vi00) | nop + lq.xyzw vf25, 661(vi00) | nop + lq.xyzw vf01, 656(vi00) | nop + lq.xyzw vf02, 657(vi00) | nop + ilw.w vi08, 4(vi14) | nop + ilw.z vi09, 4(vi14) | nop + ilw.y vi03, 3(vi14) | nop + lq.xyzw vf07, 5(vi14) | nop + lq.xyzw vf08, 6(vi14) | nop + lq.xyzw vf09, 7(vi14) | nop + lq.xyzw vf10, 8(vi14) | nop + iadd vi08, vi08, vi14 | nop + iadd vi09, vi09, vi14 | nop + ibne vi00, vi14, L118 | nop + mtir vi06, vf03.x | nop + ilwr.x vi02, vi03 | maxw.xyzw vf24, vf00, vf00 + ilwr.x vi12, vi09 | nop + ilwr.z vi13, vi09 | nop + iaddiu vi11, vi00, 0x4000 | nop + lq.xyzw vf23, 0(vi02) | nop + iaddiu vi11, vi11, 0x4000 | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + mtir vi04, vf23.w | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + ilwr.y vi02, vi03 | nop + lq.xyzw vf11, 0(vi04) | nop + lq.xyzw vf15, 1(vi04) | nop + lqi.xyzw vf31, vi13 | subz.xy vf19, vf23, vf02 + lq.xyzw vf23, 0(vi02) | nop + sqi.xyzw vf05, vi06 | itof0.xyzw vf11, vf11 + sqi.xyzw vf29, vi06 | nop + lqi.xyzw vf29, vi13 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | nop + sqi.xyzw vf30, vi06 | nop + lqi.xyzw vf30, vi13 | maddax.xyzw ACC, vf07, vf11 + sqi.xyzw vf31, vi06 | madday.xyzw ACC, vf08, vf11 + sqi.xyzw vf29, vi06 | maddz.xyzw vf11, vf09, vf11 + ilwr.z vi02, vi03 | nop + lq.xyzw vf12, 0(vi04) | nop + lq.xyzw vf16, 1(vi04) | nop + div Q, vf01.x, vf11.w | subz.xy vf20, vf23, vf02 + lq.xyzw vf23, 0(vi02) | nop + sqi.xyzw vf30, vi06 | itof0.xyzw vf12, vf12 + move.z vf19, vf24 | nop + iadd vi01, vi12, vi12 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | nop + iadd vi01, vi01, vi12 | maddax.xyzw ACC, vf07, vf12 + iadd vi05, vi06, vi01 | madday.xyzw ACC, vf08, vf12 + ior vi10, vi06, vi00 | maddz.xyzw vf12, vf09, vf12 + ilwr.w vi02, vi03 | mul.xyz vf11, vf11, Q + lq.xyzw vf13, 0(vi04) | mul.xyz vf19, vf19, Q + lq.xyzw vf17, 1(vi04) | nop + div Q, vf01.x, vf12.w | subz.xy vf21, vf23, vf02 + lq.xyzw vf23, 0(vi02) | add.xyzw vf11, vf11, vf25 + iaddi vi03, vi03, 0x1 | itof0.xyzw vf13, vf13 + move.z vf20, vf24 | nop + sqi.xyzw vf06, vi06 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | maxy.w vf11, vf11, vf01 + isw.x vi12, -1(vi06) | maddax.xyzw ACC, vf07, vf13 + iaddi vi09, vi09, 0x1 | madday.xyzw ACC, vf08, vf13 + ilwr.x vi12, vi09 | maddz.xyzw vf13, vf09, vf13 +L114: + ilwr.x vi02, vi03 | mul.xyz vf12, vf12, Q + lq.xyzw vf14, 0(vi04) | mul.xyz vf20, vf20, Q + lq.xyzw vf18, 1(vi04) | miniz.w vf11, vf11, vf01 + div Q, vf01.x, vf13.w | subz.xy vf22, vf23, vf02 + lq.xyzw vf23, 0(vi02) | add.xyzw vf12, vf12, vf25 + nop | itof0.xyzw vf14, vf14 + sqi.xyzw vf19, vi06 | ftoi4.xyzw vf11, vf11 + sqi.xyzw vf15, vi06 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | maxy.w vf12, vf12, vf01 + move.z vf21, vf24 | maddax.xyzw ACC, vf07, vf14 + ibeq vi05, vi06, L115 | madday.xyzw ACC, vf08, vf14 + sqi.xyzw vf11, vi06 | maddz.xyzw vf14, vf09, vf14 + ilwr.y vi02, vi03 | mul.xyz vf13, vf13, Q + lq.xyzw vf11, 0(vi04) | mul.xyz vf21, vf21, Q + lq.xyzw vf15, 1(vi04) | miniz.w vf12, vf12, vf01 + div Q, vf01.x, vf14.w | subz.xy vf19, vf23, vf02 + lq.xyzw vf23, 0(vi02) | add.xyzw vf13, vf13, vf25 + nop | itof0.xyzw vf11, vf11 + sqi.xyzw vf20, vi06 | ftoi4.xyzw vf12, vf12 + sqi.xyzw vf16, vi06 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | maxy.w vf13, vf13, vf01 + move.z vf22, vf24 | maddax.xyzw ACC, vf07, vf11 + ibeq vi05, vi06, L116 | madday.xyzw ACC, vf08, vf11 + sqi.xyzw vf12, vi06 | maddz.xyzw vf11, vf09, vf11 + ilwr.z vi02, vi03 | mul.xyz vf14, vf14, Q + lq.xyzw vf12, 0(vi04) | mul.xyz vf22, vf22, Q + lq.xyzw vf16, 1(vi04) | miniz.w vf13, vf13, vf01 + div Q, vf01.x, vf11.w | subz.xy vf20, vf23, vf02 + lq.xyzw vf23, 0(vi02) | add.xyzw vf14, vf14, vf25 + nop | itof0.xyzw vf12, vf12 + sqi.xyzw vf21, vi06 | ftoi4.xyzw vf13, vf13 + sqi.xyzw vf17, vi06 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | maxy.w vf14, vf14, vf01 + move.z vf19, vf24 | maddax.xyzw ACC, vf07, vf12 + ibeq vi05, vi06, L117 | madday.xyzw ACC, vf08, vf12 + sqi.xyzw vf13, vi06 | maddz.xyzw vf12, vf09, vf12 + ilwr.w vi02, vi03 | mul.xyz vf11, vf11, Q + lq.xyzw vf13, 0(vi04) | mul.xyz vf19, vf19, Q + lq.xyzw vf17, 1(vi04) | miniz.w vf14, vf14, vf01 + div Q, vf01.x, vf12.w | subz.xy vf21, vf23, vf02 + lq.xyzw vf23, 0(vi02) | add.xyzw vf11, vf11, vf25 + iaddi vi03, vi03, 0x1 | itof0.xyzw vf13, vf13 + sqi.xyzw vf22, vi06 | ftoi4.xyzw vf14, vf14 + sqi.xyzw vf18, vi06 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | maxy.w vf11, vf11, vf01 + move.z vf20, vf24 | maddax.xyzw ACC, vf07, vf13 + ibne vi05, vi06, L114 | madday.xyzw ACC, vf08, vf13 + sqi.xyzw vf14, vi06 | maddz.xyzw vf13, vf09, vf13 + b L82 | nop + iaddiu vi15, vi00, 0x55d | nop +L115: + b L82 | nop + iaddiu vi15, vi00, 0x569 | nop +L116: + b L82 | nop + iaddiu vi15, vi00, 0x575 | nop +L117: + b L82 | nop + iaddiu vi15, vi00, 0x581 | nop +L118: + ilw.x vi02, 328(vi03) | maxw.xyzw vf24, vf00, vf00 + ilwr.x vi12, vi09 | nop + ilwr.z vi13, vi09 | nop + iaddiu vi11, vi00, 0x4000 | nop + lq.xyzw vf23, 328(vi02) | nop + iaddiu vi11, vi11, 0x4000 | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + mtir vi04, vf23.w | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + ilw.y vi02, 328(vi03) | nop + lq.xyzw vf11, 328(vi04) | nop + lq.xyzw vf15, 329(vi04) | nop + lqi.xyzw vf31, vi13 | subz.xy vf19, vf23, vf02 + lq.xyzw vf23, 328(vi02) | nop + sqi.xyzw vf05, vi06 | itof0.xyzw vf11, vf11 + sqi.xyzw vf29, vi06 | nop + lqi.xyzw vf29, vi13 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | nop + sqi.xyzw vf30, vi06 | nop + lqi.xyzw vf30, vi13 | maddax.xyzw ACC, vf07, vf11 + sqi.xyzw vf31, vi06 | madday.xyzw ACC, vf08, vf11 + sqi.xyzw vf29, vi06 | maddz.xyzw vf11, vf09, vf11 + ilw.z vi02, 328(vi03) | nop + lq.xyzw vf12, 328(vi04) | nop + lq.xyzw vf16, 329(vi04) | nop + div Q, vf01.x, vf11.w | subz.xy vf20, vf23, vf02 + lq.xyzw vf23, 328(vi02) | nop + sqi.xyzw vf30, vi06 | itof0.xyzw vf12, vf12 + move.z vf19, vf24 | nop + iadd vi01, vi12, vi12 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | nop + iadd vi01, vi01, vi12 | maddax.xyzw ACC, vf07, vf12 + iadd vi05, vi06, vi01 | madday.xyzw ACC, vf08, vf12 + ior vi10, vi06, vi00 | maddz.xyzw vf12, vf09, vf12 + ilw.w vi02, 328(vi03) | mul.xyz vf11, vf11, Q + lq.xyzw vf13, 328(vi04) | mul.xyz vf19, vf19, Q + lq.xyzw vf17, 329(vi04) | nop + div Q, vf01.x, vf12.w | subz.xy vf21, vf23, vf02 + lq.xyzw vf23, 328(vi02) | add.xyzw vf11, vf11, vf25 + iaddi vi03, vi03, 0x1 | itof0.xyzw vf13, vf13 + move.z vf20, vf24 | nop + sqi.xyzw vf06, vi06 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | maxy.w vf11, vf11, vf01 + isw.x vi12, -1(vi06) | maddax.xyzw ACC, vf07, vf13 + iaddi vi09, vi09, 0x1 | madday.xyzw ACC, vf08, vf13 + ilwr.x vi12, vi09 | maddz.xyzw vf13, vf09, vf13 +L119: + ilw.x vi02, 328(vi03) | mul.xyz vf12, vf12, Q + lq.xyzw vf14, 328(vi04) | mul.xyz vf20, vf20, Q + lq.xyzw vf18, 329(vi04) | miniz.w vf11, vf11, vf01 + div Q, vf01.x, vf13.w | subz.xy vf22, vf23, vf02 + lq.xyzw vf23, 328(vi02) | add.xyzw vf12, vf12, vf25 + nop | itof0.xyzw vf14, vf14 + sqi.xyzw vf19, vi06 | ftoi4.xyzw vf11, vf11 + sqi.xyzw vf15, vi06 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | maxy.w vf12, vf12, vf01 + move.z vf21, vf24 | maddax.xyzw ACC, vf07, vf14 + ibeq vi05, vi06, L120 | madday.xyzw ACC, vf08, vf14 + sqi.xyzw vf11, vi06 | maddz.xyzw vf14, vf09, vf14 + ilw.y vi02, 328(vi03) | mul.xyz vf13, vf13, Q + lq.xyzw vf11, 328(vi04) | mul.xyz vf21, vf21, Q + lq.xyzw vf15, 329(vi04) | miniz.w vf12, vf12, vf01 + div Q, vf01.x, vf14.w | subz.xy vf19, vf23, vf02 + lq.xyzw vf23, 328(vi02) | add.xyzw vf13, vf13, vf25 + nop | itof0.xyzw vf11, vf11 + sqi.xyzw vf20, vi06 | ftoi4.xyzw vf12, vf12 + sqi.xyzw vf16, vi06 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | maxy.w vf13, vf13, vf01 + move.z vf22, vf24 | maddax.xyzw ACC, vf07, vf11 + ibeq vi05, vi06, L121 | madday.xyzw ACC, vf08, vf11 + sqi.xyzw vf12, vi06 | maddz.xyzw vf11, vf09, vf11 + ilw.z vi02, 328(vi03) | mul.xyz vf14, vf14, Q + lq.xyzw vf12, 328(vi04) | mul.xyz vf22, vf22, Q + lq.xyzw vf16, 329(vi04) | miniz.w vf13, vf13, vf01 + div Q, vf01.x, vf11.w | subz.xy vf20, vf23, vf02 + lq.xyzw vf23, 328(vi02) | add.xyzw vf14, vf14, vf25 + nop | itof0.xyzw vf12, vf12 + sqi.xyzw vf21, vi06 | ftoi4.xyzw vf13, vf13 + sqi.xyzw vf17, vi06 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | maxy.w vf14, vf14, vf01 + move.z vf19, vf24 | maddax.xyzw ACC, vf07, vf12 + ibeq vi05, vi06, L122 | madday.xyzw ACC, vf08, vf12 + sqi.xyzw vf13, vi06 | maddz.xyzw vf12, vf09, vf12 + ilw.w vi02, 328(vi03) | mul.xyz vf11, vf11, Q + lq.xyzw vf13, 328(vi04) | mul.xyz vf19, vf19, Q + lq.xyzw vf17, 329(vi04) | miniz.w vf14, vf14, vf01 + div Q, vf01.x, vf12.w | subz.xy vf21, vf23, vf02 + lq.xyzw vf23, 328(vi02) | add.xyzw vf11, vf11, vf25 + iaddi vi03, vi03, 0x1 | itof0.xyzw vf13, vf13 + sqi.xyzw vf22, vi06 | ftoi4.xyzw vf14, vf14 + sqi.xyzw vf18, vi06 | mulaw.xyzw ACC, vf10, vf00 + mtir vi04, vf23.w | maxy.w vf11, vf11, vf01 + move.z vf20, vf24 | maddax.xyzw ACC, vf07, vf13 + ibne vi05, vi06, L119 | madday.xyzw ACC, vf08, vf13 + sqi.xyzw vf14, vi06 | maddz.xyzw vf13, vf09, vf13 + b L82 | nop + iaddiu vi15, vi00, 0x5c5 | nop +L120: + b L82 | nop + iaddiu vi15, vi00, 0x5d1 | nop +L121: + b L82 | nop + iaddiu vi15, vi00, 0x5dd | nop +L122: + b L82 | nop + iaddiu vi15, vi00, 0x5e9 | nop +L123: + fcset 0x0 | nop + iaddi vi07, vi00, -0x1 | nop + iblez vi12, L124 | nop + iaddi vi09, vi09, 0x1 | nop + ior vi10, vi06, vi00 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L124: + ilw.y vi01, -1(vi09) | nop + ilw.z vi13, -1(vi09) | nop + ibeq vi00, vi12, L127 | nop + ilwr.x vi14, vi10 | nop + ibltz vi01, L125 | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + sqi.xyzw vf05, vi06 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + sqi.xyzw vf31, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + ior vi10, vi06, vi00 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L125: + mtir vi01, vf24.w | nop + mtir vi06, vf03.y | nop + mr32.xyzw vf03, vf03 | nop + iadd vi14, vi14, vi11 | nop + ibgez vi13, L126 | nop + iswr.x vi14, vi10 | nop + xgkick vi01 | nop + ior vi10, vi06, vi00 | nop + mfir.w vf24, vi06 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L126: + iadd vi13, vi13, vi08 | nop + xgkick vi01 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + mfir.w vf24, vi06 | nop + sqi.xyzw vf05, vi06 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + sqi.xyzw vf31, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + nop | nop + ior vi10, vi06, vi00 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L127: + mtir vi01, vf24.w | nop + mr32.xyzw vf03, vf03 | nop + iadd vi14, vi14, vi11 | nop + iswr.x vi14, vi10 | nop + lq.xyzw vf04, 664(vi00) | nop + xgkick vi01 | nop + nop | nop :e + nop | nop + lq.xyzw vf02, 657(vi00) | nop + lq.xyzw vf05, 660(vi00) | addw.z vf28, vf00, vf00 + lq.xyzw vf06, 658(vi00) | nop + lq.xyzw vf10, 661(vi00) | nop + lq.xyzw vf11, 662(vi00) | nop + lq.xyzw vf01, 656(vi00) | addz.z vf28, vf28, vf02 + ilw.w vi08, 4(vi14) | nop + ilw.z vi09, 4(vi14) | nop + ilw.y vi03, 3(vi14) | nop + fcset 0x0 | nop + iaddi vi07, vi00, -0x1 | nop + lq.xyzw vf04, 5(vi14) | mulw.xyzw vf16, vf00, vf00 + lq.xyzw vf07, 6(vi14) | mulw.xyzw vf17, vf00, vf00 + ibne vi00, vi14, L136 | mulw.xyzw vf18, vf00, vf00 + lq.xyzw vf08, 7(vi14) | mulw.xyzw vf19, vf00, vf00 + ilwr.x vi02, vi03 | nop + lq.xyzw vf09, 8(vi14) | nop + iadd vi08, vi08, vi14 | nop + iadd vi09, vi09, vi14 | nop + lq.xyw vf28, 0(vi02) | nop + mtir vi06, vf03.x | nop + ilwr.x vi12, vi09 | nop + ilwr.z vi13, vi09 | nop + mtir vi04, vf28.w | subz.xyz vf24, vf28, vf02 + iaddiu vi11, vi00, 0x4000 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilwr.y vi02, vi03 | nop + lq.xyzw vf12, 0(vi04) | nop + lq.xyzw vf20, 1(vi04) | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + lq.xyw vf28, 0(vi02) | itof0.xyzw vf12, vf12 + mfir.w vf24, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + sqi.xyzw vf05, vi06 | subz.xyz vf25, vf28, vf02 + sqi.xyzw vf29, vi06 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | nop + sqi.xyzw vf30, vi06 | maddax.xyzw ACC, vf04, vf12 + sqi.xyzw vf31, vi06 | nop + ilwr.z vi02, vi03 | nop + lq.xyzw vf13, 0(vi04) | madday.xyzw ACC, vf07, vf12 + lq.xyzw vf21, 1(vi04) | maddz.xyzw vf12, vf08, vf12 + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lq.xyw vf28, 0(vi02) | itof0.xyzw vf13, vf13 + div Q, vf01.x, vf12.w | mul.xyzw vf16, vf12, vf11 + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + iadd vi01, vi12, vi12 | subz.xyz vf26, vf28, vf02 + iadd vi01, vi01, vi12 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | nop + iadd vi05, vi06, vi01 | maddax.xyzw ACC, vf04, vf13 + ior vi10, vi06, vi00 | mul.xyz vf12, vf12, Q + ilwr.w vi02, vi03 | mul.xyz vf24, vf24, Q + lq.xyzw vf14, 0(vi04) | madday.xyzw ACC, vf07, vf13 + lq.xyzw vf22, 1(vi04) | maddz.xyzw vf13, vf08, vf13 + sqi.xyzw vf06, vi06 | add.xyzw vf12, vf12, vf10 + isw.x vi12, -1(vi06) | nop + lq.xyw vf28, 0(vi02) | itof0.xyzw vf14, vf14 + div Q, vf01.x, vf13.w | mul.xyzw vf17, vf13, vf11 + iaddi vi09, vi09, 0x1 | miniz.w vf12, vf12, vf01 + ilwr.x vi12, vi09 | clipw.xyz vf16, vf16 +L128: + iaddi vi03, vi03, 0x1 | subz.xyz vf27, vf28, vf02 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf12, vf12, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf14 + ibeq vi00, vi01, L129 | mul.xyz vf13, vf13, Q + ilwr.x vi02, vi03 | mul.xyz vf25, vf25, Q + nop | addw.w vf12, vf12, vf01 +L129: + lq.xyzw vf15, 0(vi04) | madday.xyzw ACC, vf07, vf14 + lq.xyzw vf23, 1(vi04) | maddz.xyzw vf14, vf08, vf14 + sqi.xyz vf24, vi06 | add.xyzw vf13, vf13, vf10 + sqi.xyzw vf20, vi06 | ftoi4.xyzw vf12, vf12 + lq.xyw vf28, 0(vi02) | itof0.xyzw vf15, vf15 + div Q, vf01.x, vf14.w | mul.xyzw vf18, vf14, vf11 + ibeq vi05, vi06, L133 | miniz.w vf13, vf13, vf01 + sqi.xyzw vf12, vi06 | clipw.xyz vf17, vf17 + nop | subz.xyz vf24, vf28, vf02 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf13, vf13, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf15 + ibeq vi00, vi01, L130 | mul.xyz vf14, vf14, Q + ilwr.y vi02, vi03 | mul.xyz vf26, vf26, Q + nop | addw.w vf13, vf13, vf01 +L130: + lq.xyzw vf12, 0(vi04) | madday.xyzw ACC, vf07, vf15 + lq.xyzw vf20, 1(vi04) | maddz.xyzw vf15, vf08, vf15 + sqi.xyzw vf25, vi06 | add.xyzw vf14, vf14, vf10 + sqi.xyzw vf21, vi06 | ftoi4.xyzw vf13, vf13 + lq.xyw vf28, 0(vi02) | itof0.xyzw vf12, vf12 + div Q, vf01.x, vf15.w | mul.xyzw vf19, vf15, vf11 + ibeq vi05, vi06, L134 | miniz.w vf14, vf14, vf01 + sqi.xyzw vf13, vi06 | clipw.xyz vf18, vf18 + nop | subz.xyz vf25, vf28, vf02 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf14, vf14, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf12 + ibeq vi00, vi01, L131 | mul.xyz vf15, vf15, Q + ilwr.z vi02, vi03 | mul.xyz vf27, vf27, Q + nop | addw.w vf14, vf14, vf01 +L131: + lq.xyzw vf13, 0(vi04) | madday.xyzw ACC, vf07, vf12 + lq.xyzw vf21, 1(vi04) | maddz.xyzw vf12, vf08, vf12 + sqi.xyzw vf26, vi06 | add.xyzw vf15, vf15, vf10 + sqi.xyzw vf22, vi06 | ftoi4.xyzw vf14, vf14 + lq.xyw vf28, 0(vi02) | itof0.xyzw vf13, vf13 + div Q, vf01.x, vf12.w | mul.xyzw vf16, vf12, vf11 + ibeq vi05, vi06, L135 | miniz.w vf15, vf15, vf01 + sqi.xyzw vf14, vi06 | clipw.xyz vf19, vf19 + nop | subz.xyz vf26, vf28, vf02 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf15, vf15, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf13 + ibeq vi00, vi01, L132 | mul.xyz vf12, vf12, Q + ilwr.w vi02, vi03 | mul.xyz vf24, vf24, Q + nop | addw.w vf15, vf15, vf01 +L132: + lq.xyzw vf14, 0(vi04) | madday.xyzw ACC, vf07, vf13 + lq.xyzw vf22, 1(vi04) | maddz.xyzw vf13, vf08, vf13 + sqi.xyzw vf27, vi06 | add.xyzw vf12, vf12, vf10 + sqi.xyzw vf23, vi06 | ftoi4.xyzw vf15, vf15 + lq.xyw vf28, 0(vi02) | itof0.xyzw vf14, vf14 + div Q, vf01.x, vf13.w | mul.xyzw vf17, vf13, vf11 + ibne vi05, vi06, L128 | miniz.w vf12, vf12, vf01 + sqi.xyzw vf15, vi06 | clipw.xyz vf16, vf16 + b L123 | nop + iaddiu vi15, vi00, 0x692 | nop +L133: + b L123 | nop + iaddiu vi15, vi00, 0x6a1 | nop +L134: + b L123 | nop + iaddiu vi15, vi00, 0x6b0 | nop +L135: + b L123 | nop + iaddiu vi15, vi00, 0x6bf | nop +L136: + ilw.x vi02, 328(vi03) | nop + lq.xyzw vf09, 8(vi14) | nop + iadd vi08, vi08, vi14 | nop + iadd vi09, vi09, vi14 | nop + lq.xyw vf28, 328(vi02) | nop + mtir vi06, vf03.x | nop + ilwr.x vi12, vi09 | nop + ilwr.z vi13, vi09 | nop + mtir vi04, vf28.w | subz.xyz vf24, vf28, vf02 + iaddiu vi11, vi00, 0x4000 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilw.y vi02, 328(vi03) | nop + lq.xyzw vf12, 328(vi04) | nop + lq.xyzw vf20, 329(vi04) | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + lq.xyw vf28, 328(vi02) | itof0.xyzw vf12, vf12 + mfir.w vf24, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + sqi.xyzw vf05, vi06 | subz.xyz vf25, vf28, vf02 + sqi.xyzw vf29, vi06 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | nop + sqi.xyzw vf30, vi06 | maddax.xyzw ACC, vf04, vf12 + sqi.xyzw vf31, vi06 | nop + ilw.z vi02, 328(vi03) | nop + lq.xyzw vf13, 328(vi04) | madday.xyzw ACC, vf07, vf12 + lq.xyzw vf21, 329(vi04) | maddz.xyzw vf12, vf08, vf12 + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lq.xyw vf28, 328(vi02) | itof0.xyzw vf13, vf13 + div Q, vf01.x, vf12.w | mul.xyzw vf16, vf12, vf11 + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + iadd vi01, vi12, vi12 | subz.xyz vf26, vf28, vf02 + iadd vi01, vi01, vi12 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | nop + iadd vi05, vi06, vi01 | maddax.xyzw ACC, vf04, vf13 + ior vi10, vi06, vi00 | mul.xyz vf12, vf12, Q + ilw.w vi02, 328(vi03) | mul.xyz vf24, vf24, Q + lq.xyzw vf14, 328(vi04) | madday.xyzw ACC, vf07, vf13 + lq.xyzw vf22, 329(vi04) | maddz.xyzw vf13, vf08, vf13 + sqi.xyzw vf06, vi06 | add.xyzw vf12, vf12, vf10 + isw.x vi12, -1(vi06) | nop + lq.xyw vf28, 328(vi02) | itof0.xyzw vf14, vf14 + div Q, vf01.x, vf13.w | mul.xyzw vf17, vf13, vf11 + iaddi vi09, vi09, 0x1 | miniz.w vf12, vf12, vf01 + ilwr.x vi12, vi09 | clipw.xyz vf16, vf16 +L137: + iaddi vi03, vi03, 0x1 | subz.xyz vf27, vf28, vf02 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf12, vf12, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf14 + ibeq vi00, vi01, L138 | mul.xyz vf13, vf13, Q + ilw.x vi02, 328(vi03) | mul.xyz vf25, vf25, Q + nop | addw.w vf12, vf12, vf01 +L138: + lq.xyzw vf15, 328(vi04) | madday.xyzw ACC, vf07, vf14 + lq.xyzw vf23, 329(vi04) | maddz.xyzw vf14, vf08, vf14 + sqi.xyz vf24, vi06 | add.xyzw vf13, vf13, vf10 + sqi.xyzw vf20, vi06 | ftoi4.xyzw vf12, vf12 + lq.xyw vf28, 328(vi02) | itof0.xyzw vf15, vf15 + div Q, vf01.x, vf14.w | mul.xyzw vf18, vf14, vf11 + ibeq vi05, vi06, L142 | miniz.w vf13, vf13, vf01 + sqi.xyzw vf12, vi06 | clipw.xyz vf17, vf17 + nop | subz.xyz vf24, vf28, vf02 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf13, vf13, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf15 + ibeq vi00, vi01, L139 | mul.xyz vf14, vf14, Q + ilw.y vi02, 328(vi03) | mul.xyz vf26, vf26, Q + nop | addw.w vf13, vf13, vf01 +L139: + lq.xyzw vf12, 328(vi04) | madday.xyzw ACC, vf07, vf15 + lq.xyzw vf20, 329(vi04) | maddz.xyzw vf15, vf08, vf15 + sqi.xyzw vf25, vi06 | add.xyzw vf14, vf14, vf10 + sqi.xyzw vf21, vi06 | ftoi4.xyzw vf13, vf13 + lq.xyw vf28, 328(vi02) | itof0.xyzw vf12, vf12 + div Q, vf01.x, vf15.w | mul.xyzw vf19, vf15, vf11 + ibeq vi05, vi06, L143 | miniz.w vf14, vf14, vf01 + sqi.xyzw vf13, vi06 | clipw.xyz vf18, vf18 + nop | subz.xyz vf25, vf28, vf02 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf14, vf14, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf12 + ibeq vi00, vi01, L140 | mul.xyz vf15, vf15, Q + ilw.z vi02, 328(vi03) | mul.xyz vf27, vf27, Q + nop | addw.w vf14, vf14, vf01 +L140: + lq.xyzw vf13, 328(vi04) | madday.xyzw ACC, vf07, vf12 + lq.xyzw vf21, 329(vi04) | maddz.xyzw vf12, vf08, vf12 + sqi.xyzw vf26, vi06 | add.xyzw vf15, vf15, vf10 + sqi.xyzw vf22, vi06 | ftoi4.xyzw vf14, vf14 + lq.xyw vf28, 328(vi02) | itof0.xyzw vf13, vf13 + div Q, vf01.x, vf12.w | mul.xyzw vf16, vf12, vf11 + ibeq vi05, vi06, L144 | miniz.w vf15, vf15, vf01 + sqi.xyzw vf14, vi06 | clipw.xyz vf19, vf19 + nop | subz.xyz vf26, vf28, vf02 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf15, vf15, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf13 + ibeq vi00, vi01, L141 | mul.xyz vf12, vf12, Q + ilw.w vi02, 328(vi03) | mul.xyz vf24, vf24, Q + nop | addw.w vf15, vf15, vf01 +L141: + lq.xyzw vf14, 328(vi04) | madday.xyzw ACC, vf07, vf13 + lq.xyzw vf22, 329(vi04) | maddz.xyzw vf13, vf08, vf13 + sqi.xyzw vf27, vi06 | add.xyzw vf12, vf12, vf10 + sqi.xyzw vf23, vi06 | ftoi4.xyzw vf15, vf15 + lq.xyw vf28, 328(vi02) | itof0.xyzw vf14, vf14 + div Q, vf01.x, vf13.w | mul.xyzw vf17, vf13, vf11 + ibne vi05, vi06, L137 | miniz.w vf12, vf12, vf01 + sqi.xyzw vf15, vi06 | clipw.xyz vf16, vf16 + b L123 | nop + iaddiu vi15, vi00, 0x707 | nop +L142: + b L123 | nop + iaddiu vi15, vi00, 0x716 | nop +L143: + b L123 | nop + iaddiu vi15, vi00, 0x725 | nop +L144: + b L123 | nop + iaddiu vi15, vi00, 0x734 | nop diff --git a/test/decompiler/vu_reference/tfrag.txt b/test/decompiler/vu_reference/tfrag.txt new file mode 100644 index 0000000000..69f8d4db9f --- /dev/null +++ b/test/decompiler/vu_reference/tfrag.txt @@ -0,0 +1,3734 @@ + .word 0x40000047 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000043 + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x40000015 + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x40000015 + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x40000015 + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x4000001b + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x4000001f + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x4000001f + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x40000027 + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x4000002b + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x4000002f + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x4000002f + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x4000002d + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x40000502 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000635 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f013f + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f025a + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000438 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0028 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f006a + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000432 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000625 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0020 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0062 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0123 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0243 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000426 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0019 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f004f + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000420 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0013 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x420f0049 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000033f + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000060d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1e40298 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x100e02a0 + .word 0x2ff + .word 0x10010350 + .word 0x2ff + .word 0x810373fd + .word 0x2ff + .word 0x80830bfd + .word 0x2ff + .word 0x804373fd + .word 0x2ff + .word 0x80230bfd + .word 0x400002ff + .word 0x1e40298 + .word 0x2ff + .word 0x8457001 + .word 0x2ff + .word 0x4000000c + .word 0x2ff + .word 0x810273fe + .word 0x2ff + .word 0x804273fe + .word 0x2ff + .word 0x810473fe + .word 0x2ff + .word 0x8457001 + .word 0x2ff + .word 0x40000007 + .word 0x2ff + .word 0x800410b0 + .word 0x2ff + .word 0x804273fe + .word 0x2ff + .word 0x9017001 + .word 0x2ff + .word 0x810473fe + .word 0x2ff + .word 0x8457001 + .word 0x2ff + .word 0x800410b0 + .word 0x2ff + .word 0x800110b0 + .word 0x2ff + .word 0x800e2970 + .word 0x2ff + .word 0x81ec2b7c + .word 0x2ff + .word 0x81f02b7c + .word 0x2ff + .word 0x1e10290 + .word 0x2ff + .word 0x1e20291 + .word 0x2ff + .word 0x1e57005 + .word 0x1ec613c + .word 0x1e87008 + .word 0x1f0813c + .word 0x81ed2b7c + .word 0x2ff + .word 0x81f12b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1e67006 + .word 0x1e041bf + .word 0x1e77007 + .word 0x1ed693c + .word 0x80000030 + .word 0x1f1893c + .word 0x81ee2b7c + .word 0x1ec28bc + .word 0x81f22b7c + .word 0x1ec30bd + .word 0x80000030 + .word 0x1ec3b0a + .word 0x80000030 + .word 0x1e041bf + .word 0x80000030 + .word 0x1ee713c + .word 0x80062eb2 + .word 0x1f2913c + .word 0x81ef2b7c + .word 0x1ed28bc + .word 0x81f32b7c + .word 0x1ed30bd + .word 0x800217f2 + .word 0x1ed3b4a + .word 0x81e6637d + .word 0x1e041bf + .word 0x50001013 + .word 0x1ef793c + .word 0x81e6837d + .word 0x1f3993c + .word 0x81ec2b7c + .word 0x1ee28bc + .word 0x81f02b7c + .word 0x1ee30bd + .word 0x800217f2 + .word 0x1ee3b8a + .word 0x81e66b7d + .word 0x1e041bf + .word 0x5000100d + .word 0x1ec613c + .word 0x81e68b7d + .word 0x1f0813c + .word 0x81ed2b7c + .word 0x1ef28bc + .word 0x81f12b7c + .word 0x1ef30bd + .word 0x800217f2 + .word 0x1ef3bca + .word 0x81e6737d + .word 0x1e041bf + .word 0x50001007 + .word 0x1ed693c + .word 0x81e6937d + .word 0x1f1893c + .word 0x81ee2b7c + .word 0x1ec28bc + .word 0x81f22b7c + .word 0x1ec30bd + .word 0x800217f2 + .word 0x1ec3b0a + .word 0x81e67b7d + .word 0x1e041bf + .word 0x520017e9 + .word 0x1ee713c + .word 0x81e69b7d + .word 0x1f2913c + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x9027001 + .word 0x2ff + .word 0x8237002 + .word 0x2ff + .word 0x9047004 + .word 0x2ff + .word 0x1e10290 + .word 0x2ff + .word 0x5000106a + .word 0x2ff + .word 0x1e20291 + .word 0x2ff + .word 0x192029b + .word 0x2ff + .word 0x40000009 + .word 0x2ff + .word 0x193029d + .word 0x2ff + .word 0x804273fe + .word 0x2ff + .word 0x8837002 + .word 0x2ff + .word 0x8447003 + .word 0x2ff + .word 0x1e10290 + .word 0x2ff + .word 0x50001061 + .word 0x2ff + .word 0x1e20291 + .word 0x2ff + .word 0x192029a + .word 0x2ff + .word 0x193029c + .word 0x2ff + .word 0x1e57005 + .word 0x2ff + .word 0x1e67006 + .word 0x2ff + .word 0x1e77007 + .word 0x2ff + .word 0x5200705c + .word 0x2ff + .word 0x1e87008 + .word 0x2ff + .word 0x80251bfe + .word 0x2ff + .word 0x80031872 + .word 0x2ff + .word 0x810723fe + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fb2800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80283bfe + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1ecd93c + .word 0x8491fff + .word 0x2ff + .word 0x1f44000 + .word 0x2ff + .word 0x80000030 + .word 0x1e041bf + .word 0x1ee2801 + .word 0x1ec28bc + .word 0x1f64800 + .word 0x1ec30bd + .word 0x80000030 + .word 0x1ec3b0a + .word 0x1f74801 + .word 0x2ff + .word 0x80261bfe + .word 0x2ff + .word 0x80031872 + .word 0x18099bf + .word 0x808723fe + .word 0x18c940b + .word 0x1f54001 + .word 0x2ff + .word 0x1fb3000 + .word 0x2ff + .word 0x80000030 + .word 0x1f6a668 + .word 0x80283bfe + .word 0x182842f + .word 0x80000030 + .word 0x1f7aea8 + .word 0x80000030 + .word 0x1edd93c + .word 0x8491fff + .word 0x1ee713c + .word 0x1f44000 + .word 0x1808410 + .word 0x80002ab5 + .word 0x1e041bf + .word 0x1ef3001 + .word 0x1ed28bc + .word 0x1f64800 + .word 0x1ed30bd + .word 0x80000030 + .word 0x1ed3b4a + .word 0x1f74801 + .word 0x1f0c9bc + .word 0x80251bfe + .word 0x1f06309 + .word 0x800217f2 + .word 0x18099bf + .word 0x804723fe + .word 0x18d944b + .word 0x1f54001 + .word 0x1f0d1bc + .word 0x1fb2800 + .word 0x1f07389 + .word 0x3ea6000 + .word 0x1f6a668 + .word 0x80283bfe + .word 0x1828c6f + .word 0x50001031 + .word 0x1f7aea8 + .word 0x3ea7001 + .word 0x1ecd93c + .word 0x80491bfe + .word 0x1ef793c + .word 0x1f44000 + .word 0x1808c50 + .word 0x800032b5 + .word 0x1e041bf + .word 0x1ee2801 + .word 0x1ec28bc + .word 0x1f64800 + .word 0x1ec30bd + .word 0x800217f2 + .word 0x1ec3b0a + .word 0x1f74801 + .word 0x1f1c9bc + .word 0x8261801 + .word 0x1f16b49 + .word 0x800318b2 + .word 0x18099bf + .word 0x802723fe + .word 0x18c940b + .word 0x1f54001 + .word 0x1f1d1bc + .word 0x1fb3000 + .word 0x1f17bc9 + .word 0x3ea6800 + .word 0x1f6a668 + .word 0x80283bfe + .word 0x182842f + .word 0x50001021 + .word 0x1f7aea8 + .word 0x3ea7801 + .word 0x1edd93c + .word 0x8491fff + .word 0x1ee713c + .word 0x1f44000 + .word 0x1808410 + .word 0x80002ab5 + .word 0x1e041bf + .word 0x1ef3001 + .word 0x1ed28bc + .word 0x1f64800 + .word 0x1ed30bd + .word 0x80042072 + .word 0x1ed3b4a + .word 0x1f74801 + .word 0x1f0c9bc + .word 0x80251bfe + .word 0x1f06309 + .word 0x800217f2 + .word 0x18099bf + .word 0x810723fe + .word 0x18d944b + .word 0x1f54001 + .word 0x1f0d1bc + .word 0x1fb2800 + .word 0x1f07389 + .word 0x3ea6000 + .word 0x1f6a668 + .word 0x80283bfe + .word 0x1828c6f + .word 0x50001011 + .word 0x1f7aea8 + .word 0x3ea7001 + .word 0x1ecd93c + .word 0x80491bfe + .word 0x1ef793c + .word 0x1f44000 + .word 0x1808c50 + .word 0x800032b5 + .word 0x1e041bf + .word 0x1ee2801 + .word 0x1ec28bc + .word 0x1f64800 + .word 0x1ec30bd + .word 0x800217f2 + .word 0x1ec3b0a + .word 0x1f74801 + .word 0x1f1c9bc + .word 0x8261801 + .word 0x1f16b49 + .word 0x800318b2 + .word 0x18099bf + .word 0x808723fe + .word 0x18c940b + .word 0x1f54001 + .word 0x1f1d1bc + .word 0x1fb3000 + .word 0x1f17bc9 + .word 0x3ea6800 + .word 0x1f6a668 + .word 0x80283bfe + .word 0x182842f + .word 0x520017c1 + .word 0x1f7aea8 + .word 0x3ea7801 + .word 0x1edd93c + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x8251948 + .word 0x2ff + .word 0x80031872 + .word 0x2ff + .word 0x9072148 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fb2948 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x8283948 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1ecd93c + .word 0x8491947 + .word 0x2ff + .word 0x1f44148 + .word 0x2ff + .word 0x80000030 + .word 0x1e041bf + .word 0x1ee2949 + .word 0x1ec28bc + .word 0x1f64948 + .word 0x1ec30bd + .word 0x80000030 + .word 0x1ec3b0a + .word 0x1f74949 + .word 0x2ff + .word 0x8261948 + .word 0x2ff + .word 0x80031872 + .word 0x18099bf + .word 0x8872148 + .word 0x18c940b + .word 0x1f54149 + .word 0x2ff + .word 0x1fb3148 + .word 0x2ff + .word 0x80000030 + .word 0x1f6a668 + .word 0x8283948 + .word 0x182842f + .word 0x80000030 + .word 0x1f7aea8 + .word 0x80000030 + .word 0x1edd93c + .word 0x8491947 + .word 0x1ee713c + .word 0x1f44148 + .word 0x1808410 + .word 0x80002ab5 + .word 0x1e041bf + .word 0x1ef3149 + .word 0x1ed28bc + .word 0x1f64948 + .word 0x1ed30bd + .word 0x80000030 + .word 0x1ed3b4a + .word 0x1f74949 + .word 0x1f0c9bc + .word 0x8251948 + .word 0x1f06309 + .word 0x800217f2 + .word 0x18099bf + .word 0x8472148 + .word 0x18d944b + .word 0x1f54149 + .word 0x1f0d1bc + .word 0x1fb2948 + .word 0x1f07389 + .word 0x3ea6148 + .word 0x1f6a668 + .word 0x8283948 + .word 0x1828c6f + .word 0x50001031 + .word 0x1f7aea8 + .word 0x3ea7149 + .word 0x1ecd93c + .word 0x8491948 + .word 0x1ef793c + .word 0x1f44148 + .word 0x1808c50 + .word 0x800032b5 + .word 0x1e041bf + .word 0x1ee2949 + .word 0x1ec28bc + .word 0x1f64948 + .word 0x1ec30bd + .word 0x800217f2 + .word 0x1ec3b0a + .word 0x1f74949 + .word 0x1f1c9bc + .word 0x8261949 + .word 0x1f16b49 + .word 0x800318b2 + .word 0x18099bf + .word 0x8272148 + .word 0x18c940b + .word 0x1f54149 + .word 0x1f1d1bc + .word 0x1fb3148 + .word 0x1f17bc9 + .word 0x3ea6948 + .word 0x1f6a668 + .word 0x8283948 + .word 0x182842f + .word 0x50001021 + .word 0x1f7aea8 + .word 0x3ea7949 + .word 0x1edd93c + .word 0x8491947 + .word 0x1ee713c + .word 0x1f44148 + .word 0x1808410 + .word 0x80002ab5 + .word 0x1e041bf + .word 0x1ef3149 + .word 0x1ed28bc + .word 0x1f64948 + .word 0x1ed30bd + .word 0x80042072 + .word 0x1ed3b4a + .word 0x1f74949 + .word 0x1f0c9bc + .word 0x8251948 + .word 0x1f06309 + .word 0x800217f2 + .word 0x18099bf + .word 0x9072148 + .word 0x18d944b + .word 0x1f54149 + .word 0x1f0d1bc + .word 0x1fb2948 + .word 0x1f07389 + .word 0x3ea6148 + .word 0x1f6a668 + .word 0x8283948 + .word 0x1828c6f + .word 0x50001011 + .word 0x1f7aea8 + .word 0x3ea7149 + .word 0x1ecd93c + .word 0x8491948 + .word 0x1ef793c + .word 0x1f44148 + .word 0x1808c50 + .word 0x800032b5 + .word 0x1e041bf + .word 0x1ee2949 + .word 0x1ec28bc + .word 0x1f64948 + .word 0x1ec30bd + .word 0x800217f2 + .word 0x1ec3b0a + .word 0x1f74949 + .word 0x1f1c9bc + .word 0x8261949 + .word 0x1f16b49 + .word 0x800318b2 + .word 0x18099bf + .word 0x8872148 + .word 0x18c940b + .word 0x1f54149 + .word 0x1f1d1bc + .word 0x1fb3148 + .word 0x1f17bc9 + .word 0x3ea6948 + .word 0x1f6a668 + .word 0x8283948 + .word 0x182842f + .word 0x520017c1 + .word 0x1f7aea8 + .word 0x3ea7949 + .word 0x1edd93c + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x9027001 + .word 0x2ff + .word 0x8237002 + .word 0x2ff + .word 0x9047004 + .word 0x2ff + .word 0x1e10290 + .word 0x2ff + .word 0x5000107a + .word 0x2ff + .word 0x1e20291 + .word 0x2ff + .word 0x192029b + .word 0x2ff + .word 0x193029d + .word 0x2ff + .word 0x4000000a + .word 0x2ff + .word 0x3a029b + .word 0x2ff + .word 0x804273fe + .word 0x2ff + .word 0x8837002 + .word 0x2ff + .word 0x8447003 + .word 0x2ff + .word 0x1e10290 + .word 0x2ff + .word 0x50001070 + .word 0x2ff + .word 0x1e20291 + .word 0x2ff + .word 0x192029a + .word 0x2ff + .word 0x193029c + .word 0x2ff + .word 0x3a029a + .word 0x2ff + .word 0x1e57005 + .word 0x2ff + .word 0x1e67006 + .word 0x2ff + .word 0x1e77007 + .word 0x2ff + .word 0x52007086 + .word 0x2ff + .word 0x1e87008 + .word 0x2ff + .word 0x80251bfe + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1ec2800 + .word 0x2ff + .word 0x804a1bfe + .word 0x2ff + .word 0x810723fe + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1ec613c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e041bf + .word 0x80293bfe + .word 0x2ff + .word 0x1f65000 + .word 0x1ec28bc + .word 0x80000030 + .word 0x1ec30bd + .word 0x1f75001 + .word 0x1ec3b0a + .word 0x1f44800 + .word 0x2ff + .word 0x1f54801 + .word 0x2ff + .word 0x1ee2801 + .word 0x2ff + .word 0x8261801 + .word 0x2ff + .word 0x80000030 + .word 0x18099bf + .word 0x80000030 + .word 0x18c940b + .word 0x80000030 + .word 0x1f6a628 + .word 0x80000030 + .word 0x1f7ae68 + .word 0x1ed3000 + .word 0x2ff + .word 0x84a1801 + .word 0x3aa007 + .word 0x808823fe + .word 0x3ab007 + .word 0x80002af5 + .word 0x182842f + .word 0x800217f2 + .word 0x1ed693c + .word 0x2c010002 + .word 0x1ee713c + .word 0x2c0c0002 + .word 0x1e041bf + .word 0x802943fe + .word 0x1808410 + .word 0x1f65000 + .word 0x1ed28bc + .word 0x800c0874 + .word 0x1ed30bd + .word 0x1f75001 + .word 0x1ed3b4a + .word 0x1f44800 + .word 0x1f0c1bc + .word 0x1f54801 + .word 0x1f06309 + .word 0x52000844 + .word 0x1f0c9bc + .word 0x1ef3001 + .word 0x1f07389 + .word 0x8251802 + .word 0x2ff + .word 0x80000030 + .word 0x18099bf + .word 0x3eb6000 + .word 0x18d944b + .word 0x5000103d + .word 0x1f6a628 + .word 0x3eb7001 + .word 0x1f7ae68 + .word 0x1ec2800 + .word 0x2ff + .word 0x84a1802 + .word 0x3aa007 + .word 0x804723fe + .word 0x3ab007 + .word 0x800032f5 + .word 0x1828c6f + .word 0x800217f2 + .word 0x1ec613c + .word 0x2c010002 + .word 0x1ef793c + .word 0x2c0c0002 + .word 0x1e041bf + .word 0x80293bfe + .word 0x1808c50 + .word 0x1f65000 + .word 0x1ec28bc + .word 0x800c0874 + .word 0x1ec30bd + .word 0x1f75001 + .word 0x1ec3b0a + .word 0x1f44800 + .word 0x1f1c1bc + .word 0x1f54801 + .word 0x1f16b49 + .word 0x52000837 + .word 0x1f1c9bc + .word 0x1ee2801 + .word 0x1f17bc9 + .word 0x8261803 + .word 0x2ff + .word 0x80000030 + .word 0x18099bf + .word 0x3eb6800 + .word 0x18c940b + .word 0x50001029 + .word 0x1f6a628 + .word 0x3eb7801 + .word 0x1f7ae68 + .word 0x1ed3000 + .word 0x2ff + .word 0x84a1803 + .word 0x3aa007 + .word 0x802823fe + .word 0x3ab007 + .word 0x80002af5 + .word 0x182842f + .word 0x800217f2 + .word 0x1ed693c + .word 0x2c010002 + .word 0x1ee713c + .word 0x2c0c0002 + .word 0x1e041bf + .word 0x802943fe + .word 0x1808410 + .word 0x1f65000 + .word 0x1ed28bc + .word 0x800c0874 + .word 0x1ed30bd + .word 0x1f75001 + .word 0x1ed3b4a + .word 0x1f44800 + .word 0x1f0c1bc + .word 0x1f54801 + .word 0x1f06309 + .word 0x5200082a + .word 0x1f0c9bc + .word 0x1ef3001 + .word 0x1f07389 + .word 0x8251804 + .word 0x2ff + .word 0x80042072 + .word 0x18099bf + .word 0x3eb6000 + .word 0x18d944b + .word 0x50001015 + .word 0x1f6a628 + .word 0x3eb7001 + .word 0x1f7ae68 + .word 0x1ec2800 + .word 0x2ff + .word 0x84a1804 + .word 0x3aa007 + .word 0x810723fe + .word 0x3ab007 + .word 0x800032f5 + .word 0x1828c6f + .word 0x800217f2 + .word 0x1ec613c + .word 0x2c010002 + .word 0x1ef793c + .word 0x2c0c0002 + .word 0x1e041bf + .word 0x80293bfe + .word 0x1808c50 + .word 0x1f65000 + .word 0x1ec28bc + .word 0x800c0874 + .word 0x1ec30bd + .word 0x1f75001 + .word 0x1ec3b0a + .word 0x1f44800 + .word 0x1f1c1bc + .word 0x1f54801 + .word 0x1f16b49 + .word 0x5200081d + .word 0x1f1c9bc + .word 0x1ee2801 + .word 0x1f17bc9 + .word 0x8261805 + .word 0x2ff + .word 0x80031932 + .word 0x18099bf + .word 0x3eb6800 + .word 0x18c940b + .word 0x520017b1 + .word 0x1f6a628 + .word 0x3eb7801 + .word 0x1f7ae68 + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fb3800 + .word 0x2ff + .word 0x8251802 + .word 0x18099bf + .word 0x80000030 + .word 0x18d944b + .word 0x520017be + .word 0x1f6a628 + .word 0x3e3d800 + .word 0x1f7ae68 + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fb4000 + .word 0x2ff + .word 0x8261803 + .word 0x18099bf + .word 0x80000030 + .word 0x18c940b + .word 0x520017cb + .word 0x1f6a628 + .word 0x3e3d801 + .word 0x1f7ae68 + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fb3800 + .word 0x2ff + .word 0x8251804 + .word 0x18099bf + .word 0x80042072 + .word 0x18d944b + .word 0x520017d8 + .word 0x1f6a628 + .word 0x3e3d802 + .word 0x1f7ae68 + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fb4000 + .word 0x2ff + .word 0x8261805 + .word 0x18099bf + .word 0x80031932 + .word 0x18c940b + .word 0x52001795 + .word 0x1f6a628 + .word 0x3e3dfff + .word 0x1f7ae68 + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x8251948 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1ec2948 + .word 0x2ff + .word 0x84a1948 + .word 0x2ff + .word 0x9072148 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1ec613c + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e041bf + .word 0x8293948 + .word 0x2ff + .word 0x1f65148 + .word 0x1ec28bc + .word 0x80000030 + .word 0x1ec30bd + .word 0x1f75149 + .word 0x1ec3b0a + .word 0x1f44948 + .word 0x2ff + .word 0x1f54949 + .word 0x2ff + .word 0x1ee2949 + .word 0x2ff + .word 0x8261949 + .word 0x2ff + .word 0x80000030 + .word 0x18099bf + .word 0x80000030 + .word 0x18c940b + .word 0x80000030 + .word 0x1f6a628 + .word 0x80000030 + .word 0x1f7ae68 + .word 0x1ed3148 + .word 0x2ff + .word 0x84a1949 + .word 0x3aa007 + .word 0x8882148 + .word 0x3ab007 + .word 0x80002af5 + .word 0x182842f + .word 0x800217f2 + .word 0x1ed693c + .word 0x2c010002 + .word 0x1ee713c + .word 0x2c0c0002 + .word 0x1e041bf + .word 0x8294148 + .word 0x1808410 + .word 0x1f65148 + .word 0x1ed28bc + .word 0x800c0874 + .word 0x1ed30bd + .word 0x1f75149 + .word 0x1ed3b4a + .word 0x1f44948 + .word 0x1f0c1bc + .word 0x1f54949 + .word 0x1f06309 + .word 0x52000844 + .word 0x1f0c9bc + .word 0x1ef3149 + .word 0x1f07389 + .word 0x825194a + .word 0x2ff + .word 0x80000030 + .word 0x18099bf + .word 0x3eb6148 + .word 0x18d944b + .word 0x5000103d + .word 0x1f6a628 + .word 0x3eb7149 + .word 0x1f7ae68 + .word 0x1ec2948 + .word 0x2ff + .word 0x84a194a + .word 0x3aa007 + .word 0x8472148 + .word 0x3ab007 + .word 0x800032f5 + .word 0x1828c6f + .word 0x800217f2 + .word 0x1ec613c + .word 0x2c010002 + .word 0x1ef793c + .word 0x2c0c0002 + .word 0x1e041bf + .word 0x8293948 + .word 0x1808c50 + .word 0x1f65148 + .word 0x1ec28bc + .word 0x800c0874 + .word 0x1ec30bd + .word 0x1f75149 + .word 0x1ec3b0a + .word 0x1f44948 + .word 0x1f1c1bc + .word 0x1f54949 + .word 0x1f16b49 + .word 0x52000837 + .word 0x1f1c9bc + .word 0x1ee2949 + .word 0x1f17bc9 + .word 0x826194b + .word 0x2ff + .word 0x80000030 + .word 0x18099bf + .word 0x3eb6948 + .word 0x18c940b + .word 0x50001029 + .word 0x1f6a628 + .word 0x3eb7949 + .word 0x1f7ae68 + .word 0x1ed3148 + .word 0x2ff + .word 0x84a194b + .word 0x3aa007 + .word 0x8282148 + .word 0x3ab007 + .word 0x80002af5 + .word 0x182842f + .word 0x800217f2 + .word 0x1ed693c + .word 0x2c010002 + .word 0x1ee713c + .word 0x2c0c0002 + .word 0x1e041bf + .word 0x8294148 + .word 0x1808410 + .word 0x1f65148 + .word 0x1ed28bc + .word 0x800c0874 + .word 0x1ed30bd + .word 0x1f75149 + .word 0x1ed3b4a + .word 0x1f44948 + .word 0x1f0c1bc + .word 0x1f54949 + .word 0x1f06309 + .word 0x5200082a + .word 0x1f0c9bc + .word 0x1ef3149 + .word 0x1f07389 + .word 0x825194c + .word 0x2ff + .word 0x80042072 + .word 0x18099bf + .word 0x3eb6148 + .word 0x18d944b + .word 0x50001015 + .word 0x1f6a628 + .word 0x3eb7149 + .word 0x1f7ae68 + .word 0x1ec2948 + .word 0x2ff + .word 0x84a194c + .word 0x3aa007 + .word 0x9072148 + .word 0x3ab007 + .word 0x800032f5 + .word 0x1828c6f + .word 0x800217f2 + .word 0x1ec613c + .word 0x2c010002 + .word 0x1ef793c + .word 0x2c0c0002 + .word 0x1e041bf + .word 0x8293948 + .word 0x1808c50 + .word 0x1f65148 + .word 0x1ec28bc + .word 0x800c0874 + .word 0x1ec30bd + .word 0x1f75149 + .word 0x1ec3b0a + .word 0x1f44948 + .word 0x1f1c1bc + .word 0x1f54949 + .word 0x1f16b49 + .word 0x5200081d + .word 0x1f1c9bc + .word 0x1ee2949 + .word 0x1f17bc9 + .word 0x826194d + .word 0x2ff + .word 0x80031932 + .word 0x18099bf + .word 0x3eb6948 + .word 0x18c940b + .word 0x520017b1 + .word 0x1f6a628 + .word 0x3eb7949 + .word 0x1f7ae68 + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fb3948 + .word 0x2ff + .word 0x825194a + .word 0x18099bf + .word 0x80000030 + .word 0x18d944b + .word 0x520017be + .word 0x1f6a628 + .word 0x3e3d948 + .word 0x1f7ae68 + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fb4148 + .word 0x2ff + .word 0x826194b + .word 0x18099bf + .word 0x80000030 + .word 0x18c940b + .word 0x520017cb + .word 0x1f6a628 + .word 0x3e3d949 + .word 0x1f7ae68 + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fb3948 + .word 0x2ff + .word 0x825194c + .word 0x18099bf + .word 0x80042072 + .word 0x18d944b + .word 0x520017d8 + .word 0x1f6a628 + .word 0x3e3d94a + .word 0x1f7ae68 + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1fb4148 + .word 0x2ff + .word 0x826194d + .word 0x18099bf + .word 0x80031932 + .word 0x18c940b + .word 0x52001795 + .word 0x1f6a628 + .word 0x3e3d947 + .word 0x1f7ae68 + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x88b7001 + .word 0x2ff + .word 0x9027003 + .word 0x2ff + .word 0x8837004 + .word 0x2ff + .word 0x40000005 + .word 0x2ff + .word 0x2a029b + .word 0x2ff + .word 0x802b73fe + .word 0x2ff + .word 0x8427002 + .word 0x2ff + .word 0x8237003 + .word 0x2ff + .word 0x2a029a + .word 0x2ff + .word 0x50005837 + .word 0x2ff + .word 0x800e10b0 + .word 0x2ff + .word 0x800b12b0 + .word 0x2ff + .word 0x52007057 + .word 0x2ff + .word 0x800a50f2 + .word 0x2ff + .word 0x81e6137c + .word 0x2ff + .word 0x81041bfe + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x81e6137c + .word 0x2ff + .word 0x802823fe + .word 0x2ff + .word 0x80851bfe + .word 0x2ff + .word 0x1e84800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1e74000 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x80282bfe + .word 0x2ff + .word 0x80461bfe + .word 0x2ff + .word 0x1e84800 + .word 0x2ff + .word 0x2c010002 + .word 0x2a3807 + .word 0x52000821 + .word 0x2ff + .word 0x1e74000 + .word 0x2ff + .word 0x500a101d + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x802833fe + .word 0x2ff + .word 0x80271bfe + .word 0x2ff + .word 0x1e84800 + .word 0x2ff + .word 0x2c010002 + .word 0x2a3807 + .word 0x52000820 + .word 0x2ff + .word 0x1e74000 + .word 0x2ff + .word 0x500a1014 + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x80283bfe + .word 0x2ff + .word 0x9041801 + .word 0x2ff + .word 0x1e84800 + .word 0x2ff + .word 0x2c010002 + .word 0x2a3807 + .word 0x5200081f + .word 0x2ff + .word 0x1e74000 + .word 0x2ff + .word 0x500a100b + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x802823fe + .word 0x2ff + .word 0x8851801 + .word 0x2ff + .word 0x1e84800 + .word 0x2ff + .word 0x2c010002 + .word 0x2a3807 + .word 0x5200081e + .word 0x2ff + .word 0x1e74000 + .word 0x2ff + .word 0x80031872 + .word 0x2ff + .word 0x520a17dc + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1e92000 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x50000fdd + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x500a17f9 + .word 0x2ff + .word 0x3e24ffd + .word 0x2ff + .word 0x400007dc + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x1e92800 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x50000fde + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x500a17f1 + .word 0x2ff + .word 0x3e24ffd + .word 0x2ff + .word 0x400007dd + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x1e93000 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x50000fdf + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x500a17e9 + .word 0x2ff + .word 0x3e24ffd + .word 0x2ff + .word 0x400007de + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x1e93800 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x50000fe0 + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x500a17e1 + .word 0x2ff + .word 0x3e24ffd + .word 0x2ff + .word 0x80031872 + .word 0x2ff + .word 0x400007ba + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x81e6137c + .word 0x2ff + .word 0x9041948 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x81e6137c + .word 0x2ff + .word 0x8282148 + .word 0x2ff + .word 0x8851948 + .word 0x2ff + .word 0x1e84948 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1e74148 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x8282948 + .word 0x2ff + .word 0x8461948 + .word 0x2ff + .word 0x1e84948 + .word 0x2ff + .word 0x2c010002 + .word 0x2a3807 + .word 0x52000821 + .word 0x2ff + .word 0x1e74148 + .word 0x2ff + .word 0x500a101d + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x8283148 + .word 0x2ff + .word 0x8271948 + .word 0x2ff + .word 0x1e84948 + .word 0x2ff + .word 0x2c010002 + .word 0x2a3807 + .word 0x52000820 + .word 0x2ff + .word 0x1e74148 + .word 0x2ff + .word 0x500a1014 + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x8283948 + .word 0x2ff + .word 0x9041949 + .word 0x2ff + .word 0x1e84948 + .word 0x2ff + .word 0x2c010002 + .word 0x2a3807 + .word 0x5200081f + .word 0x2ff + .word 0x1e74148 + .word 0x2ff + .word 0x500a100b + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x8282148 + .word 0x2ff + .word 0x8851949 + .word 0x2ff + .word 0x1e84948 + .word 0x2ff + .word 0x2c010002 + .word 0x2a3807 + .word 0x5200081e + .word 0x2ff + .word 0x1e74148 + .word 0x2ff + .word 0x80031872 + .word 0x2ff + .word 0x520a17dc + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1e92148 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x50000fdd + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x500a17f9 + .word 0x2ff + .word 0x3e24ffd + .word 0x2ff + .word 0x400007dc + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x1e92948 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x50000fde + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x500a17f1 + .word 0x2ff + .word 0x3e24ffd + .word 0x2ff + .word 0x400007dd + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x1e93148 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x50000fdf + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x500a17e9 + .word 0x2ff + .word 0x3e24ffd + .word 0x2ff + .word 0x400007de + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x1e93948 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x50000fe0 + .word 0x2ff + .word 0x804933fc + .word 0x2ff + .word 0x500a17e1 + .word 0x2ff + .word 0x3e24ffd + .word 0x2ff + .word 0x80031872 + .word 0x2ff + .word 0x400007ba + .word 0x2ff + .word 0x81e6137c + .word 0x2a4007 + .word 0x22000000 + .word 0x2ff + .word 0x5c006009 + .word 0x2ff + .word 0x80094872 + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x8814fff + .word 0x2ff + .word 0x84d4fff + .word 0x2ff + .word 0x5000603b + .word 0x2ff + .word 0x810753fe + .word 0x2ff + .word 0x58000815 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x81e62b7d + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81e6fb7d + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x80011bfc + .word 0x2ff + .word 0x80261bfc + .word 0x2ff + .word 0x81e31b3d + .word 0x2ff + .word 0x800b39f0 + .word 0x2ff + .word 0x5e00680a + .word 0x2ff + .word 0x810753ff + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x81e62b7d + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81e6fb7d + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x80011bfc + .word 0x2ff + .word 0x81e31b3d + .word 0x2ff + .word 0x800b39f0 + .word 0x2ff + .word 0x810753ff + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x1e40298 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x8287004 + .word 0x400643 + .word 0x1e60292 + .word 0x2ff + .word 0x1e70295 + .word 0x2ff + .word 0x1e50294 + .word 0x2ff + .word 0x800e4230 + .word 0x2ff + .word 0x3d4001 + .word 0x2ff + .word 0x22000000 + .word 0x2ff + .word 0x8497004 + .word 0x2ff + .word 0x8837003 + .word 0x2ff + .word 0x1e80296 + .word 0x2ff + .word 0x800e4a70 + .word 0x5d0083 + .word 0x52007068 + .word 0x2ff + .word 0x80061bfc + .word 0x5dce43 + .word 0x810c4bfe + .word 0x2ff + .word 0x804d4bfe + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x81021bfe + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x802413fe + .word 0x2ff + .word 0x1991000 + .word 0x2ff + .word 0x81e62b7d + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x1e92000 + .word 0x2ff + .word 0x1f12001 + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81e6fb7d + .word 0x2ff + .word 0x80821bfe + .word 0x2ff + .word 0x81fd6b7c + .word 0x1c2cd46 + .word 0x81fe6b7c + .word 0x2ff + .word 0x81890bbc + .word 0x2ff + .word 0x802413fe + .word 0x2ff + .word 0x1991000 + .word 0x1e84b6a + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x1ea2000 + .word 0x2ff + .word 0x1f22001 + .word 0x2ff + .word 0x800c6070 + .word 0x1c04a5c + .word 0x800c0870 + .word 0x1c0ad5c + .word 0x80421bfe + .word 0x2ff + .word 0x80013170 + .word 0x1c2cd86 + .word 0x800032b5 + .word 0x2ff + .word 0x818a0bbc + .word 0x2ff + .word 0x802413fe + .word 0x1e74a68 + .word 0x1991000 + .word 0x1e853aa + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x1e48c6a + .word 0x1eb2000 + .word 0x214a56 + .word 0x1f32001 + .word 0x1cd69ff + .word 0x80094872 + .word 0x1c0529c + .word 0x810c4bfe + .word 0x1c0b59c + .word 0x80221bfe + .word 0x214a51 + .word 0x2403ffff + .word 0x1c2cdc6 + .word 0x50000802 + .word 0x2ff + .word 0x818b0bbc + .word 0x1f1897c + .word 0x80000030 + .word 0x214a43 + .word 0x802413fe + .word 0x1e752a8 + .word 0x1991000 + .word 0x1e85bea + .word 0x81e6ab7d + .word 0x2ff + .word 0x81e68b7d + .word 0x1e9497d + .word 0x80031872 + .word 0x1e494aa + .word 0x1ec2000 + .word 0x215296 + .word 0x1f42001 + .word 0x1ce71ff + .word 0x5005302a + .word 0x1c05adc + .word 0x81e64b7d + .word 0x1c0bddc + .word 0x81021bfe + .word 0x215291 + .word 0x2403ffff + .word 0x1c2ce06 + .word 0x50000802 + .word 0x2ff + .word 0x818c0bbc + .word 0x1f2917c + .word 0x80000030 + .word 0x215283 + .word 0x802413fe + .word 0x1e75ae8 + .word 0x1991000 + .word 0x1e8642a + .word 0x81e6b37d + .word 0x1e49cea + .word 0x81e6937d + .word 0x1ea517d + .word 0x1e92000 + .word 0x215ad6 + .word 0x1f12001 + .word 0x1cf79ff + .word 0x5005301f + .word 0x1c0631c + .word 0x81e6537d + .word 0x1c0c61c + .word 0x80821bfe + .word 0x215ad1 + .word 0x2403ffff + .word 0x1c2cd46 + .word 0x50000802 + .word 0x1f3997c + .word 0x81890bbc + .word 0x2ff + .word 0x80000030 + .word 0x215ac3 + .word 0x802413fe + .word 0x1e76328 + .word 0x1991000 + .word 0x1e84b6a + .word 0x81e6bb7d + .word 0x1e4a52a + .word 0x81e69b7d + .word 0x1eb597d + .word 0x1ea2000 + .word 0x216316 + .word 0x1f22001 + .word 0x1d081ff + .word 0x50053014 + .word 0x1c04a5c + .word 0x81e65b7d + .word 0x1c0ad5c + .word 0x80421bfe + .word 0x216311 + .word 0x2403ffff + .word 0x1c2cd86 + .word 0x50000802 + .word 0x1f4a17c + .word 0x818a0bbc + .word 0x2ff + .word 0x80000030 + .word 0x216303 + .word 0x802413fe + .word 0x1e74a68 + .word 0x1991000 + .word 0x1e853aa + .word 0x81e6c37d + .word 0x1e48c6a + .word 0x81e6a37d + .word 0x1ec617d + .word 0x1eb2000 + .word 0x214a56 + .word 0x1f32001 + .word 0x1cd69ff + .word 0x520537cc + .word 0x1c0529c + .word 0x81e6637d + .word 0x1c0b59c + .word 0x40000743 + .word 0x2ff + .word 0x100f03b9 + .word 0x2ff + .word 0x40000741 + .word 0x2ff + .word 0x100f03c7 + .word 0x2ff + .word 0x4000073f + .word 0x2ff + .word 0x100f03d4 + .word 0x2ff + .word 0x4000073d + .word 0x2ff + .word 0x100f03e1 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x804d4bfe + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x9021948 + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x8241148 + .word 0x2ff + .word 0x1991148 + .word 0x2ff + .word 0x81e62b7d + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x1e92148 + .word 0x2ff + .word 0x1f12149 + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81e6fb7d + .word 0x2ff + .word 0x8821948 + .word 0x2ff + .word 0x81fd6b7c + .word 0x1c2cd46 + .word 0x81fe6b7c + .word 0x2ff + .word 0x81890bbc + .word 0x2ff + .word 0x8241148 + .word 0x2ff + .word 0x1991148 + .word 0x1e84b6a + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x1ea2148 + .word 0x2ff + .word 0x1f22149 + .word 0x2ff + .word 0x800c6070 + .word 0x1c04a5c + .word 0x800c0870 + .word 0x1c0ad5c + .word 0x8421948 + .word 0x2ff + .word 0x80013170 + .word 0x1c2cd86 + .word 0x800032b5 + .word 0x2ff + .word 0x818a0bbc + .word 0x2ff + .word 0x8241148 + .word 0x1e74a68 + .word 0x1991148 + .word 0x1e853aa + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x1e48c6a + .word 0x1eb2148 + .word 0x214a56 + .word 0x1f32149 + .word 0x1cd69ff + .word 0x80094872 + .word 0x1c0529c + .word 0x810c4bfe + .word 0x1c0b59c + .word 0x8221948 + .word 0x214a51 + .word 0x2403ffff + .word 0x1c2cdc6 + .word 0x50000802 + .word 0x2ff + .word 0x818b0bbc + .word 0x1f1897c + .word 0x80000030 + .word 0x214a43 + .word 0x8241148 + .word 0x1e752a8 + .word 0x1991148 + .word 0x1e85bea + .word 0x81e6ab7d + .word 0x2ff + .word 0x81e68b7d + .word 0x1e9497d + .word 0x80031872 + .word 0x1e494aa + .word 0x1ec2148 + .word 0x215296 + .word 0x1f42149 + .word 0x1ce71ff + .word 0x5005302a + .word 0x1c05adc + .word 0x81e64b7d + .word 0x1c0bddc + .word 0x9021948 + .word 0x215291 + .word 0x2403ffff + .word 0x1c2ce06 + .word 0x50000802 + .word 0x2ff + .word 0x818c0bbc + .word 0x1f2917c + .word 0x80000030 + .word 0x215283 + .word 0x8241148 + .word 0x1e75ae8 + .word 0x1991148 + .word 0x1e8642a + .word 0x81e6b37d + .word 0x1e49cea + .word 0x81e6937d + .word 0x1ea517d + .word 0x1e92148 + .word 0x215ad6 + .word 0x1f12149 + .word 0x1cf79ff + .word 0x5005301f + .word 0x1c0631c + .word 0x81e6537d + .word 0x1c0c61c + .word 0x8821948 + .word 0x215ad1 + .word 0x2403ffff + .word 0x1c2cd46 + .word 0x50000802 + .word 0x1f3997c + .word 0x81890bbc + .word 0x2ff + .word 0x80000030 + .word 0x215ac3 + .word 0x8241148 + .word 0x1e76328 + .word 0x1991148 + .word 0x1e84b6a + .word 0x81e6bb7d + .word 0x1e4a52a + .word 0x81e69b7d + .word 0x1eb597d + .word 0x1ea2148 + .word 0x216316 + .word 0x1f22149 + .word 0x1d081ff + .word 0x50053014 + .word 0x1c04a5c + .word 0x81e65b7d + .word 0x1c0ad5c + .word 0x8421948 + .word 0x216311 + .word 0x2403ffff + .word 0x1c2cd86 + .word 0x50000802 + .word 0x1f4a17c + .word 0x818a0bbc + .word 0x2ff + .word 0x80000030 + .word 0x216303 + .word 0x8241148 + .word 0x1e74a68 + .word 0x1991148 + .word 0x1e853aa + .word 0x81e6c37d + .word 0x1e48c6a + .word 0x81e6a37d + .word 0x1ec617d + .word 0x1eb2148 + .word 0x214a56 + .word 0x1f32149 + .word 0x1cd69ff + .word 0x520537cc + .word 0x1c0529c + .word 0x81e6637d + .word 0x1c0b59c + .word 0x400006dc + .word 0x2ff + .word 0x100f0420 + .word 0x2ff + .word 0x400006da + .word 0x2ff + .word 0x100f042e + .word 0x2ff + .word 0x400006d8 + .word 0x2ff + .word 0x100f043b + .word 0x2ff + .word 0x400006d6 + .word 0x2ff + .word 0x100f0448 + .word 0x2ff + .word 0x1e50294 + .word 0x400343 + .word 0x1e60292 + .word 0x2ff + .word 0x8287004 + .word 0x2ff + .word 0x8497004 + .word 0x2ff + .word 0x8837003 + .word 0x426b42 + .word 0x1e70295 + .word 0x2ff + .word 0x800e4230 + .word 0x2ff + .word 0x800e4a70 + .word 0x2ff + .word 0x5200705c + .word 0x2ff + .word 0x80061bfc + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x804d4bfe + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x81e62b7d + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81021bfe + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x802413fe + .word 0x2ff + .word 0x18d1000 + .word 0x2ff + .word 0x80821bfe + .word 0x2ff + .word 0x81e6fb7d + .word 0x2ff + .word 0x1e92000 + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x1ee2001 + .word 0x2ff + .word 0x81890bbc + .word 0x1c26c86 + .word 0x800c6070 + .word 0x2ff + .word 0x802413fe + .word 0x2ff + .word 0x18d1000 + .word 0x2ff + .word 0x80421bfe + .word 0x1e473aa + .word 0x800c0870 + .word 0x2ff + .word 0x1ea2000 + .word 0x2ff + .word 0x80013170 + .word 0x1c04a5c + .word 0x800032b5 + .word 0x1c0949c + .word 0x1ef2001 + .word 0x2ff + .word 0x818a0bbc + .word 0x1c26cc6 + .word 0x81e6337d + .word 0x1e74a68 + .word 0x802413fe + .word 0x1ee717c + .word 0x18d1000 + .word 0x2ff + .word 0x80221bfe + .word 0x1e47bea + .word 0xb0c37ff + .word 0x214a51 + .word 0x1eb2000 + .word 0x2ff + .word 0x80094872 + .word 0x1c0529c + .word 0x810c4bfe + .word 0x1c09cdc + .word 0x80031872 + .word 0x2ff + .word 0x1f02001 + .word 0x214a56 + .word 0x818b0bbc + .word 0x1c26d06 + .word 0x81e6937d + .word 0x1e752a8 + .word 0x802413fe + .word 0x1ef797c + .word 0x18d1000 + .word 0x1e9497d + .word 0x81021bfe + .word 0x1e4842a + .word 0x81e6737d + .word 0x215291 + .word 0x1ec2000 + .word 0x2ff + .word 0x50053021 + .word 0x1c05adc + .word 0x81e64b7d + .word 0x1c0a51c + .word 0x1f12001 + .word 0x215296 + .word 0x818c0bbc + .word 0x1c26d46 + .word 0x81e69b7d + .word 0x1e75ae8 + .word 0x802413fe + .word 0x1f0817c + .word 0x18d1000 + .word 0x1ea517d + .word 0x80821bfe + .word 0x1e48c6a + .word 0x81e67b7d + .word 0x215ad1 + .word 0x1e92000 + .word 0x2ff + .word 0x50053019 + .word 0x1c0631c + .word 0x81e6537d + .word 0x1c0ad5c + .word 0x1ee2001 + .word 0x215ad6 + .word 0x81890bbc + .word 0x1c26c86 + .word 0x81e6a37d + .word 0x1e76328 + .word 0x802413fe + .word 0x1f1897c + .word 0x18d1000 + .word 0x1eb597d + .word 0x80421bfe + .word 0x1e473aa + .word 0x81e6837d + .word 0x216311 + .word 0x1ea2000 + .word 0x2ff + .word 0x50053011 + .word 0x1c04a5c + .word 0x81e65b7d + .word 0x1c0949c + .word 0x1ef2001 + .word 0x216316 + .word 0x818a0bbc + .word 0x1c26cc6 + .word 0x81e6ab7d + .word 0x1e74a68 + .word 0x802413fe + .word 0x1ee717c + .word 0x18d1000 + .word 0x1ec617d + .word 0x80221bfe + .word 0x1e47bea + .word 0x81e68b7d + .word 0x214a51 + .word 0x1eb2000 + .word 0x2ff + .word 0x520537d8 + .word 0x1c0529c + .word 0x81e6637d + .word 0x1c09cdc + .word 0x40000677 + .word 0x2ff + .word 0x100f0491 + .word 0x2ff + .word 0x40000675 + .word 0x2ff + .word 0x100f049c + .word 0x2ff + .word 0x40000673 + .word 0x2ff + .word 0x100f04a6 + .word 0x2ff + .word 0x40000671 + .word 0x2ff + .word 0x100f04b0 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x804d4bfe + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x81e62b7d + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x9021948 + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x8241148 + .word 0x2ff + .word 0x18d1148 + .word 0x2ff + .word 0x8821948 + .word 0x2ff + .word 0x81e6fb7d + .word 0x2ff + .word 0x1e92148 + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x1ee2149 + .word 0x2ff + .word 0x81890bbc + .word 0x1c26c86 + .word 0x800c6070 + .word 0x2ff + .word 0x8241148 + .word 0x2ff + .word 0x18d1148 + .word 0x2ff + .word 0x8421948 + .word 0x1e473aa + .word 0x800c0870 + .word 0x2ff + .word 0x1ea2148 + .word 0x2ff + .word 0x80013170 + .word 0x1c04a5c + .word 0x800032b5 + .word 0x1c0949c + .word 0x1ef2149 + .word 0x2ff + .word 0x818a0bbc + .word 0x1c26cc6 + .word 0x81e6337d + .word 0x1e74a68 + .word 0x8241148 + .word 0x1ee717c + .word 0x18d1148 + .word 0x2ff + .word 0x8221948 + .word 0x1e47bea + .word 0xb0c37ff + .word 0x214a51 + .word 0x1eb2148 + .word 0x2ff + .word 0x80094872 + .word 0x1c0529c + .word 0x810c4bfe + .word 0x1c09cdc + .word 0x80031872 + .word 0x2ff + .word 0x1f02149 + .word 0x214a56 + .word 0x818b0bbc + .word 0x1c26d06 + .word 0x81e6937d + .word 0x1e752a8 + .word 0x8241148 + .word 0x1ef797c + .word 0x18d1148 + .word 0x1e9497d + .word 0x9021948 + .word 0x1e4842a + .word 0x81e6737d + .word 0x215291 + .word 0x1ec2148 + .word 0x2ff + .word 0x50053021 + .word 0x1c05adc + .word 0x81e64b7d + .word 0x1c0a51c + .word 0x1f12149 + .word 0x215296 + .word 0x818c0bbc + .word 0x1c26d46 + .word 0x81e69b7d + .word 0x1e75ae8 + .word 0x8241148 + .word 0x1f0817c + .word 0x18d1148 + .word 0x1ea517d + .word 0x8821948 + .word 0x1e48c6a + .word 0x81e67b7d + .word 0x215ad1 + .word 0x1e92148 + .word 0x2ff + .word 0x50053019 + .word 0x1c0631c + .word 0x81e6537d + .word 0x1c0ad5c + .word 0x1ee2149 + .word 0x215ad6 + .word 0x81890bbc + .word 0x1c26c86 + .word 0x81e6a37d + .word 0x1e76328 + .word 0x8241148 + .word 0x1f1897c + .word 0x18d1148 + .word 0x1eb597d + .word 0x8421948 + .word 0x1e473aa + .word 0x81e6837d + .word 0x216311 + .word 0x1ea2148 + .word 0x2ff + .word 0x50053011 + .word 0x1c04a5c + .word 0x81e65b7d + .word 0x1c0949c + .word 0x1ef2149 + .word 0x216316 + .word 0x818a0bbc + .word 0x1c26cc6 + .word 0x81e6ab7d + .word 0x1e74a68 + .word 0x8241148 + .word 0x1ee717c + .word 0x18d1148 + .word 0x1ec617d + .word 0x8221948 + .word 0x1e47bea + .word 0x81e68b7d + .word 0x214a51 + .word 0x1eb2148 + .word 0x2ff + .word 0x520537d8 + .word 0x1c0529c + .word 0x81e6637d + .word 0x1c09cdc + .word 0x4000061c + .word 0x2ff + .word 0x100f04ec + .word 0x2ff + .word 0x4000061a + .word 0x2ff + .word 0x100f04f7 + .word 0x2ff + .word 0x40000618 + .word 0x2ff + .word 0x100f0501 + .word 0x2ff + .word 0x40000616 + .word 0x2ff + .word 0x100f050b + .word 0x2ff + .word 0x1e50294 + .word 0x2ff + .word 0x1e60292 + .word 0x2ff + .word 0x1f90295 + .word 0x2ff + .word 0x1e10290 + .word 0x2ff + .word 0x1e20291 + .word 0x2ff + .word 0x8287004 + .word 0x2ff + .word 0x8497004 + .word 0x2ff + .word 0x8837003 + .word 0x2ff + .word 0x1e77005 + .word 0x2ff + .word 0x1e87006 + .word 0x2ff + .word 0x1e97007 + .word 0x2ff + .word 0x1ea7008 + .word 0x2ff + .word 0x800e4230 + .word 0x2ff + .word 0x800e4a70 + .word 0x2ff + .word 0x52007069 + .word 0x2ff + .word 0x80061bfc + .word 0x2ff + .word 0x81021bfe + .word 0x1e00613 + .word 0x810c4bfe + .word 0x2ff + .word 0x804d4bfe + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x1f71000 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x8064bbfc + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x80821bfe + .word 0x2ff + .word 0x1eb2000 + .word 0x2ff + .word 0x1ef2001 + .word 0x2ff + .word 0x81ff6b7c + .word 0x182bcc6 + .word 0x1f71000 + .word 0x2ff + .word 0x81e62b7d + .word 0x1eb593c + .word 0x81e6eb7d + .word 0x2ff + .word 0x81fd6b7c + .word 0x1e051bf + .word 0x8064bbfc + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81fe6b7c + .word 0x1eb38bc + .word 0x81e6fb7d + .word 0x1eb40bd + .word 0x81e6eb7d + .word 0x1eb4aca + .word 0x80421bfe + .word 0x2ff + .word 0x1ec2000 + .word 0x2ff + .word 0x1f02001 + .word 0x2ff + .word 0x818b0bbc + .word 0x182bd06 + .word 0x1f71000 + .word 0x2ff + .word 0x81e6f37d + .word 0x1ec613c + .word 0x8053c33c + .word 0x2ff + .word 0x800c6070 + .word 0x1e051bf + .word 0x8064bbfc + .word 0x2ff + .word 0x800c0870 + .word 0x1ec38bc + .word 0x80013170 + .word 0x1ec40bd + .word 0x800032b5 + .word 0x1ec4b0a + .word 0x80221bfe + .word 0x1c05adc + .word 0x1ed2000 + .word 0x1c09cdc + .word 0x1f12001 + .word 0x2ff + .word 0x818c0bbc + .word 0x182bd46 + .word 0x1f71000 + .word 0x1f95ae8 + .word 0x80031872 + .word 0x1ed693c + .word 0x8054c33c + .word 0x2ff + .word 0x81e6337d + .word 0x1e051bf + .word 0x8064bbfc + .word 0x215ad1 + .word 0xb0c37ff + .word 0x1ed38bc + .word 0x80094872 + .word 0x1ed40bd + .word 0x810c4bfe + .word 0x1ed4b4a + .word 0x81021bfe + .word 0x1c0631c + .word 0x1ee2000 + .word 0x1c0a51c + .word 0x1f22001 + .word 0x215ad6 + .word 0x818d0bbc + .word 0x182bd86 + .word 0x1f71000 + .word 0x1f96328 + .word 0x80000030 + .word 0x1ee713c + .word 0x81e69b7d + .word 0x1eb597d + .word 0x81e67b7d + .word 0x1e051bf + .word 0x8064bbfc + .word 0x216311 + .word 0x8055c33c + .word 0x1ee38bc + .word 0x50053027 + .word 0x1ee40bd + .word 0x81e65b7d + .word 0x1ee4b8a + .word 0x80821bfe + .word 0x1c06b5c + .word 0x1eb2000 + .word 0x1c0ad5c + .word 0x1ef2001 + .word 0x216316 + .word 0x818e0bbc + .word 0x182bcc6 + .word 0x1f71000 + .word 0x1f96b68 + .word 0x80000030 + .word 0x1eb593c + .word 0x81e6a37d + .word 0x1ec617d + .word 0x81e6837d + .word 0x1e051bf + .word 0x8064bbfc + .word 0x216b51 + .word 0x8056c33c + .word 0x1eb38bc + .word 0x5005301d + .word 0x1eb40bd + .word 0x81e6637d + .word 0x1eb4aca + .word 0x80421bfe + .word 0x1c0739c + .word 0x1ec2000 + .word 0x1c0b59c + .word 0x1f02001 + .word 0x216b56 + .word 0x818b0bbc + .word 0x182bd06 + .word 0x1f71000 + .word 0x1f973a8 + .word 0x80000030 + .word 0x1ec613c + .word 0x81e6ab7d + .word 0x1ed697d + .word 0x81e68b7d + .word 0x1e051bf + .word 0x8064bbfc + .word 0x217391 + .word 0x8053c33c + .word 0x1ec38bc + .word 0x50053013 + .word 0x1ec40bd + .word 0x81e66b7d + .word 0x1ec4b0a + .word 0x80221bfe + .word 0x1c05adc + .word 0x1ed2000 + .word 0x1c09cdc + .word 0x1f12001 + .word 0x217396 + .word 0x818c0bbc + .word 0x182bd46 + .word 0x1f71000 + .word 0x1f95ae8 + .word 0x80031872 + .word 0x1ed693c + .word 0x81e6b37d + .word 0x1ee717d + .word 0x81e6937d + .word 0x1e051bf + .word 0x8064bbfc + .word 0x215ad1 + .word 0x8054c33c + .word 0x1ed38bc + .word 0x520537d1 + .word 0x1ed40bd + .word 0x81e6737d + .word 0x1ed4b4a + .word 0x400005a4 + .word 0x2ff + .word 0x100f055d + .word 0x2ff + .word 0x400005a2 + .word 0x2ff + .word 0x100f0569 + .word 0x2ff + .word 0x400005a0 + .word 0x2ff + .word 0x100f0575 + .word 0x2ff + .word 0x4000059e + .word 0x2ff + .word 0x100f0581 + .word 0x2ff + .word 0x9021948 + .word 0x1e00613 + .word 0x810c4bfe + .word 0x2ff + .word 0x804d4bfe + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x1f71148 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x8064bbfc + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x8821948 + .word 0x2ff + .word 0x1eb2148 + .word 0x2ff + .word 0x1ef2149 + .word 0x2ff + .word 0x81ff6b7c + .word 0x182bcc6 + .word 0x1f71148 + .word 0x2ff + .word 0x81e62b7d + .word 0x1eb593c + .word 0x81e6eb7d + .word 0x2ff + .word 0x81fd6b7c + .word 0x1e051bf + .word 0x8064bbfc + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81fe6b7c + .word 0x1eb38bc + .word 0x81e6fb7d + .word 0x1eb40bd + .word 0x81e6eb7d + .word 0x1eb4aca + .word 0x8421948 + .word 0x2ff + .word 0x1ec2148 + .word 0x2ff + .word 0x1f02149 + .word 0x2ff + .word 0x818b0bbc + .word 0x182bd06 + .word 0x1f71148 + .word 0x2ff + .word 0x81e6f37d + .word 0x1ec613c + .word 0x8053c33c + .word 0x2ff + .word 0x800c6070 + .word 0x1e051bf + .word 0x8064bbfc + .word 0x2ff + .word 0x800c0870 + .word 0x1ec38bc + .word 0x80013170 + .word 0x1ec40bd + .word 0x800032b5 + .word 0x1ec4b0a + .word 0x8221948 + .word 0x1c05adc + .word 0x1ed2148 + .word 0x1c09cdc + .word 0x1f12149 + .word 0x2ff + .word 0x818c0bbc + .word 0x182bd46 + .word 0x1f71148 + .word 0x1f95ae8 + .word 0x80031872 + .word 0x1ed693c + .word 0x8054c33c + .word 0x2ff + .word 0x81e6337d + .word 0x1e051bf + .word 0x8064bbfc + .word 0x215ad1 + .word 0xb0c37ff + .word 0x1ed38bc + .word 0x80094872 + .word 0x1ed40bd + .word 0x810c4bfe + .word 0x1ed4b4a + .word 0x9021948 + .word 0x1c0631c + .word 0x1ee2148 + .word 0x1c0a51c + .word 0x1f22149 + .word 0x215ad6 + .word 0x818d0bbc + .word 0x182bd86 + .word 0x1f71148 + .word 0x1f96328 + .word 0x80000030 + .word 0x1ee713c + .word 0x81e69b7d + .word 0x1eb597d + .word 0x81e67b7d + .word 0x1e051bf + .word 0x8064bbfc + .word 0x216311 + .word 0x8055c33c + .word 0x1ee38bc + .word 0x50053027 + .word 0x1ee40bd + .word 0x81e65b7d + .word 0x1ee4b8a + .word 0x8821948 + .word 0x1c06b5c + .word 0x1eb2148 + .word 0x1c0ad5c + .word 0x1ef2149 + .word 0x216316 + .word 0x818e0bbc + .word 0x182bcc6 + .word 0x1f71148 + .word 0x1f96b68 + .word 0x80000030 + .word 0x1eb593c + .word 0x81e6a37d + .word 0x1ec617d + .word 0x81e6837d + .word 0x1e051bf + .word 0x8064bbfc + .word 0x216b51 + .word 0x8056c33c + .word 0x1eb38bc + .word 0x5005301d + .word 0x1eb40bd + .word 0x81e6637d + .word 0x1eb4aca + .word 0x8421948 + .word 0x1c0739c + .word 0x1ec2148 + .word 0x1c0b59c + .word 0x1f02149 + .word 0x216b56 + .word 0x818b0bbc + .word 0x182bd06 + .word 0x1f71148 + .word 0x1f973a8 + .word 0x80000030 + .word 0x1ec613c + .word 0x81e6ab7d + .word 0x1ed697d + .word 0x81e68b7d + .word 0x1e051bf + .word 0x8064bbfc + .word 0x217391 + .word 0x8053c33c + .word 0x1ec38bc + .word 0x50053013 + .word 0x1ec40bd + .word 0x81e66b7d + .word 0x1ec4b0a + .word 0x8221948 + .word 0x1c05adc + .word 0x1ed2148 + .word 0x1c09cdc + .word 0x1f12149 + .word 0x217396 + .word 0x818c0bbc + .word 0x182bd46 + .word 0x1f71148 + .word 0x1f95ae8 + .word 0x80031872 + .word 0x1ed693c + .word 0x81e6b37d + .word 0x1ee717d + .word 0x81e6937d + .word 0x1e051bf + .word 0x8064bbfc + .word 0x215ad1 + .word 0x8054c33c + .word 0x1ed38bc + .word 0x520537d1 + .word 0x1ed40bd + .word 0x81e6737d + .word 0x1ed4b4a + .word 0x4000053c + .word 0x2ff + .word 0x100f05c5 + .word 0x2ff + .word 0x4000053a + .word 0x2ff + .word 0x100f05d1 + .word 0x2ff + .word 0x40000538 + .word 0x2ff + .word 0x100f05dd + .word 0x2ff + .word 0x40000536 + .word 0x2ff + .word 0x100f05e9 + .word 0x2ff + .word 0x22000000 + .word 0x2ff + .word 0x800707f2 + .word 0x2ff + .word 0x5c006009 + .word 0x2ff + .word 0x80094872 + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x8814fff + .word 0x2ff + .word 0x84d4fff + .word 0x2ff + .word 0x5000603e + .word 0x2ff + .word 0x810e53fe + .word 0x2ff + .word 0x58000815 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x81e62b7d + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81e6fb7d + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x80261bfc + .word 0x2ff + .word 0x81e31b3d + .word 0x2ff + .word 0x800b73b0 + .word 0x2ff + .word 0x5e00680b + .word 0x2ff + .word 0x810e53ff + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x803833fd + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x803833fd + .word 0x2ff + .word 0x81e62b7d + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81e6fb7d + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x81e31b3d + .word 0x2ff + .word 0x800b73b0 + .word 0x2ff + .word 0x810e53ff + .word 0x2ff + .word 0x1e40298 + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x1e20291 + .word 0x2ff + .word 0x1e50294 + .word 0x400703 + .word 0x1e60292 + .word 0x2ff + .word 0x1ea0295 + .word 0x2ff + .word 0x1eb0296 + .word 0x2ff + .word 0x1e10290 + .word 0x42e702 + .word 0x8287004 + .word 0x2ff + .word 0x8497004 + .word 0x2ff + .word 0x8837003 + .word 0x2ff + .word 0x22000000 + .word 0x2ff + .word 0x800707f2 + .word 0x2ff + .word 0x1e47005 + .word 0x1e0041b + .word 0x1e77006 + .word 0x1e0045b + .word 0x52007076 + .word 0x1e0049b + .word 0x1e87007 + .word 0x1e004db + .word 0x81021bfe + .word 0x2ff + .word 0x1e97008 + .word 0x2ff + .word 0x800e4230 + .word 0x2ff + .word 0x800e4a70 + .word 0x2ff + .word 0x1bc1000 + .word 0x2ff + .word 0x80061bfc + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x804d4bfe + .word 0x2ff + .word 0x8064e3fc + .word 0x1c2e606 + .word 0x110b0000 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x80821bfe + .word 0x2ff + .word 0x1ec2000 + .word 0x2ff + .word 0x1f42001 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x1bc1000 + .word 0x1ec613c + .word 0x803833fd + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x81e62b7d + .word 0x1c2e646 + .word 0x81e6eb7d + .word 0x1e049bf + .word 0x8064e3fc + .word 0x2ff + .word 0x81e6f37d + .word 0x1ec20bc + .word 0x81e6fb7d + .word 0x2ff + .word 0x80421bfe + .word 0x2ff + .word 0x1ed2000 + .word 0x1ec38bd + .word 0x1f52001 + .word 0x1ec430a + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x1bc1000 + .word 0x1ed693c + .word 0x818c0bbc + .word 0x1eb642a + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x800c6070 + .word 0x1c2e686 + .word 0x800c0870 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x2ff + .word 0x80013170 + .word 0x1ed20bc + .word 0x800032b5 + .word 0x1c0631c + .word 0x80221bfe + .word 0x1c0c61c + .word 0x1ee2000 + .word 0x1ed38bd + .word 0x1f62001 + .word 0x1ed434a + .word 0x81e6337d + .word 0x1ea6328 + .word 0xb0c37ff + .word 0x2ff + .word 0x1bc1000 + .word 0x1ee713c + .word 0x818d0bbc + .word 0x1eb6c6a + .word 0x80094872 + .word 0x216316 + .word 0x810c4bfe + .word 0x1d081ff + .word 0x80031872 + .word 0x1c2e6c6 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x216311 + .word 0x2403ffff + .word 0x1ee20bc + .word 0x50000802 + .word 0x1c06b5c + .word 0x81021bfe + .word 0x1c0ce5c + .word 0x80000030 + .word 0x216303 + .word 0x1ef2000 + .word 0x1ee38bd + .word 0x1f72001 + .word 0x1ee438a + .word 0x81c6c37d + .word 0x1ea6b68 + .word 0x81e6a37d + .word 0x1ec617d + .word 0x1bc1000 + .word 0x1ef793c + .word 0x818e0bbc + .word 0x1eb74aa + .word 0x50053030 + .word 0x216b56 + .word 0x81e6637d + .word 0x1d189ff + .word 0x80000030 + .word 0x1c2e606 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x216b51 + .word 0x2403ffff + .word 0x1ef20bc + .word 0x50000802 + .word 0x1c0739c + .word 0x80821bfe + .word 0x1c0d69c + .word 0x80000030 + .word 0x216b43 + .word 0x1ec2000 + .word 0x1ef38bd + .word 0x1f42001 + .word 0x1ef43ca + .word 0x81e6cb7d + .word 0x1ea73a8 + .word 0x81e6ab7d + .word 0x1ed697d + .word 0x1bc1000 + .word 0x1ec613c + .word 0x818f0bbc + .word 0x1eb7cea + .word 0x50053023 + .word 0x217396 + .word 0x81e66b7d + .word 0x1d291ff + .word 0x80000030 + .word 0x1c2e646 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x217391 + .word 0x2403ffff + .word 0x1ec20bc + .word 0x50000802 + .word 0x1c07bdc + .word 0x80421bfe + .word 0x1c0dedc + .word 0x80000030 + .word 0x217383 + .word 0x1ed2000 + .word 0x1ec38bd + .word 0x1f52001 + .word 0x1ec430a + .word 0x81e6d37d + .word 0x1ea7be8 + .word 0x81e6b37d + .word 0x1ee717d + .word 0x1bc1000 + .word 0x1ed693c + .word 0x818c0bbc + .word 0x1eb642a + .word 0x50053016 + .word 0x217bd6 + .word 0x81e6737d + .word 0x1d399ff + .word 0x80000030 + .word 0x1c2e686 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x217bd1 + .word 0x2403ffff + .word 0x1ed20bc + .word 0x50000802 + .word 0x1c0631c + .word 0x80221bfe + .word 0x1c0c61c + .word 0x80000030 + .word 0x217bc3 + .word 0x1ee2000 + .word 0x1ed38bd + .word 0x1f62001 + .word 0x1ed434a + .word 0x81e6db7d + .word 0x1ea6328 + .word 0x81e6bb7d + .word 0x1ef797d + .word 0x1bc1000 + .word 0x1ee713c + .word 0x818d0bbc + .word 0x1eb6c6a + .word 0x520537c5 + .word 0x216316 + .word 0x81e67b7d + .word 0x1d081ff + .word 0x4000072e + .word 0x2ff + .word 0x100f0692 + .word 0x2ff + .word 0x4000072c + .word 0x2ff + .word 0x100f06a1 + .word 0x2ff + .word 0x4000072a + .word 0x2ff + .word 0x100f06b0 + .word 0x2ff + .word 0x40000728 + .word 0x2ff + .word 0x100f06bf + .word 0x2ff + .word 0x9021948 + .word 0x2ff + .word 0x1e97008 + .word 0x2ff + .word 0x800e4230 + .word 0x2ff + .word 0x800e4a70 + .word 0x2ff + .word 0x1bc1148 + .word 0x2ff + .word 0x80061bfc + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x804d4bfe + .word 0x2ff + .word 0x8064e3fc + .word 0x1c2e606 + .word 0x110b0000 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x8821948 + .word 0x2ff + .word 0x1ec2148 + .word 0x2ff + .word 0x1f42149 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x1bc1148 + .word 0x1ec613c + .word 0x803833fd + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x81e62b7d + .word 0x1c2e646 + .word 0x81e6eb7d + .word 0x1e049bf + .word 0x8064e3fc + .word 0x2ff + .word 0x81e6f37d + .word 0x1ec20bc + .word 0x81e6fb7d + .word 0x2ff + .word 0x8421948 + .word 0x2ff + .word 0x1ed2148 + .word 0x1ec38bd + .word 0x1f52149 + .word 0x1ec430a + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x1bc1148 + .word 0x1ed693c + .word 0x818c0bbc + .word 0x1eb642a + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x800c6070 + .word 0x1c2e686 + .word 0x800c0870 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x2ff + .word 0x80013170 + .word 0x1ed20bc + .word 0x800032b5 + .word 0x1c0631c + .word 0x8221948 + .word 0x1c0c61c + .word 0x1ee2148 + .word 0x1ed38bd + .word 0x1f62149 + .word 0x1ed434a + .word 0x81e6337d + .word 0x1ea6328 + .word 0xb0c37ff + .word 0x2ff + .word 0x1bc1148 + .word 0x1ee713c + .word 0x818d0bbc + .word 0x1eb6c6a + .word 0x80094872 + .word 0x216316 + .word 0x810c4bfe + .word 0x1d081ff + .word 0x80031872 + .word 0x1c2e6c6 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x216311 + .word 0x2403ffff + .word 0x1ee20bc + .word 0x50000802 + .word 0x1c06b5c + .word 0x9021948 + .word 0x1c0ce5c + .word 0x80000030 + .word 0x216303 + .word 0x1ef2148 + .word 0x1ee38bd + .word 0x1f72149 + .word 0x1ee438a + .word 0x81c6c37d + .word 0x1ea6b68 + .word 0x81e6a37d + .word 0x1ec617d + .word 0x1bc1148 + .word 0x1ef793c + .word 0x818e0bbc + .word 0x1eb74aa + .word 0x50053030 + .word 0x216b56 + .word 0x81e6637d + .word 0x1d189ff + .word 0x80000030 + .word 0x1c2e606 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x216b51 + .word 0x2403ffff + .word 0x1ef20bc + .word 0x50000802 + .word 0x1c0739c + .word 0x8821948 + .word 0x1c0d69c + .word 0x80000030 + .word 0x216b43 + .word 0x1ec2148 + .word 0x1ef38bd + .word 0x1f42149 + .word 0x1ef43ca + .word 0x81e6cb7d + .word 0x1ea73a8 + .word 0x81e6ab7d + .word 0x1ed697d + .word 0x1bc1148 + .word 0x1ec613c + .word 0x818f0bbc + .word 0x1eb7cea + .word 0x50053023 + .word 0x217396 + .word 0x81e66b7d + .word 0x1d291ff + .word 0x80000030 + .word 0x1c2e646 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x217391 + .word 0x2403ffff + .word 0x1ec20bc + .word 0x50000802 + .word 0x1c07bdc + .word 0x8421948 + .word 0x1c0dedc + .word 0x80000030 + .word 0x217383 + .word 0x1ed2148 + .word 0x1ec38bd + .word 0x1f52149 + .word 0x1ec430a + .word 0x81e6d37d + .word 0x1ea7be8 + .word 0x81e6b37d + .word 0x1ee717d + .word 0x1bc1148 + .word 0x1ed693c + .word 0x818c0bbc + .word 0x1eb642a + .word 0x50053016 + .word 0x217bd6 + .word 0x81e6737d + .word 0x1d399ff + .word 0x80000030 + .word 0x1c2e686 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x217bd1 + .word 0x2403ffff + .word 0x1ed20bc + .word 0x50000802 + .word 0x1c0631c + .word 0x8221948 + .word 0x1c0c61c + .word 0x80000030 + .word 0x217bc3 + .word 0x1ee2148 + .word 0x1ed38bd + .word 0x1f62149 + .word 0x1ed434a + .word 0x81e6db7d + .word 0x1ea6328 + .word 0x81e6bb7d + .word 0x1ef797d + .word 0x1bc1148 + .word 0x1ee713c + .word 0x818d0bbc + .word 0x1eb6c6a + .word 0x520537c5 + .word 0x216316 + .word 0x81e67b7d + .word 0x1d081ff + .word 0x400006b9 + .word 0x2ff + .word 0x100f0707 + .word 0x2ff + .word 0x400006b7 + .word 0x2ff + .word 0x100f0716 + .word 0x2ff + .word 0x400006b5 + .word 0x2ff + .word 0x100f0725 + .word 0x2ff + .word 0x400006b3 + .word 0x2ff + .word 0x100f0734 + .word 0x2ff \ No newline at end of file diff --git a/test/decompiler/vu_reference/tie-near-result.txt b/test/decompiler/vu_reference/tie-near-result.txt new file mode 100644 index 0000000000..e44aae07ae --- /dev/null +++ b/test/decompiler/vu_reference/tie-near-result.txt @@ -0,0 +1,1892 @@ + b L13 | nop + mr32.xyzw vf21, vf21 | nop + b L1 | nop + nop | nop + nop | nop :e + nop | nop + b L3 | nop + iaddi vi02, vi00, 0x0 | subx.xz vf21, vf23, vf21 + b L2 | nop + nop | nop +L2: + lq.xyzw vf21, 967(vi00) | nop + lq.xz vf23, 966(vi00) | nop + lq.xyzw vf22, 968(vi00) | nop + sq.xyzw vf00, 977(vi00) | nop + sq.xyzw vf00, 984(vi00) | nop + sq.xyzw vf00, 991(vi00) | nop + sq.xyzw vf00, 998(vi00) | nop + sq.xyzw vf00, 1005(vi00) | nop + sq.xyzw vf00, 1012(vi00) | nop + iaddiu vi01, vi00, 0x6e3 | nop + isw.z vi01, 977(vi00) | nop + iaddiu vi01, vi00, 0x6e5 | nop + isw.z vi01, 984(vi00) | nop + iaddiu vi01, vi00, 0x6e7 | nop + isw.z vi01, 991(vi00) | nop + iaddiu vi01, vi00, 0x6e9 | nop + isw.z vi01, 998(vi00) | nop + iaddiu vi01, vi00, 0x6eb | nop + isw.z vi01, 1005(vi00) | nop + iaddiu vi01, vi00, 0x6ed | nop :e + isw.z vi01, 1012(vi00) | nop +L3: + lq.xyz vf01, 969(vi00) | nop + ilwr.w vi04, vi02 | nop + ilw.w vi09, 1(vi02) | nop + mtir vi06, vf21.y | nop + lqi.xyzw vf02, vi02 | suby.xz vf21, vf21, vf21 + lqi.xyzw vf03, vi02 | nop + lqi.xyzw vf04, vi02 | nop + lqi.xyzw vf05, vi02 | nop + mtir vi05, vf21.x | nop + lqi.xyzw vf06, vi02 | subw.w vf01, vf01, vf01 +L4: + iadd vi03, vi04, vi05 | nop + iadd vi04, vi04, vi06 | nop + iaddi vi09, vi09, -0x1 | nop + sqi.xyzw vf01, vi03 | nop + sqi.xyzw vf02, vi03 | nop + sqi.xyzw vf03, vi03 | nop + sqi.xyzw vf04, vi03 | nop + sqi.xyzw vf05, vi03 | nop + sqi.xyzw vf06, vi03 | nop + sqi.xyzw vf01, vi04 | nop + sqi.xyzw vf02, vi04 | nop + sqi.xyzw vf03, vi04 | nop + sqi.xyzw vf04, vi04 | nop + sqi.xyzw vf05, vi04 | nop + sqi.xyzw vf06, vi04 | nop + ilwr.w vi04, vi02 | nop + lqi.xyzw vf02, vi02 | nop + lqi.xyzw vf03, vi02 | nop + lqi.xyzw vf04, vi02 | nop + lqi.xyzw vf05, vi02 | nop + ibgtz vi09, L4 | nop + lqi.xyzw vf06, vi02 | nop + mtir vi09, vf02.w | nop + iaddi vi02, vi02, -0x2 | subw.w vf07, vf07, vf07 + ilwr.x vi07, vi02 | nop + ilwr.y vi08, vi02 | nop + ilwr.z vi04, vi02 | nop + iaddi vi09, vi09, -0x1 | nop + iaddi vi02, vi02, 0x1 | nop + ibeq vi00, vi09, L6 | nop + lq.xyz vf07, 970(vi08) | nop +L5: + iadd vi03, vi04, vi05 | nop + iadd vi04, vi04, vi06 | nop + iaddi vi09, vi09, -0x1 | nop + sq.xyzw vf07, 0(vi03) | nop + iswr.x vi07, vi03 | nop + sq.xyzw vf07, 0(vi04) | nop + iswr.x vi07, vi04 | nop + ilwr.x vi07, vi02 | nop + ilwr.y vi08, vi02 | nop + ilwr.z vi04, vi02 | nop + iaddi vi02, vi02, 0x1 | nop + ibne vi00, vi09, L5 | nop + lq.xyz vf07, 970(vi08) | nop +L6: + iaddiu vi07, vi07, 0x4000 | nop + iaddiu vi07, vi07, 0x4000 | nop + iadd vi03, vi04, vi05 | nop + iadd vi04, vi04, vi06 | nop + sq.xyzw vf07, 0(vi03) | nop + iswr.x vi07, vi03 | nop + sq.xyzw vf07, 0(vi04) | nop + iswr.x vi07, vi04 | nop + mtir vi12, vf04.x | nop + mtir vi13, vf04.y | nop + iaddiu vi11, vi00, 0x32 | nop + 64.0 | nop :i + iaddiu vi12, vi12, 0x32 | nop + lqi.xyzw vf06, vi11 | nop + lqi.xyzw vf12, vi11 | nop + nop | nop + nop | nop + nop | itof0.xyzw vf06, vf06 + lqi.xyzw vf07, vi11 | itof12.xyz vf12, vf12 + lqi.xyzw vf13, vi11 | itof0.w vf12, vf12 + nop | nop + ibeq vi12, vi11, L8 | muli.xyz vf06, vf06, I + nop | itof0.xyzw vf07, vf07 +L7: + lqi.xyzw vf08, vi11 | itof12.xyz vf13, vf13 + lqi.xyzw vf14, vi11 | itof0.w vf13, vf13 + sq.xyzw vf12, -5(vi11) | nop + ibeq vi12, vi11, L8 | muli.xyz vf07, vf07, I + sq.xyzw vf06, -6(vi11) | itof0.xyzw vf08, vf08 + lqi.xyzw vf06, vi11 | itof12.xyz vf14, vf14 + lqi.xyzw vf12, vi11 | itof0.w vf14, vf14 + sq.xyzw vf13, -5(vi11) | nop + ibeq vi12, vi11, L8 | muli.xyz vf08, vf08, I + sq.xyzw vf07, -6(vi11) | itof0.xyzw vf06, vf06 + lqi.xyzw vf07, vi11 | itof12.xyz vf12, vf12 + lqi.xyzw vf13, vi11 | itof0.w vf12, vf12 + sq.xyzw vf14, -5(vi11) | nop + ibne vi12, vi11, L7 | muli.xyz vf06, vf06, I + sq.xyzw vf08, -6(vi11) | itof0.xyzw vf07, vf07 +L8: + iaddi vi11, vi11, -0x4 | nop + iadd vi13, vi13, vi11 | nop + ior vi02, vi11, vi00 | nop + lqi.xyzw vf09, vi11 | nop + lqi.xyzw vf06, vi11 | nop + lqi.xyzw vf12, vi11 | nop + nop | nop + nop | nop + ibeq vi13, vi11, L10 | nop + nop | itof0.xyzw vf09, vf09 + lqi.xyzw vf10, vi11 | itof0.xyzw vf06, vf06 + lqi.xyzw vf07, vi11 | itof0.w vf12, vf12 + lqi.xyzw vf13, vi11 | itof12.xyz vf12, vf12 + nop | nop + nop | muli.xyz vf09, vf09, I + ibeq vi13, vi11, L10 | muli.xyz vf06, vf06, I + nop | itof0.xyzw vf10, vf10 +L9: + lqi.xyzw vf11, vi11 | itof0.xyzw vf07, vf07 + lqi.xyzw vf08, vi11 | itof0.w vf13, vf13 + lqi.xyzw vf14, vi11 | itof12.xyz vf13, vf13 + sqi.xyzw vf09, vi02 | nop + sqi.xyzw vf06, vi02 | muli.xyz vf10, vf10, I + ibeq vi13, vi11, L10 | muli.xyz vf07, vf07, I + sqi.xyzw vf12, vi02 | itof0.xyzw vf11, vf11 + lqi.xyzw vf09, vi11 | itof0.xyzw vf08, vf08 + lqi.xyzw vf06, vi11 | itof0.w vf14, vf14 + lqi.xyzw vf12, vi11 | itof12.xyz vf14, vf14 + sqi.xyzw vf10, vi02 | nop + sqi.xyzw vf07, vi02 | muli.xyz vf11, vf11, I + ibeq vi13, vi11, L10 | muli.xyz vf08, vf08, I + sqi.xyzw vf13, vi02 | itof0.xyzw vf09, vf09 + lqi.xyzw vf10, vi11 | itof0.xyzw vf06, vf06 + lqi.xyzw vf07, vi11 | itof0.w vf12, vf12 + lqi.xyzw vf13, vi11 | itof12.xyz vf12, vf12 + sqi.xyzw vf11, vi02 | nop + sqi.xyzw vf08, vi02 | muli.xyz vf09, vf09, I + ibne vi13, vi11, L9 | muli.xyz vf06, vf06, I + sqi.xyzw vf14, vi02 | itof0.xyzw vf10, vf10 +L10: + mtir vi01, vf04.z | nop + mtir vi05, vf02.x | nop + mtir vi14, vf02.y | nop + mtir vi04, vf03.x | nop + ibne vi00, vi01, L11 | nop + isubiu vi09, vi00, 0x7fff | nop + b L12 | nop + lq.xyzw vf05, 975(vi00) | nop +L11: + lq.xyzw vf05, 976(vi00) | nop +L12: + iaddiu vi01, vi00, 0x3c6 | nop + mtir vi06, vf03.y | nop + mtir vi07, vf03.z | nop + mtir vi08, vf03.w | nop + iaddi vi15, vi00, 0x0 | nop + mtir vi03, vf22.x | nop + iaddiu vi02, vi00, 0x32 | nop + sq.xyzw vf01, 0(vi01) | nop + sq.xyzw vf05, 1(vi01) | nop + iswr.x vi09, vi01 | nop + mr32.xyzw vf21, vf21 | nop + mfir.y vf23, vi00 | nop + mfir.w vf23, vi00 | nop + xgkick vi01 | nop + nop | nop :e + nop | nop +L13: + lqi.xyzw vf05, vi02 | nop + lq.xyzw vf24, 6(vi03) | nop + lq.xyzw vf04, 3(vi03) | nop + lq.xyzw vf01, 0(vi03) | nop + lq.xyzw vf02, 1(vi03) | nop + lq.xyzw vf03, 2(vi03) | nop + mtir vi09, vf24.x | nop + lqi.xyzw vf17, vi02 | mulaw.xyzw ACC, vf04, vf00 + lq.xyzw vf27, 4(vi03) | maddax.xyzw ACC, vf01, vf05 + nop | madday.xyzw ACC, vf02, vf05 + lq.xyzw vf13, 838(vi09) | maddz.xyzw vf09, vf03, vf05 + lqi.xyzw vf06, vi02 | nop + iaddi vi03, vi03, 0x7 | nop + mtir vi09, vf24.y | nop + div Q, vf00.w, vf09.w | mulaw.xyzw ACC, vf04, vf00 + lqi.xyzw vf18, vi02 | maddax.xyzw ACC, vf01, vf06 + mtir vi01, vf21.x | madday.xyzw ACC, vf02, vf06 + lq.xyzw vf14, 838(vi09) | maddz.xyzw vf10, vf03, vf06 + isub vi01, vi01, vi15 | nop + iadd vi04, vi04, vi01 | nop + iadd vi06, vi06, vi01 | nop + lqi.xyzw vf07, vi02 | nop + div Q, vf00.w, vf10.w | mul.xyz vf17, vf17, Q + mtir vi09, vf24.z | addx.w vf05, vf05, vf21 + lqi.xyzw vf19, vi02 | mulaw.xyzw ACC, vf04, vf00 + iadd vi07, vi07, vi01 | maddax.xyzw ACC, vf01, vf07 + iadd vi08, vi08, vi01 | madday.xyzw ACC, vf02, vf07 + lq.xyzw vf15, 838(vi09) | nop + ibeq vi04, vi12, L44 | maddz.xyzw vf11, vf03, vf07 + iadd vi15, vi15, vi01 | nop +L14: + mtir vi12, vf05.w | nop + lqi.xyzw vf08, vi02 | nop + div Q, vf00.w, vf11.w | mul.xyz vf18, vf18, Q + mtir vi09, vf24.w | addx.w vf06, vf06, vf21 + lqi.xyzw vf20, vi02 | mulaw.xyzw ACC, vf04, vf00 + sq.xyzw vf17, 0(vi12) | maddax.xyzw ACC, vf01, vf08 + sq.xyzw vf13, 1(vi12) | madday.xyzw ACC, vf02, vf08 + lq.xyzw vf16, 838(vi09) | nop + ibeq vi04, vi12, L17 | maddz.xyzw vf12, vf03, vf08 + sq.xyzw vf09, 2(vi12) | nop + lqi.xyzw vf24, vi03 | nop + mtir vi12, vf06.w | nop + lqi.xyzw vf05, vi02 | nop + div Q, vf00.w, vf12.w | mul.xyz vf19, vf19, Q + mtir vi09, vf24.x | addx.w vf07, vf07, vf21 + lqi.xyzw vf17, vi02 | mulaw.xyzw ACC, vf04, vf00 + sq.xyzw vf18, 0(vi12) | maddax.xyzw ACC, vf01, vf05 + sq.xyzw vf14, 1(vi12) | madday.xyzw ACC, vf02, vf05 + lq.xyzw vf13, 838(vi09) | nop + ibeq vi04, vi12, L16 | maddz.xyzw vf09, vf03, vf05 + sq.xyzw vf10, 2(vi12) | nop + mtir vi12, vf07.w | nop + lqi.xyzw vf06, vi02 | nop + div Q, vf00.w, vf09.w | mul.xyz vf20, vf20, Q + mtir vi09, vf24.y | addx.w vf08, vf08, vf21 + lqi.xyzw vf18, vi02 | mulaw.xyzw ACC, vf04, vf00 + sq.xyzw vf19, 0(vi12) | maddax.xyzw ACC, vf01, vf06 + sq.xyzw vf15, 1(vi12) | madday.xyzw ACC, vf02, vf06 + lq.xyzw vf14, 838(vi09) | nop + ibeq vi04, vi12, L15 | maddz.xyzw vf10, vf03, vf06 + sq.xyzw vf11, 2(vi12) | nop + mtir vi12, vf08.w | nop + lqi.xyzw vf07, vi02 | nop + div Q, vf00.w, vf10.w | mul.xyz vf17, vf17, Q + mtir vi09, vf24.z | addx.w vf05, vf05, vf21 + lqi.xyzw vf19, vi02 | mulaw.xyzw ACC, vf04, vf00 + sq.xyzw vf20, 0(vi12) | maddax.xyzw ACC, vf01, vf07 + sq.xyzw vf16, 1(vi12) | madday.xyzw ACC, vf02, vf07 + lq.xyzw vf15, 838(vi09) | nop + ibne vi04, vi12, L14 | maddz.xyzw vf11, vf03, vf07 + sq.xyzw vf12, 2(vi12) | nop + mtir vi12, vf05.w | nop + ibne vi00, vi05, L28 | nop + lqi.xyzw vf08, vi02 | mul.xyz vf18, vf18, Q + div Q, vf00.w, vf11.w | addx.w vf06, vf06, vf21 + mtir vi09, vf24.w | mulaw.xyzw ACC, vf04, vf00 + lqi.xyzw vf24, vi03 | nop + sq.xyzw vf17, 0(vi12) | addx.w vf07, vf07, vf21 + sq.xyzw vf13, 1(vi12) | maddax.xyzw ACC, vf01, vf08 + lqi.xyzw vf20, vi02 | madday.xyzw ACC, vf02, vf08 + lq.xyzw vf16, 838(vi09) | nop + lqi.xyzw vf05, vi02 | maddz.xyzw vf12, vf03, vf08 + sq.xyzw vf09, 2(vi12) | nop + mtir vi12, vf06.w | mul.xyz vf19, vf19, Q + lqi.xyzw vf17, vi02 | mulaw.xyzw ACC, vf04, vf00 + mtir vi09, vf24.x | maddax.xyzw ACC, vf01, vf05 + nop | madday.xyzw ACC, vf02, vf05 + div Q, vf00.w, vf12.w | nop + sq.xyzw vf18, 0(vi12) | maddz.xyzw vf09, vf03, vf05 + sq.xyzw vf14, 1(vi12) | nop + sq.xyzw vf10, 2(vi12) | nop + mtir vi12, vf07.w | nop + lq.xyzw vf13, 838(vi09) | addx.w vf08, vf08, vf21 + div Q, vf00.w, vf09.w | nop + sq.xyzw vf19, 0(vi12) | mul.xyz vf20, vf20, Q + sq.xyzw vf15, 1(vi12) | addx.w vf20, vf20, vf21 + sq.xyzw vf11, 2(vi12) | nop + b L18 | nop + mtir vi12, vf08.w | nop +L15: + mtir vi12, vf08.w | nop + ibne vi00, vi05, L27 | nop + lqi.xyzw vf07, vi02 | mul.xyz vf17, vf17, Q + div Q, vf00.w, vf10.w | addx.w vf05, vf05, vf21 + mtir vi09, vf24.z | mulaw.xyzw ACC, vf04, vf00 + sq.xyzw vf20, 0(vi12) | nop + sq.xyzw vf16, 1(vi12) | maddax.xyzw ACC, vf01, vf07 + lqi.xyzw vf19, vi02 | madday.xyzw ACC, vf02, vf07 + lq.xyzw vf15, 838(vi09) | nop + lqi.xyzw vf08, vi02 | maddz.xyzw vf11, vf03, vf07 + sq.xyzw vf12, 2(vi12) | nop + mtir vi12, vf05.w | mul.xyz vf18, vf18, Q + lqi.xyzw vf20, vi02 | mulaw.xyzw ACC, vf04, vf00 + div Q, vf00.w, vf11.w | maddax.xyzw ACC, vf01, vf08 + mtir vi09, vf24.w | addx.w vf06, vf06, vf21 + lqi.xyzw vf24, vi03 | nop + sq.xyzw vf17, 0(vi12) | madday.xyzw ACC, vf02, vf08 + sq.xyzw vf13, 1(vi12) | nop + sq.xyzw vf09, 2(vi12) | maddz.xyzw vf12, vf03, vf08 + mtir vi12, vf06.w | nop + lq.xyzw vf16, 838(vi09) | addx.w vf07, vf07, vf21 + div Q, vf00.w, vf12.w | nop + sq.xyzw vf18, 0(vi12) | mul.xyz vf19, vf19, Q + sq.xyzw vf14, 1(vi12) | addx.w vf19, vf19, vf21 + sq.xyzw vf10, 2(vi12) | nop + b L21 | nop + mtir vi12, vf07.w | nop +L16: + mtir vi12, vf07.w | nop + ibne vi00, vi05, L26 | nop + lqi.xyzw vf06, vi02 | mul.xyz vf20, vf20, Q + div Q, vf00.w, vf09.w | addx.w vf08, vf08, vf21 + mtir vi09, vf24.y | mulaw.xyzw ACC, vf04, vf00 + sq.xyzw vf19, 0(vi12) | nop + sq.xyzw vf15, 1(vi12) | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf06 + lq.xyzw vf14, 838(vi09) | nop + lqi.xyzw vf07, vi02 | maddz.xyzw vf10, vf03, vf06 + sq.xyzw vf11, 2(vi12) | nop + mtir vi12, vf08.w | mul.xyz vf17, vf17, Q + lqi.xyzw vf19, vi02 | mulaw.xyzw ACC, vf04, vf00 + div Q, vf00.w, vf10.w | maddax.xyzw ACC, vf01, vf07 + mtir vi09, vf24.z | addx.w vf05, vf05, vf21 + sq.xyzw vf20, 0(vi12) | madday.xyzw ACC, vf02, vf07 + sq.xyzw vf16, 1(vi12) | nop + sq.xyzw vf12, 2(vi12) | maddz.xyzw vf11, vf03, vf07 + mtir vi12, vf05.w | nop + lq.xyzw vf15, 838(vi09) | addx.w vf06, vf06, vf21 + sq.xyzw vf17, 0(vi12) | nop + div Q, vf00.w, vf11.w | mul.xyz vf18, vf18, Q + sq.xyzw vf13, 1(vi12) | addx.w vf18, vf18, vf21 + sq.xyzw vf09, 2(vi12) | nop + b L20 | nop + mtir vi12, vf06.w | nop +L17: + lqi.xyzw vf24, vi03 | nop + mtir vi12, vf06.w | nop + ibne vi00, vi05, L25 | nop + lqi.xyzw vf05, vi02 | mul.xyz vf19, vf19, Q + div Q, vf00.w, vf12.w | addx.w vf07, vf07, vf21 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf04, vf00 + sq.xyzw vf18, 0(vi12) | maddax.xyzw ACC, vf01, vf05 + sq.xyzw vf14, 1(vi12) | madday.xyzw ACC, vf02, vf05 + lqi.xyzw vf17, vi02 | nop + lq.xyzw vf13, 838(vi09) | maddz.xyzw vf09, vf03, vf05 + lqi.xyzw vf06, vi02 | addx.w vf08, vf08, vf21 + sq.xyzw vf10, 2(vi12) | nop + mtir vi12, vf07.w | mul.xyz vf20, vf20, Q + div Q, vf00.w, vf09.w | mulaw.xyzw ACC, vf04, vf00 + mtir vi09, vf24.y | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf06 + sq.xyzw vf19, 0(vi12) | nop + sq.xyzw vf15, 1(vi12) | maddz.xyzw vf10, vf03, vf06 + sq.xyzw vf11, 2(vi12) | nop + mtir vi12, vf08.w | nop + lq.xyzw vf14, 838(vi09) | addx.w vf05, vf05, vf21 + div Q, vf00.w, vf10.w | nop + sq.xyzw vf20, 0(vi12) | mul.xyz vf17, vf17, Q + sq.xyzw vf16, 1(vi12) | addx.w vf17, vf17, vf21 + sq.xyzw vf12, 2(vi12) | nop + b L19 | nop + mtir vi12, vf05.w | nop +L18: + lqi.xyzw vf06, vi02 | nop + mtir vi09, vf24.y | nop + mtir vi13, vf20.w | mulaw.xyzw ACC, vf04, vf00 + sq.xyzw vf20, 0(vi12) | addx.w vf05, vf05, vf21 + sq.xyzw vf16, 1(vi12) | maddax.xyzw ACC, vf01, vf06 + sq.xyzw vf12, 2(vi12) | madday.xyzw ACC, vf02, vf06 + lqi.xyzw vf18, vi02 | maddz.xyzw vf10, vf03, vf06 + lq.xyzw vf14, 838(vi09) | nop + sq.xyzw vf20, 0(vi13) | mul.xyz vf17, vf17, Q + sq.xyzw vf16, 1(vi13) | addx.w vf17, vf17, vf21 + sq.xyzw vf12, 2(vi13) | nop + div Q, vf00.w, vf10.w | nop + ibeq vi06, vi12, L22 | nop + mtir vi12, vf05.w | nop +L19: + lqi.xyzw vf07, vi02 | nop + mtir vi09, vf24.z | nop + mtir vi13, vf17.w | mulaw.xyzw ACC, vf04, vf00 + sq.xyzw vf17, 0(vi12) | addx.w vf06, vf06, vf21 + sq.xyzw vf13, 1(vi12) | maddax.xyzw ACC, vf01, vf07 + sq.xyzw vf09, 2(vi12) | madday.xyzw ACC, vf02, vf07 + lqi.xyzw vf19, vi02 | maddz.xyzw vf11, vf03, vf07 + lq.xyzw vf15, 838(vi09) | nop + sq.xyzw vf17, 0(vi13) | mul.xyz vf18, vf18, Q + sq.xyzw vf13, 1(vi13) | addx.w vf18, vf18, vf21 + sq.xyzw vf09, 2(vi13) | nop + div Q, vf00.w, vf11.w | nop + ibeq vi06, vi12, L23 | nop + mtir vi12, vf06.w | nop +L20: + lqi.xyzw vf08, vi02 | nop + mtir vi09, vf24.w | nop + lqi.xyzw vf24, vi03 | nop + mtir vi13, vf18.w | mulaw.xyzw ACC, vf04, vf00 + sq.xyzw vf18, 0(vi12) | addx.w vf07, vf07, vf21 + sq.xyzw vf14, 1(vi12) | maddax.xyzw ACC, vf01, vf08 + sq.xyzw vf10, 2(vi12) | madday.xyzw ACC, vf02, vf08 + lqi.xyzw vf20, vi02 | maddz.xyzw vf12, vf03, vf08 + lq.xyzw vf16, 838(vi09) | nop + sq.xyzw vf18, 0(vi13) | mul.xyz vf19, vf19, Q + sq.xyzw vf14, 1(vi13) | addx.w vf19, vf19, vf21 + sq.xyzw vf10, 2(vi13) | nop + div Q, vf00.w, vf12.w | nop + ibeq vi06, vi12, L24 | nop + mtir vi12, vf07.w | nop +L21: + lqi.xyzw vf05, vi02 | nop + mtir vi09, vf24.x | nop + mtir vi13, vf19.w | mulaw.xyzw ACC, vf04, vf00 + sq.xyzw vf19, 0(vi12) | addx.w vf08, vf08, vf21 + sq.xyzw vf15, 1(vi12) | maddax.xyzw ACC, vf01, vf05 + sq.xyzw vf11, 2(vi12) | madday.xyzw ACC, vf02, vf05 + lqi.xyzw vf17, vi02 | maddz.xyzw vf09, vf03, vf05 + lq.xyzw vf13, 838(vi09) | nop + sq.xyzw vf19, 0(vi13) | mul.xyz vf20, vf20, Q + sq.xyzw vf15, 1(vi13) | addx.w vf20, vf20, vf21 + sq.xyzw vf11, 2(vi13) | nop + div Q, vf00.w, vf09.w | nop + ibne vi06, vi12, L18 | nop + mtir vi12, vf08.w | nop + nop | nop + nop | nop + mtir vi13, vf20.w | nop + sq.xyzw vf20, 0(vi12) | addx.w vf05, vf05, vf21 + sq.xyzw vf16, 1(vi12) | addx.w vf17, vf17, vf21 + sq.xyzw vf12, 2(vi12) | nop + sq.xyzw vf20, 0(vi13) | mul.xyz vf17, vf17, Q + sq.xyzw vf16, 1(vi13) | nop + sq.xyzw vf12, 2(vi13) | nop + mtir vi12, vf05.w | nop + mtir vi13, vf17.w | nop + sq.xyzw vf17, 0(vi12) | nop + sq.xyzw vf13, 1(vi12) | nop + sq.xyzw vf09, 2(vi12) | nop + sq.xyzw vf17, 0(vi13) | nop + sq.xyzw vf13, 1(vi13) | nop + ibeq vi00, vi14, L30 | nop + sq.xyzw vf09, 2(vi13) | nop + b L44 | nop + nop | nop +L22: + nop | nop + nop | nop + mtir vi13, vf17.w | nop + sq.xyzw vf17, 0(vi12) | addx.w vf06, vf06, vf21 + sq.xyzw vf13, 1(vi12) | addx.w vf18, vf18, vf21 + sq.xyzw vf09, 2(vi12) | nop + sq.xyzw vf17, 0(vi13) | mul.xyz vf18, vf18, Q + sq.xyzw vf13, 1(vi13) | nop + sq.xyzw vf09, 2(vi13) | nop + mtir vi12, vf06.w | nop + mtir vi13, vf18.w | nop + sq.xyzw vf18, 0(vi12) | nop + sq.xyzw vf14, 1(vi12) | nop + sq.xyzw vf10, 2(vi12) | nop + sq.xyzw vf18, 0(vi13) | nop + sq.xyzw vf14, 1(vi13) | nop + ibeq vi00, vi14, L31 | nop + sq.xyzw vf10, 2(vi13) | nop + b L44 | nop + nop | nop +L23: + nop | nop + nop | nop + mtir vi13, vf18.w | nop + sq.xyzw vf18, 0(vi12) | addx.w vf07, vf07, vf21 + sq.xyzw vf14, 1(vi12) | addx.w vf19, vf19, vf21 + sq.xyzw vf10, 2(vi12) | nop + sq.xyzw vf18, 0(vi13) | mul.xyz vf19, vf19, Q + sq.xyzw vf14, 1(vi13) | nop + sq.xyzw vf10, 2(vi13) | nop + mtir vi12, vf07.w | nop + mtir vi13, vf19.w | nop + sq.xyzw vf19, 0(vi12) | nop + sq.xyzw vf15, 1(vi12) | nop + sq.xyzw vf11, 2(vi12) | nop + sq.xyzw vf19, 0(vi13) | nop + sq.xyzw vf15, 1(vi13) | nop + ibeq vi00, vi14, L32 | nop + sq.xyzw vf11, 2(vi13) | nop + b L44 | nop + nop | nop +L24: + nop | nop + nop | nop + mtir vi13, vf19.w | nop + sq.xyzw vf19, 0(vi12) | addx.w vf08, vf08, vf21 + sq.xyzw vf15, 1(vi12) | addx.w vf20, vf20, vf21 + sq.xyzw vf11, 2(vi12) | nop + sq.xyzw vf19, 0(vi13) | mul.xyz vf20, vf20, Q + sq.xyzw vf15, 1(vi13) | nop + sq.xyzw vf11, 2(vi13) | nop + mtir vi12, vf08.w | nop + mtir vi13, vf20.w | nop + sq.xyzw vf20, 0(vi12) | nop + sq.xyzw vf16, 1(vi12) | nop + sq.xyzw vf12, 2(vi12) | nop + sq.xyzw vf20, 0(vi13) | nop + sq.xyzw vf16, 1(vi13) | nop + ibeq vi00, vi14, L29 | nop + sq.xyzw vf12, 2(vi13) | nop + b L44 | nop + nop | nop +L25: + div Q, vf00.w, vf12.w | addx.w vf07, vf07, vf21 + sq.xyzw vf18, 0(vi12) | addx.w vf08, vf08, vf21 + sq.xyzw vf14, 1(vi12) | nop + sq.xyzw vf10, 2(vi12) | nop + iaddi vi02, vi02, -0x1 | nop + nop | nop + nop | nop + nop | nop + mtir vi12, vf07.w | mul.xyz vf20, vf20, Q + mtir vi13, vf08.w | nop + sq.xyzw vf19, 0(vi12) | nop + sq.xyzw vf15, 1(vi12) | nop + sq.xyzw vf11, 2(vi12) | nop + sq.xyzw vf20, 0(vi13) | nop + sq.xyzw vf16, 1(vi13) | nop + ibeq vi00, vi14, L29 | nop + sq.xyzw vf12, 2(vi13) | nop + b L44 | nop + nop | nop +L26: + div Q, vf00.w, vf09.w | addx.w vf08, vf08, vf21 + sq.xyzw vf19, 0(vi12) | addx.w vf05, vf05, vf21 + sq.xyzw vf15, 1(vi12) | nop + sq.xyzw vf11, 2(vi12) | nop + iaddi vi02, vi02, -0x1 | nop + nop | nop + nop | nop + nop | nop + mtir vi12, vf08.w | mul.xyz vf17, vf17, Q + mtir vi13, vf05.w | nop + sq.xyzw vf20, 0(vi12) | nop + sq.xyzw vf16, 1(vi12) | nop + sq.xyzw vf12, 2(vi12) | nop + sq.xyzw vf17, 0(vi13) | nop + sq.xyzw vf13, 1(vi13) | nop + ibeq vi00, vi14, L30 | nop + sq.xyzw vf09, 2(vi13) | nop + b L44 | nop + nop | nop +L27: + div Q, vf00.w, vf10.w | addx.w vf05, vf05, vf21 + sq.xyzw vf20, 0(vi12) | addx.w vf06, vf06, vf21 + sq.xyzw vf16, 1(vi12) | nop + sq.xyzw vf12, 2(vi12) | nop + iaddi vi02, vi02, -0x1 | nop + nop | nop + nop | nop + nop | nop + mtir vi12, vf05.w | mul.xyz vf18, vf18, Q + mtir vi13, vf06.w | nop + sq.xyzw vf17, 0(vi12) | nop + sq.xyzw vf13, 1(vi12) | nop + sq.xyzw vf09, 2(vi12) | nop + sq.xyzw vf18, 0(vi13) | nop + sq.xyzw vf14, 1(vi13) | nop + ibeq vi00, vi14, L31 | nop + sq.xyzw vf10, 2(vi13) | nop + b L44 | nop + nop | nop +L28: + div Q, vf00.w, vf11.w | addx.w vf06, vf06, vf21 + sq.xyzw vf17, 0(vi12) | addx.w vf07, vf07, vf21 + sq.xyzw vf13, 1(vi12) | nop + sq.xyzw vf09, 2(vi12) | nop + iaddi vi02, vi02, -0x1 | nop + nop | nop + nop | nop + nop | nop + mtir vi12, vf06.w | mul.xyz vf19, vf19, Q + mtir vi13, vf07.w | nop + sq.xyzw vf18, 0(vi12) | nop + sq.xyzw vf14, 1(vi12) | nop + sq.xyzw vf10, 2(vi12) | nop + sq.xyzw vf19, 0(vi13) | nop + sq.xyzw vf15, 1(vi13) | nop + ibeq vi00, vi14, L32 | nop + sq.xyzw vf11, 2(vi13) | nop + b L44 | nop + nop | nop +L29: + lqi.xyzw vf05, vi02 | nop + 0.5 | subw.w vf28, vf00, vf00 :i + lqi.xyz vf28, vi02 | addi.y vf27, vf00, I + lqi.xyzw vf17, vi02 | nop + mtir vi09, vf24.x | nop + mtir vi10, vf24.y | addx.w vf28, vf28, vf21 + mtir vi11, vf24.z | mulx.xyz vf05, vf05, vf27 + nop | nop + lq.xyzw vf13, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf05, vf05, vf28 + lq.xyzw vf30, 838(vi11) | nop + nop | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05 + lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf05 + nop | maddz.xyzw vf09, vf03, vf05 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf13, vf13, vf27 + mtir vi11, vf24.z | mulx.xyz vf06, vf06, vf27 + nop | nop + lq.xyzw vf14, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf06, vf06, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf09.w | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf19, vi02 | madday.xyzw ACC, vf02, vf06 + nop | maddz.xyzw vf10, vf03, vf06 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | mulx.xyz vf07, vf07, vf27 + mtir vi11, vf24.z | maddz.xyzw vf14, vf14, vf27 + nop | nop + lq.xyzw vf15, 838(vi09) | mul.xyz vf17, vf17, Q + lq.xyzw vf29, 838(vi10) | add.xyzw vf07, vf07, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf10.w | nop + nop | nop + b L33 | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 +L30: + lqi.xyzw vf06, vi02 | nop + lqi.xyzw vf24, vi03 | subw.w vf28, vf00, vf00 + 0.5 | nop :i + lqi.xyz vf28, vi02 | addi.y vf27, vf00, I + lqi.xyzw vf18, vi02 | nop + mtir vi09, vf24.x | addx.w vf28, vf28, vf21 + mtir vi10, vf24.y | nop + mtir vi11, vf24.z | mulx.xyz vf06, vf06, vf27 + nop | nop + lq.xyzw vf14, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf06, vf06, vf28 + lq.xyzw vf30, 838(vi11) | nop + nop | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf19, vi02 | madday.xyzw ACC, vf02, vf06 + nop | maddz.xyzw vf10, vf03, vf06 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf14, vf14, vf27 + mtir vi11, vf24.z | mulx.xyz vf07, vf07, vf27 + nop | nop + lq.xyzw vf15, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf07, vf07, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf10.w | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07 + lqi.xyzw vf20, vi02 | madday.xyzw ACC, vf02, vf07 + nop | maddz.xyzw vf11, vf03, vf07 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | mulx.xyz vf08, vf08, vf27 + mtir vi11, vf24.z | maddz.xyzw vf15, vf15, vf27 + nop | nop + lq.xyzw vf16, 838(vi09) | mul.xyz vf18, vf18, Q + lq.xyzw vf29, 838(vi10) | add.xyzw vf08, vf08, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf11.w | nop + nop | nop + b L34 | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 +L31: + lqi.xyzw vf07, vi02 | nop + lqi.xyzw vf24, vi03 | subw.w vf28, vf00, vf00 + 0.5 | nop :i + lqi.xyz vf28, vi02 | addi.y vf27, vf00, I + lqi.xyzw vf19, vi02 | nop + mtir vi09, vf24.x | addx.w vf28, vf28, vf21 + mtir vi10, vf24.y | nop + mtir vi11, vf24.z | mulx.xyz vf07, vf07, vf27 + nop | nop + lq.xyzw vf15, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf07, vf07, vf28 + lq.xyzw vf30, 838(vi11) | nop + nop | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07 + lqi.xyzw vf20, vi02 | madday.xyzw ACC, vf02, vf07 + nop | maddz.xyzw vf11, vf03, vf07 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf15, vf15, vf27 + mtir vi11, vf24.z | mulx.xyz vf08, vf08, vf27 + nop | nop + lq.xyzw vf16, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf08, vf08, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf11.w | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08 + lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf08 + nop | maddz.xyzw vf12, vf03, vf08 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | mulx.xyz vf05, vf05, vf27 + mtir vi11, vf24.z | maddz.xyzw vf16, vf16, vf27 + nop | nop + lq.xyzw vf13, 838(vi09) | mul.xyz vf19, vf19, Q + lq.xyzw vf29, 838(vi10) | add.xyzw vf05, vf05, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf12.w | nop + nop | nop + b L35 | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 +L32: + lqi.xyzw vf08, vi02 | nop + lqi.xyzw vf24, vi03 | subw.w vf28, vf00, vf00 + 0.5 | nop :i + lqi.xyz vf28, vi02 | addi.y vf27, vf00, I + lqi.xyzw vf20, vi02 | nop + mtir vi09, vf24.x | addx.w vf28, vf28, vf21 + mtir vi10, vf24.y | nop + mtir vi11, vf24.z | mulx.xyz vf08, vf08, vf27 + nop | nop + lq.xyzw vf16, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf08, vf08, vf28 + lq.xyzw vf30, 838(vi11) | nop + nop | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08 + lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf08 + nop | maddz.xyzw vf12, vf03, vf08 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf16, vf16, vf27 + mtir vi11, vf24.z | mulx.xyz vf05, vf05, vf27 + nop | nop + lq.xyzw vf13, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf05, vf05, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf12.w | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05 + lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf05 + nop | maddz.xyzw vf09, vf03, vf05 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | mulx.xyz vf06, vf06, vf27 + mtir vi11, vf24.z | maddz.xyzw vf13, vf13, vf27 + nop | nop + lq.xyzw vf14, 838(vi09) | mul.xyz vf20, vf20, Q + lq.xyzw vf29, 838(vi10) | add.xyzw vf06, vf06, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf09.w | nop + nop | nop + b L36 | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 +L33: + lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07 + lqi.xyzw vf20, vi02 | madday.xyzw ACC, vf02, vf07 + mtir vi12, vf05.w | maddz.xyzw vf11, vf03, vf07 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf15, vf15, vf27 + mtir vi11, vf24.z | mulx.xyz vf08, vf08, vf27 + sq.xyzw vf17, 0(vi12) | nop + lq.xyzw vf16, 838(vi09) | mul.xyz vf18, vf18, Q + lq.xyzw vf29, 838(vi10) | nop + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf11.w | nop + sq.xyzw vf13, 1(vi12) | add.xyzw vf08, vf08, vf28 + lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27 + ibeq vi07, vi12, L37 | nop + sq.xyzw vf09, 2(vi12) | maddy.xyzw vf29, vf30, vf27 +L34: + lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08 + lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf08 + mtir vi12, vf06.w | maddz.xyzw vf12, vf03, vf08 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf16, vf16, vf27 + mtir vi11, vf24.z | mulx.xyz vf05, vf05, vf27 + sq.xyzw vf18, 0(vi12) | nop + lq.xyzw vf13, 838(vi09) | mul.xyz vf19, vf19, Q + lq.xyzw vf29, 838(vi10) | nop + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf12.w | nop + sq.xyzw vf14, 1(vi12) | add.xyzw vf05, vf05, vf28 + lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27 + ibeq vi07, vi12, L38 | nop + sq.xyzw vf10, 2(vi12) | maddy.xyzw vf29, vf30, vf27 +L35: + lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05 + lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf05 + mtir vi12, vf07.w | maddz.xyzw vf09, vf03, vf05 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf13, vf13, vf27 + mtir vi11, vf24.z | mulx.xyz vf06, vf06, vf27 + sq.xyzw vf19, 0(vi12) | nop + lq.xyzw vf14, 838(vi09) | mul.xyz vf20, vf20, Q + lq.xyzw vf29, 838(vi10) | nop + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf09.w | nop + sq.xyzw vf15, 1(vi12) | add.xyzw vf06, vf06, vf28 + lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27 + ibeq vi07, vi12, L39 | nop + sq.xyzw vf11, 2(vi12) | maddy.xyzw vf29, vf30, vf27 +L36: + lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf19, vi02 | madday.xyzw ACC, vf02, vf06 + mtir vi12, vf08.w | maddz.xyzw vf10, vf03, vf06 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf14, vf14, vf27 + mtir vi11, vf24.z | nop + sq.xyzw vf20, 0(vi12) | mul.xyz vf17, vf17, Q + lq.xyzw vf15, 838(vi09) | mulx.xyz vf07, vf07, vf27 + lq.xyzw vf29, 838(vi10) | nop + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf10.w | nop + sq.xyzw vf16, 1(vi12) | add.xyzw vf07, vf07, vf28 + lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27 + ibne vi07, vi12, L33 | nop + sq.xyzw vf12, 2(vi12) | maddy.xyzw vf29, vf30, vf27 + mtir vi12, vf05.w | addx.w vf17, vf17, vf21 + lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07 + lqi.xyzw vf20, vi02 | madday.xyzw ACC, vf02, vf07 + mtir vi13, vf17.w | maddz.xyzw vf11, vf03, vf07 + mtir vi09, vf24.x | mul.xyz vf18, vf18, Q + mtir vi10, vf24.y | nop + mtir vi11, vf24.z | nop + sq.xyzw vf13, 1(vi12) | addx.w vf19, vf19, vf21 + div Q, vf00.w, vf11.w | mulx.xyz vf08, vf08, vf27 + sq.xyzw vf17, 0(vi12) | nop + sq.xyzw vf09, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf17, 0(vi13) | maddz.xyzw vf15, vf15, vf27 + sq.xyzw vf13, 1(vi13) | add.xyzw vf08, vf08, vf28 + sq.xyzw vf09, 2(vi13) | addx.w vf18, vf18, vf21 + lq.xyzw vf16, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf04, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibne vi08, vi12, L40 | nop + mtir vi12, vf06.w | maddax.xyzw ACC, vf01, vf08 + b L44 | nop + nop | nop +L37: + mtir vi12, vf06.w | addx.w vf18, vf18, vf21 + lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08 + lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf08 + mtir vi13, vf18.w | maddz.xyzw vf12, vf03, vf08 + mtir vi09, vf24.x | mul.xyz vf19, vf19, Q + mtir vi10, vf24.y | nop + mtir vi11, vf24.z | nop + sq.xyzw vf14, 1(vi12) | addx.w vf20, vf20, vf21 + div Q, vf00.w, vf12.w | mulx.xyz vf05, vf05, vf27 + sq.xyzw vf18, 0(vi12) | nop + sq.xyzw vf10, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf18, 0(vi13) | maddz.xyzw vf16, vf16, vf27 + sq.xyzw vf14, 1(vi13) | add.xyzw vf05, vf05, vf28 + sq.xyzw vf10, 2(vi13) | addx.w vf19, vf19, vf21 + lq.xyzw vf13, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf04, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibne vi08, vi12, L41 | nop + mtir vi12, vf07.w | maddax.xyzw ACC, vf01, vf05 + b L44 | nop + nop | nop +L38: + mtir vi12, vf07.w | addx.w vf19, vf19, vf21 + lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05 + lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf05 + mtir vi13, vf19.w | maddz.xyzw vf09, vf03, vf05 + mtir vi09, vf24.x | mul.xyz vf20, vf20, Q + mtir vi10, vf24.y | nop + mtir vi11, vf24.z | nop + sq.xyzw vf15, 1(vi12) | addx.w vf17, vf17, vf21 + div Q, vf00.w, vf09.w | mulx.xyz vf06, vf06, vf27 + sq.xyzw vf19, 0(vi12) | nop + sq.xyzw vf11, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf19, 0(vi13) | maddz.xyzw vf13, vf13, vf27 + sq.xyzw vf15, 1(vi13) | add.xyzw vf06, vf06, vf28 + sq.xyzw vf11, 2(vi13) | addx.w vf20, vf20, vf21 + lq.xyzw vf14, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf04, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibne vi08, vi12, L42 | nop + mtir vi12, vf08.w | maddax.xyzw ACC, vf01, vf06 + b L44 | nop + nop | nop +L39: + mtir vi12, vf08.w | addx.w vf20, vf20, vf21 + lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf04, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf19, vi02 | madday.xyzw ACC, vf02, vf06 + mtir vi13, vf20.w | maddz.xyzw vf10, vf03, vf06 + mtir vi09, vf24.x | mul.xyz vf17, vf17, Q + mtir vi10, vf24.y | nop + mtir vi11, vf24.z | nop + sq.xyzw vf16, 1(vi12) | addx.w vf18, vf18, vf21 + div Q, vf00.w, vf10.w | mulx.xyz vf07, vf07, vf27 + sq.xyzw vf20, 0(vi12) | nop + sq.xyzw vf12, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf20, 0(vi13) | maddz.xyzw vf14, vf14, vf27 + sq.xyzw vf16, 1(vi13) | add.xyzw vf07, vf07, vf28 + sq.xyzw vf12, 2(vi13) | addx.w vf17, vf17, vf21 + lq.xyzw vf15, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf04, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibne vi08, vi12, L43 | nop + mtir vi12, vf05.w | maddax.xyzw ACC, vf01, vf07 + b L44 | nop + nop | nop +L40: + lqi.xyzw vf05, vi02 | madday.xyzw ACC, vf02, vf08 + lqi.xyz vf28, vi02 | maddz.xyzw vf12, vf03, vf08 + lqi.xyzw vf17, vi02 | mul.xyz vf19, vf19, Q + mtir vi13, vf18.w | nop + mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27 + mtir vi11, vf24.z | nop + sq.xyzw vf14, 1(vi12) | nop + div Q, vf00.w, vf12.w | mulx.xyz vf05, vf05, vf27 + sq.xyzw vf18, 0(vi12) | addx.w vf20, vf20, vf21 + sq.xyzw vf10, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf18, 0(vi13) | maddz.xyzw vf16, vf16, vf27 + sq.xyzw vf14, 1(vi13) | add.xyzw vf05, vf05, vf28 + sq.xyzw vf10, 2(vi13) | nop + lq.xyzw vf13, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf04, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibeq vi08, vi12, L44 | nop + mtir vi12, vf07.w | maddax.xyzw ACC, vf01, vf05 +L41: + lqi.xyzw vf06, vi02 | madday.xyzw ACC, vf02, vf05 + lqi.xyz vf28, vi02 | maddz.xyzw vf09, vf03, vf05 + lqi.xyzw vf18, vi02 | mul.xyz vf20, vf20, Q + mtir vi13, vf19.w | nop + mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27 + mtir vi11, vf24.z | nop + sq.xyzw vf15, 1(vi12) | nop + div Q, vf00.w, vf09.w | mulx.xyz vf06, vf06, vf27 + sq.xyzw vf19, 0(vi12) | addx.w vf17, vf17, vf21 + sq.xyzw vf11, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf19, 0(vi13) | maddz.xyzw vf13, vf13, vf27 + sq.xyzw vf15, 1(vi13) | add.xyzw vf06, vf06, vf28 + sq.xyzw vf11, 2(vi13) | nop + lq.xyzw vf14, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf04, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibeq vi08, vi12, L44 | nop + mtir vi12, vf08.w | maddax.xyzw ACC, vf01, vf06 +L42: + lqi.xyzw vf07, vi02 | madday.xyzw ACC, vf02, vf06 + lqi.xyz vf28, vi02 | maddz.xyzw vf10, vf03, vf06 + lqi.xyzw vf19, vi02 | mul.xyz vf17, vf17, Q + mtir vi13, vf20.w | nop + mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27 + mtir vi11, vf24.z | nop + sq.xyzw vf16, 1(vi12) | nop + div Q, vf00.w, vf10.w | mulx.xyz vf07, vf07, vf27 + sq.xyzw vf20, 0(vi12) | addx.w vf18, vf18, vf21 + sq.xyzw vf12, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf20, 0(vi13) | maddz.xyzw vf14, vf14, vf27 + sq.xyzw vf16, 1(vi13) | add.xyzw vf07, vf07, vf28 + sq.xyzw vf12, 2(vi13) | nop + lq.xyzw vf15, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf04, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibeq vi08, vi12, L44 | nop + mtir vi12, vf05.w | maddax.xyzw ACC, vf01, vf07 +L43: + lqi.xyzw vf08, vi02 | madday.xyzw ACC, vf02, vf07 + lqi.xyz vf28, vi02 | maddz.xyzw vf11, vf03, vf07 + lqi.xyzw vf20, vi02 | mul.xyz vf18, vf18, Q + mtir vi13, vf17.w | nop + mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27 + mtir vi11, vf24.z | nop + sq.xyzw vf13, 1(vi12) | nop + div Q, vf00.w, vf11.w | mulx.xyz vf08, vf08, vf27 + sq.xyzw vf17, 0(vi12) | addx.w vf19, vf19, vf21 + sq.xyzw vf09, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf17, 0(vi13) | maddz.xyzw vf15, vf15, vf27 + sq.xyzw vf13, 1(vi13) | add.xyzw vf08, vf08, vf28 + sq.xyzw vf09, 2(vi13) | nop + lq.xyzw vf16, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf04, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibne vi08, vi12, L40 | nop + mtir vi12, vf06.w | maddax.xyzw ACC, vf01, vf08 +L44: + mfir.x vf29, vi04 | nop + mfir.y vf29, vi05 | nop + mfir.z vf29, vi06 | nop + mfir.w vf29, vi07 | nop + mfir.x vf30, vi08 | nop + mfir.y vf30, vi09 | nop + mfir.z vf30, vi10 | nop + mfir.w vf30, vi11 | nop + mfir.x vf31, vi13 | nop + mfir.y vf31, vi14 | nop + mfir.z vf31, vi15 | nop + lq.xyzw vf13, 30(vi00) | subx.x vf27, vf23, vf21 + mtir vi12, vf22.x | nop + mtir vi01, vf21.x | nop + iaddiu vi07, vi00, 0x1f | nop + lq.xyzw vf16, 972(vi00) | suby.x vf27, vf27, vf21 + mtir vi02, vf13.x | nop + lq.w vf16, 5(vi12) | nop + lq.xyzw vf14, 973(vi00) | nop + iadd vi03, vi01, vi02 | nop + mtir vi08, vf13.y | nop + lq.xyzw vf05, 2(vi03) | nop + mtir vi09, vf27.x | addx.xyzw vf15, vf16, vf00 + iaddi vi01, vi01, 0x1 | nop + isw.y vi00, 1023(vi00) | nop + isw.z vi01, 1023(vi00) | nop + fcset 0x0 | addx.w vf09, vf00, vf00 + lq.xyz vf09, 0(vi03) | mul.xyz vf01, vf05, vf14 + 3072.0 | clipw.xyz vf05, vf05 :i + iadd vi04, vi03, vi08 | addi.w vf15, vf15, I + mtir vi02, vf13.z | addx.w vf10, vf00, vf00 + lq.xyzw vf06, 2(vi04) | nop + lq.xyzw vf17, 974(vi00) | mulz.xyz vf01, vf01, vf09 + nop | subw.w vf01, vf00, vf00 + iblez vi02, L69 | subw.w vf11, vf00, vf00 + lq.xyz vf10, 0(vi04) | mul.xyz vf02, vf06, vf14 + iaddi vi01, vi00, 0x0 | clipw.xyz vf06, vf06 + iadd vi05, vi04, vi02 | nop + mtir vi08, vf13.w | add.xyzw vf01, vf01, vf16 + lq.xyzw vf07, 2(vi05) | subw.w vf12, vf00, vf00 + fcand vi01, 0x3ffff | mulz.xyz vf02, vf02, vf10 + lqi.xyzw vf13, vi07 | subw.w vf02, vf00, vf00 + iblez vi08, L53 | ftoi4.xyzw vf01, vf01 + lq.xyz vf11, 0(vi05) | mul.xyz vf03, vf07, vf14 +L45: + ibne vi00, vi01, L74 | clipw.xyz vf07, vf07 + mtir vi02, vf13.x | nop + iadd vi06, vi05, vi08 | add.xyzw vf02, vf02, vf16 + lq.xyzw vf08, 2(vi06) | subw.w vf09, vf00, vf00 + fcand vi01, 0x3ffff | mulz.xyz vf03, vf03, vf11 + sq.xyzw vf01, 2(vi03) | subw.w vf03, vf00, vf00 +L46: + iblez vi02, L57 | ftoi4.xyzw vf02, vf02 + lq.xyz vf12, 0(vi06) | mul.xyz vf04, vf08, vf14 +L47: + ibne vi00, vi01, L76 | clipw.xyz vf08, vf08 + mtir vi08, vf13.y | nop + iadd vi03, vi06, vi02 | add.xyzw vf03, vf03, vf16 + lq.xyzw vf05, 2(vi03) | subw.w vf10, vf00, vf00 + fcand vi01, 0x3ffff | mulz.xyz vf04, vf04, vf12 + sq.xyzw vf02, 2(vi04) | subw.w vf04, vf00, vf00 +L48: + iblez vi08, L61 | ftoi4.xyzw vf03, vf03 + lq.xyz vf09, 0(vi03) | mul.xyz vf01, vf05, vf14 +L49: + ibne vi00, vi01, L78 | clipw.xyz vf05, vf05 + mtir vi02, vf13.z | nop + iadd vi04, vi03, vi08 | add.xyzw vf04, vf04, vf16 + lq.xyzw vf06, 2(vi04) | subw.w vf11, vf00, vf00 + fcand vi01, 0x3ffff | mulz.xyz vf01, vf01, vf09 + sq.xyzw vf03, 2(vi05) | subw.w vf01, vf00, vf00 +L50: + iblez vi02, L65 | ftoi4.xyzw vf04, vf04 + lq.xyz vf10, 0(vi04) | mul.xyz vf02, vf06, vf14 +L51: + ibne vi00, vi01, L72 | clipw.xyz vf06, vf06 + mtir vi08, vf13.w | nop + iadd vi05, vi04, vi02 | add.xyzw vf01, vf01, vf16 + lq.xyzw vf07, 2(vi05) | subw.w vf12, vf00, vf00 + fcand vi01, 0x3ffff | mulz.xyz vf02, vf02, vf10 + sq.xyzw vf04, 2(vi06) | subw.w vf02, vf00, vf00 +L52: + lqi.xyzw vf13, vi07 | nop + ibgtz vi08, L45 | ftoi4.xyzw vf01, vf01 + lq.xyz vf11, 0(vi05) | mul.xyz vf03, vf07, vf14 +L53: + ibne vi00, vi01, L82 | clipw.xyz vf07, vf07 + mtir vi02, vf13.x | nop + isub vi06, vi05, vi08 | addx.w vf12, vf00, vf00 + lq.xyzw vf08, 2(vi06) | add.xyzw vf02, vf02, vf16 + fcand vi01, 0x3ffff | mulz.xyz vf03, vf03, vf11 + sq.xyzw vf01, 2(vi03) | subw.w vf03, vf00, vf00 +L54: + iaddi vi10, vi08, 0xa | nop + fcset 0x0 | addx.w vf09, vf00, vf00 + ibne vi00, vi10, L47 | ftoi4.xyzw vf02, vf02 + lq.xyz vf12, 0(vi06) | mul.xyz vf04, vf08, vf14 + ibeq vi00, vi02, L55 | nop + iaddi vi11, vi06, -0x6 | nop + b L47 | nop + isw.z vi11, 1023(vi00) | nop +L55: + ibne vi00, vi01, L89 | nop + nop | nop + nop | add.xyzw vf03, vf03, vf16 + nop | nop + nop | nop + sq.xyzw vf02, 2(vi04) | nop +L56: + nop | ftoi4.xyzw vf03, vf03 + nop | nop + nop | nop + b L70 | nop + sq.xyzw vf03, 2(vi05) | nop +L57: + ibne vi00, vi01, L84 | clipw.xyz vf08, vf08 + mtir vi08, vf13.y | nop + isub vi03, vi06, vi02 | addx.w vf09, vf00, vf00 + lq.xyzw vf05, 2(vi03) | add.xyzw vf03, vf03, vf16 + fcand vi01, 0x3ffff | mulz.xyz vf04, vf04, vf12 + sq.xyzw vf02, 2(vi04) | subw.w vf04, vf00, vf00 +L58: + iaddi vi10, vi02, 0xa | nop + fcset 0x0 | addx.w vf10, vf00, vf00 + ibne vi00, vi10, L49 | ftoi4.xyzw vf03, vf03 + lq.xyz vf09, 0(vi03) | mul.xyz vf01, vf05, vf14 + ibeq vi00, vi08, L59 | nop + iaddi vi11, vi03, -0x6 | nop + b L49 | nop + isw.z vi11, 1023(vi00) | nop +L59: + ibne vi00, vi01, L90 | nop + nop | nop + nop | add.xyzw vf04, vf04, vf16 + nop | nop + nop | nop + sq.xyzw vf03, 2(vi05) | nop +L60: + nop | ftoi4.xyzw vf04, vf04 + nop | nop + nop | nop + b L70 | nop + sq.xyzw vf04, 2(vi06) | nop +L61: + ibne vi00, vi01, L86 | clipw.xyz vf05, vf05 + mtir vi02, vf13.z | nop + isub vi04, vi03, vi08 | addx.w vf10, vf00, vf00 + lq.xyzw vf06, 2(vi04) | add.xyzw vf04, vf04, vf16 + fcand vi01, 0x3ffff | mulz.xyz vf01, vf01, vf09 + sq.xyzw vf03, 2(vi05) | subw.w vf01, vf00, vf00 +L62: + iaddi vi10, vi08, 0xa | nop + fcset 0x0 | addx.w vf11, vf00, vf00 + ibne vi00, vi10, L51 | ftoi4.xyzw vf04, vf04 + lq.xyz vf10, 0(vi04) | mul.xyz vf02, vf06, vf14 + ibeq vi00, vi02, L63 | nop + iaddi vi11, vi04, -0x6 | nop + b L51 | nop + isw.z vi11, 1023(vi00) | nop +L63: + ibne vi00, vi01, L87 | nop + nop | nop + nop | add.xyzw vf01, vf01, vf16 + nop | nop + nop | nop + sq.xyzw vf04, 2(vi06) | nop +L64: + nop | ftoi4.xyzw vf01, vf01 + nop | nop + nop | nop + b L70 | nop + sq.xyzw vf04, 2(vi03) | nop +L65: + ibne vi00, vi01, L80 | clipw.xyz vf06, vf06 + mtir vi08, vf13.w | nop + isub vi05, vi04, vi02 | addx.w vf11, vf00, vf00 + lq.xyzw vf07, 2(vi05) | add.xyzw vf01, vf01, vf16 + fcand vi01, 0x3ffff | mulz.xyz vf02, vf02, vf10 + sq.xyzw vf04, 2(vi06) | subw.w vf02, vf00, vf00 +L66: + lqi.xyzw vf13, vi07 | nop + iaddi vi10, vi02, 0xa | nop + fcset 0x0 | addx.w vf12, vf00, vf00 + ibne vi00, vi10, L45 | ftoi4.xyzw vf01, vf01 + lq.xyz vf11, 0(vi05) | mul.xyz vf03, vf07, vf14 + ibeq vi00, vi08, L67 | nop + iaddi vi11, vi05, -0x6 | nop + b L45 | nop + isw.z vi11, 1023(vi00) | nop +L67: + ibne vi00, vi01, L88 | nop + nop | nop + nop | add.xyzw vf02, vf02, vf16 + nop | nop + nop | nop + sq.xyzw vf01, 2(vi03) | nop +L68: + nop | ftoi4.xyzw vf02, vf02 + nop | nop + nop | nop + b L70 | nop + sq.xyzw vf02, 2(vi04) | nop +L69: + iaddi vi01, vi00, 0x0 | clipw.xyz vf06, vf06 + isub vi05, vi04, vi02 | nop + mtir vi08, vf13.w | add.xyzw vf01, vf01, vf16 + lq.xyzw vf07, 2(vi05) | subw.w vf12, vf00, vf00 + fcand vi01, 0x3ffff | mulz.xyz vf02, vf02, vf10 + lqi.xyzw vf13, vi07 | subw.w vf02, vf00, vf00 + b L45 | ftoi4.xyzw vf01, vf01 + lq.xyz vf11, 0(vi05) | mul.xyz vf03, vf07, vf14 +L70: + mtir vi04, vf29.x | nop + mtir vi05, vf29.y | nop + mtir vi06, vf29.z | nop + mtir vi07, vf29.w | nop + mtir vi08, vf30.x | nop + mtir vi09, vf30.y | nop + mtir vi10, vf30.z | nop + mtir vi11, vf30.w | nop + mtir vi13, vf31.x | nop + mtir vi14, vf31.y | nop + mtir vi15, vf31.z | nop + iaddiu vi01, vi00, 0x3c6 | nop + nop | nop + xgkick vi01 | nop + mtir vi01, vf21.x | nop + mtir vi12, vf23.w | nop + mr32.xyzw vf22, vf22 | nop + iaddiu vi02, vi00, 0x32 | nop + mfir.y vf23, vi00 | nop + xgkick vi01 | nop + mtir vi03, vf22.x | nop :e + nop | nop +L71: + fcand vi01, 0x3ffff | mulz.xyz vf02, vf02, vf10 + b L52 | subw.w vf02, vf00, vf00 + lq.xyzw vf07, 2(vi05) | nop +L72: + nop | subw.w vf00, vf09, vf00 + ior vi14, vi05, vi00 | mul.xyzw vf18, vf07, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf08, vf17 + iadd vi05, vi04, vi02 | mul.xyzw vf20, vf05, vf17 + fsand vi10, 0x2 | nop + ibeq vi00, vi10, L71 | add.xyzw vf01, vf01, vf15 + sq.xyzw vf04, 2(vi06) | subw.w vf12, vf00, vf00 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf07 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf08 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf05 | nop + fcget vi10 | addx.xyz vf24, vf11, vf00 + fcget vi11 | clipw.xyz vf08, vf08 + fcget vi12 | clipw.xyz vf05, vf05 + lq.xyzw vf07, 2(vi05) | addx.xyz vf25, vf12, vf00 + iand vi10, vi10, vi11 | clipw.xyz vf06, vf06 + iand vi10, vi10, vi12 | addx.xyz vf26, vf09, vf00 + iand vi10, vi10, vi13 | mulz.xyz vf02, vf02, vf10 + nop | nop + ibne vi00, vi10, L52 | subw.w vf02, vf00, vf00 + fcand vi01, 0x3ffff | nop + ior vi10, vi06, vi00 | nop + ior vi11, vi03, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x42f | nop +L73: + fcand vi01, 0x3ffff | mulz.xyz vf03, vf03, vf11 + b L46 | subw.w vf03, vf00, vf00 + lq.xyzw vf08, 2(vi06) | nop +L74: + nop | subw.w vf00, vf10, vf00 + ior vi14, vi06, vi00 | mul.xyzw vf18, vf08, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf05, vf17 + iadd vi06, vi05, vi08 | mul.xyzw vf20, vf06, vf17 + fsand vi10, 0x2 | nop + ibeq vi00, vi10, L73 | add.xyzw vf02, vf02, vf15 + sq.xyzw vf01, 2(vi03) | subw.w vf09, vf00, vf00 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf08 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf05 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf06 | nop + fcget vi10 | addx.xyz vf24, vf12, vf00 + fcget vi11 | clipw.xyz vf05, vf05 + fcget vi12 | clipw.xyz vf06, vf06 + lq.xyzw vf08, 2(vi06) | addx.xyz vf25, vf09, vf00 + iand vi10, vi10, vi11 | clipw.xyz vf07, vf07 + iand vi10, vi10, vi12 | addx.xyz vf26, vf10, vf00 + iand vi10, vi10, vi13 | mulz.xyz vf03, vf03, vf11 + nop | nop + ibne vi00, vi10, L46 | subw.w vf03, vf00, vf00 + fcand vi01, 0x3ffff | nop + ior vi10, vi03, vi00 | nop + ior vi11, vi04, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x417 | nop +L75: + fcand vi01, 0x3ffff | mulz.xyz vf04, vf04, vf12 + b L48 | subw.w vf04, vf00, vf00 + lq.xyzw vf05, 2(vi03) | nop +L76: + nop | subw.w vf00, vf11, vf00 + ior vi14, vi03, vi00 | mul.xyzw vf18, vf05, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf06, vf17 + iadd vi03, vi06, vi02 | mul.xyzw vf20, vf07, vf17 + fsand vi10, 0x2 | nop + ibeq vi00, vi10, L75 | add.xyzw vf03, vf03, vf15 + sq.xyzw vf02, 2(vi04) | subw.w vf10, vf00, vf00 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf05 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf06 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf07 | nop + fcget vi10 | addx.xyz vf24, vf09, vf00 + fcget vi11 | clipw.xyz vf06, vf06 + fcget vi12 | clipw.xyz vf07, vf07 + lq.xyzw vf05, 2(vi03) | addx.xyz vf25, vf10, vf00 + iand vi10, vi10, vi11 | clipw.xyz vf08, vf08 + iand vi10, vi10, vi12 | addx.xyz vf26, vf11, vf00 + iand vi10, vi10, vi13 | mulz.xyz vf04, vf04, vf12 + nop | nop + ibne vi00, vi10, L48 | subw.w vf04, vf00, vf00 + fcand vi01, 0x3ffff | nop + ior vi10, vi04, vi00 | nop + ior vi11, vi05, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x41f | nop +L77: + fcand vi01, 0x3ffff | mulz.xyz vf01, vf01, vf09 + b L50 | subw.w vf01, vf00, vf00 + lq.xyzw vf06, 2(vi04) | nop +L78: + nop | subw.w vf00, vf12, vf00 + ior vi14, vi04, vi00 | mul.xyzw vf18, vf06, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf07, vf17 + iadd vi04, vi03, vi08 | mul.xyzw vf20, vf08, vf17 + fsand vi10, 0x2 | nop + ibeq vi00, vi10, L77 | add.xyzw vf04, vf04, vf15 + sq.xyzw vf03, 2(vi05) | subw.w vf11, vf00, vf00 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf06 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf07 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf08 | nop + fcget vi10 | addx.xyz vf24, vf10, vf00 + fcget vi11 | clipw.xyz vf07, vf07 + fcget vi12 | clipw.xyz vf08, vf08 + lq.xyzw vf06, 2(vi04) | addx.xyz vf25, vf11, vf00 + iand vi10, vi10, vi11 | clipw.xyz vf05, vf05 + iand vi10, vi10, vi12 | addx.xyz vf26, vf12, vf00 + iand vi10, vi10, vi13 | mulz.xyz vf01, vf01, vf09 + nop | nop + ibne vi00, vi10, L50 | subw.w vf01, vf00, vf00 + fcand vi01, 0x3ffff | nop + ior vi10, vi05, vi00 | nop + ior vi11, vi06, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x427 | nop +L79: + fcand vi01, 0x3ffff | mulz.xyz vf02, vf02, vf10 + b L66 | subw.w vf02, vf00, vf00 + lq.xyzw vf07, 2(vi05) | nop +L80: + nop | subw.w vf00, vf09, vf00 + ior vi14, vi05, vi00 | mul.xyzw vf18, vf07, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf08, vf17 + isub vi05, vi04, vi02 | mul.xyzw vf20, vf05, vf17 + fsand vi10, 0x2 | nop + ibeq vi00, vi10, L79 | add.xyzw vf01, vf01, vf15 + sq.xyzw vf04, 2(vi06) | addx.w vf11, vf00, vf00 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf07 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf08 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf05 | nop + fcget vi10 | addx.xyz vf24, vf11, vf00 + fcget vi11 | clipw.xyz vf08, vf08 + fcget vi12 | clipw.xyz vf05, vf05 + lq.xyzw vf07, 2(vi05) | addx.xyz vf25, vf12, vf00 + iand vi10, vi10, vi11 | clipw.xyz vf06, vf06 + iand vi10, vi10, vi12 | addx.xyz vf26, vf09, vf00 + iand vi10, vi10, vi13 | mulz.xyz vf02, vf02, vf10 + nop | nop + ibne vi00, vi10, L66 | subw.w vf02, vf00, vf00 + fcand vi01, 0x3ffff | nop + ior vi10, vi06, vi00 | nop + ior vi11, vi03, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x483 | nop +L81: + fcand vi01, 0x3ffff | mulz.xyz vf03, vf03, vf11 + b L54 | subw.w vf03, vf00, vf00 + lq.xyzw vf08, 2(vi06) | nop +L82: + nop | subw.w vf00, vf10, vf00 + ior vi14, vi06, vi00 | mul.xyzw vf18, vf08, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf05, vf17 + isub vi06, vi05, vi08 | mul.xyzw vf20, vf06, vf17 + fsand vi10, 0x2 | nop + ibeq vi00, vi10, L81 | add.xyzw vf02, vf02, vf15 + sq.xyzw vf01, 2(vi03) | addx.w vf12, vf00, vf00 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf08 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf05 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf06 | nop + fcget vi10 | addx.xyz vf24, vf12, vf00 + fcget vi11 | clipw.xyz vf05, vf05 + fcget vi12 | clipw.xyz vf06, vf06 + lq.xyzw vf08, 2(vi06) | addx.xyz vf25, vf09, vf00 + iand vi10, vi10, vi11 | clipw.xyz vf07, vf07 + iand vi10, vi10, vi12 | addx.xyz vf26, vf10, vf00 + iand vi10, vi10, vi13 | mulz.xyz vf03, vf03, vf11 + nop | nop + ibne vi00, vi10, L54 | subw.w vf03, vf00, vf00 + fcand vi01, 0x3ffff | nop + ior vi10, vi03, vi00 | nop + ior vi11, vi04, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x438 | nop +L83: + fcand vi01, 0x3ffff | mulz.xyz vf04, vf04, vf12 + b L58 | subw.w vf04, vf00, vf00 + lq.xyzw vf05, 2(vi03) | nop +L84: + nop | subw.w vf00, vf11, vf00 + ior vi14, vi03, vi00 | mul.xyzw vf18, vf05, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf06, vf17 + isub vi03, vi06, vi02 | mul.xyzw vf20, vf07, vf17 + fsand vi10, 0x2 | nop + ibeq vi00, vi10, L83 | add.xyzw vf03, vf03, vf15 + sq.xyzw vf02, 2(vi04) | addx.w vf09, vf00, vf00 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf05 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf06 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf07 | nop + fcget vi10 | addx.xyz vf24, vf09, vf00 + fcget vi11 | clipw.xyz vf06, vf06 + fcget vi12 | clipw.xyz vf07, vf07 + lq.xyzw vf05, 2(vi03) | addx.xyz vf25, vf10, vf00 + iand vi10, vi10, vi11 | clipw.xyz vf08, vf08 + iand vi10, vi10, vi12 | addx.xyz vf26, vf11, vf00 + iand vi10, vi10, vi13 | mulz.xyz vf04, vf04, vf12 + nop | nop + ibne vi00, vi10, L58 | subw.w vf04, vf00, vf00 + fcand vi01, 0x3ffff | nop + ior vi10, vi04, vi00 | nop + ior vi11, vi05, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x451 | nop +L85: + fcand vi01, 0x3ffff | mulz.xyz vf01, vf01, vf09 + b L62 | subw.w vf01, vf00, vf00 + lq.xyzw vf06, 2(vi04) | nop +L86: + nop | subw.w vf00, vf12, vf00 + ior vi14, vi04, vi00 | mul.xyzw vf18, vf06, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf07, vf17 + isub vi04, vi03, vi08 | mul.xyzw vf20, vf08, vf17 + fsand vi10, 0x2 | nop + ibeq vi00, vi10, L85 | add.xyzw vf04, vf04, vf15 + sq.xyzw vf03, 2(vi05) | addx.w vf10, vf00, vf00 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf06 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf07 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf08 | nop + fcget vi10 | addx.xyz vf24, vf10, vf00 + fcget vi11 | clipw.xyz vf07, vf07 + fcget vi12 | clipw.xyz vf08, vf08 + lq.xyzw vf06, 2(vi04) | addx.xyz vf25, vf11, vf00 + iand vi10, vi10, vi11 | clipw.xyz vf05, vf05 + iand vi10, vi10, vi12 | addx.xyz vf26, vf12, vf00 + iand vi10, vi10, vi13 | mulz.xyz vf01, vf01, vf09 + nop | nop + ibne vi00, vi10, L62 | subw.w vf01, vf00, vf00 + fcand vi01, 0x3ffff | nop + ior vi10, vi05, vi00 | nop + ior vi11, vi06, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x46a | nop +L87: + nop | mul.xyzw vf18, vf07, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf08, vf17 + nop | mul.xyzw vf20, vf05, vf17 + ior vi14, vi05, vi00 | add.xyzw vf01, vf01, vf15 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf07 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf08 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf05 | nop + fcget vi10 | addx.xyz vf24, vf11, vf00 + fcget vi11 | nop + fcget vi12 | nop + sq.xyzw vf04, 2(vi06) | addx.xyz vf25, vf12, vf00 + iand vi10, vi10, vi11 | nop + iand vi10, vi10, vi12 | addx.xyz vf26, vf09, vf00 + iand vi10, vi10, vi13 | nop + nop | nop + ibne vi00, vi10, L64 | nop + ior vi10, vi06, vi00 | nop + ior vi11, vi03, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x478 | nop +L88: + nop | mul.xyzw vf18, vf08, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf05, vf17 + nop | mul.xyzw vf20, vf06, vf17 + ior vi14, vi06, vi00 | add.xyzw vf02, vf02, vf15 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf08 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf05 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf06 | nop + fcget vi10 | addx.xyz vf24, vf12, vf00 + fcget vi11 | nop + fcget vi12 | nop + sq.xyzw vf01, 2(vi03) | addx.xyz vf25, vf09, vf00 + iand vi10, vi10, vi11 | nop + iand vi10, vi10, vi12 | addx.xyz vf26, vf10, vf00 + iand vi10, vi10, vi13 | nop + nop | nop + ibne vi00, vi10, L68 | nop + ior vi10, vi03, vi00 | nop + ior vi11, vi04, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x492 | nop +L89: + nop | mul.xyzw vf18, vf05, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf06, vf17 + nop | mul.xyzw vf20, vf07, vf17 + ior vi14, vi03, vi00 | add.xyzw vf03, vf03, vf15 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf05 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf06 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf07 | nop + fcget vi10 | addx.xyz vf24, vf09, vf00 + fcget vi11 | nop + fcget vi12 | nop + sq.xyzw vf02, 2(vi04) | addx.xyz vf25, vf10, vf00 + iand vi10, vi10, vi11 | nop + iand vi10, vi10, vi12 | addx.xyz vf26, vf11, vf00 + iand vi10, vi10, vi13 | nop + nop | nop + ibne vi00, vi10, L56 | nop + ior vi10, vi04, vi00 | nop + ior vi11, vi05, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x446 | nop +L90: + nop | mul.xyzw vf18, vf06, vf17 + iaddiu vi13, vi00, 0x3f | mul.xyzw vf19, vf07, vf17 + nop | mul.xyzw vf20, vf08, vf17 + ior vi14, vi04, vi00 | add.xyzw vf04, vf04, vf15 + nop | clipw.xyz vf18, vf18 + move.xyzw vf18, vf06 | clipw.xyz vf19, vf19 + move.xyzw vf19, vf07 | clipw.xyz vf20, vf20 + move.xyzw vf20, vf08 | nop + fcget vi10 | addx.xyz vf24, vf10, vf00 + fcget vi11 | nop + fcget vi12 | nop + sq.xyzw vf03, 2(vi05) | addx.xyz vf25, vf11, vf00 + iand vi10, vi10, vi11 | nop + iand vi10, vi10, vi12 | addx.xyz vf26, vf12, vf00 + iand vi10, vi10, vi13 | nop + nop | nop + ibne vi00, vi10, L60 | nop + ior vi10, vi05, vi00 | nop + ior vi11, vi06, vi00 | nop + b L91 | nop + iaddiu vi15, vi00, 0x45f | nop +L91: + isw.x vi02, 44(vi09) | nop + isw.y vi03, 44(vi09) | nop + isw.z vi04, 44(vi09) | nop + isw.w vi05, 44(vi09) | nop + isw.x vi06, 45(vi09) | nop + isw.y vi07, 45(vi09) | nop + isw.z vi08, 45(vi09) | nop + isw.w vi01, 45(vi09) | nop + isw.x vi15, 46(vi09) | nop + ilw.z vi02, 1023(vi00) | nop + ilw.y vi01, 1023(vi00) | nop + ior vi03, vi10, vi00 | nop + ior vi04, vi11, vi00 | nop + isub vi11, vi02, vi14 | nop + ilw.x vi10, 1(vi14) | nop + iblez vi11, L92 | nop + ilw.y vi11, 1(vi14) | nop + ior vi02, vi01, vi00 | nop +L92: + sq.xyzw vf18, 47(vi09) | nop + sq.xyzw vf19, 48(vi09) | nop + sq.xyzw vf20, 49(vi09) | nop + sq.xyzw vf24, 50(vi09) | nop + lq.xyzw vf27, 969(vi00) | nop + lq.xyzw vf18, 0(vi02) | nop + lq.xyzw vf19, 1(vi02) | nop + lq.xyzw vf20, 2(vi02) | nop + lq.xyzw vf24, 3(vi02) | nop + sq.xyzw vf27, 0(vi09) | nop + sq.xyzw vf18, 1(vi09) | nop + lq.xyzw vf18, 4(vi02) | nop + sq.xyzw vf19, 2(vi09) | nop + sq.xyzw vf20, 3(vi09) | nop + sq.xyzw vf24, 4(vi09) | nop + sq.xyzw vf18, 5(vi09) | nop + lq.xyzw vf18, 47(vi09) | nop + lq.xyzw vf19, 48(vi09) | nop + lq.xyzw vf20, 49(vi09) | nop + lq.xyzw vf24, 50(vi09) | nop + isw.y vi02, 1023(vi00) | nop + ilw.z vi12, 1(vi14) | nop + ilw.w vi13, 1(vi14) | mulw.xyz vf24, vf24, vf18 + mfir.x vf27, vi10 | mulw.xyz vf25, vf25, vf19 + mfir.y vf27, vi11 | mulw.xyz vf26, vf26, vf20 + mfir.z vf27, vi12 | nop + mfir.w vf27, vi13 | nop + ilw.x vi10, 1(vi03) | nop + ilw.y vi11, 1(vi03) | nop + ilw.z vi12, 1(vi03) | nop + ilw.w vi13, 1(vi03) | itof0.xyzw vf27, vf27 + mfir.x vf28, vi10 | nop + mfir.y vf28, vi11 | nop + mfir.z vf28, vi12 | nop + mfir.w vf28, vi13 | nop + sq.xyzw vf27, 35(vi09) | nop + ilw.x vi10, 1(vi04) | nop + ilw.y vi11, 1(vi04) | nop + ilw.z vi12, 1(vi04) | nop + ilw.w vi13, 1(vi04) | itof0.xyzw vf28, vf28 + mfir.x vf27, vi10 | nop + mfir.y vf27, vi11 | nop + mfir.z vf27, vi12 | nop + mfir.w vf27, vi13 | nop + sq.xyzw vf28, 38(vi09) | nop + lq.xyzw vf28, 971(vi00) | nop + sq.xyzw vf18, 34(vi09) | nop + sq.xyzw vf24, 36(vi09) | nop + sq.xyzw vf19, 37(vi09) | itof0.xyzw vf27, vf27 + sq.xyzw vf25, 39(vi09) | nop + sq.xyzw vf20, 40(vi09) | nop + sq.xyzw vf26, 42(vi09) | nop + sq.xyzw vf27, 41(vi09) | nop + sq.xyzw vf29, 43(vi09) | nop + sq.xyzw vf28, 6(vi09) | nop + bal vi15, L94 | nop + nop | nop + ibeq vi00, vi02, L93 | nop + nop | nop + iaddiu vi10, vi00, 0x3c6 | nop + xgkick vi10 | nop + nop | nop + xgkick vi09 | nop + nop | nop + xgkick vi10 | nop +L93: + lq.xyzw vf29, 43(vi09) | nop + ilw.x vi15, 46(vi09) | nop + ilw.x vi02, 44(vi09) | nop + ilw.y vi03, 44(vi09) | nop + ilw.z vi04, 44(vi09) | nop + ilw.w vi05, 44(vi09) | nop + ilw.x vi06, 45(vi09) | nop + ilw.y vi07, 45(vi09) | nop + ilw.z vi08, 45(vi09) | nop + jr vi15 | nop + ilw.w vi01, 45(vi09) | nop + mtir vi04, vf29.x | nop + mtir vi05, vf29.y | nop + mtir vi06, vf29.z | nop + mtir vi07, vf29.w | nop + mtir vi08, vf30.x | nop + mtir vi09, vf30.y | nop + mtir vi10, vf30.z | nop + mtir vi11, vf30.w | nop + mtir vi13, vf31.x | nop + mtir vi14, vf31.y | nop + mtir vi15, vf31.z | nop + mtir vi01, vf23.y | nop + mtir vi12, vf23.w | nop + mr32.xyzw vf22, vf22 | nop + iaddiu vi02, vi00, 0x32 | nop + iadd vi01, vi01, vi15 | nop + mfir.y vf23, vi12 | nop :e + mtir vi03, vf22.x | nop + nop | nop :e + nop | nop +L94: + iaddi vi12, vi09, 0x7 | nop + isw.x vi15, 1023(vi00) | nop + iaddi vi02, vi00, 0x0 | nop + bal vi15, L95 | nop + iaddiu vi04, vi09, 0x22 | nop + bal vi15, L95 | nop + iaddiu vi04, vi09, 0x25 | nop + bal vi15, L95 | nop + iaddiu vi04, vi09, 0x28 | nop + b L104 | nop + nop | nop +L95: + iaddiu vi06, vi00, 0x3d1 | nop +L96: + iaddi vi07, vi00, 0x0 | nop +L97: + isubiu vi01, vi06, 0x3fb | nop + ilwr.y vi05, vi06 | nop + ibeq vi00, vi01, L101 | nop + ilwr.z vi03, vi06 | nop + lq.xyzw vf19, 0(vi04) | nop + lq.xyzw vf18, 0(vi05) | nop + ibne vi00, vi05, L98 | nop + iswr.y vi04, vi06 | nop + jalr vi08, vi03 | nop + iswr.x vi04, vi06 | nop + nop | nop + nop | nop + nop | nop + fsand vi11, 0x2 | nop + ibne vi00, vi11, L102 | nop + nop | nop + b L97 | nop + iaddi vi06, vi06, 0x7 | nop +L98: + jalr vi08, vi03 | nop + lq.xyzw vf27, 1(vi05) | nop + lq.xyzw vf28, 1(vi04) | nop + lq.xyz vf24, 2(vi05) | nop + fsand vi10, 0x2 | nop + fsand vi11, 0x2 | subw.w vf25, vf24, vf25 + ibne vi00, vi10, L100 | nop + lq.xyz vf25, 2(vi04) | nop + ibne vi00, vi11, L99 | nop + div Q, vf24.w, vf25.w | nop + b L97 | nop + iaddi vi06, vi06, 0x7 | nop +L99: + bal vi08, L109 | nop + iaddi vi04, vi06, 0x1 | nop + sq.xyzw vf20, 1(vi06) | nop + sq.xyzw vf29, 2(vi06) | nop + sq.xyz vf26, 3(vi06) | nop + b L97 | nop + iaddi vi06, vi06, 0x7 | nop +L100: + ibne vi00, vi11, L102 | nop + div Q, vf24.w, vf25.w | nop + bal vi08, L109 | nop + nop | nop + sq.xyzw vf20, 4(vi06) | nop + sq.xyzw vf29, 5(vi06) | nop + sq.xyz vf26, 6(vi06) | nop + iaddi vi06, vi06, 0x7 | nop + isw.x vi06, 1019(vi07) | nop + isw.y vi04, 1019(vi07) | nop + iaddi vi07, vi07, 0x1 | nop + b L97 | nop + iaddi vi04, vi06, -0x3 | nop +L101: + lq.xyzw vf18, 0(vi04) | nop + lq.xyzw vf27, 1(vi04) | nop + lq.xyz vf24, 2(vi04) | nop + iaddi vi02, vi02, 0x1 | nop + nop | nop + div Q, vf00.w, vf18.w | mul.xyz vf18, vf18, vf14 + nop | ftoi0.xyzw vf27, vf27 + nop | subw.w vf18, vf00, vf00 + iaddi vi12, vi12, 0x3 | nop + waitq | mul.xyz vf24, vf24, Q + sq.xyzw vf27, -2(vi12) | mul.xyz vf18, vf18, Q + nop | add.xyzw vf18, vf18, vf16 + sq.xyz vf24, -3(vi12) | ftoi4.xyzw vf18, vf18 + sq.xyzw vf18, -1(vi12) | nop +L102: + iblez vi07, L103 | nop + nop | nop + ilw.x vi06, 1018(vi07) | nop + ilw.y vi04, 1018(vi07) | nop + b L97 | nop + iaddi vi07, vi07, -0x1 | nop +L103: + jr vi15 | nop + nop | nop +L104: + iaddiu vi06, vi00, 0x3d1 | nop +L105: + ilwr.x vi05, vi06 | nop + ilwr.y vi04, vi06 | nop + ilwr.z vi03, vi06 | nop + nop | nop + ibeq vi00, vi05, L107 | nop + lq.xyzw vf18, 0(vi04) | nop + ibeq vi04, vi05, L107 | nop + lq.xyzw vf19, 0(vi05) | nop + jalr vi08, vi03 | nop + lq.xyzw vf27, 1(vi04) | nop + lq.xyzw vf28, 1(vi05) | nop + lq.xyz vf24, 2(vi04) | nop + fsand vi10, 0x2 | nop + fsand vi11, 0x2 | subw.w vf25, vf24, vf25 + ibeq vi11, vi10, L107 | nop + lq.xyz vf25, 2(vi05) | nop + ibeq vi00, vi10, L106 | nop + div Q, vf24.w, vf25.w | nop + bal vi08, L109 | nop + nop | nop + sq.xyzw vf20, 4(vi06) | nop + sq.xyzw vf29, 5(vi06) | nop + sq.xyz vf26, 6(vi06) | nop + iaddi vi04, vi06, 0x4 | nop + ior vi13, vi06, vi00 | nop + bal vi15, L96 | nop + iaddi vi06, vi06, 0x7 | nop + b L107 | nop + ior vi06, vi13, vi00 | nop +L106: + bal vi08, L109 | nop + nop | nop + sq.xyzw vf20, 1(vi06) | nop + sq.xyzw vf29, 2(vi06) | nop + sq.xyz vf26, 3(vi06) | nop + iaddi vi04, vi06, 0x1 | nop + ior vi13, vi06, vi00 | nop + bal vi15, L96 | nop + iaddi vi06, vi06, 0x7 | nop + ior vi06, vi13, vi00 | nop +L107: + isubiu vi01, vi06, 0x3f4 | nop + iswr.x vi00, vi06 | nop + iswr.y vi00, vi06 | nop + ibltz vi01, L105 | nop + iaddi vi06, vi06, 0x7 | nop + ibeq vi00, vi02, L108 | nop + ilw.x vi15, 1023(vi00) | nop + iaddiu vi02, vi02, 0x4000 | nop + iaddiu vi02, vi02, 0x4000 | nop +L108: + jr vi15 | nop + isw.x vi02, 6(vi09) | nop + jr vi08 | addx.w vf24, vf18, vf18 + nop | addx.w vf25, vf19, vf19 + jr vi08 | subx.w vf24, vf18, vf18 + nop | subx.w vf25, vf19, vf19 + jr vi08 | addy.w vf24, vf18, vf18 + nop | addy.w vf25, vf19, vf19 + jr vi08 | suby.w vf24, vf18, vf18 + nop | suby.w vf25, vf19, vf19 + jr vi08 | addz.w vf24, vf18, vf18 + nop | addz.w vf25, vf19, vf19 + jr vi08 | subz.w vf24, vf18, vf18 + nop | subz.w vf25, vf19, vf19 +L109: + nop | sub.xyzw vf20, vf19, vf18 + nop | sub.xyzw vf29, vf28, vf27 + nop | sub.xyz vf26, vf25, vf24 + waitq | mul.xyzw vf20, vf20, Q + nop | mul.xyzw vf29, vf29, Q + nop | mul.xyz vf26, vf26, Q + nop | add.xyzw vf20, vf18, vf20 + jr vi08 | add.xyzw vf29, vf27, vf29 + nop | add.xyz vf26, vf24, vf26 diff --git a/test/decompiler/vu_reference/tie-near.txt b/test/decompiler/vu_reference/tie-near.txt new file mode 100644 index 0000000000..ece46eb3f0 --- /dev/null +++ b/test/decompiler/vu_reference/tie-near.txt @@ -0,0 +1,3568 @@ + .word 0x400000b9 + .word 0x2ff + .word 0x81f5ab3d + .word 0x2ff + .word 0x4000064f + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x40000018 + .word 0x2ff + .word 0x80020032 + .word 0x155bd44 + .word 0x40000001 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x1f503c7 + .word 0x2ff + .word 0x15703c6 + .word 0x2ff + .word 0x1f603c8 + .word 0x2ff + .word 0x3e003d1 + .word 0x2ff + .word 0x3e003d8 + .word 0x2ff + .word 0x3e003df + .word 0x2ff + .word 0x3e003e6 + .word 0x2ff + .word 0x3e003ed + .word 0x2ff + .word 0x3e003f4 + .word 0x2ff + .word 0x100106e3 + .word 0x2ff + .word 0xa4103d1 + .word 0x2ff + .word 0x100106e5 + .word 0x2ff + .word 0xa4103d8 + .word 0x2ff + .word 0x100106e7 + .word 0x2ff + .word 0xa4103df + .word 0x2ff + .word 0x100106e9 + .word 0x2ff + .word 0xa4103e6 + .word 0x2ff + .word 0x100106eb + .word 0x2ff + .word 0xa4103ed + .word 0x2ff + .word 0x100106ed + .word 0x400002ff + .word 0xa4103f4 + .word 0x2ff + .word 0x1c103c9 + .word 0x2ff + .word 0x802413fe + .word 0x2ff + .word 0x8291001 + .word 0x2ff + .word 0x8026abfc + .word 0x2ff + .word 0x81e2137c + .word 0x155ad45 + .word 0x81e3137c + .word 0x2ff + .word 0x81e4137c + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x8005abfc + .word 0x2ff + .word 0x81e6137c + .word 0x210847 + .word 0x800520f0 + .word 0x2ff + .word 0x80062130 + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x81e30b7d + .word 0x2ff + .word 0x81e3137d + .word 0x2ff + .word 0x81e31b7d + .word 0x2ff + .word 0x81e3237d + .word 0x2ff + .word 0x81e32b7d + .word 0x2ff + .word 0x81e3337d + .word 0x2ff + .word 0x81e40b7d + .word 0x2ff + .word 0x81e4137d + .word 0x2ff + .word 0x81e41b7d + .word 0x2ff + .word 0x81e4237d + .word 0x2ff + .word 0x81e42b7d + .word 0x2ff + .word 0x81e4337d + .word 0x2ff + .word 0x802413fe + .word 0x2ff + .word 0x81e2137c + .word 0x2ff + .word 0x81e3137c + .word 0x2ff + .word 0x81e4137c + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x5a004feb + .word 0x2ff + .word 0x81e6137c + .word 0x2ff + .word 0x806913fc + .word 0x2ff + .word 0x800217b2 + .word 0x2739c7 + .word 0x810713fe + .word 0x2ff + .word 0x808813fe + .word 0x2ff + .word 0x804413fe + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x80021072 + .word 0x2ff + .word 0x5000480e + .word 0x2ff + .word 0x1c743ca + .word 0x2ff + .word 0x800520f0 + .word 0x2ff + .word 0x80062130 + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x3e33800 + .word 0x2ff + .word 0x81071bff + .word 0x2ff + .word 0x3e43800 + .word 0x2ff + .word 0x810723ff + .word 0x2ff + .word 0x810713fe + .word 0x2ff + .word 0x808813fe + .word 0x2ff + .word 0x804413fe + .word 0x2ff + .word 0x80021072 + .word 0x2ff + .word 0x52004ff4 + .word 0x2ff + .word 0x1c743ca + .word 0x2ff + .word 0x11073800 + .word 0x2ff + .word 0x11073800 + .word 0x2ff + .word 0x800520f0 + .word 0x2ff + .word 0x80062130 + .word 0x2ff + .word 0x3e33800 + .word 0x2ff + .word 0x81071bff + .word 0x2ff + .word 0x3e43800 + .word 0x2ff + .word 0x810723ff + .word 0x2ff + .word 0x800c23fc + .word 0x2ff + .word 0x802d23fc + .word 0x2ff + .word 0x100b0032 + .word 0x2ff + .word 0x42800000 + .word 0x800002ff + .word 0x100c6032 + .word 0x2ff + .word 0x81e65b7c + .word 0x2ff + .word 0x81ec5b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1e6313c + .word 0x81e75b7c + .word 0x1cc613e + .word 0x81ed5b7c + .word 0x2c613c + .word 0x80000030 + .word 0x2ff + .word 0x500c5810 + .word 0x1c0319e + .word 0x80000030 + .word 0x1e7393c + .word 0x81e85b7c + .word 0x1cd693e + .word 0x81ee5b7c + .word 0x2d693c + .word 0x3eb67fb + .word 0x2ff + .word 0x500c580b + .word 0x1c039de + .word 0x3eb37fa + .word 0x1e8413c + .word 0x81e65b7c + .word 0x1ce713e + .word 0x81ec5b7c + .word 0x2e713c + .word 0x3eb6ffb + .word 0x2ff + .word 0x500c5806 + .word 0x1c0421e + .word 0x3eb3ffa + .word 0x1e6313c + .word 0x81e75b7c + .word 0x1cc613e + .word 0x81ed5b7c + .word 0x2c613c + .word 0x3eb77fb + .word 0x2ff + .word 0x520c5ff2 + .word 0x1c0319e + .word 0x3eb47fa + .word 0x1e7393c + .word 0x800b5f32 + .word 0x2ff + .word 0x800b6b70 + .word 0x2ff + .word 0x800058b5 + .word 0x2ff + .word 0x81e95b7c + .word 0x2ff + .word 0x81e65b7c + .word 0x2ff + .word 0x81ec5b7c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x500d581d + .word 0x2ff + .word 0x80000030 + .word 0x1e9493c + .word 0x81ea5b7c + .word 0x1e6313c + .word 0x81e75b7c + .word 0x2c613c + .word 0x81ed5b7c + .word 0x1cc613e + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c04a5e + .word 0x500d5816 + .word 0x1c0319e + .word 0x80000030 + .word 0x1ea513c + .word 0x81eb5b7c + .word 0x1e7393c + .word 0x81e85b7c + .word 0x2d693c + .word 0x81ee5b7c + .word 0x1cd693e + .word 0x81e24b7d + .word 0x2ff + .word 0x81e2337d + .word 0x1c0529e + .word 0x500d580f + .word 0x1c039de + .word 0x81e2637d + .word 0x1eb593c + .word 0x81e95b7c + .word 0x1e8413c + .word 0x81e65b7c + .word 0x2e713c + .word 0x81ec5b7c + .word 0x1ce713e + .word 0x81e2537d + .word 0x2ff + .word 0x81e23b7d + .word 0x1c05ade + .word 0x500d5808 + .word 0x1c0421e + .word 0x81e26b7d + .word 0x1e9493c + .word 0x81ea5b7c + .word 0x1e6313c + .word 0x81e75b7c + .word 0x2c613c + .word 0x81ed5b7c + .word 0x1cc613e + .word 0x81e25b7d + .word 0x2ff + .word 0x81e2437d + .word 0x1c04a5e + .word 0x520d5fec + .word 0x1c0319e + .word 0x81e2737d + .word 0x1ea513c + .word 0x804123fc + .word 0x2ff + .word 0x800513fc + .word 0x2ff + .word 0x802e13fc + .word 0x2ff + .word 0x80041bfc + .word 0x2ff + .word 0x52000803 + .word 0x2ff + .word 0x13e907ff + .word 0x2ff + .word 0x40000002 + .word 0x2ff + .word 0x1e503cf + .word 0x2ff + .word 0x1e503d0 + .word 0x2ff + .word 0x100103c6 + .word 0x2ff + .word 0x80261bfc + .word 0x2ff + .word 0x80471bfc + .word 0x2ff + .word 0x80681bfc + .word 0x2ff + .word 0x800f0032 + .word 0x2ff + .word 0x8003b3fc + .word 0x2ff + .word 0x10020032 + .word 0x2ff + .word 0x3e10800 + .word 0x2ff + .word 0x3e12801 + .word 0x2ff + .word 0x81090bff + .word 0x2ff + .word 0x81f5ab3d + .word 0x2ff + .word 0x809703fd + .word 0x2ff + .word 0x803703fd + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x1f81806 + .word 0x2ff + .word 0x1e41803 + .word 0x2ff + .word 0x1e11800 + .word 0x2ff + .word 0x1e21801 + .word 0x2ff + .word 0x1e31802 + .word 0x2ff + .word 0x8009c3fc + .word 0x2ff + .word 0x81f1137c + .word 0x1e021bf + .word 0x1fb1804 + .word 0x1e508bc + .word 0x80000030 + .word 0x1e510bd + .word 0x1ed4b46 + .word 0x1e51a4a + .word 0x81e6137c + .word 0x2ff + .word 0x800319f2 + .word 0x2ff + .word 0x8029c3fc + .word 0x2ff + .word 0x81e903bc + .word 0x1e021bf + .word 0x81f2137c + .word 0x1e608bc + .word 0x8001abfc + .word 0x1e610bd + .word 0x1ee4b46 + .word 0x1e61a8a + .word 0x800f0871 + .word 0x2ff + .word 0x80012130 + .word 0x2ff + .word 0x800131b0 + .word 0x2ff + .word 0x81e7137c + .word 0x2ff + .word 0x81ea03bc + .word 0x1c08c5c + .word 0x8049c3fc + .word 0x352940 + .word 0x81f3137c + .word 0x1e021bf + .word 0x800139f0 + .word 0x1e708bc + .word 0x80014230 + .word 0x1e710bd + .word 0x1ef4b46 + .word 0x2ff + .word 0x5004630e + .word 0x1e71aca + .word 0x80017bf0 + .word 0x2ff + .word 0x806c2bfc + .word 0x2ff + .word 0x81e8137c + .word 0x2ff + .word 0x81eb03bc + .word 0x1c0949c + .word 0x8069c3fc + .word 0x353180 + .word 0x81f4137c + .word 0x1e021bf + .word 0x3ec8800 + .word 0x1e808bc + .word 0x3ec6801 + .word 0x1e810bd + .word 0x1f04b46 + .word 0x2ff + .word 0x50046071 + .word 0x1e81b0a + .word 0x3ec4802 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x806c33fc + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x81ec03bc + .word 0x1c09cdc + .word 0x8009c3fc + .word 0x3539c0 + .word 0x81f1137c + .word 0x1e021bf + .word 0x3ec9000 + .word 0x1e508bc + .word 0x3ec7001 + .word 0x1e510bd + .word 0x1ed4b46 + .word 0x2ff + .word 0x5004604c + .word 0x1e51a4a + .word 0x3ec5002 + .word 0x2ff + .word 0x806c3bfc + .word 0x2ff + .word 0x81e6137c + .word 0x2ff + .word 0x81e903bc + .word 0x1c0a51c + .word 0x8029c3fc + .word 0x354200 + .word 0x81f2137c + .word 0x1e021bf + .word 0x3ec9800 + .word 0x1e608bc + .word 0x3ec7801 + .word 0x1e610bd + .word 0x1ee4b46 + .word 0x2ff + .word 0x50046027 + .word 0x1e61a8a + .word 0x3ec5802 + .word 0x2ff + .word 0x806c43fc + .word 0x2ff + .word 0x81e7137c + .word 0x2ff + .word 0x81ea03bc + .word 0x1c08c5c + .word 0x8049c3fc + .word 0x352940 + .word 0x81f3137c + .word 0x1e021bf + .word 0x3eca000 + .word 0x1e708bc + .word 0x3ec8001 + .word 0x1e710bd + .word 0x1ef4b46 + .word 0x2ff + .word 0x520467d8 + .word 0x1e71aca + .word 0x3ec6002 + .word 0x2ff + .word 0x806c2bfc + .word 0x2ff + .word 0x5200292c + .word 0x2ff + .word 0x81e8137c + .word 0x1c0949c + .word 0x81eb03bc + .word 0x353180 + .word 0x8069c3fc + .word 0x1e021bf + .word 0x81f81b7c + .word 0x2ff + .word 0x3ec8800 + .word 0x3539c0 + .word 0x3ec6801 + .word 0x1e808bc + .word 0x81f4137c + .word 0x1e810bd + .word 0x1f04b46 + .word 0x2ff + .word 0x81e5137c + .word 0x1e81b0a + .word 0x3ec4802 + .word 0x2ff + .word 0x806c33fc + .word 0x1c09cdc + .word 0x81f1137c + .word 0x1e021bf + .word 0x8009c3fc + .word 0x1e508bc + .word 0x80000030 + .word 0x1e510bd + .word 0x81ec03bc + .word 0x2ff + .word 0x3ec9000 + .word 0x1e51a4a + .word 0x3ec7001 + .word 0x2ff + .word 0x3ec5002 + .word 0x2ff + .word 0x806c3bfc + .word 0x2ff + .word 0x1ed4b46 + .word 0x354200 + .word 0x81e903bc + .word 0x2ff + .word 0x3ec9800 + .word 0x1c0a51c + .word 0x3ec7801 + .word 0x35a500 + .word 0x3ec5802 + .word 0x2ff + .word 0x40000051 + .word 0x2ff + .word 0x806c43fc + .word 0x2ff + .word 0x806c43fc + .word 0x2ff + .word 0x520028fd + .word 0x2ff + .word 0x81e7137c + .word 0x1c08c5c + .word 0x81ea03bc + .word 0x352940 + .word 0x8049c3fc + .word 0x1e021bf + .word 0x3eca000 + .word 0x2ff + .word 0x3ec8001 + .word 0x1e708bc + .word 0x81f3137c + .word 0x1e710bd + .word 0x1ef4b46 + .word 0x2ff + .word 0x81e8137c + .word 0x1e71aca + .word 0x3ec6002 + .word 0x2ff + .word 0x806c2bfc + .word 0x1c0949c + .word 0x81f4137c + .word 0x1e021bf + .word 0x81eb03bc + .word 0x1e808bc + .word 0x8069c3fc + .word 0x353180 + .word 0x81f81b7c + .word 0x2ff + .word 0x3ec8800 + .word 0x1e810bd + .word 0x3ec6801 + .word 0x2ff + .word 0x3ec4802 + .word 0x1e81b0a + .word 0x806c33fc + .word 0x2ff + .word 0x1f04b46 + .word 0x3539c0 + .word 0x81ec03bc + .word 0x2ff + .word 0x3ec9000 + .word 0x1c09cdc + .word 0x3ec7001 + .word 0x359cc0 + .word 0x3ec5002 + .word 0x2ff + .word 0x40000061 + .word 0x2ff + .word 0x806c3bfc + .word 0x2ff + .word 0x806c3bfc + .word 0x2ff + .word 0x520028cf + .word 0x2ff + .word 0x81e6137c + .word 0x1c0a51c + .word 0x81e903bc + .word 0x354200 + .word 0x8029c3fc + .word 0x1e021bf + .word 0x3ec9800 + .word 0x2ff + .word 0x3ec7801 + .word 0x1e608bc + .word 0x81f2137c + .word 0x1e610bd + .word 0x1ee4b46 + .word 0x2ff + .word 0x81e7137c + .word 0x1e61a8a + .word 0x3ec5802 + .word 0x2ff + .word 0x806c43fc + .word 0x1c08c5c + .word 0x81f3137c + .word 0x1e021bf + .word 0x81ea03bc + .word 0x1e708bc + .word 0x8049c3fc + .word 0x352940 + .word 0x3eca000 + .word 0x1e710bd + .word 0x3ec8001 + .word 0x2ff + .word 0x3ec6002 + .word 0x1e71aca + .word 0x806c2bfc + .word 0x2ff + .word 0x1ef4b46 + .word 0x353180 + .word 0x3ec8800 + .word 0x2ff + .word 0x81eb03bc + .word 0x1c0949c + .word 0x3ec6801 + .word 0x359480 + .word 0x3ec4802 + .word 0x2ff + .word 0x40000038 + .word 0x2ff + .word 0x806c33fc + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x806c33fc + .word 0x2ff + .word 0x520028a1 + .word 0x2ff + .word 0x81e5137c + .word 0x1c09cdc + .word 0x81ec03bc + .word 0x3539c0 + .word 0x8009c3fc + .word 0x1e021bf + .word 0x3ec9000 + .word 0x1e508bc + .word 0x3ec7001 + .word 0x1e510bd + .word 0x81f1137c + .word 0x2ff + .word 0x1ed4b46 + .word 0x1e51a4a + .word 0x81e6137c + .word 0x354200 + .word 0x3ec5002 + .word 0x2ff + .word 0x806c3bfc + .word 0x1c0a51c + .word 0x81e903bc + .word 0x1e021bf + .word 0x8029c3fc + .word 0x1e608bc + .word 0x81f2137c + .word 0x1e610bd + .word 0x3ec9800 + .word 0x2ff + .word 0x3ec7801 + .word 0x1e61a8a + .word 0x3ec5802 + .word 0x2ff + .word 0x806c43fc + .word 0x2ff + .word 0x1ee4b46 + .word 0x352940 + .word 0x81ea03bc + .word 0x2ff + .word 0x3eca000 + .word 0x1c08c5c + .word 0x3ec8001 + .word 0x358c40 + .word 0x3ec6002 + .word 0x2ff + .word 0x4000000f + .word 0x2ff + .word 0x806c2bfc + .word 0x2ff + .word 0x81e6137c + .word 0x2ff + .word 0x8029c3fc + .word 0x2ff + .word 0x806da3fc + .word 0x1e021bf + .word 0x3eca000 + .word 0x352940 + .word 0x3ec8001 + .word 0x1e608bc + .word 0x3ec6002 + .word 0x1e610bd + .word 0x81f2137c + .word 0x1e61a8a + .word 0x1ee4b46 + .word 0x2ff + .word 0x3eda000 + .word 0x1c08c5c + .word 0x3ed8001 + .word 0x358c40 + .word 0x3ed6002 + .word 0x2ff + .word 0x81ea03bc + .word 0x2ff + .word 0x50066040 + .word 0x2ff + .word 0x806c2bfc + .word 0x2ff + .word 0x81e7137c + .word 0x2ff + .word 0x8049c3fc + .word 0x2ff + .word 0x806d8bfc + .word 0x1e021bf + .word 0x3ec8800 + .word 0x353180 + .word 0x3ec6801 + .word 0x1e708bc + .word 0x3ec4802 + .word 0x1e710bd + .word 0x81f3137c + .word 0x1e71aca + .word 0x1ef4b46 + .word 0x2ff + .word 0x3ed8800 + .word 0x1c0949c + .word 0x3ed6801 + .word 0x359480 + .word 0x3ed4802 + .word 0x2ff + .word 0x81eb03bc + .word 0x2ff + .word 0x50066046 + .word 0x2ff + .word 0x806c33fc + .word 0x2ff + .word 0x81e8137c + .word 0x2ff + .word 0x8069c3fc + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x806d93fc + .word 0x1e021bf + .word 0x3ec9000 + .word 0x3539c0 + .word 0x3ec7001 + .word 0x1e808bc + .word 0x3ec5002 + .word 0x1e810bd + .word 0x81f4137c + .word 0x1e81b0a + .word 0x1f04b46 + .word 0x2ff + .word 0x3ed9000 + .word 0x1c09cdc + .word 0x3ed7001 + .word 0x359cc0 + .word 0x3ed5002 + .word 0x2ff + .word 0x81ec03bc + .word 0x2ff + .word 0x5006604b + .word 0x2ff + .word 0x806c3bfc + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x8009c3fc + .word 0x2ff + .word 0x806d9bfc + .word 0x1e021bf + .word 0x3ec9800 + .word 0x354200 + .word 0x3ec7801 + .word 0x1e508bc + .word 0x3ec5802 + .word 0x1e510bd + .word 0x81f1137c + .word 0x1e51a4a + .word 0x1ed4b46 + .word 0x2ff + .word 0x3ed9800 + .word 0x1c0a51c + .word 0x3ed7801 + .word 0x35a500 + .word 0x3ed5802 + .word 0x2ff + .word 0x81e903bc + .word 0x2ff + .word 0x520667c8 + .word 0x2ff + .word 0x806c43fc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806da3fc + .word 0x2ff + .word 0x3eca000 + .word 0x352940 + .word 0x3ec8001 + .word 0x358c40 + .word 0x3ec6002 + .word 0x2ff + .word 0x3eda000 + .word 0x1c08c5c + .word 0x3ed8001 + .word 0x2ff + .word 0x3ed6002 + .word 0x2ff + .word 0x806c2bfc + .word 0x2ff + .word 0x806d8bfc + .word 0x2ff + .word 0x3ec8800 + .word 0x2ff + .word 0x3ec6801 + .word 0x2ff + .word 0x3ec4802 + .word 0x2ff + .word 0x3ed8800 + .word 0x2ff + .word 0x3ed6801 + .word 0x2ff + .word 0x500070b8 + .word 0x2ff + .word 0x3ed4802 + .word 0x2ff + .word 0x4000022c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806d8bfc + .word 0x2ff + .word 0x3ec8800 + .word 0x353180 + .word 0x3ec6801 + .word 0x359480 + .word 0x3ec4802 + .word 0x2ff + .word 0x3ed8800 + .word 0x1c0949c + .word 0x3ed6801 + .word 0x2ff + .word 0x3ed4802 + .word 0x2ff + .word 0x806c33fc + .word 0x2ff + .word 0x806d93fc + .word 0x2ff + .word 0x3ec9000 + .word 0x2ff + .word 0x3ec7001 + .word 0x2ff + .word 0x3ec5002 + .word 0x2ff + .word 0x3ed9000 + .word 0x2ff + .word 0x3ed7001 + .word 0x2ff + .word 0x500070d2 + .word 0x2ff + .word 0x3ed5002 + .word 0x2ff + .word 0x40000218 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806d93fc + .word 0x2ff + .word 0x3ec9000 + .word 0x3539c0 + .word 0x3ec7001 + .word 0x359cc0 + .word 0x3ec5002 + .word 0x2ff + .word 0x3ed9000 + .word 0x1c09cdc + .word 0x3ed7001 + .word 0x2ff + .word 0x3ed5002 + .word 0x2ff + .word 0x806c3bfc + .word 0x2ff + .word 0x806d9bfc + .word 0x2ff + .word 0x3ec9800 + .word 0x2ff + .word 0x3ec7801 + .word 0x2ff + .word 0x3ec5802 + .word 0x2ff + .word 0x3ed9800 + .word 0x2ff + .word 0x3ed7801 + .word 0x2ff + .word 0x500070ec + .word 0x2ff + .word 0x3ed5802 + .word 0x2ff + .word 0x40000204 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806d9bfc + .word 0x2ff + .word 0x3ec9800 + .word 0x354200 + .word 0x3ec7801 + .word 0x35a500 + .word 0x3ec5802 + .word 0x2ff + .word 0x3ed9800 + .word 0x1c0a51c + .word 0x3ed7801 + .word 0x2ff + .word 0x3ed5802 + .word 0x2ff + .word 0x806c43fc + .word 0x2ff + .word 0x806da3fc + .word 0x2ff + .word 0x3eca000 + .word 0x2ff + .word 0x3ec8001 + .word 0x2ff + .word 0x3ec6002 + .word 0x2ff + .word 0x3eda000 + .word 0x2ff + .word 0x3ed8001 + .word 0x2ff + .word 0x5000704f + .word 0x2ff + .word 0x3ed6002 + .word 0x2ff + .word 0x400001f0 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81ec03bc + .word 0x3539c0 + .word 0x3ec9000 + .word 0x354200 + .word 0x3ec7001 + .word 0x2ff + .word 0x3ec5002 + .word 0x2ff + .word 0x800217f2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806c3bfc + .word 0x1c0a51c + .word 0x806d43fc + .word 0x2ff + .word 0x3ec9800 + .word 0x2ff + .word 0x3ec7801 + .word 0x2ff + .word 0x3ec5802 + .word 0x2ff + .word 0x3eda000 + .word 0x2ff + .word 0x3ed8001 + .word 0x2ff + .word 0x5000703c + .word 0x2ff + .word 0x3ed6002 + .word 0x2ff + .word 0x400001dd + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e903bc + .word 0x354200 + .word 0x3ec9800 + .word 0x352940 + .word 0x3ec7801 + .word 0x2ff + .word 0x3ec5802 + .word 0x2ff + .word 0x800217f2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806c43fc + .word 0x1c08c5c + .word 0x806d2bfc + .word 0x2ff + .word 0x3eca000 + .word 0x2ff + .word 0x3ec8001 + .word 0x2ff + .word 0x3ec6002 + .word 0x2ff + .word 0x3ed8800 + .word 0x2ff + .word 0x3ed6801 + .word 0x2ff + .word 0x50007056 + .word 0x2ff + .word 0x3ed4802 + .word 0x2ff + .word 0x400001ca + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81ea03bc + .word 0x352940 + .word 0x3eca000 + .word 0x353180 + .word 0x3ec8001 + .word 0x2ff + .word 0x3ec6002 + .word 0x2ff + .word 0x800217f2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806c2bfc + .word 0x1c0949c + .word 0x806d33fc + .word 0x2ff + .word 0x3ec8800 + .word 0x2ff + .word 0x3ec6801 + .word 0x2ff + .word 0x3ec4802 + .word 0x2ff + .word 0x3ed9000 + .word 0x2ff + .word 0x3ed7001 + .word 0x2ff + .word 0x50007071 + .word 0x2ff + .word 0x3ed5002 + .word 0x2ff + .word 0x400001b7 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81eb03bc + .word 0x353180 + .word 0x3ec8800 + .word 0x3539c0 + .word 0x3ec6801 + .word 0x2ff + .word 0x3ec4802 + .word 0x2ff + .word 0x800217f2 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806c33fc + .word 0x1c09cdc + .word 0x806d3bfc + .word 0x2ff + .word 0x3ec9000 + .word 0x2ff + .word 0x3ec7001 + .word 0x2ff + .word 0x3ec5002 + .word 0x2ff + .word 0x3ed9800 + .word 0x2ff + .word 0x3ed7801 + .word 0x2ff + .word 0x5000708c + .word 0x2ff + .word 0x3ed5802 + .word 0x2ff + .word 0x400001a4 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x3f000000 + .word 0x80200707 + .word 0x81dc137c + .word 0x8006e2 + .word 0x81f1137c + .word 0x2ff + .word 0x8009c3fc + .word 0x2ff + .word 0x802ac3fc + .word 0x35e700 + .word 0x804bc3fc + .word 0x1db2958 + .word 0x80000030 + .word 0x2ff + .word 0x1ed4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc2968 + .word 0x1fe5b46 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e6137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e508bc + .word 0x81f2137c + .word 0x1e510bd + .word 0x80000030 + .word 0x1e51a4a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb6b4a + .word 0x804bc3fc + .word 0x1db3198 + .word 0x80000030 + .word 0x2ff + .word 0x1ee4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc31a8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81e903bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e7137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e608bc + .word 0x81f3137c + .word 0x1e610bd + .word 0x80000030 + .word 0x1e61a8a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1db39d8 + .word 0x804bc3fc + .word 0x1fb738a + .word 0x80000030 + .word 0x2ff + .word 0x1ef4b46 + .word 0x1c08c5c + .word 0x1fd5346 + .word 0x1fc39e8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ea03bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000008b + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e6137c + .word 0x2ff + .word 0x81f81b7c + .word 0x200707 + .word 0x3f000000 + .word 0x800002ff + .word 0x81dc137c + .word 0x8006e2 + .word 0x81f2137c + .word 0x2ff + .word 0x8009c3fc + .word 0x35e700 + .word 0x802ac3fc + .word 0x2ff + .word 0x804bc3fc + .word 0x1db3198 + .word 0x80000030 + .word 0x2ff + .word 0x1ee4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc31a8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e7137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e608bc + .word 0x81f3137c + .word 0x1e610bd + .word 0x80000030 + .word 0x1e61a8a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb738a + .word 0x804bc3fc + .word 0x1db39d8 + .word 0x80000030 + .word 0x2ff + .word 0x1ef4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc39e8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ea03bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e8137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e708bc + .word 0x81f4137c + .word 0x1e710bd + .word 0x80000030 + .word 0x1e71aca + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1db4218 + .word 0x804bc3fc + .word 0x1fb7bca + .word 0x80000030 + .word 0x2ff + .word 0x1f04b46 + .word 0x1c0949c + .word 0x1fd5346 + .word 0x1fc4228 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81eb03bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000006d + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e7137c + .word 0x2ff + .word 0x81f81b7c + .word 0x200707 + .word 0x3f000000 + .word 0x800002ff + .word 0x81dc137c + .word 0x8006e2 + .word 0x81f3137c + .word 0x2ff + .word 0x8009c3fc + .word 0x35e700 + .word 0x802ac3fc + .word 0x2ff + .word 0x804bc3fc + .word 0x1db39d8 + .word 0x80000030 + .word 0x2ff + .word 0x1ef4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc39e8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e8137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e708bc + .word 0x81f4137c + .word 0x1e710bd + .word 0x80000030 + .word 0x1e71aca + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb7bca + .word 0x804bc3fc + .word 0x1db4218 + .word 0x80000030 + .word 0x2ff + .word 0x1f04b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc4228 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81eb03bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e5137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e808bc + .word 0x81f1137c + .word 0x1e810bd + .word 0x80000030 + .word 0x1e81b0a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1db2958 + .word 0x804bc3fc + .word 0x1fb840a + .word 0x80000030 + .word 0x2ff + .word 0x1ed4b46 + .word 0x1c09cdc + .word 0x1fd5346 + .word 0x1fc2968 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ec03bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000004f + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e8137c + .word 0x2ff + .word 0x81f81b7c + .word 0x200707 + .word 0x3f000000 + .word 0x800002ff + .word 0x81dc137c + .word 0x8006e2 + .word 0x81f4137c + .word 0x2ff + .word 0x8009c3fc + .word 0x35e700 + .word 0x802ac3fc + .word 0x2ff + .word 0x804bc3fc + .word 0x1db4218 + .word 0x80000030 + .word 0x2ff + .word 0x1f04b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc4228 + .word 0x1fe5b46 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e5137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e808bc + .word 0x81f1137c + .word 0x1e810bd + .word 0x80000030 + .word 0x1e81b0a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb840a + .word 0x804bc3fc + .word 0x1db2958 + .word 0x80000030 + .word 0x2ff + .word 0x1ed4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc2968 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ec03bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e6137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e508bc + .word 0x81f2137c + .word 0x1e510bd + .word 0x80000030 + .word 0x1e51a4a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1db3198 + .word 0x804bc3fc + .word 0x1fb6b4a + .word 0x80000030 + .word 0x2ff + .word 0x1ee4b46 + .word 0x1c0a51c + .word 0x1fd5346 + .word 0x1fc31a8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81e903bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000031 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e8137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e708bc + .word 0x81f4137c + .word 0x1e710bd + .word 0x806c2bfc + .word 0x1e71aca + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb7bca + .word 0x804bc3fc + .word 0x1db4218 + .word 0x3ec8800 + .word 0x2ff + .word 0x1f04b46 + .word 0x1c0949c + .word 0x1fd5346 + .word 0x2ff + .word 0x1fe5b46 + .word 0x2ff + .word 0x81eb03bc + .word 0x2ff + .word 0x3ec6801 + .word 0x1fc4228 + .word 0x81f81b7c + .word 0x1fbe9bd + .word 0x50076048 + .word 0x2ff + .word 0x3ec4802 + .word 0x1fbf749 + .word 0x81e5137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e808bc + .word 0x81f1137c + .word 0x1e810bd + .word 0x806c33fc + .word 0x1e81b0a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb840a + .word 0x804bc3fc + .word 0x1db2958 + .word 0x3ec9000 + .word 0x2ff + .word 0x1ed4b46 + .word 0x1c09cdc + .word 0x1fd5346 + .word 0x2ff + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ec03bc + .word 0x2ff + .word 0x3ec7001 + .word 0x1fc2968 + .word 0x81f81b7c + .word 0x1fbe9bd + .word 0x5007604f + .word 0x2ff + .word 0x3ec5002 + .word 0x1fbf749 + .word 0x81e6137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e508bc + .word 0x81f2137c + .word 0x1e510bd + .word 0x806c3bfc + .word 0x1e51a4a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb6b4a + .word 0x804bc3fc + .word 0x1db3198 + .word 0x3ec9800 + .word 0x2ff + .word 0x1ee4b46 + .word 0x1c0a51c + .word 0x1fd5346 + .word 0x2ff + .word 0x1fe5b46 + .word 0x2ff + .word 0x81e903bc + .word 0x2ff + .word 0x3ec7801 + .word 0x1fc31a8 + .word 0x81f81b7c + .word 0x1fbe9bd + .word 0x50076056 + .word 0x2ff + .word 0x3ec5802 + .word 0x1fbf749 + .word 0x81e7137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e608bc + .word 0x81f3137c + .word 0x1e610bd + .word 0x806c43fc + .word 0x1e61a8a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb738a + .word 0x804bc3fc + .word 0x2ff + .word 0x3eca000 + .word 0x1c08c5c + .word 0x1ef4b46 + .word 0x1db39d8 + .word 0x1fd5346 + .word 0x2ff + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ea03bc + .word 0x2ff + .word 0x3ec8001 + .word 0x1fc39e8 + .word 0x81f81b7c + .word 0x1fbe9bd + .word 0x520767c1 + .word 0x2ff + .word 0x3ec6002 + .word 0x1fbf749 + .word 0x806c2bfc + .word 0x358c40 + .word 0x81e8137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e708bc + .word 0x81f4137c + .word 0x1e710bd + .word 0x806d8bfc + .word 0x1e71aca + .word 0x8009c3fc + .word 0x1c0949c + .word 0x802ac3fc + .word 0x2ff + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec6801 + .word 0x359cc0 + .word 0x81eb03bc + .word 0x1db4218 + .word 0x3ec8800 + .word 0x2ff + .word 0x3ec4802 + .word 0x1fbe9bf + .word 0x3ed8800 + .word 0x1fb7bca + .word 0x3ed6801 + .word 0x1fc4228 + .word 0x3ed4802 + .word 0x359480 + .word 0x1f04b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e021bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x52086048 + .word 0x2ff + .word 0x806c33fc + .word 0x1e808bc + .word 0x40000096 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806c33fc + .word 0x359480 + .word 0x81e5137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e808bc + .word 0x81f1137c + .word 0x1e810bd + .word 0x806d93fc + .word 0x1e81b0a + .word 0x8009c3fc + .word 0x1c09cdc + .word 0x802ac3fc + .word 0x2ff + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec7001 + .word 0x35a500 + .word 0x81ec03bc + .word 0x1db2958 + .word 0x3ec9000 + .word 0x2ff + .word 0x3ec5002 + .word 0x1fbe9bf + .word 0x3ed9000 + .word 0x1fb840a + .word 0x3ed7001 + .word 0x1fc2968 + .word 0x3ed5002 + .word 0x359cc0 + .word 0x1ed4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e021bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x52086045 + .word 0x2ff + .word 0x806c3bfc + .word 0x1e508bc + .word 0x4000007f + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806c3bfc + .word 0x359cc0 + .word 0x81e6137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e508bc + .word 0x81f2137c + .word 0x1e510bd + .word 0x806d9bfc + .word 0x1e51a4a + .word 0x8009c3fc + .word 0x1c0a51c + .word 0x802ac3fc + .word 0x2ff + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec7801 + .word 0x358c40 + .word 0x81e903bc + .word 0x1db3198 + .word 0x3ec9800 + .word 0x2ff + .word 0x3ec5802 + .word 0x1fbe9bf + .word 0x3ed9800 + .word 0x1fb6b4a + .word 0x3ed7801 + .word 0x1fc31a8 + .word 0x3ed5802 + .word 0x35a500 + .word 0x1ee4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e021bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x52086042 + .word 0x2ff + .word 0x806c43fc + .word 0x1e608bc + .word 0x40000068 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806c43fc + .word 0x35a500 + .word 0x81e7137c + .word 0x1e021bf + .word 0x81dc137c + .word 0x1e608bc + .word 0x81f3137c + .word 0x1e610bd + .word 0x806da3fc + .word 0x1e61a8a + .word 0x8009c3fc + .word 0x1c08c5c + .word 0x802ac3fc + .word 0x2ff + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec8001 + .word 0x359480 + .word 0x81ea03bc + .word 0x1db39d8 + .word 0x3eca000 + .word 0x2ff + .word 0x3ec6002 + .word 0x1fbe9bf + .word 0x3eda000 + .word 0x1fb738a + .word 0x3ed8001 + .word 0x1fc39e8 + .word 0x3ed6002 + .word 0x358c40 + .word 0x1ef4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e021bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x5208603f + .word 0x2ff + .word 0x806c2bfc + .word 0x1e708bc + .word 0x40000051 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e5137c + .word 0x1e810bd + .word 0x81dc137c + .word 0x1e81b0a + .word 0x81f1137c + .word 0x1c09cdc + .word 0x806d93fc + .word 0x2ff + .word 0x8009c3fc + .word 0x1fbe9bd + .word 0x802ac3fc + .word 0x1fbf749 + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec7001 + .word 0x2ff + .word 0x81ec03bc + .word 0x1db2958 + .word 0x3ec9000 + .word 0x35a500 + .word 0x3ec5002 + .word 0x1fbe9bf + .word 0x3ed9000 + .word 0x1fb840a + .word 0x3ed7001 + .word 0x1fc2968 + .word 0x3ed5002 + .word 0x2ff + .word 0x1ed4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e021bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x5008603d + .word 0x2ff + .word 0x806c3bfc + .word 0x1e508bc + .word 0x81e6137c + .word 0x1e510bd + .word 0x81dc137c + .word 0x1e51a4a + .word 0x81f2137c + .word 0x1c0a51c + .word 0x806d9bfc + .word 0x2ff + .word 0x8009c3fc + .word 0x1fbe9bd + .word 0x802ac3fc + .word 0x1fbf749 + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec7801 + .word 0x2ff + .word 0x81e903bc + .word 0x1db3198 + .word 0x3ec9800 + .word 0x358c40 + .word 0x3ec5802 + .word 0x1fbe9bf + .word 0x3ed9800 + .word 0x1fb6b4a + .word 0x3ed7801 + .word 0x1fc31a8 + .word 0x3ed5802 + .word 0x2ff + .word 0x1ee4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e021bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x50086029 + .word 0x2ff + .word 0x806c43fc + .word 0x1e608bc + .word 0x81e7137c + .word 0x1e610bd + .word 0x81dc137c + .word 0x1e61a8a + .word 0x81f3137c + .word 0x1c08c5c + .word 0x806da3fc + .word 0x2ff + .word 0x8009c3fc + .word 0x1fbe9bd + .word 0x802ac3fc + .word 0x1fbf749 + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec8001 + .word 0x2ff + .word 0x81ea03bc + .word 0x1db39d8 + .word 0x3eca000 + .word 0x359480 + .word 0x3ec6002 + .word 0x1fbe9bf + .word 0x3eda000 + .word 0x1fb738a + .word 0x3ed8001 + .word 0x1fc39e8 + .word 0x3ed6002 + .word 0x2ff + .word 0x1ef4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e021bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x50086015 + .word 0x2ff + .word 0x806c2bfc + .word 0x1e708bc + .word 0x81e8137c + .word 0x1e710bd + .word 0x81dc137c + .word 0x1e71aca + .word 0x81f4137c + .word 0x1c0949c + .word 0x806d8bfc + .word 0x2ff + .word 0x8009c3fc + .word 0x1fbe9bd + .word 0x802ac3fc + .word 0x1fbf749 + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec6801 + .word 0x2ff + .word 0x81eb03bc + .word 0x1db4218 + .word 0x3ec8800 + .word 0x359cc0 + .word 0x3ec4802 + .word 0x1fbe9bf + .word 0x3ed8800 + .word 0x1fb7bca + .word 0x3ed6801 + .word 0x1fc4228 + .word 0x3ed4802 + .word 0x2ff + .word 0x1f04b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e021bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x520867b1 + .word 0x2ff + .word 0x806c33fc + .word 0x1e808bc + .word 0x811d23fd + .word 0x2ff + .word 0x809d2bfd + .word 0x2ff + .word 0x805d33fd + .word 0x2ff + .word 0x803d3bfd + .word 0x2ff + .word 0x811e43fd + .word 0x2ff + .word 0x809e4bfd + .word 0x2ff + .word 0x805e53fd + .word 0x2ff + .word 0x803e5bfd + .word 0x2ff + .word 0x811f6bfd + .word 0x2ff + .word 0x809f73fd + .word 0x2ff + .word 0x805f7bfd + .word 0x2ff + .word 0x1ed001e + .word 0x115bec4 + .word 0x800cb3fc + .word 0x2ff + .word 0x8001abfc + .word 0x2ff + .word 0x1007001f + .word 0x2ff + .word 0x1f003cc + .word 0x115dec5 + .word 0x80026bfc + .word 0x2ff + .word 0x306005 + .word 0x2ff + .word 0x1ee03cd + .word 0x2ff + .word 0x800208f0 + .word 0x2ff + .word 0x80286bfc + .word 0x2ff + .word 0x1e51802 + .word 0x2ff + .word 0x8009dbfc + .word 0x1e083c0 + .word 0x80010872 + .word 0x2ff + .word 0xa8003ff + .word 0x2ff + .word 0xa4103ff + .word 0x2ff + .word 0x22000000 + .word 0x200240 + .word 0x1c91800 + .word 0x1ce286a + .word 0x45400000 + .word 0x81c529ff + .word 0x80081930 + .word 0x207be2 + .word 0x80426bfc + .word 0x200280 + .word 0x1e62002 + .word 0x2ff + .word 0x1f103ce + .word 0x1c9085a + .word 0x80000030 + .word 0x200047 + .word 0x5c00108f + .word 0x2002c7 + .word 0x1ca2000 + .word 0x1ce30aa + .word 0x80010032 + .word 0x1c631ff + .word 0x80022170 + .word 0x2ff + .word 0x80686bfc + .word 0x1f00868 + .word 0x1e72802 + .word 0x200307 + .word 0x2403ffff + .word 0x1ca109a + .word 0x81ed3b7c + .word 0x200087 + .word 0x5c004022 + .word 0x1e1097d + .word 0x1cb2800 + .word 0x1ce38ea + .word 0x520008c2 + .word 0x1c739ff + .word 0x80026bfc + .word 0x2ff + .word 0x800829b0 + .word 0x1f010a8 + .word 0x1e83002 + .word 0x200247 + .word 0x2403ffff + .word 0x1cb18da + .word 0x3e30802 + .word 0x2000c7 + .word 0x5c001033 + .word 0x1e2117d + .word 0x1cc3000 + .word 0x1ce412a + .word 0x520008d6 + .word 0x1c841ff + .word 0x80286bfc + .word 0x2ff + .word 0x800230f0 + .word 0x1f018e8 + .word 0x1e51802 + .word 0x200287 + .word 0x2403ffff + .word 0x1cc211a + .word 0x3e41002 + .word 0x200107 + .word 0x5c004044 + .word 0x1e3197d + .word 0x1c91800 + .word 0x1ce286a + .word 0x520008ea + .word 0x1c529ff + .word 0x80426bfc + .word 0x2ff + .word 0x80081930 + .word 0x1f02128 + .word 0x1e62002 + .word 0x2002c7 + .word 0x2403ffff + .word 0x1c9085a + .word 0x3e51802 + .word 0x200047 + .word 0x5c001055 + .word 0x1e4217d + .word 0x1ca2000 + .word 0x1ce30aa + .word 0x5200088e + .word 0x1c631ff + .word 0x80686bfc + .word 0x2ff + .word 0x80022170 + .word 0x1f00868 + .word 0x1e72802 + .word 0x200307 + .word 0x2403ffff + .word 0x1ca109a + .word 0x3e62002 + .word 0x200087 + .word 0x81ed3b7c + .word 0x2ff + .word 0x5a0047e0 + .word 0x1e1097d + .word 0x1cb2800 + .word 0x1ce38ea + .word 0x52000911 + .word 0x1c739ff + .word 0x80026bfc + .word 0x2ff + .word 0x800829b1 + .word 0x200300 + .word 0x1e83002 + .word 0x1f010a8 + .word 0x2403ffff + .word 0x1cb18da + .word 0x3e30802 + .word 0x2000c7 + .word 0x800a42b2 + .word 0x2ff + .word 0x22000000 + .word 0x200240 + .word 0x520057de + .word 0x1e2117d + .word 0x1cc3000 + .word 0x1ce412a + .word 0x50001003 + .word 0x2ff + .word 0x800b36b2 + .word 0x2ff + .word 0x400007da + .word 0x2ff + .word 0xa4b03ff + .word 0x2ff + .word 0x5200097e + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1f018e8 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e41002 + .word 0x2ff + .word 0x80000030 + .word 0x1e3197d + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000055 + .word 0x2ff + .word 0x3e51802 + .word 0x2ff + .word 0x52000914 + .word 0x1c841ff + .word 0x80286bfc + .word 0x2ff + .word 0x800230f1 + .word 0x200240 + .word 0x1e51802 + .word 0x1f018e8 + .word 0x2403ffff + .word 0x1cc211a + .word 0x3e41002 + .word 0x200107 + .word 0x800a12b2 + .word 0x2ff + .word 0x22000000 + .word 0x200280 + .word 0x520057cd + .word 0x1e3197d + .word 0x1c91800 + .word 0x1ce286a + .word 0x50004003 + .word 0x2ff + .word 0x800b1eb2 + .word 0x2ff + .word 0x400007c9 + .word 0x2ff + .word 0xa4b03ff + .word 0x2ff + .word 0x5200097a + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1f02128 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e51802 + .word 0x2ff + .word 0x80000030 + .word 0x1e4217d + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x4000003c + .word 0x2ff + .word 0x3e62002 + .word 0x2ff + .word 0x52000917 + .word 0x1c529ff + .word 0x80426bfc + .word 0x2ff + .word 0x80081931 + .word 0x200280 + .word 0x1e62002 + .word 0x1f02128 + .word 0x2403ffff + .word 0x1c9085a + .word 0x3e51802 + .word 0x200047 + .word 0x800a42b2 + .word 0x2ff + .word 0x22000000 + .word 0x2002c0 + .word 0x520057bc + .word 0x1e4217d + .word 0x1ca2000 + .word 0x1ce30aa + .word 0x50001003 + .word 0x2ff + .word 0x800b26b2 + .word 0x2ff + .word 0x400007b8 + .word 0x2ff + .word 0xa4b03ff + .word 0x2ff + .word 0x52000922 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1f00868 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e62002 + .word 0x2ff + .word 0x80000030 + .word 0x1e1097d + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000023 + .word 0x2ff + .word 0x3e32002 + .word 0x2ff + .word 0x520008aa + .word 0x1c631ff + .word 0x80686bfc + .word 0x2ff + .word 0x80022171 + .word 0x2002c0 + .word 0x1e72802 + .word 0x1f00868 + .word 0x2403ffff + .word 0x1ca109a + .word 0x3e62002 + .word 0x200087 + .word 0x81ed3b7c + .word 0x2ff + .word 0x800a12b2 + .word 0x2ff + .word 0x22000000 + .word 0x200300 + .word 0x5200578a + .word 0x1e1097d + .word 0x1cb2800 + .word 0x1ce38ea + .word 0x50004003 + .word 0x2ff + .word 0x800b2eb2 + .word 0x2ff + .word 0x40000786 + .word 0x2ff + .word 0xa4b03ff + .word 0x2ff + .word 0x5200091d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1f010a8 + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e30802 + .word 0x2ff + .word 0x80000030 + .word 0x1e2117d + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000009 + .word 0x2ff + .word 0x3e41002 + .word 0x2ff + .word 0x80010032 + .word 0x1c631ff + .word 0x80022171 + .word 0x2ff + .word 0x80686bfc + .word 0x1f00868 + .word 0x1e72802 + .word 0x200307 + .word 0x2403ffff + .word 0x1ca109a + .word 0x81ed3b7c + .word 0x200087 + .word 0x40000773 + .word 0x1e1097d + .word 0x1cb2800 + .word 0x1ce38ea + .word 0x8004ebfc + .word 0x2ff + .word 0x8025ebfc + .word 0x2ff + .word 0x8046ebfc + .word 0x2ff + .word 0x8067ebfc + .word 0x2ff + .word 0x8008f3fc + .word 0x2ff + .word 0x8029f3fc + .word 0x2ff + .word 0x804af3fc + .word 0x2ff + .word 0x806bf3fc + .word 0x2ff + .word 0x800dfbfc + .word 0x2ff + .word 0x802efbfc + .word 0x2ff + .word 0x804ffbfc + .word 0x2ff + .word 0x100103c6 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x8001abfc + .word 0x2ff + .word 0x806cbbfc + .word 0x2ff + .word 0x81f6b33d + .word 0x2ff + .word 0x10020032 + .word 0x2ff + .word 0x809703fd + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x8003b3fc + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x2403ffff + .word 0x1ca109a + .word 0x40000778 + .word 0x200087 + .word 0x1e72802 + .word 0x2ff + .word 0x80000030 + .word 0x204807 + .word 0x80002bb5 + .word 0x1f13caa + .word 0x100d003f + .word 0x1f144ea + .word 0x80022170 + .word 0x1f12d2a + .word 0x2c0a0002 + .word 0x2ff + .word 0x500057f7 + .word 0x1ef0868 + .word 0x3e62002 + .word 0x200307 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f23b3c + .word 0x1d399ff + .word 0x81f3433c + .word 0x1d4a1ff + .word 0x81f42b3c + .word 0x2ff + .word 0x380a0000 + .word 0x1c05e00 + .word 0x380b0000 + .word 0x1c841ff + .word 0x380c0000 + .word 0x1c529ff + .word 0x1e72802 + .word 0x1c06640 + .word 0x800b52b4 + .word 0x1c631ff + .word 0x800c52b4 + .word 0x1c04e80 + .word 0x800d52b4 + .word 0x1ca109a + .word 0x80000030 + .word 0x2ff + .word 0x52005763 + .word 0x200087 + .word 0x2403ffff + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x80001af5 + .word 0x2ff + .word 0x40000119 + .word 0x2ff + .word 0x100f042f + .word 0x2ff + .word 0x2403ffff + .word 0x1cb18da + .word 0x40000744 + .word 0x2000c7 + .word 0x1e83002 + .word 0x2ff + .word 0x80000030 + .word 0x205007 + .word 0x800033b5 + .word 0x1f144aa + .word 0x100d003f + .word 0x1f12cea + .word 0x800829b0 + .word 0x1f1352a + .word 0x2c0a0002 + .word 0x2ff + .word 0x500057f7 + .word 0x1ef10a8 + .word 0x3e30802 + .word 0x200247 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f2433c + .word 0x1d399ff + .word 0x81f32b3c + .word 0x1d4a1ff + .word 0x81f4333c + .word 0x2ff + .word 0x380a0000 + .word 0x1c06600 + .word 0x380b0000 + .word 0x1c529ff + .word 0x380c0000 + .word 0x1c631ff + .word 0x1e83002 + .word 0x1c04e40 + .word 0x800b52b4 + .word 0x1c739ff + .word 0x800c52b4 + .word 0x1c05680 + .word 0x800d52b4 + .word 0x1cb18da + .word 0x80000030 + .word 0x2ff + .word 0x5200572f + .word 0x2000c7 + .word 0x2403ffff + .word 0x2ff + .word 0x80001ab5 + .word 0x2ff + .word 0x800022f5 + .word 0x2ff + .word 0x400000fd + .word 0x2ff + .word 0x100f0417 + .word 0x2ff + .word 0x2403ffff + .word 0x1cc211a + .word 0x40000730 + .word 0x200107 + .word 0x1e51802 + .word 0x2ff + .word 0x80000030 + .word 0x205807 + .word 0x80001bb5 + .word 0x1f12caa + .word 0x100d003f + .word 0x1f134ea + .word 0x800230f0 + .word 0x1f13d2a + .word 0x2c0a0002 + .word 0x2ff + .word 0x500057f7 + .word 0x1ef18e8 + .word 0x3e41002 + .word 0x200287 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f22b3c + .word 0x1d399ff + .word 0x81f3333c + .word 0x1d4a1ff + .word 0x81f43b3c + .word 0x2ff + .word 0x380a0000 + .word 0x1c04e00 + .word 0x380b0000 + .word 0x1c631ff + .word 0x380c0000 + .word 0x1c739ff + .word 0x1e51802 + .word 0x1c05640 + .word 0x800b52b4 + .word 0x1c841ff + .word 0x800c52b4 + .word 0x1c05e80 + .word 0x800d52b4 + .word 0x1cc211a + .word 0x80000030 + .word 0x2ff + .word 0x5200571b + .word 0x200107 + .word 0x2403ffff + .word 0x2ff + .word 0x800022b5 + .word 0x2ff + .word 0x80002af5 + .word 0x2ff + .word 0x400000e1 + .word 0x2ff + .word 0x100f041f + .word 0x2ff + .word 0x2403ffff + .word 0x1c9085a + .word 0x4000071c + .word 0x200047 + .word 0x1e62002 + .word 0x2ff + .word 0x80000030 + .word 0x206007 + .word 0x800023b5 + .word 0x1f134aa + .word 0x100d003f + .word 0x1f13cea + .word 0x80081930 + .word 0x1f1452a + .word 0x2c0a0002 + .word 0x2ff + .word 0x500057f7 + .word 0x1ef2128 + .word 0x3e51802 + .word 0x2002c7 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f2333c + .word 0x1d399ff + .word 0x81f33b3c + .word 0x1d4a1ff + .word 0x81f4433c + .word 0x2ff + .word 0x380a0000 + .word 0x1c05600 + .word 0x380b0000 + .word 0x1c739ff + .word 0x380c0000 + .word 0x1c841ff + .word 0x1e62002 + .word 0x1c05e40 + .word 0x800b52b4 + .word 0x1c529ff + .word 0x800c52b4 + .word 0x1c06680 + .word 0x800d52b4 + .word 0x1c9085a + .word 0x80000030 + .word 0x2ff + .word 0x52005707 + .word 0x200047 + .word 0x2403ffff + .word 0x2ff + .word 0x80002ab5 + .word 0x2ff + .word 0x800032f5 + .word 0x2ff + .word 0x400000c5 + .word 0x2ff + .word 0x100f0427 + .word 0x2ff + .word 0x2403ffff + .word 0x1ca109a + .word 0x4000075c + .word 0x200087 + .word 0x1e72802 + .word 0x2ff + .word 0x80000030 + .word 0x204807 + .word 0x80002bb5 + .word 0x1f13caa + .word 0x100d003f + .word 0x1f144ea + .word 0x80022171 + .word 0x1f12d2a + .word 0x2c0a0002 + .word 0x2ff + .word 0x500057f7 + .word 0x1ef0868 + .word 0x3e62002 + .word 0x2002c0 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f23b3c + .word 0x1d399ff + .word 0x81f3433c + .word 0x1d4a1ff + .word 0x81f42b3c + .word 0x2ff + .word 0x380a0000 + .word 0x1c05e00 + .word 0x380b0000 + .word 0x1c841ff + .word 0x380c0000 + .word 0x1c529ff + .word 0x1e72802 + .word 0x1c06640 + .word 0x800b52b4 + .word 0x1c631ff + .word 0x800c52b4 + .word 0x1c04e80 + .word 0x800d52b4 + .word 0x1ca109a + .word 0x80000030 + .word 0x2ff + .word 0x52005747 + .word 0x200087 + .word 0x2403ffff + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x80001af5 + .word 0x2ff + .word 0x400000a9 + .word 0x2ff + .word 0x100f0483 + .word 0x2ff + .word 0x2403ffff + .word 0x1cb18da + .word 0x400006f5 + .word 0x2000c7 + .word 0x1e83002 + .word 0x2ff + .word 0x80000030 + .word 0x205007 + .word 0x800033b5 + .word 0x1f144aa + .word 0x100d003f + .word 0x1f12cea + .word 0x800829b1 + .word 0x1f1352a + .word 0x2c0a0002 + .word 0x2ff + .word 0x500057f7 + .word 0x1ef10a8 + .word 0x3e30802 + .word 0x200300 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f2433c + .word 0x1d399ff + .word 0x81f32b3c + .word 0x1d4a1ff + .word 0x81f4333c + .word 0x2ff + .word 0x380a0000 + .word 0x1c06600 + .word 0x380b0000 + .word 0x1c529ff + .word 0x380c0000 + .word 0x1c631ff + .word 0x1e83002 + .word 0x1c04e40 + .word 0x800b52b4 + .word 0x1c739ff + .word 0x800c52b4 + .word 0x1c05680 + .word 0x800d52b4 + .word 0x1cb18da + .word 0x80000030 + .word 0x2ff + .word 0x520056e0 + .word 0x2000c7 + .word 0x2403ffff + .word 0x2ff + .word 0x80001ab5 + .word 0x2ff + .word 0x800022f5 + .word 0x2ff + .word 0x4000008d + .word 0x2ff + .word 0x100f0438 + .word 0x2ff + .word 0x2403ffff + .word 0x1cc211a + .word 0x400006f2 + .word 0x200107 + .word 0x1e51802 + .word 0x2ff + .word 0x80000030 + .word 0x205807 + .word 0x80001bb5 + .word 0x1f12caa + .word 0x100d003f + .word 0x1f134ea + .word 0x800230f1 + .word 0x1f13d2a + .word 0x2c0a0002 + .word 0x2ff + .word 0x500057f7 + .word 0x1ef18e8 + .word 0x3e41002 + .word 0x200240 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f22b3c + .word 0x1d399ff + .word 0x81f3333c + .word 0x1d4a1ff + .word 0x81f43b3c + .word 0x2ff + .word 0x380a0000 + .word 0x1c04e00 + .word 0x380b0000 + .word 0x1c631ff + .word 0x380c0000 + .word 0x1c739ff + .word 0x1e51802 + .word 0x1c05640 + .word 0x800b52b4 + .word 0x1c841ff + .word 0x800c52b4 + .word 0x1c05e80 + .word 0x800d52b4 + .word 0x1cc211a + .word 0x80000030 + .word 0x2ff + .word 0x520056dd + .word 0x200107 + .word 0x2403ffff + .word 0x2ff + .word 0x800022b5 + .word 0x2ff + .word 0x80002af5 + .word 0x2ff + .word 0x40000071 + .word 0x2ff + .word 0x100f0451 + .word 0x2ff + .word 0x2403ffff + .word 0x1c9085a + .word 0x400006ef + .word 0x200047 + .word 0x1e62002 + .word 0x2ff + .word 0x80000030 + .word 0x206007 + .word 0x800023b5 + .word 0x1f134aa + .word 0x100d003f + .word 0x1f13cea + .word 0x80081931 + .word 0x1f1452a + .word 0x2c0a0002 + .word 0x2ff + .word 0x500057f7 + .word 0x1ef2128 + .word 0x3e51802 + .word 0x200280 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f2333c + .word 0x1d399ff + .word 0x81f33b3c + .word 0x1d4a1ff + .word 0x81f4433c + .word 0x2ff + .word 0x380a0000 + .word 0x1c05600 + .word 0x380b0000 + .word 0x1c739ff + .word 0x380c0000 + .word 0x1c841ff + .word 0x1e62002 + .word 0x1c05e40 + .word 0x800b52b4 + .word 0x1c529ff + .word 0x800c52b4 + .word 0x1c06680 + .word 0x800d52b4 + .word 0x1c9085a + .word 0x80000030 + .word 0x2ff + .word 0x520056da + .word 0x200047 + .word 0x2403ffff + .word 0x2ff + .word 0x80002ab5 + .word 0x2ff + .word 0x800032f5 + .word 0x2ff + .word 0x40000055 + .word 0x2ff + .word 0x100f046a + .word 0x2ff + .word 0x80000030 + .word 0x1f13caa + .word 0x100d003f + .word 0x1f144ea + .word 0x80000030 + .word 0x1f12d2a + .word 0x80002bb5 + .word 0x1ef0868 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f23b3c + .word 0x1d399ff + .word 0x81f3433c + .word 0x1d4a1ff + .word 0x81f42b3c + .word 0x2ff + .word 0x380a0000 + .word 0x1c05e00 + .word 0x380b0000 + .word 0x2ff + .word 0x380c0000 + .word 0x2ff + .word 0x3e62002 + .word 0x1c06640 + .word 0x800b52b4 + .word 0x2ff + .word 0x800c52b4 + .word 0x1c04e80 + .word 0x800d52b4 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x520056d2 + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x80001af5 + .word 0x2ff + .word 0x40000040 + .word 0x2ff + .word 0x100f0478 + .word 0x2ff + .word 0x80000030 + .word 0x1f144aa + .word 0x100d003f + .word 0x1f12cea + .word 0x80000030 + .word 0x1f1352a + .word 0x800033b5 + .word 0x1ef10a8 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f2433c + .word 0x1d399ff + .word 0x81f32b3c + .word 0x1d4a1ff + .word 0x81f4333c + .word 0x2ff + .word 0x380a0000 + .word 0x1c06600 + .word 0x380b0000 + .word 0x2ff + .word 0x380c0000 + .word 0x2ff + .word 0x3e30802 + .word 0x1c04e40 + .word 0x800b52b4 + .word 0x2ff + .word 0x800c52b4 + .word 0x1c05680 + .word 0x800d52b4 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x520056d7 + .word 0x2ff + .word 0x80001ab5 + .word 0x2ff + .word 0x800022f5 + .word 0x2ff + .word 0x4000002b + .word 0x2ff + .word 0x100f0492 + .word 0x2ff + .word 0x80000030 + .word 0x1f12caa + .word 0x100d003f + .word 0x1f134ea + .word 0x80000030 + .word 0x1f13d2a + .word 0x80001bb5 + .word 0x1ef18e8 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f22b3c + .word 0x1d399ff + .word 0x81f3333c + .word 0x1d4a1ff + .word 0x81f43b3c + .word 0x2ff + .word 0x380a0000 + .word 0x1c04e00 + .word 0x380b0000 + .word 0x2ff + .word 0x380c0000 + .word 0x2ff + .word 0x3e41002 + .word 0x1c05640 + .word 0x800b52b4 + .word 0x2ff + .word 0x800c52b4 + .word 0x1c05e80 + .word 0x800d52b4 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x52005676 + .word 0x2ff + .word 0x800022b5 + .word 0x2ff + .word 0x80002af5 + .word 0x2ff + .word 0x40000016 + .word 0x2ff + .word 0x100f0446 + .word 0x2ff + .word 0x80000030 + .word 0x1f134aa + .word 0x100d003f + .word 0x1f13cea + .word 0x80000030 + .word 0x1f1452a + .word 0x800023b5 + .word 0x1ef2128 + .word 0x80000030 + .word 0x1d291ff + .word 0x81f2333c + .word 0x1d399ff + .word 0x81f33b3c + .word 0x1d4a1ff + .word 0x81f4433c + .word 0x2ff + .word 0x380a0000 + .word 0x1c05600 + .word 0x380b0000 + .word 0x2ff + .word 0x380c0000 + .word 0x2ff + .word 0x3e51802 + .word 0x1c05e40 + .word 0x800b52b4 + .word 0x2ff + .word 0x800c52b4 + .word 0x1c06680 + .word 0x800d52b4 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x5200567a + .word 0x2ff + .word 0x80002ab5 + .word 0x2ff + .word 0x800032f5 + .word 0x2ff + .word 0x40000001 + .word 0x2ff + .word 0x100f045f + .word 0x2ff + .word 0xb02482c + .word 0x2ff + .word 0xa83482c + .word 0x2ff + .word 0xa44482c + .word 0x2ff + .word 0xa25482c + .word 0x2ff + .word 0xb06482d + .word 0x2ff + .word 0xa87482d + .word 0x2ff + .word 0xa48482d + .word 0x2ff + .word 0xa21482d + .word 0x2ff + .word 0xb0f482e + .word 0x2ff + .word 0x84203ff + .word 0x2ff + .word 0x88103ff + .word 0x2ff + .word 0x800050f5 + .word 0x2ff + .word 0x80005935 + .word 0x2ff + .word 0x800e12f1 + .word 0x2ff + .word 0x90a7001 + .word 0x2ff + .word 0x5c005802 + .word 0x2ff + .word 0x88b7001 + .word 0x2ff + .word 0x800008b5 + .word 0x2ff + .word 0x3e9902f + .word 0x2ff + .word 0x3e99830 + .word 0x2ff + .word 0x3e9a031 + .word 0x2ff + .word 0x3e9c032 + .word 0x2ff + .word 0x1fb03c9 + .word 0x2ff + .word 0x1f21000 + .word 0x2ff + .word 0x1f31001 + .word 0x2ff + .word 0x1f41002 + .word 0x2ff + .word 0x1f81003 + .word 0x2ff + .word 0x3e9d800 + .word 0x2ff + .word 0x3e99001 + .word 0x2ff + .word 0x1f21004 + .word 0x2ff + .word 0x3e99802 + .word 0x2ff + .word 0x3e9a003 + .word 0x2ff + .word 0x3e9c004 + .word 0x2ff + .word 0x3e99005 + .word 0x2ff + .word 0x1f2482f + .word 0x2ff + .word 0x1f34830 + .word 0x2ff + .word 0x1f44831 + .word 0x2ff + .word 0x1f84832 + .word 0x2ff + .word 0xa8203ff + .word 0x2ff + .word 0x84c7001 + .word 0x2ff + .word 0x82d7001 + .word 0x1d2c61b + .word 0x811b53fd + .word 0x1d3ce5b + .word 0x809b5bfd + .word 0x1d4d69b + .word 0x805b63fd + .word 0x2ff + .word 0x803b6bfd + .word 0x2ff + .word 0x90a1801 + .word 0x2ff + .word 0x88b1801 + .word 0x2ff + .word 0x84c1801 + .word 0x2ff + .word 0x82d1801 + .word 0x1fbd93c + .word 0x811c53fd + .word 0x2ff + .word 0x809c5bfd + .word 0x2ff + .word 0x805c63fd + .word 0x2ff + .word 0x803c6bfd + .word 0x2ff + .word 0x3e9d823 + .word 0x2ff + .word 0x90a2001 + .word 0x2ff + .word 0x88b2001 + .word 0x2ff + .word 0x84c2001 + .word 0x2ff + .word 0x82d2001 + .word 0x1fce13c + .word 0x811b53fd + .word 0x2ff + .word 0x809b5bfd + .word 0x2ff + .word 0x805b63fd + .word 0x2ff + .word 0x803b6bfd + .word 0x2ff + .word 0x3e9e026 + .word 0x2ff + .word 0x1fc03cb + .word 0x2ff + .word 0x3e99022 + .word 0x2ff + .word 0x3e9c024 + .word 0x2ff + .word 0x3e99825 + .word 0x1fbd93c + .word 0x3e9c827 + .word 0x2ff + .word 0x3e9a028 + .word 0x2ff + .word 0x3e9d02a + .word 0x2ff + .word 0x3e9d829 + .word 0x2ff + .word 0x3e9e82b + .word 0x2ff + .word 0x3e9e006 + .word 0x2ff + .word 0x420f0028 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x50001007 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x100a03c6 + .word 0x2ff + .word 0x800056fc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80004efc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x800056fc + .word 0x2ff + .word 0x1fd482b + .word 0x2ff + .word 0x90f482e + .word 0x2ff + .word 0x902482c + .word 0x2ff + .word 0x883482c + .word 0x2ff + .word 0x844482c + .word 0x2ff + .word 0x825482c + .word 0x2ff + .word 0x906482d + .word 0x2ff + .word 0x887482d + .word 0x2ff + .word 0x848482d + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x821482d + .word 0x2ff + .word 0x8004ebfc + .word 0x2ff + .word 0x8025ebfc + .word 0x2ff + .word 0x8046ebfc + .word 0x2ff + .word 0x8067ebfc + .word 0x2ff + .word 0x8008f3fc + .word 0x2ff + .word 0x8029f3fc + .word 0x2ff + .word 0x804af3fc + .word 0x2ff + .word 0x806bf3fc + .word 0x2ff + .word 0x800dfbfc + .word 0x2ff + .word 0x802efbfc + .word 0x2ff + .word 0x804ffbfc + .word 0x2ff + .word 0x8021bbfc + .word 0x2ff + .word 0x806cbbfc + .word 0x2ff + .word 0x81f6b33d + .word 0x2ff + .word 0x10020032 + .word 0x2ff + .word 0x800f0870 + .word 0x2ff + .word 0x809763fd + .word 0x400002ff + .word 0x8003b3fc + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x800c49f2 + .word 0x2ff + .word 0xb0f03ff + .word 0x2ff + .word 0x80020032 + .word 0x2ff + .word 0x420f0007 + .word 0x2ff + .word 0x10044822 + .word 0x2ff + .word 0x420f0005 + .word 0x2ff + .word 0x10044825 + .word 0x2ff + .word 0x420f0003 + .word 0x2ff + .word 0x10044828 + .word 0x2ff + .word 0x4000004b + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x100603d1 + .word 0x2ff + .word 0x80070032 + .word 0x2ff + .word 0x120133fb + .word 0x2ff + .word 0x808533fe + .word 0x2ff + .word 0x5000082f + .word 0x2ff + .word 0x804333fe + .word 0x2ff + .word 0x1f32000 + .word 0x2ff + .word 0x1f22800 + .word 0x2ff + .word 0x5200280b + .word 0x2ff + .word 0x808433ff + .word 0x2ff + .word 0x4a081800 + .word 0x2ff + .word 0x810433ff + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x2c0b0002 + .word 0x2ff + .word 0x52005831 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400007ef + .word 0x2ff + .word 0x800631f2 + .word 0x2ff + .word 0x4a081800 + .word 0x2ff + .word 0x1fb2801 + .word 0x2ff + .word 0x1fc2001 + .word 0x2ff + .word 0x1d82802 + .word 0x2ff + .word 0x2c0a0002 + .word 0x2ff + .word 0x2c0b0002 + .word 0x39c647 + .word 0x5200500c + .word 0x2ff + .word 0x1d92002 + .word 0x2ff + .word 0x52005803 + .word 0x2ff + .word 0x81f9c3bc + .word 0x2ff + .word 0x400007e3 + .word 0x2ff + .word 0x800631f2 + .word 0x2ff + .word 0x42080068 + .word 0x2ff + .word 0x80043072 + .word 0x2ff + .word 0x3e6a001 + .word 0x2ff + .word 0x3e6e802 + .word 0x2ff + .word 0x3c6d003 + .word 0x2ff + .word 0x400007dc + .word 0x2ff + .word 0x800631f2 + .word 0x2ff + .word 0x5200581a + .word 0x2ff + .word 0x81f9c3bc + .word 0x2ff + .word 0x4208005f + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e6a004 + .word 0x2ff + .word 0x3e6e805 + .word 0x2ff + .word 0x3c6d006 + .word 0x2ff + .word 0x800631f2 + .word 0x2ff + .word 0xb063bfb + .word 0x2ff + .word 0xa843bfb + .word 0x2ff + .word 0x80073872 + .word 0x2ff + .word 0x400007cf + .word 0x2ff + .word 0x80043772 + .word 0x2ff + .word 0x1f22000 + .word 0x2ff + .word 0x1fb2001 + .word 0x2ff + .word 0x1d82002 + .word 0x2ff + .word 0x80021072 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81f203bc + .word 0x1ce94aa + .word 0x80000030 + .word 0x1fbd97c + .word 0x80000030 + .word 0x200487 + .word 0x800c60f2 + .word 0x2ff + .word 0x800003bf + .word 0x1c0c61c + .word 0x3ecdffe + .word 0x1c0949c + .word 0x80000030 + .word 0x1f094a8 + .word 0x3ccc7fd + .word 0x1f2917d + .word 0x3ec97ff + .word 0x2ff + .word 0x5c003805 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x9063bfa + .word 0x2ff + .word 0x8843bfa + .word 0x2ff + .word 0x400007bb + .word 0x2ff + .word 0x80073ff2 + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x100603d1 + .word 0x2ff + .word 0x810533fe + .word 0x2ff + .word 0x808433fe + .word 0x2ff + .word 0x804333fe + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x50002822 + .word 0x2ff + .word 0x1f22000 + .word 0x2ff + .word 0x50042820 + .word 0x2ff + .word 0x1f32800 + .word 0x2ff + .word 0x4a081800 + .word 0x2ff + .word 0x1fb2001 + .word 0x2ff + .word 0x1fc2801 + .word 0x2ff + .word 0x1d82002 + .word 0x2ff + .word 0x2c0a0002 + .word 0x2ff + .word 0x2c0b0002 + .word 0x39c647 + .word 0x500b5018 + .word 0x2ff + .word 0x1d92802 + .word 0x2ff + .word 0x5000500c + .word 0x2ff + .word 0x81f9c3bc + .word 0x2ff + .word 0x4208002b + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e6a004 + .word 0x2ff + .word 0x3e6e805 + .word 0x2ff + .word 0x3c6d006 + .word 0x2ff + .word 0x80043132 + .word 0x2ff + .word 0x80003375 + .word 0x2ff + .word 0x420f079c + .word 0x2ff + .word 0x800631f2 + .word 0x2ff + .word 0x4000000b + .word 0x2ff + .word 0x800069b5 + .word 0x2ff + .word 0x42080020 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e6a001 + .word 0x2ff + .word 0x3e6e802 + .word 0x2ff + .word 0x3c6d003 + .word 0x2ff + .word 0x80043072 + .word 0x2ff + .word 0x80003375 + .word 0x2ff + .word 0x420f0791 + .word 0x2ff + .word 0x800631f2 + .word 0x2ff + .word 0x800069b5 + .word 0x2ff + .word 0x120133f4 + .word 0x2ff + .word 0x810033ff + .word 0x2ff + .word 0x808033ff + .word 0x2ff + .word 0x58000fd5 + .word 0x2ff + .word 0x800631f2 + .word 0x2ff + .word 0x50001003 + .word 0x2ff + .word 0x90f03ff + .word 0x2ff + .word 0x11021000 + .word 0x2ff + .word 0x11021000 + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0xb024806 + .word 0x2ff + .word 0x48004000 + .word 0x329600 + .word 0x80000030 + .word 0x339e40 + .word 0x48004000 + .word 0x329604 + .word 0x80000030 + .word 0x339e44 + .word 0x48004000 + .word 0x329601 + .word 0x80000030 + .word 0x339e41 + .word 0x48004000 + .word 0x329605 + .word 0x80000030 + .word 0x339e45 + .word 0x48004000 + .word 0x329602 + .word 0x80000030 + .word 0x339e42 + .word 0x48004000 + .word 0x329606 + .word 0x80000030 + .word 0x339e46 + .word 0x80000030 + .word 0x1f29d2c + .word 0x80000030 + .word 0x1fbe76c + .word 0x80000030 + .word 0x1d8ceac + .word 0x800003bf + .word 0x1e0a51c + .word 0x80000030 + .word 0x1e0ef5c + .word 0x80000030 + .word 0x1c0d69c + .word 0x80000030 + .word 0x1f49528 + .word 0x48004000 + .word 0x1fddf68 + .word 0x80000030 + .word 0x1dac6a8 \ No newline at end of file diff --git a/test/decompiler/vu_reference/tie-result.txt b/test/decompiler/vu_reference/tie-result.txt new file mode 100644 index 0000000000..6653da7427 --- /dev/null +++ b/test/decompiler/vu_reference/tie-result.txt @@ -0,0 +1,1037 @@ + b L9 | nop + mr32.xyzw vf21, vf21 | nop + b L42 | nop + nop | nop + b L43 | nop + nop | nop + b L1 | nop + iaddi vi02, vi00, 0x0 | subx.xz vf21, vf23, vf21 + iaddi vi01, vi00, 0x1 | nop + lq.xyzw vf21, 969(vi00) | nop + lq.xz vf23, 968(vi00) | nop + lq.xyzw vf22, 970(vi00) | nop + isw.x vi00, 971(vi00) | nop :e + isw.y vi01, 971(vi00) | nop +L1: + lq.xyz vf01, 966(vi00) | nop + ilwr.w vi04, vi02 | nop + ilw.w vi09, 1(vi02) | nop + mtir vi06, vf21.y | nop + lqi.xyzw vf02, vi02 | suby.xz vf21, vf21, vf21 + lqi.xyzw vf03, vi02 | nop + lqi.xyzw vf04, vi02 | nop + lqi.xyzw vf05, vi02 | nop + mtir vi05, vf21.x | nop + lqi.xyzw vf06, vi02 | subw.w vf01, vf01, vf01 +L2: + iadd vi03, vi04, vi05 | nop + iadd vi04, vi04, vi06 | nop + iaddi vi09, vi09, -0x1 | nop + sqi.xyzw vf01, vi03 | nop + sqi.xyzw vf02, vi03 | nop + sqi.xyzw vf03, vi03 | nop + sqi.xyzw vf04, vi03 | nop + sqi.xyzw vf05, vi03 | nop + sqi.xyzw vf06, vi03 | nop + sqi.xyzw vf01, vi04 | nop + sqi.xyzw vf02, vi04 | nop + sqi.xyzw vf03, vi04 | nop + sqi.xyzw vf04, vi04 | nop + sqi.xyzw vf05, vi04 | nop + sqi.xyzw vf06, vi04 | nop + ilwr.w vi04, vi02 | nop + lqi.xyzw vf02, vi02 | nop + lqi.xyzw vf03, vi02 | nop + lqi.xyzw vf04, vi02 | nop + lqi.xyzw vf05, vi02 | nop + ibgtz vi09, L2 | nop + lqi.xyzw vf06, vi02 | nop + mtir vi09, vf02.w | nop + iaddi vi02, vi02, -0x2 | subw.w vf07, vf07, vf07 + ilwr.x vi07, vi02 | nop + ilwr.y vi08, vi02 | nop + ilwr.z vi04, vi02 | nop + iaddi vi09, vi09, -0x1 | nop + iaddi vi02, vi02, 0x1 | nop + ibeq vi00, vi09, L4 | nop + lq.xyz vf07, 967(vi08) | nop +L3: + iadd vi03, vi04, vi05 | nop + iadd vi04, vi04, vi06 | nop + iaddi vi09, vi09, -0x1 | nop + sq.xyzw vf07, 0(vi03) | nop + iswr.x vi07, vi03 | nop + sq.xyzw vf07, 0(vi04) | nop + iswr.x vi07, vi04 | nop + ilwr.x vi07, vi02 | nop + ilwr.y vi08, vi02 | nop + ilwr.z vi04, vi02 | nop + iaddi vi02, vi02, 0x1 | nop + ibne vi00, vi09, L3 | nop + lq.xyz vf07, 967(vi08) | nop +L4: + iaddiu vi07, vi07, 0x4000 | nop + iaddiu vi07, vi07, 0x4000 | nop + iadd vi03, vi04, vi05 | nop + iadd vi04, vi04, vi06 | nop + sq.xyzw vf07, 0(vi03) | nop + iswr.x vi07, vi03 | nop + sq.xyzw vf07, 0(vi04) | nop + iswr.x vi07, vi04 | nop + mtir vi06, vf04.x | nop + lq.xyzw vf05, 50(vi00) | nop + lq.xyzw vf15, 51(vi00) | nop + iaddiu vi05, vi00, 0x34 | nop + nop | nop + iaddiu vi06, vi06, 0x32 | itof0.xyzw vf05, vf05 + lqi.xyzw vf06, vi05 | itof12.xyz vf15, vf15 + lqi.xyzw vf16, vi05 | itof0.w vf15, vf15 + 64.0 | nop :i + ibeq vi06, vi05, L6 | muli.xyz vf05, vf05, I + mtir vi07, vf04.y | itof0.xyzw vf06, vf06 +L5: + lqi.xyzw vf07, vi05 | itof12.xyz vf16, vf16 + lqi.xyzw vf17, vi05 | itof0.w vf16, vf16 + sq.xyzw vf15, -5(vi05) | nop + ibeq vi06, vi05, L6 | muli.xyz vf06, vf06, I + sq.xyzw vf05, -6(vi05) | itof0.xyzw vf07, vf07 + lqi.xyzw vf05, vi05 | itof12.xyz vf17, vf17 + lqi.xyzw vf15, vi05 | itof0.w vf17, vf17 + sq.xyzw vf16, -5(vi05) | nop + ibeq vi06, vi05, L6 | muli.xyz vf07, vf07, I + sq.xyzw vf06, -6(vi05) | itof0.xyzw vf05, vf05 + lqi.xyzw vf06, vi05 | itof12.xyz vf15, vf15 + lqi.xyzw vf16, vi05 | itof0.w vf15, vf15 + sq.xyzw vf17, -5(vi05) | nop + ibne vi06, vi05, L5 | muli.xyz vf05, vf05, I + sq.xyzw vf07, -6(vi05) | itof0.xyzw vf06, vf06 +L6: + lq.xyzw vf09, -4(vi05) | nop + lq.xyzw vf05, -3(vi05) | nop + lq.xyzw vf15, -2(vi05) | nop + iadd vi07, vi07, vi05 | nop + iaddi vi07, vi07, -0x4 | nop + iaddi vi05, vi05, -0x1 | nop + iaddi vi08, vi05, -0x3 | nop + ibeq vi07, vi05, L8 | nop + nop | itof0.xyzw vf09, vf09 + lqi.xyzw vf10, vi05 | itof0.xyzw vf05, vf05 + lqi.xyzw vf06, vi05 | itof0.w vf15, vf15 + lqi.xyzw vf16, vi05 | itof12.xyz vf15, vf15 + nop | nop + nop | muli.xyz vf09, vf09, I + ibeq vi07, vi05, L8 | muli.xyz vf05, vf05, I + nop | itof0.xyzw vf10, vf10 +L7: + lqi.xyzw vf11, vi05 | itof0.xyzw vf06, vf06 + lqi.xyzw vf07, vi05 | itof0.w vf16, vf16 + lqi.xyzw vf17, vi05 | itof12.xyz vf16, vf16 + sqi.xyzw vf09, vi08 | nop + sqi.xyzw vf05, vi08 | muli.xyz vf10, vf10, I + ibeq vi07, vi05, L8 | muli.xyz vf06, vf06, I + sqi.xyzw vf15, vi08 | itof0.xyzw vf11, vf11 + lqi.xyzw vf09, vi05 | itof0.xyzw vf07, vf07 + lqi.xyzw vf05, vi05 | itof0.w vf17, vf17 + lqi.xyzw vf15, vi05 | itof12.xyz vf17, vf17 + sqi.xyzw vf10, vi08 | nop + sqi.xyzw vf06, vi08 | muli.xyz vf11, vf11, I + ibeq vi07, vi05, L8 | muli.xyz vf07, vf07, I + sqi.xyzw vf16, vi08 | itof0.xyzw vf09, vf09 + lqi.xyzw vf10, vi05 | itof0.xyzw vf05, vf05 + lqi.xyzw vf06, vi05 | itof0.w vf15, vf15 + lqi.xyzw vf16, vi05 | itof12.xyz vf15, vf15 + sqi.xyzw vf11, vi08 | nop + sqi.xyzw vf07, vi08 | muli.xyz vf09, vf09, I + ibne vi07, vi05, L7 | muli.xyz vf05, vf05, I + sqi.xyzw vf17, vi08 | itof0.xyzw vf10, vf10 +L8: + mtir vi01, vf04.z | nop + mtir vi05, vf02.x | nop + mtir vi14, vf02.y | nop + mtir vi04, vf03.x | nop + mtir vi06, vf03.y | nop + mtir vi07, vf03.z | nop + mtir vi08, vf03.w | nop + isw.x vi01, 971(vi00) | nop + iaddi vi15, vi00, 0x0 | nop + mtir vi03, vf22.x | nop + iaddiu vi02, vi00, 0x32 | nop + mr32.xyzw vf21, vf21 | nop + mfir.y vf23, vi00 | nop :e + mfir.w vf23, vi00 | nop +L9: + lqi.xyzw vf05, vi02 | nop + lq.xyzw vf24, 6(vi03) | nop + lq.xyzw vf13, 3(vi03) | nop + lq.xyzw vf01, 0(vi03) | nop + lq.xyzw vf02, 1(vi03) | nop + lq.xyzw vf12, 2(vi03) | nop + mtir vi09, vf24.x | nop + lqi.xyzw vf15, vi02 | mulaw.xyzw ACC, vf13, vf00 + lq.xyzw vf27, 4(vi03) | maddax.xyzw ACC, vf01, vf05 + ilw.x vi01, 5(vi03) | madday.xyzw ACC, vf02, vf05 + lq.xyzw vf11, 838(vi09) | maddz.xyzw vf09, vf12, vf05 + lqi.xyzw vf06, vi02 | nop + lq.xyzw vf19, 5(vi03) | nop + iaddi vi03, vi03, 0x7 | nop + mtir vi09, vf24.y | addx.w vf20, vf19, vf00 + div Q, vf00.w, vf09.w | mulaw.xyzw ACC, vf13, vf00 + lqi.xyzw vf16, vi02 | maddax.xyzw ACC, vf01, vf06 + mtir vi01, vf21.x | madday.xyzw ACC, vf02, vf06 + lq.xyzw vf03, 838(vi09) | maddz.xyzw vf10, vf12, vf06 + isub vi01, vi01, vi15 | ftoi4.w vf19, vf19 + iadd vi04, vi04, vi01 | ftoi4.w vf20, vf20 + iadd vi06, vi06, vi01 | nop + lqi.xyzw vf07, vi02 | mul.xyz vf09, vf09, Q + div Q, vf00.w, vf10.w | mul.xyz vf15, vf15, Q + mtir vi09, vf24.z | addx.w vf05, vf05, vf21 + lqi.xyzw vf17, vi02 | mulaw.xyzw ACC, vf13, vf00 + iadd vi07, vi07, vi01 | maddax.xyzw ACC, vf01, vf07 + iadd vi08, vi08, vi01 | madday.xyzw ACC, vf02, vf07 + lq.xyzw vf04, 838(vi09) | ftoi4.xyz vf19, vf09 + ibeq vi04, vi12, L40 | maddz.xyzw vf09, vf12, vf07 + iadd vi15, vi15, vi01 | nop +L10: + mtir vi12, vf05.w | nop + lqi.xyzw vf08, vi02 | mul.xyz vf10, vf10, Q + div Q, vf00.w, vf09.w | mul.xyz vf16, vf16, Q + mtir vi09, vf24.w | addx.w vf06, vf06, vf21 + lqi.xyzw vf18, vi02 | mulaw.xyzw ACC, vf13, vf00 + sq.xyzw vf15, 0(vi12) | maddax.xyzw ACC, vf01, vf08 + sq.xyzw vf11, 1(vi12) | madday.xyzw ACC, vf02, vf08 + lq.xyzw vf14, 838(vi09) | ftoi4.xyz vf20, vf10 + ibeq vi04, vi12, L13 | maddz.xyzw vf10, vf12, vf08 + sq.xyzw vf19, 2(vi12) | nop + lqi.xyzw vf24, vi03 | nop + mtir vi12, vf06.w | nop + lqi.xyzw vf05, vi02 | mul.xyz vf09, vf09, Q + div Q, vf00.w, vf10.w | mul.xyz vf17, vf17, Q + mtir vi09, vf24.x | addx.w vf07, vf07, vf21 + lqi.xyzw vf15, vi02 | mulaw.xyzw ACC, vf13, vf00 + sq.xyzw vf16, 0(vi12) | maddax.xyzw ACC, vf01, vf05 + sq.xyzw vf03, 1(vi12) | madday.xyzw ACC, vf02, vf05 + lq.xyzw vf11, 838(vi09) | ftoi4.xyz vf19, vf09 + ibeq vi04, vi12, L12 | maddz.xyzw vf09, vf12, vf05 + sq.xyzw vf20, 2(vi12) | nop + mtir vi12, vf07.w | nop + lqi.xyzw vf06, vi02 | mul.xyz vf10, vf10, Q + div Q, vf00.w, vf09.w | mul.xyz vf18, vf18, Q + mtir vi09, vf24.y | addx.w vf08, vf08, vf21 + lqi.xyzw vf16, vi02 | mulaw.xyzw ACC, vf13, vf00 + sq.xyzw vf17, 0(vi12) | maddax.xyzw ACC, vf01, vf06 + sq.xyzw vf04, 1(vi12) | madday.xyzw ACC, vf02, vf06 + lq.xyzw vf03, 838(vi09) | ftoi4.xyz vf20, vf10 + ibeq vi04, vi12, L11 | maddz.xyzw vf10, vf12, vf06 + sq.xyzw vf19, 2(vi12) | nop + mtir vi12, vf08.w | nop + lqi.xyzw vf07, vi02 | mul.xyz vf09, vf09, Q + div Q, vf00.w, vf10.w | mul.xyz vf15, vf15, Q + mtir vi09, vf24.z | addx.w vf05, vf05, vf21 + lqi.xyzw vf17, vi02 | mulaw.xyzw ACC, vf13, vf00 + sq.xyzw vf18, 0(vi12) | maddax.xyzw ACC, vf01, vf07 + sq.xyzw vf14, 1(vi12) | madday.xyzw ACC, vf02, vf07 + lq.xyzw vf04, 838(vi09) | ftoi4.xyz vf19, vf09 + ibne vi04, vi12, L10 | maddz.xyzw vf09, vf12, vf07 + sq.xyzw vf20, 2(vi12) | nop + mtir vi12, vf05.w | nop + ibne vi00, vi05, L24 | mul.xyz vf10, vf10, Q + lqi.xyzw vf08, vi02 | mul.xyz vf16, vf16, Q + div Q, vf00.w, vf09.w | addx.w vf06, vf06, vf21 + mtir vi09, vf24.w | mulaw.xyzw ACC, vf13, vf00 + lqi.xyzw vf24, vi03 | nop + sq.xyzw vf15, 0(vi12) | addx.w vf07, vf07, vf21 + sq.xyzw vf11, 1(vi12) | maddax.xyzw ACC, vf01, vf08 + lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf08 + lq.xyzw vf14, 838(vi09) | ftoi4.xyz vf20, vf10 + lqi.xyzw vf05, vi02 | maddz.xyzw vf10, vf12, vf08 + sq.xyzw vf19, 2(vi12) | mul.xyz vf09, vf09, Q + mtir vi12, vf06.w | mul.xyz vf17, vf17, Q + lqi.xyzw vf15, vi02 | mulaw.xyzw ACC, vf13, vf00 + mtir vi09, vf24.x | maddax.xyzw ACC, vf01, vf05 + nop | madday.xyzw ACC, vf02, vf05 + div Q, vf00.w, vf10.w | ftoi4.xyz vf19, vf09 + sq.xyzw vf16, 0(vi12) | maddz.xyzw vf09, vf12, vf05 + sq.xyzw vf03, 1(vi12) | nop + sq.xyzw vf20, 2(vi12) | nop + mtir vi12, vf07.w | nop + lq.xyzw vf11, 838(vi09) | addx.w vf08, vf08, vf21 + div Q, vf00.w, vf09.w | mul.xyz vf10, vf10, Q + sq.xyzw vf17, 0(vi12) | mul.xyz vf18, vf18, Q + sq.xyzw vf04, 1(vi12) | addx.w vf18, vf18, vf21 + sq.xyzw vf19, 2(vi12) | nop + b L14 | ftoi4.xyz vf20, vf10 + mtir vi12, vf08.w | nop +L11: + mtir vi12, vf08.w | nop + ibne vi00, vi05, L23 | mul.xyz vf09, vf09, Q + lqi.xyzw vf07, vi02 | mul.xyz vf15, vf15, Q + div Q, vf00.w, vf10.w | addx.w vf05, vf05, vf21 + mtir vi09, vf24.z | mulaw.xyzw ACC, vf13, vf00 + sq.xyzw vf18, 0(vi12) | nop + sq.xyzw vf14, 1(vi12) | maddax.xyzw ACC, vf01, vf07 + lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf07 + lq.xyzw vf04, 838(vi09) | ftoi4.xyz vf19, vf09 + lqi.xyzw vf08, vi02 | maddz.xyzw vf09, vf12, vf07 + sq.xyzw vf20, 2(vi12) | mul.xyz vf10, vf10, Q + mtir vi12, vf05.w | mul.xyz vf16, vf16, Q + lqi.xyzw vf18, vi02 | mulaw.xyzw ACC, vf13, vf00 + div Q, vf00.w, vf09.w | maddax.xyzw ACC, vf01, vf08 + mtir vi09, vf24.w | addx.w vf06, vf06, vf21 + lqi.xyzw vf24, vi03 | nop + sq.xyzw vf15, 0(vi12) | madday.xyzw ACC, vf02, vf08 + sq.xyzw vf11, 1(vi12) | ftoi4.xyz vf20, vf10 + sq.xyzw vf19, 2(vi12) | maddz.xyzw vf10, vf12, vf08 + mtir vi12, vf06.w | nop + lq.xyzw vf14, 838(vi09) | addx.w vf07, vf07, vf21 + div Q, vf00.w, vf10.w | mul.xyz vf09, vf09, Q + sq.xyzw vf16, 0(vi12) | mul.xyz vf17, vf17, Q + sq.xyzw vf03, 1(vi12) | addx.w vf17, vf17, vf21 + sq.xyzw vf20, 2(vi12) | nop + b L17 | ftoi4.xyz vf19, vf09 + mtir vi12, vf07.w | nop +L12: + mtir vi12, vf07.w | nop + ibne vi00, vi05, L22 | mul.xyz vf10, vf10, Q + lqi.xyzw vf06, vi02 | mul.xyz vf18, vf18, Q + div Q, vf00.w, vf09.w | addx.w vf08, vf08, vf21 + mtir vi09, vf24.y | mulaw.xyzw ACC, vf13, vf00 + sq.xyzw vf17, 0(vi12) | nop + sq.xyzw vf04, 1(vi12) | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf06 + lq.xyzw vf03, 838(vi09) | ftoi4.xyz vf20, vf10 + lqi.xyzw vf07, vi02 | maddz.xyzw vf10, vf12, vf06 + sq.xyzw vf19, 2(vi12) | mul.xyz vf09, vf09, Q + mtir vi12, vf08.w | mul.xyz vf15, vf15, Q + lqi.xyzw vf17, vi02 | mulaw.xyzw ACC, vf13, vf00 + div Q, vf00.w, vf10.w | maddax.xyzw ACC, vf01, vf07 + mtir vi09, vf24.z | addx.w vf05, vf05, vf21 + sq.xyzw vf18, 0(vi12) | madday.xyzw ACC, vf02, vf07 + sq.xyzw vf14, 1(vi12) | ftoi4.xyz vf19, vf09 + sq.xyzw vf20, 2(vi12) | maddz.xyzw vf09, vf12, vf07 + mtir vi12, vf05.w | nop + lq.xyzw vf04, 838(vi09) | addx.w vf06, vf06, vf21 + sq.xyzw vf15, 0(vi12) | mul.xyz vf10, vf10, Q + div Q, vf00.w, vf09.w | mul.xyz vf16, vf16, Q + sq.xyzw vf11, 1(vi12) | addx.w vf16, vf16, vf21 + sq.xyzw vf19, 2(vi12) | nop + b L16 | ftoi4.xyz vf20, vf10 + mtir vi12, vf06.w | nop +L13: + lqi.xyzw vf24, vi03 | nop + mtir vi12, vf06.w | nop + ibne vi00, vi05, L21 | mul.xyz vf09, vf09, Q + lqi.xyzw vf05, vi02 | mul.xyz vf17, vf17, Q + div Q, vf00.w, vf10.w | addx.w vf07, vf07, vf21 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf13, vf00 + sq.xyzw vf16, 0(vi12) | maddax.xyzw ACC, vf01, vf05 + sq.xyzw vf03, 1(vi12) | madday.xyzw ACC, vf02, vf05 + lqi.xyzw vf15, vi02 | ftoi4.xyz vf19, vf09 + lq.xyzw vf11, 838(vi09) | maddz.xyzw vf09, vf12, vf05 + lqi.xyzw vf06, vi02 | addx.w vf08, vf08, vf21 + sq.xyzw vf20, 2(vi12) | mul.xyz vf10, vf10, Q + mtir vi12, vf07.w | mul.xyz vf18, vf18, Q + div Q, vf00.w, vf09.w | mulaw.xyzw ACC, vf13, vf00 + mtir vi09, vf24.y | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf06 + sq.xyzw vf17, 0(vi12) | ftoi4.xyz vf20, vf10 + sq.xyzw vf04, 1(vi12) | maddz.xyzw vf10, vf12, vf06 + sq.xyzw vf19, 2(vi12) | nop + mtir vi12, vf08.w | nop + lq.xyzw vf03, 838(vi09) | addx.w vf05, vf05, vf21 + div Q, vf00.w, vf10.w | mul.xyz vf09, vf09, Q + sq.xyzw vf18, 0(vi12) | mul.xyz vf15, vf15, Q + sq.xyzw vf14, 1(vi12) | addx.w vf15, vf15, vf21 + sq.xyzw vf20, 2(vi12) | nop + b L15 | ftoi4.xyz vf19, vf09 + mtir vi12, vf05.w | nop +L14: + lqi.xyzw vf06, vi02 | nop + mtir vi09, vf24.y | nop + mtir vi13, vf18.w | mulaw.xyzw ACC, vf13, vf00 + sq.xyzw vf18, 0(vi12) | addx.w vf05, vf05, vf21 + sq.xyzw vf14, 1(vi12) | maddax.xyzw ACC, vf01, vf06 + sq.xyzw vf20, 2(vi12) | madday.xyzw ACC, vf02, vf06 + lqi.xyzw vf16, vi02 | maddz.xyzw vf10, vf12, vf06 + lq.xyzw vf03, 838(vi09) | mul.xyz vf09, vf09, Q + sq.xyzw vf18, 0(vi13) | mul.xyz vf15, vf15, Q + sq.xyzw vf14, 1(vi13) | addx.w vf15, vf15, vf21 + sq.xyzw vf20, 2(vi13) | nop + div Q, vf00.w, vf10.w | nop + ibeq vi06, vi12, L18 | ftoi4.xyz vf19, vf09 + mtir vi12, vf05.w | nop +L15: + lqi.xyzw vf07, vi02 | nop + mtir vi09, vf24.z | nop + mtir vi13, vf15.w | mulaw.xyzw ACC, vf13, vf00 + sq.xyzw vf15, 0(vi12) | addx.w vf06, vf06, vf21 + sq.xyzw vf11, 1(vi12) | maddax.xyzw ACC, vf01, vf07 + sq.xyzw vf19, 2(vi12) | madday.xyzw ACC, vf02, vf07 + lqi.xyzw vf17, vi02 | maddz.xyzw vf09, vf12, vf07 + lq.xyzw vf04, 838(vi09) | mul.xyz vf10, vf10, Q + sq.xyzw vf15, 0(vi13) | mul.xyz vf16, vf16, Q + sq.xyzw vf11, 1(vi13) | addx.w vf16, vf16, vf21 + sq.xyzw vf19, 2(vi13) | nop + div Q, vf00.w, vf09.w | nop + ibeq vi06, vi12, L19 | ftoi4.xyz vf20, vf10 + mtir vi12, vf06.w | nop +L16: + lqi.xyzw vf08, vi02 | nop + mtir vi09, vf24.w | nop + lqi.xyzw vf24, vi03 | nop + mtir vi13, vf16.w | mulaw.xyzw ACC, vf13, vf00 + sq.xyzw vf16, 0(vi12) | addx.w vf07, vf07, vf21 + sq.xyzw vf03, 1(vi12) | maddax.xyzw ACC, vf01, vf08 + sq.xyzw vf20, 2(vi12) | madday.xyzw ACC, vf02, vf08 + lqi.xyzw vf18, vi02 | maddz.xyzw vf10, vf12, vf08 + lq.xyzw vf14, 838(vi09) | mul.xyz vf09, vf09, Q + sq.xyzw vf16, 0(vi13) | mul.xyz vf17, vf17, Q + sq.xyzw vf03, 1(vi13) | addx.w vf17, vf17, vf21 + sq.xyzw vf20, 2(vi13) | nop + div Q, vf00.w, vf10.w | nop + ibeq vi06, vi12, L20 | ftoi4.xyz vf19, vf09 + mtir vi12, vf07.w | nop +L17: + lqi.xyzw vf05, vi02 | nop + mtir vi09, vf24.x | nop + mtir vi13, vf17.w | mulaw.xyzw ACC, vf13, vf00 + sq.xyzw vf17, 0(vi12) | addx.w vf08, vf08, vf21 + sq.xyzw vf04, 1(vi12) | maddax.xyzw ACC, vf01, vf05 + sq.xyzw vf19, 2(vi12) | madday.xyzw ACC, vf02, vf05 + lqi.xyzw vf15, vi02 | maddz.xyzw vf09, vf12, vf05 + lq.xyzw vf11, 838(vi09) | mul.xyz vf10, vf10, Q + sq.xyzw vf17, 0(vi13) | mul.xyz vf18, vf18, Q + sq.xyzw vf04, 1(vi13) | addx.w vf18, vf18, vf21 + sq.xyzw vf19, 2(vi13) | nop + div Q, vf00.w, vf09.w | nop + ibne vi06, vi12, L14 | ftoi4.xyz vf20, vf10 + mtir vi12, vf08.w | nop + nop | nop + nop | nop + mtir vi13, vf18.w | nop + sq.xyzw vf18, 0(vi12) | addx.w vf05, vf05, vf21 + sq.xyzw vf14, 1(vi12) | addx.w vf15, vf15, vf21 + sq.xyzw vf20, 2(vi12) | mul.xyz vf09, vf09, Q + sq.xyzw vf18, 0(vi13) | mul.xyz vf15, vf15, Q + sq.xyzw vf14, 1(vi13) | nop + sq.xyzw vf20, 2(vi13) | nop + mtir vi12, vf05.w | ftoi4.xyz vf19, vf09 + mtir vi13, vf15.w | nop + sq.xyzw vf15, 0(vi12) | nop + sq.xyzw vf11, 1(vi12) | nop + sq.xyzw vf19, 2(vi12) | nop + sq.xyzw vf15, 0(vi13) | nop + sq.xyzw vf11, 1(vi13) | nop + ibeq vi00, vi14, L26 | nop + sq.xyzw vf19, 2(vi13) | nop + b L40 | nop + nop | nop +L18: + nop | nop + nop | nop + mtir vi13, vf15.w | nop + sq.xyzw vf15, 0(vi12) | addx.w vf06, vf06, vf21 + sq.xyzw vf11, 1(vi12) | addx.w vf16, vf16, vf21 + sq.xyzw vf19, 2(vi12) | mul.xyz vf10, vf10, Q + sq.xyzw vf15, 0(vi13) | mul.xyz vf16, vf16, Q + sq.xyzw vf11, 1(vi13) | nop + sq.xyzw vf19, 2(vi13) | nop + mtir vi12, vf06.w | ftoi4.xyz vf20, vf10 + mtir vi13, vf16.w | nop + sq.xyzw vf16, 0(vi12) | nop + sq.xyzw vf03, 1(vi12) | nop + sq.xyzw vf20, 2(vi12) | nop + sq.xyzw vf16, 0(vi13) | nop + sq.xyzw vf03, 1(vi13) | nop + ibeq vi00, vi14, L27 | nop + sq.xyzw vf20, 2(vi13) | nop + b L40 | nop + nop | nop +L19: + nop | nop + nop | nop + mtir vi13, vf16.w | nop + sq.xyzw vf16, 0(vi12) | addx.w vf07, vf07, vf21 + sq.xyzw vf03, 1(vi12) | addx.w vf17, vf17, vf21 + sq.xyzw vf20, 2(vi12) | mul.xyz vf09, vf09, Q + sq.xyzw vf16, 0(vi13) | mul.xyz vf17, vf17, Q + sq.xyzw vf03, 1(vi13) | nop + sq.xyzw vf20, 2(vi13) | nop + mtir vi12, vf07.w | ftoi4.xyz vf19, vf09 + mtir vi13, vf17.w | nop + sq.xyzw vf17, 0(vi12) | nop + sq.xyzw vf04, 1(vi12) | nop + sq.xyzw vf19, 2(vi12) | nop + sq.xyzw vf17, 0(vi13) | nop + sq.xyzw vf04, 1(vi13) | nop + ibeq vi00, vi14, L28 | nop + sq.xyzw vf19, 2(vi13) | nop + b L40 | nop + nop | nop +L20: + nop | nop + nop | nop + mtir vi13, vf17.w | nop + sq.xyzw vf17, 0(vi12) | addx.w vf08, vf08, vf21 + sq.xyzw vf04, 1(vi12) | addx.w vf18, vf18, vf21 + sq.xyzw vf19, 2(vi12) | mul.xyz vf10, vf10, Q + sq.xyzw vf17, 0(vi13) | mul.xyz vf18, vf18, Q + sq.xyzw vf04, 1(vi13) | nop + sq.xyzw vf19, 2(vi13) | nop + mtir vi12, vf08.w | ftoi4.xyz vf20, vf10 + mtir vi13, vf18.w | nop + sq.xyzw vf18, 0(vi12) | nop + sq.xyzw vf14, 1(vi12) | nop + sq.xyzw vf20, 2(vi12) | nop + sq.xyzw vf18, 0(vi13) | nop + sq.xyzw vf14, 1(vi13) | nop + ibeq vi00, vi14, L25 | nop + sq.xyzw vf20, 2(vi13) | nop + b L40 | nop + nop | nop +L21: + div Q, vf00.w, vf10.w | addx.w vf07, vf07, vf21 + sq.xyzw vf16, 0(vi12) | addx.w vf08, vf08, vf21 + sq.xyzw vf03, 1(vi12) | nop + sq.xyzw vf20, 2(vi12) | nop + iaddi vi02, vi02, -0x1 | ftoi4.xyz vf19, vf09 + nop | nop + nop | nop + nop | mul.xyz vf10, vf10, Q + mtir vi12, vf07.w | mul.xyz vf18, vf18, Q + mtir vi13, vf08.w | nop + sq.xyzw vf17, 0(vi12) | nop + sq.xyzw vf04, 1(vi12) | nop + sq.xyzw vf19, 2(vi12) | ftoi4.xyz vf20, vf10 + sq.xyzw vf18, 0(vi13) | nop + sq.xyzw vf14, 1(vi13) | nop + ibeq vi00, vi14, L25 | nop + sq.xyzw vf20, 2(vi13) | nop + b L40 | nop + nop | nop +L22: + div Q, vf00.w, vf09.w | addx.w vf08, vf08, vf21 + sq.xyzw vf17, 0(vi12) | addx.w vf05, vf05, vf21 + sq.xyzw vf04, 1(vi12) | nop + sq.xyzw vf19, 2(vi12) | nop + iaddi vi02, vi02, -0x1 | ftoi4.xyz vf20, vf10 + nop | nop + nop | nop + nop | mul.xyz vf09, vf09, Q + mtir vi12, vf08.w | mul.xyz vf15, vf15, Q + mtir vi13, vf05.w | nop + sq.xyzw vf18, 0(vi12) | nop + sq.xyzw vf14, 1(vi12) | nop + sq.xyzw vf20, 2(vi12) | ftoi4.xyz vf19, vf09 + sq.xyzw vf15, 0(vi13) | nop + sq.xyzw vf11, 1(vi13) | nop + ibeq vi00, vi14, L26 | nop + sq.xyzw vf19, 2(vi13) | nop + b L40 | nop + nop | nop +L23: + div Q, vf00.w, vf10.w | addx.w vf05, vf05, vf21 + sq.xyzw vf18, 0(vi12) | addx.w vf06, vf06, vf21 + sq.xyzw vf14, 1(vi12) | nop + sq.xyzw vf20, 2(vi12) | nop + iaddi vi02, vi02, -0x1 | ftoi4.xyz vf19, vf09 + nop | nop + nop | nop + nop | mul.xyz vf10, vf10, Q + mtir vi12, vf05.w | mul.xyz vf16, vf16, Q + mtir vi13, vf06.w | nop + sq.xyzw vf15, 0(vi12) | nop + sq.xyzw vf11, 1(vi12) | nop + sq.xyzw vf19, 2(vi12) | ftoi4.xyz vf20, vf10 + sq.xyzw vf16, 0(vi13) | nop + sq.xyzw vf03, 1(vi13) | nop + ibeq vi00, vi14, L27 | nop + sq.xyzw vf20, 2(vi13) | nop + b L40 | nop + nop | nop +L24: + div Q, vf00.w, vf09.w | addx.w vf06, vf06, vf21 + sq.xyzw vf15, 0(vi12) | addx.w vf07, vf07, vf21 + sq.xyzw vf11, 1(vi12) | nop + sq.xyzw vf19, 2(vi12) | nop + iaddi vi02, vi02, -0x1 | ftoi4.xyz vf20, vf10 + nop | nop + nop | nop + nop | mul.xyz vf09, vf09, Q + mtir vi12, vf06.w | mul.xyz vf17, vf17, Q + mtir vi13, vf07.w | nop + sq.xyzw vf16, 0(vi12) | nop + sq.xyzw vf03, 1(vi12) | nop + sq.xyzw vf20, 2(vi12) | ftoi4.xyz vf19, vf09 + sq.xyzw vf17, 0(vi13) | nop + sq.xyzw vf04, 1(vi13) | nop + ibeq vi00, vi14, L28 | nop + sq.xyzw vf19, 2(vi13) | nop + b L40 | nop + nop | nop +L25: + lqi.xyzw vf05, vi02 | nop + 0.5 | subw.w vf28, vf00, vf00 :i + lqi.xyz vf28, vi02 | addi.y vf27, vf00, I + lqi.xyzw vf15, vi02 | nop + mtir vi09, vf24.x | nop + mtir vi10, vf24.y | addx.w vf28, vf28, vf21 + mtir vi11, vf24.z | mulx.xyz vf05, vf05, vf27 + nop | nop + lq.xyzw vf11, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf05, vf05, vf28 + lq.xyzw vf30, 838(vi11) | nop + nop | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05 + lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf05 + nop | maddz.xyzw vf09, vf12, vf05 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf11, vf11, vf27 + mtir vi11, vf24.z | mulx.xyz vf06, vf06, vf27 + nop | nop + lq.xyzw vf03, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf06, vf06, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf09.w | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf06 + nop | maddz.xyzw vf10, vf12, vf06 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | mulx.xyz vf07, vf07, vf27 + mtir vi11, vf24.z | maddz.xyzw vf03, vf03, vf27 + nop | mul.xyz vf19, vf09, Q + lq.xyzw vf04, 838(vi09) | mul.xyz vf15, vf15, Q + lq.xyzw vf29, 838(vi10) | add.xyzw vf07, vf07, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf10.w | ftoi4.xyz vf19, vf19 + nop | nop + b L29 | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 +L26: + lqi.xyzw vf06, vi02 | nop + lqi.xyzw vf24, vi03 | subw.w vf28, vf00, vf00 + 0.5 | nop :i + lqi.xyz vf28, vi02 | addi.y vf27, vf00, I + lqi.xyzw vf16, vi02 | nop + mtir vi09, vf24.x | addx.w vf28, vf28, vf21 + mtir vi10, vf24.y | nop + mtir vi11, vf24.z | mulx.xyz vf06, vf06, vf27 + nop | nop + lq.xyzw vf03, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf06, vf06, vf28 + lq.xyzw vf30, 838(vi11) | nop + nop | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf06 + nop | maddz.xyzw vf10, vf12, vf06 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf03, vf03, vf27 + mtir vi11, vf24.z | mulx.xyz vf07, vf07, vf27 + nop | nop + lq.xyzw vf04, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf07, vf07, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf10.w | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07 + lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf07 + nop | maddz.xyzw vf09, vf12, vf07 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | mulx.xyz vf08, vf08, vf27 + mtir vi11, vf24.z | maddz.xyzw vf04, vf04, vf27 + nop | mul.xyz vf20, vf10, Q + lq.xyzw vf14, 838(vi09) | mul.xyz vf16, vf16, Q + lq.xyzw vf29, 838(vi10) | add.xyzw vf08, vf08, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf09.w | ftoi4.xyz vf20, vf20 + nop | nop + b L30 | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 +L27: + lqi.xyzw vf07, vi02 | nop + lqi.xyzw vf24, vi03 | subw.w vf28, vf00, vf00 + 0.5 | nop :i + lqi.xyz vf28, vi02 | addi.y vf27, vf00, I + lqi.xyzw vf17, vi02 | nop + mtir vi09, vf24.x | addx.w vf28, vf28, vf21 + mtir vi10, vf24.y | nop + mtir vi11, vf24.z | mulx.xyz vf07, vf07, vf27 + nop | nop + lq.xyzw vf04, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf07, vf07, vf28 + lq.xyzw vf30, 838(vi11) | nop + nop | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07 + lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf07 + nop | maddz.xyzw vf09, vf12, vf07 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf04, vf04, vf27 + mtir vi11, vf24.z | mulx.xyz vf08, vf08, vf27 + nop | nop + lq.xyzw vf14, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf08, vf08, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf09.w | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08 + lqi.xyzw vf15, vi02 | madday.xyzw ACC, vf02, vf08 + nop | maddz.xyzw vf10, vf12, vf08 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | mulx.xyz vf05, vf05, vf27 + mtir vi11, vf24.z | maddz.xyzw vf14, vf14, vf27 + nop | mul.xyz vf19, vf09, Q + lq.xyzw vf11, 838(vi09) | mul.xyz vf17, vf17, Q + lq.xyzw vf29, 838(vi10) | add.xyzw vf05, vf05, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf10.w | ftoi4.xyz vf19, vf19 + nop | nop + b L31 | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 +L28: + lqi.xyzw vf08, vi02 | nop + lqi.xyzw vf24, vi03 | subw.w vf28, vf00, vf00 + 0.5 | nop :i + lqi.xyz vf28, vi02 | addi.y vf27, vf00, I + lqi.xyzw vf18, vi02 | nop + mtir vi09, vf24.x | addx.w vf28, vf28, vf21 + mtir vi10, vf24.y | nop + mtir vi11, vf24.z | mulx.xyz vf08, vf08, vf27 + nop | nop + lq.xyzw vf14, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf08, vf08, vf28 + lq.xyzw vf30, 838(vi11) | nop + nop | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08 + lqi.xyzw vf15, vi02 | madday.xyzw ACC, vf02, vf08 + nop | maddz.xyzw vf10, vf12, vf08 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf14, vf14, vf27 + mtir vi11, vf24.z | mulx.xyz vf05, vf05, vf27 + nop | nop + lq.xyzw vf11, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | add.xyzw vf05, vf05, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf10.w | nop + nop | nop + nop | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 + lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05 + lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf05 + nop | maddz.xyzw vf09, vf12, vf05 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | mulx.xyz vf06, vf06, vf27 + mtir vi11, vf24.z | maddz.xyzw vf11, vf11, vf27 + nop | mul.xyz vf20, vf10, Q + lq.xyzw vf03, 838(vi09) | mul.xyz vf18, vf18, Q + lq.xyzw vf29, 838(vi10) | add.xyzw vf06, vf06, vf28 + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf09.w | ftoi4.xyz vf20, vf20 + nop | nop + b L32 | mulay.xyzw ACC, vf29, vf27 + lqi.xyzw vf24, vi03 | maddy.xyzw vf29, vf30, vf27 +L29: + lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07 + lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf07 + mtir vi12, vf05.w | maddz.xyzw vf09, vf12, vf07 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf04, vf04, vf27 + mtir vi11, vf24.z | mulx.xyz vf08, vf08, vf27 + sq.xyzw vf15, 0(vi12) | mul.xyz vf20, vf10, Q + lq.xyzw vf14, 838(vi09) | mul.xyz vf16, vf16, Q + lq.xyzw vf29, 838(vi10) | nop + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf09.w | ftoi4.xyz vf20, vf20 + sq.xyzw vf11, 1(vi12) | add.xyzw vf08, vf08, vf28 + lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27 + ibeq vi07, vi12, L33 | nop + sq.xyzw vf19, 2(vi12) | maddy.xyzw vf29, vf30, vf27 +L30: + lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08 + lqi.xyzw vf15, vi02 | madday.xyzw ACC, vf02, vf08 + mtir vi12, vf06.w | maddz.xyzw vf10, vf12, vf08 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf14, vf14, vf27 + mtir vi11, vf24.z | mulx.xyz vf05, vf05, vf27 + sq.xyzw vf16, 0(vi12) | mul.xyz vf19, vf09, Q + lq.xyzw vf11, 838(vi09) | mul.xyz vf17, vf17, Q + lq.xyzw vf29, 838(vi10) | nop + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf10.w | ftoi4.xyz vf19, vf19 + sq.xyzw vf03, 1(vi12) | add.xyzw vf05, vf05, vf28 + lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27 + ibeq vi07, vi12, L34 | nop + sq.xyzw vf20, 2(vi12) | maddy.xyzw vf29, vf30, vf27 +L31: + lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05 + lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf05 + mtir vi12, vf07.w | maddz.xyzw vf09, vf12, vf05 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf11, vf11, vf27 + mtir vi11, vf24.z | mulx.xyz vf06, vf06, vf27 + sq.xyzw vf17, 0(vi12) | mul.xyz vf20, vf10, Q + lq.xyzw vf03, 838(vi09) | mul.xyz vf18, vf18, Q + lq.xyzw vf29, 838(vi10) | nop + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf09.w | ftoi4.xyz vf20, vf20 + sq.xyzw vf04, 1(vi12) | add.xyzw vf06, vf06, vf28 + lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27 + ibeq vi07, vi12, L35 | nop + sq.xyzw vf19, 2(vi12) | maddy.xyzw vf29, vf30, vf27 +L32: + lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf06 + mtir vi12, vf08.w | maddz.xyzw vf10, vf12, vf06 + mtir vi09, vf24.x | mulaw.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddz.xyzw vf03, vf03, vf27 + mtir vi11, vf24.z | mul.xyz vf19, vf09, Q + sq.xyzw vf18, 0(vi12) | mul.xyz vf15, vf15, Q + lq.xyzw vf04, 838(vi09) | mulx.xyz vf07, vf07, vf27 + lq.xyzw vf29, 838(vi10) | nop + lq.xyzw vf30, 838(vi11) | nop + div Q, vf00.w, vf10.w | ftoi4.xyz vf19, vf19 + sq.xyzw vf14, 1(vi12) | add.xyzw vf07, vf07, vf28 + lqi.xyzw vf24, vi03 | mulay.xyzw ACC, vf29, vf27 + ibne vi07, vi12, L29 | nop + sq.xyzw vf20, 2(vi12) | maddy.xyzw vf29, vf30, vf27 + mtir vi12, vf05.w | addx.w vf15, vf15, vf21 + lqi.xyzw vf08, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf07 + lqi.xyzw vf18, vi02 | madday.xyzw ACC, vf02, vf07 + mtir vi13, vf15.w | maddz.xyzw vf09, vf12, vf07 + mtir vi09, vf24.x | mul.xyz vf16, vf16, Q + mtir vi10, vf24.y | mul.xyz vf10, vf10, Q + mtir vi11, vf24.z | nop + sq.xyzw vf11, 1(vi12) | addx.w vf17, vf17, vf21 + div Q, vf00.w, vf09.w | mulx.xyz vf08, vf08, vf27 + sq.xyzw vf15, 0(vi12) | ftoi4.xyz vf20, vf10 + sq.xyzw vf19, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf15, 0(vi13) | maddz.xyzw vf04, vf04, vf27 + sq.xyzw vf11, 1(vi13) | add.xyzw vf08, vf08, vf28 + sq.xyzw vf19, 2(vi13) | addx.w vf16, vf16, vf21 + lq.xyzw vf14, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibne vi08, vi12, L36 | nop + mtir vi12, vf06.w | maddax.xyzw ACC, vf01, vf08 + b L40 | nop + nop | nop +L33: + mtir vi12, vf06.w | addx.w vf16, vf16, vf21 + lqi.xyzw vf05, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf08 + lqi.xyzw vf15, vi02 | madday.xyzw ACC, vf02, vf08 + mtir vi13, vf16.w | maddz.xyzw vf10, vf12, vf08 + mtir vi09, vf24.x | mul.xyz vf17, vf17, Q + mtir vi10, vf24.y | mul.xyz vf09, vf09, Q + mtir vi11, vf24.z | nop + sq.xyzw vf03, 1(vi12) | addx.w vf18, vf18, vf21 + div Q, vf00.w, vf10.w | mulx.xyz vf05, vf05, vf27 + sq.xyzw vf16, 0(vi12) | ftoi4.xyz vf19, vf09 + sq.xyzw vf20, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf16, 0(vi13) | maddz.xyzw vf14, vf14, vf27 + sq.xyzw vf03, 1(vi13) | add.xyzw vf05, vf05, vf28 + sq.xyzw vf20, 2(vi13) | addx.w vf17, vf17, vf21 + lq.xyzw vf11, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibne vi08, vi12, L37 | nop + mtir vi12, vf07.w | maddax.xyzw ACC, vf01, vf05 + b L40 | nop + nop | nop +L34: + mtir vi12, vf07.w | addx.w vf17, vf17, vf21 + lqi.xyzw vf06, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf05 + lqi.xyzw vf16, vi02 | madday.xyzw ACC, vf02, vf05 + mtir vi13, vf17.w | maddz.xyzw vf09, vf12, vf05 + mtir vi09, vf24.x | mul.xyz vf18, vf18, Q + mtir vi10, vf24.y | mul.xyz vf10, vf10, Q + mtir vi11, vf24.z | nop + sq.xyzw vf04, 1(vi12) | addx.w vf15, vf15, vf21 + div Q, vf00.w, vf09.w | mulx.xyz vf06, vf06, vf27 + sq.xyzw vf17, 0(vi12) | ftoi4.xyz vf20, vf10 + sq.xyzw vf19, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf17, 0(vi13) | maddz.xyzw vf11, vf11, vf27 + sq.xyzw vf04, 1(vi13) | add.xyzw vf06, vf06, vf28 + sq.xyzw vf19, 2(vi13) | addx.w vf18, vf18, vf21 + lq.xyzw vf03, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibne vi08, vi12, L38 | nop + mtir vi12, vf08.w | maddax.xyzw ACC, vf01, vf06 + b L40 | nop + nop | nop +L35: + mtir vi12, vf08.w | addx.w vf18, vf18, vf21 + lqi.xyzw vf07, vi02 | mulaw.xyzw ACC, vf13, vf00 + lqi.xyz vf28, vi02 | maddax.xyzw ACC, vf01, vf06 + lqi.xyzw vf17, vi02 | madday.xyzw ACC, vf02, vf06 + mtir vi13, vf18.w | maddz.xyzw vf10, vf12, vf06 + mtir vi09, vf24.x | mul.xyz vf15, vf15, Q + mtir vi10, vf24.y | mul.xyz vf09, vf09, Q + mtir vi11, vf24.z | nop + sq.xyzw vf14, 1(vi12) | addx.w vf16, vf16, vf21 + div Q, vf00.w, vf10.w | mulx.xyz vf07, vf07, vf27 + sq.xyzw vf18, 0(vi12) | ftoi4.xyz vf19, vf09 + sq.xyzw vf20, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf18, 0(vi13) | maddz.xyzw vf03, vf03, vf27 + sq.xyzw vf14, 1(vi13) | add.xyzw vf07, vf07, vf28 + sq.xyzw vf20, 2(vi13) | addx.w vf15, vf15, vf21 + lq.xyzw vf04, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibne vi08, vi12, L39 | nop + mtir vi12, vf05.w | maddax.xyzw ACC, vf01, vf07 + b L40 | nop + nop | nop +L36: + lqi.xyzw vf05, vi02 | madday.xyzw ACC, vf02, vf08 + lqi.xyz vf28, vi02 | maddz.xyzw vf10, vf12, vf08 + lqi.xyzw vf15, vi02 | mul.xyz vf17, vf17, Q + mtir vi13, vf16.w | mul.xyz vf09, vf09, Q + mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27 + mtir vi11, vf24.z | nop + sq.xyzw vf03, 1(vi12) | ftoi4.xyz vf19, vf09 + div Q, vf00.w, vf10.w | mulx.xyz vf05, vf05, vf27 + sq.xyzw vf16, 0(vi12) | addx.w vf18, vf18, vf21 + sq.xyzw vf20, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf16, 0(vi13) | maddz.xyzw vf14, vf14, vf27 + sq.xyzw vf03, 1(vi13) | add.xyzw vf05, vf05, vf28 + sq.xyzw vf20, 2(vi13) | nop + lq.xyzw vf11, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibeq vi08, vi12, L40 | nop + mtir vi12, vf07.w | maddax.xyzw ACC, vf01, vf05 +L37: + lqi.xyzw vf06, vi02 | madday.xyzw ACC, vf02, vf05 + lqi.xyz vf28, vi02 | maddz.xyzw vf09, vf12, vf05 + lqi.xyzw vf16, vi02 | mul.xyz vf18, vf18, Q + mtir vi13, vf17.w | mul.xyz vf10, vf10, Q + mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27 + mtir vi11, vf24.z | nop + sq.xyzw vf04, 1(vi12) | ftoi4.xyz vf20, vf10 + div Q, vf00.w, vf09.w | mulx.xyz vf06, vf06, vf27 + sq.xyzw vf17, 0(vi12) | addx.w vf15, vf15, vf21 + sq.xyzw vf19, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf17, 0(vi13) | maddz.xyzw vf11, vf11, vf27 + sq.xyzw vf04, 1(vi13) | add.xyzw vf06, vf06, vf28 + sq.xyzw vf19, 2(vi13) | nop + lq.xyzw vf03, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibeq vi08, vi12, L40 | nop + mtir vi12, vf08.w | maddax.xyzw ACC, vf01, vf06 +L38: + lqi.xyzw vf07, vi02 | madday.xyzw ACC, vf02, vf06 + lqi.xyz vf28, vi02 | maddz.xyzw vf10, vf12, vf06 + lqi.xyzw vf17, vi02 | mul.xyz vf15, vf15, Q + mtir vi13, vf18.w | mul.xyz vf09, vf09, Q + mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27 + mtir vi11, vf24.z | nop + sq.xyzw vf14, 1(vi12) | ftoi4.xyz vf19, vf09 + div Q, vf00.w, vf10.w | mulx.xyz vf07, vf07, vf27 + sq.xyzw vf18, 0(vi12) | addx.w vf16, vf16, vf21 + sq.xyzw vf20, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf18, 0(vi13) | maddz.xyzw vf03, vf03, vf27 + sq.xyzw vf14, 1(vi13) | add.xyzw vf07, vf07, vf28 + sq.xyzw vf20, 2(vi13) | nop + lq.xyzw vf04, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibeq vi08, vi12, L40 | nop + mtir vi12, vf05.w | maddax.xyzw ACC, vf01, vf07 +L39: + lqi.xyzw vf08, vi02 | madday.xyzw ACC, vf02, vf07 + lqi.xyz vf28, vi02 | maddz.xyzw vf09, vf12, vf07 + lqi.xyzw vf18, vi02 | mul.xyz vf16, vf16, Q + mtir vi13, vf15.w | mul.xyz vf10, vf10, Q + mtir vi09, vf24.x | mulay.xyzw ACC, vf29, vf27 + mtir vi10, vf24.y | maddy.xyzw vf29, vf30, vf27 + mtir vi11, vf24.z | nop + sq.xyzw vf11, 1(vi12) | ftoi4.xyz vf20, vf10 + div Q, vf00.w, vf09.w | mulx.xyz vf08, vf08, vf27 + sq.xyzw vf15, 0(vi12) | addx.w vf17, vf17, vf21 + sq.xyzw vf19, 2(vi12) | mulaw.xyzw ACC, vf29, vf27 + sq.xyzw vf15, 0(vi13) | maddz.xyzw vf04, vf04, vf27 + sq.xyzw vf11, 1(vi13) | add.xyzw vf08, vf08, vf28 + sq.xyzw vf19, 2(vi13) | nop + lq.xyzw vf14, 838(vi09) | nop + lq.xyzw vf29, 838(vi10) | mulaw.xyzw ACC, vf13, vf00 + lq.xyzw vf30, 838(vi11) | nop + lqi.xyzw vf24, vi03 | nop + ibne vi08, vi12, L36 | nop + mtir vi12, vf06.w | maddax.xyzw ACC, vf01, vf08 +L40: + ilw.x vi01, 971(vi00) | nop + ilw.y vi12, 971(vi00) | nop + lq.xyzw vf05, 972(vi00) | nop + lq.xyzw vf06, 973(vi00) | nop + lq.xyzw vf07, 974(vi00) | nop + sq.xyzw vf05, 976(vi00) | nop + ibne vi00, vi01, L41 | nop + sq.xyzw vf07, 977(vi00) | nop + sq.xyzw vf06, 977(vi00) | nop +L41: + iaddiu vi02, vi00, 0x3d0 | nop + isw.y vi01, 971(vi00) | nop + xgkick vi02 | nop + mtir vi01, vf21.x | nop + mtir vi12, vf23.w | nop + mr32.xyzw vf22, vf22 | nop + iaddiu vi02, vi00, 0x32 | nop + mfir.y vf23, vi00 | nop + xgkick vi01 | nop :e + mtir vi03, vf22.x | nop +L42: + mtir vi01, vf23.y | nop + mtir vi12, vf23.w | nop + mr32.xyzw vf22, vf22 | nop + iaddiu vi02, vi00, 0x32 | nop + iadd vi01, vi01, vi15 | nop + mfir.y vf23, vi12 | nop :e + mtir vi03, vf22.x | nop +L43: + nop | nop :e + nop | nop + lq. vf00, 0(vi00) | addx. vf00, vf00, vf00 diff --git a/test/decompiler/vu_reference/tie.txt b/test/decompiler/vu_reference/tie.txt new file mode 100644 index 0000000000..6edf4d7f38 --- /dev/null +++ b/test/decompiler/vu_reference/tie.txt @@ -0,0 +1,1988 @@ + .word 0x40000098 + .word 0x2ff + .word 0x81f5ab3d + .word 0x2ff + .word 0x400003d5 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400003da + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000007 + .word 0x2ff + .word 0x80020032 + .word 0x155bd44 + .word 0x80010072 + .word 0x2ff + .word 0x1f503c9 + .word 0x2ff + .word 0x15703c8 + .word 0x2ff + .word 0x1f603ca + .word 0x2ff + .word 0xb0003cb + .word 0x400002ff + .word 0xa8103cb + .word 0x2ff + .word 0x1c103c6 + .word 0x2ff + .word 0x802413fe + .word 0x2ff + .word 0x8291001 + .word 0x2ff + .word 0x8026abfc + .word 0x2ff + .word 0x81e2137c + .word 0x155ad45 + .word 0x81e3137c + .word 0x2ff + .word 0x81e4137c + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x8005abfc + .word 0x2ff + .word 0x81e6137c + .word 0x210847 + .word 0x800520f0 + .word 0x2ff + .word 0x80062130 + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x81e30b7d + .word 0x2ff + .word 0x81e3137d + .word 0x2ff + .word 0x81e31b7d + .word 0x2ff + .word 0x81e3237d + .word 0x2ff + .word 0x81e32b7d + .word 0x2ff + .word 0x81e3337d + .word 0x2ff + .word 0x81e40b7d + .word 0x2ff + .word 0x81e4137d + .word 0x2ff + .word 0x81e41b7d + .word 0x2ff + .word 0x81e4237d + .word 0x2ff + .word 0x81e42b7d + .word 0x2ff + .word 0x81e4337d + .word 0x2ff + .word 0x802413fe + .word 0x2ff + .word 0x81e2137c + .word 0x2ff + .word 0x81e3137c + .word 0x2ff + .word 0x81e4137c + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x5a004feb + .word 0x2ff + .word 0x81e6137c + .word 0x2ff + .word 0x806913fc + .word 0x2ff + .word 0x800217b2 + .word 0x2739c7 + .word 0x810713fe + .word 0x2ff + .word 0x808813fe + .word 0x2ff + .word 0x804413fe + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x80021072 + .word 0x2ff + .word 0x5000480e + .word 0x2ff + .word 0x1c743c7 + .word 0x2ff + .word 0x800520f0 + .word 0x2ff + .word 0x80062130 + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x3e33800 + .word 0x2ff + .word 0x81071bff + .word 0x2ff + .word 0x3e43800 + .word 0x2ff + .word 0x810723ff + .word 0x2ff + .word 0x810713fe + .word 0x2ff + .word 0x808813fe + .word 0x2ff + .word 0x804413fe + .word 0x2ff + .word 0x80021072 + .word 0x2ff + .word 0x52004ff4 + .word 0x2ff + .word 0x1c743c7 + .word 0x2ff + .word 0x11073800 + .word 0x2ff + .word 0x11073800 + .word 0x2ff + .word 0x800520f0 + .word 0x2ff + .word 0x80062130 + .word 0x2ff + .word 0x3e33800 + .word 0x2ff + .word 0x81071bff + .word 0x2ff + .word 0x3e43800 + .word 0x2ff + .word 0x810723ff + .word 0x2ff + .word 0x800623fc + .word 0x2ff + .word 0x1e50032 + .word 0x2ff + .word 0x1ef0033 + .word 0x2ff + .word 0x10050034 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x10063032 + .word 0x1e5293c + .word 0x81e62b7c + .word 0x1cf793e + .word 0x81f02b7c + .word 0x2f793c + .word 0x42800000 + .word 0x800002ff + .word 0x50062810 + .word 0x1c0295e + .word 0x802723fc + .word 0x1e6313c + .word 0x81e72b7c + .word 0x1d0813e + .word 0x81f12b7c + .word 0x30813c + .word 0x3e57ffb + .word 0x2ff + .word 0x5006280b + .word 0x1c0319e + .word 0x3e52ffa + .word 0x1e7393c + .word 0x81e52b7c + .word 0x1d1893e + .word 0x81ef2b7c + .word 0x31893c + .word 0x3e587fb + .word 0x2ff + .word 0x50062806 + .word 0x1c039de + .word 0x3e537fa + .word 0x1e5293c + .word 0x81e62b7c + .word 0x1cf793e + .word 0x81f02b7c + .word 0x2f793c + .word 0x3e58ffb + .word 0x2ff + .word 0x52062ff2 + .word 0x1c0295e + .word 0x3e53ffa + .word 0x1e6313c + .word 0x1e92ffc + .word 0x2ff + .word 0x1e52ffd + .word 0x2ff + .word 0x1ef2ffe + .word 0x2ff + .word 0x800539f0 + .word 0x2ff + .word 0x80073f32 + .word 0x2ff + .word 0x80052ff2 + .word 0x2ff + .word 0x80082f72 + .word 0x2ff + .word 0x5007281d + .word 0x2ff + .word 0x80000030 + .word 0x1e9493c + .word 0x81ea2b7c + .word 0x1e5293c + .word 0x81e62b7c + .word 0x2f793c + .word 0x81f02b7c + .word 0x1cf793e + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c04a5e + .word 0x50072816 + .word 0x1c0295e + .word 0x80000030 + .word 0x1ea513c + .word 0x81eb2b7c + .word 0x1e6313c + .word 0x81e72b7c + .word 0x30813c + .word 0x81f12b7c + .word 0x1d0813e + .word 0x81e84b7d + .word 0x2ff + .word 0x81e82b7d + .word 0x1c0529e + .word 0x5007280f + .word 0x1c0319e + .word 0x81e87b7d + .word 0x1eb593c + .word 0x81e92b7c + .word 0x1e7393c + .word 0x81e52b7c + .word 0x31893c + .word 0x81ef2b7c + .word 0x1d1893e + .word 0x81e8537d + .word 0x2ff + .word 0x81e8337d + .word 0x1c05ade + .word 0x50072808 + .word 0x1c039de + .word 0x81e8837d + .word 0x1e9493c + .word 0x81ea2b7c + .word 0x1e5293c + .word 0x81e62b7c + .word 0x2f793c + .word 0x81f02b7c + .word 0x1cf793e + .word 0x81e85b7d + .word 0x2ff + .word 0x81e83b7d + .word 0x1c04a5e + .word 0x52072fec + .word 0x1c0295e + .word 0x81e88b7d + .word 0x1ea513c + .word 0x804123fc + .word 0x2ff + .word 0x800513fc + .word 0x2ff + .word 0x802e13fc + .word 0x2ff + .word 0x80041bfc + .word 0x2ff + .word 0x80261bfc + .word 0x2ff + .word 0x80471bfc + .word 0x2ff + .word 0x80681bfc + .word 0x2ff + .word 0xb0103cb + .word 0x2ff + .word 0x800f0032 + .word 0x2ff + .word 0x8003b3fc + .word 0x2ff + .word 0x10020032 + .word 0x2ff + .word 0x81f5ab3d + .word 0x2ff + .word 0x809703fd + .word 0x400002ff + .word 0x803703fd + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x1f81806 + .word 0x2ff + .word 0x1ed1803 + .word 0x2ff + .word 0x1e11800 + .word 0x2ff + .word 0x1e21801 + .word 0x2ff + .word 0x1ec1802 + .word 0x2ff + .word 0x8009c3fc + .word 0x2ff + .word 0x81ef137c + .word 0x1e069bf + .word 0x1fb1804 + .word 0x1e508bc + .word 0x9011805 + .word 0x1e510bd + .word 0x1eb4b46 + .word 0x1e5624a + .word 0x81e6137c + .word 0x2ff + .word 0x1f31805 + .word 0x2ff + .word 0x800319f2 + .word 0x2ff + .word 0x8029c3fc + .word 0x209d00 + .word 0x81e903bc + .word 0x1e069bf + .word 0x81f0137c + .word 0x1e608bc + .word 0x8001abfc + .word 0x1e610bd + .word 0x1e34b46 + .word 0x1e6628a + .word 0x800f0871 + .word 0x33997d + .word 0x80012130 + .word 0x34a17d + .word 0x800131b0 + .word 0x2ff + .word 0x81e7137c + .word 0x1c04a5c + .word 0x81ea03bc + .word 0x1c07bdc + .word 0x8049c3fc + .word 0x352940 + .word 0x81f1137c + .word 0x1e069bf + .word 0x800139f0 + .word 0x1e708bc + .word 0x80014230 + .word 0x1e710bd + .word 0x1e44b46 + .word 0x1d3497d + .word 0x5004630e + .word 0x1e7624a + .word 0x80017bf0 + .word 0x2ff + .word 0x806c2bfc + .word 0x2ff + .word 0x81e8137c + .word 0x1c0529c + .word 0x81e903bc + .word 0x1c0841c + .word 0x8069c3fc + .word 0x353180 + .word 0x81f2137c + .word 0x1e069bf + .word 0x3ec7800 + .word 0x1e808bc + .word 0x3ec5801 + .word 0x1e810bd + .word 0x1ee4b46 + .word 0x1d4517d + .word 0x50046071 + .word 0x1e8628a + .word 0x3ec9802 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x806c33fc + .word 0x2ff + .word 0x81e5137c + .word 0x1c04a5c + .word 0x81ea03bc + .word 0x1c08c5c + .word 0x8009c3fc + .word 0x3539c0 + .word 0x81ef137c + .word 0x1e069bf + .word 0x3ec8000 + .word 0x1e508bc + .word 0x3ec1801 + .word 0x1e510bd + .word 0x1eb4b46 + .word 0x1d3497d + .word 0x5004604c + .word 0x1e5624a + .word 0x3eca002 + .word 0x2ff + .word 0x806c3bfc + .word 0x2ff + .word 0x81e6137c + .word 0x1c0529c + .word 0x81e903bc + .word 0x1c0949c + .word 0x8029c3fc + .word 0x354200 + .word 0x81f0137c + .word 0x1e069bf + .word 0x3ec8800 + .word 0x1e608bc + .word 0x3ec2001 + .word 0x1e610bd + .word 0x1e34b46 + .word 0x1d4517d + .word 0x50046027 + .word 0x1e6628a + .word 0x3ec9802 + .word 0x2ff + .word 0x806c43fc + .word 0x2ff + .word 0x81e7137c + .word 0x1c04a5c + .word 0x81ea03bc + .word 0x1c07bdc + .word 0x8049c3fc + .word 0x352940 + .word 0x81f1137c + .word 0x1e069bf + .word 0x3ec9000 + .word 0x1e708bc + .word 0x3ec7001 + .word 0x1e710bd + .word 0x1e44b46 + .word 0x1d3497d + .word 0x520467d8 + .word 0x1e7624a + .word 0x3eca002 + .word 0x2ff + .word 0x806c2bfc + .word 0x2ff + .word 0x5200292c + .word 0x1c0529c + .word 0x81e8137c + .word 0x1c0841c + .word 0x81e903bc + .word 0x353180 + .word 0x8069c3fc + .word 0x1e069bf + .word 0x81f81b7c + .word 0x2ff + .word 0x3ec7800 + .word 0x3539c0 + .word 0x3ec5801 + .word 0x1e808bc + .word 0x81f2137c + .word 0x1e810bd + .word 0x1ee4b46 + .word 0x1d4517d + .word 0x81e5137c + .word 0x1e8628a + .word 0x3ec9802 + .word 0x1c04a5c + .word 0x806c33fc + .word 0x1c08c5c + .word 0x81ef137c + .word 0x1e069bf + .word 0x8009c3fc + .word 0x1e508bc + .word 0x80000030 + .word 0x1e510bd + .word 0x81ea03bc + .word 0x1d3497d + .word 0x3ec8000 + .word 0x1e5624a + .word 0x3ec1801 + .word 0x2ff + .word 0x3eca002 + .word 0x2ff + .word 0x806c3bfc + .word 0x2ff + .word 0x1eb4b46 + .word 0x354200 + .word 0x81e903bc + .word 0x1c0529c + .word 0x3ec8800 + .word 0x1c0949c + .word 0x3ec2001 + .word 0x359480 + .word 0x3ec9802 + .word 0x2ff + .word 0x40000051 + .word 0x1d4517d + .word 0x806c43fc + .word 0x2ff + .word 0x806c43fc + .word 0x2ff + .word 0x520028fd + .word 0x1c04a5c + .word 0x81e7137c + .word 0x1c07bdc + .word 0x81ea03bc + .word 0x352940 + .word 0x8049c3fc + .word 0x1e069bf + .word 0x3ec9000 + .word 0x2ff + .word 0x3ec7001 + .word 0x1e708bc + .word 0x81f1137c + .word 0x1e710bd + .word 0x1e44b46 + .word 0x1d3497d + .word 0x81e8137c + .word 0x1e7624a + .word 0x3eca002 + .word 0x1c0529c + .word 0x806c2bfc + .word 0x1c0841c + .word 0x81f2137c + .word 0x1e069bf + .word 0x81e903bc + .word 0x1e808bc + .word 0x8069c3fc + .word 0x353180 + .word 0x81f81b7c + .word 0x2ff + .word 0x3ec7800 + .word 0x1e810bd + .word 0x3ec5801 + .word 0x1d4517d + .word 0x3ec9802 + .word 0x1e8628a + .word 0x806c33fc + .word 0x2ff + .word 0x1ee4b46 + .word 0x3539c0 + .word 0x81ea03bc + .word 0x1c04a5c + .word 0x3ec8000 + .word 0x1c08c5c + .word 0x3ec1801 + .word 0x358c40 + .word 0x3eca002 + .word 0x2ff + .word 0x40000061 + .word 0x1d3497d + .word 0x806c3bfc + .word 0x2ff + .word 0x806c3bfc + .word 0x2ff + .word 0x520028cf + .word 0x1c0529c + .word 0x81e6137c + .word 0x1c0949c + .word 0x81e903bc + .word 0x354200 + .word 0x8029c3fc + .word 0x1e069bf + .word 0x3ec8800 + .word 0x2ff + .word 0x3ec2001 + .word 0x1e608bc + .word 0x81f0137c + .word 0x1e610bd + .word 0x1e34b46 + .word 0x1d4517d + .word 0x81e7137c + .word 0x1e6628a + .word 0x3ec9802 + .word 0x1c04a5c + .word 0x806c43fc + .word 0x1c07bdc + .word 0x81f1137c + .word 0x1e069bf + .word 0x81ea03bc + .word 0x1e708bc + .word 0x8049c3fc + .word 0x352940 + .word 0x3ec9000 + .word 0x1e710bd + .word 0x3ec7001 + .word 0x1d3497d + .word 0x3eca002 + .word 0x1e7624a + .word 0x806c2bfc + .word 0x2ff + .word 0x1e44b46 + .word 0x353180 + .word 0x3ec7800 + .word 0x1c0529c + .word 0x81e903bc + .word 0x1c0841c + .word 0x3ec5801 + .word 0x358400 + .word 0x3ec9802 + .word 0x2ff + .word 0x40000038 + .word 0x1d4517d + .word 0x806c33fc + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x806c33fc + .word 0x2ff + .word 0x520028a1 + .word 0x1c04a5c + .word 0x81e5137c + .word 0x1c08c5c + .word 0x81ea03bc + .word 0x3539c0 + .word 0x8009c3fc + .word 0x1e069bf + .word 0x3ec8000 + .word 0x1e508bc + .word 0x3ec1801 + .word 0x1e510bd + .word 0x81ef137c + .word 0x1d3497d + .word 0x1eb4b46 + .word 0x1e5624a + .word 0x81e6137c + .word 0x354200 + .word 0x3eca002 + .word 0x1c0529c + .word 0x806c3bfc + .word 0x1c0949c + .word 0x81e903bc + .word 0x1e069bf + .word 0x8029c3fc + .word 0x1e608bc + .word 0x81f0137c + .word 0x1e610bd + .word 0x3ec8800 + .word 0x1d4517d + .word 0x3ec2001 + .word 0x1e6628a + .word 0x3ec9802 + .word 0x2ff + .word 0x806c43fc + .word 0x2ff + .word 0x1e34b46 + .word 0x352940 + .word 0x81ea03bc + .word 0x1c04a5c + .word 0x3ec9000 + .word 0x1c07bdc + .word 0x3ec7001 + .word 0x357bc0 + .word 0x3eca002 + .word 0x2ff + .word 0x4000000f + .word 0x1d3497d + .word 0x806c2bfc + .word 0x2ff + .word 0x81e6137c + .word 0x2ff + .word 0x8029c3fc + .word 0x2ff + .word 0x806d93fc + .word 0x1e069bf + .word 0x3ec9000 + .word 0x352940 + .word 0x3ec7001 + .word 0x1e608bc + .word 0x3eca002 + .word 0x1e610bd + .word 0x81f0137c + .word 0x1e6628a + .word 0x1e34b46 + .word 0x1c04a5c + .word 0x3ed9000 + .word 0x1c07bdc + .word 0x3ed7001 + .word 0x357bc0 + .word 0x3eda002 + .word 0x2ff + .word 0x81ea03bc + .word 0x2ff + .word 0x50066040 + .word 0x1d3497d + .word 0x806c2bfc + .word 0x2ff + .word 0x81e7137c + .word 0x2ff + .word 0x8049c3fc + .word 0x2ff + .word 0x806d7bfc + .word 0x1e069bf + .word 0x3ec7800 + .word 0x353180 + .word 0x3ec5801 + .word 0x1e708bc + .word 0x3ec9802 + .word 0x1e710bd + .word 0x81f1137c + .word 0x1e7624a + .word 0x1e44b46 + .word 0x1c0529c + .word 0x3ed7800 + .word 0x1c0841c + .word 0x3ed5801 + .word 0x358400 + .word 0x3ed9802 + .word 0x2ff + .word 0x81e903bc + .word 0x2ff + .word 0x50066046 + .word 0x1d4517d + .word 0x806c33fc + .word 0x2ff + .word 0x81e8137c + .word 0x2ff + .word 0x8069c3fc + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x806d83fc + .word 0x1e069bf + .word 0x3ec8000 + .word 0x3539c0 + .word 0x3ec1801 + .word 0x1e808bc + .word 0x3eca002 + .word 0x1e810bd + .word 0x81f2137c + .word 0x1e8628a + .word 0x1ee4b46 + .word 0x1c04a5c + .word 0x3ed8000 + .word 0x1c08c5c + .word 0x3ed1801 + .word 0x358c40 + .word 0x3eda002 + .word 0x2ff + .word 0x81ea03bc + .word 0x2ff + .word 0x5006604b + .word 0x1d3497d + .word 0x806c3bfc + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x8009c3fc + .word 0x2ff + .word 0x806d8bfc + .word 0x1e069bf + .word 0x3ec8800 + .word 0x354200 + .word 0x3ec2001 + .word 0x1e508bc + .word 0x3ec9802 + .word 0x1e510bd + .word 0x81ef137c + .word 0x1e5624a + .word 0x1eb4b46 + .word 0x1c0529c + .word 0x3ed8800 + .word 0x1c0949c + .word 0x3ed2001 + .word 0x359480 + .word 0x3ed9802 + .word 0x2ff + .word 0x81e903bc + .word 0x2ff + .word 0x520667c8 + .word 0x1d4517d + .word 0x806c43fc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806d93fc + .word 0x2ff + .word 0x3ec9000 + .word 0x352940 + .word 0x3ec7001 + .word 0x357bc0 + .word 0x3eca002 + .word 0x1c04a5c + .word 0x3ed9000 + .word 0x1c07bdc + .word 0x3ed7001 + .word 0x2ff + .word 0x3eda002 + .word 0x2ff + .word 0x806c2bfc + .word 0x1d3497d + .word 0x806d7bfc + .word 0x2ff + .word 0x3ec7800 + .word 0x2ff + .word 0x3ec5801 + .word 0x2ff + .word 0x3ec9802 + .word 0x2ff + .word 0x3ed7800 + .word 0x2ff + .word 0x3ed5801 + .word 0x2ff + .word 0x500070b8 + .word 0x2ff + .word 0x3ed9802 + .word 0x2ff + .word 0x4000022c + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806d7bfc + .word 0x2ff + .word 0x3ec7800 + .word 0x353180 + .word 0x3ec5801 + .word 0x358400 + .word 0x3ec9802 + .word 0x1c0529c + .word 0x3ed7800 + .word 0x1c0841c + .word 0x3ed5801 + .word 0x2ff + .word 0x3ed9802 + .word 0x2ff + .word 0x806c33fc + .word 0x1d4517d + .word 0x806d83fc + .word 0x2ff + .word 0x3ec8000 + .word 0x2ff + .word 0x3ec1801 + .word 0x2ff + .word 0x3eca002 + .word 0x2ff + .word 0x3ed8000 + .word 0x2ff + .word 0x3ed1801 + .word 0x2ff + .word 0x500070d2 + .word 0x2ff + .word 0x3eda002 + .word 0x2ff + .word 0x40000218 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806d83fc + .word 0x2ff + .word 0x3ec8000 + .word 0x3539c0 + .word 0x3ec1801 + .word 0x358c40 + .word 0x3eca002 + .word 0x1c04a5c + .word 0x3ed8000 + .word 0x1c08c5c + .word 0x3ed1801 + .word 0x2ff + .word 0x3eda002 + .word 0x2ff + .word 0x806c3bfc + .word 0x1d3497d + .word 0x806d8bfc + .word 0x2ff + .word 0x3ec8800 + .word 0x2ff + .word 0x3ec2001 + .word 0x2ff + .word 0x3ec9802 + .word 0x2ff + .word 0x3ed8800 + .word 0x2ff + .word 0x3ed2001 + .word 0x2ff + .word 0x500070ec + .word 0x2ff + .word 0x3ed9802 + .word 0x2ff + .word 0x40000204 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806d8bfc + .word 0x2ff + .word 0x3ec8800 + .word 0x354200 + .word 0x3ec2001 + .word 0x359480 + .word 0x3ec9802 + .word 0x1c0529c + .word 0x3ed8800 + .word 0x1c0949c + .word 0x3ed2001 + .word 0x2ff + .word 0x3ed9802 + .word 0x2ff + .word 0x806c43fc + .word 0x1d4517d + .word 0x806d93fc + .word 0x2ff + .word 0x3ec9000 + .word 0x2ff + .word 0x3ec7001 + .word 0x2ff + .word 0x3eca002 + .word 0x2ff + .word 0x3ed9000 + .word 0x2ff + .word 0x3ed7001 + .word 0x2ff + .word 0x5000704f + .word 0x2ff + .word 0x3eda002 + .word 0x2ff + .word 0x400001f0 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81ea03bc + .word 0x3539c0 + .word 0x3ec8000 + .word 0x354200 + .word 0x3ec1801 + .word 0x2ff + .word 0x3eca002 + .word 0x2ff + .word 0x800217f2 + .word 0x1d3497d + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c0529c + .word 0x806c3bfc + .word 0x1c0949c + .word 0x806d43fc + .word 0x2ff + .word 0x3ec8800 + .word 0x2ff + .word 0x3ec2001 + .word 0x2ff + .word 0x3ec9802 + .word 0x1d4517d + .word 0x3ed9000 + .word 0x2ff + .word 0x3ed7001 + .word 0x2ff + .word 0x5000703c + .word 0x2ff + .word 0x3eda002 + .word 0x2ff + .word 0x400001dd + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e903bc + .word 0x354200 + .word 0x3ec8800 + .word 0x352940 + .word 0x3ec2001 + .word 0x2ff + .word 0x3ec9802 + .word 0x2ff + .word 0x800217f2 + .word 0x1d4517d + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c04a5c + .word 0x806c43fc + .word 0x1c07bdc + .word 0x806d2bfc + .word 0x2ff + .word 0x3ec9000 + .word 0x2ff + .word 0x3ec7001 + .word 0x2ff + .word 0x3eca002 + .word 0x1d3497d + .word 0x3ed7800 + .word 0x2ff + .word 0x3ed5801 + .word 0x2ff + .word 0x50007056 + .word 0x2ff + .word 0x3ed9802 + .word 0x2ff + .word 0x400001ca + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81ea03bc + .word 0x352940 + .word 0x3ec9000 + .word 0x353180 + .word 0x3ec7001 + .word 0x2ff + .word 0x3eca002 + .word 0x2ff + .word 0x800217f2 + .word 0x1d3497d + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c0529c + .word 0x806c2bfc + .word 0x1c0841c + .word 0x806d33fc + .word 0x2ff + .word 0x3ec7800 + .word 0x2ff + .word 0x3ec5801 + .word 0x2ff + .word 0x3ec9802 + .word 0x1d4517d + .word 0x3ed8000 + .word 0x2ff + .word 0x3ed1801 + .word 0x2ff + .word 0x50007071 + .word 0x2ff + .word 0x3eda002 + .word 0x2ff + .word 0x400001b7 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e903bc + .word 0x353180 + .word 0x3ec7800 + .word 0x3539c0 + .word 0x3ec5801 + .word 0x2ff + .word 0x3ec9802 + .word 0x2ff + .word 0x800217f2 + .word 0x1d4517d + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1c04a5c + .word 0x806c33fc + .word 0x1c08c5c + .word 0x806d3bfc + .word 0x2ff + .word 0x3ec8000 + .word 0x2ff + .word 0x3ec1801 + .word 0x2ff + .word 0x3eca002 + .word 0x1d3497d + .word 0x3ed8800 + .word 0x2ff + .word 0x3ed2001 + .word 0x2ff + .word 0x5000708c + .word 0x2ff + .word 0x3ed9802 + .word 0x2ff + .word 0x400001a4 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e5137c + .word 0x2ff + .word 0x3f000000 + .word 0x80200707 + .word 0x81dc137c + .word 0x8006e2 + .word 0x81ef137c + .word 0x2ff + .word 0x8009c3fc + .word 0x2ff + .word 0x802ac3fc + .word 0x35e700 + .word 0x804bc3fc + .word 0x1db2958 + .word 0x80000030 + .word 0x2ff + .word 0x1eb4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc2968 + .word 0x1fe5b46 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e6137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e508bc + .word 0x81f0137c + .word 0x1e510bd + .word 0x80000030 + .word 0x1e5624a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb5aca + .word 0x804bc3fc + .word 0x1db3198 + .word 0x80000030 + .word 0x2ff + .word 0x1e34b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc31a8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81e903bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e7137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e608bc + .word 0x81f1137c + .word 0x1e610bd + .word 0x80000030 + .word 0x1e6628a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1db39d8 + .word 0x804bc3fc + .word 0x1fb18ca + .word 0x80000030 + .word 0x1c04cdc + .word 0x1e44b46 + .word 0x1c07bdc + .word 0x1fd5346 + .word 0x1fc39e8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ea03bc + .word 0x1d3997d + .word 0x80000030 + .word 0x2ff + .word 0x4000008b + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e6137c + .word 0x2ff + .word 0x81f81b7c + .word 0x200707 + .word 0x3f000000 + .word 0x800002ff + .word 0x81dc137c + .word 0x8006e2 + .word 0x81f0137c + .word 0x2ff + .word 0x8009c3fc + .word 0x35e700 + .word 0x802ac3fc + .word 0x2ff + .word 0x804bc3fc + .word 0x1db3198 + .word 0x80000030 + .word 0x2ff + .word 0x1e34b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc31a8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e7137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e608bc + .word 0x81f1137c + .word 0x1e610bd + .word 0x80000030 + .word 0x1e6628a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb18ca + .word 0x804bc3fc + .word 0x1db39d8 + .word 0x80000030 + .word 0x2ff + .word 0x1e44b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc39e8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ea03bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e8137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e708bc + .word 0x81f2137c + .word 0x1e710bd + .word 0x80000030 + .word 0x1e7624a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1db4218 + .word 0x804bc3fc + .word 0x1fb210a + .word 0x80000030 + .word 0x1c0551c + .word 0x1ee4b46 + .word 0x1c0841c + .word 0x1fd5346 + .word 0x1fc4228 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81e903bc + .word 0x1d4a17d + .word 0x80000030 + .word 0x2ff + .word 0x4000006d + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e7137c + .word 0x2ff + .word 0x81f81b7c + .word 0x200707 + .word 0x3f000000 + .word 0x800002ff + .word 0x81dc137c + .word 0x8006e2 + .word 0x81f1137c + .word 0x2ff + .word 0x8009c3fc + .word 0x35e700 + .word 0x802ac3fc + .word 0x2ff + .word 0x804bc3fc + .word 0x1db39d8 + .word 0x80000030 + .word 0x2ff + .word 0x1e44b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc39e8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e8137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e708bc + .word 0x81f2137c + .word 0x1e710bd + .word 0x80000030 + .word 0x1e7624a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb210a + .word 0x804bc3fc + .word 0x1db4218 + .word 0x80000030 + .word 0x2ff + .word 0x1ee4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc4228 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81e903bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e5137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e808bc + .word 0x81ef137c + .word 0x1e810bd + .word 0x80000030 + .word 0x1e8628a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1db2958 + .word 0x804bc3fc + .word 0x1fb738a + .word 0x80000030 + .word 0x1c04cdc + .word 0x1eb4b46 + .word 0x1c08c5c + .word 0x1fd5346 + .word 0x1fc2968 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ea03bc + .word 0x1d3997d + .word 0x80000030 + .word 0x2ff + .word 0x4000004f + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e8137c + .word 0x2ff + .word 0x81f81b7c + .word 0x200707 + .word 0x3f000000 + .word 0x800002ff + .word 0x81dc137c + .word 0x8006e2 + .word 0x81f2137c + .word 0x2ff + .word 0x8009c3fc + .word 0x35e700 + .word 0x802ac3fc + .word 0x2ff + .word 0x804bc3fc + .word 0x1db4218 + .word 0x80000030 + .word 0x2ff + .word 0x1ee4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc4228 + .word 0x1fe5b46 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e5137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e808bc + .word 0x81ef137c + .word 0x1e810bd + .word 0x80000030 + .word 0x1e8628a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb738a + .word 0x804bc3fc + .word 0x1db2958 + .word 0x80000030 + .word 0x2ff + .word 0x1eb4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1fc2968 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ea03bc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e6137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e508bc + .word 0x81f0137c + .word 0x1e510bd + .word 0x80000030 + .word 0x1e5624a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1db3198 + .word 0x804bc3fc + .word 0x1fb5aca + .word 0x80000030 + .word 0x1c0551c + .word 0x1e34b46 + .word 0x1c0949c + .word 0x1fd5346 + .word 0x1fc31a8 + .word 0x1fe5b46 + .word 0x2ff + .word 0x81e903bc + .word 0x1d4a17d + .word 0x80000030 + .word 0x2ff + .word 0x40000031 + .word 0x1fbe9bd + .word 0x81f81b7c + .word 0x1fbf749 + .word 0x81e8137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e708bc + .word 0x81f2137c + .word 0x1e710bd + .word 0x806c2bfc + .word 0x1e7624a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb210a + .word 0x804bc3fc + .word 0x1db4218 + .word 0x3ec7800 + .word 0x1c0551c + .word 0x1ee4b46 + .word 0x1c0841c + .word 0x1fd5346 + .word 0x2ff + .word 0x1fe5b46 + .word 0x2ff + .word 0x81e903bc + .word 0x1d4a17d + .word 0x3ec5801 + .word 0x1fc4228 + .word 0x81f81b7c + .word 0x1fbe9bd + .word 0x50076048 + .word 0x2ff + .word 0x3ec9802 + .word 0x1fbf749 + .word 0x81e5137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e808bc + .word 0x81ef137c + .word 0x1e810bd + .word 0x806c33fc + .word 0x1e8628a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb738a + .word 0x804bc3fc + .word 0x1db2958 + .word 0x3ec8000 + .word 0x1c04cdc + .word 0x1eb4b46 + .word 0x1c08c5c + .word 0x1fd5346 + .word 0x2ff + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ea03bc + .word 0x1d3997d + .word 0x3ec1801 + .word 0x1fc2968 + .word 0x81f81b7c + .word 0x1fbe9bd + .word 0x5007604f + .word 0x2ff + .word 0x3eca002 + .word 0x1fbf749 + .word 0x81e6137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e508bc + .word 0x81f0137c + .word 0x1e510bd + .word 0x806c3bfc + .word 0x1e5624a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb5aca + .word 0x804bc3fc + .word 0x1db3198 + .word 0x3ec8800 + .word 0x1c0551c + .word 0x1e34b46 + .word 0x1c0949c + .word 0x1fd5346 + .word 0x2ff + .word 0x1fe5b46 + .word 0x2ff + .word 0x81e903bc + .word 0x1d4a17d + .word 0x3ec2001 + .word 0x1fc31a8 + .word 0x81f81b7c + .word 0x1fbe9bd + .word 0x50076056 + .word 0x2ff + .word 0x3ec9802 + .word 0x1fbf749 + .word 0x81e7137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e608bc + .word 0x81f1137c + .word 0x1e610bd + .word 0x806c43fc + .word 0x1e6628a + .word 0x8009c3fc + .word 0x1fbe9bf + .word 0x802ac3fc + .word 0x1fb18ca + .word 0x804bc3fc + .word 0x1c04cdc + .word 0x3ec9000 + .word 0x1c07bdc + .word 0x1e44b46 + .word 0x1db39d8 + .word 0x1fd5346 + .word 0x2ff + .word 0x1fe5b46 + .word 0x2ff + .word 0x81ea03bc + .word 0x1d3997d + .word 0x3ec7001 + .word 0x1fc39e8 + .word 0x81f81b7c + .word 0x1fbe9bd + .word 0x520767c1 + .word 0x2ff + .word 0x3eca002 + .word 0x1fbf749 + .word 0x806c2bfc + .word 0x357bc0 + .word 0x81e8137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e708bc + .word 0x81f2137c + .word 0x1e710bd + .word 0x806d7bfc + .word 0x1e7624a + .word 0x8009c3fc + .word 0x1c0841c + .word 0x802ac3fc + .word 0x1c0529c + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec5801 + .word 0x358c40 + .word 0x81e903bc + .word 0x1db4218 + .word 0x3ec7800 + .word 0x1d4517d + .word 0x3ec9802 + .word 0x1fbe9bf + .word 0x3ed7800 + .word 0x1fb210a + .word 0x3ed5801 + .word 0x1fc4228 + .word 0x3ed9802 + .word 0x358400 + .word 0x1ee4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e069bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x52086048 + .word 0x2ff + .word 0x806c33fc + .word 0x1e808bc + .word 0x40000096 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806c33fc + .word 0x358400 + .word 0x81e5137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e808bc + .word 0x81ef137c + .word 0x1e810bd + .word 0x806d83fc + .word 0x1e8628a + .word 0x8009c3fc + .word 0x1c08c5c + .word 0x802ac3fc + .word 0x1c04a5c + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec1801 + .word 0x359480 + .word 0x81ea03bc + .word 0x1db2958 + .word 0x3ec8000 + .word 0x1d3497d + .word 0x3eca002 + .word 0x1fbe9bf + .word 0x3ed8000 + .word 0x1fb738a + .word 0x3ed1801 + .word 0x1fc2968 + .word 0x3eda002 + .word 0x358c40 + .word 0x1eb4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e069bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x52086045 + .word 0x2ff + .word 0x806c3bfc + .word 0x1e508bc + .word 0x4000007f + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806c3bfc + .word 0x358c40 + .word 0x81e6137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e508bc + .word 0x81f0137c + .word 0x1e510bd + .word 0x806d8bfc + .word 0x1e5624a + .word 0x8009c3fc + .word 0x1c0949c + .word 0x802ac3fc + .word 0x1c0529c + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec2001 + .word 0x357bc0 + .word 0x81e903bc + .word 0x1db3198 + .word 0x3ec8800 + .word 0x1d4517d + .word 0x3ec9802 + .word 0x1fbe9bf + .word 0x3ed8800 + .word 0x1fb5aca + .word 0x3ed2001 + .word 0x1fc31a8 + .word 0x3ed9802 + .word 0x359480 + .word 0x1e34b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e069bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x52086042 + .word 0x2ff + .word 0x806c43fc + .word 0x1e608bc + .word 0x40000068 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x806c43fc + .word 0x359480 + .word 0x81e7137c + .word 0x1e069bf + .word 0x81dc137c + .word 0x1e608bc + .word 0x81f1137c + .word 0x1e610bd + .word 0x806d93fc + .word 0x1e6628a + .word 0x8009c3fc + .word 0x1c07bdc + .word 0x802ac3fc + .word 0x1c04a5c + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec7001 + .word 0x358400 + .word 0x81ea03bc + .word 0x1db39d8 + .word 0x3ec9000 + .word 0x1d3497d + .word 0x3eca002 + .word 0x1fbe9bf + .word 0x3ed9000 + .word 0x1fb18ca + .word 0x3ed7001 + .word 0x1fc39e8 + .word 0x3eda002 + .word 0x357bc0 + .word 0x1e44b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e069bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x5208603f + .word 0x2ff + .word 0x806c2bfc + .word 0x1e708bc + .word 0x40000051 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81e5137c + .word 0x1e810bd + .word 0x81dc137c + .word 0x1e8628a + .word 0x81ef137c + .word 0x1c08c5c + .word 0x806d83fc + .word 0x1c04a5c + .word 0x8009c3fc + .word 0x1fbe9bd + .word 0x802ac3fc + .word 0x1fbf749 + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec1801 + .word 0x1d3497d + .word 0x81ea03bc + .word 0x1db2958 + .word 0x3ec8000 + .word 0x359480 + .word 0x3eca002 + .word 0x1fbe9bf + .word 0x3ed8000 + .word 0x1fb738a + .word 0x3ed1801 + .word 0x1fc2968 + .word 0x3eda002 + .word 0x2ff + .word 0x1eb4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e069bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x5008603d + .word 0x2ff + .word 0x806c3bfc + .word 0x1e508bc + .word 0x81e6137c + .word 0x1e510bd + .word 0x81dc137c + .word 0x1e5624a + .word 0x81f0137c + .word 0x1c0949c + .word 0x806d8bfc + .word 0x1c0529c + .word 0x8009c3fc + .word 0x1fbe9bd + .word 0x802ac3fc + .word 0x1fbf749 + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec2001 + .word 0x1d4517d + .word 0x81e903bc + .word 0x1db3198 + .word 0x3ec8800 + .word 0x357bc0 + .word 0x3ec9802 + .word 0x1fbe9bf + .word 0x3ed8800 + .word 0x1fb5aca + .word 0x3ed2001 + .word 0x1fc31a8 + .word 0x3ed9802 + .word 0x2ff + .word 0x1e34b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e069bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x50086029 + .word 0x2ff + .word 0x806c43fc + .word 0x1e608bc + .word 0x81e7137c + .word 0x1e610bd + .word 0x81dc137c + .word 0x1e6628a + .word 0x81f1137c + .word 0x1c07bdc + .word 0x806d93fc + .word 0x1c04a5c + .word 0x8009c3fc + .word 0x1fbe9bd + .word 0x802ac3fc + .word 0x1fbf749 + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec7001 + .word 0x1d3497d + .word 0x81ea03bc + .word 0x1db39d8 + .word 0x3ec9000 + .word 0x358400 + .word 0x3eca002 + .word 0x1fbe9bf + .word 0x3ed9000 + .word 0x1fb18ca + .word 0x3ed7001 + .word 0x1fc39e8 + .word 0x3eda002 + .word 0x2ff + .word 0x1e44b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e069bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x50086015 + .word 0x2ff + .word 0x806c2bfc + .word 0x1e708bc + .word 0x81e8137c + .word 0x1e710bd + .word 0x81dc137c + .word 0x1e7624a + .word 0x81f2137c + .word 0x1c0841c + .word 0x806d7bfc + .word 0x1c0529c + .word 0x8009c3fc + .word 0x1fbe9bd + .word 0x802ac3fc + .word 0x1fbf749 + .word 0x804bc3fc + .word 0x2ff + .word 0x3ec5801 + .word 0x1d4517d + .word 0x81e903bc + .word 0x1db4218 + .word 0x3ec7800 + .word 0x358c40 + .word 0x3ec9802 + .word 0x1fbe9bf + .word 0x3ed7800 + .word 0x1fb210a + .word 0x3ed5801 + .word 0x1fc4228 + .word 0x3ed9802 + .word 0x2ff + .word 0x1ee4b46 + .word 0x2ff + .word 0x1fd5346 + .word 0x1e069bf + .word 0x1fe5b46 + .word 0x2ff + .word 0x81f81b7c + .word 0x2ff + .word 0x520867b1 + .word 0x2ff + .word 0x806c33fc + .word 0x1e808bc + .word 0x90103cb + .word 0x2ff + .word 0x88c03cb + .word 0x2ff + .word 0x1e503cc + .word 0x2ff + .word 0x1e603cd + .word 0x2ff + .word 0x1e703ce + .word 0x2ff + .word 0x3e02bd0 + .word 0x2ff + .word 0x52000802 + .word 0x2ff + .word 0x3e03bd1 + .word 0x2ff + .word 0x3e033d1 + .word 0x2ff + .word 0x100203d0 + .word 0x2ff + .word 0xa8103cb + .word 0x2ff + .word 0x800016fc + .word 0x2ff + .word 0x8001abfc + .word 0x2ff + .word 0x806cbbfc + .word 0x2ff + .word 0x81f6b33d + .word 0x2ff + .word 0x10020032 + .word 0x2ff + .word 0x809703fd + .word 0x2ff + .word 0x80000efc + .word 0x400002ff + .word 0x8003b3fc + .word 0x2ff + .word 0x8021bbfc + .word 0x2ff + .word 0x806cbbfc + .word 0x2ff + .word 0x81f6b33d + .word 0x2ff + .word 0x10020032 + .word 0x2ff + .word 0x800f0870 + .word 0x2ff + .word 0x809763fd + .word 0x400002ff + .word 0x8003b3fc + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x0 + .word 0x0 \ No newline at end of file diff --git a/test/decompiler/vu_reference/tnear-result.txt b/test/decompiler/vu_reference/tnear-result.txt new file mode 100644 index 0000000000..9db20f5cd2 --- /dev/null +++ b/test/decompiler/vu_reference/tnear-result.txt @@ -0,0 +1,957 @@ + b L2 | nop + nop | nop + b L8 | nop + xtop vi14 | nop + b L1 | nop + xtop vi14 | nop +L1: + lq.xyzw vf04, 664(vi00) | nop :e + nop | nop +L2: + iaddiu vi14, vi00, 0x2a0 | nop + iaddiu vi01, vi00, 0x337 | nop + mfir.x vf03, vi14 | nop + mfir.y vf03, vi01 | nop + mfir.z vf03, vi14 | nop + mfir.w vf03, vi01 | nop + lq.xyzw vf04, 664(vi00) | nop + iaddiu vi14, vi00, 0x3ce | nop + sq.xyzw vf00, 0(vi14) | nop + sq.xyzw vf00, 7(vi14) | nop + sq.xyzw vf00, 14(vi14) | nop + sq.xyzw vf00, 21(vi14) | nop + sq.xyzw vf00, 28(vi14) | nop + sq.xyzw vf00, 35(vi14) | nop + iaddiu vi01, vi00, 0x373 | nop + iswr.z vi01, vi14 | nop + iaddiu vi01, vi00, 0x375 | nop + isw.z vi01, 7(vi14) | nop + iaddiu vi01, vi00, 0x377 | nop + isw.z vi01, 14(vi14) | nop + iaddiu vi01, vi00, 0x379 | nop + isw.z vi01, 21(vi14) | nop + iaddiu vi01, vi00, 0x37b | nop + isw.z vi01, 28(vi14) | nop + iaddiu vi01, vi00, 0x37d | nop :e + isw.z vi01, 35(vi14) | nop +L3: + iaddi vi07, vi00, -0x1 | nop + iblez vi12, L4 | nop + iaddi vi09, vi09, 0x1 | nop + ior vi10, vi06, vi00 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L4: + ilw.y vi01, -1(vi09) | nop + ilw.z vi13, -1(vi09) | nop + ibeq vi00, vi12, L7 | nop + ilwr.x vi14, vi10 | nop + ibltz vi01, L5 | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + sqi.xyzw vf05, vi06 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + sqi.xyzw vf31, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + ior vi10, vi06, vi00 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L5: + mtir vi01, vf24.w | nop + mtir vi06, vf03.y | nop + mr32.xyzw vf03, vf03 | nop + iadd vi14, vi14, vi11 | nop + ibgez vi13, L6 | nop + iswr.x vi14, vi10 | nop + xgkick vi01 | nop + ior vi10, vi06, vi00 | nop + mfir.w vf24, vi06 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L6: + iadd vi13, vi13, vi08 | nop + xgkick vi01 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + mfir.w vf24, vi06 | nop + sqi.xyzw vf05, vi06 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + sqi.xyzw vf31, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + iadd vi01, vi12, vi12 | nop + iadd vi01, vi01, vi12 | nop + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + nop | nop + ior vi10, vi06, vi00 | nop + iadd vi05, vi06, vi01 | nop + sqi.xyzw vf06, vi06 | nop + isw.x vi12, -1(vi06) | nop + jr vi15 | nop + ilwr.x vi12, vi09 | nop +L7: + mtir vi01, vf24.w | nop + mr32.xyzw vf03, vf03 | nop + iadd vi14, vi14, vi11 | nop + iswr.x vi14, vi10 | nop + lq.xyzw vf04, 664(vi00) | nop + xgkick vi01 | nop + nop | nop :e + nop | nop +L8: + ilw.w vi08, 4(vi14) | nop + lq.xyzw vf02, 665(vi00) | addw.z vf28, vf00, vf00 + lq.xyzw vf05, 660(vi00) | nop + lq.xyzw vf06, 658(vi00) | nop + iadd vi08, vi08, vi14 | nop + lq.xyzw vf11, 662(vi00) | nop + lq.w vf29, 1(vi08) | nop + lq.xyzw vf10, 661(vi00) | nop + ilw.z vi09, 4(vi14) | nop + ilw.y vi03, 3(vi14) | nop + nop | addy.w vf25, vf29, vf00 + iaddi vi07, vi00, -0x1 | addw.z vf28, vf28, vf29 + lq.xyzw vf04, 5(vi14) | mulw.xyzw vf16, vf00, vf00 + lq.xyzw vf07, 6(vi14) | mulw.xyzw vf17, vf00, vf00 + ibne vi00, vi14, L23 | mulw.xyzw vf18, vf00, vf00 + lq.xyzw vf08, 7(vi14) | mulw.xyzw vf19, vf00, vf00 + ilwr.x vi02, vi03 | nop + lq.xyzw vf09, 8(vi14) | nop + lq.xyzw vf01, 656(vi00) | nop + iadd vi09, vi09, vi14 | nop + lq.xyw vf28, 0(vi02) | nop + mtir vi06, vf03.x | nop + ilwr.x vi12, vi09 | nop + ilwr.z vi13, vi09 | nop + mtir vi04, vf28.w | subw.xyz vf24, vf28, vf25 + iaddiu vi11, vi00, 0x4000 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilwr.y vi02, vi03 | nop + lq.xyzw vf12, 0(vi04) | nop + lq.xyzw vf20, 1(vi04) | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + lq.xyw vf28, 0(vi02) | itof0.xyzw vf12, vf12 + mfir.w vf24, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + sqi.xyzw vf05, vi06 | subw.xyz vf25, vf28, vf25 + sqi.xyzw vf29, vi06 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | nop + sqi.xyzw vf30, vi06 | maddax.xyzw ACC, vf04, vf12 + sqi.xyzw vf31, vi06 | nop + ilwr.z vi02, vi03 | nop + lq.xyzw vf13, 0(vi04) | madday.xyzw ACC, vf07, vf12 + lq.xyzw vf21, 1(vi04) | maddz.xyzw vf12, vf08, vf12 + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lq.xyw vf28, 0(vi02) | itof0.xyzw vf13, vf13 + div Q, vf01.x, vf12.w | mul.xyzw vf16, vf12, vf11 + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + iadd vi01, vi12, vi12 | subw.xyz vf26, vf28, vf25 + iadd vi01, vi01, vi12 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | nop + iadd vi05, vi06, vi01 | maddax.xyzw ACC, vf04, vf13 + ior vi10, vi06, vi00 | mul.xyz vf12, vf12, Q + ilwr.w vi02, vi03 | mul.xyz vf24, vf24, Q + lq.xyzw vf14, 0(vi04) | madday.xyzw ACC, vf07, vf13 + lq.xyzw vf22, 1(vi04) | maddz.xyzw vf13, vf08, vf13 + sqi.xyzw vf06, vi06 | add.xyzw vf12, vf12, vf10 + isw.x vi12, -1(vi06) | nop + lq.xyw vf28, 0(vi02) | itof0.xyzw vf14, vf14 + div Q, vf01.x, vf13.w | mul.xyzw vf17, vf13, vf11 + iaddi vi09, vi09, 0x1 | miniz.w vf12, vf12, vf01 + ilwr.x vi12, vi09 | clipw.xyz vf16, vf16 +L9: + iaddi vi03, vi03, 0x1 | subw.xyz vf27, vf28, vf25 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf12, vf12, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf14 + ibne vi00, vi01, L19 | mul.xyz vf13, vf13, Q + ilwr.x vi02, vi03 | mul.xyz vf25, vf25, Q +L10: + lq.xyzw vf15, 0(vi04) | madday.xyzw ACC, vf07, vf14 + lq.xyzw vf23, 1(vi04) | maddz.xyzw vf14, vf08, vf14 + sqi.xyz vf24, vi06 | add.xyzw vf13, vf13, vf10 + sqi.xyzw vf20, vi06 | ftoi4.xyzw vf12, vf12 + lq.xyw vf28, 0(vi02) | itof0.xyzw vf15, vf15 + div Q, vf01.x, vf14.w | mul.xyzw vf18, vf14, vf11 + ibeq vi05, vi06, L14 | miniz.w vf13, vf13, vf01 + sqi.xyzw vf12, vi06 | clipw.xyz vf17, vf17 + nop | subw.xyz vf24, vf28, vf25 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf13, vf13, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf15 + ibne vi00, vi01, L20 | mul.xyz vf14, vf14, Q + ilwr.y vi02, vi03 | mul.xyz vf26, vf26, Q +L11: + lq.xyzw vf12, 0(vi04) | madday.xyzw ACC, vf07, vf15 + lq.xyzw vf20, 1(vi04) | maddz.xyzw vf15, vf08, vf15 + sqi.xyzw vf25, vi06 | add.xyzw vf14, vf14, vf10 + sqi.xyzw vf21, vi06 | ftoi4.xyzw vf13, vf13 + lq.xyw vf28, 0(vi02) | itof0.xyzw vf12, vf12 + div Q, vf01.x, vf15.w | mul.xyzw vf19, vf15, vf11 + ibeq vi05, vi06, L15 | miniz.w vf14, vf14, vf01 + sqi.xyzw vf13, vi06 | clipw.xyz vf18, vf18 + nop | subw.xyz vf25, vf28, vf25 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf14, vf14, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf12 + ibne vi00, vi01, L21 | mul.xyz vf15, vf15, Q + ilwr.z vi02, vi03 | mul.xyz vf27, vf27, Q +L12: + lq.xyzw vf13, 0(vi04) | madday.xyzw ACC, vf07, vf12 + lq.xyzw vf21, 1(vi04) | maddz.xyzw vf12, vf08, vf12 + sqi.xyzw vf26, vi06 | add.xyzw vf15, vf15, vf10 + sqi.xyzw vf22, vi06 | ftoi4.xyzw vf14, vf14 + lq.xyw vf28, 0(vi02) | itof0.xyzw vf13, vf13 + div Q, vf01.x, vf12.w | mul.xyzw vf16, vf12, vf11 + ibeq vi05, vi06, L16 | miniz.w vf15, vf15, vf01 + sqi.xyzw vf14, vi06 | clipw.xyz vf19, vf19 + nop | subw.xyz vf26, vf28, vf25 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf15, vf15, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf13 + ibne vi00, vi01, L22 | mul.xyz vf12, vf12, Q + ilwr.w vi02, vi03 | mul.xyz vf24, vf24, Q +L13: + lq.xyzw vf14, 0(vi04) | madday.xyzw ACC, vf07, vf13 + lq.xyzw vf22, 1(vi04) | maddz.xyzw vf13, vf08, vf13 + sqi.xyzw vf27, vi06 | add.xyzw vf12, vf12, vf10 + sqi.xyzw vf23, vi06 | ftoi4.xyzw vf15, vf15 + lq.xyw vf28, 0(vi02) | itof0.xyzw vf14, vf14 + div Q, vf01.x, vf13.w | mul.xyzw vf17, vf13, vf11 + ibne vi05, vi06, L9 | miniz.w vf12, vf12, vf01 + sqi.xyzw vf15, vi06 | clipw.xyz vf16, vf16 + b L3 | nop + iaddiu vi15, vi00, 0xb7 | nop +L14: + b L3 | nop + iaddiu vi15, vi00, 0xc5 | nop +L15: + b L3 | nop + iaddiu vi15, vi00, 0xd3 | nop +L16: + b L3 | nop + iaddiu vi15, vi00, 0xe1 | nop +L17: + iaddiu vi14, vi07, 0x4000 | nop + iaddiu vi14, vi14, 0x4000 | nop + isw.y vi13, 1022(vi00) | nop + isw.z vi05, 1021(vi00) | nop + isw.x vi06, 1020(vi00) | nop + isw.y vi07, 1020(vi00) | nop + isw.z vi08, 1020(vi00) | nop + isw.w vi09, 1020(vi00) | nop + isw.x vi10, 1021(vi00) | nop + isw.y vi12, 1021(vi00) | nop + iswr.x vi14, vi10 | nop + lq.xyzw vf06, 659(vi00) | nop + xgkick vi01 | nop + mtir vi11, vf03.y | nop + iaddiu vi01, vi00, 0x4000 | nop + iaddiu vi01, vi01, 0x4000 | nop + sq.xyzw vf06, 0(vi11) | nop + jr vi15 | nop + iswr.x vi01, vi11 | nop +L18: + ilw.y vi14, 1022(vi00) | nop + ilw.z vi05, 1021(vi00) | nop + ilw.x vi06, 1020(vi00) | nop + ilw.y vi07, 1020(vi00) | nop + ilw.z vi08, 1020(vi00) | nop + ilw.w vi09, 1020(vi00) | nop + ilw.x vi10, 1021(vi00) | nop + ilw.y vi12, 1021(vi00) | nop + lq.xyzw vf06, 658(vi00) | nop + mtir vi11, vf03.y | nop + iaddi vi01, vi06, -0x4 | nop + isub vi14, vi14, vi07 | nop + iaddi vi14, vi14, 0x1 | nop + xgkick vi11 | nop + mfir.w vf24, vi01 | nop + ior vi10, vi01, vi00 | nop + sq.xyzw vf06, 0(vi01) | nop + iswr.x vi14, vi01 | nop + jr vi15 | nop + iaddi vi07, vi00, 0x1 | nop +L19: + iaddi vi01, vi07, -0x2 | mul.xyzw vf29, vf18, vf02 + isw.w vi15, 1021(vi00) | mul.xyzw vf30, vf19, vf02 + ibltz vi01, L10 | mul.xyzw vf31, vf16, vf02 + nop | addw.w vf12, vf12, vf01 + nop | clipw.xyz vf29, vf29 + nop | clipw.xyz vf30, vf30 + nop | clipw.xyz vf31, vf31 + iaddiu vi11, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi13 | nop + fcget vi14 | nop + iand vi01, vi01, vi13 | clipw.xyz vf18, vf18 + iand vi01, vi01, vi14 | clipw.xyz vf19, vf19 + iand vi01, vi01, vi11 | clipw.xyz vf16, vf16 + iaddiu vi11, vi00, 0x4000 | nop + ibne vi00, vi01, L10 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilwr.x vi13, vi10 | nop + bal vi15, L17 | nop + mtir vi01, vf24.w | nop + ilw.z vi14, -2(vi03) | nop + sq.xyzw vf16, 28(vi11) | nop + sq.xyzw vf20, 29(vi11) | nop + sq.xyzw vf19, 31(vi11) | nop + ilwr.w vi13, vi14 | nop + sq.xyzw vf23, 32(vi11) | nop + sq.xyzw vf18, 34(vi11) | nop + ilw.x vi01, -1(vi03) | nop + lq.xyzw vf29, 1(vi13) | nop + bal vi15, L36 | nop + ilw.w vi13, -2(vi03) | nop + bal vi15, L18 | nop + nop | nop + ilw.w vi15, 1021(vi00) | nop + mtir vi04, vf28.w | nop + iaddiu vi11, vi00, 0x4000 | nop + b L10 | nop + iaddiu vi11, vi11, 0x4000 | nop +L20: + iaddi vi01, vi07, -0x2 | mul.xyzw vf29, vf19, vf02 + isw.w vi15, 1021(vi00) | mul.xyzw vf30, vf16, vf02 + ibltz vi01, L11 | mul.xyzw vf31, vf17, vf02 + nop | addw.w vf13, vf13, vf01 + nop | clipw.xyz vf29, vf29 + nop | clipw.xyz vf30, vf30 + nop | clipw.xyz vf31, vf31 + iaddiu vi11, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi13 | nop + fcget vi14 | nop + iand vi01, vi01, vi13 | clipw.xyz vf19, vf19 + iand vi01, vi01, vi14 | clipw.xyz vf16, vf16 + iand vi01, vi01, vi11 | clipw.xyz vf17, vf17 + iaddiu vi11, vi00, 0x4000 | nop + ibne vi00, vi01, L11 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilwr.x vi13, vi10 | nop + bal vi15, L17 | nop + mtir vi01, vf24.w | nop + ilw.w vi14, -2(vi03) | nop + sq.xyzw vf17, 28(vi11) | nop + sq.xyzw vf21, 29(vi11) | nop + sq.xyzw vf16, 31(vi11) | nop + ilwr.w vi13, vi14 | nop + sq.xyzw vf20, 32(vi11) | nop + sq.xyzw vf19, 34(vi11) | nop + ilw.y vi01, -1(vi03) | nop + lq.xyzw vf29, 1(vi13) | nop + bal vi15, L36 | nop + ilw.x vi13, -1(vi03) | nop + bal vi15, L18 | nop + nop | nop + ilw.w vi15, 1021(vi00) | nop + mtir vi04, vf28.w | nop + iaddiu vi11, vi00, 0x4000 | nop + b L11 | nop + iaddiu vi11, vi11, 0x4000 | nop +L21: + iaddi vi01, vi07, -0x2 | mul.xyzw vf29, vf16, vf02 + isw.w vi15, 1021(vi00) | mul.xyzw vf30, vf17, vf02 + ibltz vi01, L12 | mul.xyzw vf31, vf18, vf02 + nop | addw.w vf14, vf14, vf01 + nop | clipw.xyz vf29, vf29 + nop | clipw.xyz vf30, vf30 + nop | clipw.xyz vf31, vf31 + iaddiu vi11, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi13 | nop + fcget vi14 | nop + iand vi01, vi01, vi13 | clipw.xyz vf16, vf16 + iand vi01, vi01, vi14 | clipw.xyz vf17, vf17 + iand vi01, vi01, vi11 | clipw.xyz vf18, vf18 + iaddiu vi11, vi00, 0x4000 | nop + ibne vi00, vi01, L12 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilwr.x vi13, vi10 | nop + bal vi15, L17 | nop + mtir vi01, vf24.w | nop + ilw.x vi14, -1(vi03) | nop + sq.xyzw vf18, 28(vi11) | nop + sq.xyzw vf22, 29(vi11) | nop + sq.xyzw vf17, 31(vi11) | nop + ilwr.w vi13, vi14 | nop + sq.xyzw vf21, 32(vi11) | nop + sq.xyzw vf16, 34(vi11) | nop + ilw.z vi01, -1(vi03) | nop + lq.xyzw vf29, 1(vi13) | nop + bal vi15, L36 | nop + ilw.y vi13, -1(vi03) | nop + bal vi15, L18 | nop + nop | nop + ilw.w vi15, 1021(vi00) | nop + mtir vi04, vf28.w | nop + iaddiu vi11, vi00, 0x4000 | nop + b L12 | nop + iaddiu vi11, vi11, 0x4000 | nop +L22: + iaddi vi01, vi07, -0x2 | mul.xyzw vf29, vf17, vf02 + isw.w vi15, 1021(vi00) | mul.xyzw vf30, vf18, vf02 + ibltz vi01, L13 | mul.xyzw vf31, vf19, vf02 + nop | addw.w vf15, vf15, vf01 + nop | clipw.xyz vf29, vf29 + nop | clipw.xyz vf30, vf30 + nop | clipw.xyz vf31, vf31 + iaddiu vi11, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi13 | nop + fcget vi14 | nop + iand vi01, vi01, vi13 | clipw.xyz vf17, vf17 + iand vi01, vi01, vi14 | clipw.xyz vf18, vf18 + iand vi01, vi01, vi11 | clipw.xyz vf19, vf19 + iaddiu vi11, vi00, 0x4000 | nop + ibne vi00, vi01, L13 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilwr.x vi13, vi10 | nop + bal vi15, L17 | nop + mtir vi01, vf24.w | nop + ilw.y vi14, -1(vi03) | nop + sq.xyzw vf19, 28(vi11) | nop + sq.xyzw vf23, 29(vi11) | nop + sq.xyzw vf18, 31(vi11) | nop + ilwr.w vi13, vi14 | nop + sq.xyzw vf22, 32(vi11) | nop + sq.xyzw vf17, 34(vi11) | nop + ilw.w vi01, -1(vi03) | nop + lq.xyzw vf29, 1(vi13) | nop + bal vi15, L36 | nop + ilw.z vi13, -1(vi03) | nop + bal vi15, L18 | nop + nop | nop + ilw.w vi15, 1021(vi00) | nop + mtir vi04, vf28.w | nop + iaddiu vi11, vi00, 0x4000 | nop + b L13 | nop + iaddiu vi11, vi11, 0x4000 | addw.w vf15, vf15, vf01 +L23: + ilw.x vi02, 328(vi03) | nop + lq.xyzw vf09, 8(vi14) | nop + lq.xyzw vf01, 656(vi00) | nop + iadd vi09, vi09, vi14 | nop + lq.xyw vf28, 328(vi02) | nop + mtir vi06, vf03.x | nop + ilwr.x vi12, vi09 | nop + ilwr.z vi13, vi09 | nop + mtir vi04, vf28.w | subw.xyz vf24, vf28, vf25 + iaddiu vi11, vi00, 0x4000 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilw.y vi02, 328(vi03) | nop + lq.xyzw vf12, 328(vi04) | nop + lq.xyzw vf20, 329(vi04) | nop + iaddiu vi12, vi12, 0x80 | nop + iadd vi13, vi13, vi08 | nop + lq.xyw vf28, 328(vi02) | itof0.xyzw vf12, vf12 + mfir.w vf24, vi06 | nop + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lqi.xyzw vf31, vi13 | nop + sqi.xyzw vf05, vi06 | subw.xyz vf25, vf28, vf25 + sqi.xyzw vf29, vi06 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | nop + sqi.xyzw vf30, vi06 | maddax.xyzw ACC, vf04, vf12 + sqi.xyzw vf31, vi06 | nop + ilw.z vi02, 328(vi03) | nop + lq.xyzw vf13, 328(vi04) | madday.xyzw ACC, vf07, vf12 + lq.xyzw vf21, 329(vi04) | maddz.xyzw vf12, vf08, vf12 + lqi.xyzw vf29, vi13 | nop + lqi.xyzw vf30, vi13 | nop + lq.xyw vf28, 328(vi02) | itof0.xyzw vf13, vf13 + div Q, vf01.x, vf12.w | mul.xyzw vf16, vf12, vf11 + sqi.xyzw vf29, vi06 | nop + sqi.xyzw vf30, vi06 | nop + iadd vi01, vi12, vi12 | subw.xyz vf26, vf28, vf25 + iadd vi01, vi01, vi12 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | nop + iadd vi05, vi06, vi01 | maddax.xyzw ACC, vf04, vf13 + ior vi10, vi06, vi00 | mul.xyz vf12, vf12, Q + ilw.w vi02, 328(vi03) | mul.xyz vf24, vf24, Q + lq.xyzw vf14, 328(vi04) | madday.xyzw ACC, vf07, vf13 + lq.xyzw vf22, 329(vi04) | maddz.xyzw vf13, vf08, vf13 + sqi.xyzw vf06, vi06 | add.xyzw vf12, vf12, vf10 + isw.x vi12, -1(vi06) | nop + lq.xyw vf28, 328(vi02) | itof0.xyzw vf14, vf14 + div Q, vf01.x, vf13.w | mul.xyzw vf17, vf13, vf11 + iaddi vi09, vi09, 0x1 | miniz.w vf12, vf12, vf01 + ilwr.x vi12, vi09 | clipw.xyz vf16, vf16 +L24: + iaddi vi03, vi03, 0x1 | subw.xyz vf27, vf28, vf25 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf12, vf12, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf14 + ibne vi00, vi01, L32 | mul.xyz vf13, vf13, Q + ilw.x vi02, 328(vi03) | mul.xyz vf25, vf25, Q +L25: + lq.xyzw vf15, 328(vi04) | madday.xyzw ACC, vf07, vf14 + lq.xyzw vf23, 329(vi04) | maddz.xyzw vf14, vf08, vf14 + sqi.xyz vf24, vi06 | add.xyzw vf13, vf13, vf10 + sqi.xyzw vf20, vi06 | ftoi4.xyzw vf12, vf12 + lq.xyw vf28, 328(vi02) | itof0.xyzw vf15, vf15 + div Q, vf01.x, vf14.w | mul.xyzw vf18, vf14, vf11 + ibeq vi05, vi06, L29 | miniz.w vf13, vf13, vf01 + sqi.xyzw vf12, vi06 | clipw.xyz vf17, vf17 + nop | subw.xyz vf24, vf28, vf25 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf13, vf13, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf15 + ibne vi00, vi01, L33 | mul.xyz vf14, vf14, Q + ilw.y vi02, 328(vi03) | mul.xyz vf26, vf26, Q +L26: + lq.xyzw vf12, 328(vi04) | madday.xyzw ACC, vf07, vf15 + lq.xyzw vf20, 329(vi04) | maddz.xyzw vf15, vf08, vf15 + sqi.xyzw vf25, vi06 | add.xyzw vf14, vf14, vf10 + sqi.xyzw vf21, vi06 | ftoi4.xyzw vf13, vf13 + lq.xyw vf28, 328(vi02) | itof0.xyzw vf12, vf12 + div Q, vf01.x, vf15.w | mul.xyzw vf19, vf15, vf11 + ibeq vi05, vi06, L30 | miniz.w vf14, vf14, vf01 + sqi.xyzw vf13, vi06 | clipw.xyz vf18, vf18 + nop | subw.xyz vf25, vf28, vf25 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf14, vf14, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf12 + ibne vi00, vi01, L34 | mul.xyz vf15, vf15, Q + ilw.z vi02, 328(vi03) | mul.xyz vf27, vf27, Q +L27: + lq.xyzw vf13, 328(vi04) | madday.xyzw ACC, vf07, vf12 + lq.xyzw vf21, 329(vi04) | maddz.xyzw vf12, vf08, vf12 + sqi.xyzw vf26, vi06 | add.xyzw vf15, vf15, vf10 + sqi.xyzw vf22, vi06 | ftoi4.xyzw vf14, vf14 + lq.xyw vf28, 328(vi02) | itof0.xyzw vf13, vf13 + div Q, vf01.x, vf12.w | mul.xyzw vf16, vf12, vf11 + ibeq vi05, vi06, L31 | miniz.w vf15, vf15, vf01 + sqi.xyzw vf14, vi06 | clipw.xyz vf19, vf19 + nop | subw.xyz vf26, vf28, vf25 + iaddi vi07, vi07, 0x1 | mulaw.xyzw ACC, vf09, vf00 + mtir vi04, vf28.w | maxy.w vf15, vf15, vf01 + fcand vi01, 0x3ffff | maddax.xyzw ACC, vf04, vf13 + ibne vi00, vi01, L35 | mul.xyz vf12, vf12, Q + ilw.w vi02, 328(vi03) | mul.xyz vf24, vf24, Q +L28: + lq.xyzw vf14, 328(vi04) | madday.xyzw ACC, vf07, vf13 + lq.xyzw vf22, 329(vi04) | maddz.xyzw vf13, vf08, vf13 + sqi.xyzw vf27, vi06 | add.xyzw vf12, vf12, vf10 + sqi.xyzw vf23, vi06 | ftoi4.xyzw vf15, vf15 + lq.xyw vf28, 328(vi02) | itof0.xyzw vf14, vf14 + div Q, vf01.x, vf13.w | mul.xyzw vf17, vf13, vf11 + ibne vi05, vi06, L24 | miniz.w vf12, vf12, vf01 + sqi.xyzw vf15, vi06 | clipw.xyz vf16, vf16 + b L3 | nop + iaddiu vi15, vi00, 0x1e7 | nop +L29: + b L3 | nop + iaddiu vi15, vi00, 0x1f5 | nop +L30: + b L3 | nop + iaddiu vi15, vi00, 0x203 | nop +L31: + b L3 | nop + iaddiu vi15, vi00, 0x211 | nop +L32: + iaddi vi01, vi07, -0x2 | mul.xyzw vf29, vf18, vf02 + isw.w vi15, 1021(vi00) | mul.xyzw vf30, vf19, vf02 + ibltz vi01, L25 | mul.xyzw vf31, vf16, vf02 + nop | addw.w vf12, vf12, vf01 + nop | clipw.xyz vf29, vf29 + nop | clipw.xyz vf30, vf30 + nop | clipw.xyz vf31, vf31 + iaddiu vi11, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi13 | nop + fcget vi14 | nop + iand vi01, vi01, vi13 | clipw.xyz vf18, vf18 + iand vi01, vi01, vi14 | clipw.xyz vf19, vf19 + iand vi01, vi01, vi11 | clipw.xyz vf16, vf16 + iaddiu vi11, vi00, 0x4000 | nop + ibne vi00, vi01, L25 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilwr.x vi13, vi10 | nop + bal vi15, L17 | nop + mtir vi01, vf24.w | nop + ilw.z vi14, 326(vi03) | nop + sq.xyzw vf16, 28(vi11) | nop + sq.xyzw vf20, 29(vi11) | nop + sq.xyzw vf19, 31(vi11) | nop + ilw.w vi13, 328(vi14) | nop + sq.xyzw vf23, 32(vi11) | nop + sq.xyzw vf18, 34(vi11) | nop + ilw.x vi01, 327(vi03) | nop + lq.xyzw vf29, 329(vi13) | nop + bal vi15, L37 | nop + ilw.w vi13, 326(vi03) | nop + bal vi15, L18 | nop + nop | nop + ilw.w vi15, 1021(vi00) | nop + mtir vi04, vf28.w | nop + iaddiu vi11, vi00, 0x4000 | nop + b L25 | nop + iaddiu vi11, vi11, 0x4000 | nop +L33: + iaddi vi01, vi07, -0x2 | mul.xyzw vf29, vf19, vf02 + isw.w vi15, 1021(vi00) | mul.xyzw vf30, vf16, vf02 + ibltz vi01, L26 | mul.xyzw vf31, vf17, vf02 + nop | addw.w vf13, vf13, vf01 + nop | clipw.xyz vf29, vf29 + nop | clipw.xyz vf30, vf30 + nop | clipw.xyz vf31, vf31 + iaddiu vi11, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi13 | nop + fcget vi14 | nop + iand vi01, vi01, vi13 | clipw.xyz vf19, vf19 + iand vi01, vi01, vi14 | clipw.xyz vf16, vf16 + iand vi01, vi01, vi11 | clipw.xyz vf17, vf17 + iaddiu vi11, vi00, 0x4000 | nop + ibne vi00, vi01, L26 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilwr.x vi13, vi10 | nop + bal vi15, L17 | nop + mtir vi01, vf24.w | nop + ilw.w vi14, 326(vi03) | nop + sq.xyzw vf17, 28(vi11) | nop + sq.xyzw vf21, 29(vi11) | nop + sq.xyzw vf16, 31(vi11) | nop + ilw.w vi13, 328(vi14) | nop + sq.xyzw vf20, 32(vi11) | nop + sq.xyzw vf19, 34(vi11) | nop + ilw.y vi01, 327(vi03) | nop + lq.xyzw vf29, 329(vi13) | nop + bal vi15, L37 | nop + ilw.x vi13, 327(vi03) | nop + bal vi15, L18 | nop + nop | nop + ilw.w vi15, 1021(vi00) | nop + mtir vi04, vf28.w | nop + iaddiu vi11, vi00, 0x4000 | nop + b L26 | nop + iaddiu vi11, vi11, 0x4000 | nop +L34: + iaddi vi01, vi07, -0x2 | mul.xyzw vf29, vf16, vf02 + isw.w vi15, 1021(vi00) | mul.xyzw vf30, vf17, vf02 + ibltz vi01, L27 | mul.xyzw vf31, vf18, vf02 + nop | addw.w vf14, vf14, vf01 + nop | clipw.xyz vf29, vf29 + nop | clipw.xyz vf30, vf30 + nop | clipw.xyz vf31, vf31 + iaddiu vi11, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi13 | nop + fcget vi14 | nop + iand vi01, vi01, vi13 | clipw.xyz vf16, vf16 + iand vi01, vi01, vi14 | clipw.xyz vf17, vf17 + iand vi01, vi01, vi11 | clipw.xyz vf18, vf18 + iaddiu vi11, vi00, 0x4000 | nop + ibne vi00, vi01, L27 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilwr.x vi13, vi10 | nop + bal vi15, L17 | nop + mtir vi01, vf24.w | nop + ilw.x vi14, 327(vi03) | nop + sq.xyzw vf18, 28(vi11) | nop + sq.xyzw vf22, 29(vi11) | nop + sq.xyzw vf17, 31(vi11) | nop + ilw.w vi13, 328(vi14) | nop + sq.xyzw vf21, 32(vi11) | nop + sq.xyzw vf16, 34(vi11) | nop + ilw.z vi01, 327(vi03) | nop + lq.xyzw vf29, 329(vi13) | nop + bal vi15, L37 | nop + ilw.y vi13, 327(vi03) | nop + bal vi15, L18 | nop + nop | nop + ilw.w vi15, 1021(vi00) | nop + mtir vi04, vf28.w | nop + iaddiu vi11, vi00, 0x4000 | nop + b L27 | nop + iaddiu vi11, vi11, 0x4000 | nop +L35: + iaddi vi01, vi07, -0x2 | mul.xyzw vf29, vf17, vf02 + isw.w vi15, 1021(vi00) | mul.xyzw vf30, vf18, vf02 + ibltz vi01, L28 | mul.xyzw vf31, vf19, vf02 + nop | addw.w vf15, vf15, vf01 + nop | clipw.xyz vf29, vf29 + nop | clipw.xyz vf30, vf30 + nop | clipw.xyz vf31, vf31 + iaddiu vi11, vi00, 0x3f | nop + fcget vi01 | nop + fcget vi13 | nop + fcget vi14 | nop + iand vi01, vi01, vi13 | clipw.xyz vf17, vf17 + iand vi01, vi01, vi14 | clipw.xyz vf18, vf18 + iand vi01, vi01, vi11 | clipw.xyz vf19, vf19 + iaddiu vi11, vi00, 0x4000 | nop + ibne vi00, vi01, L28 | nop + iaddiu vi11, vi11, 0x4000 | nop + ilwr.x vi13, vi10 | nop + bal vi15, L17 | nop + mtir vi01, vf24.w | nop + ilw.y vi14, 327(vi03) | nop + sq.xyzw vf19, 28(vi11) | nop + sq.xyzw vf23, 29(vi11) | nop + sq.xyzw vf18, 31(vi11) | nop + ilw.w vi13, 328(vi14) | nop + sq.xyzw vf22, 32(vi11) | nop + sq.xyzw vf17, 34(vi11) | nop + ilw.w vi01, 327(vi03) | nop + lq.xyzw vf29, 329(vi13) | nop + bal vi15, L37 | nop + ilw.z vi13, 327(vi03) | nop + bal vi15, L18 | nop + nop | nop + ilw.w vi15, 1021(vi00) | nop + mtir vi04, vf28.w | nop + iaddiu vi11, vi00, 0x4000 | nop + b L28 | nop + iaddiu vi11, vi11, 0x4000 | nop +L36: + sq.xyzw vf16, 45(vi11) | nop + sq.xyzw vf17, 46(vi11) | nop + sq.xyzw vf18, 47(vi11) | nop + lq.xy vf16, 0(vi01) | nop + lq.xy vf17, 0(vi13) | addw.z vf16, vf00, vf00 + b L38 | nop + lq.xy vf18, 0(vi14) | addw.z vf17, vf00, vf00 +L37: + sq.xyzw vf16, 45(vi11) | nop + sq.xyzw vf17, 46(vi11) | nop + sq.xyzw vf18, 47(vi11) | nop + lq.xy vf16, 328(vi01) | nop + lq.xy vf17, 328(vi13) | addw.z vf16, vf00, vf00 + b L38 | nop + lq.xy vf18, 328(vi14) | addw.z vf17, vf00, vf00 +L38: + sq.xyzw vf20, 42(vi11) | addw.z vf18, vf00, vf00 + sq.xyzw vf21, 43(vi11) | nop + sq.xyzw vf22, 44(vi11) | nop + lq.xyzw vf20, 29(vi11) | subw.xy vf16, vf16, vf25 + lq.xyzw vf21, 32(vi11) | subw.xy vf17, vf17, vf25 + sq.xyzw vf12, 39(vi11) | subw.xy vf18, vf18, vf25 + sq.xyzw vf13, 40(vi11) | nop + sq.xyzw vf16, 30(vi11) | itof0.xyzw vf20, vf20 + sq.xyzw vf17, 33(vi11) | itof0.xyzw vf21, vf21 + sq.xyzw vf18, 36(vi11) | itof0.xyzw vf22, vf29 + sq.xyzw vf14, 41(vi11) | nop + sq.xyzw vf20, 29(vi11) | nop + sq.xyzw vf21, 32(vi11) | nop + sq.xyzw vf22, 35(vi11) | nop + iaddi vi14, vi11, 0x1 | nop + lq.xyzw vf31, 663(vi00) | nop + isw.x vi15, 1022(vi00) | nop + iaddi vi04, vi00, 0x0 | nop + bal vi15, L39 | nop + iaddiu vi06, vi11, 0x1c | nop + bal vi15, L39 | nop + iaddiu vi06, vi11, 0x1f | nop + bal vi15, L39 | nop + iaddiu vi06, vi11, 0x22 | nop + b L48 | nop + nop | nop +L39: + iaddiu vi08, vi00, 0x3ce | nop +L40: + iaddi vi09, vi00, 0x0 | nop +L41: + isubiu vi01, vi08, 0x3f8 | nop + ilwr.y vi07, vi08 | nop + ibeq vi00, vi01, L45 | nop + ilwr.z vi05, vi08 | nop + lq.xyzw vf13, 0(vi06) | nop + lq.xyzw vf12, 0(vi07) | nop + ibne vi00, vi07, L42 | nop + iswr.y vi06, vi08 | nop + jalr vi10, vi05 | nop + iswr.x vi06, vi08 | nop + nop | nop + nop | nop + nop | nop + fsand vi13, 0x2 | nop + ibne vi00, vi13, L46 | nop + nop | nop + b L41 | nop + iaddi vi08, vi08, 0x7 | nop +L42: + jalr vi10, vi05 | nop + lq.xyzw vf20, 1(vi07) | nop + lq.xyzw vf21, 1(vi06) | nop + lq.xyzw vf16, 2(vi07) | nop + fsand vi01, 0x2 | nop + fsand vi13, 0x2 | subw.w vf30, vf29, vf30 + ibne vi00, vi01, L44 | nop + lq.xyzw vf17, 2(vi06) | nop + ibne vi00, vi13, L43 | nop + div Q, vf29.w, vf30.w | nop + b L41 | nop + iaddi vi08, vi08, 0x7 | nop +L43: + bal vi10, L53 | nop + iaddi vi06, vi08, 0x1 | nop + sq.xyzw vf14, 1(vi08) | nop + sq.xyzw vf22, 2(vi08) | nop + sq.xyzw vf18, 3(vi08) | nop + b L41 | nop + iaddi vi08, vi08, 0x7 | nop +L44: + ibne vi00, vi13, L46 | nop + div Q, vf29.w, vf30.w | nop + bal vi10, L53 | nop + nop | nop + sq.xyzw vf14, 4(vi08) | nop + sq.xyzw vf22, 5(vi08) | nop + sq.xyzw vf18, 6(vi08) | nop + iaddi vi08, vi08, 0x7 | nop + isw.x vi08, 1016(vi09) | nop + isw.y vi06, 1016(vi09) | nop + iaddi vi09, vi09, 0x1 | nop + b L41 | nop + iaddi vi06, vi08, -0x3 | nop +L45: + lq.xyzw vf12, 0(vi06) | nop + lq.xyzw vf20, 1(vi06) | nop + lq.xyzw vf16, 2(vi06) | nop + iaddi vi04, vi04, 0x1 | nop + nop | nop + div Q, vf00.w, vf12.w | mul.xyzw vf12, vf12, vf31 + nop | ftoi0.xyzw vf20, vf20 + nop | nop + iaddi vi14, vi14, 0x3 | nop + waitq | mul.xyz vf16, vf16, Q + sq.xyzw vf20, -2(vi14) | mul.xyz vf12, vf12, Q + nop | add.xyzw vf12, vf12, vf10 + nop | maxy.w vf12, vf12, vf01 + nop | miniz.w vf12, vf12, vf01 + sq.xyzw vf16, -3(vi14) | ftoi4.xyzw vf12, vf12 + sq.xyzw vf12, -1(vi14) | nop +L46: + iblez vi09, L47 | nop + nop | nop + ilw.x vi08, 1015(vi09) | nop + ilw.y vi06, 1015(vi09) | nop + b L41 | nop + iaddi vi09, vi09, -0x1 | nop +L47: + jr vi15 | nop + nop | nop +L48: + iaddiu vi08, vi00, 0x3ce | nop +L49: + ilwr.x vi07, vi08 | nop + ilwr.y vi06, vi08 | nop + ilwr.z vi05, vi08 | nop + nop | nop + ibeq vi00, vi07, L51 | nop + lq.xyzw vf12, 0(vi06) | nop + ibeq vi06, vi07, L51 | nop + lq.xyzw vf13, 0(vi07) | nop + jalr vi10, vi05 | nop + lq.xyzw vf20, 1(vi06) | nop + lq.xyzw vf21, 1(vi07) | nop + lq.xyzw vf16, 2(vi06) | nop + fsand vi01, 0x2 | nop + fsand vi13, 0x2 | subw.w vf30, vf29, vf30 + ibeq vi13, vi01, L51 | nop + lq.xyzw vf17, 2(vi07) | nop + ibeq vi00, vi01, L50 | nop + div Q, vf29.w, vf30.w | nop + bal vi10, L53 | nop + nop | nop + sq.xyzw vf14, 4(vi08) | nop + sq.xyzw vf22, 5(vi08) | nop + sq.xyzw vf18, 6(vi08) | nop + iaddi vi06, vi08, 0x4 | nop + ior vi12, vi08, vi00 | nop + bal vi15, L40 | nop + iaddi vi08, vi08, 0x7 | nop + b L51 | nop + ior vi08, vi12, vi00 | nop +L50: + bal vi10, L53 | nop + nop | nop + sq.xyzw vf14, 1(vi08) | nop + sq.xyzw vf22, 2(vi08) | nop + sq.xyzw vf18, 3(vi08) | nop + iaddi vi06, vi08, 0x1 | nop + ior vi12, vi08, vi00 | nop + bal vi15, L40 | nop + iaddi vi08, vi08, 0x7 | nop + ior vi08, vi12, vi00 | nop +L51: + isubiu vi01, vi08, 0x3f1 | nop + iswr.x vi00, vi08 | nop + iswr.y vi00, vi08 | nop + ibltz vi01, L49 | nop + iaddi vi08, vi08, 0x7 | nop + ibeq vi00, vi04, L52 | nop + nop | nop + iaddiu vi04, vi04, 0x4000 | nop + iaddiu vi04, vi04, 0x4000 | nop + iswr.x vi04, vi11 | nop +L52: + ilw.x vi15, 1022(vi00) | nop + lq.xyzw vf29, 37(vi11) | nop + lq.xyzw vf30, 38(vi11) | nop + lq.xyzw vf12, 39(vi11) | nop + lq.xyzw vf13, 40(vi11) | nop + lq.xyzw vf14, 41(vi11) | nop + lq.xyzw vf20, 42(vi11) | nop + lq.xyzw vf21, 43(vi11) | nop + lq.xyzw vf22, 44(vi11) | nop + lq.xyzw vf16, 45(vi11) | nop + lq.xyzw vf17, 46(vi11) | nop + lq.xyzw vf18, 47(vi11) | nop + jr vi15 | nop + lq.xyzw vf31, 48(vi11) | nop + jr vi10 | addx.w vf29, vf12, vf12 + nop | addx.w vf30, vf13, vf13 + jr vi10 | subx.w vf29, vf12, vf12 + nop | subx.w vf30, vf13, vf13 + jr vi10 | addy.w vf29, vf12, vf12 + nop | addy.w vf30, vf13, vf13 + jr vi10 | suby.w vf29, vf12, vf12 + nop | suby.w vf30, vf13, vf13 + jr vi10 | addz.w vf29, vf12, vf12 + nop | addz.w vf30, vf13, vf13 + jr vi10 | subz.w vf29, vf12, vf12 + nop | subz.w vf30, vf13, vf13 +L53: + nop | sub.xyzw vf14, vf13, vf12 + nop | sub.xyzw vf22, vf21, vf20 + nop | sub.xyzw vf18, vf17, vf16 + waitq | mul.xyzw vf14, vf14, Q + nop | mul.xyzw vf22, vf22, Q + nop | mul.xyzw vf18, vf18, Q + nop | add.xyzw vf14, vf12, vf14 + jr vi10 | add.xyzw vf22, vf20, vf22 + nop | add.xyzw vf18, vf16, vf18 diff --git a/test/decompiler/vu_reference/tnear.txt b/test/decompiler/vu_reference/tnear.txt new file mode 100644 index 0000000000..1992e78912 --- /dev/null +++ b/test/decompiler/vu_reference/tnear.txt @@ -0,0 +1,1808 @@ + .word 0x40000007 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x40000073 + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x40000001 + .word 0x2ff + .word 0x800e06bc + .word 0x2ff + .word 0x1e40298 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x100e02a0 + .word 0x2ff + .word 0x10010337 + .word 0x2ff + .word 0x810373fd + .word 0x2ff + .word 0x80830bfd + .word 0x2ff + .word 0x804373fd + .word 0x2ff + .word 0x80230bfd + .word 0x2ff + .word 0x1e40298 + .word 0x2ff + .word 0x100e03ce + .word 0x2ff + .word 0x3ee0000 + .word 0x2ff + .word 0x3ee0007 + .word 0x2ff + .word 0x3ee000e + .word 0x2ff + .word 0x3ee0015 + .word 0x2ff + .word 0x3ee001c + .word 0x2ff + .word 0x3ee0023 + .word 0x2ff + .word 0x10010373 + .word 0x2ff + .word 0x804173ff + .word 0x2ff + .word 0x10010375 + .word 0x2ff + .word 0xa417007 + .word 0x2ff + .word 0x10010377 + .word 0x2ff + .word 0xa41700e + .word 0x2ff + .word 0x10010379 + .word 0x2ff + .word 0xa417015 + .word 0x2ff + .word 0x1001037b + .word 0x2ff + .word 0xa41701c + .word 0x2ff + .word 0x1001037d + .word 0x400002ff + .word 0xa417023 + .word 0x2ff + .word 0x800707f2 + .word 0x2ff + .word 0x5c006009 + .word 0x2ff + .word 0x80094872 + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x8814fff + .word 0x2ff + .word 0x84d4fff + .word 0x2ff + .word 0x5000603e + .word 0x2ff + .word 0x810e53fe + .word 0x2ff + .word 0x58000815 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x81e62b7d + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81e6fb7d + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x80261bfc + .word 0x2ff + .word 0x81e31b3d + .word 0x2ff + .word 0x800b73b0 + .word 0x2ff + .word 0x5e00680b + .word 0x2ff + .word 0x810e53ff + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x803833fd + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x803833fd + .word 0x2ff + .word 0x81e62b7d + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x81e6fb7d + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x800c6070 + .word 0x2ff + .word 0x800c0870 + .word 0x2ff + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x800032b5 + .word 0x2ff + .word 0x80013170 + .word 0x2ff + .word 0x81e6337d + .word 0x2ff + .word 0xb0c37ff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x81e31b3d + .word 0x2ff + .word 0x800b73b0 + .word 0x2ff + .word 0x810e53ff + .word 0x2ff + .word 0x1e40298 + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x80000030 + .word 0x400002ff + .word 0x80000030 + .word 0x2ff + .word 0x8287004 + .word 0x2ff + .word 0x1e20299 + .word 0x400703 + .word 0x1e50294 + .word 0x2ff + .word 0x1e60292 + .word 0x2ff + .word 0x800e4230 + .word 0x2ff + .word 0x1eb0296 + .word 0x2ff + .word 0x3d4001 + .word 0x2ff + .word 0x1ea0295 + .word 0x2ff + .word 0x8497004 + .word 0x2ff + .word 0x8837003 + .word 0x2ff + .word 0x80000030 + .word 0x20ee41 + .word 0x800707f2 + .word 0x5de703 + .word 0x1e47005 + .word 0x1e0041b + .word 0x1e77006 + .word 0x1e0045b + .word 0x52007131 + .word 0x1e0049b + .word 0x1e87007 + .word 0x1e004db + .word 0x81021bfe + .word 0x2ff + .word 0x1e97008 + .word 0x2ff + .word 0x1e10290 + .word 0x2ff + .word 0x800e4a70 + .word 0x2ff + .word 0x1bc1000 + .word 0x2ff + .word 0x80061bfc + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x804d4bfe + .word 0x2ff + .word 0x8064e3fc + .word 0x1d9e607 + .word 0x110b0000 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x80821bfe + .word 0x2ff + .word 0x1ec2000 + .word 0x2ff + .word 0x1f42001 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x1bc1000 + .word 0x1ec613c + .word 0x803833fd + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x81e62b7d + .word 0x1d9e647 + .word 0x81e6eb7d + .word 0x1e049bf + .word 0x8064e3fc + .word 0x2ff + .word 0x81e6f37d + .word 0x1ec20bc + .word 0x81e6fb7d + .word 0x2ff + .word 0x80421bfe + .word 0x2ff + .word 0x1ed2000 + .word 0x1ec38bd + .word 0x1f52001 + .word 0x1ec430a + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x1bc1000 + .word 0x1ed693c + .word 0x818c0bbc + .word 0x1eb642a + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x800c6070 + .word 0x1d9e687 + .word 0x800c0870 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x2ff + .word 0x80013170 + .word 0x1ed20bc + .word 0x800032b5 + .word 0x1c0631c + .word 0x80221bfe + .word 0x1c0c61c + .word 0x1ee2000 + .word 0x1ed38bd + .word 0x1f62001 + .word 0x1ed434a + .word 0x81e6337d + .word 0x1ea6328 + .word 0xb0c37ff + .word 0x2ff + .word 0x1bc1000 + .word 0x1ee713c + .word 0x818d0bbc + .word 0x1eb6c6a + .word 0x80094872 + .word 0x216316 + .word 0x810c4bfe + .word 0x1d081ff + .word 0x80031872 + .word 0x1d9e6c7 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x216311 + .word 0x2403ffff + .word 0x1ee20bc + .word 0x52000862 + .word 0x1c06b5c + .word 0x81021bfe + .word 0x1c0ce5c + .word 0x1ef2000 + .word 0x1ee38bd + .word 0x1f72001 + .word 0x1ee438a + .word 0x81c6c37d + .word 0x1ea6b68 + .word 0x81e6a37d + .word 0x1ec617d + .word 0x1bc1000 + .word 0x1ef793c + .word 0x818e0bbc + .word 0x1eb74aa + .word 0x5005302d + .word 0x216b56 + .word 0x81e6637d + .word 0x1d189ff + .word 0x80000030 + .word 0x1d9e607 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x216b51 + .word 0x2403ffff + .word 0x1ef20bc + .word 0x5200087a + .word 0x1c0739c + .word 0x80821bfe + .word 0x1c0d69c + .word 0x1ec2000 + .word 0x1ef38bd + .word 0x1f42001 + .word 0x1ef43ca + .word 0x81e6cb7d + .word 0x1ea73a8 + .word 0x81e6ab7d + .word 0x1ed697d + .word 0x1bc1000 + .word 0x1ec613c + .word 0x818f0bbc + .word 0x1eb7cea + .word 0x50053021 + .word 0x217396 + .word 0x81e66b7d + .word 0x1d291ff + .word 0x80000030 + .word 0x1d9e647 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x217391 + .word 0x2403ffff + .word 0x1ec20bc + .word 0x52000892 + .word 0x1c07bdc + .word 0x80421bfe + .word 0x1c0dedc + .word 0x1ed2000 + .word 0x1ec38bd + .word 0x1f52001 + .word 0x1ec430a + .word 0x81e6d37d + .word 0x1ea7be8 + .word 0x81e6b37d + .word 0x1ee717d + .word 0x1bc1000 + .word 0x1ed693c + .word 0x818c0bbc + .word 0x1eb642a + .word 0x50053015 + .word 0x217bd6 + .word 0x81e6737d + .word 0x1d399ff + .word 0x80000030 + .word 0x1d9e687 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x217bd1 + .word 0x2403ffff + .word 0x1ed20bc + .word 0x520008aa + .word 0x1c0631c + .word 0x80221bfe + .word 0x1c0c61c + .word 0x1ee2000 + .word 0x1ed38bd + .word 0x1f62001 + .word 0x1ed434a + .word 0x81e6db7d + .word 0x1ea6328 + .word 0x81e6bb7d + .word 0x1ef797d + .word 0x1bc1000 + .word 0x1ee713c + .word 0x818d0bbc + .word 0x1eb6c6a + .word 0x520537c9 + .word 0x216316 + .word 0x81e67b7d + .word 0x1d081ff + .word 0x40000732 + .word 0x2ff + .word 0x100f00b7 + .word 0x2ff + .word 0x40000730 + .word 0x2ff + .word 0x100f00c5 + .word 0x2ff + .word 0x4000072e + .word 0x2ff + .word 0x100f00d3 + .word 0x2ff + .word 0x4000072c + .word 0x2ff + .word 0x100f00e1 + .word 0x2ff + .word 0x110e3800 + .word 0x2ff + .word 0x110e7000 + .word 0x2ff + .word 0xa8d03fe + .word 0x2ff + .word 0xa4503fd + .word 0x2ff + .word 0xb0603fc + .word 0x2ff + .word 0xa8703fc + .word 0x2ff + .word 0xa4803fc + .word 0x2ff + .word 0xa2903fc + .word 0x2ff + .word 0xb0a03fd + .word 0x2ff + .word 0xa8c03fd + .word 0x2ff + .word 0x810e53ff + .word 0x2ff + .word 0x1e60293 + .word 0x2ff + .word 0x80000efc + .word 0x2ff + .word 0x802b1bfc + .word 0x2ff + .word 0x11010000 + .word 0x2ff + .word 0x11010800 + .word 0x2ff + .word 0x3eb3000 + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x81015bff + .word 0x2ff + .word 0x88e03fe + .word 0x2ff + .word 0x84503fd + .word 0x2ff + .word 0x90603fc + .word 0x2ff + .word 0x88703fc + .word 0x2ff + .word 0x84803fc + .word 0x2ff + .word 0x82903fc + .word 0x2ff + .word 0x90a03fd + .word 0x2ff + .word 0x88c03fd + .word 0x2ff + .word 0x1e60292 + .word 0x2ff + .word 0x802b1bfc + .word 0x2ff + .word 0x80013732 + .word 0x2ff + .word 0x800773b1 + .word 0x2ff + .word 0x800e7072 + .word 0x2ff + .word 0x80005efc + .word 0x2ff + .word 0x80380bfd + .word 0x2ff + .word 0x80000ab5 + .word 0x2ff + .word 0x3e13000 + .word 0x2ff + .word 0x810e0bff + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x80070072 + .word 0x2ff + .word 0x80013fb2 + .word 0x1e2976a + .word 0xa2f03fd + .word 0x1e29faa + .word 0x58000f9c + .word 0x1e287ea + .word 0x80000030 + .word 0x216303 + .word 0x80000030 + .word 0x1dde9ff + .word 0x80000030 + .word 0x1def1ff + .word 0x80000030 + .word 0x1dff9ff + .word 0x100b003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x380d0000 + .word 0x2ff + .word 0x380e0000 + .word 0x2ff + .word 0x800d0874 + .word 0x1d291ff + .word 0x800e0874 + .word 0x1d399ff + .word 0x800b0874 + .word 0x1d081ff + .word 0x110b0000 + .word 0x2ff + .word 0x52000f8f + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x810d53fe + .word 0x2ff + .word 0x420f07c6 + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x84e1ffe + .word 0x2ff + .word 0x3eb801c + .word 0x2ff + .word 0x3eba01d + .word 0x2ff + .word 0x3eb981f + .word 0x2ff + .word 0x802d73fe + .word 0x2ff + .word 0x3ebb820 + .word 0x2ff + .word 0x3eb9022 + .word 0x2ff + .word 0x9011fff + .word 0x2ff + .word 0x1fd6801 + .word 0x2ff + .word 0x420f0183 + .word 0x2ff + .word 0x82d1ffe + .word 0x2ff + .word 0x420f07cc + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x82f03fd + .word 0x2ff + .word 0x8064e3fc + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x4000077a + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x80013fb2 + .word 0x1e29f6a + .word 0xa2f03fd + .word 0x1e287aa + .word 0x58000f84 + .word 0x1e28fea + .word 0x80000030 + .word 0x216b43 + .word 0x80000030 + .word 0x1dde9ff + .word 0x80000030 + .word 0x1def1ff + .word 0x80000030 + .word 0x1dff9ff + .word 0x100b003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x380d0000 + .word 0x2ff + .word 0x380e0000 + .word 0x2ff + .word 0x800d0874 + .word 0x1d399ff + .word 0x800e0874 + .word 0x1d081ff + .word 0x800b0874 + .word 0x1d189ff + .word 0x110b0000 + .word 0x2ff + .word 0x52000f77 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x810d53fe + .word 0x2ff + .word 0x420f07a0 + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x82e1ffe + .word 0x2ff + .word 0x3eb881c + .word 0x2ff + .word 0x3eba81d + .word 0x2ff + .word 0x3eb801f + .word 0x2ff + .word 0x802d73fe + .word 0x2ff + .word 0x3eba020 + .word 0x2ff + .word 0x3eb9822 + .word 0x2ff + .word 0x8811fff + .word 0x2ff + .word 0x1fd6801 + .word 0x2ff + .word 0x420f015d + .word 0x2ff + .word 0x90d1fff + .word 0x2ff + .word 0x420f07a6 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x82f03fd + .word 0x2ff + .word 0x8064e3fc + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x40000762 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x80013fb2 + .word 0x1e2876a + .word 0xa2f03fd + .word 0x1e28faa + .word 0x58000f6c + .word 0x1e297ea + .word 0x80000030 + .word 0x217383 + .word 0x80000030 + .word 0x1dde9ff + .word 0x80000030 + .word 0x1def1ff + .word 0x80000030 + .word 0x1dff9ff + .word 0x100b003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x380d0000 + .word 0x2ff + .word 0x380e0000 + .word 0x2ff + .word 0x800d0874 + .word 0x1d081ff + .word 0x800e0874 + .word 0x1d189ff + .word 0x800b0874 + .word 0x1d291ff + .word 0x110b0000 + .word 0x2ff + .word 0x52000f5f + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x810d53fe + .word 0x2ff + .word 0x420f077a + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x90e1fff + .word 0x2ff + .word 0x3eb901c + .word 0x2ff + .word 0x3ebb01d + .word 0x2ff + .word 0x3eb881f + .word 0x2ff + .word 0x802d73fe + .word 0x2ff + .word 0x3eba820 + .word 0x2ff + .word 0x3eb8022 + .word 0x2ff + .word 0x8411fff + .word 0x2ff + .word 0x1fd6801 + .word 0x2ff + .word 0x420f0137 + .word 0x2ff + .word 0x88d1fff + .word 0x2ff + .word 0x420f0780 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x82f03fd + .word 0x2ff + .word 0x8064e3fc + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x4000074a + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x80013fb2 + .word 0x1e28f6a + .word 0xa2f03fd + .word 0x1e297aa + .word 0x58000f54 + .word 0x1e29fea + .word 0x80000030 + .word 0x217bc3 + .word 0x80000030 + .word 0x1dde9ff + .word 0x80000030 + .word 0x1def1ff + .word 0x80000030 + .word 0x1dff9ff + .word 0x100b003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x380d0000 + .word 0x2ff + .word 0x380e0000 + .word 0x2ff + .word 0x800d0874 + .word 0x1d189ff + .word 0x800e0874 + .word 0x1d291ff + .word 0x800b0874 + .word 0x1d399ff + .word 0x110b0000 + .word 0x2ff + .word 0x52000f47 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x810d53fe + .word 0x2ff + .word 0x420f0754 + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x88e1fff + .word 0x2ff + .word 0x3eb981c + .word 0x2ff + .word 0x3ebb81d + .word 0x2ff + .word 0x3eb901f + .word 0x2ff + .word 0x802d73fe + .word 0x2ff + .word 0x3ebb020 + .word 0x2ff + .word 0x3eb8822 + .word 0x2ff + .word 0x8211fff + .word 0x2ff + .word 0x1fd6801 + .word 0x2ff + .word 0x420f0111 + .word 0x2ff + .word 0x84d1fff + .word 0x2ff + .word 0x420f075a + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x82f03fd + .word 0x2ff + .word 0x8064e3fc + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x40000732 + .word 0x2ff + .word 0x110b5800 + .word 0x217bc3 + .word 0x9021948 + .word 0x2ff + .word 0x1e97008 + .word 0x2ff + .word 0x1e10290 + .word 0x2ff + .word 0x800e4a70 + .word 0x2ff + .word 0x1bc1148 + .word 0x2ff + .word 0x80061bfc + .word 0x2ff + .word 0x810c4bfe + .word 0x2ff + .word 0x804d4bfe + .word 0x2ff + .word 0x8064e3fc + .word 0x1d9e607 + .word 0x110b0000 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x8821948 + .word 0x2ff + .word 0x1ec2148 + .word 0x2ff + .word 0x1f42149 + .word 0x2ff + .word 0x100c6080 + .word 0x2ff + .word 0x80086b70 + .word 0x2ff + .word 0x1bc1148 + .word 0x1ec613c + .word 0x803833fd + .word 0x2ff + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x81ff6b7c + .word 0x2ff + .word 0x81e62b7d + .word 0x1d9e647 + .word 0x81e6eb7d + .word 0x1e049bf + .word 0x8064e3fc + .word 0x2ff + .word 0x81e6f37d + .word 0x1ec20bc + .word 0x81e6fb7d + .word 0x2ff + .word 0x8421948 + .word 0x2ff + .word 0x1ed2148 + .word 0x1ec38bd + .word 0x1f52149 + .word 0x1ec430a + .word 0x81fd6b7c + .word 0x2ff + .word 0x81fe6b7c + .word 0x2ff + .word 0x1bc1148 + .word 0x1ed693c + .word 0x818c0bbc + .word 0x1eb642a + .word 0x81e6eb7d + .word 0x2ff + .word 0x81e6f37d + .word 0x2ff + .word 0x800c6070 + .word 0x1d9e687 + .word 0x800c0870 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x2ff + .word 0x80013170 + .word 0x1ed20bc + .word 0x800032b5 + .word 0x1c0631c + .word 0x8221948 + .word 0x1c0c61c + .word 0x1ee2148 + .word 0x1ed38bd + .word 0x1f62149 + .word 0x1ed434a + .word 0x81e6337d + .word 0x1ea6328 + .word 0xb0c37ff + .word 0x2ff + .word 0x1bc1148 + .word 0x1ee713c + .word 0x818d0bbc + .word 0x1eb6c6a + .word 0x80094872 + .word 0x216316 + .word 0x810c4bfe + .word 0x1d081ff + .word 0x80031872 + .word 0x1d9e6c7 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x216311 + .word 0x2403ffff + .word 0x1ee20bc + .word 0x5200083b + .word 0x1c06b5c + .word 0x9021948 + .word 0x1c0ce5c + .word 0x1ef2148 + .word 0x1ee38bd + .word 0x1f72149 + .word 0x1ee438a + .word 0x81c6c37d + .word 0x1ea6b68 + .word 0x81e6a37d + .word 0x1ec617d + .word 0x1bc1148 + .word 0x1ef793c + .word 0x818e0bbc + .word 0x1eb74aa + .word 0x5005302d + .word 0x216b56 + .word 0x81e6637d + .word 0x1d189ff + .word 0x80000030 + .word 0x1d9e607 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x216b51 + .word 0x2403ffff + .word 0x1ef20bc + .word 0x52000853 + .word 0x1c0739c + .word 0x8821948 + .word 0x1c0d69c + .word 0x1ec2148 + .word 0x1ef38bd + .word 0x1f42149 + .word 0x1ef43ca + .word 0x81e6cb7d + .word 0x1ea73a8 + .word 0x81e6ab7d + .word 0x1ed697d + .word 0x1bc1148 + .word 0x1ec613c + .word 0x818f0bbc + .word 0x1eb7cea + .word 0x50053021 + .word 0x217396 + .word 0x81e66b7d + .word 0x1d291ff + .word 0x80000030 + .word 0x1d9e647 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x217391 + .word 0x2403ffff + .word 0x1ec20bc + .word 0x5200086b + .word 0x1c07bdc + .word 0x8421948 + .word 0x1c0dedc + .word 0x1ed2148 + .word 0x1ec38bd + .word 0x1f52149 + .word 0x1ec430a + .word 0x81e6d37d + .word 0x1ea7be8 + .word 0x81e6b37d + .word 0x1ee717d + .word 0x1bc1148 + .word 0x1ed693c + .word 0x818c0bbc + .word 0x1eb642a + .word 0x50053015 + .word 0x217bd6 + .word 0x81e6737d + .word 0x1d399ff + .word 0x80000030 + .word 0x1d9e687 + .word 0x80073872 + .word 0x1e049bf + .word 0x8064e3fc + .word 0x217bd1 + .word 0x2403ffff + .word 0x1ed20bc + .word 0x52000883 + .word 0x1c0631c + .word 0x8221948 + .word 0x1c0c61c + .word 0x1ee2148 + .word 0x1ed38bd + .word 0x1f62149 + .word 0x1ed434a + .word 0x81e6db7d + .word 0x1ea6328 + .word 0x81e6bb7d + .word 0x1ef797d + .word 0x1bc1148 + .word 0x1ee713c + .word 0x818d0bbc + .word 0x1eb6c6a + .word 0x520537c9 + .word 0x216316 + .word 0x81e67b7d + .word 0x1d081ff + .word 0x40000602 + .word 0x2ff + .word 0x100f01e7 + .word 0x2ff + .word 0x40000600 + .word 0x2ff + .word 0x100f01f5 + .word 0x2ff + .word 0x400005fe + .word 0x2ff + .word 0x100f0203 + .word 0x2ff + .word 0x400005fc + .word 0x2ff + .word 0x100f0211 + .word 0x2ff + .word 0x80013fb2 + .word 0x1e2976a + .word 0xa2f03fd + .word 0x1e29faa + .word 0x58000fc3 + .word 0x1e287ea + .word 0x80000030 + .word 0x216303 + .word 0x80000030 + .word 0x1dde9ff + .word 0x80000030 + .word 0x1def1ff + .word 0x80000030 + .word 0x1dff9ff + .word 0x100b003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x380d0000 + .word 0x2ff + .word 0x380e0000 + .word 0x2ff + .word 0x800d0874 + .word 0x1d291ff + .word 0x800e0874 + .word 0x1d399ff + .word 0x800b0874 + .word 0x1d081ff + .word 0x110b0000 + .word 0x2ff + .word 0x52000fb6 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x810d53fe + .word 0x2ff + .word 0x420f06bd + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x84e1946 + .word 0x2ff + .word 0x3eb801c + .word 0x2ff + .word 0x3eba01d + .word 0x2ff + .word 0x3eb981f + .word 0x2ff + .word 0x82d7148 + .word 0x2ff + .word 0x3ebb820 + .word 0x2ff + .word 0x3eb9022 + .word 0x2ff + .word 0x9011947 + .word 0x2ff + .word 0x1fd6949 + .word 0x2ff + .word 0x420f0081 + .word 0x2ff + .word 0x82d1946 + .word 0x2ff + .word 0x420f06c3 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x82f03fd + .word 0x2ff + .word 0x8064e3fc + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x400007a1 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x80013fb2 + .word 0x1e29f6a + .word 0xa2f03fd + .word 0x1e287aa + .word 0x58000fab + .word 0x1e28fea + .word 0x80000030 + .word 0x216b43 + .word 0x80000030 + .word 0x1dde9ff + .word 0x80000030 + .word 0x1def1ff + .word 0x80000030 + .word 0x1dff9ff + .word 0x100b003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x380d0000 + .word 0x2ff + .word 0x380e0000 + .word 0x2ff + .word 0x800d0874 + .word 0x1d399ff + .word 0x800e0874 + .word 0x1d081ff + .word 0x800b0874 + .word 0x1d189ff + .word 0x110b0000 + .word 0x2ff + .word 0x52000f9e + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x810d53fe + .word 0x2ff + .word 0x420f0697 + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x82e1946 + .word 0x2ff + .word 0x3eb881c + .word 0x2ff + .word 0x3eba81d + .word 0x2ff + .word 0x3eb801f + .word 0x2ff + .word 0x82d7148 + .word 0x2ff + .word 0x3eba020 + .word 0x2ff + .word 0x3eb9822 + .word 0x2ff + .word 0x8811947 + .word 0x2ff + .word 0x1fd6949 + .word 0x2ff + .word 0x420f005b + .word 0x2ff + .word 0x90d1947 + .word 0x2ff + .word 0x420f069d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x82f03fd + .word 0x2ff + .word 0x8064e3fc + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x40000789 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x80013fb2 + .word 0x1e2876a + .word 0xa2f03fd + .word 0x1e28faa + .word 0x58000f93 + .word 0x1e297ea + .word 0x80000030 + .word 0x217383 + .word 0x80000030 + .word 0x1dde9ff + .word 0x80000030 + .word 0x1def1ff + .word 0x80000030 + .word 0x1dff9ff + .word 0x100b003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x380d0000 + .word 0x2ff + .word 0x380e0000 + .word 0x2ff + .word 0x800d0874 + .word 0x1d081ff + .word 0x800e0874 + .word 0x1d189ff + .word 0x800b0874 + .word 0x1d291ff + .word 0x110b0000 + .word 0x2ff + .word 0x52000f86 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x810d53fe + .word 0x2ff + .word 0x420f0671 + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x90e1947 + .word 0x2ff + .word 0x3eb901c + .word 0x2ff + .word 0x3ebb01d + .word 0x2ff + .word 0x3eb881f + .word 0x2ff + .word 0x82d7148 + .word 0x2ff + .word 0x3eba820 + .word 0x2ff + .word 0x3eb8022 + .word 0x2ff + .word 0x8411947 + .word 0x2ff + .word 0x1fd6949 + .word 0x2ff + .word 0x420f0035 + .word 0x2ff + .word 0x88d1947 + .word 0x2ff + .word 0x420f0677 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x82f03fd + .word 0x2ff + .word 0x8064e3fc + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x40000771 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x80013fb2 + .word 0x1e28f6a + .word 0xa2f03fd + .word 0x1e297aa + .word 0x58000f7b + .word 0x1e29fea + .word 0x80000030 + .word 0x217bc3 + .word 0x80000030 + .word 0x1dde9ff + .word 0x80000030 + .word 0x1def1ff + .word 0x80000030 + .word 0x1dff9ff + .word 0x100b003f + .word 0x2ff + .word 0x38010000 + .word 0x2ff + .word 0x380d0000 + .word 0x2ff + .word 0x380e0000 + .word 0x2ff + .word 0x800d0874 + .word 0x1d189ff + .word 0x800e0874 + .word 0x1d291ff + .word 0x800b0874 + .word 0x1d399ff + .word 0x110b0000 + .word 0x2ff + .word 0x52000f6e + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x810d53fe + .word 0x2ff + .word 0x420f064b + .word 0x2ff + .word 0x8061c3fc + .word 0x2ff + .word 0x88e1947 + .word 0x2ff + .word 0x3eb981c + .word 0x2ff + .word 0x3ebb81d + .word 0x2ff + .word 0x3eb901f + .word 0x2ff + .word 0x82d7148 + .word 0x2ff + .word 0x3ebb020 + .word 0x2ff + .word 0x3eb8822 + .word 0x2ff + .word 0x8211947 + .word 0x2ff + .word 0x1fd6949 + .word 0x2ff + .word 0x420f000f + .word 0x2ff + .word 0x84d1947 + .word 0x2ff + .word 0x420f0651 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x82f03fd + .word 0x2ff + .word 0x8064e3fc + .word 0x2ff + .word 0x110b0000 + .word 0x2ff + .word 0x40000759 + .word 0x2ff + .word 0x110b5800 + .word 0x2ff + .word 0x3eb802d + .word 0x2ff + .word 0x3eb882e + .word 0x2ff + .word 0x3eb902f + .word 0x2ff + .word 0x1900800 + .word 0x2ff + .word 0x1916800 + .word 0x400403 + .word 0x40000008 + .word 0x2ff + .word 0x1927000 + .word 0x400443 + .word 0x3eb802d + .word 0x2ff + .word 0x3eb882e + .word 0x2ff + .word 0x3eb902f + .word 0x2ff + .word 0x1900948 + .word 0x2ff + .word 0x1916948 + .word 0x400403 + .word 0x40000001 + .word 0x2ff + .word 0x1927148 + .word 0x400443 + .word 0x3eba02a + .word 0x400483 + .word 0x3eba82b + .word 0x2ff + .word 0x3ebb02c + .word 0x2ff + .word 0x1f4581d + .word 0x1998407 + .word 0x1f55820 + .word 0x1998c47 + .word 0x3eb6027 + .word 0x1999487 + .word 0x3eb6828 + .word 0x2ff + .word 0x3eb801e + .word 0x1f4a13c + .word 0x3eb8821 + .word 0x1f5a93c + .word 0x3eb9024 + .word 0x1f6e93c + .word 0x3eb7029 + .word 0x2ff + .word 0x3eba01d + .word 0x2ff + .word 0x3eba820 + .word 0x2ff + .word 0x3ebb023 + .word 0x2ff + .word 0x800e5872 + .word 0x2ff + .word 0x1ff0297 + .word 0x2ff + .word 0xb0f03fe + .word 0x2ff + .word 0x80040032 + .word 0x2ff + .word 0x420f0007 + .word 0x2ff + .word 0x1006581c + .word 0x2ff + .word 0x420f0005 + .word 0x2ff + .word 0x1006581f + .word 0x2ff + .word 0x420f0003 + .word 0x2ff + .word 0x10065822 + .word 0x2ff + .word 0x4000004d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x100803ce + .word 0x2ff + .word 0x80090032 + .word 0x2ff + .word 0x120143f8 + .word 0x2ff + .word 0x808743fe + .word 0x2ff + .word 0x5000082f + .word 0x2ff + .word 0x804543fe + .word 0x2ff + .word 0x1ed3000 + .word 0x2ff + .word 0x1ec3800 + .word 0x2ff + .word 0x5200380b + .word 0x2ff + .word 0x808643ff + .word 0x2ff + .word 0x4a0a2800 + .word 0x2ff + .word 0x810643ff + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x2c0d0002 + .word 0x2ff + .word 0x52006833 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x400007ef + .word 0x2ff + .word 0x800841f2 + .word 0x2ff + .word 0x4a0a2800 + .word 0x2ff + .word 0x1f43801 + .word 0x2ff + .word 0x1f53001 + .word 0x2ff + .word 0x1f03802 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x2c0d0002 + .word 0x3eef87 + .word 0x5200080c + .word 0x2ff + .word 0x1f13002 + .word 0x2ff + .word 0x52006803 + .word 0x2ff + .word 0x81feebbc + .word 0x2ff + .word 0x400007e3 + .word 0x2ff + .word 0x800841f2 + .word 0x2ff + .word 0x420a0077 + .word 0x2ff + .word 0x80064072 + .word 0x2ff + .word 0x3e87001 + .word 0x2ff + .word 0x3e8b002 + .word 0x2ff + .word 0x3e89003 + .word 0x2ff + .word 0x400007dc + .word 0x2ff + .word 0x800841f2 + .word 0x2ff + .word 0x5200681c + .word 0x2ff + .word 0x81feebbc + .word 0x2ff + .word 0x420a006e + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e87004 + .word 0x2ff + .word 0x3e8b005 + .word 0x2ff + .word 0x3e89006 + .word 0x2ff + .word 0x800841f2 + .word 0x2ff + .word 0xb084bf8 + .word 0x2ff + .word 0xa864bf8 + .word 0x2ff + .word 0x80094872 + .word 0x2ff + .word 0x400007cf + .word 0x2ff + .word 0x80064772 + .word 0x2ff + .word 0x1ec3000 + .word 0x2ff + .word 0x1f43001 + .word 0x2ff + .word 0x1f03002 + .word 0x2ff + .word 0x80042072 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x81ec03bc + .word 0x1ff632a + .word 0x80000030 + .word 0x1f4a17c + .word 0x80000030 + .word 0x2ff + .word 0x800e70f2 + .word 0x2ff + .word 0x800003bf + .word 0x1c0841c + .word 0x3eea7fe + .word 0x1c0631c + .word 0x80000030 + .word 0x1ea6328 + .word 0x80000030 + .word 0x216311 + .word 0x80000030 + .word 0x216316 + .word 0x3ee87fd + .word 0x1ec617d + .word 0x3ee67ff + .word 0x2ff + .word 0x5c004805 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x9084bf7 + .word 0x2ff + .word 0x8864bf7 + .word 0x2ff + .word 0x400007b9 + .word 0x2ff + .word 0x80094ff2 + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x100803ce + .word 0x2ff + .word 0x810743fe + .word 0x2ff + .word 0x808643fe + .word 0x2ff + .word 0x804543fe + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x50003822 + .word 0x2ff + .word 0x1ec3000 + .word 0x2ff + .word 0x50063820 + .word 0x2ff + .word 0x1ed3800 + .word 0x2ff + .word 0x4a0a2800 + .word 0x2ff + .word 0x1f43001 + .word 0x2ff + .word 0x1f53801 + .word 0x2ff + .word 0x1f03002 + .word 0x2ff + .word 0x2c010002 + .word 0x2ff + .word 0x2c0d0002 + .word 0x3eef87 + .word 0x500d0818 + .word 0x2ff + .word 0x1f13802 + .word 0x2ff + .word 0x5000080c + .word 0x2ff + .word 0x81feebbc + .word 0x2ff + .word 0x420a0038 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e87004 + .word 0x2ff + .word 0x3e8b005 + .word 0x2ff + .word 0x3e89006 + .word 0x2ff + .word 0x80064132 + .word 0x2ff + .word 0x80004335 + .word 0x2ff + .word 0x420f079a + .word 0x2ff + .word 0x800841f2 + .word 0x2ff + .word 0x4000000b + .word 0x2ff + .word 0x80006235 + .word 0x2ff + .word 0x420a002d + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x3e87001 + .word 0x2ff + .word 0x3e8b002 + .word 0x2ff + .word 0x3e89003 + .word 0x2ff + .word 0x80064072 + .word 0x2ff + .word 0x80004335 + .word 0x2ff + .word 0x420f078f + .word 0x2ff + .word 0x800841f2 + .word 0x2ff + .word 0x80006235 + .word 0x2ff + .word 0x120143f1 + .word 0x2ff + .word 0x810043ff + .word 0x2ff + .word 0x808043ff + .word 0x2ff + .word 0x58000fd5 + .word 0x2ff + .word 0x800841f2 + .word 0x2ff + .word 0x50002004 + .word 0x2ff + .word 0x80000030 + .word 0x2ff + .word 0x11042000 + .word 0x2ff + .word 0x11042000 + .word 0x2ff + .word 0x81045bff + .word 0x2ff + .word 0x90f03fe + .word 0x2ff + .word 0x1fd5825 + .word 0x2ff + .word 0x1fe5826 + .word 0x2ff + .word 0x1ec5827 + .word 0x2ff + .word 0x1ed5828 + .word 0x2ff + .word 0x1ee5829 + .word 0x2ff + .word 0x1f4582a + .word 0x2ff + .word 0x1f5582b + .word 0x2ff + .word 0x1f6582c + .word 0x2ff + .word 0x1f0582d + .word 0x2ff + .word 0x1f1582e + .word 0x2ff + .word 0x1f2582f + .word 0x2ff + .word 0x48007800 + .word 0x2ff + .word 0x1ff5830 + .word 0x2ff + .word 0x48005000 + .word 0x2c6740 + .word 0x80000030 + .word 0x2d6f80 + .word 0x48005000 + .word 0x2c6744 + .word 0x80000030 + .word 0x2d6f84 + .word 0x48005000 + .word 0x2c6741 + .word 0x80000030 + .word 0x2d6f81 + .word 0x48005000 + .word 0x2c6745 + .word 0x80000030 + .word 0x2d6f85 + .word 0x48005000 + .word 0x2c6742 + .word 0x80000030 + .word 0x2d6f82 + .word 0x48005000 + .word 0x2c6746 + .word 0x80000030 + .word 0x2d6f86 + .word 0x80000030 + .word 0x1ec6bac + .word 0x80000030 + .word 0x1f4adac + .word 0x80000030 + .word 0x1f08cac + .word 0x800003bf + .word 0x1e0739c + .word 0x80000030 + .word 0x1e0b59c + .word 0x80000030 + .word 0x1e0949c + .word 0x80000030 + .word 0x1ee63a8 + .word 0x48005000 + .word 0x1f6a5a8 + .word 0x80000030 + .word 0x1f284a8 \ No newline at end of file