prime/asm/Kyoto/Animation/DolphinCSkinnedModel.s

1399 lines
67 KiB
ArmAsm

.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