donut-decomp/asm/libMobiclip/VX2_MotionCompensation.s

1037 lines
43 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.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, -0x8
/* 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, r0, r7
/* 80170EC4 0016CD04 7D 0A 00 D0 */ neg r8, r10
/* 80170EC8 0016CD08 38 E7 00 02 */ addi r7, r7, 0x2
/* 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)
.global lbl_80170EE4
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, 13, 19, 30
/* 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 */ extrwi r0, r8, 5, 23
/* 80170F04 0016CD44 90 06 00 00 */ stw r0, 0x0(r6)
/* 80170F08 0016CD48 55 07 BE BE */ extrwi r7, r8, 6, 17
/* 80170F0C 0016CD4C 55 09 07 3E */ clrlwi r9, r8, 28
/* 80170F10 0016CD50 90 E5 00 00 */ stw r7, 0x0(r5)
/* 80170F14 0016CD54 7D 00 7E 70 */ srawi r0, r8, 15
/* 80170F18 0016CD58 54 07 30 32 */ slwi r7, r0, 6
/* 80170F1C 0016CD5C 90 04 00 00 */ stw r0, 0x0(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, 0x0(r5)
/* 80170F2C 0016CD6C 55 05 10 3A */ slwi r5, r8, 2
/* 80170F30 0016CD70 81 06 00 00 */ lwz r8, 0x0(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, 0x0(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, 31
/* 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, 0x0(r6)
.global lbl_80170F64
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, r0, r4
/* 80170F88 0016CDC8 7C A7 00 D0 */ neg r5, r7
/* 80170F8C 0016CDCC 38 84 00 02 */ addi r4, r4, 0x2
/* 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
.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, -0x9
/* 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, r0, r7
/* 80170FD4 0016CE14 7D 0A 00 D0 */ neg r8, r10
/* 80170FD8 0016CE18 38 E7 00 02 */ addi r7, r7, 0x2
/* 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)
.global lbl_80170FF4
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, 13, 19, 30
/* 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 */ extrwi r0, r8, 5, 23
/* 80171014 0016CE54 90 06 00 00 */ stw r0, 0x0(r6)
/* 80171018 0016CE58 55 07 BE BE */ extrwi r7, r8, 6, 17
/* 8017101C 0016CE5C 55 0A 07 3E */ clrlwi r10, r8, 28
/* 80171020 0016CE60 90 E5 00 00 */ stw r7, 0x0(r5)
/* 80171024 0016CE64 7D 00 7E 70 */ srawi r0, r8, 15
/* 80171028 0016CE68 54 07 30 32 */ slwi r7, r0, 6
/* 8017102C 0016CE6C 90 04 00 00 */ stw r0, 0x0(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, 0x0(r6)
/* 8017103C 0016CE7C 55 08 10 3A */ slwi r8, r8, 2
/* 80171040 0016CE80 81 25 00 00 */ lwz r9, 0x0(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, 0x0(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, 31
/* 80171068 0016CEA8 41 82 00 10 */ beq lbl_80171078
/* 8017106C 0016CEAC 80 06 00 00 */ lwz r0, 0x0(r6)
/* 80171070 0016CEB0 7C 00 00 D0 */ neg r0, r0
/* 80171074 0016CEB4 90 06 00 00 */ stw r0, 0x0(r6)
.global lbl_80171078
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, r0, r4
/* 8017109C 0016CEDC 7C A7 00 D0 */ neg r5, r7
/* 801710A0 0016CEE0 38 84 00 02 */ addi r4, r4, 0x2
/* 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, -0x9
/* 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, r0, r7
/* 801710E4 0016CF24 7D 0A 00 D0 */ neg r8, r10
/* 801710E8 0016CF28 38 E7 00 02 */ addi r7, r7, 0x2
/* 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)
.global lbl_80171104
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, -0x1
/* 80171110 0016CF50 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 80171114 0016CF54 55 0C 0F FE */ srwi r12, r8, 31
/* 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, r0, r7
/* 80171130 0016CF70 7D 0A 00 D0 */ neg r8, r10
/* 80171134 0016CF74 38 E7 00 02 */ addi r7, r7, 0x2
/* 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)
.global lbl_80171150
lbl_80171150:
/* 80171150 0016CF90 91 84 00 00 */ stw r12, 0x0(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, -0x6
/* 80171160 0016CFA0 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 80171164 0016CFA4 54 EB 36 BE */ srwi r11, r7, 26
/* 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, r0, r4
/* 80171180 0016CFC0 7C E9 00 D0 */ neg r7, r9
/* 80171184 0016CFC4 38 84 00 02 */ addi r4, r4, 0x2
/* 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)
.global lbl_801711A0
lbl_801711A0:
/* 801711A0 0016CFE0 91 65 00 00 */ stw r11, 0x0(r5)
/* 801711A4 0016CFE4 80 03 0A 08 */ lwz r0, 0xa08(r3)
/* 801711A8 0016CFE8 7C 00 A6 70 */ srawi r0, r0, 20
/* 801711AC 0016CFEC 90 06 00 00 */ stw r0, 0x0(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, -0xc
/* 801711BC 0016CFFC 54 08 60 26 */ slwi r8, r0, 12
/* 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, r0, r4
/* 801711D4 0016D014 7C A7 00 D0 */ neg r5, r7
/* 801711D8 0016D018 38 84 00 02 */ addi r4, r4, 0x2
/* 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
/* 801711FC 0016D03C 00 00 00 00 */ .4byte 0x00000000
.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, 0x4(r6)
/* 80171220 0016D060 90 06 00 08 */ stw r0, 0x8(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, 0x4(r4)
/* 80171254 0016D094 90 04 00 08 */ stw r0, 0x8(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
/* 80171298 0016D0D8 00 00 00 00 */ .4byte 0x00000000
/* 8017129C 0016D0DC 00 00 00 00 */ .4byte 0x00000000
.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 lbl_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 */ clrrwi r30, r0, 4
/* 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
.global lbl_801712EC
lbl_801712EC:
/* 801712EC 0016D12C 80 99 0A 08 */ lwz r4, 0xa08(r25)
/* 801712F0 0016D130 54 80 3E 7E */ srwi r0, r4, 25
/* 801712F4 0016D134 28 00 00 03 */ cmplwi r0, 0x3
/* 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, 11, 28, 29
/* 80171310 0016D150 38 C1 00 08 */ addi r6, r1, 0x8
/* 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
.global lbl_80171324
lbl_80171324:
/* 80171324 0016D164 80 79 0A 14 */ lwz r3, 0xa14(r25)
/* 80171328 0016D168 54 80 6C FC */ rlwinm r0, r4, 13, 19, 30
/* 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, 15
/* 80171340 0016D180 54 C7 07 3E */ clrlwi r7, r6, 28
/* 80171344 0016D184 20 07 00 20 */ subfic r0, r7, 0x20
/* 80171348 0016D188 54 C5 E6 FE */ extrwi r5, r6, 5, 23
/* 8017134C 0016D18C 7C 80 04 30 */ srw r0, r4, r0
/* 80171350 0016D190 54 C4 BE BE */ extrwi r4, r6, 6, 17
/* 80171354 0016D194 54 00 07 FF */ clrlwi. r0, r0, 31
/* 80171358 0016D198 90 A1 00 08 */ stw r5, 0x8(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, 0x8(r1)
.global lbl_80171370
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, r0, r3
/* 80171394 0016D1D4 7C 86 00 D0 */ neg r4, r6
/* 80171398 0016D1D8 38 63 00 02 */ addi r3, r3, 0x2
/* 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)
.global lbl_801713B4
lbl_801713B4:
/* 801713B4 0016D1F4 80 01 00 0C */ lwz r0, 0xc(r1)
/* 801713B8 0016D1F8 80 81 00 08 */ lwz r4, 0x8(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, 0x4
/* 801713D0 0016D210 54 00 08 3C */ slwi r0, r0, 1
/* 801713D4 0016D214 3B 9C 00 04 */ addi r28, r28, 0x4
/* 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, 0x0
/* 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, -0x1
/* 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
.global lbl_80171430
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
.global lbl_80171448
lbl_80171448:
/* 80171448 0016D288 39 61 00 E0 */ addi r11, r1, 0xe0
/* 8017144C 0016D28C 4B E9 5F 35 */ bl lbl_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 lbl_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
.global lbl_801714A8
lbl_801714A8:
/* 801714A8 0016D2E8 80 9A 0A 08 */ lwz r4, 0xa08(r26)
/* 801714AC 0016D2EC 54 80 3E 7E */ srwi r0, r4, 25
/* 801714B0 0016D2F0 28 00 00 03 */ cmplwi r0, 0x3
/* 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, 11, 28, 29
/* 801714CC 0016D30C 38 C1 00 08 */ addi r6, r1, 0x8
/* 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
.global lbl_801714E0
lbl_801714E0:
/* 801714E0 0016D320 80 7A 0A 14 */ lwz r3, 0xa14(r26)
/* 801714E4 0016D324 54 80 6C FC */ rlwinm r0, r4, 13, 19, 30
/* 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, 15
/* 801714FC 0016D33C 54 C7 07 3E */ clrlwi r7, r6, 28
/* 80171500 0016D340 20 07 00 20 */ subfic r0, r7, 0x20
/* 80171504 0016D344 54 C5 E6 FE */ extrwi r5, r6, 5, 23
/* 80171508 0016D348 7C 80 04 30 */ srw r0, r4, r0
/* 8017150C 0016D34C 54 C4 BE BE */ extrwi r4, r6, 6, 17
/* 80171510 0016D350 54 00 07 FF */ clrlwi. r0, r0, 31
/* 80171514 0016D354 90 A1 00 08 */ stw r5, 0x8(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, 0x8(r1)
.global lbl_8017152C
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, r0, r3
/* 80171550 0016D390 7C 86 00 D0 */ neg r4, r6
/* 80171554 0016D394 38 63 00 02 */ addi r3, r3, 0x2
/* 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)
.global lbl_80171570
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, 0x8(r1)
/* 80171580 0016D3C0 7C 7E 28 6E */ lwzux r3, r30, r5
/* 80171584 0016D3C4 2C 00 00 00 */ cmpwi r0, 0x0
/* 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, 0x4
/* 80171594 0016D3D4 54 00 08 3C */ slwi r0, r0, 1
/* 80171598 0016D3D8 3B BD 00 04 */ addi r29, r29, 0x4
/* 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, -0x1
/* 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 lbl_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
/* 801715FC 0016D43C 00 00 00 00 */ .4byte 0x00000000
.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 */ clrrwi. r0, r0, 31
/* 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, 19
/* 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, r0, r4
/* 80171678 0016D4B8 7C A8 00 D0 */ neg r5, r8
/* 8017167C 0016D4BC 38 84 00 02 */ addi r4, r4, 0x2
/* 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)
.global lbl_80171698
lbl_80171698:
/* 80171698 0016D4D8 1C 06 00 44 */ mulli r0, r6, 0x44
/* 8017169C 0016D4DC 3C 80 80 41 */ lis r4, InvSbpTable_804142F0@ha
/* 801716A0 0016D4E0 55 43 10 3A */ slwi r3, r10, 2
/* 801716A4 0016D4E4 38 84 42 F0 */ addi r4, r4, InvSbpTable_804142F0@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, 30, 30
/* 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
.global lbl_801716C8
lbl_801716C8:
/* 801716C8 0016D508 57 80 07 7B */ rlwinm. r0, r28, 0, 29, 29
/* 801716CC 0016D50C 3B DE 00 04 */ addi r30, r30, 0x4
/* 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
.global lbl_801716E4
lbl_801716E4:
/* 801716E4 0016D524 57 80 07 39 */ rlwinm. r0, r28, 0, 28, 28
/* 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, -0x4
/* 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
.global lbl_80171708
lbl_80171708:
/* 80171708 0016D548 57 80 06 F7 */ rlwinm. r0, r28, 0, 27, 27
/* 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, 0x4
/* 8017171C 0016D55C 4B FF FD 45 */ bl VX2McBlock4x4Fast__FR14VX2DecoderDataPUci
/* 80171720 0016D560 48 00 00 58 */ b lbl_80171778
.global lbl_80171724
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, -0x1
/* 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, r0, r4
/* 80171748 0016D588 7C A7 00 D0 */ neg r5, r7
/* 8017174C 0016D58C 38 84 00 02 */ addi r4, r4, 0x2
/* 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)
.global lbl_80171768
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
.global lbl_80171778
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
/* 8017179C 0016D5DC 00 00 00 00 */ .4byte 0x00000000
.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 lbl_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, 19
/* 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, r0, r4
/* 8017181C 0016D65C 7C A7 00 D0 */ neg r5, r7
/* 80171820 0016D660 38 84 00 02 */ addi r4, r4, 0x2
/* 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)
.global lbl_8017183C
lbl_8017183C:
/* 8017183C 0016D67C 3C 60 80 41 */ lis r3, InvCbpTable_804140F0@ha
/* 80171840 0016D680 55 20 10 3A */ slwi r0, r9, 2
/* 80171844 0016D684 38 63 40 F0 */ addi r3, r3, InvCbpTable_804140F0@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, 31
/* 80171854 0016D694 41 82 00 18 */ beq lbl_8017186C
/* 80171858 0016D698 80 BC 00 00 */ lwz r5, 0x0(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, 0x1
/* 80171868 0016D6A8 4B FF FD 99 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
.global lbl_8017186C
lbl_8017186C:
/* 8017186C 0016D6AC 57 60 07 BD */ rlwinm. r0, r27, 0, 30, 30
/* 80171870 0016D6B0 3B FF 00 08 */ addi r31, r31, 0x8
/* 80171874 0016D6B4 41 82 00 18 */ beq lbl_8017188C
/* 80171878 0016D6B8 80 BC 00 00 */ lwz r5, 0x0(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, 0x1
/* 80171888 0016D6C8 4B FF FD 79 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
.global lbl_8017188C
lbl_8017188C:
/* 8017188C 0016D6CC 80 BC 00 00 */ lwz r5, 0x0(r28)
/* 80171890 0016D6D0 57 60 07 7B */ rlwinm. r0, r27, 0, 29, 29
/* 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, -0x8
/* 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, 0x1
/* 801718B0 0016D6F0 4B FF FD 51 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
.global lbl_801718B4
lbl_801718B4:
/* 801718B4 0016D6F4 57 60 07 39 */ rlwinm. r0, r27, 0, 28, 28
/* 801718B8 0016D6F8 41 82 00 18 */ beq lbl_801718D0
/* 801718BC 0016D6FC 80 BC 00 00 */ lwz r5, 0x0(r28)
/* 801718C0 0016D700 7F 83 E3 78 */ mr r3, r28
/* 801718C4 0016D704 38 9F 00 08 */ addi r4, r31, 0x8
/* 801718C8 0016D708 38 C0 00 01 */ li r6, 0x1
/* 801718CC 0016D70C 4B FF FD 35 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
.global lbl_801718D0
lbl_801718D0:
/* 801718D0 0016D710 57 60 06 F7 */ rlwinm. r0, r27, 0, 27, 27
/* 801718D4 0016D714 41 82 00 1C */ beq lbl_801718F0
/* 801718D8 0016D718 80 1C 00 00 */ lwz r0, 0x0(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, 0x1
/* 801718E8 0016D728 7C 05 0E 70 */ srawi r5, r0, 1
/* 801718EC 0016D72C 4B FF FD 15 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
.global lbl_801718F0
lbl_801718F0:
/* 801718F0 0016D730 57 60 06 B5 */ rlwinm. r0, r27, 0, 26, 26
/* 801718F4 0016D734 41 82 00 1C */ beq lbl_80171910
/* 801718F8 0016D738 80 1C 00 00 */ lwz r0, 0x0(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, 0x1
/* 80171908 0016D748 7C 05 0E 70 */ srawi r5, r0, 1
/* 8017190C 0016D74C 4B FF FC F5 */ bl VX2DecodeMc8x8__FR14VX2DecoderDataPUcii
.global lbl_80171910
lbl_80171910:
/* 80171910 0016D750 39 61 00 20 */ addi r11, r1, 0x20
/* 80171914 0016D754 4B E9 5A 75 */ bl lbl_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
/* 8017192C 0016D76C 00 00 00 00 */ .4byte 0x00000000
.include "macros.inc"
.section .rodata, "wa" # 0x80406560 - 0x80421040 ; 0x0001AAE0
.global InvCbpTable_804140F0
InvCbpTable_804140F0:
.4byte 0
.4byte 0x0000001F
.4byte 0x0000003F
.4byte 0x0000000F
.4byte 0x00000008
.4byte 0x00000004
.4byte 0x00000002
.4byte 0x00000001
.4byte 0x0000000B
.4byte 0x0000000E
.4byte 0x0000001B
.4byte 0x0000000D
.4byte 0x00000003
.4byte 0x00000007
.4byte 0x0000000C
.4byte 0x00000017
.4byte 0x0000001D
.4byte 0x0000000A
.4byte 0x0000001E
.4byte 0x00000005
.4byte 0x00000010
.4byte 0x0000002F
.4byte 0x00000037
.4byte 0x0000003B
.4byte 0x00000013
.4byte 0x0000003D
.4byte 0x0000003E
.4byte 0x00000009
.4byte 0x0000001C
.4byte 0x00000006
.4byte 0x00000015
.4byte 0x0000001A
.4byte 0x00000033
.4byte 0x00000011
.4byte 0x00000012
.4byte 0x00000014
.4byte 0x00000018
.4byte 0x00000020
.4byte 0x0000003C
.4byte 0x00000035
.4byte 0x00000019
.4byte 0x00000016
.4byte 0x0000003A
.4byte 0x00000030
.4byte 0x00000031
.4byte 0x00000032
.4byte 0x00000027
.4byte 0x00000034
.4byte 0x0000002B
.4byte 0x0000002D
.4byte 0x00000039
.4byte 0x00000038
.4byte 0x00000023
.4byte 0x00000036
.4byte 0x0000002E
.4byte 0x00000021
.4byte 0x00000025
.4byte 0x00000022
.4byte 0x00000024
.4byte 0x0000002C
.4byte 0x0000002A
.4byte 0x00000028
.4byte 0x00000029
.4byte 0x00000026
.4byte 0
.4byte 0x0000000F
.4byte 0x00000004
.4byte 0x00000001
.4byte 0x00000008
.4byte 0x00000002
.4byte 0x0000000C
.4byte 0x00000003
.4byte 0x00000005
.4byte 0x0000000A
.4byte 0x0000000D
.4byte 0x00000007
.4byte 0x0000000E
.4byte 0x0000000B
.4byte 0x0000001F
.4byte 0x00000009
.4byte 0x00000006
.4byte 0x00000010
.4byte 0x0000003F
.4byte 0x0000001E
.4byte 0x00000017
.4byte 0x0000001D
.4byte 0x0000001B
.4byte 0x0000001C
.4byte 0x00000013
.4byte 0x00000018
.4byte 0x0000001A
.4byte 0x00000012
.4byte 0x00000011
.4byte 0x00000014
.4byte 0x00000015
.4byte 0x00000020
.4byte 0x0000002F
.4byte 0x00000016
.4byte 0x00000019
.4byte 0x00000037
.4byte 0x0000003D
.4byte 0x0000003E
.4byte 0x0000003B
.4byte 0x0000003C
.4byte 0x00000033
.4byte 0x00000035
.4byte 0x00000021
.4byte 0x00000024
.4byte 0x00000022
.4byte 0x00000028
.4byte 0x00000023
.4byte 0x0000002C
.4byte 0x00000030
.4byte 0x00000027
.4byte 0x0000002D
.4byte 0x00000025
.4byte 0x0000003A
.4byte 0x0000002B
.4byte 0x0000002E
.4byte 0x0000002A
.4byte 0x00000031
.4byte 0x00000034
.4byte 0x00000038
.4byte 0x00000032
.4byte 0x00000029
.4byte 0x00000026
.4byte 0x00000039
.4byte 0x00000036
.global InvSbpTable_804142F0
InvSbpTable_804142F0:
.4byte 0
.4byte 0x0000001E
.4byte 0x00000001
.4byte 0x00000004
.4byte 0x00000002
.4byte 0x00000008
.4byte 0x00000010
.4byte 0x00000018
.4byte 0x00000006
.4byte 0x00000016
.4byte 0x0000001A
.4byte 0x0000001C
.4byte 0x0000000E
.4byte 0x00000014
.4byte 0x0000000A
.4byte 0x00000012
.4byte 0x0000000C
.4byte 0
.4byte 0x00000008
.4byte 0x00000002
.4byte 0x00000010
.4byte 0x00000004
.4byte 0x00000018
.4byte 0x00000006
.4byte 0x0000000A
.4byte 0x00000014
.4byte 0x0000001E
.4byte 0x0000000E
.4byte 0x0000001A
.4byte 0x0000001C
.4byte 0x00000016
.4byte 0x00000012
.4byte 0x0000000C
.4byte 0xFFFFFFFF
.global DecodeEscapeTable
DecodeEscapeTable:
.4byte DecodeEscape__FR14VX2DecoderDataRiRiRi
.4byte DecodeEscape__FR14VX2DecoderDataRiRiRi
.4byte DecodeEscape2__FR14VX2DecoderDataRiRiRi
.4byte DecodeEscape3__FR14VX2DecoderDataRiRiRi
.global ZigZag8x8
ZigZag8x8:
.4byte 0
.4byte 0x00000008
.4byte 0x00000001
.4byte 0x00000002
.4byte 0x00000009
.4byte 0x00000010
.4byte 0x00000018
.4byte 0x00000011
.4byte 0x0000000A
.4byte 0x00000003
.4byte 0x00000004
.4byte 0x0000000B
.4byte 0x00000012
.4byte 0x00000019
.4byte 0x00000020
.4byte 0x00000028
.4byte 0x00000021
.4byte 0x0000001A
.4byte 0x00000013
.4byte 0x0000000C
.4byte 0x00000005
.4byte 0x00000006
.4byte 0x0000000D
.4byte 0x00000014
.4byte 0x0000001B
.4byte 0x00000022
.4byte 0x00000029
.4byte 0x00000030
.4byte 0x00000038
.4byte 0x00000031
.4byte 0x0000002A
.4byte 0x00000023
.4byte 0x0000001C
.4byte 0x00000015
.4byte 0x0000000E
.4byte 0x00000007
.4byte 0x0000000F
.4byte 0x00000016
.4byte 0x0000001D
.4byte 0x00000024
.4byte 0x0000002B
.4byte 0x00000032
.4byte 0x00000039
.4byte 0x0000003A
.4byte 0x00000033
.4byte 0x0000002C
.4byte 0x00000025
.4byte 0x0000001E
.4byte 0x00000017
.4byte 0x0000001F
.4byte 0x00000026
.4byte 0x0000002D
.4byte 0x00000034
.4byte 0x0000003B
.4byte 0x0000003C
.4byte 0x00000035
.4byte 0x0000002E
.4byte 0x00000027
.4byte 0x0000002F
.4byte 0x00000036
.4byte 0x0000003D
.4byte 0x0000003E
.4byte 0x00000037
.4byte 0x0000003F
.global ZigZag4x4
ZigZag4x4:
.4byte 0
.4byte 0x00000001
.4byte 0x00000004
.4byte 0x00000008
.4byte 0x00000005
.4byte 0x00000002
.4byte 0x00000003
.4byte 0x00000006
.4byte 0x00000009
.4byte 0x0000000C
.4byte 0x0000000D
.4byte 0x0000000A
.4byte 0x00000007
.4byte 0x0000000B
.4byte 0x0000000E
.4byte 0x0000000F
.include "macros.inc"
.section .bss, "", @nobits # 0x80496700 - 0x80556420 ; 0x000BFD20
.global InvMc8x8Table
InvMc8x8Table:
.skip 0x28
.global InvMc4x4Table
InvMc4x4Table:
.skip 0x40