prime/asm/Kyoto_CWD/CProjectedShadow.s

932 lines
50 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global sub_8029d6c8
sub_8029d6c8:
/* 8029D6C8 0029A628 38 00 00 00 */ li r0, 0
/* 8029D6CC 0029A62C 98 03 00 80 */ stb r0, 0x80(r3)
/* 8029D6D0 0029A630 4E 80 00 20 */ blr
.global Render__16CProjectedShadowFRC13CStateManager
Render__16CProjectedShadowFRC13CStateManager:
/* 8029D6D4 0029A634 94 21 F4 D0 */ stwu r1, -0xb30(r1)
/* 8029D6D8 0029A638 7C 08 02 A6 */ mflr r0
/* 8029D6DC 0029A63C 90 01 0B 34 */ stw r0, 0xb34(r1)
/* 8029D6E0 0029A640 DB E1 0B 20 */ stfd f31, 0xb20(r1)
/* 8029D6E4 0029A644 F3 E1 0B 28 */ psq_st f31, -1240(r1), 0, qr0
/* 8029D6E8 0029A648 DB C1 0B 10 */ stfd f30, 0xb10(r1)
/* 8029D6EC 0029A64C F3 C1 0B 18 */ psq_st f30, -1256(r1), 0, qr0
/* 8029D6F0 0029A650 BF 41 0A F8 */ stmw r26, 0xaf8(r1)
/* 8029D6F4 0029A654 7C 7E 1B 78 */ mr r30, r3
/* 8029D6F8 0029A658 7C 9F 23 78 */ mr r31, r4
/* 8029D6FC 0029A65C 88 03 00 80 */ lbz r0, 0x80(r3)
/* 8029D700 0029A660 28 00 00 00 */ cmplwi r0, 0
/* 8029D704 0029A664 41 82 05 70 */ beq lbl_8029DC74
/* 8029D708 0029A668 C0 2D 9A 20 */ lfs f1, lbl_805A85E0@sda21(r13)
/* 8029D70C 0029A66C C0 1E 00 84 */ lfs f0, 0x84(r30)
/* 8029D710 0029A670 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8029D714 0029A674 40 80 00 0C */ bge lbl_8029D720
/* 8029D718 0029A678 38 7E 00 84 */ addi r3, r30, 0x84
/* 8029D71C 0029A67C 48 00 00 08 */ b lbl_8029D724
lbl_8029D720:
/* 8029D720 0029A680 38 6D 9A 20 */ addi r3, r13, lbl_805A85E0@sda21
lbl_8029D724:
/* 8029D724 0029A684 C0 23 00 00 */ lfs f1, 0(r3)
/* 8029D728 0029A688 38 61 00 50 */ addi r3, r1, 0x50
/* 8029D72C 0029A68C 38 9E 00 68 */ addi r4, r30, 0x68
/* 8029D730 0029A690 38 BE 00 88 */ addi r5, r30, 0x88
/* 8029D734 0029A694 48 00 05 65 */ bl sub_8029dc98
/* 8029D738 0029A698 C0 A1 00 50 */ lfs f5, 0x50(r1)
/* 8029D73C 0029A69C 7F C3 F3 78 */ mr r3, r30
/* 8029D740 0029A6A0 C0 81 00 54 */ lfs f4, 0x54(r1)
/* 8029D744 0029A6A4 3B 81 00 8C */ addi r28, r1, 0x8c
/* 8029D748 0029A6A8 C0 61 00 58 */ lfs f3, 0x58(r1)
/* 8029D74C 0029A6AC 38 80 00 07 */ li r4, 7
/* 8029D750 0029A6B0 C0 41 00 5C */ lfs f2, 0x5c(r1)
/* 8029D754 0029A6B4 38 A0 00 00 */ li r5, 0
/* 8029D758 0029A6B8 C0 21 00 60 */ lfs f1, 0x60(r1)
/* 8029D75C 0029A6BC C0 01 00 64 */ lfs f0, 0x64(r1)
/* 8029D760 0029A6C0 D0 A1 00 80 */ stfs f5, 0x80(r1)
/* 8029D764 0029A6C4 D0 81 00 84 */ stfs f4, 0x84(r1)
/* 8029D768 0029A6C8 D0 61 00 88 */ stfs f3, 0x88(r1)
/* 8029D76C 0029A6CC D0 41 00 8C */ stfs f2, 0x8c(r1)
/* 8029D770 0029A6D0 D0 21 00 90 */ stfs f1, 0x90(r1)
/* 8029D774 0029A6D4 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 8029D778 0029A6D8 48 07 1F C5 */ bl Load__8CTextureCF11_GXTexMapIDQ28CTexture10EClampMode
/* 8029D77C 0029A6DC 48 06 F2 01 */ bl DisableAllLights__9CGraphicsFv
/* 8029D780 0029A6E0 88 1E 00 81 */ lbz r0, 0x81(r30)
/* 8029D784 0029A6E4 28 00 00 00 */ cmplwi r0, 0
/* 8029D788 0029A6E8 41 82 00 BC */ beq lbl_8029D844
/* 8029D78C 0029A6EC C0 22 C0 94 */ lfs f1, lbl_805ADDB4@sda21(r2)
/* 8029D790 0029A6F0 C0 1E 00 98 */ lfs f0, 0x98(r30)
/* 8029D794 0029A6F4 EF E1 00 32 */ fmuls f31, f1, f0
/* 8029D798 0029A6F8 F3 E1 A0 09 */ psq_st f31, 9(r1), 1, qr2
/* 8029D79C 0029A6FC 3C 60 80 5A */ lis r3, lbl_805A6700@ha
/* 8029D7A0 0029A700 38 83 67 00 */ addi r4, r3, lbl_805A6700@l
/* 8029D7A4 0029A704 38 A1 00 1C */ addi r5, r1, 0x1c
/* 8029D7A8 0029A708 88 01 00 09 */ lbz r0, 9(r1)
/* 8029D7AC 0029A70C 38 61 02 48 */ addi r3, r1, 0x248
/* 8029D7B0 0029A710 98 01 00 1C */ stb r0, 0x1c(r1)
/* 8029D7B4 0029A714 98 01 00 1D */ stb r0, 0x1d(r1)
/* 8029D7B8 0029A718 98 01 00 1E */ stb r0, 0x1e(r1)
/* 8029D7BC 0029A71C 98 01 00 1F */ stb r0, 0x1f(r1)
/* 8029D7C0 0029A720 48 06 8C AD */ bl BuildDirectional__6CLightFRC9CVector3fRC6CColor
/* 8029D7C4 0029A724 38 61 02 98 */ addi r3, r1, 0x298
/* 8029D7C8 0029A728 38 81 02 48 */ addi r4, r1, 0x248
/* 8029D7CC 0029A72C 4B D9 DD A5 */ bl __ct__6CLightFCR6CLight
/* 8029D7D0 0029A730 38 81 02 98 */ addi r4, r1, 0x298
/* 8029D7D4 0029A734 38 60 00 00 */ li r3, 0
/* 8029D7D8 0029A738 48 06 F1 ED */ bl LoadLight__9CGraphicsF9ERglLightRC6CLight
/* 8029D7DC 0029A73C 38 60 00 00 */ li r3, 0
/* 8029D7E0 0029A740 48 06 F5 51 */ bl EnableLight__9CGraphicsF9ERglLight
/* 8029D7E4 0029A744 80 02 D7 60 */ lwz r0, lbl_805AF480@sda21(r2)
/* 8029D7E8 0029A748 38 81 00 18 */ addi r4, r1, 0x18
/* 8029D7EC 0029A74C 38 60 00 00 */ li r3, 0
/* 8029D7F0 0029A750 90 01 00 18 */ stw r0, 0x18(r1)
/* 8029D7F4 0029A754 48 06 B5 D1 */ bl SetChanAmbColor__3CGXFQ23CGX10EChannelIdRC8_GXColor
/* 8029D7F8 0029A758 80 02 C0 90 */ lwz r0, lbl_805ADDB0@sda21(r2)
/* 8029D7FC 0029A75C 38 81 00 14 */ addi r4, r1, 0x14
/* 8029D800 0029A760 38 60 00 00 */ li r3, 0
/* 8029D804 0029A764 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029D808 0029A768 48 06 B5 55 */ bl SetChanMatColor__3CGXFQ23CGX10EChannelIdRC8_GXColor
/* 8029D80C 0029A76C 38 60 00 00 */ li r3, 0
/* 8029D810 0029A770 48 06 B6 41 */ bl SetNumChans__3CGXFUc
/* 8029D814 0029A774 48 06 A7 D1 */ bl FlushState__3CGXFv
/* 8029D818 0029A778 38 60 00 02 */ li r3, 2
/* 8029D81C 0029A77C 38 80 00 01 */ li r4, 1
/* 8029D820 0029A780 38 A0 00 00 */ li r5, 0
/* 8029D824 0029A784 38 C0 00 00 */ li r6, 0
/* 8029D828 0029A788 38 E0 00 01 */ li r7, 1
/* 8029D82C 0029A78C 39 00 00 02 */ li r8, 2
/* 8029D830 0029A790 39 20 00 01 */ li r9, 1
/* 8029D834 0029A794 48 0D C3 41 */ bl GXSetChanCtrl
/* 8029D838 0029A798 38 60 00 01 */ li r3, 1
/* 8029D83C 0029A79C 48 0D C2 F5 */ bl GXSetNumChans
/* 8029D840 0029A7A0 48 00 00 0C */ b lbl_8029D84C
lbl_8029D844:
/* 8029D844 0029A7A4 38 60 00 00 */ li r3, 0
/* 8029D848 0029A7A8 48 06 B6 09 */ bl SetNumChans__3CGXFUc
lbl_8029D84C:
/* 8029D84C 0029A7AC 38 60 00 00 */ li r3, 0
/* 8029D850 0029A7B0 48 06 AE 41 */ bl SetNumIndStages__3CGXFUc
/* 8029D854 0029A7B4 38 60 00 00 */ li r3, 0
/* 8029D858 0029A7B8 48 06 AE ED */ bl SetTevDirect__3CGXF13_GXTevStageID
/* 8029D85C 0029A7BC 38 60 00 01 */ li r3, 1
/* 8029D860 0029A7C0 48 06 B4 31 */ bl SetNumTevStages__3CGXFUc
/* 8029D864 0029A7C4 38 60 00 01 */ li r3, 1
/* 8029D868 0029A7C8 48 06 B5 AD */ bl SetNumTexGens__3CGXFUc
/* 8029D86C 0029A7CC 38 60 00 00 */ li r3, 0
/* 8029D870 0029A7D0 38 80 00 0F */ li r4, 0xf
/* 8029D874 0029A7D4 38 A0 00 0F */ li r5, 0xf
/* 8029D878 0029A7D8 38 C0 00 0F */ li r6, 0xf
/* 8029D87C 0029A7DC 38 E0 00 0F */ li r7, 0xf
/* 8029D880 0029A7E0 48 06 B3 6D */ bl SetTevColorIn__3CGXF13_GXTevStageID14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg
/* 8029D884 0029A7E4 88 1E 00 81 */ lbz r0, 0x81(r30)
/* 8029D888 0029A7E8 28 00 00 00 */ cmplwi r0, 0
/* 8029D88C 0029A7EC 41 82 00 34 */ beq lbl_8029D8C0
/* 8029D890 0029A7F0 38 60 00 00 */ li r3, 0
/* 8029D894 0029A7F4 38 80 00 07 */ li r4, 7
/* 8029D898 0029A7F8 38 A0 00 04 */ li r5, 4
/* 8029D89C 0029A7FC 38 C0 00 05 */ li r6, 5
/* 8029D8A0 0029A800 38 E0 00 07 */ li r7, 7
/* 8029D8A4 0029A804 48 06 B2 F1 */ bl SetTevAlphaIn__3CGXF13_GXTevStageID14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg
/* 8029D8A8 0029A808 38 60 00 00 */ li r3, 0
/* 8029D8AC 0029A80C 38 80 00 00 */ li r4, 0
/* 8029D8B0 0029A810 38 A0 00 07 */ li r5, 7
/* 8029D8B4 0029A814 38 C0 00 04 */ li r6, 4
/* 8029D8B8 0029A818 48 06 B0 95 */ bl SetTevOrder__3CGXF13_GXTevStageID13_GXTexCoordID11_GXTexMapID12_GXChannelID
/* 8029D8BC 0029A81C 48 00 00 6C */ b lbl_8029D928
lbl_8029D8C0:
/* 8029D8C0 0029A820 38 60 00 00 */ li r3, 0
/* 8029D8C4 0029A824 38 80 00 07 */ li r4, 7
/* 8029D8C8 0029A828 38 A0 00 04 */ li r5, 4
/* 8029D8CC 0029A82C 38 C0 00 06 */ li r6, 6
/* 8029D8D0 0029A830 38 E0 00 07 */ li r7, 7
/* 8029D8D4 0029A834 48 06 B2 C1 */ bl SetTevAlphaIn__3CGXF13_GXTevStageID14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg
/* 8029D8D8 0029A838 38 60 00 00 */ li r3, 0
/* 8029D8DC 0029A83C 38 80 00 00 */ li r4, 0
/* 8029D8E0 0029A840 38 A0 00 07 */ li r5, 7
/* 8029D8E4 0029A844 38 C0 00 FF */ li r6, 0xff
/* 8029D8E8 0029A848 48 06 B0 65 */ bl SetTevOrder__3CGXF13_GXTevStageID13_GXTexCoordID11_GXTexMapID12_GXChannelID
/* 8029D8EC 0029A84C C3 FE 00 98 */ lfs f31, 0x98(r30)
/* 8029D8F0 0029A850 48 0A C6 BD */ bl White__6CColorFv
/* 8029D8F4 0029A854 C0 02 C0 94 */ lfs f0, lbl_805ADDB4@sda21(r2)
/* 8029D8F8 0029A858 EF C0 07 F2 */ fmuls f30, f0, f31
/* 8029D8FC 0029A85C F3 C1 A0 08 */ psq_st f30, 8(r1), 1, qr2
/* 8029D900 0029A860 38 81 00 10 */ addi r4, r1, 0x10
/* 8029D904 0029A864 80 A3 00 00 */ lwz r5, 0(r3)
/* 8029D908 0029A868 38 60 00 00 */ li r3, 0
/* 8029D90C 0029A86C 88 01 00 08 */ lbz r0, 8(r1)
/* 8029D910 0029A870 50 A0 00 2E */ rlwimi r0, r5, 0, 0, 0x17
/* 8029D914 0029A874 90 01 00 10 */ stw r0, 0x10(r1)
/* 8029D918 0029A878 48 06 B3 2D */ bl SetTevKColor__3CGXF14_GXTevKColorIDRC8_GXColor
/* 8029D91C 0029A87C 38 60 00 00 */ li r3, 0
/* 8029D920 0029A880 38 80 00 1C */ li r4, 0x1c
/* 8029D924 0029A884 48 06 B0 79 */ bl SetTevKAlphaSel__3CGXF13_GXTevStageID15_GXTevKAlphaSel
lbl_8029D928:
/* 8029D928 0029A888 38 60 00 00 */ li r3, 0
/* 8029D92C 0029A88C 48 06 A3 25 */ bl SetStandardTevColorAlphaOp__3CGXF13_GXTevStageID
/* 8029D930 0029A890 38 60 00 01 */ li r3, 1
/* 8029D934 0029A894 38 80 00 02 */ li r4, 2
/* 8029D938 0029A898 38 A0 00 00 */ li r5, 0
/* 8029D93C 0029A89C 48 06 AF 41 */ bl SetZMode__3CGXFb10_GXCompareb
/* 8029D940 0029A8A0 38 60 00 01 */ li r3, 1
/* 8029D944 0029A8A4 38 80 00 04 */ li r4, 4
/* 8029D948 0029A8A8 38 A0 00 05 */ li r5, 5
/* 8029D94C 0029A8AC 38 C0 00 00 */ li r6, 0
/* 8029D950 0029A8B0 48 06 AF 81 */ bl SetBlendMode__3CGXF12_GXBlendMode14_GXBlendFactor14_GXBlendFactor10_GXLogicOp
/* 8029D954 0029A8B4 38 60 00 04 */ li r3, 4
/* 8029D958 0029A8B8 38 80 00 00 */ li r4, 0
/* 8029D95C 0029A8BC 38 A0 00 00 */ li r5, 0
/* 8029D960 0029A8C0 38 C0 00 07 */ li r6, 7
/* 8029D964 0029A8C4 38 E0 00 00 */ li r7, 0
/* 8029D968 0029A8C8 48 06 AE AD */ bl SetAlphaCompare__3CGXF10_GXCompareUc10_GXAlphaOp10_GXCompareUc
/* 8029D96C 0029A8CC 3C 60 80 3D */ lis r3, lbl_803D5E50@ha
/* 8029D970 0029A8D0 38 80 00 40 */ li r4, 0x40
/* 8029D974 0029A8D4 38 63 5E 50 */ addi r3, r3, lbl_803D5E50@l
/* 8029D978 0029A8D8 38 A0 00 00 */ li r5, 0
/* 8029D97C 0029A8DC 48 0D EB 15 */ bl GXLoadTexMtxImm
/* 8029D980 0029A8E0 C0 41 00 80 */ lfs f2, 0x80(r1)
/* 8029D984 0029A8E4 38 61 01 28 */ addi r3, r1, 0x128
/* 8029D988 0029A8E8 C0 01 00 8C */ lfs f0, 0x8c(r1)
/* 8029D98C 0029A8EC 38 81 00 38 */ addi r4, r1, 0x38
/* 8029D990 0029A8F0 C0 81 00 84 */ lfs f4, 0x84(r1)
/* 8029D994 0029A8F4 FC 20 10 50 */ fneg f1, f2
/* 8029D998 0029A8F8 C0 61 00 90 */ lfs f3, 0x90(r1)
/* 8029D99C 0029A8FC EC C0 10 28 */ fsubs f6, f0, f2
/* 8029D9A0 0029A900 C0 E1 00 88 */ lfs f7, 0x88(r1)
/* 8029D9A4 0029A904 FC 00 20 50 */ fneg f0, f4
/* 8029D9A8 0029A908 C0 41 00 94 */ lfs f2, 0x94(r1)
/* 8029D9AC 0029A90C EC A3 20 28 */ fsubs f5, f3, f4
/* 8029D9B0 0029A910 C0 62 C0 98 */ lfs f3, lbl_805ADDB8@sda21(r2)
/* 8029D9B4 0029A914 EC 82 38 28 */ fsubs f4, f2, f7
/* 8029D9B8 0029A918 D0 C1 00 44 */ stfs f6, 0x44(r1)
/* 8029D9BC 0029A91C EC 43 30 24 */ fdivs f2, f3, f6
/* 8029D9C0 0029A920 D0 A1 00 48 */ stfs f5, 0x48(r1)
/* 8029D9C4 0029A924 D0 81 00 4C */ stfs f4, 0x4c(r1)
/* 8029D9C8 0029A928 D0 21 00 38 */ stfs f1, 0x38(r1)
/* 8029D9CC 0029A92C D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 8029D9D0 0029A930 EC 03 28 24 */ fdivs f0, f3, f5
/* 8029D9D4 0029A934 D0 41 00 44 */ stfs f2, 0x44(r1)
/* 8029D9D8 0029A938 EC 23 20 24 */ fdivs f1, f3, f4
/* 8029D9DC 0029A93C D0 01 00 48 */ stfs f0, 0x48(r1)
/* 8029D9E0 0029A940 FC 00 38 50 */ fneg f0, f7
/* 8029D9E4 0029A944 D0 21 00 4C */ stfs f1, 0x4c(r1)
/* 8029D9E8 0029A948 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 8029D9EC 0029A94C 48 07 57 55 */ bl Translate__12CTransform4fFRC9CVector3f
/* 8029D9F0 0029A950 38 61 01 58 */ addi r3, r1, 0x158
/* 8029D9F4 0029A954 38 81 00 44 */ addi r4, r1, 0x44
/* 8029D9F8 0029A958 48 07 57 CD */ bl Scale__12CTransform4fFRC9CVector3f
/* 8029D9FC 0029A95C 38 61 01 88 */ addi r3, r1, 0x188
/* 8029DA00 0029A960 38 81 01 58 */ addi r4, r1, 0x158
/* 8029DA04 0029A964 38 A1 01 28 */ addi r5, r1, 0x128
/* 8029DA08 0029A968 48 07 4F 49 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8029DA0C 0029A96C 38 61 02 18 */ addi r3, r1, 0x218
/* 8029DA10 0029A970 38 81 01 88 */ addi r4, r1, 0x188
/* 8029DA14 0029A974 48 07 51 61 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8029DA18 0029A978 C0 21 00 84 */ lfs f1, 0x84(r1)
/* 8029DA1C 0029A97C 7F 85 E3 78 */ mr r5, r28
/* 8029DA20 0029A980 C0 62 C0 9C */ lfs f3, lbl_805ADDBC@sda21(r2)
/* 8029DA24 0029A984 38 61 00 68 */ addi r3, r1, 0x68
/* 8029DA28 0029A988 C0 01 00 80 */ lfs f0, 0x80(r1)
/* 8029DA2C 0029A98C 38 81 00 2C */ addi r4, r1, 0x2c
/* 8029DA30 0029A990 EC 81 18 28 */ fsubs f4, f1, f3
/* 8029DA34 0029A994 C0 41 00 88 */ lfs f2, 0x88(r1)
/* 8029DA38 0029A998 C0 3E 00 94 */ lfs f1, 0x94(r30)
/* 8029DA3C 0029A99C EC 00 18 28 */ fsubs f0, f0, f3
/* 8029DA40 0029A9A0 EC 22 08 28 */ fsubs f1, f2, f1
/* 8029DA44 0029A9A4 D0 81 00 30 */ stfs f4, 0x30(r1)
/* 8029DA48 0029A9A8 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8029DA4C 0029A9AC D0 21 00 34 */ stfs f1, 0x34(r1)
/* 8029DA50 0029A9B0 48 09 AA B9 */ bl __ct__6CAABoxFRC9CVector3fRC9CVector3f
/* 8029DA54 0029A9B4 38 00 00 00 */ li r0, 0
/* 8029DA58 0029A9B8 3C 60 80 5A */ lis r3, lbl_8059FD18@ha
/* 8029DA5C 0029A9BC 90 01 02 E8 */ stw r0, 0x2e8(r1)
/* 8029DA60 0029A9C0 38 C3 FD 18 */ addi r6, r3, lbl_8059FD18@l
/* 8029DA64 0029A9C4 7F E3 FB 78 */ mr r3, r31
/* 8029DA68 0029A9C8 38 81 02 E8 */ addi r4, r1, 0x2e8
/* 8029DA6C 0029A9CC 38 A1 00 68 */ addi r5, r1, 0x68
/* 8029DA70 0029A9D0 38 E0 00 00 */ li r7, 0
/* 8029DA74 0029A9D4 4B DA EC AD */ bl "BuildNearList__13CStateManagerCFRQ24rstl32reserved_vector<9TUniqueId,1024>RC6CAABoxRC15CMaterialFilterPC6CActor"
/* 8029DA78 0029A9D8 38 60 00 00 */ li r3, 0
/* 8029DA7C 0029A9DC 38 80 00 00 */ li r4, 0
/* 8029DA80 0029A9E0 38 A0 00 00 */ li r5, 0
/* 8029DA84 0029A9E4 38 C0 00 1E */ li r6, 0x1e
/* 8029DA88 0029A9E8 38 E0 00 00 */ li r7, 0
/* 8029DA8C 0029A9EC 39 00 00 40 */ li r8, 0x40
/* 8029DA90 0029A9F0 48 06 AC 3D */ bl SetTexCoordGen__3CGXF13_GXTexCoordID13_GXTexGenType12_GXTexGenSrc9_GXTexMtxUc11_GXPTTexMtx
/* 8029DA94 0029A9F4 3B 61 02 EC */ addi r27, r1, 0x2ec
/* 8029DA98 0029A9F8 7F 7A DB 78 */ mr r26, r27
/* 8029DA9C 0029A9FC 48 00 00 E4 */ b lbl_8029DB80
lbl_8029DAA0:
/* 8029DAA0 0029AA00 A0 1A 00 00 */ lhz r0, 0(r26)
/* 8029DAA4 0029AA04 7F E3 FB 78 */ mr r3, r31
/* 8029DAA8 0029AA08 38 81 00 0C */ addi r4, r1, 0xc
/* 8029DAAC 0029AA0C B0 01 00 0C */ sth r0, 0xc(r1)
/* 8029DAB0 0029AA10 4B DA EA F5 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8029DAB4 0029AA14 7C 7D 1B 79 */ or. r29, r3, r3
/* 8029DAB8 0029AA18 41 82 00 C4 */ beq lbl_8029DB7C
/* 8029DABC 0029AA1C 4B DB 52 19 */ bl CanDrawStatic__6CActorCFv
/* 8029DAC0 0029AA20 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8029DAC4 0029AA24 41 82 00 B8 */ beq lbl_8029DB7C
/* 8029DAC8 0029AA28 83 9D 00 64 */ lwz r28, 0x64(r29)
/* 8029DACC 0029AA2C 38 61 00 C8 */ addi r3, r1, 0xc8
/* 8029DAD0 0029AA30 38 81 00 20 */ addi r4, r1, 0x20
/* 8029DAD4 0029AA34 C0 1C 00 00 */ lfs f0, 0(r28)
/* 8029DAD8 0029AA38 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8029DADC 0029AA3C C0 1C 00 04 */ lfs f0, 4(r28)
/* 8029DAE0 0029AA40 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8029DAE4 0029AA44 C0 1C 00 08 */ lfs f0, 8(r28)
/* 8029DAE8 0029AA48 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8029DAEC 0029AA4C 48 07 56 D9 */ bl Scale__12CTransform4fFRC9CVector3f
/* 8029DAF0 0029AA50 38 61 00 F8 */ addi r3, r1, 0xf8
/* 8029DAF4 0029AA54 38 9D 00 34 */ addi r4, r29, 0x34
/* 8029DAF8 0029AA58 38 A1 00 C8 */ addi r5, r1, 0xc8
/* 8029DAFC 0029AA5C 48 07 4E 55 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8029DB00 0029AA60 38 61 01 E8 */ addi r3, r1, 0x1e8
/* 8029DB04 0029AA64 38 81 00 F8 */ addi r4, r1, 0xf8
/* 8029DB08 0029AA68 48 07 50 6D */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8029DB0C 0029AA6C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 8029DB10 0029AA70 38 81 01 E8 */ addi r4, r1, 0x1e8
/* 8029DB14 0029AA74 81 83 00 00 */ lwz r12, 0(r3)
/* 8029DB18 0029AA78 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 8029DB1C 0029AA7C 7D 89 03 A6 */ mtctr r12
/* 8029DB20 0029AA80 4E 80 04 21 */ bctrl
/* 8029DB24 0029AA84 38 61 00 98 */ addi r3, r1, 0x98
/* 8029DB28 0029AA88 38 81 02 18 */ addi r4, r1, 0x218
/* 8029DB2C 0029AA8C 38 A1 01 E8 */ addi r5, r1, 0x1e8
/* 8029DB30 0029AA90 48 07 4E 21 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8029DB34 0029AA94 38 61 01 B8 */ addi r3, r1, 0x1b8
/* 8029DB38 0029AA98 38 81 00 98 */ addi r4, r1, 0x98
/* 8029DB3C 0029AA9C 48 07 50 39 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8029DB40 0029AAA0 38 61 01 B8 */ addi r3, r1, 0x1b8
/* 8029DB44 0029AAA4 38 80 00 1E */ li r4, 0x1e
/* 8029DB48 0029AAA8 38 A0 00 00 */ li r5, 0
/* 8029DB4C 0029AAAC 48 0D E9 45 */ bl GXLoadTexMtxImm
/* 8029DB50 0029AAB0 7F 83 E3 78 */ mr r3, r28
/* 8029DB54 0029AAB4 38 80 00 00 */ li r4, 0
/* 8029DB58 0029AAB8 4B E7 74 55 */ bl PickStaticModel__10CModelDataCFQ210CModelData11EWhichModel
/* 8029DB5C 0029AABC 83 83 00 08 */ lwz r28, 8(r3)
/* 8029DB60 0029AAC0 7F 83 E3 78 */ mr r3, r28
/* 8029DB64 0029AAC4 48 0B 75 BD */ bl UpdateLastFrame__6CModelFv
/* 8029DB68 0029AAC8 80 7C 00 28 */ lwz r3, 0x28(r28)
/* 8029DB6C 0029AACC 38 80 00 00 */ li r4, 0
/* 8029DB70 0029AAD0 38 A0 00 00 */ li r5, 0
/* 8029DB74 0029AAD4 38 C0 00 00 */ li r6, 0
/* 8029DB78 0029AAD8 48 06 8E 79 */ bl DrawFlat__10CCubeModelCFPCfPCf17ESurfaceSelection
lbl_8029DB7C:
/* 8029DB7C 0029AADC 3B 5A 00 02 */ addi r26, r26, 2
lbl_8029DB80:
/* 8029DB80 0029AAE0 80 01 02 E8 */ lwz r0, 0x2e8(r1)
/* 8029DB84 0029AAE4 54 00 08 3C */ slwi r0, r0, 1
/* 8029DB88 0029AAE8 7C 1B 02 14 */ add r0, r27, r0
/* 8029DB8C 0029AAEC 7C 1A 00 40 */ cmplw r26, r0
/* 8029DB90 0029AAF0 40 82 FF 10 */ bne lbl_8029DAA0
/* 8029DB94 0029AAF4 38 61 02 18 */ addi r3, r1, 0x218
/* 8029DB98 0029AAF8 38 80 00 1E */ li r4, 0x1e
/* 8029DB9C 0029AAFC 38 A0 00 00 */ li r5, 0
/* 8029DBA0 0029AB00 48 0D E8 F1 */ bl GXLoadTexMtxImm
/* 8029DBA4 0029AB04 3C 60 80 5A */ lis r3, skIdentity4f@ha
/* 8029DBA8 0029AB08 38 63 66 70 */ addi r3, r3, skIdentity4f@l
/* 8029DBAC 0029AB0C 48 06 EA 35 */ bl SetModelMatrix__9CGraphicsFRC12CTransform4f
/* 8029DBB0 0029AB10 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 8029DBB4 0029AB14 38 81 00 68 */ addi r4, r1, 0x68
/* 8029DBB8 0029AB18 38 A0 00 00 */ li r5, 0
/* 8029DBBC 0029AB1C 38 C0 00 00 */ li r6, 0
/* 8029DBC0 0029AB20 48 01 81 F9 */ bl DrawXRayOutline__13CCubeRendererFRC6CModelPCfPCf
/* 8029DBC4 0029AB24 38 60 00 01 */ li r3, 1
/* 8029DBC8 0029AB28 38 80 00 03 */ li r4, 3
/* 8029DBCC 0029AB2C 38 A0 00 01 */ li r5, 1
/* 8029DBD0 0029AB30 48 06 AC AD */ bl SetZMode__3CGXFb10_GXCompareb
/* 8029DBD4 0029AB34 38 60 00 07 */ li r3, 7
/* 8029DBD8 0029AB38 38 80 00 00 */ li r4, 0
/* 8029DBDC 0029AB3C 38 A0 00 00 */ li r5, 0
/* 8029DBE0 0029AB40 38 C0 00 07 */ li r6, 7
/* 8029DBE4 0029AB44 38 E0 00 00 */ li r7, 0
/* 8029DBE8 0029AB48 48 06 AC 2D */ bl SetAlphaCompare__3CGXF10_GXCompareUc10_GXAlphaOp10_GXCompareUc
/* 8029DBEC 0029AB4C 88 1E 00 81 */ lbz r0, 0x81(r30)
/* 8029DBF0 0029AB50 28 00 00 00 */ cmplwi r0, 0
/* 8029DBF4 0029AB54 41 82 00 2C */ beq lbl_8029DC20
/* 8029DBF8 0029AB58 38 60 00 02 */ li r3, 2
/* 8029DBFC 0029AB5C 38 80 00 00 */ li r4, 0
/* 8029DC00 0029AB60 38 A0 00 00 */ li r5, 0
/* 8029DC04 0029AB64 38 C0 00 01 */ li r6, 1
/* 8029DC08 0029AB68 38 E0 00 00 */ li r7, 0
/* 8029DC0C 0029AB6C 39 00 00 00 */ li r8, 0
/* 8029DC10 0029AB70 39 20 00 02 */ li r9, 2
/* 8029DC14 0029AB74 48 0D BF 61 */ bl GXSetChanCtrl
/* 8029DC18 0029AB78 38 60 00 00 */ li r3, 0
/* 8029DC1C 0029AB7C 48 0D BF 15 */ bl GXSetNumChans
lbl_8029DC20:
/* 8029DC20 0029AB80 80 A1 02 E8 */ lwz r5, 0x2e8(r1)
/* 8029DC24 0029AB84 38 60 00 00 */ li r3, 0
/* 8029DC28 0029AB88 2C 05 00 00 */ cmpwi r5, 0
/* 8029DC2C 0029AB8C 40 81 00 40 */ ble lbl_8029DC6C
/* 8029DC30 0029AB90 2C 05 00 08 */ cmpwi r5, 8
/* 8029DC34 0029AB94 38 85 FF F8 */ addi r4, r5, -8
/* 8029DC38 0029AB98 40 81 00 20 */ ble lbl_8029DC58
/* 8029DC3C 0029AB9C 38 04 00 07 */ addi r0, r4, 7
/* 8029DC40 0029ABA0 54 00 E8 FE */ srwi r0, r0, 3
/* 8029DC44 0029ABA4 7C 09 03 A6 */ mtctr r0
/* 8029DC48 0029ABA8 2C 04 00 00 */ cmpwi r4, 0
/* 8029DC4C 0029ABAC 40 81 00 0C */ ble lbl_8029DC58
lbl_8029DC50:
/* 8029DC50 0029ABB0 38 63 00 08 */ addi r3, r3, 8
/* 8029DC54 0029ABB4 42 00 FF FC */ bdnz lbl_8029DC50
lbl_8029DC58:
/* 8029DC58 0029ABB8 7C 03 28 50 */ subf r0, r3, r5
/* 8029DC5C 0029ABBC 7C 09 03 A6 */ mtctr r0
/* 8029DC60 0029ABC0 7C 03 28 00 */ cmpw r3, r5
/* 8029DC64 0029ABC4 40 80 00 08 */ bge lbl_8029DC6C
lbl_8029DC68:
/* 8029DC68 0029ABC8 42 00 00 00 */ bdnz lbl_8029DC68
lbl_8029DC6C:
/* 8029DC6C 0029ABCC 38 00 00 00 */ li r0, 0
/* 8029DC70 0029ABD0 90 01 02 E8 */ stw r0, 0x2e8(r1)
lbl_8029DC74:
/* 8029DC74 0029ABD4 E3 E1 0B 28 */ psq_l f31, -1240(r1), 0, qr0
/* 8029DC78 0029ABD8 CB E1 0B 20 */ lfd f31, 0xb20(r1)
/* 8029DC7C 0029ABDC E3 C1 0B 18 */ psq_l f30, -1256(r1), 0, qr0
/* 8029DC80 0029ABE0 CB C1 0B 10 */ lfd f30, 0xb10(r1)
/* 8029DC84 0029ABE4 BB 41 0A F8 */ lmw r26, 0xaf8(r1)
/* 8029DC88 0029ABE8 80 01 0B 34 */ lwz r0, 0xb34(r1)
/* 8029DC8C 0029ABEC 7C 08 03 A6 */ mtlr r0
/* 8029DC90 0029ABF0 38 21 0B 30 */ addi r1, r1, 0xb30
/* 8029DC94 0029ABF4 4E 80 00 20 */ blr
.global sub_8029dc98
sub_8029dc98:
/* 8029DC98 0029ABF8 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8029DC9C 0029ABFC 7C 08 02 A6 */ mflr r0
/* 8029DCA0 0029AC00 90 01 00 54 */ stw r0, 0x54(r1)
/* 8029DCA4 0029AC04 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 8029DCA8 0029AC08 F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0
/* 8029DCAC 0029AC0C C1 84 00 0C */ lfs f12, 0xc(r4)
/* 8029DCB0 0029AC10 C1 64 00 00 */ lfs f11, 0(r4)
/* 8029DCB4 0029AC14 C1 44 00 10 */ lfs f10, 0x10(r4)
/* 8029DCB8 0029AC18 C1 24 00 04 */ lfs f9, 4(r4)
/* 8029DCBC 0029AC1C EC 6C 58 28 */ fsubs f3, f12, f11
/* 8029DCC0 0029AC20 C1 04 00 14 */ lfs f8, 0x14(r4)
/* 8029DCC4 0029AC24 C0 E4 00 08 */ lfs f7, 8(r4)
/* 8029DCC8 0029AC28 EF EA 48 28 */ fsubs f31, f10, f9
/* 8029DCCC 0029AC2C EC 01 00 F2 */ fmuls f0, f1, f3
/* 8029DCD0 0029AC30 C0 C2 C0 A0 */ lfs f6, lbl_805ADDC0@sda21(r2)
/* 8029DCD4 0029AC34 ED A8 38 28 */ fsubs f13, f8, f7
/* 8029DCD8 0029AC38 C0 85 00 04 */ lfs f4, 4(r5)
/* 8029DCDC 0029AC3C EC 41 07 F2 */ fmuls f2, f1, f31
/* 8029DCE0 0029AC40 EC A0 18 28 */ fsubs f5, f0, f3
/* 8029DCE4 0029AC44 EC 01 03 72 */ fmuls f0, f1, f13
/* 8029DCE8 0029AC48 C0 65 00 08 */ lfs f3, 8(r5)
/* 8029DCEC 0029AC4C EC 22 F8 28 */ fsubs f1, f2, f31
/* 8029DCF0 0029AC50 C0 45 00 00 */ lfs f2, 0(r5)
/* 8029DCF4 0029AC54 EF E6 01 72 */ fmuls f31, f6, f5
/* 8029DCF8 0029AC58 EC 00 68 28 */ fsubs f0, f0, f13
/* 8029DCFC 0029AC5C EC A6 00 72 */ fmuls f5, f6, f1
/* 8029DD00 0029AC60 38 81 00 2C */ addi r4, r1, 0x2c
/* 8029DD04 0029AC64 EC 2C F8 2A */ fadds f1, f12, f31
/* 8029DD08 0029AC68 38 A1 00 14 */ addi r5, r1, 0x14
/* 8029DD0C 0029AC6C EC 06 00 32 */ fmuls f0, f6, f0
/* 8029DD10 0029AC70 ED 4A 28 2A */ fadds f10, f10, f5
/* 8029DD14 0029AC74 EC C9 28 28 */ fsubs f6, f9, f5
/* 8029DD18 0029AC78 D0 21 00 08 */ stfs f1, 8(r1)
/* 8029DD1C 0029AC7C ED 08 00 2A */ fadds f8, f8, f0
/* 8029DD20 0029AC80 EC A7 00 28 */ fsubs f5, f7, f0
/* 8029DD24 0029AC84 D1 41 00 0C */ stfs f10, 0xc(r1)
/* 8029DD28 0029AC88 EC 0B F8 28 */ fsubs f0, f11, f31
/* 8029DD2C 0029AC8C ED 2A 20 2A */ fadds f9, f10, f4
/* 8029DD30 0029AC90 D1 01 00 10 */ stfs f8, 0x10(r1)
/* 8029DD34 0029AC94 EC E8 18 2A */ fadds f7, f8, f3
/* 8029DD38 0029AC98 EC 21 10 2A */ fadds f1, f1, f2
/* 8029DD3C 0029AC9C D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8029DD40 0029ACA0 EC 86 20 2A */ fadds f4, f6, f4
/* 8029DD44 0029ACA4 EC 65 18 2A */ fadds f3, f5, f3
/* 8029DD48 0029ACA8 D1 21 00 18 */ stfs f9, 0x18(r1)
/* 8029DD4C 0029ACAC EC 00 10 2A */ fadds f0, f0, f2
/* 8029DD50 0029ACB0 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 8029DD54 0029ACB4 D0 E1 00 1C */ stfs f7, 0x1c(r1)
/* 8029DD58 0029ACB8 D0 C1 00 24 */ stfs f6, 0x24(r1)
/* 8029DD5C 0029ACBC D0 A1 00 28 */ stfs f5, 0x28(r1)
/* 8029DD60 0029ACC0 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8029DD64 0029ACC4 D0 81 00 30 */ stfs f4, 0x30(r1)
/* 8029DD68 0029ACC8 D0 61 00 34 */ stfs f3, 0x34(r1)
/* 8029DD6C 0029ACCC 48 09 A7 9D */ bl __ct__6CAABoxFRC9CVector3fRC9CVector3f
/* 8029DD70 0029ACD0 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0
/* 8029DD74 0029ACD4 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8029DD78 0029ACD8 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 8029DD7C 0029ACDC 7C 08 03 A6 */ mtlr r0
/* 8029DD80 0029ACE0 38 21 00 50 */ addi r1, r1, 0x50
/* 8029DD84 0029ACE4 4E 80 00 20 */ blr
.global RenderShadowBuffer__16CProjectedShadowFR13CStateManagerRC10CModelDataRC12CTransform4fiRC9CVector3fff
RenderShadowBuffer__16CProjectedShadowFR13CStateManagerRC10CModelDataRC12CTransform4fiRC9CVector3fff:
/* 8029DD88 0029ACE8 94 21 FE 00 */ stwu r1, -0x200(r1)
/* 8029DD8C 0029ACEC 7C 08 02 A6 */ mflr r0
/* 8029DD90 0029ACF0 90 01 02 04 */ stw r0, 0x204(r1)
/* 8029DD94 0029ACF4 DB E1 01 F0 */ stfd f31, 0x1f0(r1)
/* 8029DD98 0029ACF8 F3 E1 01 F8 */ psq_st f31, 504(r1), 0, qr0
/* 8029DD9C 0029ACFC DB C1 01 E0 */ stfd f30, 0x1e0(r1)
/* 8029DDA0 0029AD00 F3 C1 01 E8 */ psq_st f30, 488(r1), 0, qr0
/* 8029DDA4 0029AD04 BE A1 01 B4 */ stmw r21, 0x1b4(r1)
/* 8029DDA8 0029AD08 FF E0 08 90 */ fmr f31, f1
/* 8029DDAC 0029AD0C 7C 77 1B 78 */ mr r23, r3
/* 8029DDB0 0029AD10 FF C0 10 90 */ fmr f30, f2
/* 8029DDB4 0029AD14 7C B9 2B 78 */ mr r25, r5
/* 8029DDB8 0029AD18 7C DA 33 78 */ mr r26, r6
/* 8029DDBC 0029AD1C 7C 98 23 78 */ mr r24, r4
/* 8029DDC0 0029AD20 7C FB 3B 78 */ mr r27, r7
/* 8029DDC4 0029AD24 7D 15 43 78 */ mr r21, r8
/* 8029DDC8 0029AD28 7F 24 CB 78 */ mr r4, r25
/* 8029DDCC 0029AD2C 7F 45 D3 78 */ mr r5, r26
/* 8029DDD0 0029AD30 38 61 00 28 */ addi r3, r1, 0x28
/* 8029DDD4 0029AD34 4B E7 79 E1 */ bl GetBounds__10CModelDataCFRC12CTransform4f
/* 8029DDD8 0029AD38 80 A1 00 28 */ lwz r5, 0x28(r1)
/* 8029DDDC 0029AD3C 38 00 00 01 */ li r0, 1
/* 8029DDE0 0029AD40 80 81 00 2C */ lwz r4, 0x2c(r1)
/* 8029DDE4 0029AD44 7E E3 BB 78 */ mr r3, r23
/* 8029DDE8 0029AD48 90 B7 00 68 */ stw r5, 0x68(r23)
/* 8029DDEC 0029AD4C 90 97 00 6C */ stw r4, 0x6c(r23)
/* 8029DDF0 0029AD50 80 81 00 30 */ lwz r4, 0x30(r1)
/* 8029DDF4 0029AD54 90 97 00 70 */ stw r4, 0x70(r23)
/* 8029DDF8 0029AD58 80 A1 00 34 */ lwz r5, 0x34(r1)
/* 8029DDFC 0029AD5C 80 81 00 38 */ lwz r4, 0x38(r1)
/* 8029DE00 0029AD60 90 B7 00 74 */ stw r5, 0x74(r23)
/* 8029DE04 0029AD64 90 97 00 78 */ stw r4, 0x78(r23)
/* 8029DE08 0029AD68 80 81 00 3C */ lwz r4, 0x3c(r1)
/* 8029DE0C 0029AD6C 90 97 00 7C */ stw r4, 0x7c(r23)
/* 8029DE10 0029AD70 D3 F7 00 84 */ stfs f31, 0x84(r23)
/* 8029DE14 0029AD74 C0 15 00 00 */ lfs f0, 0(r21)
/* 8029DE18 0029AD78 D0 17 00 88 */ stfs f0, 0x88(r23)
/* 8029DE1C 0029AD7C C0 15 00 04 */ lfs f0, 4(r21)
/* 8029DE20 0029AD80 D0 17 00 8C */ stfs f0, 0x8c(r23)
/* 8029DE24 0029AD84 C0 15 00 08 */ lfs f0, 8(r21)
/* 8029DE28 0029AD88 D0 17 00 90 */ stfs f0, 0x90(r23)
/* 8029DE2C 0029AD8C D3 D7 00 94 */ stfs f30, 0x94(r23)
/* 8029DE30 0029AD90 98 17 00 80 */ stb r0, 0x80(r23)
/* 8029DE34 0029AD94 48 00 03 E1 */ bl sub_8029e214
/* 8029DE38 0029AD98 3C 80 80 5A */ lis r4, lbl_805A61D4@ha
/* 8029DE3C 0029AD9C 38 61 01 34 */ addi r3, r1, 0x134
/* 8029DE40 0029ADA0 38 84 61 D4 */ addi r4, r4, lbl_805A61D4@l
/* 8029DE44 0029ADA4 48 07 4D 31 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8029DE48 0029ADA8 C3 ED A7 E0 */ lfs f31, lbl_805A93A0@sda21(r13)
/* 8029DE4C 0029ADAC C3 CD 9C 78 */ lfs f30, lbl_805A8838@sda21(r13)
/* 8029DE50 0029ADB0 48 06 C0 0D */ bl GetProjectionState__9CGraphicsFv
/* 8029DE54 0029ADB4 88 03 00 00 */ lbz r0, 0(r3)
/* 8029DE58 0029ADB8 3C 80 80 3F */ lis r4, lbl_803ED910@ha
/* 8029DE5C 0029ADBC 3B 84 D9 10 */ addi r28, r4, lbl_803ED910@l
/* 8029DE60 0029ADC0 3C A0 80 5A */ lis r5, lbl_805A6700@ha
/* 8029DE64 0029ADC4 98 01 00 58 */ stb r0, 0x58(r1)
/* 8029DE68 0029ADC8 3C 80 80 5A */ lis r4, lbl_805A6718@ha
/* 8029DE6C 0029ADCC 81 9C 00 00 */ lwz r12, 0(r28)
/* 8029DE70 0029ADD0 3C C0 80 5A */ lis r6, lbl_805A6724@ha
/* 8029DE74 0029ADD4 C0 03 00 04 */ lfs f0, 4(r3)
/* 8029DE78 0029ADD8 38 84 67 18 */ addi r4, r4, lbl_805A6718@l
/* 8029DE7C 0029ADDC 81 7C 00 04 */ lwz r11, 4(r28)
/* 8029DE80 0029ADE0 38 A5 67 00 */ addi r5, r5, lbl_805A6700@l
/* 8029DE84 0029ADE4 D0 01 00 5C */ stfs f0, 0x5c(r1)
/* 8029DE88 0029ADE8 38 C6 67 24 */ addi r6, r6, lbl_805A6724@l
/* 8029DE8C 0029ADEC 81 5C 00 08 */ lwz r10, 8(r28)
/* 8029DE90 0029ADF0 38 E1 00 1C */ addi r7, r1, 0x1c
/* 8029DE94 0029ADF4 C0 03 00 08 */ lfs f0, 8(r3)
/* 8029DE98 0029ADF8 81 3C 00 0C */ lwz r9, 0xc(r28)
/* 8029DE9C 0029ADFC D0 01 00 60 */ stfs f0, 0x60(r1)
/* 8029DEA0 0029AE00 81 1C 00 10 */ lwz r8, 0x10(r28)
/* 8029DEA4 0029AE04 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 8029DEA8 0029AE08 80 1C 00 14 */ lwz r0, 0x14(r28)
/* 8029DEAC 0029AE0C D0 01 00 64 */ stfs f0, 0x64(r1)
/* 8029DEB0 0029AE10 C0 82 C0 A0 */ lfs f4, lbl_805ADDC0@sda21(r2)
/* 8029DEB4 0029AE14 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 8029DEB8 0029AE18 91 81 00 40 */ stw r12, 0x40(r1)
/* 8029DEBC 0029AE1C D0 01 00 68 */ stfs f0, 0x68(r1)
/* 8029DEC0 0029AE20 C0 03 00 14 */ lfs f0, 0x14(r3)
/* 8029DEC4 0029AE24 91 61 00 44 */ stw r11, 0x44(r1)
/* 8029DEC8 0029AE28 D0 01 00 6C */ stfs f0, 0x6c(r1)
/* 8029DECC 0029AE2C C0 03 00 18 */ lfs f0, 0x18(r3)
/* 8029DED0 0029AE30 38 61 00 D4 */ addi r3, r1, 0xd4
/* 8029DED4 0029AE34 91 41 00 48 */ stw r10, 0x48(r1)
/* 8029DED8 0029AE38 D0 01 00 70 */ stfs f0, 0x70(r1)
/* 8029DEDC 0029AE3C C0 77 00 6C */ lfs f3, 0x6c(r23)
/* 8029DEE0 0029AE40 C0 57 00 78 */ lfs f2, 0x78(r23)
/* 8029DEE4 0029AE44 C0 37 00 68 */ lfs f1, 0x68(r23)
/* 8029DEE8 0029AE48 C0 17 00 74 */ lfs f0, 0x74(r23)
/* 8029DEEC 0029AE4C EC 43 10 2A */ fadds f2, f3, f2
/* 8029DEF0 0029AE50 AB F7 00 04 */ lha r31, 4(r23)
/* 8029DEF4 0029AE54 EC 01 00 2A */ fadds f0, f1, f0
/* 8029DEF8 0029AE58 AB D7 00 06 */ lha r30, 6(r23)
/* 8029DEFC 0029AE5C C0 77 00 7C */ lfs f3, 0x7c(r23)
/* 8029DF00 0029AE60 EC 24 00 B2 */ fmuls f1, f4, f2
/* 8029DF04 0029AE64 91 21 00 4C */ stw r9, 0x4c(r1)
/* 8029DF08 0029AE68 57 FD 08 3C */ slwi r29, r31, 1
/* 8029DF0C 0029AE6C EC 04 00 32 */ fmuls f0, f4, f0
/* 8029DF10 0029AE70 91 01 00 50 */ stw r8, 0x50(r1)
/* 8029DF14 0029AE74 57 DC 08 3C */ slwi r28, r30, 1
/* 8029DF18 0029AE78 90 01 00 54 */ stw r0, 0x54(r1)
/* 8029DF1C 0029AE7C D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8029DF20 0029AE80 D0 21 00 20 */ stfs f1, 0x20(r1)
/* 8029DF24 0029AE84 D0 61 00 24 */ stfs f3, 0x24(r1)
/* 8029DF28 0029AE88 48 07 4F 35 */ bl __ct__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3f_0
/* 8029DF2C 0029AE8C 38 61 01 04 */ addi r3, r1, 0x104
/* 8029DF30 0029AE90 38 81 00 D4 */ addi r4, r1, 0xd4
/* 8029DF34 0029AE94 48 07 4C 41 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8029DF38 0029AE98 38 61 01 04 */ addi r3, r1, 0x104
/* 8029DF3C 0029AE9C 48 06 E8 11 */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 8029DF40 0029AEA0 C0 22 C0 9C */ lfs f1, lbl_805ADDBC@sda21(r2)
/* 8029DF44 0029AEA4 C0 42 C0 98 */ lfs f2, lbl_805ADDB8@sda21(r2)
/* 8029DF48 0029AEA8 48 06 C4 99 */ bl SetDepthRange__9CGraphicsFff
/* 8029DF4C 0029AEAC C0 77 00 74 */ lfs f3, 0x74(r23)
/* 8029DF50 0029AEB0 C0 57 00 68 */ lfs f2, 0x68(r23)
/* 8029DF54 0029AEB4 C0 37 00 78 */ lfs f1, 0x78(r23)
/* 8029DF58 0029AEB8 C0 17 00 6C */ lfs f0, 0x6c(r23)
/* 8029DF5C 0029AEBC EC 43 10 28 */ fsubs f2, f3, f2
/* 8029DF60 0029AEC0 C0 82 C0 A0 */ lfs f4, lbl_805ADDC0@sda21(r2)
/* 8029DF64 0029AEC4 EC 61 00 28 */ fsubs f3, f1, f0
/* 8029DF68 0029AEC8 C0 37 00 7C */ lfs f1, 0x7c(r23)
/* 8029DF6C 0029AECC C0 17 00 70 */ lfs f0, 0x70(r23)
/* 8029DF70 0029AED0 EC 44 00 B2 */ fmuls f2, f4, f2
/* 8029DF74 0029AED4 C0 C2 C0 A4 */ lfs f6, lbl_805ADDC4@sda21(r2)
/* 8029DF78 0029AED8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8029DF7C 0029AEDC EC 64 00 F2 */ fmuls f3, f4, f3
/* 8029DF80 0029AEE0 C0 A2 C0 9C */ lfs f5, lbl_805ADDBC@sda21(r2)
/* 8029DF84 0029AEE4 FC 20 10 50 */ fneg f1, f2
/* 8029DF88 0029AEE8 EC C6 00 2A */ fadds f6, f6, f0
/* 8029DF8C 0029AEEC FC 80 18 50 */ fneg f4, f3
/* 8029DF90 0029AEF0 48 06 E5 C5 */ bl SetOrtho__9CGraphicsFffffff
/* 8029DF94 0029AEF4 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 8029DF98 0029AEF8 3C 80 80 5A */ lis r4, lbl_805A6500@ha
/* 8029DF9C 0029AEFC 38 84 65 00 */ addi r4, r4, lbl_805A6500@l
/* 8029DFA0 0029AF00 7F A6 EB 78 */ mr r6, r29
/* 8029DFA4 0029AF04 81 83 00 00 */ lwz r12, 0(r3)
/* 8029DFA8 0029AF08 7F 87 E3 78 */ mr r7, r28
/* 8029DFAC 0029AF0C A0 04 00 06 */ lhz r0, 6(r4)
/* 8029DFB0 0029AF10 38 80 00 00 */ li r4, 0
/* 8029DFB4 0029AF14 81 8C 00 5C */ lwz r12, 0x5c(r12)
/* 8029DFB8 0029AF18 7C BC 00 50 */ subf r5, r28, r0
/* 8029DFBC 0029AF1C 7D 89 03 A6 */ mtctr r12
/* 8029DFC0 0029AF20 4E 80 04 21 */ bctrl
/* 8029DFC4 0029AF24 38 60 00 01 */ li r3, 1
/* 8029DFC8 0029AF28 48 06 AC C9 */ bl SetNumTevStages__3CGXFUc
/* 8029DFCC 0029AF2C 38 60 00 01 */ li r3, 1
/* 8029DFD0 0029AF30 48 06 AE 45 */ bl SetNumTexGens__3CGXFUc
/* 8029DFD4 0029AF34 38 60 00 00 */ li r3, 0
/* 8029DFD8 0029AF38 48 06 AE 79 */ bl SetNumChans__3CGXFUc
/* 8029DFDC 0029AF3C 48 06 E9 A1 */ bl DisableAllLights__9CGraphicsFv
/* 8029DFE0 0029AF40 38 60 00 00 */ li r3, 0
/* 8029DFE4 0029AF44 48 06 A6 AD */ bl SetNumIndStages__3CGXFUc
/* 8029DFE8 0029AF48 38 60 00 00 */ li r3, 0
/* 8029DFEC 0029AF4C 48 06 A7 59 */ bl SetTevDirect__3CGXF13_GXTevStageID
/* 8029DFF0 0029AF50 38 60 00 00 */ li r3, 0
/* 8029DFF4 0029AF54 38 80 00 0F */ li r4, 0xf
/* 8029DFF8 0029AF58 38 A0 00 0F */ li r5, 0xf
/* 8029DFFC 0029AF5C 38 C0 00 0F */ li r6, 0xf
/* 8029E000 0029AF60 38 E0 00 0C */ li r7, 0xc
/* 8029E004 0029AF64 48 06 AB E9 */ bl SetTevColorIn__3CGXF13_GXTevStageID14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg
/* 8029E008 0029AF68 38 60 00 00 */ li r3, 0
/* 8029E00C 0029AF6C 38 80 00 07 */ li r4, 7
/* 8029E010 0029AF70 38 A0 00 07 */ li r5, 7
/* 8029E014 0029AF74 38 C0 00 07 */ li r6, 7
/* 8029E018 0029AF78 38 E0 00 06 */ li r7, 6
/* 8029E01C 0029AF7C 48 06 AB 79 */ bl SetTevAlphaIn__3CGXF13_GXTevStageID14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg
/* 8029E020 0029AF80 38 60 00 00 */ li r3, 0
/* 8029E024 0029AF84 38 80 00 00 */ li r4, 0
/* 8029E028 0029AF88 48 06 A9 75 */ bl SetTevKAlphaSel__3CGXF13_GXTevStageID15_GXTevKAlphaSel
/* 8029E02C 0029AF8C 38 60 00 00 */ li r3, 0
/* 8029E030 0029AF90 48 06 9C 21 */ bl SetStandardTevColorAlphaOp__3CGXF13_GXTevStageID
/* 8029E034 0029AF94 38 60 00 00 */ li r3, 0
/* 8029E038 0029AF98 38 80 00 FF */ li r4, 0xff
/* 8029E03C 0029AF9C 38 A0 00 FF */ li r5, 0xff
/* 8029E040 0029AFA0 38 C0 00 FF */ li r6, 0xff
/* 8029E044 0029AFA4 48 06 A9 09 */ bl SetTevOrder__3CGXF13_GXTevStageID13_GXTexCoordID11_GXTexMapID12_GXChannelID
/* 8029E048 0029AFA8 38 60 00 00 */ li r3, 0
/* 8029E04C 0029AFAC 38 80 00 01 */ li r4, 1
/* 8029E050 0029AFB0 38 A0 00 00 */ li r5, 0
/* 8029E054 0029AFB4 38 C0 00 3C */ li r6, 0x3c
/* 8029E058 0029AFB8 38 E0 00 00 */ li r7, 0
/* 8029E05C 0029AFBC 39 00 00 7D */ li r8, 0x7d
/* 8029E060 0029AFC0 48 06 A6 6D */ bl SetTexCoordGen__3CGXF13_GXTexCoordID13_GXTexGenType12_GXTexGenSrc9_GXTexMtxUc11_GXPTTexMtx
/* 8029E064 0029AFC4 38 60 00 01 */ li r3, 1
/* 8029E068 0029AFC8 38 80 00 01 */ li r4, 1
/* 8029E06C 0029AFCC 38 A0 00 00 */ li r5, 0
/* 8029E070 0029AFD0 38 C0 00 00 */ li r6, 0
/* 8029E074 0029AFD4 48 06 A8 5D */ bl SetBlendMode__3CGXF12_GXBlendMode14_GXBlendFactor14_GXBlendFactor10_GXLogicOp
/* 8029E078 0029AFD8 38 60 00 07 */ li r3, 7
/* 8029E07C 0029AFDC 38 80 00 00 */ li r4, 0
/* 8029E080 0029AFE0 38 A0 00 00 */ li r5, 0
/* 8029E084 0029AFE4 38 C0 00 07 */ li r6, 7
/* 8029E088 0029AFE8 38 E0 00 00 */ li r7, 0
/* 8029E08C 0029AFEC 48 06 A7 89 */ bl SetAlphaCompare__3CGXF10_GXCompareUc10_GXAlphaOp10_GXCompareUc
/* 8029E090 0029AFF0 82 D9 00 10 */ lwz r22, 0x10(r25)
/* 8029E094 0029AFF4 7F 23 CB 78 */ mr r3, r25
/* 8029E098 0029AFF8 38 80 00 00 */ li r4, 0
/* 8029E09C 0029AFFC 4B E7 6E C1 */ bl PickAnimatedModel__10CModelDataCFQ210CModelData11EWhichModel
/* 8029E0A0 0029B000 38 00 00 00 */ li r0, 0
/* 8029E0A4 0029B004 7C 75 1B 78 */ mr r21, r3
/* 8029E0A8 0029B008 98 01 01 AC */ stb r0, 0x1ac(r1)
/* 8029E0AC 0029B00C 7E C3 B3 78 */ mr r3, r22
/* 8029E0B0 0029B010 38 A1 01 64 */ addi r5, r1, 0x164
/* 8029E0B4 0029B014 7E A4 AB 78 */ mr r4, r21
/* 8029E0B8 0029B018 38 C0 00 00 */ li r6, 0
/* 8029E0BC 0029B01C 4B D8 E8 BD */ bl "SetupRender__9CAnimDataCFRC13CSkinnedModelRCQ24rstl37optional_object<18CVertexMorphEffect>PCf"
/* 8029E0C0 0029B020 38 61 01 64 */ addi r3, r1, 0x164
/* 8029E0C4 0029B024 38 80 FF FF */ li r4, -1
/* 8029E0C8 0029B028 4B DD 9B C5 */ bl sub_80077c8c
/* 8029E0CC 0029B02C 7F 60 00 34 */ cntlzw r0, r27
/* 8029E0D0 0029B030 C0 59 00 00 */ lfs f2, 0(r25)
/* 8029E0D4 0029B034 C0 39 00 04 */ lfs f1, 4(r25)
/* 8029E0D8 0029B038 54 00 D9 7E */ srwi r0, r0, 5
/* 8029E0DC 0029B03C C0 19 00 08 */ lfs f0, 8(r25)
/* 8029E0E0 0029B040 38 61 00 74 */ addi r3, r1, 0x74
/* 8029E0E4 0029B044 92 A1 00 08 */ stw r21, 8(r1)
/* 8029E0E8 0029B048 38 81 00 10 */ addi r4, r1, 0x10
/* 8029E0EC 0029B04C 98 01 00 0C */ stb r0, 0xc(r1)
/* 8029E0F0 0029B050 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 8029E0F4 0029B054 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 8029E0F8 0029B058 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8029E0FC 0029B05C 48 07 50 C9 */ bl Scale__12CTransform4fFRC9CVector3f
/* 8029E100 0029B060 7F 44 D3 78 */ mr r4, r26
/* 8029E104 0029B064 38 61 00 A4 */ addi r3, r1, 0xa4
/* 8029E108 0029B068 38 A1 00 74 */ addi r5, r1, 0x74
/* 8029E10C 0029B06C 48 07 48 45 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8029E110 0029B070 38 61 00 A4 */ addi r3, r1, 0xa4
/* 8029E114 0029B074 48 06 E4 CD */ bl SetModelMatrix__9CGraphicsFRC12CTransform4f
/* 8029E118 0029B078 3C 80 80 2A */ lis r4, ModelDrawCallback__16CProjectedShadowFPCfPCfPC18SShadowDrawContext@ha
/* 8029E11C 0029B07C 7E A3 AB 78 */ mr r3, r21
/* 8029E120 0029B080 38 84 E3 04 */ addi r4, r4, ModelDrawCallback__16CProjectedShadowFPCfPCfPC18SShadowDrawContext@l
/* 8029E124 0029B084 38 A1 00 08 */ addi r5, r1, 8
/* 8029E128 0029B088 48 0B 4D F9 */ bl DoDrawCallback__13CSkinnedModelF14FCustomDrawCPv
/* 8029E12C 0029B08C 48 06 B6 D9 */ bl GetUseVideoFilter__9CGraphicsFv
/* 8029E130 0029B090 7C 79 1B 78 */ mr r25, r3
/* 8029E134 0029B094 38 60 00 00 */ li r3, 0
/* 8029E138 0029B098 48 06 B6 D5 */ bl SetUseVideoFilter__9CGraphicsFb
/* 8029E13C 0029B09C 38 60 00 01 */ li r3, 1
/* 8029E140 0029B0A0 38 80 00 03 */ li r4, 3
/* 8029E144 0029B0A4 38 A0 00 01 */ li r5, 1
/* 8029E148 0029B0A8 48 06 A7 35 */ bl SetZMode__3CGXFb10_GXCompareb
/* 8029E14C 0029B0AC 57 A5 04 3E */ clrlwi r5, r29, 0x10
/* 8029E150 0029B0B0 57 86 04 3E */ clrlwi r6, r28, 0x10
/* 8029E154 0029B0B4 38 60 00 00 */ li r3, 0
/* 8029E158 0029B0B8 38 80 00 00 */ li r4, 0
/* 8029E15C 0029B0BC 48 0D AC 59 */ bl GXSetTexCopySrc
/* 8029E160 0029B0C0 57 E3 04 3E */ clrlwi r3, r31, 0x10
/* 8029E164 0029B0C4 57 C4 04 3E */ clrlwi r4, r30, 0x10
/* 8029E168 0029B0C8 38 A0 00 20 */ li r5, 0x20
/* 8029E16C 0029B0CC 38 C0 00 01 */ li r6, 1
/* 8029E170 0029B0D0 48 0D AD 11 */ bl GXSetTexCopyDst
/* 8029E174 0029B0D4 88 17 00 0A */ lbz r0, 0xa(r23)
/* 8029E178 0029B0D8 38 60 00 01 */ li r3, 1
/* 8029E17C 0029B0DC 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8029E180 0029B0E0 7E E3 BB 78 */ mr r3, r23
/* 8029E184 0029B0E4 98 17 00 0A */ stb r0, 0xa(r23)
/* 8029E188 0029B0E8 38 80 00 00 */ li r4, 0
/* 8029E18C 0029B0EC 48 07 04 49 */ bl GetBitMapData__8CTextureFi
/* 8029E190 0029B0F0 38 80 00 01 */ li r4, 1
/* 8029E194 0029B0F4 48 0D B3 A1 */ bl GXCopyTex
/* 8029E198 0029B0F8 7E E3 BB 78 */ mr r3, r23
/* 8029E19C 0029B0FC 48 07 07 81 */ bl UnLock__8CTextureFv
/* 8029E1A0 0029B100 48 0D A3 C5 */ bl GXPixModeSync
/* 8029E1A4 0029B104 57 23 06 3E */ clrlwi r3, r25, 0x18
/* 8029E1A8 0029B108 48 06 B6 65 */ bl SetUseVideoFilter__9CGraphicsFb
/* 8029E1AC 0029B10C 38 61 01 34 */ addi r3, r1, 0x134
/* 8029E1B0 0029B110 48 06 E5 9D */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 8029E1B4 0029B114 38 61 00 58 */ addi r3, r1, 0x58
/* 8029E1B8 0029B118 48 06 BC 49 */ bl SetProjectionState__9CGraphicsFRCQ29CGraphics16CProjectionState
/* 8029E1BC 0029B11C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 8029E1C0 0029B120 80 81 00 40 */ lwz r4, 0x40(r1)
/* 8029E1C4 0029B124 81 83 00 00 */ lwz r12, 0(r3)
/* 8029E1C8 0029B128 80 A1 00 44 */ lwz r5, 0x44(r1)
/* 8029E1CC 0029B12C 81 8C 00 5C */ lwz r12, 0x5c(r12)
/* 8029E1D0 0029B130 80 C1 00 48 */ lwz r6, 0x48(r1)
/* 8029E1D4 0029B134 80 E1 00 4C */ lwz r7, 0x4c(r1)
/* 8029E1D8 0029B138 7D 89 03 A6 */ mtctr r12
/* 8029E1DC 0029B13C 4E 80 04 21 */ bctrl
/* 8029E1E0 0029B140 FC 20 F8 90 */ fmr f1, f31
/* 8029E1E4 0029B144 FC 40 F0 90 */ fmr f2, f30
/* 8029E1E8 0029B148 48 06 C1 F9 */ bl SetDepthRange__9CGraphicsFff
/* 8029E1EC 0029B14C 92 F8 0F 7C */ stw r23, 0xf7c(r24)
/* 8029E1F0 0029B150 E3 E1 01 F8 */ psq_l f31, 504(r1), 0, qr0
/* 8029E1F4 0029B154 CB E1 01 F0 */ lfd f31, 0x1f0(r1)
/* 8029E1F8 0029B158 E3 C1 01 E8 */ psq_l f30, 488(r1), 0, qr0
/* 8029E1FC 0029B15C CB C1 01 E0 */ lfd f30, 0x1e0(r1)
/* 8029E200 0029B160 BA A1 01 B4 */ lmw r21, 0x1b4(r1)
/* 8029E204 0029B164 80 01 02 04 */ lwz r0, 0x204(r1)
/* 8029E208 0029B168 7C 08 03 A6 */ mtlr r0
/* 8029E20C 0029B16C 38 21 02 00 */ addi r1, r1, 0x200
/* 8029E210 0029B170 4E 80 00 20 */ blr
.global sub_8029e214
sub_8029e214:
/* 8029E214 0029B174 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8029E218 0029B178 7C 08 02 A6 */ mflr r0
/* 8029E21C 0029B17C C8 22 C0 A8 */ lfd f1, lbl_805ADDC8@sda21(r2)
/* 8029E220 0029B180 90 01 00 54 */ stw r0, 0x54(r1)
/* 8029E224 0029B184 3C 00 43 30 */ lis r0, 0x4330
/* 8029E228 0029B188 C0 E2 C0 98 */ lfs f7, lbl_805ADDB8@sda21(r2)
/* 8029E22C 0029B18C 38 81 00 14 */ addi r4, r1, 0x14
/* 8029E230 0029B190 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8029E234 0029B194 7C 7F 1B 78 */ mr r31, r3
/* 8029E238 0029B198 A8 A3 00 04 */ lha r5, 4(r3)
/* 8029E23C 0029B19C 38 61 00 20 */ addi r3, r1, 0x20
/* 8029E240 0029B1A0 90 01 00 38 */ stw r0, 0x38(r1)
/* 8029E244 0029B1A4 38 05 FF FE */ addi r0, r5, -2
/* 8029E248 0029B1A8 C0 DF 00 78 */ lfs f6, 0x78(r31)
/* 8029E24C 0029B1AC 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8029E250 0029B1B0 C0 BF 00 6C */ lfs f5, 0x6c(r31)
/* 8029E254 0029B1B4 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8029E258 0029B1B8 38 A1 00 08 */ addi r5, r1, 8
/* 8029E25C 0029B1BC C0 9F 00 74 */ lfs f4, 0x74(r31)
/* 8029E260 0029B1C0 C8 01 00 38 */ lfd f0, 0x38(r1)
/* 8029E264 0029B1C4 C0 7F 00 68 */ lfs f3, 0x68(r31)
/* 8029E268 0029B1C8 EC 40 08 28 */ fsubs f2, f0, f1
/* 8029E26C 0029B1CC C0 1F 00 7C */ lfs f0, 0x7c(r31)
/* 8029E270 0029B1D0 EC 26 28 28 */ fsubs f1, f6, f5
/* 8029E274 0029B1D4 ED 27 10 24 */ fdivs f9, f7, f2
/* 8029E278 0029B1D8 C0 42 C0 9C */ lfs f2, lbl_805ADDBC@sda21(r2)
/* 8029E27C 0029B1DC EC E9 00 72 */ fmuls f7, f9, f1
/* 8029E280 0029B1E0 EC 24 18 28 */ fsubs f1, f4, f3
/* 8029E284 0029B1E4 ED 00 10 2A */ fadds f8, f0, f2
/* 8029E288 0029B1E8 EC C6 38 2A */ fadds f6, f6, f7
/* 8029E28C 0029B1EC EC 09 00 72 */ fmuls f0, f9, f1
/* 8029E290 0029B1F0 D1 01 00 10 */ stfs f8, 0x10(r1)
/* 8029E294 0029B1F4 EC A5 38 28 */ fsubs f5, f5, f7
/* 8029E298 0029B1F8 EC 24 00 2A */ fadds f1, f4, f0
/* 8029E29C 0029B1FC D0 C1 00 0C */ stfs f6, 0xc(r1)
/* 8029E2A0 0029B200 EC 03 00 28 */ fsubs f0, f3, f0
/* 8029E2A4 0029B204 D0 21 00 08 */ stfs f1, 8(r1)
/* 8029E2A8 0029B208 C0 3F 00 70 */ lfs f1, 0x70(r31)
/* 8029E2AC 0029B20C EC 21 10 28 */ fsubs f1, f1, f2
/* 8029E2B0 0029B210 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8029E2B4 0029B214 D0 A1 00 18 */ stfs f5, 0x18(r1)
/* 8029E2B8 0029B218 D0 21 00 1C */ stfs f1, 0x1c(r1)
/* 8029E2BC 0029B21C 48 09 A2 4D */ bl __ct__6CAABoxFRC9CVector3fRC9CVector3f
/* 8029E2C0 0029B220 80 61 00 20 */ lwz r3, 0x20(r1)
/* 8029E2C4 0029B224 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8029E2C8 0029B228 90 7F 00 68 */ stw r3, 0x68(r31)
/* 8029E2CC 0029B22C 90 1F 00 6C */ stw r0, 0x6c(r31)
/* 8029E2D0 0029B230 80 01 00 28 */ lwz r0, 0x28(r1)
/* 8029E2D4 0029B234 90 1F 00 70 */ stw r0, 0x70(r31)
/* 8029E2D8 0029B238 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 8029E2DC 0029B23C 80 01 00 30 */ lwz r0, 0x30(r1)
/* 8029E2E0 0029B240 90 7F 00 74 */ stw r3, 0x74(r31)
/* 8029E2E4 0029B244 90 1F 00 78 */ stw r0, 0x78(r31)
/* 8029E2E8 0029B248 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8029E2EC 0029B24C 90 1F 00 7C */ stw r0, 0x7c(r31)
/* 8029E2F0 0029B250 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8029E2F4 0029B254 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8029E2F8 0029B258 7C 08 03 A6 */ mtlr r0
/* 8029E2FC 0029B25C 38 21 00 50 */ addi r1, r1, 0x50
/* 8029E300 0029B260 4E 80 00 20 */ blr
.global ModelDrawCallback__16CProjectedShadowFPCfPCfPC18SShadowDrawContext
ModelDrawCallback__16CProjectedShadowFPCfPCfPC18SShadowDrawContext:
/* 8029E304 0029B264 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8029E308 0029B268 7C 08 02 A6 */ mflr r0
/* 8029E30C 0029B26C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8029E310 0029B270 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8029E314 0029B274 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8029E318 0029B278 7C BE 2B 78 */ mr r30, r5
/* 8029E31C 0029B27C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8029E320 0029B280 7C 9D 23 78 */ mr r29, r4
/* 8029E324 0029B284 93 81 00 10 */ stw r28, 0x10(r1)
/* 8029E328 0029B288 7C 7C 1B 78 */ mr r28, r3
/* 8029E32C 0029B28C 80 65 00 00 */ lwz r3, 0(r5)
/* 8029E330 0029B290 80 63 00 0C */ lwz r3, 0xc(r3)
/* 8029E334 0029B294 83 E3 00 28 */ lwz r31, 0x28(r3)
/* 8029E338 0029B298 48 0B 6D E9 */ bl UpdateLastFrame__6CModelFv
/* 8029E33C 0029B29C 88 1E 00 04 */ lbz r0, 4(r30)
/* 8029E340 0029B2A0 7F E3 FB 78 */ mr r3, r31
/* 8029E344 0029B2A4 7F 84 E3 78 */ mr r4, r28
/* 8029E348 0029B2A8 7F A5 EB 78 */ mr r5, r29
/* 8029E34C 0029B2AC 28 00 00 00 */ cmplwi r0, 0
/* 8029E350 0029B2B0 38 C0 00 00 */ li r6, 0
/* 8029E354 0029B2B4 41 82 00 08 */ beq lbl_8029E35C
/* 8029E358 0029B2B8 38 C0 00 02 */ li r6, 2
lbl_8029E35C:
/* 8029E35C 0029B2BC 48 06 86 95 */ bl DrawFlat__10CCubeModelCFPCfPCf17ESurfaceSelection
/* 8029E360 0029B2C0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8029E364 0029B2C4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8029E368 0029B2C8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8029E36C 0029B2CC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8029E370 0029B2D0 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8029E374 0029B2D4 7C 08 03 A6 */ mtlr r0
/* 8029E378 0029B2D8 38 21 00 20 */ addi r1, r1, 0x20
/* 8029E37C 0029B2DC 4E 80 00 20 */ blr
.global __dt__16CProjectedShadowFv
__dt__16CProjectedShadowFv:
/* 8029E380 0029B2E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8029E384 0029B2E4 7C 08 02 A6 */ mflr r0
/* 8029E388 0029B2E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029E38C 0029B2EC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8029E390 0029B2F0 7C 9F 23 78 */ mr r31, r4
/* 8029E394 0029B2F4 93 C1 00 08 */ stw r30, 8(r1)
/* 8029E398 0029B2F8 7C 7E 1B 79 */ or. r30, r3, r3
/* 8029E39C 0029B2FC 41 82 00 24 */ beq lbl_8029E3C0
/* 8029E3A0 0029B300 48 06 FD 6D */ bl sub_8030e10c
/* 8029E3A4 0029B304 7F C3 F3 78 */ mr r3, r30
/* 8029E3A8 0029B308 38 80 FF FF */ li r4, -1
/* 8029E3AC 0029B30C 48 07 16 4D */ bl __dt__8CTextureFv
/* 8029E3B0 0029B310 7F E0 07 35 */ extsh. r0, r31
/* 8029E3B4 0029B314 40 81 00 0C */ ble lbl_8029E3C0
/* 8029E3B8 0029B318 7F C3 F3 78 */ mr r3, r30
/* 8029E3BC 0029B31C 48 07 75 75 */ bl Free__7CMemoryFPCv
lbl_8029E3C0:
/* 8029E3C0 0029B320 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8029E3C4 0029B324 7F C3 F3 78 */ mr r3, r30
/* 8029E3C8 0029B328 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8029E3CC 0029B32C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8029E3D0 0029B330 7C 08 03 A6 */ mtlr r0
/* 8029E3D4 0029B334 38 21 00 10 */ addi r1, r1, 0x10
/* 8029E3D8 0029B338 4E 80 00 20 */ blr
.global __ct__16CProjectedShadowFv
__ct__16CProjectedShadowFv:
/* 8029E3DC 0029B33C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8029E3E0 0029B340 7C 08 02 A6 */ mflr r0
/* 8029E3E4 0029B344 38 E0 00 01 */ li r7, 1
/* 8029E3E8 0029B348 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029E3EC 0029B34C 7C A0 2B 78 */ mr r0, r5
/* 8029E3F0 0029B350 7C 85 07 34 */ extsh r5, r4
/* 8029E3F4 0029B354 38 80 00 00 */ li r4, 0
/* 8029E3F8 0029B358 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8029E3FC 0029B35C 7C DF 33 78 */ mr r31, r6
/* 8029E400 0029B360 7C 06 07 34 */ extsh r6, r0
/* 8029E404 0029B364 93 C1 00 08 */ stw r30, 8(r1)
/* 8029E408 0029B368 7C 7E 1B 78 */ mr r30, r3
/* 8029E40C 0029B36C 48 07 1A 21 */ bl __ct__8CTextureF12ETexelFormatssi
/* 8029E410 0029B370 3C 80 80 5A */ lis r4, lbl_805A6754@ha
/* 8029E414 0029B374 38 00 00 00 */ li r0, 0
/* 8029E418 0029B378 38 A4 67 54 */ addi r5, r4, lbl_805A6754@l
/* 8029E41C 0029B37C 3C 60 80 5A */ lis r3, skZero3f@ha
/* 8029E420 0029B380 C0 05 00 00 */ lfs f0, 0(r5)
/* 8029E424 0029B384 38 83 66 A0 */ addi r4, r3, skZero3f@l
/* 8029E428 0029B388 C0 42 C0 98 */ lfs f2, lbl_805ADDB8@sda21(r2)
/* 8029E42C 0029B38C 7F C3 F3 78 */ mr r3, r30
/* 8029E430 0029B390 D0 1E 00 68 */ stfs f0, 0x68(r30)
/* 8029E434 0029B394 C0 02 C0 9C */ lfs f0, lbl_805ADDBC@sda21(r2)
/* 8029E438 0029B398 C0 25 00 04 */ lfs f1, 4(r5)
/* 8029E43C 0029B39C D0 3E 00 6C */ stfs f1, 0x6c(r30)
/* 8029E440 0029B3A0 C0 25 00 08 */ lfs f1, 8(r5)
/* 8029E444 0029B3A4 D0 3E 00 70 */ stfs f1, 0x70(r30)
/* 8029E448 0029B3A8 C0 25 00 0C */ lfs f1, 0xc(r5)
/* 8029E44C 0029B3AC D0 3E 00 74 */ stfs f1, 0x74(r30)
/* 8029E450 0029B3B0 C0 25 00 10 */ lfs f1, 0x10(r5)
/* 8029E454 0029B3B4 D0 3E 00 78 */ stfs f1, 0x78(r30)
/* 8029E458 0029B3B8 C0 25 00 14 */ lfs f1, 0x14(r5)
/* 8029E45C 0029B3BC D0 3E 00 7C */ stfs f1, 0x7c(r30)
/* 8029E460 0029B3C0 98 1E 00 80 */ stb r0, 0x80(r30)
/* 8029E464 0029B3C4 9B FE 00 81 */ stb r31, 0x81(r30)
/* 8029E468 0029B3C8 D0 5E 00 84 */ stfs f2, 0x84(r30)
/* 8029E46C 0029B3CC C0 24 00 00 */ lfs f1, 0(r4)
/* 8029E470 0029B3D0 D0 3E 00 88 */ stfs f1, 0x88(r30)
/* 8029E474 0029B3D4 C0 24 00 04 */ lfs f1, 4(r4)
/* 8029E478 0029B3D8 D0 3E 00 8C */ stfs f1, 0x8c(r30)
/* 8029E47C 0029B3DC C0 24 00 08 */ lfs f1, 8(r4)
/* 8029E480 0029B3E0 D0 3E 00 90 */ stfs f1, 0x90(r30)
/* 8029E484 0029B3E4 D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8029E488 0029B3E8 D0 5E 00 98 */ stfs f2, 0x98(r30)
/* 8029E48C 0029B3EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8029E490 0029B3F0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8029E494 0029B3F4 83 C1 00 08 */ lwz r30, 8(r1)
/* 8029E498 0029B3F8 7C 08 03 A6 */ mtlr r0
/* 8029E49C 0029B3FC 38 21 00 10 */ addi r1, r1, 0x10
/* 8029E4A0 0029B400 4E 80 00 20 */ blr