prime/asm/MetroidPrime/Weapons/CPlasmaBeam.s

842 lines
42 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .data
.global lbl_803DF710
lbl_803DF710:
# ROM: 0x3DC710
.4byte 0
.4byte 0
.4byte __dt__11CPlasmaBeamFv
.4byte Reset__10CGunWeaponFR13CStateManager
.4byte PlayAnim__10CGunWeaponFQ212NWeaponTypes12EGunAnimTypeb
.4byte PreRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f
.4byte PostRenderGunFx__11CPlasmaBeamFRC13CStateManagerRC12CTransform4f
.4byte UpdateGunFx__11CPlasmaBeamFbfRC13CStateManagerRC12CTransform4f
.4byte Fire__11CPlasmaBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
.4byte EnableFx__10CGunWeaponFb
.4byte EnableSecondaryFx__11CPlasmaBeamFQ210CGunWeapon16ESecondaryFxType
.4byte Draw__10CGunWeaponCFbRC13CStateManagerRC12CTransform4fRC11CModelFlagsPC12CActorLights
.4byte DrawMuzzleFx__10CGunWeaponCFRC13CStateManager
.4byte Update__11CPlasmaBeamFfR13CStateManager
.4byte Load__11CPlasmaBeamFb
.4byte Unload__11CPlasmaBeamFR13CStateManager
.4byte IsLoaded__11CPlasmaBeamCFv
.4byte 0
.section .sdata
.global lbl_805A7320
lbl_805A7320:
# ROM: 0x3F4CC0
.4byte 0
.4byte 0
.section .bss
.global lbl_8046C488
lbl_8046C488:
.skip 0x10
.section .text, "ax"
.global SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff
SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff:
/* 800DEB9C 000DBAFC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 800DEBA0 000DBB00 7C 08 02 A6 */ mflr r0
/* 800DEBA4 000DBB04 90 01 00 44 */ stw r0, 0x44(r1)
/* 800DEBA8 000DBB08 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 800DEBAC 000DBB0C F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
/* 800DEBB0 000DBB10 DB C1 00 20 */ stfd f30, 0x20(r1)
/* 800DEBB4 000DBB14 F3 C1 00 28 */ psq_st f30, 40(r1), 0, qr0
/* 800DEBB8 000DBB18 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800DEBBC 000DBB1C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800DEBC0 000DBB20 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800DEBC4 000DBB24 88 03 02 2C */ lbz r0, 0x22c(r3)
/* 800DEBC8 000DBB28 FF C0 08 90 */ fmr f30, f1
/* 800DEBCC 000DBB2C FF E0 10 90 */ fmr f31, f2
/* 800DEBD0 000DBB30 7C 7E 1B 78 */ mr r30, r3
/* 800DEBD4 000DBB34 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 800DEBD8 000DBB38 7C 9F 23 78 */ mr r31, r4
/* 800DEBDC 000DBB3C 7C BD 2B 78 */ mr r29, r5
/* 800DEBE0 000DBB40 41 82 00 54 */ beq lbl_800DEC34
/* 800DEBE4 000DBB44 80 7E 02 3C */ lwz r3, 0x23c(r30)
/* 800DEBE8 000DBB48 80 1D 00 00 */ lwz r0, 0(r29)
/* 800DEBEC 000DBB4C 7C 03 00 00 */ cmpw r3, r0
/* 800DEBF0 000DBB50 41 82 00 44 */ beq lbl_800DEC34
/* 800DEBF4 000DBB54 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13)
/* 800DEBF8 000DBB58 7C 03 00 00 */ cmpw r3, r0
/* 800DEBFC 000DBB5C 41 82 00 38 */ beq lbl_800DEC34
/* 800DEC00 000DBB60 80 1E 02 3C */ lwz r0, 0x23c(r30)
/* 800DEC04 000DBB64 80 9F 08 50 */ lwz r4, 0x850(r31)
/* 800DEC08 000DBB68 54 03 18 38 */ slwi r3, r0, 3
/* 800DEC0C 000DBB6C 90 01 00 0C */ stw r0, 0xc(r1)
/* 800DEC10 000DBB70 80 84 00 20 */ lwz r4, 0x20(r4)
/* 800DEC14 000DBB74 38 03 00 04 */ addi r0, r3, 4
/* 800DEC18 000DBB78 7C 64 00 2E */ lwzx r3, r4, r0
/* 800DEC1C 000DBB7C 88 03 00 F0 */ lbz r0, 0xf0(r3)
/* 800DEC20 000DBB80 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800DEC24 000DBB84 41 82 00 10 */ beq lbl_800DEC34
/* 800DEC28 000DBB88 C0 22 8F 34 */ lfs f1, lbl_805AAC54@sda21(r2)
/* 800DEC2C 000DBB8C C0 42 8F 38 */ lfs f2, lbl_805AAC58@sda21(r2)
/* 800DEC30 000DBB90 4B F7 F5 A5 */ bl SetWeaponWorldLighting__9CGameAreaFff
lbl_800DEC34:
/* 800DEC34 000DBB94 C0 02 8F 38 */ lfs f0, lbl_805AAC58@sda21(r2)
/* 800DEC38 000DBB98 80 1D 00 00 */ lwz r0, 0(r29)
/* 800DEC3C 000DBB9C FC 00 F8 00 */ fcmpu cr0, f0, f31
/* 800DEC40 000DBBA0 90 1E 02 3C */ stw r0, 0x23c(r30)
/* 800DEC44 000DBBA4 7C 60 00 26 */ mfcr r3
/* 800DEC48 000DBBA8 88 1E 02 2C */ lbz r0, 0x22c(r30)
/* 800DEC4C 000DBBAC 54 63 1F FE */ rlwinm r3, r3, 3, 0x1f, 0x1f
/* 800DEC50 000DBBB0 68 63 00 01 */ xori r3, r3, 1
/* 800DEC54 000DBBB4 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 800DEC58 000DBBB8 98 1E 02 2C */ stb r0, 0x22c(r30)
/* 800DEC5C 000DBBBC 80 7E 02 3C */ lwz r3, 0x23c(r30)
/* 800DEC60 000DBBC0 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13)
/* 800DEC64 000DBBC4 7C 03 00 00 */ cmpw r3, r0
/* 800DEC68 000DBBC8 41 82 00 38 */ beq lbl_800DECA0
/* 800DEC6C 000DBBCC 80 1E 02 3C */ lwz r0, 0x23c(r30)
/* 800DEC70 000DBBD0 80 9F 08 50 */ lwz r4, 0x850(r31)
/* 800DEC74 000DBBD4 54 03 18 38 */ slwi r3, r0, 3
/* 800DEC78 000DBBD8 90 01 00 08 */ stw r0, 8(r1)
/* 800DEC7C 000DBBDC 80 84 00 20 */ lwz r4, 0x20(r4)
/* 800DEC80 000DBBE0 38 03 00 04 */ addi r0, r3, 4
/* 800DEC84 000DBBE4 7C 64 00 2E */ lwzx r3, r4, r0
/* 800DEC88 000DBBE8 88 03 00 F0 */ lbz r0, 0xf0(r3)
/* 800DEC8C 000DBBEC 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800DEC90 000DBBF0 41 82 00 10 */ beq lbl_800DECA0
/* 800DEC94 000DBBF4 FC 20 F0 90 */ fmr f1, f30
/* 800DEC98 000DBBF8 FC 40 F8 90 */ fmr f2, f31
/* 800DEC9C 000DBBFC 4B F7 F5 39 */ bl SetWeaponWorldLighting__9CGameAreaFff
lbl_800DECA0:
/* 800DECA0 000DBC00 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
/* 800DECA4 000DBC04 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 800DECA8 000DBC08 E3 C1 00 28 */ psq_l f30, 40(r1), 0, qr0
/* 800DECAC 000DBC0C CB C1 00 20 */ lfd f30, 0x20(r1)
/* 800DECB0 000DBC10 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800DECB4 000DBC14 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800DECB8 000DBC18 80 01 00 44 */ lwz r0, 0x44(r1)
/* 800DECBC 000DBC1C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800DECC0 000DBC20 7C 08 03 A6 */ mtlr r0
/* 800DECC4 000DBC24 38 21 00 40 */ addi r1, r1, 0x40
/* 800DECC8 000DBC28 4E 80 00 20 */ blr
.global EnableSecondaryFx__11CPlasmaBeamFQ210CGunWeapon16ESecondaryFxType
EnableSecondaryFx__11CPlasmaBeamFQ210CGunWeapon16ESecondaryFxType:
/* 800DECCC 000DBC2C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800DECD0 000DBC30 7C 08 02 A6 */ mflr r0
/* 800DECD4 000DBC34 90 01 00 24 */ stw r0, 0x24(r1)
/* 800DECD8 000DBC38 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800DECDC 000DBC3C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800DECE0 000DBC40 7C 9E 23 78 */ mr r30, r4
/* 800DECE4 000DBC44 2C 1E 00 02 */ cmpwi r30, 2
/* 800DECE8 000DBC48 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800DECEC 000DBC4C 7C 7D 1B 78 */ mr r29, r3
/* 800DECF0 000DBC50 93 81 00 10 */ stw r28, 0x10(r1)
/* 800DECF4 000DBC54 41 82 00 E8 */ beq lbl_800DEDDC
/* 800DECF8 000DBC58 40 80 00 10 */ bge lbl_800DED08
/* 800DECFC 000DBC5C 2C 1E 00 01 */ cmpwi r30, 1
/* 800DED00 000DBC60 40 80 00 44 */ bge lbl_800DED44
/* 800DED04 000DBC64 48 00 00 D8 */ b lbl_800DEDDC
lbl_800DED08:
/* 800DED08 000DBC68 2C 1E 00 04 */ cmpwi r30, 4
/* 800DED0C 000DBC6C 40 80 00 D0 */ bge lbl_800DEDDC
/* 800DED10 000DBC70 80 1D 01 CC */ lwz r0, 0x1cc(r29)
/* 800DED14 000DBC74 2C 00 00 00 */ cmpwi r0, 0
/* 800DED18 000DBC78 41 82 00 C8 */ beq lbl_800DEDE0
/* 800DED1C 000DBC7C 80 7D 02 28 */ lwz r3, 0x228(r29)
/* 800DED20 000DBC80 28 03 00 00 */ cmplwi r3, 0
/* 800DED24 000DBC84 41 82 00 BC */ beq lbl_800DEDE0
/* 800DED28 000DBC88 81 83 00 00 */ lwz r12, 0(r3)
/* 800DED2C 000DBC8C 38 80 00 00 */ li r4, 0
/* 800DED30 000DBC90 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 800DED34 000DBC94 7D 89 03 A6 */ mtctr r12
/* 800DED38 000DBC98 4E 80 04 21 */ bctrl
/* 800DED3C 000DBC9C 48 00 00 A0 */ b lbl_800DEDDC
/* 800DED40 000DBCA0 48 00 00 A0 */ b lbl_800DEDE0
lbl_800DED44:
/* 800DED44 000DBCA4 3C 60 80 3D */ lis r3, lbl_803CE530@ha
/* 800DED48 000DBCA8 3B 80 00 00 */ li r28, 0
/* 800DED4C 000DBCAC 38 83 E5 30 */ addi r4, r3, lbl_803CE530@l
/* 800DED50 000DBCB0 38 A0 00 00 */ li r5, 0
/* 800DED54 000DBCB4 38 60 03 40 */ li r3, 0x340
/* 800DED58 000DBCB8 48 23 6B 15 */ bl __nw__FUlPCcPCc
/* 800DED5C 000DBCBC 7C 7F 1B 79 */ or. r31, r3, r3
/* 800DED60 000DBCC0 41 82 00 2C */ beq lbl_800DED8C
/* 800DED64 000DBCC4 38 61 00 08 */ addi r3, r1, 8
/* 800DED68 000DBCC8 38 9D 02 1C */ addi r4, r29, 0x21c
/* 800DED6C 000DBCCC 48 26 21 3D */ bl __ct__6CTokenFRC6CToken
/* 800DED70 000DBCD0 7F E3 FB 78 */ mr r3, r31
/* 800DED74 000DBCD4 38 81 00 08 */ addi r4, r1, 8
/* 800DED78 000DBCD8 3B 80 00 01 */ li r28, 1
/* 800DED7C 000DBCDC 38 A0 00 00 */ li r5, 0
/* 800DED80 000DBCE0 38 C0 00 01 */ li r6, 1
/* 800DED84 000DBCE4 48 24 06 5D */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 800DED88 000DBCE8 7C 7F 1B 78 */ mr r31, r3
lbl_800DED8C:
/* 800DED8C 000DBCEC 80 7D 02 28 */ lwz r3, 0x228(r29)
/* 800DED90 000DBCF0 28 03 00 00 */ cmplwi r3, 0
/* 800DED94 000DBCF4 41 82 00 18 */ beq lbl_800DEDAC
/* 800DED98 000DBCF8 81 83 00 00 */ lwz r12, 0(r3)
/* 800DED9C 000DBCFC 38 80 00 01 */ li r4, 1
/* 800DEDA0 000DBD00 81 8C 00 08 */ lwz r12, 8(r12)
/* 800DEDA4 000DBD04 7D 89 03 A6 */ mtctr r12
/* 800DEDA8 000DBD08 4E 80 04 21 */ bctrl
lbl_800DEDAC:
/* 800DEDAC 000DBD0C 7F 80 07 75 */ extsb. r0, r28
/* 800DEDB0 000DBD10 93 FD 02 28 */ stw r31, 0x228(r29)
/* 800DEDB4 000DBD14 41 82 00 10 */ beq lbl_800DEDC4
/* 800DEDB8 000DBD18 38 61 00 08 */ addi r3, r1, 8
/* 800DEDBC 000DBD1C 38 80 00 00 */ li r4, 0
/* 800DEDC0 000DBD20 48 26 20 81 */ bl __dt__6CTokenFv
lbl_800DEDC4:
/* 800DEDC4 000DBD24 80 7D 02 28 */ lwz r3, 0x228(r29)
/* 800DEDC8 000DBD28 38 9D 00 04 */ addi r4, r29, 4
/* 800DEDCC 000DBD2C 81 83 00 00 */ lwz r12, 0(r3)
/* 800DEDD0 000DBD30 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 800DEDD4 000DBD34 7D 89 03 A6 */ mtctr r12
/* 800DEDD8 000DBD38 4E 80 04 21 */ bctrl
lbl_800DEDDC:
/* 800DEDDC 000DBD3C 93 DD 01 CC */ stw r30, 0x1cc(r29)
lbl_800DEDE0:
/* 800DEDE0 000DBD40 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800DEDE4 000DBD44 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800DEDE8 000DBD48 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800DEDEC 000DBD4C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800DEDF0 000DBD50 83 81 00 10 */ lwz r28, 0x10(r1)
/* 800DEDF4 000DBD54 7C 08 03 A6 */ mtlr r0
/* 800DEDF8 000DBD58 38 21 00 20 */ addi r1, r1, 0x20
/* 800DEDFC 000DBD5C 4E 80 00 20 */ blr
.global IsLoaded__11CPlasmaBeamCFv
IsLoaded__11CPlasmaBeamCFv:
/* 800DEE00 000DBD60 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800DEE04 000DBD64 7C 08 02 A6 */ mflr r0
/* 800DEE08 000DBD68 90 01 00 14 */ stw r0, 0x14(r1)
/* 800DEE0C 000DBD6C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800DEE10 000DBD70 3B E0 00 00 */ li r31, 0
/* 800DEE14 000DBD74 93 C1 00 08 */ stw r30, 8(r1)
/* 800DEE18 000DBD78 7C 7E 1B 78 */ mr r30, r3
/* 800DEE1C 000DBD7C 48 0D C5 89 */ bl IsLoaded__10CGunWeaponCFv
/* 800DEE20 000DBD80 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800DEE24 000DBD84 41 82 00 14 */ beq lbl_800DEE38
/* 800DEE28 000DBD88 88 1E 02 2C */ lbz r0, 0x22c(r30)
/* 800DEE2C 000DBD8C 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800DEE30 000DBD90 41 82 00 08 */ beq lbl_800DEE38
/* 800DEE34 000DBD94 3B E0 00 01 */ li r31, 1
lbl_800DEE38:
/* 800DEE38 000DBD98 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800DEE3C 000DBD9C 7F E3 FB 78 */ mr r3, r31
/* 800DEE40 000DBDA0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800DEE44 000DBDA4 83 C1 00 08 */ lwz r30, 8(r1)
/* 800DEE48 000DBDA8 7C 08 03 A6 */ mtlr r0
/* 800DEE4C 000DBDAC 38 21 00 10 */ addi r1, r1, 0x10
/* 800DEE50 000DBDB0 4E 80 00 20 */ blr
.global Unload__11CPlasmaBeamFR13CStateManager
Unload__11CPlasmaBeamFR13CStateManager:
/* 800DEE54 000DBDB4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800DEE58 000DBDB8 7C 08 02 A6 */ mflr r0
/* 800DEE5C 000DBDBC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800DEE60 000DBDC0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800DEE64 000DBDC4 7C 9F 23 78 */ mr r31, r4
/* 800DEE68 000DBDC8 93 C1 00 08 */ stw r30, 8(r1)
/* 800DEE6C 000DBDCC 7C 7E 1B 78 */ mr r30, r3
/* 800DEE70 000DBDD0 48 0D C5 41 */ bl Unload__10CGunWeaponFR13CStateManager
/* 800DEE74 000DBDD4 38 00 00 00 */ li r0, 0
/* 800DEE78 000DBDD8 38 7E 02 1C */ addi r3, r30, 0x21c
/* 800DEE7C 000DBDDC 90 1E 02 24 */ stw r0, 0x224(r30)
/* 800DEE80 000DBDE0 48 26 1E C1 */ bl Unlock__6CTokenFv
/* 800DEE84 000DBDE4 7F C3 F3 78 */ mr r3, r30
/* 800DEE88 000DBDE8 7F E4 FB 78 */ mr r4, r31
/* 800DEE8C 000DBDEC 48 00 00 8D */ bl DeleteBeam__11CPlasmaBeamFR13CStateManager
/* 800DEE90 000DBDF0 7F C3 F3 78 */ mr r3, r30
/* 800DEE94 000DBDF4 48 00 05 A1 */ bl ReInitVariables__11CPlasmaBeamFv
/* 800DEE98 000DBDF8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800DEE9C 000DBDFC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800DEEA0 000DBE00 83 C1 00 08 */ lwz r30, 8(r1)
/* 800DEEA4 000DBE04 7C 08 03 A6 */ mtlr r0
/* 800DEEA8 000DBE08 38 21 00 10 */ addi r1, r1, 0x10
/* 800DEEAC 000DBE0C 4E 80 00 20 */ blr
.global Load__11CPlasmaBeamFb
Load__11CPlasmaBeamFb:
/* 800DEEB0 000DBE10 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800DEEB4 000DBE14 7C 08 02 A6 */ mflr r0
/* 800DEEB8 000DBE18 90 01 00 14 */ stw r0, 0x14(r1)
/* 800DEEBC 000DBE1C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800DEEC0 000DBE20 7C 7F 1B 78 */ mr r31, r3
/* 800DEEC4 000DBE24 48 0D C6 11 */ bl Load__10CGunWeaponFR13CStateManagerb
/* 800DEEC8 000DBE28 38 7F 02 1C */ addi r3, r31, 0x21c
/* 800DEECC 000DBE2C 48 26 1E B9 */ bl Lock__6CTokenFv
/* 800DEED0 000DBE30 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800DEED4 000DBE34 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800DEED8 000DBE38 7C 08 03 A6 */ mtlr r0
/* 800DEEDC 000DBE3C 38 21 00 10 */ addi r1, r1, 0x10
/* 800DEEE0 000DBE40 4E 80 00 20 */ blr
.global AcceptScriptMsg__11CPlasmaBeamF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__11CPlasmaBeamF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 800DEEE4 000DBE44 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800DEEE8 000DBE48 7C 08 02 A6 */ mflr r0
/* 800DEEEC 000DBE4C 2C 04 00 22 */ cmpwi r4, 0x22
/* 800DEEF0 000DBE50 90 01 00 14 */ stw r0, 0x14(r1)
/* 800DEEF4 000DBE54 41 82 00 0C */ beq lbl_800DEF00
/* 800DEEF8 000DBE58 40 80 00 10 */ bge lbl_800DEF08
/* 800DEEFC 000DBE5C 48 00 00 0C */ b lbl_800DEF08
lbl_800DEF00:
/* 800DEF00 000DBE60 7C C4 33 78 */ mr r4, r6
/* 800DEF04 000DBE64 48 00 00 15 */ bl DeleteBeam__11CPlasmaBeamFR13CStateManager
lbl_800DEF08:
/* 800DEF08 000DBE68 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800DEF0C 000DBE6C 7C 08 03 A6 */ mtlr r0
/* 800DEF10 000DBE70 38 21 00 10 */ addi r1, r1, 0x10
/* 800DEF14 000DBE74 4E 80 00 20 */ blr
.global DeleteBeam__11CPlasmaBeamFR13CStateManager
DeleteBeam__11CPlasmaBeamFR13CStateManager:
/* 800DEF18 000DBE78 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800DEF1C 000DBE7C 7C 08 02 A6 */ mflr r0
/* 800DEF20 000DBE80 90 01 00 14 */ stw r0, 0x14(r1)
/* 800DEF24 000DBE84 88 03 02 2C */ lbz r0, 0x22c(r3)
/* 800DEF28 000DBE88 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 800DEF2C 000DBE8C 41 82 00 24 */ beq lbl_800DEF50
/* 800DEF30 000DBE90 80 C4 08 4C */ lwz r6, 0x84c(r4)
/* 800DEF34 000DBE94 38 A1 00 0C */ addi r5, r1, 0xc
/* 800DEF38 000DBE98 C0 22 8F 34 */ lfs f1, lbl_805AAC54@sda21(r2)
/* 800DEF3C 000DBE9C 80 06 00 04 */ lwz r0, 4(r6)
/* 800DEF40 000DBEA0 C0 42 8F 38 */ lfs f2, lbl_805AAC58@sda21(r2)
/* 800DEF44 000DBEA4 90 01 00 08 */ stw r0, 8(r1)
/* 800DEF48 000DBEA8 90 01 00 0C */ stw r0, 0xc(r1)
/* 800DEF4C 000DBEAC 4B FF FC 51 */ bl SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff
lbl_800DEF50:
/* 800DEF50 000DBEB0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800DEF54 000DBEB4 7C 08 03 A6 */ mtlr r0
/* 800DEF58 000DBEB8 38 21 00 10 */ addi r1, r1, 0x10
/* 800DEF5C 000DBEBC 4E 80 00 20 */ blr
.global CreateBeam__11CPlasmaBeamFR13CStateManager
CreateBeam__11CPlasmaBeamFR13CStateManager:
/* 800DEF60 000DBEC0 4E 80 00 20 */ blr
.global StopBeam__11CPlasmaBeamFR13CStateManagerb
StopBeam__11CPlasmaBeamFR13CStateManagerb:
/* 800DEF64 000DBEC4 4E 80 00 20 */ blr
.global UpdateBeam__11CPlasmaBeamFfRC12CTransform4fRC9CVector3fR13CStateManager
UpdateBeam__11CPlasmaBeamFfRC12CTransform4fRC9CVector3fR13CStateManager:
/* 800DEF68 000DBEC8 4E 80 00 20 */ blr
.global Fire__11CPlasmaBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
Fire__11CPlasmaBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId:
/* 800DEF6C 000DBECC 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 800DEF70 000DBED0 7C 08 02 A6 */ mflr r0
/* 800DEF74 000DBED4 90 01 00 74 */ stw r0, 0x74(r1)
/* 800DEF78 000DBED8 DB E1 00 60 */ stfd f31, 0x60(r1)
/* 800DEF7C 000DBEDC F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0
/* 800DEF80 000DBEE0 DB C1 00 50 */ stfd f30, 0x50(r1)
/* 800DEF84 000DBEE4 F3 C1 00 58 */ psq_st f30, 88(r1), 0, qr0
/* 800DEF88 000DBEE8 DB A1 00 40 */ stfd f29, 0x40(r1)
/* 800DEF8C 000DBEEC F3 A1 00 48 */ psq_st f29, 72(r1), 0, qr0
/* 800DEF90 000DBEF0 BF 41 00 28 */ stmw r26, 0x28(r1)
/* 800DEF94 000DBEF4 7C BC 2B 79 */ or. r28, r5, r5
/* 800DEF98 000DBEF8 FF A0 08 90 */ fmr f29, f1
/* 800DEF9C 000DBEFC FF C0 10 90 */ fmr f30, f2
/* 800DEFA0 000DBF00 7C 7A 1B 78 */ mr r26, r3
/* 800DEFA4 000DBF04 FF E0 18 90 */ fmr f31, f3
/* 800DEFA8 000DBF08 7C 9B 23 78 */ mr r27, r4
/* 800DEFAC 000DBF0C 7C DD 33 78 */ mr r29, r6
/* 800DEFB0 000DBF10 7C FE 3B 78 */ mr r30, r7
/* 800DEFB4 000DBF14 7D 1F 43 78 */ mr r31, r8
/* 800DEFB8 000DBF18 38 00 00 00 */ li r0, 0
/* 800DEFBC 000DBF1C 40 82 00 6C */ bne lbl_800DF028
/* 800DEFC0 000DBF20 C0 3A 02 30 */ lfs f1, 0x230(r26)
/* 800DEFC4 000DBF24 C0 02 8F 3C */ lfs f0, lbl_805AAC5C@sda21(r2)
/* 800DEFC8 000DBF28 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800DEFCC 000DBF2C 40 80 00 B8 */ bge lbl_800DF084
/* 800DEFD0 000DBF30 38 80 00 00 */ li r4, 0
/* 800DEFD4 000DBF34 38 A0 00 01 */ li r5, 1
/* 800DEFD8 000DBF38 48 0D CF B1 */ bl ActivateCharge__10CGunWeaponFbb
/* 800DEFDC 000DBF3C A0 1F 00 00 */ lhz r0, 0(r31)
/* 800DEFE0 000DBF40 FC 20 E8 90 */ fmr f1, f29
/* 800DEFE4 000DBF44 FC 40 F0 90 */ fmr f2, f30
/* 800DEFE8 000DBF48 7F 43 D3 78 */ mr r3, r26
/* 800DEFEC 000DBF4C FC 60 F8 90 */ fmr f3, f31
/* 800DEFF0 000DBF50 B0 01 00 0C */ sth r0, 0xc(r1)
/* 800DEFF4 000DBF54 7F 64 DB 78 */ mr r4, r27
/* 800DEFF8 000DBF58 7F 85 E3 78 */ mr r5, r28
/* 800DEFFC 000DBF5C 7F A6 EB 78 */ mr r6, r29
/* 800DF000 000DBF60 7F C7 F3 78 */ mr r7, r30
/* 800DF004 000DBF64 39 01 00 0C */ addi r8, r1, 0xc
/* 800DF008 000DBF68 48 0D C8 81 */ bl Fire__10CGunWeaponFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
/* 800DF00C 000DBF6C C0 1A 02 30 */ lfs f0, 0x230(r26)
/* 800DF010 000DBF70 38 00 00 01 */ li r0, 1
/* 800DF014 000DBF74 C0 22 8F 40 */ lfs f1, lbl_805AAC60@sda21(r2)
/* 800DF018 000DBF78 EC 00 08 2A */ fadds f0, f0, f1
/* 800DF01C 000DBF7C D0 1A 02 30 */ stfs f0, 0x230(r26)
/* 800DF020 000DBF80 D0 3A 02 34 */ stfs f1, 0x234(r26)
/* 800DF024 000DBF84 48 00 00 60 */ b lbl_800DF084
lbl_800DF028:
/* 800DF028 000DBF88 A0 1F 00 00 */ lhz r0, 0(r31)
/* 800DF02C 000DBF8C 39 01 00 08 */ addi r8, r1, 8
/* 800DF030 000DBF90 C0 62 8F 38 */ lfs f3, lbl_805AAC58@sda21(r2)
/* 800DF034 000DBF94 B0 01 00 08 */ sth r0, 8(r1)
/* 800DF038 000DBF98 48 0D C8 51 */ bl Fire__10CGunWeaponFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
/* 800DF03C 000DBF9C 3C 80 80 57 */ lis r4, lbl_8056D420@ha
/* 800DF040 000DBFA0 80 7E 08 70 */ lwz r3, 0x870(r30)
/* 800DF044 000DBFA4 38 84 D4 20 */ addi r4, r4, lbl_8056D420@l
/* 800DF048 000DBFA8 38 A0 00 00 */ li r5, 0
/* 800DF04C 000DBFAC 4B F2 B9 D5 */ bl AddCameraShaker__14CCameraManagerFRC16CCameraShakeDatab
/* 800DF050 000DBFB0 C0 02 8F 44 */ lfs f0, lbl_805AAC64@sda21(r2)
/* 800DF054 000DBFB4 7F 43 D3 78 */ mr r3, r26
/* 800DF058 000DBFB8 C0 22 8F 48 */ lfs f1, lbl_805AAC68@sda21(r2)
/* 800DF05C 000DBFBC 7F C4 F3 78 */ mr r4, r30
/* 800DF060 000DBFC0 D0 1A 02 38 */ stfs f0, 0x238(r26)
/* 800DF064 000DBFC4 38 A1 00 18 */ addi r5, r1, 0x18
/* 800DF068 000DBFC8 C0 42 8F 4C */ lfs f2, lbl_805AAC6C@sda21(r2)
/* 800DF06C 000DBFCC 80 DE 08 4C */ lwz r6, 0x84c(r30)
/* 800DF070 000DBFD0 80 06 00 04 */ lwz r0, 4(r6)
/* 800DF074 000DBFD4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800DF078 000DBFD8 90 01 00 18 */ stw r0, 0x18(r1)
/* 800DF07C 000DBFDC 4B FF FB 21 */ bl SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff
/* 800DF080 000DBFE0 38 00 00 01 */ li r0, 1
lbl_800DF084:
/* 800DF084 000DBFE4 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 800DF088 000DBFE8 41 82 00 24 */ beq lbl_800DF0AC
/* 800DF08C 000DBFEC 57 80 08 3C */ slwi r0, r28, 1
/* 800DF090 000DBFF0 38 62 8F 30 */ addi r3, r2, lbl_805AAC50@sda21
/* 800DF094 000DBFF4 7C 83 02 2E */ lhzx r4, r3, r0
/* 800DF098 000DBFF8 7F 65 DB 78 */ mr r5, r27
/* 800DF09C 000DBFFC 38 61 00 10 */ addi r3, r1, 0x10
/* 800DF0A0 000DC000 38 C0 00 00 */ li r6, 0
/* 800DF0A4 000DC004 38 E0 00 4A */ li r7, 0x4a
/* 800DF0A8 000DC008 48 1A BA 51 */ bl play_sfx__12NWeaponTypesFUsbbs
lbl_800DF0AC:
/* 800DF0AC 000DC00C E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0
/* 800DF0B0 000DC010 CB E1 00 60 */ lfd f31, 0x60(r1)
/* 800DF0B4 000DC014 E3 C1 00 58 */ psq_l f30, 88(r1), 0, qr0
/* 800DF0B8 000DC018 CB C1 00 50 */ lfd f30, 0x50(r1)
/* 800DF0BC 000DC01C E3 A1 00 48 */ psq_l f29, 72(r1), 0, qr0
/* 800DF0C0 000DC020 CB A1 00 40 */ lfd f29, 0x40(r1)
/* 800DF0C4 000DC024 BB 41 00 28 */ lmw r26, 0x28(r1)
/* 800DF0C8 000DC028 80 01 00 74 */ lwz r0, 0x74(r1)
/* 800DF0CC 000DC02C 7C 08 03 A6 */ mtlr r0
/* 800DF0D0 000DC030 38 21 00 70 */ addi r1, r1, 0x70
/* 800DF0D4 000DC034 4E 80 00 20 */ blr
.global Update__11CPlasmaBeamFfR13CStateManager
Update__11CPlasmaBeamFfR13CStateManager:
/* 800DF0D8 000DC038 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 800DF0DC 000DC03C 7C 08 02 A6 */ mflr r0
/* 800DF0E0 000DC040 90 01 00 34 */ stw r0, 0x34(r1)
/* 800DF0E4 000DC044 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 800DF0E8 000DC048 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 800DF0EC 000DC04C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800DF0F0 000DC050 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800DF0F4 000DC054 FF E0 08 90 */ fmr f31, f1
/* 800DF0F8 000DC058 7C 7E 1B 78 */ mr r30, r3
/* 800DF0FC 000DC05C 7C 9F 23 78 */ mr r31, r4
/* 800DF100 000DC060 48 0D D3 79 */ bl Update__10CGunWeaponFfR13CStateManager
/* 800DF104 000DC064 C0 1E 02 30 */ lfs f0, 0x230(r30)
/* 800DF108 000DC068 EC 00 F8 28 */ fsubs f0, f0, f31
/* 800DF10C 000DC06C D0 1E 02 30 */ stfs f0, 0x230(r30)
/* 800DF110 000DC070 C0 2D 87 60 */ lfs f1, lbl_805A7320@sda21(r13)
/* 800DF114 000DC074 C0 1E 02 30 */ lfs f0, 0x230(r30)
/* 800DF118 000DC078 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800DF11C 000DC07C 40 80 00 0C */ bge lbl_800DF128
/* 800DF120 000DC080 38 7E 02 30 */ addi r3, r30, 0x230
/* 800DF124 000DC084 48 00 00 08 */ b lbl_800DF12C
lbl_800DF128:
/* 800DF128 000DC088 38 6D 87 60 */ addi r3, r13, lbl_805A7320@sda21
lbl_800DF12C:
/* 800DF12C 000DC08C C0 03 00 00 */ lfs f0, 0(r3)
/* 800DF130 000DC090 D0 1E 02 30 */ stfs f0, 0x230(r30)
/* 800DF134 000DC094 C0 1E 02 38 */ lfs f0, 0x238(r30)
/* 800DF138 000DC098 EC 00 F8 28 */ fsubs f0, f0, f31
/* 800DF13C 000DC09C D0 1E 02 38 */ stfs f0, 0x238(r30)
/* 800DF140 000DC0A0 80 9F 08 4C */ lwz r4, 0x84c(r31)
/* 800DF144 000DC0A4 80 64 04 90 */ lwz r3, 0x490(r4)
/* 800DF148 000DC0A8 88 03 08 34 */ lbz r0, 0x834(r3)
/* 800DF14C 000DC0AC 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800DF150 000DC0B0 41 82 00 0C */ beq lbl_800DF15C
/* 800DF154 000DC0B4 C0 23 03 40 */ lfs f1, 0x340(r3)
/* 800DF158 000DC0B8 48 00 00 08 */ b lbl_800DF160
lbl_800DF15C:
/* 800DF15C 000DC0BC C0 22 8F 50 */ lfs f1, lbl_805AAC70@sda21(r2)
lbl_800DF160:
/* 800DF160 000DC0C0 C0 02 8F 54 */ lfs f0, lbl_805AAC74@sda21(r2)
/* 800DF164 000DC0C4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800DF168 000DC0C8 40 81 00 2C */ ble lbl_800DF194
/* 800DF16C 000DC0CC 80 04 00 04 */ lwz r0, 4(r4)
/* 800DF170 000DC0D0 7F C3 F3 78 */ mr r3, r30
/* 800DF174 000DC0D4 C0 22 8F 58 */ lfs f1, lbl_805AAC78@sda21(r2)
/* 800DF178 000DC0D8 7F E4 FB 78 */ mr r4, r31
/* 800DF17C 000DC0DC 90 01 00 10 */ stw r0, 0x10(r1)
/* 800DF180 000DC0E0 38 A1 00 14 */ addi r5, r1, 0x14
/* 800DF184 000DC0E4 C0 42 8F 5C */ lfs f2, lbl_805AAC7C@sda21(r2)
/* 800DF188 000DC0E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 800DF18C 000DC0EC 4B FF FA 11 */ bl SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff
/* 800DF190 000DC0F0 48 00 00 44 */ b lbl_800DF1D4
lbl_800DF194:
/* 800DF194 000DC0F4 C0 3E 02 38 */ lfs f1, 0x238(r30)
/* 800DF198 000DC0F8 C0 02 8F 50 */ lfs f0, lbl_805AAC70@sda21(r2)
/* 800DF19C 000DC0FC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800DF1A0 000DC100 40 80 00 34 */ bge lbl_800DF1D4
/* 800DF1A4 000DC104 88 1E 02 2C */ lbz r0, 0x22c(r30)
/* 800DF1A8 000DC108 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 800DF1AC 000DC10C 41 82 00 28 */ beq lbl_800DF1D4
/* 800DF1B0 000DC110 80 04 00 04 */ lwz r0, 4(r4)
/* 800DF1B4 000DC114 7F C3 F3 78 */ mr r3, r30
/* 800DF1B8 000DC118 C0 22 8F 34 */ lfs f1, lbl_805AAC54@sda21(r2)
/* 800DF1BC 000DC11C 7F E4 FB 78 */ mr r4, r31
/* 800DF1C0 000DC120 90 01 00 08 */ stw r0, 8(r1)
/* 800DF1C4 000DC124 38 A1 00 0C */ addi r5, r1, 0xc
/* 800DF1C8 000DC128 C0 42 8F 38 */ lfs f2, lbl_805AAC58@sda21(r2)
/* 800DF1CC 000DC12C 90 01 00 0C */ stw r0, 0xc(r1)
/* 800DF1D0 000DC130 4B FF F9 CD */ bl SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff
lbl_800DF1D4:
/* 800DF1D4 000DC134 7F C3 F3 78 */ mr r3, r30
/* 800DF1D8 000DC138 81 9E 00 00 */ lwz r12, 0(r30)
/* 800DF1DC 000DC13C 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 800DF1E0 000DC140 7D 89 03 A6 */ mtctr r12
/* 800DF1E4 000DC144 4E 80 04 21 */ bctrl
/* 800DF1E8 000DC148 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800DF1EC 000DC14C 40 82 00 90 */ bne lbl_800DF27C
/* 800DF1F0 000DC150 7F C3 F3 78 */ mr r3, r30
/* 800DF1F4 000DC154 48 0D C1 B1 */ bl IsLoaded__10CGunWeaponCFv
/* 800DF1F8 000DC158 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800DF1FC 000DC15C 41 82 00 80 */ beq lbl_800DF27C
/* 800DF200 000DC160 88 1E 02 2C */ lbz r0, 0x22c(r30)
/* 800DF204 000DC164 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800DF208 000DC168 40 82 00 74 */ bne lbl_800DF27C
/* 800DF20C 000DC16C 80 1E 02 24 */ lwz r0, 0x224(r30)
/* 800DF210 000DC170 28 00 00 00 */ cmplwi r0, 0
/* 800DF214 000DC174 41 82 00 0C */ beq lbl_800DF220
/* 800DF218 000DC178 38 60 00 01 */ li r3, 1
/* 800DF21C 000DC17C 48 00 00 3C */ b lbl_800DF258
lbl_800DF220:
/* 800DF220 000DC180 88 1E 02 20 */ lbz r0, 0x220(r30)
/* 800DF224 000DC184 28 00 00 00 */ cmplwi r0, 0
/* 800DF228 000DC188 41 82 00 2C */ beq lbl_800DF254
/* 800DF22C 000DC18C 80 7E 02 1C */ lwz r3, 0x21c(r30)
/* 800DF230 000DC190 80 03 00 10 */ lwz r0, 0x10(r3)
/* 800DF234 000DC194 28 00 00 00 */ cmplwi r0, 0
/* 800DF238 000DC198 41 82 00 1C */ beq lbl_800DF254
/* 800DF23C 000DC19C 38 7E 02 1C */ addi r3, r30, 0x21c
/* 800DF240 000DC1A0 48 26 1B CD */ bl GetObj__6CTokenFv
/* 800DF244 000DC1A4 80 03 00 04 */ lwz r0, 4(r3)
/* 800DF248 000DC1A8 38 60 00 01 */ li r3, 1
/* 800DF24C 000DC1AC 90 1E 02 24 */ stw r0, 0x224(r30)
/* 800DF250 000DC1B0 48 00 00 08 */ b lbl_800DF258
lbl_800DF254:
/* 800DF254 000DC1B4 38 60 00 00 */ li r3, 0
lbl_800DF258:
/* 800DF258 000DC1B8 88 1E 02 2C */ lbz r0, 0x22c(r30)
/* 800DF25C 000DC1BC 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 800DF260 000DC1C0 98 1E 02 2C */ stb r0, 0x22c(r30)
/* 800DF264 000DC1C4 88 1E 02 2C */ lbz r0, 0x22c(r30)
/* 800DF268 000DC1C8 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800DF26C 000DC1CC 41 82 00 10 */ beq lbl_800DF27C
/* 800DF270 000DC1D0 7F C3 F3 78 */ mr r3, r30
/* 800DF274 000DC1D4 7F E4 FB 78 */ mr r4, r31
/* 800DF278 000DC1D8 4B FF FC E9 */ bl CreateBeam__11CPlasmaBeamFR13CStateManager
lbl_800DF27C:
/* 800DF27C 000DC1DC E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 800DF280 000DC1E0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800DF284 000DC1E4 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 800DF288 000DC1E8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800DF28C 000DC1EC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800DF290 000DC1F0 7C 08 03 A6 */ mtlr r0
/* 800DF294 000DC1F4 38 21 00 30 */ addi r1, r1, 0x30
/* 800DF298 000DC1F8 4E 80 00 20 */ blr
.global UpdateGunFx__11CPlasmaBeamFbfRC13CStateManagerRC12CTransform4f
UpdateGunFx__11CPlasmaBeamFbfRC13CStateManagerRC12CTransform4f:
/* 800DF29C 000DC1FC 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 800DF2A0 000DC200 7C 08 02 A6 */ mflr r0
/* 800DF2A4 000DC204 90 01 00 74 */ stw r0, 0x74(r1)
/* 800DF2A8 000DC208 DB E1 00 60 */ stfd f31, 0x60(r1)
/* 800DF2AC 000DC20C F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0
/* 800DF2B0 000DC210 BF 61 00 4C */ stmw r27, 0x4c(r1)
/* 800DF2B4 000DC214 7C 7B 1B 78 */ mr r27, r3
/* 800DF2B8 000DC218 FF E0 08 90 */ fmr f31, f1
/* 800DF2BC 000DC21C 80 63 02 28 */ lwz r3, 0x228(r3)
/* 800DF2C0 000DC220 7C 9C 23 78 */ mr r28, r4
/* 800DF2C4 000DC224 7C BD 2B 78 */ mr r29, r5
/* 800DF2C8 000DC228 7C DE 33 78 */ mr r30, r6
/* 800DF2CC 000DC22C 28 03 00 00 */ cmplwi r3, 0
/* 800DF2D0 000DC230 41 82 00 A0 */ beq lbl_800DF370
/* 800DF2D4 000DC234 80 1B 01 CC */ lwz r0, 0x1cc(r27)
/* 800DF2D8 000DC238 2C 00 00 00 */ cmpwi r0, 0
/* 800DF2DC 000DC23C 41 82 00 94 */ beq lbl_800DF370
/* 800DF2E0 000DC240 81 83 00 00 */ lwz r12, 0(r3)
/* 800DF2E4 000DC244 81 8C 00 58 */ lwz r12, 0x58(r12)
/* 800DF2E8 000DC248 7D 89 03 A6 */ mtctr r12
/* 800DF2EC 000DC24C 4E 80 04 21 */ bctrl
/* 800DF2F0 000DC250 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800DF2F4 000DC254 41 82 00 0C */ beq lbl_800DF300
/* 800DF2F8 000DC258 38 00 00 00 */ li r0, 0
/* 800DF2FC 000DC25C 90 1B 01 CC */ stw r0, 0x1cc(r27)
lbl_800DF300:
/* 800DF300 000DC260 C0 5E 00 2C */ lfs f2, 0x2c(r30)
/* 800DF304 000DC264 38 81 00 08 */ addi r4, r1, 8
/* 800DF308 000DC268 C0 3E 00 1C */ lfs f1, 0x1c(r30)
/* 800DF30C 000DC26C C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 800DF310 000DC270 D0 21 00 0C */ stfs f1, 0xc(r1)
/* 800DF314 000DC274 D0 01 00 08 */ stfs f0, 8(r1)
/* 800DF318 000DC278 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 800DF31C 000DC27C 80 7B 02 28 */ lwz r3, 0x228(r27)
/* 800DF320 000DC280 81 83 00 00 */ lwz r12, 0(r3)
/* 800DF324 000DC284 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 800DF328 000DC288 7D 89 03 A6 */ mtctr r12
/* 800DF32C 000DC28C 4E 80 04 21 */ bctrl
/* 800DF330 000DC290 83 FB 02 28 */ lwz r31, 0x228(r27)
/* 800DF334 000DC294 7F C4 F3 78 */ mr r4, r30
/* 800DF338 000DC298 38 61 00 14 */ addi r3, r1, 0x14
/* 800DF33C 000DC29C 48 23 39 05 */ bl GetRotation__12CTransform4fCFv
/* 800DF340 000DC2A0 7F E3 FB 78 */ mr r3, r31
/* 800DF344 000DC2A4 38 81 00 14 */ addi r4, r1, 0x14
/* 800DF348 000DC2A8 81 9F 00 00 */ lwz r12, 0(r31)
/* 800DF34C 000DC2AC 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 800DF350 000DC2B0 7D 89 03 A6 */ mtctr r12
/* 800DF354 000DC2B4 4E 80 04 21 */ bctrl
/* 800DF358 000DC2B8 80 7B 02 28 */ lwz r3, 0x228(r27)
/* 800DF35C 000DC2BC FC 20 F8 90 */ fmr f1, f31
/* 800DF360 000DC2C0 81 83 00 00 */ lwz r12, 0(r3)
/* 800DF364 000DC2C4 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 800DF368 000DC2C8 7D 89 03 A6 */ mtctr r12
/* 800DF36C 000DC2CC 4E 80 04 21 */ bctrl
lbl_800DF370:
/* 800DF370 000DC2D0 FC 20 F8 90 */ fmr f1, f31
/* 800DF374 000DC2D4 7F 63 DB 78 */ mr r3, r27
/* 800DF378 000DC2D8 7F 84 E3 78 */ mr r4, r28
/* 800DF37C 000DC2DC 7F A5 EB 78 */ mr r5, r29
/* 800DF380 000DC2E0 7F C6 F3 78 */ mr r6, r30
/* 800DF384 000DC2E4 48 0D CF 59 */ bl UpdateGunFx__10CGunWeaponFbfRC13CStateManagerRC12CTransform4f
/* 800DF388 000DC2E8 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0
/* 800DF38C 000DC2EC CB E1 00 60 */ lfd f31, 0x60(r1)
/* 800DF390 000DC2F0 BB 61 00 4C */ lmw r27, 0x4c(r1)
/* 800DF394 000DC2F4 80 01 00 74 */ lwz r0, 0x74(r1)
/* 800DF398 000DC2F8 7C 08 03 A6 */ mtlr r0
/* 800DF39C 000DC2FC 38 21 00 70 */ addi r1, r1, 0x70
/* 800DF3A0 000DC300 4E 80 00 20 */ blr
.global PostRenderGunFx__11CPlasmaBeamFRC13CStateManagerRC12CTransform4f
PostRenderGunFx__11CPlasmaBeamFRC13CStateManagerRC12CTransform4f:
/* 800DF3A4 000DC304 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800DF3A8 000DC308 7C 08 02 A6 */ mflr r0
/* 800DF3AC 000DC30C 90 01 00 24 */ stw r0, 0x24(r1)
/* 800DF3B0 000DC310 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800DF3B4 000DC314 7C BF 2B 78 */ mr r31, r5
/* 800DF3B8 000DC318 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800DF3BC 000DC31C 7C 9E 23 78 */ mr r30, r4
/* 800DF3C0 000DC320 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800DF3C4 000DC324 7C 7D 1B 78 */ mr r29, r3
/* 800DF3C8 000DC328 80 63 02 28 */ lwz r3, 0x228(r3)
/* 800DF3CC 000DC32C 28 03 00 00 */ cmplwi r3, 0
/* 800DF3D0 000DC330 41 82 00 20 */ beq lbl_800DF3F0
/* 800DF3D4 000DC334 80 1D 01 CC */ lwz r0, 0x1cc(r29)
/* 800DF3D8 000DC338 2C 00 00 00 */ cmpwi r0, 0
/* 800DF3DC 000DC33C 41 82 00 14 */ beq lbl_800DF3F0
/* 800DF3E0 000DC340 81 83 00 00 */ lwz r12, 0(r3)
/* 800DF3E4 000DC344 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 800DF3E8 000DC348 7D 89 03 A6 */ mtctr r12
/* 800DF3EC 000DC34C 4E 80 04 21 */ bctrl
lbl_800DF3F0:
/* 800DF3F0 000DC350 7F A3 EB 78 */ mr r3, r29
/* 800DF3F4 000DC354 7F C4 F3 78 */ mr r4, r30
/* 800DF3F8 000DC358 7F E5 FB 78 */ mr r5, r31
/* 800DF3FC 000DC35C 48 0D D0 29 */ bl PostRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f
/* 800DF400 000DC360 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800DF404 000DC364 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800DF408 000DC368 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800DF40C 000DC36C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800DF410 000DC370 7C 08 03 A6 */ mtlr r0
/* 800DF414 000DC374 38 21 00 20 */ addi r1, r1, 0x20
/* 800DF418 000DC378 4E 80 00 20 */ blr
.global IsFiring__11CPlasmaBeamCFRC13CStateManager
IsFiring__11CPlasmaBeamCFRC13CStateManager:
/* 800DF41C 000DC37C C0 23 02 34 */ lfs f1, 0x234(r3)
/* 800DF420 000DC380 C0 02 8F 50 */ lfs f0, lbl_805AAC70@sda21(r2)
/* 800DF424 000DC384 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800DF428 000DC388 7C 00 00 26 */ mfcr r0
/* 800DF42C 000DC38C 54 03 17 FE */ rlwinm r3, r0, 2, 0x1f, 0x1f
/* 800DF430 000DC390 4E 80 00 20 */ blr
.global ReInitVariables__11CPlasmaBeamFv
ReInitVariables__11CPlasmaBeamFv:
/* 800DF434 000DC394 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800DF438 000DC398 7C 08 02 A6 */ mflr r0
/* 800DF43C 000DC39C 90 01 00 14 */ stw r0, 0x14(r1)
/* 800DF440 000DC3A0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800DF444 000DC3A4 7C 7F 1B 78 */ mr r31, r3
/* 800DF448 000DC3A8 80 63 02 28 */ lwz r3, 0x228(r3)
/* 800DF44C 000DC3AC 28 03 00 00 */ cmplwi r3, 0
/* 800DF450 000DC3B0 41 82 00 18 */ beq lbl_800DF468
/* 800DF454 000DC3B4 81 83 00 00 */ lwz r12, 0(r3)
/* 800DF458 000DC3B8 38 80 00 01 */ li r4, 1
/* 800DF45C 000DC3BC 81 8C 00 08 */ lwz r12, 8(r12)
/* 800DF460 000DC3C0 7D 89 03 A6 */ mtctr r12
/* 800DF464 000DC3C4 4E 80 04 21 */ bctrl
lbl_800DF468:
/* 800DF468 000DC3C8 38 60 00 00 */ li r3, 0
/* 800DF46C 000DC3CC 90 7F 02 28 */ stw r3, 0x228(r31)
/* 800DF470 000DC3D0 88 1F 02 2C */ lbz r0, 0x22c(r31)
/* 800DF474 000DC3D4 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 800DF478 000DC3D8 98 1F 02 2C */ stb r0, 0x22c(r31)
/* 800DF47C 000DC3DC 90 7F 01 CC */ stw r3, 0x1cc(r31)
/* 800DF480 000DC3E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800DF484 000DC3E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800DF488 000DC3E8 7C 08 03 A6 */ mtlr r0
/* 800DF48C 000DC3EC 38 21 00 10 */ addi r1, r1, 0x10
.global sub_800df490
sub_800df490:
/* 800DF490 000DC3F0 4E 80 00 20 */ blr
.global __dt__11CPlasmaBeamFv
__dt__11CPlasmaBeamFv:
/* 800DF494 000DC3F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800DF498 000DC3F8 7C 08 02 A6 */ mflr r0
/* 800DF49C 000DC3FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800DF4A0 000DC400 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800DF4A4 000DC404 7C 9F 23 78 */ mr r31, r4
/* 800DF4A8 000DC408 93 C1 00 08 */ stw r30, 8(r1)
/* 800DF4AC 000DC40C 7C 7E 1B 79 */ or. r30, r3, r3
/* 800DF4B0 000DC410 41 82 00 70 */ beq lbl_800DF520
/* 800DF4B4 000DC414 3C 60 80 3E */ lis r3, lbl_803DF710@ha
/* 800DF4B8 000DC418 34 1E 02 28 */ addic. r0, r30, 0x228
/* 800DF4BC 000DC41C 38 03 F7 10 */ addi r0, r3, lbl_803DF710@l
/* 800DF4C0 000DC420 90 1E 00 00 */ stw r0, 0(r30)
/* 800DF4C4 000DC424 41 82 00 24 */ beq lbl_800DF4E8
/* 800DF4C8 000DC428 80 7E 02 28 */ lwz r3, 0x228(r30)
/* 800DF4CC 000DC42C 28 03 00 00 */ cmplwi r3, 0
/* 800DF4D0 000DC430 41 82 00 18 */ beq lbl_800DF4E8
/* 800DF4D4 000DC434 81 83 00 00 */ lwz r12, 0(r3)
/* 800DF4D8 000DC438 38 80 00 01 */ li r4, 1
/* 800DF4DC 000DC43C 81 8C 00 08 */ lwz r12, 8(r12)
/* 800DF4E0 000DC440 7D 89 03 A6 */ mtctr r12
/* 800DF4E4 000DC444 4E 80 04 21 */ bctrl
lbl_800DF4E8:
/* 800DF4E8 000DC448 34 1E 02 1C */ addic. r0, r30, 0x21c
/* 800DF4EC 000DC44C 41 82 00 18 */ beq lbl_800DF504
/* 800DF4F0 000DC450 34 1E 02 1C */ addic. r0, r30, 0x21c
/* 800DF4F4 000DC454 41 82 00 10 */ beq lbl_800DF504
/* 800DF4F8 000DC458 38 7E 02 1C */ addi r3, r30, 0x21c
/* 800DF4FC 000DC45C 38 80 00 00 */ li r4, 0
/* 800DF500 000DC460 48 26 19 41 */ bl __dt__6CTokenFv
lbl_800DF504:
/* 800DF504 000DC464 7F C3 F3 78 */ mr r3, r30
/* 800DF508 000DC468 38 80 00 00 */ li r4, 0
/* 800DF50C 000DC46C 48 0D D7 B5 */ bl __dt__10CGunWeaponFv
/* 800DF510 000DC470 7F E0 07 35 */ extsh. r0, r31
/* 800DF514 000DC474 40 81 00 0C */ ble lbl_800DF520
/* 800DF518 000DC478 7F C3 F3 78 */ mr r3, r30
/* 800DF51C 000DC47C 48 23 64 15 */ bl Free__7CMemoryFPCv
lbl_800DF520:
/* 800DF520 000DC480 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800DF524 000DC484 7F C3 F3 78 */ mr r3, r30
/* 800DF528 000DC488 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800DF52C 000DC48C 83 C1 00 08 */ lwz r30, 8(r1)
/* 800DF530 000DC490 7C 08 03 A6 */ mtlr r0
/* 800DF534 000DC494 38 21 00 10 */ addi r1, r1, 0x10
/* 800DF538 000DC498 4E 80 00 20 */ blr
.global __ct__11CPlasmaBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
__ct__11CPlasmaBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f:
/* 800DF53C 000DC49C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800DF540 000DC4A0 7C 08 02 A6 */ mflr r0
/* 800DF544 000DC4A4 90 01 00 24 */ stw r0, 0x24(r1)
/* 800DF548 000DC4A8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800DF54C 000DC4AC 7C 7F 1B 78 */ mr r31, r3
/* 800DF550 000DC4B0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800DF554 000DC4B4 A0 06 00 00 */ lhz r0, 0(r6)
/* 800DF558 000DC4B8 38 C1 00 08 */ addi r6, r1, 8
/* 800DF55C 000DC4BC B0 01 00 08 */ sth r0, 8(r1)
/* 800DF560 000DC4C0 48 0D DC 51 */ bl __ct__10CGunWeaponFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
/* 800DF564 000DC4C4 3C 60 80 3E */ lis r3, lbl_803DF710@ha
/* 800DF568 000DC4C8 3C 80 80 3D */ lis r4, lbl_803CE530@ha
/* 800DF56C 000DC4CC 38 03 F7 10 */ addi r0, r3, lbl_803DF710@l
/* 800DF570 000DC4D0 38 61 00 0C */ addi r3, r1, 0xc
/* 800DF574 000DC4D4 90 1F 00 00 */ stw r0, 0(r31)
/* 800DF578 000DC4D8 38 84 E5 30 */ addi r4, r4, lbl_803CE530@l
/* 800DF57C 000DC4DC 38 A4 00 07 */ addi r5, r4, 7
/* 800DF580 000DC4E0 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 800DF584 000DC4E4 81 84 00 00 */ lwz r12, 0(r4)
/* 800DF588 000DC4E8 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 800DF58C 000DC4EC 7D 89 03 A6 */ mtctr r12
/* 800DF590 000DC4F0 4E 80 04 21 */ bctrl
/* 800DF594 000DC4F4 3B DF 02 1C */ addi r30, r31, 0x21c
/* 800DF598 000DC4F8 38 81 00 0C */ addi r4, r1, 0xc
/* 800DF59C 000DC4FC 7F C3 F3 78 */ mr r3, r30
/* 800DF5A0 000DC500 48 26 19 09 */ bl __ct__6CTokenFRC6CToken
/* 800DF5A4 000DC504 38 00 00 00 */ li r0, 0
/* 800DF5A8 000DC508 38 61 00 0C */ addi r3, r1, 0xc
/* 800DF5AC 000DC50C 90 1E 00 08 */ stw r0, 8(r30)
/* 800DF5B0 000DC510 38 80 FF FF */ li r4, -1
/* 800DF5B4 000DC514 48 26 18 8D */ bl __dt__6CTokenFv
/* 800DF5B8 000DC518 38 80 00 00 */ li r4, 0
/* 800DF5BC 000DC51C C0 02 8F 50 */ lfs f0, lbl_805AAC70@sda21(r2)
/* 800DF5C0 000DC520 90 9F 02 28 */ stw r4, 0x228(r31)
/* 800DF5C4 000DC524 7F E3 FB 78 */ mr r3, r31
/* 800DF5C8 000DC528 88 1F 02 2C */ lbz r0, 0x22c(r31)
/* 800DF5CC 000DC52C 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 800DF5D0 000DC530 98 1F 02 2C */ stb r0, 0x22c(r31)
/* 800DF5D4 000DC534 88 1F 02 2C */ lbz r0, 0x22c(r31)
/* 800DF5D8 000DC538 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 800DF5DC 000DC53C 98 1F 02 2C */ stb r0, 0x22c(r31)
/* 800DF5E0 000DC540 D0 1F 02 30 */ stfs f0, 0x230(r31)
/* 800DF5E4 000DC544 D0 1F 02 34 */ stfs f0, 0x234(r31)
/* 800DF5E8 000DC548 D0 1F 02 38 */ stfs f0, 0x238(r31)
/* 800DF5EC 000DC54C 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13)
/* 800DF5F0 000DC550 90 1F 02 3C */ stw r0, 0x23c(r31)
/* 800DF5F4 000DC554 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800DF5F8 000DC558 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800DF5FC 000DC55C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800DF600 000DC560 7C 08 03 A6 */ mtlr r0
/* 800DF604 000DC564 38 21 00 20 */ addi r1, r1, 0x20
/* 800DF608 000DC568 4E 80 00 20 */ blr
.global __sinit_CPlasmaBeam_cpp
__sinit_CPlasmaBeam_cpp:
/* 800DF60C 000DC56C 94 21 FF 20 */ stwu r1, -0xe0(r1)
/* 800DF610 000DC570 7C 08 02 A6 */ mflr r0
/* 800DF614 000DC574 C0 22 8F 60 */ lfs f1, lbl_805AAC80@sda21(r2)
/* 800DF618 000DC578 90 01 00 E4 */ stw r0, 0xe4(r1)
/* 800DF61C 000DC57C 38 61 00 08 */ addi r3, r1, 8
/* 800DF620 000DC580 C0 42 8F 64 */ lfs f2, lbl_805AAC84@sda21(r2)
/* 800DF624 000DC584 48 07 E2 0D */ bl __ct__16CCameraShakeDataFff
/* 800DF628 000DC588 3C 60 80 57 */ lis r3, lbl_8056D420@ha
/* 800DF62C 000DC58C 38 81 00 08 */ addi r4, r1, 8
/* 800DF630 000DC590 38 63 D4 20 */ addi r3, r3, lbl_8056D420@l
/* 800DF634 000DC594 4B F2 B7 75 */ bl __ct__16CCameraShakeDataFRC16CCameraShakeData
/* 800DF638 000DC598 3C 80 80 01 */ lis r4, sub_8000ad2c@ha
/* 800DF63C 000DC59C 3C A0 80 47 */ lis r5, lbl_8046C488@ha
/* 800DF640 000DC5A0 38 84 AD 2C */ addi r4, r4, sub_8000ad2c@l
/* 800DF644 000DC5A4 38 A5 C4 88 */ addi r5, r5, lbl_8046C488@l
/* 800DF648 000DC5A8 48 2A A0 45 */ bl __register_global_object
/* 800DF64C 000DC5AC 34 81 00 88 */ addic. r4, r1, 0x88
/* 800DF650 000DC5B0 41 82 00 10 */ beq lbl_800DF660
/* 800DF654 000DC5B4 3C 60 80 3E */ lis r3, lbl_803D8EA8@ha
/* 800DF658 000DC5B8 38 03 8E A8 */ addi r0, r3, lbl_803D8EA8@l
/* 800DF65C 000DC5BC 90 04 00 00 */ stw r0, 0(r4)
lbl_800DF660:
/* 800DF660 000DC5C0 34 81 00 4C */ addic. r4, r1, 0x4c
/* 800DF664 000DC5C4 41 82 00 10 */ beq lbl_800DF674
/* 800DF668 000DC5C8 3C 60 80 3E */ lis r3, lbl_803D8EA8@ha
/* 800DF66C 000DC5CC 38 03 8E A8 */ addi r0, r3, lbl_803D8EA8@l
/* 800DF670 000DC5D0 90 04 00 00 */ stw r0, 0(r4)
lbl_800DF674:
/* 800DF674 000DC5D4 34 81 00 10 */ addic. r4, r1, 0x10
/* 800DF678 000DC5D8 41 82 00 10 */ beq lbl_800DF688
/* 800DF67C 000DC5DC 3C 60 80 3E */ lis r3, lbl_803D8EA8@ha
/* 800DF680 000DC5E0 38 03 8E A8 */ addi r0, r3, lbl_803D8EA8@l
/* 800DF684 000DC5E4 90 04 00 00 */ stw r0, 0(r4)
lbl_800DF688:
/* 800DF688 000DC5E8 80 01 00 E4 */ lwz r0, 0xe4(r1)
/* 800DF68C 000DC5EC 7C 08 03 A6 */ mtlr r0
/* 800DF690 000DC5F0 38 21 00 E0 */ addi r1, r1, 0xe0
/* 800DF694 000DC5F4 4E 80 00 20 */ blr