prime/asm/MetroidPrime/BodyState/CBSKnockBack.s

442 lines
22 KiB
ArmAsm

.include "macros.inc"
.section .data
.global lbl_803E1450
lbl_803E1450:
# ROM: 0x3DE450
.4byte 0
.4byte 0
.4byte __dt__12CBSKnockBackFv
.4byte IsInAir__10CBodyStateCFRC15CBodyController
.4byte IsDead__10CBodyStateCFv
.4byte IsDying__10CBodyStateCFv
.4byte IsMoving__12CBSKnockBackCFv
.4byte ApplyGravity__10CBodyStateCFv
.4byte ApplyHeadTracking__10CBodyStateCFv
.4byte ApplyAnimationDeltas__10CBodyStateCFv
.4byte CanShoot__10CBodyStateCFv
.4byte Start__12CBSKnockBackFR15CBodyControllerR13CStateManager
.4byte UpdateBody__12CBSKnockBackFfR15CBodyControllerR13CStateManager
.4byte Shutdown__12CBSKnockBackFR15CBodyController
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global __dt__12CBSKnockBackFv
__dt__12CBSKnockBackFv:
/* 801361FC 0013315C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80136200 00133160 7C 08 02 A6 */ mflr r0
/* 80136204 00133164 90 01 00 14 */ stw r0, 0x14(r1)
/* 80136208 00133168 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8013620C 0013316C 7C 7F 1B 79 */ or. r31, r3, r3
/* 80136210 00133170 41 82 00 30 */ beq lbl_80136240
/* 80136214 00133174 3C 60 80 3E */ lis r3, lbl_803E1450@ha
/* 80136218 00133178 38 03 14 50 */ addi r0, r3, lbl_803E1450@l
/* 8013621C 0013317C 90 1F 00 00 */ stw r0, 0(r31)
/* 80136220 00133180 41 82 00 10 */ beq lbl_80136230
/* 80136224 00133184 3C 60 80 3E */ lis r3, lbl_803E1318@ha
/* 80136228 00133188 38 03 13 18 */ addi r0, r3, lbl_803E1318@l
/* 8013622C 0013318C 90 1F 00 00 */ stw r0, 0(r31)
lbl_80136230:
/* 80136230 00133190 7C 80 07 35 */ extsh. r0, r4
/* 80136234 00133194 40 81 00 0C */ ble lbl_80136240
/* 80136238 00133198 7F E3 FB 78 */ mr r3, r31
/* 8013623C 0013319C 48 1D F6 F5 */ bl Free__7CMemoryFPCv
lbl_80136240:
/* 80136240 001331A0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80136244 001331A4 7F E3 FB 78 */ mr r3, r31
/* 80136248 001331A8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8013624C 001331AC 7C 08 03 A6 */ mtlr r0
/* 80136250 001331B0 38 21 00 10 */ addi r1, r1, 0x10
/* 80136254 001331B4 4E 80 00 20 */ blr
.global IsMoving__12CBSKnockBackCFv
IsMoving__12CBSKnockBackCFv:
/* 80136258 001331B8 38 60 00 01 */ li r3, 1
/* 8013625C 001331BC 4E 80 00 20 */ blr
.global GetBodyStateTransition__12CBSKnockBackFfR15CBodyController
GetBodyStateTransition__12CBSKnockBackFfR15CBodyController:
/* 80136260 001331C0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80136264 001331C4 7C 08 02 A6 */ mflr r0
/* 80136268 001331C8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8013626C 001331CC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80136270 001331D0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80136274 001331D4 7C 9E 23 78 */ mr r30, r4
/* 80136278 001331D8 3B FE 00 04 */ addi r31, r30, 4
/* 8013627C 001331DC 38 80 00 0F */ li r4, 0xf
/* 80136280 001331E0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80136284 001331E4 7C 7D 1B 78 */ mr r29, r3
/* 80136288 001331E8 7F E3 FB 78 */ mr r3, r31
/* 8013628C 001331EC 4B FF B1 C5 */ bl GetCmd__16CBodyStateCmdMgrF13EBodyStateCmd
/* 80136290 001331F0 28 03 00 00 */ cmplwi r3, 0
/* 80136294 001331F4 41 82 00 0C */ beq lbl_801362A0
/* 80136298 001331F8 38 60 00 0E */ li r3, 0xe
/* 8013629C 001331FC 48 00 00 80 */ b lbl_8013631C
lbl_801362A0:
/* 801362A0 00133200 7F E3 FB 78 */ mr r3, r31
/* 801362A4 00133204 38 80 00 03 */ li r4, 3
/* 801362A8 00133208 4B FF B1 A9 */ bl GetCmd__16CBodyStateCmdMgrF13EBodyStateCmd
/* 801362AC 0013320C 28 03 00 00 */ cmplwi r3, 0
/* 801362B0 00133210 41 82 00 0C */ beq lbl_801362BC
/* 801362B4 00133214 38 60 00 00 */ li r3, 0
/* 801362B8 00133218 48 00 00 64 */ b lbl_8013631C
lbl_801362BC:
/* 801362BC 0013321C 7F E3 FB 78 */ mr r3, r31
/* 801362C0 00133220 38 80 00 09 */ li r4, 9
/* 801362C4 00133224 4B FF B1 8D */ bl GetCmd__16CBodyStateCmdMgrF13EBodyStateCmd
/* 801362C8 00133228 28 03 00 00 */ cmplwi r3, 0
/* 801362CC 0013322C 41 82 00 0C */ beq lbl_801362D8
/* 801362D0 00133230 38 60 00 0A */ li r3, 0xa
/* 801362D4 00133234 48 00 00 48 */ b lbl_8013631C
lbl_801362D8:
/* 801362D8 00133238 7F E3 FB 78 */ mr r3, r31
/* 801362DC 0013323C 38 80 00 04 */ li r4, 4
/* 801362E0 00133240 4B FF B1 71 */ bl GetCmd__16CBodyStateCmdMgrF13EBodyStateCmd
/* 801362E4 00133244 28 03 00 00 */ cmplwi r3, 0
/* 801362E8 00133248 41 82 00 1C */ beq lbl_80136304
/* 801362EC 0013324C C0 3D 00 04 */ lfs f1, 4(r29)
/* 801362F0 00133250 C0 02 99 F8 */ lfs f0, lbl_805AB718@sda21(r2)
/* 801362F4 00133254 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801362F8 00133258 40 81 00 0C */ ble lbl_80136304
/* 801362FC 0013325C 38 60 00 06 */ li r3, 6
/* 80136300 00133260 48 00 00 1C */ b lbl_8013631C
lbl_80136304:
/* 80136304 00133264 88 1E 03 00 */ lbz r0, 0x300(r30)
/* 80136308 00133268 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8013630C 0013326C 41 82 00 0C */ beq lbl_80136318
/* 80136310 00133270 38 60 00 05 */ li r3, 5
/* 80136314 00133274 48 00 00 08 */ b lbl_8013631C
lbl_80136318:
/* 80136318 00133278 38 60 FF FF */ li r3, -1
lbl_8013631C:
/* 8013631C 0013327C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80136320 00133280 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80136324 00133284 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80136328 00133288 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8013632C 0013328C 7C 08 03 A6 */ mtlr r0
/* 80136330 00133290 38 21 00 20 */ addi r1, r1, 0x20
/* 80136334 00133294 4E 80 00 20 */ blr
.global Shutdown__12CBSKnockBackFR15CBodyController
Shutdown__12CBSKnockBackFR15CBodyController:
/* 80136338 00133298 4E 80 00 20 */ blr
.global UpdateBody__12CBSKnockBackFfR15CBodyControllerR13CStateManager
UpdateBody__12CBSKnockBackFfR15CBodyControllerR13CStateManager:
/* 8013633C 0013329C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80136340 001332A0 7C 08 02 A6 */ mflr r0
/* 80136344 001332A4 90 01 00 44 */ stw r0, 0x44(r1)
/* 80136348 001332A8 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 8013634C 001332AC F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
/* 80136350 001332B0 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80136354 001332B4 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80136358 001332B8 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8013635C 001332BC FF E0 08 90 */ fmr f31, f1
/* 80136360 001332C0 7C 7D 1B 78 */ mr r29, r3
/* 80136364 001332C4 7C 9E 23 78 */ mr r30, r4
/* 80136368 001332C8 4B FF FE F9 */ bl GetBodyStateTransition__12CBSKnockBackFfR15CBodyController
/* 8013636C 001332CC 7C 7F 1B 78 */ mr r31, r3
/* 80136370 001332D0 2C 1F FF FF */ cmpwi r31, -1
/* 80136374 001332D4 40 82 00 50 */ bne lbl_801363C4
/* 80136378 001332D8 C0 3D 00 04 */ lfs f1, 4(r29)
/* 8013637C 001332DC C0 02 99 FC */ lfs f0, lbl_805AB71C@sda21(r2)
/* 80136380 001332E0 EC 21 F8 2A */ fadds f1, f1, f31
/* 80136384 001332E4 D0 3D 00 04 */ stfs f1, 4(r29)
/* 80136388 001332E8 C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 8013638C 001332EC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80136390 001332F0 40 81 00 34 */ ble lbl_801363C4
/* 80136394 001332F4 C0 1D 00 08 */ lfs f0, 8(r29)
/* 80136398 001332F8 38 61 00 0C */ addi r3, r1, 0xc
/* 8013639C 001332FC 38 81 00 08 */ addi r4, r1, 8
/* 801363A0 00133300 EC 00 07 F2 */ fmuls f0, f0, f31
/* 801363A4 00133304 D0 01 00 08 */ stfs f0, 8(r1)
/* 801363A8 00133308 48 1D AD 51 */ bl ZRotation__11CQuaternionFRC9CRelAngle
/* 801363AC 0013330C 7F C3 F3 78 */ mr r3, r30
/* 801363B0 00133310 38 81 00 0C */ addi r4, r1, 0xc
/* 801363B4 00133314 48 00 44 55 */ bl SetDeltaRotation__15CBodyControllerFRC11CQuaternion
/* 801363B8 00133318 C0 1D 00 0C */ lfs f0, 0xc(r29)
/* 801363BC 0013331C EC 00 F8 28 */ fsubs f0, f0, f31
/* 801363C0 00133320 D0 1D 00 0C */ stfs f0, 0xc(r29)
lbl_801363C4:
/* 801363C4 00133324 7F E3 FB 78 */ mr r3, r31
/* 801363C8 00133328 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
/* 801363CC 0013332C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 801363D0 00133330 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 801363D4 00133334 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 801363D8 00133338 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 801363DC 0013333C 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 801363E0 00133340 7C 08 03 A6 */ mtlr r0
/* 801363E4 00133344 38 21 00 40 */ addi r1, r1, 0x40
/* 801363E8 00133348 4E 80 00 20 */ blr
.global Start__12CBSKnockBackFR15CBodyControllerR13CStateManager
Start__12CBSKnockBackFR15CBodyControllerR13CStateManager:
/* 801363EC 0013334C 94 21 FE B0 */ stwu r1, -0x150(r1)
/* 801363F0 00133350 7C 08 02 A6 */ mflr r0
/* 801363F4 00133354 90 01 01 54 */ stw r0, 0x154(r1)
/* 801363F8 00133358 DB E1 01 40 */ stfd f31, 0x140(r1)
/* 801363FC 0013335C F3 E1 01 48 */ psq_st f31, 328(r1), 0, qr0
/* 80136400 00133360 BF 61 01 2C */ stmw r27, 0x12c(r1)
/* 80136404 00133364 7C 9F 23 78 */ mr r31, r4
/* 80136408 00133368 7C 7E 1B 78 */ mr r30, r3
/* 8013640C 0013336C 7C BB 2B 78 */ mr r27, r5
/* 80136410 00133370 38 80 00 04 */ li r4, 4
/* 80136414 00133374 38 7F 00 04 */ addi r3, r31, 4
/* 80136418 00133378 4B FF B0 39 */ bl GetCmd__16CBodyStateCmdMgrF13EBodyStateCmd
/* 8013641C 0013337C 80 9F 00 00 */ lwz r4, 0(r31)
/* 80136420 00133380 7C 7D 1B 78 */ mr r29, r3
/* 80136424 00133384 38 61 00 80 */ addi r3, r1, 0x80
/* 80136428 00133388 38 84 00 34 */ addi r4, r4, 0x34
/* 8013642C 0013338C 38 BD 00 08 */ addi r5, r29, 8
/* 80136430 00133390 48 1D C5 F5 */ bl TransposeRotate__12CTransform4fCFRC9CVector3f
/* 80136434 00133394 C0 21 00 84 */ lfs f1, 0x84(r1)
/* 80136438 00133398 C0 41 00 80 */ lfs f2, 0x80(r1)
/* 8013643C 0013339C 48 25 E8 31 */ bl atan2
/* 80136440 001333A0 FC 80 08 18 */ frsp f4, f1
/* 80136444 001333A4 C0 02 9A 00 */ lfs f0, lbl_805AB720@sda21(r2)
/* 80136448 001333A8 3C 00 43 30 */ lis r0, 0x4330
/* 8013644C 001333AC C8 62 9A 20 */ lfd f3, lbl_805AB740@sda21(r2)
/* 80136450 001333B0 90 01 01 08 */ stw r0, 0x108(r1)
/* 80136454 001333B4 EC 44 00 32 */ fmuls f2, f4, f0
/* 80136458 001333B8 C0 22 9A 04 */ lfs f1, lbl_805AB724@sda21(r2)
/* 8013645C 001333BC C0 02 99 FC */ lfs f0, lbl_805AB71C@sda21(r2)
/* 80136460 001333C0 FC 40 10 1E */ fctiwz f2, f2
/* 80136464 001333C4 D8 41 01 00 */ stfd f2, 0x100(r1)
/* 80136468 001333C8 80 01 01 04 */ lwz r0, 0x104(r1)
/* 8013646C 001333CC 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80136470 001333D0 90 01 01 0C */ stw r0, 0x10c(r1)
/* 80136474 001333D4 C8 41 01 08 */ lfd f2, 0x108(r1)
/* 80136478 001333D8 EC 42 18 28 */ fsubs f2, f2, f3
/* 8013647C 001333DC EF E2 20 7C */ fnmsubs f31, f2, f1, f4
/* 80136480 001333E0 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80136484 001333E4 40 80 00 08 */ bge lbl_8013648C
/* 80136488 001333E8 EF FF 08 2A */ fadds f31, f31, f1
lbl_8013648C:
/* 8013648C 001333EC 7F E3 FB 78 */ mr r3, r31
/* 80136490 001333F0 48 00 3F C5 */ bl GetPASDatabase__15CBodyControllerCFv
/* 80136494 001333F4 83 BD 00 14 */ lwz r29, 0x14(r29)
/* 80136498 001333F8 7C 7C 1B 78 */ mr r28, r3
/* 8013649C 001333FC 38 61 00 30 */ addi r3, r1, 0x30
/* 801364A0 00133400 48 1A CB DD */ bl NoParameter__12CPASAnimParmFv
/* 801364A4 00133404 38 61 00 38 */ addi r3, r1, 0x38
/* 801364A8 00133408 48 1A CB D5 */ bl NoParameter__12CPASAnimParmFv
/* 801364AC 0013340C 38 61 00 40 */ addi r3, r1, 0x40
/* 801364B0 00133410 48 1A CB CD */ bl NoParameter__12CPASAnimParmFv
/* 801364B4 00133414 38 61 00 48 */ addi r3, r1, 0x48
/* 801364B8 00133418 48 1A CB C5 */ bl NoParameter__12CPASAnimParmFv
/* 801364BC 0013341C 38 61 00 50 */ addi r3, r1, 0x50
/* 801364C0 00133420 48 1A CB BD */ bl NoParameter__12CPASAnimParmFv
/* 801364C4 00133424 38 61 00 58 */ addi r3, r1, 0x58
/* 801364C8 00133428 48 1A CB B5 */ bl NoParameter__12CPASAnimParmFv
/* 801364CC 0013342C 7F A4 EB 78 */ mr r4, r29
/* 801364D0 00133430 38 61 00 60 */ addi r3, r1, 0x60
/* 801364D4 00133434 48 1A CA B1 */ bl FromEnum__12CPASAnimParmFi
/* 801364D8 00133438 C0 02 9A 08 */ lfs f0, lbl_805AB728@sda21(r2)
/* 801364DC 0013343C 38 61 00 68 */ addi r3, r1, 0x68
/* 801364E0 00133440 EC 20 07 F2 */ fmuls f1, f0, f31
/* 801364E4 00133444 48 1A CB 05 */ bl FromReal32__12CPASAnimParmFf
/* 801364E8 00133448 38 61 00 38 */ addi r3, r1, 0x38
/* 801364EC 0013344C 38 01 00 30 */ addi r0, r1, 0x30
/* 801364F0 00133450 90 61 00 08 */ stw r3, 8(r1)
/* 801364F4 00133454 38 61 00 B4 */ addi r3, r1, 0xb4
/* 801364F8 00133458 38 A1 00 68 */ addi r5, r1, 0x68
/* 801364FC 0013345C 38 C1 00 60 */ addi r6, r1, 0x60
/* 80136500 00133460 90 01 00 0C */ stw r0, 0xc(r1)
/* 80136504 00133464 38 E1 00 58 */ addi r7, r1, 0x58
/* 80136508 00133468 39 01 00 50 */ addi r8, r1, 0x50
/* 8013650C 0013346C 39 21 00 48 */ addi r9, r1, 0x48
/* 80136510 00133470 39 41 00 40 */ addi r10, r1, 0x40
/* 80136514 00133474 38 80 00 06 */ li r4, 6
/* 80136518 00133478 4B F4 6D AD */ bl __ct__16CPASAnimParmDataFiRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParm
/* 8013651C 0013347C 80 DB 09 00 */ lwz r6, 0x900(r27)
/* 80136520 00133480 7F 84 E3 78 */ mr r4, r28
/* 80136524 00133484 38 61 00 28 */ addi r3, r1, 0x28
/* 80136528 00133488 38 A1 00 B4 */ addi r5, r1, 0xb4
/* 8013652C 0013348C 38 E0 FF FF */ li r7, -1
/* 80136530 00133490 48 1A EB 31 */ bl FindBestAnimation__12CPASDatabaseCFRC16CPASAnimParmDataR9CRandom16i
/* 80136534 00133494 83 A1 00 2C */ lwz r29, 0x2c(r1)
/* 80136538 00133498 38 00 00 00 */ li r0, 0
/* 8013653C 0013349C C0 02 9A 0C */ lfs f0, lbl_805AB72C@sda21(r2)
/* 80136540 001334A0 38 A0 FF FF */ li r5, -1
/* 80136544 001334A4 38 E0 00 01 */ li r7, 1
/* 80136548 001334A8 93 A1 00 8C */ stw r29, 0x8c(r1)
/* 8013654C 001334AC 7F E3 FB 78 */ mr r3, r31
/* 80136550 001334B0 38 81 00 8C */ addi r4, r1, 0x8c
/* 80136554 001334B4 90 A1 00 90 */ stw r5, 0x90(r1)
/* 80136558 001334B8 38 A0 00 00 */ li r5, 0
/* 8013655C 001334BC 38 C0 00 00 */ li r6, 0
/* 80136560 001334C0 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 80136564 001334C4 98 E1 00 98 */ stb r7, 0x98(r1)
/* 80136568 001334C8 90 01 00 9C */ stw r0, 0x9c(r1)
/* 8013656C 001334CC 90 01 00 A0 */ stw r0, 0xa0(r1)
/* 80136570 001334D0 98 01 00 A4 */ stb r0, 0xa4(r1)
/* 80136574 001334D4 90 01 00 A8 */ stw r0, 0xa8(r1)
/* 80136578 001334D8 90 01 00 AC */ stw r0, 0xac(r1)
/* 8013657C 001334DC 90 01 00 B0 */ stw r0, 0xb0(r1)
/* 80136580 001334E0 48 00 43 9D */ bl SetCurrentAnimation__15CBodyControllerFRC18CAnimPlaybackParmsbb
/* 80136584 001334E4 7F 83 E3 78 */ mr r3, r28
/* 80136588 001334E8 38 80 00 06 */ li r4, 6
/* 8013658C 001334EC 48 1A E9 39 */ bl GetAnimState__12CPASDatabaseCFi
/* 80136590 001334F0 7C 7C 1B 78 */ mr r28, r3
/* 80136594 001334F4 7F A5 EB 78 */ mr r5, r29
/* 80136598 001334F8 38 61 00 20 */ addi r3, r1, 0x20
/* 8013659C 001334FC 38 C0 00 02 */ li r6, 2
/* 801365A0 00133500 7F 84 E3 78 */ mr r4, r28
/* 801365A4 00133504 48 1A DA 51 */ bl GetAnimParmData__13CPASAnimStateCFiUi
/* 801365A8 00133508 80 81 00 20 */ lwz r4, 0x20(r1)
/* 801365AC 0013350C 38 61 00 78 */ addi r3, r1, 0x78
/* 801365B0 00133510 80 01 00 24 */ lwz r0, 0x24(r1)
/* 801365B4 00133514 90 81 00 78 */ stw r4, 0x78(r1)
/* 801365B8 00133518 90 01 00 7C */ stw r0, 0x7c(r1)
/* 801365BC 0013351C 48 1A C9 A9 */ bl GetBoolValue__12CPASAnimParmCFv
/* 801365C0 00133520 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 801365C4 00133524 40 82 01 50 */ bne lbl_80136714
/* 801365C8 00133528 7F 84 E3 78 */ mr r4, r28
/* 801365CC 0013352C 7F A5 EB 78 */ mr r5, r29
/* 801365D0 00133530 38 61 00 18 */ addi r3, r1, 0x18
/* 801365D4 00133534 38 C0 00 00 */ li r6, 0
/* 801365D8 00133538 48 1A DA 1D */ bl GetAnimParmData__13CPASAnimStateCFiUi
/* 801365DC 0013353C 80 81 00 18 */ lwz r4, 0x18(r1)
/* 801365E0 00133540 38 61 00 70 */ addi r3, r1, 0x70
/* 801365E4 00133544 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 801365E8 00133548 90 81 00 70 */ stw r4, 0x70(r1)
/* 801365EC 0013354C 90 01 00 74 */ stw r0, 0x74(r1)
/* 801365F0 00133550 48 1A C9 7D */ bl GetReal32Value__12CPASAnimParmCFv
/* 801365F4 00133554 C0 02 9A 10 */ lfs f0, lbl_805AB730@sda21(r2)
/* 801365F8 00133558 3C 00 43 30 */ lis r0, 0x4330
/* 801365FC 0013355C C0 42 9A 00 */ lfs f2, lbl_805AB720@sda21(r2)
/* 80136600 00133560 EC A0 00 72 */ fmuls f5, f0, f1
/* 80136604 00133564 90 01 01 00 */ stw r0, 0x100(r1)
/* 80136608 00133568 C8 62 9A 20 */ lfd f3, lbl_805AB740@sda21(r2)
/* 8013660C 0013356C C0 22 9A 04 */ lfs f1, lbl_805AB724@sda21(r2)
/* 80136610 00133570 EC 9F 28 28 */ fsubs f4, f31, f5
/* 80136614 00133574 C0 02 99 FC */ lfs f0, lbl_805AB71C@sda21(r2)
/* 80136618 00133578 EC 44 00 B2 */ fmuls f2, f4, f2
/* 8013661C 0013357C FC 40 10 1E */ fctiwz f2, f2
/* 80136620 00133580 D8 41 01 08 */ stfd f2, 0x108(r1)
/* 80136624 00133584 80 01 01 0C */ lwz r0, 0x10c(r1)
/* 80136628 00133588 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8013662C 0013358C 90 01 01 04 */ stw r0, 0x104(r1)
/* 80136630 00133590 C8 41 01 00 */ lfd f2, 0x100(r1)
/* 80136634 00133594 EC 42 18 28 */ fsubs f2, f2, f3
/* 80136638 00133598 EC C2 20 7C */ fnmsubs f6, f2, f1, f4
/* 8013663C 0013359C FC 80 30 90 */ fmr f4, f6
/* 80136640 001335A0 FC 06 00 40 */ fcmpo cr0, f6, f0
/* 80136644 001335A4 40 80 00 08 */ bge lbl_8013664C
/* 80136648 001335A8 EC 86 08 2A */ fadds f4, f6, f1
lbl_8013664C:
/* 8013664C 001335AC EC A5 F8 28 */ fsubs f5, f5, f31
/* 80136650 001335B0 C0 02 9A 00 */ lfs f0, lbl_805AB720@sda21(r2)
/* 80136654 001335B4 3C 00 43 30 */ lis r0, 0x4330
/* 80136658 001335B8 C8 62 9A 20 */ lfd f3, lbl_805AB740@sda21(r2)
/* 8013665C 001335BC 90 01 01 18 */ stw r0, 0x118(r1)
/* 80136660 001335C0 EC 45 00 32 */ fmuls f2, f5, f0
/* 80136664 001335C4 C0 22 9A 04 */ lfs f1, lbl_805AB724@sda21(r2)
/* 80136668 001335C8 C0 02 99 FC */ lfs f0, lbl_805AB71C@sda21(r2)
/* 8013666C 001335CC FC 40 10 1E */ fctiwz f2, f2
/* 80136670 001335D0 D0 81 00 14 */ stfs f4, 0x14(r1)
/* 80136674 001335D4 D8 41 01 10 */ stfd f2, 0x110(r1)
/* 80136678 001335D8 80 01 01 14 */ lwz r0, 0x114(r1)
/* 8013667C 001335DC 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80136680 001335E0 90 01 01 1C */ stw r0, 0x11c(r1)
/* 80136684 001335E4 C8 41 01 18 */ lfd f2, 0x118(r1)
/* 80136688 001335E8 EC 42 18 28 */ fsubs f2, f2, f3
/* 8013668C 001335EC EC 42 28 7C */ fnmsubs f2, f2, f1, f5
/* 80136690 001335F0 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 80136694 001335F4 40 80 00 08 */ bge lbl_8013669C
/* 80136698 001335F8 EC 42 08 2A */ fadds f2, f2, f1
lbl_8013669C:
/* 8013669C 001335FC FC 02 20 40 */ fcmpo cr0, f2, f4
/* 801366A0 00133600 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 801366A4 00133604 40 80 00 0C */ bge lbl_801366B0
/* 801366A8 00133608 38 61 00 10 */ addi r3, r1, 0x10
/* 801366AC 0013360C 48 00 00 08 */ b lbl_801366B4
lbl_801366B0:
/* 801366B0 00133610 38 61 00 14 */ addi r3, r1, 0x14
lbl_801366B4:
/* 801366B4 00133614 C0 02 99 FC */ lfs f0, lbl_805AB71C@sda21(r2)
/* 801366B8 00133618 C0 23 00 00 */ lfs f1, 0(r3)
/* 801366BC 0013361C FC 06 00 40 */ fcmpo cr0, f6, f0
/* 801366C0 00133620 40 80 00 0C */ bge lbl_801366CC
/* 801366C4 00133624 C0 02 9A 04 */ lfs f0, lbl_805AB724@sda21(r2)
/* 801366C8 00133628 EC C6 00 2A */ fadds f6, f6, f0
lbl_801366CC:
/* 801366CC 0013362C C0 02 9A 14 */ lfs f0, lbl_805AB734@sda21(r2)
/* 801366D0 00133630 FC 06 00 40 */ fcmpo cr0, f6, f0
/* 801366D4 00133634 40 81 00 0C */ ble lbl_801366E0
/* 801366D8 00133638 FF E0 08 50 */ fneg f31, f1
/* 801366DC 0013363C 48 00 00 08 */ b lbl_801366E4
lbl_801366E0:
/* 801366E0 00133640 FF E0 08 90 */ fmr f31, f1
lbl_801366E4:
/* 801366E4 00133644 7F E3 FB 78 */ mr r3, r31
/* 801366E8 00133648 48 00 41 D1 */ bl GetAnimTimeRemaining__15CBodyControllerCFv
/* 801366EC 0013364C C0 42 9A 18 */ lfs f2, lbl_805AB738@sda21(r2)
/* 801366F0 00133650 C0 02 9A 1C */ lfs f0, lbl_805AB73C@sda21(r2)
/* 801366F4 00133654 EC 22 00 72 */ fmuls f1, f2, f1
/* 801366F8 00133658 D0 3E 00 0C */ stfs f1, 0xc(r30)
/* 801366FC 0013365C C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 80136700 00133660 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80136704 00133664 40 81 00 08 */ ble lbl_8013670C
/* 80136708 00133668 EF FF 08 24 */ fdivs f31, f31, f1
lbl_8013670C:
/* 8013670C 0013366C D3 FE 00 08 */ stfs f31, 8(r30)
/* 80136710 00133670 48 00 00 10 */ b lbl_80136720
lbl_80136714:
/* 80136714 00133674 C0 02 99 FC */ lfs f0, lbl_805AB71C@sda21(r2)
/* 80136718 00133678 D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8013671C 0013367C D0 1E 00 08 */ stfs f0, 8(r30)
lbl_80136720:
/* 80136720 00133680 C0 02 99 FC */ lfs f0, lbl_805AB71C@sda21(r2)
/* 80136724 00133684 34 A1 00 B8 */ addic. r5, r1, 0xb8
/* 80136728 00133688 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8013672C 0013368C 41 82 00 58 */ beq lbl_80136784
/* 80136730 00133690 80 C5 00 00 */ lwz r6, 0(r5)
/* 80136734 00133694 38 60 00 00 */ li r3, 0
/* 80136738 00133698 2C 06 00 00 */ cmpwi r6, 0
/* 8013673C 0013369C 40 81 00 40 */ ble lbl_8013677C
/* 80136740 001336A0 2C 06 00 08 */ cmpwi r6, 8
/* 80136744 001336A4 38 86 FF F8 */ addi r4, r6, -8
/* 80136748 001336A8 40 81 00 20 */ ble lbl_80136768
/* 8013674C 001336AC 38 04 00 07 */ addi r0, r4, 7
/* 80136750 001336B0 54 00 E8 FE */ srwi r0, r0, 3
/* 80136754 001336B4 7C 09 03 A6 */ mtctr r0
/* 80136758 001336B8 2C 04 00 00 */ cmpwi r4, 0
/* 8013675C 001336BC 40 81 00 0C */ ble lbl_80136768
lbl_80136760:
/* 80136760 001336C0 38 63 00 08 */ addi r3, r3, 8
/* 80136764 001336C4 42 00 FF FC */ bdnz lbl_80136760
lbl_80136768:
/* 80136768 001336C8 7C 03 30 50 */ subf r0, r3, r6
/* 8013676C 001336CC 7C 09 03 A6 */ mtctr r0
/* 80136770 001336D0 7C 03 30 00 */ cmpw r3, r6
/* 80136774 001336D4 40 80 00 08 */ bge lbl_8013677C
lbl_80136778:
/* 80136778 001336D8 42 00 00 00 */ bdnz lbl_80136778
lbl_8013677C:
/* 8013677C 001336DC 38 00 00 00 */ li r0, 0
/* 80136780 001336E0 90 05 00 00 */ stw r0, 0(r5)
lbl_80136784:
/* 80136784 001336E4 E3 E1 01 48 */ psq_l f31, 328(r1), 0, qr0
/* 80136788 001336E8 CB E1 01 40 */ lfd f31, 0x140(r1)
/* 8013678C 001336EC BB 61 01 2C */ lmw r27, 0x12c(r1)
/* 80136790 001336F0 80 01 01 54 */ lwz r0, 0x154(r1)
/* 80136794 001336F4 7C 08 03 A6 */ mtlr r0
/* 80136798 001336F8 38 21 01 50 */ addi r1, r1, 0x150
/* 8013679C 001336FC 4E 80 00 20 */ blr
.global __ct__12CBSKnockBackFv
__ct__12CBSKnockBackFv:
/* 801367A0 00133700 3C A0 80 3E */ lis r5, lbl_803E1318@ha
/* 801367A4 00133704 3C 80 80 3E */ lis r4, lbl_803E1450@ha
/* 801367A8 00133708 38 A5 13 18 */ addi r5, r5, lbl_803E1318@l
/* 801367AC 0013370C C0 02 99 FC */ lfs f0, lbl_805AB71C@sda21(r2)
/* 801367B0 00133710 90 A3 00 00 */ stw r5, 0(r3)
/* 801367B4 00133714 38 04 14 50 */ addi r0, r4, lbl_803E1450@l
/* 801367B8 00133718 90 03 00 00 */ stw r0, 0(r3)
/* 801367BC 0013371C D0 03 00 04 */ stfs f0, 4(r3)
/* 801367C0 00133720 D0 03 00 08 */ stfs f0, 8(r3)
/* 801367C4 00133724 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 801367C8 00133728 4E 80 00 20 */ blr