.include "macros.inc" .section .ctors, "wa" lbl_ctor: .4byte __sinit_DolphinCSkinnedModel_cpp .section .data .balign 8 .global lbl_803EF718 lbl_803EF718: # ROM: 0x3EC718 .4byte 0 .4byte 0 .4byte __dt__13CSkinnedModelFv .4byte 0 .section .bss .balign 8 .lcomm sStaticSkinningData__8Skinning, 0x8000C, 4 .lcomm sSkinningBuffer__8Skinning, 0x28, 4 .lcomm sAllocations__8Skinning, 0x10, 4 .lcomm lbl_80540004, 0xC, 4 .section .sbss, "wa" .balign 8 .global lbl_805A95F0 lbl_805A95F0: .skip 0x4 .global lbl_805A95F4 lbl_805A95F4: .skip 0x4 .global lbl_805A95F8 lbl_805A95F8: .skip 0x4 .global lbl_805A95FC lbl_805A95FC: .skip 0x4 .global lbl_805A9600 lbl_805A9600: .skip 0x1 .global lbl_805A9601 lbl_805A9601: .skip 0x7 .section .text, "ax" .global sub_80352668 sub_80352668: /* 80352668 0034F5C8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8035266C 0034F5CC 7C 08 02 A6 */ mflr r0 /* 80352670 0034F5D0 3C A0 80 3E */ lis r5, lbl_803D82F8@ha /* 80352674 0034F5D4 90 01 00 24 */ stw r0, 0x24(r1) /* 80352678 0034F5D8 38 A5 82 F8 */ addi r5, r5, lbl_803D82F8@l /* 8035267C 0034F5DC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80352680 0034F5E0 7C 9F 23 78 */ mr r31, r4 /* 80352684 0034F5E4 93 C1 00 18 */ stw r30, 0x18(r1) /* 80352688 0034F5E8 93 A1 00 14 */ stw r29, 0x14(r1) /* 8035268C 0034F5EC 80 E3 00 18 */ lwz r7, 0x18(r3) /* 80352690 0034F5F0 3C 60 80 3D */ lis r3, kUnknownType__10CCallStack@ha /* 80352694 0034F5F4 38 C3 6A A8 */ addi r6, r3, kUnknownType__10CCallStack@l /* 80352698 0034F5F8 80 07 00 14 */ lwz r0, 0x14(r7) /* 8035269C 0034F5FC 38 61 00 08 */ addi r3, r1, 8 /* 803526A0 0034F600 83 C7 00 10 */ lwz r30, 0x10(r7) /* 803526A4 0034F604 1C 80 00 0C */ mulli r4, r0, 0xc /* 803526A8 0034F608 38 04 00 1F */ addi r0, r4, 0x1f /* 803526AC 0034F60C 38 80 FF FF */ li r4, -1 /* 803526B0 0034F610 54 1D 00 34 */ rlwinm r29, r0, 0, 0, 0x1a /* 803526B4 0034F614 4B F8 3D 21 */ bl __ct__10CCallStackFUiPCcPCc /* 803526B8 0034F618 1C BE 00 0C */ mulli r5, r30, 0xc /* 803526BC 0034F61C 38 80 00 02 */ li r4, 2 /* 803526C0 0034F620 7C 67 1B 78 */ mr r7, r3 /* 803526C4 0034F624 38 C0 00 00 */ li r6, 0 /* 803526C8 0034F628 38 05 00 1F */ addi r0, r5, 0x1f /* 803526CC 0034F62C 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a /* 803526D0 0034F630 38 A0 00 01 */ li r5, 1 /* 803526D4 0034F634 7C 60 EA 14 */ add r3, r0, r29 /* 803526D8 0034F638 4B FC 32 BD */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack /* 803526DC 0034F63C 28 1F 00 00 */ cmplwi r31, 0 /* 803526E0 0034F640 41 82 00 0C */ beq lbl_803526EC /* 803526E4 0034F644 7C 03 EA 14 */ add r0, r3, r29 /* 803526E8 0034F648 90 1F 00 00 */ stw r0, 0(r31) lbl_803526EC: /* 803526EC 0034F64C 80 01 00 24 */ lwz r0, 0x24(r1) /* 803526F0 0034F650 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 803526F4 0034F654 83 C1 00 18 */ lwz r30, 0x18(r1) /* 803526F8 0034F658 83 A1 00 14 */ lwz r29, 0x14(r1) /* 803526FC 0034F65C 7C 08 03 A6 */ mtlr r0 /* 80352700 0034F660 38 21 00 20 */ addi r1, r1, 0x20 /* 80352704 0034F664 4E 80 00 20 */ blr .global ClearPointGeneratorFunc__13CSkinnedModelFv ClearPointGeneratorFunc__13CSkinnedModelFv: /* 80352708 0034F668 38 00 00 00 */ li r0, 0 /* 8035270C 0034F66C 90 0D AA 30 */ stw r0, lbl_805A95F0@sda21(r13) /* 80352710 0034F670 4E 80 00 20 */ blr .global SetPointGeneratorFunc__13CSkinnedModelFUiPFUiPC9CVector3fPC9CVector3fi_v SetPointGeneratorFunc__13CSkinnedModelFUiPFUiPC9CVector3fPC9CVector3fi_v: /* 80352714 0034F674 90 8D AA 30 */ stw r4, lbl_805A95F0@sda21(r13) /* 80352718 0034F678 90 6D AA 34 */ stw r3, lbl_805A95F4@sda21(r13) /* 8035271C 0034F67C 4E 80 00 20 */ blr .global sub_80352720 sub_80352720: /* 80352720 0034F680 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80352724 0034F684 7C 08 02 A6 */ mflr r0 /* 80352728 0034F688 90 01 00 14 */ stw r0, 0x14(r1) /* 8035272C 0034F68C 48 00 0D E1 */ bl sub_8035350c /* 80352730 0034F690 80 01 00 14 */ lwz r0, 0x14(r1) /* 80352734 0034F694 7C 08 03 A6 */ mtlr r0 /* 80352738 0034F698 38 21 00 10 */ addi r1, r1, 0x10 /* 8035273C 0034F69C 4E 80 00 20 */ blr .global sub_80352740 sub_80352740: /* 80352740 0034F6A0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80352744 0034F6A4 7C 08 02 A6 */ mflr r0 /* 80352748 0034F6A8 90 01 00 14 */ stw r0, 0x14(r1) /* 8035274C 0034F6AC 48 00 0E 61 */ bl sub_803535ac /* 80352750 0034F6B0 80 01 00 14 */ lwz r0, 0x14(r1) /* 80352754 0034F6B4 7C 08 03 A6 */ mtlr r0 /* 80352758 0034F6B8 38 21 00 10 */ addi r1, r1, 0x10 /* 8035275C 0034F6BC 4E 80 00 20 */ blr .global sub_80352760 sub_80352760: /* 80352760 0034F6C0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80352764 0034F6C4 7C 08 02 A6 */ mflr r0 /* 80352768 0034F6C8 90 01 00 24 */ stw r0, 0x24(r1) /* 8035276C 0034F6CC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80352770 0034F6D0 7C 7F 1B 78 */ mr r31, r3 /* 80352774 0034F6D4 88 03 00 38 */ lbz r0, 0x38(r3) /* 80352778 0034F6D8 28 00 00 00 */ cmplwi r0, 0 /* 8035277C 0034F6DC 41 82 00 DC */ beq lbl_80352858 /* 80352780 0034F6E0 80 1F 00 2C */ lwz r0, 0x2c(r31) /* 80352784 0034F6E4 28 00 00 00 */ cmplwi r0, 0 /* 80352788 0034F6E8 41 82 00 D0 */ beq lbl_80352858 /* 8035278C 0034F6EC 38 61 00 10 */ addi r3, r1, 0x10 /* 80352790 0034F6F0 38 1F 00 28 */ addi r0, r31, 0x28 /* 80352794 0034F6F4 38 80 00 00 */ li r4, 0 /* 80352798 0034F6F8 7C 03 00 40 */ cmplw r3, r0 /* 8035279C 0034F6FC 98 81 00 10 */ stb r4, 0x10(r1) /* 803527A0 0034F700 90 81 00 14 */ stw r4, 0x14(r1) /* 803527A4 0034F704 41 82 00 30 */ beq lbl_803527D4 /* 803527A8 0034F708 88 1F 00 28 */ lbz r0, 0x28(r31) /* 803527AC 0034F70C 28 00 00 00 */ cmplwi r0, 0 /* 803527B0 0034F710 41 82 00 0C */ beq lbl_803527BC /* 803527B4 0034F714 80 7F 00 2C */ lwz r3, 0x2c(r31) /* 803527B8 0034F718 4B FC 31 79 */ bl Free__7CMemoryFPCv lbl_803527BC: /* 803527BC 0034F71C 88 81 00 10 */ lbz r4, 0x10(r1) /* 803527C0 0034F720 38 00 00 00 */ li r0, 0 /* 803527C4 0034F724 80 61 00 14 */ lwz r3, 0x14(r1) /* 803527C8 0034F728 98 9F 00 28 */ stb r4, 0x28(r31) /* 803527CC 0034F72C 90 7F 00 2C */ stw r3, 0x2c(r31) /* 803527D0 0034F730 98 01 00 10 */ stb r0, 0x10(r1) lbl_803527D4: /* 803527D4 0034F734 88 01 00 10 */ lbz r0, 0x10(r1) /* 803527D8 0034F738 28 00 00 00 */ cmplwi r0, 0 /* 803527DC 0034F73C 41 82 00 0C */ beq lbl_803527E8 /* 803527E0 0034F740 80 61 00 14 */ lwz r3, 0x14(r1) /* 803527E4 0034F744 4B FC 31 4D */ bl Free__7CMemoryFPCv lbl_803527E8: /* 803527E8 0034F748 38 61 00 08 */ addi r3, r1, 8 /* 803527EC 0034F74C 38 1F 00 30 */ addi r0, r31, 0x30 /* 803527F0 0034F750 38 80 00 00 */ li r4, 0 /* 803527F4 0034F754 7C 03 00 40 */ cmplw r3, r0 /* 803527F8 0034F758 98 81 00 08 */ stb r4, 8(r1) /* 803527FC 0034F75C 90 81 00 0C */ stw r4, 0xc(r1) /* 80352800 0034F760 41 82 00 30 */ beq lbl_80352830 /* 80352804 0034F764 88 1F 00 30 */ lbz r0, 0x30(r31) /* 80352808 0034F768 28 00 00 00 */ cmplwi r0, 0 /* 8035280C 0034F76C 41 82 00 0C */ beq lbl_80352818 /* 80352810 0034F770 80 7F 00 34 */ lwz r3, 0x34(r31) /* 80352814 0034F774 4B FC 31 1D */ bl Free__7CMemoryFPCv lbl_80352818: /* 80352818 0034F778 88 81 00 08 */ lbz r4, 8(r1) /* 8035281C 0034F77C 38 00 00 00 */ li r0, 0 /* 80352820 0034F780 80 61 00 0C */ lwz r3, 0xc(r1) /* 80352824 0034F784 98 9F 00 30 */ stb r4, 0x30(r31) /* 80352828 0034F788 90 7F 00 34 */ stw r3, 0x34(r31) /* 8035282C 0034F78C 98 01 00 08 */ stb r0, 8(r1) lbl_80352830: /* 80352830 0034F790 88 01 00 08 */ lbz r0, 8(r1) /* 80352834 0034F794 28 00 00 00 */ cmplwi r0, 0 /* 80352838 0034F798 41 82 00 0C */ beq lbl_80352844 /* 8035283C 0034F79C 80 61 00 0C */ lwz r3, 0xc(r1) /* 80352840 0034F7A0 4B FC 30 F1 */ bl Free__7CMemoryFPCv lbl_80352844: /* 80352844 0034F7A4 A0 6D AA 38 */ lhz r3, lbl_805A95F8@sda21(r13) /* 80352848 0034F7A8 48 02 5B D9 */ bl GXSetDrawSync /* 8035284C 0034F7AC A0 6D AA 38 */ lhz r3, lbl_805A95F8@sda21(r13) /* 80352850 0034F7B0 38 03 00 01 */ addi r0, r3, 1 /* 80352854 0034F7B4 B0 0D AA 38 */ sth r0, lbl_805A95F8@sda21(r13) lbl_80352858: /* 80352858 0034F7B8 80 01 00 24 */ lwz r0, 0x24(r1) /* 8035285C 0034F7BC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80352860 0034F7C0 7C 08 03 A6 */ mtlr r0 /* 80352864 0034F7C4 38 21 00 20 */ addi r1, r1, 0x20 /* 80352868 0034F7C8 4E 80 00 20 */ blr .global AllocateStorage__13CSkinnedModelFv AllocateStorage__13CSkinnedModelFv: /* 8035286C 0034F7CC 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80352870 0034F7D0 7C 08 02 A6 */ mflr r0 /* 80352874 0034F7D4 90 01 00 34 */ stw r0, 0x34(r1) /* 80352878 0034F7D8 93 E1 00 2C */ stw r31, 0x2c(r1) /* 8035287C 0034F7DC 7C 7F 1B 78 */ mr r31, r3 /* 80352880 0034F7E0 93 C1 00 28 */ stw r30, 0x28(r1) /* 80352884 0034F7E4 93 A1 00 24 */ stw r29, 0x24(r1) /* 80352888 0034F7E8 88 03 00 38 */ lbz r0, 0x38(r3) /* 8035288C 0034F7EC 28 00 00 00 */ cmplwi r0, 0 /* 80352890 0034F7F0 41 82 01 40 */ beq lbl_803529D0 /* 80352894 0034F7F4 80 1F 00 2C */ lwz r0, 0x2c(r31) /* 80352898 0034F7F8 28 00 00 00 */ cmplwi r0, 0 /* 8035289C 0034F7FC 41 82 00 10 */ beq lbl_803528AC /* 803528A0 0034F800 80 1F 00 34 */ lwz r0, 0x34(r31) /* 803528A4 0034F804 28 00 00 00 */ cmplwi r0, 0 /* 803528A8 0034F808 40 82 01 28 */ bne lbl_803529D0 lbl_803528AC: /* 803528AC 0034F80C 80 7F 00 18 */ lwz r3, 0x18(r31) /* 803528B0 0034F810 83 C3 00 10 */ lwz r30, 0x10(r3) /* 803528B4 0034F814 83 A3 00 14 */ lwz r29, 0x14(r3) /* 803528B8 0034F818 48 00 02 B9 */ bl TickAllocations__13CSkinnedModelFv /* 803528BC 0034F81C 1C 7D 00 0C */ mulli r3, r29, 0xc /* 803528C0 0034F820 1C 9E 00 0C */ mulli r4, r30, 0xc /* 803528C4 0034F824 38 03 00 1F */ addi r0, r3, 0x1f /* 803528C8 0034F828 38 84 00 1F */ addi r4, r4, 0x1f /* 803528CC 0034F82C 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a /* 803528D0 0034F830 54 9D 00 34 */ rlwinm r29, r4, 0, 0, 0x1a /* 803528D4 0034F834 38 63 00 20 */ addi r3, r3, 0x20 /* 803528D8 0034F838 7C 7D 1A 14 */ add r3, r29, r3 /* 803528DC 0034F83C 48 00 01 11 */ bl EnsureAllocation__13CSkinnedModelFi /* 803528E0 0034F840 3C 80 80 4C */ lis r4, sStaticSkinningData__8Skinning@ha /* 803528E4 0034F844 7C 7E 1B 78 */ mr r30, r3 /* 803528E8 0034F848 38 04 FF C0 */ addi r0, r4, sStaticSkinningData__8Skinning@l /* 803528EC 0034F84C 7C 1E 00 40 */ cmplw r30, r0 /* 803528F0 0034F850 40 82 00 08 */ bne lbl_803528F8 /* 803528F4 0034F854 48 02 56 91 */ bl GXInvalidateVtxCache lbl_803528F8: /* 803528F8 0034F858 7C 1E 00 D0 */ neg r0, r30 /* 803528FC 0034F85C 38 61 00 10 */ addi r3, r1, 0x10 /* 80352900 0034F860 7C 04 F3 78 */ or r4, r0, r30 /* 80352904 0034F864 38 1F 00 28 */ addi r0, r31, 0x28 /* 80352908 0034F868 54 84 0F FE */ srwi r4, r4, 0x1f /* 8035290C 0034F86C 93 C1 00 14 */ stw r30, 0x14(r1) /* 80352910 0034F870 7C 03 00 40 */ cmplw r3, r0 /* 80352914 0034F874 98 81 00 10 */ stb r4, 0x10(r1) /* 80352918 0034F878 41 82 00 30 */ beq lbl_80352948 /* 8035291C 0034F87C 88 1F 00 28 */ lbz r0, 0x28(r31) /* 80352920 0034F880 28 00 00 00 */ cmplwi r0, 0 /* 80352924 0034F884 41 82 00 0C */ beq lbl_80352930 /* 80352928 0034F888 80 7F 00 2C */ lwz r3, 0x2c(r31) /* 8035292C 0034F88C 4B FC 30 05 */ bl Free__7CMemoryFPCv lbl_80352930: /* 80352930 0034F890 88 61 00 10 */ lbz r3, 0x10(r1) /* 80352934 0034F894 38 00 00 00 */ li r0, 0 /* 80352938 0034F898 98 7F 00 28 */ stb r3, 0x28(r31) /* 8035293C 0034F89C 80 61 00 14 */ lwz r3, 0x14(r1) /* 80352940 0034F8A0 90 7F 00 2C */ stw r3, 0x2c(r31) /* 80352944 0034F8A4 98 01 00 10 */ stb r0, 0x10(r1) lbl_80352948: /* 80352948 0034F8A8 88 01 00 10 */ lbz r0, 0x10(r1) /* 8035294C 0034F8AC 28 00 00 00 */ cmplwi r0, 0 /* 80352950 0034F8B0 41 82 00 0C */ beq lbl_8035295C /* 80352954 0034F8B4 80 61 00 14 */ lwz r3, 0x14(r1) /* 80352958 0034F8B8 4B FC 2F D9 */ bl Free__7CMemoryFPCv lbl_8035295C: /* 8035295C 0034F8BC 7C BE EA 14 */ add r5, r30, r29 /* 80352960 0034F8C0 38 61 00 08 */ addi r3, r1, 8 /* 80352964 0034F8C4 7C 85 00 D0 */ neg r4, r5 /* 80352968 0034F8C8 38 1F 00 30 */ addi r0, r31, 0x30 /* 8035296C 0034F8CC 7C 84 2B 78 */ or r4, r4, r5 /* 80352970 0034F8D0 90 A1 00 0C */ stw r5, 0xc(r1) /* 80352974 0034F8D4 54 84 0F FE */ srwi r4, r4, 0x1f /* 80352978 0034F8D8 7C 03 00 40 */ cmplw r3, r0 /* 8035297C 0034F8DC 98 81 00 08 */ stb r4, 8(r1) /* 80352980 0034F8E0 41 82 00 30 */ beq lbl_803529B0 /* 80352984 0034F8E4 88 1F 00 30 */ lbz r0, 0x30(r31) /* 80352988 0034F8E8 28 00 00 00 */ cmplwi r0, 0 /* 8035298C 0034F8EC 41 82 00 0C */ beq lbl_80352998 /* 80352990 0034F8F0 80 7F 00 34 */ lwz r3, 0x34(r31) /* 80352994 0034F8F4 4B FC 2F 9D */ bl Free__7CMemoryFPCv lbl_80352998: /* 80352998 0034F8F8 88 61 00 08 */ lbz r3, 8(r1) /* 8035299C 0034F8FC 38 00 00 00 */ li r0, 0 /* 803529A0 0034F900 98 7F 00 30 */ stb r3, 0x30(r31) /* 803529A4 0034F904 80 61 00 0C */ lwz r3, 0xc(r1) /* 803529A8 0034F908 90 7F 00 34 */ stw r3, 0x34(r31) /* 803529AC 0034F90C 98 01 00 08 */ stb r0, 8(r1) lbl_803529B0: /* 803529B0 0034F910 88 01 00 08 */ lbz r0, 8(r1) /* 803529B4 0034F914 28 00 00 00 */ cmplwi r0, 0 /* 803529B8 0034F918 41 82 00 0C */ beq lbl_803529C4 /* 803529BC 0034F91C 80 61 00 0C */ lwz r3, 0xc(r1) /* 803529C0 0034F920 4B FC 2F 71 */ bl Free__7CMemoryFPCv lbl_803529C4: /* 803529C4 0034F924 38 00 00 00 */ li r0, 0 /* 803529C8 0034F928 98 1F 00 28 */ stb r0, 0x28(r31) /* 803529CC 0034F92C 98 1F 00 30 */ stb r0, 0x30(r31) lbl_803529D0: /* 803529D0 0034F930 80 01 00 34 */ lwz r0, 0x34(r1) /* 803529D4 0034F934 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 803529D8 0034F938 83 C1 00 28 */ lwz r30, 0x28(r1) /* 803529DC 0034F93C 83 A1 00 24 */ lwz r29, 0x24(r1) /* 803529E0 0034F940 7C 08 03 A6 */ mtlr r0 /* 803529E4 0034F944 38 21 00 30 */ addi r1, r1, 0x30 /* 803529E8 0034F948 4E 80 00 20 */ blr .global EnsureAllocation__13CSkinnedModelFi EnsureAllocation__13CSkinnedModelFi: /* 803529EC 0034F94C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 803529F0 0034F950 7C 08 02 A6 */ mflr r0 /* 803529F4 0034F954 90 01 00 24 */ stw r0, 0x24(r1) /* 803529F8 0034F958 38 03 00 1F */ addi r0, r3, 0x1f /* 803529FC 0034F95C 3C 60 80 54 */ lis r3, sSkinningBuffer__8Skinning@ha /* 80352A00 0034F960 BF 41 00 08 */ stmw r26, 8(r1) /* 80352A04 0034F964 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a /* 80352A08 0034F968 38 63 FF CC */ addi r3, r3, sSkinningBuffer__8Skinning@l /* 80352A0C 0034F96C 7F 84 E3 78 */ mr r4, r28 /* 80352A10 0034F970 4B FC 2C E9 */ bl Alloc__15CCircularBufferFi /* 80352A14 0034F974 7C 7E 1B 79 */ or. r30, r3, r3 /* 80352A18 0034F978 40 82 00 24 */ bne lbl_80352A3C /* 80352A1C 0034F97C 88 0D AA 41 */ lbz r0, lbl_805A9601@sda21(r13) /* 80352A20 0034F980 28 00 00 00 */ cmplwi r0, 0 /* 80352A24 0034F984 40 82 00 18 */ bne lbl_80352A3C /* 80352A28 0034F988 3C 60 80 54 */ lis r3, sSkinningBuffer__8Skinning@ha /* 80352A2C 0034F98C 38 63 FF CC */ addi r3, r3, sSkinningBuffer__8Skinning@l /* 80352A30 0034F990 4B FC 2C 31 */ bl GetAllocatedAmount__15CCircularBufferCFv /* 80352A34 0034F994 38 00 00 01 */ li r0, 1 /* 80352A38 0034F998 98 0D AA 41 */ stb r0, lbl_805A9601@sda21(r13) lbl_80352A3C: /* 80352A3C 0034F99C 48 03 29 85 */ bl OSGetTick /* 80352A40 0034F9A0 3C A0 80 54 */ lis r5, sAllocations__8Skinning@ha /* 80352A44 0034F9A4 3C 80 80 54 */ lis r4, sSkinningBuffer__8Skinning@ha /* 80352A48 0034F9A8 7C 7D 1B 78 */ mr r29, r3 /* 80352A4C 0034F9AC 3B E5 FF F4 */ addi r31, r5, sAllocations__8Skinning@l /* 80352A50 0034F9B0 3B 64 FF CC */ addi r27, r4, sSkinningBuffer__8Skinning@l /* 80352A54 0034F9B4 48 00 00 84 */ b lbl_80352AD8 lbl_80352A58: /* 80352A58 0034F9B8 48 00 01 19 */ bl TickAllocations__13CSkinnedModelFv /* 80352A5C 0034F9BC 7F 63 DB 78 */ mr r3, r27 /* 80352A60 0034F9C0 7F 84 E3 78 */ mr r4, r28 /* 80352A64 0034F9C4 4B FC 2C 95 */ bl Alloc__15CCircularBufferFi /* 80352A68 0034F9C8 7C 7E 1B 79 */ or. r30, r3, r3 /* 80352A6C 0034F9CC 40 82 00 6C */ bne lbl_80352AD8 /* 80352A70 0034F9D0 48 03 29 51 */ bl OSGetTick /* 80352A74 0034F9D4 3C A0 80 00 */ lis r5, 0x800000F8@ha /* 80352A78 0034F9D8 3C 80 10 62 */ lis r4, 0x10624DD3@ha /* 80352A7C 0034F9DC 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5) /* 80352A80 0034F9E0 7C 7A 1B 78 */ mr r26, r3 /* 80352A84 0034F9E4 38 64 4D D3 */ addi r3, r4, 0x10624DD3@l /* 80352A88 0034F9E8 54 00 F0 BE */ srwi r0, r0, 2 /* 80352A8C 0034F9EC 7C 03 00 16 */ mulhwu r0, r3, r0 /* 80352A90 0034F9F0 7C 7D D0 50 */ subf r3, r29, r26 /* 80352A94 0034F9F4 54 00 D1 BE */ srwi r0, r0, 6 /* 80352A98 0034F9F8 7C 03 03 96 */ divwu r0, r3, r0 /* 80352A9C 0034F9FC 28 00 00 3C */ cmplwi r0, 0x3c /* 80352AA0 0034FA00 40 81 00 38 */ ble lbl_80352AD8 /* 80352AA4 0034FA04 48 02 5A 35 */ bl GXReadDrawSync /* 80352AA8 0034FA08 80 7F 00 04 */ lwz r3, 4(r31) /* 80352AAC 0034FA0C 80 1F 00 08 */ lwz r0, 8(r31) /* 80352AB0 0034FA10 48 00 00 08 */ b lbl_80352AB8 lbl_80352AB4: /* 80352AB4 0034FA14 80 63 00 04 */ lwz r3, 4(r3) lbl_80352AB8: /* 80352AB8 0034FA18 7C 03 00 40 */ cmplw r3, r0 /* 80352ABC 0034FA1C 40 82 FF F8 */ bne lbl_80352AB4 /* 80352AC0 0034FA20 A0 6D AA 38 */ lhz r3, lbl_805A95F8@sda21(r13) /* 80352AC4 0034FA24 7F 5D D3 78 */ mr r29, r26 /* 80352AC8 0034FA28 48 02 59 59 */ bl GXSetDrawSync /* 80352ACC 0034FA2C A0 6D AA 38 */ lhz r3, lbl_805A95F8@sda21(r13) /* 80352AD0 0034FA30 38 03 00 01 */ addi r0, r3, 1 /* 80352AD4 0034FA34 B0 0D AA 38 */ sth r0, lbl_805A95F8@sda21(r13) lbl_80352AD8: /* 80352AD8 0034FA38 28 1E 00 00 */ cmplwi r30, 0 /* 80352ADC 0034FA3C 41 82 FF 7C */ beq lbl_80352A58 /* 80352AE0 0034FA40 83 BF 00 08 */ lwz r29, 8(r31) /* 80352AE4 0034FA44 3C 60 80 3E */ lis r3, lbl_803D82F8@ha /* 80352AE8 0034FA48 38 83 82 F8 */ addi r4, r3, lbl_803D82F8@l /* 80352AEC 0034FA4C A3 6D AA 38 */ lhz r27, lbl_805A95F8@sda21(r13) /* 80352AF0 0034FA50 83 5D 00 00 */ lwz r26, 0(r29) /* 80352AF4 0034FA54 38 60 00 14 */ li r3, 0x14 /* 80352AF8 0034FA58 38 A0 00 00 */ li r5, 0 /* 80352AFC 0034FA5C 4B FC 2D 1D */ bl __nwa__FUlPCcPCc /* 80352B00 0034FA60 28 03 00 00 */ cmplwi r3, 0 /* 80352B04 0034FA64 41 82 00 0C */ beq lbl_80352B10 /* 80352B08 0034FA68 93 43 00 00 */ stw r26, 0(r3) /* 80352B0C 0034FA6C 93 A3 00 04 */ stw r29, 4(r3) lbl_80352B10: /* 80352B10 0034FA70 34 83 00 08 */ addic. r4, r3, 8 /* 80352B14 0034FA74 41 82 00 10 */ beq lbl_80352B24 /* 80352B18 0034FA78 93 C4 00 00 */ stw r30, 0(r4) /* 80352B1C 0034FA7C 93 84 00 04 */ stw r28, 4(r4) /* 80352B20 0034FA80 B3 64 00 08 */ sth r27, 8(r4) lbl_80352B24: /* 80352B24 0034FA84 80 1F 00 04 */ lwz r0, 4(r31) /* 80352B28 0034FA88 7C 1D 00 40 */ cmplw r29, r0 /* 80352B2C 0034FA8C 40 82 00 08 */ bne lbl_80352B34 /* 80352B30 0034FA90 90 7F 00 04 */ stw r3, 4(r31) lbl_80352B34: /* 80352B34 0034FA94 80 C3 00 00 */ lwz r6, 0(r3) /* 80352B38 0034FA98 3C 80 80 54 */ lis r4, sAllocations__8Skinning@ha /* 80352B3C 0034FA9C 38 A4 FF F4 */ addi r5, r4, sAllocations__8Skinning@l /* 80352B40 0034FAA0 90 66 00 04 */ stw r3, 4(r6) /* 80352B44 0034FAA4 80 83 00 04 */ lwz r4, 4(r3) /* 80352B48 0034FAA8 90 64 00 00 */ stw r3, 0(r4) /* 80352B4C 0034FAAC 7F C3 F3 78 */ mr r3, r30 /* 80352B50 0034FAB0 80 85 00 14 */ lwz r4, 0x14(r5) /* 80352B54 0034FAB4 38 04 00 01 */ addi r0, r4, 1 /* 80352B58 0034FAB8 90 05 00 14 */ stw r0, 0x14(r5) /* 80352B5C 0034FABC BB 41 00 08 */ lmw r26, 8(r1) /* 80352B60 0034FAC0 80 01 00 24 */ lwz r0, 0x24(r1) /* 80352B64 0034FAC4 7C 08 03 A6 */ mtlr r0 /* 80352B68 0034FAC8 38 21 00 20 */ addi r1, r1, 0x20 /* 80352B6C 0034FACC 4E 80 00 20 */ blr .global TickAllocations__13CSkinnedModelFv TickAllocations__13CSkinnedModelFv: /* 80352B70 0034FAD0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80352B74 0034FAD4 7C 08 02 A6 */ mflr r0 /* 80352B78 0034FAD8 90 01 00 24 */ stw r0, 0x24(r1) /* 80352B7C 0034FADC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80352B80 0034FAE0 93 C1 00 18 */ stw r30, 0x18(r1) /* 80352B84 0034FAE4 93 A1 00 14 */ stw r29, 0x14(r1) /* 80352B88 0034FAE8 48 02 59 51 */ bl GXReadDrawSync /* 80352B8C 0034FAEC A0 0D AA 38 */ lhz r0, lbl_805A95F8@sda21(r13) /* 80352B90 0034FAF0 54 7D 04 3E */ clrlwi r29, r3, 0x10 /* 80352B94 0034FAF4 7C 1D 00 00 */ cmpw r29, r0 /* 80352B98 0034FAF8 40 81 00 08 */ ble lbl_80352BA0 /* 80352B9C 0034FAFC 3F BD FF FF */ addis r29, r29, 0xffff lbl_80352BA0: /* 80352BA0 0034FB00 3C 80 80 54 */ lis r4, sAllocations__8Skinning@ha /* 80352BA4 0034FB04 3C 60 80 54 */ lis r3, sSkinningBuffer__8Skinning@ha /* 80352BA8 0034FB08 3B C4 FF F4 */ addi r30, r4, sAllocations__8Skinning@l /* 80352BAC 0034FB0C 3B E3 FF CC */ addi r31, r3, sSkinningBuffer__8Skinning@l /* 80352BB0 0034FB10 48 00 00 40 */ b lbl_80352BF0 lbl_80352BB4: /* 80352BB4 0034FB14 80 BE 00 04 */ lwz r5, 4(r30) /* 80352BB8 0034FB18 A0 0D AA 38 */ lhz r0, lbl_805A95F8@sda21(r13) /* 80352BBC 0034FB1C A0 65 00 10 */ lhz r3, 0x10(r5) /* 80352BC0 0034FB20 7C 03 00 00 */ cmpw r3, r0 /* 80352BC4 0034FB24 40 81 00 08 */ ble lbl_80352BCC /* 80352BC8 0034FB28 3C 63 FF FF */ addis r3, r3, 0xffff lbl_80352BCC: /* 80352BCC 0034FB2C 7C 1D 18 00 */ cmpw r29, r3 /* 80352BD0 0034FB30 41 80 00 2C */ blt lbl_80352BFC /* 80352BD4 0034FB34 80 85 00 08 */ lwz r4, 8(r5) /* 80352BD8 0034FB38 7F E3 FB 78 */ mr r3, r31 /* 80352BDC 0034FB3C 80 A5 00 0C */ lwz r5, 0xc(r5) /* 80352BE0 0034FB40 4B FC 2A AD */ bl Free__15CCircularBufferFPvi /* 80352BE4 0034FB44 80 9E 00 04 */ lwz r4, 4(r30) /* 80352BE8 0034FB48 7F C3 F3 78 */ mr r3, r30 /* 80352BEC 0034FB4C 48 00 0B 15 */ bl sub_80353700 lbl_80352BF0: /* 80352BF0 0034FB50 80 1E 00 14 */ lwz r0, 0x14(r30) /* 80352BF4 0034FB54 2C 00 00 00 */ cmpwi r0, 0 /* 80352BF8 0034FB58 40 82 FF BC */ bne lbl_80352BB4 lbl_80352BFC: /* 80352BFC 0034FB5C 80 01 00 24 */ lwz r0, 0x24(r1) /* 80352C00 0034FB60 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80352C04 0034FB64 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80352C08 0034FB68 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80352C0C 0034FB6C 7C 08 03 A6 */ mtlr r0 /* 80352C10 0034FB70 38 21 00 20 */ addi r1, r1, 0x20 /* 80352C14 0034FB74 4E 80 00 20 */ blr .global CalculateDefault__13CSkinnedModelFv CalculateDefault__13CSkinnedModelFv: /* 80352C18 0034FB78 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80352C1C 0034FB7C 7C 08 02 A6 */ mflr r0 /* 80352C20 0034FB80 38 80 00 00 */ li r4, 0 /* 80352C24 0034FB84 90 01 00 24 */ stw r0, 0x24(r1) /* 80352C28 0034FB88 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80352C2C 0034FB8C 7C 7F 1B 78 */ mr r31, r3 /* 80352C30 0034FB90 38 61 00 10 */ addi r3, r1, 0x10 /* 80352C34 0034FB94 38 1F 00 28 */ addi r0, r31, 0x28 /* 80352C38 0034FB98 98 81 00 10 */ stb r4, 0x10(r1) /* 80352C3C 0034FB9C 7C 03 00 40 */ cmplw r3, r0 /* 80352C40 0034FBA0 90 81 00 14 */ stw r4, 0x14(r1) /* 80352C44 0034FBA4 41 82 00 30 */ beq lbl_80352C74 /* 80352C48 0034FBA8 88 1F 00 28 */ lbz r0, 0x28(r31) /* 80352C4C 0034FBAC 28 00 00 00 */ cmplwi r0, 0 /* 80352C50 0034FBB0 41 82 00 0C */ beq lbl_80352C5C /* 80352C54 0034FBB4 80 7F 00 2C */ lwz r3, 0x2c(r31) /* 80352C58 0034FBB8 4B FC 2C D9 */ bl Free__7CMemoryFPCv lbl_80352C5C: /* 80352C5C 0034FBBC 88 61 00 10 */ lbz r3, 0x10(r1) /* 80352C60 0034FBC0 38 00 00 00 */ li r0, 0 /* 80352C64 0034FBC4 98 7F 00 28 */ stb r3, 0x28(r31) /* 80352C68 0034FBC8 80 61 00 14 */ lwz r3, 0x14(r1) /* 80352C6C 0034FBCC 90 7F 00 2C */ stw r3, 0x2c(r31) /* 80352C70 0034FBD0 98 01 00 10 */ stb r0, 0x10(r1) lbl_80352C74: /* 80352C74 0034FBD4 88 01 00 10 */ lbz r0, 0x10(r1) /* 80352C78 0034FBD8 28 00 00 00 */ cmplwi r0, 0 /* 80352C7C 0034FBDC 41 82 00 0C */ beq lbl_80352C88 /* 80352C80 0034FBE0 80 61 00 14 */ lwz r3, 0x14(r1) /* 80352C84 0034FBE4 4B FC 2C AD */ bl Free__7CMemoryFPCv lbl_80352C88: /* 80352C88 0034FBE8 38 61 00 08 */ addi r3, r1, 8 /* 80352C8C 0034FBEC 38 1F 00 30 */ addi r0, r31, 0x30 /* 80352C90 0034FBF0 38 80 00 00 */ li r4, 0 /* 80352C94 0034FBF4 7C 03 00 40 */ cmplw r3, r0 /* 80352C98 0034FBF8 98 81 00 08 */ stb r4, 8(r1) /* 80352C9C 0034FBFC 90 81 00 0C */ stw r4, 0xc(r1) /* 80352CA0 0034FC00 41 82 00 30 */ beq lbl_80352CD0 /* 80352CA4 0034FC04 88 1F 00 30 */ lbz r0, 0x30(r31) /* 80352CA8 0034FC08 28 00 00 00 */ cmplwi r0, 0 /* 80352CAC 0034FC0C 41 82 00 0C */ beq lbl_80352CB8 /* 80352CB0 0034FC10 80 7F 00 34 */ lwz r3, 0x34(r31) /* 80352CB4 0034FC14 4B FC 2C 7D */ bl Free__7CMemoryFPCv lbl_80352CB8: /* 80352CB8 0034FC18 88 61 00 08 */ lbz r3, 8(r1) /* 80352CBC 0034FC1C 38 00 00 00 */ li r0, 0 /* 80352CC0 0034FC20 98 7F 00 30 */ stb r3, 0x30(r31) /* 80352CC4 0034FC24 80 61 00 0C */ lwz r3, 0xc(r1) /* 80352CC8 0034FC28 90 7F 00 34 */ stw r3, 0x34(r31) /* 80352CCC 0034FC2C 98 01 00 08 */ stb r0, 8(r1) lbl_80352CD0: /* 80352CD0 0034FC30 88 01 00 08 */ lbz r0, 8(r1) /* 80352CD4 0034FC34 28 00 00 00 */ cmplwi r0, 0 /* 80352CD8 0034FC38 41 82 00 0C */ beq lbl_80352CE4 /* 80352CDC 0034FC3C 80 61 00 0C */ lwz r3, 0xc(r1) /* 80352CE0 0034FC40 4B FC 2C 51 */ bl Free__7CMemoryFPCv lbl_80352CE4: /* 80352CE4 0034FC44 80 01 00 24 */ lwz r0, 0x24(r1) /* 80352CE8 0034FC48 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80352CEC 0034FC4C 7C 08 03 A6 */ mtlr r0 /* 80352CF0 0034FC50 38 21 00 20 */ addi r1, r1, 0x20 /* 80352CF4 0034FC54 4E 80 00 20 */ blr .global "Calculate__13CSkinnedModelFRC17CPoseAsTransformsRCQ24rstl37optional_object<18CVertexMorphEffect>PCfPf" "Calculate__13CSkinnedModelFRC17CPoseAsTransformsRCQ24rstl37optional_object<18CVertexMorphEffect>PCfPf": /* 80352CF8 0034FC58 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80352CFC 0034FC5C 7C 08 02 A6 */ mflr r0 /* 80352D00 0034FC60 28 07 00 00 */ cmplwi r7, 0 /* 80352D04 0034FC64 90 01 00 34 */ stw r0, 0x34(r1) /* 80352D08 0034FC68 BE E1 00 0C */ stmw r23, 0xc(r1) /* 80352D0C 0034FC6C 7C BB 2B 78 */ mr r27, r5 /* 80352D10 0034FC70 7C 79 1B 78 */ mr r25, r3 /* 80352D14 0034FC74 7C 9A 23 78 */ mr r26, r4 /* 80352D18 0034FC78 7C DC 33 78 */ mr r28, r6 /* 80352D1C 0034FC7C 81 03 00 18 */ lwz r8, 0x18(r3) /* 80352D20 0034FC80 80 A8 00 10 */ lwz r5, 0x10(r8) /* 80352D24 0034FC84 80 08 00 14 */ lwz r0, 0x14(r8) /* 80352D28 0034FC88 1F C5 00 0C */ mulli r30, r5, 0xc /* 80352D2C 0034FC8C 1F E0 00 0C */ mulli r31, r0, 0xc /* 80352D30 0034FC90 41 82 00 0C */ beq lbl_80352D3C /* 80352D34 0034FC94 7C FD 3B 78 */ mr r29, r7 /* 80352D38 0034FC98 48 00 00 28 */ b lbl_80352D60 lbl_80352D3C: /* 80352D3C 0034FC9C 88 19 00 39 */ lbz r0, 0x39(r25) /* 80352D40 0034FCA0 28 00 00 00 */ cmplwi r0, 0 /* 80352D44 0034FCA4 41 82 00 14 */ beq lbl_80352D58 /* 80352D48 0034FCA8 80 B9 00 24 */ lwz r5, 0x24(r25) /* 80352D4C 0034FCAC 7D 03 43 78 */ mr r3, r8 /* 80352D50 0034FCB0 48 00 12 FD */ bl BuildAccumulatedTransforms__10CSkinRulesCFRC17CPoseAsTransformsRC15CCharLayoutInfo /* 80352D54 0034FCB4 48 00 01 80 */ b lbl_80352ED4 lbl_80352D58: /* 80352D58 0034FCB8 4B FF FB 15 */ bl AllocateStorage__13CSkinnedModelFv /* 80352D5C 0034FCBC 83 B9 00 2C */ lwz r29, 0x2c(r25) lbl_80352D60: /* 80352D60 0034FCC0 38 7E 00 1F */ addi r3, r30, 0x1f /* 80352D64 0034FCC4 38 1F 00 1F */ addi r0, r31, 0x1f /* 80352D68 0034FCC8 54 7F 00 34 */ rlwinm r31, r3, 0, 0, 0x1a /* 80352D6C 0034FCCC 7F A3 EB 78 */ mr r3, r29 /* 80352D70 0034FCD0 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a /* 80352D74 0034FCD4 7F DF 02 14 */ add r30, r31, r0 /* 80352D78 0034FCD8 7F C4 F3 78 */ mr r4, r30 /* 80352D7C 0034FCDC 48 02 BD 35 */ bl DCFlushRange /* 80352D80 0034FCE0 48 02 E8 E1 */ bl OSDisableInterrupts /* 80352D84 0034FCE4 7C 60 1B 78 */ mr r0, r3 /* 80352D88 0034FCE8 7F A3 EB 78 */ mr r3, r29 /* 80352D8C 0034FCEC 7C 18 03 78 */ mr r24, r0 /* 80352D90 0034FCF0 48 02 3D A5 */ bl GXRedirectWriteGatherPipe /* 80352D94 0034FCF4 7C 60 1B 78 */ mr r0, r3 /* 80352D98 0034FCF8 80 79 00 18 */ lwz r3, 0x18(r25) /* 80352D9C 0034FCFC 80 99 00 0C */ lwz r4, 0xc(r25) /* 80352DA0 0034FD00 7C 17 03 78 */ mr r23, r0 /* 80352DA4 0034FD04 48 00 0E 71 */ bl InitLockedCacheState__10CSkinRulesFRC10CSkinRules /* 80352DA8 0034FD08 80 79 00 18 */ lwz r3, 0x18(r25) /* 80352DAC 0034FD0C 7F 44 D3 78 */ mr r4, r26 /* 80352DB0 0034FD10 80 B9 00 24 */ lwz r5, 0x24(r25) /* 80352DB4 0034FD14 48 00 12 99 */ bl BuildAccumulatedTransforms__10CSkinRulesCFRC17CPoseAsTransformsRC15CCharLayoutInfo /* 80352DB8 0034FD18 80 79 00 18 */ lwz r3, 0x18(r25) /* 80352DBC 0034FD1C 7E E4 BB 78 */ mr r4, r23 /* 80352DC0 0034FD20 48 00 11 F1 */ bl BuildPoints__10CSkinRulesCFPVv /* 80352DC4 0034FD24 80 79 00 18 */ lwz r3, 0x18(r25) /* 80352DC8 0034FD28 38 C0 00 00 */ li r6, 0 /* 80352DCC 0034FD2C 80 03 00 10 */ lwz r0, 0x10(r3) /* 80352DD0 0034FD30 1C 60 00 03 */ mulli r3, r0, 3 /* 80352DD4 0034FD34 38 03 00 07 */ addi r0, r3, 7 /* 80352DD8 0034FD38 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c /* 80352DDC 0034FD3C 7C A3 00 51 */ subf. r5, r3, r0 /* 80352DE0 0034FD40 40 81 00 6C */ ble lbl_80352E4C /* 80352DE4 0034FD44 2C 05 00 08 */ cmpwi r5, 8 /* 80352DE8 0034FD48 38 85 FF F8 */ addi r4, r5, -8 /* 80352DEC 0034FD4C 40 81 00 44 */ ble lbl_80352E30 /* 80352DF0 0034FD50 38 04 00 07 */ addi r0, r4, 7 /* 80352DF4 0034FD54 38 60 00 00 */ li r3, 0 /* 80352DF8 0034FD58 54 00 E8 FE */ srwi r0, r0, 3 /* 80352DFC 0034FD5C 7C 09 03 A6 */ mtctr r0 /* 80352E00 0034FD60 2C 04 00 00 */ cmpwi r4, 0 /* 80352E04 0034FD64 40 81 00 2C */ ble lbl_80352E30 lbl_80352E08: /* 80352E08 0034FD68 90 77 00 00 */ stw r3, 0(r23) /* 80352E0C 0034FD6C 38 C6 00 08 */ addi r6, r6, 8 /* 80352E10 0034FD70 90 77 00 00 */ stw r3, 0(r23) /* 80352E14 0034FD74 90 77 00 00 */ stw r3, 0(r23) /* 80352E18 0034FD78 90 77 00 00 */ stw r3, 0(r23) /* 80352E1C 0034FD7C 90 77 00 00 */ stw r3, 0(r23) /* 80352E20 0034FD80 90 77 00 00 */ stw r3, 0(r23) /* 80352E24 0034FD84 90 77 00 00 */ stw r3, 0(r23) /* 80352E28 0034FD88 90 77 00 00 */ stw r3, 0(r23) /* 80352E2C 0034FD8C 42 00 FF DC */ bdnz lbl_80352E08 lbl_80352E30: /* 80352E30 0034FD90 7C 06 28 50 */ subf r0, r6, r5 /* 80352E34 0034FD94 38 60 00 00 */ li r3, 0 /* 80352E38 0034FD98 7C 09 03 A6 */ mtctr r0 /* 80352E3C 0034FD9C 7C 06 28 00 */ cmpw r6, r5 /* 80352E40 0034FDA0 40 80 00 0C */ bge lbl_80352E4C lbl_80352E44: /* 80352E44 0034FDA4 90 77 00 00 */ stw r3, 0(r23) /* 80352E48 0034FDA8 42 00 FF FC */ bdnz lbl_80352E44 lbl_80352E4C: /* 80352E4C 0034FDAC 80 79 00 18 */ lwz r3, 0x18(r25) /* 80352E50 0034FDB0 7E E4 BB 78 */ mr r4, r23 /* 80352E54 0034FDB4 48 00 10 C1 */ bl BuildNormals__10CSkinRulesCFPVv /* 80352E58 0034FDB8 48 02 3D D1 */ bl GXRestoreWriteGatherPipe /* 80352E5C 0034FDBC 7F 03 C3 78 */ mr r3, r24 /* 80352E60 0034FDC0 48 02 E8 29 */ bl OSRestoreInterrupts /* 80352E64 0034FDC4 88 1B 00 48 */ lbz r0, 0x48(r27) /* 80352E68 0034FDC8 28 00 00 00 */ cmplwi r0, 0 /* 80352E6C 0034FDCC 41 82 00 30 */ beq lbl_80352E9C /* 80352E70 0034FDD0 80 D9 00 18 */ lwz r6, 0x18(r25) /* 80352E74 0034FDD4 7F 63 DB 78 */ mr r3, r27 /* 80352E78 0034FDD8 7F A4 EB 78 */ mr r4, r29 /* 80352E7C 0034FDDC 7F 85 E3 78 */ mr r5, r28 /* 80352E80 0034FDE0 81 06 00 10 */ lwz r8, 0x10(r6) /* 80352E84 0034FDE4 7F 47 D3 78 */ mr r7, r26 /* 80352E88 0034FDE8 38 D9 00 10 */ addi r6, r25, 0x10 /* 80352E8C 0034FDEC 48 00 47 0D */ bl "MorphVertices__18CVertexMorphEffectCFP9CVector3fPC9CVector3fRC26TLockedToken<10CSkinRules>RC17CPoseAsTransformsUi" /* 80352E90 0034FDF0 7F A3 EB 78 */ mr r3, r29 /* 80352E94 0034FDF4 7F E4 FB 78 */ mr r4, r31 /* 80352E98 0034FDF8 48 02 BC 19 */ bl DCFlushRange lbl_80352E9C: /* 80352E9C 0034FDFC 81 8D AA 30 */ lwz r12, lbl_805A95F0@sda21(r13) /* 80352EA0 0034FE00 28 0C 00 00 */ cmplwi r12, 0 /* 80352EA4 0034FE04 41 82 00 30 */ beq lbl_80352ED4 /* 80352EA8 0034FE08 80 B9 00 18 */ lwz r5, 0x18(r25) /* 80352EAC 0034FE0C 7F A4 EB 78 */ mr r4, r29 /* 80352EB0 0034FE10 80 6D AA 34 */ lwz r3, lbl_805A95F4@sda21(r13) /* 80352EB4 0034FE14 80 C5 00 10 */ lwz r6, 0x10(r5) /* 80352EB8 0034FE18 1C 06 00 0C */ mulli r0, r6, 0xc /* 80352EBC 0034FE1C 7C BD 02 14 */ add r5, r29, r0 /* 80352EC0 0034FE20 7D 89 03 A6 */ mtctr r12 /* 80352EC4 0034FE24 4E 80 04 21 */ bctrl /* 80352EC8 0034FE28 7F A3 EB 78 */ mr r3, r29 /* 80352ECC 0034FE2C 7F C4 F3 78 */ mr r4, r30 /* 80352ED0 0034FE30 48 02 BB B5 */ bl DCInvalidateRange lbl_80352ED4: /* 80352ED4 0034FE34 BA E1 00 0C */ lmw r23, 0xc(r1) /* 80352ED8 0034FE38 80 01 00 34 */ lwz r0, 0x34(r1) /* 80352EDC 0034FE3C 7C 08 03 A6 */ mtlr r0 /* 80352EE0 0034FE40 38 21 00 30 */ addi r1, r1, 0x30 /* 80352EE4 0034FE44 4E 80 00 20 */ blr .global sub_80352ee8 sub_80352ee8: /* 80352EE8 0034FE48 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80352EEC 0034FE4C 7C 08 02 A6 */ mflr r0 /* 80352EF0 0034FE50 90 01 00 14 */ stw r0, 0x14(r1) /* 80352EF4 0034FE54 93 E1 00 0C */ stw r31, 0xc(r1) /* 80352EF8 0034FE58 7C 7F 1B 78 */ mr r31, r3 /* 80352EFC 0034FE5C 80 63 00 0C */ lwz r3, 0xc(r3) /* 80352F00 0034FE60 48 00 2B 49 */ bl Draw__6CModelCFPCfPCfRC11CModelFlags /* 80352F04 0034FE64 7F E3 FB 78 */ mr r3, r31 /* 80352F08 0034FE68 4B FF F8 59 */ bl sub_80352760 /* 80352F0C 0034FE6C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80352F10 0034FE70 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80352F14 0034FE74 7C 08 03 A6 */ mtlr r0 /* 80352F18 0034FE78 38 21 00 10 */ addi r1, r1, 0x10 /* 80352F1C 0034FE7C 4E 80 00 20 */ blr .global DoDrawCallback__13CSkinnedModelF14FCustomDrawCPv DoDrawCallback__13CSkinnedModelF14FCustomDrawCPv: /* 80352F20 0034FE80 94 21 FF 80 */ stwu r1, -0x80(r1) /* 80352F24 0034FE84 7C 08 02 A6 */ mflr r0 /* 80352F28 0034FE88 90 01 00 84 */ stw r0, 0x84(r1) /* 80352F2C 0034FE8C 93 E1 00 7C */ stw r31, 0x7c(r1) /* 80352F30 0034FE90 7C 7F 1B 78 */ mr r31, r3 /* 80352F34 0034FE94 93 C1 00 78 */ stw r30, 0x78(r1) /* 80352F38 0034FE98 93 A1 00 74 */ stw r29, 0x74(r1) /* 80352F3C 0034FE9C 7C BD 2B 78 */ mr r29, r5 /* 80352F40 0034FEA0 93 81 00 70 */ stw r28, 0x70(r1) /* 80352F44 0034FEA4 7C 9C 23 78 */ mr r28, r4 /* 80352F48 0034FEA8 88 03 00 39 */ lbz r0, 0x39(r3) /* 80352F4C 0034FEAC 28 00 00 00 */ cmplwi r0, 0 /* 80352F50 0034FEB0 41 82 00 68 */ beq lbl_80352FB8 /* 80352F54 0034FEB4 3C 80 80 5A */ lis r4, mModelMatrix__9CGraphics@ha /* 80352F58 0034FEB8 38 61 00 38 */ addi r3, r1, 0x38 /* 80352F5C 0034FEBC 38 84 62 04 */ addi r4, r4, mModelMatrix__9CGraphics@l /* 80352F60 0034FEC0 4B FB FC 15 */ bl __ct__12CTransform4fFRC12CTransform4f /* 80352F64 0034FEC4 80 BF 00 18 */ lwz r5, 0x18(r31) /* 80352F68 0034FEC8 38 61 00 08 */ addi r3, r1, 8 /* 80352F6C 0034FECC 38 81 00 38 */ addi r4, r1, 0x38 /* 80352F70 0034FED0 80 A5 00 0C */ lwz r5, 0xc(r5) /* 80352F74 0034FED4 38 A5 00 20 */ addi r5, r5, 0x20 /* 80352F78 0034FED8 4B FB F9 D9 */ bl __ml__12CTransform4fCFRC12CTransform4f /* 80352F7C 0034FEDC 38 61 00 08 */ addi r3, r1, 8 /* 80352F80 0034FEE0 4B FB 96 61 */ bl SetModelMatrix__9CGraphicsFRC12CTransform4f /* 80352F84 0034FEE4 80 7F 00 0C */ lwz r3, 0xc(r31) /* 80352F88 0034FEE8 48 00 27 3D */ bl GetNormals__6CModelCFv /* 80352F8C 0034FEEC 7C 7E 1B 78 */ mr r30, r3 /* 80352F90 0034FEF0 80 7F 00 0C */ lwz r3, 0xc(r31) /* 80352F94 0034FEF4 48 00 27 3D */ bl GetPositions__6CModelCFv /* 80352F98 0034FEF8 7F 8C E3 78 */ mr r12, r28 /* 80352F9C 0034FEFC 7F C4 F3 78 */ mr r4, r30 /* 80352FA0 0034FF00 7F A5 EB 78 */ mr r5, r29 /* 80352FA4 0034FF04 7D 89 03 A6 */ mtctr r12 /* 80352FA8 0034FF08 4E 80 04 21 */ bctrl /* 80352FAC 0034FF0C 38 61 00 38 */ addi r3, r1, 0x38 /* 80352FB0 0034FF10 4B FB 96 31 */ bl SetModelMatrix__9CGraphicsFRC12CTransform4f /* 80352FB4 0034FF14 48 00 00 90 */ b lbl_80353044 lbl_80352FB8: /* 80352FB8 0034FF18 80 7F 00 2C */ lwz r3, 0x2c(r31) /* 80352FBC 0034FF1C 28 03 00 00 */ cmplwi r3, 0 /* 80352FC0 0034FF20 40 82 00 30 */ bne lbl_80352FF0 /* 80352FC4 0034FF24 80 7F 00 0C */ lwz r3, 0xc(r31) /* 80352FC8 0034FF28 48 00 26 FD */ bl GetNormals__6CModelCFv /* 80352FCC 0034FF2C 7C 7E 1B 78 */ mr r30, r3 /* 80352FD0 0034FF30 80 7F 00 0C */ lwz r3, 0xc(r31) /* 80352FD4 0034FF34 48 00 26 FD */ bl GetPositions__6CModelCFv /* 80352FD8 0034FF38 7F 8C E3 78 */ mr r12, r28 /* 80352FDC 0034FF3C 7F C4 F3 78 */ mr r4, r30 /* 80352FE0 0034FF40 7F A5 EB 78 */ mr r5, r29 /* 80352FE4 0034FF44 7D 89 03 A6 */ mtctr r12 /* 80352FE8 0034FF48 4E 80 04 21 */ bctrl /* 80352FEC 0034FF4C 48 00 00 58 */ b lbl_80353044 lbl_80352FF0: /* 80352FF0 0034FF50 7F 8C E3 78 */ mr r12, r28 /* 80352FF4 0034FF54 80 9F 00 34 */ lwz r4, 0x34(r31) /* 80352FF8 0034FF58 7D 89 03 A6 */ mtctr r12 /* 80352FFC 0034FF5C 4E 80 04 21 */ bctrl /* 80353000 0034FF60 80 9F 00 18 */ lwz r4, 0x18(r31) /* 80353004 0034FF64 80 7F 00 2C */ lwz r3, 0x2c(r31) /* 80353008 0034FF68 80 04 00 10 */ lwz r0, 0x10(r4) /* 8035300C 0034FF6C 1C 80 00 0C */ mulli r4, r0, 0xc /* 80353010 0034FF70 38 04 00 1F */ addi r0, r4, 0x1f /* 80353014 0034FF74 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a /* 80353018 0034FF78 48 02 BA F9 */ bl DCFlushRangeNoSync /* 8035301C 0034FF7C 80 9F 00 18 */ lwz r4, 0x18(r31) /* 80353020 0034FF80 80 7F 00 34 */ lwz r3, 0x34(r31) /* 80353024 0034FF84 80 04 00 14 */ lwz r0, 0x14(r4) /* 80353028 0034FF88 1C 80 00 0C */ mulli r4, r0, 0xc /* 8035302C 0034FF8C 38 04 00 1F */ addi r0, r4, 0x1f /* 80353030 0034FF90 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a /* 80353034 0034FF94 48 02 BA DD */ bl DCFlushRangeNoSync /* 80353038 0034FF98 48 01 C7 D5 */ bl PPCSync /* 8035303C 0034FF9C 7F E3 FB 78 */ mr r3, r31 /* 80353040 0034FFA0 4B FF F7 21 */ bl sub_80352760 lbl_80353044: /* 80353044 0034FFA4 80 01 00 84 */ lwz r0, 0x84(r1) /* 80353048 0034FFA8 83 E1 00 7C */ lwz r31, 0x7c(r1) /* 8035304C 0034FFAC 83 C1 00 78 */ lwz r30, 0x78(r1) /* 80353050 0034FFB0 83 A1 00 74 */ lwz r29, 0x74(r1) /* 80353054 0034FFB4 83 81 00 70 */ lwz r28, 0x70(r1) /* 80353058 0034FFB8 7C 08 03 A6 */ mtlr r0 /* 8035305C 0034FFBC 38 21 00 80 */ addi r1, r1, 0x80 /* 80353060 0034FFC0 4E 80 00 20 */ blr .global sub_80353064 sub_80353064: /* 80353064 0034FFC4 94 21 FF 90 */ stwu r1, -0x70(r1) /* 80353068 0034FFC8 7C 08 02 A6 */ mflr r0 /* 8035306C 0034FFCC 90 01 00 74 */ stw r0, 0x74(r1) /* 80353070 0034FFD0 93 E1 00 6C */ stw r31, 0x6c(r1) /* 80353074 0034FFD4 7C 9F 23 78 */ mr r31, r4 /* 80353078 0034FFD8 93 C1 00 68 */ stw r30, 0x68(r1) /* 8035307C 0034FFDC 7C 7E 1B 78 */ mr r30, r3 /* 80353080 0034FFE0 88 03 00 39 */ lbz r0, 0x39(r3) /* 80353084 0034FFE4 28 00 00 00 */ cmplwi r0, 0 /* 80353088 0034FFE8 41 82 00 4C */ beq lbl_803530D4 /* 8035308C 0034FFEC 3C 80 80 5A */ lis r4, mModelMatrix__9CGraphics@ha /* 80353090 0034FFF0 38 61 00 38 */ addi r3, r1, 0x38 /* 80353094 0034FFF4 38 84 62 04 */ addi r4, r4, mModelMatrix__9CGraphics@l /* 80353098 0034FFF8 4B FB FA DD */ bl __ct__12CTransform4fFRC12CTransform4f /* 8035309C 0034FFFC 80 BE 00 18 */ lwz r5, 0x18(r30) /* 803530A0 00350000 38 61 00 08 */ addi r3, r1, 8 /* 803530A4 00350004 38 81 00 38 */ addi r4, r1, 0x38 /* 803530A8 00350008 80 A5 00 0C */ lwz r5, 0xc(r5) /* 803530AC 0035000C 38 A5 00 20 */ addi r5, r5, 0x20 /* 803530B0 00350010 4B FB F8 A1 */ bl __ml__12CTransform4fCFRC12CTransform4f /* 803530B4 00350014 38 61 00 08 */ addi r3, r1, 8 /* 803530B8 00350018 4B FB 95 29 */ bl SetModelMatrix__9CGraphicsFRC12CTransform4f /* 803530BC 0035001C 80 7E 00 0C */ lwz r3, 0xc(r30) /* 803530C0 00350020 7F E4 FB 78 */ mr r4, r31 /* 803530C4 00350024 48 00 2B 11 */ bl Draw__6CModelCFRC11CModelFlags /* 803530C8 00350028 38 61 00 38 */ addi r3, r1, 0x38 /* 803530CC 0035002C 4B FB 95 15 */ bl SetModelMatrix__9CGraphicsFRC12CTransform4f /* 803530D0 00350030 48 00 00 38 */ b lbl_80353108 lbl_803530D4: /* 803530D4 00350034 80 1E 00 2C */ lwz r0, 0x2c(r30) /* 803530D8 00350038 28 00 00 00 */ cmplwi r0, 0 /* 803530DC 0035003C 40 82 00 10 */ bne lbl_803530EC /* 803530E0 00350040 80 7E 00 0C */ lwz r3, 0xc(r30) /* 803530E4 00350044 48 00 2A F1 */ bl Draw__6CModelCFRC11CModelFlags /* 803530E8 00350048 48 00 00 20 */ b lbl_80353108 lbl_803530EC: /* 803530EC 0035004C 80 7E 00 0C */ lwz r3, 0xc(r30) /* 803530F0 00350050 7C 04 03 78 */ mr r4, r0 /* 803530F4 00350054 80 BE 00 34 */ lwz r5, 0x34(r30) /* 803530F8 00350058 7F E6 FB 78 */ mr r6, r31 /* 803530FC 0035005C 48 00 29 4D */ bl Draw__6CModelCFPCfPCfRC11CModelFlags /* 80353100 00350060 7F C3 F3 78 */ mr r3, r30 /* 80353104 00350064 4B FF F6 5D */ bl sub_80352760 lbl_80353108: /* 80353108 00350068 80 01 00 74 */ lwz r0, 0x74(r1) /* 8035310C 0035006C 83 E1 00 6C */ lwz r31, 0x6c(r1) /* 80353110 00350070 83 C1 00 68 */ lwz r30, 0x68(r1) /* 80353114 00350074 7C 08 03 A6 */ mtlr r0 /* 80353118 00350078 38 21 00 70 */ addi r1, r1, 0x70 /* 8035311C 0035007C 4E 80 00 20 */ blr .global sub_80353120 sub_80353120: /* 80353120 00350080 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80353124 00350084 7C 08 02 A6 */ mflr r0 /* 80353128 00350088 90 01 00 24 */ stw r0, 0x24(r1) /* 8035312C 0035008C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80353130 00350090 7C 7F 1B 78 */ mr r31, r3 /* 80353134 00350094 93 C1 00 18 */ stw r30, 0x18(r1) /* 80353138 00350098 48 00 04 75 */ bl sub_803535ac /* 8035313C 0035009C 88 1F 00 38 */ lbz r0, 0x38(r31) /* 80353140 003500A0 28 00 00 00 */ cmplwi r0, 0 /* 80353144 003500A4 40 82 01 08 */ bne lbl_8035324C /* 80353148 003500A8 80 DF 00 18 */ lwz r6, 0x18(r31) /* 8035314C 003500AC 3C 60 80 3E */ lis r3, lbl_803D82F8@ha /* 80353150 003500B0 38 83 82 F8 */ addi r4, r3, lbl_803D82F8@l /* 80353154 003500B4 38 A0 00 00 */ li r5, 0 /* 80353158 003500B8 80 06 00 10 */ lwz r0, 0x10(r6) /* 8035315C 003500BC 83 C6 00 14 */ lwz r30, 0x14(r6) /* 80353160 003500C0 1C 00 00 0C */ mulli r0, r0, 0xc /* 80353164 003500C4 54 03 10 3A */ slwi r3, r0, 2 /* 80353168 003500C8 4B FC 26 B1 */ bl __nwa__FUlPCcPCc /* 8035316C 003500CC 7C 03 00 D0 */ neg r0, r3 /* 80353170 003500D0 38 81 00 10 */ addi r4, r1, 0x10 /* 80353174 003500D4 7C 05 1B 78 */ or r5, r0, r3 /* 80353178 003500D8 38 1F 00 28 */ addi r0, r31, 0x28 /* 8035317C 003500DC 54 A5 0F FE */ srwi r5, r5, 0x1f /* 80353180 003500E0 90 61 00 14 */ stw r3, 0x14(r1) /* 80353184 003500E4 7C 04 00 40 */ cmplw r4, r0 /* 80353188 003500E8 98 A1 00 10 */ stb r5, 0x10(r1) /* 8035318C 003500EC 41 82 00 30 */ beq lbl_803531BC /* 80353190 003500F0 88 1F 00 28 */ lbz r0, 0x28(r31) /* 80353194 003500F4 28 00 00 00 */ cmplwi r0, 0 /* 80353198 003500F8 41 82 00 0C */ beq lbl_803531A4 /* 8035319C 003500FC 80 7F 00 2C */ lwz r3, 0x2c(r31) /* 803531A0 00350100 4B FC 27 91 */ bl Free__7CMemoryFPCv lbl_803531A4: /* 803531A4 00350104 88 61 00 10 */ lbz r3, 0x10(r1) /* 803531A8 00350108 38 00 00 00 */ li r0, 0 /* 803531AC 0035010C 98 7F 00 28 */ stb r3, 0x28(r31) /* 803531B0 00350110 80 61 00 14 */ lwz r3, 0x14(r1) /* 803531B4 00350114 90 7F 00 2C */ stw r3, 0x2c(r31) /* 803531B8 00350118 98 01 00 10 */ stb r0, 0x10(r1) lbl_803531BC: /* 803531BC 0035011C 88 01 00 10 */ lbz r0, 0x10(r1) /* 803531C0 00350120 28 00 00 00 */ cmplwi r0, 0 /* 803531C4 00350124 41 82 00 0C */ beq lbl_803531D0 /* 803531C8 00350128 80 61 00 14 */ lwz r3, 0x14(r1) /* 803531CC 0035012C 4B FC 27 65 */ bl Free__7CMemoryFPCv lbl_803531D0: /* 803531D0 00350130 1C 1E 00 0C */ mulli r0, r30, 0xc /* 803531D4 00350134 3C 60 80 3E */ lis r3, lbl_803D82F8@ha /* 803531D8 00350138 38 A0 00 00 */ li r5, 0 /* 803531DC 0035013C 38 83 82 F8 */ addi r4, r3, lbl_803D82F8@l /* 803531E0 00350140 54 03 10 3A */ slwi r3, r0, 2 /* 803531E4 00350144 4B FC 26 35 */ bl __nwa__FUlPCcPCc /* 803531E8 00350148 7C 03 00 D0 */ neg r0, r3 /* 803531EC 0035014C 38 81 00 08 */ addi r4, r1, 8 /* 803531F0 00350150 7C 05 1B 78 */ or r5, r0, r3 /* 803531F4 00350154 38 1F 00 30 */ addi r0, r31, 0x30 /* 803531F8 00350158 54 A5 0F FE */ srwi r5, r5, 0x1f /* 803531FC 0035015C 90 61 00 0C */ stw r3, 0xc(r1) /* 80353200 00350160 7C 04 00 40 */ cmplw r4, r0 /* 80353204 00350164 98 A1 00 08 */ stb r5, 8(r1) /* 80353208 00350168 41 82 00 30 */ beq lbl_80353238 /* 8035320C 0035016C 88 1F 00 30 */ lbz r0, 0x30(r31) /* 80353210 00350170 28 00 00 00 */ cmplwi r0, 0 /* 80353214 00350174 41 82 00 0C */ beq lbl_80353220 /* 80353218 00350178 80 7F 00 34 */ lwz r3, 0x34(r31) /* 8035321C 0035017C 4B FC 27 15 */ bl Free__7CMemoryFPCv lbl_80353220: /* 80353220 00350180 88 61 00 08 */ lbz r3, 8(r1) /* 80353224 00350184 38 00 00 00 */ li r0, 0 /* 80353228 00350188 98 7F 00 30 */ stb r3, 0x30(r31) /* 8035322C 0035018C 80 61 00 0C */ lwz r3, 0xc(r1) /* 80353230 00350190 90 7F 00 34 */ stw r3, 0x34(r31) /* 80353234 00350194 98 01 00 08 */ stb r0, 8(r1) lbl_80353238: /* 80353238 00350198 88 01 00 08 */ lbz r0, 8(r1) /* 8035323C 0035019C 28 00 00 00 */ cmplwi r0, 0 /* 80353240 003501A0 41 82 00 0C */ beq lbl_8035324C /* 80353244 003501A4 80 61 00 0C */ lwz r3, 0xc(r1) /* 80353248 003501A8 4B FC 26 E9 */ bl Free__7CMemoryFPCv lbl_8035324C: /* 8035324C 003501AC 80 7F 00 18 */ lwz r3, 0x18(r31) /* 80353250 003501B0 80 03 00 04 */ lwz r0, 4(r3) /* 80353254 003501B4 2C 00 00 01 */ cmpwi r0, 1 /* 80353258 003501B8 40 82 00 0C */ bne lbl_80353264 /* 8035325C 003501BC 38 00 00 01 */ li r0, 1 /* 80353260 003501C0 98 1F 00 39 */ stb r0, 0x39(r31) lbl_80353264: /* 80353264 003501C4 80 01 00 24 */ lwz r0, 0x24(r1) /* 80353268 003501C8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8035326C 003501CC 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80353270 003501D0 7C 08 03 A6 */ mtlr r0 /* 80353274 003501D4 38 21 00 20 */ addi r1, r1, 0x20 /* 80353278 003501D8 4E 80 00 20 */ blr .global __dt__13CSkinnedModelFv __dt__13CSkinnedModelFv: /* 8035327C 003501DC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80353280 003501E0 7C 08 02 A6 */ mflr r0 /* 80353284 003501E4 90 01 00 14 */ stw r0, 0x14(r1) /* 80353288 003501E8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8035328C 003501EC 7C 9F 23 78 */ mr r31, r4 /* 80353290 003501F0 93 C1 00 08 */ stw r30, 8(r1) /* 80353294 003501F4 7C 7E 1B 79 */ or. r30, r3, r3 /* 80353298 003501F8 41 82 00 B0 */ beq lbl_80353348 /* 8035329C 003501FC 3C 60 80 3F */ lis r3, lbl_803EF718@ha /* 803532A0 00350200 38 03 F7 18 */ addi r0, r3, lbl_803EF718@l /* 803532A4 00350204 90 1E 00 00 */ stw r0, 0(r30) /* 803532A8 00350208 48 00 02 65 */ bl sub_8035350c /* 803532AC 0035020C 34 1E 00 30 */ addic. r0, r30, 0x30 /* 803532B0 00350210 41 82 00 18 */ beq lbl_803532C8 /* 803532B4 00350214 88 1E 00 30 */ lbz r0, 0x30(r30) /* 803532B8 00350218 28 00 00 00 */ cmplwi r0, 0 /* 803532BC 0035021C 41 82 00 0C */ beq lbl_803532C8 /* 803532C0 00350220 80 7E 00 34 */ lwz r3, 0x34(r30) /* 803532C4 00350224 4B FC 26 6D */ bl Free__7CMemoryFPCv lbl_803532C8: /* 803532C8 00350228 34 1E 00 28 */ addic. r0, r30, 0x28 /* 803532CC 0035022C 41 82 00 18 */ beq lbl_803532E4 /* 803532D0 00350230 88 1E 00 28 */ lbz r0, 0x28(r30) /* 803532D4 00350234 28 00 00 00 */ cmplwi r0, 0 /* 803532D8 00350238 41 82 00 0C */ beq lbl_803532E4 /* 803532DC 0035023C 80 7E 00 2C */ lwz r3, 0x2c(r30) /* 803532E0 00350240 4B FC 26 51 */ bl Free__7CMemoryFPCv lbl_803532E4: /* 803532E4 00350244 34 1E 00 1C */ addic. r0, r30, 0x1c /* 803532E8 00350248 41 82 00 18 */ beq lbl_80353300 /* 803532EC 0035024C 34 1E 00 1C */ addic. r0, r30, 0x1c /* 803532F0 00350250 41 82 00 10 */ beq lbl_80353300 /* 803532F4 00350254 38 7E 00 1C */ addi r3, r30, 0x1c /* 803532F8 00350258 38 80 00 00 */ li r4, 0 /* 803532FC 0035025C 4B FE DB 45 */ bl __dt__6CTokenFv lbl_80353300: /* 80353300 00350260 34 1E 00 10 */ addic. r0, r30, 0x10 /* 80353304 00350264 41 82 00 18 */ beq lbl_8035331C /* 80353308 00350268 34 1E 00 10 */ addic. r0, r30, 0x10 /* 8035330C 0035026C 41 82 00 10 */ beq lbl_8035331C /* 80353310 00350270 38 7E 00 10 */ addi r3, r30, 0x10 /* 80353314 00350274 38 80 00 00 */ li r4, 0 /* 80353318 00350278 4B FE DB 29 */ bl __dt__6CTokenFv lbl_8035331C: /* 8035331C 0035027C 34 1E 00 04 */ addic. r0, r30, 4 /* 80353320 00350280 41 82 00 18 */ beq lbl_80353338 /* 80353324 00350284 34 1E 00 04 */ addic. r0, r30, 4 /* 80353328 00350288 41 82 00 10 */ beq lbl_80353338 /* 8035332C 0035028C 38 7E 00 04 */ addi r3, r30, 4 /* 80353330 00350290 38 80 00 00 */ li r4, 0 /* 80353334 00350294 4B FE DB 0D */ bl __dt__6CTokenFv lbl_80353338: /* 80353338 00350298 7F E0 07 35 */ extsh. r0, r31 /* 8035333C 0035029C 40 81 00 0C */ ble lbl_80353348 /* 80353340 003502A0 7F C3 F3 78 */ mr r3, r30 /* 80353344 003502A4 4B FC 25 ED */ bl Free__7CMemoryFPCv lbl_80353348: /* 80353348 003502A8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8035334C 003502AC 7F C3 F3 78 */ mr r3, r30 /* 80353350 003502B0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80353354 003502B4 83 C1 00 08 */ lwz r30, 8(r1) /* 80353358 003502B8 7C 08 03 A6 */ mtlr r0 /* 8035335C 003502BC 38 21 00 10 */ addi r1, r1, 0x10 /* 80353360 003502C0 4E 80 00 20 */ blr .global __ct__13CSkinnedModelFRC13CSkinnedModel __ct__13CSkinnedModelFRC13CSkinnedModel: /* 80353364 003502C4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80353368 003502C8 7C 08 02 A6 */ mflr r0 /* 8035336C 003502CC 3C A0 80 3F */ lis r5, lbl_803EF718@ha /* 80353370 003502D0 90 01 00 24 */ stw r0, 0x24(r1) /* 80353374 003502D4 38 05 F7 18 */ addi r0, r5, lbl_803EF718@l /* 80353378 003502D8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8035337C 003502DC 7C 9F 23 78 */ mr r31, r4 /* 80353380 003502E0 38 9F 00 04 */ addi r4, r31, 4 /* 80353384 003502E4 93 C1 00 18 */ stw r30, 0x18(r1) /* 80353388 003502E8 93 A1 00 14 */ stw r29, 0x14(r1) /* 8035338C 003502EC 7C 7D 1B 78 */ mr r29, r3 /* 80353390 003502F0 3B DD 00 04 */ addi r30, r29, 4 /* 80353394 003502F4 90 03 00 00 */ stw r0, 0(r3) /* 80353398 003502F8 7F C3 F3 78 */ mr r3, r30 /* 8035339C 003502FC 4B FE DB 0D */ bl __ct__6CTokenFRC6CToken /* 803533A0 00350300 80 1F 00 0C */ lwz r0, 0xc(r31) /* 803533A4 00350304 7F C3 F3 78 */ mr r3, r30 /* 803533A8 00350308 90 1E 00 08 */ stw r0, 8(r30) /* 803533AC 0035030C 4B FE D9 D9 */ bl Lock__6CTokenFv /* 803533B0 00350310 3B DD 00 10 */ addi r30, r29, 0x10 /* 803533B4 00350314 38 9F 00 10 */ addi r4, r31, 0x10 /* 803533B8 00350318 7F C3 F3 78 */ mr r3, r30 /* 803533BC 0035031C 4B FE DA ED */ bl __ct__6CTokenFRC6CToken /* 803533C0 00350320 80 1F 00 18 */ lwz r0, 0x18(r31) /* 803533C4 00350324 7F C3 F3 78 */ mr r3, r30 /* 803533C8 00350328 90 1E 00 08 */ stw r0, 8(r30) /* 803533CC 0035032C 4B FE D9 B9 */ bl Lock__6CTokenFv /* 803533D0 00350330 3B DD 00 1C */ addi r30, r29, 0x1c /* 803533D4 00350334 38 9F 00 1C */ addi r4, r31, 0x1c /* 803533D8 00350338 7F C3 F3 78 */ mr r3, r30 /* 803533DC 0035033C 4B FE DA CD */ bl __ct__6CTokenFRC6CToken /* 803533E0 00350340 80 1F 00 24 */ lwz r0, 0x24(r31) /* 803533E4 00350344 7F C3 F3 78 */ mr r3, r30 /* 803533E8 00350348 90 1E 00 08 */ stw r0, 8(r30) /* 803533EC 0035034C 4B FE D9 99 */ bl Lock__6CTokenFv /* 803533F0 00350350 38 80 00 00 */ li r4, 0 /* 803533F4 00350354 7F A3 EB 78 */ mr r3, r29 /* 803533F8 00350358 98 9D 00 28 */ stb r4, 0x28(r29) /* 803533FC 0035035C 90 9D 00 2C */ stw r4, 0x2c(r29) /* 80353400 00350360 98 9D 00 30 */ stb r4, 0x30(r29) /* 80353404 00350364 90 9D 00 34 */ stw r4, 0x34(r29) /* 80353408 00350368 88 1F 00 38 */ lbz r0, 0x38(r31) /* 8035340C 0035036C 98 1D 00 38 */ stb r0, 0x38(r29) /* 80353410 00350370 98 9D 00 39 */ stb r4, 0x39(r29) /* 80353414 00350374 4B FF FD 0D */ bl sub_80353120 /* 80353418 00350378 80 01 00 24 */ lwz r0, 0x24(r1) /* 8035341C 0035037C 7F A3 EB 78 */ mr r3, r29 /* 80353420 00350380 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80353424 00350384 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80353428 00350388 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8035342C 0035038C 7C 08 03 A6 */ mtlr r0 /* 80353430 00350390 38 21 00 20 */ addi r1, r1, 0x20 /* 80353434 00350394 4E 80 00 20 */ blr .global "__ct__13CSkinnedModelFRC21TLockedToken<6CModel>RC26TLockedToken<10CSkinRules>RC31TLockedToken<15CCharLayoutInfo>Q213CSkinnedModel14EDataOwnership" "__ct__13CSkinnedModelFRC21TLockedToken<6CModel>RC26TLockedToken<10CSkinRules>RC31TLockedToken<15CCharLayoutInfo>Q213CSkinnedModel14EDataOwnership": /* 80353438 00350398 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8035343C 0035039C 7C 08 02 A6 */ mflr r0 /* 80353440 003503A0 3D 00 80 3F */ lis r8, lbl_803EF718@ha /* 80353444 003503A4 90 01 00 24 */ stw r0, 0x24(r1) /* 80353448 003503A8 38 08 F7 18 */ addi r0, r8, lbl_803EF718@l /* 8035344C 003503AC BF 41 00 08 */ stmw r26, 8(r1) /* 80353450 003503B0 7C 7A 1B 78 */ mr r26, r3 /* 80353454 003503B4 3B 7A 00 04 */ addi r27, r26, 4 /* 80353458 003503B8 7C 9C 23 78 */ mr r28, r4 /* 8035345C 003503BC 7C BD 2B 78 */ mr r29, r5 /* 80353460 003503C0 7C DE 33 78 */ mr r30, r6 /* 80353464 003503C4 7C FF 3B 78 */ mr r31, r7 /* 80353468 003503C8 90 03 00 00 */ stw r0, 0(r3) /* 8035346C 003503CC 7F 63 DB 78 */ mr r3, r27 /* 80353470 003503D0 4B FE DA 39 */ bl __ct__6CTokenFRC6CToken /* 80353474 003503D4 80 1C 00 08 */ lwz r0, 8(r28) /* 80353478 003503D8 7F 63 DB 78 */ mr r3, r27 /* 8035347C 003503DC 90 1B 00 08 */ stw r0, 8(r27) /* 80353480 003503E0 4B FE D9 05 */ bl Lock__6CTokenFv /* 80353484 003503E4 3B 7A 00 10 */ addi r27, r26, 0x10 /* 80353488 003503E8 7F A4 EB 78 */ mr r4, r29 /* 8035348C 003503EC 7F 63 DB 78 */ mr r3, r27 /* 80353490 003503F0 4B FE DA 19 */ bl __ct__6CTokenFRC6CToken /* 80353494 003503F4 80 1D 00 08 */ lwz r0, 8(r29) /* 80353498 003503F8 7F 63 DB 78 */ mr r3, r27 /* 8035349C 003503FC 90 1B 00 08 */ stw r0, 8(r27) /* 803534A0 00350400 4B FE D8 E5 */ bl Lock__6CTokenFv /* 803534A4 00350404 3B 7A 00 1C */ addi r27, r26, 0x1c /* 803534A8 00350408 7F C4 F3 78 */ mr r4, r30 /* 803534AC 0035040C 7F 63 DB 78 */ mr r3, r27 /* 803534B0 00350410 4B FE D9 F9 */ bl __ct__6CTokenFRC6CToken /* 803534B4 00350414 80 1E 00 08 */ lwz r0, 8(r30) /* 803534B8 00350418 7F 63 DB 78 */ mr r3, r27 /* 803534BC 0035041C 90 1B 00 08 */ stw r0, 8(r27) /* 803534C0 00350420 4B FE D8 C5 */ bl Lock__6CTokenFv /* 803534C4 00350424 38 80 00 00 */ li r4, 0 /* 803534C8 00350428 20 1F 00 01 */ subfic r0, r31, 1 /* 803534CC 0035042C 98 9A 00 28 */ stb r4, 0x28(r26) /* 803534D0 00350430 7C 00 00 34 */ cntlzw r0, r0 /* 803534D4 00350434 54 00 D9 7E */ srwi r0, r0, 5 /* 803534D8 00350438 7F 43 D3 78 */ mr r3, r26 /* 803534DC 0035043C 90 9A 00 2C */ stw r4, 0x2c(r26) /* 803534E0 00350440 98 9A 00 30 */ stb r4, 0x30(r26) /* 803534E4 00350444 90 9A 00 34 */ stw r4, 0x34(r26) /* 803534E8 00350448 98 1A 00 38 */ stb r0, 0x38(r26) /* 803534EC 0035044C 98 9A 00 39 */ stb r4, 0x39(r26) /* 803534F0 00350450 4B FF FC 31 */ bl sub_80353120 /* 803534F4 00350454 7F 43 D3 78 */ mr r3, r26 /* 803534F8 00350458 BB 41 00 08 */ lmw r26, 8(r1) /* 803534FC 0035045C 80 01 00 24 */ lwz r0, 0x24(r1) /* 80353500 00350460 7C 08 03 A6 */ mtlr r0 /* 80353504 00350464 38 21 00 20 */ addi r1, r1, 0x20 /* 80353508 00350468 4E 80 00 20 */ blr .global sub_8035350c sub_8035350c: /* 8035350C 0035046C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80353510 00350470 7C 08 02 A6 */ mflr r0 /* 80353514 00350474 90 01 00 14 */ stw r0, 0x14(r1) /* 80353518 00350478 93 E1 00 0C */ stw r31, 0xc(r1) /* 8035351C 0035047C 93 C1 00 08 */ stw r30, 8(r1) /* 80353520 00350480 80 6D AA 3C */ lwz r3, lbl_805A95FC@sda21(r13) /* 80353524 00350484 34 03 FF FF */ addic. r0, r3, -1 /* 80353528 00350488 90 0D AA 3C */ stw r0, lbl_805A95FC@sda21(r13) /* 8035352C 0035048C 40 82 00 68 */ bne lbl_80353594 /* 80353530 00350490 3C 60 80 54 */ lis r3, sSkinningBuffer__8Skinning@ha /* 80353534 00350494 3B C3 FF CC */ addi r30, r3, sSkinningBuffer__8Skinning@l /* 80353538 00350498 88 1E 00 18 */ lbz r0, 0x18(r30) /* 8035353C 0035049C 28 00 00 00 */ cmplwi r0, 0 /* 80353540 003504A0 41 82 00 24 */ beq lbl_80353564 /* 80353544 003504A4 28 1E 00 00 */ cmplwi r30, 0 /* 80353548 003504A8 41 82 00 1C */ beq lbl_80353564 /* 8035354C 003504AC 41 82 00 18 */ beq lbl_80353564 /* 80353550 003504B0 88 1E 00 00 */ lbz r0, 0(r30) /* 80353554 003504B4 28 00 00 00 */ cmplwi r0, 0 /* 80353558 003504B8 41 82 00 0C */ beq lbl_80353564 /* 8035355C 003504BC 80 7E 00 04 */ lwz r3, 4(r30) /* 80353560 003504C0 4B FC 23 D1 */ bl Free__7CMemoryFPCv lbl_80353564: /* 80353564 003504C4 3C 60 80 54 */ lis r3, sAllocations__8Skinning@ha /* 80353568 003504C8 38 00 00 00 */ li r0, 0 /* 8035356C 003504CC 3B E3 FF F4 */ addi r31, r3, sAllocations__8Skinning@l /* 80353570 003504D0 98 1E 00 18 */ stb r0, 0x18(r30) /* 80353574 003504D4 83 DF 00 08 */ lwz r30, 8(r31) /* 80353578 003504D8 80 9F 00 04 */ lwz r4, 4(r31) /* 8035357C 003504DC 48 00 00 10 */ b lbl_8035358C lbl_80353580: /* 80353580 003504E0 7F E3 FB 78 */ mr r3, r31 /* 80353584 003504E4 48 00 01 7D */ bl sub_80353700 /* 80353588 003504E8 7C 64 1B 78 */ mr r4, r3 lbl_8035358C: /* 8035358C 003504EC 7C 04 F0 40 */ cmplw r4, r30 /* 80353590 003504F0 40 82 FF F0 */ bne lbl_80353580 lbl_80353594: /* 80353594 003504F4 80 01 00 14 */ lwz r0, 0x14(r1) /* 80353598 003504F8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8035359C 003504FC 83 C1 00 08 */ lwz r30, 8(r1) /* 803535A0 00350500 7C 08 03 A6 */ mtlr r0 /* 803535A4 00350504 38 21 00 10 */ addi r1, r1, 0x10 /* 803535A8 00350508 4E 80 00 20 */ blr .global sub_803535ac sub_803535ac: /* 803535AC 0035050C 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803535B0 00350510 7C 08 02 A6 */ mflr r0 /* 803535B4 00350514 90 01 00 34 */ stw r0, 0x34(r1) /* 803535B8 00350518 93 E1 00 2C */ stw r31, 0x2c(r1) /* 803535BC 0035051C 88 0D AA 40 */ lbz r0, lbl_805A9600@sda21(r13) /* 803535C0 00350520 28 00 00 00 */ cmplwi r0, 0 /* 803535C4 00350524 40 82 00 2C */ bne lbl_803535F0 /* 803535C8 00350528 3C 60 00 01 */ lis r3, 0x0000FFFF@ha /* 803535CC 0035052C 38 63 FF FF */ addi r3, r3, 0x0000FFFF@l /* 803535D0 00350530 48 02 4E 51 */ bl GXSetDrawSync lbl_803535D4: /* 803535D4 00350534 48 02 4F 05 */ bl GXReadDrawSync /* 803535D8 00350538 54 60 04 3E */ clrlwi r0, r3, 0x10 /* 803535DC 0035053C 28 00 FF FF */ cmplwi r0, 0xffff /* 803535E0 00350540 40 82 FF F4 */ bne lbl_803535D4 /* 803535E4 00350544 38 00 00 01 */ li r0, 1 /* 803535E8 00350548 B0 0D AA 38 */ sth r0, lbl_805A95F8@sda21(r13) /* 803535EC 0035054C 98 0D AA 40 */ stb r0, lbl_805A9600@sda21(r13) lbl_803535F0: /* 803535F0 00350550 80 0D AA 3C */ lwz r0, lbl_805A95FC@sda21(r13) /* 803535F4 00350554 2C 00 00 00 */ cmpwi r0, 0 /* 803535F8 00350558 40 82 00 E8 */ bne lbl_803536E0 /* 803535FC 0035055C 3C 80 80 4C */ lis r4, sStaticSkinningData__8Skinning@ha /* 80353600 00350560 38 61 00 08 */ addi r3, r1, 8 /* 80353604 00350564 38 84 FF C0 */ addi r4, r4, sStaticSkinningData__8Skinning@l /* 80353608 00350568 3C A0 00 08 */ lis r5, 8 /* 8035360C 0035056C 38 C0 00 01 */ li r6, 1 /* 80353610 00350570 4B FC 21 CD */ bl __ct__15CCircularBufferFPviQ215CCircularBuffer10EOwnership /* 80353614 00350574 3C 60 80 54 */ lis r3, sSkinningBuffer__8Skinning@ha /* 80353618 00350578 3B E3 FF CC */ addi r31, r3, sSkinningBuffer__8Skinning@l /* 8035361C 0035057C 88 1F 00 18 */ lbz r0, 0x18(r31) /* 80353620 00350580 28 00 00 00 */ cmplwi r0, 0 /* 80353624 00350584 40 82 00 50 */ bne lbl_80353674 /* 80353628 00350588 28 1F 00 00 */ cmplwi r31, 0 /* 8035362C 0035058C 41 82 00 3C */ beq lbl_80353668 /* 80353630 00350590 89 01 00 08 */ lbz r8, 8(r1) /* 80353634 00350594 38 C0 00 00 */ li r6, 0 /* 80353638 00350598 80 E1 00 0C */ lwz r7, 0xc(r1) /* 8035363C 0035059C 80 A1 00 10 */ lwz r5, 0x10(r1) /* 80353640 003505A0 80 81 00 14 */ lwz r4, 0x14(r1) /* 80353644 003505A4 80 61 00 18 */ lwz r3, 0x18(r1) /* 80353648 003505A8 80 01 00 1C */ lwz r0, 0x1c(r1) /* 8035364C 003505AC 99 1F 00 00 */ stb r8, 0(r31) /* 80353650 003505B0 90 FF 00 04 */ stw r7, 4(r31) /* 80353654 003505B4 98 C1 00 08 */ stb r6, 8(r1) /* 80353658 003505B8 90 BF 00 08 */ stw r5, 8(r31) /* 8035365C 003505BC 90 9F 00 0C */ stw r4, 0xc(r31) /* 80353660 003505C0 90 7F 00 10 */ stw r3, 0x10(r31) /* 80353664 003505C4 90 1F 00 14 */ stw r0, 0x14(r31) lbl_80353668: /* 80353668 003505C8 38 00 00 01 */ li r0, 1 /* 8035366C 003505CC 98 1F 00 18 */ stb r0, 0x18(r31) /* 80353670 003505D0 48 00 00 5C */ b lbl_803536CC lbl_80353674: /* 80353674 003505D4 38 01 00 08 */ addi r0, r1, 8 /* 80353678 003505D8 7C 00 F8 40 */ cmplw r0, r31 /* 8035367C 003505DC 41 82 00 30 */ beq lbl_803536AC /* 80353680 003505E0 88 1F 00 00 */ lbz r0, 0(r31) /* 80353684 003505E4 28 00 00 00 */ cmplwi r0, 0 /* 80353688 003505E8 41 82 00 0C */ beq lbl_80353694 /* 8035368C 003505EC 80 7F 00 04 */ lwz r3, 4(r31) /* 80353690 003505F0 4B FC 22 A1 */ bl Free__7CMemoryFPCv lbl_80353694: /* 80353694 003505F4 88 81 00 08 */ lbz r4, 8(r1) /* 80353698 003505F8 38 00 00 00 */ li r0, 0 /* 8035369C 003505FC 80 61 00 0C */ lwz r3, 0xc(r1) /* 803536A0 00350600 98 9F 00 00 */ stb r4, 0(r31) /* 803536A4 00350604 90 7F 00 04 */ stw r3, 4(r31) /* 803536A8 00350608 98 01 00 08 */ stb r0, 8(r1) lbl_803536AC: /* 803536AC 0035060C 80 A1 00 10 */ lwz r5, 0x10(r1) /* 803536B0 00350610 80 81 00 14 */ lwz r4, 0x14(r1) /* 803536B4 00350614 80 61 00 18 */ lwz r3, 0x18(r1) /* 803536B8 00350618 80 01 00 1C */ lwz r0, 0x1c(r1) /* 803536BC 0035061C 90 BF 00 08 */ stw r5, 8(r31) /* 803536C0 00350620 90 9F 00 0C */ stw r4, 0xc(r31) /* 803536C4 00350624 90 7F 00 10 */ stw r3, 0x10(r31) /* 803536C8 00350628 90 1F 00 14 */ stw r0, 0x14(r31) lbl_803536CC: /* 803536CC 0035062C 88 01 00 08 */ lbz r0, 8(r1) /* 803536D0 00350630 28 00 00 00 */ cmplwi r0, 0 /* 803536D4 00350634 41 82 00 0C */ beq lbl_803536E0 /* 803536D8 00350638 80 61 00 0C */ lwz r3, 0xc(r1) /* 803536DC 0035063C 4B FC 22 55 */ bl Free__7CMemoryFPCv lbl_803536E0: /* 803536E0 00350640 80 6D AA 3C */ lwz r3, lbl_805A95FC@sda21(r13) /* 803536E4 00350644 38 03 00 01 */ addi r0, r3, 1 /* 803536E8 00350648 90 0D AA 3C */ stw r0, lbl_805A95FC@sda21(r13) /* 803536EC 0035064C 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 803536F0 00350650 80 01 00 34 */ lwz r0, 0x34(r1) /* 803536F4 00350654 7C 08 03 A6 */ mtlr r0 /* 803536F8 00350658 38 21 00 30 */ addi r1, r1, 0x30 /* 803536FC 0035065C 4E 80 00 20 */ blr .global sub_80353700 sub_80353700: /* 80353700 00350660 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80353704 00350664 7C 08 02 A6 */ mflr r0 /* 80353708 00350668 90 01 00 14 */ stw r0, 0x14(r1) /* 8035370C 0035066C 93 E1 00 0C */ stw r31, 0xc(r1) /* 80353710 00350670 93 C1 00 08 */ stw r30, 8(r1) /* 80353714 00350674 7C 7E 1B 78 */ mr r30, r3 /* 80353718 00350678 80 03 00 04 */ lwz r0, 4(r3) /* 8035371C 0035067C 83 E4 00 04 */ lwz r31, 4(r4) /* 80353720 00350680 7C 04 00 40 */ cmplw r4, r0 /* 80353724 00350684 40 82 00 08 */ bne lbl_8035372C /* 80353728 00350688 93 FE 00 04 */ stw r31, 4(r30) lbl_8035372C: /* 8035372C 0035068C 80 04 00 04 */ lwz r0, 4(r4) /* 80353730 00350690 28 04 00 00 */ cmplwi r4, 0 /* 80353734 00350694 80 64 00 00 */ lwz r3, 0(r4) /* 80353738 00350698 90 03 00 04 */ stw r0, 4(r3) /* 8035373C 0035069C 80 04 00 00 */ lwz r0, 0(r4) /* 80353740 003506A0 80 64 00 04 */ lwz r3, 4(r4) /* 80353744 003506A4 90 03 00 00 */ stw r0, 0(r3) /* 80353748 003506A8 41 82 00 0C */ beq lbl_80353754 /* 8035374C 003506AC 7C 83 23 78 */ mr r3, r4 /* 80353750 003506B0 4B FC 21 E1 */ bl Free__7CMemoryFPCv lbl_80353754: /* 80353754 003506B4 80 9E 00 14 */ lwz r4, 0x14(r30) /* 80353758 003506B8 7F E3 FB 78 */ mr r3, r31 /* 8035375C 003506BC 38 04 FF FF */ addi r0, r4, -1 /* 80353760 003506C0 90 1E 00 14 */ stw r0, 0x14(r30) /* 80353764 003506C4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80353768 003506C8 83 C1 00 08 */ lwz r30, 8(r1) /* 8035376C 003506CC 80 01 00 14 */ lwz r0, 0x14(r1) /* 80353770 003506D0 7C 08 03 A6 */ mtlr r0 /* 80353774 003506D4 38 21 00 10 */ addi r1, r1, 0x10 /* 80353778 003506D8 4E 80 00 20 */ blr .global __sinit_DolphinCSkinnedModel_cpp __sinit_DolphinCSkinnedModel_cpp: /* 8035377C 003506DC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80353780 003506E0 7C 08 02 A6 */ mflr r0 /* 80353784 003506E4 3C 80 80 4C */ lis r4, sStaticSkinningData__8Skinning@ha /* 80353788 003506E8 3C 60 80 35 */ lis r3, "__dt__Q24rstl34optional_object<15CCircularBuffer>Fv"@ha /* 8035378C 003506EC 90 01 00 14 */ stw r0, 0x14(r1) /* 80353790 003506F0 38 84 FF C0 */ addi r4, r4, sStaticSkinningData__8Skinning@l /* 80353794 003506F4 38 00 00 00 */ li r0, 0 /* 80353798 003506F8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8035379C 003506FC 3F E4 00 08 */ addis r31, r4, 8 /* 803537A0 00350700 38 83 38 74 */ addi r4, r3, "__dt__Q24rstl34optional_object<15CCircularBuffer>Fv"@l /* 803537A4 00350704 38 7F 00 0C */ addi r3, r31, 0xc /* 803537A8 00350708 38 BF 00 00 */ addi r5, r31, 0 /* 803537AC 0035070C 98 03 00 18 */ stb r0, 0x18(r3) /* 803537B0 00350710 48 03 5E DD */ bl __register_global_object /* 803537B4 00350714 38 DF 00 34 */ addi r6, r31, 0x34 /* 803537B8 00350718 3C 80 80 35 */ lis r4, "__dt__Q24rstl53list<18SSkinnedAllocation,Q24rstl17rmemory_allocator>Fv"@ha /* 803537BC 0035071C 7C C3 33 78 */ mr r3, r6 /* 803537C0 00350720 38 00 00 00 */ li r0, 0 /* 803537C4 00350724 38 C6 00 0C */ addi r6, r6, 0xc /* 803537C8 00350728 90 03 00 14 */ stw r0, 0x14(r3) /* 803537CC 0035072C 38 84 37 FC */ addi r4, r4, "__dt__Q24rstl53list<18SSkinnedAllocation,Q24rstl17rmemory_allocator>Fv"@l /* 803537D0 00350730 38 BF 00 28 */ addi r5, r31, 0x28 /* 803537D4 00350734 90 C3 00 04 */ stw r6, 4(r3) /* 803537D8 00350738 90 C3 00 08 */ stw r6, 8(r3) /* 803537DC 0035073C 90 C6 00 00 */ stw r6, 0(r6) /* 803537E0 00350740 90 C3 00 10 */ stw r6, 0x10(r3) /* 803537E4 00350744 48 03 5E A9 */ bl __register_global_object /* 803537E8 00350748 80 01 00 14 */ lwz r0, 0x14(r1) /* 803537EC 0035074C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 803537F0 00350750 7C 08 03 A6 */ mtlr r0 /* 803537F4 00350754 38 21 00 10 */ addi r1, r1, 0x10 /* 803537F8 00350758 4E 80 00 20 */ blr .global "__dt__Q24rstl53list<18SSkinnedAllocation,Q24rstl17rmemory_allocator>Fv" "__dt__Q24rstl53list<18SSkinnedAllocation,Q24rstl17rmemory_allocator>Fv": /* 803537FC 0035075C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80353800 00350760 7C 08 02 A6 */ mflr r0 /* 80353804 00350764 90 01 00 24 */ stw r0, 0x24(r1) /* 80353808 00350768 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8035380C 0035076C 93 C1 00 18 */ stw r30, 0x18(r1) /* 80353810 00350770 7C 9E 23 78 */ mr r30, r4 /* 80353814 00350774 93 A1 00 14 */ stw r29, 0x14(r1) /* 80353818 00350778 7C 7D 1B 79 */ or. r29, r3, r3 /* 8035381C 0035077C 41 82 00 38 */ beq lbl_80353854 /* 80353820 00350780 83 FD 00 04 */ lwz r31, 4(r29) /* 80353824 00350784 48 00 00 14 */ b lbl_80353838 lbl_80353828: /* 80353828 00350788 7F E3 FB 79 */ or. r3, r31, r31 /* 8035382C 0035078C 83 FF 00 04 */ lwz r31, 4(r31) /* 80353830 00350790 41 82 00 08 */ beq lbl_80353838 /* 80353834 00350794 4B FC 20 FD */ bl Free__7CMemoryFPCv lbl_80353838: /* 80353838 00350798 80 1D 00 08 */ lwz r0, 8(r29) /* 8035383C 0035079C 7C 1F 00 40 */ cmplw r31, r0 /* 80353840 003507A0 40 82 FF E8 */ bne lbl_80353828 /* 80353844 003507A4 7F C0 07 35 */ extsh. r0, r30 /* 80353848 003507A8 40 81 00 0C */ ble lbl_80353854 /* 8035384C 003507AC 7F A3 EB 78 */ mr r3, r29 /* 80353850 003507B0 4B FC 20 E1 */ bl Free__7CMemoryFPCv lbl_80353854: /* 80353854 003507B4 80 01 00 24 */ lwz r0, 0x24(r1) /* 80353858 003507B8 7F A3 EB 78 */ mr r3, r29 /* 8035385C 003507BC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80353860 003507C0 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80353864 003507C4 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80353868 003507C8 7C 08 03 A6 */ mtlr r0 /* 8035386C 003507CC 38 21 00 20 */ addi r1, r1, 0x20 /* 80353870 003507D0 4E 80 00 20 */ blr .global "__dt__Q24rstl34optional_object<15CCircularBuffer>Fv" "__dt__Q24rstl34optional_object<15CCircularBuffer>Fv": /* 80353874 003507D4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80353878 003507D8 7C 08 02 A6 */ mflr r0 /* 8035387C 003507DC 90 01 00 14 */ stw r0, 0x14(r1) /* 80353880 003507E0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80353884 003507E4 7C 9F 23 78 */ mr r31, r4 /* 80353888 003507E8 93 C1 00 08 */ stw r30, 8(r1) /* 8035388C 003507EC 7C 7E 1B 79 */ or. r30, r3, r3 /* 80353890 003507F0 41 82 00 48 */ beq lbl_803538D8 /* 80353894 003507F4 88 1E 00 18 */ lbz r0, 0x18(r30) /* 80353898 003507F8 28 00 00 00 */ cmplwi r0, 0 /* 8035389C 003507FC 41 82 00 24 */ beq lbl_803538C0 /* 803538A0 00350800 28 1E 00 00 */ cmplwi r30, 0 /* 803538A4 00350804 41 82 00 1C */ beq lbl_803538C0 /* 803538A8 00350808 41 82 00 18 */ beq lbl_803538C0 /* 803538AC 0035080C 88 1E 00 00 */ lbz r0, 0(r30) /* 803538B0 00350810 28 00 00 00 */ cmplwi r0, 0 /* 803538B4 00350814 41 82 00 0C */ beq lbl_803538C0 /* 803538B8 00350818 80 7E 00 04 */ lwz r3, 4(r30) /* 803538BC 0035081C 4B FC 20 75 */ bl Free__7CMemoryFPCv lbl_803538C0: /* 803538C0 00350820 38 60 00 00 */ li r3, 0 /* 803538C4 00350824 7F E0 07 35 */ extsh. r0, r31 /* 803538C8 00350828 98 7E 00 18 */ stb r3, 0x18(r30) /* 803538CC 0035082C 40 81 00 0C */ ble lbl_803538D8 /* 803538D0 00350830 7F C3 F3 78 */ mr r3, r30 /* 803538D4 00350834 4B FC 20 5D */ bl Free__7CMemoryFPCv lbl_803538D8: /* 803538D8 00350838 80 01 00 14 */ lwz r0, 0x14(r1) /* 803538DC 0035083C 7F C3 F3 78 */ mr r3, r30 /* 803538E0 00350840 83 E1 00 0C */ lwz r31, 0xc(r1) /* 803538E4 00350844 83 C1 00 08 */ lwz r30, 8(r1) /* 803538E8 00350848 7C 08 03 A6 */ mtlr r0 /* 803538EC 0035084C 38 21 00 10 */ addi r1, r1, 0x10 /* 803538F0 00350850 4E 80 00 20 */ blr .section .rodata .balign 8 .global lbl_803D82F8 lbl_803D82F8: # ROM: 0x3D52F8 .asciz "??(??)" .balign 4