prime/asm/MetroidPrime/Weapons/CPhazonBeam.s

1171 lines
60 KiB
ArmAsm
Raw Normal View History

2022-04-13 08:02:06 +00:00
.include "macros.inc"
2022-04-18 04:19:18 +00:00
.section .data
.global lbl_803E42E8
lbl_803E42E8:
# ROM: 0x3E12E8
.4byte 0
.4byte 0
.4byte __dt__11CPhazonBeamFv
.4byte Reset__10CGunWeaponFR13CStateManager
.4byte PlayAnim__10CGunWeaponFQ212NWeaponTypes12EGunAnimTypeb
.4byte PreRenderGunFx__11CPhazonBeamFRC13CStateManagerRC12CTransform4f
.4byte PostRenderGunFx__11CPhazonBeamFRC13CStateManagerRC12CTransform4f
.4byte UpdateGunFx__11CPhazonBeamFbfRC13CStateManagerRC12CTransform4f
.4byte Fire__11CPhazonBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
.4byte EnableFx__10CGunWeaponFb
.4byte EnableSecondaryFx__10CGunWeaponFQ210CGunWeapon16ESecondaryFxType
.4byte Draw__11CPhazonBeamCFbRC13CStateManagerRC12CTransform4fRC11CModelFlagsPC12CActorLights
.4byte DrawMuzzleFx__11CPhazonBeamCFRC13CStateManager
.4byte Update__11CPhazonBeamFfR13CStateManager
.4byte Load__11CPhazonBeamFb
.4byte Unload__11CPhazonBeamFR13CStateManager
.4byte IsLoaded__11CPhazonBeamCFv
.4byte 0
2022-04-13 08:02:06 +00:00
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global AcceptScriptMsg__11CPhazonBeamF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__11CPhazonBeamF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 8018C228 00189188 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8018C22C 0018918C 7C 08 02 A6 */ mflr r0
/* 8018C230 00189190 2C 04 00 22 */ cmpwi r4, 0x22
/* 8018C234 00189194 90 01 00 14 */ stw r0, 0x14(r1)
/* 8018C238 00189198 41 82 00 08 */ beq lbl_8018C240
/* 8018C23C 0018919C 48 00 00 40 */ b lbl_8018C27C
lbl_8018C240:
/* 8018C240 001891A0 80 66 08 4C */ lwz r3, 0x84c(r6)
/* 8018C244 001891A4 80 0D A3 90 */ lwz r0, lbl_805A8F50@sda21(r13)
/* 8018C248 001891A8 80 A3 00 04 */ lwz r5, 4(r3)
/* 8018C24C 001891AC 7C 05 00 00 */ cmpw r5, r0
/* 8018C250 001891B0 90 A1 00 0C */ stw r5, 0xc(r1)
/* 8018C254 001891B4 41 82 00 28 */ beq lbl_8018C27C
/* 8018C258 001891B8 80 86 08 50 */ lwz r4, 0x850(r6)
/* 8018C25C 001891BC 54 A3 18 38 */ slwi r3, r5, 3
/* 8018C260 001891C0 38 03 00 04 */ addi r0, r3, 4
/* 8018C264 001891C4 90 A1 00 08 */ stw r5, 8(r1)
/* 8018C268 001891C8 80 64 00 20 */ lwz r3, 0x20(r4)
/* 8018C26C 001891CC C0 22 A4 08 */ lfs f1, lbl_805AC128@sda21(r2)
/* 8018C270 001891D0 7C 63 00 2E */ lwzx r3, r3, r0
/* 8018C274 001891D4 C0 42 A4 0C */ lfs f2, lbl_805AC12C@sda21(r2)
/* 8018C278 001891D8 4B ED 1F 5D */ bl SetWeaponWorldLighting__9CGameAreaFff
lbl_8018C27C:
/* 8018C27C 001891DC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8018C280 001891E0 7C 08 03 A6 */ mtlr r0
/* 8018C284 001891E4 38 21 00 10 */ addi r1, r1, 0x10
/* 8018C288 001891E8 4E 80 00 20 */ blr
.global CreateBeam__11CPhazonBeamFR13CStateManager
CreateBeam__11CPhazonBeamFR13CStateManager:
/* 8018C28C 001891EC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8018C290 001891F0 7C 08 02 A6 */ mflr r0
/* 8018C294 001891F4 3C 80 80 3D */ lis r4, lbl_803D08F8@ha
/* 8018C298 001891F8 38 A0 00 00 */ li r5, 0
/* 8018C29C 001891FC 90 01 00 24 */ stw r0, 0x24(r1)
/* 8018C2A0 00189200 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8018C2A4 00189204 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8018C2A8 00189208 7C 7E 1B 78 */ mr r30, r3
/* 8018C2AC 0018920C 38 64 08 F8 */ addi r3, r4, lbl_803D08F8@l
/* 8018C2B0 00189210 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8018C2B4 00189214 38 83 00 2F */ addi r4, r3, 0x2f
/* 8018C2B8 00189218 3B A0 00 00 */ li r29, 0
/* 8018C2BC 0018921C 38 60 03 40 */ li r3, 0x340
/* 8018C2C0 00189220 48 18 95 AD */ bl __nw__FUlPCcPCc
/* 8018C2C4 00189224 7C 7F 1B 79 */ or. r31, r3, r3
/* 8018C2C8 00189228 41 82 00 2C */ beq lbl_8018C2F4
/* 8018C2CC 0018922C 38 61 00 08 */ addi r3, r1, 8
/* 8018C2D0 00189230 38 9E 02 28 */ addi r4, r30, 0x228
/* 8018C2D4 00189234 48 1B 4B D5 */ bl __ct__6CTokenFRC6CToken
/* 8018C2D8 00189238 7F E3 FB 78 */ mr r3, r31
/* 8018C2DC 0018923C 38 81 00 08 */ addi r4, r1, 8
/* 8018C2E0 00189240 3B A0 00 01 */ li r29, 1
/* 8018C2E4 00189244 38 A0 00 00 */ li r5, 0
/* 8018C2E8 00189248 38 C0 00 01 */ li r6, 1
/* 8018C2EC 0018924C 48 19 30 F5 */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 8018C2F0 00189250 7C 7F 1B 78 */ mr r31, r3
lbl_8018C2F4:
/* 8018C2F4 00189254 80 7E 02 34 */ lwz r3, 0x234(r30)
/* 8018C2F8 00189258 28 03 00 00 */ cmplwi r3, 0
/* 8018C2FC 0018925C 41 82 00 18 */ beq lbl_8018C314
/* 8018C300 00189260 81 83 00 00 */ lwz r12, 0(r3)
/* 8018C304 00189264 38 80 00 01 */ li r4, 1
/* 8018C308 00189268 81 8C 00 08 */ lwz r12, 8(r12)
/* 8018C30C 0018926C 7D 89 03 A6 */ mtctr r12
/* 8018C310 00189270 4E 80 04 21 */ bctrl
lbl_8018C314:
/* 8018C314 00189274 7F A0 07 75 */ extsb. r0, r29
/* 8018C318 00189278 93 FE 02 34 */ stw r31, 0x234(r30)
/* 8018C31C 0018927C 41 82 00 10 */ beq lbl_8018C32C
/* 8018C320 00189280 38 61 00 08 */ addi r3, r1, 8
/* 8018C324 00189284 38 80 00 00 */ li r4, 0
/* 8018C328 00189288 48 1B 4B 19 */ bl __dt__6CTokenFv
lbl_8018C32C:
/* 8018C32C 0018928C 80 7E 02 34 */ lwz r3, 0x234(r30)
/* 8018C330 00189290 28 03 00 00 */ cmplwi r3, 0
/* 8018C334 00189294 41 82 00 30 */ beq lbl_8018C364
/* 8018C338 00189298 81 83 00 00 */ lwz r12, 0(r3)
/* 8018C33C 0018929C 38 9E 00 04 */ addi r4, r30, 4
/* 8018C340 001892A0 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8018C344 001892A4 7D 89 03 A6 */ mtctr r12
/* 8018C348 001892A8 4E 80 04 21 */ bctrl
/* 8018C34C 001892AC 80 7E 02 34 */ lwz r3, 0x234(r30)
/* 8018C350 001892B0 38 80 00 00 */ li r4, 0
/* 8018C354 001892B4 81 83 00 00 */ lwz r12, 0(r3)
/* 8018C358 001892B8 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 8018C35C 001892BC 7D 89 03 A6 */ mtctr r12
/* 8018C360 001892C0 4E 80 04 21 */ bctrl
lbl_8018C364:
/* 8018C364 001892C4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8018C368 001892C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8018C36C 001892CC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8018C370 001892D0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8018C374 001892D4 7C 08 03 A6 */ mtlr r0
/* 8018C378 001892D8 38 21 00 20 */ addi r1, r1, 0x20
/* 8018C37C 001892DC 4E 80 00 20 */ blr
.global IsLoaded__11CPhazonBeamCFv
IsLoaded__11CPhazonBeamCFv:
/* 8018C380 001892E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8018C384 001892E4 7C 08 02 A6 */ mflr r0
/* 8018C388 001892E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8018C38C 001892EC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8018C390 001892F0 3B E0 00 00 */ li r31, 0
/* 8018C394 001892F4 93 C1 00 08 */ stw r30, 8(r1)
/* 8018C398 001892F8 7C 7E 1B 78 */ mr r30, r3
/* 8018C39C 001892FC 48 02 F0 09 */ bl IsLoaded__10CGunWeaponCFv
/* 8018C3A0 00189300 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8018C3A4 00189304 41 82 00 14 */ beq lbl_8018C3B8
/* 8018C3A8 00189308 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018C3AC 0018930C 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8018C3B0 00189310 41 82 00 08 */ beq lbl_8018C3B8
/* 8018C3B4 00189314 3B E0 00 01 */ li r31, 1
lbl_8018C3B8:
/* 8018C3B8 00189318 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8018C3BC 0018931C 7F E3 FB 78 */ mr r3, r31
/* 8018C3C0 00189320 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8018C3C4 00189324 83 C1 00 08 */ lwz r30, 8(r1)
/* 8018C3C8 00189328 7C 08 03 A6 */ mtlr r0
/* 8018C3CC 0018932C 38 21 00 10 */ addi r1, r1, 0x10
/* 8018C3D0 00189330 4E 80 00 20 */ blr
.global Unload__11CPhazonBeamFR13CStateManager
Unload__11CPhazonBeamFR13CStateManager:
/* 8018C3D4 00189334 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8018C3D8 00189338 7C 08 02 A6 */ mflr r0
/* 8018C3DC 0018933C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8018C3E0 00189340 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8018C3E4 00189344 7C 7F 1B 78 */ mr r31, r3
/* 8018C3E8 00189348 48 02 EF C9 */ bl Unload__10CGunWeaponFR13CStateManager
/* 8018C3EC 0018934C 38 00 00 00 */ li r0, 0
/* 8018C3F0 00189350 38 7F 02 28 */ addi r3, r31, 0x228
/* 8018C3F4 00189354 90 1F 02 30 */ stw r0, 0x230(r31)
/* 8018C3F8 00189358 48 1B 49 49 */ bl Unlock__6CTokenFv
/* 8018C3FC 0018935C 38 7F 02 1C */ addi r3, r31, 0x21c
/* 8018C400 00189360 48 1B 49 41 */ bl Unlock__6CTokenFv
/* 8018C404 00189364 7F E3 FB 78 */ mr r3, r31
/* 8018C408 00189368 48 00 0A C5 */ bl ReInitVariables__11CPhazonBeamFv
/* 8018C40C 0018936C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8018C410 00189370 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8018C414 00189374 7C 08 03 A6 */ mtlr r0
/* 8018C418 00189378 38 21 00 10 */ addi r1, r1, 0x10
/* 8018C41C 0018937C 4E 80 00 20 */ blr
.global Load__11CPhazonBeamFb
Load__11CPhazonBeamFb:
/* 8018C420 00189380 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8018C424 00189384 7C 08 02 A6 */ mflr r0
/* 8018C428 00189388 90 01 00 24 */ stw r0, 0x24(r1)
/* 8018C42C 0018938C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8018C430 00189390 7C 9F 23 78 */ mr r31, r4
/* 8018C434 00189394 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8018C438 00189398 7C 7E 1B 78 */ mr r30, r3
/* 8018C43C 0018939C 48 02 F0 99 */ bl Load__10CGunWeaponFR13CStateManagerb
/* 8018C440 001893A0 38 7E 02 28 */ addi r3, r30, 0x228
/* 8018C444 001893A4 48 1B 49 41 */ bl Lock__6CTokenFv
/* 8018C448 001893A8 80 7F 09 00 */ lwz r3, 0x900(r31)
/* 8018C44C 001893AC 48 18 60 D5 */ bl Next__9CRandom16Fv
/* 8018C450 001893B0 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018C454 001893B4 50 60 1E F6 */ rlwimi r0, r3, 3, 0x1b, 0x1b
/* 8018C458 001893B8 38 61 00 10 */ addi r3, r1, 0x10
/* 8018C45C 001893BC 98 1E 02 74 */ stb r0, 0x274(r30)
/* 8018C460 001893C0 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018C464 001893C4 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8018C468 001893C8 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 8018C46C 001893CC 41 82 00 0C */ beq lbl_8018C478
/* 8018C470 001893D0 80 A2 A4 00 */ lwz r5, lbl_805AC120@sda21(r2)
/* 8018C474 001893D4 48 00 00 08 */ b lbl_8018C47C
lbl_8018C478:
/* 8018C478 001893D8 80 A2 A3 FC */ lwz r5, lbl_805AC11C@sda21(r2)
lbl_8018C47C:
/* 8018C47C 001893DC 81 84 00 00 */ lwz r12, 0(r4)
/* 8018C480 001893E0 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8018C484 001893E4 7D 89 03 A6 */ mtctr r12
/* 8018C488 001893E8 4E 80 04 21 */ bctrl
/* 8018C48C 001893EC 38 61 00 08 */ addi r3, r1, 8
/* 8018C490 001893F0 38 81 00 10 */ addi r4, r1, 0x10
/* 8018C494 001893F4 48 1B 4A 15 */ bl __ct__6CTokenFRC6CToken
/* 8018C498 001893F8 38 7E 02 1C */ addi r3, r30, 0x21c
/* 8018C49C 001893FC 38 81 00 08 */ addi r4, r1, 8
/* 8018C4A0 00189400 48 1B 48 25 */ bl __as__6CTokenFRC6CToken
/* 8018C4A4 00189404 38 61 00 08 */ addi r3, r1, 8
/* 8018C4A8 00189408 38 80 00 00 */ li r4, 0
/* 8018C4AC 0018940C 48 1B 49 95 */ bl __dt__6CTokenFv
/* 8018C4B0 00189410 38 61 00 10 */ addi r3, r1, 0x10
/* 8018C4B4 00189414 38 80 FF FF */ li r4, -1
/* 8018C4B8 00189418 48 1B 49 89 */ bl __dt__6CTokenFv
/* 8018C4BC 0018941C 38 7E 02 1C */ addi r3, r30, 0x21c
/* 8018C4C0 00189420 48 1B 48 C5 */ bl Lock__6CTokenFv
/* 8018C4C4 00189424 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8018C4C8 00189428 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8018C4CC 0018942C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8018C4D0 00189430 7C 08 03 A6 */ mtlr r0
/* 8018C4D4 00189434 38 21 00 20 */ addi r1, r1, 0x20
/* 8018C4D8 00189438 4E 80 00 20 */ blr
.global StopBeam__11CPhazonBeamFR13CStateManagerb
StopBeam__11CPhazonBeamFR13CStateManagerb:
/* 8018C4DC 0018943C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8018C4E0 00189440 7C 08 02 A6 */ mflr r0
/* 8018C4E4 00189444 90 01 00 14 */ stw r0, 0x14(r1)
/* 8018C4E8 00189448 80 63 02 34 */ lwz r3, 0x234(r3)
/* 8018C4EC 0018944C 28 03 00 00 */ cmplwi r3, 0
/* 8018C4F0 00189450 41 82 00 18 */ beq lbl_8018C508
/* 8018C4F4 00189454 81 83 00 00 */ lwz r12, 0(r3)
/* 8018C4F8 00189458 38 80 00 00 */ li r4, 0
/* 8018C4FC 0018945C 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 8018C500 00189460 7D 89 03 A6 */ mtctr r12
/* 8018C504 00189464 4E 80 04 21 */ bctrl
lbl_8018C508:
/* 8018C508 00189468 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8018C50C 0018946C 7C 08 03 A6 */ mtlr r0
/* 8018C510 00189470 38 21 00 10 */ addi r1, r1, 0x10
/* 8018C514 00189474 4E 80 00 20 */ blr
.global UpdateBeam__11CPhazonBeamFfRC12CTransform4fRC9CVector3fR13CStateManager
UpdateBeam__11CPhazonBeamFfRC12CTransform4fRC9CVector3fR13CStateManager:
/* 8018C518 00189478 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8018C51C 0018947C 7C 08 02 A6 */ mflr r0
/* 8018C520 00189480 90 01 00 24 */ stw r0, 0x24(r1)
/* 8018C524 00189484 DB E1 00 18 */ stfd f31, 0x18(r1)
/* 8018C528 00189488 FF E0 08 90 */ fmr f31, f1
/* 8018C52C 0018948C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8018C530 00189490 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8018C534 00189494 7C DE 33 78 */ mr r30, r6
/* 8018C538 00189498 93 A1 00 0C */ stw r29, 0xc(r1)
/* 8018C53C 0018949C 7C BD 2B 78 */ mr r29, r5
/* 8018C540 001894A0 93 81 00 08 */ stw r28, 8(r1)
/* 8018C544 001894A4 7C 7C 1B 78 */ mr r28, r3
/* 8018C548 001894A8 83 E3 02 34 */ lwz r31, 0x234(r3)
/* 8018C54C 001894AC 28 1F 00 00 */ cmplwi r31, 0
/* 8018C550 001894B0 41 82 00 24 */ beq lbl_8018C574
/* 8018C554 001894B4 7F C4 F3 78 */ mr r4, r30
/* 8018C558 001894B8 48 00 09 5D */ bl IsFiring__11CPhazonBeamCFRC13CStateManager
/* 8018C55C 001894BC 81 9F 00 00 */ lwz r12, 0(r31)
/* 8018C560 001894C0 7C 64 1B 78 */ mr r4, r3
/* 8018C564 001894C4 7F E3 FB 78 */ mr r3, r31
/* 8018C568 001894C8 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 8018C56C 001894CC 7D 89 03 A6 */ mtctr r12
/* 8018C570 001894D0 4E 80 04 21 */ bctrl
lbl_8018C574:
/* 8018C574 001894D4 7F 83 E3 78 */ mr r3, r28
/* 8018C578 001894D8 7F C4 F3 78 */ mr r4, r30
/* 8018C57C 001894DC 48 00 09 39 */ bl IsFiring__11CPhazonBeamCFRC13CStateManager
/* 8018C580 001894E0 FC 20 F8 90 */ fmr f1, f31
/* 8018C584 001894E4 7C 66 1B 78 */ mr r6, r3
/* 8018C588 001894E8 7F 83 E3 78 */ mr r3, r28
/* 8018C58C 001894EC 7F A5 EB 78 */ mr r5, r29
/* 8018C590 001894F0 38 9C 00 04 */ addi r4, r28, 4
/* 8018C594 001894F4 48 02 FC 61 */ bl UpdateMuzzleFx__10CGunWeaponFfRC9CVector3fRC9CVector3fb
/* 8018C598 001894F8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8018C59C 001894FC CB E1 00 18 */ lfd f31, 0x18(r1)
/* 8018C5A0 00189500 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8018C5A4 00189504 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8018C5A8 00189508 83 A1 00 0C */ lwz r29, 0xc(r1)
/* 8018C5AC 0018950C 83 81 00 08 */ lwz r28, 8(r1)
/* 8018C5B0 00189510 7C 08 03 A6 */ mtlr r0
/* 8018C5B4 00189514 38 21 00 20 */ addi r1, r1, 0x20
/* 8018C5B8 00189518 4E 80 00 20 */ blr
.global Update__11CPhazonBeamFfR13CStateManager
Update__11CPhazonBeamFfR13CStateManager:
/* 8018C5BC 0018951C 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 8018C5C0 00189520 7C 08 02 A6 */ mflr r0
/* 8018C5C4 00189524 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 8018C5C8 00189528 DB E1 00 B0 */ stfd f31, 0xb0(r1)
/* 8018C5CC 0018952C F3 E1 00 B8 */ psq_st f31, 184(r1), 0, qr0
/* 8018C5D0 00189530 93 E1 00 AC */ stw r31, 0xac(r1)
/* 8018C5D4 00189534 93 C1 00 A8 */ stw r30, 0xa8(r1)
/* 8018C5D8 00189538 FF E0 08 90 */ fmr f31, f1
/* 8018C5DC 0018953C 7C 7E 1B 78 */ mr r30, r3
/* 8018C5E0 00189540 7C 9F 23 78 */ mr r31, r4
/* 8018C5E4 00189544 48 02 FE 95 */ bl Update__10CGunWeaponFfR13CStateManager
/* 8018C5E8 00189548 C0 1E 02 78 */ lfs f0, 0x278(r30)
/* 8018C5EC 0018954C EC 00 F8 2A */ fadds f0, f0, f31
/* 8018C5F0 00189550 D0 1E 02 78 */ stfs f0, 0x278(r30)
/* 8018C5F4 00189554 80 7F 08 4C */ lwz r3, 0x84c(r31)
/* 8018C5F8 00189558 80 0D A3 90 */ lwz r0, lbl_805A8F50@sda21(r13)
/* 8018C5FC 0018955C 80 A3 00 04 */ lwz r5, 4(r3)
/* 8018C600 00189560 7C 05 00 00 */ cmpw r5, r0
/* 8018C604 00189564 90 A1 00 0C */ stw r5, 0xc(r1)
/* 8018C608 00189568 41 82 00 48 */ beq lbl_8018C650
/* 8018C60C 0018956C 80 9F 08 50 */ lwz r4, 0x850(r31)
/* 8018C610 00189570 54 A3 18 38 */ slwi r3, r5, 3
/* 8018C614 00189574 C0 3E 02 78 */ lfs f1, 0x278(r30)
/* 8018C618 00189578 38 03 00 04 */ addi r0, r3, 4
/* 8018C61C 0018957C C0 02 A4 10 */ lfs f0, lbl_805AC130@sda21(r2)
/* 8018C620 00189580 80 64 00 20 */ lwz r3, 0x20(r4)
/* 8018C624 00189584 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8018C628 00189588 90 A1 00 08 */ stw r5, 8(r1)
/* 8018C62C 0018958C 7C 63 00 2E */ lwzx r3, r3, r0
/* 8018C630 00189590 40 81 00 14 */ ble lbl_8018C644
/* 8018C634 00189594 C0 22 A4 08 */ lfs f1, lbl_805AC128@sda21(r2)
/* 8018C638 00189598 C0 42 A4 0C */ lfs f2, lbl_805AC12C@sda21(r2)
/* 8018C63C 0018959C 4B ED 1B 99 */ bl SetWeaponWorldLighting__9CGameAreaFff
/* 8018C640 001895A0 48 00 00 10 */ b lbl_8018C650
lbl_8018C644:
/* 8018C644 001895A4 C0 22 A4 08 */ lfs f1, lbl_805AC128@sda21(r2)
/* 8018C648 001895A8 C0 42 A4 14 */ lfs f2, lbl_805AC134@sda21(r2)
/* 8018C64C 001895AC 4B ED 1B 89 */ bl SetWeaponWorldLighting__9CGameAreaFff
lbl_8018C650:
/* 8018C650 001895B0 7F C3 F3 78 */ mr r3, r30
/* 8018C654 001895B4 81 9E 00 00 */ lwz r12, 0(r30)
/* 8018C658 001895B8 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 8018C65C 001895BC 7D 89 03 A6 */ mtctr r12
/* 8018C660 001895C0 4E 80 04 21 */ bctrl
/* 8018C664 001895C4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8018C668 001895C8 40 82 01 44 */ bne lbl_8018C7AC
/* 8018C66C 001895CC 7F C3 F3 78 */ mr r3, r30
/* 8018C670 001895D0 48 02 ED 35 */ bl IsLoaded__10CGunWeaponCFv
/* 8018C674 001895D4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8018C678 001895D8 41 82 01 FC */ beq lbl_8018C874
/* 8018C67C 001895DC 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018C680 001895E0 54 00 CF FE */ rlwinm r0, r0, 0x19, 0x1f, 0x1f
/* 8018C684 001895E4 28 00 00 01 */ cmplwi r0, 1
/* 8018C688 001895E8 41 82 01 EC */ beq lbl_8018C874
/* 8018C68C 001895EC 80 1E 02 30 */ lwz r0, 0x230(r30)
/* 8018C690 001895F0 28 00 00 00 */ cmplwi r0, 0
/* 8018C694 001895F4 41 82 00 0C */ beq lbl_8018C6A0
/* 8018C698 001895F8 38 60 00 01 */ li r3, 1
/* 8018C69C 001895FC 48 00 00 3C */ b lbl_8018C6D8
lbl_8018C6A0:
/* 8018C6A0 00189600 88 1E 02 2C */ lbz r0, 0x22c(r30)
/* 8018C6A4 00189604 28 00 00 00 */ cmplwi r0, 0
/* 8018C6A8 00189608 41 82 00 2C */ beq lbl_8018C6D4
/* 8018C6AC 0018960C 80 7E 02 28 */ lwz r3, 0x228(r30)
/* 8018C6B0 00189610 80 03 00 10 */ lwz r0, 0x10(r3)
/* 8018C6B4 00189614 28 00 00 00 */ cmplwi r0, 0
/* 8018C6B8 00189618 41 82 00 1C */ beq lbl_8018C6D4
/* 8018C6BC 0018961C 38 7E 02 28 */ addi r3, r30, 0x228
/* 8018C6C0 00189620 48 1B 47 4D */ bl GetObj__6CTokenFv
/* 8018C6C4 00189624 80 03 00 04 */ lwz r0, 4(r3)
/* 8018C6C8 00189628 38 60 00 01 */ li r3, 1
/* 8018C6CC 0018962C 90 1E 02 30 */ stw r0, 0x230(r30)
/* 8018C6D0 00189630 48 00 00 08 */ b lbl_8018C6D8
lbl_8018C6D4:
/* 8018C6D4 00189634 38 60 00 00 */ li r3, 0
lbl_8018C6D8:
/* 8018C6D8 00189638 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8018C6DC 0018963C 41 82 00 18 */ beq lbl_8018C6F4
/* 8018C6E0 00189640 80 7E 02 1C */ lwz r3, 0x21c(r30)
/* 8018C6E4 00189644 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8018C6E8 00189648 7C 03 00 D0 */ neg r0, r3
/* 8018C6EC 0018964C 7C 00 1B 78 */ or r0, r0, r3
/* 8018C6F0 00189650 54 03 0F FE */ srwi r3, r0, 0x1f
lbl_8018C6F4:
/* 8018C6F4 00189654 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018C6F8 00189658 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8018C6FC 0018965C 98 1E 02 74 */ stb r0, 0x274(r30)
/* 8018C700 00189660 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018C704 00189664 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8018C708 00189668 41 82 01 6C */ beq lbl_8018C874
/* 8018C70C 0018966C 7F C3 F3 78 */ mr r3, r30
/* 8018C710 00189670 7F E4 FB 78 */ mr r4, r31
/* 8018C714 00189674 4B FF FB 79 */ bl CreateBeam__11CPhazonBeamFR13CStateManager
/* 8018C718 00189678 3C 80 80 3D */ lis r4, lbl_803D08F8@ha
/* 8018C71C 0018967C 38 60 00 4C */ li r3, 0x4c
/* 8018C720 00189680 38 84 08 F8 */ addi r4, r4, lbl_803D08F8@l
/* 8018C724 00189684 38 A0 00 00 */ li r5, 0
/* 8018C728 00189688 38 84 00 2F */ addi r4, r4, 0x2f
/* 8018C72C 0018968C 48 18 91 41 */ bl __nw__FUlPCcPCc
/* 8018C730 00189690 7C 7F 1B 79 */ or. r31, r3, r3
/* 8018C734 00189694 41 82 00 4C */ beq lbl_8018C780
/* 8018C738 00189698 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018C73C 0018969C 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 8018C740 001896A0 41 82 00 0C */ beq lbl_8018C74C
/* 8018C744 001896A4 80 62 A4 00 */ lwz r3, lbl_805AC120@sda21(r2)
/* 8018C748 001896A8 48 00 00 08 */ b lbl_8018C750
lbl_8018C74C:
/* 8018C74C 001896AC 80 62 A3 FC */ lwz r3, lbl_805AC11C@sda21(r2)
lbl_8018C750:
/* 8018C750 001896B0 48 0F EC F9 */ bl get_asset_id_from_name__12NWeaponTypesFPCc
/* 8018C754 001896B4 90 61 00 2C */ stw r3, 0x2c(r1)
/* 8018C758 001896B8 7F E3 FB 78 */ mr r3, r31
/* 8018C75C 001896BC 38 81 00 2C */ addi r4, r1, 0x2c
/* 8018C760 001896C0 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8018C764 001896C4 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8018C768 001896C8 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8018C76C 001896CC D0 01 00 34 */ stfs f0, 0x34(r1)
/* 8018C770 001896D0 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8018C774 001896D4 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8018C778 001896D8 4B F8 A5 E5 */ bl __ct__10CModelDataFRC10CStaticRes
/* 8018C77C 001896DC 7C 7F 1B 78 */ mr r31, r3
lbl_8018C780:
/* 8018C780 001896E0 80 7E 02 24 */ lwz r3, 0x224(r30)
/* 8018C784 001896E4 38 80 00 01 */ li r4, 1
/* 8018C788 001896E8 4B F8 A2 C5 */ bl __dt__10CModelDataFv
/* 8018C78C 001896EC 93 FE 02 24 */ stw r31, 0x224(r30)
/* 8018C790 001896F0 38 7E 02 1C */ addi r3, r30, 0x21c
/* 8018C794 001896F4 48 1B 45 AD */ bl Unlock__6CTokenFv
/* 8018C798 001896F8 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018C79C 001896FC 38 60 00 01 */ li r3, 1
/* 8018C7A0 00189700 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8018C7A4 00189704 98 1E 02 74 */ stb r0, 0x274(r30)
/* 8018C7A8 00189708 48 00 00 CC */ b lbl_8018C874
lbl_8018C7AC:
/* 8018C7AC 0018970C 88 7E 02 74 */ lbz r3, 0x274(r30)
/* 8018C7B0 00189710 54 60 D7 FF */ rlwinm. r0, r3, 0x1a, 0x1f, 0x1f
/* 8018C7B4 00189714 41 82 00 6C */ beq lbl_8018C820
/* 8018C7B8 00189718 C0 02 A4 18 */ lfs f0, lbl_805AC138@sda21(r2)
/* 8018C7BC 0018971C C0 3E 02 68 */ lfs f1, 0x268(r30)
/* 8018C7C0 00189720 EC 40 07 F2 */ fmuls f2, f0, f31
/* 8018C7C4 00189724 C0 02 A4 0C */ lfs f0, lbl_805AC12C@sda21(r2)
/* 8018C7C8 00189728 EC 21 10 2A */ fadds f1, f1, f2
/* 8018C7CC 0018972C D0 3E 02 68 */ stfs f1, 0x268(r30)
/* 8018C7D0 00189730 C0 3E 02 68 */ lfs f1, 0x268(r30)
/* 8018C7D4 00189734 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8018C7D8 00189738 40 81 00 08 */ ble lbl_8018C7E0
/* 8018C7DC 0018973C D0 1E 02 68 */ stfs f0, 0x268(r30)
lbl_8018C7E0:
/* 8018C7E0 00189740 C0 3E 02 68 */ lfs f1, 0x268(r30)
/* 8018C7E4 00189744 C0 02 A4 1C */ lfs f0, lbl_805AC13C@sda21(r2)
/* 8018C7E8 00189748 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8018C7EC 0018974C 40 81 00 88 */ ble lbl_8018C874
/* 8018C7F0 00189750 C0 3E 02 6C */ lfs f1, 0x26c(r30)
/* 8018C7F4 00189754 C0 02 A4 20 */ lfs f0, lbl_805AC140@sda21(r2)
/* 8018C7F8 00189758 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8018C7FC 0018975C 40 80 00 10 */ bge lbl_8018C80C
/* 8018C800 00189760 EC 01 10 2A */ fadds f0, f1, f2
/* 8018C804 00189764 D0 1E 02 6C */ stfs f0, 0x26c(r30)
/* 8018C808 00189768 48 00 00 6C */ b lbl_8018C874
lbl_8018C80C:
/* 8018C80C 0018976C 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018C810 00189770 38 60 00 00 */ li r3, 0
/* 8018C814 00189774 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8018C818 00189778 98 1E 02 74 */ stb r0, 0x274(r30)
/* 8018C81C 0018977C 48 00 00 58 */ b lbl_8018C874
lbl_8018C820:
/* 8018C820 00189780 54 60 DF FF */ rlwinm. r0, r3, 0x1b, 0x1f, 0x1f
/* 8018C824 00189784 41 82 00 50 */ beq lbl_8018C874
/* 8018C828 00189788 80 82 A4 04 */ lwz r4, lbl_805AC124@sda21(r2)
/* 8018C82C 0018978C 38 61 00 1C */ addi r3, r1, 0x1c
/* 8018C830 00189790 4B E7 84 89 */ bl string_l__4rstlFPCc
/* 8018C834 00189794 38 61 00 3C */ addi r3, r1, 0x3c
/* 8018C838 00189798 38 9E 00 10 */ addi r4, r30, 0x10
/* 8018C83C 0018979C 38 A1 00 1C */ addi r5, r1, 0x1c
/* 8018C840 001897A0 4B F8 92 2D */ bl "GetLocatorTransform__10CModelDataCFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8018C844 001897A4 38 61 00 6C */ addi r3, r1, 0x6c
/* 8018C848 001897A8 38 81 00 3C */ addi r4, r1, 0x3c
/* 8018C84C 001897AC 48 18 63 29 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8018C850 001897B0 38 61 00 1C */ addi r3, r1, 0x1c
/* 8018C854 001897B4 48 1B 12 8D */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 8018C858 001897B8 C0 41 00 78 */ lfs f2, 0x78(r1)
/* 8018C85C 001897BC C0 21 00 88 */ lfs f1, 0x88(r1)
/* 8018C860 001897C0 C0 01 00 98 */ lfs f0, 0x98(r1)
/* 8018C864 001897C4 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 8018C868 001897C8 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 8018C86C 001897CC D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8018C870 001897D0 D0 3E 02 70 */ stfs f1, 0x270(r30)
lbl_8018C874:
/* 8018C874 001897D4 E3 E1 00 B8 */ psq_l f31, 184(r1), 0, qr0
/* 8018C878 001897D8 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 8018C87C 001897DC CB E1 00 B0 */ lfd f31, 0xb0(r1)
/* 8018C880 001897E0 83 E1 00 AC */ lwz r31, 0xac(r1)
/* 8018C884 001897E4 83 C1 00 A8 */ lwz r30, 0xa8(r1)
/* 8018C888 001897E8 7C 08 03 A6 */ mtlr r0
/* 8018C88C 001897EC 38 21 00 C0 */ addi r1, r1, 0xc0
/* 8018C890 001897F0 4E 80 00 20 */ blr
.global Fire__11CPhazonBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
Fire__11CPhazonBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId:
/* 8018C894 001897F4 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8018C898 001897F8 7C 08 02 A6 */ mflr r0
/* 8018C89C 001897FC 90 01 00 74 */ stw r0, 0x74(r1)
/* 8018C8A0 00189800 DB E1 00 60 */ stfd f31, 0x60(r1)
/* 8018C8A4 00189804 F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0
/* 8018C8A8 00189808 DB C1 00 50 */ stfd f30, 0x50(r1)
/* 8018C8AC 0018980C F3 C1 00 58 */ psq_st f30, 88(r1), 0, qr0
/* 8018C8B0 00189810 DB A1 00 40 */ stfd f29, 0x40(r1)
/* 8018C8B4 00189814 F3 A1 00 48 */ psq_st f29, 72(r1), 0, qr0
/* 8018C8B8 00189818 BE E1 00 1C */ stmw r23, 0x1c(r1)
/* 8018C8BC 0018981C 7C B9 2B 79 */ or. r25, r5, r5
/* 8018C8C0 00189820 FF A0 08 90 */ fmr f29, f1
/* 8018C8C4 00189824 FF C0 10 90 */ fmr f30, f2
/* 8018C8C8 00189828 7C 77 1B 78 */ mr r23, r3
/* 8018C8CC 0018982C FF E0 18 90 */ fmr f31, f3
/* 8018C8D0 00189830 7C 98 23 78 */ mr r24, r4
/* 8018C8D4 00189834 7C DA 33 78 */ mr r26, r6
/* 8018C8D8 00189838 7C FB 3B 78 */ mr r27, r7
/* 8018C8DC 0018983C 7D 1C 43 78 */ mr r28, r8
/* 8018C8E0 00189840 40 82 00 9C */ bne lbl_8018C97C
/* 8018C8E4 00189844 38 80 00 00 */ li r4, 0
/* 8018C8E8 00189848 38 A0 00 00 */ li r5, 0
/* 8018C8EC 0018984C 48 02 F6 9D */ bl ActivateCharge__10CGunWeaponFbb
/* 8018C8F0 00189850 C0 37 02 78 */ lfs f1, 0x278(r23)
/* 8018C8F4 00189854 C0 02 A4 24 */ lfs f0, lbl_805AC144@sda21(r2)
/* 8018C8F8 00189858 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8018C8FC 0018985C 40 81 00 0C */ ble lbl_8018C908
/* 8018C900 00189860 3B E0 00 05 */ li r31, 5
/* 8018C904 00189864 48 00 00 08 */ b lbl_8018C90C
lbl_8018C908:
/* 8018C908 00189868 3B E0 00 02 */ li r31, 2
lbl_8018C90C:
/* 8018C90C 0018986C 3B A0 00 00 */ li r29, 0
/* 8018C910 00189870 3B C0 00 00 */ li r30, 0
/* 8018C914 00189874 48 00 00 50 */ b lbl_8018C964
lbl_8018C918:
/* 8018C918 00189878 80 1B 08 D8 */ lwz r0, 0x8d8(r27)
/* 8018C91C 0018987C 7C 7E 02 14 */ add r3, r30, r0
/* 8018C920 00189880 48 12 27 E9 */ bl SetGlobalSeed__17CProjectileWeaponFUs
/* 8018C924 00189884 A0 1C 00 00 */ lhz r0, 0(r28)
/* 8018C928 00189888 FC 20 E8 90 */ fmr f1, f29
/* 8018C92C 0018988C FC 40 F0 90 */ fmr f2, f30
/* 8018C930 00189890 7E E3 BB 78 */ mr r3, r23
/* 8018C934 00189894 FC 60 F8 90 */ fmr f3, f31
/* 8018C938 00189898 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8018C93C 0018989C 7F 04 C3 78 */ mr r4, r24
/* 8018C940 001898A0 7F 25 CB 78 */ mr r5, r25
/* 8018C944 001898A4 7F 46 D3 78 */ mr r6, r26
/* 8018C948 001898A8 7F 67 DB 78 */ mr r7, r27
/* 8018C94C 001898AC 39 01 00 0C */ addi r8, r1, 0xc
/* 8018C950 001898B0 48 02 EF 39 */ bl Fire__10CGunWeaponFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
/* 8018C954 001898B4 80 7B 08 D8 */ lwz r3, 0x8d8(r27)
/* 8018C958 001898B8 48 12 27 B1 */ bl SetGlobalSeed__17CProjectileWeaponFUs
/* 8018C95C 001898BC 3B DE 03 E8 */ addi r30, r30, 0x3e8
/* 8018C960 001898C0 3B BD 00 01 */ addi r29, r29, 1
lbl_8018C964:
/* 8018C964 001898C4 7C 1D F8 00 */ cmpw r29, r31
/* 8018C968 001898C8 41 80 FF B0 */ blt lbl_8018C918
/* 8018C96C 001898CC C0 02 A4 28 */ lfs f0, lbl_805AC148@sda21(r2)
/* 8018C970 001898D0 38 00 00 01 */ li r0, 1
/* 8018C974 001898D4 D0 17 02 78 */ stfs f0, 0x278(r23)
/* 8018C978 001898D8 48 00 00 18 */ b lbl_8018C990
lbl_8018C97C:
/* 8018C97C 001898DC A0 1C 00 00 */ lhz r0, 0(r28)
/* 8018C980 001898E0 39 01 00 08 */ addi r8, r1, 8
/* 8018C984 001898E4 B0 01 00 08 */ sth r0, 8(r1)
/* 8018C988 001898E8 48 02 EF 01 */ bl Fire__10CGunWeaponFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
/* 8018C98C 001898EC 38 00 00 01 */ li r0, 1
lbl_8018C990:
/* 8018C990 001898F0 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 8018C994 001898F4 41 82 00 24 */ beq lbl_8018C9B8
/* 8018C998 001898F8 57 20 08 3C */ slwi r0, r25, 1
/* 8018C99C 001898FC 38 62 A3 F8 */ addi r3, r2, lbl_805AC118@sda21
/* 8018C9A0 00189900 7C 83 02 2E */ lhzx r4, r3, r0
/* 8018C9A4 00189904 7F 05 C3 78 */ mr r5, r24
/* 8018C9A8 00189908 38 61 00 10 */ addi r3, r1, 0x10
/* 8018C9AC 0018990C 38 C0 00 00 */ li r6, 0
/* 8018C9B0 00189910 38 E0 00 4A */ li r7, 0x4a
/* 8018C9B4 00189914 48 0F E1 45 */ bl play_sfx__12NWeaponTypesFUsbbs
lbl_8018C9B8:
/* 8018C9B8 00189918 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0
/* 8018C9BC 0018991C CB E1 00 60 */ lfd f31, 0x60(r1)
/* 8018C9C0 00189920 E3 C1 00 58 */ psq_l f30, 88(r1), 0, qr0
/* 8018C9C4 00189924 CB C1 00 50 */ lfd f30, 0x50(r1)
/* 8018C9C8 00189928 E3 A1 00 48 */ psq_l f29, 72(r1), 0, qr0
/* 8018C9CC 0018992C CB A1 00 40 */ lfd f29, 0x40(r1)
/* 8018C9D0 00189930 BA E1 00 1C */ lmw r23, 0x1c(r1)
/* 8018C9D4 00189934 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8018C9D8 00189938 7C 08 03 A6 */ mtlr r0
/* 8018C9DC 0018993C 38 21 00 70 */ addi r1, r1, 0x70
/* 8018C9E0 00189940 4E 80 00 20 */ blr
.global Draw__11CPhazonBeamCFbRC13CStateManagerRC12CTransform4fRC11CModelFlagsPC12CActorLights
Draw__11CPhazonBeamCFbRC13CStateManagerRC12CTransform4fRC11CModelFlagsPC12CActorLights:
/* 8018C9E4 00189944 94 21 FD F0 */ stwu r1, -0x210(r1)
/* 8018C9E8 00189948 7C 08 02 A6 */ mflr r0
/* 8018C9EC 0018994C 90 01 02 14 */ stw r0, 0x214(r1)
/* 8018C9F0 00189950 BF 01 01 F0 */ stmw r24, 0x1f0(r1)
/* 8018C9F4 00189954 7C 98 23 78 */ mr r24, r4
/* 8018C9F8 00189958 7C BD 2B 78 */ mr r29, r5
/* 8018C9FC 0018995C 7C 7C 1B 78 */ mr r28, r3
/* 8018CA00 00189960 7C D9 33 78 */ mr r25, r6
/* 8018CA04 00189964 7C FE 3B 78 */ mr r30, r7
/* 8018CA08 00189968 7D 1F 43 78 */ mr r31, r8
/* 8018CA0C 0018996C 80 85 08 B8 */ lwz r4, 0x8b8(r5)
/* 8018CA10 00189970 80 64 00 00 */ lwz r3, 0(r4)
/* 8018CA14 00189974 7F A4 EB 78 */ mr r4, r29
/* 8018CA18 00189978 4B F0 4B 41 */ bl GetActiveVisor__12CPlayerStateCFRC13CStateManager
/* 8018CA1C 0018997C 2C 03 00 00 */ cmpwi r3, 0
/* 8018CA20 00189980 3B 60 00 00 */ li r27, 0
/* 8018CA24 00189984 41 82 00 0C */ beq lbl_8018CA30
/* 8018CA28 00189988 2C 03 00 02 */ cmpwi r3, 2
/* 8018CA2C 0018998C 40 82 00 08 */ bne lbl_8018CA34
lbl_8018CA30:
/* 8018CA30 00189990 3B 60 00 01 */ li r27, 1
lbl_8018CA34:
/* 8018CA34 00189994 57 60 06 3F */ clrlwi. r0, r27, 0x18
/* 8018CA38 00189998 83 4D A0 68 */ lwz r26, gpRender@sda21(r13)
/* 8018CA3C 0018999C 41 82 00 2C */ beq lbl_8018CA68
/* 8018CA40 001899A0 80 CD A8 28 */ lwz r6, lbl_805A93E8@sda21(r13)
/* 8018CA44 001899A4 7F 43 D3 78 */ mr r3, r26
/* 8018CA48 001899A8 38 80 00 01 */ li r4, 1
/* 8018CA4C 001899AC 38 A0 00 01 */ li r5, 1
/* 8018CA50 001899B0 38 E0 00 04 */ li r7, 4
/* 8018CA54 001899B4 39 00 00 00 */ li r8, 0
/* 8018CA58 001899B8 48 12 A8 F5 */ bl CopyTex__13CCubeRendererFibPv8GXTexFmtb
/* 8018CA5C 001899BC 38 60 00 01 */ li r3, 1
/* 8018CA60 001899C0 38 80 00 FF */ li r4, 0xff
/* 8018CA64 001899C4 48 1E F6 7D */ bl GXSetDstAlpha
lbl_8018CA68:
/* 8018CA68 001899C8 7F 83 E3 78 */ mr r3, r28
/* 8018CA6C 001899CC 7F 04 C3 78 */ mr r4, r24
/* 8018CA70 001899D0 7F A5 EB 78 */ mr r5, r29
/* 8018CA74 001899D4 7F 26 CB 78 */ mr r6, r25
/* 8018CA78 001899D8 7F C7 F3 78 */ mr r7, r30
/* 8018CA7C 001899DC 7F E8 FB 78 */ mr r8, r31
/* 8018CA80 001899E0 48 02 F2 89 */ bl Draw__10CGunWeaponCFbRC13CStateManagerRC12CTransform4fRC11CModelFlagsPC12CActorLights
/* 8018CA84 001899E4 57 60 06 3F */ clrlwi. r0, r27, 0x18
/* 8018CA88 001899E8 41 82 00 88 */ beq lbl_8018CB10
/* 8018CA8C 001899EC 38 00 00 00 */ li r0, 0
/* 8018CA90 001899F0 98 01 00 30 */ stb r0, 0x30(r1)
/* 8018CA94 001899F4 48 1B D5 19 */ bl White__6CColorFv
/* 8018CA98 001899F8 C0 7C 02 70 */ lfs f3, 0x270(r28)
/* 8018CA9C 001899FC 7C 7B 1B 78 */ mr r27, r3
/* 8018CAA0 00189A00 C0 22 A4 2C */ lfs f1, lbl_805AC14C@sda21(r2)
/* 8018CAA4 00189A04 38 61 00 08 */ addi r3, r1, 8
/* 8018CAA8 00189A08 C0 42 A4 30 */ lfs f2, lbl_805AC150@sda21(r2)
/* 8018CAAC 00189A0C C0 02 A4 20 */ lfs f0, lbl_805AC140@sda21(r2)
/* 8018CAB0 00189A10 EC 21 00 F2 */ fmuls f1, f1, f3
/* 8018CAB4 00189A14 EC 42 00 F2 */ fmuls f2, f2, f3
/* 8018CAB8 00189A18 EC 80 00 F2 */ fmuls f4, f0, f3
/* 8018CABC 00189A1C 48 1D 69 31 */ bl __ct__6CColorFffff
/* 8018CAC0 00189A20 C0 42 A4 28 */ lfs f2, lbl_805AC148@sda21(r2)
/* 8018CAC4 00189A24 7C 64 1B 78 */ mr r4, r3
/* 8018CAC8 00189A28 C0 22 A4 0C */ lfs f1, lbl_805AC12C@sda21(r2)
/* 8018CACC 00189A2C 7F 43 D3 78 */ mr r3, r26
/* 8018CAD0 00189A30 FC 60 10 90 */ fmr f3, f2
/* 8018CAD4 00189A34 7F 66 DB 78 */ mr r6, r27
/* 8018CAD8 00189A38 FC 80 10 90 */ fmr f4, f2
/* 8018CADC 00189A3C 38 A1 00 24 */ addi r5, r1, 0x24
/* 8018CAE0 00189A40 48 12 95 41 */ bl "DrawPhazonSuitIndirectEffect__13CCubeRendererFRC6CColorRC23TLockedToken<8CTexture>RC6CColorffff"
/* 8018CAE4 00189A44 88 01 00 30 */ lbz r0, 0x30(r1)
/* 8018CAE8 00189A48 28 00 00 00 */ cmplwi r0, 0
/* 8018CAEC 00189A4C 41 82 00 1C */ beq lbl_8018CB08
/* 8018CAF0 00189A50 34 61 00 24 */ addic. r3, r1, 0x24
/* 8018CAF4 00189A54 41 82 00 14 */ beq lbl_8018CB08
/* 8018CAF8 00189A58 28 03 00 00 */ cmplwi r3, 0
/* 8018CAFC 00189A5C 41 82 00 0C */ beq lbl_8018CB08
/* 8018CB00 00189A60 38 80 00 00 */ li r4, 0
/* 8018CB04 00189A64 48 1B 43 3D */ bl __dt__6CTokenFv
lbl_8018CB08:
/* 8018CB08 00189A68 38 00 00 00 */ li r0, 0
/* 8018CB0C 00189A6C 98 01 00 30 */ stb r0, 0x30(r1)
lbl_8018CB10:
/* 8018CB10 00189A70 80 1C 02 24 */ lwz r0, 0x224(r28)
/* 8018CB14 00189A74 28 00 00 00 */ cmplwi r0, 0
/* 8018CB18 00189A78 41 82 01 84 */ beq lbl_8018CC9C
/* 8018CB1C 00189A7C 80 82 A9 CC */ lwz r4, lbl_805AC6EC@sda21(r2)
/* 8018CB20 00189A80 38 61 00 14 */ addi r3, r1, 0x14
/* 8018CB24 00189A84 4B E7 81 95 */ bl string_l__4rstlFPCc
/* 8018CB28 00189A88 38 61 01 54 */ addi r3, r1, 0x154
/* 8018CB2C 00189A8C 38 9C 00 10 */ addi r4, r28, 0x10
/* 8018CB30 00189A90 38 A1 00 14 */ addi r5, r1, 0x14
/* 8018CB34 00189A94 4B F8 8E 6D */ bl "GetScaledLocatorTransform__10CModelDataCFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8018CB38 00189A98 7F 24 CB 78 */ mr r4, r25
/* 8018CB3C 00189A9C 38 61 01 84 */ addi r3, r1, 0x184
/* 8018CB40 00189AA0 38 A1 01 54 */ addi r5, r1, 0x154
/* 8018CB44 00189AA4 48 18 5E 0D */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8018CB48 00189AA8 38 61 01 B4 */ addi r3, r1, 0x1b4
/* 8018CB4C 00189AAC 38 81 01 84 */ addi r4, r1, 0x184
/* 8018CB50 00189AB0 48 18 60 25 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8018CB54 00189AB4 38 61 00 14 */ addi r3, r1, 0x14
/* 8018CB58 00189AB8 48 1B 0F 89 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 8018CB5C 00189ABC 88 1C 02 74 */ lbz r0, 0x274(r28)
/* 8018CB60 00189AC0 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8018CB64 00189AC4 41 82 00 98 */ beq lbl_8018CBFC
/* 8018CB68 00189AC8 C0 22 A4 0C */ lfs f1, lbl_805AC12C@sda21(r2)
/* 8018CB6C 00189ACC 38 61 00 F4 */ addi r3, r1, 0xf4
/* 8018CB70 00189AD0 C0 1C 02 68 */ lfs f0, 0x268(r28)
/* 8018CB74 00189AD4 EC 21 00 28 */ fsubs f1, f1, f0
/* 8018CB78 00189AD8 FC 40 08 90 */ fmr f2, f1
/* 8018CB7C 00189ADC FC 60 08 90 */ fmr f3, f1
/* 8018CB80 00189AE0 48 18 66 89 */ bl Scale__12CTransform4fFfff
/* 8018CB84 00189AE4 38 61 01 24 */ addi r3, r1, 0x124
/* 8018CB88 00189AE8 38 81 01 B4 */ addi r4, r1, 0x1b4
/* 8018CB8C 00189AEC 38 A1 00 F4 */ addi r5, r1, 0xf4
/* 8018CB90 00189AF0 48 18 5D C1 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8018CB94 00189AF4 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 8018CB98 00189AF8 38 81 01 24 */ addi r4, r1, 0x124
/* 8018CB9C 00189AFC 81 83 00 00 */ lwz r12, 0(r3)
/* 8018CBA0 00189B00 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 8018CBA4 00189B04 7D 89 03 A6 */ mtctr r12
/* 8018CBA8 00189B08 4E 80 04 21 */ bctrl
/* 8018CBAC 00189B0C 38 7C 02 38 */ addi r3, r28, 0x238
/* 8018CBB0 00189B10 48 02 D0 9D */ bl DrawClipCube__FRC6CAABox
/* 8018CBB4 00189B14 C0 22 A4 28 */ lfs f1, lbl_805AC148@sda21(r2)
/* 8018CBB8 00189B18 38 61 00 94 */ addi r3, r1, 0x94
/* 8018CBBC 00189B1C C0 1C 02 6C */ lfs f0, 0x26c(r28)
/* 8018CBC0 00189B20 FC 60 08 90 */ fmr f3, f1
/* 8018CBC4 00189B24 FC 40 00 50 */ fneg f2, f0
/* 8018CBC8 00189B28 48 18 65 C1 */ bl Translate__12CTransform4fFfff
/* 8018CBCC 00189B2C 38 61 00 C4 */ addi r3, r1, 0xc4
/* 8018CBD0 00189B30 38 81 01 B4 */ addi r4, r1, 0x1b4
/* 8018CBD4 00189B34 38 A1 00 94 */ addi r5, r1, 0x94
/* 8018CBD8 00189B38 48 18 5D 79 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8018CBDC 00189B3C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 8018CBE0 00189B40 38 81 00 C4 */ addi r4, r1, 0xc4
/* 8018CBE4 00189B44 81 83 00 00 */ lwz r12, 0(r3)
/* 8018CBE8 00189B48 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 8018CBEC 00189B4C 7D 89 03 A6 */ mtctr r12
/* 8018CBF0 00189B50 4E 80 04 21 */ bctrl
/* 8018CBF4 00189B54 38 7C 02 50 */ addi r3, r28, 0x250
/* 8018CBF8 00189B58 48 02 D0 55 */ bl DrawClipCube__FRC6CAABox
lbl_8018CBFC:
/* 8018CBFC 00189B5C 88 1C 02 74 */ lbz r0, 0x274(r28)
/* 8018CC00 00189B60 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 8018CC04 00189B64 41 82 00 80 */ beq lbl_8018CC84
/* 8018CC08 00189B68 C0 22 A4 0C */ lfs f1, lbl_805AC12C@sda21(r2)
/* 8018CC0C 00189B6C 38 60 00 05 */ li r3, 5
/* 8018CC10 00189B70 C0 42 A4 20 */ lfs f2, lbl_805AC140@sda21(r2)
/* 8018CC14 00189B74 38 80 00 00 */ li r4, 0
/* 8018CC18 00189B78 C0 1C 02 70 */ lfs f0, 0x270(r28)
/* 8018CC1C 00189B7C 38 00 00 03 */ li r0, 3
/* 8018CC20 00189B80 98 61 00 0C */ stb r3, 0xc(r1)
/* 8018CC24 00189B84 FC 60 08 90 */ fmr f3, f1
/* 8018CC28 00189B88 EC 82 00 32 */ fmuls f4, f2, f0
/* 8018CC2C 00189B8C 38 61 00 10 */ addi r3, r1, 0x10
/* 8018CC30 00189B90 FC 40 08 90 */ fmr f2, f1
/* 8018CC34 00189B94 98 81 00 0D */ stb r4, 0xd(r1)
/* 8018CC38 00189B98 B0 01 00 0E */ sth r0, 0xe(r1)
/* 8018CC3C 00189B9C 48 1D 67 B1 */ bl __ct__6CColorFffff
/* 8018CC40 00189BA0 C0 3C 02 70 */ lfs f1, 0x270(r28)
/* 8018CC44 00189BA4 38 61 00 34 */ addi r3, r1, 0x34
/* 8018CC48 00189BA8 83 7C 02 24 */ lwz r27, 0x224(r28)
/* 8018CC4C 00189BAC FC 40 08 90 */ fmr f2, f1
/* 8018CC50 00189BB0 FC 60 08 90 */ fmr f3, f1
/* 8018CC54 00189BB4 48 18 65 B5 */ bl Scale__12CTransform4fFfff
/* 8018CC58 00189BB8 38 61 00 64 */ addi r3, r1, 0x64
/* 8018CC5C 00189BBC 38 81 01 B4 */ addi r4, r1, 0x1b4
/* 8018CC60 00189BC0 38 A1 00 34 */ addi r5, r1, 0x34
/* 8018CC64 00189BC4 48 18 5C ED */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8018CC68 00189BC8 7F 63 DB 78 */ mr r3, r27
/* 8018CC6C 00189BCC 7F A4 EB 78 */ mr r4, r29
/* 8018CC70 00189BD0 7F E6 FB 78 */ mr r6, r31
/* 8018CC74 00189BD4 38 A1 00 64 */ addi r5, r1, 0x64
/* 8018CC78 00189BD8 38 E1 00 0C */ addi r7, r1, 0xc
/* 8018CC7C 00189BDC 4B F8 81 41 */ bl Render__10CModelDataCFRC13CStateManagerRC12CTransform4fPC12CActorLightsRC11CModelFlags
/* 8018CC80 00189BE0 48 00 00 1C */ b lbl_8018CC9C
lbl_8018CC84:
/* 8018CC84 00189BE4 80 7C 02 24 */ lwz r3, 0x224(r28)
/* 8018CC88 00189BE8 7F A4 EB 78 */ mr r4, r29
/* 8018CC8C 00189BEC 7F E6 FB 78 */ mr r6, r31
/* 8018CC90 00189BF0 7F C7 F3 78 */ mr r7, r30
/* 8018CC94 00189BF4 38 A1 01 B4 */ addi r5, r1, 0x1b4
/* 8018CC98 00189BF8 4B F8 81 25 */ bl Render__10CModelDataCFRC13CStateManagerRC12CTransform4fPC12CActorLightsRC11CModelFlags
lbl_8018CC9C:
/* 8018CC9C 00189BFC BB 01 01 F0 */ lmw r24, 0x1f0(r1)
/* 8018CCA0 00189C00 80 01 02 14 */ lwz r0, 0x214(r1)
/* 8018CCA4 00189C04 7C 08 03 A6 */ mtlr r0
/* 8018CCA8 00189C08 38 21 02 10 */ addi r1, r1, 0x210
/* 8018CCAC 00189C0C 4E 80 00 20 */ blr
.global DrawMuzzleFx__11CPhazonBeamCFRC13CStateManager
DrawMuzzleFx__11CPhazonBeamCFRC13CStateManager:
/* 8018CCB0 00189C10 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8018CCB4 00189C14 7C 08 02 A6 */ mflr r0
/* 8018CCB8 00189C18 90 01 00 14 */ stw r0, 0x14(r1)
/* 8018CCBC 00189C1C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8018CCC0 00189C20 7C 9F 23 78 */ mr r31, r4
/* 8018CCC4 00189C24 93 C1 00 08 */ stw r30, 8(r1)
/* 8018CCC8 00189C28 7C 7E 1B 78 */ mr r30, r3
/* 8018CCCC 00189C2C 48 00 01 E9 */ bl IsFiring__11CPhazonBeamCFRC13CStateManager
/* 8018CCD0 00189C30 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8018CCD4 00189C34 41 82 00 10 */ beq lbl_8018CCE4
/* 8018CCD8 00189C38 7F C3 F3 78 */ mr r3, r30
/* 8018CCDC 00189C3C 7F E4 FB 78 */ mr r4, r31
/* 8018CCE0 00189C40 48 02 F4 41 */ bl DrawMuzzleFx__10CGunWeaponCFRC13CStateManager
lbl_8018CCE4:
/* 8018CCE4 00189C44 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8018CCE8 00189C48 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8018CCEC 00189C4C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8018CCF0 00189C50 7C 08 03 A6 */ mtlr r0
/* 8018CCF4 00189C54 38 21 00 10 */ addi r1, r1, 0x10
/* 8018CCF8 00189C58 4E 80 00 20 */ blr
.global UpdateGunFx__11CPhazonBeamFbfRC13CStateManagerRC12CTransform4f
UpdateGunFx__11CPhazonBeamFbfRC13CStateManagerRC12CTransform4f:
/* 8018CCFC 00189C5C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8018CD00 00189C60 7C 08 02 A6 */ mflr r0
/* 8018CD04 00189C64 90 01 00 24 */ stw r0, 0x24(r1)
/* 8018CD08 00189C68 DB E1 00 18 */ stfd f31, 0x18(r1)
/* 8018CD0C 00189C6C FF E0 08 90 */ fmr f31, f1
/* 8018CD10 00189C70 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8018CD14 00189C74 7C DF 33 78 */ mr r31, r6
/* 8018CD18 00189C78 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8018CD1C 00189C7C 7C BE 2B 78 */ mr r30, r5
/* 8018CD20 00189C80 93 A1 00 0C */ stw r29, 0xc(r1)
/* 8018CD24 00189C84 7C 9D 23 78 */ mr r29, r4
/* 8018CD28 00189C88 93 81 00 08 */ stw r28, 8(r1)
/* 8018CD2C 00189C8C 7C 7C 1B 78 */ mr r28, r3
/* 8018CD30 00189C90 80 63 02 34 */ lwz r3, 0x234(r3)
/* 8018CD34 00189C94 28 03 00 00 */ cmplwi r3, 0
/* 8018CD38 00189C98 41 82 00 24 */ beq lbl_8018CD5C
/* 8018CD3C 00189C9C 7F E4 FB 78 */ mr r4, r31
/* 8018CD40 00189CA0 48 19 1E 45 */ bl SetGlobalOrientAndTrans__11CElementGenFRC12CTransform4f
/* 8018CD44 00189CA4 80 7C 02 34 */ lwz r3, 0x234(r28)
/* 8018CD48 00189CA8 FC 20 F8 90 */ fmr f1, f31
/* 8018CD4C 00189CAC 81 83 00 00 */ lwz r12, 0(r3)
/* 8018CD50 00189CB0 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8018CD54 00189CB4 7D 89 03 A6 */ mtctr r12
/* 8018CD58 00189CB8 4E 80 04 21 */ bctrl
lbl_8018CD5C:
/* 8018CD5C 00189CBC FC 20 F8 90 */ fmr f1, f31
/* 8018CD60 00189CC0 7F 83 E3 78 */ mr r3, r28
/* 8018CD64 00189CC4 7F A4 EB 78 */ mr r4, r29
/* 8018CD68 00189CC8 7F C5 F3 78 */ mr r5, r30
/* 8018CD6C 00189CCC 7F E6 FB 78 */ mr r6, r31
/* 8018CD70 00189CD0 48 02 F5 6D */ bl UpdateGunFx__10CGunWeaponFbfRC13CStateManagerRC12CTransform4f
/* 8018CD74 00189CD4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8018CD78 00189CD8 CB E1 00 18 */ lfd f31, 0x18(r1)
/* 8018CD7C 00189CDC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8018CD80 00189CE0 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8018CD84 00189CE4 83 A1 00 0C */ lwz r29, 0xc(r1)
/* 8018CD88 00189CE8 83 81 00 08 */ lwz r28, 8(r1)
/* 8018CD8C 00189CEC 7C 08 03 A6 */ mtlr r0
/* 8018CD90 00189CF0 38 21 00 20 */ addi r1, r1, 0x20
/* 8018CD94 00189CF4 4E 80 00 20 */ blr
.global PostRenderGunFx__11CPhazonBeamFRC13CStateManagerRC12CTransform4f
PostRenderGunFx__11CPhazonBeamFRC13CStateManagerRC12CTransform4f:
/* 8018CD98 00189CF8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8018CD9C 00189CFC 7C 08 02 A6 */ mflr r0
/* 8018CDA0 00189D00 90 01 00 24 */ stw r0, 0x24(r1)
/* 8018CDA4 00189D04 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8018CDA8 00189D08 7C BF 2B 78 */ mr r31, r5
/* 8018CDAC 00189D0C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8018CDB0 00189D10 7C 9E 23 78 */ mr r30, r4
/* 8018CDB4 00189D14 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8018CDB8 00189D18 7C 7D 1B 78 */ mr r29, r3
/* 8018CDBC 00189D1C 80 63 02 34 */ lwz r3, 0x234(r3)
/* 8018CDC0 00189D20 28 03 00 00 */ cmplwi r3, 0
/* 8018CDC4 00189D24 41 82 00 14 */ beq lbl_8018CDD8
/* 8018CDC8 00189D28 81 83 00 00 */ lwz r12, 0(r3)
/* 8018CDCC 00189D2C 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8018CDD0 00189D30 7D 89 03 A6 */ mtctr r12
/* 8018CDD4 00189D34 4E 80 04 21 */ bctrl
lbl_8018CDD8:
/* 8018CDD8 00189D38 7F A3 EB 78 */ mr r3, r29
/* 8018CDDC 00189D3C 7F C4 F3 78 */ mr r4, r30
/* 8018CDE0 00189D40 7F E5 FB 78 */ mr r5, r31
/* 8018CDE4 00189D44 48 02 F6 41 */ bl PostRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f
/* 8018CDE8 00189D48 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8018CDEC 00189D4C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8018CDF0 00189D50 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8018CDF4 00189D54 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8018CDF8 00189D58 7C 08 03 A6 */ mtlr r0
/* 8018CDFC 00189D5C 38 21 00 20 */ addi r1, r1, 0x20
/* 8018CE00 00189D60 4E 80 00 20 */ blr
.global PreRenderGunFx__11CPhazonBeamFRC13CStateManagerRC12CTransform4f
PreRenderGunFx__11CPhazonBeamFRC13CStateManagerRC12CTransform4f:
/* 8018CE04 00189D64 94 21 FF 50 */ stwu r1, -0xb0(r1)
/* 8018CE08 00189D68 7C 08 02 A6 */ mflr r0
/* 8018CE0C 00189D6C 90 01 00 B4 */ stw r0, 0xb4(r1)
/* 8018CE10 00189D70 93 E1 00 AC */ stw r31, 0xac(r1)
/* 8018CE14 00189D74 7C BF 2B 78 */ mr r31, r5
/* 8018CE18 00189D78 93 C1 00 A8 */ stw r30, 0xa8(r1)
/* 8018CE1C 00189D7C 7C 9E 23 78 */ mr r30, r4
/* 8018CE20 00189D80 93 A1 00 A4 */ stw r29, 0xa4(r1)
/* 8018CE24 00189D84 7C 7D 1B 78 */ mr r29, r3
/* 8018CE28 00189D88 48 00 00 8D */ bl IsFiring__11CPhazonBeamCFRC13CStateManager
/* 8018CE2C 00189D8C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8018CE30 00189D90 41 82 00 68 */ beq lbl_8018CE98
/* 8018CE34 00189D94 3C 80 80 5A */ lis r4, lbl_805A61D4@ha
/* 8018CE38 00189D98 38 61 00 68 */ addi r3, r1, 0x68
/* 8018CE3C 00189D9C 38 84 61 D4 */ addi r4, r4, lbl_805A61D4@l
/* 8018CE40 00189DA0 48 18 5D 35 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8018CE44 00189DA4 7F E4 FB 78 */ mr r4, r31
/* 8018CE48 00189DA8 38 61 00 08 */ addi r3, r1, 8
/* 8018CE4C 00189DAC 48 18 58 95 */ bl GetInverse__12CTransform4fCFv
/* 8018CE50 00189DB0 38 61 00 38 */ addi r3, r1, 0x38
/* 8018CE54 00189DB4 38 81 00 08 */ addi r4, r1, 8
/* 8018CE58 00189DB8 38 A1 00 68 */ addi r5, r1, 0x68
/* 8018CE5C 00189DBC 48 18 5A F5 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8018CE60 00189DC0 38 61 00 38 */ addi r3, r1, 0x38
/* 8018CE64 00189DC4 48 17 F8 E9 */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 8018CE68 00189DC8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 8018CE6C 00189DCC 3C 80 80 5A */ lis r4, skIdentity4f@ha
/* 8018CE70 00189DD0 38 84 66 70 */ addi r4, r4, skIdentity4f@l
/* 8018CE74 00189DD4 81 83 00 00 */ lwz r12, 0(r3)
/* 8018CE78 00189DD8 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 8018CE7C 00189DDC 7D 89 03 A6 */ mtctr r12
/* 8018CE80 00189DE0 4E 80 04 21 */ bctrl
/* 8018CE84 00189DE4 7F A3 EB 78 */ mr r3, r29
/* 8018CE88 00189DE8 7F C4 F3 78 */ mr r4, r30
/* 8018CE8C 00189DEC 48 02 F2 95 */ bl DrawMuzzleFx__10CGunWeaponCFRC13CStateManager
/* 8018CE90 00189DF0 38 61 00 68 */ addi r3, r1, 0x68
/* 8018CE94 00189DF4 48 17 F8 B9 */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
lbl_8018CE98:
/* 8018CE98 00189DF8 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 8018CE9C 00189DFC 83 E1 00 AC */ lwz r31, 0xac(r1)
/* 8018CEA0 00189E00 83 C1 00 A8 */ lwz r30, 0xa8(r1)
/* 8018CEA4 00189E04 83 A1 00 A4 */ lwz r29, 0xa4(r1)
/* 8018CEA8 00189E08 7C 08 03 A6 */ mtlr r0
/* 8018CEAC 00189E0C 38 21 00 B0 */ addi r1, r1, 0xb0
/* 8018CEB0 00189E10 4E 80 00 20 */ blr
.global IsFiring__11CPhazonBeamCFRC13CStateManager
IsFiring__11CPhazonBeamCFRC13CStateManager:
/* 8018CEB4 00189E14 C0 23 02 78 */ lfs f1, 0x278(r3)
/* 8018CEB8 00189E18 C0 02 A4 10 */ lfs f0, lbl_805AC130@sda21(r2)
/* 8018CEBC 00189E1C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8018CEC0 00189E20 7C 00 00 26 */ mfcr r0
/* 8018CEC4 00189E24 54 03 0F FE */ srwi r3, r0, 0x1f
/* 8018CEC8 00189E28 4E 80 00 20 */ blr
.global ReInitVariables__11CPhazonBeamFv
ReInitVariables__11CPhazonBeamFv:
/* 8018CECC 00189E2C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8018CED0 00189E30 7C 08 02 A6 */ mflr r0
/* 8018CED4 00189E34 C0 22 A4 28 */ lfs f1, lbl_805AC148@sda21(r2)
/* 8018CED8 00189E38 90 01 00 14 */ stw r0, 0x14(r1)
/* 8018CEDC 00189E3C C0 02 A4 0C */ lfs f0, lbl_805AC12C@sda21(r2)
/* 8018CEE0 00189E40 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8018CEE4 00189E44 7C 7F 1B 78 */ mr r31, r3
/* 8018CEE8 00189E48 D0 23 02 68 */ stfs f1, 0x268(r3)
/* 8018CEEC 00189E4C D0 23 02 6C */ stfs f1, 0x26c(r3)
/* 8018CEF0 00189E50 D0 03 02 70 */ stfs f0, 0x270(r3)
/* 8018CEF4 00189E54 80 63 02 34 */ lwz r3, 0x234(r3)
/* 8018CEF8 00189E58 28 03 00 00 */ cmplwi r3, 0
/* 8018CEFC 00189E5C 41 82 00 18 */ beq lbl_8018CF14
/* 8018CF00 00189E60 81 83 00 00 */ lwz r12, 0(r3)
/* 8018CF04 00189E64 38 80 00 01 */ li r4, 1
/* 8018CF08 00189E68 81 8C 00 08 */ lwz r12, 8(r12)
/* 8018CF0C 00189E6C 7D 89 03 A6 */ mtctr r12
/* 8018CF10 00189E70 4E 80 04 21 */ bctrl
lbl_8018CF14:
/* 8018CF14 00189E74 38 00 00 00 */ li r0, 0
/* 8018CF18 00189E78 38 80 00 01 */ li r4, 1
/* 8018CF1C 00189E7C 90 1F 02 34 */ stw r0, 0x234(r31)
/* 8018CF20 00189E80 80 7F 02 24 */ lwz r3, 0x224(r31)
/* 8018CF24 00189E84 4B F8 9B 29 */ bl __dt__10CModelDataFv
/* 8018CF28 00189E88 38 80 00 00 */ li r4, 0
/* 8018CF2C 00189E8C 38 60 00 01 */ li r3, 1
/* 8018CF30 00189E90 90 9F 02 24 */ stw r4, 0x224(r31)
/* 8018CF34 00189E94 88 1F 02 74 */ lbz r0, 0x274(r31)
/* 8018CF38 00189E98 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 8018CF3C 00189E9C 98 1F 02 74 */ stb r0, 0x274(r31)
/* 8018CF40 00189EA0 88 1F 02 74 */ lbz r0, 0x274(r31)
/* 8018CF44 00189EA4 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8018CF48 00189EA8 98 1F 02 74 */ stb r0, 0x274(r31)
/* 8018CF4C 00189EAC 88 1F 02 74 */ lbz r0, 0x274(r31)
/* 8018CF50 00189EB0 50 80 2E B4 */ rlwimi r0, r4, 5, 0x1a, 0x1a
/* 8018CF54 00189EB4 98 1F 02 74 */ stb r0, 0x274(r31)
/* 8018CF58 00189EB8 90 9F 01 CC */ stw r4, 0x1cc(r31)
/* 8018CF5C 00189EBC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8018CF60 00189EC0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8018CF64 00189EC4 7C 08 03 A6 */ mtlr r0
/* 8018CF68 00189EC8 38 21 00 10 */ addi r1, r1, 0x10
/* 8018CF6C 00189ECC 4E 80 00 20 */ blr
.global __dt__11CPhazonBeamFv
__dt__11CPhazonBeamFv:
/* 8018CF70 00189ED0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8018CF74 00189ED4 7C 08 02 A6 */ mflr r0
/* 8018CF78 00189ED8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8018CF7C 00189EDC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8018CF80 00189EE0 7C 9F 23 78 */ mr r31, r4
/* 8018CF84 00189EE4 93 C1 00 08 */ stw r30, 8(r1)
/* 8018CF88 00189EE8 7C 7E 1B 79 */ or. r30, r3, r3
/* 8018CF8C 00189EEC 41 82 00 98 */ beq lbl_8018D024
/* 8018CF90 00189EF0 3C 60 80 3E */ lis r3, lbl_803E42E8@ha
/* 8018CF94 00189EF4 34 1E 02 34 */ addic. r0, r30, 0x234
/* 8018CF98 00189EF8 38 03 42 E8 */ addi r0, r3, lbl_803E42E8@l
/* 8018CF9C 00189EFC 90 1E 00 00 */ stw r0, 0(r30)
/* 8018CFA0 00189F00 41 82 00 24 */ beq lbl_8018CFC4
/* 8018CFA4 00189F04 80 7E 02 34 */ lwz r3, 0x234(r30)
/* 8018CFA8 00189F08 28 03 00 00 */ cmplwi r3, 0
/* 8018CFAC 00189F0C 41 82 00 18 */ beq lbl_8018CFC4
/* 8018CFB0 00189F10 81 83 00 00 */ lwz r12, 0(r3)
/* 8018CFB4 00189F14 38 80 00 01 */ li r4, 1
/* 8018CFB8 00189F18 81 8C 00 08 */ lwz r12, 8(r12)
/* 8018CFBC 00189F1C 7D 89 03 A6 */ mtctr r12
/* 8018CFC0 00189F20 4E 80 04 21 */ bctrl
lbl_8018CFC4:
/* 8018CFC4 00189F24 34 1E 02 28 */ addic. r0, r30, 0x228
/* 8018CFC8 00189F28 41 82 00 18 */ beq lbl_8018CFE0
/* 8018CFCC 00189F2C 34 1E 02 28 */ addic. r0, r30, 0x228
/* 8018CFD0 00189F30 41 82 00 10 */ beq lbl_8018CFE0
/* 8018CFD4 00189F34 38 7E 02 28 */ addi r3, r30, 0x228
/* 8018CFD8 00189F38 38 80 00 00 */ li r4, 0
/* 8018CFDC 00189F3C 48 1B 3E 65 */ bl __dt__6CTokenFv
lbl_8018CFE0:
/* 8018CFE0 00189F40 34 1E 02 24 */ addic. r0, r30, 0x224
/* 8018CFE4 00189F44 41 82 00 10 */ beq lbl_8018CFF4
/* 8018CFE8 00189F48 80 7E 02 24 */ lwz r3, 0x224(r30)
/* 8018CFEC 00189F4C 38 80 00 01 */ li r4, 1
/* 8018CFF0 00189F50 4B F8 9A 5D */ bl __dt__10CModelDataFv
lbl_8018CFF4:
/* 8018CFF4 00189F54 34 1E 02 1C */ addic. r0, r30, 0x21c
/* 8018CFF8 00189F58 41 82 00 10 */ beq lbl_8018D008
/* 8018CFFC 00189F5C 38 7E 02 1C */ addi r3, r30, 0x21c
/* 8018D000 00189F60 38 80 00 00 */ li r4, 0
/* 8018D004 00189F64 48 1B 3E 3D */ bl __dt__6CTokenFv
lbl_8018D008:
/* 8018D008 00189F68 7F C3 F3 78 */ mr r3, r30
/* 8018D00C 00189F6C 38 80 00 00 */ li r4, 0
/* 8018D010 00189F70 48 02 FC B1 */ bl __dt__10CGunWeaponFv
/* 8018D014 00189F74 7F E0 07 35 */ extsh. r0, r31
/* 8018D018 00189F78 40 81 00 0C */ ble lbl_8018D024
/* 8018D01C 00189F7C 7F C3 F3 78 */ mr r3, r30
/* 8018D020 00189F80 48 18 89 11 */ bl Free__7CMemoryFPCv
lbl_8018D024:
/* 8018D024 00189F84 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8018D028 00189F88 7F C3 F3 78 */ mr r3, r30
/* 8018D02C 00189F8C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8018D030 00189F90 83 C1 00 08 */ lwz r30, 8(r1)
/* 8018D034 00189F94 7C 08 03 A6 */ mtlr r0
/* 8018D038 00189F98 38 21 00 10 */ addi r1, r1, 0x10
/* 8018D03C 00189F9C 4E 80 00 20 */ blr
.global __ct__11CPhazonBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
__ct__11CPhazonBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f:
/* 8018D040 00189FA0 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 8018D044 00189FA4 7C 08 02 A6 */ mflr r0
/* 8018D048 00189FA8 90 01 00 94 */ stw r0, 0x94(r1)
/* 8018D04C 00189FAC 93 E1 00 8C */ stw r31, 0x8c(r1)
/* 8018D050 00189FB0 7D 1F 43 78 */ mr r31, r8
/* 8018D054 00189FB4 93 C1 00 88 */ stw r30, 0x88(r1)
/* 8018D058 00189FB8 7C 7E 1B 78 */ mr r30, r3
/* 8018D05C 00189FBC 93 A1 00 84 */ stw r29, 0x84(r1)
/* 8018D060 00189FC0 A0 06 00 00 */ lhz r0, 0(r6)
/* 8018D064 00189FC4 38 C1 00 08 */ addi r6, r1, 8
/* 8018D068 00189FC8 B0 01 00 08 */ sth r0, 8(r1)
/* 8018D06C 00189FCC 48 03 01 45 */ bl __ct__10CGunWeaponFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
/* 8018D070 00189FD0 3C 80 80 3E */ lis r4, lbl_803E42E8@ha
/* 8018D074 00189FD4 38 61 00 14 */ addi r3, r1, 0x14
/* 8018D078 00189FD8 38 04 42 E8 */ addi r0, r4, lbl_803E42E8@l
/* 8018D07C 00189FDC 80 A2 A3 FC */ lwz r5, lbl_805AC11C@sda21(r2)
/* 8018D080 00189FE0 90 1E 00 00 */ stw r0, 0(r30)
/* 8018D084 00189FE4 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8018D088 00189FE8 81 84 00 00 */ lwz r12, 0(r4)
/* 8018D08C 00189FEC 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8018D090 00189FF0 7D 89 03 A6 */ mtctr r12
/* 8018D094 00189FF4 4E 80 04 21 */ bctrl
/* 8018D098 00189FF8 38 7E 02 1C */ addi r3, r30, 0x21c
/* 8018D09C 00189FFC 38 81 00 14 */ addi r4, r1, 0x14
/* 8018D0A0 0018A000 48 1B 3E 09 */ bl __ct__6CTokenFRC6CToken
/* 8018D0A4 0018A004 38 61 00 14 */ addi r3, r1, 0x14
/* 8018D0A8 0018A008 38 80 FF FF */ li r4, -1
/* 8018D0AC 0018A00C 48 1B 3D 95 */ bl __dt__6CTokenFv
/* 8018D0B0 0018A010 38 00 00 00 */ li r0, 0
/* 8018D0B4 0018A014 3C 60 80 3D */ lis r3, lbl_803D08F8@ha
/* 8018D0B8 0018A018 90 1E 02 24 */ stw r0, 0x224(r30)
/* 8018D0BC 0018A01C 38 A3 08 F8 */ addi r5, r3, lbl_803D08F8@l
/* 8018D0C0 0018A020 38 61 00 0C */ addi r3, r1, 0xc
/* 8018D0C4 0018A024 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8018D0C8 0018A028 38 A5 00 36 */ addi r5, r5, 0x36
/* 8018D0CC 0018A02C 81 84 00 00 */ lwz r12, 0(r4)
/* 8018D0D0 0018A030 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8018D0D4 0018A034 7D 89 03 A6 */ mtctr r12
/* 8018D0D8 0018A038 4E 80 04 21 */ bctrl
/* 8018D0DC 0018A03C 3B BE 02 28 */ addi r29, r30, 0x228
/* 8018D0E0 0018A040 38 81 00 0C */ addi r4, r1, 0xc
/* 8018D0E4 0018A044 7F A3 EB 78 */ mr r3, r29
/* 8018D0E8 0018A048 48 1B 3D C1 */ bl __ct__6CTokenFRC6CToken
/* 8018D0EC 0018A04C 38 00 00 00 */ li r0, 0
/* 8018D0F0 0018A050 38 61 00 0C */ addi r3, r1, 0xc
/* 8018D0F4 0018A054 90 1D 00 08 */ stw r0, 8(r29)
/* 8018D0F8 0018A058 38 80 FF FF */ li r4, -1
/* 8018D0FC 0018A05C 48 1B 3D 45 */ bl __dt__6CTokenFv
/* 8018D100 0018A060 38 00 00 00 */ li r0, 0
/* 8018D104 0018A064 C0 02 A4 34 */ lfs f0, lbl_805AC154@sda21(r2)
/* 8018D108 0018A068 90 1E 02 34 */ stw r0, 0x234(r30)
/* 8018D10C 0018A06C 38 7E 02 38 */ addi r3, r30, 0x238
/* 8018D110 0018A070 C0 C2 A4 38 */ lfs f6, lbl_805AC158@sda21(r2)
/* 8018D114 0018A074 38 81 00 70 */ addi r4, r1, 0x70
/* 8018D118 0018A078 C1 7F 00 04 */ lfs f11, 4(r31)
/* 8018D11C 0018A07C 38 A1 00 58 */ addi r5, r1, 0x58
/* 8018D120 0018A080 C0 A2 A4 3C */ lfs f5, lbl_805AC15C@sda21(r2)
/* 8018D124 0018A084 C0 62 A4 40 */ lfs f3, lbl_805AC160@sda21(r2)
/* 8018D128 0018A088 ED 4B 01 B2 */ fmuls f10, f11, f6
/* 8018D12C 0018A08C C0 42 A4 28 */ lfs f2, lbl_805AC148@sda21(r2)
/* 8018D130 0018A090 ED 2B 01 72 */ fmuls f9, f11, f5
/* 8018D134 0018A094 C0 22 A4 44 */ lfs f1, lbl_805AC164@sda21(r2)
/* 8018D138 0018A098 EC 8B 00 32 */ fmuls f4, f11, f0
/* 8018D13C 0018A09C ED 0B 00 B2 */ fmuls f8, f11, f2
/* 8018D140 0018A0A0 EC EB 00 72 */ fmuls f7, f11, f1
/* 8018D144 0018A0A4 D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 8018D148 0018A0A8 EC 0B 00 F2 */ fmuls f0, f11, f3
/* 8018D14C 0018A0AC D0 C1 00 50 */ stfs f6, 0x50(r1)
/* 8018D150 0018A0B0 D0 A1 00 54 */ stfs f5, 0x54(r1)
/* 8018D154 0018A0B4 D0 81 00 58 */ stfs f4, 0x58(r1)
/* 8018D158 0018A0B8 D1 41 00 5C */ stfs f10, 0x5c(r1)
/* 8018D15C 0018A0BC D1 21 00 60 */ stfs f9, 0x60(r1)
/* 8018D160 0018A0C0 D0 61 00 64 */ stfs f3, 0x64(r1)
/* 8018D164 0018A0C4 D0 41 00 68 */ stfs f2, 0x68(r1)
/* 8018D168 0018A0C8 D0 21 00 6C */ stfs f1, 0x6c(r1)
/* 8018D16C 0018A0CC D0 01 00 70 */ stfs f0, 0x70(r1)
/* 8018D170 0018A0D0 D1 01 00 74 */ stfs f8, 0x74(r1)
/* 8018D174 0018A0D4 D0 E1 00 78 */ stfs f7, 0x78(r1)
/* 8018D178 0018A0D8 48 1A B3 91 */ bl __ct__6CAABoxFRC9CVector3fRC9CVector3f
/* 8018D17C 0018A0DC C0 02 A4 48 */ lfs f0, lbl_805AC168@sda21(r2)
/* 8018D180 0018A0E0 38 7E 02 50 */ addi r3, r30, 0x250
/* 8018D184 0018A0E4 C1 7F 00 04 */ lfs f11, 4(r31)
/* 8018D188 0018A0E8 38 81 00 40 */ addi r4, r1, 0x40
/* 8018D18C 0018A0EC C0 C2 A4 4C */ lfs f6, lbl_805AC16C@sda21(r2)
/* 8018D190 0018A0F0 38 A1 00 28 */ addi r5, r1, 0x28
/* 8018D194 0018A0F4 C0 A2 A4 50 */ lfs f5, lbl_805AC170@sda21(r2)
/* 8018D198 0018A0F8 EC 8B 00 32 */ fmuls f4, f11, f0
/* 8018D19C 0018A0FC C0 62 A4 54 */ lfs f3, lbl_805AC174@sda21(r2)
/* 8018D1A0 0018A100 ED 4B 01 B2 */ fmuls f10, f11, f6
/* 8018D1A4 0018A104 C0 42 A4 28 */ lfs f2, lbl_805AC148@sda21(r2)
/* 8018D1A8 0018A108 ED 2B 01 72 */ fmuls f9, f11, f5
/* 8018D1AC 0018A10C C0 22 A4 58 */ lfs f1, lbl_805AC178@sda21(r2)
/* 8018D1B0 0018A110 ED 0B 00 B2 */ fmuls f8, f11, f2
/* 8018D1B4 0018A114 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8018D1B8 0018A118 EC EB 00 72 */ fmuls f7, f11, f1
/* 8018D1BC 0018A11C EC 0B 00 F2 */ fmuls f0, f11, f3
/* 8018D1C0 0018A120 D0 C1 00 20 */ stfs f6, 0x20(r1)
/* 8018D1C4 0018A124 D0 A1 00 24 */ stfs f5, 0x24(r1)
/* 8018D1C8 0018A128 D0 81 00 28 */ stfs f4, 0x28(r1)
/* 8018D1CC 0018A12C D1 41 00 2C */ stfs f10, 0x2c(r1)
/* 8018D1D0 0018A130 D1 21 00 30 */ stfs f9, 0x30(r1)
/* 8018D1D4 0018A134 D0 61 00 34 */ stfs f3, 0x34(r1)
/* 8018D1D8 0018A138 D0 41 00 38 */ stfs f2, 0x38(r1)
/* 8018D1DC 0018A13C D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 8018D1E0 0018A140 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 8018D1E4 0018A144 D1 01 00 44 */ stfs f8, 0x44(r1)
/* 8018D1E8 0018A148 D0 E1 00 48 */ stfs f7, 0x48(r1)
/* 8018D1EC 0018A14C 48 1A B3 1D */ bl __ct__6CAABoxFRC9CVector3fRC9CVector3f
/* 8018D1F0 0018A150 C0 42 A4 28 */ lfs f2, lbl_805AC148@sda21(r2)
/* 8018D1F4 0018A154 38 A0 00 00 */ li r5, 0
/* 8018D1F8 0018A158 C0 22 A4 0C */ lfs f1, lbl_805AC12C@sda21(r2)
/* 8018D1FC 0018A15C 38 80 00 01 */ li r4, 1
/* 8018D200 0018A160 D0 5E 02 68 */ stfs f2, 0x268(r30)
/* 8018D204 0018A164 7F C3 F3 78 */ mr r3, r30
/* 8018D208 0018A168 C0 02 A4 24 */ lfs f0, lbl_805AC144@sda21(r2)
/* 8018D20C 0018A16C D0 5E 02 6C */ stfs f2, 0x26c(r30)
/* 8018D210 0018A170 D0 3E 02 70 */ stfs f1, 0x270(r30)
/* 8018D214 0018A174 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018D218 0018A178 50 A0 3E 30 */ rlwimi r0, r5, 7, 0x18, 0x18
/* 8018D21C 0018A17C 98 1E 02 74 */ stb r0, 0x274(r30)
/* 8018D220 0018A180 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018D224 0018A184 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 8018D228 0018A188 98 1E 02 74 */ stb r0, 0x274(r30)
/* 8018D22C 0018A18C 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018D230 0018A190 50 A0 2E B4 */ rlwimi r0, r5, 5, 0x1a, 0x1a
/* 8018D234 0018A194 98 1E 02 74 */ stb r0, 0x274(r30)
/* 8018D238 0018A198 88 1E 02 74 */ lbz r0, 0x274(r30)
/* 8018D23C 0018A19C 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b
/* 8018D240 0018A1A0 98 1E 02 74 */ stb r0, 0x274(r30)
/* 8018D244 0018A1A4 D0 1E 02 78 */ stfs f0, 0x278(r30)
/* 8018D248 0018A1A8 83 E1 00 8C */ lwz r31, 0x8c(r1)
/* 8018D24C 0018A1AC 83 C1 00 88 */ lwz r30, 0x88(r1)
/* 8018D250 0018A1B0 83 A1 00 84 */ lwz r29, 0x84(r1)
/* 8018D254 0018A1B4 80 01 00 94 */ lwz r0, 0x94(r1)
/* 8018D258 0018A1B8 7C 08 03 A6 */ mtlr r0
/* 8018D25C 0018A1BC 38 21 00 90 */ addi r1, r1, 0x90
/* 8018D260 0018A1C0 4E 80 00 20 */ blr