prime/asm/MetroidPrime/Player/CMorphBallShadow.s

1387 lines
68 KiB
ArmAsm

.include "macros.inc"
.section .sbss2, "", @nobits
.balign 8
# CMorphBallShadow
.global lbl_805AF470
lbl_805AF470:
.skip 0x4
.global lbl_805AF474
lbl_805AF474:
.skip 0x4
.section .text, "ax"
.global AreasValid__16CMorphBallShadowCFRC13CStateManager
AreasValid__16CMorphBallShadowCFRC13CStateManager:
/* 80295B40 00292AA0 80 84 08 50 */ lwz r4, 0x850(r4)
/* 80295B44 00292AA4 80 A3 00 1C */ lwz r5, 0x1c(r3)
/* 80295B48 00292AA8 80 C4 00 58 */ lwz r6, 0x58(r4)
/* 80295B4C 00292AAC 80 ED A2 18 */ lwz r7, lbl_805A8DD8@sda21(r13)
/* 80295B50 00292AB0 48 00 00 5C */ b lbl_80295BAC
lbl_80295B54:
/* 80295B54 00292AB4 88 06 00 F0 */ lbz r0, 0xf0(r6)
/* 80295B58 00292AB8 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80295B5C 00292ABC 41 82 00 10 */ beq lbl_80295B6C
/* 80295B60 00292AC0 80 86 01 2C */ lwz r4, 0x12c(r6)
/* 80295B64 00292AC4 80 04 10 DC */ lwz r0, 0x10dc(r4)
/* 80295B68 00292AC8 48 00 00 08 */ b lbl_80295B70
lbl_80295B6C:
/* 80295B6C 00292ACC 38 00 00 00 */ li r0, 0
lbl_80295B70:
/* 80295B70 00292AD0 2C 00 00 01 */ cmpwi r0, 1
/* 80295B74 00292AD4 40 82 00 34 */ bne lbl_80295BA8
/* 80295B78 00292AD8 80 03 00 20 */ lwz r0, 0x20(r3)
/* 80295B7C 00292ADC 7C 05 00 40 */ cmplw r5, r0
/* 80295B80 00292AE0 40 82 00 0C */ bne lbl_80295B8C
/* 80295B84 00292AE4 38 60 00 00 */ li r3, 0
/* 80295B88 00292AE8 4E 80 00 20 */ blr
lbl_80295B8C:
/* 80295B8C 00292AEC 80 85 00 08 */ lwz r4, 8(r5)
/* 80295B90 00292AF0 80 06 00 04 */ lwz r0, 4(r6)
/* 80295B94 00292AF4 7C 04 00 00 */ cmpw r4, r0
/* 80295B98 00292AF8 41 82 00 0C */ beq lbl_80295BA4
/* 80295B9C 00292AFC 38 60 00 00 */ li r3, 0
/* 80295BA0 00292B00 4E 80 00 20 */ blr
lbl_80295BA4:
/* 80295BA4 00292B04 80 A5 00 04 */ lwz r5, 4(r5)
lbl_80295BA8:
/* 80295BA8 00292B08 80 C6 01 30 */ lwz r6, 0x130(r6)
lbl_80295BAC:
/* 80295BAC 00292B0C 7C 06 38 40 */ cmplw r6, r7
/* 80295BB0 00292B10 40 82 FF A4 */ bne lbl_80295B54
/* 80295BB4 00292B14 38 60 00 01 */ li r3, 1
/* 80295BB8 00292B18 4E 80 00 20 */ blr
.global GatherAreas__16CMorphBallShadowFR13CStateManager
GatherAreas__16CMorphBallShadowFR13CStateManager:
/* 80295BBC 00292B1C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80295BC0 00292B20 7C 08 02 A6 */ mflr r0
/* 80295BC4 00292B24 90 01 00 24 */ stw r0, 0x24(r1)
/* 80295BC8 00292B28 BF 61 00 0C */ stmw r27, 0xc(r1)
/* 80295BCC 00292B2C 7C 9B 23 78 */ mr r27, r4
/* 80295BD0 00292B30 7C 7F 1B 78 */ mr r31, r3
/* 80295BD4 00292B34 83 A3 00 20 */ lwz r29, 0x20(r3)
/* 80295BD8 00292B38 80 83 00 1C */ lwz r4, 0x1c(r3)
/* 80295BDC 00292B3C 48 00 00 10 */ b lbl_80295BEC
lbl_80295BE0:
/* 80295BE0 00292B40 38 7F 00 18 */ addi r3, r31, 0x18
/* 80295BE4 00292B44 48 00 11 4D */ bl sub_80296d30
/* 80295BE8 00292B48 7C 64 1B 78 */ mr r4, r3
lbl_80295BEC:
/* 80295BEC 00292B4C 7C 04 E8 40 */ cmplw r4, r29
/* 80295BF0 00292B50 40 82 FF F0 */ bne lbl_80295BE0
/* 80295BF4 00292B54 80 7B 08 50 */ lwz r3, 0x850(r27)
/* 80295BF8 00292B58 83 83 00 58 */ lwz r28, 0x58(r3)
/* 80295BFC 00292B5C 48 00 00 94 */ b lbl_80295C90
lbl_80295C00:
/* 80295C00 00292B60 88 1C 00 F0 */ lbz r0, 0xf0(r28)
/* 80295C04 00292B64 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80295C08 00292B68 41 82 00 10 */ beq lbl_80295C18
/* 80295C0C 00292B6C 80 7C 01 2C */ lwz r3, 0x12c(r28)
/* 80295C10 00292B70 80 03 10 DC */ lwz r0, 0x10dc(r3)
/* 80295C14 00292B74 48 00 00 08 */ b lbl_80295C1C
lbl_80295C18:
/* 80295C18 00292B78 38 00 00 00 */ li r0, 0
lbl_80295C1C:
/* 80295C1C 00292B7C 2C 00 00 01 */ cmpwi r0, 1
/* 80295C20 00292B80 40 82 00 6C */ bne lbl_80295C8C
/* 80295C24 00292B84 83 DF 00 20 */ lwz r30, 0x20(r31)
/* 80295C28 00292B88 3C 60 80 3D */ lis r3, lbl_803D5C30@ha
/* 80295C2C 00292B8C 38 83 5C 30 */ addi r4, r3, lbl_803D5C30@l
/* 80295C30 00292B90 83 7C 00 04 */ lwz r27, 4(r28)
/* 80295C34 00292B94 83 BE 00 00 */ lwz r29, 0(r30)
/* 80295C38 00292B98 38 60 00 0C */ li r3, 0xc
/* 80295C3C 00292B9C 38 A0 00 00 */ li r5, 0
/* 80295C40 00292BA0 48 07 FB D9 */ bl __nwa__FUlPCcPCc
/* 80295C44 00292BA4 28 03 00 00 */ cmplwi r3, 0
/* 80295C48 00292BA8 41 82 00 0C */ beq lbl_80295C54
/* 80295C4C 00292BAC 93 A3 00 00 */ stw r29, 0(r3)
/* 80295C50 00292BB0 93 C3 00 04 */ stw r30, 4(r3)
lbl_80295C54:
/* 80295C54 00292BB4 34 83 00 08 */ addic. r4, r3, 8
/* 80295C58 00292BB8 41 82 00 08 */ beq lbl_80295C60
/* 80295C5C 00292BBC 93 64 00 00 */ stw r27, 0(r4)
lbl_80295C60:
/* 80295C60 00292BC0 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80295C64 00292BC4 7C 1E 00 40 */ cmplw r30, r0
/* 80295C68 00292BC8 40 82 00 08 */ bne lbl_80295C70
/* 80295C6C 00292BCC 90 7F 00 1C */ stw r3, 0x1c(r31)
lbl_80295C70:
/* 80295C70 00292BD0 80 83 00 00 */ lwz r4, 0(r3)
/* 80295C74 00292BD4 90 64 00 04 */ stw r3, 4(r4)
/* 80295C78 00292BD8 80 83 00 04 */ lwz r4, 4(r3)
/* 80295C7C 00292BDC 90 64 00 00 */ stw r3, 0(r4)
/* 80295C80 00292BE0 80 7F 00 2C */ lwz r3, 0x2c(r31)
/* 80295C84 00292BE4 38 03 00 01 */ addi r0, r3, 1
/* 80295C88 00292BE8 90 1F 00 2C */ stw r0, 0x2c(r31)
lbl_80295C8C:
/* 80295C8C 00292BEC 83 9C 01 30 */ lwz r28, 0x130(r28)
lbl_80295C90:
/* 80295C90 00292BF0 80 0D A2 18 */ lwz r0, lbl_805A8DD8@sda21(r13)
/* 80295C94 00292BF4 7C 1C 00 40 */ cmplw r28, r0
/* 80295C98 00292BF8 40 82 FF 68 */ bne lbl_80295C00
/* 80295C9C 00292BFC BB 61 00 0C */ lmw r27, 0xc(r1)
/* 80295CA0 00292C00 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80295CA4 00292C04 7C 08 03 A6 */ mtlr r0
/* 80295CA8 00292C08 38 21 00 20 */ addi r1, r1, 0x20
/* 80295CAC 00292C0C 4E 80 00 20 */ blr
.global Render__16CMorphBallShadowFR13CStateManagerf
Render__16CMorphBallShadowFR13CStateManagerf:
/* 80295CB0 00292C10 94 21 FD 30 */ stwu r1, -0x2d0(r1)
/* 80295CB4 00292C14 7C 08 02 A6 */ mflr r0
/* 80295CB8 00292C18 90 01 02 D4 */ stw r0, 0x2d4(r1)
/* 80295CBC 00292C1C DB E1 02 C0 */ stfd f31, 0x2c0(r1)
/* 80295CC0 00292C20 F3 E1 02 C8 */ psq_st f31, 712(r1), 0, qr0
/* 80295CC4 00292C24 BF 21 02 A4 */ stmw r25, 0x2a4(r1)
/* 80295CC8 00292C28 7C 7E 1B 78 */ mr r30, r3
/* 80295CCC 00292C2C FF E0 08 90 */ fmr f31, f1
/* 80295CD0 00292C30 88 03 00 D0 */ lbz r0, 0xd0(r3)
/* 80295CD4 00292C34 83 ED A0 68 */ lwz r31, gpRender@sda21(r13)
/* 80295CD8 00292C38 28 00 00 00 */ cmplwi r0, 0
/* 80295CDC 00292C3C 41 82 05 68 */ beq lbl_80296244
/* 80295CE0 00292C40 4B FF FE 61 */ bl AreasValid__16CMorphBallShadowCFRC13CStateManager
/* 80295CE4 00292C44 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80295CE8 00292C48 40 82 00 08 */ bne lbl_80295CF0
/* 80295CEC 00292C4C 48 00 05 58 */ b lbl_80296244
lbl_80295CF0:
/* 80295CF0 00292C50 80 BE 00 A8 */ lwz r5, 0xa8(r30)
/* 80295CF4 00292C54 38 7E 00 40 */ addi r3, r30, 0x40
/* 80295CF8 00292C58 AB 9E 00 46 */ lha r28, 0x46(r30)
/* 80295CFC 00292C5C 38 80 00 00 */ li r4, 0
/* 80295D00 00292C60 80 A5 00 10 */ lwz r5, 0x10(r5)
/* 80295D04 00292C64 AB 7E 00 44 */ lha r27, 0x44(r30)
/* 80295D08 00292C68 7C 05 00 D0 */ neg r0, r5
/* 80295D0C 00292C6C 7C 00 2B 78 */ or r0, r0, r5
/* 80295D10 00292C70 54 1D 0F FE */ srwi r29, r0, 0x1f
/* 80295D14 00292C74 48 07 88 E1 */ bl GetConstBitMapData__8CTextureCFi
/* 80295D18 00292C78 80 E2 C7 A8 */ lwz r7, lbl_805AE4C8@sda21(r2)
/* 80295D1C 00292C7C 7C 66 1B 78 */ mr r6, r3
/* 80295D20 00292C80 7F 63 DB 78 */ mr r3, r27
/* 80295D24 00292C84 7F 84 E3 78 */ mr r4, r28
/* 80295D28 00292C88 38 A0 00 01 */ li r5, 1
/* 80295D2C 00292C8C 48 07 42 F5 */ bl LoadDolphinSpareTexture__9CGraphicsFii9_GXTexFmtPv11_GXTexMapID
/* 80295D30 00292C90 38 7F 02 20 */ addi r3, r31, 0x220
/* 80295D34 00292C94 38 80 00 01 */ li r4, 1
/* 80295D38 00292C98 38 A0 00 00 */ li r5, 0
/* 80295D3C 00292C9C 48 07 9A 01 */ bl Load__8CTextureCF11_GXTexMapIDQ28CTexture10EClampMode
/* 80295D40 00292CA0 28 1D 00 00 */ cmplwi r29, 0
/* 80295D44 00292CA4 41 82 00 34 */ beq lbl_80295D78
/* 80295D48 00292CA8 38 61 00 18 */ addi r3, r1, 0x18
/* 80295D4C 00292CAC 38 9E 00 A8 */ addi r4, r30, 0xa8
/* 80295D50 00292CB0 48 0A B1 59 */ bl __ct__6CTokenFRC6CToken
/* 80295D54 00292CB4 38 61 00 18 */ addi r3, r1, 0x18
/* 80295D58 00292CB8 48 0A B0 B5 */ bl GetObj__6CTokenFv
/* 80295D5C 00292CBC 80 63 00 04 */ lwz r3, 4(r3)
/* 80295D60 00292CC0 38 80 00 02 */ li r4, 2
/* 80295D64 00292CC4 38 A0 00 00 */ li r5, 0
/* 80295D68 00292CC8 48 07 99 D5 */ bl Load__8CTextureCF11_GXTexMapIDQ28CTexture10EClampMode
/* 80295D6C 00292CCC 38 61 00 18 */ addi r3, r1, 0x18
/* 80295D70 00292CD0 38 80 00 00 */ li r4, 0
/* 80295D74 00292CD4 48 0A B0 CD */ bl __dt__6CTokenFv
lbl_80295D78:
/* 80295D78 00292CD8 48 07 6C 05 */ bl DisableAllLights__9CGraphicsFv
/* 80295D7C 00292CDC 38 61 00 38 */ addi r3, r1, 0x38
/* 80295D80 00292CE0 38 9E 00 B8 */ addi r4, r30, 0xb8
/* 80295D84 00292CE4 48 0A 18 89 */ bl GetCenterPoint__6CAABoxCFv
/* 80295D88 00292CE8 C0 22 BF 9C */ lfs f1, lbl_805ADCBC@sda21(r2)
/* 80295D8C 00292CEC FC 80 F8 90 */ fmr f4, f31
/* 80295D90 00292CF0 38 61 00 10 */ addi r3, r1, 0x10
/* 80295D94 00292CF4 FC 40 08 90 */ fmr f2, f1
/* 80295D98 00292CF8 FC 60 08 90 */ fmr f3, f1
/* 80295D9C 00292CFC 48 0C D6 51 */ bl __ct__6CColorFffff
/* 80295DA0 00292D00 3C 80 80 5A */ lis r4, lbl_805A6700@ha
/* 80295DA4 00292D04 7C 65 1B 78 */ mr r5, r3
/* 80295DA8 00292D08 38 84 67 00 */ addi r4, r4, lbl_805A6700@l
/* 80295DAC 00292D0C 38 61 02 00 */ addi r3, r1, 0x200
/* 80295DB0 00292D10 48 07 06 BD */ bl BuildDirectional__6CLightFRC9CVector3fRC6CColor
/* 80295DB4 00292D14 38 61 02 50 */ addi r3, r1, 0x250
/* 80295DB8 00292D18 38 81 02 00 */ addi r4, r1, 0x200
/* 80295DBC 00292D1C 4B DA 57 B5 */ bl __ct__6CLightFCR6CLight
/* 80295DC0 00292D20 38 81 02 50 */ addi r4, r1, 0x250
/* 80295DC4 00292D24 38 60 00 00 */ li r3, 0
/* 80295DC8 00292D28 48 07 6B FD */ bl LoadLight__9CGraphicsF9ERglLightRC6CLight
/* 80295DCC 00292D2C 80 02 D7 50 */ lwz r0, lbl_805AF470@sda21(r2)
/* 80295DD0 00292D30 38 81 00 0C */ addi r4, r1, 0xc
/* 80295DD4 00292D34 38 60 00 00 */ li r3, 0
/* 80295DD8 00292D38 90 01 00 0C */ stw r0, 0xc(r1)
/* 80295DDC 00292D3C 48 07 2F E9 */ bl SetChanAmbColor__3CGXFQ23CGX10EChannelIdRC8_GXColor
/* 80295DE0 00292D40 80 02 BF 98 */ lwz r0, lbl_805ADCB8@sda21(r2)
/* 80295DE4 00292D44 38 81 00 08 */ addi r4, r1, 8
/* 80295DE8 00292D48 38 60 00 00 */ li r3, 0
/* 80295DEC 00292D4C 90 01 00 08 */ stw r0, 8(r1)
/* 80295DF0 00292D50 48 07 2F 6D */ bl SetChanMatColor__3CGXFQ23CGX10EChannelIdRC8_GXColor
/* 80295DF4 00292D54 38 60 00 00 */ li r3, 0
/* 80295DF8 00292D58 48 07 30 59 */ bl SetNumChans__3CGXFUc
/* 80295DFC 00292D5C 48 07 21 E9 */ bl FlushState__3CGXFv
/* 80295E00 00292D60 38 60 00 02 */ li r3, 2
/* 80295E04 00292D64 38 80 00 01 */ li r4, 1
/* 80295E08 00292D68 38 A0 00 00 */ li r5, 0
/* 80295E0C 00292D6C 38 C0 00 00 */ li r6, 0
/* 80295E10 00292D70 38 E0 00 01 */ li r7, 1
/* 80295E14 00292D74 39 00 00 02 */ li r8, 2
/* 80295E18 00292D78 39 20 00 01 */ li r9, 1
/* 80295E1C 00292D7C 48 0E 3D 59 */ bl GXSetChanCtrl
/* 80295E20 00292D80 38 60 00 01 */ li r3, 1
/* 80295E24 00292D84 48 0E 3D 0D */ bl GXSetNumChans
/* 80295E28 00292D88 38 60 00 00 */ li r3, 0
/* 80295E2C 00292D8C 48 07 28 65 */ bl SetNumIndStages__3CGXFUc
/* 80295E30 00292D90 38 60 00 00 */ li r3, 0
/* 80295E34 00292D94 48 07 29 11 */ bl SetTevDirect__3CGXF13_GXTevStageID
/* 80295E38 00292D98 38 60 00 00 */ li r3, 0
/* 80295E3C 00292D9C 38 80 00 0F */ li r4, 0xf
/* 80295E40 00292DA0 38 A0 00 0F */ li r5, 0xf
/* 80295E44 00292DA4 38 C0 00 0F */ li r6, 0xf
/* 80295E48 00292DA8 38 E0 00 0F */ li r7, 0xf
/* 80295E4C 00292DAC 48 07 2D A1 */ bl SetTevColorIn__3CGXF13_GXTevStageID14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg
/* 80295E50 00292DB0 38 60 00 00 */ li r3, 0
/* 80295E54 00292DB4 38 80 00 04 */ li r4, 4
/* 80295E58 00292DB8 38 A0 00 06 */ li r5, 6
/* 80295E5C 00292DBC 38 C0 00 05 */ li r6, 5
/* 80295E60 00292DC0 38 E0 00 07 */ li r7, 7
/* 80295E64 00292DC4 48 07 2D 31 */ bl SetTevAlphaIn__3CGXF13_GXTevStageID14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg
/* 80295E68 00292DC8 38 60 00 00 */ li r3, 0
/* 80295E6C 00292DCC 38 80 00 00 */ li r4, 0
/* 80295E70 00292DD0 38 A0 00 00 */ li r5, 0
/* 80295E74 00292DD4 38 C0 00 00 */ li r6, 0
/* 80295E78 00292DD8 38 E0 00 01 */ li r7, 1
/* 80295E7C 00292DDC 39 00 00 00 */ li r8, 0
/* 80295E80 00292DE0 48 07 2C B9 */ bl SetTevColorOp__3CGXF13_GXTevStageID8_GXTevOp10_GXTevBias11_GXTevScaleUc11_GXTevRegID
/* 80295E84 00292DE4 38 60 00 00 */ li r3, 0
/* 80295E88 00292DE8 38 80 00 0F */ li r4, 0xf
/* 80295E8C 00292DEC 38 A0 00 00 */ li r5, 0
/* 80295E90 00292DF0 38 C0 00 01 */ li r6, 1
/* 80295E94 00292DF4 38 E0 00 01 */ li r7, 1
/* 80295E98 00292DF8 39 00 00 00 */ li r8, 0
/* 80295E9C 00292DFC 48 07 2B E5 */ bl SetTevAlphaOp__3CGXF13_GXTevStageID8_GXTevOp10_GXTevBias11_GXTevScaleUc11_GXTevRegID
/* 80295EA0 00292E00 38 60 00 00 */ li r3, 0
/* 80295EA4 00292E04 38 80 00 01 */ li r4, 1
/* 80295EA8 00292E08 38 A0 00 07 */ li r5, 7
/* 80295EAC 00292E0C 38 C0 00 04 */ li r6, 4
/* 80295EB0 00292E10 48 07 2A 9D */ bl SetTevOrder__3CGXF13_GXTevStageID13_GXTexCoordID11_GXTexMapID12_GXChannelID
/* 80295EB4 00292E14 38 60 00 00 */ li r3, 0
/* 80295EB8 00292E18 38 80 00 1C */ li r4, 0x1c
/* 80295EBC 00292E1C 48 07 2A E1 */ bl SetTevKAlphaSel__3CGXF13_GXTevStageID15_GXTevKAlphaSel
/* 80295EC0 00292E20 38 60 00 01 */ li r3, 1
/* 80295EC4 00292E24 38 80 00 0F */ li r4, 0xf
/* 80295EC8 00292E28 38 A0 00 0F */ li r5, 0xf
/* 80295ECC 00292E2C 38 C0 00 0F */ li r6, 0xf
/* 80295ED0 00292E30 38 E0 00 00 */ li r7, 0
/* 80295ED4 00292E34 48 07 2D 19 */ bl SetTevColorIn__3CGXF13_GXTevStageID14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg
/* 80295ED8 00292E38 38 60 00 01 */ li r3, 1
/* 80295EDC 00292E3C 38 80 00 07 */ li r4, 7
/* 80295EE0 00292E40 38 A0 00 04 */ li r5, 4
/* 80295EE4 00292E44 38 C0 00 00 */ li r6, 0
/* 80295EE8 00292E48 38 E0 00 07 */ li r7, 7
/* 80295EEC 00292E4C 48 07 2C A9 */ bl SetTevAlphaIn__3CGXF13_GXTevStageID14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg
/* 80295EF0 00292E50 38 60 00 01 */ li r3, 1
/* 80295EF4 00292E54 48 07 1D 5D */ bl SetStandardTevColorAlphaOp__3CGXF13_GXTevStageID
/* 80295EF8 00292E58 38 60 00 01 */ li r3, 1
/* 80295EFC 00292E5C 38 80 00 00 */ li r4, 0
/* 80295F00 00292E60 38 A0 00 01 */ li r5, 1
/* 80295F04 00292E64 38 C0 00 FF */ li r6, 0xff
/* 80295F08 00292E68 48 07 2A 45 */ bl SetTevOrder__3CGXF13_GXTevStageID13_GXTexCoordID11_GXTexMapID12_GXChannelID
/* 80295F0C 00292E6C 28 1D 00 00 */ cmplwi r29, 0
/* 80295F10 00292E70 41 82 00 64 */ beq lbl_80295F74
/* 80295F14 00292E74 38 60 00 02 */ li r3, 2
/* 80295F18 00292E78 38 80 00 0F */ li r4, 0xf
/* 80295F1C 00292E7C 38 A0 00 0F */ li r5, 0xf
/* 80295F20 00292E80 38 C0 00 0F */ li r6, 0xf
/* 80295F24 00292E84 38 E0 00 00 */ li r7, 0
/* 80295F28 00292E88 48 07 2C C5 */ bl SetTevColorIn__3CGXF13_GXTevStageID14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg
/* 80295F2C 00292E8C 38 60 00 02 */ li r3, 2
/* 80295F30 00292E90 38 80 00 07 */ li r4, 7
/* 80295F34 00292E94 38 A0 00 00 */ li r5, 0
/* 80295F38 00292E98 38 C0 00 04 */ li r6, 4
/* 80295F3C 00292E9C 38 E0 00 07 */ li r7, 7
/* 80295F40 00292EA0 48 07 2C 55 */ bl SetTevAlphaIn__3CGXF13_GXTevStageID14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg
/* 80295F44 00292EA4 38 60 00 02 */ li r3, 2
/* 80295F48 00292EA8 48 07 1D 09 */ bl SetStandardTevColorAlphaOp__3CGXF13_GXTevStageID
/* 80295F4C 00292EAC 38 60 00 02 */ li r3, 2
/* 80295F50 00292EB0 38 80 00 02 */ li r4, 2
/* 80295F54 00292EB4 38 A0 00 02 */ li r5, 2
/* 80295F58 00292EB8 38 C0 00 FF */ li r6, 0xff
/* 80295F5C 00292EBC 48 07 29 F1 */ bl SetTevOrder__3CGXF13_GXTevStageID13_GXTexCoordID11_GXTexMapID12_GXChannelID
/* 80295F60 00292EC0 38 60 00 03 */ li r3, 3
/* 80295F64 00292EC4 48 07 2D 2D */ bl SetNumTevStages__3CGXFUc
/* 80295F68 00292EC8 38 60 00 03 */ li r3, 3
/* 80295F6C 00292ECC 48 07 2E A9 */ bl SetNumTexGens__3CGXFUc
/* 80295F70 00292ED0 48 00 00 14 */ b lbl_80295F84
lbl_80295F74:
/* 80295F74 00292ED4 38 60 00 02 */ li r3, 2
/* 80295F78 00292ED8 48 07 2D 19 */ bl SetNumTevStages__3CGXFUc
/* 80295F7C 00292EDC 38 60 00 02 */ li r3, 2
/* 80295F80 00292EE0 48 07 2E 95 */ bl SetNumTexGens__3CGXFUc
lbl_80295F84:
/* 80295F84 00292EE4 80 02 D7 54 */ lwz r0, lbl_805AF474@sda21(r2)
/* 80295F88 00292EE8 3B 40 00 01 */ li r26, 1
/* 80295F8C 00292EEC 38 60 00 01 */ li r3, 1
/* 80295F90 00292EF0 38 80 00 02 */ li r4, 2
/* 80295F94 00292EF4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80295F98 00292EF8 38 A0 00 00 */ li r5, 0
/* 80295F9C 00292EFC 48 07 28 E1 */ bl SetZMode__3CGXFb10_GXCompareb
/* 80295FA0 00292F00 38 60 00 01 */ li r3, 1
/* 80295FA4 00292F04 38 80 00 04 */ li r4, 4
/* 80295FA8 00292F08 38 A0 00 05 */ li r5, 5
/* 80295FAC 00292F0C 38 C0 00 00 */ li r6, 0
/* 80295FB0 00292F10 48 07 29 21 */ bl SetBlendMode__3CGXF12_GXBlendMode14_GXBlendFactor14_GXBlendFactor10_GXLogicOp
/* 80295FB4 00292F14 38 60 00 04 */ li r3, 4
/* 80295FB8 00292F18 38 80 00 00 */ li r4, 0
/* 80295FBC 00292F1C 38 A0 00 00 */ li r5, 0
/* 80295FC0 00292F20 38 C0 00 07 */ li r6, 7
/* 80295FC4 00292F24 38 E0 00 00 */ li r7, 0
/* 80295FC8 00292F28 48 07 28 4D */ bl SetAlphaCompare__3CGXF10_GXCompareUc10_GXAlphaOp10_GXCompareUc
/* 80295FCC 00292F2C 3C 60 80 3D */ lis r3, lbl_803D5BD0@ha
/* 80295FD0 00292F30 38 80 00 40 */ li r4, 0x40
/* 80295FD4 00292F34 38 63 5B D0 */ addi r3, r3, lbl_803D5BD0@l
/* 80295FD8 00292F38 38 A0 00 00 */ li r5, 0
/* 80295FDC 00292F3C 48 0E 64 B5 */ bl GXLoadTexMtxImm
/* 80295FE0 00292F40 C0 1E 00 BC */ lfs f0, 0xbc(r30)
/* 80295FE4 00292F44 38 61 00 E0 */ addi r3, r1, 0xe0
/* 80295FE8 00292F48 C0 7E 00 C8 */ lfs f3, 0xc8(r30)
/* 80295FEC 00292F4C 38 81 00 2C */ addi r4, r1, 0x2c
/* 80295FF0 00292F50 C0 3E 00 C0 */ lfs f1, 0xc0(r30)
/* 80295FF4 00292F54 FC C0 00 50 */ fneg f6, f0
/* 80295FF8 00292F58 C0 5E 00 CC */ lfs f2, 0xcc(r30)
/* 80295FFC 00292F5C EC A3 00 28 */ fsubs f5, f3, f0
/* 80296000 00292F60 C0 7E 00 B8 */ lfs f3, 0xb8(r30)
/* 80296004 00292F64 FC E0 08 50 */ fneg f7, f1
/* 80296008 00292F68 C0 1E 00 C4 */ lfs f0, 0xc4(r30)
/* 8029600C 00292F6C EC 82 08 28 */ fsubs f4, f2, f1
/* 80296010 00292F70 C0 22 BF A0 */ lfs f1, lbl_805ADCC0@sda21(r2)
/* 80296014 00292F74 EC 40 18 28 */ fsubs f2, f0, f3
/* 80296018 00292F78 D0 A1 00 48 */ stfs f5, 0x48(r1)
/* 8029601C 00292F7C EC 01 28 24 */ fdivs f0, f1, f5
/* 80296020 00292F80 D0 81 00 4C */ stfs f4, 0x4c(r1)
/* 80296024 00292F84 D0 41 00 44 */ stfs f2, 0x44(r1)
/* 80296028 00292F88 D0 C1 00 30 */ stfs f6, 0x30(r1)
/* 8029602C 00292F8C D0 E1 00 34 */ stfs f7, 0x34(r1)
/* 80296030 00292F90 EC 41 10 24 */ fdivs f2, f1, f2
/* 80296034 00292F94 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 80296038 00292F98 EC 21 20 24 */ fdivs f1, f1, f4
/* 8029603C 00292F9C D0 41 00 44 */ stfs f2, 0x44(r1)
/* 80296040 00292FA0 FC 00 18 50 */ fneg f0, f3
/* 80296044 00292FA4 D0 21 00 4C */ stfs f1, 0x4c(r1)
/* 80296048 00292FA8 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8029604C 00292FAC 48 07 D0 F5 */ bl Translate__12CTransform4fFRC9CVector3f
/* 80296050 00292FB0 38 61 01 10 */ addi r3, r1, 0x110
/* 80296054 00292FB4 38 81 00 44 */ addi r4, r1, 0x44
/* 80296058 00292FB8 48 07 D1 6D */ bl Scale__12CTransform4fFRC9CVector3f
/* 8029605C 00292FBC 38 61 01 40 */ addi r3, r1, 0x140
/* 80296060 00292FC0 38 81 01 10 */ addi r4, r1, 0x110
/* 80296064 00292FC4 38 A1 00 E0 */ addi r5, r1, 0xe0
/* 80296068 00292FC8 48 07 C8 E9 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8029606C 00292FCC 38 61 01 D0 */ addi r3, r1, 0x1d0
/* 80296070 00292FD0 38 81 01 40 */ addi r4, r1, 0x140
/* 80296074 00292FD4 48 07 CB 01 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80296078 00292FD8 38 60 00 00 */ li r3, 0
/* 8029607C 00292FDC 38 80 00 00 */ li r4, 0
/* 80296080 00292FE0 38 A0 00 00 */ li r5, 0
/* 80296084 00292FE4 38 C0 00 1E */ li r6, 0x1e
/* 80296088 00292FE8 38 E0 00 00 */ li r7, 0
/* 8029608C 00292FEC 39 00 00 40 */ li r8, 0x40
/* 80296090 00292FF0 48 07 26 3D */ bl SetTexCoordGen__3CGXF13_GXTexCoordID13_GXTexGenType12_GXTexGenSrc9_GXTexMtxUc11_GXPTTexMtx
/* 80296094 00292FF4 38 60 00 01 */ li r3, 1
/* 80296098 00292FF8 38 80 00 00 */ li r4, 0
/* 8029609C 00292FFC 38 A0 00 00 */ li r5, 0
/* 802960A0 00293000 38 C0 00 1E */ li r6, 0x1e
/* 802960A4 00293004 38 E0 00 00 */ li r7, 0
/* 802960A8 00293008 39 00 00 40 */ li r8, 0x40
/* 802960AC 0029300C 48 07 26 21 */ bl SetTexCoordGen__3CGXF13_GXTexCoordID13_GXTexGenType12_GXTexGenSrc9_GXTexMtxUc11_GXPTTexMtx
/* 802960B0 00293010 28 1D 00 00 */ cmplwi r29, 0
/* 802960B4 00293014 41 82 00 34 */ beq lbl_802960E8
/* 802960B8 00293018 3C 60 80 3D */ lis r3, lbl_803D5C00@ha
/* 802960BC 0029301C 38 80 00 43 */ li r4, 0x43
/* 802960C0 00293020 38 63 5C 00 */ addi r3, r3, lbl_803D5C00@l
/* 802960C4 00293024 38 A0 00 00 */ li r5, 0
/* 802960C8 00293028 48 0E 63 C9 */ bl GXLoadTexMtxImm
/* 802960CC 0029302C 38 60 00 02 */ li r3, 2
/* 802960D0 00293030 38 80 00 00 */ li r4, 0
/* 802960D4 00293034 38 A0 00 00 */ li r5, 0
/* 802960D8 00293038 38 C0 00 1E */ li r6, 0x1e
/* 802960DC 0029303C 38 E0 00 00 */ li r7, 0
/* 802960E0 00293040 39 00 00 43 */ li r8, 0x43
/* 802960E4 00293044 48 07 25 E9 */ bl SetTexCoordGen__3CGXF13_GXTexCoordID13_GXTexGenType12_GXTexGenSrc9_GXTexMtxUc11_GXPTTexMtx
lbl_802960E8:
/* 802960E8 00293048 83 9E 00 04 */ lwz r28, 4(r30)
/* 802960EC 0029304C 3B A0 00 04 */ li r29, 4
/* 802960F0 00293050 48 00 00 D8 */ b lbl_802961C8
lbl_802960F4:
/* 802960F4 00293054 9B A1 00 17 */ stb r29, 0x17(r1)
/* 802960F8 00293058 38 81 00 14 */ addi r4, r1, 0x14
/* 802960FC 0029305C 38 60 00 00 */ li r3, 0
/* 80296100 00293060 83 3C 00 08 */ lwz r25, 8(r28)
/* 80296104 00293064 48 07 2B 41 */ bl SetTevKColor__3CGXF14_GXTevKColorIDRC8_GXColor
/* 80296108 00293068 83 79 00 64 */ lwz r27, 0x64(r25)
/* 8029610C 0029306C 38 61 00 80 */ addi r3, r1, 0x80
/* 80296110 00293070 38 81 00 20 */ addi r4, r1, 0x20
/* 80296114 00293074 C0 1B 00 00 */ lfs f0, 0(r27)
/* 80296118 00293078 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8029611C 0029307C C0 1B 00 04 */ lfs f0, 4(r27)
/* 80296120 00293080 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 80296124 00293084 C0 1B 00 08 */ lfs f0, 8(r27)
/* 80296128 00293088 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8029612C 0029308C 48 07 D0 99 */ bl Scale__12CTransform4fFRC9CVector3f
/* 80296130 00293090 38 61 00 B0 */ addi r3, r1, 0xb0
/* 80296134 00293094 38 99 00 34 */ addi r4, r25, 0x34
/* 80296138 00293098 38 A1 00 80 */ addi r5, r1, 0x80
/* 8029613C 0029309C 48 07 C8 15 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80296140 002930A0 38 61 01 A0 */ addi r3, r1, 0x1a0
/* 80296144 002930A4 38 81 00 B0 */ addi r4, r1, 0xb0
/* 80296148 002930A8 48 07 CA 2D */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8029614C 002930AC 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80296150 002930B0 38 81 01 A0 */ addi r4, r1, 0x1a0
/* 80296154 002930B4 81 83 00 00 */ lwz r12, 0(r3)
/* 80296158 002930B8 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 8029615C 002930BC 7D 89 03 A6 */ mtctr r12
/* 80296160 002930C0 4E 80 04 21 */ bctrl
/* 80296164 002930C4 38 61 00 50 */ addi r3, r1, 0x50
/* 80296168 002930C8 38 81 01 D0 */ addi r4, r1, 0x1d0
/* 8029616C 002930CC 38 A1 01 A0 */ addi r5, r1, 0x1a0
/* 80296170 002930D0 48 07 C7 E1 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80296174 002930D4 38 61 01 70 */ addi r3, r1, 0x170
/* 80296178 002930D8 38 81 00 50 */ addi r4, r1, 0x50
/* 8029617C 002930DC 48 07 C9 F9 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80296180 002930E0 38 61 01 70 */ addi r3, r1, 0x170
/* 80296184 002930E4 38 80 00 1E */ li r4, 0x1e
/* 80296188 002930E8 38 A0 00 00 */ li r5, 0
/* 8029618C 002930EC 48 0E 63 05 */ bl GXLoadTexMtxImm
/* 80296190 002930F0 7F 63 DB 78 */ mr r3, r27
/* 80296194 002930F4 38 80 00 00 */ li r4, 0
/* 80296198 002930F8 4B E7 EE 15 */ bl PickStaticModel__10CModelDataCFQ210CModelData11EWhichModel
/* 8029619C 002930FC 83 63 00 08 */ lwz r27, 8(r3)
/* 802961A0 00293100 7F 63 DB 78 */ mr r3, r27
/* 802961A4 00293104 48 0B EF 7D */ bl UpdateLastFrame__6CModelFv
/* 802961A8 00293108 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 802961AC 0029310C 38 80 00 00 */ li r4, 0
/* 802961B0 00293110 38 A0 00 00 */ li r5, 0
/* 802961B4 00293114 38 C0 00 00 */ li r6, 0
/* 802961B8 00293118 48 07 08 39 */ bl DrawFlat__10CCubeModelCFPCfPCf17ESurfaceSelection
/* 802961BC 0029311C 83 9C 00 04 */ lwz r28, 4(r28)
/* 802961C0 00293120 3B BD 00 04 */ addi r29, r29, 4
/* 802961C4 00293124 3B 5A 00 01 */ addi r26, r26, 1
lbl_802961C8:
/* 802961C8 00293128 80 1E 00 08 */ lwz r0, 8(r30)
/* 802961CC 0029312C 7C 1C 00 40 */ cmplw r28, r0
/* 802961D0 00293130 40 82 FF 24 */ bne lbl_802960F4
/* 802961D4 00293134 38 61 01 D0 */ addi r3, r1, 0x1d0
/* 802961D8 00293138 38 80 00 1E */ li r4, 0x1e
/* 802961DC 0029313C 38 A0 00 00 */ li r5, 0
/* 802961E0 00293140 48 0E 62 B1 */ bl GXLoadTexMtxImm
/* 802961E4 00293144 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 802961E8 00293148 3C 80 80 5A */ lis r4, skIdentity4f@ha
/* 802961EC 0029314C 38 84 66 70 */ addi r4, r4, skIdentity4f@l
/* 802961F0 00293150 81 83 00 00 */ lwz r12, 0(r3)
/* 802961F4 00293154 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 802961F8 00293158 7D 89 03 A6 */ mtctr r12
/* 802961FC 0029315C 4E 80 04 21 */ bctrl
/* 80296200 00293160 7F E3 FB 78 */ mr r3, r31
/* 80296204 00293164 7F 44 D3 78 */ mr r4, r26
/* 80296208 00293168 38 BE 00 30 */ addi r5, r30, 0x30
/* 8029620C 0029316C 38 DE 00 B8 */ addi r6, r30, 0xb8
/* 80296210 00293170 38 E0 00 00 */ li r7, 0
/* 80296214 00293174 39 00 00 00 */ li r8, 0
/* 80296218 00293178 48 02 12 55 */ bl "DrawOverlappingWorldModelShadows__13CCubeRendererFiRQ24rstl10vector<Ui>RC6CAABoxii"
/* 8029621C 0029317C 38 60 00 02 */ li r3, 2
/* 80296220 00293180 38 80 00 00 */ li r4, 0
/* 80296224 00293184 38 A0 00 00 */ li r5, 0
/* 80296228 00293188 38 C0 00 01 */ li r6, 1
/* 8029622C 0029318C 38 E0 00 00 */ li r7, 0
/* 80296230 00293190 39 00 00 00 */ li r8, 0
/* 80296234 00293194 39 20 00 02 */ li r9, 2
/* 80296238 00293198 48 0E 39 3D */ bl GXSetChanCtrl
/* 8029623C 0029319C 38 60 00 00 */ li r3, 0
/* 80296240 002931A0 48 0E 38 F1 */ bl GXSetNumChans
lbl_80296244:
/* 80296244 002931A4 E3 E1 02 C8 */ psq_l f31, 712(r1), 0, qr0
/* 80296248 002931A8 CB E1 02 C0 */ lfd f31, 0x2c0(r1)
/* 8029624C 002931AC BB 21 02 A4 */ lmw r25, 0x2a4(r1)
/* 80296250 002931B0 80 01 02 D4 */ lwz r0, 0x2d4(r1)
/* 80296254 002931B4 7C 08 03 A6 */ mtlr r0
/* 80296258 002931B8 38 21 02 D0 */ addi r1, r1, 0x2d0
/* 8029625C 002931BC 4E 80 00 20 */ blr
.global RenderIdBuffer__16CMorphBallShadowFRC6CAABoxR13CStateManagerR7CPlayer
RenderIdBuffer__16CMorphBallShadowFRC6CAABoxR13CStateManagerR7CPlayer:
/* 80296260 002931C0 94 21 F5 80 */ stwu r1, -0xa80(r1)
/* 80296264 002931C4 7C 08 02 A6 */ mflr r0
/* 80296268 002931C8 90 01 0A 84 */ stw r0, 0xa84(r1)
/* 8029626C 002931CC DB E1 0A 70 */ stfd f31, 0xa70(r1)
/* 80296270 002931D0 F3 E1 0A 78 */ psq_st f31, -1416(r1), 0, qr0
/* 80296274 002931D4 DB C1 0A 60 */ stfd f30, 0xa60(r1)
/* 80296278 002931D8 F3 C1 0A 68 */ psq_st f30, -1432(r1), 0, qr0
/* 8029627C 002931DC DB A1 0A 50 */ stfd f29, 0xa50(r1)
/* 80296280 002931E0 F3 A1 0A 58 */ psq_st f29, -1448(r1), 0, qr0
/* 80296284 002931E4 DB 81 0A 40 */ stfd f28, 0xa40(r1)
/* 80296288 002931E8 F3 81 0A 48 */ psq_st f28, -1464(r1), 0, qr0
/* 8029628C 002931EC DB 61 0A 30 */ stfd f27, 0xa30(r1)
/* 80296290 002931F0 F3 61 0A 38 */ psq_st f27, -1480(r1), 0, qr0
/* 80296294 002931F4 DB 41 0A 20 */ stfd f26, 0xa20(r1)
/* 80296298 002931F8 F3 41 0A 28 */ psq_st f26, -1496(r1), 0, qr0
/* 8029629C 002931FC DB 21 0A 10 */ stfd f25, 0xa10(r1)
/* 802962A0 00293200 F3 21 0A 18 */ psq_st f25, -1512(r1), 0, qr0
/* 802962A4 00293204 BE 81 09 E0 */ stmw r20, 0x9e0(r1)
/* 802962A8 00293208 7C 9E 23 78 */ mr r30, r4
/* 802962AC 0029320C 7C 7F 1B 78 */ mr r31, r3
/* 802962B0 00293210 80 64 00 00 */ lwz r3, 0(r4)
/* 802962B4 00293214 7C BD 2B 78 */ mr r29, r5
/* 802962B8 00293218 80 04 00 04 */ lwz r0, 4(r4)
/* 802962BC 0029321C 7C DC 33 78 */ mr r28, r6
/* 802962C0 00293220 90 7F 00 B8 */ stw r3, 0xb8(r31)
/* 802962C4 00293224 90 1F 00 BC */ stw r0, 0xbc(r31)
/* 802962C8 00293228 80 04 00 08 */ lwz r0, 8(r4)
/* 802962CC 0029322C 90 1F 00 C0 */ stw r0, 0xc0(r31)
/* 802962D0 00293230 80 64 00 0C */ lwz r3, 0xc(r4)
/* 802962D4 00293234 80 04 00 10 */ lwz r0, 0x10(r4)
/* 802962D8 00293238 90 7F 00 C4 */ stw r3, 0xc4(r31)
/* 802962DC 0029323C 90 1F 00 C8 */ stw r0, 0xc8(r31)
/* 802962E0 00293240 80 04 00 14 */ lwz r0, 0x14(r4)
/* 802962E4 00293244 90 1F 00 CC */ stw r0, 0xcc(r31)
/* 802962E8 00293248 82 9F 00 08 */ lwz r20, 8(r31)
/* 802962EC 0029324C 80 9F 00 04 */ lwz r4, 4(r31)
/* 802962F0 00293250 48 00 00 10 */ b lbl_80296300
lbl_802962F4:
/* 802962F4 00293254 7F E3 FB 78 */ mr r3, r31
/* 802962F8 00293258 48 00 09 45 */ bl sub_80296c3c
/* 802962FC 0029325C 7C 64 1B 78 */ mr r4, r3
lbl_80296300:
/* 80296300 00293260 7C 04 A0 40 */ cmplw r4, r20
/* 80296304 00293264 40 82 FF F0 */ bne lbl_802962F4
/* 80296308 00293268 82 9F 00 20 */ lwz r20, 0x20(r31)
/* 8029630C 0029326C 80 9F 00 1C */ lwz r4, 0x1c(r31)
/* 80296310 00293270 48 00 00 10 */ b lbl_80296320
lbl_80296314:
/* 80296314 00293274 38 7F 00 18 */ addi r3, r31, 0x18
/* 80296318 00293278 48 00 0A 19 */ bl sub_80296d30
/* 8029631C 0029327C 7C 64 1B 78 */ mr r4, r3
lbl_80296320:
/* 80296320 00293280 7C 04 A0 40 */ cmplw r4, r20
/* 80296324 00293284 40 82 FF F0 */ bne lbl_80296314
/* 80296328 00293288 38 00 00 00 */ li r0, 0
/* 8029632C 0029328C 38 7F 00 30 */ addi r3, r31, 0x30
/* 80296330 00293290 90 01 00 70 */ stw r0, 0x70(r1)
/* 80296334 00293294 38 81 00 6C */ addi r4, r1, 0x6c
/* 80296338 00293298 90 01 00 74 */ stw r0, 0x74(r1)
/* 8029633C 0029329C 90 01 00 78 */ stw r0, 0x78(r1)
/* 80296340 002932A0 4B DC D3 BD */ bl "clear__Q24rstl37vector<Ui,Q24rstl17rmemory_allocator>Fv"
/* 80296344 002932A4 80 01 00 70 */ lwz r0, 0x70(r1)
/* 80296348 002932A8 80 61 00 78 */ lwz r3, 0x78(r1)
/* 8029634C 002932AC 54 00 10 3A */ slwi r0, r0, 2
/* 80296350 002932B0 7C 03 02 14 */ add r0, r3, r0
/* 80296354 002932B4 90 61 00 10 */ stw r3, 0x10(r1)
/* 80296358 002932B8 7C 64 1B 78 */ mr r4, r3
/* 8029635C 002932BC 90 01 00 18 */ stw r0, 0x18(r1)
/* 80296360 002932C0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80296364 002932C4 90 61 00 0C */ stw r3, 0xc(r1)
/* 80296368 002932C8 48 00 00 08 */ b lbl_80296370
lbl_8029636C:
/* 8029636C 002932CC 38 84 00 04 */ addi r4, r4, 4
lbl_80296370:
/* 80296370 002932D0 7C 04 00 40 */ cmplw r4, r0
/* 80296374 002932D4 40 82 FF F8 */ bne lbl_8029636C
/* 80296378 002932D8 28 03 00 00 */ cmplwi r3, 0
/* 8029637C 002932DC 41 82 00 08 */ beq lbl_80296384
/* 80296380 002932E0 48 07 F5 B1 */ bl Free__7CMemoryFPCv
lbl_80296384:
/* 80296384 002932E4 83 6D A0 68 */ lwz r27, gpRender@sda21(r13)
/* 80296388 002932E8 38 60 00 01 */ li r3, 1
/* 8029638C 002932EC 88 1B 03 18 */ lbz r0, 0x318(r27)
/* 80296390 002932F0 50 60 2E B4 */ rlwimi r0, r3, 5, 0x1a, 0x1a
/* 80296394 002932F4 98 1B 03 18 */ stb r0, 0x318(r27)
/* 80296398 002932F8 88 1B 03 18 */ lbz r0, 0x318(r27)
/* 8029639C 002932FC 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 802963A0 00293300 40 82 00 10 */ bne lbl_802963B0
/* 802963A4 00293304 38 00 00 00 */ li r0, 0
/* 802963A8 00293308 98 1F 00 D0 */ stb r0, 0xd0(r31)
/* 802963AC 0029330C 48 00 06 6C */ b lbl_80296A18
lbl_802963B0:
/* 802963B0 00293310 7F E3 FB 78 */ mr r3, r31
/* 802963B4 00293314 7F A4 EB 78 */ mr r4, r29
/* 802963B8 00293318 4B FF F8 05 */ bl GatherAreas__16CMorphBallShadowFR13CStateManager
/* 802963BC 0029331C 3C 80 80 5A */ lis r4, lbl_805A61D4@ha
/* 802963C0 00293320 38 61 01 A0 */ addi r3, r1, 0x1a0
/* 802963C4 00293324 38 84 61 D4 */ addi r4, r4, lbl_805A61D4@l
/* 802963C8 00293328 48 07 C7 AD */ bl __ct__12CTransform4fFRC12CTransform4f
/* 802963CC 0029332C C3 ED A7 E0 */ lfs f31, lbl_805A93A0@sda21(r13)
/* 802963D0 00293330 C3 CD 9C 78 */ lfs f30, lbl_805A8838@sda21(r13)
/* 802963D4 00293334 48 07 3A 89 */ bl GetProjectionState__9CGraphicsFv
/* 802963D8 00293338 88 03 00 00 */ lbz r0, 0(r3)
/* 802963DC 0029333C 3C 80 80 3F */ lis r4, lbl_803ED910@ha
/* 802963E0 00293340 3A C4 D9 10 */ addi r22, r4, lbl_803ED910@l
/* 802963E4 00293344 3C A0 80 5A */ lis r5, lbl_805A6700@ha
/* 802963E8 00293348 98 01 00 94 */ stb r0, 0x94(r1)
/* 802963EC 0029334C 3C 80 80 5A */ lis r4, lbl_805A6718@ha
/* 802963F0 00293350 81 96 00 00 */ lwz r12, 0(r22)
/* 802963F4 00293354 3C C0 80 5A */ lis r6, lbl_805A6724@ha
/* 802963F8 00293358 C0 03 00 04 */ lfs f0, 4(r3)
/* 802963FC 0029335C 38 84 67 18 */ addi r4, r4, lbl_805A6718@l
/* 80296400 00293360 81 76 00 04 */ lwz r11, 4(r22)
/* 80296404 00293364 38 A5 67 00 */ addi r5, r5, lbl_805A6700@l
/* 80296408 00293368 D0 01 00 98 */ stfs f0, 0x98(r1)
/* 8029640C 0029336C 38 C6 67 24 */ addi r6, r6, lbl_805A6724@l
/* 80296410 00293370 81 56 00 08 */ lwz r10, 8(r22)
/* 80296414 00293374 38 E1 00 60 */ addi r7, r1, 0x60
/* 80296418 00293378 C0 03 00 08 */ lfs f0, 8(r3)
/* 8029641C 0029337C 81 36 00 0C */ lwz r9, 0xc(r22)
/* 80296420 00293380 D0 01 00 9C */ stfs f0, 0x9c(r1)
/* 80296424 00293384 81 16 00 10 */ lwz r8, 0x10(r22)
/* 80296428 00293388 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 8029642C 0029338C 80 16 00 14 */ lwz r0, 0x14(r22)
/* 80296430 00293390 D0 01 00 A0 */ stfs f0, 0xa0(r1)
/* 80296434 00293394 C0 5E 00 04 */ lfs f2, 4(r30)
/* 80296438 00293398 C0 23 00 10 */ lfs f1, 0x10(r3)
/* 8029643C 0029339C C0 1E 00 10 */ lfs f0, 0x10(r30)
/* 80296440 002933A0 D0 21 00 A4 */ stfs f1, 0xa4(r1)
/* 80296444 002933A4 EC 42 00 2A */ fadds f2, f2, f0
/* 80296448 002933A8 C0 3E 00 00 */ lfs f1, 0(r30)
/* 8029644C 002933AC C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 80296450 002933B0 C0 83 00 14 */ lfs f4, 0x14(r3)
/* 80296454 002933B4 C0 62 BF A4 */ lfs f3, lbl_805ADCC4@sda21(r2)
/* 80296458 002933B8 EC 01 00 2A */ fadds f0, f1, f0
/* 8029645C 002933BC D0 81 00 A8 */ stfs f4, 0xa8(r1)
/* 80296460 002933C0 EC 43 00 B2 */ fmuls f2, f3, f2
/* 80296464 002933C4 C0 9E 00 14 */ lfs f4, 0x14(r30)
/* 80296468 002933C8 C0 23 00 18 */ lfs f1, 0x18(r3)
/* 8029646C 002933CC EC 03 00 32 */ fmuls f0, f3, f0
/* 80296470 002933D0 91 81 00 7C */ stw r12, 0x7c(r1)
/* 80296474 002933D4 38 61 01 10 */ addi r3, r1, 0x110
/* 80296478 002933D8 D0 21 00 AC */ stfs f1, 0xac(r1)
/* 8029647C 002933DC 91 61 00 80 */ stw r11, 0x80(r1)
/* 80296480 002933E0 91 41 00 84 */ stw r10, 0x84(r1)
/* 80296484 002933E4 91 21 00 88 */ stw r9, 0x88(r1)
/* 80296488 002933E8 91 01 00 8C */ stw r8, 0x8c(r1)
/* 8029648C 002933EC 90 01 00 90 */ stw r0, 0x90(r1)
/* 80296490 002933F0 D0 01 00 60 */ stfs f0, 0x60(r1)
/* 80296494 002933F4 D0 41 00 64 */ stfs f2, 0x64(r1)
/* 80296498 002933F8 D0 81 00 68 */ stfs f4, 0x68(r1)
/* 8029649C 002933FC 48 07 C9 C1 */ bl __ct__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3f_0
/* 802964A0 00293400 38 61 01 70 */ addi r3, r1, 0x170
/* 802964A4 00293404 38 81 01 10 */ addi r4, r1, 0x110
/* 802964A8 00293408 48 07 C6 CD */ bl __ct__12CTransform4fFRC12CTransform4f
/* 802964AC 0029340C 3C 60 80 5A */ lis r3, skIdentity4f@ha
/* 802964B0 00293410 38 63 66 70 */ addi r3, r3, skIdentity4f@l
/* 802964B4 00293414 48 07 61 2D */ bl SetModelMatrix__9CGraphicsFRC12CTransform4f
/* 802964B8 00293418 C0 22 BF 9C */ lfs f1, lbl_805ADCBC@sda21(r2)
/* 802964BC 0029341C C0 42 BF A0 */ lfs f2, lbl_805ADCC0@sda21(r2)
/* 802964C0 00293420 48 07 3F 21 */ bl SetDepthRange__9CGraphicsFff
/* 802964C4 00293424 C0 7E 00 0C */ lfs f3, 0xc(r30)
/* 802964C8 00293428 C0 5E 00 00 */ lfs f2, 0(r30)
/* 802964CC 0029342C C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 802964D0 00293430 C0 1E 00 04 */ lfs f0, 4(r30)
/* 802964D4 00293434 EC 83 10 28 */ fsubs f4, f3, f2
/* 802964D8 00293438 C0 A2 BF A4 */ lfs f5, lbl_805ADCC4@sda21(r2)
/* 802964DC 0029343C EC 61 00 28 */ fsubs f3, f1, f0
/* 802964E0 00293440 C0 5E 00 14 */ lfs f2, 0x14(r30)
/* 802964E4 00293444 EF 45 01 32 */ fmuls f26, f5, f4
/* 802964E8 00293448 C0 3E 00 08 */ lfs f1, 8(r30)
/* 802964EC 0029344C C0 02 BF A8 */ lfs f0, lbl_805ADCC8@sda21(r2)
/* 802964F0 00293450 EF 25 00 F2 */ fmuls f25, f5, f3
/* 802964F4 00293454 EF A2 08 28 */ fsubs f29, f2, f1
/* 802964F8 00293458 C0 A2 BF 9C */ lfs f5, lbl_805ADCBC@sda21(r2)
/* 802964FC 0029345C FF 80 D0 50 */ fneg f28, f26
/* 80296500 00293460 FF 60 C8 50 */ fneg f27, f25
/* 80296504 00293464 FC 40 D0 90 */ fmr f2, f26
/* 80296508 00293468 FC 20 E0 90 */ fmr f1, f28
/* 8029650C 0029346C FC 60 C8 90 */ fmr f3, f25
/* 80296510 00293470 FC 80 D8 90 */ fmr f4, f27
/* 80296514 00293474 EC C0 E8 2A */ fadds f6, f0, f29
/* 80296518 00293478 48 07 60 3D */ bl SetOrtho__9CGraphicsFffffff
/* 8029651C 0029347C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80296520 00293480 3C 80 80 5A */ lis r4, lbl_805A6500@ha
/* 80296524 00293484 38 A4 65 00 */ addi r5, r4, lbl_805A6500@l
/* 80296528 00293488 80 FF 00 B4 */ lwz r7, 0xb4(r31)
/* 8029652C 0029348C 81 83 00 00 */ lwz r12, 0(r3)
/* 80296530 00293490 38 80 00 00 */ li r4, 0
/* 80296534 00293494 A0 05 00 06 */ lhz r0, 6(r5)
/* 80296538 00293498 81 8C 00 5C */ lwz r12, 0x5c(r12)
/* 8029653C 0029349C 7C A7 00 50 */ subf r5, r7, r0
/* 80296540 002934A0 80 DF 00 B0 */ lwz r6, 0xb0(r31)
/* 80296544 002934A4 7D 89 03 A6 */ mtctr r12
/* 80296548 002934A8 4E 80 04 21 */ bctrl
/* 8029654C 002934AC 38 00 00 00 */ li r0, 0
/* 80296550 002934B0 3C 60 80 5A */ lis r3, lbl_8059FD18@ha
/* 80296554 002934B4 90 01 01 D0 */ stw r0, 0x1d0(r1)
/* 80296558 002934B8 38 C3 FD 18 */ addi r6, r3, lbl_8059FD18@l
/* 8029655C 002934BC 7F A3 EB 78 */ mr r3, r29
/* 80296560 002934C0 7F C5 F3 78 */ mr r5, r30
/* 80296564 002934C4 7F 87 E3 78 */ mr r7, r28
/* 80296568 002934C8 38 81 01 D0 */ addi r4, r1, 0x1d0
/* 8029656C 002934CC 4B DB 61 B5 */ bl "BuildNearList__13CStateManagerCFRQ24rstl32reserved_vector<9TUniqueId,1024>RC6CAABoxRC15CMaterialFilterPC6CActor"
/* 80296570 002934D0 38 60 00 01 */ li r3, 1
/* 80296574 002934D4 48 0E 59 B9 */ bl GXSetAlphaUpdate
/* 80296578 002934D8 38 60 00 01 */ li r3, 1
/* 8029657C 002934DC 38 80 00 00 */ li r4, 0
/* 80296580 002934E0 48 0E 5B 61 */ bl GXSetDstAlpha
/* 80296584 002934E4 38 60 00 00 */ li r3, 0
/* 80296588 002934E8 48 0E 59 79 */ bl GXSetColorUpdate
/* 8029658C 002934EC 38 60 00 01 */ li r3, 1
/* 80296590 002934F0 38 80 00 07 */ li r4, 7
/* 80296594 002934F4 38 A0 00 01 */ li r5, 1
/* 80296598 002934F8 48 07 22 E5 */ bl SetZMode__3CGXFb10_GXCompareb
/* 8029659C 002934FC 38 60 00 00 */ li r3, 0
/* 802965A0 00293500 48 07 54 D1 */ bl SetCullMode__9CGraphicsF12ERglCullMode
/* 802965A4 00293504 3C 60 80 5A */ lis r3, skIdentity4f@ha
/* 802965A8 00293508 38 63 66 70 */ addi r3, r3, skIdentity4f@l
/* 802965AC 0029350C 48 07 61 A1 */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 802965B0 00293510 38 60 00 07 */ li r3, 7
/* 802965B4 00293514 38 80 00 00 */ li r4, 0
/* 802965B8 00293518 38 A0 00 00 */ li r5, 0
/* 802965BC 0029351C 38 C0 00 07 */ li r6, 7
/* 802965C0 00293520 38 E0 00 00 */ li r7, 0
/* 802965C4 00293524 48 07 54 65 */ bl SetAlphaCompare__9CGraphicsF13ERglAlphaFuncUc11ERglAlphaOp13ERglAlphaFuncUc
/* 802965C8 00293528 38 60 00 01 */ li r3, 1
/* 802965CC 0029352C 38 80 00 01 */ li r4, 1
/* 802965D0 00293530 38 A0 00 00 */ li r5, 0
/* 802965D4 00293534 38 C0 00 00 */ li r6, 0
/* 802965D8 00293538 48 07 54 79 */ bl SetBlendMode__9CGraphicsF13ERglBlendMode15ERglBlendFactor15ERglBlendFactor11ERglLogicOp
/* 802965DC 0029353C 80 8D 9C 68 */ lwz r4, lbl_805A8828@sda21(r13)
/* 802965E0 00293540 38 60 00 00 */ li r3, 0
/* 802965E4 00293544 48 07 3C D5 */ bl SetTevOp__9CGraphicsF12ERglTevStageRCQ213CTevCombiners8CTevPass
/* 802965E8 00293548 80 8D 9C 68 */ lwz r4, lbl_805A8828@sda21(r13)
/* 802965EC 0029354C 38 60 00 01 */ li r3, 1
/* 802965F0 00293550 48 07 3C C9 */ bl SetTevOp__9CGraphicsF12ERglTevStageRCQ213CTevCombiners8CTevPass
/* 802965F4 00293554 38 60 00 00 */ li r3, 0
/* 802965F8 00293558 48 07 28 59 */ bl SetNumChans__3CGXFUc
/* 802965FC 0029355C 38 60 00 01 */ li r3, 1
/* 80296600 00293560 48 07 28 15 */ bl SetNumTexGens__3CGXFUc
/* 80296604 00293564 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80296608 00293568 38 80 00 04 */ li r4, 4
/* 8029660C 0029356C 81 83 00 00 */ lwz r12, 0(r3)
/* 80296610 00293570 81 8C 00 A4 */ lwz r12, 0xa4(r12)
/* 80296614 00293574 7D 89 03 A6 */ mtctr r12
/* 80296618 00293578 4E 80 04 21 */ bctrl
/* 8029661C 0029357C 48 0B 39 81 */ bl Red__6CColorFv
/* 80296620 00293580 7C 64 1B 78 */ mr r4, r3
/* 80296624 00293584 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80296628 00293588 81 83 00 00 */ lwz r12, 0(r3)
/* 8029662C 0029358C 81 8C 00 B4 */ lwz r12, 0xb4(r12)
/* 80296630 00293590 7D 89 03 A6 */ mtctr r12
/* 80296634 00293594 4E 80 04 21 */ bctrl
/* 80296638 00293598 C0 02 BF AC */ lfs f0, lbl_805ADCCC@sda21(r2)
/* 8029663C 0029359C 38 81 00 54 */ addi r4, r1, 0x54
/* 80296640 002935A0 D3 81 00 54 */ stfs f28, 0x54(r1)
/* 80296644 002935A4 EF A0 07 72 */ fmuls f29, f0, f29
/* 80296648 002935A8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 8029664C 002935AC D3 61 00 5C */ stfs f27, 0x5c(r1)
/* 80296650 002935B0 D3 A1 00 58 */ stfs f29, 0x58(r1)
/* 80296654 002935B4 81 83 00 00 */ lwz r12, 0(r3)
/* 80296658 002935B8 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 8029665C 002935BC 7D 89 03 A6 */ mtctr r12
/* 80296660 002935C0 4E 80 04 21 */ bctrl
/* 80296664 002935C4 D3 81 00 48 */ stfs f28, 0x48(r1)
/* 80296668 002935C8 38 81 00 48 */ addi r4, r1, 0x48
/* 8029666C 002935CC 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80296670 002935D0 D3 A1 00 4C */ stfs f29, 0x4c(r1)
/* 80296674 002935D4 D3 21 00 50 */ stfs f25, 0x50(r1)
/* 80296678 002935D8 81 83 00 00 */ lwz r12, 0(r3)
/* 8029667C 002935DC 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 80296680 002935E0 7D 89 03 A6 */ mtctr r12
/* 80296684 002935E4 4E 80 04 21 */ bctrl
/* 80296688 002935E8 D3 41 00 3C */ stfs f26, 0x3c(r1)
/* 8029668C 002935EC 38 81 00 3C */ addi r4, r1, 0x3c
/* 80296690 002935F0 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80296694 002935F4 D3 A1 00 40 */ stfs f29, 0x40(r1)
/* 80296698 002935F8 D3 21 00 44 */ stfs f25, 0x44(r1)
/* 8029669C 002935FC 81 83 00 00 */ lwz r12, 0(r3)
/* 802966A0 00293600 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 802966A4 00293604 7D 89 03 A6 */ mtctr r12
/* 802966A8 00293608 4E 80 04 21 */ bctrl
/* 802966AC 0029360C D3 41 00 30 */ stfs f26, 0x30(r1)
/* 802966B0 00293610 38 81 00 30 */ addi r4, r1, 0x30
/* 802966B4 00293614 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 802966B8 00293618 D3 A1 00 34 */ stfs f29, 0x34(r1)
/* 802966BC 0029361C D3 61 00 38 */ stfs f27, 0x38(r1)
/* 802966C0 00293620 81 83 00 00 */ lwz r12, 0(r3)
/* 802966C4 00293624 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 802966C8 00293628 7D 89 03 A6 */ mtctr r12
/* 802966CC 0029362C 4E 80 04 21 */ bctrl
/* 802966D0 00293630 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 802966D4 00293634 81 83 00 00 */ lwz r12, 0(r3)
/* 802966D8 00293638 81 8C 00 B8 */ lwz r12, 0xb8(r12)
/* 802966DC 0029363C 7D 89 03 A6 */ mtctr r12
/* 802966E0 00293640 4E 80 04 21 */ bctrl
/* 802966E4 00293644 38 60 00 01 */ li r3, 1
/* 802966E8 00293648 48 07 53 89 */ bl SetCullMode__9CGraphicsF12ERglCullMode
/* 802966EC 0029364C 38 61 01 70 */ addi r3, r1, 0x170
/* 802966F0 00293650 48 07 60 5D */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 802966F4 00293654 38 60 00 01 */ li r3, 1
/* 802966F8 00293658 38 80 00 03 */ li r4, 3
/* 802966FC 0029365C 38 A0 00 01 */ li r5, 1
/* 80296700 00293660 48 07 21 7D */ bl SetZMode__3CGXFb10_GXCompareb
/* 80296704 00293664 48 07 62 79 */ bl DisableAllLights__9CGraphicsFv
/* 80296708 00293668 38 60 00 01 */ li r3, 1
/* 8029670C 0029366C 48 0A F0 DD */ bl SetRenderModelBlack__10CCubeModelFb
/* 80296710 00293670 3B 01 01 D4 */ addi r24, r1, 0x1d4
/* 80296714 00293674 3B 21 00 20 */ addi r25, r1, 0x20
/* 80296718 00293678 7F 16 C3 78 */ mr r22, r24
/* 8029671C 0029367C 3A E0 00 01 */ li r23, 1
/* 80296720 00293680 3B 40 00 04 */ li r26, 4
/* 80296724 00293684 48 00 01 48 */ b lbl_8029686C
lbl_80296728:
/* 80296728 00293688 A0 16 00 00 */ lhz r0, 0(r22)
/* 8029672C 0029368C 7F A3 EB 78 */ mr r3, r29
/* 80296730 00293690 38 81 00 08 */ addi r4, r1, 8
/* 80296734 00293694 B0 01 00 08 */ sth r0, 8(r1)
/* 80296738 00293698 4B DB 5E 6D */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8029673C 0029369C 7C 7C 1B 79 */ or. r28, r3, r3
/* 80296740 002936A0 41 82 01 28 */ beq lbl_80296868
/* 80296744 002936A4 4B DB C5 91 */ bl CanDrawStatic__6CActorCFv
/* 80296748 002936A8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8029674C 002936AC 41 82 01 1C */ beq lbl_80296868
/* 80296750 002936B0 82 BF 00 08 */ lwz r21, 8(r31)
/* 80296754 002936B4 3C 60 80 3D */ lis r3, lbl_803D5C30@ha
/* 80296758 002936B8 38 83 5C 30 */ addi r4, r3, lbl_803D5C30@l
/* 8029675C 002936BC 38 A0 00 00 */ li r5, 0
/* 80296760 002936C0 82 95 00 00 */ lwz r20, 0(r21)
/* 80296764 002936C4 38 60 00 0C */ li r3, 0xc
/* 80296768 002936C8 48 07 F0 B1 */ bl __nwa__FUlPCcPCc
/* 8029676C 002936CC 28 03 00 00 */ cmplwi r3, 0
/* 80296770 002936D0 41 82 00 0C */ beq lbl_8029677C
/* 80296774 002936D4 92 83 00 00 */ stw r20, 0(r3)
/* 80296778 002936D8 92 A3 00 04 */ stw r21, 4(r3)
lbl_8029677C:
/* 8029677C 002936DC 34 83 00 08 */ addic. r4, r3, 8
/* 80296780 002936E0 41 82 00 08 */ beq lbl_80296788
/* 80296784 002936E4 93 84 00 00 */ stw r28, 0(r4)
lbl_80296788:
/* 80296788 002936E8 80 1F 00 04 */ lwz r0, 4(r31)
/* 8029678C 002936EC 7C 15 00 40 */ cmplw r21, r0
/* 80296790 002936F0 40 82 00 08 */ bne lbl_80296798
/* 80296794 002936F4 90 7F 00 04 */ stw r3, 4(r31)
lbl_80296798:
/* 80296798 002936F8 80 A3 00 00 */ lwz r5, 0(r3)
/* 8029679C 002936FC 57 44 06 3E */ clrlwi r4, r26, 0x18
/* 802967A0 00293700 90 65 00 04 */ stw r3, 4(r5)
/* 802967A4 00293704 80 A3 00 04 */ lwz r5, 4(r3)
/* 802967A8 00293708 90 65 00 00 */ stw r3, 0(r5)
/* 802967AC 0029370C 38 60 00 01 */ li r3, 1
/* 802967B0 00293710 80 BF 00 14 */ lwz r5, 0x14(r31)
/* 802967B4 00293714 38 05 00 01 */ addi r0, r5, 1
/* 802967B8 00293718 90 1F 00 14 */ stw r0, 0x14(r31)
/* 802967BC 0029371C 48 0E 59 25 */ bl GXSetDstAlpha
/* 802967C0 00293720 82 9C 00 64 */ lwz r20, 0x64(r28)
/* 802967C4 00293724 38 61 00 B0 */ addi r3, r1, 0xb0
/* 802967C8 00293728 38 81 00 24 */ addi r4, r1, 0x24
/* 802967CC 0029372C C0 14 00 00 */ lfs f0, 0(r20)
/* 802967D0 00293730 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 802967D4 00293734 C0 14 00 04 */ lfs f0, 4(r20)
/* 802967D8 00293738 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 802967DC 0029373C C0 14 00 08 */ lfs f0, 8(r20)
/* 802967E0 00293740 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 802967E4 00293744 48 07 C9 E1 */ bl Scale__12CTransform4fFRC9CVector3f
/* 802967E8 00293748 38 61 00 E0 */ addi r3, r1, 0xe0
/* 802967EC 0029374C 38 9C 00 34 */ addi r4, r28, 0x34
/* 802967F0 00293750 38 A1 00 B0 */ addi r5, r1, 0xb0
/* 802967F4 00293754 48 07 C1 5D */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 802967F8 00293758 38 61 01 40 */ addi r3, r1, 0x140
/* 802967FC 0029375C 38 81 00 E0 */ addi r4, r1, 0xe0
/* 80296800 00293760 48 07 C3 75 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80296804 00293764 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80296808 00293768 38 81 01 40 */ addi r4, r1, 0x140
/* 8029680C 0029376C 81 83 00 00 */ lwz r12, 0(r3)
/* 80296810 00293770 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 80296814 00293774 7D 89 03 A6 */ mtctr r12
/* 80296818 00293778 4E 80 04 21 */ bctrl
/* 8029681C 0029377C C0 22 BF A0 */ lfs f1, lbl_805ADCC0@sda21(r2)
/* 80296820 00293780 38 80 00 00 */ li r4, 0
/* 80296824 00293784 38 00 00 03 */ li r0, 3
/* 80296828 00293788 98 81 00 1C */ stb r4, 0x1c(r1)
/* 8029682C 0029378C FC 40 08 90 */ fmr f2, f1
/* 80296830 00293790 7F 23 CB 78 */ mr r3, r25
/* 80296834 00293794 FC 60 08 90 */ fmr f3, f1
/* 80296838 00293798 98 81 00 1D */ stb r4, 0x1d(r1)
/* 8029683C 0029379C FC 80 08 90 */ fmr f4, f1
/* 80296840 002937A0 B0 01 00 1E */ sth r0, 0x1e(r1)
/* 80296844 002937A4 48 0C CB A9 */ bl __ct__6CColorFffff
/* 80296848 002937A8 7E 83 A3 78 */ mr r3, r20
/* 8029684C 002937AC 38 80 00 00 */ li r4, 0
/* 80296850 002937B0 4B E7 E7 5D */ bl PickStaticModel__10CModelDataCFQ210CModelData11EWhichModel
/* 80296854 002937B4 80 63 00 08 */ lwz r3, 8(r3)
/* 80296858 002937B8 38 81 00 1C */ addi r4, r1, 0x1c
/* 8029685C 002937BC 48 0B F2 FD */ bl DrawUnsortedParts__6CModelCFRC11CModelFlags
/* 80296860 002937C0 3B 5A 00 04 */ addi r26, r26, 4
/* 80296864 002937C4 3A F7 00 01 */ addi r23, r23, 1
lbl_80296868:
/* 80296868 002937C8 3A D6 00 02 */ addi r22, r22, 2
lbl_8029686C:
/* 8029686C 002937CC 80 01 01 D0 */ lwz r0, 0x1d0(r1)
/* 80296870 002937D0 54 00 08 3C */ slwi r0, r0, 1
/* 80296874 002937D4 7C 18 02 14 */ add r0, r24, r0
/* 80296878 002937D8 7C 16 00 40 */ cmplw r22, r0
/* 8029687C 002937DC 41 82 00 0C */ beq lbl_80296888
/* 80296880 002937E0 2C 17 00 40 */ cmpwi r23, 0x40
/* 80296884 002937E4 41 80 FE A4 */ blt lbl_80296728
lbl_80296888:
/* 80296888 002937E8 3C 60 80 5A */ lis r3, skIdentity4f@ha
/* 8029688C 002937EC 38 63 66 70 */ addi r3, r3, skIdentity4f@l
/* 80296890 002937F0 48 07 5D 51 */ bl SetModelMatrix__9CGraphicsFRC12CTransform4f
/* 80296894 002937F4 7F 63 DB 78 */ mr r3, r27
/* 80296898 002937F8 7F C5 F3 78 */ mr r5, r30
/* 8029689C 002937FC 38 9F 00 30 */ addi r4, r31, 0x30
/* 802968A0 00293800 48 02 0F 45 */ bl "FindOverlappingWorldModels__13CCubeRendererFRQ24rstl10vector<Ui>RC6CAABox"
/* 802968A4 00293804 7F 63 DB 78 */ mr r3, r27
/* 802968A8 00293808 7E E4 BB 78 */ mr r4, r23
/* 802968AC 0029380C 7F C6 F3 78 */ mr r6, r30
/* 802968B0 00293810 38 BF 00 30 */ addi r5, r31, 0x30
/* 802968B4 00293814 38 E0 00 00 */ li r7, 0
/* 802968B8 00293818 39 00 00 00 */ li r8, 0
/* 802968BC 0029381C 48 02 0D 55 */ bl "DrawOverlappingWorldModelIDs__13CCubeRendererFiRQ24rstl10vector<Ui>RC6CAABoxii"
/* 802968C0 00293820 7C 76 1B 78 */ mr r22, r3
/* 802968C4 00293824 38 60 00 00 */ li r3, 0
/* 802968C8 00293828 48 0A EF 21 */ bl SetRenderModelBlack__10CCubeModelFb
/* 802968CC 0029382C 20 76 00 01 */ subfic r3, r22, 1
/* 802968D0 00293830 38 16 FF FF */ addi r0, r22, -1
/* 802968D4 00293834 7C 60 03 78 */ or r0, r3, r0
/* 802968D8 00293838 38 60 00 01 */ li r3, 1
/* 802968DC 0029383C 54 00 0F FE */ srwi r0, r0, 0x1f
/* 802968E0 00293840 98 1F 00 D0 */ stb r0, 0xd0(r31)
/* 802968E4 00293844 48 0E 56 1D */ bl GXSetColorUpdate
/* 802968E8 00293848 38 60 00 01 */ li r3, 1
/* 802968EC 0029384C 38 80 00 00 */ li r4, 0
/* 802968F0 00293850 48 0E 57 F1 */ bl GXSetDstAlpha
/* 802968F4 00293854 48 07 2F 11 */ bl GetUseVideoFilter__9CGraphicsFv
/* 802968F8 00293858 7C 76 1B 78 */ mr r22, r3
/* 802968FC 0029385C 38 60 00 00 */ li r3, 0
/* 80296900 00293860 48 07 2F 0D */ bl SetUseVideoFilter__9CGraphicsFb
/* 80296904 00293864 80 BF 00 B0 */ lwz r5, 0xb0(r31)
/* 80296908 00293868 38 60 00 00 */ li r3, 0
/* 8029690C 0029386C 80 1F 00 B4 */ lwz r0, 0xb4(r31)
/* 80296910 00293870 38 80 00 00 */ li r4, 0
/* 80296914 00293874 54 A5 04 3E */ clrlwi r5, r5, 0x10
/* 80296918 00293878 54 06 04 3E */ clrlwi r6, r0, 0x10
/* 8029691C 0029387C 48 0E 24 99 */ bl GXSetTexCopySrc
/* 80296920 00293880 80 7F 00 B0 */ lwz r3, 0xb0(r31)
/* 80296924 00293884 38 A0 00 27 */ li r5, 0x27
/* 80296928 00293888 80 1F 00 B4 */ lwz r0, 0xb4(r31)
/* 8029692C 0029388C 38 C0 00 00 */ li r6, 0
/* 80296930 00293890 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 80296934 00293894 54 04 04 3E */ clrlwi r4, r0, 0x10
/* 80296938 00293898 48 0E 25 49 */ bl GXSetTexCopyDst
/* 8029693C 0029389C 88 1F 00 4A */ lbz r0, 0x4a(r31)
/* 80296940 002938A0 38 60 00 01 */ li r3, 1
/* 80296944 002938A4 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 80296948 002938A8 38 7F 00 40 */ addi r3, r31, 0x40
/* 8029694C 002938AC 98 1F 00 4A */ stb r0, 0x4a(r31)
/* 80296950 002938B0 38 80 00 00 */ li r4, 0
/* 80296954 002938B4 48 07 7C 81 */ bl GetBitMapData__8CTextureFi
/* 80296958 002938B8 38 80 00 01 */ li r4, 1
/* 8029695C 002938BC 48 0E 2B D9 */ bl GXCopyTex
/* 80296960 002938C0 38 7F 00 40 */ addi r3, r31, 0x40
/* 80296964 002938C4 48 07 7F B9 */ bl UnLock__8CTextureFv
/* 80296968 002938C8 48 0E 1B FD */ bl GXPixModeSync
/* 8029696C 002938CC 56 C3 06 3E */ clrlwi r3, r22, 0x18
/* 80296970 002938D0 48 07 2E 9D */ bl SetUseVideoFilter__9CGraphicsFb
/* 80296974 002938D4 38 60 00 01 */ li r3, 1
/* 80296978 002938D8 38 80 00 03 */ li r4, 3
/* 8029697C 002938DC 38 A0 00 01 */ li r5, 1
/* 80296980 002938E0 48 07 1E FD */ bl SetZMode__3CGXFb10_GXCompareb
/* 80296984 002938E4 38 61 01 A0 */ addi r3, r1, 0x1a0
/* 80296988 002938E8 48 07 5D C5 */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 8029698C 002938EC 38 61 00 94 */ addi r3, r1, 0x94
/* 80296990 002938F0 48 07 34 71 */ bl SetProjectionState__9CGraphicsFRCQ29CGraphics16CProjectionState
/* 80296994 002938F4 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80296998 002938F8 80 81 00 7C */ lwz r4, 0x7c(r1)
/* 8029699C 002938FC 81 83 00 00 */ lwz r12, 0(r3)
/* 802969A0 00293900 80 A1 00 80 */ lwz r5, 0x80(r1)
/* 802969A4 00293904 81 8C 00 5C */ lwz r12, 0x5c(r12)
/* 802969A8 00293908 80 C1 00 84 */ lwz r6, 0x84(r1)
/* 802969AC 0029390C 80 E1 00 88 */ lwz r7, 0x88(r1)
/* 802969B0 00293910 7D 89 03 A6 */ mtctr r12
/* 802969B4 00293914 4E 80 04 21 */ bctrl
/* 802969B8 00293918 FC 20 F8 90 */ fmr f1, f31
/* 802969BC 0029391C FC 40 F0 90 */ fmr f2, f30
/* 802969C0 00293920 48 07 3A 21 */ bl SetDepthRange__9CGraphicsFff
/* 802969C4 00293924 80 A1 01 D0 */ lwz r5, 0x1d0(r1)
/* 802969C8 00293928 38 60 00 00 */ li r3, 0
/* 802969CC 0029392C 2C 05 00 00 */ cmpwi r5, 0
/* 802969D0 00293930 40 81 00 40 */ ble lbl_80296A10
/* 802969D4 00293934 2C 05 00 08 */ cmpwi r5, 8
/* 802969D8 00293938 38 85 FF F8 */ addi r4, r5, -8
/* 802969DC 0029393C 40 81 00 20 */ ble lbl_802969FC
/* 802969E0 00293940 38 04 00 07 */ addi r0, r4, 7
/* 802969E4 00293944 54 00 E8 FE */ srwi r0, r0, 3
/* 802969E8 00293948 7C 09 03 A6 */ mtctr r0
/* 802969EC 0029394C 2C 04 00 00 */ cmpwi r4, 0
/* 802969F0 00293950 40 81 00 0C */ ble lbl_802969FC
lbl_802969F4:
/* 802969F4 00293954 38 63 00 08 */ addi r3, r3, 8
/* 802969F8 00293958 42 00 FF FC */ bdnz lbl_802969F4
lbl_802969FC:
/* 802969FC 0029395C 7C 03 28 50 */ subf r0, r3, r5
/* 80296A00 00293960 7C 09 03 A6 */ mtctr r0
/* 80296A04 00293964 7C 03 28 00 */ cmpw r3, r5
/* 80296A08 00293968 40 80 00 08 */ bge lbl_80296A10
lbl_80296A0C:
/* 80296A0C 0029396C 42 00 00 00 */ bdnz lbl_80296A0C
lbl_80296A10:
/* 80296A10 00293970 38 00 00 00 */ li r0, 0
/* 80296A14 00293974 90 01 01 D0 */ stw r0, 0x1d0(r1)
lbl_80296A18:
/* 80296A18 00293978 E3 E1 0A 78 */ psq_l f31, -1416(r1), 0, qr0
/* 80296A1C 0029397C CB E1 0A 70 */ lfd f31, 0xa70(r1)
/* 80296A20 00293980 E3 C1 0A 68 */ psq_l f30, -1432(r1), 0, qr0
/* 80296A24 00293984 CB C1 0A 60 */ lfd f30, 0xa60(r1)
/* 80296A28 00293988 E3 A1 0A 58 */ psq_l f29, -1448(r1), 0, qr0
/* 80296A2C 0029398C CB A1 0A 50 */ lfd f29, 0xa50(r1)
/* 80296A30 00293990 E3 81 0A 48 */ psq_l f28, -1464(r1), 0, qr0
/* 80296A34 00293994 CB 81 0A 40 */ lfd f28, 0xa40(r1)
/* 80296A38 00293998 E3 61 0A 38 */ psq_l f27, -1480(r1), 0, qr0
/* 80296A3C 0029399C CB 61 0A 30 */ lfd f27, 0xa30(r1)
/* 80296A40 002939A0 E3 41 0A 28 */ psq_l f26, -1496(r1), 0, qr0
/* 80296A44 002939A4 CB 41 0A 20 */ lfd f26, 0xa20(r1)
/* 80296A48 002939A8 E3 21 0A 18 */ psq_l f25, -1512(r1), 0, qr0
/* 80296A4C 002939AC CB 21 0A 10 */ lfd f25, 0xa10(r1)
/* 80296A50 002939B0 BA 81 09 E0 */ lmw r20, 0x9e0(r1)
/* 80296A54 002939B4 80 01 0A 84 */ lwz r0, 0xa84(r1)
/* 80296A58 002939B8 7C 08 03 A6 */ mtlr r0
/* 80296A5C 002939BC 38 21 0A 80 */ addi r1, r1, 0xa80
/* 80296A60 002939C0 4E 80 00 20 */ blr
.global __dt__16CMorphBallShadowFv
__dt__16CMorphBallShadowFv:
/* 80296A64 002939C4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80296A68 002939C8 7C 08 02 A6 */ mflr r0
/* 80296A6C 002939CC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80296A70 002939D0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80296A74 002939D4 7C 9F 23 78 */ mr r31, r4
/* 80296A78 002939D8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80296A7C 002939DC 7C 7E 1B 79 */ or. r30, r3, r3
/* 80296A80 002939E0 41 82 00 9C */ beq lbl_80296B1C
/* 80296A84 002939E4 38 7E 00 40 */ addi r3, r30, 0x40
/* 80296A88 002939E8 48 07 76 85 */ bl sub_8030e10c
/* 80296A8C 002939EC 34 1E 00 A8 */ addic. r0, r30, 0xa8
/* 80296A90 002939F0 41 82 00 10 */ beq lbl_80296AA0
/* 80296A94 002939F4 38 7E 00 A8 */ addi r3, r30, 0xa8
/* 80296A98 002939F8 38 80 00 00 */ li r4, 0
/* 80296A9C 002939FC 48 0A A3 A5 */ bl __dt__6CTokenFv
lbl_80296AA0:
/* 80296AA0 00293A00 38 7E 00 40 */ addi r3, r30, 0x40
/* 80296AA4 00293A04 38 80 FF FF */ li r4, -1
/* 80296AA8 00293A08 48 07 8F 51 */ bl __dt__8CTextureFv
/* 80296AAC 00293A0C 34 1E 00 30 */ addic. r0, r30, 0x30
/* 80296AB0 00293A10 41 82 00 44 */ beq lbl_80296AF4
/* 80296AB4 00293A14 80 1E 00 34 */ lwz r0, 0x34(r30)
/* 80296AB8 00293A18 80 7E 00 3C */ lwz r3, 0x3c(r30)
/* 80296ABC 00293A1C 54 00 10 3A */ slwi r0, r0, 2
/* 80296AC0 00293A20 7C 03 02 14 */ add r0, r3, r0
/* 80296AC4 00293A24 90 61 00 0C */ stw r3, 0xc(r1)
/* 80296AC8 00293A28 7C 64 1B 78 */ mr r4, r3
/* 80296ACC 00293A2C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80296AD0 00293A30 90 01 00 10 */ stw r0, 0x10(r1)
/* 80296AD4 00293A34 90 61 00 08 */ stw r3, 8(r1)
/* 80296AD8 00293A38 48 00 00 08 */ b lbl_80296AE0
lbl_80296ADC:
/* 80296ADC 00293A3C 38 84 00 04 */ addi r4, r4, 4
lbl_80296AE0:
/* 80296AE0 00293A40 7C 04 00 40 */ cmplw r4, r0
/* 80296AE4 00293A44 40 82 FF F8 */ bne lbl_80296ADC
/* 80296AE8 00293A48 28 03 00 00 */ cmplwi r3, 0
/* 80296AEC 00293A4C 41 82 00 08 */ beq lbl_80296AF4
/* 80296AF0 00293A50 48 07 EE 41 */ bl Free__7CMemoryFPCv
lbl_80296AF4:
/* 80296AF4 00293A54 38 7E 00 18 */ addi r3, r30, 0x18
/* 80296AF8 00293A58 38 80 FF FF */ li r4, -1
/* 80296AFC 00293A5C 48 00 02 B1 */ bl sub_80296dac
/* 80296B00 00293A60 7F C3 F3 78 */ mr r3, r30
/* 80296B04 00293A64 38 80 FF FF */ li r4, -1
/* 80296B08 00293A68 48 00 01 B1 */ bl sub_80296cb8
/* 80296B0C 00293A6C 7F E0 07 35 */ extsh. r0, r31
/* 80296B10 00293A70 40 81 00 0C */ ble lbl_80296B1C
/* 80296B14 00293A74 7F C3 F3 78 */ mr r3, r30
/* 80296B18 00293A78 48 07 EE 19 */ bl Free__7CMemoryFPCv
lbl_80296B1C:
/* 80296B1C 00293A7C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80296B20 00293A80 7F C3 F3 78 */ mr r3, r30
/* 80296B24 00293A84 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80296B28 00293A88 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80296B2C 00293A8C 7C 08 03 A6 */ mtlr r0
/* 80296B30 00293A90 38 21 00 20 */ addi r1, r1, 0x20
/* 80296B34 00293A94 4E 80 00 20 */ blr
.global "__ct__16CMorphBallShadowFiiRC17TToken<8CTexture>"
"__ct__16CMorphBallShadowFiiRC17TToken<8CTexture>":
/* 80296B38 00293A98 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80296B3C 00293A9C 7C 08 02 A6 */ mflr r0
/* 80296B40 00293AA0 39 00 00 00 */ li r8, 0
/* 80296B44 00293AA4 38 E0 00 01 */ li r7, 1
/* 80296B48 00293AA8 90 01 00 24 */ stw r0, 0x24(r1)
/* 80296B4C 00293AAC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80296B50 00293AB0 7C DF 33 78 */ mr r31, r6
/* 80296B54 00293AB4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80296B58 00293AB8 7C BE 2B 78 */ mr r30, r5
/* 80296B5C 00293ABC 7F C6 07 34 */ extsh r6, r30
/* 80296B60 00293AC0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80296B64 00293AC4 7C 9D 23 78 */ mr r29, r4
/* 80296B68 00293AC8 7F A5 07 34 */ extsh r5, r29
/* 80296B6C 00293ACC 38 80 00 01 */ li r4, 1
/* 80296B70 00293AD0 93 81 00 10 */ stw r28, 0x10(r1)
/* 80296B74 00293AD4 7C 7C 1B 78 */ mr r28, r3
/* 80296B78 00293AD8 39 3C 00 0C */ addi r9, r28, 0xc
/* 80296B7C 00293ADC 91 23 00 04 */ stw r9, 4(r3)
/* 80296B80 00293AE0 38 1C 00 24 */ addi r0, r28, 0x24
/* 80296B84 00293AE4 91 23 00 08 */ stw r9, 8(r3)
/* 80296B88 00293AE8 38 7C 00 40 */ addi r3, r28, 0x40
/* 80296B8C 00293AEC 91 29 00 00 */ stw r9, 0(r9)
/* 80296B90 00293AF0 91 3C 00 10 */ stw r9, 0x10(r28)
/* 80296B94 00293AF4 91 1C 00 14 */ stw r8, 0x14(r28)
/* 80296B98 00293AF8 90 1C 00 1C */ stw r0, 0x1c(r28)
/* 80296B9C 00293AFC 90 1C 00 20 */ stw r0, 0x20(r28)
/* 80296BA0 00293B00 90 1C 00 24 */ stw r0, 0x24(r28)
/* 80296BA4 00293B04 90 1C 00 28 */ stw r0, 0x28(r28)
/* 80296BA8 00293B08 91 1C 00 2C */ stw r8, 0x2c(r28)
/* 80296BAC 00293B0C 91 1C 00 34 */ stw r8, 0x34(r28)
/* 80296BB0 00293B10 91 1C 00 38 */ stw r8, 0x38(r28)
/* 80296BB4 00293B14 91 1C 00 3C */ stw r8, 0x3c(r28)
/* 80296BB8 00293B18 48 07 92 75 */ bl __ct__8CTextureF12ETexelFormatssi
/* 80296BBC 00293B1C 7F E4 FB 78 */ mr r4, r31
/* 80296BC0 00293B20 38 7C 00 A8 */ addi r3, r28, 0xa8
/* 80296BC4 00293B24 48 0A A2 E5 */ bl __ct__6CTokenFRC6CToken
/* 80296BC8 00293B28 93 BC 00 B0 */ stw r29, 0xb0(r28)
/* 80296BCC 00293B2C 3C 60 80 5A */ lis r3, mskInvertedBox__6CAABox@ha
/* 80296BD0 00293B30 38 83 67 54 */ addi r4, r3, mskInvertedBox__6CAABox@l
/* 80296BD4 00293B34 38 00 00 00 */ li r0, 0
/* 80296BD8 00293B38 93 DC 00 B4 */ stw r30, 0xb4(r28)
/* 80296BDC 00293B3C 38 7C 00 A8 */ addi r3, r28, 0xa8
/* 80296BE0 00293B40 C0 04 00 00 */ lfs f0, 0(r4)
/* 80296BE4 00293B44 D0 1C 00 B8 */ stfs f0, 0xb8(r28)
/* 80296BE8 00293B48 C0 04 00 04 */ lfs f0, 4(r4)
/* 80296BEC 00293B4C D0 1C 00 BC */ stfs f0, 0xbc(r28)
/* 80296BF0 00293B50 C0 04 00 08 */ lfs f0, 8(r4)
/* 80296BF4 00293B54 D0 1C 00 C0 */ stfs f0, 0xc0(r28)
/* 80296BF8 00293B58 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 80296BFC 00293B5C D0 1C 00 C4 */ stfs f0, 0xc4(r28)
/* 80296C00 00293B60 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 80296C04 00293B64 D0 1C 00 C8 */ stfs f0, 0xc8(r28)
/* 80296C08 00293B68 C0 04 00 14 */ lfs f0, 0x14(r4)
/* 80296C0C 00293B6C D0 1C 00 CC */ stfs f0, 0xcc(r28)
/* 80296C10 00293B70 98 1C 00 D0 */ stb r0, 0xd0(r28)
/* 80296C14 00293B74 48 0A A1 71 */ bl Lock__6CTokenFv
/* 80296C18 00293B78 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80296C1C 00293B7C 7F 83 E3 78 */ mr r3, r28
/* 80296C20 00293B80 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80296C24 00293B84 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80296C28 00293B88 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80296C2C 00293B8C 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80296C30 00293B90 7C 08 03 A6 */ mtlr r0
/* 80296C34 00293B94 38 21 00 20 */ addi r1, r1, 0x20
/* 80296C38 00293B98 4E 80 00 20 */ blr
.global sub_80296c3c
sub_80296c3c:
/* 80296C3C 00293B9C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80296C40 00293BA0 7C 08 02 A6 */ mflr r0
/* 80296C44 00293BA4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80296C48 00293BA8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80296C4C 00293BAC 93 C1 00 08 */ stw r30, 8(r1)
/* 80296C50 00293BB0 7C 7E 1B 78 */ mr r30, r3
/* 80296C54 00293BB4 80 03 00 04 */ lwz r0, 4(r3)
/* 80296C58 00293BB8 83 E4 00 04 */ lwz r31, 4(r4)
/* 80296C5C 00293BBC 7C 04 00 40 */ cmplw r4, r0
/* 80296C60 00293BC0 40 82 00 08 */ bne lbl_80296C68
/* 80296C64 00293BC4 93 FE 00 04 */ stw r31, 4(r30)
lbl_80296C68:
/* 80296C68 00293BC8 80 04 00 04 */ lwz r0, 4(r4)
/* 80296C6C 00293BCC 28 04 00 00 */ cmplwi r4, 0
/* 80296C70 00293BD0 80 64 00 00 */ lwz r3, 0(r4)
/* 80296C74 00293BD4 90 03 00 04 */ stw r0, 4(r3)
/* 80296C78 00293BD8 80 04 00 00 */ lwz r0, 0(r4)
/* 80296C7C 00293BDC 80 64 00 04 */ lwz r3, 4(r4)
/* 80296C80 00293BE0 90 03 00 00 */ stw r0, 0(r3)
/* 80296C84 00293BE4 41 82 00 0C */ beq lbl_80296C90
/* 80296C88 00293BE8 7C 83 23 78 */ mr r3, r4
/* 80296C8C 00293BEC 48 07 EC A5 */ bl Free__7CMemoryFPCv
lbl_80296C90:
/* 80296C90 00293BF0 80 9E 00 14 */ lwz r4, 0x14(r30)
/* 80296C94 00293BF4 7F E3 FB 78 */ mr r3, r31
/* 80296C98 00293BF8 38 04 FF FF */ addi r0, r4, -1
/* 80296C9C 00293BFC 90 1E 00 14 */ stw r0, 0x14(r30)
/* 80296CA0 00293C00 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80296CA4 00293C04 83 C1 00 08 */ lwz r30, 8(r1)
/* 80296CA8 00293C08 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80296CAC 00293C0C 7C 08 03 A6 */ mtlr r0
/* 80296CB0 00293C10 38 21 00 10 */ addi r1, r1, 0x10
/* 80296CB4 00293C14 4E 80 00 20 */ blr
.global sub_80296cb8
sub_80296cb8:
/* 80296CB8 00293C18 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80296CBC 00293C1C 7C 08 02 A6 */ mflr r0
/* 80296CC0 00293C20 90 01 00 24 */ stw r0, 0x24(r1)
/* 80296CC4 00293C24 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80296CC8 00293C28 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80296CCC 00293C2C 7C 9E 23 78 */ mr r30, r4
/* 80296CD0 00293C30 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80296CD4 00293C34 7C 7D 1B 79 */ or. r29, r3, r3
/* 80296CD8 00293C38 41 82 00 38 */ beq lbl_80296D10
/* 80296CDC 00293C3C 83 FD 00 04 */ lwz r31, 4(r29)
/* 80296CE0 00293C40 48 00 00 14 */ b lbl_80296CF4
lbl_80296CE4:
/* 80296CE4 00293C44 7F E3 FB 79 */ or. r3, r31, r31
/* 80296CE8 00293C48 83 FF 00 04 */ lwz r31, 4(r31)
/* 80296CEC 00293C4C 41 82 00 08 */ beq lbl_80296CF4
/* 80296CF0 00293C50 48 07 EC 41 */ bl Free__7CMemoryFPCv
lbl_80296CF4:
/* 80296CF4 00293C54 80 1D 00 08 */ lwz r0, 8(r29)
/* 80296CF8 00293C58 7C 1F 00 40 */ cmplw r31, r0
/* 80296CFC 00293C5C 40 82 FF E8 */ bne lbl_80296CE4
/* 80296D00 00293C60 7F C0 07 35 */ extsh. r0, r30
/* 80296D04 00293C64 40 81 00 0C */ ble lbl_80296D10
/* 80296D08 00293C68 7F A3 EB 78 */ mr r3, r29
/* 80296D0C 00293C6C 48 07 EC 25 */ bl Free__7CMemoryFPCv
lbl_80296D10:
/* 80296D10 00293C70 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80296D14 00293C74 7F A3 EB 78 */ mr r3, r29
/* 80296D18 00293C78 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80296D1C 00293C7C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80296D20 00293C80 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80296D24 00293C84 7C 08 03 A6 */ mtlr r0
/* 80296D28 00293C88 38 21 00 20 */ addi r1, r1, 0x20
/* 80296D2C 00293C8C 4E 80 00 20 */ blr
.global sub_80296d30
sub_80296d30:
/* 80296D30 00293C90 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80296D34 00293C94 7C 08 02 A6 */ mflr r0
/* 80296D38 00293C98 90 01 00 14 */ stw r0, 0x14(r1)
/* 80296D3C 00293C9C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80296D40 00293CA0 93 C1 00 08 */ stw r30, 8(r1)
/* 80296D44 00293CA4 7C 7E 1B 78 */ mr r30, r3
/* 80296D48 00293CA8 80 03 00 04 */ lwz r0, 4(r3)
/* 80296D4C 00293CAC 83 E4 00 04 */ lwz r31, 4(r4)
/* 80296D50 00293CB0 7C 04 00 40 */ cmplw r4, r0
/* 80296D54 00293CB4 40 82 00 08 */ bne lbl_80296D5C
/* 80296D58 00293CB8 93 FE 00 04 */ stw r31, 4(r30)
lbl_80296D5C:
/* 80296D5C 00293CBC 80 04 00 04 */ lwz r0, 4(r4)
/* 80296D60 00293CC0 28 04 00 00 */ cmplwi r4, 0
/* 80296D64 00293CC4 80 64 00 00 */ lwz r3, 0(r4)
/* 80296D68 00293CC8 90 03 00 04 */ stw r0, 4(r3)
/* 80296D6C 00293CCC 80 04 00 00 */ lwz r0, 0(r4)
/* 80296D70 00293CD0 80 64 00 04 */ lwz r3, 4(r4)
/* 80296D74 00293CD4 90 03 00 00 */ stw r0, 0(r3)
/* 80296D78 00293CD8 41 82 00 0C */ beq lbl_80296D84
/* 80296D7C 00293CDC 7C 83 23 78 */ mr r3, r4
/* 80296D80 00293CE0 48 07 EB B1 */ bl Free__7CMemoryFPCv
lbl_80296D84:
/* 80296D84 00293CE4 80 9E 00 14 */ lwz r4, 0x14(r30)
/* 80296D88 00293CE8 7F E3 FB 78 */ mr r3, r31
/* 80296D8C 00293CEC 38 04 FF FF */ addi r0, r4, -1
/* 80296D90 00293CF0 90 1E 00 14 */ stw r0, 0x14(r30)
/* 80296D94 00293CF4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80296D98 00293CF8 83 C1 00 08 */ lwz r30, 8(r1)
/* 80296D9C 00293CFC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80296DA0 00293D00 7C 08 03 A6 */ mtlr r0
/* 80296DA4 00293D04 38 21 00 10 */ addi r1, r1, 0x10
/* 80296DA8 00293D08 4E 80 00 20 */ blr
.global sub_80296dac
sub_80296dac:
/* 80296DAC 00293D0C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80296DB0 00293D10 7C 08 02 A6 */ mflr r0
/* 80296DB4 00293D14 90 01 00 24 */ stw r0, 0x24(r1)
/* 80296DB8 00293D18 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80296DBC 00293D1C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80296DC0 00293D20 7C 9E 23 78 */ mr r30, r4
/* 80296DC4 00293D24 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80296DC8 00293D28 7C 7D 1B 79 */ or. r29, r3, r3
/* 80296DCC 00293D2C 41 82 00 38 */ beq lbl_80296E04
/* 80296DD0 00293D30 83 FD 00 04 */ lwz r31, 4(r29)
/* 80296DD4 00293D34 48 00 00 14 */ b lbl_80296DE8
lbl_80296DD8:
/* 80296DD8 00293D38 7F E3 FB 79 */ or. r3, r31, r31
/* 80296DDC 00293D3C 83 FF 00 04 */ lwz r31, 4(r31)
/* 80296DE0 00293D40 41 82 00 08 */ beq lbl_80296DE8
/* 80296DE4 00293D44 48 07 EB 4D */ bl Free__7CMemoryFPCv
lbl_80296DE8:
/* 80296DE8 00293D48 80 1D 00 08 */ lwz r0, 8(r29)
/* 80296DEC 00293D4C 7C 1F 00 40 */ cmplw r31, r0
/* 80296DF0 00293D50 40 82 FF E8 */ bne lbl_80296DD8
/* 80296DF4 00293D54 7F C0 07 35 */ extsh. r0, r30
/* 80296DF8 00293D58 40 81 00 0C */ ble lbl_80296E04
/* 80296DFC 00293D5C 7F A3 EB 78 */ mr r3, r29
/* 80296E00 00293D60 48 07 EB 31 */ bl Free__7CMemoryFPCv
lbl_80296E04:
/* 80296E04 00293D64 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80296E08 00293D68 7F A3 EB 78 */ mr r3, r29
/* 80296E0C 00293D6C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80296E10 00293D70 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80296E14 00293D74 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80296E18 00293D78 7C 08 03 A6 */ mtlr r0
/* 80296E1C 00293D7C 38 21 00 20 */ addi r1, r1, 0x20
/* 80296E20 00293D80 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805ADCB8
lbl_805ADCB8:
# ROM: 0x3FA558
.4byte 0xFFFFFFFF
.global lbl_805ADCBC
lbl_805ADCBC:
# ROM: 0x3FA55C
.4byte 0
.global lbl_805ADCC0
lbl_805ADCC0:
# ROM: 0x3FA560
.float 1.0
.global lbl_805ADCC4
lbl_805ADCC4:
# ROM: 0x3FA564
.float 0.5
.global lbl_805ADCC8
lbl_805ADCC8:
# ROM: 0x3FA568
.float 1.1920929E-7
.global lbl_805ADCCC
lbl_805ADCCC:
# ROM: 0x3FA56C
.4byte 0x3F7D70A4
.section .rodata
.balign 8
.global lbl_803D5BD0
lbl_803D5BD0:
# ROM: 0x3D2BD0
.float 1.0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.float -1.0
.4byte 0
.float 1.0
.4byte 0
.4byte 0
.4byte 0
.float 1.0
.global lbl_803D5C00
lbl_803D5C00:
# ROM: 0x3D2C00
.4byte 0
.4byte 0
.4byte 0
.float 1.0
.4byte 0
.4byte 0
.float 1.0
.4byte 0xBD800000
.4byte 0
.4byte 0
.4byte 0
.float 1.0
.global lbl_803D5C30
lbl_803D5C30:
# ROM: 0x3D2C30
.asciz "??(??)"
.balign 4