donut-decomp/asm/libMobiclip/VX2_MotionCompensation.s

758 lines
38 KiB
ArmAsm

.include "macros.inc"
.section .text1, "ax" # 0x80006A00 - 0x80406260
.global DecodeEscape__FR14VX2DecoderDataRiRiRi
DecodeEscape__FR14VX2DecoderDataRiRiRi:
/* 80170EA0 0016CCE0 80 E3 0A 04 */ lwz r7, 0xa04(r3)
/* 80170EA4 0016CCE4 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 80170EA8 0016CCE8 35 47 FF F8 */ addic. r10, r7, -8
/* 80170EAC 0016CCEC 54 0B 40 2E */ slwi r11, r0, 8
/* 80170EB0 0016CCF0 91 63 0A 08 */ stw r11, 0xa08(r3)
/* 80170EB4 0016CCF4 91 43 0A 04 */ stw r10, 0xa04(r3)
/* 80170EB8 0016CCF8 40 80 00 2C */ bge lbl_80170EE4
/* 80170EBC 0016CCFC 80 E3 0A 0C */ lwz r7, 0xa0c(r3)
/* 80170EC0 0016CD00 7D 20 3E 2C */ lhbrx r9, 0, r7
/* 80170EC4 0016CD04 7D 0A 00 D0 */ neg r8, r10
/* 80170EC8 0016CD08 38 E7 00 02 */ addi r7, r7, 2
/* 80170ECC 0016CD0C 38 0A 00 10 */ addi r0, r10, 0x10
/* 80170ED0 0016CD10 7D 28 40 30 */ slw r8, r9, r8
/* 80170ED4 0016CD14 90 E3 0A 0C */ stw r7, 0xa0c(r3)
/* 80170ED8 0016CD18 7D 67 43 78 */ or r7, r11, r8
/* 80170EDC 0016CD1C 90 E3 0A 08 */ stw r7, 0xa08(r3)
/* 80170EE0 0016CD20 90 03 0A 04 */ stw r0, 0xa04(r3)
lbl_80170EE4:
/* 80170EE4 0016CD24 80 E3 0A 14 */ lwz r7, 0xa14(r3)
/* 80170EE8 0016CD28 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 80170EEC 0016CD2C 54 E7 10 3A */ slwi r7, r7, 2
/* 80170EF0 0016CD30 7C E3 3A 14 */ add r7, r3, r7
/* 80170EF4 0016CD34 54 00 6C FC */ rlwinm r0, r0, 0xd, 0x13, 0x1e
/* 80170EF8 0016CD38 80 E7 0A 90 */ lwz r7, 0xa90(r7)
/* 80170EFC 0016CD3C 7D 07 02 2E */ lhzx r8, r7, r0
/* 80170F00 0016CD40 55 00 E6 FE */ rlwinm r0, r8, 0x1c, 0x1b, 0x1f
/* 80170F04 0016CD44 90 06 00 00 */ stw r0, 0(r6)
/* 80170F08 0016CD48 55 07 BE BE */ rlwinm r7, r8, 0x17, 0x1a, 0x1f
/* 80170F0C 0016CD4C 55 09 07 3E */ clrlwi r9, r8, 0x1c
/* 80170F10 0016CD50 90 E5 00 00 */ stw r7, 0(r5)
/* 80170F14 0016CD54 7D 00 7E 70 */ srawi r0, r8, 0xf
/* 80170F18 0016CD58 54 07 30 32 */ slwi r7, r0, 6
/* 80170F1C 0016CD5C 90 04 00 00 */ stw r0, 0(r4)
/* 80170F20 0016CD60 20 09 00 20 */ subfic r0, r9, 0x20
/* 80170F24 0016CD64 81 03 0A 14 */ lwz r8, 0xa14(r3)
/* 80170F28 0016CD68 80 85 00 00 */ lwz r4, 0(r5)
/* 80170F2C 0016CD6C 55 05 10 3A */ slwi r5, r8, 2
/* 80170F30 0016CD70 81 06 00 00 */ lwz r8, 0(r6)
/* 80170F34 0016CD74 7C A3 2A 14 */ add r5, r3, r5
/* 80170F38 0016CD78 80 A5 0A 98 */ lwz r5, 0xa98(r5)
/* 80170F3C 0016CD7C 7C 85 22 14 */ add r4, r5, r4
/* 80170F40 0016CD80 7C 87 20 AE */ lbzx r4, r7, r4
/* 80170F44 0016CD84 7C A8 22 14 */ add r5, r8, r4
/* 80170F48 0016CD88 90 A6 00 00 */ stw r5, 0(r6)
/* 80170F4C 0016CD8C 80 83 0A 08 */ lwz r4, 0xa08(r3)
/* 80170F50 0016CD90 7C 80 04 30 */ srw r0, r4, r0
/* 80170F54 0016CD94 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80170F58 0016CD98 41 82 00 0C */ beq lbl_80170F64
/* 80170F5C 0016CD9C 7C 05 00 D0 */ neg r0, r5
/* 80170F60 0016CDA0 90 06 00 00 */ stw r0, 0(r6)
lbl_80170F64:
/* 80170F64 0016CDA4 80 03 0A 04 */ lwz r0, 0xa04(r3)
/* 80170F68 0016CDA8 80 83 0A 08 */ lwz r4, 0xa08(r3)
/* 80170F6C 0016CDAC 7C E9 00 51 */ subf. r7, r9, r0
/* 80170F70 0016CDB0 7C 88 48 30 */ slw r8, r4, r9
/* 80170F74 0016CDB4 91 03 0A 08 */ stw r8, 0xa08(r3)
/* 80170F78 0016CDB8 90 E3 0A 04 */ stw r7, 0xa04(r3)
/* 80170F7C 0016CDBC 4C 80 00 20 */ bgelr
/* 80170F80 0016CDC0 80 83 0A 0C */ lwz r4, 0xa0c(r3)
/* 80170F84 0016CDC4 7C C0 26 2C */ lhbrx r6, 0, r4
/* 80170F88 0016CDC8 7C A7 00 D0 */ neg r5, r7
/* 80170F8C 0016CDCC 38 84 00 02 */ addi r4, r4, 2
/* 80170F90 0016CDD0 38 07 00 10 */ addi r0, r7, 0x10
/* 80170F94 0016CDD4 7C C5 28 30 */ slw r5, r6, r5
/* 80170F98 0016CDD8 90 83 0A 0C */ stw r4, 0xa0c(r3)
/* 80170F9C 0016CDDC 7D 04 2B 78 */ or r4, r8, r5
/* 80170FA0 0016CDE0 90 83 0A 08 */ stw r4, 0xa08(r3)
/* 80170FA4 0016CDE4 90 03 0A 04 */ stw r0, 0xa04(r3)
/* 80170FA8 0016CDE8 4E 80 00 20 */ blr
/* 80170FAC 0016CDEC 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
.global DecodeEscape2__FR14VX2DecoderDataRiRiRi
DecodeEscape2__FR14VX2DecoderDataRiRiRi:
/* 80170FB0 0016CDF0 80 E3 0A 04 */ lwz r7, 0xa04(r3)
/* 80170FB4 0016CDF4 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 80170FB8 0016CDF8 35 47 FF F7 */ addic. r10, r7, -9
/* 80170FBC 0016CDFC 54 0B 48 2C */ slwi r11, r0, 9
/* 80170FC0 0016CE00 91 63 0A 08 */ stw r11, 0xa08(r3)
/* 80170FC4 0016CE04 91 43 0A 04 */ stw r10, 0xa04(r3)
/* 80170FC8 0016CE08 40 80 00 2C */ bge lbl_80170FF4
/* 80170FCC 0016CE0C 80 E3 0A 0C */ lwz r7, 0xa0c(r3)
/* 80170FD0 0016CE10 7D 20 3E 2C */ lhbrx r9, 0, r7
/* 80170FD4 0016CE14 7D 0A 00 D0 */ neg r8, r10
/* 80170FD8 0016CE18 38 E7 00 02 */ addi r7, r7, 2
/* 80170FDC 0016CE1C 38 0A 00 10 */ addi r0, r10, 0x10
/* 80170FE0 0016CE20 7D 28 40 30 */ slw r8, r9, r8
/* 80170FE4 0016CE24 90 E3 0A 0C */ stw r7, 0xa0c(r3)
/* 80170FE8 0016CE28 7D 67 43 78 */ or r7, r11, r8
/* 80170FEC 0016CE2C 90 E3 0A 08 */ stw r7, 0xa08(r3)
/* 80170FF0 0016CE30 90 03 0A 04 */ stw r0, 0xa04(r3)
lbl_80170FF4:
/* 80170FF4 0016CE34 80 E3 0A 14 */ lwz r7, 0xa14(r3)
/* 80170FF8 0016CE38 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 80170FFC 0016CE3C 54 E7 10 3A */ slwi r7, r7, 2
/* 80171000 0016CE40 7C E3 3A 14 */ add r7, r3, r7
/* 80171004 0016CE44 54 00 6C FC */ rlwinm r0, r0, 0xd, 0x13, 0x1e
/* 80171008 0016CE48 80 E7 0A 90 */ lwz r7, 0xa90(r7)
/* 8017100C 0016CE4C 7D 07 02 2E */ lhzx r8, r7, r0
/* 80171010 0016CE50 55 00 E6 FE */ rlwinm r0, r8, 0x1c, 0x1b, 0x1f
/* 80171014 0016CE54 90 06 00 00 */ stw r0, 0(r6)
/* 80171018 0016CE58 55 07 BE BE */ rlwinm r7, r8, 0x17, 0x1a, 0x1f
/* 8017101C 0016CE5C 55 0A 07 3E */ clrlwi r10, r8, 0x1c
/* 80171020 0016CE60 90 E5 00 00 */ stw r7, 0(r5)
/* 80171024 0016CE64 7D 00 7E 70 */ srawi r0, r8, 0xf
/* 80171028 0016CE68 54 07 30 32 */ slwi r7, r0, 6
/* 8017102C 0016CE6C 90 04 00 00 */ stw r0, 0(r4)
/* 80171030 0016CE70 20 0A 00 20 */ subfic r0, r10, 0x20
/* 80171034 0016CE74 81 03 0A 14 */ lwz r8, 0xa14(r3)
/* 80171038 0016CE78 80 86 00 00 */ lwz r4, 0(r6)
/* 8017103C 0016CE7C 55 08 10 3A */ slwi r8, r8, 2
/* 80171040 0016CE80 81 25 00 00 */ lwz r9, 0(r5)
/* 80171044 0016CE84 7D 03 42 14 */ add r8, r3, r8
/* 80171048 0016CE88 81 08 0A A0 */ lwz r8, 0xaa0(r8)
/* 8017104C 0016CE8C 7C 88 22 14 */ add r4, r8, r4
/* 80171050 0016CE90 7C 87 20 AE */ lbzx r4, r7, r4
/* 80171054 0016CE94 7C 89 22 14 */ add r4, r9, r4
/* 80171058 0016CE98 90 85 00 00 */ stw r4, 0(r5)
/* 8017105C 0016CE9C 80 83 0A 08 */ lwz r4, 0xa08(r3)
/* 80171060 0016CEA0 7C 80 04 30 */ srw r0, r4, r0
/* 80171064 0016CEA4 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80171068 0016CEA8 41 82 00 10 */ beq lbl_80171078
/* 8017106C 0016CEAC 80 06 00 00 */ lwz r0, 0(r6)
/* 80171070 0016CEB0 7C 00 00 D0 */ neg r0, r0
/* 80171074 0016CEB4 90 06 00 00 */ stw r0, 0(r6)
lbl_80171078:
/* 80171078 0016CEB8 80 03 0A 04 */ lwz r0, 0xa04(r3)
/* 8017107C 0016CEBC 80 83 0A 08 */ lwz r4, 0xa08(r3)
/* 80171080 0016CEC0 7C EA 00 51 */ subf. r7, r10, r0
/* 80171084 0016CEC4 7C 88 50 30 */ slw r8, r4, r10
/* 80171088 0016CEC8 91 03 0A 08 */ stw r8, 0xa08(r3)
/* 8017108C 0016CECC 90 E3 0A 04 */ stw r7, 0xa04(r3)
/* 80171090 0016CED0 4C 80 00 20 */ bgelr
/* 80171094 0016CED4 80 83 0A 0C */ lwz r4, 0xa0c(r3)
/* 80171098 0016CED8 7C C0 26 2C */ lhbrx r6, 0, r4
/* 8017109C 0016CEDC 7C A7 00 D0 */ neg r5, r7
/* 801710A0 0016CEE0 38 84 00 02 */ addi r4, r4, 2
/* 801710A4 0016CEE4 38 07 00 10 */ addi r0, r7, 0x10
/* 801710A8 0016CEE8 7C C5 28 30 */ slw r5, r6, r5
/* 801710AC 0016CEEC 90 83 0A 0C */ stw r4, 0xa0c(r3)
/* 801710B0 0016CEF0 7D 04 2B 78 */ or r4, r8, r5
/* 801710B4 0016CEF4 90 83 0A 08 */ stw r4, 0xa08(r3)
/* 801710B8 0016CEF8 90 03 0A 04 */ stw r0, 0xa04(r3)
/* 801710BC 0016CEFC 4E 80 00 20 */ blr
.global DecodeEscape3__FR14VX2DecoderDataRiRiRi
DecodeEscape3__FR14VX2DecoderDataRiRiRi:
/* 801710C0 0016CF00 80 E3 0A 04 */ lwz r7, 0xa04(r3)
/* 801710C4 0016CF04 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 801710C8 0016CF08 35 47 FF F7 */ addic. r10, r7, -9
/* 801710CC 0016CF0C 54 0B 48 2C */ slwi r11, r0, 9
/* 801710D0 0016CF10 91 63 0A 08 */ stw r11, 0xa08(r3)
/* 801710D4 0016CF14 91 43 0A 04 */ stw r10, 0xa04(r3)
/* 801710D8 0016CF18 40 80 00 2C */ bge lbl_80171104
/* 801710DC 0016CF1C 80 E3 0A 0C */ lwz r7, 0xa0c(r3)
/* 801710E0 0016CF20 7D 20 3E 2C */ lhbrx r9, 0, r7
/* 801710E4 0016CF24 7D 0A 00 D0 */ neg r8, r10
/* 801710E8 0016CF28 38 E7 00 02 */ addi r7, r7, 2
/* 801710EC 0016CF2C 38 0A 00 10 */ addi r0, r10, 0x10
/* 801710F0 0016CF30 7D 28 40 30 */ slw r8, r9, r8
/* 801710F4 0016CF34 90 E3 0A 0C */ stw r7, 0xa0c(r3)
/* 801710F8 0016CF38 7D 67 43 78 */ or r7, r11, r8
/* 801710FC 0016CF3C 90 E3 0A 08 */ stw r7, 0xa08(r3)
/* 80171100 0016CF40 90 03 0A 04 */ stw r0, 0xa04(r3)
lbl_80171104:
/* 80171104 0016CF44 80 E3 0A 04 */ lwz r7, 0xa04(r3)
/* 80171108 0016CF48 81 03 0A 08 */ lwz r8, 0xa08(r3)
/* 8017110C 0016CF4C 35 47 FF FF */ addic. r10, r7, -1
/* 80171110 0016CF50 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 80171114 0016CF54 55 0C 0F FE */ srwi r12, r8, 0x1f
/* 80171118 0016CF58 54 0B 08 3C */ slwi r11, r0, 1
/* 8017111C 0016CF5C 91 43 0A 04 */ stw r10, 0xa04(r3)
/* 80171120 0016CF60 91 63 0A 08 */ stw r11, 0xa08(r3)
/* 80171124 0016CF64 40 80 00 2C */ bge lbl_80171150
/* 80171128 0016CF68 80 E3 0A 0C */ lwz r7, 0xa0c(r3)
/* 8017112C 0016CF6C 7D 20 3E 2C */ lhbrx r9, 0, r7
/* 80171130 0016CF70 7D 0A 00 D0 */ neg r8, r10
/* 80171134 0016CF74 38 E7 00 02 */ addi r7, r7, 2
/* 80171138 0016CF78 38 0A 00 10 */ addi r0, r10, 0x10
/* 8017113C 0016CF7C 7D 28 40 30 */ slw r8, r9, r8
/* 80171140 0016CF80 90 E3 0A 0C */ stw r7, 0xa0c(r3)
/* 80171144 0016CF84 7D 67 43 78 */ or r7, r11, r8
/* 80171148 0016CF88 90 E3 0A 08 */ stw r7, 0xa08(r3)
/* 8017114C 0016CF8C 90 03 0A 04 */ stw r0, 0xa04(r3)
lbl_80171150:
/* 80171150 0016CF90 91 84 00 00 */ stw r12, 0(r4)
/* 80171154 0016CF94 80 83 0A 04 */ lwz r4, 0xa04(r3)
/* 80171158 0016CF98 80 E3 0A 08 */ lwz r7, 0xa08(r3)
/* 8017115C 0016CF9C 35 24 FF FA */ addic. r9, r4, -6
/* 80171160 0016CFA0 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 80171164 0016CFA4 54 EB 36 BE */ srwi r11, r7, 0x1a
/* 80171168 0016CFA8 54 0A 30 32 */ slwi r10, r0, 6
/* 8017116C 0016CFAC 91 23 0A 04 */ stw r9, 0xa04(r3)
/* 80171170 0016CFB0 91 43 0A 08 */ stw r10, 0xa08(r3)
/* 80171174 0016CFB4 40 80 00 2C */ bge lbl_801711A0
/* 80171178 0016CFB8 80 83 0A 0C */ lwz r4, 0xa0c(r3)
/* 8017117C 0016CFBC 7D 00 26 2C */ lhbrx r8, 0, r4
/* 80171180 0016CFC0 7C E9 00 D0 */ neg r7, r9
/* 80171184 0016CFC4 38 84 00 02 */ addi r4, r4, 2
/* 80171188 0016CFC8 38 09 00 10 */ addi r0, r9, 0x10
/* 8017118C 0016CFCC 7D 07 38 30 */ slw r7, r8, r7
/* 80171190 0016CFD0 90 83 0A 0C */ stw r4, 0xa0c(r3)
/* 80171194 0016CFD4 7D 44 3B 78 */ or r4, r10, r7
/* 80171198 0016CFD8 90 83 0A 08 */ stw r4, 0xa08(r3)
/* 8017119C 0016CFDC 90 03 0A 04 */ stw r0, 0xa04(r3)
lbl_801711A0:
/* 801711A0 0016CFE0 91 65 00 00 */ stw r11, 0(r5)
/* 801711A4 0016CFE4 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 801711A8 0016CFE8 7C 00 A6 70 */ srawi r0, r0, 0x14
/* 801711AC 0016CFEC 90 06 00 00 */ stw r0, 0(r6)
/* 801711B0 0016CFF0 80 83 0A 04 */ lwz r4, 0xa04(r3)
/* 801711B4 0016CFF4 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 801711B8 0016CFF8 34 E4 FF F4 */ addic. r7, r4, -12
/* 801711BC 0016CFFC 54 08 60 26 */ slwi r8, r0, 0xc
/* 801711C0 0016D000 91 03 0A 08 */ stw r8, 0xa08(r3)
/* 801711C4 0016D004 90 E3 0A 04 */ stw r7, 0xa04(r3)
/* 801711C8 0016D008 4C 80 00 20 */ bgelr
/* 801711CC 0016D00C 80 83 0A 0C */ lwz r4, 0xa0c(r3)
/* 801711D0 0016D010 7C C0 26 2C */ lhbrx r6, 0, r4
/* 801711D4 0016D014 7C A7 00 D0 */ neg r5, r7
/* 801711D8 0016D018 38 84 00 02 */ addi r4, r4, 2
/* 801711DC 0016D01C 38 07 00 10 */ addi r0, r7, 0x10
/* 801711E0 0016D020 7C C5 28 30 */ slw r5, r6, r5
/* 801711E4 0016D024 90 83 0A 0C */ stw r4, 0xa0c(r3)
/* 801711E8 0016D028 7D 04 2B 78 */ or r4, r8, r5
/* 801711EC 0016D02C 90 83 0A 08 */ stw r4, 0xa08(r3)
/* 801711F0 0016D030 90 03 0A 04 */ stw r0, 0xa04(r3)
/* 801711F4 0016D034 4E 80 00 20 */ blr
/* 801711F8 0016D038 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
/* 801711FC 0016D03C 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
.global VX2InitMc__FR14VX2DecoderData
VX2InitMc__FR14VX2DecoderData:
/* 80171200 0016D040 3C 80 80 54 */ lis r4, InvMc8x8Table@ha
/* 80171204 0016D044 80 03 0F 74 */ lwz r0, 0xf74(r3)
/* 80171208 0016D048 90 04 44 B8 */ stw r0, InvMc8x8Table@l(r4)
/* 8017120C 0016D04C 38 C4 44 B8 */ addi r6, r4, 0x44b8
/* 80171210 0016D050 3C A0 80 54 */ lis r5, InvMc4x4Table@ha
/* 80171214 0016D054 80 03 0F 78 */ lwz r0, 0xf78(r3)
/* 80171218 0016D058 38 85 44 E0 */ addi r4, r5, InvMc4x4Table@l
/* 8017121C 0016D05C 90 06 00 04 */ stw r0, 4(r6)
/* 80171220 0016D060 90 06 00 08 */ stw r0, 8(r6)
/* 80171224 0016D064 80 03 0F 7C */ lwz r0, 0xf7c(r3)
/* 80171228 0016D068 90 06 00 0C */ stw r0, 0xc(r6)
/* 8017122C 0016D06C 90 06 00 10 */ stw r0, 0x10(r6)
/* 80171230 0016D070 90 06 00 14 */ stw r0, 0x14(r6)
/* 80171234 0016D074 90 06 00 18 */ stw r0, 0x18(r6)
/* 80171238 0016D078 90 06 00 1C */ stw r0, 0x1c(r6)
/* 8017123C 0016D07C 90 06 00 20 */ stw r0, 0x20(r6)
/* 80171240 0016D080 90 06 00 24 */ stw r0, 0x24(r6)
/* 80171244 0016D084 80 03 0F 88 */ lwz r0, 0xf88(r3)
/* 80171248 0016D088 90 05 44 E0 */ stw r0, 0x44e0(r5)
/* 8017124C 0016D08C 80 03 0F 8C */ lwz r0, 0xf8c(r3)
/* 80171250 0016D090 90 04 00 04 */ stw r0, 4(r4)
/* 80171254 0016D094 90 04 00 08 */ stw r0, 8(r4)
/* 80171258 0016D098 80 03 0F 90 */ lwz r0, 0xf90(r3)
/* 8017125C 0016D09C 90 04 00 0C */ stw r0, 0xc(r4)
/* 80171260 0016D0A0 90 04 00 10 */ stw r0, 0x10(r4)
/* 80171264 0016D0A4 90 04 00 14 */ stw r0, 0x14(r4)
/* 80171268 0016D0A8 90 04 00 18 */ stw r0, 0x18(r4)
/* 8017126C 0016D0AC 90 04 00 1C */ stw r0, 0x1c(r4)
/* 80171270 0016D0B0 90 04 00 20 */ stw r0, 0x20(r4)
/* 80171274 0016D0B4 90 04 00 24 */ stw r0, 0x24(r4)
/* 80171278 0016D0B8 90 04 00 28 */ stw r0, 0x28(r4)
/* 8017127C 0016D0BC 90 04 00 2C */ stw r0, 0x2c(r4)
/* 80171280 0016D0C0 90 04 00 30 */ stw r0, 0x30(r4)
/* 80171284 0016D0C4 90 04 00 34 */ stw r0, 0x34(r4)
/* 80171288 0016D0C8 90 04 00 38 */ stw r0, 0x38(r4)
/* 8017128C 0016D0CC 90 04 00 3C */ stw r0, 0x3c(r4)
/* 80171290 0016D0D0 4E 80 00 20 */ blr
/* 80171294 0016D0D4 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
/* 80171298 0016D0D8 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
/* 8017129C 0016D0DC 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
.global VX2McBlock8x8Fast__FR14VX2DecoderDataPUci
VX2McBlock8x8Fast__FR14VX2DecoderDataPUci:
/* 801712A0 0016D0E0 94 21 FF 20 */ stwu r1, -0xe0(r1)
/* 801712A4 0016D0E4 7C 08 02 A6 */ mflr r0
/* 801712A8 0016D0E8 90 01 00 E4 */ stw r0, 0xe4(r1)
/* 801712AC 0016D0EC 39 61 00 E0 */ addi r11, r1, 0xe0
/* 801712B0 0016D0F0 4B E9 60 85 */ bl func_80007334
/* 801712B4 0016D0F4 38 01 00 27 */ addi r0, r1, 0x27
/* 801712B8 0016D0F8 81 83 0F 84 */ lwz r12, 0xf84(r3)
/* 801712BC 0016D0FC 54 1E 00 36 */ rlwinm r30, r0, 0, 0, 0x1b
/* 801712C0 0016D100 7C 79 1B 78 */ mr r25, r3
/* 801712C4 0016D104 7C 9A 23 78 */ mr r26, r4
/* 801712C8 0016D108 7C BB 2B 78 */ mr r27, r5
/* 801712CC 0016D10C 7F C3 F3 78 */ mr r3, r30
/* 801712D0 0016D110 7D 89 03 A6 */ mtctr r12
/* 801712D4 0016D114 4E 80 04 21 */ bctrl
/* 801712D8 0016D118 3F 80 80 41 */ lis r28, ZigZag8x8@ha
/* 801712DC 0016D11C 3F E0 80 41 */ lis r31, DecodeEscapeTable@ha
/* 801712E0 0016D120 3B B9 08 C0 */ addi r29, r25, 0x8c0
/* 801712E4 0016D124 3B 9C 43 88 */ addi r28, r28, ZigZag8x8@l
/* 801712E8 0016D128 3B FF 43 78 */ addi r31, r31, DecodeEscapeTable@l
lbl_801712EC:
/* 801712EC 0016D12C 80 99 0A 08 */ lwz r4, 0xa08(r25)
/* 801712F0 0016D130 54 80 3E 7E */ srwi r0, r4, 0x19
/* 801712F4 0016D134 28 00 00 03 */ cmplwi r0, 3
/* 801712F8 0016D138 40 82 00 2C */ bne lbl_80171324
/* 801712FC 0016D13C 80 19 0A 08 */ lwz r0, 0xa08(r25)
/* 80171300 0016D140 7F 23 CB 78 */ mr r3, r25
/* 80171304 0016D144 38 81 00 10 */ addi r4, r1, 0x10
/* 80171308 0016D148 38 A1 00 0C */ addi r5, r1, 0xc
/* 8017130C 0016D14C 54 00 5F 3A */ rlwinm r0, r0, 0xb, 0x1c, 0x1d
/* 80171310 0016D150 38 C1 00 08 */ addi r6, r1, 8
/* 80171314 0016D154 7D 9F 00 2E */ lwzx r12, r31, r0
/* 80171318 0016D158 7D 89 03 A6 */ mtctr r12
/* 8017131C 0016D15C 4E 80 04 21 */ bctrl
/* 80171320 0016D160 48 00 00 94 */ b lbl_801713B4
lbl_80171324:
/* 80171324 0016D164 80 79 0A 14 */ lwz r3, 0xa14(r25)
/* 80171328 0016D168 54 80 6C FC */ rlwinm r0, r4, 0xd, 0x13, 0x1e
/* 8017132C 0016D16C 54 63 10 3A */ slwi r3, r3, 2
/* 80171330 0016D170 7C 79 1A 14 */ add r3, r25, r3
/* 80171334 0016D174 80 63 0A 90 */ lwz r3, 0xa90(r3)
/* 80171338 0016D178 7C C3 02 2E */ lhzx r6, r3, r0
/* 8017133C 0016D17C 7C C3 7E 70 */ srawi r3, r6, 0xf
/* 80171340 0016D180 54 C7 07 3E */ clrlwi r7, r6, 0x1c
/* 80171344 0016D184 20 07 00 20 */ subfic r0, r7, 0x20
/* 80171348 0016D188 54 C5 E6 FE */ rlwinm r5, r6, 0x1c, 0x1b, 0x1f
/* 8017134C 0016D18C 7C 80 04 30 */ srw r0, r4, r0
/* 80171350 0016D190 54 C4 BE BE */ rlwinm r4, r6, 0x17, 0x1a, 0x1f
/* 80171354 0016D194 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80171358 0016D198 90 A1 00 08 */ stw r5, 8(r1)
/* 8017135C 0016D19C 90 81 00 0C */ stw r4, 0xc(r1)
/* 80171360 0016D1A0 90 61 00 10 */ stw r3, 0x10(r1)
/* 80171364 0016D1A4 41 82 00 0C */ beq lbl_80171370
/* 80171368 0016D1A8 7C 05 00 D0 */ neg r0, r5
/* 8017136C 0016D1AC 90 01 00 08 */ stw r0, 8(r1)
lbl_80171370:
/* 80171370 0016D1B0 80 19 0A 04 */ lwz r0, 0xa04(r25)
/* 80171374 0016D1B4 80 79 0A 08 */ lwz r3, 0xa08(r25)
/* 80171378 0016D1B8 7C C7 00 51 */ subf. r6, r7, r0
/* 8017137C 0016D1BC 7C 67 38 30 */ slw r7, r3, r7
/* 80171380 0016D1C0 90 F9 0A 08 */ stw r7, 0xa08(r25)
/* 80171384 0016D1C4 90 D9 0A 04 */ stw r6, 0xa04(r25)
/* 80171388 0016D1C8 40 80 00 2C */ bge lbl_801713B4
/* 8017138C 0016D1CC 80 79 0A 0C */ lwz r3, 0xa0c(r25)
/* 80171390 0016D1D0 7C A0 1E 2C */ lhbrx r5, 0, r3
/* 80171394 0016D1D4 7C 86 00 D0 */ neg r4, r6
/* 80171398 0016D1D8 38 63 00 02 */ addi r3, r3, 2
/* 8017139C 0016D1DC 38 06 00 10 */ addi r0, r6, 0x10
/* 801713A0 0016D1E0 7C A4 20 30 */ slw r4, r5, r4
/* 801713A4 0016D1E4 90 79 0A 0C */ stw r3, 0xa0c(r25)
/* 801713A8 0016D1E8 7C E3 23 78 */ or r3, r7, r4
/* 801713AC 0016D1EC 90 79 0A 08 */ stw r3, 0xa08(r25)
/* 801713B0 0016D1F0 90 19 0A 04 */ stw r0, 0xa04(r25)
lbl_801713B4:
/* 801713B4 0016D1F4 80 01 00 0C */ lwz r0, 0xc(r1)
/* 801713B8 0016D1F8 80 81 00 08 */ lwz r4, 8(r1)
/* 801713BC 0016D1FC 54 00 10 3A */ slwi r0, r0, 2
/* 801713C0 0016D200 7C 7D 00 6E */ lwzux r3, r29, r0
/* 801713C4 0016D204 7C 1C 00 6E */ lwzux r0, r28, r0
/* 801713C8 0016D208 7C 64 19 D6 */ mullw r3, r4, r3
/* 801713CC 0016D20C 3B BD 00 04 */ addi r29, r29, 4
/* 801713D0 0016D210 54 00 08 3C */ slwi r0, r0, 1
/* 801713D4 0016D214 3B 9C 00 04 */ addi r28, r28, 4
/* 801713D8 0016D218 7C 7E 03 2E */ sthx r3, r30, r0
/* 801713DC 0016D21C 80 01 00 10 */ lwz r0, 0x10(r1)
/* 801713E0 0016D220 2C 00 00 00 */ cmpwi r0, 0
/* 801713E4 0016D224 41 82 FF 08 */ beq lbl_801712EC
/* 801713E8 0016D228 3C 60 80 41 */ lis r3, ZigZag8x8@ha
/* 801713EC 0016D22C 38 63 43 88 */ addi r3, r3, ZigZag8x8@l
/* 801713F0 0016D230 7C 03 E0 50 */ subf r0, r3, r28
/* 801713F4 0016D234 7C 00 16 70 */ srawi r0, r0, 2
/* 801713F8 0016D238 7C 60 01 94 */ addze r3, r0
/* 801713FC 0016D23C 2C 03 00 0A */ cmpwi r3, 0xa
/* 80171400 0016D240 41 81 00 30 */ bgt lbl_80171430
/* 80171404 0016D244 38 03 FF FF */ addi r0, r3, -1
/* 80171408 0016D248 3C A0 80 54 */ lis r5, InvMc8x8Table@ha
/* 8017140C 0016D24C 54 00 10 3A */ slwi r0, r0, 2
/* 80171410 0016D250 7F C3 F3 78 */ mr r3, r30
/* 80171414 0016D254 38 A5 44 B8 */ addi r5, r5, InvMc8x8Table@l
/* 80171418 0016D258 7F 44 D3 78 */ mr r4, r26
/* 8017141C 0016D25C 7D 85 00 2E */ lwzx r12, r5, r0
/* 80171420 0016D260 7F 65 DB 78 */ mr r5, r27
/* 80171424 0016D264 7D 89 03 A6 */ mtctr r12
/* 80171428 0016D268 4E 80 04 21 */ bctrl
/* 8017142C 0016D26C 48 00 00 1C */ b lbl_80171448
lbl_80171430:
/* 80171430 0016D270 81 99 0F 80 */ lwz r12, 0xf80(r25)
/* 80171434 0016D274 7F C3 F3 78 */ mr r3, r30
/* 80171438 0016D278 7F 44 D3 78 */ mr r4, r26
/* 8017143C 0016D27C 7F 65 DB 78 */ mr r5, r27
/* 80171440 0016D280 7D 89 03 A6 */ mtctr r12
/* 80171444 0016D284 4E 80 04 21 */ bctrl
lbl_80171448:
/* 80171448 0016D288 39 61 00 E0 */ addi r11, r1, 0xe0
/* 8017144C 0016D28C 4B E9 5F 35 */ bl func_80007380
/* 80171450 0016D290 80 01 00 E4 */ lwz r0, 0xe4(r1)
/* 80171454 0016D294 7C 08 03 A6 */ mtlr r0
/* 80171458 0016D298 38 21 00 E0 */ addi r1, r1, 0xe0
/* 8017145C 0016D29C 4E 80 00 20 */ blr
.global VX2McBlock4x4Fast__FR14VX2DecoderDataPUci
VX2McBlock4x4Fast__FR14VX2DecoderDataPUci:
/* 80171460 0016D2A0 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80171464 0016D2A4 7C 08 02 A6 */ mflr r0
/* 80171468 0016D2A8 90 01 00 64 */ stw r0, 0x64(r1)
/* 8017146C 0016D2AC 39 61 00 60 */ addi r11, r1, 0x60
/* 80171470 0016D2B0 4B E9 5E C5 */ bl func_80007334
/* 80171474 0016D2B4 81 83 0F 94 */ lwz r12, 0xf94(r3)
/* 80171478 0016D2B8 7C 7A 1B 78 */ mr r26, r3
/* 8017147C 0016D2BC 7C 9B 23 78 */ mr r27, r4
/* 80171480 0016D2C0 7C BC 2B 78 */ mr r28, r5
/* 80171484 0016D2C4 38 61 00 18 */ addi r3, r1, 0x18
/* 80171488 0016D2C8 7D 89 03 A6 */ mtctr r12
/* 8017148C 0016D2CC 4E 80 04 21 */ bctrl
/* 80171490 0016D2D0 3F A0 80 41 */ lis r29, ZigZag4x4@ha
/* 80171494 0016D2D4 3F E0 80 41 */ lis r31, DecodeEscapeTable@ha
/* 80171498 0016D2D8 3B DA 09 C0 */ addi r30, r26, 0x9c0
/* 8017149C 0016D2DC 3B 21 00 18 */ addi r25, r1, 0x18
/* 801714A0 0016D2E0 3B BD 44 88 */ addi r29, r29, ZigZag4x4@l
/* 801714A4 0016D2E4 3B FF 43 78 */ addi r31, r31, DecodeEscapeTable@l
lbl_801714A8:
/* 801714A8 0016D2E8 80 9A 0A 08 */ lwz r4, 0xa08(r26)
/* 801714AC 0016D2EC 54 80 3E 7E */ srwi r0, r4, 0x19
/* 801714B0 0016D2F0 28 00 00 03 */ cmplwi r0, 3
/* 801714B4 0016D2F4 40 82 00 2C */ bne lbl_801714E0
/* 801714B8 0016D2F8 80 1A 0A 08 */ lwz r0, 0xa08(r26)
/* 801714BC 0016D2FC 7F 43 D3 78 */ mr r3, r26
/* 801714C0 0016D300 38 81 00 10 */ addi r4, r1, 0x10
/* 801714C4 0016D304 38 A1 00 0C */ addi r5, r1, 0xc
/* 801714C8 0016D308 54 00 5F 3A */ rlwinm r0, r0, 0xb, 0x1c, 0x1d
/* 801714CC 0016D30C 38 C1 00 08 */ addi r6, r1, 8
/* 801714D0 0016D310 7D 9F 00 2E */ lwzx r12, r31, r0
/* 801714D4 0016D314 7D 89 03 A6 */ mtctr r12
/* 801714D8 0016D318 4E 80 04 21 */ bctrl
/* 801714DC 0016D31C 48 00 00 94 */ b lbl_80171570
lbl_801714E0:
/* 801714E0 0016D320 80 7A 0A 14 */ lwz r3, 0xa14(r26)
/* 801714E4 0016D324 54 80 6C FC */ rlwinm r0, r4, 0xd, 0x13, 0x1e
/* 801714E8 0016D328 54 63 10 3A */ slwi r3, r3, 2
/* 801714EC 0016D32C 7C 7A 1A 14 */ add r3, r26, r3
/* 801714F0 0016D330 80 63 0A 90 */ lwz r3, 0xa90(r3)
/* 801714F4 0016D334 7C C3 02 2E */ lhzx r6, r3, r0
/* 801714F8 0016D338 7C C3 7E 70 */ srawi r3, r6, 0xf
/* 801714FC 0016D33C 54 C7 07 3E */ clrlwi r7, r6, 0x1c
/* 80171500 0016D340 20 07 00 20 */ subfic r0, r7, 0x20
/* 80171504 0016D344 54 C5 E6 FE */ rlwinm r5, r6, 0x1c, 0x1b, 0x1f
/* 80171508 0016D348 7C 80 04 30 */ srw r0, r4, r0
/* 8017150C 0016D34C 54 C4 BE BE */ rlwinm r4, r6, 0x17, 0x1a, 0x1f
/* 80171510 0016D350 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80171514 0016D354 90 A1 00 08 */ stw r5, 8(r1)
/* 80171518 0016D358 90 81 00 0C */ stw r4, 0xc(r1)
/* 8017151C 0016D35C 90 61 00 10 */ stw r3, 0x10(r1)
/* 80171520 0016D360 41 82 00 0C */ beq lbl_8017152C
/* 80171524 0016D364 7C 05 00 D0 */ neg r0, r5
/* 80171528 0016D368 90 01 00 08 */ stw r0, 8(r1)
lbl_8017152C:
/* 8017152C 0016D36C 80 1A 0A 04 */ lwz r0, 0xa04(r26)
/* 80171530 0016D370 80 7A 0A 08 */ lwz r3, 0xa08(r26)
/* 80171534 0016D374 7C C7 00 51 */ subf. r6, r7, r0
/* 80171538 0016D378 7C 67 38 30 */ slw r7, r3, r7
/* 8017153C 0016D37C 90 FA 0A 08 */ stw r7, 0xa08(r26)
/* 80171540 0016D380 90 DA 0A 04 */ stw r6, 0xa04(r26)
/* 80171544 0016D384 40 80 00 2C */ bge lbl_80171570
/* 80171548 0016D388 80 7A 0A 0C */ lwz r3, 0xa0c(r26)
/* 8017154C 0016D38C 7C A0 1E 2C */ lhbrx r5, 0, r3
/* 80171550 0016D390 7C 86 00 D0 */ neg r4, r6
/* 80171554 0016D394 38 63 00 02 */ addi r3, r3, 2
/* 80171558 0016D398 38 06 00 10 */ addi r0, r6, 0x10
/* 8017155C 0016D39C 7C A4 20 30 */ slw r4, r5, r4
/* 80171560 0016D3A0 90 7A 0A 0C */ stw r3, 0xa0c(r26)
/* 80171564 0016D3A4 7C E3 23 78 */ or r3, r7, r4
/* 80171568 0016D3A8 90 7A 0A 08 */ stw r3, 0xa08(r26)
/* 8017156C 0016D3AC 90 1A 0A 04 */ stw r0, 0xa04(r26)
lbl_80171570:
/* 80171570 0016D3B0 80 61 00 0C */ lwz r3, 0xc(r1)
/* 80171574 0016D3B4 80 01 00 10 */ lwz r0, 0x10(r1)
/* 80171578 0016D3B8 54 65 10 3A */ slwi r5, r3, 2
/* 8017157C 0016D3BC 80 81 00 08 */ lwz r4, 8(r1)
/* 80171580 0016D3C0 7C 7E 28 6E */ lwzux r3, r30, r5
/* 80171584 0016D3C4 2C 00 00 00 */ cmpwi r0, 0
/* 80171588 0016D3C8 7C 1D 28 6E */ lwzux r0, r29, r5
/* 8017158C 0016D3CC 7C 64 19 D6 */ mullw r3, r4, r3
/* 80171590 0016D3D0 3B DE 00 04 */ addi r30, r30, 4
/* 80171594 0016D3D4 54 00 08 3C */ slwi r0, r0, 1
/* 80171598 0016D3D8 3B BD 00 04 */ addi r29, r29, 4
/* 8017159C 0016D3DC 7C 79 03 2E */ sthx r3, r25, r0
/* 801715A0 0016D3E0 41 82 FF 08 */ beq lbl_801714A8
/* 801715A4 0016D3E4 3C 80 80 41 */ lis r4, ZigZag4x4@ha
/* 801715A8 0016D3E8 3C C0 80 54 */ lis r6, InvMc4x4Table@ha
/* 801715AC 0016D3EC 38 84 44 88 */ addi r4, r4, ZigZag4x4@l
/* 801715B0 0016D3F0 7F 23 CB 78 */ mr r3, r25
/* 801715B4 0016D3F4 7C 04 E8 50 */ subf r0, r4, r29
/* 801715B8 0016D3F8 38 C6 44 E0 */ addi r6, r6, InvMc4x4Table@l
/* 801715BC 0016D3FC 7C 00 16 70 */ srawi r0, r0, 2
/* 801715C0 0016D400 7F 64 DB 78 */ mr r4, r27
/* 801715C4 0016D404 7C E0 01 94 */ addze r7, r0
/* 801715C8 0016D408 7F 85 E3 78 */ mr r5, r28
/* 801715CC 0016D40C 38 07 FF FF */ addi r0, r7, -1
/* 801715D0 0016D410 54 00 10 3A */ slwi r0, r0, 2
/* 801715D4 0016D414 7D 86 00 2E */ lwzx r12, r6, r0
/* 801715D8 0016D418 7D 89 03 A6 */ mtctr r12
/* 801715DC 0016D41C 4E 80 04 21 */ bctrl
/* 801715E0 0016D420 39 61 00 60 */ addi r11, r1, 0x60
/* 801715E4 0016D424 4B E9 5D 9D */ bl func_80007380
/* 801715E8 0016D428 80 01 00 64 */ lwz r0, 0x64(r1)
/* 801715EC 0016D42C 7C 08 03 A6 */ mtlr r0
/* 801715F0 0016D430 38 21 00 60 */ addi r1, r1, 0x60
/* 801715F4 0016D434 4E 80 00 20 */ blr
/* 801715F8 0016D438 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
/* 801715FC 0016D43C 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
.global VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
VX2DecodeMc8x8__FR14VX2DecoderDataPUcii:
/* 80171600 0016D440 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80171604 0016D444 7C 08 02 A6 */ mflr r0
/* 80171608 0016D448 90 01 00 24 */ stw r0, 0x24(r1)
/* 8017160C 0016D44C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80171610 0016D450 7C BF 2B 78 */ mr r31, r5
/* 80171614 0016D454 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80171618 0016D458 7C 9E 23 78 */ mr r30, r4
/* 8017161C 0016D45C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80171620 0016D460 7C 7D 1B 78 */ mr r29, r3
/* 80171624 0016D464 93 81 00 10 */ stw r28, 0x10(r1)
/* 80171628 0016D468 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 8017162C 0016D46C 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
/* 80171630 0016D470 40 82 00 F4 */ bne lbl_80171724
/* 80171634 0016D474 81 23 0A 08 */ lwz r9, 0xa08(r3)
/* 80171638 0016D478 3C A0 80 45 */ lis r5, VX2GolombCode@ha
/* 8017163C 0016D47C 3C 80 80 45 */ lis r4, VX2GolombCodeSize@ha
/* 80171640 0016D480 80 03 0A 04 */ lwz r0, 0xa04(r3)
/* 80171644 0016D484 55 27 6C FE */ srwi r7, r9, 0x13
/* 80171648 0016D488 38 A5 09 D8 */ addi r5, r5, VX2GolombCode@l
/* 8017164C 0016D48C 7D 45 38 AE */ lbzx r10, r5, r7
/* 80171650 0016D490 38 84 29 D8 */ addi r4, r4, VX2GolombCodeSize@l
/* 80171654 0016D494 55 45 10 3A */ slwi r5, r10, 2
/* 80171658 0016D498 7C 84 28 2E */ lwzx r4, r4, r5
/* 8017165C 0016D49C 7D 04 00 51 */ subf. r8, r4, r0
/* 80171660 0016D4A0 7D 29 20 30 */ slw r9, r9, r4
/* 80171664 0016D4A4 91 23 0A 08 */ stw r9, 0xa08(r3)
/* 80171668 0016D4A8 91 03 0A 04 */ stw r8, 0xa04(r3)
/* 8017166C 0016D4AC 40 80 00 2C */ bge lbl_80171698
/* 80171670 0016D4B0 80 83 0A 0C */ lwz r4, 0xa0c(r3)
/* 80171674 0016D4B4 7C E0 26 2C */ lhbrx r7, 0, r4
/* 80171678 0016D4B8 7C A8 00 D0 */ neg r5, r8
/* 8017167C 0016D4BC 38 84 00 02 */ addi r4, r4, 2
/* 80171680 0016D4C0 38 08 00 10 */ addi r0, r8, 0x10
/* 80171684 0016D4C4 7C E5 28 30 */ slw r5, r7, r5
/* 80171688 0016D4C8 90 83 0A 0C */ stw r4, 0xa0c(r3)
/* 8017168C 0016D4CC 7D 24 2B 78 */ or r4, r9, r5
/* 80171690 0016D4D0 90 83 0A 08 */ stw r4, 0xa08(r3)
/* 80171694 0016D4D4 90 03 0A 04 */ stw r0, 0xa04(r3)
lbl_80171698:
/* 80171698 0016D4D8 1C 06 00 44 */ mulli r0, r6, 0x44
/* 8017169C 0016D4DC 3C 80 80 41 */ lis r4, InvSbpTable@ha
/* 801716A0 0016D4E0 55 43 10 3A */ slwi r3, r10, 2
/* 801716A4 0016D4E4 38 84 42 F0 */ addi r4, r4, InvSbpTable@l
/* 801716A8 0016D4E8 7C 04 02 14 */ add r0, r4, r0
/* 801716AC 0016D4EC 7F 83 00 2E */ lwzx r28, r3, r0
/* 801716B0 0016D4F0 57 80 07 BD */ rlwinm. r0, r28, 0, 0x1e, 0x1e
/* 801716B4 0016D4F4 41 82 00 14 */ beq lbl_801716C8
/* 801716B8 0016D4F8 7F A3 EB 78 */ mr r3, r29
/* 801716BC 0016D4FC 7F C4 F3 78 */ mr r4, r30
/* 801716C0 0016D500 7F E5 FB 78 */ mr r5, r31
/* 801716C4 0016D504 4B FF FD 9D */ bl VX2McBlock4x4Fast__FR14VX2DecoderDataPUci
lbl_801716C8:
/* 801716C8 0016D508 57 80 07 7B */ rlwinm. r0, r28, 0, 0x1d, 0x1d
/* 801716CC 0016D50C 3B DE 00 04 */ addi r30, r30, 4
/* 801716D0 0016D510 41 82 00 14 */ beq lbl_801716E4
/* 801716D4 0016D514 7F A3 EB 78 */ mr r3, r29
/* 801716D8 0016D518 7F C4 F3 78 */ mr r4, r30
/* 801716DC 0016D51C 7F E5 FB 78 */ mr r5, r31
/* 801716E0 0016D520 4B FF FD 81 */ bl VX2McBlock4x4Fast__FR14VX2DecoderDataPUci
lbl_801716E4:
/* 801716E4 0016D524 57 80 07 39 */ rlwinm. r0, r28, 0, 0x1c, 0x1c
/* 801716E8 0016D528 57 E0 10 3A */ slwi r0, r31, 2
/* 801716EC 0016D52C 7C 60 F2 14 */ add r3, r0, r30
/* 801716F0 0016D530 3B C3 FF FC */ addi r30, r3, -4
/* 801716F4 0016D534 41 82 00 14 */ beq lbl_80171708
/* 801716F8 0016D538 7F A3 EB 78 */ mr r3, r29
/* 801716FC 0016D53C 7F C4 F3 78 */ mr r4, r30
/* 80171700 0016D540 7F E5 FB 78 */ mr r5, r31
/* 80171704 0016D544 4B FF FD 5D */ bl VX2McBlock4x4Fast__FR14VX2DecoderDataPUci
lbl_80171708:
/* 80171708 0016D548 57 80 06 F7 */ rlwinm. r0, r28, 0, 0x1b, 0x1b
/* 8017170C 0016D54C 41 82 00 6C */ beq lbl_80171778
/* 80171710 0016D550 7F A3 EB 78 */ mr r3, r29
/* 80171714 0016D554 7F E5 FB 78 */ mr r5, r31
/* 80171718 0016D558 38 9E 00 04 */ addi r4, r30, 4
/* 8017171C 0016D55C 4B FF FD 45 */ bl VX2McBlock4x4Fast__FR14VX2DecoderDataPUci
/* 80171720 0016D560 48 00 00 58 */ b lbl_80171778
lbl_80171724:
/* 80171724 0016D564 80 83 0A 04 */ lwz r4, 0xa04(r3)
/* 80171728 0016D568 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 8017172C 0016D56C 34 E4 FF FF */ addic. r7, r4, -1
/* 80171730 0016D570 54 08 08 3C */ slwi r8, r0, 1
/* 80171734 0016D574 91 03 0A 08 */ stw r8, 0xa08(r3)
/* 80171738 0016D578 90 E3 0A 04 */ stw r7, 0xa04(r3)
/* 8017173C 0016D57C 40 80 00 2C */ bge lbl_80171768
/* 80171740 0016D580 80 83 0A 0C */ lwz r4, 0xa0c(r3)
/* 80171744 0016D584 7C C0 26 2C */ lhbrx r6, 0, r4
/* 80171748 0016D588 7C A7 00 D0 */ neg r5, r7
/* 8017174C 0016D58C 38 84 00 02 */ addi r4, r4, 2
/* 80171750 0016D590 38 07 00 10 */ addi r0, r7, 0x10
/* 80171754 0016D594 7C C5 28 30 */ slw r5, r6, r5
/* 80171758 0016D598 90 83 0A 0C */ stw r4, 0xa0c(r3)
/* 8017175C 0016D59C 7D 04 2B 78 */ or r4, r8, r5
/* 80171760 0016D5A0 90 83 0A 08 */ stw r4, 0xa08(r3)
/* 80171764 0016D5A4 90 03 0A 04 */ stw r0, 0xa04(r3)
lbl_80171768:
/* 80171768 0016D5A8 7F A3 EB 78 */ mr r3, r29
/* 8017176C 0016D5AC 7F C4 F3 78 */ mr r4, r30
/* 80171770 0016D5B0 7F E5 FB 78 */ mr r5, r31
/* 80171774 0016D5B4 4B FF FB 2D */ bl VX2McBlock8x8Fast__FR14VX2DecoderDataPUci
lbl_80171778:
/* 80171778 0016D5B8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8017177C 0016D5BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80171780 0016D5C0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80171784 0016D5C4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80171788 0016D5C8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8017178C 0016D5CC 7C 08 03 A6 */ mtlr r0
/* 80171790 0016D5D0 38 21 00 20 */ addi r1, r1, 0x20
/* 80171794 0016D5D4 4E 80 00 20 */ blr
/* 80171798 0016D5D8 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
/* 8017179C 0016D5DC 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
.global VX2DecodeMc16x16__FR14VX2DecoderData
VX2DecodeMc16x16__FR14VX2DecoderData:
/* 801717A0 0016D5E0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801717A4 0016D5E4 7C 08 02 A6 */ mflr r0
/* 801717A8 0016D5E8 90 01 00 24 */ stw r0, 0x24(r1)
/* 801717AC 0016D5EC 39 61 00 20 */ addi r11, r1, 0x20
/* 801717B0 0016D5F0 4B E9 5B 8D */ bl func_8000733C
/* 801717B4 0016D5F4 81 03 0A 08 */ lwz r8, 0xa08(r3)
/* 801717B8 0016D5F8 3C A0 80 45 */ lis r5, VX2GolombCode@ha
/* 801717BC 0016D5FC 3C 80 80 45 */ lis r4, VX2GolombCodeSize@ha
/* 801717C0 0016D600 80 03 0A 04 */ lwz r0, 0xa04(r3)
/* 801717C4 0016D604 55 06 6C FE */ srwi r6, r8, 0x13
/* 801717C8 0016D608 38 A5 09 D8 */ addi r5, r5, VX2GolombCode@l
/* 801717CC 0016D60C 7D 25 30 AE */ lbzx r9, r5, r6
/* 801717D0 0016D610 38 84 29 D8 */ addi r4, r4, VX2GolombCodeSize@l
/* 801717D4 0016D614 80 E3 00 68 */ lwz r7, 0x68(r3)
/* 801717D8 0016D618 7C 7C 1B 78 */ mr r28, r3
/* 801717DC 0016D61C 55 25 10 3A */ slwi r5, r9, 2
/* 801717E0 0016D620 80 C3 08 B4 */ lwz r6, 0x8b4(r3)
/* 801717E4 0016D624 7C A4 28 2E */ lwzx r5, r4, r5
/* 801717E8 0016D628 7F E7 32 14 */ add r31, r7, r6
/* 801717EC 0016D62C 81 43 08 B8 */ lwz r10, 0x8b8(r3)
/* 801717F0 0016D630 7C E5 00 51 */ subf. r7, r5, r0
/* 801717F4 0016D634 80 83 00 80 */ lwz r4, 0x80(r3)
/* 801717F8 0016D638 80 03 00 98 */ lwz r0, 0x98(r3)
/* 801717FC 0016D63C 7D 08 28 30 */ slw r8, r8, r5
/* 80171800 0016D640 91 03 0A 08 */ stw r8, 0xa08(r3)
/* 80171804 0016D644 7F C4 52 14 */ add r30, r4, r10
/* 80171808 0016D648 7F A0 52 14 */ add r29, r0, r10
/* 8017180C 0016D64C 90 E3 0A 04 */ stw r7, 0xa04(r3)
/* 80171810 0016D650 40 80 00 2C */ bge lbl_8017183C
/* 80171814 0016D654 80 83 0A 0C */ lwz r4, 0xa0c(r3)
/* 80171818 0016D658 7C C0 26 2C */ lhbrx r6, 0, r4
/* 8017181C 0016D65C 7C A7 00 D0 */ neg r5, r7
/* 80171820 0016D660 38 84 00 02 */ addi r4, r4, 2
/* 80171824 0016D664 38 07 00 10 */ addi r0, r7, 0x10
/* 80171828 0016D668 7C C5 28 30 */ slw r5, r6, r5
/* 8017182C 0016D66C 90 83 0A 0C */ stw r4, 0xa0c(r3)
/* 80171830 0016D670 7D 04 2B 78 */ or r4, r8, r5
/* 80171834 0016D674 90 83 0A 08 */ stw r4, 0xa08(r3)
/* 80171838 0016D678 90 03 0A 04 */ stw r0, 0xa04(r3)
lbl_8017183C:
/* 8017183C 0016D67C 3C 60 80 41 */ lis r3, InvCbpTable@ha
/* 80171840 0016D680 55 20 10 3A */ slwi r0, r9, 2
/* 80171844 0016D684 38 63 40 F0 */ addi r3, r3, InvCbpTable@l
/* 80171848 0016D688 7C 63 02 14 */ add r3, r3, r0
/* 8017184C 0016D68C 83 63 01 00 */ lwz r27, 0x100(r3)
/* 80171850 0016D690 57 60 07 FF */ clrlwi. r0, r27, 0x1f
/* 80171854 0016D694 41 82 00 18 */ beq lbl_8017186C
/* 80171858 0016D698 80 BC 00 00 */ lwz r5, 0(r28)
/* 8017185C 0016D69C 7F 83 E3 78 */ mr r3, r28
/* 80171860 0016D6A0 7F E4 FB 78 */ mr r4, r31
/* 80171864 0016D6A4 38 C0 00 01 */ li r6, 1
/* 80171868 0016D6A8 4B FF FD 99 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
lbl_8017186C:
/* 8017186C 0016D6AC 57 60 07 BD */ rlwinm. r0, r27, 0, 0x1e, 0x1e
/* 80171870 0016D6B0 3B FF 00 08 */ addi r31, r31, 8
/* 80171874 0016D6B4 41 82 00 18 */ beq lbl_8017188C
/* 80171878 0016D6B8 80 BC 00 00 */ lwz r5, 0(r28)
/* 8017187C 0016D6BC 7F 83 E3 78 */ mr r3, r28
/* 80171880 0016D6C0 7F E4 FB 78 */ mr r4, r31
/* 80171884 0016D6C4 38 C0 00 01 */ li r6, 1
/* 80171888 0016D6C8 4B FF FD 79 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
lbl_8017188C:
/* 8017188C 0016D6CC 80 BC 00 00 */ lwz r5, 0(r28)
/* 80171890 0016D6D0 57 60 07 7B */ rlwinm. r0, r27, 0, 0x1d, 0x1d
/* 80171894 0016D6D4 54 A0 18 38 */ slwi r0, r5, 3
/* 80171898 0016D6D8 7C 60 FA 14 */ add r3, r0, r31
/* 8017189C 0016D6DC 3B E3 FF F8 */ addi r31, r3, -8
/* 801718A0 0016D6E0 41 82 00 14 */ beq lbl_801718B4
/* 801718A4 0016D6E4 7F 83 E3 78 */ mr r3, r28
/* 801718A8 0016D6E8 7F E4 FB 78 */ mr r4, r31
/* 801718AC 0016D6EC 38 C0 00 01 */ li r6, 1
/* 801718B0 0016D6F0 4B FF FD 51 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
lbl_801718B4:
/* 801718B4 0016D6F4 57 60 07 39 */ rlwinm. r0, r27, 0, 0x1c, 0x1c
/* 801718B8 0016D6F8 41 82 00 18 */ beq lbl_801718D0
/* 801718BC 0016D6FC 80 BC 00 00 */ lwz r5, 0(r28)
/* 801718C0 0016D700 7F 83 E3 78 */ mr r3, r28
/* 801718C4 0016D704 38 9F 00 08 */ addi r4, r31, 8
/* 801718C8 0016D708 38 C0 00 01 */ li r6, 1
/* 801718CC 0016D70C 4B FF FD 35 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
lbl_801718D0:
/* 801718D0 0016D710 57 60 06 F7 */ rlwinm. r0, r27, 0, 0x1b, 0x1b
/* 801718D4 0016D714 41 82 00 1C */ beq lbl_801718F0
/* 801718D8 0016D718 80 1C 00 00 */ lwz r0, 0(r28)
/* 801718DC 0016D71C 7F 83 E3 78 */ mr r3, r28
/* 801718E0 0016D720 7F C4 F3 78 */ mr r4, r30
/* 801718E4 0016D724 38 C0 00 01 */ li r6, 1
/* 801718E8 0016D728 7C 05 0E 70 */ srawi r5, r0, 1
/* 801718EC 0016D72C 4B FF FD 15 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
lbl_801718F0:
/* 801718F0 0016D730 57 60 06 B5 */ rlwinm. r0, r27, 0, 0x1a, 0x1a
/* 801718F4 0016D734 41 82 00 1C */ beq lbl_80171910
/* 801718F8 0016D738 80 1C 00 00 */ lwz r0, 0(r28)
/* 801718FC 0016D73C 7F 83 E3 78 */ mr r3, r28
/* 80171900 0016D740 7F A4 EB 78 */ mr r4, r29
/* 80171904 0016D744 38 C0 00 01 */ li r6, 1
/* 80171908 0016D748 7C 05 0E 70 */ srawi r5, r0, 1
/* 8017190C 0016D74C 4B FF FC F5 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
lbl_80171910:
/* 80171910 0016D750 39 61 00 20 */ addi r11, r1, 0x20
/* 80171914 0016D754 4B E9 5A 75 */ bl func_80007388
/* 80171918 0016D758 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8017191C 0016D75C 7C 08 03 A6 */ mtlr r0
/* 80171920 0016D760 38 21 00 20 */ addi r1, r1, 0x20
/* 80171924 0016D764 4E 80 00 20 */ blr
/* 80171928 0016D768 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
/* 8017192C 0016D76C 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
.section .data4, "wa" # 0x80406560 - 0x80421040
.global InvCbpTable
InvCbpTable:
.incbin "baserom.dol", 0x4101F0, 0x200
.global InvSbpTable
InvSbpTable:
.incbin "baserom.dol", 0x4103F0, 0x88
.global DecodeEscapeTable
DecodeEscapeTable:
.incbin "baserom.dol", 0x410478, 0x10
.global ZigZag8x8
ZigZag8x8:
.incbin "baserom.dol", 0x410488, 0x100
.global ZigZag4x4
ZigZag4x4:
.incbin "baserom.dol", 0x410588, 0x40
.section .bss, "wa" # 0x80496700 - 0x805643FC
.global InvMc8x8Table
InvMc8x8Table:
.skip 0x28
.global InvMc4x4Table
InvMc4x4Table:
.skip 0x40