prime/asm/Kyoto_CWD/CFluidPlane.s

559 lines
27 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global nullsub_209
nullsub_209:
/* 8012E90C 0012B86C 4E 80 00 20 */ blr
.global AddRipple__11CFluidPlaneFRC7CRippleRC12CScriptWaterR13CStateManager
AddRipple__11CFluidPlaneFRC7CRippleRC12CScriptWaterR13CStateManager:
/* 8012E910 0012B870 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8012E914 0012B874 7C 08 02 A6 */ mflr r0
/* 8012E918 0012B878 7C A3 2B 78 */ mr r3, r5
/* 8012E91C 0012B87C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8012E920 0012B880 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8012E924 0012B884 7C DF 33 78 */ mr r31, r6
/* 8012E928 0012B888 93 C1 00 08 */ stw r30, 8(r1)
/* 8012E92C 0012B88C 7C 9E 23 78 */ mr r30, r4
/* 8012E930 0012B890 38 9E 00 08 */ addi r4, r30, 8
/* 8012E934 0012B894 4B FD 03 7D */ bl CanRippleAtPoint__12CScriptWaterCFRC9CVector3f
/* 8012E938 0012B898 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8012E93C 0012B89C 41 82 00 10 */ beq lbl_8012E94C
/* 8012E940 0012B8A0 80 7F 08 7C */ lwz r3, 0x87c(r31)
/* 8012E944 0012B8A4 7F C4 F3 78 */ mr r4, r30
/* 8012E948 0012B8A8 4B FE E6 05 */ bl AddRipple__14CRippleManagerFRC7CRipple
lbl_8012E94C:
/* 8012E94C 0012B8AC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8012E950 0012B8B0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8012E954 0012B8B4 83 C1 00 08 */ lwz r30, 8(r1)
/* 8012E958 0012B8B8 7C 08 03 A6 */ mtlr r0
/* 8012E95C 0012B8BC 38 21 00 10 */ addi r1, r1, 0x10
/* 8012E960 0012B8C0 4E 80 00 20 */ blr
.global AddRipple__11CFluidPlaneFf9TUniqueIdRC9CVector3fRC9CVector3fRC12CScriptWaterR13CStateManagerRC9CVector3f
AddRipple__11CFluidPlaneFf9TUniqueIdRC9CVector3fRC9CVector3fRC12CScriptWaterR13CStateManagerRC9CVector3f:
/* 8012E964 0012B8C4 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8012E968 0012B8C8 7C 08 02 A6 */ mflr r0
/* 8012E96C 0012B8CC 90 01 00 84 */ stw r0, 0x84(r1)
/* 8012E970 0012B8D0 DB E1 00 70 */ stfd f31, 0x70(r1)
/* 8012E974 0012B8D4 F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0
/* 8012E978 0012B8D8 BF 41 00 58 */ stmw r26, 0x58(r1)
/* 8012E97C 0012B8DC FF E0 08 90 */ fmr f31, f1
/* 8012E980 0012B8E0 7C 7A 1B 78 */ mr r26, r3
/* 8012E984 0012B8E4 7C BC 2B 78 */ mr r28, r5
/* 8012E988 0012B8E8 7C 9B 23 78 */ mr r27, r4
/* 8012E98C 0012B8EC 7C DD 33 78 */ mr r29, r6
/* 8012E990 0012B8F0 7D 1E 43 78 */ mr r30, r8
/* 8012E994 0012B8F4 7D 3F 4B 78 */ mr r31, r9
/* 8012E998 0012B8F8 7C E3 3B 78 */ mr r3, r7
/* 8012E99C 0012B8FC 7F 84 E3 78 */ mr r4, r28
/* 8012E9A0 0012B900 4B FD 03 11 */ bl CanRippleAtPoint__12CScriptWaterCFRC9CVector3f
/* 8012E9A4 0012B904 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8012E9A8 0012B908 41 82 00 64 */ beq lbl_8012EA0C
/* 8012E9AC 0012B90C C0 5F 00 04 */ lfs f2, 4(r31)
/* 8012E9B0 0012B910 FC 20 F8 90 */ fmr f1, f31
/* 8012E9B4 0012B914 C0 1D 00 04 */ lfs f0, 4(r29)
/* 8012E9B8 0012B918 7F 43 D3 78 */ mr r3, r26
/* 8012E9BC 0012B91C C0 7F 00 00 */ lfs f3, 0(r31)
/* 8012E9C0 0012B920 EC 02 00 32 */ fmuls f0, f2, f0
/* 8012E9C4 0012B924 C0 5D 00 00 */ lfs f2, 0(r29)
/* 8012E9C8 0012B928 C0 BF 00 08 */ lfs f5, 8(r31)
/* 8012E9CC 0012B92C C0 9D 00 08 */ lfs f4, 8(r29)
/* 8012E9D0 0012B930 EC 03 00 BA */ fmadds f0, f3, f2, f0
/* 8012E9D4 0012B934 EC 45 01 3A */ fmadds f2, f5, f4, f0
/* 8012E9D8 0012B938 48 00 00 F1 */ bl ProjectRippleVelocity__11CFluidPlaneCFff
/* 8012E9DC 0012B93C 7F 43 D3 78 */ mr r3, r26
/* 8012E9E0 0012B940 48 00 01 39 */ bl CalculateRippleIntensity__11CFluidPlaneCFf
/* 8012E9E4 0012B944 A0 1B 00 00 */ lhz r0, 0(r27)
/* 8012E9E8 0012B948 7F 85 E3 78 */ mr r5, r28
/* 8012E9EC 0012B94C 38 61 00 0C */ addi r3, r1, 0xc
/* 8012E9F0 0012B950 38 81 00 08 */ addi r4, r1, 8
/* 8012E9F4 0012B954 B0 01 00 08 */ sth r0, 8(r1)
/* 8012E9F8 0012B958 83 FE 08 7C */ lwz r31, 0x87c(r30)
/* 8012E9FC 0012B95C 4B FE DF 21 */ bl __ct__7CRippleF9TUniqueIdRC9CVector3ff
/* 8012EA00 0012B960 7C 64 1B 78 */ mr r4, r3
/* 8012EA04 0012B964 7F E3 FB 78 */ mr r3, r31
/* 8012EA08 0012B968 4B FE E5 45 */ bl AddRipple__14CRippleManagerFRC7CRipple
lbl_8012EA0C:
/* 8012EA0C 0012B96C E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0
/* 8012EA10 0012B970 CB E1 00 70 */ lfd f31, 0x70(r1)
/* 8012EA14 0012B974 BB 41 00 58 */ lmw r26, 0x58(r1)
/* 8012EA18 0012B978 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8012EA1C 0012B97C 7C 08 03 A6 */ mtlr r0
/* 8012EA20 0012B980 38 21 00 80 */ addi r1, r1, 0x80
/* 8012EA24 0012B984 4E 80 00 20 */ blr
.global AddRipple__11CFluidPlaneFf9TUniqueIdRC9CVector3fR13CStateManager
AddRipple__11CFluidPlaneFf9TUniqueIdRC9CVector3fR13CStateManager:
/* 8012EA28 0012B988 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8012EA2C 0012B98C 7C 08 02 A6 */ mflr r0
/* 8012EA30 0012B990 90 01 00 74 */ stw r0, 0x74(r1)
/* 8012EA34 0012B994 DB E1 00 68 */ stfd f31, 0x68(r1)
/* 8012EA38 0012B998 FF E0 08 90 */ fmr f31, f1
/* 8012EA3C 0012B99C 93 E1 00 64 */ stw r31, 0x64(r1)
/* 8012EA40 0012B9A0 7C FF 3B 78 */ mr r31, r7
/* 8012EA44 0012B9A4 93 C1 00 60 */ stw r30, 0x60(r1)
/* 8012EA48 0012B9A8 7C BE 2B 78 */ mr r30, r5
/* 8012EA4C 0012B9AC 93 A1 00 5C */ stw r29, 0x5c(r1)
/* 8012EA50 0012B9B0 7C 9D 23 78 */ mr r29, r4
/* 8012EA54 0012B9B4 7F C4 F3 78 */ mr r4, r30
/* 8012EA58 0012B9B8 93 81 00 58 */ stw r28, 0x58(r1)
/* 8012EA5C 0012B9BC 7C 7C 1B 78 */ mr r28, r3
/* 8012EA60 0012B9C0 7C C3 33 78 */ mr r3, r6
/* 8012EA64 0012B9C4 4B FD 02 4D */ bl CanRippleAtPoint__12CScriptWaterCFRC9CVector3f
/* 8012EA68 0012B9C8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8012EA6C 0012B9CC 41 82 00 38 */ beq lbl_8012EAA4
/* 8012EA70 0012B9D0 FC 20 F8 90 */ fmr f1, f31
/* 8012EA74 0012B9D4 7F 83 E3 78 */ mr r3, r28
/* 8012EA78 0012B9D8 48 00 00 A1 */ bl CalculateRippleIntensity__11CFluidPlaneCFf
/* 8012EA7C 0012B9DC A0 1D 00 00 */ lhz r0, 0(r29)
/* 8012EA80 0012B9E0 7F C5 F3 78 */ mr r5, r30
/* 8012EA84 0012B9E4 38 61 00 0C */ addi r3, r1, 0xc
/* 8012EA88 0012B9E8 38 81 00 08 */ addi r4, r1, 8
/* 8012EA8C 0012B9EC B0 01 00 08 */ sth r0, 8(r1)
/* 8012EA90 0012B9F0 83 FF 08 7C */ lwz r31, 0x87c(r31)
/* 8012EA94 0012B9F4 4B FE DE 89 */ bl __ct__7CRippleF9TUniqueIdRC9CVector3ff
/* 8012EA98 0012B9F8 7C 64 1B 78 */ mr r4, r3
/* 8012EA9C 0012B9FC 7F E3 FB 78 */ mr r3, r31
/* 8012EAA0 0012BA00 4B FE E4 AD */ bl AddRipple__14CRippleManagerFRC7CRipple
lbl_8012EAA4:
/* 8012EAA4 0012BA04 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8012EAA8 0012BA08 CB E1 00 68 */ lfd f31, 0x68(r1)
/* 8012EAAC 0012BA0C 83 E1 00 64 */ lwz r31, 0x64(r1)
/* 8012EAB0 0012BA10 83 C1 00 60 */ lwz r30, 0x60(r1)
/* 8012EAB4 0012BA14 83 A1 00 5C */ lwz r29, 0x5c(r1)
/* 8012EAB8 0012BA18 83 81 00 58 */ lwz r28, 0x58(r1)
/* 8012EABC 0012BA1C 7C 08 03 A6 */ mtlr r0
/* 8012EAC0 0012BA20 38 21 00 70 */ addi r1, r1, 0x70
/* 8012EAC4 0012BA24 4E 80 00 20 */ blr
.global ProjectRippleVelocity__11CFluidPlaneCFff
ProjectRippleVelocity__11CFluidPlaneCFff:
/* 8012EAC8 0012BA28 C0 02 98 CC */ lfs f0, lbl_805AB5EC@sda21(r2)
/* 8012EACC 0012BA2C C0 62 98 D0 */ lfs f3, lbl_805AB5F0@sda21(r2)
/* 8012EAD0 0012BA30 EC 00 00 72 */ fmuls f0, f0, f1
/* 8012EAD4 0012BA34 EC 00 00 B2 */ fmuls f0, f0, f2
/* 8012EAD8 0012BA38 EC 22 00 32 */ fmuls f1, f2, f0
/* 8012EADC 0012BA3C FC 03 08 00 */ fcmpu cr0, f3, f1
/* 8012EAE0 0012BA40 40 82 00 08 */ bne lbl_8012EAE8
/* 8012EAE4 0012BA44 48 00 00 10 */ b lbl_8012EAF4
lbl_8012EAE8:
/* 8012EAE8 0012BA48 FC 00 08 34 */ frsqrte f0, f1
/* 8012EAEC 0012BA4C FC 61 00 32 */ fmul f3, f1, f0
/* 8012EAF0 0012BA50 FC 60 18 18 */ frsp f3, f3
lbl_8012EAF4:
/* 8012EAF4 0012BA54 C0 02 98 DC */ lfs f0, lbl_805AB5FC@sda21(r2)
/* 8012EAF8 0012BA58 FC 03 00 40 */ fcmpo cr0, f3, f0
/* 8012EAFC 0012BA5C 4C 41 13 82 */ cror 2, 1, 2
/* 8012EB00 0012BA60 40 82 00 0C */ bne lbl_8012EB0C
/* 8012EB04 0012BA64 C0 22 98 D4 */ lfs f1, lbl_805AB5F4@sda21(r2)
/* 8012EB08 0012BA68 4E 80 00 20 */ blr
lbl_8012EB0C:
/* 8012EB0C 0012BA6C C0 02 98 D8 */ lfs f0, lbl_805AB5F8@sda21(r2)
/* 8012EB10 0012BA70 EC 20 00 F2 */ fmuls f1, f0, f3
/* 8012EB14 0012BA74 4E 80 00 20 */ blr
.global CalculateRippleIntensity__11CFluidPlaneCFf
CalculateRippleIntensity__11CFluidPlaneCFf:
/* 8012EB18 0012BA78 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8012EB1C 0012BA7C 80 03 00 44 */ lwz r0, 0x44(r3)
/* 8012EB20 0012BA80 2C 00 00 02 */ cmpwi r0, 2
/* 8012EB24 0012BA84 41 82 00 3C */ beq lbl_8012EB60
/* 8012EB28 0012BA88 40 80 00 14 */ bge lbl_8012EB3C
/* 8012EB2C 0012BA8C 2C 00 00 00 */ cmpwi r0, 0
/* 8012EB30 0012BA90 41 82 00 18 */ beq lbl_8012EB48
/* 8012EB34 0012BA94 40 80 00 20 */ bge lbl_8012EB54
/* 8012EB38 0012BA98 48 00 00 3C */ b lbl_8012EB74
lbl_8012EB3C:
/* 8012EB3C 0012BA9C 2C 00 00 05 */ cmpwi r0, 5
/* 8012EB40 0012BAA0 40 80 00 34 */ bge lbl_8012EB74
/* 8012EB44 0012BAA4 48 00 00 28 */ b lbl_8012EB6C
lbl_8012EB48:
/* 8012EB48 0012BAA8 80 8D A1 20 */ lwz r4, gpTweakGame@sda21(r13)
/* 8012EB4C 0012BAAC C0 04 00 40 */ lfs f0, 0x40(r4)
/* 8012EB50 0012BAB0 48 00 00 28 */ b lbl_8012EB78
lbl_8012EB54:
/* 8012EB54 0012BAB4 80 8D A1 20 */ lwz r4, gpTweakGame@sda21(r13)
/* 8012EB58 0012BAB8 C0 04 00 44 */ lfs f0, 0x44(r4)
/* 8012EB5C 0012BABC 48 00 00 1C */ b lbl_8012EB78
lbl_8012EB60:
/* 8012EB60 0012BAC0 80 8D A1 20 */ lwz r4, gpTweakGame@sda21(r13)
/* 8012EB64 0012BAC4 C0 04 00 48 */ lfs f0, 0x48(r4)
/* 8012EB68 0012BAC8 48 00 00 10 */ b lbl_8012EB78
lbl_8012EB6C:
/* 8012EB6C 0012BACC C0 02 98 E0 */ lfs f0, lbl_805AB600@sda21(r2)
/* 8012EB70 0012BAD0 48 00 00 08 */ b lbl_8012EB78
lbl_8012EB74:
/* 8012EB74 0012BAD4 C0 02 98 D4 */ lfs f0, lbl_805AB5F4@sda21(r2)
lbl_8012EB78:
/* 8012EB78 0012BAD8 C0 42 98 D4 */ lfs f2, lbl_805AB5F4@sda21(r2)
/* 8012EB7C 0012BADC EC 81 00 32 */ fmuls f4, f1, f0
/* 8012EB80 0012BAE0 C0 03 00 48 */ lfs f0, 0x48(r3)
/* 8012EB84 0012BAE4 C0 AD 8B 08 */ lfs f5, lbl_805A76C8@sda21(r13)
/* 8012EB88 0012BAE8 EC 22 00 28 */ fsubs f1, f2, f0
/* 8012EB8C 0012BAEC C0 62 98 CC */ lfs f3, lbl_805AB5EC@sda21(r2)
/* 8012EB90 0012BAF0 C0 0D 8B 0C */ lfs f0, lbl_805A76CC@sda21(r13)
/* 8012EB94 0012BAF4 EC 25 10 7A */ fmadds f1, f5, f1, f2
/* 8012EB98 0012BAF8 EC 23 09 7C */ fnmsubs f1, f3, f5, f1
/* 8012EB9C 0012BAFC EC 24 00 72 */ fmuls f1, f4, f1
/* 8012EBA0 0012BB00 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8012EBA4 0012BB04 D0 21 00 08 */ stfs f1, 8(r1)
/* 8012EBA8 0012BB08 40 80 00 0C */ bge lbl_8012EBB4
/* 8012EBAC 0012BB0C 38 6D 8B 0C */ addi r3, r13, lbl_805A76CC@sda21
/* 8012EBB0 0012BB10 48 00 00 08 */ b lbl_8012EBB8
lbl_8012EBB4:
/* 8012EBB4 0012BB14 38 61 00 08 */ addi r3, r1, 8
lbl_8012EBB8:
/* 8012EBB8 0012BB18 C0 2D 8B 10 */ lfs f1, lbl_805A76D0@sda21(r13)
/* 8012EBBC 0012BB1C C0 03 00 00 */ lfs f0, 0(r3)
/* 8012EBC0 0012BB20 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8012EBC4 0012BB24 40 80 00 08 */ bge lbl_8012EBCC
/* 8012EBC8 0012BB28 38 6D 8B 10 */ addi r3, r13, lbl_805A76D0@sda21
lbl_8012EBCC:
/* 8012EBCC 0012BB2C C0 23 00 00 */ lfs f1, 0(r3)
/* 8012EBD0 0012BB30 D0 21 00 08 */ stfs f1, 8(r1)
/* 8012EBD4 0012BB34 38 21 00 10 */ addi r1, r1, 0x10
/* 8012EBD8 0012BB38 4E 80 00 20 */ blr
.global __dt__11CFluidPlaneFv
__dt__11CFluidPlaneFv:
/* 8012EBDC 0012BB3C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8012EBE0 0012BB40 7C 08 02 A6 */ mflr r0
/* 8012EBE4 0012BB44 90 01 00 14 */ stw r0, 0x14(r1)
/* 8012EBE8 0012BB48 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8012EBEC 0012BB4C 7C 9F 23 78 */ mr r31, r4
/* 8012EBF0 0012BB50 93 C1 00 08 */ stw r30, 8(r1)
/* 8012EBF4 0012BB54 7C 7E 1B 79 */ or. r30, r3, r3
/* 8012EBF8 0012BB58 41 82 01 20 */ beq lbl_8012ED18
/* 8012EBFC 0012BB5C 3C 60 80 3E */ lis r3, lbl_803E0CE0@ha
/* 8012EC00 0012BB60 34 1E 00 4C */ addic. r0, r30, 0x4c
/* 8012EC04 0012BB64 38 03 0C E0 */ addi r0, r3, lbl_803E0CE0@l
/* 8012EC08 0012BB68 90 1E 00 00 */ stw r0, 0(r30)
/* 8012EC0C 0012BB6C 41 82 00 60 */ beq lbl_8012EC6C
/* 8012EC10 0012BB70 34 1E 00 4C */ addic. r0, r30, 0x4c
/* 8012EC14 0012BB74 41 82 00 58 */ beq lbl_8012EC6C
/* 8012EC18 0012BB78 80 BE 00 4C */ lwz r5, 0x4c(r30)
/* 8012EC1C 0012BB7C 38 60 00 00 */ li r3, 0
/* 8012EC20 0012BB80 2C 05 00 00 */ cmpwi r5, 0
/* 8012EC24 0012BB84 40 81 00 40 */ ble lbl_8012EC64
/* 8012EC28 0012BB88 2C 05 00 08 */ cmpwi r5, 8
/* 8012EC2C 0012BB8C 38 85 FF F8 */ addi r4, r5, -8
/* 8012EC30 0012BB90 40 81 00 20 */ ble lbl_8012EC50
/* 8012EC34 0012BB94 38 04 00 07 */ addi r0, r4, 7
/* 8012EC38 0012BB98 54 00 E8 FE */ srwi r0, r0, 3
/* 8012EC3C 0012BB9C 7C 09 03 A6 */ mtctr r0
/* 8012EC40 0012BBA0 2C 04 00 00 */ cmpwi r4, 0
/* 8012EC44 0012BBA4 40 81 00 0C */ ble lbl_8012EC50
lbl_8012EC48:
/* 8012EC48 0012BBA8 38 63 00 08 */ addi r3, r3, 8
/* 8012EC4C 0012BBAC 42 00 FF FC */ bdnz lbl_8012EC48
lbl_8012EC50:
/* 8012EC50 0012BBB0 7C 03 28 50 */ subf r0, r3, r5
/* 8012EC54 0012BBB4 7C 09 03 A6 */ mtctr r0
/* 8012EC58 0012BBB8 7C 03 28 00 */ cmpw r3, r5
/* 8012EC5C 0012BBBC 40 80 00 08 */ bge lbl_8012EC64
lbl_8012EC60:
/* 8012EC60 0012BBC0 42 00 00 00 */ bdnz lbl_8012EC60
lbl_8012EC64:
/* 8012EC64 0012BBC4 38 00 00 00 */ li r0, 0
/* 8012EC68 0012BBC8 90 1E 00 4C */ stw r0, 0x4c(r30)
lbl_8012EC6C:
/* 8012EC6C 0012BBCC 34 1E 00 30 */ addic. r0, r30, 0x30
/* 8012EC70 0012BBD0 41 82 00 30 */ beq lbl_8012ECA0
/* 8012EC74 0012BBD4 88 1E 00 3C */ lbz r0, 0x3c(r30)
/* 8012EC78 0012BBD8 28 00 00 00 */ cmplwi r0, 0
/* 8012EC7C 0012BBDC 41 82 00 1C */ beq lbl_8012EC98
/* 8012EC80 0012BBE0 34 7E 00 30 */ addic. r3, r30, 0x30
/* 8012EC84 0012BBE4 41 82 00 14 */ beq lbl_8012EC98
/* 8012EC88 0012BBE8 28 03 00 00 */ cmplwi r3, 0
/* 8012EC8C 0012BBEC 41 82 00 0C */ beq lbl_8012EC98
/* 8012EC90 0012BBF0 38 80 00 00 */ li r4, 0
/* 8012EC94 0012BBF4 48 21 21 AD */ bl __dt__6CTokenFv
lbl_8012EC98:
/* 8012EC98 0012BBF8 38 00 00 00 */ li r0, 0
/* 8012EC9C 0012BBFC 98 1E 00 3C */ stb r0, 0x3c(r30)
lbl_8012ECA0:
/* 8012ECA0 0012BC00 34 1E 00 20 */ addic. r0, r30, 0x20
/* 8012ECA4 0012BC04 41 82 00 30 */ beq lbl_8012ECD4
/* 8012ECA8 0012BC08 88 1E 00 2C */ lbz r0, 0x2c(r30)
/* 8012ECAC 0012BC0C 28 00 00 00 */ cmplwi r0, 0
/* 8012ECB0 0012BC10 41 82 00 1C */ beq lbl_8012ECCC
/* 8012ECB4 0012BC14 34 7E 00 20 */ addic. r3, r30, 0x20
/* 8012ECB8 0012BC18 41 82 00 14 */ beq lbl_8012ECCC
/* 8012ECBC 0012BC1C 28 03 00 00 */ cmplwi r3, 0
/* 8012ECC0 0012BC20 41 82 00 0C */ beq lbl_8012ECCC
/* 8012ECC4 0012BC24 38 80 00 00 */ li r4, 0
/* 8012ECC8 0012BC28 48 21 21 79 */ bl __dt__6CTokenFv
lbl_8012ECCC:
/* 8012ECCC 0012BC2C 38 00 00 00 */ li r0, 0
/* 8012ECD0 0012BC30 98 1E 00 2C */ stb r0, 0x2c(r30)
lbl_8012ECD4:
/* 8012ECD4 0012BC34 34 1E 00 10 */ addic. r0, r30, 0x10
/* 8012ECD8 0012BC38 41 82 00 30 */ beq lbl_8012ED08
/* 8012ECDC 0012BC3C 88 1E 00 1C */ lbz r0, 0x1c(r30)
/* 8012ECE0 0012BC40 28 00 00 00 */ cmplwi r0, 0
/* 8012ECE4 0012BC44 41 82 00 1C */ beq lbl_8012ED00
/* 8012ECE8 0012BC48 34 7E 00 10 */ addic. r3, r30, 0x10
/* 8012ECEC 0012BC4C 41 82 00 14 */ beq lbl_8012ED00
/* 8012ECF0 0012BC50 28 03 00 00 */ cmplwi r3, 0
/* 8012ECF4 0012BC54 41 82 00 0C */ beq lbl_8012ED00
/* 8012ECF8 0012BC58 38 80 00 00 */ li r4, 0
/* 8012ECFC 0012BC5C 48 21 21 45 */ bl __dt__6CTokenFv
lbl_8012ED00:
/* 8012ED00 0012BC60 38 00 00 00 */ li r0, 0
/* 8012ED04 0012BC64 98 1E 00 1C */ stb r0, 0x1c(r30)
lbl_8012ED08:
/* 8012ED08 0012BC68 7F E0 07 35 */ extsh. r0, r31
/* 8012ED0C 0012BC6C 40 81 00 0C */ ble lbl_8012ED18
/* 8012ED10 0012BC70 7F C3 F3 78 */ mr r3, r30
/* 8012ED14 0012BC74 48 1E 6C 1D */ bl Free__7CMemoryFPCv
lbl_8012ED18:
/* 8012ED18 0012BC78 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8012ED1C 0012BC7C 7F C3 F3 78 */ mr r3, r30
/* 8012ED20 0012BC80 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8012ED24 0012BC84 83 C1 00 08 */ lwz r30, 8(r1)
/* 8012ED28 0012BC88 7C 08 03 A6 */ mtlr r0
/* 8012ED2C 0012BC8C 38 21 00 10 */ addi r1, r1, 0x10
/* 8012ED30 0012BC90 4E 80 00 20 */ blr
.global __ct__11CFluidPlaneFUiUiUifQ211CFluidPlane10EFluidTypefRC14CFluidUVMotion
__ct__11CFluidPlaneFUiUiUifQ211CFluidPlane10EFluidTypefRC14CFluidUVMotion:
/* 8012ED34 0012BC94 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8012ED38 0012BC98 7C 08 02 A6 */ mflr r0
/* 8012ED3C 0012BC9C 3D 20 80 3E */ lis r9, lbl_803E0CE0@ha
/* 8012ED40 0012BCA0 90 01 00 74 */ stw r0, 0x74(r1)
/* 8012ED44 0012BCA4 38 00 00 00 */ li r0, 0
/* 8012ED48 0012BCA8 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 8012ED4C 0012BCAC 7C 7F 1B 78 */ mr r31, r3
/* 8012ED50 0012BCB0 38 69 0C E0 */ addi r3, r9, lbl_803E0CE0@l
/* 8012ED54 0012BCB4 39 28 00 04 */ addi r9, r8, 4
/* 8012ED58 0012BCB8 93 C1 00 68 */ stw r30, 0x68(r1)
/* 8012ED5C 0012BCBC 90 7F 00 00 */ stw r3, 0(r31)
/* 8012ED60 0012BCC0 38 7F 00 50 */ addi r3, r31, 0x50
/* 8012ED64 0012BCC4 90 9F 00 04 */ stw r4, 4(r31)
/* 8012ED68 0012BCC8 90 BF 00 08 */ stw r5, 8(r31)
/* 8012ED6C 0012BCCC 90 DF 00 0C */ stw r6, 0xc(r31)
/* 8012ED70 0012BCD0 98 1F 00 1C */ stb r0, 0x1c(r31)
/* 8012ED74 0012BCD4 98 1F 00 2C */ stb r0, 0x2c(r31)
/* 8012ED78 0012BCD8 98 1F 00 3C */ stb r0, 0x3c(r31)
/* 8012ED7C 0012BCDC D0 3F 00 40 */ stfs f1, 0x40(r31)
/* 8012ED80 0012BCE0 90 FF 00 44 */ stw r7, 0x44(r31)
/* 8012ED84 0012BCE4 D0 5F 00 48 */ stfs f2, 0x48(r31)
/* 8012ED88 0012BCE8 80 08 00 00 */ lwz r0, 0(r8)
/* 8012ED8C 0012BCEC 90 1F 00 4C */ stw r0, 0x4c(r31)
/* 8012ED90 0012BCF0 80 1F 00 4C */ lwz r0, 0x4c(r31)
/* 8012ED94 0012BCF4 7C 09 03 A6 */ mtctr r0
/* 8012ED98 0012BCF8 2C 00 00 00 */ cmpwi r0, 0
/* 8012ED9C 0012BCFC 40 81 00 48 */ ble lbl_8012EDE4
lbl_8012EDA0:
/* 8012EDA0 0012BD00 28 03 00 00 */ cmplwi r3, 0
/* 8012EDA4 0012BD04 41 82 00 34 */ beq lbl_8012EDD8
/* 8012EDA8 0012BD08 80 09 00 00 */ lwz r0, 0(r9)
/* 8012EDAC 0012BD0C 90 03 00 00 */ stw r0, 0(r3)
/* 8012EDB0 0012BD10 C0 09 00 04 */ lfs f0, 4(r9)
/* 8012EDB4 0012BD14 D0 03 00 04 */ stfs f0, 4(r3)
/* 8012EDB8 0012BD18 C0 09 00 08 */ lfs f0, 8(r9)
/* 8012EDBC 0012BD1C D0 03 00 08 */ stfs f0, 8(r3)
/* 8012EDC0 0012BD20 C0 09 00 0C */ lfs f0, 0xc(r9)
/* 8012EDC4 0012BD24 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 8012EDC8 0012BD28 C0 09 00 10 */ lfs f0, 0x10(r9)
/* 8012EDCC 0012BD2C D0 03 00 10 */ stfs f0, 0x10(r3)
/* 8012EDD0 0012BD30 C0 09 00 14 */ lfs f0, 0x14(r9)
/* 8012EDD4 0012BD34 D0 03 00 14 */ stfs f0, 0x14(r3)
lbl_8012EDD8:
/* 8012EDD8 0012BD38 38 63 00 18 */ addi r3, r3, 0x18
/* 8012EDDC 0012BD3C 39 29 00 18 */ addi r9, r9, 0x18
/* 8012EDE0 0012BD40 42 00 FF C0 */ bdnz lbl_8012EDA0
lbl_8012EDE4:
/* 8012EDE4 0012BD44 C0 08 00 4C */ lfs f0, 0x4c(r8)
/* 8012EDE8 0012BD48 D0 1F 00 98 */ stfs f0, 0x98(r31)
/* 8012EDEC 0012BD4C C0 08 00 50 */ lfs f0, 0x50(r8)
/* 8012EDF0 0012BD50 D0 1F 00 9C */ stfs f0, 0x9c(r31)
/* 8012EDF4 0012BD54 80 6D A0 60 */ lwz r3, gpResourceFactory@sda21(r13)
/* 8012EDF8 0012BD58 80 9F 00 04 */ lwz r4, 4(r31)
/* 8012EDFC 0012BD5C 38 63 00 04 */ addi r3, r3, 4
/* 8012EE00 0012BD60 48 20 CE CD */ bl GetResourceTypeById__10CResLoaderCFUi
/* 8012EE04 0012BD64 3C 03 AB A8 */ addis r0, r3, 0xaba8
/* 8012EE08 0012BD68 28 00 54 52 */ cmplwi r0, 0x5452
/* 8012EE0C 0012BD6C 40 82 00 C0 */ bne lbl_8012EECC
/* 8012EE10 0012BD70 80 DF 00 04 */ lwz r6, 4(r31)
/* 8012EE14 0012BD74 3C 60 54 58 */ lis r3, 0x54585452@ha
/* 8012EE18 0012BD78 38 03 54 52 */ addi r0, r3, 0x54585452@l
/* 8012EE1C 0012BD7C 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8012EE20 0012BD80 90 01 00 30 */ stw r0, 0x30(r1)
/* 8012EE24 0012BD84 38 61 00 28 */ addi r3, r1, 0x28
/* 8012EE28 0012BD88 38 A1 00 30 */ addi r5, r1, 0x30
/* 8012EE2C 0012BD8C 90 C1 00 34 */ stw r6, 0x34(r1)
/* 8012EE30 0012BD90 81 84 00 00 */ lwz r12, 0(r4)
/* 8012EE34 0012BD94 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8012EE38 0012BD98 7D 89 03 A6 */ mtctr r12
/* 8012EE3C 0012BD9C 4E 80 04 21 */ bctrl
/* 8012EE40 0012BDA0 3B C1 00 50 */ addi r30, r1, 0x50
/* 8012EE44 0012BDA4 38 81 00 28 */ addi r4, r1, 0x28
/* 8012EE48 0012BDA8 7F C3 F3 78 */ mr r3, r30
/* 8012EE4C 0012BDAC 48 21 20 5D */ bl __ct__6CTokenFRC6CToken
/* 8012EE50 0012BDB0 7F C3 F3 78 */ mr r3, r30
/* 8012EE54 0012BDB4 48 21 1F B9 */ bl GetObj__6CTokenFv
/* 8012EE58 0012BDB8 80 03 00 04 */ lwz r0, 4(r3)
/* 8012EE5C 0012BDBC 90 01 00 58 */ stw r0, 0x58(r1)
/* 8012EE60 0012BDC0 88 1F 00 1C */ lbz r0, 0x1c(r31)
/* 8012EE64 0012BDC4 28 00 00 00 */ cmplwi r0, 0
/* 8012EE68 0012BDC8 40 82 00 34 */ bne lbl_8012EE9C
/* 8012EE6C 0012BDCC 37 DF 00 10 */ addic. r30, r31, 0x10
/* 8012EE70 0012BDD0 41 82 00 20 */ beq lbl_8012EE90
/* 8012EE74 0012BDD4 7F C3 F3 78 */ mr r3, r30
/* 8012EE78 0012BDD8 38 81 00 50 */ addi r4, r1, 0x50
/* 8012EE7C 0012BDDC 48 21 20 2D */ bl __ct__6CTokenFRC6CToken
/* 8012EE80 0012BDE0 80 01 00 58 */ lwz r0, 0x58(r1)
/* 8012EE84 0012BDE4 7F C3 F3 78 */ mr r3, r30
/* 8012EE88 0012BDE8 90 1E 00 08 */ stw r0, 8(r30)
/* 8012EE8C 0012BDEC 48 21 1E F9 */ bl Lock__6CTokenFv
lbl_8012EE90:
/* 8012EE90 0012BDF0 38 00 00 01 */ li r0, 1
/* 8012EE94 0012BDF4 98 1F 00 1C */ stb r0, 0x1c(r31)
/* 8012EE98 0012BDF8 48 00 00 1C */ b lbl_8012EEB4
lbl_8012EE9C:
/* 8012EE9C 0012BDFC 3B DF 00 10 */ addi r30, r31, 0x10
/* 8012EEA0 0012BE00 38 81 00 50 */ addi r4, r1, 0x50
/* 8012EEA4 0012BE04 7F C3 F3 78 */ mr r3, r30
/* 8012EEA8 0012BE08 48 21 1E 1D */ bl __as__6CTokenFRC6CToken
/* 8012EEAC 0012BE0C 80 01 00 58 */ lwz r0, 0x58(r1)
/* 8012EEB0 0012BE10 90 1E 00 08 */ stw r0, 8(r30)
lbl_8012EEB4:
/* 8012EEB4 0012BE14 38 61 00 50 */ addi r3, r1, 0x50
/* 8012EEB8 0012BE18 38 80 00 00 */ li r4, 0
/* 8012EEBC 0012BE1C 48 21 1F 85 */ bl __dt__6CTokenFv
/* 8012EEC0 0012BE20 38 61 00 28 */ addi r3, r1, 0x28
/* 8012EEC4 0012BE24 38 80 FF FF */ li r4, -1
/* 8012EEC8 0012BE28 48 21 1F 79 */ bl __dt__6CTokenFv
lbl_8012EECC:
/* 8012EECC 0012BE2C 80 6D A0 60 */ lwz r3, gpResourceFactory@sda21(r13)
/* 8012EED0 0012BE30 80 9F 00 08 */ lwz r4, 8(r31)
/* 8012EED4 0012BE34 38 63 00 04 */ addi r3, r3, 4
/* 8012EED8 0012BE38 48 20 CD F5 */ bl GetResourceTypeById__10CResLoaderCFUi
/* 8012EEDC 0012BE3C 3C 03 AB A8 */ addis r0, r3, 0xaba8
/* 8012EEE0 0012BE40 28 00 54 52 */ cmplwi r0, 0x5452
/* 8012EEE4 0012BE44 40 82 00 C0 */ bne lbl_8012EFA4
/* 8012EEE8 0012BE48 80 DF 00 08 */ lwz r6, 8(r31)
/* 8012EEEC 0012BE4C 3C 60 54 58 */ lis r3, 0x54585452@ha
/* 8012EEF0 0012BE50 38 03 54 52 */ addi r0, r3, 0x54585452@l
/* 8012EEF4 0012BE54 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8012EEF8 0012BE58 90 01 00 20 */ stw r0, 0x20(r1)
/* 8012EEFC 0012BE5C 38 61 00 18 */ addi r3, r1, 0x18
/* 8012EF00 0012BE60 38 A1 00 20 */ addi r5, r1, 0x20
/* 8012EF04 0012BE64 90 C1 00 24 */ stw r6, 0x24(r1)
/* 8012EF08 0012BE68 81 84 00 00 */ lwz r12, 0(r4)
/* 8012EF0C 0012BE6C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8012EF10 0012BE70 7D 89 03 A6 */ mtctr r12
/* 8012EF14 0012BE74 4E 80 04 21 */ bctrl
/* 8012EF18 0012BE78 3B C1 00 44 */ addi r30, r1, 0x44
/* 8012EF1C 0012BE7C 38 81 00 18 */ addi r4, r1, 0x18
/* 8012EF20 0012BE80 7F C3 F3 78 */ mr r3, r30
/* 8012EF24 0012BE84 48 21 1F 85 */ bl __ct__6CTokenFRC6CToken
/* 8012EF28 0012BE88 7F C3 F3 78 */ mr r3, r30
/* 8012EF2C 0012BE8C 48 21 1E E1 */ bl GetObj__6CTokenFv
/* 8012EF30 0012BE90 80 03 00 04 */ lwz r0, 4(r3)
/* 8012EF34 0012BE94 90 01 00 4C */ stw r0, 0x4c(r1)
/* 8012EF38 0012BE98 88 1F 00 2C */ lbz r0, 0x2c(r31)
/* 8012EF3C 0012BE9C 28 00 00 00 */ cmplwi r0, 0
/* 8012EF40 0012BEA0 40 82 00 34 */ bne lbl_8012EF74
/* 8012EF44 0012BEA4 37 DF 00 20 */ addic. r30, r31, 0x20
/* 8012EF48 0012BEA8 41 82 00 20 */ beq lbl_8012EF68
/* 8012EF4C 0012BEAC 7F C3 F3 78 */ mr r3, r30
/* 8012EF50 0012BEB0 38 81 00 44 */ addi r4, r1, 0x44
/* 8012EF54 0012BEB4 48 21 1F 55 */ bl __ct__6CTokenFRC6CToken
/* 8012EF58 0012BEB8 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 8012EF5C 0012BEBC 7F C3 F3 78 */ mr r3, r30
/* 8012EF60 0012BEC0 90 1E 00 08 */ stw r0, 8(r30)
/* 8012EF64 0012BEC4 48 21 1E 21 */ bl Lock__6CTokenFv
lbl_8012EF68:
/* 8012EF68 0012BEC8 38 00 00 01 */ li r0, 1
/* 8012EF6C 0012BECC 98 1F 00 2C */ stb r0, 0x2c(r31)
/* 8012EF70 0012BED0 48 00 00 1C */ b lbl_8012EF8C
lbl_8012EF74:
/* 8012EF74 0012BED4 3B DF 00 20 */ addi r30, r31, 0x20
/* 8012EF78 0012BED8 38 81 00 44 */ addi r4, r1, 0x44
/* 8012EF7C 0012BEDC 7F C3 F3 78 */ mr r3, r30
/* 8012EF80 0012BEE0 48 21 1D 45 */ bl __as__6CTokenFRC6CToken
/* 8012EF84 0012BEE4 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 8012EF88 0012BEE8 90 1E 00 08 */ stw r0, 8(r30)
lbl_8012EF8C:
/* 8012EF8C 0012BEEC 38 61 00 44 */ addi r3, r1, 0x44
/* 8012EF90 0012BEF0 38 80 00 00 */ li r4, 0
/* 8012EF94 0012BEF4 48 21 1E AD */ bl __dt__6CTokenFv
/* 8012EF98 0012BEF8 38 61 00 18 */ addi r3, r1, 0x18
/* 8012EF9C 0012BEFC 38 80 FF FF */ li r4, -1
/* 8012EFA0 0012BF00 48 21 1E A1 */ bl __dt__6CTokenFv
lbl_8012EFA4:
/* 8012EFA4 0012BF04 80 6D A0 60 */ lwz r3, gpResourceFactory@sda21(r13)
/* 8012EFA8 0012BF08 80 9F 00 0C */ lwz r4, 0xc(r31)
/* 8012EFAC 0012BF0C 38 63 00 04 */ addi r3, r3, 4
/* 8012EFB0 0012BF10 48 20 CD 1D */ bl GetResourceTypeById__10CResLoaderCFUi
/* 8012EFB4 0012BF14 3C 03 AB A8 */ addis r0, r3, 0xaba8
/* 8012EFB8 0012BF18 28 00 54 52 */ cmplwi r0, 0x5452
/* 8012EFBC 0012BF1C 40 82 00 C0 */ bne lbl_8012F07C
/* 8012EFC0 0012BF20 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 8012EFC4 0012BF24 3C 60 54 58 */ lis r3, 0x54585452@ha
/* 8012EFC8 0012BF28 38 03 54 52 */ addi r0, r3, 0x54585452@l
/* 8012EFCC 0012BF2C 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8012EFD0 0012BF30 90 01 00 10 */ stw r0, 0x10(r1)
/* 8012EFD4 0012BF34 38 61 00 08 */ addi r3, r1, 8
/* 8012EFD8 0012BF38 38 A1 00 10 */ addi r5, r1, 0x10
/* 8012EFDC 0012BF3C 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8012EFE0 0012BF40 81 84 00 00 */ lwz r12, 0(r4)
/* 8012EFE4 0012BF44 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8012EFE8 0012BF48 7D 89 03 A6 */ mtctr r12
/* 8012EFEC 0012BF4C 4E 80 04 21 */ bctrl
/* 8012EFF0 0012BF50 3B C1 00 38 */ addi r30, r1, 0x38
/* 8012EFF4 0012BF54 38 81 00 08 */ addi r4, r1, 8
/* 8012EFF8 0012BF58 7F C3 F3 78 */ mr r3, r30
/* 8012EFFC 0012BF5C 48 21 1E AD */ bl __ct__6CTokenFRC6CToken
/* 8012F000 0012BF60 7F C3 F3 78 */ mr r3, r30
/* 8012F004 0012BF64 48 21 1E 09 */ bl GetObj__6CTokenFv
/* 8012F008 0012BF68 80 03 00 04 */ lwz r0, 4(r3)
/* 8012F00C 0012BF6C 90 01 00 40 */ stw r0, 0x40(r1)
/* 8012F010 0012BF70 88 1F 00 3C */ lbz r0, 0x3c(r31)
/* 8012F014 0012BF74 28 00 00 00 */ cmplwi r0, 0
/* 8012F018 0012BF78 40 82 00 34 */ bne lbl_8012F04C
/* 8012F01C 0012BF7C 37 DF 00 30 */ addic. r30, r31, 0x30
/* 8012F020 0012BF80 41 82 00 20 */ beq lbl_8012F040
/* 8012F024 0012BF84 7F C3 F3 78 */ mr r3, r30
/* 8012F028 0012BF88 38 81 00 38 */ addi r4, r1, 0x38
/* 8012F02C 0012BF8C 48 21 1E 7D */ bl __ct__6CTokenFRC6CToken
/* 8012F030 0012BF90 80 01 00 40 */ lwz r0, 0x40(r1)
/* 8012F034 0012BF94 7F C3 F3 78 */ mr r3, r30
/* 8012F038 0012BF98 90 1E 00 08 */ stw r0, 8(r30)
/* 8012F03C 0012BF9C 48 21 1D 49 */ bl Lock__6CTokenFv
lbl_8012F040:
/* 8012F040 0012BFA0 38 00 00 01 */ li r0, 1
/* 8012F044 0012BFA4 98 1F 00 3C */ stb r0, 0x3c(r31)
/* 8012F048 0012BFA8 48 00 00 1C */ b lbl_8012F064
lbl_8012F04C:
/* 8012F04C 0012BFAC 3B DF 00 30 */ addi r30, r31, 0x30
/* 8012F050 0012BFB0 38 81 00 38 */ addi r4, r1, 0x38
/* 8012F054 0012BFB4 7F C3 F3 78 */ mr r3, r30
/* 8012F058 0012BFB8 48 21 1C 6D */ bl __as__6CTokenFRC6CToken
/* 8012F05C 0012BFBC 80 01 00 40 */ lwz r0, 0x40(r1)
/* 8012F060 0012BFC0 90 1E 00 08 */ stw r0, 8(r30)
lbl_8012F064:
/* 8012F064 0012BFC4 38 61 00 38 */ addi r3, r1, 0x38
/* 8012F068 0012BFC8 38 80 00 00 */ li r4, 0
/* 8012F06C 0012BFCC 48 21 1D D5 */ bl __dt__6CTokenFv
/* 8012F070 0012BFD0 38 61 00 08 */ addi r3, r1, 8
/* 8012F074 0012BFD4 38 80 FF FF */ li r4, -1
/* 8012F078 0012BFD8 48 21 1D C9 */ bl __dt__6CTokenFv
lbl_8012F07C:
/* 8012F07C 0012BFDC 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8012F080 0012BFE0 7F E3 FB 78 */ mr r3, r31
/* 8012F084 0012BFE4 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 8012F088 0012BFE8 83 C1 00 68 */ lwz r30, 0x68(r1)
/* 8012F08C 0012BFEC 7C 08 03 A6 */ mtlr r0
/* 8012F090 0012BFF0 38 21 00 70 */ addi r1, r1, 0x70
/* 8012F094 0012BFF4 4E 80 00 20 */ blr
.global sub_8012f098
sub_8012f098:
/* 8012F098 0012BFF8 38 60 00 00 */ li r3, 0
/* 8012F09C 0012BFFC 4E 80 00 20 */ blr