prime/asm/Kyoto/Animation/CHierarchyPoseBuilder.s

845 lines
41 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .sdata
.balign 8
.global lbl_805A87F0
lbl_805A87F0:
# ROM: 0x3F6190
.byte 0xFF
.global lbl_805A87F1
lbl_805A87F1:
# ROM: 0x3F6191
.byte 0xFF
.global lbl_805A87F2
lbl_805A87F2:
# ROM: 0x3F6192
.byte 0xFF
.global lbl_805A87F3
lbl_805A87F3:
# ROM: 0x3F6193
.byte 0xFF
.4byte 0
.section .text, "ax"
.global sub_802fc358
sub_802fc358:
/* 802FC358 002F92B8 80 63 00 08 */ lwz r3, 8(r3)
/* 802FC35C 002F92BC 80 03 00 0C */ lwz r0, 0xc(r3)
/* 802FC360 002F92C0 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 802FC364 002F92C4 4E 80 00 20 */ blr
.global BuildTransform__21CHierarchyPoseBuilderCFRC6CSegIdR12CTransform4f
BuildTransform__21CHierarchyPoseBuilderCFRC6CSegIdR12CTransform4f:
/* 802FC368 002F92C8 94 21 FE 10 */ stwu r1, -0x1f0(r1)
/* 802FC36C 002F92CC 7C 08 02 A6 */ mflr r0
/* 802FC370 002F92D0 90 01 01 F4 */ stw r0, 0x1f4(r1)
/* 802FC374 002F92D4 DB E1 01 E0 */ stfd f31, 0x1e0(r1)
/* 802FC378 002F92D8 F3 E1 01 E8 */ psq_st f31, 488(r1), 0, qr0
/* 802FC37C 002F92DC DB C1 01 D0 */ stfd f30, 0x1d0(r1)
/* 802FC380 002F92E0 F3 C1 01 D8 */ psq_st f30, 472(r1), 0, qr0
/* 802FC384 002F92E4 DB A1 01 C0 */ stfd f29, 0x1c0(r1)
/* 802FC388 002F92E8 F3 A1 01 C8 */ psq_st f29, 456(r1), 0, qr0
/* 802FC38C 002F92EC DB 81 01 B0 */ stfd f28, 0x1b0(r1)
/* 802FC390 002F92F0 F3 81 01 B8 */ psq_st f28, 440(r1), 0, qr0
/* 802FC394 002F92F4 DB 61 01 A0 */ stfd f27, 0x1a0(r1)
/* 802FC398 002F92F8 F3 61 01 A8 */ psq_st f27, 424(r1), 0, qr0
/* 802FC39C 002F92FC BF 21 01 84 */ stmw r25, 0x184(r1)
/* 802FC3A0 002F9300 7C 7D 1B 78 */ mr r29, r3
/* 802FC3A4 002F9304 38 00 00 00 */ li r0, 0
/* 802FC3A8 002F9308 88 C3 00 2C */ lbz r6, 0x2c(r3)
/* 802FC3AC 002F930C 7C BE 2B 78 */ mr r30, r5
/* 802FC3B0 002F9310 90 01 01 0C */ stw r0, 0x10c(r1)
/* 802FC3B4 002F9314 28 06 00 00 */ cmplwi r6, 0
/* 802FC3B8 002F9318 88 84 00 00 */ lbz r4, 0(r4)
/* 802FC3BC 002F931C 41 82 00 08 */ beq lbl_802FC3C4
/* 802FC3C0 002F9320 38 7D 00 0C */ addi r3, r29, 0xc
lbl_802FC3C4:
/* 802FC3C4 002F9324 28 06 00 00 */ cmplwi r6, 0
/* 802FC3C8 002F9328 80 A3 00 08 */ lwz r5, 8(r3)
/* 802FC3CC 002F932C 41 82 00 0C */ beq lbl_802FC3D8
/* 802FC3D0 002F9330 C3 DD 00 18 */ lfs f30, 0x18(r29)
/* 802FC3D4 002F9334 48 00 00 08 */ b lbl_802FC3DC
lbl_802FC3D8:
/* 802FC3D8 002F9338 C3 C2 C7 10 */ lfs f30, lbl_805AE430@sda21(r2)
lbl_802FC3DC:
/* 802FC3DC 002F933C 3B E1 01 10 */ addi r31, r1, 0x110
/* 802FC3E0 002F9340 48 00 00 3C */ b lbl_802FC41C
lbl_802FC3E4:
/* 802FC3E4 002F9344 80 01 01 0C */ lwz r0, 0x10c(r1)
/* 802FC3E8 002F9348 7C 7F 02 15 */ add. r3, r31, r0
/* 802FC3EC 002F934C 41 82 00 08 */ beq lbl_802FC3F4
/* 802FC3F0 002F9350 98 83 00 00 */ stb r4, 0(r3)
lbl_802FC3F4:
/* 802FC3F4 002F9354 80 61 01 0C */ lwz r3, 0x10c(r1)
/* 802FC3F8 002F9358 54 80 0D FC */ rlwinm r0, r4, 1, 0x17, 0x1e
/* 802FC3FC 002F935C 38 63 00 01 */ addi r3, r3, 1
/* 802FC400 002F9360 90 61 01 0C */ stw r3, 0x10c(r1)
/* 802FC404 002F9364 80 85 00 00 */ lwz r4, 0(r5)
/* 802FC408 002F9368 7C 64 02 14 */ add r3, r4, r0
/* 802FC40C 002F936C 80 84 00 D0 */ lwz r4, 0xd0(r4)
/* 802FC410 002F9370 88 03 00 09 */ lbz r0, 9(r3)
/* 802FC414 002F9374 54 00 2C F4 */ rlwinm r0, r0, 5, 0x13, 0x1a
/* 802FC418 002F9378 7C 84 00 AE */ lbzx r4, r4, r0
lbl_802FC41C:
/* 802FC41C 002F937C 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 802FC420 002F9380 28 00 00 02 */ cmplwi r0, 2
/* 802FC424 002F9384 40 82 FF C0 */ bne lbl_802FC3E4
/* 802FC428 002F9388 3C 60 80 5A */ lis r3, sNoRotation__11CQuaternion@ha
/* 802FC42C 002F938C C3 A2 C7 14 */ lfs f29, lbl_805AE434@sda21(r2)
/* 802FC430 002F9390 38 A3 66 60 */ addi r5, r3, sNoRotation__11CQuaternion@l
/* 802FC434 002F9394 C0 65 00 00 */ lfs f3, 0(r5)
/* 802FC438 002F9398 3C 60 80 5A */ lis r3, lbl_805A65FC@ha
/* 802FC43C 002F939C C0 45 00 04 */ lfs f2, 4(r5)
/* 802FC440 002F93A0 FF 80 E8 90 */ fmr f28, f29
/* 802FC444 002F93A4 C0 25 00 08 */ lfs f1, 8(r5)
/* 802FC448 002F93A8 FF 60 E8 90 */ fmr f27, f29
/* 802FC44C 002F93AC C0 05 00 0C */ lfs f0, 0xc(r5)
/* 802FC450 002F93B0 38 83 65 FC */ addi r4, r3, lbl_805A65FC@l
/* 802FC454 002F93B4 D0 61 00 24 */ stfs f3, 0x24(r1)
/* 802FC458 002F93B8 38 61 00 E8 */ addi r3, r1, 0xe8
/* 802FC45C 002F93BC D0 41 00 28 */ stfs f2, 0x28(r1)
/* 802FC460 002F93C0 D0 21 00 2C */ stfs f1, 0x2c(r1)
/* 802FC464 002F93C4 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 802FC468 002F93C8 48 01 3B BD */ bl __ct__9CMatrix3fFRC9CMatrix3f
/* 802FC46C 002F93CC 80 01 01 0C */ lwz r0, 0x10c(r1)
/* 802FC470 002F93D0 3B 5D 00 40 */ addi r26, r29, 0x40
/* 802FC474 002F93D4 C3 E2 C7 10 */ lfs f31, lbl_805AE430@sda21(r2)
/* 802FC478 002F93D8 7F 3F 02 14 */ add r25, r31, r0
/* 802FC47C 002F93DC 48 00 00 FC */ b lbl_802FC578
lbl_802FC480:
/* 802FC480 002F93E0 88 19 FF FF */ lbz r0, -1(r25)
/* 802FC484 002F93E4 38 61 00 14 */ addi r3, r1, 0x14
/* 802FC488 002F93E8 80 DD 01 08 */ lwz r6, 0x108(r29)
/* 802FC48C 002F93EC 38 81 00 24 */ addi r4, r1, 0x24
/* 802FC490 002F93F0 54 05 08 3C */ slwi r5, r0, 1
/* 802FC494 002F93F4 38 05 00 01 */ addi r0, r5, 1
/* 802FC498 002F93F8 7C 1A 00 AE */ lbzx r0, r26, r0
/* 802FC49C 002F93FC 54 00 2C F4 */ rlwinm r0, r0, 5, 0x13, 0x1a
/* 802FC4A0 002F9400 7F 86 02 14 */ add r28, r6, r0
/* 802FC4A4 002F9404 3B 7C 00 04 */ addi r27, r28, 4
/* 802FC4A8 002F9408 7F 65 DB 78 */ mr r5, r27
/* 802FC4AC 002F940C 48 01 4C F5 */ bl __ml__11CQuaternionCFRC11CQuaternion
/* 802FC4B0 002F9410 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 802FC4B4 002F9414 38 61 00 08 */ addi r3, r1, 8
/* 802FC4B8 002F9418 80 E1 00 18 */ lwz r7, 0x18(r1)
/* 802FC4BC 002F941C 38 81 00 E8 */ addi r4, r1, 0xe8
/* 802FC4C0 002F9420 80 C1 00 1C */ lwz r6, 0x1c(r1)
/* 802FC4C4 002F9424 38 BC 00 14 */ addi r5, r28, 0x14
/* 802FC4C8 002F9428 80 01 00 20 */ lwz r0, 0x20(r1)
/* 802FC4CC 002F942C D0 01 00 24 */ stfs f0, 0x24(r1)
/* 802FC4D0 002F9430 90 E1 00 28 */ stw r7, 0x28(r1)
/* 802FC4D4 002F9434 90 C1 00 2C */ stw r6, 0x2c(r1)
/* 802FC4D8 002F9438 90 01 00 30 */ stw r0, 0x30(r1)
/* 802FC4DC 002F943C 48 01 3D B9 */ bl __ml__9CMatrix3fCFRC9CVector3f
/* 802FC4E0 002F9440 C0 41 00 08 */ lfs f2, 8(r1)
/* 802FC4E4 002F9444 FC 1F F0 00 */ fcmpu cr0, f31, f30
/* 802FC4E8 002F9448 C0 21 00 0C */ lfs f1, 0xc(r1)
/* 802FC4EC 002F944C C0 01 00 10 */ lfs f0, 0x10(r1)
/* 802FC4F0 002F9450 EF BD 10 2A */ fadds f29, f29, f2
/* 802FC4F4 002F9454 EF 9C 08 2A */ fadds f28, f28, f1
/* 802FC4F8 002F9458 EF 7B 00 2A */ fadds f27, f27, f0
/* 802FC4FC 002F945C 40 82 00 18 */ bne lbl_802FC514
/* 802FC500 002F9460 38 61 00 C4 */ addi r3, r1, 0xc4
/* 802FC504 002F9464 38 81 00 24 */ addi r4, r1, 0x24
/* 802FC508 002F9468 48 01 5B 85 */ bl BuildTransform__11CQuaternionCFv
/* 802FC50C 002F946C 38 81 00 C4 */ addi r4, r1, 0xc4
/* 802FC510 002F9470 48 00 00 5C */ b lbl_802FC56C
lbl_802FC514:
/* 802FC514 002F9474 C0 02 C7 14 */ lfs f0, lbl_805AE434@sda21(r2)
/* 802FC518 002F9478 7F 64 DB 78 */ mr r4, r27
/* 802FC51C 002F947C D3 C1 00 A0 */ stfs f30, 0xa0(r1)
/* 802FC520 002F9480 38 61 00 7C */ addi r3, r1, 0x7c
/* 802FC524 002F9484 D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 802FC528 002F9488 D0 01 00 A8 */ stfs f0, 0xa8(r1)
/* 802FC52C 002F948C D0 01 00 AC */ stfs f0, 0xac(r1)
/* 802FC530 002F9490 D3 C1 00 B0 */ stfs f30, 0xb0(r1)
/* 802FC534 002F9494 D0 01 00 B4 */ stfs f0, 0xb4(r1)
/* 802FC538 002F9498 D0 01 00 B8 */ stfs f0, 0xb8(r1)
/* 802FC53C 002F949C D0 01 00 BC */ stfs f0, 0xbc(r1)
/* 802FC540 002F94A0 D3 C1 00 C0 */ stfs f30, 0xc0(r1)
/* 802FC544 002F94A4 48 01 5B 49 */ bl BuildTransform__11CQuaternionCFv
/* 802FC548 002F94A8 38 61 00 58 */ addi r3, r1, 0x58
/* 802FC54C 002F94AC 38 81 00 7C */ addi r4, r1, 0x7c
/* 802FC550 002F94B0 38 A1 00 A0 */ addi r5, r1, 0xa0
/* 802FC554 002F94B4 48 01 3B DD */ bl __ml__9CMatrix3fCFRC9CMatrix3f
/* 802FC558 002F94B8 38 61 00 34 */ addi r3, r1, 0x34
/* 802FC55C 002F94BC 38 81 00 E8 */ addi r4, r1, 0xe8
/* 802FC560 002F94C0 38 A1 00 58 */ addi r5, r1, 0x58
/* 802FC564 002F94C4 48 01 3B CD */ bl __ml__9CMatrix3fCFRC9CMatrix3f
/* 802FC568 002F94C8 38 81 00 34 */ addi r4, r1, 0x34
lbl_802FC56C:
/* 802FC56C 002F94CC 38 61 00 E8 */ addi r3, r1, 0xe8
/* 802FC570 002F94D0 48 01 3A 89 */ bl __as__9CMatrix3fFRC9CMatrix3f
/* 802FC574 002F94D4 3B 39 FF FF */ addi r25, r25, -1
lbl_802FC578:
/* 802FC578 002F94D8 7C 19 F8 40 */ cmplw r25, r31
/* 802FC57C 002F94DC 40 82 FF 04 */ bne lbl_802FC480
/* 802FC580 002F94E0 7F C3 F3 78 */ mr r3, r30
/* 802FC584 002F94E4 38 81 00 E8 */ addi r4, r1, 0xe8
/* 802FC588 002F94E8 48 01 66 6D */ bl SetRotation__12CTransform4fFRC9CMatrix3f
/* 802FC58C 002F94EC D3 BE 00 0C */ stfs f29, 0xc(r30)
/* 802FC590 002F94F0 38 60 00 00 */ li r3, 0
/* 802FC594 002F94F4 D3 9E 00 1C */ stfs f28, 0x1c(r30)
/* 802FC598 002F94F8 D3 7E 00 2C */ stfs f27, 0x2c(r30)
/* 802FC59C 002F94FC 80 A1 01 0C */ lwz r5, 0x10c(r1)
/* 802FC5A0 002F9500 2C 05 00 00 */ cmpwi r5, 0
/* 802FC5A4 002F9504 40 81 00 40 */ ble lbl_802FC5E4
/* 802FC5A8 002F9508 2C 05 00 08 */ cmpwi r5, 8
/* 802FC5AC 002F950C 38 85 FF F8 */ addi r4, r5, -8
/* 802FC5B0 002F9510 40 81 00 20 */ ble lbl_802FC5D0
/* 802FC5B4 002F9514 38 04 00 07 */ addi r0, r4, 7
/* 802FC5B8 002F9518 54 00 E8 FE */ srwi r0, r0, 3
/* 802FC5BC 002F951C 7C 09 03 A6 */ mtctr r0
/* 802FC5C0 002F9520 2C 04 00 00 */ cmpwi r4, 0
/* 802FC5C4 002F9524 40 81 00 0C */ ble lbl_802FC5D0
lbl_802FC5C8:
/* 802FC5C8 002F9528 38 63 00 08 */ addi r3, r3, 8
/* 802FC5CC 002F952C 42 00 FF FC */ bdnz lbl_802FC5C8
lbl_802FC5D0:
/* 802FC5D0 002F9530 7C 03 28 50 */ subf r0, r3, r5
/* 802FC5D4 002F9534 7C 09 03 A6 */ mtctr r0
/* 802FC5D8 002F9538 7C 03 28 00 */ cmpw r3, r5
/* 802FC5DC 002F953C 40 80 00 08 */ bge lbl_802FC5E4
lbl_802FC5E0:
/* 802FC5E0 002F9540 42 00 00 00 */ bdnz lbl_802FC5E0
lbl_802FC5E4:
/* 802FC5E4 002F9544 38 00 00 00 */ li r0, 0
/* 802FC5E8 002F9548 90 01 01 0C */ stw r0, 0x10c(r1)
/* 802FC5EC 002F954C E3 E1 01 E8 */ psq_l f31, 488(r1), 0, qr0
/* 802FC5F0 002F9550 CB E1 01 E0 */ lfd f31, 0x1e0(r1)
/* 802FC5F4 002F9554 E3 C1 01 D8 */ psq_l f30, 472(r1), 0, qr0
/* 802FC5F8 002F9558 CB C1 01 D0 */ lfd f30, 0x1d0(r1)
/* 802FC5FC 002F955C E3 A1 01 C8 */ psq_l f29, 456(r1), 0, qr0
/* 802FC600 002F9560 CB A1 01 C0 */ lfd f29, 0x1c0(r1)
/* 802FC604 002F9564 E3 81 01 B8 */ psq_l f28, 440(r1), 0, qr0
/* 802FC608 002F9568 CB 81 01 B0 */ lfd f28, 0x1b0(r1)
/* 802FC60C 002F956C E3 61 01 A8 */ psq_l f27, 424(r1), 0, qr0
/* 802FC610 002F9570 CB 61 01 A0 */ lfd f27, 0x1a0(r1)
/* 802FC614 002F9574 BB 21 01 84 */ lmw r25, 0x184(r1)
/* 802FC618 002F9578 80 01 01 F4 */ lwz r0, 0x1f4(r1)
/* 802FC61C 002F957C 7C 08 03 A6 */ mtlr r0
/* 802FC620 002F9580 38 21 01 F0 */ addi r1, r1, 0x1f0
/* 802FC624 002F9584 4E 80 00 20 */ blr
.global RecursivelyBuildNoScale__21CHierarchyPoseBuilderCFRC6CSegIdRCQ221CHierarchyPoseBuilder9CTreeNodeR17CPoseAsTransformsRC11CQuaternionRC9CMatrix3fRC9CVector3f
RecursivelyBuildNoScale__21CHierarchyPoseBuilderCFRC6CSegIdRCQ221CHierarchyPoseBuilder9CTreeNodeR17CPoseAsTransformsRC11CQuaternionRC9CMatrix3fRC9CVector3f:
/* 802FC628 002F9588 94 21 FF 50 */ stwu r1, -0xb0(r1)
/* 802FC62C 002F958C 7C 08 02 A6 */ mflr r0
/* 802FC630 002F9590 90 01 00 B4 */ stw r0, 0xb4(r1)
/* 802FC634 002F9594 BF 41 00 98 */ stmw r26, 0x98(r1)
/* 802FC638 002F9598 7C BC 2B 78 */ mr r28, r5
/* 802FC63C 002F959C 7C 7A 1B 78 */ mr r26, r3
/* 802FC640 002F95A0 7C 9B 23 78 */ mr r27, r4
/* 802FC644 002F95A4 7C DD 33 78 */ mr r29, r6
/* 802FC648 002F95A8 7D 1F 43 78 */ mr r31, r8
/* 802FC64C 002F95AC 7D 3E 4B 78 */ mr r30, r9
/* 802FC650 002F95B0 7C E4 3B 78 */ mr r4, r7
/* 802FC654 002F95B4 38 61 00 18 */ addi r3, r1, 0x18
/* 802FC658 002F95B8 38 BC 00 04 */ addi r5, r28, 4
/* 802FC65C 002F95BC 48 01 4B 45 */ bl __ml__11CQuaternionCFRC11CQuaternion
/* 802FC660 002F95C0 C0 61 00 18 */ lfs f3, 0x18(r1)
/* 802FC664 002F95C4 38 61 00 44 */ addi r3, r1, 0x44
/* 802FC668 002F95C8 C0 41 00 1C */ lfs f2, 0x1c(r1)
/* 802FC66C 002F95CC 38 81 00 34 */ addi r4, r1, 0x34
/* 802FC670 002F95D0 C0 21 00 20 */ lfs f1, 0x20(r1)
/* 802FC674 002F95D4 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 802FC678 002F95D8 D0 61 00 34 */ stfs f3, 0x34(r1)
/* 802FC67C 002F95DC D0 41 00 38 */ stfs f2, 0x38(r1)
/* 802FC680 002F95E0 D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 802FC684 002F95E4 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 802FC688 002F95E8 48 01 5A 05 */ bl BuildTransform__11CQuaternionCFv
/* 802FC68C 002F95EC 38 61 00 68 */ addi r3, r1, 0x68
/* 802FC690 002F95F0 38 81 00 44 */ addi r4, r1, 0x44
/* 802FC694 002F95F4 48 01 39 91 */ bl __ct__9CMatrix3fFRC9CMatrix3f
/* 802FC698 002F95F8 7F E4 FB 78 */ mr r4, r31
/* 802FC69C 002F95FC 38 61 00 0C */ addi r3, r1, 0xc
/* 802FC6A0 002F9600 38 BC 00 14 */ addi r5, r28, 0x14
/* 802FC6A4 002F9604 48 01 3B F1 */ bl __ml__9CMatrix3fCFRC9CVector3f
/* 802FC6A8 002F9608 C0 3E 00 04 */ lfs f1, 4(r30)
/* 802FC6AC 002F960C 7F A3 EB 78 */ mr r3, r29
/* 802FC6B0 002F9610 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 802FC6B4 002F9614 7F 64 DB 78 */ mr r4, r27
/* 802FC6B8 002F9618 C0 7E 00 08 */ lfs f3, 8(r30)
/* 802FC6BC 002F961C 38 A1 00 68 */ addi r5, r1, 0x68
/* 802FC6C0 002F9620 C0 41 00 14 */ lfs f2, 0x14(r1)
/* 802FC6C4 002F9624 EC 81 00 2A */ fadds f4, f1, f0
/* 802FC6C8 002F9628 C0 3E 00 00 */ lfs f1, 0(r30)
/* 802FC6CC 002F962C 38 C1 00 28 */ addi r6, r1, 0x28
/* 802FC6D0 002F9630 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 802FC6D4 002F9634 EC 43 10 2A */ fadds f2, f3, f2
/* 802FC6D8 002F9638 D0 81 00 2C */ stfs f4, 0x2c(r1)
/* 802FC6DC 002F963C EC 01 00 2A */ fadds f0, f1, f0
/* 802FC6E0 002F9640 D0 41 00 30 */ stfs f2, 0x30(r1)
/* 802FC6E4 002F9644 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 802FC6E8 002F9648 48 06 C8 D5 */ bl Insert__17CPoseAsTransformsFRC6CSegIdRC9CMatrix3fRC9CVector3f
/* 802FC6EC 002F964C 88 9C 00 00 */ lbz r4, 0(r28)
/* 802FC6F0 002F9650 3B DA 00 40 */ addi r30, r26, 0x40
/* 802FC6F4 002F9654 48 00 00 44 */ b lbl_802FC738
lbl_802FC6F8:
/* 802FC6F8 002F9658 54 83 0D FC */ rlwinm r3, r4, 1, 0x17, 0x1e
/* 802FC6FC 002F965C 98 81 00 08 */ stb r4, 8(r1)
/* 802FC700 002F9660 38 03 00 01 */ addi r0, r3, 1
/* 802FC704 002F9664 80 BA 01 08 */ lwz r5, 0x108(r26)
/* 802FC708 002F9668 7C 1E 00 AE */ lbzx r0, r30, r0
/* 802FC70C 002F966C 7F 43 D3 78 */ mr r3, r26
/* 802FC710 002F9670 7F A6 EB 78 */ mr r6, r29
/* 802FC714 002F9674 38 81 00 08 */ addi r4, r1, 8
/* 802FC718 002F9678 54 00 2C F4 */ rlwinm r0, r0, 5, 0x13, 0x1a
/* 802FC71C 002F967C 38 E1 00 34 */ addi r7, r1, 0x34
/* 802FC720 002F9680 7F E5 02 14 */ add r31, r5, r0
/* 802FC724 002F9684 39 01 00 68 */ addi r8, r1, 0x68
/* 802FC728 002F9688 7F E5 FB 78 */ mr r5, r31
/* 802FC72C 002F968C 39 21 00 28 */ addi r9, r1, 0x28
/* 802FC730 002F9690 48 00 00 25 */ bl RecursivelyBuild__21CHierarchyPoseBuilderCFRC6CSegIdRCQ221CHierarchyPoseBuilder9CTreeNodeR17CPoseAsTransformsRC11CQuaternionRC9CMatrix3fRC9CVector3f
/* 802FC734 002F9694 88 9F 00 01 */ lbz r4, 1(r31)
lbl_802FC738:
/* 802FC738 002F9698 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 802FC73C 002F969C 40 82 FF BC */ bne lbl_802FC6F8
/* 802FC740 002F96A0 BB 41 00 98 */ lmw r26, 0x98(r1)
/* 802FC744 002F96A4 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 802FC748 002F96A8 7C 08 03 A6 */ mtlr r0
/* 802FC74C 002F96AC 38 21 00 B0 */ addi r1, r1, 0xb0
/* 802FC750 002F96B0 4E 80 00 20 */ blr
.global RecursivelyBuild__21CHierarchyPoseBuilderCFRC6CSegIdRCQ221CHierarchyPoseBuilder9CTreeNodeR17CPoseAsTransformsRC11CQuaternionRC9CMatrix3fRC9CVector3f
RecursivelyBuild__21CHierarchyPoseBuilderCFRC6CSegIdRCQ221CHierarchyPoseBuilder9CTreeNodeR17CPoseAsTransformsRC11CQuaternionRC9CMatrix3fRC9CVector3f:
/* 802FC754 002F96B4 94 21 FE A0 */ stwu r1, -0x160(r1)
/* 802FC758 002F96B8 7C 08 02 A6 */ mflr r0
/* 802FC75C 002F96BC 90 01 01 64 */ stw r0, 0x164(r1)
/* 802FC760 002F96C0 BF 21 01 44 */ stmw r25, 0x144(r1)
/* 802FC764 002F96C4 7C BA 2B 78 */ mr r26, r5
/* 802FC768 002F96C8 3B DA 00 04 */ addi r30, r26, 4
/* 802FC76C 002F96CC 7C 7F 1B 78 */ mr r31, r3
/* 802FC770 002F96D0 7C 99 23 78 */ mr r25, r4
/* 802FC774 002F96D4 7C DB 33 78 */ mr r27, r6
/* 802FC778 002F96D8 7D 1C 43 78 */ mr r28, r8
/* 802FC77C 002F96DC 7D 3D 4B 78 */ mr r29, r9
/* 802FC780 002F96E0 7C E4 3B 78 */ mr r4, r7
/* 802FC784 002F96E4 7F C5 F3 78 */ mr r5, r30
/* 802FC788 002F96E8 38 61 00 18 */ addi r3, r1, 0x18
/* 802FC78C 002F96EC 48 01 4A 15 */ bl __ml__11CQuaternionCFRC11CQuaternion
/* 802FC790 002F96F0 88 1F 00 2C */ lbz r0, 0x2c(r31)
/* 802FC794 002F96F4 C0 61 00 18 */ lfs f3, 0x18(r1)
/* 802FC798 002F96F8 C0 41 00 1C */ lfs f2, 0x1c(r1)
/* 802FC79C 002F96FC 28 00 00 00 */ cmplwi r0, 0
/* 802FC7A0 002F9700 C0 21 00 20 */ lfs f1, 0x20(r1)
/* 802FC7A4 002F9704 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 802FC7A8 002F9708 D0 61 00 34 */ stfs f3, 0x34(r1)
/* 802FC7AC 002F970C D0 41 00 38 */ stfs f2, 0x38(r1)
/* 802FC7B0 002F9710 D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 802FC7B4 002F9714 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 802FC7B8 002F9718 41 82 00 0C */ beq lbl_802FC7C4
/* 802FC7BC 002F971C C0 3F 00 18 */ lfs f1, 0x18(r31)
/* 802FC7C0 002F9720 48 00 00 08 */ b lbl_802FC7C8
lbl_802FC7C4:
/* 802FC7C4 002F9724 C0 22 C7 10 */ lfs f1, lbl_805AE430@sda21(r2)
lbl_802FC7C8:
/* 802FC7C8 002F9728 C0 02 C7 10 */ lfs f0, lbl_805AE430@sda21(r2)
/* 802FC7CC 002F972C FC 00 08 00 */ fcmpu cr0, f0, f1
/* 802FC7D0 002F9730 40 82 00 18 */ bne lbl_802FC7E8
/* 802FC7D4 002F9734 38 61 00 F8 */ addi r3, r1, 0xf8
/* 802FC7D8 002F9738 38 81 00 34 */ addi r4, r1, 0x34
/* 802FC7DC 002F973C 48 01 58 B1 */ bl BuildTransform__11CQuaternionCFv
/* 802FC7E0 002F9740 38 81 00 F8 */ addi r4, r1, 0xf8
/* 802FC7E4 002F9744 48 00 00 5C */ b lbl_802FC840
lbl_802FC7E8:
/* 802FC7E8 002F9748 C0 02 C7 14 */ lfs f0, lbl_805AE434@sda21(r2)
/* 802FC7EC 002F974C 7F C4 F3 78 */ mr r4, r30
/* 802FC7F0 002F9750 D0 21 00 D4 */ stfs f1, 0xd4(r1)
/* 802FC7F4 002F9754 38 61 00 B0 */ addi r3, r1, 0xb0
/* 802FC7F8 002F9758 D0 01 00 D8 */ stfs f0, 0xd8(r1)
/* 802FC7FC 002F975C D0 01 00 DC */ stfs f0, 0xdc(r1)
/* 802FC800 002F9760 D0 01 00 E0 */ stfs f0, 0xe0(r1)
/* 802FC804 002F9764 D0 21 00 E4 */ stfs f1, 0xe4(r1)
/* 802FC808 002F9768 D0 01 00 E8 */ stfs f0, 0xe8(r1)
/* 802FC80C 002F976C D0 01 00 EC */ stfs f0, 0xec(r1)
/* 802FC810 002F9770 D0 01 00 F0 */ stfs f0, 0xf0(r1)
/* 802FC814 002F9774 D0 21 00 F4 */ stfs f1, 0xf4(r1)
/* 802FC818 002F9778 48 01 58 75 */ bl BuildTransform__11CQuaternionCFv
/* 802FC81C 002F977C 38 61 00 8C */ addi r3, r1, 0x8c
/* 802FC820 002F9780 38 81 00 B0 */ addi r4, r1, 0xb0
/* 802FC824 002F9784 38 A1 00 D4 */ addi r5, r1, 0xd4
/* 802FC828 002F9788 48 01 39 09 */ bl __ml__9CMatrix3fCFRC9CMatrix3f
/* 802FC82C 002F978C 7F 84 E3 78 */ mr r4, r28
/* 802FC830 002F9790 38 61 00 68 */ addi r3, r1, 0x68
/* 802FC834 002F9794 38 A1 00 8C */ addi r5, r1, 0x8c
/* 802FC838 002F9798 48 01 38 F9 */ bl __ml__9CMatrix3fCFRC9CMatrix3f
/* 802FC83C 002F979C 38 81 00 68 */ addi r4, r1, 0x68
lbl_802FC840:
/* 802FC840 002F97A0 38 61 01 1C */ addi r3, r1, 0x11c
/* 802FC844 002F97A4 48 01 37 E1 */ bl __ct__9CMatrix3fFRC9CMatrix3f
/* 802FC848 002F97A8 7F 84 E3 78 */ mr r4, r28
/* 802FC84C 002F97AC 38 61 00 0C */ addi r3, r1, 0xc
/* 802FC850 002F97B0 38 BA 00 14 */ addi r5, r26, 0x14
/* 802FC854 002F97B4 48 01 3A 41 */ bl __ml__9CMatrix3fCFRC9CVector3f
/* 802FC858 002F97B8 C0 3D 00 04 */ lfs f1, 4(r29)
/* 802FC85C 002F97BC 7F 63 DB 78 */ mr r3, r27
/* 802FC860 002F97C0 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 802FC864 002F97C4 7F 24 CB 78 */ mr r4, r25
/* 802FC868 002F97C8 C0 7D 00 08 */ lfs f3, 8(r29)
/* 802FC86C 002F97CC 38 A1 01 1C */ addi r5, r1, 0x11c
/* 802FC870 002F97D0 C0 41 00 14 */ lfs f2, 0x14(r1)
/* 802FC874 002F97D4 EC 81 00 2A */ fadds f4, f1, f0
/* 802FC878 002F97D8 C0 3D 00 00 */ lfs f1, 0(r29)
/* 802FC87C 002F97DC 38 C1 00 28 */ addi r6, r1, 0x28
/* 802FC880 002F97E0 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 802FC884 002F97E4 EC 43 10 2A */ fadds f2, f3, f2
/* 802FC888 002F97E8 D0 81 00 2C */ stfs f4, 0x2c(r1)
/* 802FC88C 002F97EC EC 01 00 2A */ fadds f0, f1, f0
/* 802FC890 002F97F0 D0 41 00 30 */ stfs f2, 0x30(r1)
/* 802FC894 002F97F4 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 802FC898 002F97F8 48 06 C7 25 */ bl Insert__17CPoseAsTransformsFRC6CSegIdRC9CMatrix3fRC9CVector3f
/* 802FC89C 002F97FC 88 9A 00 00 */ lbz r4, 0(r26)
/* 802FC8A0 002F9800 3B BF 00 40 */ addi r29, r31, 0x40
/* 802FC8A4 002F9804 48 00 00 50 */ b lbl_802FC8F4
lbl_802FC8A8:
/* 802FC8A8 002F9808 54 83 0D FC */ rlwinm r3, r4, 1, 0x17, 0x1e
/* 802FC8AC 002F980C 98 81 00 08 */ stb r4, 8(r1)
/* 802FC8B0 002F9810 38 03 00 01 */ addi r0, r3, 1
/* 802FC8B4 002F9814 80 BF 01 08 */ lwz r5, 0x108(r31)
/* 802FC8B8 002F9818 7C 1D 00 AE */ lbzx r0, r29, r0
/* 802FC8BC 002F981C 38 61 00 44 */ addi r3, r1, 0x44
/* 802FC8C0 002F9820 38 81 00 34 */ addi r4, r1, 0x34
/* 802FC8C4 002F9824 54 00 2C F4 */ rlwinm r0, r0, 5, 0x13, 0x1a
/* 802FC8C8 002F9828 7F C5 02 14 */ add r30, r5, r0
/* 802FC8CC 002F982C 48 01 57 C1 */ bl BuildTransform__11CQuaternionCFv
/* 802FC8D0 002F9830 7F E3 FB 78 */ mr r3, r31
/* 802FC8D4 002F9834 7F C5 F3 78 */ mr r5, r30
/* 802FC8D8 002F9838 7F 66 DB 78 */ mr r6, r27
/* 802FC8DC 002F983C 38 81 00 08 */ addi r4, r1, 8
/* 802FC8E0 002F9840 38 E1 00 34 */ addi r7, r1, 0x34
/* 802FC8E4 002F9844 39 01 00 44 */ addi r8, r1, 0x44
/* 802FC8E8 002F9848 39 21 00 28 */ addi r9, r1, 0x28
/* 802FC8EC 002F984C 4B FF FE 69 */ bl RecursivelyBuild__21CHierarchyPoseBuilderCFRC6CSegIdRCQ221CHierarchyPoseBuilder9CTreeNodeR17CPoseAsTransformsRC11CQuaternionRC9CMatrix3fRC9CVector3f
/* 802FC8F0 002F9850 88 9E 00 01 */ lbz r4, 1(r30)
lbl_802FC8F4:
/* 802FC8F4 002F9854 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 802FC8F8 002F9858 40 82 FF B0 */ bne lbl_802FC8A8
/* 802FC8FC 002F985C BB 21 01 44 */ lmw r25, 0x144(r1)
/* 802FC900 002F9860 80 01 01 64 */ lwz r0, 0x164(r1)
/* 802FC904 002F9864 7C 08 03 A6 */ mtlr r0
/* 802FC908 002F9868 38 21 01 60 */ addi r1, r1, 0x160
/* 802FC90C 002F986C 4E 80 00 20 */ blr
.global BuildNoScale__21CHierarchyPoseBuilderFR17CPoseAsTransforms
BuildNoScale__21CHierarchyPoseBuilderFR17CPoseAsTransforms:
/* 802FC910 002F9870 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802FC914 002F9874 7C 08 02 A6 */ mflr r0
/* 802FC918 002F9878 90 01 00 24 */ stw r0, 0x24(r1)
/* 802FC91C 002F987C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802FC920 002F9880 7C 9F 23 78 */ mr r31, r4
/* 802FC924 002F9884 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802FC928 002F9888 7C 7E 1B 78 */ mr r30, r3
/* 802FC92C 002F988C 88 03 00 30 */ lbz r0, 0x30(r3)
/* 802FC930 002F9890 7F E3 FB 78 */ mr r3, r31
/* 802FC934 002F9894 98 01 00 08 */ stb r0, 8(r1)
/* 802FC938 002F9898 48 06 C5 6D */ bl Clear__17CPoseAsTransformsFv
/* 802FC93C 002F989C 88 01 00 08 */ lbz r0, 8(r1)
/* 802FC940 002F98A0 3C A0 80 5A */ lis r5, sNoRotation__11CQuaternion@ha
/* 802FC944 002F98A4 3C 80 80 5A */ lis r4, lbl_805A65FC@ha
/* 802FC948 002F98A8 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
/* 802FC94C 002F98AC 54 00 08 3C */ slwi r0, r0, 1
/* 802FC950 002F98B0 38 E5 66 60 */ addi r7, r5, sNoRotation__11CQuaternion@l
/* 802FC954 002F98B4 7C BE 02 14 */ add r5, r30, r0
/* 802FC958 002F98B8 39 04 65 FC */ addi r8, r4, lbl_805A65FC@l
/* 802FC95C 002F98BC 88 05 00 41 */ lbz r0, 0x41(r5)
/* 802FC960 002F98C0 39 23 66 A0 */ addi r9, r3, sZeroVector__9CVector3f@l
/* 802FC964 002F98C4 80 BE 01 08 */ lwz r5, 0x108(r30)
/* 802FC968 002F98C8 7F C3 F3 78 */ mr r3, r30
/* 802FC96C 002F98CC 54 00 2C F4 */ rlwinm r0, r0, 5, 0x13, 0x1a
/* 802FC970 002F98D0 7F E6 FB 78 */ mr r6, r31
/* 802FC974 002F98D4 38 81 00 08 */ addi r4, r1, 8
/* 802FC978 002F98D8 7C A5 02 14 */ add r5, r5, r0
/* 802FC97C 002F98DC 4B FF FC AD */ bl RecursivelyBuildNoScale__21CHierarchyPoseBuilderCFRC6CSegIdRCQ221CHierarchyPoseBuilder9CTreeNodeR17CPoseAsTransformsRC11CQuaternionRC9CMatrix3fRC9CVector3f
/* 802FC980 002F98E0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802FC984 002F98E4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802FC988 002F98E8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802FC98C 002F98EC 7C 08 03 A6 */ mtlr r0
/* 802FC990 002F98F0 38 21 00 20 */ addi r1, r1, 0x20
/* 802FC994 002F98F4 4E 80 00 20 */ blr
.global sub_802fc998
sub_802fc998:
/* 802FC998 002F98F8 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 802FC99C 002F98FC 7C 08 02 A6 */ mflr r0
/* 802FC9A0 002F9900 90 01 00 84 */ stw r0, 0x84(r1)
/* 802FC9A4 002F9904 93 E1 00 7C */ stw r31, 0x7c(r1)
/* 802FC9A8 002F9908 93 C1 00 78 */ stw r30, 0x78(r1)
/* 802FC9AC 002F990C 7C BE 2B 78 */ mr r30, r5
/* 802FC9B0 002F9910 93 A1 00 74 */ stw r29, 0x74(r1)
/* 802FC9B4 002F9914 7C 9D 23 78 */ mr r29, r4
/* 802FC9B8 002F9918 93 81 00 70 */ stw r28, 0x70(r1)
/* 802FC9BC 002F991C 7C 7C 1B 78 */ mr r28, r3
/* 802FC9C0 002F9920 3B FC 00 40 */ addi r31, r28, 0x40
/* 802FC9C4 002F9924 89 05 00 00 */ lbz r8, 0(r5)
/* 802FC9C8 002F9928 88 0D 9C 32 */ lbz r0, lbl_805A87F2@sda21(r13)
/* 802FC9CC 002F992C 55 03 0D FC */ rlwinm r3, r8, 1, 0x17, 0x1e
/* 802FC9D0 002F9930 88 8D 9C 33 */ lbz r4, lbl_805A87F3@sda21(r13)
/* 802FC9D4 002F9934 7C BF 1A 14 */ add r5, r31, r3
/* 802FC9D8 002F9938 7C 00 07 74 */ extsb r0, r0
/* 802FC9DC 002F993C 88 65 00 00 */ lbz r3, 0(r5)
/* 802FC9E0 002F9940 7C 87 07 74 */ extsb r7, r4
/* 802FC9E4 002F9944 38 80 00 00 */ li r4, 0
/* 802FC9E8 002F9948 7C 63 07 74 */ extsb r3, r3
/* 802FC9EC 002F994C 7C 03 00 00 */ cmpw r3, r0
/* 802FC9F0 002F9950 40 82 00 14 */ bne lbl_802FCA04
/* 802FC9F4 002F9954 88 05 00 01 */ lbz r0, 1(r5)
/* 802FC9F8 002F9958 7C 00 07 74 */ extsb r0, r0
/* 802FC9FC 002F995C 7C 00 38 00 */ cmpw r0, r7
/* 802FCA00 002F9960 41 82 00 08 */ beq lbl_802FCA08
lbl_802FCA04:
/* 802FCA04 002F9964 38 80 00 01 */ li r4, 1
lbl_802FCA08:
/* 802FCA08 002F9968 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 802FCA0C 002F996C 40 82 01 5C */ bne lbl_802FCB68
/* 802FCA10 002F9970 80 9D 00 00 */ lwz r4, 0(r29)
/* 802FCA14 002F9974 55 03 0D FC */ rlwinm r3, r8, 1, 0x17, 0x1e
/* 802FCA18 002F9978 88 06 00 00 */ lbz r0, 0(r6)
/* 802FCA1C 002F997C 7C 64 1A 14 */ add r3, r4, r3
/* 802FCA20 002F9980 80 84 00 D0 */ lwz r4, 0xd0(r4)
/* 802FCA24 002F9984 88 63 00 09 */ lbz r3, 9(r3)
/* 802FCA28 002F9988 54 63 2C F4 */ rlwinm r3, r3, 5, 0x13, 0x1a
/* 802FCA2C 002F998C 7C 84 18 AE */ lbzx r4, r4, r3
/* 802FCA30 002F9990 54 83 06 3E */ clrlwi r3, r4, 0x18
/* 802FCA34 002F9994 98 81 00 08 */ stb r4, 8(r1)
/* 802FCA38 002F9998 7C 03 00 40 */ cmplw r3, r0
/* 802FCA3C 002F999C 40 82 00 8C */ bne lbl_802FCAC8
/* 802FCA40 002F99A0 38 00 00 01 */ li r0, 1
/* 802FCA44 002F99A4 34 7C 00 30 */ addic. r3, r28, 0x30
/* 802FCA48 002F99A8 98 1C 00 34 */ stb r0, 0x34(r28)
/* 802FCA4C 002F99AC 41 82 00 0C */ beq lbl_802FCA58
/* 802FCA50 002F99B0 88 1E 00 00 */ lbz r0, 0(r30)
/* 802FCA54 002F99B4 98 03 00 00 */ stb r0, 0(r3)
lbl_802FCA58:
/* 802FCA58 002F99B8 7F A4 EB 78 */ mr r4, r29
/* 802FCA5C 002F99BC 7F C5 F3 78 */ mr r5, r30
/* 802FCA60 002F99C0 38 61 00 18 */ addi r3, r1, 0x18
/* 802FCA64 002F99C4 4B E2 EF 3D */ bl GetFromParentUnrotated__15CCharLayoutInfoCFRC6CSegId
/* 802FCA68 002F99C8 3C 60 80 5A */ lis r3, sNoRotation__11CQuaternion@ha
/* 802FCA6C 002F99CC 38 00 00 00 */ li r0, 0
/* 802FCA70 002F99D0 38 C3 66 60 */ addi r6, r3, sNoRotation__11CQuaternion@l
/* 802FCA74 002F99D4 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 802FCA78 002F99D8 C0 C6 00 00 */ lfs f6, 0(r6)
/* 802FCA7C 002F99DC 7F C4 F3 78 */ mr r4, r30
/* 802FCA80 002F99E0 C0 A6 00 04 */ lfs f5, 4(r6)
/* 802FCA84 002F99E4 38 7C 00 38 */ addi r3, r28, 0x38
/* 802FCA88 002F99E8 C0 86 00 08 */ lfs f4, 8(r6)
/* 802FCA8C 002F99EC 38 A1 00 44 */ addi r5, r1, 0x44
/* 802FCA90 002F99F0 C0 66 00 0C */ lfs f3, 0xc(r6)
/* 802FCA94 002F99F4 C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 802FCA98 002F99F8 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 802FCA9C 002F99FC 98 01 00 44 */ stb r0, 0x44(r1)
/* 802FCAA0 002F9A00 98 01 00 45 */ stb r0, 0x45(r1)
/* 802FCAA4 002F9A04 D0 C1 00 48 */ stfs f6, 0x48(r1)
/* 802FCAA8 002F9A08 D0 A1 00 4C */ stfs f5, 0x4c(r1)
/* 802FCAAC 002F9A0C D0 81 00 50 */ stfs f4, 0x50(r1)
/* 802FCAB0 002F9A10 D0 61 00 54 */ stfs f3, 0x54(r1)
/* 802FCAB4 002F9A14 D0 41 00 58 */ stfs f2, 0x58(r1)
/* 802FCAB8 002F9A18 D0 21 00 5C */ stfs f1, 0x5c(r1)
/* 802FCABC 002F9A1C D0 01 00 60 */ stfs f0, 0x60(r1)
/* 802FCAC0 002F9A20 48 00 03 59 */ bl sub_802fce18
/* 802FCAC4 002F9A24 48 00 00 A4 */ b lbl_802FCB68
lbl_802FCAC8:
/* 802FCAC8 002F9A28 7F 83 E3 78 */ mr r3, r28
/* 802FCACC 002F9A2C 7F A4 EB 78 */ mr r4, r29
/* 802FCAD0 002F9A30 38 A1 00 08 */ addi r5, r1, 8
/* 802FCAD4 002F9A34 4B FF FE C5 */ bl sub_802fc998
/* 802FCAD8 002F9A38 7F A4 EB 78 */ mr r4, r29
/* 802FCADC 002F9A3C 7F C5 F3 78 */ mr r5, r30
/* 802FCAE0 002F9A40 38 61 00 0C */ addi r3, r1, 0xc
/* 802FCAE4 002F9A44 4B E2 EE BD */ bl GetFromParentUnrotated__15CCharLayoutInfoCFRC6CSegId
/* 802FCAE8 002F9A48 88 01 00 08 */ lbz r0, 8(r1)
/* 802FCAEC 002F9A4C 3C 60 80 5A */ lis r3, sNoRotation__11CQuaternion@ha
/* 802FCAF0 002F9A50 38 C3 66 60 */ addi r6, r3, sNoRotation__11CQuaternion@l
/* 802FCAF4 002F9A54 81 3C 01 08 */ lwz r9, 0x108(r28)
/* 802FCAF8 002F9A58 54 03 08 3C */ slwi r3, r0, 1
/* 802FCAFC 002F9A5C 88 FE 00 00 */ lbz r7, 0(r30)
/* 802FCB00 002F9A60 38 63 00 01 */ addi r3, r3, 1
/* 802FCB04 002F9A64 38 00 00 00 */ li r0, 0
/* 802FCB08 002F9A68 7D 1F 18 AE */ lbzx r8, r31, r3
/* 802FCB0C 002F9A6C 7F C4 F3 78 */ mr r4, r30
/* 802FCB10 002F9A70 38 7C 00 38 */ addi r3, r28, 0x38
/* 802FCB14 002F9A74 38 A1 00 24 */ addi r5, r1, 0x24
/* 802FCB18 002F9A78 55 08 2C F4 */ rlwinm r8, r8, 5, 0x13, 0x1a
/* 802FCB1C 002F9A7C 7D 49 40 AE */ lbzx r10, r9, r8
/* 802FCB20 002F9A80 7C E9 41 AE */ stbx r7, r9, r8
/* 802FCB24 002F9A84 C0 C6 00 00 */ lfs f6, 0(r6)
/* 802FCB28 002F9A88 C0 A6 00 04 */ lfs f5, 4(r6)
/* 802FCB2C 002F9A8C C0 86 00 08 */ lfs f4, 8(r6)
/* 802FCB30 002F9A90 C0 66 00 0C */ lfs f3, 0xc(r6)
/* 802FCB34 002F9A94 C0 41 00 0C */ lfs f2, 0xc(r1)
/* 802FCB38 002F9A98 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 802FCB3C 002F9A9C C0 01 00 14 */ lfs f0, 0x14(r1)
/* 802FCB40 002F9AA0 98 01 00 24 */ stb r0, 0x24(r1)
/* 802FCB44 002F9AA4 99 41 00 25 */ stb r10, 0x25(r1)
/* 802FCB48 002F9AA8 D0 C1 00 28 */ stfs f6, 0x28(r1)
/* 802FCB4C 002F9AAC D0 A1 00 2C */ stfs f5, 0x2c(r1)
/* 802FCB50 002F9AB0 D0 81 00 30 */ stfs f4, 0x30(r1)
/* 802FCB54 002F9AB4 D0 61 00 34 */ stfs f3, 0x34(r1)
/* 802FCB58 002F9AB8 D0 41 00 38 */ stfs f2, 0x38(r1)
/* 802FCB5C 002F9ABC D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 802FCB60 002F9AC0 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 802FCB64 002F9AC4 48 00 02 B5 */ bl sub_802fce18
lbl_802FCB68:
/* 802FCB68 002F9AC8 80 01 00 84 */ lwz r0, 0x84(r1)
/* 802FCB6C 002F9ACC 83 E1 00 7C */ lwz r31, 0x7c(r1)
/* 802FCB70 002F9AD0 83 C1 00 78 */ lwz r30, 0x78(r1)
/* 802FCB74 002F9AD4 83 A1 00 74 */ lwz r29, 0x74(r1)
/* 802FCB78 002F9AD8 83 81 00 70 */ lwz r28, 0x70(r1)
/* 802FCB7C 002F9ADC 7C 08 03 A6 */ mtlr r0
/* 802FCB80 002F9AE0 38 21 00 80 */ addi r1, r1, 0x80
/* 802FCB84 002F9AE4 4E 80 00 20 */ blr
.global __ct__21CHierarchyPoseBuilderFRC18CLayoutDescription
__ct__21CHierarchyPoseBuilderFRC18CLayoutDescription:
/* 802FCB88 002F9AE8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802FCB8C 002F9AEC 7C 08 02 A6 */ mflr r0
/* 802FCB90 002F9AF0 90 01 00 34 */ stw r0, 0x34(r1)
/* 802FCB94 002F9AF4 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 802FCB98 002F9AF8 7C 7F 1B 78 */ mr r31, r3
/* 802FCB9C 002F9AFC 7C 9B 23 78 */ mr r27, r4
/* 802FCBA0 002F9B00 48 00 01 A5 */ bl sub_802fcd44
/* 802FCBA4 002F9B04 38 00 00 00 */ li r0, 0
/* 802FCBA8 002F9B08 7F 63 DB 78 */ mr r3, r27
/* 802FCBAC 002F9B0C 98 1F 00 34 */ stb r0, 0x34(r31)
/* 802FCBB0 002F9B10 4B FF F7 A9 */ bl sub_802fc358
/* 802FCBB4 002F9B14 38 E0 00 00 */ li r7, 0
/* 802FCBB8 002F9B18 38 80 00 64 */ li r4, 0x64
/* 802FCBBC 002F9B1C 98 FF 00 38 */ stb r7, 0x38(r31)
/* 802FCBC0 002F9B20 38 00 00 0A */ li r0, 0xa
/* 802FCBC4 002F9B24 39 1F 00 40 */ addi r8, r31, 0x40
/* 802FCBC8 002F9B28 98 7F 00 39 */ stb r3, 0x39(r31)
/* 802FCBCC 002F9B2C 88 CD 9C 30 */ lbz r6, lbl_805A87F0@sda21(r13)
/* 802FCBD0 002F9B30 88 AD 9C 31 */ lbz r5, lbl_805A87F1@sda21(r13)
/* 802FCBD4 002F9B34 7C C6 07 74 */ extsb r6, r6
/* 802FCBD8 002F9B38 90 9F 00 3C */ stw r4, 0x3c(r31)
/* 802FCBDC 002F9B3C 7C A4 07 74 */ extsb r4, r5
/* 802FCBE0 002F9B40 7C 09 03 A6 */ mtctr r0
lbl_802FCBE4:
/* 802FCBE4 002F9B44 28 08 00 00 */ cmplwi r8, 0
/* 802FCBE8 002F9B48 41 82 00 0C */ beq lbl_802FCBF4
/* 802FCBEC 002F9B4C 98 C8 00 00 */ stb r6, 0(r8)
/* 802FCBF0 002F9B50 98 88 00 01 */ stb r4, 1(r8)
lbl_802FCBF4:
/* 802FCBF4 002F9B54 35 08 00 02 */ addic. r8, r8, 2
/* 802FCBF8 002F9B58 41 82 00 0C */ beq lbl_802FCC04
/* 802FCBFC 002F9B5C 98 C8 00 00 */ stb r6, 0(r8)
/* 802FCC00 002F9B60 98 88 00 01 */ stb r4, 1(r8)
lbl_802FCC04:
/* 802FCC04 002F9B64 35 08 00 02 */ addic. r8, r8, 2
/* 802FCC08 002F9B68 41 82 00 0C */ beq lbl_802FCC14
/* 802FCC0C 002F9B6C 98 C8 00 00 */ stb r6, 0(r8)
/* 802FCC10 002F9B70 98 88 00 01 */ stb r4, 1(r8)
lbl_802FCC14:
/* 802FCC14 002F9B74 35 08 00 02 */ addic. r8, r8, 2
/* 802FCC18 002F9B78 41 82 00 0C */ beq lbl_802FCC24
/* 802FCC1C 002F9B7C 98 C8 00 00 */ stb r6, 0(r8)
/* 802FCC20 002F9B80 98 88 00 01 */ stb r4, 1(r8)
lbl_802FCC24:
/* 802FCC24 002F9B84 35 08 00 02 */ addic. r8, r8, 2
/* 802FCC28 002F9B88 41 82 00 0C */ beq lbl_802FCC34
/* 802FCC2C 002F9B8C 98 C8 00 00 */ stb r6, 0(r8)
/* 802FCC30 002F9B90 98 88 00 01 */ stb r4, 1(r8)
lbl_802FCC34:
/* 802FCC34 002F9B94 35 08 00 02 */ addic. r8, r8, 2
/* 802FCC38 002F9B98 41 82 00 0C */ beq lbl_802FCC44
/* 802FCC3C 002F9B9C 98 C8 00 00 */ stb r6, 0(r8)
/* 802FCC40 002F9BA0 98 88 00 01 */ stb r4, 1(r8)
lbl_802FCC44:
/* 802FCC44 002F9BA4 35 08 00 02 */ addic. r8, r8, 2
/* 802FCC48 002F9BA8 41 82 00 0C */ beq lbl_802FCC54
/* 802FCC4C 002F9BAC 98 C8 00 00 */ stb r6, 0(r8)
/* 802FCC50 002F9BB0 98 88 00 01 */ stb r4, 1(r8)
lbl_802FCC54:
/* 802FCC54 002F9BB4 35 08 00 02 */ addic. r8, r8, 2
/* 802FCC58 002F9BB8 41 82 00 0C */ beq lbl_802FCC64
/* 802FCC5C 002F9BBC 98 C8 00 00 */ stb r6, 0(r8)
/* 802FCC60 002F9BC0 98 88 00 01 */ stb r4, 1(r8)
lbl_802FCC64:
/* 802FCC64 002F9BC4 35 08 00 02 */ addic. r8, r8, 2
/* 802FCC68 002F9BC8 41 82 00 0C */ beq lbl_802FCC74
/* 802FCC6C 002F9BCC 98 C8 00 00 */ stb r6, 0(r8)
/* 802FCC70 002F9BD0 98 88 00 01 */ stb r4, 1(r8)
lbl_802FCC74:
/* 802FCC74 002F9BD4 35 08 00 02 */ addic. r8, r8, 2
/* 802FCC78 002F9BD8 41 82 00 0C */ beq lbl_802FCC84
/* 802FCC7C 002F9BDC 98 C8 00 00 */ stb r6, 0(r8)
/* 802FCC80 002F9BE0 98 88 00 01 */ stb r4, 1(r8)
lbl_802FCC84:
/* 802FCC84 002F9BE4 38 E7 00 09 */ addi r7, r7, 9
/* 802FCC88 002F9BE8 39 08 00 02 */ addi r8, r8, 2
/* 802FCC8C 002F9BEC 42 00 FF 58 */ bdnz lbl_802FCBE4
/* 802FCC90 002F9BF0 38 00 00 00 */ li r0, 0
/* 802FCC94 002F9BF4 3C 80 80 3D */ lis r4, lbl_803D6E40@ha
/* 802FCC98 002F9BF8 90 1F 01 08 */ stw r0, 0x108(r31)
/* 802FCC9C 002F9BFC 38 84 6E 40 */ addi r4, r4, lbl_803D6E40@l
/* 802FCCA0 002F9C00 54 63 2C F4 */ rlwinm r3, r3, 5, 0x13, 0x1a
/* 802FCCA4 002F9C04 38 A0 00 00 */ li r5, 0
/* 802FCCA8 002F9C08 98 1F 01 0C */ stb r0, 0x10c(r31)
/* 802FCCAC 002F9C0C 48 01 8B 6D */ bl __nwa__FUlPCcPCc
/* 802FCCB0 002F9C10 90 7F 01 08 */ stw r3, 0x108(r31)
/* 802FCCB4 002F9C14 88 1B 00 2C */ lbz r0, 0x2c(r27)
/* 802FCCB8 002F9C18 28 00 00 00 */ cmplwi r0, 0
/* 802FCCBC 002F9C1C 41 82 00 0C */ beq lbl_802FCCC8
/* 802FCCC0 002F9C20 38 9B 00 0C */ addi r4, r27, 0xc
/* 802FCCC4 002F9C24 48 00 00 08 */ b lbl_802FCCCC
lbl_802FCCC8:
/* 802FCCC8 002F9C28 7F 64 DB 78 */ mr r4, r27
lbl_802FCCCC:
/* 802FCCCC 002F9C2C 38 61 00 10 */ addi r3, r1, 0x10
/* 802FCCD0 002F9C30 48 04 41 D9 */ bl __ct__6CTokenFRC6CToken
/* 802FCCD4 002F9C34 38 61 00 10 */ addi r3, r1, 0x10
/* 802FCCD8 002F9C38 48 04 41 35 */ bl GetObj__6CTokenFv
/* 802FCCDC 002F9C3C 83 A3 00 04 */ lwz r29, 4(r3)
/* 802FCCE0 002F9C40 3B C0 00 02 */ li r30, 2
/* 802FCCE4 002F9C44 83 7D 00 14 */ lwz r27, 0x14(r29)
/* 802FCCE8 002F9C48 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 802FCCEC 002F9C4C 7F 9B 02 14 */ add r28, r27, r0
/* 802FCCF0 002F9C50 48 00 00 28 */ b lbl_802FCD18
lbl_802FCCF4:
/* 802FCCF4 002F9C54 88 1B 00 00 */ lbz r0, 0(r27)
/* 802FCCF8 002F9C58 7F E3 FB 78 */ mr r3, r31
/* 802FCCFC 002F9C5C 7F A4 EB 78 */ mr r4, r29
/* 802FCD00 002F9C60 38 A1 00 0C */ addi r5, r1, 0xc
/* 802FCD04 002F9C64 98 01 00 0C */ stb r0, 0xc(r1)
/* 802FCD08 002F9C68 38 C1 00 08 */ addi r6, r1, 8
/* 802FCD0C 002F9C6C 9B C1 00 08 */ stb r30, 8(r1)
/* 802FCD10 002F9C70 4B FF FC 89 */ bl sub_802fc998
/* 802FCD14 002F9C74 3B 7B 00 01 */ addi r27, r27, 1
lbl_802FCD18:
/* 802FCD18 002F9C78 7C 1B E0 40 */ cmplw r27, r28
/* 802FCD1C 002F9C7C 40 82 FF D8 */ bne lbl_802FCCF4
/* 802FCD20 002F9C80 38 61 00 10 */ addi r3, r1, 0x10
/* 802FCD24 002F9C84 38 80 00 00 */ li r4, 0
/* 802FCD28 002F9C88 48 04 41 19 */ bl __dt__6CTokenFv
/* 802FCD2C 002F9C8C 7F E3 FB 78 */ mr r3, r31
/* 802FCD30 002F9C90 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 802FCD34 002F9C94 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802FCD38 002F9C98 7C 08 03 A6 */ mtlr r0
/* 802FCD3C 002F9C9C 38 21 00 30 */ addi r1, r1, 0x30
/* 802FCD40 002F9CA0 4E 80 00 20 */ blr
.global sub_802fcd44
sub_802fcd44:
/* 802FCD44 002F9CA4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802FCD48 002F9CA8 7C 08 02 A6 */ mflr r0
/* 802FCD4C 002F9CAC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802FCD50 002F9CB0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802FCD54 002F9CB4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802FCD58 002F9CB8 7C 9E 23 78 */ mr r30, r4
/* 802FCD5C 002F9CBC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802FCD60 002F9CC0 7C 7D 1B 78 */ mr r29, r3
/* 802FCD64 002F9CC4 7F A0 EB 78 */ mr r0, r29
/* 802FCD68 002F9CC8 7C 1F 03 78 */ mr r31, r0
/* 802FCD6C 002F9CCC 48 04 41 3D */ bl __ct__6CTokenFRC6CToken
/* 802FCD70 002F9CD0 80 1E 00 08 */ lwz r0, 8(r30)
/* 802FCD74 002F9CD4 7F E3 FB 78 */ mr r3, r31
/* 802FCD78 002F9CD8 90 1F 00 08 */ stw r0, 8(r31)
/* 802FCD7C 002F9CDC 48 04 40 09 */ bl Lock__6CTokenFv
/* 802FCD80 002F9CE0 88 1E 00 2C */ lbz r0, 0x2c(r30)
/* 802FCD84 002F9CE4 98 1D 00 2C */ stb r0, 0x2c(r29)
/* 802FCD88 002F9CE8 88 1E 00 2C */ lbz r0, 0x2c(r30)
/* 802FCD8C 002F9CEC 28 00 00 00 */ cmplwi r0, 0
/* 802FCD90 002F9CF0 41 82 00 68 */ beq lbl_802FCDF8
/* 802FCD94 002F9CF4 37 FD 00 0C */ addic. r31, r29, 0xc
/* 802FCD98 002F9CF8 3B DE 00 0C */ addi r30, r30, 0xc
/* 802FCD9C 002F9CFC 41 82 00 5C */ beq lbl_802FCDF8
/* 802FCDA0 002F9D00 7F E3 FB 78 */ mr r3, r31
/* 802FCDA4 002F9D04 7F C4 F3 78 */ mr r4, r30
/* 802FCDA8 002F9D08 48 04 41 01 */ bl __ct__6CTokenFRC6CToken
/* 802FCDAC 002F9D0C 80 1E 00 08 */ lwz r0, 8(r30)
/* 802FCDB0 002F9D10 7F E3 FB 78 */ mr r3, r31
/* 802FCDB4 002F9D14 90 1F 00 08 */ stw r0, 8(r31)
/* 802FCDB8 002F9D18 48 04 3F CD */ bl Lock__6CTokenFv
/* 802FCDBC 002F9D1C C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 802FCDC0 002F9D20 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 802FCDC4 002F9D24 88 1E 00 1C */ lbz r0, 0x1c(r30)
/* 802FCDC8 002F9D28 98 1F 00 1C */ stb r0, 0x1c(r31)
/* 802FCDCC 002F9D2C 88 1E 00 1C */ lbz r0, 0x1c(r30)
/* 802FCDD0 002F9D30 28 00 00 00 */ cmplwi r0, 0
/* 802FCDD4 002F9D34 41 82 00 24 */ beq lbl_802FCDF8
/* 802FCDD8 002F9D38 34 7F 00 10 */ addic. r3, r31, 0x10
/* 802FCDDC 002F9D3C 41 82 00 1C */ beq lbl_802FCDF8
/* 802FCDE0 002F9D40 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 802FCDE4 002F9D44 90 03 00 00 */ stw r0, 0(r3)
/* 802FCDE8 002F9D48 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 802FCDEC 002F9D4C 90 03 00 04 */ stw r0, 4(r3)
/* 802FCDF0 002F9D50 C0 1E 00 18 */ lfs f0, 0x18(r30)
/* 802FCDF4 002F9D54 D0 03 00 08 */ stfs f0, 8(r3)
lbl_802FCDF8:
/* 802FCDF8 002F9D58 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802FCDFC 002F9D5C 7F A3 EB 78 */ mr r3, r29
/* 802FCE00 002F9D60 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802FCE04 002F9D64 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802FCE08 002F9D68 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802FCE0C 002F9D6C 7C 08 03 A6 */ mtlr r0
/* 802FCE10 002F9D70 38 21 00 20 */ addi r1, r1, 0x20
/* 802FCE14 002F9D74 4E 80 00 20 */ blr
.global sub_802fce18
sub_802fce18:
/* 802FCE18 002F9D78 88 03 00 00 */ lbz r0, 0(r3)
/* 802FCE1C 002F9D7C 80 C3 00 D0 */ lwz r6, 0xd0(r3)
/* 802FCE20 002F9D80 7C 00 07 74 */ extsb r0, r0
/* 802FCE24 002F9D84 88 E4 00 00 */ lbz r7, 0(r4)
/* 802FCE28 002F9D88 54 00 28 34 */ slwi r0, r0, 5
/* 802FCE2C 002F9D8C 7C 86 02 15 */ add. r4, r6, r0
/* 802FCE30 002F9D90 41 82 00 4C */ beq lbl_802FCE7C
/* 802FCE34 002F9D94 88 05 00 00 */ lbz r0, 0(r5)
/* 802FCE38 002F9D98 98 04 00 00 */ stb r0, 0(r4)
/* 802FCE3C 002F9D9C 88 05 00 01 */ lbz r0, 1(r5)
/* 802FCE40 002F9DA0 98 04 00 01 */ stb r0, 1(r4)
/* 802FCE44 002F9DA4 C0 05 00 04 */ lfs f0, 4(r5)
/* 802FCE48 002F9DA8 D0 04 00 04 */ stfs f0, 4(r4)
/* 802FCE4C 002F9DAC C0 05 00 08 */ lfs f0, 8(r5)
/* 802FCE50 002F9DB0 D0 04 00 08 */ stfs f0, 8(r4)
/* 802FCE54 002F9DB4 C0 05 00 0C */ lfs f0, 0xc(r5)
/* 802FCE58 002F9DB8 D0 04 00 0C */ stfs f0, 0xc(r4)
/* 802FCE5C 002F9DBC C0 05 00 10 */ lfs f0, 0x10(r5)
/* 802FCE60 002F9DC0 D0 04 00 10 */ stfs f0, 0x10(r4)
/* 802FCE64 002F9DC4 C0 05 00 14 */ lfs f0, 0x14(r5)
/* 802FCE68 002F9DC8 D0 04 00 14 */ stfs f0, 0x14(r4)
/* 802FCE6C 002F9DCC C0 05 00 18 */ lfs f0, 0x18(r5)
/* 802FCE70 002F9DD0 D0 04 00 18 */ stfs f0, 0x18(r4)
/* 802FCE74 002F9DD4 C0 05 00 1C */ lfs f0, 0x1c(r5)
/* 802FCE78 002F9DD8 D0 04 00 1C */ stfs f0, 0x1c(r4)
lbl_802FCE7C:
/* 802FCE7C 002F9DDC 54 E4 0D FC */ rlwinm r4, r7, 1, 0x17, 0x1e
/* 802FCE80 002F9DE0 88 A3 00 00 */ lbz r5, 0(r3)
/* 802FCE84 002F9DE4 88 03 00 D4 */ lbz r0, 0xd4(r3)
/* 802FCE88 002F9DE8 7C 83 22 14 */ add r4, r3, r4
/* 802FCE8C 002F9DEC 98 04 00 08 */ stb r0, 8(r4)
/* 802FCE90 002F9DF0 98 A4 00 09 */ stb r5, 9(r4)
/* 802FCE94 002F9DF4 98 E3 00 D4 */ stb r7, 0xd4(r3)
/* 802FCE98 002F9DF8 88 83 00 00 */ lbz r4, 0(r3)
/* 802FCE9C 002F9DFC 38 04 00 01 */ addi r0, r4, 1
/* 802FCEA0 002F9E00 98 03 00 00 */ stb r0, 0(r3)
/* 802FCEA4 002F9E04 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AE430
lbl_805AE430:
# ROM: 0x3FACD0
.float 1.0
.global lbl_805AE434
lbl_805AE434:
# ROM: 0x3FACD4
.4byte 0
.section .rodata
.balign 8
.global lbl_803D6E40
lbl_803D6E40:
# ROM: 0x3D3E40
.asciz "??(??)"
.balign 4