prime/asm/MetroidPrime/Enemies/CKnockBackController.s

1409 lines
71 KiB
ArmAsm

.include "macros.inc"
.section .data
.global lbl_803E8150
lbl_803E8150:
# ROM: 0x3E5150
.4byte lbl_802338FC
.4byte lbl_80233858
.4byte lbl_80233870
.4byte lbl_80233888
.4byte lbl_802338FC
.4byte lbl_802338FC
.4byte lbl_802338A0
.4byte lbl_802338B8
.4byte lbl_802338D0
.4byte lbl_802338E8
.global lbl_803E8178
lbl_803E8178:
# ROM: 0x3E5178
.4byte lbl_80233A28
.4byte lbl_80233A3C
.4byte lbl_80233A50
.4byte lbl_80233A58
.4byte lbl_80233A60
.4byte lbl_80233A68
.4byte lbl_80233A70
.4byte lbl_80233A7C
.4byte lbl_80233A78
.4byte 0
.section .sdata
.global lbl_805A81F8
lbl_805A81F8:
# ROM: 0x3F5B98
.4byte 0
.global lbl_805A81FC
lbl_805A81FC:
# ROM: 0x3F5B9C
.4byte 0
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global DoKnockBackAnimation__20CKnockBackControllerFRC9CVector3fR13CStateManagerR10CPatternedf
DoKnockBackAnimation__20CKnockBackControllerFRC9CVector3fR13CStateManagerR10CPatternedf:
/* 80232CA4 0022FC04 94 21 FE B0 */ stwu r1, -0x150(r1)
/* 80232CA8 0022FC08 7C 08 02 A6 */ mflr r0
/* 80232CAC 0022FC0C 90 01 01 54 */ stw r0, 0x154(r1)
/* 80232CB0 0022FC10 DB E1 01 40 */ stfd f31, 0x140(r1)
/* 80232CB4 0022FC14 F3 E1 01 48 */ psq_st f31, 328(r1), 0, qr0
/* 80232CB8 0022FC18 DB C1 01 30 */ stfd f30, 0x130(r1)
/* 80232CBC 0022FC1C F3 C1 01 38 */ psq_st f30, 312(r1), 0, qr0
/* 80232CC0 0022FC20 BF 61 01 1C */ stmw r27, 0x11c(r1)
/* 80232CC4 0022FC24 7C 7D 1B 78 */ mr r29, r3
/* 80232CC8 0022FC28 7C DE 33 78 */ mr r30, r6
/* 80232CCC 0022FC2C 80 03 00 04 */ lwz r0, 4(r3)
/* 80232CD0 0022FC30 FF C0 08 90 */ fmr f30, f1
/* 80232CD4 0022FC34 83 E6 04 50 */ lwz r31, 0x450(r6)
/* 80232CD8 0022FC38 7C 9B 23 78 */ mr r27, r4
/* 80232CDC 0022FC3C 2C 00 00 03 */ cmpwi r0, 3
/* 80232CE0 0022FC40 7C BC 2B 78 */ mr r28, r5
/* 80232CE4 0022FC44 41 82 00 24 */ beq lbl_80232D08
/* 80232CE8 0022FC48 40 80 00 14 */ bge lbl_80232CFC
/* 80232CEC 0022FC4C 2C 00 00 01 */ cmpwi r0, 1
/* 80232CF0 0022FC50 41 82 03 30 */ beq lbl_80233020
/* 80232CF4 0022FC54 40 80 02 8C */ bge lbl_80232F80
/* 80232CF8 0022FC58 48 00 04 88 */ b lbl_80233180
lbl_80232CFC:
/* 80232CFC 0022FC5C 2C 00 00 05 */ cmpwi r0, 5
/* 80232D00 0022FC60 40 80 04 80 */ bge lbl_80233180
/* 80232D04 0022FC64 48 00 01 DC */ b lbl_80232EE0
lbl_80232D08:
/* 80232D08 0022FC68 7F C3 F3 78 */ mr r3, r30
/* 80232D0C 0022FC6C 7F 84 E3 78 */ mr r4, r28
/* 80232D10 0022FC70 81 9E 00 00 */ lwz r12, 0(r30)
/* 80232D14 0022FC74 C3 E2 B6 F8 */ lfs f31, lbl_805AD418@sda21(r2)
/* 80232D18 0022FC78 81 8C 00 34 */ lwz r12, 0x34(r12)
/* 80232D1C 0022FC7C 7D 89 03 A6 */ mtctr r12
/* 80232D20 0022FC80 4E 80 04 21 */ bctrl
/* 80232D24 0022FC84 28 03 00 00 */ cmplwi r3, 0
/* 80232D28 0022FC88 41 82 00 1C */ beq lbl_80232D44
/* 80232D2C 0022FC8C FC 20 F0 90 */ fmr f1, f30
/* 80232D30 0022FC90 C0 43 00 04 */ lfs f2, 4(r3)
/* 80232D34 0022FC94 7F A3 EB 78 */ mr r3, r29
/* 80232D38 0022FC98 7F 84 E3 78 */ mr r4, r28
/* 80232D3C 0022FC9C 48 00 0B F5 */ bl CalculateExtraHurlVelocity__20CKnockBackControllerFR13CStateManagerff
/* 80232D40 0022FCA0 EF FF 08 2A */ fadds f31, f31, f1
lbl_80232D44:
/* 80232D44 0022FCA4 7F C3 F3 78 */ mr r3, r30
/* 80232D48 0022FCA8 81 9E 00 00 */ lwz r12, 0(r30)
/* 80232D4C 0022FCAC 81 8C 02 BC */ lwz r12, 0x2bc(r12)
/* 80232D50 0022FCB0 7D 89 03 A6 */ mtctr r12
/* 80232D54 0022FCB4 4E 80 04 21 */ bctrl
/* 80232D58 0022FCB8 C0 02 B6 FC */ lfs f0, lbl_805AD41C@sda21(r2)
/* 80232D5C 0022FCBC EC 00 07 F2 */ fmuls f0, f0, f31
/* 80232D60 0022FCC0 EC 20 00 72 */ fmuls f1, f0, f1
/* 80232D64 0022FCC4 48 0E 27 9D */ bl SqrtF__5CMathFf
/* 80232D68 0022FCC8 FF E0 08 90 */ fmr f31, f1
/* 80232D6C 0022FCCC 7F 63 DB 78 */ mr r3, r27
/* 80232D70 0022FCD0 48 0E 1B 49 */ bl Magnitude__9CVector3fCFv
/* 80232D74 0022FCD4 3C 60 80 5A */ lis r3, lbl_805A66F4@ha
/* 80232D78 0022FCD8 C0 DB 00 04 */ lfs f6, 4(r27)
/* 80232D7C 0022FCDC 38 83 66 F4 */ addi r4, r3, lbl_805A66F4@l
/* 80232D80 0022FCE0 C0 9B 00 08 */ lfs f4, 8(r27)
/* 80232D84 0022FCE4 C0 64 00 04 */ lfs f3, 4(r4)
/* 80232D88 0022FCE8 38 61 00 68 */ addi r3, r1, 0x68
/* 80232D8C 0022FCEC C0 44 00 08 */ lfs f2, 8(r4)
/* 80232D90 0022FCF0 C0 04 00 00 */ lfs f0, 0(r4)
/* 80232D94 0022FCF4 EC A1 00 F2 */ fmuls f5, f1, f3
/* 80232D98 0022FCF8 EC 61 00 B2 */ fmuls f3, f1, f2
/* 80232D9C 0022FCFC C0 5B 00 00 */ lfs f2, 0(r27)
/* 80232DA0 0022FD00 EC 01 00 32 */ fmuls f0, f1, f0
/* 80232DA4 0022FD04 EC A6 28 2A */ fadds f5, f6, f5
/* 80232DA8 0022FD08 EC 24 18 2A */ fadds f1, f4, f3
/* 80232DAC 0022FD0C EC 02 00 2A */ fadds f0, f2, f0
/* 80232DB0 0022FD10 D0 A1 00 6C */ stfs f5, 0x6c(r1)
/* 80232DB4 0022FD14 D0 01 00 68 */ stfs f0, 0x68(r1)
/* 80232DB8 0022FD18 D0 21 00 70 */ stfs f1, 0x70(r1)
/* 80232DBC 0022FD1C 48 0E 19 3D */ bl CanBeNormalized__9CVector3fCFv
/* 80232DC0 0022FD20 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80232DC4 0022FD24 41 82 03 BC */ beq lbl_80233180
/* 80232DC8 0022FD28 38 61 00 5C */ addi r3, r1, 0x5c
/* 80232DCC 0022FD2C 38 81 00 68 */ addi r4, r1, 0x68
/* 80232DD0 0022FD30 48 0E 1A 81 */ bl AsNormalized__9CVector3fCFv
/* 80232DD4 0022FD34 C0 41 00 5C */ lfs f2, 0x5c(r1)
/* 80232DD8 0022FD38 3C 60 80 3E */ lis r3, lbl_803DAA68@ha
/* 80232DDC 0022FD3C C0 21 00 60 */ lfs f1, 0x60(r1)
/* 80232DE0 0022FD40 38 83 AA 68 */ addi r4, r3, lbl_803DAA68@l
/* 80232DE4 0022FD44 C0 01 00 64 */ lfs f0, 0x64(r1)
/* 80232DE8 0022FD48 EC BF 00 B2 */ fmuls f5, f31, f2
/* 80232DEC 0022FD4C C0 5B 00 08 */ lfs f2, 8(r27)
/* 80232DF0 0022FD50 EC 9F 00 72 */ fmuls f4, f31, f1
/* 80232DF4 0022FD54 C0 3B 00 04 */ lfs f1, 4(r27)
/* 80232DF8 0022FD58 EC 7F 00 32 */ fmuls f3, f31, f0
/* 80232DFC 0022FD5C C0 1B 00 00 */ lfs f0, 0(r27)
/* 80232E00 0022FD60 FC 40 10 50 */ fneg f2, f2
/* 80232E04 0022FD64 3C 60 80 3E */ lis r3, lbl_803DAA5C@ha
/* 80232E08 0022FD68 FC 20 08 50 */ fneg f1, f1
/* 80232E0C 0022FD6C 38 C0 00 0F */ li r6, 0xf
/* 80232E10 0022FD70 FC 00 00 50 */ fneg f0, f0
/* 80232E14 0022FD74 38 00 00 00 */ li r0, 0
/* 80232E18 0022FD78 3B FF 00 04 */ addi r31, r31, 4
/* 80232E1C 0022FD7C 90 81 00 A4 */ stw r4, 0xa4(r1)
/* 80232E20 0022FD80 38 A3 AA 5C */ addi r5, r3, lbl_803DAA5C@l
/* 80232E24 0022FD84 38 80 00 0F */ li r4, 0xf
/* 80232E28 0022FD88 90 C1 00 A8 */ stw r6, 0xa8(r1)
/* 80232E2C 0022FD8C 7F E3 FB 78 */ mr r3, r31
/* 80232E30 0022FD90 90 A1 00 A4 */ stw r5, 0xa4(r1)
/* 80232E34 0022FD94 D0 01 00 AC */ stfs f0, 0xac(r1)
/* 80232E38 0022FD98 D0 21 00 B0 */ stfs f1, 0xb0(r1)
/* 80232E3C 0022FD9C D0 41 00 B4 */ stfs f2, 0xb4(r1)
/* 80232E40 0022FDA0 D0 A1 00 B8 */ stfs f5, 0xb8(r1)
/* 80232E44 0022FDA4 D0 81 00 BC */ stfs f4, 0xbc(r1)
/* 80232E48 0022FDA8 D0 61 00 C0 */ stfs f3, 0xc0(r1)
/* 80232E4C 0022FDAC 98 01 00 C4 */ stb r0, 0xc4(r1)
/* 80232E50 0022FDB0 4B EF E5 E9 */ bl DeliverCmd__16CBodyStateCmdMgrF13EBodyStateCmd
/* 80232E54 0022FDB4 80 01 00 A8 */ lwz r0, 0xa8(r1)
/* 80232E58 0022FDB8 3C 60 80 3E */ lis r3, lbl_803DAA5C@ha
/* 80232E5C 0022FDBC 38 A3 AA 5C */ addi r5, r3, lbl_803DAA5C@l
/* 80232E60 0022FDC0 3C 80 80 3E */ lis r4, lbl_803DAA68@ha
/* 80232E64 0022FDC4 90 1F 01 B0 */ stw r0, 0x1b0(r31)
/* 80232E68 0022FDC8 7F C3 F3 78 */ mr r3, r30
/* 80232E6C 0022FDCC 80 E1 00 AC */ lwz r7, 0xac(r1)
/* 80232E70 0022FDD0 38 04 AA 68 */ addi r0, r4, lbl_803DAA68@l
/* 80232E74 0022FDD4 80 C1 00 B0 */ lwz r6, 0xb0(r1)
/* 80232E78 0022FDD8 90 FF 01 B4 */ stw r7, 0x1b4(r31)
/* 80232E7C 0022FDDC 80 81 00 B4 */ lwz r4, 0xb4(r1)
/* 80232E80 0022FDE0 90 DF 01 B8 */ stw r6, 0x1b8(r31)
/* 80232E84 0022FDE4 80 C1 00 B8 */ lwz r6, 0xb8(r1)
/* 80232E88 0022FDE8 90 9F 01 BC */ stw r4, 0x1bc(r31)
/* 80232E8C 0022FDEC 80 81 00 BC */ lwz r4, 0xbc(r1)
/* 80232E90 0022FDF0 90 DF 01 C0 */ stw r6, 0x1c0(r31)
/* 80232E94 0022FDF4 80 C1 00 C0 */ lwz r6, 0xc0(r1)
/* 80232E98 0022FDF8 90 9F 01 C4 */ stw r4, 0x1c4(r31)
/* 80232E9C 0022FDFC 88 81 00 C4 */ lbz r4, 0xc4(r1)
/* 80232EA0 0022FE00 90 DF 01 C8 */ stw r6, 0x1c8(r31)
/* 80232EA4 0022FE04 98 9F 01 CC */ stb r4, 0x1cc(r31)
/* 80232EA8 0022FE08 81 9E 00 00 */ lwz r12, 0(r30)
/* 80232EAC 0022FE0C 90 A1 00 A4 */ stw r5, 0xa4(r1)
/* 80232EB0 0022FE10 81 8C 02 BC */ lwz r12, 0x2bc(r12)
/* 80232EB4 0022FE14 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 80232EB8 0022FE18 C3 FE 00 E8 */ lfs f31, 0xe8(r30)
/* 80232EBC 0022FE1C 7D 89 03 A6 */ mtctr r12
/* 80232EC0 0022FE20 4E 80 04 21 */ bctrl
/* 80232EC4 0022FE24 FC 40 F8 50 */ fneg f2, f31
/* 80232EC8 0022FE28 C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 80232ECC 0022FE2C D0 1E 01 50 */ stfs f0, 0x150(r30)
/* 80232ED0 0022FE30 EC 22 00 72 */ fmuls f1, f2, f1
/* 80232ED4 0022FE34 D0 1E 01 54 */ stfs f0, 0x154(r30)
/* 80232ED8 0022FE38 D0 3E 01 58 */ stfs f1, 0x158(r30)
/* 80232EDC 0022FE3C 48 00 02 A4 */ b lbl_80233180
lbl_80232EE0:
/* 80232EE0 0022FE40 C0 5B 00 08 */ lfs f2, 8(r27)
/* 80232EE4 0022FE44 3C 60 80 3E */ lis r3, lbl_803DAA68@ha
/* 80232EE8 0022FE48 C0 3B 00 04 */ lfs f1, 4(r27)
/* 80232EEC 0022FE4C 38 03 AA 68 */ addi r0, r3, lbl_803DAA68@l
/* 80232EF0 0022FE50 C0 1B 00 00 */ lfs f0, 0(r27)
/* 80232EF4 0022FE54 FC 40 10 50 */ fneg f2, f2
/* 80232EF8 0022FE58 FC 20 08 50 */ fneg f1, f1
/* 80232EFC 0022FE5C 80 DD 00 7C */ lwz r6, 0x7c(r29)
/* 80232F00 0022FE60 FC 00 00 50 */ fneg f0, f0
/* 80232F04 0022FE64 3C 60 80 3E */ lis r3, lbl_803DAA50@ha
/* 80232F08 0022FE68 38 A0 00 03 */ li r5, 3
/* 80232F0C 0022FE6C 3B BF 00 04 */ addi r29, r31, 4
/* 80232F10 0022FE70 90 01 00 8C */ stw r0, 0x8c(r1)
/* 80232F14 0022FE74 38 03 AA 50 */ addi r0, r3, lbl_803DAA50@l
/* 80232F18 0022FE78 7F A3 EB 78 */ mr r3, r29
/* 80232F1C 0022FE7C 38 80 00 03 */ li r4, 3
/* 80232F20 0022FE80 90 A1 00 90 */ stw r5, 0x90(r1)
/* 80232F24 0022FE84 90 01 00 8C */ stw r0, 0x8c(r1)
/* 80232F28 0022FE88 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 80232F2C 0022FE8C D0 21 00 98 */ stfs f1, 0x98(r1)
/* 80232F30 0022FE90 D0 41 00 9C */ stfs f2, 0x9c(r1)
/* 80232F34 0022FE94 90 C1 00 A0 */ stw r6, 0xa0(r1)
/* 80232F38 0022FE98 4B EF E5 01 */ bl DeliverCmd__16CBodyStateCmdMgrF13EBodyStateCmd
/* 80232F3C 0022FE9C 80 01 00 90 */ lwz r0, 0x90(r1)
/* 80232F40 0022FEA0 3C 60 80 3E */ lis r3, lbl_803DAA50@ha
/* 80232F44 0022FEA4 38 83 AA 50 */ addi r4, r3, lbl_803DAA50@l
/* 80232F48 0022FEA8 3C 60 80 3E */ lis r3, lbl_803DAA68@ha
/* 80232F4C 0022FEAC 90 1D 00 E0 */ stw r0, 0xe0(r29)
/* 80232F50 0022FEB0 38 03 AA 68 */ addi r0, r3, lbl_803DAA68@l
/* 80232F54 0022FEB4 80 A1 00 94 */ lwz r5, 0x94(r1)
/* 80232F58 0022FEB8 80 61 00 98 */ lwz r3, 0x98(r1)
/* 80232F5C 0022FEBC 90 BD 00 E4 */ stw r5, 0xe4(r29)
/* 80232F60 0022FEC0 80 A1 00 9C */ lwz r5, 0x9c(r1)
/* 80232F64 0022FEC4 90 7D 00 E8 */ stw r3, 0xe8(r29)
/* 80232F68 0022FEC8 80 61 00 A0 */ lwz r3, 0xa0(r1)
/* 80232F6C 0022FECC 90 BD 00 EC */ stw r5, 0xec(r29)
/* 80232F70 0022FED0 90 81 00 8C */ stw r4, 0x8c(r1)
/* 80232F74 0022FED4 90 7D 00 F0 */ stw r3, 0xf0(r29)
/* 80232F78 0022FED8 90 01 00 8C */ stw r0, 0x8c(r1)
/* 80232F7C 0022FEDC 48 00 02 04 */ b lbl_80233180
lbl_80232F80:
/* 80232F80 0022FEE0 C0 5B 00 08 */ lfs f2, 8(r27)
/* 80232F84 0022FEE4 3C 60 80 3E */ lis r3, lbl_803DAA68@ha
/* 80232F88 0022FEE8 C0 3B 00 04 */ lfs f1, 4(r27)
/* 80232F8C 0022FEEC 38 03 AA 68 */ addi r0, r3, lbl_803DAA68@l
/* 80232F90 0022FEF0 C0 1B 00 00 */ lfs f0, 0(r27)
/* 80232F94 0022FEF4 FC 40 10 50 */ fneg f2, f2
/* 80232F98 0022FEF8 FC 20 08 50 */ fneg f1, f1
/* 80232F9C 0022FEFC 80 DD 00 7C */ lwz r6, 0x7c(r29)
/* 80232FA0 0022FF00 FC 00 00 50 */ fneg f0, f0
/* 80232FA4 0022FF04 3C 60 80 3E */ lis r3, lbl_803DAA44@ha
/* 80232FA8 0022FF08 38 A0 00 04 */ li r5, 4
/* 80232FAC 0022FF0C 3B BF 00 04 */ addi r29, r31, 4
/* 80232FB0 0022FF10 90 01 00 74 */ stw r0, 0x74(r1)
/* 80232FB4 0022FF14 38 03 AA 44 */ addi r0, r3, lbl_803DAA44@l
/* 80232FB8 0022FF18 7F A3 EB 78 */ mr r3, r29
/* 80232FBC 0022FF1C 38 80 00 04 */ li r4, 4
/* 80232FC0 0022FF20 90 A1 00 78 */ stw r5, 0x78(r1)
/* 80232FC4 0022FF24 90 01 00 74 */ stw r0, 0x74(r1)
/* 80232FC8 0022FF28 D0 01 00 7C */ stfs f0, 0x7c(r1)
/* 80232FCC 0022FF2C D0 21 00 80 */ stfs f1, 0x80(r1)
/* 80232FD0 0022FF30 D0 41 00 84 */ stfs f2, 0x84(r1)
/* 80232FD4 0022FF34 90 C1 00 88 */ stw r6, 0x88(r1)
/* 80232FD8 0022FF38 4B EF E4 61 */ bl DeliverCmd__16CBodyStateCmdMgrF13EBodyStateCmd
/* 80232FDC 0022FF3C 80 01 00 78 */ lwz r0, 0x78(r1)
/* 80232FE0 0022FF40 3C 60 80 3E */ lis r3, lbl_803DAA44@ha
/* 80232FE4 0022FF44 38 83 AA 44 */ addi r4, r3, lbl_803DAA44@l
/* 80232FE8 0022FF48 3C 60 80 3E */ lis r3, lbl_803DAA68@ha
/* 80232FEC 0022FF4C 90 1D 00 F8 */ stw r0, 0xf8(r29)
/* 80232FF0 0022FF50 38 03 AA 68 */ addi r0, r3, lbl_803DAA68@l
/* 80232FF4 0022FF54 80 A1 00 7C */ lwz r5, 0x7c(r1)
/* 80232FF8 0022FF58 80 61 00 80 */ lwz r3, 0x80(r1)
/* 80232FFC 0022FF5C 90 BD 00 FC */ stw r5, 0xfc(r29)
/* 80233000 0022FF60 80 A1 00 84 */ lwz r5, 0x84(r1)
/* 80233004 0022FF64 90 7D 01 00 */ stw r3, 0x100(r29)
/* 80233008 0022FF68 80 61 00 88 */ lwz r3, 0x88(r1)
/* 8023300C 0022FF6C 90 BD 01 04 */ stw r5, 0x104(r29)
/* 80233010 0022FF70 90 81 00 74 */ stw r4, 0x74(r1)
/* 80233014 0022FF74 90 7D 01 08 */ stw r3, 0x108(r29)
/* 80233018 0022FF78 90 01 00 74 */ stw r0, 0x74(r1)
/* 8023301C 0022FF7C 48 00 01 64 */ b lbl_80233180
lbl_80233020:
/* 80233020 0022FF80 7F E3 FB 78 */ mr r3, r31
/* 80233024 0022FF84 4B F0 74 31 */ bl GetPASDatabase__15CBodyControllerCFv
/* 80233028 0022FF88 7C 60 1B 78 */ mr r0, r3
/* 8023302C 0022FF8C 38 61 00 1C */ addi r3, r1, 0x1c
/* 80233030 0022FF90 7C 1F 03 78 */ mr r31, r0
/* 80233034 0022FF94 48 0B 00 49 */ bl NoParameter__12CPASAnimParmFv
/* 80233038 0022FF98 38 61 00 24 */ addi r3, r1, 0x24
/* 8023303C 0022FF9C 48 0B 00 41 */ bl NoParameter__12CPASAnimParmFv
/* 80233040 0022FFA0 38 61 00 2C */ addi r3, r1, 0x2c
/* 80233044 0022FFA4 48 0B 00 39 */ bl NoParameter__12CPASAnimParmFv
/* 80233048 0022FFA8 38 61 00 34 */ addi r3, r1, 0x34
/* 8023304C 0022FFAC 48 0B 00 31 */ bl NoParameter__12CPASAnimParmFv
/* 80233050 0022FFB0 38 61 00 3C */ addi r3, r1, 0x3c
/* 80233054 0022FFB4 48 0B 00 29 */ bl NoParameter__12CPASAnimParmFv
/* 80233058 0022FFB8 38 61 00 44 */ addi r3, r1, 0x44
/* 8023305C 0022FFBC 48 0B 00 21 */ bl NoParameter__12CPASAnimParmFv
/* 80233060 0022FFC0 38 61 00 4C */ addi r3, r1, 0x4c
/* 80233064 0022FFC4 48 0B 00 19 */ bl NoParameter__12CPASAnimParmFv
/* 80233068 0022FFC8 38 61 00 54 */ addi r3, r1, 0x54
/* 8023306C 0022FFCC 48 0B 00 11 */ bl NoParameter__12CPASAnimParmFv
/* 80233070 0022FFD0 38 61 00 24 */ addi r3, r1, 0x24
/* 80233074 0022FFD4 38 01 00 1C */ addi r0, r1, 0x1c
/* 80233078 0022FFD8 90 61 00 08 */ stw r3, 8(r1)
/* 8023307C 0022FFDC 38 61 00 C8 */ addi r3, r1, 0xc8
/* 80233080 0022FFE0 38 A1 00 54 */ addi r5, r1, 0x54
/* 80233084 0022FFE4 38 C1 00 4C */ addi r6, r1, 0x4c
/* 80233088 0022FFE8 90 01 00 0C */ stw r0, 0xc(r1)
/* 8023308C 0022FFEC 38 E1 00 44 */ addi r7, r1, 0x44
/* 80233090 0022FFF0 39 01 00 3C */ addi r8, r1, 0x3c
/* 80233094 0022FFF4 39 21 00 34 */ addi r9, r1, 0x34
/* 80233098 0022FFF8 39 41 00 2C */ addi r10, r1, 0x2c
/* 8023309C 0022FFFC 38 80 00 17 */ li r4, 0x17
/* 802330A0 00230000 4B E4 A2 25 */ bl __ct__16CPASAnimParmDataFiRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParm
/* 802330A4 00230004 80 DC 09 00 */ lwz r6, 0x900(r28)
/* 802330A8 00230008 7F E4 FB 78 */ mr r4, r31
/* 802330AC 0023000C 38 61 00 14 */ addi r3, r1, 0x14
/* 802330B0 00230010 38 A1 00 C8 */ addi r5, r1, 0xc8
/* 802330B4 00230014 38 E0 FF FF */ li r7, -1
/* 802330B8 00230018 48 0B 1F A9 */ bl FindBestAnimation__12CPASDatabaseCFRC16CPASAnimParmDataR9CRandom16i
/* 802330BC 0023001C C0 21 00 14 */ lfs f1, 0x14(r1)
/* 802330C0 00230020 C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 802330C4 00230024 83 E1 00 18 */ lwz r31, 0x18(r1)
/* 802330C8 00230028 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802330CC 0023002C 40 81 00 58 */ ble lbl_80233124
/* 802330D0 00230030 80 7E 00 64 */ lwz r3, 0x64(r30)
/* 802330D4 00230034 7F E4 FB 78 */ mr r4, r31
/* 802330D8 00230038 C0 22 B7 04 */ lfs f1, lbl_805AD424@sda21(r2)
/* 802330DC 0023003C 38 A0 00 00 */ li r5, 0
/* 802330E0 00230040 80 63 00 10 */ lwz r3, 0x10(r3)
/* 802330E4 00230044 38 C0 00 01 */ li r6, 1
/* 802330E8 00230048 4B DF 70 E9 */ bl AddAdditiveAnimation__9CAnimDataFUifbb
/* 802330EC 0023004C 80 7E 00 64 */ lwz r3, 0x64(r30)
/* 802330F0 00230050 7F E4 FB 78 */ mr r4, r31
/* 802330F4 00230054 80 63 00 10 */ lwz r3, 0x10(r3)
/* 802330F8 00230058 4B DF 93 D1 */ bl GetAnimationDuration__9CAnimDataCFi
/* 802330FC 0023005C D0 21 00 10 */ stfs f1, 0x10(r1)
/* 80233100 00230060 FC 00 08 18 */ frsp f0, f1
/* 80233104 00230064 C0 3D 00 64 */ lfs f1, 0x64(r29)
/* 80233108 00230068 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8023310C 0023006C 40 80 00 0C */ bge lbl_80233118
/* 80233110 00230070 38 61 00 10 */ addi r3, r1, 0x10
/* 80233114 00230074 48 00 00 08 */ b lbl_8023311C
lbl_80233118:
/* 80233118 00230078 38 7D 00 64 */ addi r3, r29, 0x64
lbl_8023311C:
/* 8023311C 0023007C C0 03 00 00 */ lfs f0, 0(r3)
/* 80233120 00230080 D0 1D 00 64 */ stfs f0, 0x64(r29)
lbl_80233124:
/* 80233124 00230084 34 A1 00 CC */ addic. r5, r1, 0xcc
/* 80233128 00230088 41 82 00 58 */ beq lbl_80233180
/* 8023312C 0023008C 80 C5 00 00 */ lwz r6, 0(r5)
/* 80233130 00230090 38 60 00 00 */ li r3, 0
/* 80233134 00230094 2C 06 00 00 */ cmpwi r6, 0
/* 80233138 00230098 40 81 00 40 */ ble lbl_80233178
/* 8023313C 0023009C 2C 06 00 08 */ cmpwi r6, 8
/* 80233140 002300A0 38 86 FF F8 */ addi r4, r6, -8
/* 80233144 002300A4 40 81 00 20 */ ble lbl_80233164
/* 80233148 002300A8 38 04 00 07 */ addi r0, r4, 7
/* 8023314C 002300AC 54 00 E8 FE */ srwi r0, r0, 3
/* 80233150 002300B0 7C 09 03 A6 */ mtctr r0
/* 80233154 002300B4 2C 04 00 00 */ cmpwi r4, 0
/* 80233158 002300B8 40 81 00 0C */ ble lbl_80233164
lbl_8023315C:
/* 8023315C 002300BC 38 63 00 08 */ addi r3, r3, 8
/* 80233160 002300C0 42 00 FF FC */ bdnz lbl_8023315C
lbl_80233164:
/* 80233164 002300C4 7C 03 30 50 */ subf r0, r3, r6
/* 80233168 002300C8 7C 09 03 A6 */ mtctr r0
/* 8023316C 002300CC 7C 03 30 00 */ cmpw r3, r6
/* 80233170 002300D0 40 80 00 08 */ bge lbl_80233178
lbl_80233174:
/* 80233174 002300D4 42 00 00 00 */ bdnz lbl_80233174
lbl_80233178:
/* 80233178 002300D8 38 00 00 00 */ li r0, 0
/* 8023317C 002300DC 90 05 00 00 */ stw r0, 0(r5)
lbl_80233180:
/* 80233180 002300E0 E3 E1 01 48 */ psq_l f31, 328(r1), 0, qr0
/* 80233184 002300E4 CB E1 01 40 */ lfd f31, 0x140(r1)
/* 80233188 002300E8 E3 C1 01 38 */ psq_l f30, 312(r1), 0, qr0
/* 8023318C 002300EC CB C1 01 30 */ lfd f30, 0x130(r1)
/* 80233190 002300F0 BB 61 01 1C */ lmw r27, 0x11c(r1)
/* 80233194 002300F4 80 01 01 54 */ lwz r0, 0x154(r1)
/* 80233198 002300F8 7C 08 03 A6 */ mtlr r0
/* 8023319C 002300FC 38 21 01 50 */ addi r1, r1, 0x150
/* 802331A0 00230100 4E 80 00 20 */ blr
.global DoDeferredKnockBack__20CKnockBackControllerFR13CStateManagerR10CPatterned
DoDeferredKnockBack__20CKnockBackControllerFR13CStateManagerR10CPatterned:
/* 802331A4 00230104 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 802331A8 00230108 7C 08 02 A6 */ mflr r0
/* 802331AC 0023010C 90 01 00 54 */ stw r0, 0x54(r1)
/* 802331B0 00230110 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 802331B4 00230114 7C BF 2B 78 */ mr r31, r5
/* 802331B8 00230118 93 C1 00 48 */ stw r30, 0x48(r1)
/* 802331BC 0023011C 7C 9E 23 78 */ mr r30, r4
/* 802331C0 00230120 93 A1 00 44 */ stw r29, 0x44(r1)
/* 802331C4 00230124 7C 7D 1B 78 */ mr r29, r3
/* 802331C8 00230128 80 03 00 14 */ lwz r0, 0x14(r3)
/* 802331CC 0023012C 2C 00 00 02 */ cmpwi r0, 2
/* 802331D0 00230130 40 82 01 70 */ bne lbl_80233340
/* 802331D4 00230134 7F E4 FB 78 */ mr r4, r31
/* 802331D8 00230138 48 00 07 CD */ bl GetKnockBackCharacterState__20CKnockBackControllerFR10CPatterned
/* 802331DC 0023013C 80 BD 00 00 */ lwz r5, 0(r29)
/* 802331E0 00230140 3C 80 80 3D */ lis r4, lbl_803D34A0@ha
/* 802331E4 00230144 54 60 20 36 */ slwi r0, r3, 4
/* 802331E8 00230148 7F A3 EB 78 */ mr r3, r29
/* 802331EC 0023014C 1C C5 04 C0 */ mulli r6, r5, 0x4c0
/* 802331F0 00230150 38 A4 34 A0 */ addi r5, r4, lbl_803D34A0@l
/* 802331F4 00230154 7F E4 FB 78 */ mr r4, r31
/* 802331F8 00230158 7C A5 32 14 */ add r5, r5, r6
/* 802331FC 0023015C 7C A5 02 14 */ add r5, r5, r0
/* 80233200 00230160 38 C5 01 C0 */ addi r6, r5, 0x1c0
/* 80233204 00230164 80 A5 01 C0 */ lwz r5, 0x1c0(r5)
/* 80233208 00230168 80 06 00 04 */ lwz r0, 4(r6)
/* 8023320C 0023016C 90 BD 00 04 */ stw r5, 4(r29)
/* 80233210 00230170 C0 26 00 08 */ lfs f1, 8(r6)
/* 80233214 00230174 90 1D 00 08 */ stw r0, 8(r29)
/* 80233218 00230178 C0 06 00 0C */ lfs f0, 0xc(r6)
/* 8023321C 0023017C D0 3D 00 0C */ stfs f1, 0xc(r29)
/* 80233220 00230180 D0 1D 00 10 */ stfs f0, 0x10(r29)
/* 80233224 00230184 48 00 04 59 */ bl ValidateState__20CKnockBackControllerFR10CPatterned
/* 80233228 00230188 7F E3 FB 78 */ mr r3, r31
/* 8023322C 0023018C 7F C4 F3 78 */ mr r4, r30
/* 80233230 00230190 81 9F 00 00 */ lwz r12, 0(r31)
/* 80233234 00230194 81 8C 00 34 */ lwz r12, 0x34(r12)
/* 80233238 00230198 7D 89 03 A6 */ mtctr r12
/* 8023323C 0023019C 4E 80 04 21 */ bctrl
/* 80233240 002301A0 28 03 00 00 */ cmplwi r3, 0
/* 80233244 002301A4 41 82 00 FC */ beq lbl_80233340
/* 80233248 002301A8 C0 5F 00 58 */ lfs f2, 0x58(r31)
/* 8023324C 002301AC 7F A3 EB 78 */ mr r3, r29
/* 80233250 002301B0 C0 3F 00 48 */ lfs f1, 0x48(r31)
/* 80233254 002301B4 7F C5 F3 78 */ mr r5, r30
/* 80233258 002301B8 C0 1F 00 38 */ lfs f0, 0x38(r31)
/* 8023325C 002301BC FC 60 10 50 */ fneg f3, f2
/* 80233260 002301C0 FC 40 08 50 */ fneg f2, f1
/* 80233264 002301C4 C0 22 B7 08 */ lfs f1, lbl_805AD428@sda21(r2)
/* 80233268 002301C8 FC 00 00 50 */ fneg f0, f0
/* 8023326C 002301CC 7F E6 FB 78 */ mr r6, r31
/* 80233270 002301D0 D0 61 00 18 */ stfs f3, 0x18(r1)
/* 80233274 002301D4 38 81 00 10 */ addi r4, r1, 0x10
/* 80233278 002301D8 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8023327C 002301DC D0 41 00 14 */ stfs f2, 0x14(r1)
/* 80233280 002301E0 4B FF FA 25 */ bl DoKnockBackAnimation__20CKnockBackControllerFRC9CVector3fR13CStateManagerR10CPatternedf
/* 80233284 002301E4 C0 22 B7 0C */ lfs f1, lbl_805AD42C@sda21(r2)
/* 80233288 002301E8 7F A3 EB 78 */ mr r3, r29
/* 8023328C 002301EC 7F E4 FB 78 */ mr r4, r31
/* 80233290 002301F0 38 A1 00 10 */ addi r5, r1, 0x10
/* 80233294 002301F4 48 00 02 6D */ bl ResetKnockBackImpulse__20CKnockBackControllerFR10CPatternedRC9CVector3ff
/* 80233298 002301F8 88 C1 00 0C */ lbz r6, 0xc(r1)
/* 8023329C 002301FC 38 60 00 00 */ li r3, 0
/* 802332A0 00230200 50 66 3E 30 */ rlwimi r6, r3, 7, 0x18, 0x18
/* 802332A4 00230204 39 40 00 01 */ li r10, 1
/* 802332A8 00230208 81 7D 00 14 */ lwz r11, 0x14(r29)
/* 802332AC 0023020C 54 C8 06 3E */ clrlwi r8, r6, 0x18
/* 802332B0 00230210 C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 802332B4 00230214 51 48 36 72 */ rlwimi r8, r10, 6, 0x19, 0x19
/* 802332B8 00230218 C0 22 B7 08 */ lfs f1, lbl_805AD428@sda21(r2)
/* 802332BC 0023021C 55 09 06 3E */ clrlwi r9, r8, 0x18
/* 802332C0 00230220 88 01 00 34 */ lbz r0, 0x34(r1)
/* 802332C4 00230224 50 69 2E B4 */ rlwimi r9, r3, 5, 0x1a, 0x1a
/* 802332C8 00230228 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 802332CC 0023022C 91 61 00 1C */ stw r11, 0x1c(r1)
/* 802332D0 00230230 7F E3 FB 78 */ mr r3, r31
/* 802332D4 00230234 7F C5 F3 78 */ mr r5, r30
/* 802332D8 00230238 99 21 00 20 */ stb r9, 0x20(r1)
/* 802332DC 0023023C 38 81 00 10 */ addi r4, r1, 0x10
/* 802332E0 00230240 38 E0 00 01 */ li r7, 1
/* 802332E4 00230244 98 C1 00 0C */ stb r6, 0xc(r1)
/* 802332E8 00230248 38 C1 00 1C */ addi r6, r1, 0x1c
/* 802332EC 0023024C 99 01 00 0C */ stb r8, 0xc(r1)
/* 802332F0 00230250 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 802332F4 00230254 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 802332F8 00230258 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 802332FC 0023025C D0 21 00 30 */ stfs f1, 0x30(r1)
/* 80233300 00230260 98 01 00 34 */ stb r0, 0x34(r1)
/* 80233304 00230264 88 1D 00 82 */ lbz r0, 0x82(r29)
/* 80233308 00230268 51 40 36 72 */ rlwimi r0, r10, 6, 0x19, 0x19
/* 8023330C 0023026C 91 61 00 08 */ stw r11, 8(r1)
/* 80233310 00230270 98 1D 00 82 */ stb r0, 0x82(r29)
/* 80233314 00230274 81 9F 00 00 */ lwz r12, 0(r31)
/* 80233318 00230278 88 1D 00 82 */ lbz r0, 0x82(r29)
/* 8023331C 0023027C 81 8C 00 88 */ lwz r12, 0x88(r12)
/* 80233320 00230280 54 08 D7 FE */ rlwinm r8, r0, 0x1a, 0x1f, 0x1f
/* 80233324 00230284 99 21 00 0C */ stb r9, 0xc(r1)
/* 80233328 00230288 7D 89 03 A6 */ mtctr r12
/* 8023332C 0023028C 4E 80 04 21 */ bctrl
/* 80233330 00230290 88 1D 00 82 */ lbz r0, 0x82(r29)
/* 80233334 00230294 38 60 00 00 */ li r3, 0
/* 80233338 00230298 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8023333C 0023029C 98 1D 00 82 */ stb r0, 0x82(r29)
lbl_80233340:
/* 80233340 002302A0 C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 80233344 002302A4 3C 60 80 3D */ lis r3, lbl_803D3490@ha
/* 80233348 002302A8 38 A3 34 90 */ addi r5, r3, lbl_803D3490@l
/* 8023334C 002302AC 38 00 FF FF */ li r0, -1
/* 80233350 002302B0 D0 1D 00 68 */ stfs f0, 0x68(r29)
/* 80233354 002302B4 80 85 00 00 */ lwz r4, 0(r5)
/* 80233358 002302B8 80 65 00 04 */ lwz r3, 4(r5)
/* 8023335C 002302BC 90 9D 00 04 */ stw r4, 4(r29)
/* 80233360 002302C0 C0 25 00 08 */ lfs f1, 8(r5)
/* 80233364 002302C4 90 7D 00 08 */ stw r3, 8(r29)
/* 80233368 002302C8 C0 05 00 0C */ lfs f0, 0xc(r5)
/* 8023336C 002302CC D0 3D 00 0C */ stfs f1, 0xc(r29)
/* 80233370 002302D0 D0 1D 00 10 */ stfs f0, 0x10(r29)
/* 80233374 002302D4 90 1D 00 14 */ stw r0, 0x14(r29)
/* 80233378 002302D8 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8023337C 002302DC 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 80233380 002302E0 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 80233384 002302E4 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80233388 002302E8 7C 08 03 A6 */ mtlr r0
/* 8023338C 002302EC 38 21 00 50 */ addi r1, r1, 0x50
/* 80233390 002302F0 4E 80 00 20 */ blr
.global ApplyImpulse__20CKnockBackControllerFfR10CPatterned
ApplyImpulse__20CKnockBackControllerFfR10CPatterned:
/* 80233394 002302F4 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80233398 002302F8 7C 08 02 A6 */ mflr r0
/* 8023339C 002302FC 90 01 00 64 */ stw r0, 0x64(r1)
/* 802333A0 00230300 DB E1 00 50 */ stfd f31, 0x50(r1)
/* 802333A4 00230304 F3 E1 00 58 */ psq_st f31, 88(r1), 0, qr0
/* 802333A8 00230308 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 802333AC 0023030C 93 C1 00 48 */ stw r30, 0x48(r1)
/* 802333B0 00230310 7C 7E 1B 78 */ mr r30, r3
/* 802333B4 00230314 FF E0 08 90 */ fmr f31, f1
/* 802333B8 00230318 C0 03 00 60 */ lfs f0, 0x60(r3)
/* 802333BC 0023031C 7C 9F 23 78 */ mr r31, r4
/* 802333C0 00230320 38 81 00 08 */ addi r4, r1, 8
/* 802333C4 00230324 38 6D 96 3C */ addi r3, r13, lbl_805A81FC@sda21
/* 802333C8 00230328 EC 00 F8 28 */ fsubs f0, f0, f31
/* 802333CC 0023032C D0 01 00 08 */ stfs f0, 8(r1)
/* 802333D0 00230330 4B E1 C3 61 */ bl "Max<f>__5CMathFRCfRCf"
/* 802333D4 00230334 C0 03 00 00 */ lfs f0, 0(r3)
/* 802333D8 00230338 38 80 00 00 */ li r4, 0
/* 802333DC 0023033C 38 00 08 00 */ li r0, 0x800
/* 802333E0 00230340 D0 1E 00 60 */ stfs f0, 0x60(r30)
/* 802333E4 00230344 80 7F 00 68 */ lwz r3, 0x68(r31)
/* 802333E8 00230348 80 BF 00 6C */ lwz r5, 0x6c(r31)
/* 802333EC 0023034C 7C 60 00 38 */ and r0, r3, r0
/* 802333F0 00230350 7C A3 20 38 */ and r3, r5, r4
/* 802333F4 00230354 7C 63 22 78 */ xor r3, r3, r4
/* 802333F8 00230358 7C 00 22 78 */ xor r0, r0, r4
/* 802333FC 0023035C 7C 60 03 79 */ or. r0, r3, r0
/* 80233400 00230360 40 82 00 E0 */ bne lbl_802334E0
/* 80233404 00230364 C0 3E 00 60 */ lfs f1, 0x60(r30)
/* 80233408 00230368 C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 8023340C 0023036C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80233410 00230370 40 81 00 D0 */ ble lbl_802334E0
/* 80233414 00230374 80 9E 00 20 */ lwz r4, 0x20(r30)
/* 80233418 00230378 C0 A2 B7 04 */ lfs f5, lbl_805AD424@sda21(r2)
/* 8023341C 0023037C 2C 04 00 01 */ cmpwi r4, 1
/* 80233420 00230380 41 82 00 08 */ beq lbl_80233428
/* 80233424 00230384 48 00 00 14 */ b lbl_80233438
lbl_80233428:
/* 80233428 00230388 54 80 10 3A */ slwi r0, r4, 2
/* 8023342C 0023038C 38 62 B6 F0 */ addi r3, r2, lbl_805AD410@sda21
/* 80233430 00230390 7C 03 04 2E */ lfsx f0, r3, r0
/* 80233434 00230394 EC A1 00 24 */ fdivs f5, f1, f0
lbl_80233438:
/* 80233438 00230398 54 80 10 3A */ slwi r0, r4, 2
/* 8023343C 0023039C 38 82 B6 F0 */ addi r4, r2, lbl_805AD410@sda21
/* 80233440 002303A0 C0 22 B7 04 */ lfs f1, lbl_805AD424@sda21(r2)
/* 80233444 002303A4 38 61 00 0C */ addi r3, r1, 0xc
/* 80233448 002303A8 7C 04 04 2E */ lfsx f0, r4, r0
/* 8023344C 002303AC 38 9F 00 34 */ addi r4, r31, 0x34
/* 80233450 002303B0 C0 7E 00 5C */ lfs f3, 0x5c(r30)
/* 80233454 002303B4 38 A1 00 30 */ addi r5, r1, 0x30
/* 80233458 002303B8 EC 81 00 24 */ fdivs f4, f1, f0
/* 8023345C 002303BC C0 5E 00 54 */ lfs f2, 0x54(r30)
/* 80233460 002303C0 C0 3E 00 58 */ lfs f1, 0x58(r30)
/* 80233464 002303C4 C0 1E 00 50 */ lfs f0, 0x50(r30)
/* 80233468 002303C8 EC 65 00 F2 */ fmuls f3, f5, f3
/* 8023346C 002303CC EC 43 00 B2 */ fmuls f2, f3, f2
/* 80233470 002303D0 EC 23 00 72 */ fmuls f1, f3, f1
/* 80233474 002303D4 EC 03 00 32 */ fmuls f0, f3, f0
/* 80233478 002303D8 EC 5F 00 B2 */ fmuls f2, f31, f2
/* 8023347C 002303DC EC 3F 00 72 */ fmuls f1, f31, f1
/* 80233480 002303E0 EC 1F 00 32 */ fmuls f0, f31, f0
/* 80233484 002303E4 EC 44 00 B2 */ fmuls f2, f4, f2
/* 80233488 002303E8 EC 24 00 72 */ fmuls f1, f4, f1
/* 8023348C 002303EC EC 04 00 32 */ fmuls f0, f4, f0
/* 80233490 002303F0 D0 41 00 34 */ stfs f2, 0x34(r1)
/* 80233494 002303F4 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 80233498 002303F8 D0 21 00 38 */ stfs f1, 0x38(r1)
/* 8023349C 002303FC 48 0D F5 89 */ bl TransposeRotate__12CTransform4fCFRC9CVector3f
/* 802334A0 00230400 FC 20 F8 90 */ fmr f1, f31
/* 802334A4 00230404 7F E4 FB 78 */ mr r4, r31
/* 802334A8 00230408 38 61 00 18 */ addi r3, r1, 0x18
/* 802334AC 0023040C 38 A1 00 0C */ addi r5, r1, 0xc
/* 802334B0 00230410 4B EE 7B 59 */ bl GetMoveToORImpulseWR__13CPhysicsActorCFRC9CVector3ff
/* 802334B4 00230414 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 802334B8 00230418 C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 802334BC 0023041C C0 01 00 20 */ lfs f0, 0x20(r1)
/* 802334C0 00230420 D0 41 00 24 */ stfs f2, 0x24(r1)
/* 802334C4 00230424 D0 21 00 28 */ stfs f1, 0x28(r1)
/* 802334C8 00230428 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 802334CC 0023042C 4B DE 80 69 */ bl Identity__10CAxisAngleFv
/* 802334D0 00230430 7C 65 1B 78 */ mr r5, r3
/* 802334D4 00230434 7F E3 FB 78 */ mr r3, r31
/* 802334D8 00230438 38 81 00 24 */ addi r4, r1, 0x24
/* 802334DC 0023043C 4B EE 8E BD */ bl ApplyImpulseWR__13CPhysicsActorFRC9CVector3fRC10CAxisAngle
lbl_802334E0:
/* 802334E0 00230440 E3 E1 00 58 */ psq_l f31, 88(r1), 0, qr0
/* 802334E4 00230444 80 01 00 64 */ lwz r0, 0x64(r1)
/* 802334E8 00230448 CB E1 00 50 */ lfd f31, 0x50(r1)
/* 802334EC 0023044C 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 802334F0 00230450 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 802334F4 00230454 7C 08 03 A6 */ mtlr r0
/* 802334F8 00230458 38 21 00 60 */ addi r1, r1, 0x60
/* 802334FC 0023045C 4E 80 00 20 */ blr
.global ResetKnockBackImpulse__20CKnockBackControllerFR10CPatternedRC9CVector3ff
ResetKnockBackImpulse__20CKnockBackControllerFR10CPatternedRC9CVector3ff:
/* 80233500 00230460 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80233504 00230464 7C 08 02 A6 */ mflr r0
/* 80233508 00230468 90 01 00 54 */ stw r0, 0x54(r1)
/* 8023350C 0023046C DB E1 00 40 */ stfd f31, 0x40(r1)
/* 80233510 00230470 F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0
/* 80233514 00230474 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 80233518 00230478 93 C1 00 38 */ stw r30, 0x38(r1)
/* 8023351C 0023047C 93 A1 00 34 */ stw r29, 0x34(r1)
/* 80233520 00230480 88 03 00 81 */ lbz r0, 0x81(r3)
/* 80233524 00230484 FF E0 08 90 */ fmr f31, f1
/* 80233528 00230488 7C 7D 1B 78 */ mr r29, r3
/* 8023352C 0023048C 7C 9E 23 78 */ mr r30, r4
/* 80233530 00230490 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80233534 00230494 7C BF 2B 78 */ mr r31, r5
/* 80233538 00230498 41 82 00 E4 */ beq lbl_8023361C
/* 8023353C 0023049C 80 1D 00 04 */ lwz r0, 4(r29)
/* 80233540 002304A0 2C 00 00 02 */ cmpwi r0, 2
/* 80233544 002304A4 40 82 00 D8 */ bne lbl_8023361C
/* 80233548 002304A8 80 1D 00 08 */ lwz r0, 8(r29)
/* 8023354C 002304AC 2C 00 00 01 */ cmpwi r0, 1
/* 80233550 002304B0 41 82 00 CC */ beq lbl_8023361C
/* 80233554 002304B4 7F E3 FB 78 */ mr r3, r31
/* 80233558 002304B8 48 0E 11 A1 */ bl CanBeNormalized__9CVector3fCFv
/* 8023355C 002304BC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80233560 002304C0 41 82 00 18 */ beq lbl_80233578
/* 80233564 002304C4 7F E4 FB 78 */ mr r4, r31
/* 80233568 002304C8 38 61 00 20 */ addi r3, r1, 0x20
/* 8023356C 002304CC 48 0E 12 E5 */ bl AsNormalized__9CVector3fCFv
/* 80233570 002304D0 38 61 00 20 */ addi r3, r1, 0x20
/* 80233574 002304D4 48 00 00 38 */ b lbl_802335AC
lbl_80233578:
/* 80233578 002304D8 C0 9E 00 58 */ lfs f4, 0x58(r30)
/* 8023357C 002304DC 38 61 00 08 */ addi r3, r1, 8
/* 80233580 002304E0 C0 5E 00 48 */ lfs f2, 0x48(r30)
/* 80233584 002304E4 C0 7E 00 38 */ lfs f3, 0x38(r30)
/* 80233588 002304E8 FC 00 20 50 */ fneg f0, f4
/* 8023358C 002304EC FC 20 10 50 */ fneg f1, f2
/* 80233590 002304F0 D0 41 00 18 */ stfs f2, 0x18(r1)
/* 80233594 002304F4 FC 40 18 50 */ fneg f2, f3
/* 80233598 002304F8 D0 61 00 14 */ stfs f3, 0x14(r1)
/* 8023359C 002304FC D0 81 00 1C */ stfs f4, 0x1c(r1)
/* 802335A0 00230500 D0 41 00 08 */ stfs f2, 8(r1)
/* 802335A4 00230504 D0 21 00 0C */ stfs f1, 0xc(r1)
/* 802335A8 00230508 D0 01 00 10 */ stfs f0, 0x10(r1)
lbl_802335AC:
/* 802335AC 0023050C C0 23 00 00 */ lfs f1, 0(r3)
/* 802335B0 00230510 C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 802335B4 00230514 D0 3D 00 50 */ stfs f1, 0x50(r29)
/* 802335B8 00230518 C0 23 00 04 */ lfs f1, 4(r3)
/* 802335BC 0023051C D0 3D 00 54 */ stfs f1, 0x54(r29)
/* 802335C0 00230520 C0 23 00 08 */ lfs f1, 8(r3)
/* 802335C4 00230524 D0 3D 00 58 */ stfs f1, 0x58(r29)
/* 802335C8 00230528 C0 7D 00 60 */ lfs f3, 0x60(r29)
/* 802335CC 0023052C FC 03 00 40 */ fcmpo cr0, f3, f0
/* 802335D0 00230530 4C 40 13 82 */ cror 2, 0, 2
/* 802335D4 00230534 40 82 00 0C */ bne lbl_802335E0
/* 802335D8 00230538 D3 FD 00 5C */ stfs f31, 0x5c(r29)
/* 802335DC 0023053C 48 00 00 2C */ b lbl_80233608
lbl_802335E0:
/* 802335E0 00230540 80 1D 00 20 */ lwz r0, 0x20(r29)
/* 802335E4 00230544 38 62 B6 F0 */ addi r3, r2, lbl_805AD410@sda21
/* 802335E8 00230548 C0 42 B7 04 */ lfs f2, lbl_805AD424@sda21(r2)
/* 802335EC 0023054C 54 00 10 3A */ slwi r0, r0, 2
/* 802335F0 00230550 C0 1D 00 5C */ lfs f0, 0x5c(r29)
/* 802335F4 00230554 7C 23 04 2E */ lfsx f1, r3, r0
/* 802335F8 00230558 EC 23 08 24 */ fdivs f1, f3, f1
/* 802335FC 0023055C EC 22 08 28 */ fsubs f1, f2, f1
/* 80233600 00230560 EC 1F 00 7A */ fmadds f0, f31, f1, f0
/* 80233604 00230564 D0 1D 00 5C */ stfs f0, 0x5c(r29)
lbl_80233608:
/* 80233608 00230568 80 1D 00 20 */ lwz r0, 0x20(r29)
/* 8023360C 0023056C 38 62 B6 F0 */ addi r3, r2, lbl_805AD410@sda21
/* 80233610 00230570 54 00 10 3A */ slwi r0, r0, 2
/* 80233614 00230574 7C 03 04 2E */ lfsx f0, r3, r0
/* 80233618 00230578 D0 1D 00 60 */ stfs f0, 0x60(r29)
lbl_8023361C:
/* 8023361C 0023057C E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0
/* 80233620 00230580 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80233624 00230584 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 80233628 00230588 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8023362C 0023058C 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 80233630 00230590 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 80233634 00230594 7C 08 03 A6 */ mtlr r0
/* 80233638 00230598 38 21 00 50 */ addi r1, r1, 0x50
/* 8023363C 0023059C 4E 80 00 20 */ blr
.global TickDeferredTimer__20CKnockBackControllerFf
TickDeferredTimer__20CKnockBackControllerFf:
/* 80233640 002305A0 C0 03 00 68 */ lfs f0, 0x68(r3)
/* 80233644 002305A4 EC 00 08 28 */ fsubs f0, f0, f1
/* 80233648 002305A8 D0 03 00 68 */ stfs f0, 0x68(r3)
/* 8023364C 002305AC 80 03 00 14 */ lwz r0, 0x14(r3)
/* 80233650 002305B0 2C 00 FF FF */ cmpwi r0, -1
/* 80233654 002305B4 41 82 00 20 */ beq lbl_80233674
/* 80233658 002305B8 C0 23 00 68 */ lfs f1, 0x68(r3)
/* 8023365C 002305BC C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 80233660 002305C0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80233664 002305C4 4C 40 13 82 */ cror 2, 0, 2
/* 80233668 002305C8 7C 00 00 26 */ mfcr r0
/* 8023366C 002305CC 54 03 1F FE */ rlwinm r3, r0, 3, 0x1f, 0x1f
/* 80233670 002305D0 4E 80 00 20 */ blr
lbl_80233674:
/* 80233674 002305D4 38 60 00 00 */ li r3, 0
/* 80233678 002305D8 4E 80 00 20 */ blr
.global ValidateState__20CKnockBackControllerFR10CPatterned
ValidateState__20CKnockBackControllerFR10CPatterned:
/* 8023367C 002305DC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80233680 002305E0 7C 08 02 A6 */ mflr r0
/* 80233684 002305E4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80233688 002305E8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8023368C 002305EC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80233690 002305F0 7C 7E 1B 78 */ mr r30, r3
/* 80233694 002305F4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80233698 002305F8 80 63 00 04 */ lwz r3, 4(r3)
/* 8023369C 002305FC 80 1E 00 18 */ lwz r0, 0x18(r30)
/* 802336A0 00230600 7C 03 00 00 */ cmpw r3, r0
/* 802336A4 00230604 40 80 00 0C */ bge lbl_802336B0
/* 802336A8 00230608 90 1E 00 04 */ stw r0, 4(r30)
/* 802336AC 0023060C 48 00 00 14 */ b lbl_802336C0
lbl_802336B0:
/* 802336B0 00230610 80 1E 00 1C */ lwz r0, 0x1c(r30)
/* 802336B4 00230614 7C 03 00 00 */ cmpw r3, r0
/* 802336B8 00230618 40 81 00 08 */ ble lbl_802336C0
/* 802336BC 0023061C 90 1E 00 04 */ stw r0, 4(r30)
lbl_802336C0:
/* 802336C0 00230620 88 04 04 00 */ lbz r0, 0x400(r4)
/* 802336C4 00230624 3B E0 FF FF */ li r31, -1
/* 802336C8 00230628 83 A4 04 50 */ lwz r29, 0x450(r4)
/* 802336CC 0023062C 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 802336D0 00230630 41 82 00 B8 */ beq lbl_80233788
/* 802336D4 00230634 7F A3 EB 78 */ mr r3, r29
/* 802336D8 00230638 38 80 00 0E */ li r4, 0xe
/* 802336DC 0023063C 4B F0 74 D9 */ bl HasBodyState__15CBodyControllerCFQ23pas15EAnimationState
/* 802336E0 00230640 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802336E4 00230644 41 82 00 2C */ beq lbl_80233710
/* 802336E8 00230648 7F C3 F3 78 */ mr r3, r30
/* 802336EC 0023064C 38 80 00 03 */ li r4, 3
/* 802336F0 00230650 48 00 06 B1 */ bl TestAvailableState__20CKnockBackControllerCFi
/* 802336F4 00230654 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802336F8 00230658 41 82 00 18 */ beq lbl_80233710
/* 802336FC 0023065C 80 1E 00 04 */ lwz r0, 4(r30)
/* 80233700 00230660 2C 00 00 03 */ cmpwi r0, 3
/* 80233704 00230664 41 80 00 0C */ blt lbl_80233710
/* 80233708 00230668 3B E0 00 03 */ li r31, 3
/* 8023370C 0023066C 48 00 01 10 */ b lbl_8023381C
lbl_80233710:
/* 80233710 00230670 7F A3 EB 78 */ mr r3, r29
/* 80233714 00230674 38 80 00 06 */ li r4, 6
/* 80233718 00230678 4B F0 74 9D */ bl HasBodyState__15CBodyControllerCFQ23pas15EAnimationState
/* 8023371C 0023067C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80233720 00230680 41 82 00 2C */ beq lbl_8023374C
/* 80233724 00230684 7F C3 F3 78 */ mr r3, r30
/* 80233728 00230688 38 80 00 02 */ li r4, 2
/* 8023372C 0023068C 48 00 06 75 */ bl TestAvailableState__20CKnockBackControllerCFi
/* 80233730 00230690 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80233734 00230694 41 82 00 18 */ beq lbl_8023374C
/* 80233738 00230698 80 1E 00 04 */ lwz r0, 4(r30)
/* 8023373C 0023069C 2C 00 00 02 */ cmpwi r0, 2
/* 80233740 002306A0 41 80 00 0C */ blt lbl_8023374C
/* 80233744 002306A4 3B E0 00 02 */ li r31, 2
/* 80233748 002306A8 48 00 00 D4 */ b lbl_8023381C
lbl_8023374C:
/* 8023374C 002306AC 7F A3 EB 78 */ mr r3, r29
/* 80233750 002306B0 38 80 00 17 */ li r4, 0x17
/* 80233754 002306B4 4B F0 74 61 */ bl HasBodyState__15CBodyControllerCFQ23pas15EAnimationState
/* 80233758 002306B8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8023375C 002306BC 41 82 00 C0 */ beq lbl_8023381C
/* 80233760 002306C0 7F C3 F3 78 */ mr r3, r30
/* 80233764 002306C4 38 80 00 01 */ li r4, 1
/* 80233768 002306C8 48 00 06 39 */ bl TestAvailableState__20CKnockBackControllerCFi
/* 8023376C 002306CC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80233770 002306D0 41 82 00 AC */ beq lbl_8023381C
/* 80233774 002306D4 80 1E 00 04 */ lwz r0, 4(r30)
/* 80233778 002306D8 2C 00 00 01 */ cmpwi r0, 1
/* 8023377C 002306DC 41 80 00 A0 */ blt lbl_8023381C
/* 80233780 002306E0 3B E0 00 01 */ li r31, 1
/* 80233784 002306E4 48 00 00 98 */ b lbl_8023381C
lbl_80233788:
/* 80233788 002306E8 7F A3 EB 78 */ mr r3, r29
/* 8023378C 002306EC 38 80 00 00 */ li r4, 0
/* 80233790 002306F0 4B F0 74 25 */ bl HasBodyState__15CBodyControllerCFQ23pas15EAnimationState
/* 80233794 002306F4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80233798 002306F8 41 82 00 4C */ beq lbl_802337E4
/* 8023379C 002306FC 7F C3 F3 78 */ mr r3, r30
/* 802337A0 00230700 38 80 00 04 */ li r4, 4
/* 802337A4 00230704 48 00 05 FD */ bl TestAvailableState__20CKnockBackControllerCFi
/* 802337A8 00230708 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802337AC 0023070C 41 82 00 38 */ beq lbl_802337E4
/* 802337B0 00230710 80 1E 00 04 */ lwz r0, 4(r30)
/* 802337B4 00230714 2C 00 00 04 */ cmpwi r0, 4
/* 802337B8 00230718 40 80 00 24 */ bge lbl_802337DC
/* 802337BC 0023071C 7F A3 EB 78 */ mr r3, r29
/* 802337C0 00230720 38 80 00 0E */ li r4, 0xe
/* 802337C4 00230724 4B F0 73 F1 */ bl HasBodyState__15CBodyControllerCFQ23pas15EAnimationState
/* 802337C8 00230728 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802337CC 0023072C 40 82 00 18 */ bne lbl_802337E4
/* 802337D0 00230730 80 1E 00 04 */ lwz r0, 4(r30)
/* 802337D4 00230734 2C 00 00 03 */ cmpwi r0, 3
/* 802337D8 00230738 41 80 00 0C */ blt lbl_802337E4
lbl_802337DC:
/* 802337DC 0023073C 3B E0 00 04 */ li r31, 4
/* 802337E0 00230740 48 00 00 3C */ b lbl_8023381C
lbl_802337E4:
/* 802337E4 00230744 7F A3 EB 78 */ mr r3, r29
/* 802337E8 00230748 38 80 00 0E */ li r4, 0xe
/* 802337EC 0023074C 4B F0 73 C9 */ bl HasBodyState__15CBodyControllerCFQ23pas15EAnimationState
/* 802337F0 00230750 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802337F4 00230754 41 82 00 28 */ beq lbl_8023381C
/* 802337F8 00230758 7F C3 F3 78 */ mr r3, r30
/* 802337FC 0023075C 38 80 00 03 */ li r4, 3
/* 80233800 00230760 48 00 05 A1 */ bl TestAvailableState__20CKnockBackControllerCFi
/* 80233804 00230764 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80233808 00230768 41 82 00 14 */ beq lbl_8023381C
/* 8023380C 0023076C 80 1E 00 04 */ lwz r0, 4(r30)
/* 80233810 00230770 2C 00 00 03 */ cmpwi r0, 3
/* 80233814 00230774 41 80 00 08 */ blt lbl_8023381C
/* 80233818 00230778 3B E0 00 03 */ li r31, 3
lbl_8023381C:
/* 8023381C 0023077C 2C 1F FF FF */ cmpwi r31, -1
/* 80233820 00230780 38 00 00 00 */ li r0, 0
/* 80233824 00230784 41 82 00 08 */ beq lbl_8023382C
/* 80233828 00230788 7F E0 FB 78 */ mr r0, r31
lbl_8023382C:
/* 8023382C 0023078C 90 1E 00 04 */ stw r0, 4(r30)
/* 80233830 00230790 38 80 00 00 */ li r4, 0
/* 80233834 00230794 80 1E 00 08 */ lwz r0, 8(r30)
/* 80233838 00230798 28 00 00 09 */ cmplwi r0, 9
/* 8023383C 0023079C 41 81 00 C0 */ bgt lbl_802338FC
/* 80233840 002307A0 3C 60 80 3F */ lis r3, lbl_803E8150@ha
/* 80233844 002307A4 54 00 10 3A */ slwi r0, r0, 2
/* 80233848 002307A8 38 63 81 50 */ addi r3, r3, lbl_803E8150@l
/* 8023384C 002307AC 7C 03 00 2E */ lwzx r0, r3, r0
/* 80233850 002307B0 7C 09 03 A6 */ mtctr r0
/* 80233854 002307B4 4E 80 04 20 */ bctr
.global lbl_80233858
lbl_80233858:
/* 80233858 002307B8 88 1E 00 81 */ lbz r0, 0x81(r30)
/* 8023385C 002307BC 54 00 D7 FE */ rlwinm r0, r0, 0x1a, 0x1f, 0x1f
/* 80233860 002307C0 7C 00 00 34 */ cntlzw r0, r0
/* 80233864 002307C4 54 00 D9 7E */ srwi r0, r0, 5
/* 80233868 002307C8 7C 04 03 78 */ mr r4, r0
/* 8023386C 002307CC 48 00 00 90 */ b lbl_802338FC
.global lbl_80233870
lbl_80233870:
/* 80233870 002307D0 88 1E 00 81 */ lbz r0, 0x81(r30)
/* 80233874 002307D4 54 00 DF FE */ rlwinm r0, r0, 0x1b, 0x1f, 0x1f
/* 80233878 002307D8 7C 00 00 34 */ cntlzw r0, r0
/* 8023387C 002307DC 54 00 D9 7E */ srwi r0, r0, 5
/* 80233880 002307E0 7C 04 03 78 */ mr r4, r0
/* 80233884 002307E4 48 00 00 78 */ b lbl_802338FC
.global lbl_80233888
lbl_80233888:
/* 80233888 002307E8 88 1E 00 81 */ lbz r0, 0x81(r30)
/* 8023388C 002307EC 54 00 E7 FE */ rlwinm r0, r0, 0x1c, 0x1f, 0x1f
/* 80233890 002307F0 7C 00 00 34 */ cntlzw r0, r0
/* 80233894 002307F4 54 00 D9 7E */ srwi r0, r0, 5
/* 80233898 002307F8 7C 04 03 78 */ mr r4, r0
/* 8023389C 002307FC 48 00 00 60 */ b lbl_802338FC
.global lbl_802338A0
lbl_802338A0:
/* 802338A0 00230800 88 1E 00 81 */ lbz r0, 0x81(r30)
/* 802338A4 00230804 54 00 F7 FE */ rlwinm r0, r0, 0x1e, 0x1f, 0x1f
/* 802338A8 00230808 7C 00 00 34 */ cntlzw r0, r0
/* 802338AC 0023080C 54 00 D9 7E */ srwi r0, r0, 5
/* 802338B0 00230810 7C 04 03 78 */ mr r4, r0
/* 802338B4 00230814 48 00 00 48 */ b lbl_802338FC
.global lbl_802338B8
lbl_802338B8:
/* 802338B8 00230818 88 1E 00 81 */ lbz r0, 0x81(r30)
/* 802338BC 0023081C 54 00 F7 FE */ rlwinm r0, r0, 0x1e, 0x1f, 0x1f
/* 802338C0 00230820 7C 00 00 34 */ cntlzw r0, r0
/* 802338C4 00230824 54 00 D9 7E */ srwi r0, r0, 5
/* 802338C8 00230828 7C 04 03 78 */ mr r4, r0
/* 802338CC 0023082C 48 00 00 30 */ b lbl_802338FC
.global lbl_802338D0
lbl_802338D0:
/* 802338D0 00230830 88 1E 00 81 */ lbz r0, 0x81(r30)
/* 802338D4 00230834 54 00 EF FE */ rlwinm r0, r0, 0x1d, 0x1f, 0x1f
/* 802338D8 00230838 7C 00 00 34 */ cntlzw r0, r0
/* 802338DC 0023083C 54 00 D9 7E */ srwi r0, r0, 5
/* 802338E0 00230840 7C 04 03 78 */ mr r4, r0
/* 802338E4 00230844 48 00 00 18 */ b lbl_802338FC
.global lbl_802338E8
lbl_802338E8:
/* 802338E8 00230848 88 1E 00 81 */ lbz r0, 0x81(r30)
/* 802338EC 0023084C 54 00 FF FE */ rlwinm r0, r0, 0x1f, 0x1f, 0x1f
/* 802338F0 00230850 7C 00 00 34 */ cntlzw r0, r0
/* 802338F4 00230854 54 00 D9 7E */ srwi r0, r0, 5
/* 802338F8 00230858 7C 04 03 78 */ mr r4, r0
.global lbl_802338FC
lbl_802338FC:
/* 802338FC 0023085C 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 80233900 00230860 41 82 00 14 */ beq lbl_80233914
/* 80233904 00230864 38 00 00 00 */ li r0, 0
/* 80233908 00230868 C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 8023390C 0023086C 90 1E 00 08 */ stw r0, 8(r30)
/* 80233910 00230870 D0 1E 00 0C */ stfs f0, 0xc(r30)
lbl_80233914:
/* 80233914 00230874 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80233918 00230878 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8023391C 0023087C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80233920 00230880 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80233924 00230884 7C 08 03 A6 */ mtlr r0
/* 80233928 00230888 38 21 00 20 */ addi r1, r1, 0x20
/* 8023392C 0023088C 4E 80 00 20 */ blr
.global CalculateExtraHurlVelocity__20CKnockBackControllerFR13CStateManagerff
CalculateExtraHurlVelocity__20CKnockBackControllerFR13CStateManagerff:
/* 80233930 00230890 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80233934 00230894 7C 08 02 A6 */ mflr r0
/* 80233938 00230898 90 01 00 34 */ stw r0, 0x34(r1)
/* 8023393C 0023089C DB E1 00 20 */ stfd f31, 0x20(r1)
/* 80233940 002308A0 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 80233944 002308A4 DB C1 00 10 */ stfd f30, 0x10(r1)
/* 80233948 002308A8 F3 C1 00 18 */ psq_st f30, 24(r1), 0, qr0
/* 8023394C 002308AC FF C0 08 90 */ fmr f30, f1
/* 80233950 002308B0 C0 22 B7 00 */ lfs f1, lbl_805AD420@sda21(r2)
/* 80233954 002308B4 FF E0 10 90 */ fmr f31, f2
/* 80233958 002308B8 FC 1E F8 40 */ fcmpo cr0, f30, f31
/* 8023395C 002308BC 40 81 00 28 */ ble lbl_80233984
/* 80233960 002308C0 80 64 09 00 */ lwz r3, 0x900(r4)
/* 80233964 002308C4 48 0D EB 79 */ bl Float__9CRandom16Fv
/* 80233968 002308C8 C0 82 B7 14 */ lfs f4, lbl_805AD434@sda21(r2)
/* 8023396C 002308CC EC 1E F8 28 */ fsubs f0, f30, f31
/* 80233970 002308D0 C0 62 B7 10 */ lfs f3, lbl_805AD430@sda21(r2)
/* 80233974 002308D4 C0 42 B7 0C */ lfs f2, lbl_805AD42C@sda21(r2)
/* 80233978 002308D8 EC 24 18 7C */ fnmsubs f1, f4, f1, f3
/* 8023397C 002308DC EC 22 00 72 */ fmuls f1, f2, f1
/* 80233980 002308E0 EC 21 00 32 */ fmuls f1, f1, f0
lbl_80233984:
/* 80233984 002308E4 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 80233988 002308E8 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 8023398C 002308EC E3 C1 00 18 */ psq_l f30, 24(r1), 0, qr0
/* 80233990 002308F0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80233994 002308F4 CB C1 00 10 */ lfd f30, 0x10(r1)
/* 80233998 002308F8 7C 08 03 A6 */ mtlr r0
/* 8023399C 002308FC 38 21 00 30 */ addi r1, r1, 0x30
/* 802339A0 00230900 4E 80 00 20 */ blr
.global GetKnockBackCharacterState__20CKnockBackControllerFR10CPatterned
GetKnockBackCharacterState__20CKnockBackControllerFR10CPatterned:
/* 802339A4 00230904 80 64 04 50 */ lwz r3, 0x450(r4)
/* 802339A8 00230908 88 03 03 00 */ lbz r0, 0x300(r3)
/* 802339AC 0023090C 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 802339B0 00230910 41 82 00 1C */ beq lbl_802339CC
/* 802339B4 00230914 88 04 04 00 */ lbz r0, 0x400(r4)
/* 802339B8 00230918 38 60 00 03 */ li r3, 3
/* 802339BC 0023091C 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 802339C0 00230920 4D 82 00 20 */ beqlr
/* 802339C4 00230924 38 60 00 02 */ li r3, 2
/* 802339C8 00230928 4E 80 00 20 */ blr
lbl_802339CC:
/* 802339CC 0023092C 88 04 04 00 */ lbz r0, 0x400(r4)
/* 802339D0 00230930 54 00 D7 FE */ rlwinm r0, r0, 0x1a, 0x1f, 0x1f
/* 802339D4 00230934 7C 00 00 34 */ cntlzw r0, r0
/* 802339D8 00230938 54 03 D9 7E */ srwi r3, r0, 5
/* 802339DC 0023093C 4E 80 00 20 */ blr
.global GetKnockBackWeaponType__20CKnockBackControllerFRC11CDamageInfo11EWeaponType14EKnockBackType
GetKnockBackWeaponType__20CKnockBackControllerFRC11CDamageInfo11EWeaponType14EKnockBackType:
/* 802339E0 00230940 88 84 00 04 */ lbz r4, 4(r4)
/* 802339E4 00230944 38 60 FF FF */ li r3, -1
/* 802339E8 00230948 38 E0 00 00 */ li r7, 0
/* 802339EC 0023094C 54 80 CF FF */ rlwinm. r0, r4, 0x19, 0x1f, 0x1f
/* 802339F0 00230950 41 82 00 0C */ beq lbl_802339FC
/* 802339F4 00230954 38 E0 00 01 */ li r7, 1
/* 802339F8 00230958 48 00 00 10 */ b lbl_80233A08
lbl_802339FC:
/* 802339FC 0023095C 54 80 D7 FF */ rlwinm. r0, r4, 0x1a, 0x1f, 0x1f
/* 80233A00 00230960 41 82 00 08 */ beq lbl_80233A08
/* 80233A04 00230964 38 E0 00 02 */ li r7, 2
lbl_80233A08:
/* 80233A08 00230968 28 05 00 08 */ cmplwi r5, 8
/* 80233A0C 0023096C 4D 81 00 20 */ bgtlr
/* 80233A10 00230970 3C 80 80 3F */ lis r4, lbl_803E8178@ha
/* 80233A14 00230974 54 A0 10 3A */ slwi r0, r5, 2
/* 80233A18 00230978 38 84 81 78 */ addi r4, r4, lbl_803E8178@l
/* 80233A1C 0023097C 7C 04 00 2E */ lwzx r0, r4, r0
/* 80233A20 00230980 7C 09 03 A6 */ mtctr r0
/* 80233A24 00230984 4E 80 04 20 */ bctr
.global lbl_80233A28
lbl_80233A28:
/* 80233A28 00230988 54 C0 06 3F */ clrlwi. r0, r6, 0x18
/* 80233A2C 0023098C 7C E3 3B 78 */ mr r3, r7
/* 80233A30 00230990 4C 82 00 20 */ bnelr
/* 80233A34 00230994 38 67 00 01 */ addi r3, r7, 1
/* 80233A38 00230998 4E 80 00 20 */ blr
.global lbl_80233A3C
lbl_80233A3C:
/* 80233A3C 0023099C 54 C0 06 3F */ clrlwi. r0, r6, 0x18
/* 80233A40 002309A0 38 67 00 08 */ addi r3, r7, 8
/* 80233A44 002309A4 4C 82 00 20 */ bnelr
/* 80233A48 002309A8 38 63 00 01 */ addi r3, r3, 1
/* 80233A4C 002309AC 4E 80 00 20 */ blr
.global lbl_80233A50
lbl_80233A50:
/* 80233A50 002309B0 38 67 00 04 */ addi r3, r7, 4
/* 80233A54 002309B4 4E 80 00 20 */ blr
.global lbl_80233A58
lbl_80233A58:
/* 80233A58 002309B8 38 67 00 0C */ addi r3, r7, 0xc
/* 80233A5C 002309BC 4E 80 00 20 */ blr
.global lbl_80233A60
lbl_80233A60:
/* 80233A60 002309C0 38 60 00 10 */ li r3, 0x10
/* 80233A64 002309C4 4E 80 00 20 */ blr
.global lbl_80233A68
lbl_80233A68:
/* 80233A68 002309C8 38 60 00 11 */ li r3, 0x11
/* 80233A6C 002309CC 4E 80 00 20 */ blr
.global lbl_80233A70
lbl_80233A70:
/* 80233A70 002309D0 38 60 00 0F */ li r3, 0xf
/* 80233A74 002309D4 4E 80 00 20 */ blr
.global lbl_80233A78
lbl_80233A78:
/* 80233A78 002309D8 38 60 00 12 */ li r3, 0x12
.global lbl_80233A7C
lbl_80233A7C:
/* 80233A7C 002309DC 4E 80 00 20 */ blr
.global SelectDamageState__20CKnockBackControllerFR10CPatternedRC11CDamageInfo11EWeaponType14EKnockBackType
SelectDamageState__20CKnockBackControllerFR10CPatternedRC11CDamageInfo11EWeaponType14EKnockBackType:
/* 80233A80 002309E0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80233A84 002309E4 7C 08 02 A6 */ mflr r0
/* 80233A88 002309E8 3D 00 80 3D */ lis r8, lbl_803D0008@ha
/* 80233A8C 002309EC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80233A90 002309F0 84 08 34 90 */ lwzu r0, 0x3490(r8)
/* 80233A94 002309F4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80233A98 002309F8 7C 7F 1B 78 */ mr r31, r3
/* 80233A9C 002309FC C0 28 00 08 */ lfs f1, lbl_803D0008@l(r8)
/* 80233AA0 00230A00 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80233AA4 00230A04 C0 08 00 0C */ lfs f0, 0xc(r8)
/* 80233AA8 00230A08 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80233AAC 00230A0C 7C 9D 23 78 */ mr r29, r4
/* 80233AB0 00230A10 7C A4 2B 78 */ mr r4, r5
/* 80233AB4 00230A14 7C C5 33 78 */ mr r5, r6
/* 80233AB8 00230A18 90 03 00 04 */ stw r0, 4(r3)
/* 80233ABC 00230A1C 7C E6 3B 78 */ mr r6, r7
/* 80233AC0 00230A20 80 08 00 04 */ lwz r0, 4(r8)
/* 80233AC4 00230A24 90 03 00 08 */ stw r0, 8(r3)
/* 80233AC8 00230A28 D0 23 00 0C */ stfs f1, 0xc(r3)
/* 80233ACC 00230A2C D0 03 00 10 */ stfs f0, 0x10(r3)
/* 80233AD0 00230A30 4B FF FF 11 */ bl GetKnockBackWeaponType__20CKnockBackControllerFRC11CDamageInfo11EWeaponType14EKnockBackType
/* 80233AD4 00230A34 7C 7E 1B 78 */ mr r30, r3
/* 80233AD8 00230A38 2C 1E FF FF */ cmpwi r30, -1
/* 80233ADC 00230A3C 41 82 00 60 */ beq lbl_80233B3C
/* 80233AE0 00230A40 7F E3 FB 78 */ mr r3, r31
/* 80233AE4 00230A44 7F A4 EB 78 */ mr r4, r29
/* 80233AE8 00230A48 4B FF FE BD */ bl GetKnockBackCharacterState__20CKnockBackControllerFR10CPatterned
/* 80233AEC 00230A4C 80 DF 00 00 */ lwz r6, 0(r31)
/* 80233AF0 00230A50 3C 80 80 3D */ lis r4, lbl_803D34A0@ha
/* 80233AF4 00230A54 54 60 20 36 */ slwi r0, r3, 4
/* 80233AF8 00230A58 57 C5 30 32 */ slwi r5, r30, 6
/* 80233AFC 00230A5C 1C E6 04 C0 */ mulli r7, r6, 0x4c0
/* 80233B00 00230A60 38 C4 34 A0 */ addi r6, r4, lbl_803D34A0@l
/* 80233B04 00230A64 7F E3 FB 78 */ mr r3, r31
/* 80233B08 00230A68 7F A4 EB 78 */ mr r4, r29
/* 80233B0C 00230A6C 7C C6 3A 14 */ add r6, r6, r7
/* 80233B10 00230A70 7C A6 2A 14 */ add r5, r6, r5
/* 80233B14 00230A74 7C C5 02 14 */ add r6, r5, r0
/* 80233B18 00230A78 80 A6 00 00 */ lwz r5, 0(r6)
/* 80233B1C 00230A7C 80 06 00 04 */ lwz r0, 4(r6)
/* 80233B20 00230A80 90 BF 00 04 */ stw r5, 4(r31)
/* 80233B24 00230A84 C0 26 00 08 */ lfs f1, 8(r6)
/* 80233B28 00230A88 90 1F 00 08 */ stw r0, 8(r31)
/* 80233B2C 00230A8C C0 06 00 0C */ lfs f0, 0xc(r6)
/* 80233B30 00230A90 D0 3F 00 0C */ stfs f1, 0xc(r31)
/* 80233B34 00230A94 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 80233B38 00230A98 4B FF FB 45 */ bl ValidateState__20CKnockBackControllerFR10CPatterned
lbl_80233B3C:
/* 80233B3C 00230A9C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80233B40 00230AA0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80233B44 00230AA4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80233B48 00230AA8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80233B4C 00230AAC 7C 08 03 A6 */ mtlr r0
/* 80233B50 00230AB0 38 21 00 20 */ addi r1, r1, 0x20
/* 80233B54 00230AB4 4E 80 00 20 */ blr
.global Update__20CKnockBackControllerFfR13CStateManagerR10CPatterned
Update__20CKnockBackControllerFfR13CStateManagerR10CPatterned:
/* 80233B58 00230AB8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80233B5C 00230ABC 7C 08 02 A6 */ mflr r0
/* 80233B60 00230AC0 90 01 00 34 */ stw r0, 0x34(r1)
/* 80233B64 00230AC4 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 80233B68 00230AC8 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 80233B6C 00230ACC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80233B70 00230AD0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80233B74 00230AD4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80233B78 00230AD8 FF E0 08 90 */ fmr f31, f1
/* 80233B7C 00230ADC 7C BF 2B 78 */ mr r31, r5
/* 80233B80 00230AE0 7C 9E 23 78 */ mr r30, r4
/* 80233B84 00230AE4 7C 7D 1B 78 */ mr r29, r3
/* 80233B88 00230AE8 7F E4 FB 78 */ mr r4, r31
/* 80233B8C 00230AEC 4B FF F8 09 */ bl ApplyImpulse__20CKnockBackControllerFfR10CPatterned
/* 80233B90 00230AF0 C0 1D 00 64 */ lfs f0, 0x64(r29)
/* 80233B94 00230AF4 FC 20 F8 90 */ fmr f1, f31
/* 80233B98 00230AF8 7F A3 EB 78 */ mr r3, r29
/* 80233B9C 00230AFC EC 00 F8 28 */ fsubs f0, f0, f31
/* 80233BA0 00230B00 D0 1D 00 64 */ stfs f0, 0x64(r29)
/* 80233BA4 00230B04 4B FF FA 9D */ bl TickDeferredTimer__20CKnockBackControllerFf
/* 80233BA8 00230B08 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80233BAC 00230B0C 41 82 00 14 */ beq lbl_80233BC0
/* 80233BB0 00230B10 7F A3 EB 78 */ mr r3, r29
/* 80233BB4 00230B14 7F C4 F3 78 */ mr r4, r30
/* 80233BB8 00230B18 7F E5 FB 78 */ mr r5, r31
/* 80233BBC 00230B1C 4B FF F5 E9 */ bl DoDeferredKnockBack__20CKnockBackControllerFR13CStateManagerR10CPatterned
lbl_80233BC0:
/* 80233BC0 00230B20 88 1D 00 82 */ lbz r0, 0x82(r29)
/* 80233BC4 00230B24 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 80233BC8 00230B28 41 82 00 44 */ beq lbl_80233C0C
/* 80233BCC 00230B2C 80 9F 04 50 */ lwz r4, 0x450(r31)
/* 80233BD0 00230B30 C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 80233BD4 00230B34 C0 24 03 24 */ lfs f1, 0x324(r4)
/* 80233BD8 00230B38 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80233BDC 00230B3C 40 81 00 30 */ ble lbl_80233C0C
/* 80233BE0 00230B40 3C 60 80 3E */ lis r3, lbl_803DAA68@ha
/* 80233BE4 00230B44 38 00 00 16 */ li r0, 0x16
/* 80233BE8 00230B48 38 A3 AA 68 */ addi r5, r3, lbl_803DAA68@l
/* 80233BEC 00230B4C 90 01 00 0C */ stw r0, 0xc(r1)
/* 80233BF0 00230B50 38 64 00 04 */ addi r3, r4, 4
/* 80233BF4 00230B54 38 81 00 08 */ addi r4, r1, 8
/* 80233BF8 00230B58 90 A1 00 08 */ stw r5, 8(r1)
/* 80233BFC 00230B5C 4B EF DB BD */ bl DeliverCmd__16CBodyStateCmdMgrFRC13CBodyStateCmd
/* 80233C00 00230B60 3C 60 80 3E */ lis r3, lbl_803DAA68@ha
/* 80233C04 00230B64 38 03 AA 68 */ addi r0, r3, lbl_803DAA68@l
/* 80233C08 00230B68 90 01 00 08 */ stw r0, 8(r1)
lbl_80233C0C:
/* 80233C0C 00230B6C E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 80233C10 00230B70 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80233C14 00230B74 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 80233C18 00230B78 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80233C1C 00230B7C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80233C20 00230B80 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80233C24 00230B84 7C 08 03 A6 */ mtlr r0
/* 80233C28 00230B88 38 21 00 30 */ addi r1, r1, 0x30
/* 80233C2C 00230B8C 4E 80 00 20 */ blr
.global KnockBack__C20CKnockBackControllerFRC9CVector3fR13CStateManagerR10CPatternedRC11CDamageInfo14EKnockBackTypef
KnockBack__C20CKnockBackControllerFRC9CVector3fR13CStateManagerR10CPatternedRC11CDamageInfo14EKnockBackTypef:
/* 80233C30 00230B90 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80233C34 00230B94 7C 08 02 A6 */ mflr r0
/* 80233C38 00230B98 90 01 00 54 */ stw r0, 0x54(r1)
/* 80233C3C 00230B9C DB E1 00 40 */ stfd f31, 0x40(r1)
/* 80233C40 00230BA0 F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0
/* 80233C44 00230BA4 BF 61 00 2C */ stmw r27, 0x2c(r1)
/* 80233C48 00230BA8 88 03 00 82 */ lbz r0, 0x82(r3)
/* 80233C4C 00230BAC FF E0 08 90 */ fmr f31, f1
/* 80233C50 00230BB0 7C 7B 1B 78 */ mr r27, r3
/* 80233C54 00230BB4 7C BC 2B 78 */ mr r28, r5
/* 80233C58 00230BB8 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 80233C5C 00230BBC 7C DD 33 78 */ mr r29, r6
/* 80233C60 00230BC0 7C FE 3B 78 */ mr r30, r7
/* 80233C64 00230BC4 7D 1F 43 78 */ mr r31, r8
/* 80233C68 00230BC8 40 82 00 A4 */ bne lbl_80233D0C
/* 80233C6C 00230BCC C0 24 00 00 */ lfs f1, 0(r4)
/* 80233C70 00230BD0 38 61 00 08 */ addi r3, r1, 8
/* 80233C74 00230BD4 C0 44 00 04 */ lfs f2, 4(r4)
/* 80233C78 00230BD8 48 0E 05 89 */ bl __ct__9CVector2fFff
/* 80233C7C 00230BDC C0 41 00 08 */ lfs f2, 8(r1)
/* 80233C80 00230BE0 38 61 00 10 */ addi r3, r1, 0x10
/* 80233C84 00230BE4 C0 21 00 0C */ lfs f1, 0xc(r1)
/* 80233C88 00230BE8 C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 80233C8C 00230BEC D0 41 00 10 */ stfs f2, 0x10(r1)
/* 80233C90 00230BF0 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 80233C94 00230BF4 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80233C98 00230BF8 48 0E 0A F5 */ bl IsMagnitudeSafe__9CVector3fCFv
/* 80233C9C 00230BFC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80233CA0 00230C00 40 82 00 28 */ bne lbl_80233CC8
/* 80233CA4 00230C04 C0 5D 00 58 */ lfs f2, 0x58(r29)
/* 80233CA8 00230C08 C0 3D 00 48 */ lfs f1, 0x48(r29)
/* 80233CAC 00230C0C C0 1D 00 38 */ lfs f0, 0x38(r29)
/* 80233CB0 00230C10 FC 40 10 50 */ fneg f2, f2
/* 80233CB4 00230C14 FC 20 08 50 */ fneg f1, f1
/* 80233CB8 00230C18 FC 00 00 50 */ fneg f0, f0
/* 80233CBC 00230C1C D0 41 00 18 */ stfs f2, 0x18(r1)
/* 80233CC0 00230C20 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80233CC4 00230C24 D0 21 00 14 */ stfs f1, 0x14(r1)
lbl_80233CC8:
/* 80233CC8 00230C28 80 DE 00 00 */ lwz r6, 0(r30)
/* 80233CCC 00230C2C 7F 63 DB 78 */ mr r3, r27
/* 80233CD0 00230C30 7F A4 EB 78 */ mr r4, r29
/* 80233CD4 00230C34 7F C5 F3 78 */ mr r5, r30
/* 80233CD8 00230C38 7F E7 FB 78 */ mr r7, r31
/* 80233CDC 00230C3C 4B FF FD A5 */ bl SelectDamageState__20CKnockBackControllerFR10CPatternedRC11CDamageInfo11EWeaponType14EKnockBackType
/* 80233CE0 00230C40 FC 20 F8 90 */ fmr f1, f31
/* 80233CE4 00230C44 7F 63 DB 78 */ mr r3, r27
/* 80233CE8 00230C48 7F 85 E3 78 */ mr r5, r28
/* 80233CEC 00230C4C 7F A6 EB 78 */ mr r6, r29
/* 80233CF0 00230C50 38 81 00 10 */ addi r4, r1, 0x10
/* 80233CF4 00230C54 4B FF EF B1 */ bl DoKnockBackAnimation__20CKnockBackControllerFRC9CVector3fR13CStateManagerR10CPatternedf
/* 80233CF8 00230C58 C0 22 B7 0C */ lfs f1, lbl_805AD42C@sda21(r2)
/* 80233CFC 00230C5C 7F 63 DB 78 */ mr r3, r27
/* 80233D00 00230C60 7F A4 EB 78 */ mr r4, r29
/* 80233D04 00230C64 38 A1 00 10 */ addi r5, r1, 0x10
/* 80233D08 00230C68 4B FF F7 F9 */ bl ResetKnockBackImpulse__20CKnockBackControllerFR10CPatternedRC9CVector3ff
lbl_80233D0C:
/* 80233D0C 00230C6C E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0
/* 80233D10 00230C70 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 80233D14 00230C74 BB 61 00 2C */ lmw r27, 0x2c(r1)
/* 80233D18 00230C78 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80233D1C 00230C7C 7C 08 03 A6 */ mtlr r0
/* 80233D20 00230C80 38 21 00 50 */ addi r1, r1, 0x50
/* 80233D24 00230C84 4E 80 00 20 */ blr
.global SetKnockBackVariant__20CKnockBackControllerF17EKnockBackVariant
SetKnockBackVariant__20CKnockBackControllerF17EKnockBackVariant:
/* 80233D28 00230C88 90 83 00 00 */ stw r4, 0(r3)
/* 80233D2C 00230C8C 4E 80 00 20 */ blr
.global DeferKnockBack__20CKnockBackControllerF11EWeaponType
DeferKnockBack__20CKnockBackControllerF11EWeaponType:
/* 80233D30 00230C90 90 83 00 14 */ stw r4, 0x14(r3)
/* 80233D34 00230C94 C0 02 B7 18 */ lfs f0, lbl_805AD438@sda21(r2)
/* 80233D38 00230C98 D0 03 00 68 */ stfs f0, 0x68(r3)
/* 80233D3C 00230C9C 4E 80 00 20 */ blr
.global sub_80233d40
sub_80233d40:
/* 80233D40 00230CA0 2C 04 00 00 */ cmpwi r4, 0
/* 80233D44 00230CA4 4D 80 00 20 */ bltlr
/* 80233D48 00230CA8 2C 04 00 04 */ cmpwi r4, 4
/* 80233D4C 00230CAC 4D 81 00 20 */ bgtlr
/* 80233D50 00230CB0 54 80 18 38 */ slwi r0, r4, 3
/* 80233D54 00230CB4 7C 63 02 14 */ add r3, r3, r0
/* 80233D58 00230CB8 D0 23 00 28 */ stfs f1, 0x28(r3)
/* 80233D5C 00230CBC D0 43 00 2C */ stfs f2, 0x2c(r3)
/* 80233D60 00230CC0 4E 80 00 20 */ blr
.global SetAutoResetImpulse__20CKnockBackControllerFb
SetAutoResetImpulse__20CKnockBackControllerFb:
/* 80233D64 00230CC4 88 03 00 81 */ lbz r0, 0x81(r3)
/* 80233D68 00230CC8 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 80233D6C 00230CCC 98 03 00 81 */ stb r0, 0x81(r3)
/* 80233D70 00230CD0 88 03 00 81 */ lbz r0, 0x81(r3)
/* 80233D74 00230CD4 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80233D78 00230CD8 4C 82 00 20 */ bnelr
/* 80233D7C 00230CDC C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 80233D80 00230CE0 D0 03 00 5C */ stfs f0, 0x5c(r3)
/* 80233D84 00230CE4 D0 03 00 60 */ stfs f0, 0x60(r3)
/* 80233D88 00230CE8 4E 80 00 20 */ blr
.global SetImpulseDurationIdx__20CKnockBackControllerFi
SetImpulseDurationIdx__20CKnockBackControllerFi:
/* 80233D8C 00230CEC 90 83 00 20 */ stw r4, 0x20(r3)
/* 80233D90 00230CF0 4E 80 00 20 */ blr
.global SetAnimationStateRange__20CKnockBackControllerF24EKnockBackAnimationState24EKnockBackAnimationState
SetAnimationStateRange__20CKnockBackControllerF24EKnockBackAnimationState24EKnockBackAnimationState:
/* 80233D94 00230CF4 90 83 00 18 */ stw r4, 0x18(r3)
/* 80233D98 00230CF8 90 A3 00 1C */ stw r5, 0x1c(r3)
/* 80233D9C 00230CFC 4E 80 00 20 */ blr
.global TestAvailableState__20CKnockBackControllerCFi
TestAvailableState__20CKnockBackControllerCFi:
/* 80233DA0 00230D00 38 00 00 01 */ li r0, 1
/* 80233DA4 00230D04 88 63 00 80 */ lbz r3, 0x80(r3)
/* 80233DA8 00230D08 7C 00 20 30 */ slw r0, r0, r4
/* 80233DAC 00230D0C 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 80233DB0 00230D10 7C 63 00 38 */ and r3, r3, r0
/* 80233DB4 00230D14 7C 03 00 D0 */ neg r0, r3
/* 80233DB8 00230D18 7C 00 1B 78 */ or r0, r0, r3
/* 80233DBC 00230D1C 54 03 0F FE */ srwi r3, r0, 0x1f
/* 80233DC0 00230D20 4E 80 00 20 */ blr
.global SetAvailableState__20CKnockBackControllerFib
SetAvailableState__20CKnockBackControllerFib:
/* 80233DC4 00230D24 54 A0 06 3F */ clrlwi. r0, r5, 0x18
/* 80233DC8 00230D28 38 A0 00 01 */ li r5, 1
/* 80233DCC 00230D2C 7C A0 20 30 */ slw r0, r5, r4
/* 80233DD0 00230D30 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 80233DD4 00230D34 41 82 00 14 */ beq lbl_80233DE8
/* 80233DD8 00230D38 88 03 00 80 */ lbz r0, 0x80(r3)
/* 80233DDC 00230D3C 7C 00 23 78 */ or r0, r0, r4
/* 80233DE0 00230D40 98 03 00 80 */ stb r0, 0x80(r3)
/* 80233DE4 00230D44 4E 80 00 20 */ blr
lbl_80233DE8:
/* 80233DE8 00230D48 88 03 00 80 */ lbz r0, 0x80(r3)
/* 80233DEC 00230D4C 7C 00 20 78 */ andc r0, r0, r4
/* 80233DF0 00230D50 98 03 00 80 */ stb r0, 0x80(r3)
/* 80233DF4 00230D54 4E 80 00 20 */ blr
.global __ct__20CKnockBackController2F17EKnockBackVariant
__ct__20CKnockBackController2F17EKnockBackVariant:
/* 80233DF8 00230D58 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80233DFC 00230D5C 7C 08 02 A6 */ mflr r0
/* 80233E00 00230D60 90 01 00 34 */ stw r0, 0x34(r1)
/* 80233E04 00230D64 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 80233E08 00230D68 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 80233E0C 00230D6C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80233E10 00230D70 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80233E14 00230D74 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80233E18 00230D78 3C A0 80 3D */ lis r5, lbl_803D3490@ha
/* 80233E1C 00230D7C 7C 7D 1B 78 */ mr r29, r3
/* 80233E20 00230D80 39 25 34 90 */ addi r9, r5, lbl_803D3490@l
/* 80233E24 00230D84 3C 60 80 5A */ lis r3, skZero3f@ha
/* 80233E28 00230D88 90 9D 00 00 */ stw r4, 0(r29)
/* 80233E2C 00230D8C 38 C0 FF FF */ li r6, -1
/* 80233E30 00230D90 80 89 00 00 */ lwz r4, 0(r9)
/* 80233E34 00230D94 38 A0 00 00 */ li r5, 0
/* 80233E38 00230D98 80 E9 00 04 */ lwz r7, 4(r9)
/* 80233E3C 00230D9C 38 00 00 04 */ li r0, 4
/* 80233E40 00230DA0 90 9D 00 04 */ stw r4, 4(r29)
/* 80233E44 00230DA4 38 83 66 A0 */ addi r4, r3, skZero3f@l
/* 80233E48 00230DA8 81 09 00 08 */ lwz r8, 8(r9)
/* 80233E4C 00230DAC 38 60 00 01 */ li r3, 1
/* 80233E50 00230DB0 90 FD 00 08 */ stw r7, 8(r29)
/* 80233E54 00230DB4 3B FD 00 28 */ addi r31, r29, 0x28
/* 80233E58 00230DB8 80 E9 00 0C */ lwz r7, 0xc(r9)
/* 80233E5C 00230DBC 3B C0 00 00 */ li r30, 0
/* 80233E60 00230DC0 91 1D 00 0C */ stw r8, 0xc(r29)
/* 80233E64 00230DC4 C0 02 B7 00 */ lfs f0, lbl_805AD420@sda21(r2)
/* 80233E68 00230DC8 90 FD 00 10 */ stw r7, 0x10(r29)
/* 80233E6C 00230DCC C3 E2 B7 1C */ lfs f31, lbl_805AD43C@sda21(r2)
/* 80233E70 00230DD0 90 DD 00 14 */ stw r6, 0x14(r29)
/* 80233E74 00230DD4 90 BD 00 18 */ stw r5, 0x18(r29)
/* 80233E78 00230DD8 90 1D 00 1C */ stw r0, 0x1c(r29)
/* 80233E7C 00230DDC 90 BD 00 20 */ stw r5, 0x20(r29)
/* 80233E80 00230DE0 90 BD 00 24 */ stw r5, 0x24(r29)
/* 80233E84 00230DE4 C0 24 00 00 */ lfs f1, 0(r4)
/* 80233E88 00230DE8 D0 3D 00 50 */ stfs f1, 0x50(r29)
/* 80233E8C 00230DEC C0 24 00 04 */ lfs f1, 4(r4)
/* 80233E90 00230DF0 D0 3D 00 54 */ stfs f1, 0x54(r29)
/* 80233E94 00230DF4 C0 24 00 08 */ lfs f1, 8(r4)
/* 80233E98 00230DF8 D0 3D 00 58 */ stfs f1, 0x58(r29)
/* 80233E9C 00230DFC D0 1D 00 5C */ stfs f0, 0x5c(r29)
/* 80233EA0 00230E00 D0 1D 00 60 */ stfs f0, 0x60(r29)
/* 80233EA4 00230E04 D0 1D 00 64 */ stfs f0, 0x64(r29)
/* 80233EA8 00230E08 D0 1D 00 68 */ stfs f0, 0x68(r29)
/* 80233EAC 00230E0C 90 BD 00 6C */ stw r5, 0x6c(r29)
/* 80233EB0 00230E10 90 BD 00 70 */ stw r5, 0x70(r29)
/* 80233EB4 00230E14 90 BD 00 74 */ stw r5, 0x74(r29)
/* 80233EB8 00230E18 90 7D 00 7C */ stw r3, 0x7c(r29)
/* 80233EBC 00230E1C 98 BD 00 80 */ stb r5, 0x80(r29)
/* 80233EC0 00230E20 88 1D 00 81 */ lbz r0, 0x81(r29)
/* 80233EC4 00230E24 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 80233EC8 00230E28 98 1D 00 81 */ stb r0, 0x81(r29)
/* 80233ECC 00230E2C 88 1D 00 81 */ lbz r0, 0x81(r29)
/* 80233ED0 00230E30 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 80233ED4 00230E34 98 1D 00 81 */ stb r0, 0x81(r29)
/* 80233ED8 00230E38 88 1D 00 81 */ lbz r0, 0x81(r29)
/* 80233EDC 00230E3C 50 A0 2E B4 */ rlwimi r0, r5, 5, 0x1a, 0x1a
/* 80233EE0 00230E40 98 1D 00 81 */ stb r0, 0x81(r29)
/* 80233EE4 00230E44 88 1D 00 81 */ lbz r0, 0x81(r29)
/* 80233EE8 00230E48 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 80233EEC 00230E4C 98 1D 00 81 */ stb r0, 0x81(r29)
/* 80233EF0 00230E50 88 1D 00 81 */ lbz r0, 0x81(r29)
/* 80233EF4 00230E54 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 80233EF8 00230E58 98 1D 00 81 */ stb r0, 0x81(r29)
/* 80233EFC 00230E5C 88 1D 00 81 */ lbz r0, 0x81(r29)
/* 80233F00 00230E60 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 80233F04 00230E64 98 1D 00 81 */ stb r0, 0x81(r29)
/* 80233F08 00230E68 88 1D 00 81 */ lbz r0, 0x81(r29)
/* 80233F0C 00230E6C 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
/* 80233F10 00230E70 98 1D 00 81 */ stb r0, 0x81(r29)
/* 80233F14 00230E74 88 1D 00 81 */ lbz r0, 0x81(r29)
/* 80233F18 00230E78 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
/* 80233F1C 00230E7C 98 1D 00 81 */ stb r0, 0x81(r29)
/* 80233F20 00230E80 88 1D 00 82 */ lbz r0, 0x82(r29)
/* 80233F24 00230E84 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 80233F28 00230E88 98 1D 00 82 */ stb r0, 0x82(r29)
/* 80233F2C 00230E8C 88 1D 00 82 */ lbz r0, 0x82(r29)
/* 80233F30 00230E90 50 A0 36 72 */ rlwimi r0, r5, 6, 0x19, 0x19
/* 80233F34 00230E94 98 1D 00 82 */ stb r0, 0x82(r29)
/* 80233F38 00230E98 88 1D 00 82 */ lbz r0, 0x82(r29)
/* 80233F3C 00230E9C 50 A0 2E B4 */ rlwimi r0, r5, 5, 0x1a, 0x1a
/* 80233F40 00230EA0 98 1D 00 82 */ stb r0, 0x82(r29)
lbl_80233F44:
/* 80233F44 00230EA4 80 1D 00 24 */ lwz r0, 0x24(r29)
/* 80233F48 00230EA8 C0 0D 96 38 */ lfs f0, lbl_805A81F8@sda21(r13)
/* 80233F4C 00230EAC 54 00 18 38 */ slwi r0, r0, 3
/* 80233F50 00230EB0 7C 7F 02 15 */ add. r3, r31, r0
/* 80233F54 00230EB4 41 82 00 0C */ beq lbl_80233F60
/* 80233F58 00230EB8 D0 03 00 00 */ stfs f0, 0(r3)
/* 80233F5C 00230EBC D3 E3 00 04 */ stfs f31, 4(r3)
lbl_80233F60:
/* 80233F60 00230EC0 80 DD 00 24 */ lwz r6, 0x24(r29)
/* 80233F64 00230EC4 7F A3 EB 78 */ mr r3, r29
/* 80233F68 00230EC8 7F C4 F3 78 */ mr r4, r30
/* 80233F6C 00230ECC 38 A0 00 01 */ li r5, 1
/* 80233F70 00230ED0 38 06 00 01 */ addi r0, r6, 1
/* 80233F74 00230ED4 90 1D 00 24 */ stw r0, 0x24(r29)
/* 80233F78 00230ED8 4B FF FE 4D */ bl SetAvailableState__20CKnockBackControllerFib
/* 80233F7C 00230EDC 3B DE 00 01 */ addi r30, r30, 1
/* 80233F80 00230EE0 2C 1E 00 04 */ cmpwi r30, 4
/* 80233F84 00230EE4 40 81 FF C0 */ ble lbl_80233F44
/* 80233F88 00230EE8 7F A3 EB 78 */ mr r3, r29
/* 80233F8C 00230EEC E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 80233F90 00230EF0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80233F94 00230EF4 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 80233F98 00230EF8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80233F9C 00230EFC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80233FA0 00230F00 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80233FA4 00230F04 7C 08 03 A6 */ mtlr r0
/* 80233FA8 00230F08 38 21 00 30 */ addi r1, r1, 0x30
/* 80233FAC 00230F0C 4E 80 00 20 */ blr