.include "macros.inc" .section .text, "ax" .global sub_8035470c sub_8035470c: /* 8035470C 0035166C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80354710 00351670 7C 08 02 A6 */ mflr r0 /* 80354714 00351674 90 01 00 24 */ stw r0, 0x24(r1) /* 80354718 00351678 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8035471C 0035167C 93 C1 00 18 */ stw r30, 0x18(r1) /* 80354720 00351680 7C BE 2B 78 */ mr r30, r5 /* 80354724 00351684 93 A1 00 14 */ stw r29, 0x14(r1) /* 80354728 00351688 7C 9D 23 78 */ mr r29, r4 /* 8035472C 0035168C 83 E3 00 00 */ lwz r31, 0(r3) /* 80354730 00351690 48 00 00 78 */ b lbl_803547A8 lbl_80354734: /* 80354734 00351694 28 1E 00 00 */ cmplwi r30, 0 /* 80354738 00351698 41 82 00 68 */ beq lbl_803547A0 /* 8035473C 0035169C 80 1F 00 00 */ lwz r0, 0(r31) /* 80354740 003516A0 38 9E 00 04 */ addi r4, r30, 4 /* 80354744 003516A4 38 7F 00 04 */ addi r3, r31, 4 /* 80354748 003516A8 90 1E 00 00 */ stw r0, 0(r30) /* 8035474C 003516AC 80 1E 00 00 */ lwz r0, 0(r30) /* 80354750 003516B0 7C 09 03 A6 */ mtctr r0 /* 80354754 003516B4 2C 00 00 00 */ cmpwi r0, 0 /* 80354758 003516B8 40 81 00 28 */ ble lbl_80354780 lbl_8035475C: /* 8035475C 003516BC 28 04 00 00 */ cmplwi r4, 0 /* 80354760 003516C0 41 82 00 14 */ beq lbl_80354774 /* 80354764 003516C4 88 03 00 00 */ lbz r0, 0(r3) /* 80354768 003516C8 98 04 00 00 */ stb r0, 0(r4) /* 8035476C 003516CC C0 03 00 04 */ lfs f0, 4(r3) /* 80354770 003516D0 D0 04 00 04 */ stfs f0, 4(r4) lbl_80354774: /* 80354774 003516D4 38 84 00 08 */ addi r4, r4, 8 /* 80354778 003516D8 38 63 00 08 */ addi r3, r3, 8 /* 8035477C 003516DC 42 00 FF E0 */ bdnz lbl_8035475C lbl_80354780: /* 80354780 003516E0 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80354784 003516E4 38 7E 00 20 */ addi r3, r30, 0x20 /* 80354788 003516E8 38 9F 00 20 */ addi r4, r31, 0x20 /* 8035478C 003516EC 90 1E 00 1C */ stw r0, 0x1c(r30) /* 80354790 003516F0 4B FB E3 E5 */ bl __ct__12CTransform4fFRC12CTransform4f /* 80354794 003516F4 38 7E 00 50 */ addi r3, r30, 0x50 /* 80354798 003516F8 38 9F 00 50 */ addi r4, r31, 0x50 /* 8035479C 003516FC 4B FB B8 89 */ bl __ct__9CMatrix3fFRC9CMatrix3f lbl_803547A0: /* 803547A0 00351700 3B DE 00 74 */ addi r30, r30, 0x74 /* 803547A4 00351704 3B FF 00 74 */ addi r31, r31, 0x74 lbl_803547A8: /* 803547A8 00351708 80 1D 00 00 */ lwz r0, 0(r29) /* 803547AC 0035170C 7C 1F 00 40 */ cmplw r31, r0 /* 803547B0 00351710 40 82 FF 84 */ bne lbl_80354734 /* 803547B4 00351714 80 01 00 24 */ lwz r0, 0x24(r1) /* 803547B8 00351718 7F C3 F3 78 */ mr r3, r30 /* 803547BC 0035171C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 803547C0 00351720 83 C1 00 18 */ lwz r30, 0x18(r1) /* 803547C4 00351724 83 A1 00 14 */ lwz r29, 0x14(r1) /* 803547C8 00351728 7C 08 03 A6 */ mtlr r0 /* 803547CC 0035172C 38 21 00 20 */ addi r1, r1, 0x20 /* 803547D0 00351730 4E 80 00 20 */ blr .global PSMTXROMultVecArrayGathered PSMTXROMultVecArrayGathered: /* 803547D4 00351734 7D 6B 5A 78 */ xor r11, r11, r11 /* 803547D8 00351738 39 6B 00 60 */ addi r11, r11, 0x60 /* 803547DC 0035173C 94 21 FF C0 */ stwu r1, -0x40(r1) /* 803547E0 00351740 D9 C1 00 08 */ stfd f14, 8(r1) /* 803547E4 00351744 38 E6 FF FF */ addi r7, r6, -1 /* 803547E8 00351748 D9 E1 00 10 */ stfd f15, 0x10(r1) /* 803547EC 0035174C 54 E7 F8 7E */ srwi r7, r7, 1 /* 803547F0 00351750 DA 01 00 18 */ stfd f16, 0x18(r1) /* 803547F4 00351754 DA 21 00 20 */ stfd f17, 0x20(r1) /* 803547F8 00351758 DA 41 00 28 */ stfd f18, 0x28(r1) /* 803547FC 0035175C 7C E9 03 A6 */ mtctr r7 /* 80354800 00351760 E0 03 00 00 */ psq_l f0, 0(r3), 0, qr0 /* 80354804 00351764 38 84 FF F8 */ addi r4, r4, -8 /* 80354808 00351768 E0 23 80 08 */ psq_l f1, 8(r3), 1, qr0 /* 8035480C 0035176C E0 C3 00 24 */ psq_l f6, 36(r3), 0, qr0 /* 80354810 00351770 E5 04 00 08 */ psq_lu f8, 8(r4), 0, qr0 /* 80354814 00351774 E0 E3 80 2C */ psq_l f7, 44(r3), 1, qr0 /* 80354818 00351778 E5 24 00 08 */ psq_lu f9, 8(r4), 0, qr0 /* 8035481C 0035177C 11 60 32 1C */ ps_madds0 f11, f0, f8, f6 /* 80354820 00351780 E0 43 00 0C */ psq_l f2, 12(r3), 0, qr0 /* 80354824 00351784 11 81 3A 1C */ ps_madds0 f12, f1, f8, f7 /* 80354828 00351788 E0 63 80 14 */ psq_l f3, 20(r3), 1, qr0 /* 8035482C 0035178C 11 A0 32 5E */ ps_madds1 f13, f0, f9, f6 /* 80354830 00351790 E5 44 00 08 */ psq_lu f10, 8(r4), 0, qr0 /* 80354834 00351794 11 C1 3A 5E */ ps_madds1 f14, f1, f9, f7 /* 80354838 00351798 E0 A3 80 20 */ psq_l f5, 32(r3), 1, qr0 /* 8035483C 0035179C 11 62 5A 1E */ ps_madds1 f11, f2, f8, f11 /* 80354840 003517A0 11 83 62 1E */ ps_madds1 f12, f3, f8, f12 /* 80354844 003517A4 E0 83 00 18 */ psq_l f4, 24(r3), 0, qr0 /* 80354848 003517A8 11 A2 6A 9C */ ps_madds0 f13, f2, f10, f13 /* 8035484C 003517AC E5 04 00 08 */ psq_lu f8, 8(r4), 0, qr0 /* 80354850 003517B0 11 C3 72 9C */ ps_madds0 f14, f3, f10, f14 /* 80354854 003517B4 11 E4 5A 5C */ ps_madds0 f15, f4, f9, f11 /* 80354858 003517B8 12 05 62 5C */ ps_madds0 f16, f5, f9, f12 /* 8035485C 003517BC E5 24 00 08 */ psq_lu f9, 8(r4), 0, qr0 /* 80354860 003517C0 12 24 6A 9E */ ps_madds1 f17, f4, f10, f13 /* 80354864 003517C4 12 45 72 9E */ ps_madds1 f18, f5, f10, f14 /* 80354868 003517C8 E5 44 00 08 */ psq_lu f10, 8(r4), 0, qr0 lbl_8035486C: /* 8035486C 003517CC 11 60 32 1C */ ps_madds0 f11, f0, f8, f6 /* 80354870 003517D0 F1 E5 00 00 */ psq_st f15, 0(r5), 0, qr0 /* 80354874 003517D4 11 81 3A 1C */ ps_madds0 f12, f1, f8, f7 /* 80354878 003517D8 F2 05 80 00 */ psq_st f16, 0(r5), 1, qr0 /* 8035487C 003517DC 11 A0 32 5E */ ps_madds1 f13, f0, f9, f6 /* 80354880 003517E0 F2 25 00 00 */ psq_st f17, 0(r5), 0, qr0 /* 80354884 003517E4 11 C1 3A 5E */ ps_madds1 f14, f1, f9, f7 /* 80354888 003517E8 F2 45 80 00 */ psq_st f18, 0(r5), 1, qr0 /* 8035488C 003517EC 11 62 5A 1E */ ps_madds1 f11, f2, f8, f11 /* 80354890 003517F0 11 83 62 1E */ ps_madds1 f12, f3, f8, f12 /* 80354894 003517F4 E5 04 00 08 */ psq_lu f8, 8(r4), 0, qr0 /* 80354898 003517F8 11 A2 6A 9C */ ps_madds0 f13, f2, f10, f13 /* 8035489C 003517FC 11 C3 72 9C */ ps_madds0 f14, f3, f10, f14 /* 803548A0 00351800 11 E4 5A 5C */ ps_madds0 f15, f4, f9, f11 /* 803548A4 00351804 12 05 62 5C */ ps_madds0 f16, f5, f9, f12 /* 803548A8 00351808 E5 24 00 08 */ psq_lu f9, 8(r4), 0, qr0 /* 803548AC 0035180C 12 24 6A 9E */ ps_madds1 f17, f4, f10, f13 /* 803548B0 00351810 12 45 72 9E */ ps_madds1 f18, f5, f10, f14 /* 803548B4 00351814 E5 44 00 08 */ psq_lu f10, 8(r4), 0, qr0 /* 803548B8 00351818 42 00 FF B4 */ bdnz lbl_8035486C /* 803548BC 0035181C F1 E5 00 00 */ psq_st f15, 0(r5), 0, qr0 /* 803548C0 00351820 54 C7 07 FF */ clrlwi. r7, r6, 0x1f /* 803548C4 00351824 F2 05 80 00 */ psq_st f16, 0(r5), 1, qr0 /* 803548C8 00351828 40 82 00 0C */ bne lbl_803548D4 /* 803548CC 0035182C F2 25 00 00 */ psq_st f17, 0(r5), 0, qr0 /* 803548D0 00351830 F2 45 80 00 */ psq_st f18, 0(r5), 1, qr0 lbl_803548D4: /* 803548D4 00351834 C9 C1 00 08 */ lfd f14, 8(r1) /* 803548D8 00351838 C9 E1 00 10 */ lfd f15, 0x10(r1) /* 803548DC 0035183C CA 01 00 18 */ lfd f16, 0x18(r1) /* 803548E0 00351840 CA 21 00 20 */ lfd f17, 0x20(r1) /* 803548E4 00351844 CA 41 00 28 */ lfd f18, 0x28(r1) /* 803548E8 00351848 38 21 00 40 */ addi r1, r1, 0x40 /* 803548EC 0035184C 4E 80 00 20 */ blr .global sub_803548f0 sub_803548f0: /* 803548F0 00351850 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803548F4 00351854 7C 08 02 A6 */ mflr r0 /* 803548F8 00351858 90 01 00 34 */ stw r0, 0x34(r1) /* 803548FC 0035185C BF 61 00 1C */ stmw r27, 0x1c(r1) /* 80354900 00351860 7C 7B 1B 78 */ mr r27, r3 /* 80354904 00351864 7C DC 33 78 */ mr r28, r6 /* 80354908 00351868 7C 9F 23 78 */ mr r31, r4 /* 8035490C 0035186C 7C BE 2B 78 */ mr r30, r5 /* 80354910 00351870 3B A0 00 00 */ li r29, 0 /* 80354914 00351874 48 00 00 38 */ b lbl_8035494C lbl_80354918: /* 80354918 00351878 7F E5 FB 78 */ mr r5, r31 /* 8035491C 0035187C 38 61 00 08 */ addi r3, r1, 8 /* 80354920 00351880 38 9B 00 50 */ addi r4, r27, 0x50 /* 80354924 00351884 4B FB B9 71 */ bl __ml__9CMatrix3fCFRC9CVector3f /* 80354928 00351888 C0 01 00 08 */ lfs f0, 8(r1) /* 8035492C 0035188C 3B FF 00 0C */ addi r31, r31, 0xc /* 80354930 00351890 3B BD 00 01 */ addi r29, r29, 1 /* 80354934 00351894 D0 1E 00 00 */ stfs f0, 0(r30) /* 80354938 00351898 C0 01 00 0C */ lfs f0, 0xc(r1) /* 8035493C 0035189C D0 1E 00 04 */ stfs f0, 4(r30) /* 80354940 003518A0 C0 01 00 10 */ lfs f0, 0x10(r1) /* 80354944 003518A4 D0 1E 00 08 */ stfs f0, 8(r30) /* 80354948 003518A8 3B DE 00 0C */ addi r30, r30, 0xc lbl_8035494C: /* 8035494C 003518AC 7C 1D E0 00 */ cmpw r29, r28 /* 80354950 003518B0 41 80 FF C8 */ blt lbl_80354918 /* 80354954 003518B4 BB 61 00 1C */ lmw r27, 0x1c(r1) /* 80354958 003518B8 80 01 00 34 */ lwz r0, 0x34(r1) /* 8035495C 003518BC 7C 08 03 A6 */ mtlr r0 /* 80354960 003518C0 38 21 00 30 */ addi r1, r1, 0x30 /* 80354964 003518C4 4E 80 00 20 */ blr .global BuildNormals__12CVirtualBoneCFPCUsPVvi BuildNormals__12CVirtualBoneCFPCUsPVvi: /* 80354968 003518C8 94 21 FF 60 */ stwu r1, -0xa0(r1) /* 8035496C 003518CC 7C 08 02 A6 */ mflr r0 /* 80354970 003518D0 90 01 00 A4 */ stw r0, 0xa4(r1) /* 80354974 003518D4 BF 61 00 8C */ stmw r27, 0x8c(r1) /* 80354978 003518D8 7C DD 33 78 */ mr r29, r6 /* 8035497C 003518DC 2C 1D 00 03 */ cmpwi r29, 3 /* 80354980 003518E0 7C 7B 1B 78 */ mr r27, r3 /* 80354984 003518E4 7C 9E 23 78 */ mr r30, r4 /* 80354988 003518E8 7C BC 2B 78 */ mr r28, r5 /* 8035498C 003518EC 40 80 00 4C */ bge lbl_803549D8 /* 80354990 003518F0 7F DF F3 78 */ mr r31, r30 /* 80354994 003518F4 3B C0 00 00 */ li r30, 0 /* 80354998 003518F8 48 00 00 34 */ b lbl_803549CC lbl_8035499C: /* 8035499C 003518FC 7F E5 FB 78 */ mr r5, r31 /* 803549A0 00351900 38 61 00 14 */ addi r3, r1, 0x14 /* 803549A4 00351904 38 9B 00 50 */ addi r4, r27, 0x50 /* 803549A8 00351908 4B FB B8 ED */ bl __ml__9CMatrix3fCFRC9CVector3f /* 803549AC 0035190C C0 21 00 18 */ lfs f1, 0x18(r1) /* 803549B0 00351910 3B FF 00 0C */ addi r31, r31, 0xc /* 803549B4 00351914 C0 41 00 1C */ lfs f2, 0x1c(r1) /* 803549B8 00351918 3B DE 00 01 */ addi r30, r30, 1 /* 803549BC 0035191C C0 01 00 14 */ lfs f0, 0x14(r1) /* 803549C0 00351920 D0 1C 00 00 */ stfs f0, 0(r28) /* 803549C4 00351924 D0 3C 00 00 */ stfs f1, 0(r28) /* 803549C8 00351928 D0 5C 00 00 */ stfs f2, 0(r28) lbl_803549CC: /* 803549CC 0035192C 7C 1E E8 00 */ cmpw r30, r29 /* 803549D0 00351930 41 80 FF CC */ blt lbl_8035499C /* 803549D4 00351934 48 00 00 48 */ b lbl_80354A1C lbl_803549D8: /* 803549D8 00351938 C0 02 CC A0 */ lfs f0, lbl_805AE9C0@sda21(r2) /* 803549DC 0035193C 38 61 00 50 */ addi r3, r1, 0x50 /* 803549E0 00351940 38 9B 00 50 */ addi r4, r27, 0x50 /* 803549E4 00351944 38 A1 00 08 */ addi r5, r1, 8 /* 803549E8 00351948 D0 01 00 08 */ stfs f0, 8(r1) /* 803549EC 0035194C D0 01 00 0C */ stfs f0, 0xc(r1) /* 803549F0 00351950 D0 01 00 10 */ stfs f0, 0x10(r1) /* 803549F4 00351954 4B FB E8 85 */ bl __ct__12CTransform4fFRC9CMatrix3fRC9CVector3f /* 803549F8 00351958 38 61 00 50 */ addi r3, r1, 0x50 /* 803549FC 0035195C 48 00 04 79 */ bl nullsub_22 /* 80354A00 00351960 38 81 00 20 */ addi r4, r1, 0x20 /* 80354A04 00351964 48 02 8C CD */ bl PSMTXReorder /* 80354A08 00351968 7F C4 F3 78 */ mr r4, r30 /* 80354A0C 0035196C 7F 85 E3 78 */ mr r5, r28 /* 80354A10 00351970 7F A6 EB 78 */ mr r6, r29 /* 80354A14 00351974 38 61 00 20 */ addi r3, r1, 0x20 /* 80354A18 00351978 4B FF FD BD */ bl PSMTXROMultVecArrayGathered lbl_80354A1C: /* 80354A1C 0035197C BB 61 00 8C */ lmw r27, 0x8c(r1) /* 80354A20 00351980 80 01 00 A4 */ lwz r0, 0xa4(r1) /* 80354A24 00351984 7C 08 03 A6 */ mtlr r0 /* 80354A28 00351988 38 21 00 A0 */ addi r1, r1, 0xa0 /* 80354A2C 0035198C 4E 80 00 20 */ blr .global BuildPoints__12CVirtualBoneCFPCUsPVvi BuildPoints__12CVirtualBoneCFPCUsPVvi: /* 80354A30 00351990 94 21 FF A0 */ stwu r1, -0x60(r1) /* 80354A34 00351994 7C 08 02 A6 */ mflr r0 /* 80354A38 00351998 90 01 00 64 */ stw r0, 0x64(r1) /* 80354A3C 0035199C BF 61 00 4C */ stmw r27, 0x4c(r1) /* 80354A40 003519A0 7C DD 33 78 */ mr r29, r6 /* 80354A44 003519A4 2C 1D 00 03 */ cmpwi r29, 3 /* 80354A48 003519A8 7C 7B 1B 78 */ mr r27, r3 /* 80354A4C 003519AC 7C 9E 23 78 */ mr r30, r4 /* 80354A50 003519B0 7C BC 2B 78 */ mr r28, r5 /* 80354A54 003519B4 40 80 00 4C */ bge lbl_80354AA0 /* 80354A58 003519B8 7F DF F3 78 */ mr r31, r30 /* 80354A5C 003519BC 3B C0 00 00 */ li r30, 0 /* 80354A60 003519C0 48 00 00 34 */ b lbl_80354A94 lbl_80354A64: /* 80354A64 003519C4 7F E5 FB 78 */ mr r5, r31 /* 80354A68 003519C8 38 61 00 08 */ addi r3, r1, 8 /* 80354A6C 003519CC 38 9B 00 20 */ addi r4, r27, 0x20 /* 80354A70 003519D0 4B FB E0 79 */ bl __ml__12CTransform4fCFRC9CVector3f /* 80354A74 003519D4 C0 21 00 0C */ lfs f1, 0xc(r1) /* 80354A78 003519D8 3B FF 00 0C */ addi r31, r31, 0xc /* 80354A7C 003519DC C0 41 00 10 */ lfs f2, 0x10(r1) /* 80354A80 003519E0 3B DE 00 01 */ addi r30, r30, 1 /* 80354A84 003519E4 C0 01 00 08 */ lfs f0, 8(r1) /* 80354A88 003519E8 D0 1C 00 00 */ stfs f0, 0(r28) /* 80354A8C 003519EC D0 3C 00 00 */ stfs f1, 0(r28) /* 80354A90 003519F0 D0 5C 00 00 */ stfs f2, 0(r28) lbl_80354A94: /* 80354A94 003519F4 7C 1E E8 00 */ cmpw r30, r29 /* 80354A98 003519F8 41 80 FF CC */ blt lbl_80354A64 /* 80354A9C 003519FC 48 00 00 28 */ b lbl_80354AC4 lbl_80354AA0: /* 80354AA0 00351A00 38 7B 00 20 */ addi r3, r27, 0x20 /* 80354AA4 00351A04 48 00 03 D1 */ bl nullsub_22 /* 80354AA8 00351A08 38 81 00 14 */ addi r4, r1, 0x14 /* 80354AAC 00351A0C 48 02 8C 25 */ bl PSMTXReorder /* 80354AB0 00351A10 7F C4 F3 78 */ mr r4, r30 /* 80354AB4 00351A14 7F 85 E3 78 */ mr r5, r28 /* 80354AB8 00351A18 7F A6 EB 78 */ mr r6, r29 /* 80354ABC 00351A1C 38 61 00 14 */ addi r3, r1, 0x14 /* 80354AC0 00351A20 4B FF FD 15 */ bl PSMTXROMultVecArrayGathered lbl_80354AC4: /* 80354AC4 00351A24 BB 61 00 4C */ lmw r27, 0x4c(r1) /* 80354AC8 00351A28 80 01 00 64 */ lwz r0, 0x64(r1) /* 80354ACC 00351A2C 7C 08 03 A6 */ mtlr r0 /* 80354AD0 00351A30 38 21 00 60 */ addi r1, r1, 0x60 /* 80354AD4 00351A34 4E 80 00 20 */ blr .global sub_80354ad8 sub_80354ad8: /* 80354AD8 00351A38 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80354ADC 00351A3C 7C 08 02 A6 */ mflr r0 /* 80354AE0 00351A40 90 01 00 14 */ stw r0, 0x14(r1) /* 80354AE4 00351A44 93 E1 00 0C */ stw r31, 0xc(r1) /* 80354AE8 00351A48 7C 9F 23 78 */ mr r31, r4 /* 80354AEC 00351A4C 93 C1 00 08 */ stw r30, 8(r1) /* 80354AF0 00351A50 7C 7E 1B 78 */ mr r30, r3 /* 80354AF4 00351A54 48 00 00 35 */ bl sub_80354b28 /* 80354AF8 00351A58 7F E3 FB 78 */ mr r3, r31 /* 80354AFC 00351A5C 38 9E 00 04 */ addi r4, r30, 4 /* 80354B00 00351A60 48 01 44 9D */ bl GetRotation__17CPoseAsTransformsCFRC6CSegId /* 80354B04 00351A64 7C 64 1B 78 */ mr r4, r3 /* 80354B08 00351A68 38 7E 00 50 */ addi r3, r30, 0x50 /* 80354B0C 00351A6C 4B FB B4 ED */ bl __as__9CMatrix3fFRC9CMatrix3f /* 80354B10 00351A70 80 01 00 14 */ lwz r0, 0x14(r1) /* 80354B14 00351A74 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80354B18 00351A78 83 C1 00 08 */ lwz r30, 8(r1) /* 80354B1C 00351A7C 7C 08 03 A6 */ mtlr r0 /* 80354B20 00351A80 38 21 00 10 */ addi r1, r1, 0x10 /* 80354B24 00351A84 4E 80 00 20 */ blr .global sub_80354b28 sub_80354b28: /* 80354B28 00351A88 94 21 FF 40 */ stwu r1, -0xc0(r1) /* 80354B2C 00351A8C 7C 08 02 A6 */ mflr r0 /* 80354B30 00351A90 90 01 00 C4 */ stw r0, 0xc4(r1) /* 80354B34 00351A94 DB E1 00 B0 */ stfd f31, 0xb0(r1) /* 80354B38 00351A98 F3 E1 00 B8 */ psq_st f31, 184(r1), 0, qr0 /* 80354B3C 00351A9C DB C1 00 A0 */ stfd f30, 0xa0(r1) /* 80354B40 00351AA0 F3 C1 00 A8 */ psq_st f30, 168(r1), 0, qr0 /* 80354B44 00351AA4 DB A1 00 90 */ stfd f29, 0x90(r1) /* 80354B48 00351AA8 F3 A1 00 98 */ psq_st f29, 152(r1), 0, qr0 /* 80354B4C 00351AAC BF 21 00 74 */ stmw r25, 0x74(r1) /* 80354B50 00351AB0 7C 7D 1B 78 */ mr r29, r3 /* 80354B54 00351AB4 7C 9E 23 78 */ mr r30, r4 /* 80354B58 00351AB8 80 03 00 00 */ lwz r0, 0(r3) /* 80354B5C 00351ABC 7C BF 2B 78 */ mr r31, r5 /* 80354B60 00351AC0 2C 00 00 02 */ cmpwi r0, 2 /* 80354B64 00351AC4 41 82 00 50 */ beq lbl_80354BB4 /* 80354B68 00351AC8 40 80 00 10 */ bge lbl_80354B78 /* 80354B6C 00351ACC 2C 00 00 01 */ cmpwi r0, 1 /* 80354B70 00351AD0 40 80 00 14 */ bge lbl_80354B84 /* 80354B74 00351AD4 48 00 01 D0 */ b lbl_80354D44 lbl_80354B78: /* 80354B78 00351AD8 2C 00 00 04 */ cmpwi r0, 4 /* 80354B7C 00351ADC 40 80 01 C8 */ bge lbl_80354D44 /* 80354B80 00351AE0 48 00 00 98 */ b lbl_80354C18 lbl_80354B84: /* 80354B84 00351AE4 88 1D 00 04 */ lbz r0, 4(r29) /* 80354B88 00351AE8 7F C3 F3 78 */ mr r3, r30 /* 80354B8C 00351AEC 38 81 00 08 */ addi r4, r1, 8 /* 80354B90 00351AF0 98 01 00 08 */ stb r0, 8(r1) /* 80354B94 00351AF4 48 01 43 E9 */ bl GetTransformMinusOffset__17CPoseAsTransformsCFRC6CSegId /* 80354B98 00351AF8 88 01 00 08 */ lbz r0, 8(r1) /* 80354B9C 00351AFC 7C 64 1B 78 */ mr r4, r3 /* 80354BA0 00351B00 38 7D 00 20 */ addi r3, r29, 0x20 /* 80354BA4 00351B04 1C 00 00 0C */ mulli r0, r0, 0xc /* 80354BA8 00351B08 7C BF 02 14 */ add r5, r31, r0 /* 80354BAC 00351B0C 48 00 02 81 */ bl TransformFromMatrixData /* 80354BB0 00351B10 48 00 01 A4 */ b lbl_80354D54 lbl_80354BB4: /* 80354BB4 00351B14 3B 9D 00 04 */ addi r28, r29, 4 /* 80354BB8 00351B18 C3 FD 00 08 */ lfs f31, 8(r29) /* 80354BBC 00351B1C C3 DD 00 10 */ lfs f30, 0x10(r29) /* 80354BC0 00351B20 3B 7D 00 0C */ addi r27, r29, 0xc /* 80354BC4 00351B24 7F C3 F3 78 */ mr r3, r30 /* 80354BC8 00351B28 7F 84 E3 78 */ mr r4, r28 /* 80354BCC 00351B2C 48 01 43 B1 */ bl GetTransformMinusOffset__17CPoseAsTransformsCFRC6CSegId /* 80354BD0 00351B30 7C 60 1B 78 */ mr r0, r3 /* 80354BD4 00351B34 7F C3 F3 78 */ mr r3, r30 /* 80354BD8 00351B38 7C 1A 03 78 */ mr r26, r0 /* 80354BDC 00351B3C 7F 64 DB 78 */ mr r4, r27 /* 80354BE0 00351B40 48 01 43 9D */ bl GetTransformMinusOffset__17CPoseAsTransformsCFRC6CSegId /* 80354BE4 00351B44 88 9C 00 00 */ lbz r4, 0(r28) /* 80354BE8 00351B48 7C 66 1B 78 */ mr r6, r3 /* 80354BEC 00351B4C 88 1B 00 00 */ lbz r0, 0(r27) /* 80354BF0 00351B50 FC 20 F8 90 */ fmr f1, f31 /* 80354BF4 00351B54 1C A4 00 0C */ mulli r5, r4, 0xc /* 80354BF8 00351B58 FC 40 F0 90 */ fmr f2, f30 /* 80354BFC 00351B5C 7F 44 D3 78 */ mr r4, r26 /* 80354C00 00351B60 38 7D 00 20 */ addi r3, r29, 0x20 /* 80354C04 00351B64 1C 00 00 0C */ mulli r0, r0, 0xc /* 80354C08 00351B68 7C BF 2A 14 */ add r5, r31, r5 /* 80354C0C 00351B6C 7C FF 02 14 */ add r7, r31, r0 /* 80354C10 00351B70 48 00 01 71 */ bl Transform2FromMatrixData /* 80354C14 00351B74 48 00 01 40 */ b lbl_80354D54 lbl_80354C18: /* 80354C18 00351B78 3B 9D 00 04 */ addi r28, r29, 4 /* 80354C1C 00351B7C C3 DD 00 08 */ lfs f30, 8(r29) /* 80354C20 00351B80 C3 BD 00 10 */ lfs f29, 0x10(r29) /* 80354C24 00351B84 3B 7D 00 0C */ addi r27, r29, 0xc /* 80354C28 00351B88 C3 FD 00 18 */ lfs f31, 0x18(r29) /* 80354C2C 00351B8C 3B 5D 00 14 */ addi r26, r29, 0x14 /* 80354C30 00351B90 7F C3 F3 78 */ mr r3, r30 /* 80354C34 00351B94 7F 84 E3 78 */ mr r4, r28 /* 80354C38 00351B98 48 01 43 45 */ bl GetTransformMinusOffset__17CPoseAsTransformsCFRC6CSegId /* 80354C3C 00351B9C 7C 60 1B 78 */ mr r0, r3 /* 80354C40 00351BA0 7F C3 F3 78 */ mr r3, r30 /* 80354C44 00351BA4 7C 19 03 78 */ mr r25, r0 /* 80354C48 00351BA8 7F 64 DB 78 */ mr r4, r27 /* 80354C4C 00351BAC 48 01 43 31 */ bl GetTransformMinusOffset__17CPoseAsTransformsCFRC6CSegId /* 80354C50 00351BB0 FC 20 F0 90 */ fmr f1, f30 /* 80354C54 00351BB4 7C 65 1B 78 */ mr r5, r3 /* 80354C58 00351BB8 FC 40 E8 90 */ fmr f2, f29 /* 80354C5C 00351BBC 7F 24 CB 78 */ mr r4, r25 /* 80354C60 00351BC0 38 61 00 48 */ addi r3, r1, 0x48 /* 80354C64 00351BC4 4B FB B9 61 */ bl __ct__9CMatrix3fFRC9CMatrix3ffRC9CMatrix3ff /* 80354C68 00351BC8 88 9B 00 00 */ lbz r4, 0(r27) /* 80354C6C 00351BCC FC 20 F8 90 */ fmr f1, f31 /* 80354C70 00351BD0 88 1C 00 00 */ lbz r0, 0(r28) /* 80354C74 00351BD4 7F C3 F3 78 */ mr r3, r30 /* 80354C78 00351BD8 1C C4 00 0C */ mulli r6, r4, 0xc /* 80354C7C 00351BDC 7F 44 D3 78 */ mr r4, r26 /* 80354C80 00351BE0 38 A1 00 48 */ addi r5, r1, 0x48 /* 80354C84 00351BE4 7C DF 32 14 */ add r6, r31, r6 /* 80354C88 00351BE8 1C 00 00 0C */ mulli r0, r0, 0xc /* 80354C8C 00351BEC C0 66 00 04 */ lfs f3, 4(r6) /* 80354C90 00351BF0 C0 46 00 08 */ lfs f2, 8(r6) /* 80354C94 00351BF4 C0 06 00 00 */ lfs f0, 0(r6) /* 80354C98 00351BF8 EC BD 00 F2 */ fmuls f5, f29, f3 /* 80354C9C 00351BFC 7C DF 02 14 */ add r6, r31, r0 /* 80354CA0 00351C00 C0 C6 00 04 */ lfs f6, 4(r6) /* 80354CA4 00351C04 EC 7D 00 B2 */ fmuls f3, f29, f2 /* 80354CA8 00351C08 C0 86 00 08 */ lfs f4, 8(r6) /* 80354CAC 00351C0C EC 1D 00 32 */ fmuls f0, f29, f0 /* 80354CB0 00351C10 C0 46 00 00 */ lfs f2, 0(r6) /* 80354CB4 00351C14 EC DE 01 B2 */ fmuls f6, f30, f6 /* 80354CB8 00351C18 EC 9E 01 32 */ fmuls f4, f30, f4 /* 80354CBC 00351C1C EC 5E 00 B2 */ fmuls f2, f30, f2 /* 80354CC0 00351C20 EC A6 28 2A */ fadds f5, f6, f5 /* 80354CC4 00351C24 EC 64 18 2A */ fadds f3, f4, f3 /* 80354CC8 00351C28 EC 02 00 2A */ fadds f0, f2, f0 /* 80354CCC 00351C2C D0 A1 00 10 */ stfs f5, 0x10(r1) /* 80354CD0 00351C30 D0 01 00 0C */ stfs f0, 0xc(r1) /* 80354CD4 00351C34 D0 61 00 14 */ stfs f3, 0x14(r1) /* 80354CD8 00351C38 48 01 42 39 */ bl AccumulateScaledTransform__17CPoseAsTransformsCFRC6CSegIdR9CMatrix3ff /* 80354CDC 00351C3C 88 1A 00 00 */ lbz r0, 0(r26) /* 80354CE0 00351C40 38 61 00 18 */ addi r3, r1, 0x18 /* 80354CE4 00351C44 C0 61 00 0C */ lfs f3, 0xc(r1) /* 80354CE8 00351C48 38 81 00 48 */ addi r4, r1, 0x48 /* 80354CEC 00351C4C 1C 00 00 0C */ mulli r0, r0, 0xc /* 80354CF0 00351C50 C0 21 00 10 */ lfs f1, 0x10(r1) /* 80354CF4 00351C54 C0 01 00 14 */ lfs f0, 0x14(r1) /* 80354CF8 00351C58 38 A1 00 0C */ addi r5, r1, 0xc /* 80354CFC 00351C5C 7C DF 02 14 */ add r6, r31, r0 /* 80354D00 00351C60 C0 A6 00 04 */ lfs f5, 4(r6) /* 80354D04 00351C64 C0 86 00 08 */ lfs f4, 8(r6) /* 80354D08 00351C68 C0 46 00 00 */ lfs f2, 0(r6) /* 80354D0C 00351C6C EC BF 01 72 */ fmuls f5, f31, f5 /* 80354D10 00351C70 EC 9F 01 32 */ fmuls f4, f31, f4 /* 80354D14 00351C74 EC 5F 00 B2 */ fmuls f2, f31, f2 /* 80354D18 00351C78 EC 21 28 2A */ fadds f1, f1, f5 /* 80354D1C 00351C7C EC 00 20 2A */ fadds f0, f0, f4 /* 80354D20 00351C80 EC 43 10 2A */ fadds f2, f3, f2 /* 80354D24 00351C84 D0 21 00 10 */ stfs f1, 0x10(r1) /* 80354D28 00351C88 D0 41 00 0C */ stfs f2, 0xc(r1) /* 80354D2C 00351C8C D0 01 00 14 */ stfs f0, 0x14(r1) /* 80354D30 00351C90 4B FB E5 49 */ bl __ct__12CTransform4fFRC9CMatrix3fRC9CVector3f /* 80354D34 00351C94 7C 64 1B 78 */ mr r4, r3 /* 80354D38 00351C98 38 7D 00 20 */ addi r3, r29, 0x20 /* 80354D3C 00351C9C 4B FB DE 05 */ bl __as__12CTransform4fFRC12CTransform4f /* 80354D40 00351CA0 48 00 00 14 */ b lbl_80354D54 lbl_80354D44: /* 80354D44 00351CA4 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha /* 80354D48 00351CA8 38 7D 00 20 */ addi r3, r29, 0x20 /* 80354D4C 00351CAC 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l /* 80354D50 00351CB0 4B FB DD F1 */ bl __as__12CTransform4fFRC12CTransform4f lbl_80354D54: /* 80354D54 00351CB4 E3 E1 00 B8 */ psq_l f31, 184(r1), 0, qr0 /* 80354D58 00351CB8 CB E1 00 B0 */ lfd f31, 0xb0(r1) /* 80354D5C 00351CBC E3 C1 00 A8 */ psq_l f30, 168(r1), 0, qr0 /* 80354D60 00351CC0 CB C1 00 A0 */ lfd f30, 0xa0(r1) /* 80354D64 00351CC4 E3 A1 00 98 */ psq_l f29, 152(r1), 0, qr0 /* 80354D68 00351CC8 CB A1 00 90 */ lfd f29, 0x90(r1) /* 80354D6C 00351CCC BB 21 00 74 */ lmw r25, 0x74(r1) /* 80354D70 00351CD0 80 01 00 C4 */ lwz r0, 0xc4(r1) /* 80354D74 00351CD4 7C 08 03 A6 */ mtlr r0 /* 80354D78 00351CD8 38 21 00 C0 */ addi r1, r1, 0xc0 /* 80354D7C 00351CDC 4E 80 00 20 */ blr .global Transform2FromMatrixData Transform2FromMatrixData: /* 80354D80 00351CE0 FC 80 08 90 */ fmr f4, f1 /* 80354D84 00351CE4 E0 04 00 00 */ psq_l f0, 0(r4), 0, qr0 /* 80354D88 00351CE8 E0 A5 00 00 */ psq_l f5, 0(r5), 0, qr0 /* 80354D8C 00351CEC E0 24 80 08 */ psq_l f1, 8(r4), 1, qr0 /* 80354D90 00351CF0 10 E4 14 20 */ ps_merge00 f7, f4, f2 /* 80354D94 00351CF4 E0 64 80 14 */ psq_l f3, 20(r4), 1, qr0 /* 80354D98 00351CF8 10 21 2C 20 */ ps_merge00 f1, f1, f5 /* 80354D9C 00351CFC E0 44 00 0C */ psq_l f2, 12(r4), 0, qr0 /* 80354DA0 00351D00 10 63 2C 60 */ ps_merge01 f3, f3, f5 /* 80354DA4 00351D04 E0 84 00 18 */ psq_l f4, 24(r4), 0, qr0 /* 80354DA8 00351D08 10 00 01 D8 */ ps_muls0 f0, f0, f7 /* 80354DAC 00351D0C E0 C6 00 00 */ psq_l f6, 0(r6), 0, qr0 /* 80354DB0 00351D10 E1 07 00 00 */ psq_l f8, 0(r7), 0, qr0 /* 80354DB4 00351D14 10 21 01 D8 */ ps_muls0 f1, f1, f7 /* 80354DB8 00351D18 E1 26 80 08 */ psq_l f9, 8(r6), 1, qr0 /* 80354DBC 00351D1C 10 42 01 D8 */ ps_muls0 f2, f2, f7 /* 80354DC0 00351D20 10 06 01 DE */ ps_madds1 f0, f6, f7, f0 /* 80354DC4 00351D24 E1 66 80 14 */ psq_l f11, 20(r6), 1, qr0 /* 80354DC8 00351D28 11 29 44 20 */ ps_merge00 f9, f9, f8 /* 80354DCC 00351D2C E1 46 00 0C */ psq_l f10, 12(r6), 0, qr0 /* 80354DD0 00351D30 E0 C5 80 08 */ psq_l f6, 8(r5), 1, qr0 /* 80354DD4 00351D34 11 6B 44 60 */ ps_merge01 f11, f11, f8 /* 80354DD8 00351D38 E0 A4 80 20 */ psq_l f5, 32(r4), 1, qr0 /* 80354DDC 00351D3C 10 63 01 D8 */ ps_muls0 f3, f3, f7 /* 80354DE0 00351D40 10 29 09 DE */ ps_madds1 f1, f9, f7, f1 /* 80354DE4 00351D44 F0 03 00 00 */ psq_st f0, 0(r3), 0, qr0 /* 80354DE8 00351D48 10 A5 34 20 */ ps_merge00 f5, f5, f6 /* 80354DEC 00351D4C 10 4A 11 DE */ ps_madds1 f2, f10, f7, f2 /* 80354DF0 00351D50 E0 C6 00 18 */ psq_l f6, 24(r6), 0, qr0 /* 80354DF4 00351D54 10 84 01 D8 */ ps_muls0 f4, f4, f7 /* 80354DF8 00351D58 E1 26 80 20 */ psq_l f9, 32(r6), 1, qr0 /* 80354DFC 00351D5C 10 6B 19 DE */ ps_madds1 f3, f11, f7, f3 /* 80354E00 00351D60 E0 07 80 08 */ psq_l f0, 8(r7), 1, qr0 /* 80354E04 00351D64 10 A5 01 D8 */ ps_muls0 f5, f5, f7 /* 80354E08 00351D68 F0 23 00 08 */ psq_st f1, 8(r3), 0, qr0 /* 80354E0C 00351D6C 11 29 04 20 */ ps_merge00 f9, f9, f0 /* 80354E10 00351D70 10 86 21 DE */ ps_madds1 f4, f6, f7, f4 /* 80354E14 00351D74 F0 43 00 10 */ psq_st f2, 16(r3), 0, qr0 /* 80354E18 00351D78 10 A9 29 DE */ ps_madds1 f5, f9, f7, f5 /* 80354E1C 00351D7C F0 63 00 18 */ psq_st f3, 24(r3), 0, qr0 /* 80354E20 00351D80 F0 83 00 20 */ psq_st f4, 32(r3), 0, qr0 /* 80354E24 00351D84 F0 A3 00 28 */ psq_st f5, 40(r3), 0, qr0 /* 80354E28 00351D88 4E 80 00 20 */ blr .global TransformFromMatrixData TransformFromMatrixData: /* 80354E2C 00351D8C E0 05 00 00 */ psq_l f0, 0(r5), 0, qr0 /* 80354E30 00351D90 E0 24 80 08 */ psq_l f1, 8(r4), 1, qr0 /* 80354E34 00351D94 E0 64 80 14 */ psq_l f3, 20(r4), 1, qr0 /* 80354E38 00351D98 E0 85 80 08 */ psq_l f4, 8(r5), 1, qr0 /* 80354E3C 00351D9C 10 21 04 20 */ ps_merge00 f1, f1, f0 /* 80354E40 00351DA0 E0 A4 80 20 */ psq_l f5, 32(r4), 1, qr0 /* 80354E44 00351DA4 10 63 04 60 */ ps_merge01 f3, f3, f0 /* 80354E48 00351DA8 E0 04 00 00 */ psq_l f0, 0(r4), 0, qr0 /* 80354E4C 00351DAC E0 44 00 0C */ psq_l f2, 12(r4), 0, qr0 /* 80354E50 00351DB0 10 A5 24 20 */ ps_merge00 f5, f5, f4 /* 80354E54 00351DB4 E0 84 00 18 */ psq_l f4, 24(r4), 0, qr0 /* 80354E58 00351DB8 F0 03 00 00 */ psq_st f0, 0(r3), 0, qr0 /* 80354E5C 00351DBC F0 23 00 08 */ psq_st f1, 8(r3), 0, qr0 /* 80354E60 00351DC0 F0 43 00 10 */ psq_st f2, 16(r3), 0, qr0 /* 80354E64 00351DC4 F0 63 00 18 */ psq_st f3, 24(r3), 0, qr0 /* 80354E68 00351DC8 F0 83 00 20 */ psq_st f4, 32(r3), 0, qr0 /* 80354E6C 00351DCC F0 A3 00 28 */ psq_st f5, 40(r3), 0, qr0 /* 80354E70 00351DD0 4E 80 00 20 */ blr .global nullsub_22 nullsub_22: /* 80354E74 00351DD4 4E 80 00 20 */ blr .global __ct__12CVirtualBoneFR12CInputStream __ct__12CVirtualBoneFR12CInputStream: /* 80354E78 00351DD8 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80354E7C 00351DDC 7C 08 02 A6 */ mflr r0 /* 80354E80 00351DE0 90 01 00 34 */ stw r0, 0x34(r1) /* 80354E84 00351DE4 93 E1 00 2C */ stw r31, 0x2c(r1) /* 80354E88 00351DE8 7C 7F 1B 78 */ mr r31, r3 /* 80354E8C 00351DEC 38 61 00 08 */ addi r3, r1, 8 /* 80354E90 00351DF0 93 C1 00 28 */ stw r30, 0x28(r1) /* 80354E94 00351DF4 7C 9E 23 78 */ mr r30, r4 /* 80354E98 00351DF8 48 00 00 E5 */ bl StreamInSkinWeighting__FR12CInputStream /* 80354E9C 00351DFC 80 01 00 08 */ lwz r0, 8(r1) /* 80354EA0 00351E00 38 9F 00 04 */ addi r4, r31, 4 /* 80354EA4 00351E04 38 61 00 0C */ addi r3, r1, 0xc /* 80354EA8 00351E08 90 1F 00 00 */ stw r0, 0(r31) /* 80354EAC 00351E0C 80 1F 00 00 */ lwz r0, 0(r31) /* 80354EB0 00351E10 7C 09 03 A6 */ mtctr r0 /* 80354EB4 00351E14 2C 00 00 00 */ cmpwi r0, 0 /* 80354EB8 00351E18 40 81 00 28 */ ble lbl_80354EE0 lbl_80354EBC: /* 80354EBC 00351E1C 28 04 00 00 */ cmplwi r4, 0 /* 80354EC0 00351E20 41 82 00 14 */ beq lbl_80354ED4 /* 80354EC4 00351E24 88 03 00 00 */ lbz r0, 0(r3) /* 80354EC8 00351E28 98 04 00 00 */ stb r0, 0(r4) /* 80354ECC 00351E2C C0 03 00 04 */ lfs f0, 4(r3) /* 80354ED0 00351E30 D0 04 00 04 */ stfs f0, 4(r4) lbl_80354ED4: /* 80354ED4 00351E34 38 84 00 08 */ addi r4, r4, 8 /* 80354ED8 00351E38 38 63 00 08 */ addi r3, r3, 8 /* 80354EDC 00351E3C 42 00 FF E0 */ bdnz lbl_80354EBC lbl_80354EE0: /* 80354EE0 00351E40 80 A1 00 08 */ lwz r5, 8(r1) /* 80354EE4 00351E44 38 60 00 00 */ li r3, 0 /* 80354EE8 00351E48 2C 05 00 00 */ cmpwi r5, 0 /* 80354EEC 00351E4C 40 81 00 40 */ ble lbl_80354F2C /* 80354EF0 00351E50 2C 05 00 08 */ cmpwi r5, 8 /* 80354EF4 00351E54 38 85 FF F8 */ addi r4, r5, -8 /* 80354EF8 00351E58 40 81 00 20 */ ble lbl_80354F18 /* 80354EFC 00351E5C 38 04 00 07 */ addi r0, r4, 7 /* 80354F00 00351E60 54 00 E8 FE */ srwi r0, r0, 3 /* 80354F04 00351E64 7C 09 03 A6 */ mtctr r0 /* 80354F08 00351E68 2C 04 00 00 */ cmpwi r4, 0 /* 80354F0C 00351E6C 40 81 00 0C */ ble lbl_80354F18 lbl_80354F10: /* 80354F10 00351E70 38 63 00 08 */ addi r3, r3, 8 /* 80354F14 00351E74 42 00 FF FC */ bdnz lbl_80354F10 lbl_80354F18: /* 80354F18 00351E78 7C 03 28 50 */ subf r0, r3, r5 /* 80354F1C 00351E7C 7C 09 03 A6 */ mtctr r0 /* 80354F20 00351E80 7C 03 28 00 */ cmpw r3, r5 /* 80354F24 00351E84 40 80 00 08 */ bge lbl_80354F2C lbl_80354F28: /* 80354F28 00351E88 42 00 00 00 */ bdnz lbl_80354F28 lbl_80354F2C: /* 80354F2C 00351E8C 38 00 00 00 */ li r0, 0 /* 80354F30 00351E90 7F C3 F3 78 */ mr r3, r30 /* 80354F34 00351E94 90 01 00 08 */ stw r0, 8(r1) /* 80354F38 00351E98 4B FE 9D 4D */ bl ReadLong__12CInputStreamFv /* 80354F3C 00351E9C 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha /* 80354F40 00351EA0 90 7F 00 1C */ stw r3, 0x1c(r31) /* 80354F44 00351EA4 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l /* 80354F48 00351EA8 38 7F 00 20 */ addi r3, r31, 0x20 /* 80354F4C 00351EAC 4B FB DC 29 */ bl __ct__12CTransform4fFRC12CTransform4f /* 80354F50 00351EB0 3C 80 80 5A */ lis r4, lbl_805A65FC@ha /* 80354F54 00351EB4 38 7F 00 50 */ addi r3, r31, 0x50 /* 80354F58 00351EB8 38 84 65 FC */ addi r4, r4, lbl_805A65FC@l /* 80354F5C 00351EBC 4B FB B0 C9 */ bl __ct__9CMatrix3fFRC9CMatrix3f /* 80354F60 00351EC0 80 01 00 34 */ lwz r0, 0x34(r1) /* 80354F64 00351EC4 7F E3 FB 78 */ mr r3, r31 /* 80354F68 00351EC8 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 80354F6C 00351ECC 83 C1 00 28 */ lwz r30, 0x28(r1) /* 80354F70 00351ED0 7C 08 03 A6 */ mtlr r0 /* 80354F74 00351ED4 38 21 00 30 */ addi r1, r1, 0x30 /* 80354F78 00351ED8 4E 80 00 20 */ blr .global StreamInSkinWeighting__FR12CInputStream StreamInSkinWeighting__FR12CInputStream: /* 80354F7C 00351EDC 94 21 FF C0 */ stwu r1, -0x40(r1) /* 80354F80 00351EE0 7C 08 02 A6 */ mflr r0 /* 80354F84 00351EE4 90 01 00 44 */ stw r0, 0x44(r1) /* 80354F88 00351EE8 38 00 00 00 */ li r0, 0 /* 80354F8C 00351EEC BF 41 00 28 */ stmw r26, 0x28(r1) /* 80354F90 00351EF0 7C 9F 23 78 */ mr r31, r4 /* 80354F94 00351EF4 7C 7E 1B 78 */ mr r30, r3 /* 80354F98 00351EF8 90 01 00 08 */ stw r0, 8(r1) /* 80354F9C 00351EFC 7F E3 FB 78 */ mr r3, r31 /* 80354FA0 00351F00 4B FE 9C E5 */ bl ReadLong__12CInputStreamFv /* 80354FA4 00351F04 7C 7C 1B 78 */ mr r28, r3 /* 80354FA8 00351F08 2C 1C 00 03 */ cmpwi r28, 3 /* 80354FAC 00351F0C 40 81 00 78 */ ble lbl_80355024 /* 80354FB0 00351F10 3B 40 00 00 */ li r26, 0 /* 80354FB4 00351F14 3B 61 00 0C */ addi r27, r1, 0xc lbl_80354FB8: /* 80354FB8 00351F18 7F E3 FB 78 */ mr r3, r31 /* 80354FBC 00351F1C 4B FE 9C C9 */ bl ReadLong__12CInputStreamFv /* 80354FC0 00351F20 54 7D 06 3E */ clrlwi r29, r3, 0x18 /* 80354FC4 00351F24 7F E3 FB 78 */ mr r3, r31 /* 80354FC8 00351F28 4B FE 9C 61 */ bl ReadFloat__12CInputStreamFv /* 80354FCC 00351F2C 80 01 00 08 */ lwz r0, 8(r1) /* 80354FD0 00351F30 54 00 18 38 */ slwi r0, r0, 3 /* 80354FD4 00351F34 7C 7B 02 15 */ add. r3, r27, r0 /* 80354FD8 00351F38 41 82 00 0C */ beq lbl_80354FE4 /* 80354FDC 00351F3C 9B A3 00 00 */ stb r29, 0(r3) /* 80354FE0 00351F40 D0 23 00 04 */ stfs f1, 4(r3) lbl_80354FE4: /* 80354FE4 00351F44 80 61 00 08 */ lwz r3, 8(r1) /* 80354FE8 00351F48 3B 5A 00 01 */ addi r26, r26, 1 /* 80354FEC 00351F4C 2C 1A 00 03 */ cmpwi r26, 3 /* 80354FF0 00351F50 38 03 00 01 */ addi r0, r3, 1 /* 80354FF4 00351F54 90 01 00 08 */ stw r0, 8(r1) /* 80354FF8 00351F58 41 80 FF C0 */ blt lbl_80354FB8 /* 80354FFC 00351F5C 3B 40 00 03 */ li r26, 3 /* 80355000 00351F60 48 00 00 18 */ b lbl_80355018 lbl_80355004: /* 80355004 00351F64 7F E3 FB 78 */ mr r3, r31 /* 80355008 00351F68 4B FE 9C 7D */ bl ReadLong__12CInputStreamFv /* 8035500C 00351F6C 7F E3 FB 78 */ mr r3, r31 /* 80355010 00351F70 4B FE 9C 19 */ bl ReadFloat__12CInputStreamFv /* 80355014 00351F74 3B 5A 00 01 */ addi r26, r26, 1 lbl_80355018: /* 80355018 00351F78 7C 1A E0 00 */ cmpw r26, r28 /* 8035501C 00351F7C 41 80 FF E8 */ blt lbl_80355004 /* 80355020 00351F80 48 00 00 54 */ b lbl_80355074 lbl_80355024: /* 80355024 00351F84 3B 61 00 0C */ addi r27, r1, 0xc /* 80355028 00351F88 3B 40 00 00 */ li r26, 0 /* 8035502C 00351F8C 48 00 00 40 */ b lbl_8035506C lbl_80355030: /* 80355030 00351F90 7F E3 FB 78 */ mr r3, r31 /* 80355034 00351F94 4B FE 9C 51 */ bl ReadLong__12CInputStreamFv /* 80355038 00351F98 54 7D 06 3E */ clrlwi r29, r3, 0x18 /* 8035503C 00351F9C 7F E3 FB 78 */ mr r3, r31 /* 80355040 00351FA0 4B FE 9B E9 */ bl ReadFloat__12CInputStreamFv /* 80355044 00351FA4 80 01 00 08 */ lwz r0, 8(r1) /* 80355048 00351FA8 54 00 18 38 */ slwi r0, r0, 3 /* 8035504C 00351FAC 7C 7B 02 15 */ add. r3, r27, r0 /* 80355050 00351FB0 41 82 00 0C */ beq lbl_8035505C /* 80355054 00351FB4 9B A3 00 00 */ stb r29, 0(r3) /* 80355058 00351FB8 D0 23 00 04 */ stfs f1, 4(r3) lbl_8035505C: /* 8035505C 00351FBC 80 61 00 08 */ lwz r3, 8(r1) /* 80355060 00351FC0 3B 5A 00 01 */ addi r26, r26, 1 /* 80355064 00351FC4 38 03 00 01 */ addi r0, r3, 1 /* 80355068 00351FC8 90 01 00 08 */ stw r0, 8(r1) lbl_8035506C: /* 8035506C 00351FCC 7C 1A E0 00 */ cmpw r26, r28 /* 80355070 00351FD0 41 80 FF C0 */ blt lbl_80355030 lbl_80355074: /* 80355074 00351FD4 80 01 00 08 */ lwz r0, 8(r1) /* 80355078 00351FD8 38 81 00 0C */ addi r4, r1, 0xc /* 8035507C 00351FDC 38 7E 00 04 */ addi r3, r30, 4 /* 80355080 00351FE0 90 1E 00 00 */ stw r0, 0(r30) /* 80355084 00351FE4 80 1E 00 00 */ lwz r0, 0(r30) /* 80355088 00351FE8 7C 09 03 A6 */ mtctr r0 /* 8035508C 00351FEC 2C 00 00 00 */ cmpwi r0, 0 /* 80355090 00351FF0 40 81 00 28 */ ble lbl_803550B8 lbl_80355094: /* 80355094 00351FF4 28 03 00 00 */ cmplwi r3, 0 /* 80355098 00351FF8 41 82 00 14 */ beq lbl_803550AC /* 8035509C 00351FFC 88 04 00 00 */ lbz r0, 0(r4) /* 803550A0 00352000 C0 04 00 04 */ lfs f0, 4(r4) /* 803550A4 00352004 98 03 00 00 */ stb r0, 0(r3) /* 803550A8 00352008 D0 03 00 04 */ stfs f0, 4(r3) lbl_803550AC: /* 803550AC 0035200C 38 63 00 08 */ addi r3, r3, 8 /* 803550B0 00352010 38 84 00 08 */ addi r4, r4, 8 /* 803550B4 00352014 42 00 FF E0 */ bdnz lbl_80355094 lbl_803550B8: /* 803550B8 00352018 80 A1 00 08 */ lwz r5, 8(r1) /* 803550BC 0035201C 38 60 00 00 */ li r3, 0 /* 803550C0 00352020 2C 05 00 00 */ cmpwi r5, 0 /* 803550C4 00352024 40 81 00 40 */ ble lbl_80355104 /* 803550C8 00352028 2C 05 00 08 */ cmpwi r5, 8 /* 803550CC 0035202C 38 85 FF F8 */ addi r4, r5, -8 /* 803550D0 00352030 40 81 00 20 */ ble lbl_803550F0 /* 803550D4 00352034 38 04 00 07 */ addi r0, r4, 7 /* 803550D8 00352038 54 00 E8 FE */ srwi r0, r0, 3 /* 803550DC 0035203C 7C 09 03 A6 */ mtctr r0 /* 803550E0 00352040 2C 04 00 00 */ cmpwi r4, 0 /* 803550E4 00352044 40 81 00 0C */ ble lbl_803550F0 lbl_803550E8: /* 803550E8 00352048 38 63 00 08 */ addi r3, r3, 8 /* 803550EC 0035204C 42 00 FF FC */ bdnz lbl_803550E8 lbl_803550F0: /* 803550F0 00352050 7C 03 28 50 */ subf r0, r3, r5 /* 803550F4 00352054 7C 09 03 A6 */ mtctr r0 /* 803550F8 00352058 7C 03 28 00 */ cmpw r3, r5 /* 803550FC 0035205C 40 80 00 08 */ bge lbl_80355104 lbl_80355100: /* 80355100 00352060 42 00 00 00 */ bdnz lbl_80355100 lbl_80355104: /* 80355104 00352064 BB 41 00 28 */ lmw r26, 0x28(r1) /* 80355108 00352068 38 00 00 00 */ li r0, 0 /* 8035510C 0035206C 90 01 00 08 */ stw r0, 8(r1) /* 80355110 00352070 80 01 00 44 */ lwz r0, 0x44(r1) /* 80355114 00352074 7C 08 03 A6 */ mtlr r0 /* 80355118 00352078 38 21 00 40 */ addi r1, r1, 0x40 /* 8035511C 0035207C 4E 80 00 20 */ blr .section .sdata2, "a" .balign 8 .global lbl_805AE9C0 lbl_805AE9C0: # ROM: 0x3FB260 .4byte 0 .4byte 0