tp/asm/J3DGraphBase/J3DShapeMtx.s

1660 lines
84 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 803130a8
.global J3DShapeMtx_NS_resetMtxLoadCache
J3DShapeMtx_NS_resetMtxLoadCache:
/* 803130A8 0030FFE8 3C 60 00 01 */ lis r3, 0x0000FFFF@ha
/* 803130AC 0030FFEC 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l
/* 803130B0 0030FFF0 3C 60 80 43 */ lis r3, lbl_80434C80@ha
/* 803130B4 0030FFF4 38 63 4C 80 */ addi r3, r3, lbl_80434C80@l
/* 803130B8 0030FFF8 B0 03 00 12 */ sth r0, 0x12(r3)
/* 803130BC 0030FFFC B0 03 00 10 */ sth r0, 0x10(r3)
/* 803130C0 00310000 B0 03 00 0E */ sth r0, 0xe(r3)
/* 803130C4 00310004 B0 03 00 0C */ sth r0, 0xc(r3)
/* 803130C8 00310008 B0 03 00 0A */ sth r0, 0xa(r3)
/* 803130CC 0031000C B0 03 00 08 */ sth r0, 8(r3)
/* 803130D0 00310010 B0 03 00 06 */ sth r0, 6(r3)
/* 803130D4 00310014 B0 03 00 04 */ sth r0, 4(r3)
/* 803130D8 00310018 B0 03 00 02 */ sth r0, 2(r3)
/* 803130DC 0031001C B0 03 00 00 */ sth r0, 0(r3)
/* 803130E0 00310020 4E 80 00 20 */ blr
/* 803130E4 00310024 38 00 00 20 */ li r0, 0x20
/* 803130E8 00310028 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 803130EC 0031002C 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 803130F0 00310030 B0 A6 80 00 */ sth r5, -0x8000(r6)
/* 803130F4 00310034 1C 04 00 0C */ mulli r0, r4, 0xc
/* 803130F8 00310038 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 803130FC 0031003C 60 00 B0 00 */ ori r0, r0, 0xb000
/* 80313100 00310040 B0 06 80 00 */ sth r0, -0x8000(r6)
/* 80313104 00310044 38 00 00 28 */ li r0, 0x28
/* 80313108 00310048 98 06 80 00 */ stb r0, -0x8000(r6)
/* 8031310C 0031004C B0 A6 80 00 */ sth r5, -0x8000(r6)
/* 80313110 00310050 1C 64 00 09 */ mulli r3, r4, 9
/* 80313114 00310054 38 03 04 00 */ addi r0, r3, 0x400
/* 80313118 00310058 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 8031311C 0031005C 60 00 80 00 */ ori r0, r0, 0x8000
/* 80313120 00310060 B0 06 80 00 */ sth r0, -0x8000(r6)
/* 80313124 00310064 4E 80 00 20 */ blr
/* 80313128 00310068 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031312C 0031006C 7C 08 02 A6 */ mflr r0
/* 80313130 00310070 90 01 00 14 */ stw r0, 0x14(r1)
/* 80313134 00310074 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80313138 00310078 93 C1 00 08 */ stw r30, 8(r1)
/* 8031313C 0031007C 7C 9E 23 78 */ mr r30, r4
/* 80313140 00310080 7C BF 2B 78 */ mr r31, r5
/* 80313144 00310084 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313148 00310088 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 8031314C 0031008C 80 63 00 40 */ lwz r3, 0x40(r3)
/* 80313150 00310090 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80313154 00310094 1C 9E 00 03 */ mulli r4, r30, 3
/* 80313158 00310098 4B FF C9 89 */ bl J3DFifoLoadPosMtxImm
/* 8031315C 0031009C 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313160 003100A0 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80313164 003100A4 7F C4 F3 78 */ mr r4, r30
/* 80313168 003100A8 7F E5 FB 78 */ mr r5, r31
/* 8031316C 003100AC 4B FF CD 79 */ bl J3DSys_NS_loadNrmMtxIndx
/* 80313170 003100B0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80313174 003100B4 83 C1 00 08 */ lwz r30, 8(r1)
/* 80313178 003100B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031317C 003100BC 7C 08 03 A6 */ mtlr r0
/* 80313180 003100C0 38 21 00 10 */ addi r1, r1, 0x10
/* 80313184 003100C4 4E 80 00 20 */ blr
/* 80313188 003100C8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031318C 003100CC 7C 08 02 A6 */ mflr r0
/* 80313190 003100D0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80313194 003100D4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80313198 003100D8 7C 9F 23 78 */ mr r31, r4
/* 8031319C 003100DC 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803131A0 003100E0 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 803131A4 003100E4 4B FF CD 1D */ bl J3DSys_NS_loadPosMtxIndx
/* 803131A8 003100E8 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803131AC 003100EC 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 803131B0 003100F0 80 63 00 40 */ lwz r3, 0x40(r3)
/* 803131B4 003100F4 80 63 00 30 */ lwz r3, 0x30(r3)
/* 803131B8 003100F8 1C 9F 00 03 */ mulli r4, r31, 3
/* 803131BC 003100FC 4B FF C9 A5 */ bl J3DFifoLoadNrmMtxImm
/* 803131C0 00310100 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803131C4 00310104 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803131C8 00310108 7C 08 03 A6 */ mtlr r0
/* 803131CC 0031010C 38 21 00 10 */ addi r1, r1, 0x10
/* 803131D0 00310110 4E 80 00 20 */ blr
/* 803131D4 00310114 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803131D8 00310118 7C 08 02 A6 */ mflr r0
/* 803131DC 0031011C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803131E0 00310120 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803131E4 00310124 93 C1 00 08 */ stw r30, 8(r1)
/* 803131E8 00310128 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803131EC 0031012C 3B E3 4A C8 */ addi r31, r3, lbl_80434AC8@l
/* 803131F0 00310130 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 803131F4 00310134 80 63 00 30 */ lwz r3, 0x30(r3)
/* 803131F8 00310138 1F C4 00 03 */ mulli r30, r4, 3
/* 803131FC 0031013C 7F C4 F3 78 */ mr r4, r30
/* 80313200 00310140 4B FF C8 E1 */ bl J3DFifoLoadPosMtxImm
/* 80313204 00310144 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 80313208 00310148 80 63 00 30 */ lwz r3, 0x30(r3)
/* 8031320C 0031014C 7F C4 F3 78 */ mr r4, r30
/* 80313210 00310150 4B FF C9 51 */ bl J3DFifoLoadNrmMtxImm
/* 80313214 00310154 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80313218 00310158 83 C1 00 08 */ lwz r30, 8(r1)
/* 8031321C 0031015C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80313220 00310160 7C 08 03 A6 */ mtlr r0
/* 80313224 00310164 38 21 00 10 */ addi r1, r1, 0x10
/* 80313228 00310168 4E 80 00 20 */ blr
.global J3DDifferedTexMtx_NS_loadExecute
J3DDifferedTexMtx_NS_loadExecute:
/* 8031322C 0031016C 94 21 FF 20 */ stwu r1, -0xe0(r1)
/* 80313230 00310170 7C 08 02 A6 */ mflr r0
/* 80313234 00310174 90 01 00 E4 */ stw r0, 0xe4(r1)
/* 80313238 00310178 39 61 00 E0 */ addi r11, r1, 0xe0
/* 8031323C 0031017C 48 04 EF 91 */ bl _savegpr_25
/* 80313240 00310180 7C 7C 1B 78 */ mr r28, r3
/* 80313244 00310184 83 6D 90 40 */ lwz r27, lbl_804515C0-_SDA_BASE_(r13)
/* 80313248 00310188 83 ED 90 44 */ lwz r31, lbl_804515C4-_SDA_BASE_(r13)
/* 8031324C 0031018C A0 9F 00 08 */ lhz r4, 8(r31)
/* 80313250 00310190 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313254 00310194 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80313258 00310198 80 03 00 34 */ lwz r0, 0x34(r3)
/* 8031325C 0031019C 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1
/* 80313260 003101A0 41 82 02 BC */ beq lbl_8031351C
/* 80313264 003101A4 3B 20 00 00 */ li r25, 0
/* 80313268 003101A8 54 9C 04 3E */ clrlwi r28, r4, 0x10
/* 8031326C 003101AC 48 00 02 A0 */ b lbl_8031350C
lbl_80313270:
/* 80313270 003101B0 7F 63 DB 78 */ mr r3, r27
/* 80313274 003101B4 57 3A 04 3E */ clrlwi r26, r25, 0x10
/* 80313278 003101B8 7F 44 D3 78 */ mr r4, r26
/* 8031327C 003101BC 81 9B 00 00 */ lwz r12, 0(r27)
/* 80313280 003101C0 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 80313284 003101C4 7D 89 03 A6 */ mtctr r12
/* 80313288 003101C8 4E 80 04 21 */ bctrl
/* 8031328C 003101CC 88 03 00 00 */ lbz r0, 0(r3)
/* 80313290 003101D0 2C 00 00 01 */ cmpwi r0, 1
/* 80313294 003101D4 41 82 00 0C */ beq lbl_803132A0
/* 80313298 003101D8 2C 00 00 00 */ cmpwi r0, 0
/* 8031329C 003101DC 40 82 02 6C */ bne lbl_80313508
lbl_803132A0:
/* 803132A0 003101E0 7F 63 DB 78 */ mr r3, r27
/* 803132A4 003101E4 7F 44 D3 78 */ mr r4, r26
/* 803132A8 003101E8 81 9B 00 00 */ lwz r12, 0(r27)
/* 803132AC 003101EC 81 8C 00 50 */ lwz r12, 0x50(r12)
/* 803132B0 003101F0 7D 89 03 A6 */ mtctr r12
/* 803132B4 003101F4 4E 80 04 21 */ bctrl
/* 803132B8 003101F8 7C 64 1B 78 */ mr r4, r3
/* 803132BC 003101FC 88 A3 00 01 */ lbz r5, 1(r3)
/* 803132C0 00310200 54 A0 06 BE */ clrlwi r0, r5, 0x1a
/* 803132C4 00310204 28 00 00 0B */ cmplwi r0, 0xb
/* 803132C8 00310208 41 81 02 1C */ bgt lbl_803134E4
/* 803132CC 0031020C 3C 60 80 3D */ lis r3, lbl_803CDB40@ha
/* 803132D0 00310210 38 63 DB 40 */ addi r3, r3, lbl_803CDB40@l
/* 803132D4 00310214 54 00 10 3A */ slwi r0, r0, 2
/* 803132D8 00310218 7C 03 00 2E */ lwzx r0, r3, r0
/* 803132DC 0031021C 7C 09 03 A6 */ mtctr r0
/* 803132E0 00310220 4E 80 04 20 */ bctr
/* 803132E4 00310224 80 7F 00 00 */ lwz r3, 0(r31)
/* 803132E8 00310228 1C 1A 00 30 */ mulli r0, r26, 0x30
/* 803132EC 0031022C 7C 03 02 14 */ add r0, r3, r0
/* 803132F0 00310230 7C 03 03 78 */ mr r3, r0
/* 803132F4 00310234 48 00 02 00 */ b lbl_803134F4
/* 803132F8 00310238 80 7F 00 00 */ lwz r3, 0(r31)
/* 803132FC 0031023C 1C 1A 00 30 */ mulli r0, r26, 0x30
/* 80313300 00310240 7C 03 02 14 */ add r0, r3, r0
/* 80313304 00310244 7C 03 03 78 */ mr r3, r0
/* 80313308 00310248 48 00 01 EC */ b lbl_803134F4
/* 8031330C 0031024C 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313310 00310250 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80313314 00310254 38 81 00 88 */ addi r4, r1, 0x88
/* 80313318 00310258 48 03 32 99 */ bl PSMTXInverse
/* 8031331C 0031025C 80 7F 00 00 */ lwz r3, 0(r31)
/* 80313320 00310260 1C 1A 00 30 */ mulli r0, r26, 0x30
/* 80313324 00310264 7C 63 02 14 */ add r3, r3, r0
/* 80313328 00310268 38 81 00 88 */ addi r4, r1, 0x88
/* 8031332C 0031026C 7C 85 23 78 */ mr r5, r4
/* 80313330 00310270 48 03 31 B5 */ bl PSMTXConcat
/* 80313334 00310274 38 61 00 88 */ addi r3, r1, 0x88
/* 80313338 00310278 48 00 01 BC */ b lbl_803134F4
/* 8031333C 0031027C 54 A0 CF FF */ rlwinm. r0, r5, 0x19, 0x1f, 0x1f
/* 80313340 00310280 40 82 00 18 */ bne lbl_80313358
/* 80313344 00310284 38 64 00 10 */ addi r3, r4, 0x10
/* 80313348 00310288 38 84 00 04 */ addi r4, r4, 4
/* 8031334C 0031028C 38 A1 00 08 */ addi r5, r1, 8
/* 80313350 00310290 4B FF E8 31 */ bl J3DGetTextureMtxOld
/* 80313354 00310294 48 00 00 18 */ b lbl_8031336C
lbl_80313358:
/* 80313358 00310298 28 00 00 01 */ cmplwi r0, 1
/* 8031335C 0031029C 40 82 00 10 */ bne lbl_8031336C
/* 80313360 003102A0 38 64 00 10 */ addi r3, r4, 0x10
/* 80313364 003102A4 38 81 00 08 */ addi r4, r1, 8
/* 80313368 003102A8 4B FF E9 7D */ bl J3DGetTextureMtxMayaOld
lbl_8031336C:
/* 8031336C 003102AC 80 7F 00 04 */ lwz r3, 4(r31)
/* 80313370 003102B0 57 40 30 32 */ slwi r0, r26, 6
/* 80313374 003102B4 7C 83 02 14 */ add r4, r3, r0
/* 80313378 003102B8 38 61 00 08 */ addi r3, r1, 8
/* 8031337C 003102BC 38 A1 00 88 */ addi r5, r1, 0x88
/* 80313380 003102C0 4B FF EA CD */ bl J3DMtxProjConcat
/* 80313384 003102C4 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313388 003102C8 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 8031338C 003102CC 38 81 00 48 */ addi r4, r1, 0x48
/* 80313390 003102D0 48 03 32 21 */ bl PSMTXInverse
/* 80313394 003102D4 38 61 00 88 */ addi r3, r1, 0x88
/* 80313398 003102D8 38 81 00 48 */ addi r4, r1, 0x48
/* 8031339C 003102DC 7C 65 1B 78 */ mr r5, r3
/* 803133A0 003102E0 48 03 31 45 */ bl PSMTXConcat
/* 803133A4 003102E4 C0 02 C9 98 */ lfs f0, lbl_80456398-_SDA2_BASE_(r2)
/* 803133A8 003102E8 D0 01 00 B4 */ stfs f0, 0xb4(r1)
/* 803133AC 003102EC D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 803133B0 003102F0 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 803133B4 003102F4 38 61 00 88 */ addi r3, r1, 0x88
/* 803133B8 003102F8 48 00 01 3C */ b lbl_803134F4
/* 803133BC 003102FC 54 A0 CF FF */ rlwinm. r0, r5, 0x19, 0x1f, 0x1f
/* 803133C0 00310300 40 82 00 18 */ bne lbl_803133D8
/* 803133C4 00310304 38 64 00 10 */ addi r3, r4, 0x10
/* 803133C8 00310308 38 84 00 04 */ addi r4, r4, 4
/* 803133CC 0031030C 38 A1 00 08 */ addi r5, r1, 8
/* 803133D0 00310310 4B FF E6 FD */ bl J3DGetTextureMtx
/* 803133D4 00310314 48 00 00 18 */ b lbl_803133EC
lbl_803133D8:
/* 803133D8 00310318 28 00 00 01 */ cmplwi r0, 1
/* 803133DC 0031031C 40 82 00 10 */ bne lbl_803133EC
/* 803133E0 00310320 38 64 00 10 */ addi r3, r4, 0x10
/* 803133E4 00310324 38 81 00 08 */ addi r4, r1, 8
/* 803133E8 00310328 4B FF E8 4D */ bl J3DGetTextureMtxMaya
lbl_803133EC:
/* 803133EC 0031032C 38 61 00 08 */ addi r3, r1, 8
/* 803133F0 00310330 3C 80 80 3D */ lis r4, lbl_803CDAB0@ha
/* 803133F4 00310334 38 84 DA B0 */ addi r4, r4, lbl_803CDAB0@l
/* 803133F8 00310338 7C 65 1B 78 */ mr r5, r3
/* 803133FC 0031033C 48 03 30 E9 */ bl PSMTXConcat
/* 80313400 00310340 80 7F 00 04 */ lwz r3, 4(r31)
/* 80313404 00310344 57 40 30 32 */ slwi r0, r26, 6
/* 80313408 00310348 7C 83 02 14 */ add r4, r3, r0
/* 8031340C 0031034C 38 61 00 08 */ addi r3, r1, 8
/* 80313410 00310350 38 A1 00 88 */ addi r5, r1, 0x88
/* 80313414 00310354 4B FF EA 39 */ bl J3DMtxProjConcat
/* 80313418 00310358 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 8031341C 0031035C 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80313420 00310360 38 81 00 48 */ addi r4, r1, 0x48
/* 80313424 00310364 48 03 31 8D */ bl PSMTXInverse
/* 80313428 00310368 38 61 00 88 */ addi r3, r1, 0x88
/* 8031342C 0031036C 38 81 00 48 */ addi r4, r1, 0x48
/* 80313430 00310370 7C 65 1B 78 */ mr r5, r3
/* 80313434 00310374 48 03 30 B1 */ bl PSMTXConcat
/* 80313438 00310378 C0 02 C9 98 */ lfs f0, lbl_80456398-_SDA2_BASE_(r2)
/* 8031343C 0031037C D0 01 00 B4 */ stfs f0, 0xb4(r1)
/* 80313440 00310380 D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 80313444 00310384 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 80313448 00310388 38 61 00 88 */ addi r3, r1, 0x88
/* 8031344C 0031038C 48 00 00 A8 */ b lbl_803134F4
/* 80313450 00310390 54 A0 CF FF */ rlwinm. r0, r5, 0x19, 0x1f, 0x1f
/* 80313454 00310394 40 82 00 18 */ bne lbl_8031346C
/* 80313458 00310398 38 64 00 10 */ addi r3, r4, 0x10
/* 8031345C 0031039C 38 84 00 04 */ addi r4, r4, 4
/* 80313460 003103A0 38 A1 00 08 */ addi r5, r1, 8
/* 80313464 003103A4 4B FF E6 69 */ bl J3DGetTextureMtx
/* 80313468 003103A8 48 00 00 18 */ b lbl_80313480
lbl_8031346C:
/* 8031346C 003103AC 28 00 00 01 */ cmplwi r0, 1
/* 80313470 003103B0 40 82 00 10 */ bne lbl_80313480
/* 80313474 003103B4 38 64 00 10 */ addi r3, r4, 0x10
/* 80313478 003103B8 38 81 00 08 */ addi r4, r1, 8
/* 8031347C 003103BC 4B FF E7 B9 */ bl J3DGetTextureMtxMaya
lbl_80313480:
/* 80313480 003103C0 38 61 00 08 */ addi r3, r1, 8
/* 80313484 003103C4 3C 80 80 3D */ lis r4, lbl_803CDAE0@ha
/* 80313488 003103C8 38 84 DA E0 */ addi r4, r4, lbl_803CDAE0@l
/* 8031348C 003103CC 7C 65 1B 78 */ mr r5, r3
/* 80313490 003103D0 48 03 30 55 */ bl PSMTXConcat
/* 80313494 003103D4 80 7F 00 04 */ lwz r3, 4(r31)
/* 80313498 003103D8 57 40 30 32 */ slwi r0, r26, 6
/* 8031349C 003103DC 7C 83 02 14 */ add r4, r3, r0
/* 803134A0 003103E0 38 61 00 08 */ addi r3, r1, 8
/* 803134A4 003103E4 38 A1 00 88 */ addi r5, r1, 0x88
/* 803134A8 003103E8 4B FF E9 A5 */ bl J3DMtxProjConcat
/* 803134AC 003103EC 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803134B0 003103F0 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 803134B4 003103F4 38 81 00 48 */ addi r4, r1, 0x48
/* 803134B8 003103F8 48 03 30 F9 */ bl PSMTXInverse
/* 803134BC 003103FC 38 61 00 88 */ addi r3, r1, 0x88
/* 803134C0 00310400 38 81 00 48 */ addi r4, r1, 0x48
/* 803134C4 00310404 7C 65 1B 78 */ mr r5, r3
/* 803134C8 00310408 48 03 30 1D */ bl PSMTXConcat
/* 803134CC 0031040C C0 02 C9 98 */ lfs f0, lbl_80456398-_SDA2_BASE_(r2)
/* 803134D0 00310410 D0 01 00 B4 */ stfs f0, 0xb4(r1)
/* 803134D4 00310414 D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 803134D8 00310418 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 803134DC 0031041C 38 61 00 88 */ addi r3, r1, 0x88
/* 803134E0 00310420 48 00 00 14 */ b lbl_803134F4
lbl_803134E4:
/* 803134E4 00310424 80 7F 00 00 */ lwz r3, 0(r31)
/* 803134E8 00310428 1C 1A 00 30 */ mulli r0, r26, 0x30
/* 803134EC 0031042C 7C 03 02 14 */ add r0, r3, r0
/* 803134F0 00310430 7C 03 03 78 */ mr r3, r0
lbl_803134F4:
/* 803134F4 00310434 57 20 04 3E */ clrlwi r0, r25, 0x10
/* 803134F8 00310438 1C 80 00 03 */ mulli r4, r0, 3
/* 803134FC 0031043C 38 84 00 40 */ addi r4, r4, 0x40
/* 80313500 00310440 38 A0 00 00 */ li r5, 0
/* 80313504 00310444 48 04 CE 1D */ bl GXLoadTexMtxImm
lbl_80313508:
/* 80313508 00310448 3B 39 00 01 */ addi r25, r25, 1
lbl_8031350C:
/* 8031350C 0031044C 57 20 04 3E */ clrlwi r0, r25, 0x10
/* 80313510 00310450 7C 00 E0 40 */ cmplw r0, r28
/* 80313514 00310454 41 80 FD 5C */ blt lbl_80313270
/* 80313518 00310458 48 00 02 F8 */ b lbl_80313810
lbl_8031351C:
/* 8031351C 0031045C 3B A0 00 00 */ li r29, 0
/* 80313520 00310460 54 9A 04 3E */ clrlwi r26, r4, 0x10
/* 80313524 00310464 48 00 02 E0 */ b lbl_80313804
lbl_80313528:
/* 80313528 00310468 7F 63 DB 78 */ mr r3, r27
/* 8031352C 0031046C 57 B9 04 3E */ clrlwi r25, r29, 0x10
/* 80313530 00310470 7F 24 CB 78 */ mr r4, r25
/* 80313534 00310474 81 9B 00 00 */ lwz r12, 0(r27)
/* 80313538 00310478 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 8031353C 0031047C 7D 89 03 A6 */ mtctr r12
/* 80313540 00310480 4E 80 04 21 */ bctrl
/* 80313544 00310484 88 03 00 00 */ lbz r0, 0(r3)
/* 80313548 00310488 2C 00 00 01 */ cmpwi r0, 1
/* 8031354C 0031048C 41 82 00 0C */ beq lbl_80313558
/* 80313550 00310490 2C 00 00 00 */ cmpwi r0, 0
/* 80313554 00310494 40 82 02 AC */ bne lbl_80313800
lbl_80313558:
/* 80313558 00310498 7F 63 DB 78 */ mr r3, r27
/* 8031355C 0031049C 7F 24 CB 78 */ mr r4, r25
/* 80313560 003104A0 81 9B 00 00 */ lwz r12, 0(r27)
/* 80313564 003104A4 81 8C 00 50 */ lwz r12, 0x50(r12)
/* 80313568 003104A8 7D 89 03 A6 */ mtctr r12
/* 8031356C 003104AC 4E 80 04 21 */ bctrl
/* 80313570 003104B0 7C 7E 1B 78 */ mr r30, r3
/* 80313574 003104B4 88 83 00 01 */ lbz r4, 1(r3)
/* 80313578 003104B8 54 80 06 BE */ clrlwi r0, r4, 0x1a
/* 8031357C 003104BC 28 00 00 0B */ cmplwi r0, 0xb
/* 80313580 003104C0 41 81 02 60 */ bgt lbl_803137E0
/* 80313584 003104C4 3C 60 80 3D */ lis r3, lbl_803CDB10@ha
/* 80313588 003104C8 38 63 DB 10 */ addi r3, r3, lbl_803CDB10@l
/* 8031358C 003104CC 54 00 10 3A */ slwi r0, r0, 2
/* 80313590 003104D0 7C 03 00 2E */ lwzx r0, r3, r0
/* 80313594 003104D4 7C 09 03 A6 */ mtctr r0
/* 80313598 003104D8 4E 80 04 20 */ bctr
/* 8031359C 003104DC 80 7F 00 00 */ lwz r3, 0(r31)
/* 803135A0 003104E0 1C 19 00 30 */ mulli r0, r25, 0x30
/* 803135A4 003104E4 7C 63 02 14 */ add r3, r3, r0
/* 803135A8 003104E8 7F 84 E3 78 */ mr r4, r28
/* 803135AC 003104EC 38 A1 00 88 */ addi r5, r1, 0x88
/* 803135B0 003104F0 48 03 2F 35 */ bl PSMTXConcat
/* 803135B4 003104F4 38 61 00 88 */ addi r3, r1, 0x88
/* 803135B8 003104F8 48 00 02 34 */ b lbl_803137EC
/* 803135BC 003104FC 7F 83 E3 78 */ mr r3, r28
/* 803135C0 00310500 38 81 00 48 */ addi r4, r1, 0x48
/* 803135C4 00310504 48 03 2E ED */ bl PSMTXCopy
/* 803135C8 00310508 C0 02 C9 98 */ lfs f0, lbl_80456398-_SDA2_BASE_(r2)
/* 803135CC 0031050C D0 01 00 74 */ stfs f0, 0x74(r1)
/* 803135D0 00310510 D0 01 00 64 */ stfs f0, 0x64(r1)
/* 803135D4 00310514 D0 01 00 54 */ stfs f0, 0x54(r1)
/* 803135D8 00310518 80 7F 00 00 */ lwz r3, 0(r31)
/* 803135DC 0031051C 1C 19 00 30 */ mulli r0, r25, 0x30
/* 803135E0 00310520 7C 63 02 14 */ add r3, r3, r0
/* 803135E4 00310524 38 81 00 48 */ addi r4, r1, 0x48
/* 803135E8 00310528 38 A1 00 88 */ addi r5, r1, 0x88
/* 803135EC 0031052C 48 03 2E F9 */ bl PSMTXConcat
/* 803135F0 00310530 38 61 00 88 */ addi r3, r1, 0x88
/* 803135F4 00310534 48 00 01 F8 */ b lbl_803137EC
/* 803135F8 00310538 80 7F 00 00 */ lwz r3, 0(r31)
/* 803135FC 0031053C 1C 19 00 30 */ mulli r0, r25, 0x30
/* 80313600 00310540 7C 63 02 14 */ add r3, r3, r0
/* 80313604 00310544 48 00 01 E8 */ b lbl_803137EC
/* 80313608 00310548 54 80 CF FF */ rlwinm. r0, r4, 0x19, 0x1f, 0x1f
/* 8031360C 0031054C 40 82 00 18 */ bne lbl_80313624
/* 80313610 00310550 38 7E 00 10 */ addi r3, r30, 0x10
/* 80313614 00310554 38 9E 00 04 */ addi r4, r30, 4
/* 80313618 00310558 38 A1 00 08 */ addi r5, r1, 8
/* 8031361C 0031055C 4B FF E5 65 */ bl J3DGetTextureMtxOld
/* 80313620 00310560 48 00 00 18 */ b lbl_80313638
lbl_80313624:
/* 80313624 00310564 28 00 00 01 */ cmplwi r0, 1
/* 80313628 00310568 40 82 00 10 */ bne lbl_80313638
/* 8031362C 0031056C 38 7E 00 10 */ addi r3, r30, 0x10
/* 80313630 00310570 38 81 00 08 */ addi r4, r1, 8
/* 80313634 00310574 4B FF E6 B1 */ bl J3DGetTextureMtxMayaOld
lbl_80313638:
/* 80313638 00310578 80 7F 00 04 */ lwz r3, 4(r31)
/* 8031363C 0031057C 57 20 30 32 */ slwi r0, r25, 6
/* 80313640 00310580 7C 83 02 14 */ add r4, r3, r0
/* 80313644 00310584 38 61 00 08 */ addi r3, r1, 8
/* 80313648 00310588 38 A1 00 88 */ addi r5, r1, 0x88
/* 8031364C 0031058C 4B FF E8 01 */ bl J3DMtxProjConcat
/* 80313650 00310590 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313654 00310594 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80313658 00310598 38 81 00 48 */ addi r4, r1, 0x48
/* 8031365C 0031059C 48 03 2F 55 */ bl PSMTXInverse
/* 80313660 003105A0 38 61 00 88 */ addi r3, r1, 0x88
/* 80313664 003105A4 38 81 00 48 */ addi r4, r1, 0x48
/* 80313668 003105A8 7C 65 1B 78 */ mr r5, r3
/* 8031366C 003105AC 48 03 2E 79 */ bl PSMTXConcat
/* 80313670 003105B0 38 61 00 88 */ addi r3, r1, 0x88
/* 80313674 003105B4 7F 84 E3 78 */ mr r4, r28
/* 80313678 003105B8 7C 65 1B 78 */ mr r5, r3
/* 8031367C 003105BC 48 03 2E 69 */ bl PSMTXConcat
/* 80313680 003105C0 C0 02 C9 98 */ lfs f0, lbl_80456398-_SDA2_BASE_(r2)
/* 80313684 003105C4 D0 01 00 B4 */ stfs f0, 0xb4(r1)
/* 80313688 003105C8 D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 8031368C 003105CC D0 01 00 94 */ stfs f0, 0x94(r1)
/* 80313690 003105D0 38 61 00 88 */ addi r3, r1, 0x88
/* 80313694 003105D4 48 00 01 58 */ b lbl_803137EC
/* 80313698 003105D8 54 80 CF FF */ rlwinm. r0, r4, 0x19, 0x1f, 0x1f
/* 8031369C 003105DC 40 82 00 18 */ bne lbl_803136B4
/* 803136A0 003105E0 38 7E 00 10 */ addi r3, r30, 0x10
/* 803136A4 003105E4 38 9E 00 04 */ addi r4, r30, 4
/* 803136A8 003105E8 38 A1 00 08 */ addi r5, r1, 8
/* 803136AC 003105EC 4B FF E4 21 */ bl J3DGetTextureMtx
/* 803136B0 003105F0 48 00 00 18 */ b lbl_803136C8
lbl_803136B4:
/* 803136B4 003105F4 28 00 00 01 */ cmplwi r0, 1
/* 803136B8 003105F8 40 82 00 10 */ bne lbl_803136C8
/* 803136BC 003105FC 38 7E 00 10 */ addi r3, r30, 0x10
/* 803136C0 00310600 38 81 00 08 */ addi r4, r1, 8
/* 803136C4 00310604 4B FF E5 71 */ bl J3DGetTextureMtxMaya
lbl_803136C8:
/* 803136C8 00310608 38 61 00 08 */ addi r3, r1, 8
/* 803136CC 0031060C 3C 80 80 3D */ lis r4, lbl_803CDAB0@ha
/* 803136D0 00310610 38 84 DA B0 */ addi r4, r4, lbl_803CDAB0@l
/* 803136D4 00310614 7C 65 1B 78 */ mr r5, r3
/* 803136D8 00310618 48 03 2E 0D */ bl PSMTXConcat
/* 803136DC 0031061C 80 7F 00 04 */ lwz r3, 4(r31)
/* 803136E0 00310620 57 20 30 32 */ slwi r0, r25, 6
/* 803136E4 00310624 7C 83 02 14 */ add r4, r3, r0
/* 803136E8 00310628 38 61 00 08 */ addi r3, r1, 8
/* 803136EC 0031062C 38 A1 00 88 */ addi r5, r1, 0x88
/* 803136F0 00310630 4B FF E7 5D */ bl J3DMtxProjConcat
/* 803136F4 00310634 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803136F8 00310638 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 803136FC 0031063C 38 81 00 48 */ addi r4, r1, 0x48
/* 80313700 00310640 48 03 2E B1 */ bl PSMTXInverse
/* 80313704 00310644 38 61 00 88 */ addi r3, r1, 0x88
/* 80313708 00310648 38 81 00 48 */ addi r4, r1, 0x48
/* 8031370C 0031064C 7C 65 1B 78 */ mr r5, r3
/* 80313710 00310650 48 03 2D D5 */ bl PSMTXConcat
/* 80313714 00310654 38 61 00 88 */ addi r3, r1, 0x88
/* 80313718 00310658 7F 84 E3 78 */ mr r4, r28
/* 8031371C 0031065C 7C 65 1B 78 */ mr r5, r3
/* 80313720 00310660 48 03 2D C5 */ bl PSMTXConcat
/* 80313724 00310664 C0 02 C9 98 */ lfs f0, lbl_80456398-_SDA2_BASE_(r2)
/* 80313728 00310668 D0 01 00 B4 */ stfs f0, 0xb4(r1)
/* 8031372C 0031066C D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 80313730 00310670 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 80313734 00310674 38 61 00 88 */ addi r3, r1, 0x88
/* 80313738 00310678 48 00 00 B4 */ b lbl_803137EC
/* 8031373C 0031067C 54 80 CF FF */ rlwinm. r0, r4, 0x19, 0x1f, 0x1f
/* 80313740 00310680 40 82 00 18 */ bne lbl_80313758
/* 80313744 00310684 38 7E 00 10 */ addi r3, r30, 0x10
/* 80313748 00310688 38 9E 00 04 */ addi r4, r30, 4
/* 8031374C 0031068C 38 A1 00 08 */ addi r5, r1, 8
/* 80313750 00310690 4B FF E3 7D */ bl J3DGetTextureMtx
/* 80313754 00310694 48 00 00 18 */ b lbl_8031376C
lbl_80313758:
/* 80313758 00310698 28 00 00 01 */ cmplwi r0, 1
/* 8031375C 0031069C 40 82 00 10 */ bne lbl_8031376C
/* 80313760 003106A0 38 7E 00 10 */ addi r3, r30, 0x10
/* 80313764 003106A4 38 81 00 08 */ addi r4, r1, 8
/* 80313768 003106A8 4B FF E4 CD */ bl J3DGetTextureMtxMaya
lbl_8031376C:
/* 8031376C 003106AC 38 61 00 08 */ addi r3, r1, 8
/* 80313770 003106B0 3C 80 80 3D */ lis r4, lbl_803CDAE0@ha
/* 80313774 003106B4 38 84 DA E0 */ addi r4, r4, lbl_803CDAE0@l
/* 80313778 003106B8 7C 65 1B 78 */ mr r5, r3
/* 8031377C 003106BC 48 03 2D 69 */ bl PSMTXConcat
/* 80313780 003106C0 80 7F 00 04 */ lwz r3, 4(r31)
/* 80313784 003106C4 57 20 30 32 */ slwi r0, r25, 6
/* 80313788 003106C8 7C 83 02 14 */ add r4, r3, r0
/* 8031378C 003106CC 38 61 00 08 */ addi r3, r1, 8
/* 80313790 003106D0 38 A1 00 88 */ addi r5, r1, 0x88
/* 80313794 003106D4 4B FF E6 B9 */ bl J3DMtxProjConcat
/* 80313798 003106D8 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 8031379C 003106DC 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 803137A0 003106E0 38 81 00 48 */ addi r4, r1, 0x48
/* 803137A4 003106E4 48 03 2E 0D */ bl PSMTXInverse
/* 803137A8 003106E8 38 61 00 88 */ addi r3, r1, 0x88
/* 803137AC 003106EC 38 81 00 48 */ addi r4, r1, 0x48
/* 803137B0 003106F0 7C 65 1B 78 */ mr r5, r3
/* 803137B4 003106F4 48 03 2D 31 */ bl PSMTXConcat
/* 803137B8 003106F8 38 61 00 88 */ addi r3, r1, 0x88
/* 803137BC 003106FC 7F 84 E3 78 */ mr r4, r28
/* 803137C0 00310700 7C 65 1B 78 */ mr r5, r3
/* 803137C4 00310704 48 03 2D 21 */ bl PSMTXConcat
/* 803137C8 00310708 C0 02 C9 98 */ lfs f0, lbl_80456398-_SDA2_BASE_(r2)
/* 803137CC 0031070C D0 01 00 B4 */ stfs f0, 0xb4(r1)
/* 803137D0 00310710 D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 803137D4 00310714 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 803137D8 00310718 38 61 00 88 */ addi r3, r1, 0x88
/* 803137DC 0031071C 48 00 00 10 */ b lbl_803137EC
lbl_803137E0:
/* 803137E0 00310720 80 7F 00 00 */ lwz r3, 0(r31)
/* 803137E4 00310724 1C 19 00 30 */ mulli r0, r25, 0x30
/* 803137E8 00310728 7C 63 02 14 */ add r3, r3, r0
lbl_803137EC:
/* 803137EC 0031072C 57 A0 04 3E */ clrlwi r0, r29, 0x10
/* 803137F0 00310730 1C 80 00 03 */ mulli r4, r0, 3
/* 803137F4 00310734 38 84 00 1E */ addi r4, r4, 0x1e
/* 803137F8 00310738 88 BE 00 00 */ lbz r5, 0(r30)
/* 803137FC 0031073C 48 04 CB 25 */ bl GXLoadTexMtxImm
lbl_80313800:
/* 80313800 00310740 3B BD 00 01 */ addi r29, r29, 1
lbl_80313804:
/* 80313804 00310744 57 A0 04 3E */ clrlwi r0, r29, 0x10
/* 80313808 00310748 7C 00 D0 40 */ cmplw r0, r26
/* 8031380C 0031074C 41 80 FD 1C */ blt lbl_80313528
lbl_80313810:
/* 80313810 00310750 39 61 00 E0 */ addi r11, r1, 0xe0
/* 80313814 00310754 48 04 EA 05 */ bl _restgpr_25
/* 80313818 00310758 80 01 00 E4 */ lwz r0, 0xe4(r1)
/* 8031381C 0031075C 7C 08 03 A6 */ mtlr r0
/* 80313820 00310760 38 21 00 E0 */ addi r1, r1, 0xe0
/* 80313824 00310764 4E 80 00 20 */ blr
/* 80313828 00310768 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8031382C 0031076C 7C 08 02 A6 */ mflr r0
/* 80313830 00310770 90 01 00 54 */ stw r0, 0x54(r1)
/* 80313834 00310774 39 61 00 50 */ addi r11, r1, 0x50
/* 80313838 00310778 48 04 E9 A5 */ bl _savegpr_29
/* 8031383C 0031077C 7C 7D 1B 78 */ mr r29, r3
/* 80313840 00310780 7C 9E 23 78 */ mr r30, r4
/* 80313844 00310784 7C BF 2B 78 */ mr r31, r5
/* 80313848 00310788 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 8031384C 0031078C 38 83 4A C8 */ addi r4, r3, lbl_80434AC8@l
/* 80313850 00310790 80 64 00 40 */ lwz r3, 0x40(r4)
/* 80313854 00310794 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80313858 00310798 80 84 01 04 */ lwz r4, 0x104(r4)
/* 8031385C 0031079C 54 A0 04 3E */ clrlwi r0, r5, 0x10
/* 80313860 003107A0 1C 00 00 30 */ mulli r0, r0, 0x30
/* 80313864 003107A4 7C 84 02 14 */ add r4, r4, r0
/* 80313868 003107A8 38 A1 00 08 */ addi r5, r1, 8
/* 8031386C 003107AC 48 03 2C 79 */ bl PSMTXConcat
/* 80313870 003107B0 80 0D 90 40 */ lwz r0, lbl_804515C0-_SDA_BASE_(r13)
/* 80313874 003107B4 28 00 00 00 */ cmplwi r0, 0
/* 80313878 003107B8 41 82 00 0C */ beq lbl_80313884
/* 8031387C 003107BC 38 61 00 08 */ addi r3, r1, 8
/* 80313880 003107C0 4B FF F9 AD */ bl J3DDifferedTexMtx_NS_loadExecute
lbl_80313884:
/* 80313884 003107C4 38 61 00 08 */ addi r3, r1, 8
/* 80313888 003107C8 1C 9E 00 03 */ mulli r4, r30, 3
/* 8031388C 003107CC 4B FF C2 55 */ bl J3DFifoLoadPosMtxImm
/* 80313890 003107D0 7F A3 EB 78 */ mr r3, r29
/* 80313894 003107D4 7F C4 F3 78 */ mr r4, r30
/* 80313898 003107D8 7F E5 FB 78 */ mr r5, r31
/* 8031389C 003107DC 38 C1 00 08 */ addi r6, r1, 8
/* 803138A0 003107E0 81 9D 00 00 */ lwz r12, 0(r29)
/* 803138A4 003107E4 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 803138A8 003107E8 7D 89 03 A6 */ mtctr r12
/* 803138AC 003107EC 4E 80 04 21 */ bctrl
/* 803138B0 003107F0 39 61 00 50 */ addi r11, r1, 0x50
/* 803138B4 003107F4 48 04 E9 75 */ bl _restgpr_29
/* 803138B8 003107F8 80 01 00 54 */ lwz r0, 0x54(r1)
/* 803138BC 003107FC 7C 08 03 A6 */ mtlr r0
/* 803138C0 00310800 38 21 00 50 */ addi r1, r1, 0x50
/* 803138C4 00310804 4E 80 00 20 */ blr
/* 803138C8 00310808 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 803138CC 0031080C 7C 08 02 A6 */ mflr r0
/* 803138D0 00310810 90 01 00 54 */ stw r0, 0x54(r1)
/* 803138D4 00310814 39 61 00 50 */ addi r11, r1, 0x50
/* 803138D8 00310818 48 04 E9 01 */ bl _savegpr_28
/* 803138DC 0031081C 7C 7C 1B 78 */ mr r28, r3
/* 803138E0 00310820 7C 9D 23 78 */ mr r29, r4
/* 803138E4 00310824 7C BE 2B 78 */ mr r30, r5
/* 803138E8 00310828 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803138EC 0031082C 3B E3 4A C8 */ addi r31, r3, lbl_80434AC8@l
/* 803138F0 00310830 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 803138F4 00310834 80 63 00 30 */ lwz r3, 0x30(r3)
/* 803138F8 00310838 80 9F 01 04 */ lwz r4, 0x104(r31)
/* 803138FC 0031083C 54 A0 04 3E */ clrlwi r0, r5, 0x10
/* 80313900 00310840 1C 00 00 30 */ mulli r0, r0, 0x30
/* 80313904 00310844 7C 84 02 14 */ add r4, r4, r0
/* 80313908 00310848 38 A1 00 08 */ addi r5, r1, 8
/* 8031390C 0031084C 48 03 2B D9 */ bl PSMTXConcat
/* 80313910 00310850 80 0D 90 40 */ lwz r0, lbl_804515C0-_SDA_BASE_(r13)
/* 80313914 00310854 28 00 00 00 */ cmplwi r0, 0
/* 80313918 00310858 41 82 00 0C */ beq lbl_80313924
/* 8031391C 0031085C 38 61 00 08 */ addi r3, r1, 8
/* 80313920 00310860 4B FF F9 0D */ bl J3DDifferedTexMtx_NS_loadExecute
lbl_80313924:
/* 80313924 00310864 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 80313928 00310868 80 63 00 30 */ lwz r3, 0x30(r3)
/* 8031392C 0031086C 1C 9D 00 03 */ mulli r4, r29, 3
/* 80313930 00310870 4B FF C1 B1 */ bl J3DFifoLoadPosMtxImm
/* 80313934 00310874 7F 83 E3 78 */ mr r3, r28
/* 80313938 00310878 7F A4 EB 78 */ mr r4, r29
/* 8031393C 0031087C 7F C5 F3 78 */ mr r5, r30
/* 80313940 00310880 38 C1 00 08 */ addi r6, r1, 8
/* 80313944 00310884 81 9C 00 00 */ lwz r12, 0(r28)
/* 80313948 00310888 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8031394C 0031088C 7D 89 03 A6 */ mtctr r12
/* 80313950 00310890 4E 80 04 21 */ bctrl
/* 80313954 00310894 39 61 00 50 */ addi r11, r1, 0x50
/* 80313958 00310898 48 04 E8 CD */ bl _restgpr_28
/* 8031395C 0031089C 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80313960 003108A0 7C 08 03 A6 */ mtlr r0
/* 80313964 003108A4 38 21 00 50 */ addi r1, r1, 0x50
/* 80313968 003108A8 4E 80 00 20 */ blr
/* 8031396C 003108AC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80313970 003108B0 7C 08 02 A6 */ mflr r0
/* 80313974 003108B4 90 01 00 44 */ stw r0, 0x44(r1)
/* 80313978 003108B8 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8031397C 003108BC 93 C1 00 38 */ stw r30, 0x38(r1)
/* 80313980 003108C0 7C 9E 23 78 */ mr r30, r4
/* 80313984 003108C4 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313988 003108C8 3B E3 4A C8 */ addi r31, r3, lbl_80434AC8@l
/* 8031398C 003108CC 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 80313990 003108D0 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80313994 003108D4 80 9F 01 04 */ lwz r4, 0x104(r31)
/* 80313998 003108D8 54 A0 04 3E */ clrlwi r0, r5, 0x10
/* 8031399C 003108DC 1C 00 00 30 */ mulli r0, r0, 0x30
/* 803139A0 003108E0 7C 84 02 14 */ add r4, r4, r0
/* 803139A4 003108E4 38 A1 00 08 */ addi r5, r1, 8
/* 803139A8 003108E8 48 03 2B 3D */ bl PSMTXConcat
/* 803139AC 003108EC 80 0D 90 40 */ lwz r0, lbl_804515C0-_SDA_BASE_(r13)
/* 803139B0 003108F0 28 00 00 00 */ cmplwi r0, 0
/* 803139B4 003108F4 41 82 00 0C */ beq lbl_803139C0
/* 803139B8 003108F8 38 61 00 08 */ addi r3, r1, 8
/* 803139BC 003108FC 4B FF F8 71 */ bl J3DDifferedTexMtx_NS_loadExecute
lbl_803139C0:
/* 803139C0 00310900 38 61 00 08 */ addi r3, r1, 8
/* 803139C4 00310904 1F DE 00 03 */ mulli r30, r30, 3
/* 803139C8 00310908 7F C4 F3 78 */ mr r4, r30
/* 803139CC 0031090C 4B FF C1 15 */ bl J3DFifoLoadPosMtxImm
/* 803139D0 00310910 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 803139D4 00310914 80 63 00 30 */ lwz r3, 0x30(r3)
/* 803139D8 00310918 7F C4 F3 78 */ mr r4, r30
/* 803139DC 0031091C 4B FF C1 85 */ bl J3DFifoLoadNrmMtxImm
/* 803139E0 00310920 80 0D 90 34 */ lwz r0, lbl_804515B4-_SDA_BASE_(r13)
/* 803139E4 00310924 28 00 20 00 */ cmplwi r0, 0x2000
/* 803139E8 00310928 40 82 00 14 */ bne lbl_803139FC
/* 803139EC 0031092C 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 803139F0 00310930 80 63 00 30 */ lwz r3, 0x30(r3)
/* 803139F4 00310934 38 9E 00 1E */ addi r4, r30, 0x1e
/* 803139F8 00310938 4B FF C2 41 */ bl J3DFifoLoadNrmMtxToTexMtx
lbl_803139FC:
/* 803139FC 0031093C 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 80313A00 00310940 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 80313A04 00310944 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80313A08 00310948 7C 08 03 A6 */ mtlr r0
/* 80313A0C 0031094C 38 21 00 40 */ addi r1, r1, 0x40
/* 80313A10 00310950 4E 80 00 20 */ blr
/* 80313A14 00310954 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80313A18 00310958 7C 08 02 A6 */ mflr r0
/* 80313A1C 0031095C 90 01 00 44 */ stw r0, 0x44(r1)
/* 80313A20 00310960 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 80313A24 00310964 93 C1 00 38 */ stw r30, 0x38(r1)
/* 80313A28 00310968 7C 9E 23 78 */ mr r30, r4
/* 80313A2C 0031096C 80 0D 90 40 */ lwz r0, lbl_804515C0-_SDA_BASE_(r13)
/* 80313A30 00310970 28 00 00 00 */ cmplwi r0, 0
/* 80313A34 00310974 41 82 00 34 */ beq lbl_80313A68
/* 80313A38 00310978 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313A3C 0031097C 38 83 4A C8 */ addi r4, r3, lbl_80434AC8@l
/* 80313A40 00310980 80 64 00 40 */ lwz r3, 0x40(r4)
/* 80313A44 00310984 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80313A48 00310988 80 84 01 04 */ lwz r4, 0x104(r4)
/* 80313A4C 0031098C 54 A0 04 3E */ clrlwi r0, r5, 0x10
/* 80313A50 00310990 1C 00 00 30 */ mulli r0, r0, 0x30
/* 80313A54 00310994 7C 84 02 14 */ add r4, r4, r0
/* 80313A58 00310998 38 A1 00 08 */ addi r5, r1, 8
/* 80313A5C 0031099C 48 03 2A 89 */ bl PSMTXConcat
/* 80313A60 003109A0 38 61 00 08 */ addi r3, r1, 8
/* 80313A64 003109A4 4B FF F7 C9 */ bl J3DDifferedTexMtx_NS_loadExecute
lbl_80313A68:
/* 80313A68 003109A8 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313A6C 003109AC 3B E3 4A C8 */ addi r31, r3, lbl_80434AC8@l
/* 80313A70 003109B0 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 80313A74 003109B4 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80313A78 003109B8 1F DE 00 03 */ mulli r30, r30, 3
/* 80313A7C 003109BC 7F C4 F3 78 */ mr r4, r30
/* 80313A80 003109C0 4B FF C0 61 */ bl J3DFifoLoadPosMtxImm
/* 80313A84 003109C4 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 80313A88 003109C8 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80313A8C 003109CC 7F C4 F3 78 */ mr r4, r30
/* 80313A90 003109D0 4B FF C0 D1 */ bl J3DFifoLoadNrmMtxImm
/* 80313A94 003109D4 80 0D 90 34 */ lwz r0, lbl_804515B4-_SDA_BASE_(r13)
/* 80313A98 003109D8 28 00 20 00 */ cmplwi r0, 0x2000
/* 80313A9C 003109DC 40 82 00 14 */ bne lbl_80313AB0
/* 80313AA0 003109E0 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 80313AA4 003109E4 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80313AA8 003109E8 38 9E 00 1E */ addi r4, r30, 0x1e
/* 80313AAC 003109EC 4B FF C1 8D */ bl J3DFifoLoadNrmMtxToTexMtx
lbl_80313AB0:
/* 80313AB0 003109F0 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 80313AB4 003109F4 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 80313AB8 003109F8 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80313ABC 003109FC 7C 08 03 A6 */ mtlr r0
/* 80313AC0 00310A00 38 21 00 40 */ addi r1, r1, 0x40
/* 80313AC4 00310A04 4E 80 00 20 */ blr
/* 80313AC8 00310A08 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80313ACC 00310A0C 7C 08 02 A6 */ mflr r0
/* 80313AD0 00310A10 90 01 00 54 */ stw r0, 0x54(r1)
/* 80313AD4 00310A14 39 61 00 50 */ addi r11, r1, 0x50
/* 80313AD8 00310A18 48 04 E7 05 */ bl _savegpr_29
/* 80313ADC 00310A1C 7C 7D 1B 78 */ mr r29, r3
/* 80313AE0 00310A20 7C 9E 23 78 */ mr r30, r4
/* 80313AE4 00310A24 7C BF 2B 78 */ mr r31, r5
/* 80313AE8 00310A28 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313AEC 00310A2C 38 83 4A C8 */ addi r4, r3, lbl_80434AC8@l
/* 80313AF0 00310A30 80 64 00 40 */ lwz r3, 0x40(r4)
/* 80313AF4 00310A34 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80313AF8 00310A38 80 84 01 04 */ lwz r4, 0x104(r4)
/* 80313AFC 00310A3C 54 A0 04 3E */ clrlwi r0, r5, 0x10
/* 80313B00 00310A40 1C 00 00 30 */ mulli r0, r0, 0x30
/* 80313B04 00310A44 7C 84 02 14 */ add r4, r4, r0
/* 80313B08 00310A48 38 A1 00 08 */ addi r5, r1, 8
/* 80313B0C 00310A4C 48 03 29 D9 */ bl PSMTXConcat
/* 80313B10 00310A50 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313B14 00310A54 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80313B18 00310A58 80 63 00 38 */ lwz r3, 0x38(r3)
/* 80313B1C 00310A5C 80 63 00 04 */ lwz r3, 4(r3)
/* 80313B20 00310A60 80 63 00 3C */ lwz r3, 0x3c(r3)
/* 80313B24 00310A64 57 E0 04 3E */ clrlwi r0, r31, 0x10
/* 80313B28 00310A68 1C 00 00 30 */ mulli r0, r0, 0x30
/* 80313B2C 00310A6C 7C 83 02 14 */ add r4, r3, r0
/* 80313B30 00310A70 38 61 00 08 */ addi r3, r1, 8
/* 80313B34 00310A74 7C 65 1B 78 */ mr r5, r3
/* 80313B38 00310A78 48 03 29 AD */ bl PSMTXConcat
/* 80313B3C 00310A7C 80 0D 90 40 */ lwz r0, lbl_804515C0-_SDA_BASE_(r13)
/* 80313B40 00310A80 28 00 00 00 */ cmplwi r0, 0
/* 80313B44 00310A84 41 82 00 0C */ beq lbl_80313B50
/* 80313B48 00310A88 38 61 00 08 */ addi r3, r1, 8
/* 80313B4C 00310A8C 4B FF F6 E1 */ bl J3DDifferedTexMtx_NS_loadExecute
lbl_80313B50:
/* 80313B50 00310A90 38 61 00 08 */ addi r3, r1, 8
/* 80313B54 00310A94 1C 9E 00 03 */ mulli r4, r30, 3
/* 80313B58 00310A98 4B FF BF 89 */ bl J3DFifoLoadPosMtxImm
/* 80313B5C 00310A9C 7F A3 EB 78 */ mr r3, r29
/* 80313B60 00310AA0 7F C4 F3 78 */ mr r4, r30
/* 80313B64 00310AA4 7F E5 FB 78 */ mr r5, r31
/* 80313B68 00310AA8 38 C1 00 08 */ addi r6, r1, 8
/* 80313B6C 00310AAC 81 9D 00 00 */ lwz r12, 0(r29)
/* 80313B70 00310AB0 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 80313B74 00310AB4 7D 89 03 A6 */ mtctr r12
/* 80313B78 00310AB8 4E 80 04 21 */ bctrl
/* 80313B7C 00310ABC 39 61 00 50 */ addi r11, r1, 0x50
/* 80313B80 00310AC0 48 04 E6 A9 */ bl _restgpr_29
/* 80313B84 00310AC4 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80313B88 00310AC8 7C 08 03 A6 */ mtlr r0
/* 80313B8C 00310ACC 38 21 00 50 */ addi r1, r1, 0x50
/* 80313B90 00310AD0 4E 80 00 20 */ blr
/* 80313B94 00310AD4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80313B98 00310AD8 7C 08 02 A6 */ mflr r0
/* 80313B9C 00310ADC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80313BA0 00310AE0 80 0D 90 28 */ lwz r0, lbl_804515A8-_SDA_BASE_(r13)
/* 80313BA4 00310AE4 1C A0 00 0C */ mulli r5, r0, 0xc
/* 80313BA8 00310AE8 3C 80 80 3D */ lis r4, lbl_803CD9C0@ha
/* 80313BAC 00310AEC 38 04 D9 C0 */ addi r0, r4, lbl_803CD9C0@l
/* 80313BB0 00310AF0 7C A0 2A 14 */ add r5, r0, r5
/* 80313BB4 00310AF4 80 85 00 00 */ lwz r4, 0(r5)
/* 80313BB8 00310AF8 80 05 00 04 */ lwz r0, 4(r5)
/* 80313BBC 00310AFC 90 81 00 08 */ stw r4, 8(r1)
/* 80313BC0 00310B00 90 01 00 0C */ stw r0, 0xc(r1)
/* 80313BC4 00310B04 80 05 00 08 */ lwz r0, 8(r5)
/* 80313BC8 00310B08 90 01 00 10 */ stw r0, 0x10(r1)
/* 80313BCC 00310B0C 38 80 00 00 */ li r4, 0
/* 80313BD0 00310B10 A0 A3 00 04 */ lhz r5, 4(r3)
/* 80313BD4 00310B14 39 81 00 08 */ addi r12, r1, 8
/* 80313BD8 00310B18 48 04 E4 AD */ bl func_80362084
/* 80313BDC 00310B1C 60 00 00 00 */ nop
/* 80313BE0 00310B20 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80313BE4 00310B24 7C 08 03 A6 */ mtlr r0
/* 80313BE8 00310B28 38 21 00 20 */ addi r1, r1, 0x20
/* 80313BEC 00310B2C 4E 80 00 20 */ blr
/* 80313BF0 00310B30 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80313BF4 00310B34 7C 08 02 A6 */ mflr r0
/* 80313BF8 00310B38 90 01 00 14 */ stw r0, 0x14(r1)
/* 80313BFC 00310B3C A0 03 00 04 */ lhz r0, 4(r3)
/* 80313C00 00310B40 1C 00 00 24 */ mulli r0, r0, 0x24
/* 80313C04 00310B44 7C E6 02 14 */ add r7, r6, r0
/* 80313C08 00310B48 7C A5 02 14 */ add r5, r5, r0
/* 80313C0C 00310B4C E0 85 00 00 */ psq_l f4, 0(r5), 0, qr0
/* 80313C10 00310B50 E0 65 00 08 */ psq_l f3, 8(r5), 0, qr0
/* 80313C14 00310B54 E0 45 00 10 */ psq_l f2, 16(r5), 0, qr0
/* 80313C18 00310B58 E0 25 00 18 */ psq_l f1, 24(r5), 0, qr0
/* 80313C1C 00310B5C C0 05 00 20 */ lfs f0, 0x20(r5)
/* 80313C20 00310B60 F0 87 00 00 */ psq_st f4, 0(r7), 0, qr0
/* 80313C24 00310B64 F0 67 00 08 */ psq_st f3, 8(r7), 0, qr0
/* 80313C28 00310B68 F0 47 00 10 */ psq_st f2, 16(r7), 0, qr0
/* 80313C2C 00310B6C F0 27 00 18 */ psq_st f1, 24(r7), 0, qr0
/* 80313C30 00310B70 D0 07 00 20 */ stfs f0, 0x20(r7)
/* 80313C34 00310B74 A0 03 00 04 */ lhz r0, 4(r3)
/* 80313C38 00310B78 1C 00 00 24 */ mulli r0, r0, 0x24
/* 80313C3C 00310B7C 7C 66 02 14 */ add r3, r6, r0
/* 80313C40 00310B80 4B FF E1 B9 */ bl J3DScaleNrmMtx33
/* 80313C44 00310B84 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80313C48 00310B88 7C 08 03 A6 */ mtlr r0
/* 80313C4C 00310B8C 38 21 00 10 */ addi r1, r1, 0x10
/* 80313C50 00310B90 4E 80 00 20 */ blr
/* 80313C54 00310B94 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80313C58 00310B98 7C 08 02 A6 */ mflr r0
/* 80313C5C 00310B9C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80313C60 00310BA0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80313C64 00310BA4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80313C68 00310BA8 7C 7F 1B 78 */ mr r31, r3
/* 80313C6C 00310BAC 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313C70 00310BB0 3B C3 4A C8 */ addi r30, r3, lbl_80434AC8@l
/* 80313C74 00310BB4 80 DE 00 38 */ lwz r6, 0x38(r30)
/* 80313C78 00310BB8 80 66 00 84 */ lwz r3, 0x84(r6)
/* 80313C7C 00310BBC 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80313C80 00310BC0 90 0D 90 38 */ stw r0, lbl_804515B8-_SDA_BASE_(r13)
/* 80313C84 00310BC4 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80313C88 00310BC8 38 AD 90 38 */ addi r5, r13, lbl_804515B8-_SDA_BASE_
/* 80313C8C 00310BCC 90 05 00 04 */ stw r0, 4(r5)
/* 80313C90 00310BD0 80 0D 90 28 */ lwz r0, lbl_804515A8-_SDA_BASE_(r13)
/* 80313C94 00310BD4 1C 80 00 0C */ mulli r4, r0, 0xc
/* 80313C98 00310BD8 3C 60 80 3D */ lis r3, lbl_803CDA20@ha
/* 80313C9C 00310BDC 38 03 DA 20 */ addi r0, r3, lbl_803CDA20@l
/* 80313CA0 00310BE0 7C 80 22 14 */ add r4, r0, r4
/* 80313CA4 00310BE4 80 64 00 00 */ lwz r3, 0(r4)
/* 80313CA8 00310BE8 80 04 00 04 */ lwz r0, 4(r4)
/* 80313CAC 00310BEC 90 61 00 08 */ stw r3, 8(r1)
/* 80313CB0 00310BF0 90 01 00 0C */ stw r0, 0xc(r1)
/* 80313CB4 00310BF4 80 04 00 08 */ lwz r0, 8(r4)
/* 80313CB8 00310BF8 90 01 00 10 */ stw r0, 0x10(r1)
/* 80313CBC 00310BFC 80 66 00 04 */ lwz r3, 4(r6)
/* 80313CC0 00310C00 80 63 00 48 */ lwz r3, 0x48(r3)
/* 80313CC4 00310C04 A0 1F 00 04 */ lhz r0, 4(r31)
/* 80313CC8 00310C08 7C 03 00 AE */ lbzx r0, r3, r0
/* 80313CCC 00310C0C 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 80313CD0 00310C10 7C 85 00 2E */ lwzx r4, r5, r0
/* 80313CD4 00310C14 90 9E 01 04 */ stw r4, 0x104(r30)
/* 80313CD8 00310C18 38 60 00 15 */ li r3, 0x15
/* 80313CDC 00310C1C 38 A0 00 30 */ li r5, 0x30
/* 80313CE0 00310C20 48 04 7E 49 */ bl GXSetArray
/* 80313CE4 00310C24 80 7E 00 38 */ lwz r3, 0x38(r30)
/* 80313CE8 00310C28 80 63 00 04 */ lwz r3, 4(r3)
/* 80313CEC 00310C2C 80 63 00 4C */ lwz r3, 0x4c(r3)
/* 80313CF0 00310C30 A0 1F 00 04 */ lhz r0, 4(r31)
/* 80313CF4 00310C34 54 00 0B FC */ rlwinm r0, r0, 1, 0xf, 0x1e
/* 80313CF8 00310C38 7C A3 02 2E */ lhzx r5, r3, r0
/* 80313CFC 00310C3C 7F E3 FB 78 */ mr r3, r31
/* 80313D00 00310C40 38 80 00 00 */ li r4, 0
/* 80313D04 00310C44 39 81 00 08 */ addi r12, r1, 8
/* 80313D08 00310C48 48 04 E3 7D */ bl func_80362084
/* 80313D0C 00310C4C 60 00 00 00 */ nop
/* 80313D10 00310C50 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80313D14 00310C54 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80313D18 00310C58 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80313D1C 00310C5C 7C 08 03 A6 */ mtlr r0
/* 80313D20 00310C60 38 21 00 20 */ addi r1, r1, 0x20
/* 80313D24 00310C64 4E 80 00 20 */ blr
/* 80313D28 00310C68 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80313D2C 00310C6C 7C 08 02 A6 */ mflr r0
/* 80313D30 00310C70 90 01 00 64 */ stw r0, 0x64(r1)
/* 80313D34 00310C74 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 80313D38 00310C78 7C DF 33 78 */ mr r31, r6
/* 80313D3C 00310C7C 80 6D 90 2C */ lwz r3, lbl_804515AC-_SDA_BASE_(r13)
/* 80313D40 00310C80 54 A0 04 3E */ clrlwi r0, r5, 0x10
/* 80313D44 00310C84 7C 03 00 AE */ lbzx r0, r3, r0
/* 80313D48 00310C88 28 00 00 01 */ cmplwi r0, 1
/* 80313D4C 00310C8C 40 82 00 8C */ bne lbl_80313DD8
/* 80313D50 00310C90 80 0D 90 34 */ lwz r0, lbl_804515B4-_SDA_BASE_(r13)
/* 80313D54 00310C94 28 00 20 00 */ cmplwi r0, 0x2000
/* 80313D58 00310C98 40 82 00 10 */ bne lbl_80313D68
/* 80313D5C 00310C9C 7F E3 FB 78 */ mr r3, r31
/* 80313D60 00310CA0 38 80 00 1E */ li r4, 0x1e
/* 80313D64 00310CA4 4B FF BE D5 */ bl J3DFifoLoadNrmMtxToTexMtx
lbl_80313D68:
/* 80313D68 00310CA8 88 0D 90 30 */ lbz r0, lbl_804515B0-_SDA_BASE_(r13)
/* 80313D6C 00310CAC 28 00 00 00 */ cmplwi r0, 0
/* 80313D70 00310CB0 40 82 00 14 */ bne lbl_80313D84
/* 80313D74 00310CB4 7F E3 FB 78 */ mr r3, r31
/* 80313D78 00310CB8 38 80 00 00 */ li r4, 0
/* 80313D7C 00310CBC 4B FF BD E5 */ bl J3DFifoLoadNrmMtxImm
/* 80313D80 00310CC0 48 00 00 B8 */ b lbl_80313E38
lbl_80313D84:
/* 80313D84 00310CC4 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313D88 00310CC8 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80313D8C 00310CCC 80 83 01 18 */ lwz r4, 0x118(r3)
/* 80313D90 00310CD0 38 61 00 2C */ addi r3, r1, 0x2c
/* 80313D94 00310CD4 E0 BF 00 00 */ psq_l f5, 0(r31), 0, qr0
/* 80313D98 00310CD8 C0 9F 00 08 */ lfs f4, 8(r31)
/* 80313D9C 00310CDC E0 7F 00 10 */ psq_l f3, 16(r31), 0, qr0
/* 80313DA0 00310CE0 C0 5F 00 18 */ lfs f2, 0x18(r31)
/* 80313DA4 00310CE4 E0 3F 00 20 */ psq_l f1, 32(r31), 0, qr0
/* 80313DA8 00310CE8 C0 1F 00 28 */ lfs f0, 0x28(r31)
/* 80313DAC 00310CEC F0 A3 00 00 */ psq_st f5, 0(r3), 0, qr0
/* 80313DB0 00310CF0 D0 81 00 34 */ stfs f4, 0x34(r1)
/* 80313DB4 00310CF4 F0 63 00 0C */ psq_st f3, 12(r3), 0, qr0
/* 80313DB8 00310CF8 D0 41 00 40 */ stfs f2, 0x40(r1)
/* 80313DBC 00310CFC F0 23 00 18 */ psq_st f1, 24(r3), 0, qr0
/* 80313DC0 00310D00 D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 80313DC4 00310D04 4B FF E0 35 */ bl J3DScaleNrmMtx33
/* 80313DC8 00310D08 38 61 00 2C */ addi r3, r1, 0x2c
/* 80313DCC 00310D0C 38 80 00 00 */ li r4, 0
/* 80313DD0 00310D10 4B FF BD FD */ bl J3DFifoLoadNrmMtxImm3x3
/* 80313DD4 00310D14 48 00 00 64 */ b lbl_80313E38
lbl_80313DD8:
/* 80313DD8 00310D18 7F E3 FB 78 */ mr r3, r31
/* 80313DDC 00310D1C 38 81 00 08 */ addi r4, r1, 8
/* 80313DE0 00310D20 4B FF DA BD */ bl J3DPSCalcInverseTranspose
/* 80313DE4 00310D24 80 0D 90 34 */ lwz r0, lbl_804515B4-_SDA_BASE_(r13)
/* 80313DE8 00310D28 28 00 20 00 */ cmplwi r0, 0x2000
/* 80313DEC 00310D2C 40 82 00 10 */ bne lbl_80313DFC
/* 80313DF0 00310D30 38 61 00 08 */ addi r3, r1, 8
/* 80313DF4 00310D34 38 80 00 1E */ li r4, 0x1e
/* 80313DF8 00310D38 4B FF BE D9 */ bl J3DFifoLoadNrmMtxToTexMtx3x3
lbl_80313DFC:
/* 80313DFC 00310D3C 88 0D 90 30 */ lbz r0, lbl_804515B0-_SDA_BASE_(r13)
/* 80313E00 00310D40 28 00 00 00 */ cmplwi r0, 0
/* 80313E04 00310D44 40 82 00 14 */ bne lbl_80313E18
/* 80313E08 00310D48 38 61 00 08 */ addi r3, r1, 8
/* 80313E0C 00310D4C 38 80 00 00 */ li r4, 0
/* 80313E10 00310D50 4B FF BD BD */ bl J3DFifoLoadNrmMtxImm3x3
/* 80313E14 00310D54 48 00 00 24 */ b lbl_80313E38
lbl_80313E18:
/* 80313E18 00310D58 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313E1C 00310D5C 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80313E20 00310D60 80 83 01 18 */ lwz r4, 0x118(r3)
/* 80313E24 00310D64 38 61 00 08 */ addi r3, r1, 8
/* 80313E28 00310D68 4B FF DF D1 */ bl J3DScaleNrmMtx33
/* 80313E2C 00310D6C 38 61 00 08 */ addi r3, r1, 8
/* 80313E30 00310D70 38 80 00 00 */ li r4, 0
/* 80313E34 00310D74 4B FF BD 99 */ bl J3DFifoLoadNrmMtxImm3x3
lbl_80313E38:
/* 80313E38 00310D78 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 80313E3C 00310D7C 80 01 00 64 */ lwz r0, 0x64(r1)
/* 80313E40 00310D80 7C 08 03 A6 */ mtlr r0
/* 80313E44 00310D84 38 21 00 60 */ addi r1, r1, 0x60
/* 80313E48 00310D88 4E 80 00 20 */ blr
/* 80313E4C 00310D8C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80313E50 00310D90 7C 08 02 A6 */ mflr r0
/* 80313E54 00310D94 90 01 00 34 */ stw r0, 0x34(r1)
/* 80313E58 00310D98 39 61 00 30 */ addi r11, r1, 0x30
/* 80313E5C 00310D9C 48 04 E3 79 */ bl _savegpr_27
/* 80313E60 00310DA0 7C 7B 1B 78 */ mr r27, r3
/* 80313E64 00310DA4 80 0D 90 28 */ lwz r0, lbl_804515A8-_SDA_BASE_(r13)
/* 80313E68 00310DA8 1C 80 00 0C */ mulli r4, r0, 0xc
/* 80313E6C 00310DAC 3C 60 80 3D */ lis r3, lbl_803CD9C0@ha
/* 80313E70 00310DB0 38 03 D9 C0 */ addi r0, r3, lbl_803CD9C0@l
/* 80313E74 00310DB4 7C 80 22 14 */ add r4, r0, r4
/* 80313E78 00310DB8 80 64 00 00 */ lwz r3, 0(r4)
/* 80313E7C 00310DBC 80 04 00 04 */ lwz r0, 4(r4)
/* 80313E80 00310DC0 90 61 00 08 */ stw r3, 8(r1)
/* 80313E84 00310DC4 90 01 00 0C */ stw r0, 0xc(r1)
/* 80313E88 00310DC8 80 04 00 08 */ lwz r0, 8(r4)
/* 80313E8C 00310DCC 90 01 00 10 */ stw r0, 0x10(r1)
/* 80313E90 00310DD0 A3 BB 00 08 */ lhz r29, 8(r27)
/* 80313E94 00310DD4 3B 80 00 00 */ li r28, 0
/* 80313E98 00310DD8 3B E0 00 00 */ li r31, 0
/* 80313E9C 00310DDC 83 DB 00 0C */ lwz r30, 0xc(r27)
/* 80313EA0 00310DE0 48 00 00 2C */ b lbl_80313ECC
lbl_80313EA4:
/* 80313EA4 00310DE4 7C BE FA 2E */ lhzx r5, r30, r31
/* 80313EA8 00310DE8 28 05 FF FF */ cmplwi r5, 0xffff
/* 80313EAC 00310DEC 41 82 00 18 */ beq lbl_80313EC4
/* 80313EB0 00310DF0 7F 63 DB 78 */ mr r3, r27
/* 80313EB4 00310DF4 7F 84 E3 78 */ mr r4, r28
/* 80313EB8 00310DF8 39 81 00 08 */ addi r12, r1, 8
/* 80313EBC 00310DFC 48 04 E1 C9 */ bl func_80362084
/* 80313EC0 00310E00 60 00 00 00 */ nop
lbl_80313EC4:
/* 80313EC4 00310E04 3B 9C 00 01 */ addi r28, r28, 1
/* 80313EC8 00310E08 3B FF 00 02 */ addi r31, r31, 2
lbl_80313ECC:
/* 80313ECC 00310E0C 7C 1C E8 00 */ cmpw r28, r29
/* 80313ED0 00310E10 41 80 FF D4 */ blt lbl_80313EA4
/* 80313ED4 00310E14 39 61 00 30 */ addi r11, r1, 0x30
/* 80313ED8 00310E18 48 04 E3 49 */ bl _restgpr_27
/* 80313EDC 00310E1C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80313EE0 00310E20 7C 08 03 A6 */ mtlr r0
/* 80313EE4 00310E24 38 21 00 30 */ addi r1, r1, 0x30
/* 80313EE8 00310E28 4E 80 00 20 */ blr
/* 80313EEC 00310E2C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80313EF0 00310E30 7C 08 02 A6 */ mflr r0
/* 80313EF4 00310E34 90 01 00 34 */ stw r0, 0x34(r1)
/* 80313EF8 00310E38 39 61 00 30 */ addi r11, r1, 0x30
/* 80313EFC 00310E3C 48 04 E2 D1 */ bl _savegpr_25
/* 80313F00 00310E40 7C 79 1B 78 */ mr r25, r3
/* 80313F04 00310E44 7C 9A 23 78 */ mr r26, r4
/* 80313F08 00310E48 7C BB 2B 78 */ mr r27, r5
/* 80313F0C 00310E4C 7C DC 33 78 */ mr r28, r6
/* 80313F10 00310E50 A3 C3 00 08 */ lhz r30, 8(r3)
/* 80313F14 00310E54 3B A0 00 00 */ li r29, 0
/* 80313F18 00310E58 3B E0 00 00 */ li r31, 0
/* 80313F1C 00310E5C 48 00 00 68 */ b lbl_80313F84
lbl_80313F20:
/* 80313F20 00310E60 80 79 00 0C */ lwz r3, 0xc(r25)
/* 80313F24 00310E64 7C 03 FA 2E */ lhzx r0, r3, r31
/* 80313F28 00310E68 28 00 FF FF */ cmplwi r0, 0xffff
/* 80313F2C 00310E6C 41 82 00 50 */ beq lbl_80313F7C
/* 80313F30 00310E70 1C 00 00 24 */ mulli r0, r0, 0x24
/* 80313F34 00310E74 7C 9C 02 14 */ add r4, r28, r0
/* 80313F38 00310E78 7C 7B 02 14 */ add r3, r27, r0
/* 80313F3C 00310E7C E0 83 00 00 */ psq_l f4, 0(r3), 0, qr0
/* 80313F40 00310E80 E0 63 00 08 */ psq_l f3, 8(r3), 0, qr0
/* 80313F44 00310E84 E0 43 00 10 */ psq_l f2, 16(r3), 0, qr0
/* 80313F48 00310E88 E0 23 00 18 */ psq_l f1, 24(r3), 0, qr0
/* 80313F4C 00310E8C C0 03 00 20 */ lfs f0, 0x20(r3)
/* 80313F50 00310E90 F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0
/* 80313F54 00310E94 F0 64 00 08 */ psq_st f3, 8(r4), 0, qr0
/* 80313F58 00310E98 F0 44 00 10 */ psq_st f2, 16(r4), 0, qr0
/* 80313F5C 00310E9C F0 24 00 18 */ psq_st f1, 24(r4), 0, qr0
/* 80313F60 00310EA0 D0 04 00 20 */ stfs f0, 0x20(r4)
/* 80313F64 00310EA4 80 79 00 0C */ lwz r3, 0xc(r25)
/* 80313F68 00310EA8 7C 03 FA 2E */ lhzx r0, r3, r31
/* 80313F6C 00310EAC 1C 00 00 24 */ mulli r0, r0, 0x24
/* 80313F70 00310EB0 7C 7C 02 14 */ add r3, r28, r0
/* 80313F74 00310EB4 7F 44 D3 78 */ mr r4, r26
/* 80313F78 00310EB8 4B FF DE 81 */ bl J3DScaleNrmMtx33
lbl_80313F7C:
/* 80313F7C 00310EBC 3B BD 00 01 */ addi r29, r29, 1
/* 80313F80 00310EC0 3B FF 00 02 */ addi r31, r31, 2
lbl_80313F84:
/* 80313F84 00310EC4 7C 1D F0 00 */ cmpw r29, r30
/* 80313F88 00310EC8 41 80 FF 98 */ blt lbl_80313F20
/* 80313F8C 00310ECC 39 61 00 30 */ addi r11, r1, 0x30
/* 80313F90 00310ED0 48 04 E2 89 */ bl _restgpr_25
/* 80313F94 00310ED4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80313F98 00310ED8 7C 08 03 A6 */ mtlr r0
/* 80313F9C 00310EDC 38 21 00 30 */ addi r1, r1, 0x30
/* 80313FA0 00310EE0 4E 80 00 20 */ blr
/* 80313FA4 00310EE4 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80313FA8 00310EE8 7C 08 02 A6 */ mflr r0
/* 80313FAC 00310EEC 90 01 00 54 */ stw r0, 0x54(r1)
/* 80313FB0 00310EF0 39 61 00 50 */ addi r11, r1, 0x50
/* 80313FB4 00310EF4 48 04 E2 0D */ bl _savegpr_22
/* 80313FB8 00310EF8 7C 77 1B 78 */ mr r23, r3
/* 80313FBC 00310EFC 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80313FC0 00310F00 3B 83 4A C8 */ addi r28, r3, lbl_80434AC8@l
/* 80313FC4 00310F04 80 BC 00 38 */ lwz r5, 0x38(r28)
/* 80313FC8 00310F08 80 65 00 84 */ lwz r3, 0x84(r5)
/* 80313FCC 00310F0C 80 83 00 34 */ lwz r4, 0x34(r3)
/* 80313FD0 00310F10 90 8D 90 38 */ stw r4, lbl_804515B8-_SDA_BASE_(r13)
/* 80313FD4 00310F14 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80313FD8 00310F18 38 6D 90 38 */ addi r3, r13, lbl_804515B8-_SDA_BASE_
/* 80313FDC 00310F1C 90 03 00 04 */ stw r0, 4(r3)
/* 80313FE0 00310F20 88 0D 90 31 */ lbz r0, lbl_804515B1-_SDA_BASE_(r13)
/* 80313FE4 00310F24 28 00 00 00 */ cmplwi r0, 0
/* 80313FE8 00310F28 40 82 00 B4 */ bne lbl_8031409C
/* 80313FEC 00310F2C 80 0D 90 28 */ lwz r0, lbl_804515A8-_SDA_BASE_(r13)
/* 80313FF0 00310F30 1C 80 00 0C */ mulli r4, r0, 0xc
/* 80313FF4 00310F34 3C 60 80 3D */ lis r3, lbl_803CDA20@ha
/* 80313FF8 00310F38 38 03 DA 20 */ addi r0, r3, lbl_803CDA20@l
/* 80313FFC 00310F3C 7C 80 22 14 */ add r4, r0, r4
/* 80314000 00310F40 80 64 00 00 */ lwz r3, 0(r4)
/* 80314004 00310F44 80 04 00 04 */ lwz r0, 4(r4)
/* 80314008 00310F48 90 61 00 14 */ stw r3, 0x14(r1)
/* 8031400C 00310F4C 90 01 00 18 */ stw r0, 0x18(r1)
/* 80314010 00310F50 80 04 00 08 */ lwz r0, 8(r4)
/* 80314014 00310F54 90 01 00 1C */ stw r0, 0x1c(r1)
/* 80314018 00310F58 A3 57 00 08 */ lhz r26, 8(r23)
/* 8031401C 00310F5C 3B 60 00 00 */ li r27, 0
/* 80314020 00310F60 3A C0 00 00 */ li r22, 0
/* 80314024 00310F64 83 17 00 0C */ lwz r24, 0xc(r23)
/* 80314028 00310F68 48 00 00 68 */ b lbl_80314090
lbl_8031402C:
/* 8031402C 00310F6C 7C B8 B2 2E */ lhzx r5, r24, r22
/* 80314030 00310F70 28 05 FF FF */ cmplwi r5, 0xffff
/* 80314034 00310F74 41 82 00 54 */ beq lbl_80314088
/* 80314038 00310F78 80 7C 00 38 */ lwz r3, 0x38(r28)
/* 8031403C 00310F7C 80 83 00 04 */ lwz r4, 4(r3)
/* 80314040 00310F80 80 64 00 4C */ lwz r3, 0x4c(r4)
/* 80314044 00310F84 54 A0 0B FC */ rlwinm r0, r5, 1, 0xf, 0x1e
/* 80314048 00310F88 7F 23 02 2E */ lhzx r25, r3, r0
/* 8031404C 00310F8C 80 64 00 48 */ lwz r3, 0x48(r4)
/* 80314050 00310F90 7C 03 28 AE */ lbzx r0, r3, r5
/* 80314054 00310F94 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 80314058 00310F98 38 6D 90 38 */ addi r3, r13, lbl_804515B8-_SDA_BASE_
/* 8031405C 00310F9C 7C 83 00 2E */ lwzx r4, r3, r0
/* 80314060 00310FA0 90 9C 01 04 */ stw r4, 0x104(r28)
/* 80314064 00310FA4 38 60 00 15 */ li r3, 0x15
/* 80314068 00310FA8 38 A0 00 30 */ li r5, 0x30
/* 8031406C 00310FAC 48 04 7A BD */ bl GXSetArray
/* 80314070 00310FB0 7E E3 BB 78 */ mr r3, r23
/* 80314074 00310FB4 7F 64 DB 78 */ mr r4, r27
/* 80314078 00310FB8 7F 25 CB 78 */ mr r5, r25
/* 8031407C 00310FBC 39 81 00 14 */ addi r12, r1, 0x14
/* 80314080 00310FC0 48 04 E0 05 */ bl func_80362084
/* 80314084 00310FC4 60 00 00 00 */ nop
lbl_80314088:
/* 80314088 00310FC8 3B 7B 00 01 */ addi r27, r27, 1
/* 8031408C 00310FCC 3A D6 00 02 */ addi r22, r22, 2
lbl_80314090:
/* 80314090 00310FD0 7C 1B D0 00 */ cmpw r27, r26
/* 80314094 00310FD4 41 80 FF 98 */ blt lbl_8031402C
/* 80314098 00310FD8 48 00 00 EC */ b lbl_80314184
lbl_8031409C:
/* 8031409C 00310FDC 80 65 00 04 */ lwz r3, 4(r5)
/* 803140A0 00310FE0 83 63 00 40 */ lwz r27, 0x40(r3)
/* 803140A4 00310FE4 90 9C 01 04 */ stw r4, 0x104(r28)
/* 803140A8 00310FE8 38 60 00 15 */ li r3, 0x15
/* 803140AC 00310FEC 38 A0 00 30 */ li r5, 0x30
/* 803140B0 00310FF0 48 04 7A 79 */ bl GXSetArray
/* 803140B4 00310FF4 A3 57 00 08 */ lhz r26, 8(r23)
/* 803140B8 00310FF8 3B 20 00 00 */ li r25, 0
/* 803140BC 00310FFC 3A C0 00 00 */ li r22, 0
/* 803140C0 00311000 3C 60 80 3D */ lis r3, lbl_803CDA80@ha
/* 803140C4 00311004 3B A3 DA 80 */ addi r29, r3, lbl_803CDA80@l
/* 803140C8 00311008 83 D7 00 0C */ lwz r30, 0xc(r23)
/* 803140CC 0031100C 48 00 00 B0 */ b lbl_8031417C
lbl_803140D0:
/* 803140D0 00311010 80 0D 90 28 */ lwz r0, lbl_804515A8-_SDA_BASE_(r13)
/* 803140D4 00311014 1C A0 00 0C */ mulli r5, r0, 0xc
/* 803140D8 00311018 7C 9D 2A 14 */ add r4, r29, r5
/* 803140DC 0031101C 80 64 00 00 */ lwz r3, 0(r4)
/* 803140E0 00311020 80 04 00 04 */ lwz r0, 4(r4)
/* 803140E4 00311024 90 61 00 08 */ stw r3, 8(r1)
/* 803140E8 00311028 90 01 00 0C */ stw r0, 0xc(r1)
/* 803140EC 0031102C 80 04 00 08 */ lwz r0, 8(r4)
/* 803140F0 00311030 90 01 00 10 */ stw r0, 0x10(r1)
/* 803140F4 00311034 7C 9E B2 2E */ lhzx r4, r30, r22
/* 803140F8 00311038 28 04 FF FF */ cmplwi r4, 0xffff
/* 803140FC 0031103C 41 82 00 78 */ beq lbl_80314174
/* 80314100 00311040 54 80 0B FC */ rlwinm r0, r4, 1, 0xf, 0x1e
/* 80314104 00311044 7F 1B 02 2E */ lhzx r24, r27, r0
/* 80314108 00311048 3C 60 80 43 */ lis r3, lbl_80434C80@ha
/* 8031410C 0031104C 3B E3 4C 80 */ addi r31, r3, lbl_80434C80@l
/* 80314110 00311050 7C 1F B2 2E */ lhzx r0, r31, r22
/* 80314114 00311054 7C 18 00 40 */ cmplw r24, r0
/* 80314118 00311058 41 82 00 5C */ beq lbl_80314174
/* 8031411C 0031105C 80 7C 00 38 */ lwz r3, 0x38(r28)
/* 80314120 00311060 80 63 00 04 */ lwz r3, 4(r3)
/* 80314124 00311064 80 63 00 48 */ lwz r3, 0x48(r3)
/* 80314128 00311068 7C 03 20 AE */ lbzx r0, r3, r4
/* 8031412C 0031106C 28 00 00 00 */ cmplwi r0, 0
/* 80314130 00311070 40 82 00 28 */ bne lbl_80314158
/* 80314134 00311074 3C 60 80 3D */ lis r3, lbl_803CDA20@ha
/* 80314138 00311078 38 03 DA 20 */ addi r0, r3, lbl_803CDA20@l
/* 8031413C 0031107C 7C 80 2A 14 */ add r4, r0, r5
/* 80314140 00311080 80 64 00 00 */ lwz r3, 0(r4)
/* 80314144 00311084 80 04 00 04 */ lwz r0, 4(r4)
/* 80314148 00311088 90 61 00 08 */ stw r3, 8(r1)
/* 8031414C 0031108C 90 01 00 0C */ stw r0, 0xc(r1)
/* 80314150 00311090 80 04 00 08 */ lwz r0, 8(r4)
/* 80314154 00311094 90 01 00 10 */ stw r0, 0x10(r1)
lbl_80314158:
/* 80314158 00311098 7E E3 BB 78 */ mr r3, r23
/* 8031415C 0031109C 7F 24 CB 78 */ mr r4, r25
/* 80314160 003110A0 7F 05 C3 78 */ mr r5, r24
/* 80314164 003110A4 39 81 00 08 */ addi r12, r1, 8
/* 80314168 003110A8 48 04 DF 1D */ bl func_80362084
/* 8031416C 003110AC 60 00 00 00 */ nop
/* 80314170 003110B0 7F 1F B3 2E */ sthx r24, r31, r22
lbl_80314174:
/* 80314174 003110B4 3B 39 00 01 */ addi r25, r25, 1
/* 80314178 003110B8 3A D6 00 02 */ addi r22, r22, 2
lbl_8031417C:
/* 8031417C 003110BC 7C 19 D0 00 */ cmpw r25, r26
/* 80314180 003110C0 41 80 FF 50 */ blt lbl_803140D0
lbl_80314184:
/* 80314184 003110C4 39 61 00 50 */ addi r11, r1, 0x50
/* 80314188 003110C8 48 04 E0 85 */ bl _restgpr_22
/* 8031418C 003110CC 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80314190 003110D0 7C 08 03 A6 */ mtlr r0
/* 80314194 003110D4 38 21 00 50 */ addi r1, r1, 0x50
/* 80314198 003110D8 4E 80 00 20 */ blr
/* 8031419C 003110DC 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 803141A0 003110E0 7C 08 02 A6 */ mflr r0
/* 803141A4 003110E4 90 01 00 64 */ stw r0, 0x64(r1)
/* 803141A8 003110E8 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 803141AC 003110EC 93 C1 00 58 */ stw r30, 0x58(r1)
/* 803141B0 003110F0 7C 9E 23 78 */ mr r30, r4
/* 803141B4 003110F4 7C DF 33 78 */ mr r31, r6
/* 803141B8 003110F8 80 6D 90 2C */ lwz r3, lbl_804515AC-_SDA_BASE_(r13)
/* 803141BC 003110FC 54 A0 04 3E */ clrlwi r0, r5, 0x10
/* 803141C0 00311100 7C 03 00 AE */ lbzx r0, r3, r0
/* 803141C4 00311104 28 00 00 01 */ cmplwi r0, 1
/* 803141C8 00311108 40 82 00 90 */ bne lbl_80314258
/* 803141CC 0031110C 80 0D 90 34 */ lwz r0, lbl_804515B4-_SDA_BASE_(r13)
/* 803141D0 00311110 28 00 20 00 */ cmplwi r0, 0x2000
/* 803141D4 00311114 40 82 00 14 */ bne lbl_803141E8
/* 803141D8 00311118 7F E3 FB 78 */ mr r3, r31
/* 803141DC 0031111C 1C 9E 00 03 */ mulli r4, r30, 3
/* 803141E0 00311120 38 84 00 1E */ addi r4, r4, 0x1e
/* 803141E4 00311124 4B FF BA 55 */ bl J3DFifoLoadNrmMtxToTexMtx
lbl_803141E8:
/* 803141E8 00311128 88 0D 90 30 */ lbz r0, lbl_804515B0-_SDA_BASE_(r13)
/* 803141EC 0031112C 28 00 00 00 */ cmplwi r0, 0
/* 803141F0 00311130 40 82 00 14 */ bne lbl_80314204
/* 803141F4 00311134 7F E3 FB 78 */ mr r3, r31
/* 803141F8 00311138 1C 9E 00 03 */ mulli r4, r30, 3
/* 803141FC 0031113C 4B FF B9 65 */ bl J3DFifoLoadNrmMtxImm
/* 80314200 00311140 48 00 00 BC */ b lbl_803142BC
lbl_80314204:
/* 80314204 00311144 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 80314208 00311148 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 8031420C 0031114C 80 83 01 18 */ lwz r4, 0x118(r3)
/* 80314210 00311150 38 61 00 2C */ addi r3, r1, 0x2c
/* 80314214 00311154 E0 BF 00 00 */ psq_l f5, 0(r31), 0, qr0
/* 80314218 00311158 C0 9F 00 08 */ lfs f4, 8(r31)
/* 8031421C 0031115C E0 7F 00 10 */ psq_l f3, 16(r31), 0, qr0
/* 80314220 00311160 C0 5F 00 18 */ lfs f2, 0x18(r31)
/* 80314224 00311164 E0 3F 00 20 */ psq_l f1, 32(r31), 0, qr0
/* 80314228 00311168 C0 1F 00 28 */ lfs f0, 0x28(r31)
/* 8031422C 0031116C F0 A3 00 00 */ psq_st f5, 0(r3), 0, qr0
/* 80314230 00311170 D0 81 00 34 */ stfs f4, 0x34(r1)
/* 80314234 00311174 F0 63 00 0C */ psq_st f3, 12(r3), 0, qr0
/* 80314238 00311178 D0 41 00 40 */ stfs f2, 0x40(r1)
/* 8031423C 0031117C F0 23 00 18 */ psq_st f1, 24(r3), 0, qr0
/* 80314240 00311180 D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 80314244 00311184 4B FF DB B5 */ bl J3DScaleNrmMtx33
/* 80314248 00311188 38 61 00 2C */ addi r3, r1, 0x2c
/* 8031424C 0031118C 38 80 00 00 */ li r4, 0
/* 80314250 00311190 4B FF B9 7D */ bl J3DFifoLoadNrmMtxImm3x3
/* 80314254 00311194 48 00 00 68 */ b lbl_803142BC
lbl_80314258:
/* 80314258 00311198 7F E3 FB 78 */ mr r3, r31
/* 8031425C 0031119C 38 81 00 08 */ addi r4, r1, 8
/* 80314260 003111A0 4B FF D6 3D */ bl J3DPSCalcInverseTranspose
/* 80314264 003111A4 80 0D 90 34 */ lwz r0, lbl_804515B4-_SDA_BASE_(r13)
/* 80314268 003111A8 28 00 20 00 */ cmplwi r0, 0x2000
/* 8031426C 003111AC 40 82 00 14 */ bne lbl_80314280
/* 80314270 003111B0 38 61 00 08 */ addi r3, r1, 8
/* 80314274 003111B4 1C 9E 00 03 */ mulli r4, r30, 3
/* 80314278 003111B8 38 84 00 1E */ addi r4, r4, 0x1e
/* 8031427C 003111BC 4B FF BA 55 */ bl J3DFifoLoadNrmMtxToTexMtx3x3
lbl_80314280:
/* 80314280 003111C0 88 0D 90 30 */ lbz r0, lbl_804515B0-_SDA_BASE_(r13)
/* 80314284 003111C4 28 00 00 00 */ cmplwi r0, 0
/* 80314288 003111C8 40 82 00 14 */ bne lbl_8031429C
/* 8031428C 003111CC 38 61 00 08 */ addi r3, r1, 8
/* 80314290 003111D0 1C 9E 00 03 */ mulli r4, r30, 3
/* 80314294 003111D4 4B FF B9 39 */ bl J3DFifoLoadNrmMtxImm3x3
/* 80314298 003111D8 48 00 00 24 */ b lbl_803142BC
lbl_8031429C:
/* 8031429C 003111DC 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803142A0 003111E0 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 803142A4 003111E4 80 83 01 18 */ lwz r4, 0x118(r3)
/* 803142A8 003111E8 38 61 00 08 */ addi r3, r1, 8
/* 803142AC 003111EC 4B FF DB 4D */ bl J3DScaleNrmMtx33
/* 803142B0 003111F0 38 61 00 08 */ addi r3, r1, 8
/* 803142B4 003111F4 1C 9E 00 03 */ mulli r4, r30, 3
/* 803142B8 003111F8 4B FF B9 15 */ bl J3DFifoLoadNrmMtxImm3x3
lbl_803142BC:
/* 803142BC 003111FC 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 803142C0 00311200 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 803142C4 00311204 80 01 00 64 */ lwz r0, 0x64(r1)
/* 803142C8 00311208 7C 08 03 A6 */ mtlr r0
/* 803142CC 0031120C 38 21 00 60 */ addi r1, r1, 0x60
/* 803142D0 00311210 4E 80 00 20 */ blr
/* 803142D4 00311214 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803142D8 00311218 7C 08 02 A6 */ mflr r0
/* 803142DC 0031121C 90 01 00 44 */ stw r0, 0x44(r1)
/* 803142E0 00311220 3C 80 80 43 */ lis r4, lbl_80434AC8@ha
/* 803142E4 00311224 38 C4 4A C8 */ addi r6, r4, lbl_80434AC8@l
/* 803142E8 00311228 81 06 00 38 */ lwz r8, 0x38(r6)
/* 803142EC 0031122C 80 E8 00 04 */ lwz r7, 4(r8)
/* 803142F0 00311230 80 A7 00 4C */ lwz r5, 0x4c(r7)
/* 803142F4 00311234 A0 83 00 04 */ lhz r4, 4(r3)
/* 803142F8 00311238 54 80 08 3C */ slwi r0, r4, 1
/* 803142FC 0031123C 7C 05 02 2E */ lhzx r0, r5, r0
/* 80314300 00311240 80 67 00 48 */ lwz r3, 0x48(r7)
/* 80314304 00311244 7C 63 20 AE */ lbzx r3, r3, r4
/* 80314308 00311248 28 03 00 00 */ cmplwi r3, 0
/* 8031430C 0031124C 40 82 00 24 */ bne lbl_80314330
/* 80314310 00311250 80 68 00 84 */ lwz r3, 0x84(r8)
/* 80314314 00311254 80 63 00 34 */ lwz r3, 0x34(r3)
/* 80314318 00311258 1C 00 00 30 */ mulli r0, r0, 0x30
/* 8031431C 0031125C 7C 83 02 14 */ add r4, r3, r0
/* 80314320 00311260 7C C3 33 78 */ mr r3, r6
/* 80314324 00311264 38 A1 00 08 */ addi r5, r1, 8
/* 80314328 00311268 48 03 21 BD */ bl PSMTXConcat
/* 8031432C 0031126C 48 00 00 20 */ b lbl_8031434C
lbl_80314330:
/* 80314330 00311270 80 68 00 84 */ lwz r3, 0x84(r8)
/* 80314334 00311274 80 63 00 10 */ lwz r3, 0x10(r3)
/* 80314338 00311278 1C 00 00 30 */ mulli r0, r0, 0x30
/* 8031433C 0031127C 7C 83 02 14 */ add r4, r3, r0
/* 80314340 00311280 7C C3 33 78 */ mr r3, r6
/* 80314344 00311284 38 A1 00 08 */ addi r5, r1, 8
/* 80314348 00311288 48 03 21 9D */ bl PSMTXConcat
lbl_8031434C:
/* 8031434C 0031128C 38 61 00 08 */ addi r3, r1, 8
/* 80314350 00311290 4B FF D3 21 */ bl J3DCalcBBoardMtx
/* 80314354 00311294 38 61 00 08 */ addi r3, r1, 8
/* 80314358 00311298 38 80 00 00 */ li r4, 0
/* 8031435C 0031129C 4B FF B7 85 */ bl J3DFifoLoadPosMtxImm
/* 80314360 003112A0 C0 22 C9 9C */ lfs f1, lbl_8045639C-_SDA2_BASE_(r2)
/* 80314364 003112A4 C0 01 00 08 */ lfs f0, 8(r1)
/* 80314368 003112A8 EC 01 00 24 */ fdivs f0, f1, f0
/* 8031436C 003112AC D0 01 00 08 */ stfs f0, 8(r1)
/* 80314370 003112B0 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 80314374 003112B4 EC 01 00 24 */ fdivs f0, f1, f0
/* 80314378 003112B8 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8031437C 003112BC C0 01 00 30 */ lfs f0, 0x30(r1)
/* 80314380 003112C0 EC 01 00 24 */ fdivs f0, f1, f0
/* 80314384 003112C4 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 80314388 003112C8 C0 02 C9 98 */ lfs f0, lbl_80456398-_SDA2_BASE_(r2)
/* 8031438C 003112CC D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80314390 003112D0 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 80314394 003112D4 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 80314398 003112D8 88 0D 90 30 */ lbz r0, lbl_804515B0-_SDA_BASE_(r13)
/* 8031439C 003112DC 28 00 00 00 */ cmplwi r0, 0
/* 803143A0 003112E0 40 82 00 14 */ bne lbl_803143B4
/* 803143A4 003112E4 38 61 00 08 */ addi r3, r1, 8
/* 803143A8 003112E8 38 80 00 00 */ li r4, 0
/* 803143AC 003112EC 4B FF B7 B5 */ bl J3DFifoLoadNrmMtxImm
/* 803143B0 003112F0 48 00 00 24 */ b lbl_803143D4
lbl_803143B4:
/* 803143B4 003112F4 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803143B8 003112F8 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 803143BC 003112FC 80 83 01 18 */ lwz r4, 0x118(r3)
/* 803143C0 00311300 38 61 00 08 */ addi r3, r1, 8
/* 803143C4 00311304 4B FF D9 D1 */ bl J3DScaleNrmMtx
/* 803143C8 00311308 38 61 00 08 */ addi r3, r1, 8
/* 803143CC 0031130C 38 80 00 00 */ li r4, 0
/* 803143D0 00311310 4B FF B7 91 */ bl J3DFifoLoadNrmMtxImm
lbl_803143D4:
/* 803143D4 00311314 80 01 00 44 */ lwz r0, 0x44(r1)
/* 803143D8 00311318 7C 08 03 A6 */ mtlr r0
/* 803143DC 0031131C 38 21 00 40 */ addi r1, r1, 0x40
/* 803143E0 00311320 4E 80 00 20 */ blr
/* 803143E4 00311324 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 803143E8 00311328 7C 08 02 A6 */ mflr r0
/* 803143EC 0031132C 90 01 00 74 */ stw r0, 0x74(r1)
/* 803143F0 00311330 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 803143F4 00311334 7C 7F 1B 78 */ mr r31, r3
/* 803143F8 00311338 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803143FC 0031133C 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 80314400 00311340 80 E3 00 38 */ lwz r7, 0x38(r3)
/* 80314404 00311344 80 C7 00 04 */ lwz r6, 4(r7)
/* 80314408 00311348 80 86 00 4C */ lwz r4, 0x4c(r6)
/* 8031440C 0031134C A0 BF 00 04 */ lhz r5, 4(r31)
/* 80314410 00311350 54 A0 08 3C */ slwi r0, r5, 1
/* 80314414 00311354 7C 04 02 2E */ lhzx r0, r4, r0
/* 80314418 00311358 80 86 00 48 */ lwz r4, 0x48(r6)
/* 8031441C 0031135C 7C 84 28 AE */ lbzx r4, r4, r5
/* 80314420 00311360 28 04 00 00 */ cmplwi r4, 0
/* 80314424 00311364 40 82 00 20 */ bne lbl_80314444
/* 80314428 00311368 80 87 00 84 */ lwz r4, 0x84(r7)
/* 8031442C 0031136C 80 84 00 34 */ lwz r4, 0x34(r4)
/* 80314430 00311370 1C 00 00 30 */ mulli r0, r0, 0x30
/* 80314434 00311374 7C 84 02 14 */ add r4, r4, r0
/* 80314438 00311378 38 A1 00 2C */ addi r5, r1, 0x2c
/* 8031443C 0031137C 48 03 20 A9 */ bl PSMTXConcat
/* 80314440 00311380 48 00 00 1C */ b lbl_8031445C
lbl_80314444:
/* 80314444 00311384 80 87 00 84 */ lwz r4, 0x84(r7)
/* 80314448 00311388 80 84 00 10 */ lwz r4, 0x10(r4)
/* 8031444C 0031138C 1C 00 00 30 */ mulli r0, r0, 0x30
/* 80314450 00311390 7C 84 02 14 */ add r4, r4, r0
/* 80314454 00311394 38 A1 00 2C */ addi r5, r1, 0x2c
/* 80314458 00311398 48 03 20 8D */ bl PSMTXConcat
lbl_8031445C:
/* 8031445C 0031139C 38 61 00 2C */ addi r3, r1, 0x2c
/* 80314460 003113A0 4B FF D3 01 */ bl J3DCalcYBBoardMtx
/* 80314464 003113A4 38 61 00 2C */ addi r3, r1, 0x2c
/* 80314468 003113A8 38 80 00 00 */ li r4, 0
/* 8031446C 003113AC 4B FF B6 75 */ bl J3DFifoLoadPosMtxImm
/* 80314470 003113B0 80 6D 90 2C */ lwz r3, lbl_804515AC-_SDA_BASE_(r13)
/* 80314474 003113B4 A0 1F 00 04 */ lhz r0, 4(r31)
/* 80314478 003113B8 7C 03 00 AE */ lbzx r0, r3, r0
/* 8031447C 003113BC 28 00 00 01 */ cmplwi r0, 1
/* 80314480 003113C0 40 82 00 44 */ bne lbl_803144C4
/* 80314484 003113C4 88 0D 90 30 */ lbz r0, lbl_804515B0-_SDA_BASE_(r13)
/* 80314488 003113C8 28 00 00 00 */ cmplwi r0, 0
/* 8031448C 003113CC 40 82 00 14 */ bne lbl_803144A0
/* 80314490 003113D0 38 61 00 2C */ addi r3, r1, 0x2c
/* 80314494 003113D4 38 80 00 00 */ li r4, 0
/* 80314498 003113D8 4B FF B6 C9 */ bl J3DFifoLoadNrmMtxImm
/* 8031449C 003113DC 48 00 00 70 */ b lbl_8031450C
lbl_803144A0:
/* 803144A0 003113E0 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803144A4 003113E4 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 803144A8 003113E8 80 83 01 18 */ lwz r4, 0x118(r3)
/* 803144AC 003113EC 38 61 00 2C */ addi r3, r1, 0x2c
/* 803144B0 003113F0 4B FF D8 E5 */ bl J3DScaleNrmMtx
/* 803144B4 003113F4 38 61 00 2C */ addi r3, r1, 0x2c
/* 803144B8 003113F8 38 80 00 00 */ li r4, 0
/* 803144BC 003113FC 4B FF B6 A5 */ bl J3DFifoLoadNrmMtxImm
/* 803144C0 00311400 48 00 00 4C */ b lbl_8031450C
lbl_803144C4:
/* 803144C4 00311404 38 61 00 2C */ addi r3, r1, 0x2c
/* 803144C8 00311408 38 81 00 08 */ addi r4, r1, 8
/* 803144CC 0031140C 4B FF D3 D1 */ bl J3DPSCalcInverseTranspose
/* 803144D0 00311410 88 0D 90 30 */ lbz r0, lbl_804515B0-_SDA_BASE_(r13)
/* 803144D4 00311414 28 00 00 00 */ cmplwi r0, 0
/* 803144D8 00311418 40 82 00 14 */ bne lbl_803144EC
/* 803144DC 0031141C 38 61 00 08 */ addi r3, r1, 8
/* 803144E0 00311420 38 80 00 00 */ li r4, 0
/* 803144E4 00311424 4B FF B6 E9 */ bl J3DFifoLoadNrmMtxImm3x3
/* 803144E8 00311428 48 00 00 24 */ b lbl_8031450C
lbl_803144EC:
/* 803144EC 0031142C 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 803144F0 00311430 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 803144F4 00311434 80 83 01 18 */ lwz r4, 0x118(r3)
/* 803144F8 00311438 38 61 00 08 */ addi r3, r1, 8
/* 803144FC 0031143C 4B FF D8 FD */ bl J3DScaleNrmMtx33
/* 80314500 00311440 38 61 00 08 */ addi r3, r1, 8
/* 80314504 00311444 38 80 00 00 */ li r4, 0
/* 80314508 00311448 4B FF B6 C5 */ bl J3DFifoLoadNrmMtxImm3x3
lbl_8031450C:
/* 8031450C 0031144C 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 80314510 00311450 80 01 00 74 */ lwz r0, 0x74(r1)
/* 80314514 00311454 7C 08 03 A6 */ mtlr r0
/* 80314518 00311458 38 21 00 70 */ addi r1, r1, 0x70
/* 8031451C 0031145C 4E 80 00 20 */ blr
/* 80314520 00311460 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80314524 00311464 7C 08 02 A6 */ mflr r0
/* 80314528 00311468 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031452C 0031146C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80314530 00311470 7C 7F 1B 79 */ or. r31, r3, r3
/* 80314534 00311474 41 82 00 40 */ beq lbl_80314574
/* 80314538 00311478 3C 60 80 3D */ lis r3, lbl_803CDB84@ha
/* 8031453C 0031147C 38 03 DB 84 */ addi r0, r3, lbl_803CDB84@l
/* 80314540 00311480 90 1F 00 00 */ stw r0, 0(r31)
/* 80314544 00311484 41 82 00 20 */ beq lbl_80314564
/* 80314548 00311488 3C 60 80 3D */ lis r3, lbl_803CDC1C@ha
/* 8031454C 0031148C 38 03 DC 1C */ addi r0, r3, lbl_803CDC1C@l
/* 80314550 00311490 90 1F 00 00 */ stw r0, 0(r31)
/* 80314554 00311494 41 82 00 10 */ beq lbl_80314564
/* 80314558 00311498 3C 60 80 3D */ lis r3, lbl_803CDC44@ha
/* 8031455C 0031149C 38 03 DC 44 */ addi r0, r3, lbl_803CDC44@l
/* 80314560 003114A0 90 1F 00 00 */ stw r0, 0(r31)
lbl_80314564:
/* 80314564 003114A4 7C 80 07 35 */ extsh. r0, r4
/* 80314568 003114A8 40 81 00 0C */ ble lbl_80314574
/* 8031456C 003114AC 7F E3 FB 78 */ mr r3, r31
/* 80314570 003114B0 4B FB A7 CD */ bl __dl__FPv
lbl_80314574:
/* 80314574 003114B4 7F E3 FB 78 */ mr r3, r31
/* 80314578 003114B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8031457C 003114BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80314580 003114C0 7C 08 03 A6 */ mtlr r0
/* 80314584 003114C4 38 21 00 10 */ addi r1, r1, 0x10
/* 80314588 003114C8 4E 80 00 20 */ blr
/* 8031458C 003114CC 3C 60 53 4D */ lis r3, 0x534D5942@ha
/* 80314590 003114D0 38 63 59 42 */ addi r3, r3, 0x534D5942@l
/* 80314594 003114D4 4E 80 00 20 */ blr
/* 80314598 003114D8 4E 80 00 20 */ blr
/* 8031459C 003114DC A0 63 00 04 */ lhz r3, 4(r3)
/* 803145A0 003114E0 4E 80 00 20 */ blr
/* 803145A4 003114E4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803145A8 003114E8 7C 08 02 A6 */ mflr r0
/* 803145AC 003114EC 90 01 00 14 */ stw r0, 0x14(r1)
/* 803145B0 003114F0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803145B4 003114F4 7C 7F 1B 79 */ or. r31, r3, r3
/* 803145B8 003114F8 41 82 00 40 */ beq lbl_803145F8
/* 803145BC 003114FC 3C 60 80 3D */ lis r3, lbl_803CDBAC@ha
/* 803145C0 00311500 38 03 DB AC */ addi r0, r3, lbl_803CDBAC@l
/* 803145C4 00311504 90 1F 00 00 */ stw r0, 0(r31)
/* 803145C8 00311508 41 82 00 20 */ beq lbl_803145E8
/* 803145CC 0031150C 3C 60 80 3D */ lis r3, lbl_803CDC1C@ha
/* 803145D0 00311510 38 03 DC 1C */ addi r0, r3, lbl_803CDC1C@l
/* 803145D4 00311514 90 1F 00 00 */ stw r0, 0(r31)
/* 803145D8 00311518 41 82 00 10 */ beq lbl_803145E8
/* 803145DC 0031151C 3C 60 80 3D */ lis r3, lbl_803CDC44@ha
/* 803145E0 00311520 38 03 DC 44 */ addi r0, r3, lbl_803CDC44@l
/* 803145E4 00311524 90 1F 00 00 */ stw r0, 0(r31)
lbl_803145E8:
/* 803145E8 00311528 7C 80 07 35 */ extsh. r0, r4
/* 803145EC 0031152C 40 81 00 0C */ ble lbl_803145F8
/* 803145F0 00311530 7F E3 FB 78 */ mr r3, r31
/* 803145F4 00311534 4B FB A7 49 */ bl __dl__FPv
lbl_803145F8:
/* 803145F8 00311538 7F E3 FB 78 */ mr r3, r31
/* 803145FC 0031153C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80314600 00311540 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80314604 00311544 7C 08 03 A6 */ mtlr r0
/* 80314608 00311548 38 21 00 10 */ addi r1, r1, 0x10
/* 8031460C 0031154C 4E 80 00 20 */ blr
/* 80314610 00311550 3C 60 53 4D */ lis r3, 0x534D4242@ha
/* 80314614 00311554 38 63 42 42 */ addi r3, r3, 0x534D4242@l
/* 80314618 00311558 4E 80 00 20 */ blr
/* 8031461C 0031155C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80314620 00311560 7C 08 02 A6 */ mflr r0
/* 80314624 00311564 90 01 00 14 */ stw r0, 0x14(r1)
/* 80314628 00311568 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8031462C 0031156C 7C 7F 1B 79 */ or. r31, r3, r3
/* 80314630 00311570 41 82 00 40 */ beq lbl_80314670
/* 80314634 00311574 3C 60 80 3D */ lis r3, lbl_803CDBD4@ha
/* 80314638 00311578 38 03 DB D4 */ addi r0, r3, lbl_803CDBD4@l
/* 8031463C 0031157C 90 1F 00 00 */ stw r0, 0(r31)
/* 80314640 00311580 41 82 00 20 */ beq lbl_80314660
/* 80314644 00311584 3C 60 80 3D */ lis r3, lbl_803CDC1C@ha
/* 80314648 00311588 38 03 DC 1C */ addi r0, r3, lbl_803CDC1C@l
/* 8031464C 0031158C 90 1F 00 00 */ stw r0, 0(r31)
/* 80314650 00311590 41 82 00 10 */ beq lbl_80314660
/* 80314654 00311594 3C 60 80 3D */ lis r3, lbl_803CDC44@ha
/* 80314658 00311598 38 03 DC 44 */ addi r0, r3, lbl_803CDC44@l
/* 8031465C 0031159C 90 1F 00 00 */ stw r0, 0(r31)
lbl_80314660:
/* 80314660 003115A0 7C 80 07 35 */ extsh. r0, r4
/* 80314664 003115A4 40 81 00 0C */ ble lbl_80314670
/* 80314668 003115A8 7F E3 FB 78 */ mr r3, r31
/* 8031466C 003115AC 4B FB A6 D1 */ bl __dl__FPv
lbl_80314670:
/* 80314670 003115B0 7F E3 FB 78 */ mr r3, r31
/* 80314674 003115B4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80314678 003115B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031467C 003115BC 7C 08 03 A6 */ mtlr r0
/* 80314680 003115C0 38 21 00 10 */ addi r1, r1, 0x10
/* 80314684 003115C4 4E 80 00 20 */ blr
/* 80314688 003115C8 3C 60 53 4D */ lis r3, 0x534D4D43@ha
/* 8031468C 003115CC 38 63 4D 43 */ addi r3, r3, 0x534D4D43@l
/* 80314690 003115D0 4E 80 00 20 */ blr
/* 80314694 003115D4 A0 63 00 08 */ lhz r3, 8(r3)
/* 80314698 003115D8 4E 80 00 20 */ blr
/* 8031469C 003115DC 80 63 00 0C */ lwz r3, 0xc(r3)
/* 803146A0 003115E0 54 80 0B FC */ rlwinm r0, r4, 1, 0xf, 0x1e
/* 803146A4 003115E4 7C 63 02 2E */ lhzx r3, r3, r0
/* 803146A8 003115E8 4E 80 00 20 */ blr
/* 803146AC 003115EC 4E 80 00 20 */ blr
/* 803146B0 003115F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803146B4 003115F4 7C 08 02 A6 */ mflr r0
/* 803146B8 003115F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 803146BC 003115FC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803146C0 00311600 7C 7F 1B 79 */ or. r31, r3, r3
/* 803146C4 00311604 41 82 00 30 */ beq lbl_803146F4
/* 803146C8 00311608 3C 60 80 3D */ lis r3, lbl_803CDBFC@ha
/* 803146CC 0031160C 38 03 DB FC */ addi r0, r3, lbl_803CDBFC@l
/* 803146D0 00311610 90 1F 00 00 */ stw r0, 0(r31)
/* 803146D4 00311614 41 82 00 10 */ beq lbl_803146E4
/* 803146D8 00311618 3C 60 80 3D */ lis r3, lbl_803CDC44@ha
/* 803146DC 0031161C 38 03 DC 44 */ addi r0, r3, lbl_803CDC44@l
/* 803146E0 00311620 90 1F 00 00 */ stw r0, 0(r31)
lbl_803146E4:
/* 803146E4 00311624 7C 80 07 35 */ extsh. r0, r4
/* 803146E8 00311628 40 81 00 0C */ ble lbl_803146F4
/* 803146EC 0031162C 7F E3 FB 78 */ mr r3, r31
/* 803146F0 00311630 4B FB A6 4D */ bl __dl__FPv
lbl_803146F4:
/* 803146F4 00311634 7F E3 FB 78 */ mr r3, r31
/* 803146F8 00311638 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803146FC 0031163C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80314700 00311640 7C 08 03 A6 */ mtlr r0
/* 80314704 00311644 38 21 00 10 */ addi r1, r1, 0x10
/* 80314708 00311648 4E 80 00 20 */ blr
/* 8031470C 0031164C 3C 60 53 4D */ lis r3, 0x534D4D4C@ha
/* 80314710 00311650 38 63 4D 4C */ addi r3, r3, 0x534D4D4C@l
/* 80314714 00311654 4E 80 00 20 */ blr
/* 80314718 00311658 A0 63 00 08 */ lhz r3, 8(r3)
/* 8031471C 0031165C 4E 80 00 20 */ blr
/* 80314720 00311660 80 63 00 0C */ lwz r3, 0xc(r3)
/* 80314724 00311664 54 80 0B FC */ rlwinm r0, r4, 1, 0xf, 0x1e
/* 80314728 00311668 7C 63 02 2E */ lhzx r3, r3, r0
/* 8031472C 0031166C 4E 80 00 20 */ blr
/* 80314730 00311670 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80314734 00311674 7C 08 02 A6 */ mflr r0
/* 80314738 00311678 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031473C 0031167C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80314740 00311680 7C 7F 1B 79 */ or. r31, r3, r3
/* 80314744 00311684 41 82 00 30 */ beq lbl_80314774
/* 80314748 00311688 3C 60 80 3D */ lis r3, lbl_803CDC1C@ha
/* 8031474C 0031168C 38 03 DC 1C */ addi r0, r3, lbl_803CDC1C@l
/* 80314750 00311690 90 1F 00 00 */ stw r0, 0(r31)
/* 80314754 00311694 41 82 00 10 */ beq lbl_80314764
/* 80314758 00311698 3C 60 80 3D */ lis r3, lbl_803CDC44@ha
/* 8031475C 0031169C 38 03 DC 44 */ addi r0, r3, lbl_803CDC44@l
/* 80314760 003116A0 90 1F 00 00 */ stw r0, 0(r31)
lbl_80314764:
/* 80314764 003116A4 7C 80 07 35 */ extsh. r0, r4
/* 80314768 003116A8 40 81 00 0C */ ble lbl_80314774
/* 8031476C 003116AC 7F E3 FB 78 */ mr r3, r31
/* 80314770 003116B0 4B FB A5 CD */ bl __dl__FPv
lbl_80314774:
/* 80314774 003116B4 7F E3 FB 78 */ mr r3, r31
/* 80314778 003116B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8031477C 003116BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80314780 003116C0 7C 08 03 A6 */ mtlr r0
/* 80314784 003116C4 38 21 00 10 */ addi r1, r1, 0x10
/* 80314788 003116C8 4E 80 00 20 */ blr
/* 8031478C 003116CC 3C 60 53 4D */ lis r3, 0x534D4356@ha
/* 80314790 003116D0 38 63 43 56 */ addi r3, r3, 0x534D4356@l
/* 80314794 003116D4 4E 80 00 20 */ blr
/* 80314798 003116D8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031479C 003116DC 7C 08 02 A6 */ mflr r0
/* 803147A0 003116E0 90 01 00 14 */ stw r0, 0x14(r1)
/* 803147A4 003116E4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803147A8 003116E8 7C 7F 1B 79 */ or. r31, r3, r3
/* 803147AC 003116EC 41 82 00 1C */ beq lbl_803147C8
/* 803147B0 003116F0 3C A0 80 3D */ lis r5, lbl_803CDC44@ha
/* 803147B4 003116F4 38 05 DC 44 */ addi r0, r5, lbl_803CDC44@l
/* 803147B8 003116F8 90 1F 00 00 */ stw r0, 0(r31)
/* 803147BC 003116FC 7C 80 07 35 */ extsh. r0, r4
/* 803147C0 00311700 40 81 00 08 */ ble lbl_803147C8
/* 803147C4 00311704 4B FB A5 79 */ bl __dl__FPv
lbl_803147C8:
/* 803147C8 00311708 7F E3 FB 78 */ mr r3, r31
/* 803147CC 0031170C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803147D0 00311710 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803147D4 00311714 7C 08 03 A6 */ mtlr r0
/* 803147D8 00311718 38 21 00 10 */ addi r1, r1, 0x10
/* 803147DC 0031171C 4E 80 00 20 */ blr
/* 803147E0 00311720 3C 60 53 4D */ lis r3, 0x534D5458@ha
/* 803147E4 00311724 38 63 54 58 */ addi r3, r3, 0x534D5458@l
/* 803147E8 00311728 4E 80 00 20 */ blr
/* 803147EC 0031172C 3C 60 80 3D */ lis r3, lbl_803CD990@ha
/* 803147F0 00311730 38 63 D9 90 */ addi r3, r3, lbl_803CD990@l
/* 803147F4 00311734 80 83 00 00 */ lwz r4, 0(r3)
/* 803147F8 00311738 80 03 00 04 */ lwz r0, 4(r3)
/* 803147FC 0031173C 90 83 00 30 */ stw r4, 0x30(r3)
/* 80314800 00311740 90 03 00 34 */ stw r0, 0x34(r3)
/* 80314804 00311744 80 03 00 08 */ lwz r0, 8(r3)
/* 80314808 00311748 90 03 00 38 */ stw r0, 0x38(r3)
/* 8031480C 0031174C 38 A3 00 30 */ addi r5, r3, 0x30
/* 80314810 00311750 80 83 00 0C */ lwz r4, 0xc(r3)
/* 80314814 00311754 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80314818 00311758 90 85 00 0C */ stw r4, 0xc(r5)
/* 8031481C 0031175C 90 05 00 10 */ stw r0, 0x10(r5)
/* 80314820 00311760 80 03 00 14 */ lwz r0, 0x14(r3)
/* 80314824 00311764 90 05 00 14 */ stw r0, 0x14(r5)
/* 80314828 00311768 80 83 00 18 */ lwz r4, 0x18(r3)
/* 8031482C 0031176C 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80314830 00311770 90 85 00 18 */ stw r4, 0x18(r5)
/* 80314834 00311774 90 05 00 1C */ stw r0, 0x1c(r5)
/* 80314838 00311778 80 03 00 20 */ lwz r0, 0x20(r3)
/* 8031483C 0031177C 90 05 00 20 */ stw r0, 0x20(r5)
/* 80314840 00311780 80 83 00 24 */ lwz r4, 0x24(r3)
/* 80314844 00311784 80 03 00 28 */ lwz r0, 0x28(r3)
/* 80314848 00311788 90 85 00 24 */ stw r4, 0x24(r5)
/* 8031484C 0031178C 90 05 00 28 */ stw r0, 0x28(r5)
/* 80314850 00311790 80 03 00 2C */ lwz r0, 0x2c(r3)
/* 80314854 00311794 90 05 00 2C */ stw r0, 0x2c(r5)
/* 80314858 00311798 80 83 00 60 */ lwz r4, 0x60(r3)
/* 8031485C 0031179C 80 03 00 64 */ lwz r0, 0x64(r3)
/* 80314860 003117A0 90 83 00 90 */ stw r4, 0x90(r3)
/* 80314864 003117A4 90 03 00 94 */ stw r0, 0x94(r3)
/* 80314868 003117A8 80 03 00 68 */ lwz r0, 0x68(r3)
/* 8031486C 003117AC 90 03 00 98 */ stw r0, 0x98(r3)
/* 80314870 003117B0 38 A3 00 90 */ addi r5, r3, 0x90
/* 80314874 003117B4 80 83 00 6C */ lwz r4, 0x6c(r3)
/* 80314878 003117B8 80 03 00 70 */ lwz r0, 0x70(r3)
/* 8031487C 003117BC 90 85 00 0C */ stw r4, 0xc(r5)
/* 80314880 003117C0 90 05 00 10 */ stw r0, 0x10(r5)
/* 80314884 003117C4 80 03 00 74 */ lwz r0, 0x74(r3)
/* 80314888 003117C8 90 05 00 14 */ stw r0, 0x14(r5)
/* 8031488C 003117CC 80 83 00 78 */ lwz r4, 0x78(r3)
/* 80314890 003117D0 80 03 00 7C */ lwz r0, 0x7c(r3)
/* 80314894 003117D4 90 85 00 18 */ stw r4, 0x18(r5)
/* 80314898 003117D8 90 05 00 1C */ stw r0, 0x1c(r5)
/* 8031489C 003117DC 80 03 00 80 */ lwz r0, 0x80(r3)
/* 803148A0 003117E0 90 05 00 20 */ stw r0, 0x20(r5)
/* 803148A4 003117E4 80 83 00 84 */ lwz r4, 0x84(r3)
/* 803148A8 003117E8 80 03 00 88 */ lwz r0, 0x88(r3)
/* 803148AC 003117EC 90 85 00 24 */ stw r4, 0x24(r5)
/* 803148B0 003117F0 90 05 00 28 */ stw r0, 0x28(r5)
/* 803148B4 003117F4 80 03 00 8C */ lwz r0, 0x8c(r3)
/* 803148B8 003117F8 90 05 00 2C */ stw r0, 0x2c(r5)
/* 803148BC 003117FC 80 83 00 C0 */ lwz r4, 0xc0(r3)
/* 803148C0 00311800 80 03 00 C4 */ lwz r0, 0xc4(r3)
/* 803148C4 00311804 90 83 00 F0 */ stw r4, 0xf0(r3)
/* 803148C8 00311808 90 03 00 F4 */ stw r0, 0xf4(r3)
/* 803148CC 0031180C 80 03 00 C8 */ lwz r0, 0xc8(r3)
/* 803148D0 00311810 90 03 00 F8 */ stw r0, 0xf8(r3)
/* 803148D4 00311814 38 A3 00 F0 */ addi r5, r3, 0xf0
/* 803148D8 00311818 80 83 00 CC */ lwz r4, 0xcc(r3)
/* 803148DC 0031181C 80 03 00 D0 */ lwz r0, 0xd0(r3)
/* 803148E0 00311820 90 85 00 0C */ stw r4, 0xc(r5)
/* 803148E4 00311824 90 05 00 10 */ stw r0, 0x10(r5)
/* 803148E8 00311828 80 03 00 D4 */ lwz r0, 0xd4(r3)
/* 803148EC 0031182C 90 05 00 14 */ stw r0, 0x14(r5)
/* 803148F0 00311830 80 83 00 D8 */ lwz r4, 0xd8(r3)
/* 803148F4 00311834 80 03 00 DC */ lwz r0, 0xdc(r3)
/* 803148F8 00311838 90 85 00 18 */ stw r4, 0x18(r5)
/* 803148FC 0031183C 90 05 00 1C */ stw r0, 0x1c(r5)
/* 80314900 00311840 80 03 00 E0 */ lwz r0, 0xe0(r3)
/* 80314904 00311844 90 05 00 20 */ stw r0, 0x20(r5)
/* 80314908 00311848 80 83 00 E4 */ lwz r4, 0xe4(r3)
/* 8031490C 0031184C 80 03 00 E8 */ lwz r0, 0xe8(r3)
/* 80314910 00311850 90 85 00 24 */ stw r4, 0x24(r5)
/* 80314914 00311854 90 05 00 28 */ stw r0, 0x28(r5)
/* 80314918 00311858 80 03 00 EC */ lwz r0, 0xec(r3)
/* 8031491C 0031185C 90 05 00 2C */ stw r0, 0x2c(r5)
/* 80314920 00311860 4E 80 00 20 */ blr