prime/asm/MetroidPrime/Weapons/CWaveBeam.s

1098 lines
52 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .ctors, "wa"
lbl_ctor:
.4byte __sinit_CWaveBeam_cpp
.section .data
.balign 8
.global lbl_803DF7A0
lbl_803DF7A0:
# ROM: 0x3DC7A0
.4byte 0
.4byte 0
.4byte __dt__9CWaveBeamFv
.4byte Reset__10CGunWeaponFR13CStateManager
.4byte PlayAnim__10CGunWeaponFQ212NWeaponTypes12EGunAnimTypeb
.4byte PreRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f
.4byte PostRenderGunFx__9CWaveBeamFRC13CStateManagerRC12CTransform4f
.4byte UpdateGunFx__9CWaveBeamFbfRC13CStateManagerRC12CTransform4f
.4byte Fire__9CWaveBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
.4byte EnableFx__10CGunWeaponFb
.4byte EnableSecondaryFx__9CWaveBeamFQ210CGunWeapon16ESecondaryFxType
.4byte Draw__10CGunWeaponCFbRC13CStateManagerRC12CTransform4fRC11CModelFlagsPC12CActorLights
.4byte DrawMuzzleFx__10CGunWeaponCFRC13CStateManager
.4byte Update__9CWaveBeamFfR13CStateManager
.4byte Load__9CWaveBeamFb
.4byte Unload__9CWaveBeamFR13CStateManager
.4byte IsLoaded__9CWaveBeamCFv
.4byte 0
.section .sbss
.balign 8
# CWaveBeam
.global lbl_805A8EB8
lbl_805A8EB8:
.skip 0x8
.section .sdata2, "a"
.balign 8
.global lbl_805AAC98
lbl_805AAC98:
# ROM: 0x3F7538
.4byte 0x07090735
.global lbl_805AAC9C
lbl_805AAC9C:
# ROM: 0x3F753C
.4byte 0x40400000
.global lbl_805AACA0
lbl_805AACA0:
# ROM: 0x3F7540
.4byte 0
.global lbl_805AACA4
lbl_805AACA4:
# ROM: 0x3F7544
.4byte 0x43B40000
.global lbl_805AACA8
lbl_805AACA8:
# ROM: 0x3F7548
.float 0.017453292
.global lbl_805AACAC
lbl_805AACAC:
# ROM: 0x3F754C
.float 1.0
.global lbl_805AACB0
lbl_805AACB0:
# ROM: 0x3F7550
.double 4.503601774854144E15
.global lbl_805AACB8
lbl_805AACB8:
# ROM: 0x3F7558
.4byte 0x42F00000
.4byte 0
.section .text, "ax"
.global EnableSecondaryFx__9CWaveBeamFQ210CGunWeapon16ESecondaryFxType
EnableSecondaryFx__9CWaveBeamFQ210CGunWeapon16ESecondaryFxType:
/* 800E00B0 000DD010 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 800E00B4 000DD014 7C 08 02 A6 */ mflr r0
/* 800E00B8 000DD018 90 01 00 44 */ stw r0, 0x44(r1)
/* 800E00BC 000DD01C BF 61 00 2C */ stmw r27, 0x2c(r1)
/* 800E00C0 000DD020 7C 9F 23 78 */ mr r31, r4
/* 800E00C4 000DD024 2C 1F 00 03 */ cmpwi r31, 3
/* 800E00C8 000DD028 7C 7E 1B 78 */ mr r30, r3
/* 800E00CC 000DD02C 41 82 00 20 */ beq lbl_800E00EC
/* 800E00D0 000DD030 40 80 00 28 */ bge lbl_800E00F8
/* 800E00D4 000DD034 2C 1F 00 00 */ cmpwi r31, 0
/* 800E00D8 000DD038 41 82 00 08 */ beq lbl_800E00E0
/* 800E00DC 000DD03C 48 00 00 1C */ b lbl_800E00F8
lbl_800E00E0:
/* 800E00E0 000DD040 38 00 00 00 */ li r0, 0
/* 800E00E4 000DD044 90 1E 01 CC */ stw r0, 0x1cc(r30)
/* 800E00E8 000DD048 48 00 02 24 */ b lbl_800E030C
lbl_800E00EC:
/* 800E00EC 000DD04C 80 1E 01 CC */ lwz r0, 0x1cc(r30)
/* 800E00F0 000DD050 2C 00 00 00 */ cmpwi r0, 0
/* 800E00F4 000DD054 41 82 02 18 */ beq lbl_800E030C
lbl_800E00F8:
/* 800E00F8 000DD058 80 1E 01 CC */ lwz r0, 0x1cc(r30)
/* 800E00FC 000DD05C 2C 00 00 02 */ cmpwi r0, 2
/* 800E0100 000DD060 41 82 00 C0 */ beq lbl_800E01C0
/* 800E0104 000DD064 2C 1F 00 01 */ cmpwi r31, 1
/* 800E0108 000DD068 40 82 00 0C */ bne lbl_800E0114
/* 800E010C 000DD06C 38 9E 02 28 */ addi r4, r30, 0x228
/* 800E0110 000DD070 48 00 00 08 */ b lbl_800E0118
lbl_800E0114:
/* 800E0114 000DD074 38 9E 02 34 */ addi r4, r30, 0x234
lbl_800E0118:
/* 800E0118 000DD078 38 61 00 18 */ addi r3, r1, 0x18
/* 800E011C 000DD07C 48 26 0D 8D */ bl __ct__6CTokenFRC6CToken
/* 800E0120 000DD080 3C 60 80 3D */ lis r3, lbl_803CE568@ha
/* 800E0124 000DD084 3B A1 00 18 */ addi r29, r1, 0x18
/* 800E0128 000DD088 38 83 E5 68 */ addi r4, r3, lbl_803CE568@l
/* 800E012C 000DD08C 3B 60 00 00 */ li r27, 0
/* 800E0130 000DD090 38 60 04 58 */ li r3, 0x458
/* 800E0134 000DD094 38 A0 00 00 */ li r5, 0
/* 800E0138 000DD098 48 23 57 35 */ bl __nw__FUlPCcPCc
/* 800E013C 000DD09C 7C 7C 1B 79 */ or. r28, r3, r3
/* 800E0140 000DD0A0 41 82 00 24 */ beq lbl_800E0164
/* 800E0144 000DD0A4 7F A4 EB 78 */ mr r4, r29
/* 800E0148 000DD0A8 38 61 00 10 */ addi r3, r1, 0x10
/* 800E014C 000DD0AC 48 26 0D 5D */ bl __ct__6CTokenFRC6CToken
/* 800E0150 000DD0B0 7F 83 E3 78 */ mr r3, r28
/* 800E0154 000DD0B4 38 81 00 10 */ addi r4, r1, 0x10
/* 800E0158 000DD0B8 3B 60 00 01 */ li r27, 1
/* 800E015C 000DD0BC 48 28 20 15 */ bl "__ct__17CParticleElectricF30TToken<20CElectricDescription>"
/* 800E0160 000DD0C0 7C 7C 1B 78 */ mr r28, r3
lbl_800E0164:
/* 800E0164 000DD0C4 80 7E 02 50 */ lwz r3, 0x250(r30)
/* 800E0168 000DD0C8 28 03 00 00 */ cmplwi r3, 0
/* 800E016C 000DD0CC 41 82 00 18 */ beq lbl_800E0184
/* 800E0170 000DD0D0 81 83 00 00 */ lwz r12, 0(r3)
/* 800E0174 000DD0D4 38 80 00 01 */ li r4, 1
/* 800E0178 000DD0D8 81 8C 00 08 */ lwz r12, 8(r12)
/* 800E017C 000DD0DC 7D 89 03 A6 */ mtctr r12
/* 800E0180 000DD0E0 4E 80 04 21 */ bctrl
lbl_800E0184:
/* 800E0184 000DD0E4 7F 60 07 75 */ extsb. r0, r27
/* 800E0188 000DD0E8 93 9E 02 50 */ stw r28, 0x250(r30)
/* 800E018C 000DD0EC 41 82 00 10 */ beq lbl_800E019C
/* 800E0190 000DD0F0 38 61 00 10 */ addi r3, r1, 0x10
/* 800E0194 000DD0F4 38 80 00 00 */ li r4, 0
/* 800E0198 000DD0F8 48 26 0C A9 */ bl __dt__6CTokenFv
lbl_800E019C:
/* 800E019C 000DD0FC 80 7E 02 50 */ lwz r3, 0x250(r30)
/* 800E01A0 000DD100 38 9E 00 04 */ addi r4, r30, 4
/* 800E01A4 000DD104 81 83 00 00 */ lwz r12, 0(r3)
/* 800E01A8 000DD108 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 800E01AC 000DD10C 7D 89 03 A6 */ mtctr r12
/* 800E01B0 000DD110 4E 80 04 21 */ bctrl
/* 800E01B4 000DD114 38 61 00 18 */ addi r3, r1, 0x18
/* 800E01B8 000DD118 38 80 00 00 */ li r4, 0
/* 800E01BC 000DD11C 48 26 0C 85 */ bl __dt__6CTokenFv
lbl_800E01C0:
/* 800E01C0 000DD120 2C 1F 00 02 */ cmpwi r31, 2
/* 800E01C4 000DD124 41 82 00 94 */ beq lbl_800E0258
/* 800E01C8 000DD128 40 80 00 10 */ bge lbl_800E01D8
/* 800E01CC 000DD12C 2C 1F 00 01 */ cmpwi r31, 1
/* 800E01D0 000DD130 40 80 00 14 */ bge lbl_800E01E4
/* 800E01D4 000DD134 48 00 01 34 */ b lbl_800E0308
lbl_800E01D8:
/* 800E01D8 000DD138 2C 1F 00 04 */ cmpwi r31, 4
/* 800E01DC 000DD13C 40 80 01 2C */ bge lbl_800E0308
/* 800E01E0 000DD140 48 00 00 30 */ b lbl_800E0210
lbl_800E01E4:
/* 800E01E4 000DD144 80 7E 02 54 */ lwz r3, 0x254(r30)
/* 800E01E8 000DD148 28 03 00 00 */ cmplwi r3, 0
/* 800E01EC 000DD14C 41 82 00 18 */ beq lbl_800E0204
/* 800E01F0 000DD150 81 83 00 00 */ lwz r12, 0(r3)
/* 800E01F4 000DD154 38 80 00 01 */ li r4, 1
/* 800E01F8 000DD158 81 8C 00 08 */ lwz r12, 8(r12)
/* 800E01FC 000DD15C 7D 89 03 A6 */ mtctr r12
/* 800E0200 000DD160 4E 80 04 21 */ bctrl
lbl_800E0204:
/* 800E0204 000DD164 38 00 00 00 */ li r0, 0
/* 800E0208 000DD168 90 1E 02 54 */ stw r0, 0x254(r30)
/* 800E020C 000DD16C 48 00 00 FC */ b lbl_800E0308
lbl_800E0210:
/* 800E0210 000DD170 80 1E 01 CC */ lwz r0, 0x1cc(r30)
/* 800E0214 000DD174 2C 00 00 03 */ cmpwi r0, 3
/* 800E0218 000DD178 41 82 00 F0 */ beq lbl_800E0308
/* 800E021C 000DD17C 88 1E 02 58 */ lbz r0, 0x258(r30)
/* 800E0220 000DD180 38 60 00 01 */ li r3, 1
/* 800E0224 000DD184 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 800E0228 000DD188 C0 02 8F 7C */ lfs f0, lbl_805AAC9C@sda21(r2)
/* 800E022C 000DD18C 98 1E 02 58 */ stb r0, 0x258(r30)
/* 800E0230 000DD190 D0 1E 02 4C */ stfs f0, 0x24c(r30)
/* 800E0234 000DD194 80 7E 02 54 */ lwz r3, 0x254(r30)
/* 800E0238 000DD198 28 03 00 00 */ cmplwi r3, 0
/* 800E023C 000DD19C 41 82 00 CC */ beq lbl_800E0308
/* 800E0240 000DD1A0 81 83 00 00 */ lwz r12, 0(r3)
/* 800E0244 000DD1A4 38 80 00 00 */ li r4, 0
/* 800E0248 000DD1A8 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 800E024C 000DD1AC 7D 89 03 A6 */ mtctr r12
/* 800E0250 000DD1B0 4E 80 04 21 */ bctrl
/* 800E0254 000DD1B4 48 00 00 B4 */ b lbl_800E0308
lbl_800E0258:
/* 800E0258 000DD1B8 3C 60 80 3D */ lis r3, lbl_803CE568@ha
/* 800E025C 000DD1BC 3B 60 00 00 */ li r27, 0
/* 800E0260 000DD1C0 38 83 E5 68 */ addi r4, r3, lbl_803CE568@l
/* 800E0264 000DD1C4 38 A0 00 00 */ li r5, 0
/* 800E0268 000DD1C8 38 60 03 40 */ li r3, 0x340
/* 800E026C 000DD1CC 48 23 56 01 */ bl __nw__FUlPCcPCc
/* 800E0270 000DD1D0 7C 7C 1B 79 */ or. r28, r3, r3
/* 800E0274 000DD1D4 41 82 00 2C */ beq lbl_800E02A0
/* 800E0278 000DD1D8 38 61 00 08 */ addi r3, r1, 8
/* 800E027C 000DD1DC 38 9E 02 40 */ addi r4, r30, 0x240
/* 800E0280 000DD1E0 48 26 0C 29 */ bl __ct__6CTokenFRC6CToken
/* 800E0284 000DD1E4 7F 83 E3 78 */ mr r3, r28
/* 800E0288 000DD1E8 38 81 00 08 */ addi r4, r1, 8
/* 800E028C 000DD1EC 3B 60 00 01 */ li r27, 1
/* 800E0290 000DD1F0 38 A0 00 00 */ li r5, 0
/* 800E0294 000DD1F4 38 C0 00 01 */ li r6, 1
/* 800E0298 000DD1F8 48 23 F1 49 */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 800E029C 000DD1FC 7C 7C 1B 78 */ mr r28, r3
lbl_800E02A0:
/* 800E02A0 000DD200 80 7E 02 54 */ lwz r3, 0x254(r30)
/* 800E02A4 000DD204 28 03 00 00 */ cmplwi r3, 0
/* 800E02A8 000DD208 41 82 00 18 */ beq lbl_800E02C0
/* 800E02AC 000DD20C 81 83 00 00 */ lwz r12, 0(r3)
/* 800E02B0 000DD210 38 80 00 01 */ li r4, 1
/* 800E02B4 000DD214 81 8C 00 08 */ lwz r12, 8(r12)
/* 800E02B8 000DD218 7D 89 03 A6 */ mtctr r12
/* 800E02BC 000DD21C 4E 80 04 21 */ bctrl
lbl_800E02C0:
/* 800E02C0 000DD220 7F 60 07 75 */ extsb. r0, r27
/* 800E02C4 000DD224 93 9E 02 54 */ stw r28, 0x254(r30)
/* 800E02C8 000DD228 41 82 00 10 */ beq lbl_800E02D8
/* 800E02CC 000DD22C 38 61 00 08 */ addi r3, r1, 8
/* 800E02D0 000DD230 38 80 00 00 */ li r4, 0
/* 800E02D4 000DD234 48 26 0B 6D */ bl __dt__6CTokenFv
lbl_800E02D8:
/* 800E02D8 000DD238 80 7E 02 54 */ lwz r3, 0x254(r30)
/* 800E02DC 000DD23C 38 9E 00 04 */ addi r4, r30, 4
/* 800E02E0 000DD240 81 83 00 00 */ lwz r12, 0(r3)
/* 800E02E4 000DD244 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 800E02E8 000DD248 7D 89 03 A6 */ mtctr r12
/* 800E02EC 000DD24C 4E 80 04 21 */ bctrl
/* 800E02F0 000DD250 C0 02 8F 80 */ lfs f0, lbl_805AACA0@sda21(r2)
/* 800E02F4 000DD254 38 60 00 01 */ li r3, 1
/* 800E02F8 000DD258 D0 1E 02 4C */ stfs f0, 0x24c(r30)
/* 800E02FC 000DD25C 88 1E 02 58 */ lbz r0, 0x258(r30)
/* 800E0300 000DD260 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 800E0304 000DD264 98 1E 02 58 */ stb r0, 0x258(r30)
lbl_800E0308:
/* 800E0308 000DD268 93 FE 01 CC */ stw r31, 0x1cc(r30)
lbl_800E030C:
/* 800E030C 000DD26C BB 61 00 2C */ lmw r27, 0x2c(r1)
/* 800E0310 000DD270 80 01 00 44 */ lwz r0, 0x44(r1)
/* 800E0314 000DD274 7C 08 03 A6 */ mtlr r0
/* 800E0318 000DD278 38 21 00 40 */ addi r1, r1, 0x40
/* 800E031C 000DD27C 4E 80 00 20 */ blr
.global IsLoaded__9CWaveBeamCFv
IsLoaded__9CWaveBeamCFv:
/* 800E0320 000DD280 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800E0324 000DD284 7C 08 02 A6 */ mflr r0
/* 800E0328 000DD288 90 01 00 14 */ stw r0, 0x14(r1)
/* 800E032C 000DD28C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800E0330 000DD290 3B E0 00 00 */ li r31, 0
/* 800E0334 000DD294 93 C1 00 08 */ stw r30, 8(r1)
/* 800E0338 000DD298 7C 7E 1B 78 */ mr r30, r3
/* 800E033C 000DD29C 48 0D B0 69 */ bl IsLoaded__10CGunWeaponCFv
/* 800E0340 000DD2A0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800E0344 000DD2A4 41 82 00 14 */ beq lbl_800E0358
/* 800E0348 000DD2A8 88 1E 02 58 */ lbz r0, 0x258(r30)
/* 800E034C 000DD2AC 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800E0350 000DD2B0 41 82 00 08 */ beq lbl_800E0358
/* 800E0354 000DD2B4 3B E0 00 01 */ li r31, 1
lbl_800E0358:
/* 800E0358 000DD2B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800E035C 000DD2BC 7F E3 FB 78 */ mr r3, r31
/* 800E0360 000DD2C0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800E0364 000DD2C4 83 C1 00 08 */ lwz r30, 8(r1)
/* 800E0368 000DD2C8 7C 08 03 A6 */ mtlr r0
/* 800E036C 000DD2CC 38 21 00 10 */ addi r1, r1, 0x10
/* 800E0370 000DD2D0 4E 80 00 20 */ blr
.global Unload__9CWaveBeamFR13CStateManager
Unload__9CWaveBeamFR13CStateManager:
/* 800E0374 000DD2D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800E0378 000DD2D8 7C 08 02 A6 */ mflr r0
/* 800E037C 000DD2DC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800E0380 000DD2E0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800E0384 000DD2E4 7C 7F 1B 78 */ mr r31, r3
/* 800E0388 000DD2E8 48 0D B0 29 */ bl Unload__10CGunWeaponFR13CStateManager
/* 800E038C 000DD2EC 38 00 00 00 */ li r0, 0
/* 800E0390 000DD2F0 38 7F 02 1C */ addi r3, r31, 0x21c
/* 800E0394 000DD2F4 90 1F 02 24 */ stw r0, 0x224(r31)
/* 800E0398 000DD2F8 48 26 09 A9 */ bl Unlock__6CTokenFv
/* 800E039C 000DD2FC 38 00 00 00 */ li r0, 0
/* 800E03A0 000DD300 38 7F 02 40 */ addi r3, r31, 0x240
/* 800E03A4 000DD304 90 1F 02 48 */ stw r0, 0x248(r31)
/* 800E03A8 000DD308 48 26 09 99 */ bl Unlock__6CTokenFv
/* 800E03AC 000DD30C 38 00 00 00 */ li r0, 0
/* 800E03B0 000DD310 38 7F 02 34 */ addi r3, r31, 0x234
/* 800E03B4 000DD314 90 1F 02 3C */ stw r0, 0x23c(r31)
/* 800E03B8 000DD318 48 26 09 89 */ bl Unlock__6CTokenFv
/* 800E03BC 000DD31C 38 00 00 00 */ li r0, 0
/* 800E03C0 000DD320 38 7F 02 28 */ addi r3, r31, 0x228
/* 800E03C4 000DD324 90 1F 02 30 */ stw r0, 0x230(r31)
/* 800E03C8 000DD328 48 26 09 79 */ bl Unlock__6CTokenFv
/* 800E03CC 000DD32C 7F E3 FB 78 */ mr r3, r31
/* 800E03D0 000DD330 48 00 07 A9 */ bl ReInitVariables__9CWaveBeamFv
/* 800E03D4 000DD334 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800E03D8 000DD338 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800E03DC 000DD33C 7C 08 03 A6 */ mtlr r0
/* 800E03E0 000DD340 38 21 00 10 */ addi r1, r1, 0x10
/* 800E03E4 000DD344 4E 80 00 20 */ blr
.global Load__9CWaveBeamFb
Load__9CWaveBeamFb:
/* 800E03E8 000DD348 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800E03EC 000DD34C 7C 08 02 A6 */ mflr r0
/* 800E03F0 000DD350 90 01 00 14 */ stw r0, 0x14(r1)
/* 800E03F4 000DD354 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800E03F8 000DD358 7C 7F 1B 78 */ mr r31, r3
/* 800E03FC 000DD35C 48 0D B0 D9 */ bl Load__10CGunWeaponFR13CStateManagerb
/* 800E0400 000DD360 38 7F 02 28 */ addi r3, r31, 0x228
/* 800E0404 000DD364 48 26 09 81 */ bl Lock__6CTokenFv
/* 800E0408 000DD368 38 7F 02 34 */ addi r3, r31, 0x234
/* 800E040C 000DD36C 48 26 09 79 */ bl Lock__6CTokenFv
/* 800E0410 000DD370 38 7F 02 40 */ addi r3, r31, 0x240
/* 800E0414 000DD374 48 26 09 71 */ bl Lock__6CTokenFv
/* 800E0418 000DD378 38 7F 02 1C */ addi r3, r31, 0x21c
/* 800E041C 000DD37C 48 26 09 69 */ bl Lock__6CTokenFv
/* 800E0420 000DD380 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800E0424 000DD384 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800E0428 000DD388 7C 08 03 A6 */ mtlr r0
/* 800E042C 000DD38C 38 21 00 10 */ addi r1, r1, 0x10
/* 800E0430 000DD390 4E 80 00 20 */ blr
.global Fire__9CWaveBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
Fire__9CWaveBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId:
/* 800E0434 000DD394 94 21 FE 10 */ stwu r1, -0x1f0(r1)
/* 800E0438 000DD398 7C 08 02 A6 */ mflr r0
/* 800E043C 000DD39C 90 01 01 F4 */ stw r0, 0x1f4(r1)
/* 800E0440 000DD3A0 DB E1 01 E0 */ stfd f31, 0x1e0(r1)
/* 800E0444 000DD3A4 F3 E1 01 E8 */ psq_st f31, 488(r1), 0, qr0
/* 800E0448 000DD3A8 DB C1 01 D0 */ stfd f30, 0x1d0(r1)
/* 800E044C 000DD3AC F3 C1 01 D8 */ psq_st f30, 472(r1), 0, qr0
/* 800E0450 000DD3B0 DB A1 01 C0 */ stfd f29, 0x1c0(r1)
/* 800E0454 000DD3B4 F3 A1 01 C8 */ psq_st f29, 456(r1), 0, qr0
/* 800E0458 000DD3B8 DB 81 01 B0 */ stfd f28, 0x1b0(r1)
/* 800E045C 000DD3BC F3 81 01 B8 */ psq_st f28, 440(r1), 0, qr0
/* 800E0460 000DD3C0 DB 61 01 A0 */ stfd f27, 0x1a0(r1)
/* 800E0464 000DD3C4 F3 61 01 A8 */ psq_st f27, 424(r1), 0, qr0
/* 800E0468 000DD3C8 DB 41 01 90 */ stfd f26, 0x190(r1)
/* 800E046C 000DD3CC F3 41 01 98 */ psq_st f26, 408(r1), 0, qr0
/* 800E0470 000DD3D0 BE 21 01 54 */ stmw r17, 0x154(r1)
/* 800E0474 000DD3D4 7C B5 2B 79 */ or. r21, r5, r5
/* 800E0478 000DD3D8 FF 40 08 90 */ fmr f26, f1
/* 800E047C 000DD3DC FF 60 10 90 */ fmr f27, f2
/* 800E0480 000DD3E0 7C 73 1B 78 */ mr r19, r3
/* 800E0484 000DD3E4 7C 94 23 78 */ mr r20, r4
/* 800E0488 000DD3E8 7C D6 33 78 */ mr r22, r6
/* 800E048C 000DD3EC 7C F7 3B 78 */ mr r23, r7
/* 800E0490 000DD3F0 7D 18 43 78 */ mr r24, r8
/* 800E0494 000DD3F4 41 82 00 18 */ beq lbl_800E04AC
/* 800E0498 000DD3F8 A0 18 00 00 */ lhz r0, 0(r24)
/* 800E049C 000DD3FC 39 01 00 44 */ addi r8, r1, 0x44
/* 800E04A0 000DD400 B0 01 00 44 */ sth r0, 0x44(r1)
/* 800E04A4 000DD404 48 0D B3 E5 */ bl Fire__10CGunWeaponFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
/* 800E04A8 000DD408 48 00 01 E4 */ b lbl_800E068C
lbl_800E04AC:
/* 800E04AC 000DD40C 80 77 09 00 */ lwz r3, 0x900(r23)
/* 800E04B0 000DD410 48 23 20 2D */ bl Float__9CRandom16Fv
/* 800E04B4 000DD414 1C 15 00 0C */ mulli r0, r21, 0xc
/* 800E04B8 000DD418 C0 02 8F 84 */ lfs f0, lbl_805AACA4@sda21(r2)
/* 800E04BC 000DD41C 3C 60 80 3D */ lis r3, lbl_803CE568@ha
/* 800E04C0 000DD420 C3 A2 8F 88 */ lfs f29, lbl_805AACA8@sda21(r2)
/* 800E04C4 000DD424 EF 80 00 72 */ fmuls f28, f0, f1
/* 800E04C8 000DD428 C3 CD A2 F8 */ lfs f30, lbl_805A8EB8@sda21(r13)
/* 800E04CC 000DD42C 7F 53 02 14 */ add r26, r19, r0
/* 800E04D0 000DD430 CB E2 8F 90 */ lfd f31, lbl_805AACB0@sda21(r2)
/* 800E04D4 000DD434 3B E3 E5 68 */ addi r31, r3, lbl_803CE568@l
/* 800E04D8 000DD438 3B 20 00 00 */ li r25, 0
/* 800E04DC 000DD43C 3F C0 43 30 */ lis r30, 0x4330
/* 800E04E0 000DD440 3B 5A 01 48 */ addi r26, r26, 0x148
lbl_800E04E4:
/* 800E04E4 000DD444 6F 20 80 00 */ xoris r0, r25, 0x8000
/* 800E04E8 000DD448 93 C1 01 48 */ stw r30, 0x148(r1)
/* 800E04EC 000DD44C 38 61 00 B4 */ addi r3, r1, 0xb4
/* 800E04F0 000DD450 38 81 00 50 */ addi r4, r1, 0x50
/* 800E04F4 000DD454 90 01 01 4C */ stw r0, 0x14c(r1)
/* 800E04F8 000DD458 C8 01 01 48 */ lfd f0, 0x148(r1)
/* 800E04FC 000DD45C EC 00 F8 28 */ fsubs f0, f0, f31
/* 800E0500 000DD460 EC 1C 00 2A */ fadds f0, f28, f0
/* 800E0504 000DD464 EC 1E 00 32 */ fmuls f0, f30, f0
/* 800E0508 000DD468 EC 1D 00 32 */ fmuls f0, f29, f0
/* 800E050C 000DD46C D0 01 00 50 */ stfs f0, 0x50(r1)
/* 800E0510 000DD470 48 23 33 99 */ bl RotateY__12CTransform4fFRC9CRelAngle
/* 800E0514 000DD474 7E C4 B3 78 */ mr r4, r22
/* 800E0518 000DD478 38 61 00 E4 */ addi r3, r1, 0xe4
/* 800E051C 000DD47C 38 A1 00 B4 */ addi r5, r1, 0xb4
/* 800E0520 000DD480 48 23 24 31 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 800E0524 000DD484 38 61 01 14 */ addi r3, r1, 0x114
/* 800E0528 000DD488 38 81 00 E4 */ addi r4, r1, 0xe4
/* 800E052C 000DD48C 48 23 26 49 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 800E0530 000DD490 7F E4 FB 78 */ mr r4, r31
/* 800E0534 000DD494 3A 40 00 00 */ li r18, 0
/* 800E0538 000DD498 38 60 03 D8 */ li r3, 0x3d8
/* 800E053C 000DD49C 38 A0 00 00 */ li r5, 0
/* 800E0540 000DD4A0 48 23 53 2D */ bl __nw__FUlPCcPCc
/* 800E0544 000DD4A4 7C 7D 1B 79 */ or. r29, r3, r3
/* 800E0548 000DD4A8 41 82 00 DC */ beq lbl_800E0624
/* 800E054C 000DD4AC C0 02 8F 8C */ lfs f0, lbl_805AACAC@sda21(r2)
/* 800E0550 000DD4B0 38 00 00 00 */ li r0, 0
/* 800E0554 000DD4B4 A0 B8 00 00 */ lhz r5, 0(r24)
/* 800E0558 000DD4B8 7E E4 BB 78 */ mr r4, r23
/* 800E055C 000DD4BC 98 01 00 6C */ stb r0, 0x6c(r1)
/* 800E0560 000DD4C0 38 61 00 30 */ addi r3, r1, 0x30
/* 800E0564 000DD4C4 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13)
/* 800E0568 000DD4C8 3A 40 00 01 */ li r18, 1
/* 800E056C 000DD4CC D0 01 00 54 */ stfs f0, 0x54(r1)
/* 800E0570 000DD4D0 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 800E0574 000DD4D4 D0 01 00 5C */ stfs f0, 0x5c(r1)
/* 800E0578 000DD4D8 B0 A1 00 40 */ sth r5, 0x40(r1)
/* 800E057C 000DD4DC A0 B3 01 C4 */ lhz r5, 0x1c4(r19)
/* 800E0580 000DD4E0 B0 A1 00 38 */ sth r5, 0x38(r1)
/* 800E0584 000DD4E4 B0 A1 00 3C */ sth r5, 0x3c(r1)
/* 800E0588 000DD4E8 90 01 00 4C */ stw r0, 0x4c(r1)
/* 800E058C 000DD4EC 4B F6 CB 51 */ bl AllocateUniqueId__13CStateManagerFv
/* 800E0590 000DD4F0 A0 01 00 30 */ lhz r0, 0x30(r1)
/* 800E0594 000DD4F4 FC 20 D8 90 */ fmr f1, f27
/* 800E0598 000DD4F8 7E 64 9B 78 */ mr r4, r19
/* 800E059C 000DD4FC 7E E5 BB 78 */ mr r5, r23
/* 800E05A0 000DD500 B0 01 00 34 */ sth r0, 0x34(r1)
/* 800E05A4 000DD504 7E A6 AB 78 */ mr r6, r21
/* 800E05A8 000DD508 38 61 00 70 */ addi r3, r1, 0x70
/* 800E05AC 000DD50C 83 93 01 C8 */ lwz r28, 0x1c8(r19)
/* 800E05B0 000DD510 83 73 01 C0 */ lwz r27, 0x1c0(r19)
/* 800E05B4 000DD514 48 0D B1 89 */ bl GetDamageInfo__10CGunWeaponFR13CStateManagerQ212CPlayerState12EChargeStagef
/* 800E05B8 000DD518 38 61 00 4C */ addi r3, r1, 0x4c
/* 800E05BC 000DD51C 38 01 00 3C */ addi r0, r1, 0x3c
/* 800E05C0 000DD520 90 61 00 08 */ stw r3, 8(r1)
/* 800E05C4 000DD524 38 61 00 40 */ addi r3, r1, 0x40
/* 800E05C8 000DD528 38 80 08 00 */ li r4, 0x800
/* 800E05CC 000DD52C 3A 21 00 54 */ addi r17, r1, 0x54
/* 800E05D0 000DD530 90 01 00 0C */ stw r0, 0xc(r1)
/* 800E05D4 000DD534 39 81 00 60 */ addi r12, r1, 0x60
/* 800E05D8 000DD538 A1 62 C5 FC */ lhz r11, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
/* 800E05DC 000DD53C 38 00 00 00 */ li r0, 0
/* 800E05E0 000DD540 90 61 00 10 */ stw r3, 0x10(r1)
/* 800E05E4 000DD544 7F A3 EB 78 */ mr r3, r29
/* 800E05E8 000DD548 7F 45 D3 78 */ mr r5, r26
/* 800E05EC 000DD54C 7F 66 DB 78 */ mr r6, r27
/* 800E05F0 000DD550 90 81 00 14 */ stw r4, 0x14(r1)
/* 800E05F4 000DD554 7F 88 E3 78 */ mr r8, r28
/* 800E05F8 000DD558 38 E1 01 14 */ addi r7, r1, 0x114
/* 800E05FC 000DD55C 39 21 00 70 */ addi r9, r1, 0x70
/* 800E0600 000DD560 92 81 00 18 */ stw r20, 0x18(r1)
/* 800E0604 000DD564 39 41 00 34 */ addi r10, r1, 0x34
/* 800E0608 000DD568 38 80 00 01 */ li r4, 1
/* 800E060C 000DD56C 92 21 00 1C */ stw r17, 0x1c(r1)
/* 800E0610 000DD570 91 81 00 20 */ stw r12, 0x20(r1)
/* 800E0614 000DD574 91 61 00 24 */ stw r11, 0x24(r1)
/* 800E0618 000DD578 90 01 00 28 */ stw r0, 0x28(r1)
/* 800E061C 000DD57C 48 13 50 7D */ bl "__ct__17CEnergyProjectileFbRC28TToken<18CWeaponDescription>11EWeaponTypeRC12CTransform4f14EMaterialTypesRC11CDamageInfo9TUniqueId7TAreaId9TUniqueId9TUniqueIdUibRC9CVector3fRCQ24rstl50optional_object<31TLockedToken<15CGenDescription>>sb"
/* 800E0620 000DD580 7C 7D 1B 78 */ mr r29, r3
lbl_800E0624:
/* 800E0624 000DD584 7E 40 07 75 */ extsb. r0, r18
/* 800E0628 000DD588 41 82 00 30 */ beq lbl_800E0658
/* 800E062C 000DD58C 88 01 00 6C */ lbz r0, 0x6c(r1)
/* 800E0630 000DD590 28 00 00 00 */ cmplwi r0, 0
/* 800E0634 000DD594 41 82 00 1C */ beq lbl_800E0650
/* 800E0638 000DD598 34 61 00 60 */ addic. r3, r1, 0x60
/* 800E063C 000DD59C 41 82 00 14 */ beq lbl_800E0650
/* 800E0640 000DD5A0 28 03 00 00 */ cmplwi r3, 0
/* 800E0644 000DD5A4 41 82 00 0C */ beq lbl_800E0650
/* 800E0648 000DD5A8 38 80 00 00 */ li r4, 0
/* 800E064C 000DD5AC 48 26 07 F5 */ bl __dt__6CTokenFv
lbl_800E0650:
/* 800E0650 000DD5B0 38 00 00 00 */ li r0, 0
/* 800E0654 000DD5B4 98 01 00 6C */ stb r0, 0x6c(r1)
lbl_800E0658:
/* 800E0658 000DD5B8 7E E3 BB 78 */ mr r3, r23
/* 800E065C 000DD5BC 7F A4 EB 78 */ mr r4, r29
/* 800E0660 000DD5C0 4B F6 C6 95 */ bl AddObject__13CStateManagerFP7CEntityQ213CStateManager18EScriptPersistence
/* 800E0664 000DD5C4 7F A3 EB 78 */ mr r3, r29
/* 800E0668 000DD5C8 FC 20 D0 90 */ fmr f1, f26
/* 800E066C 000DD5CC 81 9D 00 00 */ lwz r12, 0(r29)
/* 800E0670 000DD5D0 7E E4 BB 78 */ mr r4, r23
/* 800E0674 000DD5D4 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 800E0678 000DD5D8 7D 89 03 A6 */ mtctr r12
/* 800E067C 000DD5DC 4E 80 04 21 */ bctrl
/* 800E0680 000DD5E0 3B 39 00 01 */ addi r25, r25, 1
/* 800E0684 000DD5E4 2C 19 00 03 */ cmpwi r25, 3
/* 800E0688 000DD5E8 41 80 FE 5C */ blt lbl_800E04E4
lbl_800E068C:
/* 800E068C 000DD5EC 2C 15 00 00 */ cmpwi r21, 0
/* 800E0690 000DD5F0 41 82 00 14 */ beq lbl_800E06A4
/* 800E0694 000DD5F4 88 13 02 18 */ lbz r0, 0x218(r19)
/* 800E0698 000DD5F8 38 60 00 01 */ li r3, 1
/* 800E069C 000DD5FC 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 800E06A0 000DD600 98 13 02 18 */ stb r0, 0x218(r19)
lbl_800E06A4:
/* 800E06A4 000DD604 56 A0 08 3C */ slwi r0, r21, 1
/* 800E06A8 000DD608 38 62 8F 78 */ addi r3, r2, lbl_805AAC98@sda21
/* 800E06AC 000DD60C 7C 83 02 2E */ lhzx r4, r3, r0
/* 800E06B0 000DD610 7E 85 A3 78 */ mr r5, r20
/* 800E06B4 000DD614 38 61 00 48 */ addi r3, r1, 0x48
/* 800E06B8 000DD618 38 C0 00 00 */ li r6, 0
/* 800E06BC 000DD61C 38 E0 00 4A */ li r7, 0x4a
/* 800E06C0 000DD620 48 1A A4 39 */ bl play_sfx__12NWeaponTypesFUsbbs
/* 800E06C4 000DD624 80 73 00 20 */ lwz r3, 0x20(r19)
/* 800E06C8 000DD628 39 20 00 00 */ li r9, 0
/* 800E06CC 000DD62C 39 00 00 01 */ li r8, 1
/* 800E06D0 000DD630 56 A5 10 3A */ slwi r5, r21, 2
/* 800E06D4 000DD634 88 03 02 20 */ lbz r0, 0x220(r3)
/* 800E06D8 000DD638 51 20 36 72 */ rlwimi r0, r9, 6, 0x19, 0x19
/* 800E06DC 000DD63C 38 82 A9 D0 */ addi r4, r2, lbl_805AC6F0@sda21
/* 800E06E0 000DD640 C0 02 8F 8C */ lfs f0, lbl_805AACAC@sda21(r2)
/* 800E06E4 000DD644 98 03 02 20 */ stb r0, 0x220(r3)
/* 800E06E8 000DD648 38 00 FF FF */ li r0, -1
/* 800E06EC 000DD64C 7C C4 28 2E */ lwzx r6, r4, r5
/* 800E06F0 000DD650 38 81 00 8C */ addi r4, r1, 0x8c
/* 800E06F4 000DD654 88 E3 02 20 */ lbz r7, 0x220(r3)
/* 800E06F8 000DD658 51 07 3E 30 */ rlwimi r7, r8, 7, 0x18, 0x18
/* 800E06FC 000DD65C 38 A0 00 00 */ li r5, 0
/* 800E0700 000DD660 98 E3 02 20 */ stb r7, 0x220(r3)
/* 800E0704 000DD664 90 C1 00 8C */ stw r6, 0x8c(r1)
/* 800E0708 000DD668 90 01 00 90 */ stw r0, 0x90(r1)
/* 800E070C 000DD66C D0 01 00 94 */ stfs f0, 0x94(r1)
/* 800E0710 000DD670 99 01 00 98 */ stb r8, 0x98(r1)
/* 800E0714 000DD674 91 21 00 9C */ stw r9, 0x9c(r1)
/* 800E0718 000DD678 91 21 00 A0 */ stw r9, 0xa0(r1)
/* 800E071C 000DD67C 99 21 00 A4 */ stb r9, 0xa4(r1)
/* 800E0720 000DD680 91 21 00 A8 */ stw r9, 0xa8(r1)
/* 800E0724 000DD684 91 21 00 AC */ stw r9, 0xac(r1)
/* 800E0728 000DD688 91 21 00 B0 */ stw r9, 0xb0(r1)
/* 800E072C 000DD68C 4B F4 C6 51 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
/* 800E0730 000DD690 E3 E1 01 E8 */ psq_l f31, 488(r1), 0, qr0
/* 800E0734 000DD694 CB E1 01 E0 */ lfd f31, 0x1e0(r1)
/* 800E0738 000DD698 E3 C1 01 D8 */ psq_l f30, 472(r1), 0, qr0
/* 800E073C 000DD69C CB C1 01 D0 */ lfd f30, 0x1d0(r1)
/* 800E0740 000DD6A0 E3 A1 01 C8 */ psq_l f29, 456(r1), 0, qr0
/* 800E0744 000DD6A4 CB A1 01 C0 */ lfd f29, 0x1c0(r1)
/* 800E0748 000DD6A8 E3 81 01 B8 */ psq_l f28, 440(r1), 0, qr0
/* 800E074C 000DD6AC CB 81 01 B0 */ lfd f28, 0x1b0(r1)
/* 800E0750 000DD6B0 E3 61 01 A8 */ psq_l f27, 424(r1), 0, qr0
/* 800E0754 000DD6B4 CB 61 01 A0 */ lfd f27, 0x1a0(r1)
/* 800E0758 000DD6B8 E3 41 01 98 */ psq_l f26, 408(r1), 0, qr0
/* 800E075C 000DD6BC CB 41 01 90 */ lfd f26, 0x190(r1)
/* 800E0760 000DD6C0 BA 21 01 54 */ lmw r17, 0x154(r1)
/* 800E0764 000DD6C4 80 01 01 F4 */ lwz r0, 0x1f4(r1)
/* 800E0768 000DD6C8 7C 08 03 A6 */ mtlr r0
/* 800E076C 000DD6CC 38 21 01 F0 */ addi r1, r1, 0x1f0
/* 800E0770 000DD6D0 4E 80 00 20 */ blr
.global Update__9CWaveBeamFfR13CStateManager
Update__9CWaveBeamFfR13CStateManager:
/* 800E0774 000DD6D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800E0778 000DD6D8 7C 08 02 A6 */ mflr r0
/* 800E077C 000DD6DC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800E0780 000DD6E0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800E0784 000DD6E4 7C 7F 1B 78 */ mr r31, r3
/* 800E0788 000DD6E8 48 0D BC F1 */ bl Update__10CGunWeaponFfR13CStateManager
/* 800E078C 000DD6EC 7F E3 FB 78 */ mr r3, r31
/* 800E0790 000DD6F0 81 9F 00 00 */ lwz r12, 0(r31)
/* 800E0794 000DD6F4 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 800E0798 000DD6F8 7D 89 03 A6 */ mtctr r12
/* 800E079C 000DD6FC 4E 80 04 21 */ bctrl
/* 800E07A0 000DD700 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800E07A4 000DD704 40 82 01 74 */ bne lbl_800E0918
/* 800E07A8 000DD708 7F E3 FB 78 */ mr r3, r31
/* 800E07AC 000DD70C 48 0D AB F9 */ bl IsLoaded__10CGunWeaponCFv
/* 800E07B0 000DD710 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800E07B4 000DD714 41 82 01 64 */ beq lbl_800E0918
/* 800E07B8 000DD718 88 1F 02 58 */ lbz r0, 0x258(r31)
/* 800E07BC 000DD71C 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800E07C0 000DD720 40 82 01 58 */ bne lbl_800E0918
/* 800E07C4 000DD724 80 1F 02 30 */ lwz r0, 0x230(r31)
/* 800E07C8 000DD728 28 00 00 00 */ cmplwi r0, 0
/* 800E07CC 000DD72C 41 82 00 0C */ beq lbl_800E07D8
/* 800E07D0 000DD730 38 60 00 01 */ li r3, 1
/* 800E07D4 000DD734 48 00 00 3C */ b lbl_800E0810
lbl_800E07D8:
/* 800E07D8 000DD738 88 1F 02 2C */ lbz r0, 0x22c(r31)
/* 800E07DC 000DD73C 28 00 00 00 */ cmplwi r0, 0
/* 800E07E0 000DD740 41 82 00 2C */ beq lbl_800E080C
/* 800E07E4 000DD744 80 7F 02 28 */ lwz r3, 0x228(r31)
/* 800E07E8 000DD748 80 03 00 10 */ lwz r0, 0x10(r3)
/* 800E07EC 000DD74C 28 00 00 00 */ cmplwi r0, 0
/* 800E07F0 000DD750 41 82 00 1C */ beq lbl_800E080C
/* 800E07F4 000DD754 38 7F 02 28 */ addi r3, r31, 0x228
/* 800E07F8 000DD758 48 26 06 15 */ bl GetObj__6CTokenFv
/* 800E07FC 000DD75C 80 03 00 04 */ lwz r0, 4(r3)
/* 800E0800 000DD760 38 60 00 01 */ li r3, 1
/* 800E0804 000DD764 90 1F 02 30 */ stw r0, 0x230(r31)
/* 800E0808 000DD768 48 00 00 08 */ b lbl_800E0810
lbl_800E080C:
/* 800E080C 000DD76C 38 60 00 00 */ li r3, 0
lbl_800E0810:
/* 800E0810 000DD770 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800E0814 000DD774 41 82 00 50 */ beq lbl_800E0864
/* 800E0818 000DD778 80 1F 02 3C */ lwz r0, 0x23c(r31)
/* 800E081C 000DD77C 28 00 00 00 */ cmplwi r0, 0
/* 800E0820 000DD780 41 82 00 0C */ beq lbl_800E082C
/* 800E0824 000DD784 38 60 00 01 */ li r3, 1
/* 800E0828 000DD788 48 00 00 3C */ b lbl_800E0864
lbl_800E082C:
/* 800E082C 000DD78C 88 1F 02 38 */ lbz r0, 0x238(r31)
/* 800E0830 000DD790 28 00 00 00 */ cmplwi r0, 0
/* 800E0834 000DD794 41 82 00 2C */ beq lbl_800E0860
/* 800E0838 000DD798 80 7F 02 34 */ lwz r3, 0x234(r31)
/* 800E083C 000DD79C 80 03 00 10 */ lwz r0, 0x10(r3)
/* 800E0840 000DD7A0 28 00 00 00 */ cmplwi r0, 0
/* 800E0844 000DD7A4 41 82 00 1C */ beq lbl_800E0860
/* 800E0848 000DD7A8 38 7F 02 34 */ addi r3, r31, 0x234
/* 800E084C 000DD7AC 48 26 05 C1 */ bl GetObj__6CTokenFv
/* 800E0850 000DD7B0 80 03 00 04 */ lwz r0, 4(r3)
/* 800E0854 000DD7B4 38 60 00 01 */ li r3, 1
/* 800E0858 000DD7B8 90 1F 02 3C */ stw r0, 0x23c(r31)
/* 800E085C 000DD7BC 48 00 00 08 */ b lbl_800E0864
lbl_800E0860:
/* 800E0860 000DD7C0 38 60 00 00 */ li r3, 0
lbl_800E0864:
/* 800E0864 000DD7C4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800E0868 000DD7C8 41 82 00 50 */ beq lbl_800E08B8
/* 800E086C 000DD7CC 80 1F 02 48 */ lwz r0, 0x248(r31)
/* 800E0870 000DD7D0 28 00 00 00 */ cmplwi r0, 0
/* 800E0874 000DD7D4 41 82 00 0C */ beq lbl_800E0880
/* 800E0878 000DD7D8 38 60 00 01 */ li r3, 1
/* 800E087C 000DD7DC 48 00 00 3C */ b lbl_800E08B8
lbl_800E0880:
/* 800E0880 000DD7E0 88 1F 02 44 */ lbz r0, 0x244(r31)
/* 800E0884 000DD7E4 28 00 00 00 */ cmplwi r0, 0
/* 800E0888 000DD7E8 41 82 00 2C */ beq lbl_800E08B4
/* 800E088C 000DD7EC 80 7F 02 40 */ lwz r3, 0x240(r31)
/* 800E0890 000DD7F0 80 03 00 10 */ lwz r0, 0x10(r3)
/* 800E0894 000DD7F4 28 00 00 00 */ cmplwi r0, 0
/* 800E0898 000DD7F8 41 82 00 1C */ beq lbl_800E08B4
/* 800E089C 000DD7FC 38 7F 02 40 */ addi r3, r31, 0x240
/* 800E08A0 000DD800 48 26 05 6D */ bl GetObj__6CTokenFv
/* 800E08A4 000DD804 80 03 00 04 */ lwz r0, 4(r3)
/* 800E08A8 000DD808 38 60 00 01 */ li r3, 1
/* 800E08AC 000DD80C 90 1F 02 48 */ stw r0, 0x248(r31)
/* 800E08B0 000DD810 48 00 00 08 */ b lbl_800E08B8
lbl_800E08B4:
/* 800E08B4 000DD814 38 60 00 00 */ li r3, 0
lbl_800E08B8:
/* 800E08B8 000DD818 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800E08BC 000DD81C 41 82 00 50 */ beq lbl_800E090C
/* 800E08C0 000DD820 80 1F 02 24 */ lwz r0, 0x224(r31)
/* 800E08C4 000DD824 28 00 00 00 */ cmplwi r0, 0
/* 800E08C8 000DD828 41 82 00 0C */ beq lbl_800E08D4
/* 800E08CC 000DD82C 38 60 00 01 */ li r3, 1
/* 800E08D0 000DD830 48 00 00 3C */ b lbl_800E090C
lbl_800E08D4:
/* 800E08D4 000DD834 88 1F 02 20 */ lbz r0, 0x220(r31)
/* 800E08D8 000DD838 28 00 00 00 */ cmplwi r0, 0
/* 800E08DC 000DD83C 41 82 00 2C */ beq lbl_800E0908
/* 800E08E0 000DD840 80 7F 02 1C */ lwz r3, 0x21c(r31)
/* 800E08E4 000DD844 80 03 00 10 */ lwz r0, 0x10(r3)
/* 800E08E8 000DD848 28 00 00 00 */ cmplwi r0, 0
/* 800E08EC 000DD84C 41 82 00 1C */ beq lbl_800E0908
/* 800E08F0 000DD850 38 7F 02 1C */ addi r3, r31, 0x21c
/* 800E08F4 000DD854 48 26 05 19 */ bl GetObj__6CTokenFv
/* 800E08F8 000DD858 80 03 00 04 */ lwz r0, 4(r3)
/* 800E08FC 000DD85C 38 60 00 01 */ li r3, 1
/* 800E0900 000DD860 90 1F 02 24 */ stw r0, 0x224(r31)
/* 800E0904 000DD864 48 00 00 08 */ b lbl_800E090C
lbl_800E0908:
/* 800E0908 000DD868 38 60 00 00 */ li r3, 0
lbl_800E090C:
/* 800E090C 000DD86C 88 1F 02 58 */ lbz r0, 0x258(r31)
/* 800E0910 000DD870 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 800E0914 000DD874 98 1F 02 58 */ stb r0, 0x258(r31)
lbl_800E0918:
/* 800E0918 000DD878 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800E091C 000DD87C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800E0920 000DD880 7C 08 03 A6 */ mtlr r0
/* 800E0924 000DD884 38 21 00 10 */ addi r1, r1, 0x10
/* 800E0928 000DD888 4E 80 00 20 */ blr
.global UpdateGunFx__9CWaveBeamFbfRC13CStateManagerRC12CTransform4f
UpdateGunFx__9CWaveBeamFbfRC13CStateManagerRC12CTransform4f:
/* 800E092C 000DD88C 94 21 FF 50 */ stwu r1, -0xb0(r1)
/* 800E0930 000DD890 7C 08 02 A6 */ mflr r0
/* 800E0934 000DD894 90 01 00 B4 */ stw r0, 0xb4(r1)
/* 800E0938 000DD898 DB E1 00 A0 */ stfd f31, 0xa0(r1)
/* 800E093C 000DD89C F3 E1 00 A8 */ psq_st f31, 168(r1), 0, qr0
/* 800E0940 000DD8A0 BF 61 00 8C */ stmw r27, 0x8c(r1)
/* 800E0944 000DD8A4 7C 7B 1B 78 */ mr r27, r3
/* 800E0948 000DD8A8 FF E0 08 90 */ fmr f31, f1
/* 800E094C 000DD8AC 80 03 01 CC */ lwz r0, 0x1cc(r3)
/* 800E0950 000DD8B0 7C 9C 23 78 */ mr r28, r4
/* 800E0954 000DD8B4 7C BD 2B 78 */ mr r29, r5
/* 800E0958 000DD8B8 7C DE 33 78 */ mr r30, r6
/* 800E095C 000DD8BC 2C 00 00 00 */ cmpwi r0, 0
/* 800E0960 000DD8C0 41 82 01 50 */ beq lbl_800E0AB0
/* 800E0964 000DD8C4 88 1B 02 58 */ lbz r0, 0x258(r27)
/* 800E0968 000DD8C8 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 800E096C 000DD8CC 41 82 00 30 */ beq lbl_800E099C
/* 800E0970 000DD8D0 C0 3B 02 4C */ lfs f1, 0x24c(r27)
/* 800E0974 000DD8D4 C0 02 8F 80 */ lfs f0, lbl_805AACA0@sda21(r2)
/* 800E0978 000DD8D8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800E097C 000DD8DC 40 80 00 20 */ bge lbl_800E099C
/* 800E0980 000DD8E0 38 60 00 00 */ li r3, 0
/* 800E0984 000DD8E4 90 7B 01 CC */ stw r3, 0x1cc(r27)
/* 800E0988 000DD8E8 D0 1B 02 4C */ stfs f0, 0x24c(r27)
/* 800E098C 000DD8EC 88 1B 02 58 */ lbz r0, 0x258(r27)
/* 800E0990 000DD8F0 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 800E0994 000DD8F4 98 1B 02 58 */ stb r0, 0x258(r27)
/* 800E0998 000DD8F8 48 00 00 F4 */ b lbl_800E0A8C
lbl_800E099C:
/* 800E099C 000DD8FC 80 7B 02 54 */ lwz r3, 0x254(r27)
/* 800E09A0 000DD900 28 03 00 00 */ cmplwi r3, 0
/* 800E09A4 000DD904 41 82 00 70 */ beq lbl_800E0A14
/* 800E09A8 000DD908 C0 5E 00 2C */ lfs f2, 0x2c(r30)
/* 800E09AC 000DD90C 38 81 00 14 */ addi r4, r1, 0x14
/* 800E09B0 000DD910 C0 3E 00 1C */ lfs f1, 0x1c(r30)
/* 800E09B4 000DD914 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 800E09B8 000DD918 D0 21 00 18 */ stfs f1, 0x18(r1)
/* 800E09BC 000DD91C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 800E09C0 000DD920 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 800E09C4 000DD924 81 83 00 00 */ lwz r12, 0(r3)
/* 800E09C8 000DD928 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 800E09CC 000DD92C 7D 89 03 A6 */ mtctr r12
/* 800E09D0 000DD930 4E 80 04 21 */ bctrl
/* 800E09D4 000DD934 83 FB 02 54 */ lwz r31, 0x254(r27)
/* 800E09D8 000DD938 7F C4 F3 78 */ mr r4, r30
/* 800E09DC 000DD93C 38 61 00 50 */ addi r3, r1, 0x50
/* 800E09E0 000DD940 48 23 22 61 */ bl GetRotation__12CTransform4fCFv
/* 800E09E4 000DD944 7F E3 FB 78 */ mr r3, r31
/* 800E09E8 000DD948 38 81 00 50 */ addi r4, r1, 0x50
/* 800E09EC 000DD94C 81 9F 00 00 */ lwz r12, 0(r31)
/* 800E09F0 000DD950 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 800E09F4 000DD954 7D 89 03 A6 */ mtctr r12
/* 800E09F8 000DD958 4E 80 04 21 */ bctrl
/* 800E09FC 000DD95C 80 7B 02 54 */ lwz r3, 0x254(r27)
/* 800E0A00 000DD960 FC 20 F8 90 */ fmr f1, f31
/* 800E0A04 000DD964 81 83 00 00 */ lwz r12, 0(r3)
/* 800E0A08 000DD968 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 800E0A0C 000DD96C 7D 89 03 A6 */ mtctr r12
/* 800E0A10 000DD970 4E 80 04 21 */ bctrl
lbl_800E0A14:
/* 800E0A14 000DD974 80 7B 02 50 */ lwz r3, 0x250(r27)
/* 800E0A18 000DD978 28 03 00 00 */ cmplwi r3, 0
/* 800E0A1C 000DD97C 41 82 00 70 */ beq lbl_800E0A8C
/* 800E0A20 000DD980 C0 5E 00 2C */ lfs f2, 0x2c(r30)
/* 800E0A24 000DD984 38 81 00 08 */ addi r4, r1, 8
/* 800E0A28 000DD988 C0 3E 00 1C */ lfs f1, 0x1c(r30)
/* 800E0A2C 000DD98C C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 800E0A30 000DD990 D0 21 00 0C */ stfs f1, 0xc(r1)
/* 800E0A34 000DD994 D0 01 00 08 */ stfs f0, 8(r1)
/* 800E0A38 000DD998 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 800E0A3C 000DD99C 81 83 00 00 */ lwz r12, 0(r3)
/* 800E0A40 000DD9A0 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 800E0A44 000DD9A4 7D 89 03 A6 */ mtctr r12
/* 800E0A48 000DD9A8 4E 80 04 21 */ bctrl
/* 800E0A4C 000DD9AC 83 FB 02 50 */ lwz r31, 0x250(r27)
/* 800E0A50 000DD9B0 7F C4 F3 78 */ mr r4, r30
/* 800E0A54 000DD9B4 38 61 00 20 */ addi r3, r1, 0x20
/* 800E0A58 000DD9B8 48 23 21 E9 */ bl GetRotation__12CTransform4fCFv
/* 800E0A5C 000DD9BC 7F E3 FB 78 */ mr r3, r31
/* 800E0A60 000DD9C0 38 81 00 20 */ addi r4, r1, 0x20
/* 800E0A64 000DD9C4 81 9F 00 00 */ lwz r12, 0(r31)
/* 800E0A68 000DD9C8 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 800E0A6C 000DD9CC 7D 89 03 A6 */ mtctr r12
/* 800E0A70 000DD9D0 4E 80 04 21 */ bctrl
/* 800E0A74 000DD9D4 80 7B 02 50 */ lwz r3, 0x250(r27)
/* 800E0A78 000DD9D8 FC 20 F8 90 */ fmr f1, f31
/* 800E0A7C 000DD9DC 81 83 00 00 */ lwz r12, 0(r3)
/* 800E0A80 000DD9E0 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 800E0A84 000DD9E4 7D 89 03 A6 */ mtctr r12
/* 800E0A88 000DD9E8 4E 80 04 21 */ bctrl
lbl_800E0A8C:
/* 800E0A8C 000DD9EC 88 1B 02 58 */ lbz r0, 0x258(r27)
/* 800E0A90 000DD9F0 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 800E0A94 000DD9F4 41 82 00 1C */ beq lbl_800E0AB0
/* 800E0A98 000DD9F8 C0 3B 02 4C */ lfs f1, 0x24c(r27)
/* 800E0A9C 000DD9FC C0 02 8F 80 */ lfs f0, lbl_805AACA0@sda21(r2)
/* 800E0AA0 000DDA00 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800E0AA4 000DDA04 40 81 00 0C */ ble lbl_800E0AB0
/* 800E0AA8 000DDA08 EC 01 F8 28 */ fsubs f0, f1, f31
/* 800E0AAC 000DDA0C D0 1B 02 4C */ stfs f0, 0x24c(r27)
lbl_800E0AB0:
/* 800E0AB0 000DDA10 FC 20 F8 90 */ fmr f1, f31
/* 800E0AB4 000DDA14 7F 63 DB 78 */ mr r3, r27
/* 800E0AB8 000DDA18 7F 84 E3 78 */ mr r4, r28
/* 800E0ABC 000DDA1C 7F A5 EB 78 */ mr r5, r29
/* 800E0AC0 000DDA20 7F C6 F3 78 */ mr r6, r30
/* 800E0AC4 000DDA24 48 0D B8 19 */ bl UpdateGunFx__10CGunWeaponFbfRC13CStateManagerRC12CTransform4f
/* 800E0AC8 000DDA28 E3 E1 00 A8 */ psq_l f31, 168(r1), 0, qr0
/* 800E0ACC 000DDA2C CB E1 00 A0 */ lfd f31, 0xa0(r1)
/* 800E0AD0 000DDA30 BB 61 00 8C */ lmw r27, 0x8c(r1)
/* 800E0AD4 000DDA34 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 800E0AD8 000DDA38 7C 08 03 A6 */ mtlr r0
/* 800E0ADC 000DDA3C 38 21 00 B0 */ addi r1, r1, 0xb0
/* 800E0AE0 000DDA40 4E 80 00 20 */ blr
.global PostRenderGunFx__9CWaveBeamFRC13CStateManagerRC12CTransform4f
PostRenderGunFx__9CWaveBeamFRC13CStateManagerRC12CTransform4f:
/* 800E0AE4 000DDA44 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800E0AE8 000DDA48 7C 08 02 A6 */ mflr r0
/* 800E0AEC 000DDA4C 90 01 00 24 */ stw r0, 0x24(r1)
/* 800E0AF0 000DDA50 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800E0AF4 000DDA54 7C BF 2B 78 */ mr r31, r5
/* 800E0AF8 000DDA58 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800E0AFC 000DDA5C 7C 9E 23 78 */ mr r30, r4
/* 800E0B00 000DDA60 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800E0B04 000DDA64 7C 7D 1B 78 */ mr r29, r3
/* 800E0B08 000DDA68 80 03 01 CC */ lwz r0, 0x1cc(r3)
/* 800E0B0C 000DDA6C 2C 00 00 00 */ cmpwi r0, 0
/* 800E0B10 000DDA70 41 82 00 3C */ beq lbl_800E0B4C
/* 800E0B14 000DDA74 80 7D 02 54 */ lwz r3, 0x254(r29)
/* 800E0B18 000DDA78 28 03 00 00 */ cmplwi r3, 0
/* 800E0B1C 000DDA7C 41 82 00 14 */ beq lbl_800E0B30
/* 800E0B20 000DDA80 81 83 00 00 */ lwz r12, 0(r3)
/* 800E0B24 000DDA84 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 800E0B28 000DDA88 7D 89 03 A6 */ mtctr r12
/* 800E0B2C 000DDA8C 4E 80 04 21 */ bctrl
lbl_800E0B30:
/* 800E0B30 000DDA90 80 7D 02 50 */ lwz r3, 0x250(r29)
/* 800E0B34 000DDA94 28 03 00 00 */ cmplwi r3, 0
/* 800E0B38 000DDA98 41 82 00 14 */ beq lbl_800E0B4C
/* 800E0B3C 000DDA9C 81 83 00 00 */ lwz r12, 0(r3)
/* 800E0B40 000DDAA0 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 800E0B44 000DDAA4 7D 89 03 A6 */ mtctr r12
/* 800E0B48 000DDAA8 4E 80 04 21 */ bctrl
lbl_800E0B4C:
/* 800E0B4C 000DDAAC 7F A3 EB 78 */ mr r3, r29
/* 800E0B50 000DDAB0 7F C4 F3 78 */ mr r4, r30
/* 800E0B54 000DDAB4 7F E5 FB 78 */ mr r5, r31
/* 800E0B58 000DDAB8 48 0D B8 CD */ bl PostRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f
/* 800E0B5C 000DDABC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800E0B60 000DDAC0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800E0B64 000DDAC4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800E0B68 000DDAC8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800E0B6C 000DDACC 7C 08 03 A6 */ mtlr r0
/* 800E0B70 000DDAD0 38 21 00 20 */ addi r1, r1, 0x20
/* 800E0B74 000DDAD4 4E 80 00 20 */ blr
.global ReInitVariables__9CWaveBeamFv
ReInitVariables__9CWaveBeamFv:
/* 800E0B78 000DDAD8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800E0B7C 000DDADC 7C 08 02 A6 */ mflr r0
/* 800E0B80 000DDAE0 C0 02 8F 80 */ lfs f0, lbl_805AACA0@sda21(r2)
/* 800E0B84 000DDAE4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800E0B88 000DDAE8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800E0B8C 000DDAEC 7C 7F 1B 78 */ mr r31, r3
/* 800E0B90 000DDAF0 D0 03 02 4C */ stfs f0, 0x24c(r3)
/* 800E0B94 000DDAF4 80 63 02 50 */ lwz r3, 0x250(r3)
/* 800E0B98 000DDAF8 28 03 00 00 */ cmplwi r3, 0
/* 800E0B9C 000DDAFC 41 82 00 18 */ beq lbl_800E0BB4
/* 800E0BA0 000DDB00 81 83 00 00 */ lwz r12, 0(r3)
/* 800E0BA4 000DDB04 38 80 00 01 */ li r4, 1
/* 800E0BA8 000DDB08 81 8C 00 08 */ lwz r12, 8(r12)
/* 800E0BAC 000DDB0C 7D 89 03 A6 */ mtctr r12
/* 800E0BB0 000DDB10 4E 80 04 21 */ bctrl
lbl_800E0BB4:
/* 800E0BB4 000DDB14 38 00 00 00 */ li r0, 0
/* 800E0BB8 000DDB18 90 1F 02 50 */ stw r0, 0x250(r31)
/* 800E0BBC 000DDB1C 80 7F 02 54 */ lwz r3, 0x254(r31)
/* 800E0BC0 000DDB20 28 03 00 00 */ cmplwi r3, 0
/* 800E0BC4 000DDB24 41 82 00 18 */ beq lbl_800E0BDC
/* 800E0BC8 000DDB28 81 83 00 00 */ lwz r12, 0(r3)
/* 800E0BCC 000DDB2C 38 80 00 01 */ li r4, 1
/* 800E0BD0 000DDB30 81 8C 00 08 */ lwz r12, 8(r12)
/* 800E0BD4 000DDB34 7D 89 03 A6 */ mtctr r12
/* 800E0BD8 000DDB38 4E 80 04 21 */ bctrl
lbl_800E0BDC:
/* 800E0BDC 000DDB3C 38 60 00 00 */ li r3, 0
/* 800E0BE0 000DDB40 90 7F 02 54 */ stw r3, 0x254(r31)
/* 800E0BE4 000DDB44 88 1F 02 58 */ lbz r0, 0x258(r31)
/* 800E0BE8 000DDB48 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 800E0BEC 000DDB4C 98 1F 02 58 */ stb r0, 0x258(r31)
/* 800E0BF0 000DDB50 88 1F 02 58 */ lbz r0, 0x258(r31)
/* 800E0BF4 000DDB54 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 800E0BF8 000DDB58 98 1F 02 58 */ stb r0, 0x258(r31)
/* 800E0BFC 000DDB5C 90 7F 01 CC */ stw r3, 0x1cc(r31)
/* 800E0C00 000DDB60 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800E0C04 000DDB64 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800E0C08 000DDB68 7C 08 03 A6 */ mtlr r0
/* 800E0C0C 000DDB6C 38 21 00 10 */ addi r1, r1, 0x10
/* 800E0C10 000DDB70 4E 80 00 20 */ blr
.global __dt__9CWaveBeamFv
__dt__9CWaveBeamFv:
/* 800E0C14 000DDB74 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800E0C18 000DDB78 7C 08 02 A6 */ mflr r0
/* 800E0C1C 000DDB7C 90 01 00 14 */ stw r0, 0x14(r1)
/* 800E0C20 000DDB80 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800E0C24 000DDB84 7C 9F 23 78 */ mr r31, r4
/* 800E0C28 000DDB88 93 C1 00 08 */ stw r30, 8(r1)
/* 800E0C2C 000DDB8C 7C 7E 1B 79 */ or. r30, r3, r3
/* 800E0C30 000DDB90 41 82 00 EC */ beq lbl_800E0D1C
/* 800E0C34 000DDB94 3C 60 80 3E */ lis r3, lbl_803DF7A0@ha
/* 800E0C38 000DDB98 34 1E 02 54 */ addic. r0, r30, 0x254
/* 800E0C3C 000DDB9C 38 03 F7 A0 */ addi r0, r3, lbl_803DF7A0@l
/* 800E0C40 000DDBA0 90 1E 00 00 */ stw r0, 0(r30)
/* 800E0C44 000DDBA4 41 82 00 24 */ beq lbl_800E0C68
/* 800E0C48 000DDBA8 80 7E 02 54 */ lwz r3, 0x254(r30)
/* 800E0C4C 000DDBAC 28 03 00 00 */ cmplwi r3, 0
/* 800E0C50 000DDBB0 41 82 00 18 */ beq lbl_800E0C68
/* 800E0C54 000DDBB4 81 83 00 00 */ lwz r12, 0(r3)
/* 800E0C58 000DDBB8 38 80 00 01 */ li r4, 1
/* 800E0C5C 000DDBBC 81 8C 00 08 */ lwz r12, 8(r12)
/* 800E0C60 000DDBC0 7D 89 03 A6 */ mtctr r12
/* 800E0C64 000DDBC4 4E 80 04 21 */ bctrl
lbl_800E0C68:
/* 800E0C68 000DDBC8 34 1E 02 50 */ addic. r0, r30, 0x250
/* 800E0C6C 000DDBCC 41 82 00 24 */ beq lbl_800E0C90
/* 800E0C70 000DDBD0 80 7E 02 50 */ lwz r3, 0x250(r30)
/* 800E0C74 000DDBD4 28 03 00 00 */ cmplwi r3, 0
/* 800E0C78 000DDBD8 41 82 00 18 */ beq lbl_800E0C90
/* 800E0C7C 000DDBDC 81 83 00 00 */ lwz r12, 0(r3)
/* 800E0C80 000DDBE0 38 80 00 01 */ li r4, 1
/* 800E0C84 000DDBE4 81 8C 00 08 */ lwz r12, 8(r12)
/* 800E0C88 000DDBE8 7D 89 03 A6 */ mtctr r12
/* 800E0C8C 000DDBEC 4E 80 04 21 */ bctrl
lbl_800E0C90:
/* 800E0C90 000DDBF0 34 1E 02 40 */ addic. r0, r30, 0x240
/* 800E0C94 000DDBF4 41 82 00 18 */ beq lbl_800E0CAC
/* 800E0C98 000DDBF8 34 1E 02 40 */ addic. r0, r30, 0x240
/* 800E0C9C 000DDBFC 41 82 00 10 */ beq lbl_800E0CAC
/* 800E0CA0 000DDC00 38 7E 02 40 */ addi r3, r30, 0x240
/* 800E0CA4 000DDC04 38 80 00 00 */ li r4, 0
/* 800E0CA8 000DDC08 48 26 01 99 */ bl __dt__6CTokenFv
lbl_800E0CAC:
/* 800E0CAC 000DDC0C 34 1E 02 34 */ addic. r0, r30, 0x234
/* 800E0CB0 000DDC10 41 82 00 18 */ beq lbl_800E0CC8
/* 800E0CB4 000DDC14 34 1E 02 34 */ addic. r0, r30, 0x234
/* 800E0CB8 000DDC18 41 82 00 10 */ beq lbl_800E0CC8
/* 800E0CBC 000DDC1C 38 7E 02 34 */ addi r3, r30, 0x234
/* 800E0CC0 000DDC20 38 80 00 00 */ li r4, 0
/* 800E0CC4 000DDC24 48 26 01 7D */ bl __dt__6CTokenFv
lbl_800E0CC8:
/* 800E0CC8 000DDC28 34 1E 02 28 */ addic. r0, r30, 0x228
/* 800E0CCC 000DDC2C 41 82 00 18 */ beq lbl_800E0CE4
/* 800E0CD0 000DDC30 34 1E 02 28 */ addic. r0, r30, 0x228
/* 800E0CD4 000DDC34 41 82 00 10 */ beq lbl_800E0CE4
/* 800E0CD8 000DDC38 38 7E 02 28 */ addi r3, r30, 0x228
/* 800E0CDC 000DDC3C 38 80 00 00 */ li r4, 0
/* 800E0CE0 000DDC40 48 26 01 61 */ bl __dt__6CTokenFv
lbl_800E0CE4:
/* 800E0CE4 000DDC44 34 1E 02 1C */ addic. r0, r30, 0x21c
/* 800E0CE8 000DDC48 41 82 00 18 */ beq lbl_800E0D00
/* 800E0CEC 000DDC4C 34 1E 02 1C */ addic. r0, r30, 0x21c
/* 800E0CF0 000DDC50 41 82 00 10 */ beq lbl_800E0D00
/* 800E0CF4 000DDC54 38 7E 02 1C */ addi r3, r30, 0x21c
/* 800E0CF8 000DDC58 38 80 00 00 */ li r4, 0
/* 800E0CFC 000DDC5C 48 26 01 45 */ bl __dt__6CTokenFv
lbl_800E0D00:
/* 800E0D00 000DDC60 7F C3 F3 78 */ mr r3, r30
/* 800E0D04 000DDC64 38 80 00 00 */ li r4, 0
/* 800E0D08 000DDC68 48 0D BF B9 */ bl __dt__10CGunWeaponFv
/* 800E0D0C 000DDC6C 7F E0 07 35 */ extsh. r0, r31
/* 800E0D10 000DDC70 40 81 00 0C */ ble lbl_800E0D1C
/* 800E0D14 000DDC74 7F C3 F3 78 */ mr r3, r30
/* 800E0D18 000DDC78 48 23 4C 19 */ bl Free__7CMemoryFPCv
lbl_800E0D1C:
/* 800E0D1C 000DDC7C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800E0D20 000DDC80 7F C3 F3 78 */ mr r3, r30
/* 800E0D24 000DDC84 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800E0D28 000DDC88 83 C1 00 08 */ lwz r30, 8(r1)
/* 800E0D2C 000DDC8C 7C 08 03 A6 */ mtlr r0
/* 800E0D30 000DDC90 38 21 00 10 */ addi r1, r1, 0x10
/* 800E0D34 000DDC94 4E 80 00 20 */ blr
.global __ct__9CWaveBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
__ct__9CWaveBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f:
/* 800E0D38 000DDC98 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 800E0D3C 000DDC9C 7C 08 02 A6 */ mflr r0
/* 800E0D40 000DDCA0 90 01 00 44 */ stw r0, 0x44(r1)
/* 800E0D44 000DDCA4 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 800E0D48 000DDCA8 7C 7F 1B 78 */ mr r31, r3
/* 800E0D4C 000DDCAC 93 C1 00 38 */ stw r30, 0x38(r1)
/* 800E0D50 000DDCB0 A0 06 00 00 */ lhz r0, 0(r6)
/* 800E0D54 000DDCB4 38 C1 00 08 */ addi r6, r1, 8
/* 800E0D58 000DDCB8 B0 01 00 08 */ sth r0, 8(r1)
/* 800E0D5C 000DDCBC 48 0D C4 55 */ bl __ct__10CGunWeaponFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
/* 800E0D60 000DDCC0 3C 60 80 3E */ lis r3, lbl_803DF7A0@ha
/* 800E0D64 000DDCC4 3C 80 80 3D */ lis r4, lbl_803CE568@ha
/* 800E0D68 000DDCC8 38 03 F7 A0 */ addi r0, r3, lbl_803DF7A0@l
/* 800E0D6C 000DDCCC 38 61 00 24 */ addi r3, r1, 0x24
/* 800E0D70 000DDCD0 90 1F 00 00 */ stw r0, 0(r31)
/* 800E0D74 000DDCD4 38 84 E5 68 */ addi r4, r4, lbl_803CE568@l
/* 800E0D78 000DDCD8 38 A4 00 07 */ addi r5, r4, 7
/* 800E0D7C 000DDCDC 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 800E0D80 000DDCE0 81 84 00 00 */ lwz r12, 0(r4)
/* 800E0D84 000DDCE4 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 800E0D88 000DDCE8 7D 89 03 A6 */ mtctr r12
/* 800E0D8C 000DDCEC 4E 80 04 21 */ bctrl
/* 800E0D90 000DDCF0 3B DF 02 1C */ addi r30, r31, 0x21c
/* 800E0D94 000DDCF4 38 81 00 24 */ addi r4, r1, 0x24
/* 800E0D98 000DDCF8 7F C3 F3 78 */ mr r3, r30
/* 800E0D9C 000DDCFC 48 26 01 0D */ bl __ct__6CTokenFRC6CToken
/* 800E0DA0 000DDD00 38 00 00 00 */ li r0, 0
/* 800E0DA4 000DDD04 38 61 00 24 */ addi r3, r1, 0x24
/* 800E0DA8 000DDD08 90 1E 00 08 */ stw r0, 8(r30)
/* 800E0DAC 000DDD0C 38 80 FF FF */ li r4, -1
/* 800E0DB0 000DDD10 48 26 00 91 */ bl __dt__6CTokenFv
/* 800E0DB4 000DDD14 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 800E0DB8 000DDD18 3C 60 80 3D */ lis r3, lbl_803CE568@ha
/* 800E0DBC 000DDD1C 38 A3 E5 68 */ addi r5, r3, lbl_803CE568@l
/* 800E0DC0 000DDD20 38 61 00 1C */ addi r3, r1, 0x1c
/* 800E0DC4 000DDD24 81 84 00 00 */ lwz r12, 0(r4)
/* 800E0DC8 000DDD28 38 A5 00 10 */ addi r5, r5, 0x10
/* 800E0DCC 000DDD2C 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 800E0DD0 000DDD30 7D 89 03 A6 */ mtctr r12
/* 800E0DD4 000DDD34 4E 80 04 21 */ bctrl
/* 800E0DD8 000DDD38 3B DF 02 28 */ addi r30, r31, 0x228
/* 800E0DDC 000DDD3C 38 81 00 1C */ addi r4, r1, 0x1c
/* 800E0DE0 000DDD40 7F C3 F3 78 */ mr r3, r30
/* 800E0DE4 000DDD44 48 26 00 C5 */ bl __ct__6CTokenFRC6CToken
/* 800E0DE8 000DDD48 38 00 00 00 */ li r0, 0
/* 800E0DEC 000DDD4C 38 61 00 1C */ addi r3, r1, 0x1c
/* 800E0DF0 000DDD50 90 1E 00 08 */ stw r0, 8(r30)
/* 800E0DF4 000DDD54 38 80 FF FF */ li r4, -1
/* 800E0DF8 000DDD58 48 26 00 49 */ bl __dt__6CTokenFv
/* 800E0DFC 000DDD5C 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 800E0E00 000DDD60 3C 60 80 3D */ lis r3, lbl_803CE568@ha
/* 800E0E04 000DDD64 38 A3 E5 68 */ addi r5, r3, lbl_803CE568@l
/* 800E0E08 000DDD68 38 61 00 14 */ addi r3, r1, 0x14
/* 800E0E0C 000DDD6C 81 84 00 00 */ lwz r12, 0(r4)
/* 800E0E10 000DDD70 38 A5 00 1A */ addi r5, r5, 0x1a
/* 800E0E14 000DDD74 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 800E0E18 000DDD78 7D 89 03 A6 */ mtctr r12
/* 800E0E1C 000DDD7C 4E 80 04 21 */ bctrl
/* 800E0E20 000DDD80 3B DF 02 34 */ addi r30, r31, 0x234
/* 800E0E24 000DDD84 38 81 00 14 */ addi r4, r1, 0x14
/* 800E0E28 000DDD88 7F C3 F3 78 */ mr r3, r30
/* 800E0E2C 000DDD8C 48 26 00 7D */ bl __ct__6CTokenFRC6CToken
/* 800E0E30 000DDD90 38 00 00 00 */ li r0, 0
/* 800E0E34 000DDD94 38 61 00 14 */ addi r3, r1, 0x14
/* 800E0E38 000DDD98 90 1E 00 08 */ stw r0, 8(r30)
/* 800E0E3C 000DDD9C 38 80 FF FF */ li r4, -1
/* 800E0E40 000DDDA0 48 26 00 01 */ bl __dt__6CTokenFv
/* 800E0E44 000DDDA4 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 800E0E48 000DDDA8 3C 60 80 3D */ lis r3, lbl_803CE568@ha
/* 800E0E4C 000DDDAC 38 A3 E5 68 */ addi r5, r3, lbl_803CE568@l
/* 800E0E50 000DDDB0 38 61 00 0C */ addi r3, r1, 0xc
/* 800E0E54 000DDDB4 81 84 00 00 */ lwz r12, 0(r4)
/* 800E0E58 000DDDB8 38 A5 00 24 */ addi r5, r5, 0x24
/* 800E0E5C 000DDDBC 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 800E0E60 000DDDC0 7D 89 03 A6 */ mtctr r12
/* 800E0E64 000DDDC4 4E 80 04 21 */ bctrl
/* 800E0E68 000DDDC8 3B DF 02 40 */ addi r30, r31, 0x240
/* 800E0E6C 000DDDCC 38 81 00 0C */ addi r4, r1, 0xc
/* 800E0E70 000DDDD0 7F C3 F3 78 */ mr r3, r30
/* 800E0E74 000DDDD4 48 26 00 35 */ bl __ct__6CTokenFRC6CToken
/* 800E0E78 000DDDD8 38 00 00 00 */ li r0, 0
/* 800E0E7C 000DDDDC 38 61 00 0C */ addi r3, r1, 0xc
/* 800E0E80 000DDDE0 90 1E 00 08 */ stw r0, 8(r30)
/* 800E0E84 000DDDE4 38 80 FF FF */ li r4, -1
/* 800E0E88 000DDDE8 48 25 FF B9 */ bl __dt__6CTokenFv
/* 800E0E8C 000DDDEC C0 02 8F 80 */ lfs f0, lbl_805AACA0@sda21(r2)
/* 800E0E90 000DDDF0 38 80 00 00 */ li r4, 0
/* 800E0E94 000DDDF4 7F E3 FB 78 */ mr r3, r31
/* 800E0E98 000DDDF8 D0 1F 02 4C */ stfs f0, 0x24c(r31)
/* 800E0E9C 000DDDFC 90 9F 02 50 */ stw r4, 0x250(r31)
/* 800E0EA0 000DDE00 90 9F 02 54 */ stw r4, 0x254(r31)
/* 800E0EA4 000DDE04 88 1F 02 58 */ lbz r0, 0x258(r31)
/* 800E0EA8 000DDE08 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 800E0EAC 000DDE0C 98 1F 02 58 */ stb r0, 0x258(r31)
/* 800E0EB0 000DDE10 88 1F 02 58 */ lbz r0, 0x258(r31)
/* 800E0EB4 000DDE14 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 800E0EB8 000DDE18 98 1F 02 58 */ stb r0, 0x258(r31)
/* 800E0EBC 000DDE1C 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 800E0EC0 000DDE20 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 800E0EC4 000DDE24 80 01 00 44 */ lwz r0, 0x44(r1)
/* 800E0EC8 000DDE28 7C 08 03 A6 */ mtlr r0
/* 800E0ECC 000DDE2C 38 21 00 40 */ addi r1, r1, 0x40
/* 800E0ED0 000DDE30 4E 80 00 20 */ blr
.global __sinit_CWaveBeam_cpp
__sinit_CWaveBeam_cpp:
/* 800E0ED4 000DDE34 C0 02 8F 98 */ lfs f0, lbl_805AACB8@sda21(r2)
/* 800E0ED8 000DDE38 D0 0D A2 F8 */ stfs f0, lbl_805A8EB8@sda21(r13)
/* 800E0EDC 000DDE3C 4E 80 00 20 */ blr
.section .rodata
.balign 8
.global lbl_803CE568
lbl_803CE568:
# ROM: 0x3CB568
.asciz "??(??)"
.byte 0x57
.asciz "aveBeam"
.asciz "Wave2nd_1"
.byte 0x57, 0x61
.asciz "ve2nd_2"
.asciz "Wave2nd_3"
.balign 4