prime/asm/Kyoto/Animation/DolphinCSkinRules.s

1126 lines
52 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .sdata
.global lbl_805A89C0
lbl_805A89C0:
# ROM: 0x3F6360
.4byte 0x000000C0
.global lbl_805A89C4
lbl_805A89C4:
# ROM: 0x3F6364
.4byte 0x01000000
.global lbl_805A89C8
lbl_805A89C8:
# ROM: 0x3F6368
.4byte 0x00000150
.global lbl_805A89CC
lbl_805A89CC:
# ROM: 0x3F636C
.4byte 0x00000150
.section .data
.global lbl_803EF728
lbl_803EF728:
# ROM: 0x3EC728
.4byte 0
.4byte 0
.4byte "__dt__20TToken<10CSkinRules>Fv"
.4byte 0
.section .sbss, "wa"
.global lbl_805A9608
lbl_805A9608:
.skip 0x4
.global lbl_805A960C
lbl_805A960C:
.skip 0x4
.global lbl_805A9610
lbl_805A9610:
.skip 0x4
.global lbl_805A9614
lbl_805A9614:
.skip 0x4
.global lbl_805A9618
lbl_805A9618:
.skip 0x4
.global lbl_805A961C
lbl_805A961C:
.skip 0x4
.global lbl_805A9620
lbl_805A9620:
.skip 0x4
.global lbl_805A9624
lbl_805A9624:
.skip 0x4
.global lbl_805A9628
lbl_805A9628:
.skip 0x4
.global lbl_805A962C
lbl_805A962C:
.skip 0x4
.global lbl_805A9630
lbl_805A9630:
.skip 0x4
.global lbl_805A9634
lbl_805A9634:
.skip 0x4
.section .text, "ax"
.global ProcessingNormals__10CSkinRulesFiPPUs
ProcessingNormals__10CSkinRulesFiPPUs:
/* 803538F4 00350854 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803538F8 00350858 7C 08 02 A6 */ mflr r0
/* 803538FC 0035085C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80353900 00350860 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80353904 00350864 7C 9F 23 78 */ mr r31, r4
/* 80353908 00350868 80 AD AA 68 */ lwz r5, lbl_805A9628@sda21(r13)
/* 8035390C 0035086C 80 8D AA 60 */ lwz r4, lbl_805A9620@sda21(r13)
/* 80353910 00350870 7C 05 1A 14 */ add r0, r5, r3
/* 80353914 00350874 90 61 00 08 */ stw r3, 8(r1)
/* 80353918 00350878 7C 00 20 00 */ cmpw r0, r4
/* 8035391C 0035087C 40 81 00 98 */ ble lbl_803539B4
/* 80353920 00350880 7C 05 20 00 */ cmpw r5, r4
/* 80353924 00350884 40 82 00 40 */ bne lbl_80353964
/* 80353928 00350888 48 00 01 C5 */ bl WaitForQueue__Fv
/* 8035392C 0035088C 88 0D 9E 04 */ lbz r0, lbl_805A89C4@sda21(r13)
/* 80353930 00350890 3C 60 E0 00 */ lis r3, 0xe000
/* 80353934 00350894 80 8D AA 60 */ lwz r4, lbl_805A9620@sda21(r13)
/* 80353938 00350898 28 00 00 00 */ cmplwi r0, 0
/* 8035393C 0035089C 90 6D AA 6C */ stw r3, lbl_805A962C@sda21(r13)
/* 80353940 003508A0 90 8D AA 70 */ stw r4, lbl_805A9630@sda21(r13)
/* 80353944 003508A4 41 82 00 0C */ beq lbl_80353950
/* 80353948 003508A8 38 03 10 00 */ addi r0, r3, 0x1000
/* 8035394C 003508AC 90 0D AA 6C */ stw r0, lbl_805A962C@sda21(r13)
lbl_80353950:
/* 80353950 003508B0 80 6D AA 60 */ lwz r3, lbl_805A9620@sda21(r13)
/* 80353954 003508B4 80 0D AA 58 */ lwz r0, lbl_805A9618@sda21(r13)
/* 80353958 003508B8 7C 03 02 14 */ add r0, r3, r0
/* 8035395C 003508BC 90 0D AA 60 */ stw r0, lbl_805A9620@sda21(r13)
/* 80353960 003508C0 48 00 01 BD */ bl StartNextTransaction__10CSkinRulesFv
lbl_80353964:
/* 80353964 003508C4 80 AD AA 68 */ lwz r5, lbl_805A9628@sda21(r13)
/* 80353968 003508C8 38 61 00 0C */ addi r3, r1, 0xc
/* 8035396C 003508CC 80 8D AA 60 */ lwz r4, lbl_805A9620@sda21(r13)
/* 80353970 003508D0 80 01 00 08 */ lwz r0, 8(r1)
/* 80353974 003508D4 7C 85 20 50 */ subf r4, r5, r4
/* 80353978 003508D8 7C 00 20 00 */ cmpw r0, r4
/* 8035397C 003508DC 90 81 00 0C */ stw r4, 0xc(r1)
/* 80353980 003508E0 40 80 00 08 */ bge lbl_80353988
/* 80353984 003508E4 38 61 00 08 */ addi r3, r1, 8
lbl_80353988:
/* 80353988 003508E8 80 0D AA 70 */ lwz r0, lbl_805A9630@sda21(r13)
/* 8035398C 003508EC 80 8D AA 6C */ lwz r4, lbl_805A962C@sda21(r13)
/* 80353990 003508F0 7C 00 28 50 */ subf r0, r0, r5
/* 80353994 003508F4 80 63 00 00 */ lwz r3, 0(r3)
/* 80353998 003508F8 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8035399C 003508FC 7C 04 02 14 */ add r0, r4, r0
/* 803539A0 00350900 90 1F 00 00 */ stw r0, 0(r31)
/* 803539A4 00350904 80 0D AA 68 */ lwz r0, lbl_805A9628@sda21(r13)
/* 803539A8 00350908 7C 00 1A 14 */ add r0, r0, r3
/* 803539AC 0035090C 90 0D AA 68 */ stw r0, lbl_805A9628@sda21(r13)
/* 803539B0 00350910 48 00 00 2C */ b lbl_803539DC
lbl_803539B4:
/* 803539B4 00350914 80 0D AA 70 */ lwz r0, lbl_805A9630@sda21(r13)
/* 803539B8 00350918 80 6D AA 6C */ lwz r3, lbl_805A962C@sda21(r13)
/* 803539BC 0035091C 7C 00 28 50 */ subf r0, r0, r5
/* 803539C0 00350920 1C 00 00 0C */ mulli r0, r0, 0xc
/* 803539C4 00350924 7C 03 02 14 */ add r0, r3, r0
/* 803539C8 00350928 90 1F 00 00 */ stw r0, 0(r31)
/* 803539CC 0035092C 80 61 00 08 */ lwz r3, 8(r1)
/* 803539D0 00350930 80 0D AA 68 */ lwz r0, lbl_805A9628@sda21(r13)
/* 803539D4 00350934 7C 00 1A 14 */ add r0, r0, r3
/* 803539D8 00350938 90 0D AA 68 */ stw r0, lbl_805A9628@sda21(r13)
lbl_803539DC:
/* 803539DC 0035093C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803539E0 00350940 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803539E4 00350944 7C 08 03 A6 */ mtlr r0
/* 803539E8 00350948 38 21 00 20 */ addi r1, r1, 0x20
/* 803539EC 0035094C 4E 80 00 20 */ blr
.global ProcessingPoints__10CSkinRulesFiPPUs
ProcessingPoints__10CSkinRulesFiPPUs:
/* 803539F0 00350950 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803539F4 00350954 7C 08 02 A6 */ mflr r0
/* 803539F8 00350958 90 01 00 24 */ stw r0, 0x24(r1)
/* 803539FC 0035095C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80353A00 00350960 7C 9F 23 78 */ mr r31, r4
/* 80353A04 00350964 80 AD AA 64 */ lwz r5, lbl_805A9624@sda21(r13)
/* 80353A08 00350968 80 8D AA 5C */ lwz r4, lbl_805A961C@sda21(r13)
/* 80353A0C 0035096C 7C 05 1A 14 */ add r0, r5, r3
/* 80353A10 00350970 90 61 00 08 */ stw r3, 8(r1)
/* 80353A14 00350974 7C 00 20 00 */ cmpw r0, r4
/* 80353A18 00350978 40 81 00 98 */ ble lbl_80353AB0
/* 80353A1C 0035097C 7C 05 20 00 */ cmpw r5, r4
/* 80353A20 00350980 40 82 00 40 */ bne lbl_80353A60
/* 80353A24 00350984 48 00 00 C9 */ bl WaitForQueue__Fv
/* 80353A28 00350988 88 0D 9E 04 */ lbz r0, lbl_805A89C4@sda21(r13)
/* 80353A2C 0035098C 3C 60 E0 00 */ lis r3, 0xe000
/* 80353A30 00350990 80 8D AA 5C */ lwz r4, lbl_805A961C@sda21(r13)
/* 80353A34 00350994 28 00 00 00 */ cmplwi r0, 0
/* 80353A38 00350998 90 6D AA 6C */ stw r3, lbl_805A962C@sda21(r13)
/* 80353A3C 0035099C 90 8D AA 70 */ stw r4, lbl_805A9630@sda21(r13)
/* 80353A40 003509A0 41 82 00 0C */ beq lbl_80353A4C
/* 80353A44 003509A4 38 03 10 00 */ addi r0, r3, 0x1000
/* 80353A48 003509A8 90 0D AA 6C */ stw r0, lbl_805A962C@sda21(r13)
lbl_80353A4C:
/* 80353A4C 003509AC 80 6D AA 5C */ lwz r3, lbl_805A961C@sda21(r13)
/* 80353A50 003509B0 80 0D AA 58 */ lwz r0, lbl_805A9618@sda21(r13)
/* 80353A54 003509B4 7C 03 02 14 */ add r0, r3, r0
/* 80353A58 003509B8 90 0D AA 5C */ stw r0, lbl_805A961C@sda21(r13)
/* 80353A5C 003509BC 48 00 00 C1 */ bl StartNextTransaction__10CSkinRulesFv
lbl_80353A60:
/* 80353A60 003509C0 80 AD AA 64 */ lwz r5, lbl_805A9624@sda21(r13)
/* 80353A64 003509C4 38 61 00 0C */ addi r3, r1, 0xc
/* 80353A68 003509C8 80 8D AA 5C */ lwz r4, lbl_805A961C@sda21(r13)
/* 80353A6C 003509CC 80 01 00 08 */ lwz r0, 8(r1)
/* 80353A70 003509D0 7C 85 20 50 */ subf r4, r5, r4
/* 80353A74 003509D4 7C 00 20 00 */ cmpw r0, r4
/* 80353A78 003509D8 90 81 00 0C */ stw r4, 0xc(r1)
/* 80353A7C 003509DC 40 80 00 08 */ bge lbl_80353A84
/* 80353A80 003509E0 38 61 00 08 */ addi r3, r1, 8
lbl_80353A84:
/* 80353A84 003509E4 80 0D AA 70 */ lwz r0, lbl_805A9630@sda21(r13)
/* 80353A88 003509E8 80 8D AA 6C */ lwz r4, lbl_805A962C@sda21(r13)
/* 80353A8C 003509EC 7C 00 28 50 */ subf r0, r0, r5
/* 80353A90 003509F0 80 63 00 00 */ lwz r3, 0(r3)
/* 80353A94 003509F4 1C 00 00 0C */ mulli r0, r0, 0xc
/* 80353A98 003509F8 7C 04 02 14 */ add r0, r4, r0
/* 80353A9C 003509FC 90 1F 00 00 */ stw r0, 0(r31)
/* 80353AA0 00350A00 80 0D AA 64 */ lwz r0, lbl_805A9624@sda21(r13)
/* 80353AA4 00350A04 7C 00 1A 14 */ add r0, r0, r3
/* 80353AA8 00350A08 90 0D AA 64 */ stw r0, lbl_805A9624@sda21(r13)
/* 80353AAC 00350A0C 48 00 00 2C */ b lbl_80353AD8
lbl_80353AB0:
/* 80353AB0 00350A10 80 0D AA 70 */ lwz r0, lbl_805A9630@sda21(r13)
/* 80353AB4 00350A14 80 6D AA 6C */ lwz r3, lbl_805A962C@sda21(r13)
/* 80353AB8 00350A18 7C 00 28 50 */ subf r0, r0, r5
/* 80353ABC 00350A1C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 80353AC0 00350A20 7C 03 02 14 */ add r0, r3, r0
/* 80353AC4 00350A24 90 1F 00 00 */ stw r0, 0(r31)
/* 80353AC8 00350A28 80 61 00 08 */ lwz r3, 8(r1)
/* 80353ACC 00350A2C 80 0D AA 64 */ lwz r0, lbl_805A9624@sda21(r13)
/* 80353AD0 00350A30 7C 00 1A 14 */ add r0, r0, r3
/* 80353AD4 00350A34 90 0D AA 64 */ stw r0, lbl_805A9624@sda21(r13)
lbl_80353AD8:
/* 80353AD8 00350A38 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80353ADC 00350A3C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80353AE0 00350A40 7C 08 03 A6 */ mtlr r0
/* 80353AE4 00350A44 38 21 00 20 */ addi r1, r1, 0x20
/* 80353AE8 00350A48 4E 80 00 20 */ blr
.global WaitForQueue__Fv
WaitForQueue__Fv:
/* 80353AEC 00350A4C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80353AF0 00350A50 7C 08 02 A6 */ mflr r0
/* 80353AF4 00350A54 90 01 00 14 */ stw r0, 0x14(r1)
/* 80353AF8 00350A58 48 02 B3 C1 */ bl LCQueueLength
/* 80353AFC 00350A5C 28 03 00 00 */ cmplwi r3, 0
/* 80353B00 00350A60 41 82 00 0C */ beq lbl_80353B0C
/* 80353B04 00350A64 38 60 00 00 */ li r3, 0
/* 80353B08 00350A68 48 02 B3 BD */ bl LCQueueWait
lbl_80353B0C:
/* 80353B0C 00350A6C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80353B10 00350A70 7C 08 03 A6 */ mtlr r0
/* 80353B14 00350A74 38 21 00 10 */ addi r1, r1, 0x10
/* 80353B18 00350A78 4E 80 00 20 */ blr
.global StartNextTransaction__10CSkinRulesFv
StartNextTransaction__10CSkinRulesFv:
/* 80353B1C 00350A7C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80353B20 00350A80 7C 08 02 A6 */ mflr r0
/* 80353B24 00350A84 3C 60 E0 00 */ lis r3, 0xe000
/* 80353B28 00350A88 90 01 00 24 */ stw r0, 0x24(r1)
/* 80353B2C 00350A8C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80353B30 00350A90 88 0D 9E 04 */ lbz r0, lbl_805A89C4@sda21(r13)
/* 80353B34 00350A94 28 00 00 00 */ cmplwi r0, 0
/* 80353B38 00350A98 40 82 00 08 */ bne lbl_80353B40
/* 80353B3C 00350A9C 38 63 10 00 */ addi r3, r3, 0x1000
lbl_80353B40:
/* 80353B40 00350AA0 80 AD AA 50 */ lwz r5, lbl_805A9610@sda21(r13)
/* 80353B44 00350AA4 80 CD AA 5C */ lwz r6, lbl_805A961C@sda21(r13)
/* 80353B48 00350AA8 80 85 00 10 */ lwz r4, 0x10(r5)
/* 80353B4C 00350AAC 7C 06 20 00 */ cmpw r6, r4
/* 80353B50 00350AB0 41 82 00 3C */ beq lbl_80353B8C
/* 80353B54 00350AB4 80 0D 9E 08 */ lwz r0, lbl_805A89C8@sda21(r13)
/* 80353B58 00350AB8 7C 86 20 50 */ subf r4, r6, r4
/* 80353B5C 00350ABC 90 81 00 0C */ stw r4, 0xc(r1)
/* 80353B60 00350AC0 38 AD 9E 08 */ addi r5, r13, lbl_805A89C8@sda21
/* 80353B64 00350AC4 7C 04 00 00 */ cmpw r4, r0
/* 80353B68 00350AC8 40 80 00 08 */ bge lbl_80353B70
/* 80353B6C 00350ACC 38 A1 00 0C */ addi r5, r1, 0xc
lbl_80353B70:
/* 80353B70 00350AD0 80 8D AA 54 */ lwz r4, lbl_805A9614@sda21(r13)
/* 80353B74 00350AD4 1C 06 00 0C */ mulli r0, r6, 0xc
/* 80353B78 00350AD8 83 E5 00 00 */ lwz r31, 0(r5)
/* 80353B7C 00350ADC 80 84 00 28 */ lwz r4, 0x28(r4)
/* 80353B80 00350AE0 80 84 00 08 */ lwz r4, 8(r4)
/* 80353B84 00350AE4 7C 84 02 14 */ add r4, r4, r0
/* 80353B88 00350AE8 48 00 00 48 */ b lbl_80353BD0
lbl_80353B8C:
/* 80353B8C 00350AEC 80 85 00 14 */ lwz r4, 0x14(r5)
/* 80353B90 00350AF0 80 CD AA 60 */ lwz r6, lbl_805A9620@sda21(r13)
/* 80353B94 00350AF4 7C 04 30 00 */ cmpw r4, r6
/* 80353B98 00350AF8 41 82 00 68 */ beq lbl_80353C00
/* 80353B9C 00350AFC 80 0D 9E 0C */ lwz r0, lbl_805A89CC@sda21(r13)
/* 80353BA0 00350B00 7C 86 20 50 */ subf r4, r6, r4
/* 80353BA4 00350B04 90 81 00 08 */ stw r4, 8(r1)
/* 80353BA8 00350B08 38 AD 9E 0C */ addi r5, r13, lbl_805A89CC@sda21
/* 80353BAC 00350B0C 7C 04 00 00 */ cmpw r4, r0
/* 80353BB0 00350B10 40 80 00 08 */ bge lbl_80353BB8
/* 80353BB4 00350B14 38 A1 00 08 */ addi r5, r1, 8
lbl_80353BB8:
/* 80353BB8 00350B18 80 8D AA 54 */ lwz r4, lbl_805A9614@sda21(r13)
/* 80353BBC 00350B1C 1C 06 00 0C */ mulli r0, r6, 0xc
/* 80353BC0 00350B20 83 E5 00 00 */ lwz r31, 0(r5)
/* 80353BC4 00350B24 80 84 00 28 */ lwz r4, 0x28(r4)
/* 80353BC8 00350B28 80 84 00 0C */ lwz r4, 0xc(r4)
/* 80353BCC 00350B2C 7C 84 02 14 */ add r4, r4, r0
lbl_80353BD0:
/* 80353BD0 00350B30 1C BF 00 0C */ mulli r5, r31, 0xc
/* 80353BD4 00350B34 38 05 00 1F */ addi r0, r5, 0x1f
/* 80353BD8 00350B38 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a
/* 80353BDC 00350B3C 48 02 B1 85 */ bl sub_8037ed60
/* 80353BE0 00350B40 88 0D 9E 04 */ lbz r0, lbl_805A89C4@sda21(r13)
/* 80353BE4 00350B44 80 6D AA 74 */ lwz r3, lbl_805A9634@sda21(r13)
/* 80353BE8 00350B48 7C 00 00 34 */ cntlzw r0, r0
/* 80353BEC 00350B4C 93 ED AA 58 */ stw r31, lbl_805A9618@sda21(r13)
/* 80353BF0 00350B50 38 63 00 01 */ addi r3, r3, 1
/* 80353BF4 00350B54 54 00 D9 7E */ srwi r0, r0, 5
/* 80353BF8 00350B58 90 6D AA 74 */ stw r3, lbl_805A9634@sda21(r13)
/* 80353BFC 00350B5C 98 0D 9E 04 */ stb r0, lbl_805A89C4@sda21(r13)
lbl_80353C00:
/* 80353C00 00350B60 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80353C04 00350B64 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80353C08 00350B68 7C 08 03 A6 */ mtlr r0
/* 80353C0C 00350B6C 38 21 00 20 */ addi r1, r1, 0x20
/* 80353C10 00350B70 4E 80 00 20 */ blr
.global InitLockedCacheState__10CSkinRulesFRC10CSkinRules
InitLockedCacheState__10CSkinRulesFRC10CSkinRules:
/* 80353C14 00350B74 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80353C18 00350B78 7C 08 02 A6 */ mflr r0
/* 80353C1C 00350B7C 38 A0 00 01 */ li r5, 1
/* 80353C20 00350B80 90 01 00 14 */ stw r0, 0x14(r1)
/* 80353C24 00350B84 38 00 00 00 */ li r0, 0
/* 80353C28 00350B88 90 6D AA 50 */ stw r3, lbl_805A9610@sda21(r13)
/* 80353C2C 00350B8C 90 8D AA 54 */ stw r4, lbl_805A9614@sda21(r13)
/* 80353C30 00350B90 98 AD 9E 04 */ stb r5, lbl_805A89C4@sda21(r13)
/* 80353C34 00350B94 90 0D AA 5C */ stw r0, lbl_805A961C@sda21(r13)
/* 80353C38 00350B98 90 0D AA 60 */ stw r0, lbl_805A9620@sda21(r13)
/* 80353C3C 00350B9C 90 0D AA 64 */ stw r0, lbl_805A9624@sda21(r13)
/* 80353C40 00350BA0 90 0D AA 68 */ stw r0, lbl_805A9628@sda21(r13)
/* 80353C44 00350BA4 90 0D AA 6C */ stw r0, lbl_805A962C@sda21(r13)
/* 80353C48 00350BA8 90 0D AA 70 */ stw r0, lbl_805A9630@sda21(r13)
/* 80353C4C 00350BAC 90 0D AA 74 */ stw r0, lbl_805A9634@sda21(r13)
/* 80353C50 00350BB0 4B FF FE CD */ bl StartNextTransaction__10CSkinRulesFv
/* 80353C54 00350BB4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80353C58 00350BB8 7C 08 03 A6 */ mtlr r0
/* 80353C5C 00350BBC 38 21 00 10 */ addi r1, r1, 0x10
/* 80353C60 00350BC0 4E 80 00 20 */ blr
.global FSkinRulesFactory__FRC10SObjectTagR12CInputStreamRC15CVParamTransfer
FSkinRulesFactory__FRC10SObjectTagR12CInputStreamRC15CVParamTransfer:
/* 80353C64 00350BC4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80353C68 00350BC8 7C 08 02 A6 */ mflr r0
/* 80353C6C 00350BCC 3C 80 80 3E */ lis r4, lbl_803D8300@ha
/* 80353C70 00350BD0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80353C74 00350BD4 38 84 83 00 */ addi r4, r4, lbl_803D8300@l
/* 80353C78 00350BD8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80353C7C 00350BDC 7C BF 2B 78 */ mr r31, r5
/* 80353C80 00350BE0 38 A0 00 00 */ li r5, 0
/* 80353C84 00350BE4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80353C88 00350BE8 7C 7E 1B 78 */ mr r30, r3
/* 80353C8C 00350BEC 38 60 00 18 */ li r3, 0x18
/* 80353C90 00350BF0 4B FC 1B DD */ bl __nw__FUlPCcPCc
/* 80353C94 00350BF4 7C 64 1B 79 */ or. r4, r3, r3
/* 80353C98 00350BF8 41 82 00 10 */ beq lbl_80353CA8
/* 80353C9C 00350BFC 7F E4 FB 78 */ mr r4, r31
/* 80353CA0 00350C00 48 00 06 31 */ bl __ct__10CSkinRulesFR12CInputStream
/* 80353CA4 00350C04 7C 64 1B 78 */ mr r4, r3
lbl_80353CA8:
/* 80353CA8 00350C08 7C 04 00 D0 */ neg r0, r4
/* 80353CAC 00350C0C 90 81 00 0C */ stw r4, 0xc(r1)
/* 80353CB0 00350C10 7C 00 23 78 */ or r0, r0, r4
/* 80353CB4 00350C14 38 61 00 10 */ addi r3, r1, 0x10
/* 80353CB8 00350C18 54 00 0F FE */ srwi r0, r0, 0x1f
/* 80353CBC 00350C1C 38 81 00 08 */ addi r4, r1, 8
/* 80353CC0 00350C20 98 01 00 08 */ stb r0, 8(r1)
/* 80353CC4 00350C24 48 00 01 11 */ bl "GetIObjObjectFor__20TToken<10CSkinRules>FRCQ24rstl22auto_ptr<10CSkinRules>"
/* 80353CC8 00350C28 80 61 00 14 */ lwz r3, 0x14(r1)
/* 80353CCC 00350C2C 38 00 00 00 */ li r0, 0
/* 80353CD0 00350C30 98 01 00 10 */ stb r0, 0x10(r1)
/* 80353CD4 00350C34 7C 03 00 D0 */ neg r0, r3
/* 80353CD8 00350C38 7C 00 1B 78 */ or r0, r0, r3
/* 80353CDC 00350C3C 54 00 0F FE */ srwi r0, r0, 0x1f
/* 80353CE0 00350C40 98 1E 00 00 */ stb r0, 0(r30)
/* 80353CE4 00350C44 90 7E 00 04 */ stw r3, 4(r30)
/* 80353CE8 00350C48 88 01 00 10 */ lbz r0, 0x10(r1)
/* 80353CEC 00350C4C 28 00 00 00 */ cmplwi r0, 0
/* 80353CF0 00350C50 41 82 00 24 */ beq lbl_80353D14
/* 80353CF4 00350C54 80 61 00 14 */ lwz r3, 0x14(r1)
/* 80353CF8 00350C58 28 03 00 00 */ cmplwi r3, 0
/* 80353CFC 00350C5C 41 82 00 18 */ beq lbl_80353D14
/* 80353D00 00350C60 81 83 00 00 */ lwz r12, 0(r3)
/* 80353D04 00350C64 38 80 00 01 */ li r4, 1
/* 80353D08 00350C68 81 8C 00 08 */ lwz r12, 8(r12)
/* 80353D0C 00350C6C 7D 89 03 A6 */ mtctr r12
/* 80353D10 00350C70 4E 80 04 21 */ bctrl
lbl_80353D14:
/* 80353D14 00350C74 88 01 00 08 */ lbz r0, 8(r1)
/* 80353D18 00350C78 28 00 00 00 */ cmplwi r0, 0
/* 80353D1C 00350C7C 41 82 00 10 */ beq lbl_80353D2C
/* 80353D20 00350C80 80 61 00 0C */ lwz r3, 0xc(r1)
/* 80353D24 00350C84 38 80 00 01 */ li r4, 1
/* 80353D28 00350C88 48 00 04 4D */ bl __dt__10CSkinRulesFv
lbl_80353D2C:
/* 80353D2C 00350C8C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80353D30 00350C90 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80353D34 00350C94 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80353D38 00350C98 7C 08 03 A6 */ mtlr r0
/* 80353D3C 00350C9C 38 21 00 20 */ addi r1, r1, 0x20
/* 80353D40 00350CA0 4E 80 00 20 */ blr
.global "__dt__20TToken<10CSkinRules>Fv"
"__dt__20TToken<10CSkinRules>Fv":
/* 80353D44 00350CA4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80353D48 00350CA8 7C 08 02 A6 */ mflr r0
/* 80353D4C 00350CAC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80353D50 00350CB0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80353D54 00350CB4 7C 9F 23 78 */ mr r31, r4
/* 80353D58 00350CB8 93 C1 00 08 */ stw r30, 8(r1)
/* 80353D5C 00350CBC 7C 7E 1B 79 */ or. r30, r3, r3
/* 80353D60 00350CC0 41 82 00 58 */ beq lbl_80353DB8
/* 80353D64 00350CC4 3C 60 80 3F */ lis r3, lbl_803EF728@ha
/* 80353D68 00350CC8 38 03 F7 28 */ addi r0, r3, lbl_803EF728@l
/* 80353D6C 00350CCC 90 1E 00 00 */ stw r0, 0(r30)
/* 80353D70 00350CD0 80 7E 00 04 */ lwz r3, 4(r30)
/* 80353D74 00350CD4 28 03 00 00 */ cmplwi r3, 0
/* 80353D78 00350CD8 41 82 00 0C */ beq lbl_80353D84
/* 80353D7C 00350CDC 38 80 00 01 */ li r4, 1
/* 80353D80 00350CE0 48 00 03 F5 */ bl __dt__10CSkinRulesFv
lbl_80353D84:
/* 80353D84 00350CE4 28 1E 00 00 */ cmplwi r30, 0
/* 80353D88 00350CE8 41 82 00 20 */ beq lbl_80353DA8
/* 80353D8C 00350CEC 3C 60 80 3E */ lis r3, __vt__31TObjOwnerDerivedFromIObjUntyped@ha
/* 80353D90 00350CF0 38 03 8D 78 */ addi r0, r3, __vt__31TObjOwnerDerivedFromIObjUntyped@l
/* 80353D94 00350CF4 90 1E 00 00 */ stw r0, 0(r30)
/* 80353D98 00350CF8 41 82 00 10 */ beq lbl_80353DA8
/* 80353D9C 00350CFC 3C 60 80 3E */ lis r3, __vt__4IObj@ha
/* 80353DA0 00350D00 38 03 8D 6C */ addi r0, r3, __vt__4IObj@l
/* 80353DA4 00350D04 90 1E 00 00 */ stw r0, 0(r30)
lbl_80353DA8:
/* 80353DA8 00350D08 7F E0 07 35 */ extsh. r0, r31
/* 80353DAC 00350D0C 40 81 00 0C */ ble lbl_80353DB8
/* 80353DB0 00350D10 7F C3 F3 78 */ mr r3, r30
/* 80353DB4 00350D14 4B FC 1B 7D */ bl Free__7CMemoryFPCv
lbl_80353DB8:
/* 80353DB8 00350D18 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80353DBC 00350D1C 7F C3 F3 78 */ mr r3, r30
/* 80353DC0 00350D20 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80353DC4 00350D24 83 C1 00 08 */ lwz r30, 8(r1)
/* 80353DC8 00350D28 7C 08 03 A6 */ mtlr r0
/* 80353DCC 00350D2C 38 21 00 10 */ addi r1, r1, 0x10
/* 80353DD0 00350D30 4E 80 00 20 */ blr
.global "GetIObjObjectFor__20TToken<10CSkinRules>FRCQ24rstl22auto_ptr<10CSkinRules>"
"GetIObjObjectFor__20TToken<10CSkinRules>FRCQ24rstl22auto_ptr<10CSkinRules>":
/* 80353DD4 00350D34 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80353DD8 00350D38 7C 08 02 A6 */ mflr r0
/* 80353DDC 00350D3C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80353DE0 00350D40 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80353DE4 00350D44 7C 7F 1B 78 */ mr r31, r3
/* 80353DE8 00350D48 48 00 00 19 */ bl "GetNewDerivedObject__38TObjOwnerDerivedFromIObj<10CSkinRules>FRCQ24rstl22auto_ptr<10CSkinRules>"
/* 80353DEC 00350D4C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80353DF0 00350D50 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80353DF4 00350D54 7C 08 03 A6 */ mtlr r0
/* 80353DF8 00350D58 38 21 00 10 */ addi r1, r1, 0x10
/* 80353DFC 00350D5C 4E 80 00 20 */ blr
.global "GetNewDerivedObject__38TObjOwnerDerivedFromIObj<10CSkinRules>FRCQ24rstl22auto_ptr<10CSkinRules>"
"GetNewDerivedObject__38TObjOwnerDerivedFromIObj<10CSkinRules>FRCQ24rstl22auto_ptr<10CSkinRules>":
/* 80353E00 00350D60 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80353E04 00350D64 7C 08 02 A6 */ mflr r0
/* 80353E08 00350D68 3C A0 80 3E */ lis r5, lbl_803D8300@ha
/* 80353E0C 00350D6C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80353E10 00350D70 38 05 83 00 */ addi r0, r5, lbl_803D8300@l
/* 80353E14 00350D74 38 A0 00 00 */ li r5, 0
/* 80353E18 00350D78 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80353E1C 00350D7C 7C 9F 23 78 */ mr r31, r4
/* 80353E20 00350D80 7C 04 03 78 */ mr r4, r0
/* 80353E24 00350D84 93 C1 00 08 */ stw r30, 8(r1)
/* 80353E28 00350D88 7C 7E 1B 78 */ mr r30, r3
/* 80353E2C 00350D8C 38 60 00 08 */ li r3, 8
/* 80353E30 00350D90 4B FC 1A 3D */ bl __nw__FUlPCcPCc
/* 80353E34 00350D94 28 03 00 00 */ cmplwi r3, 0
/* 80353E38 00350D98 41 82 00 38 */ beq lbl_80353E70
/* 80353E3C 00350D9C 3C 80 80 3E */ lis r4, __vt__4IObj@ha
/* 80353E40 00350DA0 3C A0 80 3E */ lis r5, __vt__31TObjOwnerDerivedFromIObjUntyped@ha
/* 80353E44 00350DA4 38 04 8D 6C */ addi r0, r4, __vt__4IObj@l
/* 80353E48 00350DA8 3C 80 80 3F */ lis r4, lbl_803EF728@ha
/* 80353E4C 00350DAC 90 03 00 00 */ stw r0, 0(r3)
/* 80353E50 00350DB0 38 C5 8D 78 */ addi r6, r5, __vt__31TObjOwnerDerivedFromIObjUntyped@l
/* 80353E54 00350DB4 38 A0 00 00 */ li r5, 0
/* 80353E58 00350DB8 38 04 F7 28 */ addi r0, r4, lbl_803EF728@l
/* 80353E5C 00350DBC 90 C3 00 00 */ stw r6, 0(r3)
/* 80353E60 00350DC0 98 BF 00 00 */ stb r5, 0(r31)
/* 80353E64 00350DC4 80 9F 00 04 */ lwz r4, 4(r31)
/* 80353E68 00350DC8 90 83 00 04 */ stw r4, 4(r3)
/* 80353E6C 00350DCC 90 03 00 00 */ stw r0, 0(r3)
lbl_80353E70:
/* 80353E70 00350DD0 7C 03 00 D0 */ neg r0, r3
/* 80353E74 00350DD4 7C 00 1B 78 */ or r0, r0, r3
/* 80353E78 00350DD8 54 00 0F FE */ srwi r0, r0, 0x1f
/* 80353E7C 00350DDC 98 1E 00 00 */ stb r0, 0(r30)
/* 80353E80 00350DE0 90 7E 00 04 */ stw r3, 4(r30)
/* 80353E84 00350DE4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80353E88 00350DE8 83 C1 00 08 */ lwz r30, 8(r1)
/* 80353E8C 00350DEC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80353E90 00350DF0 7C 08 03 A6 */ mtlr r0
/* 80353E94 00350DF4 38 21 00 10 */ addi r1, r1, 0x10
/* 80353E98 00350DF8 4E 80 00 20 */ blr
.global BuildNormalsFrom__10CSkinRulesCFPC9CVector3fP9CVector3f
BuildNormalsFrom__10CSkinRulesCFPC9CVector3fP9CVector3f:
/* 80353E9C 00350DFC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80353EA0 00350E00 7C 08 02 A6 */ mflr r0
/* 80353EA4 00350E04 90 01 00 34 */ stw r0, 0x34(r1)
/* 80353EA8 00350E08 BF 21 00 14 */ stmw r25, 0x14(r1)
/* 80353EAC 00350E0C 7C 79 1B 78 */ mr r25, r3
/* 80353EB0 00350E10 7C 9A 23 78 */ mr r26, r4
/* 80353EB4 00350E14 7C BB 2B 78 */ mr r27, r5
/* 80353EB8 00350E18 3B A0 00 00 */ li r29, 0
/* 80353EBC 00350E1C 3B 80 00 00 */ li r28, 0
/* 80353EC0 00350E20 3B C0 00 00 */ li r30, 0
/* 80353EC4 00350E24 48 00 00 30 */ b lbl_80353EF4
lbl_80353EC8:
/* 80353EC8 00350E28 80 19 00 0C */ lwz r0, 0xc(r25)
/* 80353ECC 00350E2C 1C BD 00 0C */ mulli r5, r29, 0xc
/* 80353ED0 00350E30 7C 60 F2 14 */ add r3, r0, r30
/* 80353ED4 00350E34 83 E3 00 1C */ lwz r31, 0x1c(r3)
/* 80353ED8 00350E38 7C 9A 2A 14 */ add r4, r26, r5
/* 80353EDC 00350E3C 7C BB 2A 14 */ add r5, r27, r5
/* 80353EE0 00350E40 7F E6 FB 78 */ mr r6, r31
/* 80353EE4 00350E44 48 00 0A 0D */ bl sub_803548f0
/* 80353EE8 00350E48 7F BD FA 14 */ add r29, r29, r31
/* 80353EEC 00350E4C 3B DE 00 74 */ addi r30, r30, 0x74
/* 80353EF0 00350E50 3B 9C 00 01 */ addi r28, r28, 1
lbl_80353EF4:
/* 80353EF4 00350E54 80 19 00 04 */ lwz r0, 4(r25)
/* 80353EF8 00350E58 7C 1C 00 00 */ cmpw r28, r0
/* 80353EFC 00350E5C 41 80 FF CC */ blt lbl_80353EC8
/* 80353F00 00350E60 BB 21 00 14 */ lmw r25, 0x14(r1)
/* 80353F04 00350E64 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80353F08 00350E68 7C 08 03 A6 */ mtlr r0
/* 80353F0C 00350E6C 38 21 00 30 */ addi r1, r1, 0x30
/* 80353F10 00350E70 4E 80 00 20 */ blr
.global BuildNormals__10CSkinRulesCFPVv
BuildNormals__10CSkinRulesCFPVv:
/* 80353F14 00350E74 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80353F18 00350E78 7C 08 02 A6 */ mflr r0
/* 80353F1C 00350E7C 90 01 00 34 */ stw r0, 0x34(r1)
/* 80353F20 00350E80 BF 21 00 14 */ stmw r25, 0x14(r1)
/* 80353F24 00350E84 7C 79 1B 78 */ mr r25, r3
/* 80353F28 00350E88 7C 9A 23 78 */ mr r26, r4
/* 80353F2C 00350E8C 3B A0 00 00 */ li r29, 0
/* 80353F30 00350E90 3B C0 00 00 */ li r30, 0
/* 80353F34 00350E94 48 00 00 5C */ b lbl_80353F90
lbl_80353F38:
/* 80353F38 00350E98 80 99 00 0C */ lwz r4, 0xc(r25)
/* 80353F3C 00350E9C 38 7E 00 1C */ addi r3, r30, 0x1c
/* 80353F40 00350EA0 38 00 00 00 */ li r0, 0
/* 80353F44 00350EA4 3B 80 00 00 */ li r28, 0
/* 80353F48 00350EA8 7F E4 18 2E */ lwzx r31, r4, r3
/* 80353F4C 00350EAC 90 01 00 08 */ stw r0, 8(r1)
/* 80353F50 00350EB0 48 00 00 30 */ b lbl_80353F80
lbl_80353F54:
/* 80353F54 00350EB4 7C 7C F8 50 */ subf r3, r28, r31
/* 80353F58 00350EB8 38 81 00 08 */ addi r4, r1, 8
/* 80353F5C 00350EBC 4B FF F9 99 */ bl ProcessingNormals__10CSkinRulesFiPPUs
/* 80353F60 00350EC0 80 19 00 0C */ lwz r0, 0xc(r25)
/* 80353F64 00350EC4 7C 7B 1B 78 */ mr r27, r3
/* 80353F68 00350EC8 80 81 00 08 */ lwz r4, 8(r1)
/* 80353F6C 00350ECC 7F 45 D3 78 */ mr r5, r26
/* 80353F70 00350ED0 7C 60 F2 14 */ add r3, r0, r30
/* 80353F74 00350ED4 7F 66 DB 78 */ mr r6, r27
/* 80353F78 00350ED8 48 00 09 F1 */ bl BuildNormals__12CVirtualBoneCFPCUsPVvi
/* 80353F7C 00350EDC 7F 9C DA 14 */ add r28, r28, r27
lbl_80353F80:
/* 80353F80 00350EE0 7C 1C F8 00 */ cmpw r28, r31
/* 80353F84 00350EE4 41 80 FF D0 */ blt lbl_80353F54
/* 80353F88 00350EE8 3B DE 00 74 */ addi r30, r30, 0x74
/* 80353F8C 00350EEC 3B BD 00 01 */ addi r29, r29, 1
lbl_80353F90:
/* 80353F90 00350EF0 80 19 00 04 */ lwz r0, 4(r25)
/* 80353F94 00350EF4 7C 1D 00 00 */ cmpw r29, r0
/* 80353F98 00350EF8 41 80 FF A0 */ blt lbl_80353F38
/* 80353F9C 00350EFC BB 21 00 14 */ lmw r25, 0x14(r1)
/* 80353FA0 00350F00 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80353FA4 00350F04 7C 08 03 A6 */ mtlr r0
/* 80353FA8 00350F08 38 21 00 30 */ addi r1, r1, 0x30
/* 80353FAC 00350F0C 4E 80 00 20 */ blr
.global BuildPoints__10CSkinRulesCFPVv
BuildPoints__10CSkinRulesCFPVv:
/* 80353FB0 00350F10 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80353FB4 00350F14 7C 08 02 A6 */ mflr r0
/* 80353FB8 00350F18 90 01 00 34 */ stw r0, 0x34(r1)
/* 80353FBC 00350F1C BF 21 00 14 */ stmw r25, 0x14(r1)
/* 80353FC0 00350F20 7C 79 1B 78 */ mr r25, r3
/* 80353FC4 00350F24 7C 9A 23 78 */ mr r26, r4
/* 80353FC8 00350F28 3B A0 00 00 */ li r29, 0
/* 80353FCC 00350F2C 3B C0 00 00 */ li r30, 0
/* 80353FD0 00350F30 48 00 00 5C */ b lbl_8035402C
lbl_80353FD4:
/* 80353FD4 00350F34 80 99 00 0C */ lwz r4, 0xc(r25)
/* 80353FD8 00350F38 38 7E 00 1C */ addi r3, r30, 0x1c
/* 80353FDC 00350F3C 38 00 00 00 */ li r0, 0
/* 80353FE0 00350F40 3B 80 00 00 */ li r28, 0
/* 80353FE4 00350F44 7F E4 18 2E */ lwzx r31, r4, r3
/* 80353FE8 00350F48 90 01 00 08 */ stw r0, 8(r1)
/* 80353FEC 00350F4C 48 00 00 30 */ b lbl_8035401C
lbl_80353FF0:
/* 80353FF0 00350F50 7C 7C F8 50 */ subf r3, r28, r31
/* 80353FF4 00350F54 38 81 00 08 */ addi r4, r1, 8
/* 80353FF8 00350F58 4B FF F9 F9 */ bl ProcessingPoints__10CSkinRulesFiPPUs
/* 80353FFC 00350F5C 80 19 00 0C */ lwz r0, 0xc(r25)
/* 80354000 00350F60 7C 7B 1B 78 */ mr r27, r3
/* 80354004 00350F64 80 81 00 08 */ lwz r4, 8(r1)
/* 80354008 00350F68 7F 45 D3 78 */ mr r5, r26
/* 8035400C 00350F6C 7C 60 F2 14 */ add r3, r0, r30
/* 80354010 00350F70 7F 66 DB 78 */ mr r6, r27
/* 80354014 00350F74 48 00 0A 1D */ bl BuildPoints__12CVirtualBoneCFPCUsPVvi
/* 80354018 00350F78 7F 9C DA 14 */ add r28, r28, r27
lbl_8035401C:
/* 8035401C 00350F7C 7C 1C F8 00 */ cmpw r28, r31
/* 80354020 00350F80 41 80 FF D0 */ blt lbl_80353FF0
/* 80354024 00350F84 3B DE 00 74 */ addi r30, r30, 0x74
/* 80354028 00350F88 3B BD 00 01 */ addi r29, r29, 1
lbl_8035402C:
/* 8035402C 00350F8C 80 19 00 04 */ lwz r0, 4(r25)
/* 80354030 00350F90 7C 1D 00 00 */ cmpw r29, r0
/* 80354034 00350F94 41 80 FF A0 */ blt lbl_80353FD4
/* 80354038 00350F98 BB 21 00 14 */ lmw r25, 0x14(r1)
/* 8035403C 00350F9C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80354040 00350FA0 7C 08 03 A6 */ mtlr r0
/* 80354044 00350FA4 38 21 00 30 */ addi r1, r1, 0x30
/* 80354048 00350FA8 4E 80 00 20 */ blr
.global BuildAccumulatedTransforms__10CSkinRulesCFRC17CPoseAsTransformsRC15CCharLayoutInfo
BuildAccumulatedTransforms__10CSkinRulesCFRC17CPoseAsTransformsRC15CCharLayoutInfo:
/* 8035404C 00350FAC 94 21 FB 20 */ stwu r1, -0x4e0(r1)
/* 80354050 00350FB0 7C 08 02 A6 */ mflr r0
/* 80354054 00350FB4 90 01 04 E4 */ stw r0, 0x4e4(r1)
/* 80354058 00350FB8 BF 41 04 C8 */ stmw r26, 0x4c8(r1)
/* 8035405C 00350FBC 7C 9C 23 78 */ mr r28, r4
/* 80354060 00350FC0 7C 7B 1B 78 */ mr r27, r3
/* 80354064 00350FC4 7C BD 2B 78 */ mr r29, r5
/* 80354068 00350FC8 3B C1 00 18 */ addi r30, r1, 0x18
/* 8035406C 00350FCC 3B FC 00 08 */ addi r31, r28, 8
/* 80354070 00350FD0 88 04 00 D4 */ lbz r0, 0xd4(r4)
/* 80354074 00350FD4 98 01 00 08 */ stb r0, 8(r1)
/* 80354078 00350FD8 48 00 00 A8 */ b lbl_80354120
lbl_8035407C:
/* 8035407C 00350FDC 28 00 00 03 */ cmplwi r0, 3
/* 80354080 00350FE0 41 82 00 28 */ beq lbl_803540A8
/* 80354084 00350FE4 80 9D 00 00 */ lwz r4, 0(r29)
/* 80354088 00350FE8 54 00 0D FC */ rlwinm r0, r0, 1, 0x17, 0x1e
/* 8035408C 00350FEC 7C 64 02 14 */ add r3, r4, r0
/* 80354090 00350FF0 80 84 00 D0 */ lwz r4, 0xd0(r4)
/* 80354094 00350FF4 88 03 00 09 */ lbz r0, 9(r3)
/* 80354098 00350FF8 54 03 2C F4 */ rlwinm r3, r0, 5, 0x13, 0x1a
/* 8035409C 00350FFC 3B 43 00 04 */ addi r26, r3, 4
/* 803540A0 00351000 7F 44 D2 14 */ add r26, r4, r26
/* 803540A4 00351004 48 00 00 0C */ b lbl_803540B0
lbl_803540A8:
/* 803540A8 00351008 3C 60 80 5A */ lis r3, skZero3f@ha
/* 803540AC 0035100C 3B 43 66 A0 */ addi r26, r3, skZero3f@l
lbl_803540B0:
/* 803540B0 00351010 7F 83 E3 78 */ mr r3, r28
/* 803540B4 00351014 38 81 00 08 */ addi r4, r1, 8
/* 803540B8 00351018 48 01 4E C5 */ bl GetTransformMinusOffset__17CPoseAsTransformsCFRC6CSegId
/* 803540BC 0035101C 7C 64 1B 78 */ mr r4, r3
/* 803540C0 00351020 7F 45 D3 78 */ mr r5, r26
/* 803540C4 00351024 38 61 00 0C */ addi r3, r1, 0xc
/* 803540C8 00351028 4B FB C1 CD */ bl __ml__9CMatrix3fCFRC9CVector3f
/* 803540CC 0035102C 7F 83 E3 78 */ mr r3, r28
/* 803540D0 00351030 38 81 00 08 */ addi r4, r1, 8
/* 803540D4 00351034 48 01 4E 85 */ bl GetOffset__17CPoseAsTransformsCFRC6CSegId
/* 803540D8 00351038 88 01 00 08 */ lbz r0, 8(r1)
/* 803540DC 0035103C C0 23 00 00 */ lfs f1, 0(r3)
/* 803540E0 00351040 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 803540E4 00351044 1C 80 00 0C */ mulli r4, r0, 0xc
/* 803540E8 00351048 C0 83 00 04 */ lfs f4, 4(r3)
/* 803540EC 0035104C 54 00 08 3C */ slwi r0, r0, 1
/* 803540F0 00351050 C0 61 00 10 */ lfs f3, 0x10(r1)
/* 803540F4 00351054 EC 01 00 28 */ fsubs f0, f1, f0
/* 803540F8 00351058 C0 43 00 08 */ lfs f2, 8(r3)
/* 803540FC 0035105C 7C 7E 22 14 */ add r3, r30, r4
/* 80354100 00351060 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 80354104 00351064 EC 64 18 28 */ fsubs f3, f4, f3
/* 80354108 00351068 D0 03 00 00 */ stfs f0, 0(r3)
/* 8035410C 0035106C 7C 1F 00 AE */ lbzx r0, r31, r0
/* 80354110 00351070 EC 02 08 28 */ fsubs f0, f2, f1
/* 80354114 00351074 D0 63 00 04 */ stfs f3, 4(r3)
/* 80354118 00351078 D0 03 00 08 */ stfs f0, 8(r3)
/* 8035411C 0035107C 98 01 00 08 */ stb r0, 8(r1)
lbl_80354120:
/* 80354120 00351080 88 01 00 08 */ lbz r0, 8(r1)
/* 80354124 00351084 28 00 00 00 */ cmplwi r0, 0
/* 80354128 00351088 40 82 FF 54 */ bne lbl_8035407C
/* 8035412C 0035108C 3B A0 00 00 */ li r29, 0
/* 80354130 00351090 3B 40 00 00 */ li r26, 0
/* 80354134 00351094 48 00 00 20 */ b lbl_80354154
lbl_80354138:
/* 80354138 00351098 80 1B 00 0C */ lwz r0, 0xc(r27)
/* 8035413C 0035109C 7F 84 E3 78 */ mr r4, r28
/* 80354140 003510A0 7F C5 F3 78 */ mr r5, r30
/* 80354144 003510A4 7C 60 D2 14 */ add r3, r0, r26
/* 80354148 003510A8 48 00 09 91 */ bl sub_80354ad8
/* 8035414C 003510AC 3B 5A 00 74 */ addi r26, r26, 0x74
/* 80354150 003510B0 3B BD 00 01 */ addi r29, r29, 1
lbl_80354154:
/* 80354154 003510B4 80 1B 00 04 */ lwz r0, 4(r27)
/* 80354158 003510B8 7C 1D 00 00 */ cmpw r29, r0
/* 8035415C 003510BC 41 80 FF DC */ blt lbl_80354138
/* 80354160 003510C0 BB 41 04 C8 */ lmw r26, 0x4c8(r1)
/* 80354164 003510C4 80 01 04 E4 */ lwz r0, 0x4e4(r1)
/* 80354168 003510C8 7C 08 03 A6 */ mtlr r0
/* 8035416C 003510CC 38 21 04 E0 */ addi r1, r1, 0x4e0
/* 80354170 003510D0 4E 80 00 20 */ blr
.global __dt__10CSkinRulesFv
__dt__10CSkinRulesFv:
/* 80354174 003510D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80354178 003510D8 7C 08 02 A6 */ mflr r0
/* 8035417C 003510DC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80354180 003510E0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80354184 003510E4 7C 9F 23 78 */ mr r31, r4
/* 80354188 003510E8 93 C1 00 08 */ stw r30, 8(r1)
/* 8035418C 003510EC 7C 7E 1B 79 */ or. r30, r3, r3
/* 80354190 003510F0 41 82 00 34 */ beq lbl_803541C4
/* 80354194 003510F4 80 BE 00 04 */ lwz r5, 4(r30)
/* 80354198 003510F8 38 80 FF FF */ li r4, -1
/* 8035419C 003510FC 80 0D AA 78 */ lwz r0, lbl_805A9638@sda21(r13)
/* 803541A0 00351100 1C A5 00 74 */ mulli r5, r5, 0x74
/* 803541A4 00351104 38 A5 00 18 */ addi r5, r5, 0x18
/* 803541A8 00351108 7C 05 00 50 */ subf r0, r5, r0
/* 803541AC 0035110C 90 0D AA 78 */ stw r0, lbl_805A9638@sda21(r13)
/* 803541B0 00351110 48 00 00 31 */ bl sub_803541e0
/* 803541B4 00351114 7F E0 07 35 */ extsh. r0, r31
/* 803541B8 00351118 40 81 00 0C */ ble lbl_803541C4
/* 803541BC 0035111C 7F C3 F3 78 */ mr r3, r30
/* 803541C0 00351120 4B FC 17 71 */ bl Free__7CMemoryFPCv
lbl_803541C4:
/* 803541C4 00351124 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803541C8 00351128 7F C3 F3 78 */ mr r3, r30
/* 803541CC 0035112C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803541D0 00351130 83 C1 00 08 */ lwz r30, 8(r1)
/* 803541D4 00351134 7C 08 03 A6 */ mtlr r0
/* 803541D8 00351138 38 21 00 10 */ addi r1, r1, 0x10
/* 803541DC 0035113C 4E 80 00 20 */ blr
.global sub_803541e0
sub_803541e0:
/* 803541E0 00351140 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803541E4 00351144 7C 08 02 A6 */ mflr r0
/* 803541E8 00351148 90 01 00 24 */ stw r0, 0x24(r1)
/* 803541EC 0035114C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803541F0 00351150 7C 9F 23 78 */ mr r31, r4
/* 803541F4 00351154 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803541F8 00351158 7C 7E 1B 79 */ or. r30, r3, r3
/* 803541FC 0035115C 41 82 00 B8 */ beq lbl_803542B4
/* 80354200 00351160 80 1E 00 04 */ lwz r0, 4(r30)
/* 80354204 00351164 80 DE 00 0C */ lwz r6, 0xc(r30)
/* 80354208 00351168 1C 00 00 74 */ mulli r0, r0, 0x74
/* 8035420C 0035116C 90 C1 00 10 */ stw r6, 0x10(r1)
/* 80354210 00351170 7C 66 02 14 */ add r3, r6, r0
/* 80354214 00351174 90 C1 00 14 */ stw r6, 0x14(r1)
/* 80354218 00351178 90 61 00 08 */ stw r3, 8(r1)
/* 8035421C 0035117C 90 61 00 0C */ stw r3, 0xc(r1)
/* 80354220 00351180 48 00 00 6C */ b lbl_8035428C
lbl_80354224:
/* 80354224 00351184 28 06 00 00 */ cmplwi r6, 0
/* 80354228 00351188 41 82 00 60 */ beq lbl_80354288
/* 8035422C 0035118C 41 82 00 5C */ beq lbl_80354288
/* 80354230 00351190 80 E6 00 00 */ lwz r7, 0(r6)
/* 80354234 00351194 38 80 00 00 */ li r4, 0
/* 80354238 00351198 2C 07 00 00 */ cmpwi r7, 0
/* 8035423C 0035119C 40 81 00 44 */ ble lbl_80354280
/* 80354240 003511A0 2C 07 00 08 */ cmpwi r7, 8
/* 80354244 003511A4 38 A7 FF F8 */ addi r5, r7, -8
/* 80354248 003511A8 40 81 00 20 */ ble lbl_80354268
/* 8035424C 003511AC 38 05 00 07 */ addi r0, r5, 7
/* 80354250 003511B0 54 00 E8 FE */ srwi r0, r0, 3
/* 80354254 003511B4 7C 09 03 A6 */ mtctr r0
/* 80354258 003511B8 2C 05 00 00 */ cmpwi r5, 0
/* 8035425C 003511BC 40 81 00 0C */ ble lbl_80354268
lbl_80354260:
/* 80354260 003511C0 38 84 00 08 */ addi r4, r4, 8
/* 80354264 003511C4 42 00 FF FC */ bdnz lbl_80354260
lbl_80354268:
/* 80354268 003511C8 7C 04 38 50 */ subf r0, r4, r7
/* 8035426C 003511CC 7C 09 03 A6 */ mtctr r0
/* 80354270 003511D0 7C 04 38 00 */ cmpw r4, r7
/* 80354274 003511D4 40 80 00 0C */ bge lbl_80354280
lbl_80354278:
/* 80354278 003511D8 38 84 00 01 */ addi r4, r4, 1
/* 8035427C 003511DC 42 00 FF FC */ bdnz lbl_80354278
lbl_80354280:
/* 80354280 003511E0 38 00 00 00 */ li r0, 0
/* 80354284 003511E4 90 06 00 00 */ stw r0, 0(r6)
lbl_80354288:
/* 80354288 003511E8 38 C6 00 74 */ addi r6, r6, 0x74
lbl_8035428C:
/* 8035428C 003511EC 7C 06 18 40 */ cmplw r6, r3
/* 80354290 003511F0 40 82 FF 94 */ bne lbl_80354224
/* 80354294 003511F4 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 80354298 003511F8 28 03 00 00 */ cmplwi r3, 0
/* 8035429C 003511FC 41 82 00 08 */ beq lbl_803542A4
/* 803542A0 00351200 4B FC 16 91 */ bl Free__7CMemoryFPCv
lbl_803542A4:
/* 803542A4 00351204 7F E0 07 35 */ extsh. r0, r31
/* 803542A8 00351208 40 81 00 0C */ ble lbl_803542B4
/* 803542AC 0035120C 7F C3 F3 78 */ mr r3, r30
/* 803542B0 00351210 4B FC 16 81 */ bl Free__7CMemoryFPCv
lbl_803542B4:
/* 803542B4 00351214 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803542B8 00351218 7F C3 F3 78 */ mr r3, r30
/* 803542BC 0035121C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803542C0 00351220 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803542C4 00351224 7C 08 03 A6 */ mtlr r0
/* 803542C8 00351228 38 21 00 20 */ addi r1, r1, 0x20
/* 803542CC 0035122C 4E 80 00 20 */ blr
.global __ct__10CSkinRulesFR12CInputStream
__ct__10CSkinRulesFR12CInputStream:
/* 803542D0 00351230 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803542D4 00351234 7C 08 02 A6 */ mflr r0
/* 803542D8 00351238 90 01 00 24 */ stw r0, 0x24(r1)
/* 803542DC 0035123C 38 A1 00 08 */ addi r5, r1, 8
/* 803542E0 00351240 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803542E4 00351244 7C 9F 23 78 */ mr r31, r4
/* 803542E8 00351248 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803542EC 0035124C 7C 7E 1B 78 */ mr r30, r3
/* 803542F0 00351250 48 00 00 51 */ bl "__ct__Q24rstl49vector<12CVirtualBone,Q24rstl17rmemory_allocator>FR12CInputStreamRCQ24rstl17rmemory_allocator"
/* 803542F4 00351254 7F E3 FB 78 */ mr r3, r31
/* 803542F8 00351258 48 00 02 45 */ bl sub_8035453c
/* 803542FC 0035125C 90 7E 00 10 */ stw r3, 0x10(r30)
/* 80354300 00351260 7F E3 FB 78 */ mr r3, r31
/* 80354304 00351264 48 00 02 39 */ bl sub_8035453c
/* 80354308 00351268 90 7E 00 14 */ stw r3, 0x14(r30)
/* 8035430C 0035126C 7F C3 F3 78 */ mr r3, r30
/* 80354310 00351270 80 1E 00 04 */ lwz r0, 4(r30)
/* 80354314 00351274 80 8D AA 78 */ lwz r4, lbl_805A9638@sda21(r13)
/* 80354318 00351278 1C 00 00 74 */ mulli r0, r0, 0x74
/* 8035431C 0035127C 7C 80 22 14 */ add r4, r0, r4
/* 80354320 00351280 38 04 00 18 */ addi r0, r4, 0x18
/* 80354324 00351284 90 0D AA 78 */ stw r0, lbl_805A9638@sda21(r13)
/* 80354328 00351288 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8035432C 0035128C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80354330 00351290 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80354334 00351294 7C 08 03 A6 */ mtlr r0
/* 80354338 00351298 38 21 00 20 */ addi r1, r1, 0x20
/* 8035433C 0035129C 4E 80 00 20 */ blr
.global "__ct__Q24rstl49vector<12CVirtualBone,Q24rstl17rmemory_allocator>FR12CInputStreamRCQ24rstl17rmemory_allocator"
"__ct__Q24rstl49vector<12CVirtualBone,Q24rstl17rmemory_allocator>FR12CInputStreamRCQ24rstl17rmemory_allocator":
/* 80354340 003512A0 94 21 FF 50 */ stwu r1, -0xb0(r1)
/* 80354344 003512A4 7C 08 02 A6 */ mflr r0
/* 80354348 003512A8 90 01 00 B4 */ stw r0, 0xb4(r1)
/* 8035434C 003512AC 38 00 00 00 */ li r0, 0
/* 80354350 003512B0 BE E1 00 8C */ stmw r23, 0x8c(r1)
/* 80354354 003512B4 7C 78 1B 78 */ mr r24, r3
/* 80354358 003512B8 7C 99 23 78 */ mr r25, r4
/* 8035435C 003512BC 90 03 00 04 */ stw r0, 4(r3)
/* 80354360 003512C0 7F 23 CB 78 */ mr r3, r25
/* 80354364 003512C4 90 18 00 08 */ stw r0, 8(r24)
/* 80354368 003512C8 90 18 00 0C */ stw r0, 0xc(r24)
/* 8035436C 003512CC 4B FE A9 19 */ bl ReadLong__12CInputStreamFv
/* 80354370 003512D0 7C 7E 1B 78 */ mr r30, r3
/* 80354374 003512D4 7F 03 C3 78 */ mr r3, r24
/* 80354378 003512D8 7F C4 F3 78 */ mr r4, r30
/* 8035437C 003512DC 48 00 02 51 */ bl sub_803545cc
/* 80354380 003512E0 3B A1 00 10 */ addi r29, r1, 0x10
/* 80354384 003512E4 3B 81 00 2C */ addi r28, r1, 0x2c
/* 80354388 003512E8 3B 61 00 5C */ addi r27, r1, 0x5c
/* 8035438C 003512EC 3B E1 00 08 */ addi r31, r1, 8
/* 80354390 003512F0 3B 40 00 00 */ li r26, 0
/* 80354394 003512F4 48 00 01 28 */ b lbl_803544BC
lbl_80354398:
/* 80354398 003512F8 88 0D AA 48 */ lbz r0, lbl_805A9608@sda21(r13)
/* 8035439C 003512FC 7F 24 CB 78 */ mr r4, r25
/* 803543A0 00351300 7F E5 FB 78 */ mr r5, r31
/* 803543A4 00351304 38 61 00 0C */ addi r3, r1, 0xc
/* 803543A8 00351308 98 01 00 08 */ stb r0, 8(r1)
/* 803543AC 0035130C 48 00 01 31 */ bl "Get<12CVirtualBone>__12CInputStreamFRC21TType<12CVirtualBone>"
/* 803543B0 00351310 80 18 00 04 */ lwz r0, 4(r24)
/* 803543B4 00351314 80 B8 00 08 */ lwz r5, 8(r24)
/* 803543B8 00351318 7C 00 28 00 */ cmpw r0, r5
/* 803543BC 0035131C 41 80 00 1C */ blt lbl_803543D8
/* 803543C0 00351320 2C 05 00 00 */ cmpwi r5, 0
/* 803543C4 00351324 7F 03 C3 78 */ mr r3, r24
/* 803543C8 00351328 38 80 00 04 */ li r4, 4
/* 803543CC 0035132C 41 82 00 08 */ beq lbl_803543D4
/* 803543D0 00351330 54 A4 08 3C */ slwi r4, r5, 1
lbl_803543D4:
/* 803543D4 00351334 48 00 01 F9 */ bl sub_803545cc
lbl_803543D8:
/* 803543D8 00351338 80 18 00 04 */ lwz r0, 4(r24)
/* 803543DC 0035133C 80 78 00 0C */ lwz r3, 0xc(r24)
/* 803543E0 00351340 1C 00 00 74 */ mulli r0, r0, 0x74
/* 803543E4 00351344 7C 63 02 15 */ add. r3, r3, r0
/* 803543E8 00351348 41 82 00 6C */ beq lbl_80354454
/* 803543EC 0035134C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 803543F0 00351350 38 A3 00 04 */ addi r5, r3, 4
/* 803543F4 00351354 7C 77 1B 78 */ mr r23, r3
/* 803543F8 00351358 7F A4 EB 78 */ mr r4, r29
/* 803543FC 0035135C 90 03 00 00 */ stw r0, 0(r3)
/* 80354400 00351360 80 03 00 00 */ lwz r0, 0(r3)
/* 80354404 00351364 7C 09 03 A6 */ mtctr r0
/* 80354408 00351368 2C 00 00 00 */ cmpwi r0, 0
/* 8035440C 0035136C 40 81 00 28 */ ble lbl_80354434
lbl_80354410:
/* 80354410 00351370 28 05 00 00 */ cmplwi r5, 0
/* 80354414 00351374 41 82 00 14 */ beq lbl_80354428
/* 80354418 00351378 88 04 00 00 */ lbz r0, 0(r4)
/* 8035441C 0035137C 98 05 00 00 */ stb r0, 0(r5)
/* 80354420 00351380 C0 04 00 04 */ lfs f0, 4(r4)
/* 80354424 00351384 D0 05 00 04 */ stfs f0, 4(r5)
lbl_80354428:
/* 80354428 00351388 38 A5 00 08 */ addi r5, r5, 8
/* 8035442C 0035138C 38 84 00 08 */ addi r4, r4, 8
/* 80354430 00351390 42 00 FF E0 */ bdnz lbl_80354410
lbl_80354434:
/* 80354434 00351394 80 01 00 28 */ lwz r0, 0x28(r1)
/* 80354438 00351398 7F 84 E3 78 */ mr r4, r28
/* 8035443C 0035139C 38 77 00 20 */ addi r3, r23, 0x20
/* 80354440 003513A0 90 17 00 1C */ stw r0, 0x1c(r23)
/* 80354444 003513A4 4B FB E7 31 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80354448 003513A8 7F 64 DB 78 */ mr r4, r27
/* 8035444C 003513AC 38 77 00 50 */ addi r3, r23, 0x50
/* 80354450 003513B0 4B FB BB D5 */ bl __ct__9CMatrix3fFRC9CMatrix3f
lbl_80354454:
/* 80354454 003513B4 80 78 00 04 */ lwz r3, 4(r24)
/* 80354458 003513B8 38 80 00 00 */ li r4, 0
/* 8035445C 003513BC 38 03 00 01 */ addi r0, r3, 1
/* 80354460 003513C0 90 18 00 04 */ stw r0, 4(r24)
/* 80354464 003513C4 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 80354468 003513C8 2C 05 00 00 */ cmpwi r5, 0
/* 8035446C 003513CC 40 81 00 44 */ ble lbl_803544B0
/* 80354470 003513D0 2C 05 00 08 */ cmpwi r5, 8
/* 80354474 003513D4 38 65 FF F8 */ addi r3, r5, -8
/* 80354478 003513D8 40 81 00 20 */ ble lbl_80354498
/* 8035447C 003513DC 38 03 00 07 */ addi r0, r3, 7
/* 80354480 003513E0 54 00 E8 FE */ srwi r0, r0, 3
/* 80354484 003513E4 7C 09 03 A6 */ mtctr r0
/* 80354488 003513E8 2C 03 00 00 */ cmpwi r3, 0
/* 8035448C 003513EC 40 81 00 0C */ ble lbl_80354498
lbl_80354490:
/* 80354490 003513F0 38 84 00 08 */ addi r4, r4, 8
/* 80354494 003513F4 42 00 FF FC */ bdnz lbl_80354490
lbl_80354498:
/* 80354498 003513F8 7C 04 28 50 */ subf r0, r4, r5
/* 8035449C 003513FC 7C 09 03 A6 */ mtctr r0
/* 803544A0 00351400 7C 04 28 00 */ cmpw r4, r5
/* 803544A4 00351404 40 80 00 0C */ bge lbl_803544B0
lbl_803544A8:
/* 803544A8 00351408 38 84 00 01 */ addi r4, r4, 1
/* 803544AC 0035140C 42 00 FF FC */ bdnz lbl_803544A8
lbl_803544B0:
/* 803544B0 00351410 38 00 00 00 */ li r0, 0
/* 803544B4 00351414 3B 5A 00 01 */ addi r26, r26, 1
/* 803544B8 00351418 90 01 00 0C */ stw r0, 0xc(r1)
lbl_803544BC:
/* 803544BC 0035141C 7C 1A F0 00 */ cmpw r26, r30
/* 803544C0 00351420 41 80 FE D8 */ blt lbl_80354398
/* 803544C4 00351424 7F 03 C3 78 */ mr r3, r24
/* 803544C8 00351428 BA E1 00 8C */ lmw r23, 0x8c(r1)
/* 803544CC 0035142C 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 803544D0 00351430 7C 08 03 A6 */ mtlr r0
/* 803544D4 00351434 38 21 00 B0 */ addi r1, r1, 0xb0
/* 803544D8 00351438 4E 80 00 20 */ blr
.global "Get<12CVirtualBone>__12CInputStreamFRC21TType<12CVirtualBone>"
"Get<12CVirtualBone>__12CInputStreamFRC21TType<12CVirtualBone>":
/* 803544DC 0035143C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803544E0 00351440 7C 08 02 A6 */ mflr r0
/* 803544E4 00351444 7C 85 23 78 */ mr r5, r4
/* 803544E8 00351448 90 01 00 24 */ stw r0, 0x24(r1)
/* 803544EC 0035144C 38 81 00 08 */ addi r4, r1, 8
/* 803544F0 00351450 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803544F4 00351454 7C 7F 1B 78 */ mr r31, r3
/* 803544F8 00351458 88 0D AA 4C */ lbz r0, lbl_805A960C@sda21(r13)
/* 803544FC 0035145C 98 01 00 08 */ stb r0, 8(r1)
/* 80354500 00351460 48 00 00 19 */ bl "cinput_stream_helper<12CVirtualBone>__FRC21TType<12CVirtualBone>R12CInputStream"
/* 80354504 00351464 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80354508 00351468 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8035450C 0035146C 7C 08 03 A6 */ mtlr r0
/* 80354510 00351470 38 21 00 20 */ addi r1, r1, 0x20
/* 80354514 00351474 4E 80 00 20 */ blr
.global "cinput_stream_helper<12CVirtualBone>__FRC21TType<12CVirtualBone>R12CInputStream"
"cinput_stream_helper<12CVirtualBone>__FRC21TType<12CVirtualBone>R12CInputStream":
/* 80354518 00351478 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8035451C 0035147C 7C 08 02 A6 */ mflr r0
/* 80354520 00351480 7C A4 2B 78 */ mr r4, r5
/* 80354524 00351484 90 01 00 14 */ stw r0, 0x14(r1)
/* 80354528 00351488 48 00 09 51 */ bl __ct__12CVirtualBoneFR12CInputStream
/* 8035452C 0035148C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80354530 00351490 7C 08 03 A6 */ mtlr r0
/* 80354534 00351494 38 21 00 10 */ addi r1, r1, 0x10
/* 80354538 00351498 4E 80 00 20 */ blr
.global sub_8035453c
sub_8035453c:
/* 8035453C 0035149C 94 21 FC D0 */ stwu r1, -0x330(r1)
/* 80354540 003514A0 7C 08 02 A6 */ mflr r0
/* 80354544 003514A4 90 01 03 34 */ stw r0, 0x334(r1)
/* 80354548 003514A8 BF 61 03 1C */ stmw r27, 0x31c(r1)
/* 8035454C 003514AC 7C 7B 1B 78 */ mr r27, r3
/* 80354550 003514B0 4B FE A7 35 */ bl ReadLong__12CInputStreamFv
/* 80354554 003514B4 7C 7F 1B 78 */ mr r31, r3
/* 80354558 003514B8 2C 1F FF FF */ cmpwi r31, -1
/* 8035455C 003514BC 40 82 00 10 */ bne lbl_8035456C
/* 80354560 003514C0 7F 63 DB 78 */ mr r3, r27
/* 80354564 003514C4 4B FE A7 21 */ bl ReadLong__12CInputStreamFv
/* 80354568 003514C8 48 00 00 50 */ b lbl_803545B8
lbl_8035456C:
/* 8035456C 003514CC 1F DF 00 03 */ mulli r30, r31, 3
/* 80354570 003514D0 3B A0 00 00 */ li r29, 0
/* 80354574 003514D4 48 00 00 38 */ b lbl_803545AC
lbl_80354578:
/* 80354578 003514D8 80 0D 9E 00 */ lwz r0, lbl_805A89C0@sda21(r13)
/* 8035457C 003514DC 7C 9D F0 50 */ subf r4, r29, r30
/* 80354580 003514E0 90 81 00 08 */ stw r4, 8(r1)
/* 80354584 003514E4 38 61 00 08 */ addi r3, r1, 8
/* 80354588 003514E8 7C 00 20 00 */ cmpw r0, r4
/* 8035458C 003514EC 40 80 00 08 */ bge lbl_80354594
/* 80354590 003514F0 38 6D 9E 00 */ addi r3, r13, lbl_805A89C0@sda21
lbl_80354594:
/* 80354594 003514F4 83 83 00 00 */ lwz r28, 0(r3)
/* 80354598 003514F8 7F 63 DB 78 */ mr r3, r27
/* 8035459C 003514FC 38 81 00 0C */ addi r4, r1, 0xc
/* 803545A0 00351500 57 85 10 3A */ slwi r5, r28, 2
/* 803545A4 00351504 4B FE A9 B1 */ bl Get__12CInputStreamFPvUl
/* 803545A8 00351508 7F BD E2 14 */ add r29, r29, r28
lbl_803545AC:
/* 803545AC 0035150C 7C 1D F0 00 */ cmpw r29, r30
/* 803545B0 00351510 41 80 FF C8 */ blt lbl_80354578
/* 803545B4 00351514 7F E3 FB 78 */ mr r3, r31
lbl_803545B8:
/* 803545B8 00351518 BB 61 03 1C */ lmw r27, 0x31c(r1)
/* 803545BC 0035151C 80 01 03 34 */ lwz r0, 0x334(r1)
/* 803545C0 00351520 7C 08 03 A6 */ mtlr r0
/* 803545C4 00351524 38 21 03 30 */ addi r1, r1, 0x330
/* 803545C8 00351528 4E 80 00 20 */ blr
.global sub_803545cc
sub_803545cc:
/* 803545CC 0035152C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803545D0 00351530 7C 08 02 A6 */ mflr r0
/* 803545D4 00351534 90 01 00 34 */ stw r0, 0x34(r1)
/* 803545D8 00351538 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 803545DC 0035153C 7C 9F 23 78 */ mr r31, r4
/* 803545E0 00351540 93 C1 00 28 */ stw r30, 0x28(r1)
/* 803545E4 00351544 7C 7E 1B 78 */ mr r30, r3
/* 803545E8 00351548 93 A1 00 24 */ stw r29, 0x24(r1)
/* 803545EC 0035154C 80 03 00 08 */ lwz r0, 8(r3)
/* 803545F0 00351550 7C 1F 00 00 */ cmpw r31, r0
/* 803545F4 00351554 40 81 00 FC */ ble lbl_803546F0
/* 803545F8 00351558 1C 7F 00 74 */ mulli r3, r31, 0x74
/* 803545FC 0035155C 2C 03 00 00 */ cmpwi r3, 0
/* 80354600 00351560 40 82 00 0C */ bne lbl_8035460C
/* 80354604 00351564 3B A0 00 00 */ li r29, 0
/* 80354608 00351568 48 00 00 18 */ b lbl_80354620
lbl_8035460C:
/* 8035460C 0035156C 3C 80 80 3E */ lis r4, lbl_803D8300@ha
/* 80354610 00351570 38 A0 00 00 */ li r5, 0
/* 80354614 00351574 38 84 83 00 */ addi r4, r4, lbl_803D8300@l
/* 80354618 00351578 4B FC 12 01 */ bl __nwa__FUlPCcPCc
/* 8035461C 0035157C 7C 7D 1B 78 */ mr r29, r3
lbl_80354620:
/* 80354620 00351580 80 1E 00 04 */ lwz r0, 4(r30)
/* 80354624 00351584 7F A5 EB 78 */ mr r5, r29
/* 80354628 00351588 80 DE 00 0C */ lwz r6, 0xc(r30)
/* 8035462C 0035158C 38 61 00 14 */ addi r3, r1, 0x14
/* 80354630 00351590 1C 00 00 74 */ mulli r0, r0, 0x74
/* 80354634 00351594 38 81 00 0C */ addi r4, r1, 0xc
/* 80354638 00351598 7C C6 02 14 */ add r6, r6, r0
/* 8035463C 0035159C 90 C1 00 0C */ stw r6, 0xc(r1)
/* 80354640 003515A0 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 80354644 003515A4 90 C1 00 08 */ stw r6, 8(r1)
/* 80354648 003515A8 90 01 00 10 */ stw r0, 0x10(r1)
/* 8035464C 003515AC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80354650 003515B0 48 00 00 BD */ bl sub_8035470c
/* 80354654 003515B4 80 1E 00 04 */ lwz r0, 4(r30)
/* 80354658 003515B8 80 DE 00 0C */ lwz r6, 0xc(r30)
/* 8035465C 003515BC 1C 00 00 74 */ mulli r0, r0, 0x74
/* 80354660 003515C0 7C 66 02 14 */ add r3, r6, r0
/* 80354664 003515C4 48 00 00 6C */ b lbl_803546D0
lbl_80354668:
/* 80354668 003515C8 28 06 00 00 */ cmplwi r6, 0
/* 8035466C 003515CC 41 82 00 60 */ beq lbl_803546CC
/* 80354670 003515D0 41 82 00 5C */ beq lbl_803546CC
/* 80354674 003515D4 80 E6 00 00 */ lwz r7, 0(r6)
/* 80354678 003515D8 38 80 00 00 */ li r4, 0
/* 8035467C 003515DC 2C 07 00 00 */ cmpwi r7, 0
/* 80354680 003515E0 40 81 00 44 */ ble lbl_803546C4
/* 80354684 003515E4 2C 07 00 08 */ cmpwi r7, 8
/* 80354688 003515E8 38 A7 FF F8 */ addi r5, r7, -8
/* 8035468C 003515EC 40 81 00 20 */ ble lbl_803546AC
/* 80354690 003515F0 38 05 00 07 */ addi r0, r5, 7
/* 80354694 003515F4 54 00 E8 FE */ srwi r0, r0, 3
/* 80354698 003515F8 7C 09 03 A6 */ mtctr r0
/* 8035469C 003515FC 2C 05 00 00 */ cmpwi r5, 0
/* 803546A0 00351600 40 81 00 0C */ ble lbl_803546AC
lbl_803546A4:
/* 803546A4 00351604 38 84 00 08 */ addi r4, r4, 8
/* 803546A8 00351608 42 00 FF FC */ bdnz lbl_803546A4
lbl_803546AC:
/* 803546AC 0035160C 7C 04 38 50 */ subf r0, r4, r7
/* 803546B0 00351610 7C 09 03 A6 */ mtctr r0
/* 803546B4 00351614 7C 04 38 00 */ cmpw r4, r7
/* 803546B8 00351618 40 80 00 0C */ bge lbl_803546C4
lbl_803546BC:
/* 803546BC 0035161C 38 84 00 01 */ addi r4, r4, 1
/* 803546C0 00351620 42 00 FF FC */ bdnz lbl_803546BC
lbl_803546C4:
/* 803546C4 00351624 38 00 00 00 */ li r0, 0
/* 803546C8 00351628 90 06 00 00 */ stw r0, 0(r6)
lbl_803546CC:
/* 803546CC 0035162C 38 C6 00 74 */ addi r6, r6, 0x74
lbl_803546D0:
/* 803546D0 00351630 7C 06 18 40 */ cmplw r6, r3
/* 803546D4 00351634 40 82 FF 94 */ bne lbl_80354668
/* 803546D8 00351638 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 803546DC 0035163C 28 03 00 00 */ cmplwi r3, 0
/* 803546E0 00351640 41 82 00 08 */ beq lbl_803546E8
/* 803546E4 00351644 4B FC 12 4D */ bl Free__7CMemoryFPCv
lbl_803546E8:
/* 803546E8 00351648 93 BE 00 0C */ stw r29, 0xc(r30)
/* 803546EC 0035164C 93 FE 00 08 */ stw r31, 8(r30)
lbl_803546F0:
/* 803546F0 00351650 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803546F4 00351654 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803546F8 00351658 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 803546FC 0035165C 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80354700 00351660 7C 08 03 A6 */ mtlr r0
/* 80354704 00351664 38 21 00 30 */ addi r1, r1, 0x30
/* 80354708 00351668 4E 80 00 20 */ blr
.section .rodata
.global lbl_803D8300
lbl_803D8300:
# ROM: 0x3D5300
.asciz "??(??)"
.balign 4