prime/asm/MetroidPrime/PathFinding/CPathFindRegion.s

1322 lines
66 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .text, "ax"
.global FitThroughLink3d__9CPFRegionCFRC9CVector3fRC7CPFLinkfRC9CVector3fff
FitThroughLink3d__9CPFRegionCFRC9CVector3fRC7CPFLinkfRC9CVector3fff:
/* 801C8EA8 001C5E08 94 21 FE D0 */ stwu r1, -0x130(r1)
/* 801C8EAC 001C5E0C 7C 08 02 A6 */ mflr r0
/* 801C8EB0 001C5E10 90 01 01 34 */ stw r0, 0x134(r1)
/* 801C8EB4 001C5E14 DB E1 01 20 */ stfd f31, 0x120(r1)
/* 801C8EB8 001C5E18 F3 E1 01 28 */ psq_st f31, 296(r1), 0, qr0
/* 801C8EBC 001C5E1C DB C1 01 10 */ stfd f30, 0x110(r1)
/* 801C8EC0 001C5E20 F3 C1 01 18 */ psq_st f30, 280(r1), 0, qr0
/* 801C8EC4 001C5E24 DB A1 01 00 */ stfd f29, 0x100(r1)
/* 801C8EC8 001C5E28 F3 A1 01 08 */ psq_st f29, 264(r1), 0, qr0
/* 801C8ECC 001C5E2C DB 81 00 F0 */ stfd f28, 0xf0(r1)
/* 801C8ED0 001C5E30 F3 81 00 F8 */ psq_st f28, 248(r1), 0, qr0
/* 801C8ED4 001C5E34 DB 61 00 E0 */ stfd f27, 0xe0(r1)
/* 801C8ED8 001C5E38 F3 61 00 E8 */ psq_st f27, 232(r1), 0, qr0
/* 801C8EDC 001C5E3C DB 41 00 D0 */ stfd f26, 0xd0(r1)
/* 801C8EE0 001C5E40 F3 41 00 D8 */ psq_st f26, 216(r1), 0, qr0
/* 801C8EE4 001C5E44 DB 21 00 C0 */ stfd f25, 0xc0(r1)
/* 801C8EE8 001C5E48 F3 21 00 C8 */ psq_st f25, 200(r1), 0, qr0
/* 801C8EEC 001C5E4C DB 01 00 B0 */ stfd f24, 0xb0(r1)
/* 801C8EF0 001C5E50 F3 01 00 B8 */ psq_st f24, 184(r1), 0, qr0
/* 801C8EF4 001C5E54 DA E1 00 A0 */ stfd f23, 0xa0(r1)
/* 801C8EF8 001C5E58 F2 E1 00 A8 */ psq_st f23, 168(r1), 0, qr0
/* 801C8EFC 001C5E5C DA C1 00 90 */ stfd f22, 0x90(r1)
/* 801C8F00 001C5E60 F2 C1 00 98 */ psq_st f22, 152(r1), 0, qr0
/* 801C8F04 001C5E64 BF 61 00 7C */ stmw r27, 0x7c(r1)
/* 801C8F08 001C5E68 7C DD 33 78 */ mr r29, r6
/* 801C8F0C 001C5E6C 7C BC 2B 78 */ mr r28, r5
/* 801C8F10 001C5E70 81 06 00 00 */ lwz r8, 0(r6)
/* 801C8F14 001C5E74 7C FE 3B 78 */ mr r30, r7
/* 801C8F18 001C5E78 80 A4 00 00 */ lwz r5, 0(r4)
/* 801C8F1C 001C5E7C FC C0 10 18 */ frsp f6, f2
/* 801C8F20 001C5E80 38 C8 00 01 */ addi r6, r8, 1
/* 801C8F24 001C5E84 80 E4 00 04 */ lwz r7, 4(r4)
/* 801C8F28 001C5E88 7C 06 2B D6 */ divw r0, r6, r5
/* 801C8F2C 001C5E8C C1 5C 00 04 */ lfs f10, 4(r28)
/* 801C8F30 001C5E90 C1 1E 00 04 */ lfs f8, 4(r30)
/* 801C8F34 001C5E94 C1 7C 00 00 */ lfs f11, 0(r28)
/* 801C8F38 001C5E98 FF C0 08 90 */ fmr f30, f1
/* 801C8F3C 001C5E9C C0 FE 00 00 */ lfs f7, 0(r30)
/* 801C8F40 001C5EA0 1C 88 00 18 */ mulli r4, r8, 0x18
/* 801C8F44 001C5EA4 C1 BC 00 08 */ lfs f13, 8(r28)
/* 801C8F48 001C5EA8 C1 3E 00 08 */ lfs f9, 8(r30)
/* 801C8F4C 001C5EAC FF E0 18 90 */ fmr f31, f3
/* 801C8F50 001C5EB0 C0 82 AB 40 */ lfs f4, lbl_805AC860@sda21(r2)
/* 801C8F54 001C5EB4 7C 7B 1B 78 */ mr r27, r3
/* 801C8F58 001C5EB8 7F E7 22 14 */ add r31, r7, r4
/* 801C8F5C 001C5EBC C0 1D 00 08 */ lfs f0, 8(r29)
/* 801C8F60 001C5EC0 C0 7F 00 04 */ lfs f3, 4(r31)
/* 801C8F64 001C5EC4 7C 00 29 D6 */ mullw r0, r0, r5
/* 801C8F68 001C5EC8 C0 3F 00 00 */ lfs f1, 0(r31)
/* 801C8F6C 001C5ECC EC A4 00 32 */ fmuls f5, f4, f0
/* 801C8F70 001C5ED0 C0 9F 00 08 */ lfs f4, 8(r31)
/* 801C8F74 001C5ED4 EF 6A 18 28 */ fsubs f27, f10, f3
/* 801C8F78 001C5ED8 EC 03 40 28 */ fsubs f0, f3, f8
/* 801C8F7C 001C5EDC C1 5F 00 10 */ lfs f10, 0x10(r31)
/* 801C8F80 001C5EE0 ED 8B 08 28 */ fsubs f12, f11, f1
/* 801C8F84 001C5EE4 ED 01 38 28 */ fsubs f8, f1, f7
/* 801C8F88 001C5EE8 7C 00 30 50 */ subf r0, r0, r6
/* 801C8F8C 001C5EEC 1C 00 00 18 */ mulli r0, r0, 0x18
/* 801C8F90 001C5EF0 EF AD 20 28 */ fsubs f29, f13, f4
/* 801C8F94 001C5EF4 EE C4 48 28 */ fsubs f22, f4, f9
/* 801C8F98 001C5EF8 ED 3B 02 B2 */ fmuls f9, f27, f10
/* 801C8F9C 001C5EFC 7C 67 02 14 */ add r3, r7, r0
/* 801C8FA0 001C5F00 C1 7F 00 0C */ lfs f11, 0xc(r31)
/* 801C8FA4 001C5F04 EC E0 02 B2 */ fmuls f7, f0, f10
/* 801C8FA8 001C5F08 C3 43 00 00 */ lfs f26, 0(r3)
/* 801C8FAC 001C5F0C C2 E3 00 04 */ lfs f23, 4(r3)
/* 801C8FB0 001C5F10 C1 A3 00 08 */ lfs f13, 8(r3)
/* 801C8FB4 001C5F14 ED 2C 4A FA */ fmadds f9, f12, f11, f9
/* 801C8FB8 001C5F18 C1 5F 00 14 */ lfs f10, 0x14(r31)
/* 801C8FBC 001C5F1C EC E8 3A FA */ fmadds f7, f8, f11, f7
/* 801C8FC0 001C5F20 D0 41 00 08 */ stfs f2, 8(r1)
/* 801C8FC4 001C5F24 EF 3D 4A BA */ fmadds f25, f29, f10, f9
/* 801C8FC8 001C5F28 FC 06 28 40 */ fcmpo cr0, f6, f5
/* 801C8FCC 001C5F2C D1 81 00 64 */ stfs f12, 0x64(r1)
/* 801C8FD0 001C5F30 EF 16 3A BA */ fmadds f24, f22, f10, f7
/* 801C8FD4 001C5F34 EF 5A 08 28 */ fsubs f26, f26, f1
/* 801C8FD8 001C5F38 D3 61 00 68 */ stfs f27, 0x68(r1)
/* 801C8FDC 001C5F3C EF 77 18 28 */ fsubs f27, f23, f3
/* 801C8FE0 001C5F40 EF 8D 20 28 */ fsubs f28, f13, f4
/* 801C8FE4 001C5F44 D3 A1 00 6C */ stfs f29, 0x6c(r1)
/* 801C8FE8 001C5F48 EE F9 C0 2A */ fadds f23, f25, f24
/* 801C8FEC 001C5F4C D1 01 00 58 */ stfs f8, 0x58(r1)
/* 801C8FF0 001C5F50 D0 01 00 5C */ stfs f0, 0x5c(r1)
/* 801C8FF4 001C5F54 D2 C1 00 60 */ stfs f22, 0x60(r1)
/* 801C8FF8 001C5F58 40 80 01 14 */ bge lbl_801C910C
/* 801C8FFC 001C5F5C FC 20 D0 90 */ fmr f1, f26
/* 801C9000 001C5F60 38 61 00 30 */ addi r3, r1, 0x30
/* 801C9004 001C5F64 FC 40 D8 90 */ fmr f2, f27
/* 801C9008 001C5F68 48 14 B1 F9 */ bl __ct__9CVector2fFff
/* 801C900C 001C5F6C C0 21 00 30 */ lfs f1, 0x30(r1)
/* 801C9010 001C5F70 38 61 00 38 */ addi r3, r1, 0x38
/* 801C9014 001C5F74 C0 01 00 34 */ lfs f0, 0x34(r1)
/* 801C9018 001C5F78 D0 21 00 38 */ stfs f1, 0x38(r1)
/* 801C901C 001C5F7C C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 801C9020 001C5F80 D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 801C9024 001C5F84 48 14 B1 29 */ bl __amu__9CVector2fFf
/* 801C9028 001C5F88 C0 5C 00 04 */ lfs f2, 4(r28)
/* 801C902C 001C5F8C 38 61 00 28 */ addi r3, r1, 0x28
/* 801C9030 001C5F90 C0 1F 00 04 */ lfs f0, 4(r31)
/* 801C9034 001C5F94 C0 3C 00 00 */ lfs f1, 0(r28)
/* 801C9038 001C5F98 EC 42 00 28 */ fsubs f2, f2, f0
/* 801C903C 001C5F9C C0 1F 00 00 */ lfs f0, 0(r31)
/* 801C9040 001C5FA0 C0 7C 00 08 */ lfs f3, 8(r28)
/* 801C9044 001C5FA4 EC 21 00 28 */ fsubs f1, f1, f0
/* 801C9048 001C5FA8 C0 1F 00 08 */ lfs f0, 8(r31)
/* 801C904C 001C5FAC D0 41 00 50 */ stfs f2, 0x50(r1)
/* 801C9050 001C5FB0 EC 03 00 28 */ fsubs f0, f3, f0
/* 801C9054 001C5FB4 D0 21 00 4C */ stfs f1, 0x4c(r1)
/* 801C9058 001C5FB8 D0 01 00 54 */ stfs f0, 0x54(r1)
/* 801C905C 001C5FBC 48 14 B1 A5 */ bl __ct__9CVector2fFff
/* 801C9060 001C5FC0 38 61 00 38 */ addi r3, r1, 0x38
/* 801C9064 001C5FC4 38 81 00 28 */ addi r4, r1, 0x28
/* 801C9068 001C5FC8 48 14 AF 41 */ bl Dot__9CVector2fFRC9CVector2fRC9CVector2f
/* 801C906C 001C5FCC C0 5E 00 04 */ lfs f2, 4(r30)
/* 801C9070 001C5FD0 FF A0 08 90 */ fmr f29, f1
/* 801C9074 001C5FD4 C0 1F 00 04 */ lfs f0, 4(r31)
/* 801C9078 001C5FD8 38 61 00 20 */ addi r3, r1, 0x20
/* 801C907C 001C5FDC C0 3E 00 00 */ lfs f1, 0(r30)
/* 801C9080 001C5FE0 EC 42 00 28 */ fsubs f2, f2, f0
/* 801C9084 001C5FE4 C0 1F 00 00 */ lfs f0, 0(r31)
/* 801C9088 001C5FE8 C0 7E 00 08 */ lfs f3, 8(r30)
/* 801C908C 001C5FEC EC 21 00 28 */ fsubs f1, f1, f0
/* 801C9090 001C5FF0 C0 1F 00 08 */ lfs f0, 8(r31)
/* 801C9094 001C5FF4 D0 41 00 44 */ stfs f2, 0x44(r1)
/* 801C9098 001C5FF8 EC 03 00 28 */ fsubs f0, f3, f0
/* 801C909C 001C5FFC D0 21 00 40 */ stfs f1, 0x40(r1)
/* 801C90A0 001C6000 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 801C90A4 001C6004 48 14 B1 5D */ bl __ct__9CVector2fFff
/* 801C90A8 001C6008 38 61 00 38 */ addi r3, r1, 0x38
/* 801C90AC 001C600C 38 81 00 20 */ addi r4, r1, 0x20
/* 801C90B0 001C6010 48 14 AE F9 */ bl Dot__9CVector2fFRC9CVector2fRC9CVector2f
/* 801C90B4 001C6014 C0 02 AB 44 */ lfs f0, lbl_805AC864@sda21(r2)
/* 801C90B8 001C6018 FC 17 00 40 */ fcmpo cr0, f23, f0
/* 801C90BC 001C601C 40 81 00 50 */ ble lbl_801C910C
/* 801C90C0 001C6020 C0 02 AB 48 */ lfs f0, lbl_805AC868@sda21(r2)
/* 801C90C4 001C6024 EC 59 00 72 */ fmuls f2, f25, f1
/* 801C90C8 001C6028 C0 3D 00 08 */ lfs f1, 8(r29)
/* 801C90CC 001C602C 38 61 00 08 */ addi r3, r1, 8
/* 801C90D0 001C6030 EC 60 B8 24 */ fdivs f3, f0, f23
/* 801C90D4 001C6034 C0 01 00 08 */ lfs f0, 8(r1)
/* 801C90D8 001C6038 38 81 00 1C */ addi r4, r1, 0x1c
/* 801C90DC 001C603C 38 A1 00 18 */ addi r5, r1, 0x18
/* 801C90E0 001C6040 EC 58 17 7A */ fmadds f2, f24, f29, f2
/* 801C90E4 001C6044 EC 01 00 28 */ fsubs f0, f1, f0
/* 801C90E8 001C6048 EC 23 00 B2 */ fmuls f1, f3, f2
/* 801C90EC 001C604C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 801C90F0 001C6050 D0 21 00 1C */ stfs f1, 0x1c(r1)
/* 801C90F4 001C6054 4B E4 31 C1 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 801C90F8 001C6058 C0 23 00 00 */ lfs f1, 0(r3)
/* 801C90FC 001C605C C0 1D 00 0C */ lfs f0, 0xc(r29)
/* 801C9100 001C6060 D0 21 00 1C */ stfs f1, 0x1c(r1)
/* 801C9104 001C6064 EC 01 00 32 */ fmuls f0, f1, f0
/* 801C9108 001C6068 D0 01 00 1C */ stfs f0, 0x1c(r1)
lbl_801C910C:
/* 801C910C 001C606C C0 C2 AB 40 */ lfs f6, lbl_805AC860@sda21(r2)
/* 801C9110 001C6070 C0 FF 00 00 */ lfs f7, 0(r31)
/* 801C9114 001C6074 EC A6 06 B2 */ fmuls f5, f6, f26
/* 801C9118 001C6078 C0 9F 00 04 */ lfs f4, 4(r31)
/* 801C911C 001C607C EC 66 06 F2 */ fmuls f3, f6, f27
/* 801C9120 001C6080 C0 5F 00 08 */ lfs f2, 8(r31)
/* 801C9124 001C6084 EC 26 07 32 */ fmuls f1, f6, f28
/* 801C9128 001C6088 EC 06 07 B2 */ fmuls f0, f6, f30
/* 801C912C 001C608C EF 67 28 2A */ fadds f27, f7, f5
/* 801C9130 001C6090 EF 44 18 2A */ fadds f26, f4, f3
/* 801C9134 001C6094 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 801C9138 001C6098 EC A2 08 2A */ fadds f5, f2, f1
/* 801C913C 001C609C 40 80 00 68 */ bge lbl_801C91A4
/* 801C9140 001C60A0 C0 7C 00 08 */ lfs f3, 8(r28)
/* 801C9144 001C60A4 EC 9F 28 2A */ fadds f4, f31, f5
/* 801C9148 001C60A8 C0 5E 00 08 */ lfs f2, 8(r30)
/* 801C914C 001C60AC C0 02 AB 44 */ lfs f0, lbl_805AC864@sda21(r2)
/* 801C9150 001C60B0 EC 23 10 2A */ fadds f1, f3, f2
/* 801C9154 001C60B4 D0 81 00 14 */ stfs f4, 0x14(r1)
/* 801C9158 001C60B8 FC 17 00 40 */ fcmpo cr0, f23, f0
/* 801C915C 001C60BC EC 06 00 72 */ fmuls f0, f6, f1
/* 801C9160 001C60C0 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 801C9164 001C60C4 40 81 00 1C */ ble lbl_801C9180
/* 801C9168 001C60C8 C0 22 AB 48 */ lfs f1, lbl_805AC868@sda21(r2)
/* 801C916C 001C60CC EC 19 00 B2 */ fmuls f0, f25, f2
/* 801C9170 001C60D0 EC 21 B8 24 */ fdivs f1, f1, f23
/* 801C9174 001C60D4 EC 18 00 FA */ fmadds f0, f24, f3, f0
/* 801C9178 001C60D8 EC 01 00 32 */ fmuls f0, f1, f0
/* 801C917C 001C60DC D0 01 00 10 */ stfs f0, 0x10(r1)
lbl_801C9180:
/* 801C9180 001C60E0 EC 1E 28 2A */ fadds f0, f30, f5
/* 801C9184 001C60E4 38 61 00 14 */ addi r3, r1, 0x14
/* 801C9188 001C60E8 38 81 00 10 */ addi r4, r1, 0x10
/* 801C918C 001C60EC 38 A1 00 0C */ addi r5, r1, 0xc
/* 801C9190 001C60F0 EC 00 F8 28 */ fsubs f0, f0, f31
/* 801C9194 001C60F4 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 801C9198 001C60F8 4B E4 31 1D */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 801C919C 001C60FC C0 03 00 00 */ lfs f0, 0(r3)
/* 801C91A0 001C6100 48 00 00 14 */ b lbl_801C91B4
lbl_801C91A4:
/* 801C91A4 001C6104 C0 3C 00 08 */ lfs f1, 8(r28)
/* 801C91A8 001C6108 C0 1E 00 08 */ lfs f0, 8(r30)
/* 801C91AC 001C610C EC 01 00 2A */ fadds f0, f1, f0
/* 801C91B0 001C6110 EC 06 00 32 */ fmuls f0, f6, f0
lbl_801C91B4:
/* 801C91B4 001C6114 D3 7B 00 00 */ stfs f27, 0(r27)
/* 801C91B8 001C6118 D3 5B 00 04 */ stfs f26, 4(r27)
/* 801C91BC 001C611C D0 1B 00 08 */ stfs f0, 8(r27)
/* 801C91C0 001C6120 E3 E1 01 28 */ psq_l f31, 296(r1), 0, qr0
/* 801C91C4 001C6124 CB E1 01 20 */ lfd f31, 0x120(r1)
/* 801C91C8 001C6128 E3 C1 01 18 */ psq_l f30, 280(r1), 0, qr0
/* 801C91CC 001C612C CB C1 01 10 */ lfd f30, 0x110(r1)
/* 801C91D0 001C6130 E3 A1 01 08 */ psq_l f29, 264(r1), 0, qr0
/* 801C91D4 001C6134 CB A1 01 00 */ lfd f29, 0x100(r1)
/* 801C91D8 001C6138 E3 81 00 F8 */ psq_l f28, 248(r1), 0, qr0
/* 801C91DC 001C613C CB 81 00 F0 */ lfd f28, 0xf0(r1)
/* 801C91E0 001C6140 E3 61 00 E8 */ psq_l f27, 232(r1), 0, qr0
/* 801C91E4 001C6144 CB 61 00 E0 */ lfd f27, 0xe0(r1)
/* 801C91E8 001C6148 E3 41 00 D8 */ psq_l f26, 216(r1), 0, qr0
/* 801C91EC 001C614C CB 41 00 D0 */ lfd f26, 0xd0(r1)
/* 801C91F0 001C6150 E3 21 00 C8 */ psq_l f25, 200(r1), 0, qr0
/* 801C91F4 001C6154 CB 21 00 C0 */ lfd f25, 0xc0(r1)
/* 801C91F8 001C6158 E3 01 00 B8 */ psq_l f24, 184(r1), 0, qr0
/* 801C91FC 001C615C CB 01 00 B0 */ lfd f24, 0xb0(r1)
/* 801C9200 001C6160 E2 E1 00 A8 */ psq_l f23, 168(r1), 0, qr0
/* 801C9204 001C6164 CA E1 00 A0 */ lfd f23, 0xa0(r1)
/* 801C9208 001C6168 E2 C1 00 98 */ psq_l f22, 152(r1), 0, qr0
/* 801C920C 001C616C CA C1 00 90 */ lfd f22, 0x90(r1)
/* 801C9210 001C6170 BB 61 00 7C */ lmw r27, 0x7c(r1)
/* 801C9214 001C6174 80 01 01 34 */ lwz r0, 0x134(r1)
/* 801C9218 001C6178 7C 08 03 A6 */ mtlr r0
/* 801C921C 001C617C 38 21 01 30 */ addi r1, r1, 0x130
/* 801C9220 001C6180 4E 80 00 20 */ blr
.global FitThroughLink2d__9CPFRegionCFRC9CVector3fRC7CPFLinkRC9CVector3ff
FitThroughLink2d__9CPFRegionCFRC9CVector3fRC7CPFLinkRC9CVector3ff:
/* 801C9224 001C6184 94 21 FF 50 */ stwu r1, -0xb0(r1)
/* 801C9228 001C6188 7C 08 02 A6 */ mflr r0
/* 801C922C 001C618C 90 01 00 B4 */ stw r0, 0xb4(r1)
/* 801C9230 001C6190 DB E1 00 A0 */ stfd f31, 0xa0(r1)
/* 801C9234 001C6194 F3 E1 00 A8 */ psq_st f31, 168(r1), 0, qr0
/* 801C9238 001C6198 DB C1 00 90 */ stfd f30, 0x90(r1)
/* 801C923C 001C619C F3 C1 00 98 */ psq_st f30, 152(r1), 0, qr0
/* 801C9240 001C61A0 DB A1 00 80 */ stfd f29, 0x80(r1)
/* 801C9244 001C61A4 F3 A1 00 88 */ psq_st f29, 136(r1), 0, qr0
/* 801C9248 001C61A8 DB 81 00 70 */ stfd f28, 0x70(r1)
/* 801C924C 001C61AC F3 81 00 78 */ psq_st f28, 120(r1), 0, qr0
/* 801C9250 001C61B0 DB 61 00 60 */ stfd f27, 0x60(r1)
/* 801C9254 001C61B4 F3 61 00 68 */ psq_st f27, 104(r1), 0, qr0
/* 801C9258 001C61B8 DB 41 00 50 */ stfd f26, 0x50(r1)
/* 801C925C 001C61BC F3 41 00 58 */ psq_st f26, 88(r1), 0, qr0
/* 801C9260 001C61C0 BF 61 00 3C */ stmw r27, 0x3c(r1)
/* 801C9264 001C61C4 7C DD 33 78 */ mr r29, r6
/* 801C9268 001C61C8 80 C4 00 00 */ lwz r6, 0(r4)
/* 801C926C 001C61CC 81 1D 00 00 */ lwz r8, 0(r29)
/* 801C9270 001C61D0 FC 40 08 18 */ frsp f2, f1
/* 801C9274 001C61D4 80 84 00 04 */ lwz r4, 4(r4)
/* 801C9278 001C61D8 7C 7B 1B 78 */ mr r27, r3
/* 801C927C 001C61DC 38 68 00 01 */ addi r3, r8, 1
/* 801C9280 001C61E0 C0 62 AB 40 */ lfs f3, lbl_805AC860@sda21(r2)
/* 801C9284 001C61E4 7C 03 33 D6 */ divw r0, r3, r6
/* 801C9288 001C61E8 C0 1D 00 08 */ lfs f0, 8(r29)
/* 801C928C 001C61EC 7C BC 2B 78 */ mr r28, r5
/* 801C9290 001C61F0 D0 21 00 08 */ stfs f1, 8(r1)
/* 801C9294 001C61F4 7C FE 3B 78 */ mr r30, r7
/* 801C9298 001C61F8 EC 03 00 32 */ fmuls f0, f3, f0
/* 801C929C 001C61FC 7C 00 31 D6 */ mullw r0, r0, r6
/* 801C92A0 001C6200 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 801C92A4 001C6204 7C 00 18 50 */ subf r0, r0, r3
/* 801C92A8 001C6208 1C 68 00 18 */ mulli r3, r8, 0x18
/* 801C92AC 001C620C 7F E4 1A 14 */ add r31, r4, r3
/* 801C92B0 001C6210 1C 00 00 18 */ mulli r0, r0, 0x18
/* 801C92B4 001C6214 C0 BF 00 00 */ lfs f5, 0(r31)
/* 801C92B8 001C6218 C0 5F 00 04 */ lfs f2, 4(r31)
/* 801C92BC 001C621C C0 1F 00 08 */ lfs f0, 8(r31)
/* 801C92C0 001C6220 7C 64 02 14 */ add r3, r4, r0
/* 801C92C4 001C6224 C0 C3 00 00 */ lfs f6, 0(r3)
/* 801C92C8 001C6228 C0 83 00 04 */ lfs f4, 4(r3)
/* 801C92CC 001C622C C0 23 00 08 */ lfs f1, 8(r3)
/* 801C92D0 001C6230 EF 86 28 28 */ fsubs f28, f6, f5
/* 801C92D4 001C6234 EF A4 10 28 */ fsubs f29, f4, f2
/* 801C92D8 001C6238 EF C1 00 28 */ fsubs f30, f1, f0
/* 801C92DC 001C623C D0 61 00 10 */ stfs f3, 0x10(r1)
/* 801C92E0 001C6240 40 80 01 34 */ bge lbl_801C9414
/* 801C92E4 001C6244 FC 20 E0 90 */ fmr f1, f28
/* 801C92E8 001C6248 38 61 00 24 */ addi r3, r1, 0x24
/* 801C92EC 001C624C FC 40 E8 90 */ fmr f2, f29
/* 801C92F0 001C6250 48 14 AF 11 */ bl __ct__9CVector2fFff
/* 801C92F4 001C6254 C0 21 00 24 */ lfs f1, 0x24(r1)
/* 801C92F8 001C6258 38 61 00 2C */ addi r3, r1, 0x2c
/* 801C92FC 001C625C C0 01 00 28 */ lfs f0, 0x28(r1)
/* 801C9300 001C6260 D0 21 00 2C */ stfs f1, 0x2c(r1)
/* 801C9304 001C6264 C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 801C9308 001C6268 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 801C930C 001C626C 48 14 AE 41 */ bl __amu__9CVector2fFf
/* 801C9310 001C6270 C0 3C 00 04 */ lfs f1, 4(r28)
/* 801C9314 001C6274 38 61 00 1C */ addi r3, r1, 0x1c
/* 801C9318 001C6278 C0 1F 00 04 */ lfs f0, 4(r31)
/* 801C931C 001C627C C0 7C 00 00 */ lfs f3, 0(r28)
/* 801C9320 001C6280 EC 41 00 28 */ fsubs f2, f1, f0
/* 801C9324 001C6284 C0 3F 00 00 */ lfs f1, 0(r31)
/* 801C9328 001C6288 C0 1F 00 10 */ lfs f0, 0x10(r31)
/* 801C932C 001C628C EC 23 08 28 */ fsubs f1, f3, f1
/* 801C9330 001C6290 C0 BC 00 08 */ lfs f5, 8(r28)
/* 801C9334 001C6294 C0 9F 00 08 */ lfs f4, 8(r31)
/* 801C9338 001C6298 EC 02 00 32 */ fmuls f0, f2, f0
/* 801C933C 001C629C C0 7F 00 0C */ lfs f3, 0xc(r31)
/* 801C9340 001C62A0 EC A5 20 28 */ fsubs f5, f5, f4
/* 801C9344 001C62A4 C0 9F 00 14 */ lfs f4, 0x14(r31)
/* 801C9348 001C62A8 EC 01 00 FA */ fmadds f0, f1, f3, f0
/* 801C934C 001C62AC EF 65 01 3A */ fmadds f27, f5, f4, f0
/* 801C9350 001C62B0 48 14 AE B1 */ bl __ct__9CVector2fFff
/* 801C9354 001C62B4 38 61 00 2C */ addi r3, r1, 0x2c
/* 801C9358 001C62B8 38 81 00 1C */ addi r4, r1, 0x1c
/* 801C935C 001C62BC 48 14 AC 4D */ bl Dot__9CVector2fFRC9CVector2fRC9CVector2f
/* 801C9360 001C62C0 C0 5E 00 04 */ lfs f2, 4(r30)
/* 801C9364 001C62C4 FF E0 08 90 */ fmr f31, f1
/* 801C9368 001C62C8 C0 1F 00 04 */ lfs f0, 4(r31)
/* 801C936C 001C62CC 38 61 00 14 */ addi r3, r1, 0x14
/* 801C9370 001C62D0 C0 7E 00 00 */ lfs f3, 0(r30)
/* 801C9374 001C62D4 EC 42 00 28 */ fsubs f2, f2, f0
/* 801C9378 001C62D8 C0 3F 00 00 */ lfs f1, 0(r31)
/* 801C937C 001C62DC C0 1F 00 10 */ lfs f0, 0x10(r31)
/* 801C9380 001C62E0 EC 23 08 28 */ fsubs f1, f3, f1
/* 801C9384 001C62E4 C0 BE 00 08 */ lfs f5, 8(r30)
/* 801C9388 001C62E8 C0 9F 00 08 */ lfs f4, 8(r31)
/* 801C938C 001C62EC EC 02 00 32 */ fmuls f0, f2, f0
/* 801C9390 001C62F0 C0 7F 00 0C */ lfs f3, 0xc(r31)
/* 801C9394 001C62F4 EC A5 20 28 */ fsubs f5, f5, f4
/* 801C9398 001C62F8 C0 9F 00 14 */ lfs f4, 0x14(r31)
/* 801C939C 001C62FC EC 01 00 FA */ fmadds f0, f1, f3, f0
/* 801C93A0 001C6300 EC 05 01 3A */ fmadds f0, f5, f4, f0
/* 801C93A4 001C6304 FF 40 00 50 */ fneg f26, f0
/* 801C93A8 001C6308 48 14 AE 59 */ bl __ct__9CVector2fFff
/* 801C93AC 001C630C 38 61 00 2C */ addi r3, r1, 0x2c
/* 801C93B0 001C6310 38 81 00 14 */ addi r4, r1, 0x14
/* 801C93B4 001C6314 48 14 AB F5 */ bl Dot__9CVector2fFRC9CVector2fRC9CVector2f
/* 801C93B8 001C6318 EC 7B D0 2A */ fadds f3, f27, f26
/* 801C93BC 001C631C C0 02 AB 44 */ lfs f0, lbl_805AC864@sda21(r2)
/* 801C93C0 001C6320 FC 03 00 40 */ fcmpo cr0, f3, f0
/* 801C93C4 001C6324 40 81 00 50 */ ble lbl_801C9414
/* 801C93C8 001C6328 C0 02 AB 48 */ lfs f0, lbl_805AC868@sda21(r2)
/* 801C93CC 001C632C EC 5B 00 72 */ fmuls f2, f27, f1
/* 801C93D0 001C6330 C0 3D 00 08 */ lfs f1, 8(r29)
/* 801C93D4 001C6334 38 61 00 08 */ addi r3, r1, 8
/* 801C93D8 001C6338 EC 60 18 24 */ fdivs f3, f0, f3
/* 801C93DC 001C633C C0 01 00 08 */ lfs f0, 8(r1)
/* 801C93E0 001C6340 38 81 00 10 */ addi r4, r1, 0x10
/* 801C93E4 001C6344 38 A1 00 0C */ addi r5, r1, 0xc
/* 801C93E8 001C6348 EC 5A 17 FA */ fmadds f2, f26, f31, f2
/* 801C93EC 001C634C EC 01 00 28 */ fsubs f0, f1, f0
/* 801C93F0 001C6350 EC 23 00 B2 */ fmuls f1, f3, f2
/* 801C93F4 001C6354 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 801C93F8 001C6358 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 801C93FC 001C635C 4B E4 2E B9 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 801C9400 001C6360 C0 23 00 00 */ lfs f1, 0(r3)
/* 801C9404 001C6364 C0 1D 00 0C */ lfs f0, 0xc(r29)
/* 801C9408 001C6368 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 801C940C 001C636C EC 01 00 32 */ fmuls f0, f1, f0
/* 801C9410 001C6370 D0 01 00 10 */ stfs f0, 0x10(r1)
lbl_801C9414:
/* 801C9414 001C6374 C0 41 00 10 */ lfs f2, 0x10(r1)
/* 801C9418 001C6378 C0 3F 00 00 */ lfs f1, 0(r31)
/* 801C941C 001C637C EC 02 07 32 */ fmuls f0, f2, f28
/* 801C9420 001C6380 C0 BF 00 04 */ lfs f5, 4(r31)
/* 801C9424 001C6384 EC 82 07 72 */ fmuls f4, f2, f29
/* 801C9428 001C6388 C0 7F 00 08 */ lfs f3, 8(r31)
/* 801C942C 001C638C EC 42 07 B2 */ fmuls f2, f2, f30
/* 801C9430 001C6390 EC 01 00 2A */ fadds f0, f1, f0
/* 801C9434 001C6394 EC 85 20 2A */ fadds f4, f5, f4
/* 801C9438 001C6398 EC 23 10 2A */ fadds f1, f3, f2
/* 801C943C 001C639C D0 1B 00 00 */ stfs f0, 0(r27)
/* 801C9440 001C63A0 D0 9B 00 04 */ stfs f4, 4(r27)
/* 801C9444 001C63A4 D0 3B 00 08 */ stfs f1, 8(r27)
/* 801C9448 001C63A8 E3 E1 00 A8 */ psq_l f31, 168(r1), 0, qr0
/* 801C944C 001C63AC CB E1 00 A0 */ lfd f31, 0xa0(r1)
/* 801C9450 001C63B0 E3 C1 00 98 */ psq_l f30, 152(r1), 0, qr0
/* 801C9454 001C63B4 CB C1 00 90 */ lfd f30, 0x90(r1)
/* 801C9458 001C63B8 E3 A1 00 88 */ psq_l f29, 136(r1), 0, qr0
/* 801C945C 001C63BC CB A1 00 80 */ lfd f29, 0x80(r1)
/* 801C9460 001C63C0 E3 81 00 78 */ psq_l f28, 120(r1), 0, qr0
/* 801C9464 001C63C4 CB 81 00 70 */ lfd f28, 0x70(r1)
/* 801C9468 001C63C8 E3 61 00 68 */ psq_l f27, 104(r1), 0, qr0
/* 801C946C 001C63CC CB 61 00 60 */ lfd f27, 0x60(r1)
/* 801C9470 001C63D0 E3 41 00 58 */ psq_l f26, 88(r1), 0, qr0
/* 801C9474 001C63D4 CB 41 00 50 */ lfd f26, 0x50(r1)
/* 801C9478 001C63D8 BB 61 00 3C */ lmw r27, 0x3c(r1)
/* 801C947C 001C63DC 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 801C9480 001C63E0 7C 08 03 A6 */ mtlr r0
/* 801C9484 001C63E4 38 21 00 B0 */ addi r1, r1, 0xb0
/* 801C9488 001C63E8 4E 80 00 20 */ blr
.global GetLinkMidPoint__9CPFRegionCFRC7CPFLink
GetLinkMidPoint__9CPFRegionCFRC7CPFLink:
/* 801C948C 001C63EC 80 E5 00 00 */ lwz r7, 0(r5)
/* 801C9490 001C63F0 80 A4 00 00 */ lwz r5, 0(r4)
/* 801C9494 001C63F4 38 C7 00 01 */ addi r6, r7, 1
/* 801C9498 001C63F8 81 04 00 04 */ lwz r8, 4(r4)
/* 801C949C 001C63FC 7C 06 2B D6 */ divw r0, r6, r5
/* 801C94A0 001C6400 C0 A2 AB 40 */ lfs f5, lbl_805AC860@sda21(r2)
/* 801C94A4 001C6404 7C 00 29 D6 */ mullw r0, r0, r5
/* 801C94A8 001C6408 7C 00 30 50 */ subf r0, r0, r6
/* 801C94AC 001C640C 1C 87 00 18 */ mulli r4, r7, 0x18
/* 801C94B0 001C6410 7C 88 22 14 */ add r4, r8, r4
/* 801C94B4 001C6414 1C 00 00 18 */ mulli r0, r0, 0x18
/* 801C94B8 001C6418 C0 24 00 00 */ lfs f1, 0(r4)
/* 801C94BC 001C641C C0 84 00 04 */ lfs f4, 4(r4)
/* 801C94C0 001C6420 C0 44 00 08 */ lfs f2, 8(r4)
/* 801C94C4 001C6424 7C 88 02 14 */ add r4, r8, r0
/* 801C94C8 001C6428 C0 04 00 00 */ lfs f0, 0(r4)
/* 801C94CC 001C642C C0 64 00 04 */ lfs f3, 4(r4)
/* 801C94D0 001C6430 EC 01 00 2A */ fadds f0, f1, f0
/* 801C94D4 001C6434 C0 24 00 08 */ lfs f1, 8(r4)
/* 801C94D8 001C6438 EC 64 18 2A */ fadds f3, f4, f3
/* 801C94DC 001C643C EC 22 08 2A */ fadds f1, f2, f1
/* 801C94E0 001C6440 EC 05 00 32 */ fmuls f0, f5, f0
/* 801C94E4 001C6444 EC 45 00 F2 */ fmuls f2, f5, f3
/* 801C94E8 001C6448 EC 25 00 72 */ fmuls f1, f5, f1
/* 801C94EC 001C644C D0 03 00 00 */ stfs f0, 0(r3)
/* 801C94F0 001C6450 D0 43 00 04 */ stfs f2, 4(r3)
/* 801C94F4 001C6454 D0 23 00 08 */ stfs f1, 8(r3)
/* 801C94F8 001C6458 4E 80 00 20 */ blr
.global DropToGround__9CPFRegionCFR9CVector3f
DropToGround__9CPFRegionCFR9CVector3f:
/* 801C94FC 001C645C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801C9500 001C6460 80 A3 00 04 */ lwz r5, 4(r3)
/* 801C9504 001C6464 C0 24 00 04 */ lfs f1, 4(r4)
/* 801C9508 001C6468 C0 05 00 04 */ lfs f0, 4(r5)
/* 801C950C 001C646C C0 44 00 00 */ lfs f2, 0(r4)
/* 801C9510 001C6470 EC A1 00 28 */ fsubs f5, f1, f0
/* 801C9514 001C6474 C0 25 00 00 */ lfs f1, 0(r5)
/* 801C9518 001C6478 C0 03 00 1C */ lfs f0, 0x1c(r3)
/* 801C951C 001C647C EC 62 08 28 */ fsubs f3, f2, f1
/* 801C9520 001C6480 C0 84 00 08 */ lfs f4, 8(r4)
/* 801C9524 001C6484 EC 05 00 32 */ fmuls f0, f5, f0
/* 801C9528 001C6488 C0 45 00 08 */ lfs f2, 8(r5)
/* 801C952C 001C648C C0 23 00 18 */ lfs f1, 0x18(r3)
/* 801C9530 001C6490 EC 84 10 28 */ fsubs f4, f4, f2
/* 801C9534 001C6494 C0 43 00 20 */ lfs f2, 0x20(r3)
/* 801C9538 001C6498 EC 03 00 7A */ fmadds f0, f3, f1, f0
/* 801C953C 001C649C C0 24 00 08 */ lfs f1, 8(r4)
/* 801C9540 001C64A0 D0 61 00 08 */ stfs f3, 8(r1)
/* 801C9544 001C64A4 EC 04 00 BA */ fmadds f0, f4, f2, f0
/* 801C9548 001C64A8 D0 A1 00 0C */ stfs f5, 0xc(r1)
/* 801C954C 001C64AC D0 81 00 10 */ stfs f4, 0x10(r1)
/* 801C9550 001C64B0 EC 00 10 24 */ fdivs f0, f0, f2
/* 801C9554 001C64B4 EC 01 00 28 */ fsubs f0, f1, f0
/* 801C9558 001C64B8 D0 04 00 08 */ stfs f0, 8(r4)
/* 801C955C 001C64BC 38 21 00 20 */ addi r1, r1, 0x20
/* 801C9560 001C64C0 4E 80 00 20 */ blr
.global SetLinkTo__9CPFRegionFi
SetLinkTo__9CPFRegionFi:
/* 801C9564 001C64C4 80 03 00 08 */ lwz r0, 8(r3)
/* 801C9568 001C64C8 38 E0 00 00 */ li r7, 0
/* 801C956C 001C64CC 38 C0 00 00 */ li r6, 0
/* 801C9570 001C64D0 7C 09 03 A6 */ mtctr r0
/* 801C9574 001C64D4 2C 00 00 00 */ cmpwi r0, 0
/* 801C9578 001C64D8 4C 81 00 20 */ blelr
lbl_801C957C:
/* 801C957C 001C64DC 80 A3 00 0C */ lwz r5, 0xc(r3)
/* 801C9580 001C64E0 38 06 00 04 */ addi r0, r6, 4
/* 801C9584 001C64E4 7C 05 00 2E */ lwzx r0, r5, r0
/* 801C9588 001C64E8 7C 04 00 00 */ cmpw r4, r0
/* 801C958C 001C64EC 40 82 00 10 */ bne lbl_801C959C
/* 801C9590 001C64F0 80 63 00 4C */ lwz r3, 0x4c(r3)
/* 801C9594 001C64F4 90 E3 00 2C */ stw r7, 0x2c(r3)
/* 801C9598 001C64F8 4E 80 00 20 */ blr
lbl_801C959C:
/* 801C959C 001C64FC 38 C6 00 10 */ addi r6, r6, 0x10
/* 801C95A0 001C6500 38 E7 00 01 */ addi r7, r7, 1
/* 801C95A4 001C6504 42 00 FF D8 */ bdnz lbl_801C957C
.global sub_801c95a8
sub_801c95a8:
/* 801C95A8 001C6508 4E 80 00 20 */ blr
.global "FindBestPoint__9CPFRegionFRQ24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>RC9CVector3fUif"
"FindBestPoint__9CPFRegionFRQ24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>RC9CVector3fUif":
/* 801C95AC 001C650C 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 801C95B0 001C6510 7C 08 02 A6 */ mflr r0
/* 801C95B4 001C6514 90 01 00 74 */ stw r0, 0x74(r1)
/* 801C95B8 001C6518 BE E1 00 4C */ stmw r23, 0x4c(r1)
/* 801C95BC 001C651C 7C 7C 1B 78 */ mr r28, r3
/* 801C95C0 001C6520 54 D8 07 BD */ rlwinm. r24, r6, 0, 0x1e, 0x1e
/* 801C95C4 001C6524 7C 9D 23 78 */ mr r29, r4
/* 801C95C8 001C6528 7C BE 2B 78 */ mr r30, r5
/* 801C95CC 001C652C 3B E0 00 00 */ li r31, 0
/* 801C95D0 001C6530 80 63 00 4C */ lwz r3, 0x4c(r3)
/* 801C95D4 001C6534 D0 23 00 00 */ stfs f1, 0(r3)
/* 801C95D8 001C6538 40 82 02 64 */ bne lbl_801C983C
/* 801C95DC 001C653C 3A E0 00 00 */ li r23, 0
/* 801C95E0 001C6540 3B 20 00 00 */ li r25, 0
/* 801C95E4 001C6544 48 00 02 4C */ b lbl_801C9830
lbl_801C95E8:
/* 801C95E8 001C6548 38 97 00 01 */ addi r4, r23, 1
/* 801C95EC 001C654C 80 FD 00 0C */ lwz r7, 0xc(r29)
/* 801C95F0 001C6550 7C 64 2B D6 */ divw r3, r4, r5
/* 801C95F4 001C6554 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C95F8 001C6558 80 DC 00 04 */ lwz r6, 4(r28)
/* 801C95FC 001C655C 90 E1 00 2C */ stw r7, 0x2c(r1)
/* 801C9600 001C6560 7F 66 CA 14 */ add r27, r6, r25
/* 801C9604 001C6564 90 E1 00 28 */ stw r7, 0x28(r1)
/* 801C9608 001C6568 7C 63 29 D6 */ mullw r3, r3, r5
/* 801C960C 001C656C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801C9610 001C6570 7C 63 20 50 */ subf r3, r3, r4
/* 801C9614 001C6574 7C 07 02 14 */ add r0, r7, r0
/* 801C9618 001C6578 1C 63 00 18 */ mulli r3, r3, 0x18
/* 801C961C 001C657C 90 01 00 34 */ stw r0, 0x34(r1)
/* 801C9620 001C6580 90 01 00 30 */ stw r0, 0x30(r1)
/* 801C9624 001C6584 7F 46 1A 14 */ add r26, r6, r3
/* 801C9628 001C6588 48 00 00 08 */ b lbl_801C9630
lbl_801C962C:
/* 801C962C 001C658C 38 E7 00 0C */ addi r7, r7, 0xc
lbl_801C9630:
/* 801C9630 001C6590 7C 07 00 40 */ cmplw r7, r0
/* 801C9634 001C6594 40 82 FF F8 */ bne lbl_801C962C
/* 801C9638 001C6598 38 00 00 00 */ li r0, 0
/* 801C963C 001C659C 90 1D 00 04 */ stw r0, 4(r29)
/* 801C9640 001C65A0 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C9644 001C65A4 80 BD 00 08 */ lwz r5, 8(r29)
/* 801C9648 001C65A8 7C 00 28 00 */ cmpw r0, r5
/* 801C964C 001C65AC 41 80 00 1C */ blt lbl_801C9668
/* 801C9650 001C65B0 2C 05 00 00 */ cmpwi r5, 0
/* 801C9654 001C65B4 7F A3 EB 78 */ mr r3, r29
/* 801C9658 001C65B8 38 80 00 04 */ li r4, 4
/* 801C965C 001C65BC 41 82 00 08 */ beq lbl_801C9664
/* 801C9660 001C65C0 54 A4 08 3C */ slwi r4, r5, 1
lbl_801C9664:
/* 801C9664 001C65C4 4B E9 46 95 */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_801C9668:
/* 801C9668 001C65C8 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C966C 001C65CC 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 801C9670 001C65D0 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801C9674 001C65D4 7C 63 02 15 */ add. r3, r3, r0
/* 801C9678 001C65D8 41 82 00 1C */ beq lbl_801C9694
/* 801C967C 001C65DC C0 1B 00 00 */ lfs f0, 0(r27)
/* 801C9680 001C65E0 D0 03 00 00 */ stfs f0, 0(r3)
/* 801C9684 001C65E4 C0 1B 00 04 */ lfs f0, 4(r27)
/* 801C9688 001C65E8 D0 03 00 04 */ stfs f0, 4(r3)
/* 801C968C 001C65EC C0 1B 00 08 */ lfs f0, 8(r27)
/* 801C9690 001C65F0 D0 03 00 08 */ stfs f0, 8(r3)
lbl_801C9694:
/* 801C9694 001C65F4 80 7D 00 04 */ lwz r3, 4(r29)
/* 801C9698 001C65F8 38 03 00 01 */ addi r0, r3, 1
/* 801C969C 001C65FC 90 1D 00 04 */ stw r0, 4(r29)
/* 801C96A0 001C6600 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C96A4 001C6604 80 BD 00 08 */ lwz r5, 8(r29)
/* 801C96A8 001C6608 7C 00 28 00 */ cmpw r0, r5
/* 801C96AC 001C660C 41 80 00 1C */ blt lbl_801C96C8
/* 801C96B0 001C6610 2C 05 00 00 */ cmpwi r5, 0
/* 801C96B4 001C6614 7F A3 EB 78 */ mr r3, r29
/* 801C96B8 001C6618 38 80 00 04 */ li r4, 4
/* 801C96BC 001C661C 41 82 00 08 */ beq lbl_801C96C4
/* 801C96C0 001C6620 54 A4 08 3C */ slwi r4, r5, 1
lbl_801C96C4:
/* 801C96C4 001C6624 4B E9 46 35 */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_801C96C8:
/* 801C96C8 001C6628 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C96CC 001C662C 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 801C96D0 001C6630 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801C96D4 001C6634 7C 63 02 15 */ add. r3, r3, r0
/* 801C96D8 001C6638 41 82 00 1C */ beq lbl_801C96F4
/* 801C96DC 001C663C C0 1B 00 00 */ lfs f0, 0(r27)
/* 801C96E0 001C6640 D0 03 00 00 */ stfs f0, 0(r3)
/* 801C96E4 001C6644 C0 1B 00 04 */ lfs f0, 4(r27)
/* 801C96E8 001C6648 D0 03 00 04 */ stfs f0, 4(r3)
/* 801C96EC 001C664C C0 1B 00 08 */ lfs f0, 8(r27)
/* 801C96F0 001C6650 D0 03 00 08 */ stfs f0, 8(r3)
lbl_801C96F4:
/* 801C96F4 001C6654 80 7D 00 04 */ lwz r3, 4(r29)
/* 801C96F8 001C6658 38 03 00 01 */ addi r0, r3, 1
/* 801C96FC 001C665C 90 1D 00 04 */ stw r0, 4(r29)
/* 801C9700 001C6660 80 7D 00 04 */ lwz r3, 4(r29)
/* 801C9704 001C6664 80 9D 00 0C */ lwz r4, 0xc(r29)
/* 801C9708 001C6668 38 03 FF FF */ addi r0, r3, -1
/* 801C970C 001C666C C0 1C 00 14 */ lfs f0, 0x14(r28)
/* 801C9710 001C6670 1C 60 00 0C */ mulli r3, r0, 0xc
/* 801C9714 001C6674 38 03 00 08 */ addi r0, r3, 8
/* 801C9718 001C6678 7C 24 04 2E */ lfsx f1, r4, r0
/* 801C971C 001C667C EC 01 00 2A */ fadds f0, f1, f0
/* 801C9720 001C6680 7C 04 05 2E */ stfsx f0, r4, r0
/* 801C9724 001C6684 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C9728 001C6688 80 BD 00 08 */ lwz r5, 8(r29)
/* 801C972C 001C668C 7C 00 28 00 */ cmpw r0, r5
/* 801C9730 001C6690 41 80 00 1C */ blt lbl_801C974C
/* 801C9734 001C6694 2C 05 00 00 */ cmpwi r5, 0
/* 801C9738 001C6698 7F A3 EB 78 */ mr r3, r29
/* 801C973C 001C669C 38 80 00 04 */ li r4, 4
/* 801C9740 001C66A0 41 82 00 08 */ beq lbl_801C9748
/* 801C9744 001C66A4 54 A4 08 3C */ slwi r4, r5, 1
lbl_801C9748:
/* 801C9748 001C66A8 4B E9 45 B1 */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_801C974C:
/* 801C974C 001C66AC 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C9750 001C66B0 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 801C9754 001C66B4 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801C9758 001C66B8 7C 63 02 15 */ add. r3, r3, r0
/* 801C975C 001C66BC 41 82 00 1C */ beq lbl_801C9778
/* 801C9760 001C66C0 C0 1A 00 00 */ lfs f0, 0(r26)
/* 801C9764 001C66C4 D0 03 00 00 */ stfs f0, 0(r3)
/* 801C9768 001C66C8 C0 1A 00 04 */ lfs f0, 4(r26)
/* 801C976C 001C66CC D0 03 00 04 */ stfs f0, 4(r3)
/* 801C9770 001C66D0 C0 1A 00 08 */ lfs f0, 8(r26)
/* 801C9774 001C66D4 D0 03 00 08 */ stfs f0, 8(r3)
lbl_801C9778:
/* 801C9778 001C66D8 80 7D 00 04 */ lwz r3, 4(r29)
/* 801C977C 001C66DC 38 03 00 01 */ addi r0, r3, 1
/* 801C9780 001C66E0 90 1D 00 04 */ stw r0, 4(r29)
/* 801C9784 001C66E4 80 7D 00 04 */ lwz r3, 4(r29)
/* 801C9788 001C66E8 80 9D 00 0C */ lwz r4, 0xc(r29)
/* 801C978C 001C66EC 38 03 FF FF */ addi r0, r3, -1
/* 801C9790 001C66F0 C0 1C 00 14 */ lfs f0, 0x14(r28)
/* 801C9794 001C66F4 1C 60 00 0C */ mulli r3, r0, 0xc
/* 801C9798 001C66F8 38 03 00 08 */ addi r0, r3, 8
/* 801C979C 001C66FC 7C 24 04 2E */ lfsx f1, r4, r0
/* 801C97A0 001C6700 EC 01 00 2A */ fadds f0, f1, f0
/* 801C97A4 001C6704 7C 04 05 2E */ stfsx f0, r4, r0
/* 801C97A8 001C6708 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C97AC 001C670C 80 BD 00 08 */ lwz r5, 8(r29)
/* 801C97B0 001C6710 7C 00 28 00 */ cmpw r0, r5
/* 801C97B4 001C6714 41 80 00 1C */ blt lbl_801C97D0
/* 801C97B8 001C6718 2C 05 00 00 */ cmpwi r5, 0
/* 801C97BC 001C671C 7F A3 EB 78 */ mr r3, r29
/* 801C97C0 001C6720 38 80 00 04 */ li r4, 4
/* 801C97C4 001C6724 41 82 00 08 */ beq lbl_801C97CC
/* 801C97C8 001C6728 54 A4 08 3C */ slwi r4, r5, 1
lbl_801C97CC:
/* 801C97CC 001C672C 4B E9 45 2D */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_801C97D0:
/* 801C97D0 001C6730 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C97D4 001C6734 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 801C97D8 001C6738 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801C97DC 001C673C 7C 63 02 15 */ add. r3, r3, r0
/* 801C97E0 001C6740 41 82 00 1C */ beq lbl_801C97FC
/* 801C97E4 001C6744 C0 1A 00 00 */ lfs f0, 0(r26)
/* 801C97E8 001C6748 D0 03 00 00 */ stfs f0, 0(r3)
/* 801C97EC 001C674C C0 1A 00 04 */ lfs f0, 4(r26)
/* 801C97F0 001C6750 D0 03 00 04 */ stfs f0, 4(r3)
/* 801C97F4 001C6754 C0 1A 00 08 */ lfs f0, 8(r26)
/* 801C97F8 001C6758 D0 03 00 08 */ stfs f0, 8(r3)
lbl_801C97FC:
/* 801C97FC 001C675C 80 BD 00 04 */ lwz r5, 4(r29)
/* 801C9800 001C6760 7F 83 E3 78 */ mr r3, r28
/* 801C9804 001C6764 7F A4 EB 78 */ mr r4, r29
/* 801C9808 001C6768 7F C6 F3 78 */ mr r6, r30
/* 801C980C 001C676C 38 05 00 01 */ addi r0, r5, 1
/* 801C9810 001C6770 38 BB 00 0C */ addi r5, r27, 0xc
/* 801C9814 001C6774 90 1D 00 04 */ stw r0, 4(r29)
/* 801C9818 001C6778 38 E0 00 01 */ li r7, 1
/* 801C981C 001C677C 48 00 02 45 */ bl "FindClosestPointOnPolygon__9CPFRegionFRCQ24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>RC9CVector3fRC9CVector3fb"
/* 801C9820 001C6780 7F E0 1B 78 */ or r0, r31, r3
/* 801C9824 001C6784 3A F7 00 01 */ addi r23, r23, 1
/* 801C9828 001C6788 54 1F 06 3E */ clrlwi r31, r0, 0x18
/* 801C982C 001C678C 3B 39 00 18 */ addi r25, r25, 0x18
lbl_801C9830:
/* 801C9830 001C6790 80 BC 00 00 */ lwz r5, 0(r28)
/* 801C9834 001C6794 7C 17 28 00 */ cmpw r23, r5
/* 801C9838 001C6798 41 80 FD B0 */ blt lbl_801C95E8
lbl_801C983C:
/* 801C983C 001C679C 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C9840 001C67A0 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 801C9844 001C67A4 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801C9848 001C67A8 90 61 00 1C */ stw r3, 0x1c(r1)
/* 801C984C 001C67AC 7C 03 02 14 */ add r0, r3, r0
/* 801C9850 001C67B0 90 61 00 18 */ stw r3, 0x18(r1)
/* 801C9854 001C67B4 90 01 00 24 */ stw r0, 0x24(r1)
/* 801C9858 001C67B8 90 01 00 20 */ stw r0, 0x20(r1)
/* 801C985C 001C67BC 48 00 00 08 */ b lbl_801C9864
lbl_801C9860:
/* 801C9860 001C67C0 38 63 00 0C */ addi r3, r3, 0xc
lbl_801C9864:
/* 801C9864 001C67C4 7C 03 00 40 */ cmplw r3, r0
/* 801C9868 001C67C8 40 82 FF F8 */ bne lbl_801C9860
/* 801C986C 001C67CC 3B 40 00 00 */ li r26, 0
/* 801C9870 001C67D0 93 5D 00 04 */ stw r26, 4(r29)
/* 801C9874 001C67D4 7F 59 D3 78 */ mr r25, r26
/* 801C9878 001C67D8 48 00 00 74 */ b lbl_801C98EC
lbl_801C987C:
/* 801C987C 001C67DC 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C9880 001C67E0 80 BD 00 08 */ lwz r5, 8(r29)
/* 801C9884 001C67E4 80 7C 00 04 */ lwz r3, 4(r28)
/* 801C9888 001C67E8 7C 00 28 00 */ cmpw r0, r5
/* 801C988C 001C67EC 7E E3 CA 14 */ add r23, r3, r25
/* 801C9890 001C67F0 41 80 00 1C */ blt lbl_801C98AC
/* 801C9894 001C67F4 2C 05 00 00 */ cmpwi r5, 0
/* 801C9898 001C67F8 7F A3 EB 78 */ mr r3, r29
/* 801C989C 001C67FC 38 80 00 04 */ li r4, 4
/* 801C98A0 001C6800 41 82 00 08 */ beq lbl_801C98A8
/* 801C98A4 001C6804 54 A4 08 3C */ slwi r4, r5, 1
lbl_801C98A8:
/* 801C98A8 001C6808 4B E9 44 51 */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_801C98AC:
/* 801C98AC 001C680C 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C98B0 001C6810 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 801C98B4 001C6814 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801C98B8 001C6818 7C 63 02 15 */ add. r3, r3, r0
/* 801C98BC 001C681C 41 82 00 1C */ beq lbl_801C98D8
/* 801C98C0 001C6820 C0 17 00 00 */ lfs f0, 0(r23)
/* 801C98C4 001C6824 D0 03 00 00 */ stfs f0, 0(r3)
/* 801C98C8 001C6828 C0 17 00 04 */ lfs f0, 4(r23)
/* 801C98CC 001C682C D0 03 00 04 */ stfs f0, 4(r3)
/* 801C98D0 001C6830 C0 17 00 08 */ lfs f0, 8(r23)
/* 801C98D4 001C6834 D0 03 00 08 */ stfs f0, 8(r3)
lbl_801C98D8:
/* 801C98D8 001C6838 80 7D 00 04 */ lwz r3, 4(r29)
/* 801C98DC 001C683C 3B 39 00 18 */ addi r25, r25, 0x18
/* 801C98E0 001C6840 3B 5A 00 01 */ addi r26, r26, 1
/* 801C98E4 001C6844 38 03 00 01 */ addi r0, r3, 1
/* 801C98E8 001C6848 90 1D 00 04 */ stw r0, 4(r29)
lbl_801C98EC:
/* 801C98EC 001C684C 80 1C 00 00 */ lwz r0, 0(r28)
/* 801C98F0 001C6850 7C 1A 00 00 */ cmpw r26, r0
/* 801C98F4 001C6854 41 80 FF 88 */ blt lbl_801C987C
/* 801C98F8 001C6858 7F 83 E3 78 */ mr r3, r28
/* 801C98FC 001C685C 7F A4 EB 78 */ mr r4, r29
/* 801C9900 001C6860 7F C6 F3 78 */ mr r6, r30
/* 801C9904 001C6864 38 BC 00 18 */ addi r5, r28, 0x18
/* 801C9908 001C6868 38 E0 00 00 */ li r7, 0
/* 801C990C 001C686C 48 00 01 55 */ bl "FindClosestPointOnPolygon__9CPFRegionFRCQ24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>RC9CVector3fRC9CVector3fb"
/* 801C9910 001C6870 28 18 00 00 */ cmplwi r24, 0
/* 801C9914 001C6874 7F E0 1B 78 */ or r0, r31, r3
/* 801C9918 001C6878 54 18 06 3E */ clrlwi r24, r0, 0x18
/* 801C991C 001C687C 40 82 01 2C */ bne lbl_801C9A48
/* 801C9920 001C6880 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C9924 001C6884 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 801C9928 001C6888 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801C992C 001C688C 90 61 00 0C */ stw r3, 0xc(r1)
/* 801C9930 001C6890 7C 03 02 14 */ add r0, r3, r0
/* 801C9934 001C6894 90 61 00 08 */ stw r3, 8(r1)
/* 801C9938 001C6898 90 01 00 14 */ stw r0, 0x14(r1)
/* 801C993C 001C689C 90 01 00 10 */ stw r0, 0x10(r1)
/* 801C9940 001C68A0 48 00 00 08 */ b lbl_801C9948
lbl_801C9944:
/* 801C9944 001C68A4 38 63 00 0C */ addi r3, r3, 0xc
lbl_801C9948:
/* 801C9948 001C68A8 7C 03 00 40 */ cmplw r3, r0
/* 801C994C 001C68AC 40 82 FF F8 */ bne lbl_801C9944
/* 801C9950 001C68B0 38 00 00 00 */ li r0, 0
/* 801C9954 001C68B4 90 1D 00 04 */ stw r0, 4(r29)
/* 801C9958 001C68B8 80 7C 00 00 */ lwz r3, 0(r28)
/* 801C995C 001C68BC 3B 43 FF FF */ addi r26, r3, -1
/* 801C9960 001C68C0 1F 3A 00 18 */ mulli r25, r26, 0x18
/* 801C9964 001C68C4 48 00 00 98 */ b lbl_801C99FC
lbl_801C9968:
/* 801C9968 001C68C8 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C996C 001C68CC 80 BD 00 08 */ lwz r5, 8(r29)
/* 801C9970 001C68D0 80 7C 00 04 */ lwz r3, 4(r28)
/* 801C9974 001C68D4 7C 00 28 00 */ cmpw r0, r5
/* 801C9978 001C68D8 7E E3 CA 14 */ add r23, r3, r25
/* 801C997C 001C68DC 41 80 00 1C */ blt lbl_801C9998
/* 801C9980 001C68E0 2C 05 00 00 */ cmpwi r5, 0
/* 801C9984 001C68E4 7F A3 EB 78 */ mr r3, r29
/* 801C9988 001C68E8 38 80 00 04 */ li r4, 4
/* 801C998C 001C68EC 41 82 00 08 */ beq lbl_801C9994
/* 801C9990 001C68F0 54 A4 08 3C */ slwi r4, r5, 1
lbl_801C9994:
/* 801C9994 001C68F4 4B E9 43 65 */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_801C9998:
/* 801C9998 001C68F8 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C999C 001C68FC 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 801C99A0 001C6900 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801C99A4 001C6904 7C 63 02 15 */ add. r3, r3, r0
/* 801C99A8 001C6908 41 82 00 1C */ beq lbl_801C99C4
/* 801C99AC 001C690C C0 17 00 00 */ lfs f0, 0(r23)
/* 801C99B0 001C6910 D0 03 00 00 */ stfs f0, 0(r3)
/* 801C99B4 001C6914 C0 17 00 04 */ lfs f0, 4(r23)
/* 801C99B8 001C6918 D0 03 00 04 */ stfs f0, 4(r3)
/* 801C99BC 001C691C C0 17 00 08 */ lfs f0, 8(r23)
/* 801C99C0 001C6920 D0 03 00 08 */ stfs f0, 8(r3)
lbl_801C99C4:
/* 801C99C4 001C6924 80 7D 00 04 */ lwz r3, 4(r29)
/* 801C99C8 001C6928 3B 39 FF E8 */ addi r25, r25, -24
/* 801C99CC 001C692C 3B 5A FF FF */ addi r26, r26, -1
/* 801C99D0 001C6930 38 03 00 01 */ addi r0, r3, 1
/* 801C99D4 001C6934 90 1D 00 04 */ stw r0, 4(r29)
/* 801C99D8 001C6938 80 7D 00 04 */ lwz r3, 4(r29)
/* 801C99DC 001C693C 80 9D 00 0C */ lwz r4, 0xc(r29)
/* 801C99E0 001C6940 38 03 FF FF */ addi r0, r3, -1
/* 801C99E4 001C6944 C0 1C 00 14 */ lfs f0, 0x14(r28)
/* 801C99E8 001C6948 1C 60 00 0C */ mulli r3, r0, 0xc
/* 801C99EC 001C694C 38 03 00 08 */ addi r0, r3, 8
/* 801C99F0 001C6950 7C 24 04 2E */ lfsx f1, r4, r0
/* 801C99F4 001C6954 EC 01 00 2A */ fadds f0, f1, f0
/* 801C99F8 001C6958 7C 04 05 2E */ stfsx f0, r4, r0
lbl_801C99FC:
/* 801C99FC 001C695C 2C 1A 00 00 */ cmpwi r26, 0
/* 801C9A00 001C6960 40 80 FF 68 */ bge lbl_801C9968
/* 801C9A04 001C6964 C0 5C 00 20 */ lfs f2, 0x20(r28)
/* 801C9A08 001C6968 7F 83 E3 78 */ mr r3, r28
/* 801C9A0C 001C696C C0 3C 00 1C */ lfs f1, 0x1c(r28)
/* 801C9A10 001C6970 7F A4 EB 78 */ mr r4, r29
/* 801C9A14 001C6974 C0 1C 00 18 */ lfs f0, 0x18(r28)
/* 801C9A18 001C6978 FC 40 10 50 */ fneg f2, f2
/* 801C9A1C 001C697C FC 20 08 50 */ fneg f1, f1
/* 801C9A20 001C6980 7F C6 F3 78 */ mr r6, r30
/* 801C9A24 001C6984 FC 00 00 50 */ fneg f0, f0
/* 801C9A28 001C6988 38 A1 00 38 */ addi r5, r1, 0x38
/* 801C9A2C 001C698C D0 41 00 40 */ stfs f2, 0x40(r1)
/* 801C9A30 001C6990 38 E0 00 00 */ li r7, 0
/* 801C9A34 001C6994 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 801C9A38 001C6998 D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 801C9A3C 001C699C 48 00 00 25 */ bl "FindClosestPointOnPolygon__9CPFRegionFRCQ24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>RC9CVector3fRC9CVector3fb"
/* 801C9A40 001C69A0 7F 00 1B 78 */ or r0, r24, r3
/* 801C9A44 001C69A4 54 18 06 3E */ clrlwi r24, r0, 0x18
lbl_801C9A48:
/* 801C9A48 001C69A8 7F 03 C3 78 */ mr r3, r24
/* 801C9A4C 001C69AC BA E1 00 4C */ lmw r23, 0x4c(r1)
/* 801C9A50 001C69B0 80 01 00 74 */ lwz r0, 0x74(r1)
/* 801C9A54 001C69B4 7C 08 03 A6 */ mtlr r0
/* 801C9A58 001C69B8 38 21 00 70 */ addi r1, r1, 0x70
/* 801C9A5C 001C69BC 4E 80 00 20 */ blr
.global "FindClosestPointOnPolygon__9CPFRegionFRCQ24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>RC9CVector3fRC9CVector3fb"
"FindClosestPointOnPolygon__9CPFRegionFRCQ24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>RC9CVector3fRC9CVector3fb":
/* 801C9A60 001C69C0 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 801C9A64 001C69C4 7C 08 02 A6 */ mflr r0
/* 801C9A68 001C69C8 90 01 00 74 */ stw r0, 0x74(r1)
/* 801C9A6C 001C69CC DB E1 00 60 */ stfd f31, 0x60(r1)
/* 801C9A70 001C69D0 F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0
/* 801C9A74 001C69D4 DB C1 00 50 */ stfd f30, 0x50(r1)
/* 801C9A78 001C69D8 F3 C1 00 58 */ psq_st f30, 88(r1), 0, qr0
/* 801C9A7C 001C69DC DB A1 00 40 */ stfd f29, 0x40(r1)
/* 801C9A80 001C69E0 F3 A1 00 48 */ psq_st f29, 72(r1), 0, qr0
/* 801C9A84 001C69E4 BF 21 00 24 */ stmw r25, 0x24(r1)
/* 801C9A88 001C69E8 7C 9A 23 78 */ mr r26, r4
/* 801C9A8C 001C69EC 7C 79 1B 78 */ mr r25, r3
/* 801C9A90 001C69F0 83 E4 00 04 */ lwz r31, 4(r4)
/* 801C9A94 001C69F4 7C DB 33 78 */ mr r27, r6
/* 801C9A98 001C69F8 7C FC 3B 78 */ mr r28, r7
/* 801C9A9C 001C69FC C0 02 AB 4C */ lfs f0, lbl_805AC86C@sda21(r2)
/* 801C9AA0 001C6A00 3B C0 00 00 */ li r30, 0
/* 801C9AA4 001C6A04 39 00 00 00 */ li r8, 0
/* 801C9AA8 001C6A08 38 80 00 00 */ li r4, 0
/* 801C9AAC 001C6A0C 7F E9 03 A6 */ mtctr r31
/* 801C9AB0 001C6A10 2C 1F 00 00 */ cmpwi r31, 0
/* 801C9AB4 001C6A14 40 81 00 A4 */ ble lbl_801C9B58
lbl_801C9AB8:
/* 801C9AB8 001C6A18 38 68 00 01 */ addi r3, r8, 1
/* 801C9ABC 001C6A1C 80 FA 00 0C */ lwz r7, 0xc(r26)
/* 801C9AC0 001C6A20 7C 03 FB D6 */ divw r0, r3, r31
/* 801C9AC4 001C6A24 C1 85 00 08 */ lfs f12, 8(r5)
/* 801C9AC8 001C6A28 7C C7 22 14 */ add r6, r7, r4
/* 801C9ACC 001C6A2C C1 45 00 00 */ lfs f10, 0(r5)
/* 801C9AD0 001C6A30 C1 06 00 00 */ lfs f8, 0(r6)
/* 801C9AD4 001C6A34 C0 3B 00 00 */ lfs f1, 0(r27)
/* 801C9AD8 001C6A38 7C 00 F9 D6 */ mullw r0, r0, r31
/* 801C9ADC 001C6A3C C0 A6 00 08 */ lfs f5, 8(r6)
/* 801C9AE0 001C6A40 C0 7B 00 08 */ lfs f3, 8(r27)
/* 801C9AE4 001C6A44 EC 81 40 28 */ fsubs f4, f1, f8
/* 801C9AE8 001C6A48 C0 E6 00 04 */ lfs f7, 4(r6)
/* 801C9AEC 001C6A4C C0 3B 00 04 */ lfs f1, 4(r27)
/* 801C9AF0 001C6A50 7C 00 18 50 */ subf r0, r0, r3
/* 801C9AF4 001C6A54 C1 65 00 04 */ lfs f11, 4(r5)
/* 801C9AF8 001C6A58 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801C9AFC 001C6A5C EC 41 38 28 */ fsubs f2, f1, f7
/* 801C9B00 001C6A60 EC C3 28 28 */ fsubs f6, f3, f5
/* 801C9B04 001C6A64 7C 67 02 14 */ add r3, r7, r0
/* 801C9B08 001C6A68 C0 63 00 00 */ lfs f3, 0(r3)
/* 801C9B0C 001C6A6C C0 23 00 08 */ lfs f1, 8(r3)
/* 801C9B10 001C6A70 ED 23 40 28 */ fsubs f9, f3, f8
/* 801C9B14 001C6A74 C0 63 00 04 */ lfs f3, 4(r3)
/* 801C9B18 001C6A78 ED 01 28 28 */ fsubs f8, f1, f5
/* 801C9B1C 001C6A7C EC E3 38 28 */ fsubs f7, f3, f7
/* 801C9B20 001C6A80 EC 2C 02 72 */ fmuls f1, f12, f9
/* 801C9B24 001C6A84 EC 6B 02 32 */ fmuls f3, f11, f8
/* 801C9B28 001C6A88 EC AA 01 F2 */ fmuls f5, f10, f7
/* 801C9B2C 001C6A8C EC 28 0A B8 */ fmsubs f1, f8, f10, f1
/* 801C9B30 001C6A90 EC 67 1B 38 */ fmsubs f3, f7, f12, f3
/* 801C9B34 001C6A94 EC A9 2A F8 */ fmsubs f5, f9, f11, f5
/* 801C9B38 001C6A98 EC 22 00 72 */ fmuls f1, f2, f1
/* 801C9B3C 001C6A9C EC 24 08 FA */ fmadds f1, f4, f3, f1
/* 801C9B40 001C6AA0 EC 26 09 7A */ fmadds f1, f6, f5, f1
/* 801C9B44 001C6AA4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801C9B48 001C6AA8 41 80 00 10 */ blt lbl_801C9B58
/* 801C9B4C 001C6AAC 38 84 00 0C */ addi r4, r4, 0xc
/* 801C9B50 001C6AB0 39 08 00 01 */ addi r8, r8, 1
/* 801C9B54 001C6AB4 42 00 FF 64 */ bdnz lbl_801C9AB8
lbl_801C9B58:
/* 801C9B58 001C6AB8 7C 08 F8 00 */ cmpw r8, r31
/* 801C9B5C 001C6ABC 40 82 00 A4 */ bne lbl_801C9C00
/* 801C9B60 001C6AC0 80 7A 00 0C */ lwz r3, 0xc(r26)
/* 801C9B64 001C6AC4 80 99 00 4C */ lwz r4, 0x4c(r25)
/* 801C9B68 001C6AC8 C0 23 00 04 */ lfs f1, 4(r3)
/* 801C9B6C 001C6ACC C0 1B 00 04 */ lfs f0, 4(r27)
/* 801C9B70 001C6AD0 C0 63 00 00 */ lfs f3, 0(r3)
/* 801C9B74 001C6AD4 C0 5B 00 00 */ lfs f2, 0(r27)
/* 801C9B78 001C6AD8 EC 21 00 28 */ fsubs f1, f1, f0
/* 801C9B7C 001C6ADC C0 05 00 04 */ lfs f0, 4(r5)
/* 801C9B80 001C6AE0 EC 43 10 28 */ fsubs f2, f3, f2
/* 801C9B84 001C6AE4 C0 83 00 08 */ lfs f4, 8(r3)
/* 801C9B88 001C6AE8 C0 7B 00 08 */ lfs f3, 8(r27)
/* 801C9B8C 001C6AEC EC 01 00 32 */ fmuls f0, f1, f0
/* 801C9B90 001C6AF0 C0 25 00 00 */ lfs f1, 0(r5)
/* 801C9B94 001C6AF4 EC 64 18 28 */ fsubs f3, f4, f3
/* 801C9B98 001C6AF8 EC 22 00 7A */ fmadds f1, f2, f1, f0
/* 801C9B9C 001C6AFC C0 45 00 08 */ lfs f2, 8(r5)
/* 801C9BA0 001C6B00 C0 04 00 00 */ lfs f0, 0(r4)
/* 801C9BA4 001C6B04 EC A3 08 BA */ fmadds f5, f3, f2, f1
/* 801C9BA8 001C6B08 EC 25 01 72 */ fmuls f1, f5, f5
/* 801C9BAC 001C6B0C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801C9BB0 001C6B10 40 80 02 7C */ bge lbl_801C9E2C
/* 801C9BB4 001C6B14 D0 24 00 00 */ stfs f1, 0(r4)
/* 801C9BB8 001C6B18 3B C0 00 01 */ li r30, 1
/* 801C9BBC 001C6B1C C0 05 00 00 */ lfs f0, 0(r5)
/* 801C9BC0 001C6B20 C0 65 00 04 */ lfs f3, 4(r5)
/* 801C9BC4 001C6B24 EC 05 00 32 */ fmuls f0, f5, f0
/* 801C9BC8 001C6B28 C0 3B 00 00 */ lfs f1, 0(r27)
/* 801C9BCC 001C6B2C C0 45 00 08 */ lfs f2, 8(r5)
/* 801C9BD0 001C6B30 EC 65 00 F2 */ fmuls f3, f5, f3
/* 801C9BD4 001C6B34 C0 9B 00 04 */ lfs f4, 4(r27)
/* 801C9BD8 001C6B38 EC 01 00 2A */ fadds f0, f1, f0
/* 801C9BDC 001C6B3C EC 25 00 B2 */ fmuls f1, f5, f2
/* 801C9BE0 001C6B40 C0 5B 00 08 */ lfs f2, 8(r27)
/* 801C9BE4 001C6B44 80 79 00 4C */ lwz r3, 0x4c(r25)
/* 801C9BE8 001C6B48 EC 64 18 2A */ fadds f3, f4, f3
/* 801C9BEC 001C6B4C D0 03 00 04 */ stfs f0, 4(r3)
/* 801C9BF0 001C6B50 EC 02 08 2A */ fadds f0, f2, f1
/* 801C9BF4 001C6B54 D0 63 00 08 */ stfs f3, 8(r3)
/* 801C9BF8 001C6B58 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 801C9BFC 001C6B5C 48 00 02 30 */ b lbl_801C9E2C
lbl_801C9C00:
/* 801C9C00 001C6B60 39 00 00 00 */ li r8, 0
/* 801C9C04 001C6B64 C0 22 AB 4C */ lfs f1, lbl_805AC86C@sda21(r2)
/* 801C9C08 001C6B68 7D 06 43 78 */ mr r6, r8
/* 801C9C0C 001C6B6C 3B A0 00 00 */ li r29, 0
/* 801C9C10 001C6B70 7F E9 03 A6 */ mtctr r31
/* 801C9C14 001C6B74 2C 1F 00 00 */ cmpwi r31, 0
/* 801C9C18 001C6B78 40 81 01 78 */ ble lbl_801C9D90
lbl_801C9C1C:
/* 801C9C1C 001C6B7C 38 68 00 01 */ addi r3, r8, 1
/* 801C9C20 001C6B80 80 FA 00 0C */ lwz r7, 0xc(r26)
/* 801C9C24 001C6B84 7C 03 FB D6 */ divw r0, r3, r31
/* 801C9C28 001C6B88 C3 C5 00 08 */ lfs f30, 8(r5)
/* 801C9C2C 001C6B8C 7C 87 32 14 */ add r4, r7, r6
/* 801C9C30 001C6B90 C1 1B 00 04 */ lfs f8, 4(r27)
/* 801C9C34 001C6B94 C0 04 00 00 */ lfs f0, 0(r4)
/* 801C9C38 001C6B98 C0 44 00 08 */ lfs f2, 8(r4)
/* 801C9C3C 001C6B9C 7C 00 F9 D6 */ mullw r0, r0, r31
/* 801C9C40 001C6BA0 C0 64 00 04 */ lfs f3, 4(r4)
/* 801C9C44 001C6BA4 C1 A5 00 00 */ lfs f13, 0(r5)
/* 801C9C48 001C6BA8 C3 A5 00 04 */ lfs f29, 4(r5)
/* 801C9C4C 001C6BAC C1 5B 00 00 */ lfs f10, 0(r27)
/* 801C9C50 001C6BB0 C0 DB 00 08 */ lfs f6, 8(r27)
/* 801C9C54 001C6BB4 7C 00 18 50 */ subf r0, r0, r3
/* 801C9C58 001C6BB8 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801C9C5C 001C6BBC 7C 67 02 14 */ add r3, r7, r0
/* 801C9C60 001C6BC0 C1 23 00 00 */ lfs f9, 0(r3)
/* 801C9C64 001C6BC4 C0 A3 00 08 */ lfs f5, 8(r3)
/* 801C9C68 001C6BC8 EC 89 00 28 */ fsubs f4, f9, f0
/* 801C9C6C 001C6BCC C0 E3 00 04 */ lfs f7, 4(r3)
/* 801C9C70 001C6BD0 ED 65 10 28 */ fsubs f11, f5, f2
/* 801C9C74 001C6BD4 ED 87 18 28 */ fsubs f12, f7, f3
/* 801C9C78 001C6BD8 EC 1E 01 32 */ fmuls f0, f30, f4
/* 801C9C7C 001C6BDC D0 81 00 08 */ stfs f4, 8(r1)
/* 801C9C80 001C6BE0 EC 5D 02 F2 */ fmuls f2, f29, f11
/* 801C9C84 001C6BE4 EC E8 38 28 */ fsubs f7, f8, f7
/* 801C9C88 001C6BE8 D1 81 00 0C */ stfs f12, 0xc(r1)
/* 801C9C8C 001C6BEC EC 0B 03 78 */ fmsubs f0, f11, f13, f0
/* 801C9C90 001C6BF0 EC 6D 03 32 */ fmuls f3, f13, f12
/* 801C9C94 001C6BF4 D1 61 00 10 */ stfs f11, 0x10(r1)
/* 801C9C98 001C6BF8 ED 0A 48 28 */ fsubs f8, f10, f9
/* 801C9C9C 001C6BFC EC 4C 17 B8 */ fmsubs f2, f12, f30, f2
/* 801C9CA0 001C6C00 EC 07 00 32 */ fmuls f0, f7, f0
/* 801C9CA4 001C6C04 EC A6 28 28 */ fsubs f5, f6, f5
/* 801C9CA8 001C6C08 EC 64 1F 78 */ fmsubs f3, f4, f29, f3
/* 801C9CAC 001C6C0C EC 08 00 BA */ fmadds f0, f8, f2, f0
/* 801C9CB0 001C6C10 EC 05 00 FA */ fmadds f0, f5, f3, f0
/* 801C9CB4 001C6C14 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 801C9CB8 001C6C18 40 80 00 CC */ bge lbl_801C9D84
/* 801C9CBC 001C6C1C EC 07 03 32 */ fmuls f0, f7, f12
/* 801C9CC0 001C6C20 EC 08 01 3A */ fmadds f0, f8, f4, f0
/* 801C9CC4 001C6C24 EC 05 02 FA */ fmadds f0, f5, f11, f0
/* 801C9CC8 001C6C28 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 801C9CCC 001C6C2C 4C 40 13 82 */ cror 2, 0, 2
/* 801C9CD0 001C6C30 40 82 00 B4 */ bne lbl_801C9D84
/* 801C9CD4 001C6C34 EF C7 60 2A */ fadds f30, f7, f12
/* 801C9CD8 001C6C38 EF E8 20 2A */ fadds f31, f8, f4
/* 801C9CDC 001C6C3C EF A5 58 2A */ fadds f29, f5, f11
/* 801C9CE0 001C6C40 EC 1E 03 32 */ fmuls f0, f30, f12
/* 801C9CE4 001C6C44 EC 1F 01 3A */ fmadds f0, f31, f4, f0
/* 801C9CE8 001C6C48 EC 1D 02 FA */ fmadds f0, f29, f11, f0
/* 801C9CEC 001C6C4C FC 00 08 40 */ fcmpo cr0, f0, f1
/* 801C9CF0 001C6C50 4C 41 13 82 */ cror 2, 1, 2
/* 801C9CF4 001C6C54 40 82 00 90 */ bne lbl_801C9D84
/* 801C9CF8 001C6C58 38 61 00 08 */ addi r3, r1, 8
/* 801C9CFC 001C6C5C 3B A0 00 01 */ li r29, 1
/* 801C9D00 001C6C60 48 14 AB F9 */ bl Normalize__9CVector3fFv
/* 801C9D04 001C6C64 C0 41 00 0C */ lfs f2, 0xc(r1)
/* 801C9D08 001C6C68 80 79 00 4C */ lwz r3, 0x4c(r25)
/* 801C9D0C 001C6C6C EC 3E 00 B2 */ fmuls f1, f30, f2
/* 801C9D10 001C6C70 C0 61 00 08 */ lfs f3, 8(r1)
/* 801C9D14 001C6C74 C0 81 00 10 */ lfs f4, 0x10(r1)
/* 801C9D18 001C6C78 C0 03 00 00 */ lfs f0, 0(r3)
/* 801C9D1C 001C6C7C EC 3F 08 FA */ fmadds f1, f31, f3, f1
/* 801C9D20 001C6C80 EC 3D 09 3A */ fmadds f1, f29, f4, f1
/* 801C9D24 001C6C84 EC 41 00 B2 */ fmuls f2, f1, f2
/* 801C9D28 001C6C88 EC 61 00 F2 */ fmuls f3, f1, f3
/* 801C9D2C 001C6C8C EC 21 01 32 */ fmuls f1, f1, f4
/* 801C9D30 001C6C90 EF DE 10 28 */ fsubs f30, f30, f2
/* 801C9D34 001C6C94 EF FF 18 28 */ fsubs f31, f31, f3
/* 801C9D38 001C6C98 EF BD 08 28 */ fsubs f29, f29, f1
/* 801C9D3C 001C6C9C EC 3E 07 B2 */ fmuls f1, f30, f30
/* 801C9D40 001C6CA0 EC 3F 0F FA */ fmadds f1, f31, f31, f1
/* 801C9D44 001C6CA4 EC 3D 0F 7A */ fmadds f1, f29, f29, f1
/* 801C9D48 001C6CA8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801C9D4C 001C6CAC 40 80 00 44 */ bge lbl_801C9D90
/* 801C9D50 001C6CB0 D0 23 00 00 */ stfs f1, 0(r3)
/* 801C9D54 001C6CB4 3B C0 00 01 */ li r30, 1
/* 801C9D58 001C6CB8 C0 1B 00 00 */ lfs f0, 0(r27)
/* 801C9D5C 001C6CBC C0 5B 00 04 */ lfs f2, 4(r27)
/* 801C9D60 001C6CC0 EC 00 F8 28 */ fsubs f0, f0, f31
/* 801C9D64 001C6CC4 C0 3B 00 08 */ lfs f1, 8(r27)
/* 801C9D68 001C6CC8 80 79 00 4C */ lwz r3, 0x4c(r25)
/* 801C9D6C 001C6CCC EC 42 F0 28 */ fsubs f2, f2, f30
/* 801C9D70 001C6CD0 EC 21 E8 28 */ fsubs f1, f1, f29
/* 801C9D74 001C6CD4 D0 03 00 04 */ stfs f0, 4(r3)
/* 801C9D78 001C6CD8 D0 43 00 08 */ stfs f2, 8(r3)
/* 801C9D7C 001C6CDC D0 23 00 0C */ stfs f1, 0xc(r3)
/* 801C9D80 001C6CE0 48 00 00 10 */ b lbl_801C9D90
lbl_801C9D84:
/* 801C9D84 001C6CE4 38 C6 00 0C */ addi r6, r6, 0xc
/* 801C9D88 001C6CE8 39 08 00 01 */ addi r8, r8, 1
/* 801C9D8C 001C6CEC 42 00 FE 90 */ bdnz lbl_801C9C1C
lbl_801C9D90:
/* 801C9D90 001C6CF0 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 801C9D94 001C6CF4 40 82 00 98 */ bne lbl_801C9E2C
/* 801C9D98 001C6CF8 57 80 06 3F */ clrlwi. r0, r28, 0x18
/* 801C9D9C 001C6CFC 40 82 00 90 */ bne lbl_801C9E2C
/* 801C9DA0 001C6D00 38 A0 00 00 */ li r5, 0
/* 801C9DA4 001C6D04 7F E9 03 A6 */ mtctr r31
/* 801C9DA8 001C6D08 2C 1F 00 00 */ cmpwi r31, 0
/* 801C9DAC 001C6D0C 40 81 00 80 */ ble lbl_801C9E2C
lbl_801C9DB0:
/* 801C9DB0 001C6D10 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 801C9DB4 001C6D14 80 99 00 4C */ lwz r4, 0x4c(r25)
/* 801C9DB8 001C6D18 7C 60 2A 14 */ add r3, r0, r5
/* 801C9DBC 001C6D1C C0 3B 00 04 */ lfs f1, 4(r27)
/* 801C9DC0 001C6D20 C0 03 00 04 */ lfs f0, 4(r3)
/* 801C9DC4 001C6D24 C0 7B 00 00 */ lfs f3, 0(r27)
/* 801C9DC8 001C6D28 EC 81 00 28 */ fsubs f4, f1, f0
/* 801C9DCC 001C6D2C C0 23 00 00 */ lfs f1, 0(r3)
/* 801C9DD0 001C6D30 C0 5B 00 08 */ lfs f2, 8(r27)
/* 801C9DD4 001C6D34 C0 03 00 08 */ lfs f0, 8(r3)
/* 801C9DD8 001C6D38 EC 63 08 28 */ fsubs f3, f3, f1
/* 801C9DDC 001C6D3C EC 24 01 32 */ fmuls f1, f4, f4
/* 801C9DE0 001C6D40 EC 42 00 28 */ fsubs f2, f2, f0
/* 801C9DE4 001C6D44 C0 04 00 00 */ lfs f0, 0(r4)
/* 801C9DE8 001C6D48 EC 23 08 FA */ fmadds f1, f3, f3, f1
/* 801C9DEC 001C6D4C EC 22 08 BA */ fmadds f1, f2, f2, f1
/* 801C9DF0 001C6D50 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801C9DF4 001C6D54 40 80 00 30 */ bge lbl_801C9E24
/* 801C9DF8 001C6D58 D0 24 00 00 */ stfs f1, 0(r4)
/* 801C9DFC 001C6D5C 3B C0 00 01 */ li r30, 1
/* 801C9E00 001C6D60 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 801C9E04 001C6D64 80 99 00 4C */ lwz r4, 0x4c(r25)
/* 801C9E08 001C6D68 7C 60 2A 14 */ add r3, r0, r5
/* 801C9E0C 001C6D6C C0 03 00 00 */ lfs f0, 0(r3)
/* 801C9E10 001C6D70 D0 04 00 04 */ stfs f0, 4(r4)
/* 801C9E14 001C6D74 C0 03 00 04 */ lfs f0, 4(r3)
/* 801C9E18 001C6D78 D0 04 00 08 */ stfs f0, 8(r4)
/* 801C9E1C 001C6D7C C0 03 00 08 */ lfs f0, 8(r3)
/* 801C9E20 001C6D80 D0 04 00 0C */ stfs f0, 0xc(r4)
lbl_801C9E24:
/* 801C9E24 001C6D84 38 A5 00 0C */ addi r5, r5, 0xc
/* 801C9E28 001C6D88 42 00 FF 88 */ bdnz lbl_801C9DB0
lbl_801C9E2C:
/* 801C9E2C 001C6D8C 7F C3 F3 78 */ mr r3, r30
/* 801C9E30 001C6D90 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0
/* 801C9E34 001C6D94 CB E1 00 60 */ lfd f31, 0x60(r1)
/* 801C9E38 001C6D98 E3 C1 00 58 */ psq_l f30, 88(r1), 0, qr0
/* 801C9E3C 001C6D9C CB C1 00 50 */ lfd f30, 0x50(r1)
/* 801C9E40 001C6DA0 E3 A1 00 48 */ psq_l f29, 72(r1), 0, qr0
/* 801C9E44 001C6DA4 CB A1 00 40 */ lfd f29, 0x40(r1)
/* 801C9E48 001C6DA8 BB 21 00 24 */ lmw r25, 0x24(r1)
/* 801C9E4C 001C6DAC 80 01 00 74 */ lwz r0, 0x74(r1)
/* 801C9E50 001C6DB0 7C 08 03 A6 */ mtlr r0
/* 801C9E54 001C6DB4 38 21 00 70 */ addi r1, r1, 0x70
/* 801C9E58 001C6DB8 4E 80 00 20 */ blr
.global PointHeight__9CPFRegionCFRC9CVector3f
PointHeight__9CPFRegionCFRC9CVector3f:
/* 801C9E5C 001C6DBC 80 A3 00 04 */ lwz r5, 4(r3)
/* 801C9E60 001C6DC0 C0 24 00 04 */ lfs f1, 4(r4)
/* 801C9E64 001C6DC4 C0 05 00 04 */ lfs f0, 4(r5)
/* 801C9E68 001C6DC8 C0 64 00 00 */ lfs f3, 0(r4)
/* 801C9E6C 001C6DCC EC 21 00 28 */ fsubs f1, f1, f0
/* 801C9E70 001C6DD0 C0 45 00 00 */ lfs f2, 0(r5)
/* 801C9E74 001C6DD4 C0 03 00 1C */ lfs f0, 0x1c(r3)
/* 801C9E78 001C6DD8 EC 43 10 28 */ fsubs f2, f3, f2
/* 801C9E7C 001C6DDC C0 84 00 08 */ lfs f4, 8(r4)
/* 801C9E80 001C6DE0 EC 01 00 32 */ fmuls f0, f1, f0
/* 801C9E84 001C6DE4 C0 65 00 08 */ lfs f3, 8(r5)
/* 801C9E88 001C6DE8 C0 23 00 18 */ lfs f1, 0x18(r3)
/* 801C9E8C 001C6DEC EC 84 18 28 */ fsubs f4, f4, f3
/* 801C9E90 001C6DF0 C0 63 00 20 */ lfs f3, 0x20(r3)
/* 801C9E94 001C6DF4 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 801C9E98 001C6DF8 EC 24 00 FA */ fmadds f1, f4, f3, f0
/* 801C9E9C 001C6DFC 4E 80 00 20 */ blr
.global IsPointInside__9CPFRegionCFRC9CVector3f
IsPointInside__9CPFRegionCFRC9CVector3f:
/* 801C9EA0 001C6E00 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801C9EA4 001C6E04 7C 08 02 A6 */ mflr r0
/* 801C9EA8 001C6E08 90 01 00 24 */ stw r0, 0x24(r1)
/* 801C9EAC 001C6E0C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 801C9EB0 001C6E10 3B E0 00 00 */ li r31, 0
/* 801C9EB4 001C6E14 93 C1 00 18 */ stw r30, 0x18(r1)
/* 801C9EB8 001C6E18 7C 9E 23 78 */ mr r30, r4
/* 801C9EBC 001C6E1C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801C9EC0 001C6E20 7C 7D 1B 78 */ mr r29, r3
/* 801C9EC4 001C6E24 38 7D 00 34 */ addi r3, r29, 0x34
/* 801C9EC8 001C6E28 48 16 D6 6D */ bl PointInside__6CAABoxCFRC9CVector3f
/* 801C9ECC 001C6E2C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 801C9ED0 001C6E30 41 82 01 1C */ beq lbl_801C9FEC
/* 801C9ED4 001C6E34 80 BD 00 00 */ lwz r5, 0(r29)
/* 801C9ED8 001C6E38 38 C0 00 00 */ li r6, 0
/* 801C9EDC 001C6E3C C0 02 AB 4C */ lfs f0, lbl_805AC86C@sda21(r2)
/* 801C9EE0 001C6E40 38 80 00 00 */ li r4, 0
/* 801C9EE4 001C6E44 7C A9 03 A6 */ mtctr r5
/* 801C9EE8 001C6E48 2C 05 00 00 */ cmpwi r5, 0
/* 801C9EEC 001C6E4C 40 81 00 5C */ ble lbl_801C9F48
lbl_801C9EF0:
/* 801C9EF0 001C6E50 80 1D 00 04 */ lwz r0, 4(r29)
/* 801C9EF4 001C6E54 C0 5E 00 04 */ lfs f2, 4(r30)
/* 801C9EF8 001C6E58 7C 60 22 14 */ add r3, r0, r4
/* 801C9EFC 001C6E5C C0 9E 00 00 */ lfs f4, 0(r30)
/* 801C9F00 001C6E60 C0 23 00 04 */ lfs f1, 4(r3)
/* 801C9F04 001C6E64 C0 63 00 00 */ lfs f3, 0(r3)
/* 801C9F08 001C6E68 EC 42 08 28 */ fsubs f2, f2, f1
/* 801C9F0C 001C6E6C C0 23 00 10 */ lfs f1, 0x10(r3)
/* 801C9F10 001C6E70 EC 64 18 28 */ fsubs f3, f4, f3
/* 801C9F14 001C6E74 C0 BE 00 08 */ lfs f5, 8(r30)
/* 801C9F18 001C6E78 C0 83 00 08 */ lfs f4, 8(r3)
/* 801C9F1C 001C6E7C EC 22 00 72 */ fmuls f1, f2, f1
/* 801C9F20 001C6E80 C0 43 00 0C */ lfs f2, 0xc(r3)
/* 801C9F24 001C6E84 EC A5 20 28 */ fsubs f5, f5, f4
/* 801C9F28 001C6E88 C0 83 00 14 */ lfs f4, 0x14(r3)
/* 801C9F2C 001C6E8C EC 23 08 BA */ fmadds f1, f3, f2, f1
/* 801C9F30 001C6E90 EC 25 09 3A */ fmadds f1, f5, f4, f1
/* 801C9F34 001C6E94 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801C9F38 001C6E98 41 80 00 10 */ blt lbl_801C9F48
/* 801C9F3C 001C6E9C 38 84 00 18 */ addi r4, r4, 0x18
/* 801C9F40 001C6EA0 38 C6 00 01 */ addi r6, r6, 1
/* 801C9F44 001C6EA4 42 00 FF AC */ bdnz lbl_801C9EF0
lbl_801C9F48:
/* 801C9F48 001C6EA8 7C 06 28 00 */ cmpw r6, r5
/* 801C9F4C 001C6EAC 40 82 00 A0 */ bne lbl_801C9FEC
/* 801C9F50 001C6EB0 80 7D 00 04 */ lwz r3, 4(r29)
/* 801C9F54 001C6EB4 C0 3E 00 04 */ lfs f1, 4(r30)
/* 801C9F58 001C6EB8 C0 03 00 04 */ lfs f0, 4(r3)
/* 801C9F5C 001C6EBC C0 5E 00 00 */ lfs f2, 0(r30)
/* 801C9F60 001C6EC0 ED 01 00 28 */ fsubs f8, f1, f0
/* 801C9F64 001C6EC4 C0 03 00 00 */ lfs f0, 0(r3)
/* 801C9F68 001C6EC8 C0 9D 00 1C */ lfs f4, 0x1c(r29)
/* 801C9F6C 001C6ECC ED 22 00 28 */ fsubs f9, f2, f0
/* 801C9F70 001C6ED0 C0 5E 00 08 */ lfs f2, 8(r30)
/* 801C9F74 001C6ED4 EC 08 01 32 */ fmuls f0, f8, f4
/* 801C9F78 001C6ED8 C0 23 00 08 */ lfs f1, 8(r3)
/* 801C9F7C 001C6EDC C0 BD 00 18 */ lfs f5, 0x18(r29)
/* 801C9F80 001C6EE0 EC E2 08 28 */ fsubs f7, f2, f1
/* 801C9F84 001C6EE4 C0 DD 00 20 */ lfs f6, 0x20(r29)
/* 801C9F88 001C6EE8 EC 09 01 7A */ fmadds f0, f9, f5, f0
/* 801C9F8C 001C6EEC C0 62 AB 4C */ lfs f3, lbl_805AC86C@sda21(r2)
/* 801C9F90 001C6EF0 EC 07 01 BA */ fmadds f0, f7, f6, f0
/* 801C9F94 001C6EF4 FC 00 18 40 */ fcmpo cr0, f0, f3
/* 801C9F98 001C6EF8 4C 41 13 82 */ cror 2, 1, 2
/* 801C9F9C 001C6EFC 40 82 00 50 */ bne lbl_801C9FEC
/* 801C9FA0 001C6F00 3C 60 80 5A */ lis r3, lbl_805A66F4@ha
/* 801C9FA4 001C6F04 C1 5D 00 14 */ lfs f10, 0x14(r29)
/* 801C9FA8 001C6F08 38 63 66 F4 */ addi r3, r3, lbl_805A66F4@l
/* 801C9FAC 001C6F0C C0 03 00 04 */ lfs f0, 4(r3)
/* 801C9FB0 001C6F10 C0 43 00 00 */ lfs f2, 0(r3)
/* 801C9FB4 001C6F14 EC 2A 00 32 */ fmuls f1, f10, f0
/* 801C9FB8 001C6F18 C0 03 00 08 */ lfs f0, 8(r3)
/* 801C9FBC 001C6F1C EC 4A 00 B2 */ fmuls f2, f10, f2
/* 801C9FC0 001C6F20 EC 0A 00 32 */ fmuls f0, f10, f0
/* 801C9FC4 001C6F24 ED 08 08 28 */ fsubs f8, f8, f1
/* 801C9FC8 001C6F28 EC 29 10 28 */ fsubs f1, f9, f2
/* 801C9FCC 001C6F2C EC 47 00 28 */ fsubs f2, f7, f0
/* 801C9FD0 001C6F30 EC 08 01 32 */ fmuls f0, f8, f4
/* 801C9FD4 001C6F34 EC 01 01 7A */ fmadds f0, f1, f5, f0
/* 801C9FD8 001C6F38 EC 02 01 BA */ fmadds f0, f2, f6, f0
/* 801C9FDC 001C6F3C FC 00 18 40 */ fcmpo cr0, f0, f3
/* 801C9FE0 001C6F40 4C 40 13 82 */ cror 2, 0, 2
/* 801C9FE4 001C6F44 40 82 00 08 */ bne lbl_801C9FEC
/* 801C9FE8 001C6F48 3B E0 00 01 */ li r31, 1
lbl_801C9FEC:
/* 801C9FEC 001C6F4C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 801C9FF0 001C6F50 7F E3 FB 78 */ mr r3, r31
/* 801C9FF4 001C6F54 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 801C9FF8 001C6F58 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 801C9FFC 001C6F5C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 801CA000 001C6F60 7C 08 03 A6 */ mtlr r0
/* 801CA004 001C6F64 38 21 00 20 */ addi r1, r1, 0x20
/* 801CA008 001C6F68 4E 80 00 20 */ blr
.global __ct__9CPFRegionFv
__ct__9CPFRegionFv:
/* 801CA00C 001C6F6C 38 00 00 00 */ li r0, 0
/* 801CA010 001C6F70 C0 02 AB 4C */ lfs f0, lbl_805AC86C@sda21(r2)
/* 801CA014 001C6F74 90 03 00 00 */ stw r0, 0(r3)
/* 801CA018 001C6F78 3C A0 80 5A */ lis r5, skZero3f@ha
/* 801CA01C 001C6F7C 3C 80 80 5A */ lis r4, mskInvertedBox__6CAABox@ha
/* 801CA020 001C6F80 90 03 00 04 */ stw r0, 4(r3)
/* 801CA024 001C6F84 90 03 00 08 */ stw r0, 8(r3)
/* 801CA028 001C6F88 90 03 00 0C */ stw r0, 0xc(r3)
/* 801CA02C 001C6F8C 90 03 00 10 */ stw r0, 0x10(r3)
/* 801CA030 001C6F90 D0 03 00 14 */ stfs f0, 0x14(r3)
/* 801CA034 001C6F94 C4 05 66 A0 */ lfsu f0, skZero3f@l(r5)
/* 801CA038 001C6F98 D0 03 00 18 */ stfs f0, 0x18(r3)
/* 801CA03C 001C6F9C C0 05 00 04 */ lfs f0, 4(r5)
/* 801CA040 001C6FA0 D0 03 00 1C */ stfs f0, 0x1c(r3)
/* 801CA044 001C6FA4 C0 05 00 08 */ lfs f0, 8(r5)
/* 801CA048 001C6FA8 D0 03 00 20 */ stfs f0, 0x20(r3)
/* 801CA04C 001C6FAC 90 03 00 24 */ stw r0, 0x24(r3)
/* 801CA050 001C6FB0 C0 05 00 00 */ lfs f0, 0(r5)
/* 801CA054 001C6FB4 D0 03 00 28 */ stfs f0, 0x28(r3)
/* 801CA058 001C6FB8 C0 05 00 04 */ lfs f0, 4(r5)
/* 801CA05C 001C6FBC D0 03 00 2C */ stfs f0, 0x2c(r3)
/* 801CA060 001C6FC0 C0 05 00 08 */ lfs f0, 8(r5)
/* 801CA064 001C6FC4 D0 03 00 30 */ stfs f0, 0x30(r3)
/* 801CA068 001C6FC8 C4 04 67 54 */ lfsu f0, mskInvertedBox__6CAABox@l(r4)
/* 801CA06C 001C6FCC D0 03 00 34 */ stfs f0, 0x34(r3)
/* 801CA070 001C6FD0 C0 04 00 04 */ lfs f0, 4(r4)
/* 801CA074 001C6FD4 D0 03 00 38 */ stfs f0, 0x38(r3)
/* 801CA078 001C6FD8 C0 04 00 08 */ lfs f0, 8(r4)
/* 801CA07C 001C6FDC D0 03 00 3C */ stfs f0, 0x3c(r3)
/* 801CA080 001C6FE0 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 801CA084 001C6FE4 D0 03 00 40 */ stfs f0, 0x40(r3)
/* 801CA088 001C6FE8 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 801CA08C 001C6FEC D0 03 00 44 */ stfs f0, 0x44(r3)
/* 801CA090 001C6FF0 C0 04 00 14 */ lfs f0, 0x14(r4)
/* 801CA094 001C6FF4 D0 03 00 48 */ stfs f0, 0x48(r3)
/* 801CA098 001C6FF8 4E 80 00 20 */ blr
.global Fixup__9CPFRegionFR7CPFAreaRi
Fixup__9CPFRegionFR7CPFAreaRi:
/* 801CA09C 001C6FFC 80 03 00 00 */ lwz r0, 0(r3)
/* 801CA0A0 001C7000 2C 00 00 00 */ cmpwi r0, 0
/* 801CA0A4 001C7004 41 82 00 18 */ beq lbl_801CA0BC
/* 801CA0A8 001C7008 80 03 00 04 */ lwz r0, 4(r3)
/* 801CA0AC 001C700C 80 C4 01 44 */ lwz r6, 0x144(r4)
/* 801CA0B0 001C7010 1C 00 00 18 */ mulli r0, r0, 0x18
/* 801CA0B4 001C7014 7C 06 02 14 */ add r0, r6, r0
/* 801CA0B8 001C7018 48 00 00 08 */ b lbl_801CA0C0
lbl_801CA0BC:
/* 801CA0BC 001C701C 38 00 00 00 */ li r0, 0
lbl_801CA0C0:
/* 801CA0C0 001C7020 90 03 00 04 */ stw r0, 4(r3)
/* 801CA0C4 001C7024 80 03 00 08 */ lwz r0, 8(r3)
/* 801CA0C8 001C7028 2C 00 00 00 */ cmpwi r0, 0
/* 801CA0CC 001C702C 41 82 00 18 */ beq lbl_801CA0E4
/* 801CA0D0 001C7030 80 03 00 0C */ lwz r0, 0xc(r3)
/* 801CA0D4 001C7034 80 C4 01 4C */ lwz r6, 0x14c(r4)
/* 801CA0D8 001C7038 54 00 20 36 */ slwi r0, r0, 4
/* 801CA0DC 001C703C 7C 06 02 14 */ add r0, r6, r0
/* 801CA0E0 001C7040 48 00 00 08 */ b lbl_801CA0E8
lbl_801CA0E4:
/* 801CA0E4 001C7044 38 00 00 00 */ li r0, 0
lbl_801CA0E8:
/* 801CA0E8 001C7048 90 03 00 0C */ stw r0, 0xc(r3)
/* 801CA0EC 001C704C 80 03 00 24 */ lwz r0, 0x24(r3)
/* 801CA0F0 001C7050 80 84 01 84 */ lwz r4, 0x184(r4)
/* 801CA0F4 001C7054 1C 00 00 30 */ mulli r0, r0, 0x30
/* 801CA0F8 001C7058 7C 04 02 14 */ add r0, r4, r0
/* 801CA0FC 001C705C 90 03 00 4C */ stw r0, 0x4c(r3)
/* 801CA100 001C7060 80 63 00 00 */ lwz r3, 0(r3)
/* 801CA104 001C7064 80 05 00 00 */ lwz r0, 0(r5)
/* 801CA108 001C7068 7C 03 00 00 */ cmpw r3, r0
/* 801CA10C 001C706C 4C 81 00 20 */ blelr
/* 801CA110 001C7070 90 65 00 00 */ stw r3, 0(r5)
/* 801CA114 001C7074 4E 80 00 20 */ blr
.global __ct__13CPFRegionDataFv
__ct__13CPFRegionDataFv:
/* 801CA118 001C7078 C0 22 AB 4C */ lfs f1, lbl_805AC86C@sda21(r2)
/* 801CA11C 001C707C 3C 80 80 5A */ lis r4, skZero3f@ha
/* 801CA120 001C7080 38 A4 66 A0 */ addi r5, r4, skZero3f@l
/* 801CA124 001C7084 38 80 FF FF */ li r4, -1
/* 801CA128 001C7088 D0 23 00 00 */ stfs f1, 0(r3)
/* 801CA12C 001C708C 38 00 00 00 */ li r0, 0
/* 801CA130 001C7090 C0 05 00 00 */ lfs f0, 0(r5)
/* 801CA134 001C7094 D0 03 00 04 */ stfs f0, 4(r3)
/* 801CA138 001C7098 C0 05 00 04 */ lfs f0, 4(r5)
/* 801CA13C 001C709C D0 03 00 08 */ stfs f0, 8(r3)
/* 801CA140 001C70A0 C0 05 00 08 */ lfs f0, 8(r5)
/* 801CA144 001C70A4 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 801CA148 001C70A8 90 83 00 10 */ stw r4, 0x10(r3)
/* 801CA14C 001C70AC D0 23 00 14 */ stfs f1, 0x14(r3)
/* 801CA150 001C70B0 D0 23 00 18 */ stfs f1, 0x18(r3)
/* 801CA154 001C70B4 D0 23 00 1C */ stfs f1, 0x1c(r3)
/* 801CA158 001C70B8 90 03 00 20 */ stw r0, 0x20(r3)
/* 801CA15C 001C70BC 90 03 00 24 */ stw r0, 0x24(r3)
/* 801CA160 001C70C0 90 03 00 28 */ stw r0, 0x28(r3)
/* 801CA164 001C70C4 90 03 00 2C */ stw r0, 0x2c(r3)
/* 801CA168 001C70C8 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AC860
lbl_805AC860:
# ROM: 0x3F9100
.float 0.5
.global lbl_805AC864
lbl_805AC864:
# ROM: 0x3F9104
.float 1.1920929E-7
.global lbl_805AC868
lbl_805AC868:
# ROM: 0x3F9108
.float 1.0
.global lbl_805AC86C
lbl_805AC86C:
# ROM: 0x3F910C
.4byte 0