prime/asm/MetroidPrime/CExplosion.s

921 lines
46 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .data
.balign 8
.global lbl_803DA0A8
lbl_803DA0A8:
# ROM: 0x3D70A8
.4byte 0
.4byte 0
.4byte __dt__10CExplosionFv
.4byte Accept__10CExplosionFR8IVisitor
.4byte PreThink__7CEntityFfR13CStateManager
.4byte Think__10CExplosionFfR13CStateManager
.4byte AcceptScriptMsg__10CExplosionF20EScriptObjectMessage9TUniqueIdR13CStateManager
.4byte SetActive__6CActorFUc
.4byte PreRender__10CExplosionFR13CStateManagerRC14CFrustumPlanes
.4byte AddToRenderer__10CExplosionCFRC14CFrustumPlanesRC13CStateManager
.4byte Render__10CExplosionCFRC13CStateManager
.4byte CanRenderUnsorted__6CActorCFRC13CStateManager
.4byte CalculateRenderBounds__10CExplosionFv
.4byte HealthInfo__6CActorFR13CStateManager
.4byte GetDamageVulnerability__6CActorCFv
.4byte GetDamageVulnerability__6CActorCFRC9CVector3fRC9CVector3fRC11CDamageInfo
.4byte GetTouchBounds__6CActorCFv
.4byte Touch__6CActorFR6CActorR13CStateManager
.4byte GetOrbitPosition__6CActorCFRC13CStateManager
.4byte GetAimPosition__6CActorCFRC13CStateManagerf
.4byte GetHomingPosition__6CActorCFRC13CStateManagerf
.4byte GetScanObjectIndicatorPosition__6CActorCFRC13CStateManager
.4byte GetCollisionResponseType__6CActorCFRC9CVector3fRC9CVector3fRC11CWeaponModei
.4byte FluidFXThink__6CActorFQ26CActor11EFluidStateR12CScriptWaterR13CStateManager
.4byte OnScanStateChange__6CActorFQ26CActor10EScanStateR13CStateManager
.4byte GetSortingBounds__6CActorCFRC13CStateManager
.4byte DoUserAnimEvent__6CActorFR13CStateManagerRC13CInt32POINode14EUserEventTypef
.4byte 0
.section .sdata2, "a"
.balign 8
.global lbl_805AA3C8
lbl_805AA3C8:
# ROM: 0x3F6C68
.4byte 0
.global lbl_805AA3CC
lbl_805AA3CC:
# ROM: 0x3F6C6C
.4byte 0x42960000
.global lbl_805AA3D0
lbl_805AA3D0:
# ROM: 0x3F6C70
.float 15.0
.4byte 0
.section .text, "ax"
.global Render__10CExplosionCFRC13CStateManager
Render__10CExplosionCFRC13CStateManager:
/* 8005A110 00057070 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8005A114 00057074 7C 08 02 A6 */ mflr r0
/* 8005A118 00057078 90 01 00 24 */ stw r0, 0x24(r1)
/* 8005A11C 0005707C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8005A120 00057080 7C 9F 23 78 */ mr r31, r4
/* 8005A124 00057084 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8005A128 00057088 7C 7E 1B 78 */ mr r30, r3
/* 8005A12C 0005708C 80 04 0F 34 */ lwz r0, 0xf34(r4)
/* 8005A130 00057090 2C 00 00 00 */ cmpwi r0, 0
/* 8005A134 00057094 40 82 00 48 */ bne lbl_8005A17C
/* 8005A138 00057098 88 1E 00 F4 */ lbz r0, 0xf4(r30)
/* 8005A13C 0005709C 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8005A140 000570A0 41 82 00 3C */ beq lbl_8005A17C
/* 8005A144 000570A4 38 00 00 01 */ li r0, 1
/* 8005A148 000570A8 38 60 00 01 */ li r3, 1
/* 8005A14C 000570AC 98 0D A8 B9 */ stb r0, sSubtractBlend__11CElementGen@sda21(r13)
/* 8005A150 000570B0 48 2E B6 99 */ bl SetRenderModelBlack__10CCubeModelFb
/* 8005A154 000570B4 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8005A158 000570B8 81 83 00 00 */ lwz r12, 0(r3)
/* 8005A15C 000570BC 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8005A160 000570C0 7D 89 03 A6 */ mtctr r12
/* 8005A164 000570C4 4E 80 04 21 */ bctrl
/* 8005A168 000570C8 38 60 00 00 */ li r3, 0
/* 8005A16C 000570CC 48 2E B6 7D */ bl SetRenderModelBlack__10CCubeModelFb
/* 8005A170 000570D0 38 00 00 00 */ li r0, 0
/* 8005A174 000570D4 98 0D A8 B9 */ stb r0, sSubtractBlend__11CElementGen@sda21(r13)
/* 8005A178 000570D8 48 00 00 64 */ b lbl_8005A1DC
lbl_8005A17C:
/* 8005A17C 000570DC 88 1E 00 F4 */ lbz r0, 0xf4(r30)
/* 8005A180 000570E0 54 00 CF FE */ rlwinm r0, r0, 0x19, 0x1f, 0x1f
/* 8005A184 000570E4 7C 00 00 34 */ cntlzw r0, r0
/* 8005A188 000570E8 54 00 D9 7E */ srwi r0, r0, 5
/* 8005A18C 000570EC 98 0D A8 B9 */ stb r0, sSubtractBlend__11CElementGen@sda21(r13)
/* 8005A190 000570F0 48 2E FE 25 */ bl Black__6CColorFv
/* 8005A194 000570F4 C0 22 86 A8 */ lfs f1, lbl_805AA3C8@sda21(r2)
/* 8005A198 000570F8 7C 64 1B 78 */ mr r4, r3
/* 8005A19C 000570FC C0 42 86 AC */ lfs f2, lbl_805AA3CC@sda21(r2)
/* 8005A1A0 00057100 38 60 00 02 */ li r3, 2
/* 8005A1A4 00057104 48 2B 00 E5 */ bl SetFog__9CGraphicsF11ERglFogModeffRC6CColor
/* 8005A1A8 00057108 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8005A1AC 0005710C 81 83 00 00 */ lwz r12, 0(r3)
/* 8005A1B0 00057110 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8005A1B4 00057114 7D 89 03 A6 */ mtctr r12
/* 8005A1B8 00057118 4E 80 04 21 */ bctrl
/* 8005A1BC 0005711C 80 1E 00 04 */ lwz r0, 4(r30)
/* 8005A1C0 00057120 7F E3 FB 78 */ mr r3, r31
/* 8005A1C4 00057124 38 81 00 0C */ addi r4, r1, 0xc
/* 8005A1C8 00057128 90 01 00 08 */ stw r0, 8(r1)
/* 8005A1CC 0005712C 90 01 00 0C */ stw r0, 0xc(r1)
/* 8005A1D0 00057130 4B FE CB B1 */ bl SetupFogForArea__13CStateManagerCF7TAreaId
/* 8005A1D4 00057134 38 00 00 00 */ li r0, 0
/* 8005A1D8 00057138 98 0D A8 B9 */ stb r0, sSubtractBlend__11CElementGen@sda21(r13)
lbl_8005A1DC:
/* 8005A1DC 0005713C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8005A1E0 00057140 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8005A1E4 00057144 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8005A1E8 00057148 7C 08 03 A6 */ mtlr r0
/* 8005A1EC 0005714C 38 21 00 20 */ addi r1, r1, 0x20
/* 8005A1F0 00057150 4E 80 00 20 */ blr
.global CalculateRenderBounds__10CExplosionFv
CalculateRenderBounds__10CExplosionFv:
/* 8005A1F4 00057154 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8005A1F8 00057158 7C 08 02 A6 */ mflr r0
/* 8005A1FC 0005715C 90 01 00 74 */ stw r0, 0x74(r1)
/* 8005A200 00057160 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 8005A204 00057164 7C 7F 1B 78 */ mr r31, r3
/* 8005A208 00057168 38 61 00 2C */ addi r3, r1, 0x2c
/* 8005A20C 0005716C 80 9F 00 E8 */ lwz r4, 0xe8(r31)
/* 8005A210 00057170 81 84 00 00 */ lwz r12, 0(r4)
/* 8005A214 00057174 81 8C 00 5C */ lwz r12, 0x5c(r12)
/* 8005A218 00057178 7D 89 03 A6 */ mtctr r12
/* 8005A21C 0005717C 4E 80 04 21 */ bctrl
/* 8005A220 00057180 88 01 00 44 */ lbz r0, 0x44(r1)
/* 8005A224 00057184 28 00 00 00 */ cmplwi r0, 0
/* 8005A228 00057188 98 01 00 60 */ stb r0, 0x60(r1)
/* 8005A22C 0005718C 41 82 00 3C */ beq lbl_8005A268
/* 8005A230 00057190 34 61 00 48 */ addic. r3, r1, 0x48
/* 8005A234 00057194 41 82 00 34 */ beq lbl_8005A268
/* 8005A238 00057198 C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 8005A23C 0005719C D0 03 00 00 */ stfs f0, 0(r3)
/* 8005A240 000571A0 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8005A244 000571A4 D0 03 00 04 */ stfs f0, 4(r3)
/* 8005A248 000571A8 C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8005A24C 000571AC D0 03 00 08 */ stfs f0, 8(r3)
/* 8005A250 000571B0 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8005A254 000571B4 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 8005A258 000571B8 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8005A25C 000571BC D0 03 00 10 */ stfs f0, 0x10(r3)
/* 8005A260 000571C0 C0 01 00 40 */ lfs f0, 0x40(r1)
/* 8005A264 000571C4 D0 03 00 14 */ stfs f0, 0x14(r3)
lbl_8005A268:
/* 8005A268 000571C8 88 01 00 60 */ lbz r0, 0x60(r1)
/* 8005A26C 000571CC 38 60 00 00 */ li r3, 0
/* 8005A270 000571D0 98 61 00 44 */ stb r3, 0x44(r1)
/* 8005A274 000571D4 28 00 00 00 */ cmplwi r0, 0
/* 8005A278 000571D8 41 82 00 48 */ beq lbl_8005A2C0
/* 8005A27C 000571DC 80 81 00 48 */ lwz r4, 0x48(r1)
/* 8005A280 000571E0 38 60 00 01 */ li r3, 1
/* 8005A284 000571E4 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 8005A288 000571E8 90 9F 00 9C */ stw r4, 0x9c(r31)
/* 8005A28C 000571EC 80 81 00 50 */ lwz r4, 0x50(r1)
/* 8005A290 000571F0 90 1F 00 A0 */ stw r0, 0xa0(r31)
/* 8005A294 000571F4 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8005A298 000571F8 90 9F 00 A4 */ stw r4, 0xa4(r31)
/* 8005A29C 000571FC 80 81 00 58 */ lwz r4, 0x58(r1)
/* 8005A2A0 00057200 90 1F 00 A8 */ stw r0, 0xa8(r31)
/* 8005A2A4 00057204 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 8005A2A8 00057208 90 9F 00 AC */ stw r4, 0xac(r31)
/* 8005A2AC 0005720C 90 1F 00 B0 */ stw r0, 0xb0(r31)
/* 8005A2B0 00057210 88 1F 00 F4 */ lbz r0, 0xf4(r31)
/* 8005A2B4 00057214 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8005A2B8 00057218 98 1F 00 F4 */ stb r0, 0xf4(r31)
/* 8005A2BC 0005721C 48 00 00 68 */ b lbl_8005A324
lbl_8005A2C0:
/* 8005A2C0 00057220 88 1F 00 F4 */ lbz r0, 0xf4(r31)
/* 8005A2C4 00057224 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8005A2C8 00057228 38 81 00 08 */ addi r4, r1, 8
/* 8005A2CC 0005722C 38 61 00 14 */ addi r3, r1, 0x14
/* 8005A2D0 00057230 98 1F 00 F4 */ stb r0, 0xf4(r31)
/* 8005A2D4 00057234 7C 85 23 78 */ mr r5, r4
/* 8005A2D8 00057238 C0 5F 00 60 */ lfs f2, 0x60(r31)
/* 8005A2DC 0005723C C0 3F 00 50 */ lfs f1, 0x50(r31)
/* 8005A2E0 00057240 C0 1F 00 40 */ lfs f0, 0x40(r31)
/* 8005A2E4 00057244 D0 01 00 08 */ stfs f0, 8(r1)
/* 8005A2E8 00057248 D0 21 00 0C */ stfs f1, 0xc(r1)
/* 8005A2EC 0005724C D0 41 00 10 */ stfs f2, 0x10(r1)
/* 8005A2F0 00057250 48 2D E2 19 */ bl __ct__6CAABoxFRC9CVector3fRC9CVector3f
/* 8005A2F4 00057254 80 61 00 14 */ lwz r3, 0x14(r1)
/* 8005A2F8 00057258 80 01 00 18 */ lwz r0, 0x18(r1)
/* 8005A2FC 0005725C 90 7F 00 9C */ stw r3, 0x9c(r31)
/* 8005A300 00057260 90 1F 00 A0 */ stw r0, 0xa0(r31)
/* 8005A304 00057264 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8005A308 00057268 90 1F 00 A4 */ stw r0, 0xa4(r31)
/* 8005A30C 0005726C 80 61 00 20 */ lwz r3, 0x20(r1)
/* 8005A310 00057270 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8005A314 00057274 90 7F 00 A8 */ stw r3, 0xa8(r31)
/* 8005A318 00057278 90 1F 00 AC */ stw r0, 0xac(r31)
/* 8005A31C 0005727C 80 01 00 28 */ lwz r0, 0x28(r1)
/* 8005A320 00057280 90 1F 00 B0 */ stw r0, 0xb0(r31)
lbl_8005A324:
/* 8005A324 00057284 38 00 00 00 */ li r0, 0
/* 8005A328 00057288 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 8005A32C 0005728C 98 01 00 60 */ stb r0, 0x60(r1)
/* 8005A330 00057290 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8005A334 00057294 7C 08 03 A6 */ mtlr r0
/* 8005A338 00057298 38 21 00 70 */ addi r1, r1, 0x70
/* 8005A33C 0005729C 4E 80 00 20 */ blr
.global AcceptScriptMsg__10CExplosionF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__10CExplosionF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 8005A340 000572A0 94 21 FF 30 */ stwu r1, -0xd0(r1)
/* 8005A344 000572A4 7C 08 02 A6 */ mflr r0
/* 8005A348 000572A8 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 8005A34C 000572AC BE E1 00 AC */ stmw r23, 0xac(r1)
/* 8005A350 000572B0 7C 9D 23 78 */ mr r29, r4
/* 8005A354 000572B4 2C 1D 00 22 */ cmpwi r29, 0x22
/* 8005A358 000572B8 7C 7C 1B 78 */ mr r28, r3
/* 8005A35C 000572BC 7C BE 2B 78 */ mr r30, r5
/* 8005A360 000572C0 7C DF 33 78 */ mr r31, r6
/* 8005A364 000572C4 41 82 01 44 */ beq lbl_8005A4A8
/* 8005A368 000572C8 40 80 01 6C */ bge lbl_8005A4D4
/* 8005A36C 000572CC 2C 1D 00 21 */ cmpwi r29, 0x21
/* 8005A370 000572D0 40 80 00 08 */ bge lbl_8005A378
/* 8005A374 000572D4 48 00 01 60 */ b lbl_8005A4D4
lbl_8005A378:
/* 8005A378 000572D8 80 7C 00 E8 */ lwz r3, 0xe8(r28)
/* 8005A37C 000572DC 81 83 00 00 */ lwz r12, 0(r3)
/* 8005A380 000572E0 81 8C 00 64 */ lwz r12, 0x64(r12)
/* 8005A384 000572E4 7D 89 03 A6 */ mtctr r12
/* 8005A388 000572E8 4E 80 04 21 */ bctrl
/* 8005A38C 000572EC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8005A390 000572F0 41 82 01 44 */ beq lbl_8005A4D4
/* 8005A394 000572F4 7F E4 FB 78 */ mr r4, r31
/* 8005A398 000572F8 38 61 00 2C */ addi r3, r1, 0x2c
/* 8005A39C 000572FC 4B FF 2D 41 */ bl AllocateUniqueId__13CStateManagerFv
/* 8005A3A0 00057300 A0 01 00 2C */ lhz r0, 0x2c(r1)
/* 8005A3A4 00057304 3C 60 80 3D */ lis r3, lbl_803CCF78@ha
/* 8005A3A8 00057308 38 83 CF 78 */ addi r4, r3, lbl_803CCF78@l
/* 8005A3AC 0005730C 3B 60 00 00 */ li r27, 0
/* 8005A3B0 00057310 B0 1C 00 EC */ sth r0, 0xec(r28)
/* 8005A3B4 00057314 3A E0 00 00 */ li r23, 0
/* 8005A3B8 00057318 38 60 01 48 */ li r3, 0x148
/* 8005A3BC 0005731C 38 A0 00 00 */ li r5, 0
/* 8005A3C0 00057320 83 1C 00 F0 */ lwz r24, 0xf0(r28)
/* 8005A3C4 00057324 48 2B B4 A9 */ bl __nw__FUlPCcPCc
/* 8005A3C8 00057328 7C 7A 1B 79 */ or. r26, r3, r3
/* 8005A3CC 0005732C 41 82 00 AC */ beq lbl_8005A478
/* 8005A3D0 00057330 A0 1C 00 08 */ lhz r0, 8(r28)
/* 8005A3D4 00057334 3C 60 80 3D */ lis r3, lbl_803CCF78@ha
/* 8005A3D8 00057338 83 3C 00 E8 */ lwz r25, 0xe8(r28)
/* 8005A3DC 0005733C 38 83 CF 78 */ addi r4, r3, lbl_803CCF78@l
/* 8005A3E0 00057340 B0 01 00 24 */ sth r0, 0x24(r1)
/* 8005A3E4 00057344 38 61 00 48 */ addi r3, r1, 0x48
/* 8005A3E8 00057348 38 84 00 07 */ addi r4, r4, 7
/* 8005A3EC 0005734C B0 01 00 28 */ sth r0, 0x28(r1)
/* 8005A3F0 00057350 4B FA A8 C9 */ bl string_l__4rstlFPCc
/* 8005A3F4 00057354 38 61 00 38 */ addi r3, r1, 0x38
/* 8005A3F8 00057358 38 81 00 48 */ addi r4, r1, 0x48
/* 8005A3FC 0005735C 38 BC 00 10 */ addi r5, r28, 0x10
/* 8005A400 00057360 3B 60 00 01 */ li r27, 1
/* 8005A404 00057364 4B FA A8 59 */ bl "__pl__4rstlFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8005A408 00057368 88 1C 00 30 */ lbz r0, 0x30(r28)
/* 8005A40C 0005736C 7F 24 CB 78 */ mr r4, r25
/* 8005A410 00057370 80 BC 00 04 */ lwz r5, 4(r28)
/* 8005A414 00057374 38 61 00 58 */ addi r3, r1, 0x58
/* 8005A418 00057378 54 19 CF FE */ rlwinm r25, r0, 0x19, 0x1f, 0x1f
/* 8005A41C 0005737C 3A E0 00 01 */ li r23, 1
/* 8005A420 00057380 90 A1 00 34 */ stw r5, 0x34(r1)
/* 8005A424 00057384 A0 1C 00 EC */ lhz r0, 0xec(r28)
/* 8005A428 00057388 90 A1 00 30 */ stw r5, 0x30(r1)
/* 8005A42C 0005738C B0 01 00 20 */ sth r0, 0x20(r1)
/* 8005A430 00057390 81 84 00 00 */ lwz r12, 0(r4)
/* 8005A434 00057394 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 8005A438 00057398 7D 89 03 A6 */ mtctr r12
/* 8005A43C 0005739C 4E 80 04 21 */ bctrl
/* 8005A440 000573A0 93 01 00 08 */ stw r24, 8(r1)
/* 8005A444 000573A4 38 00 00 01 */ li r0, 1
/* 8005A448 000573A8 C0 22 86 A8 */ lfs f1, lbl_805AA3C8@sda21(r2)
/* 8005A44C 000573AC 7F 43 D3 78 */ mr r3, r26
/* 8005A450 000573B0 90 01 00 0C */ stw r0, 0xc(r1)
/* 8005A454 000573B4 7F 26 CB 78 */ mr r6, r25
/* 8005A458 000573B8 38 81 00 20 */ addi r4, r1, 0x20
/* 8005A45C 000573BC 38 A1 00 34 */ addi r5, r1, 0x34
/* 8005A460 000573C0 38 E1 00 38 */ addi r7, r1, 0x38
/* 8005A464 000573C4 39 1C 00 34 */ addi r8, r28, 0x34
/* 8005A468 000573C8 39 21 00 28 */ addi r9, r1, 0x28
/* 8005A46C 000573CC 39 41 00 58 */ addi r10, r1, 0x58
/* 8005A470 000573D0 48 05 B3 B5 */ bl "__ct__10CGameLightF9TUniqueId7TAreaIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4f9TUniqueIdRC6CLightUiUif"
/* 8005A474 000573D4 7C 7A 1B 78 */ mr r26, r3
lbl_8005A478:
/* 8005A478 000573D8 7F E3 FB 78 */ mr r3, r31
/* 8005A47C 000573DC 7F 44 D3 78 */ mr r4, r26
/* 8005A480 000573E0 4B FF 28 75 */ bl AddObject__13CStateManagerFP7CEntity
/* 8005A484 000573E4 7E E0 07 75 */ extsb. r0, r23
/* 8005A488 000573E8 41 82 00 0C */ beq lbl_8005A494
/* 8005A48C 000573EC 38 61 00 38 */ addi r3, r1, 0x38
/* 8005A490 000573F0 48 2E 36 51 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_8005A494:
/* 8005A494 000573F4 7F 60 07 75 */ extsb. r0, r27
/* 8005A498 000573F8 41 82 00 3C */ beq lbl_8005A4D4
/* 8005A49C 000573FC 38 61 00 48 */ addi r3, r1, 0x48
/* 8005A4A0 00057400 48 2E 36 41 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 8005A4A4 00057404 48 00 00 30 */ b lbl_8005A4D4
lbl_8005A4A8:
/* 8005A4A8 00057408 A0 7C 00 EC */ lhz r3, 0xec(r28)
/* 8005A4AC 0005740C A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8005A4B0 00057410 7C 03 00 40 */ cmplw r3, r0
/* 8005A4B4 00057414 41 82 00 20 */ beq lbl_8005A4D4
/* 8005A4B8 00057418 A0 1C 00 EC */ lhz r0, 0xec(r28)
/* 8005A4BC 0005741C 7F E3 FB 78 */ mr r3, r31
/* 8005A4C0 00057420 38 81 00 1C */ addi r4, r1, 0x1c
/* 8005A4C4 00057424 B0 01 00 1C */ sth r0, 0x1c(r1)
/* 8005A4C8 00057428 4B FF 1D A5 */ bl FreeScriptObject__13CStateManagerF9TUniqueId
/* 8005A4CC 0005742C A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8005A4D0 00057430 B0 1C 00 EC */ sth r0, 0xec(r28)
lbl_8005A4D4:
/* 8005A4D4 00057434 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8005A4D8 00057438 7F 83 E3 78 */ mr r3, r28
/* 8005A4DC 0005743C 7F A4 EB 78 */ mr r4, r29
/* 8005A4E0 00057440 7F E6 FB 78 */ mr r6, r31
/* 8005A4E4 00057444 B0 01 00 18 */ sth r0, 0x18(r1)
/* 8005A4E8 00057448 38 A1 00 18 */ addi r5, r1, 0x18
/* 8005A4EC 0005744C 4B FF 91 29 */ bl AcceptScriptMsg__6CActorF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 8005A4F0 00057450 A0 7C 00 EC */ lhz r3, 0xec(r28)
/* 8005A4F4 00057454 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8005A4F8 00057458 7C 03 00 40 */ cmplw r3, r0
/* 8005A4FC 0005745C 41 82 00 28 */ beq lbl_8005A524
/* 8005A500 00057460 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8005A504 00057464 7F E3 FB 78 */ mr r3, r31
/* 8005A508 00057468 7F A6 EB 78 */ mr r6, r29
/* 8005A50C 0005746C 38 81 00 14 */ addi r4, r1, 0x14
/* 8005A510 00057470 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8005A514 00057474 38 A1 00 10 */ addi r5, r1, 0x10
/* 8005A518 00057478 A0 1C 00 EC */ lhz r0, 0xec(r28)
/* 8005A51C 0005747C B0 01 00 14 */ sth r0, 0x14(r1)
/* 8005A520 00057480 4B FE 99 35 */ bl SendScriptMsgAlways__13CStateManagerF9TUniqueId9TUniqueId20EScriptObjectMessage
lbl_8005A524:
/* 8005A524 00057484 BA E1 00 AC */ lmw r23, 0xac(r1)
/* 8005A528 00057488 80 01 00 D4 */ lwz r0, 0xd4(r1)
/* 8005A52C 0005748C 7C 08 03 A6 */ mtlr r0
/* 8005A530 00057490 38 21 00 D0 */ addi r1, r1, 0xd0
/* 8005A534 00057494 4E 80 00 20 */ blr
.global Accept__10CExplosionFR8IVisitor
Accept__10CExplosionFR8IVisitor:
/* 8005A538 00057498 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8005A53C 0005749C 7C 08 02 A6 */ mflr r0
/* 8005A540 000574A0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005A544 000574A4 7C 60 1B 78 */ mr r0, r3
/* 8005A548 000574A8 7C 83 23 78 */ mr r3, r4
/* 8005A54C 000574AC 81 84 00 00 */ lwz r12, 0(r4)
/* 8005A550 000574B0 7C 04 03 78 */ mr r4, r0
/* 8005A554 000574B4 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 8005A558 000574B8 7D 89 03 A6 */ mtctr r12
/* 8005A55C 000574BC 4E 80 04 21 */ bctrl
/* 8005A560 000574C0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8005A564 000574C4 7C 08 03 A6 */ mtlr r0
/* 8005A568 000574C8 38 21 00 10 */ addi r1, r1, 0x10
/* 8005A56C 000574CC 4E 80 00 20 */ blr
.global Think__10CExplosionFfR13CStateManager
Think__10CExplosionFfR13CStateManager:
/* 8005A570 000574D0 94 21 FF 30 */ stwu r1, -0xd0(r1)
/* 8005A574 000574D4 7C 08 02 A6 */ mflr r0
/* 8005A578 000574D8 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 8005A57C 000574DC DB E1 00 C0 */ stfd f31, 0xc0(r1)
/* 8005A580 000574E0 F3 E1 00 C8 */ psq_st f31, 200(r1), 0, qr0
/* 8005A584 000574E4 93 E1 00 BC */ stw r31, 0xbc(r1)
/* 8005A588 000574E8 93 C1 00 B8 */ stw r30, 0xb8(r1)
/* 8005A58C 000574EC 93 A1 00 B4 */ stw r29, 0xb4(r1)
/* 8005A590 000574F0 88 03 00 E4 */ lbz r0, 0xe4(r3)
/* 8005A594 000574F4 FF E0 08 90 */ fmr f31, f1
/* 8005A598 000574F8 7C 7D 1B 78 */ mr r29, r3
/* 8005A59C 000574FC 7C 9E 23 78 */ mr r30, r4
/* 8005A5A0 00057500 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 8005A5A4 00057504 41 82 00 6C */ beq lbl_8005A610
/* 8005A5A8 00057508 C0 5D 00 60 */ lfs f2, 0x60(r29)
/* 8005A5AC 0005750C 38 81 00 24 */ addi r4, r1, 0x24
/* 8005A5B0 00057510 C0 3D 00 50 */ lfs f1, 0x50(r29)
/* 8005A5B4 00057514 C0 1D 00 40 */ lfs f0, 0x40(r29)
/* 8005A5B8 00057518 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8005A5BC 0005751C D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8005A5C0 00057520 D0 41 00 2C */ stfs f2, 0x2c(r1)
/* 8005A5C4 00057524 80 7D 00 E8 */ lwz r3, 0xe8(r29)
/* 8005A5C8 00057528 81 83 00 00 */ lwz r12, 0(r3)
/* 8005A5CC 0005752C 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 8005A5D0 00057530 7D 89 03 A6 */ mtctr r12
/* 8005A5D4 00057534 4E 80 04 21 */ bctrl
/* 8005A5D8 00057538 83 FD 00 E8 */ lwz r31, 0xe8(r29)
/* 8005A5DC 0005753C 38 61 00 30 */ addi r3, r1, 0x30
/* 8005A5E0 00057540 38 9D 00 34 */ addi r4, r29, 0x34
/* 8005A5E4 00057544 48 2B 86 5D */ bl GetRotation__12CTransform4fCFv
/* 8005A5E8 00057548 7F E3 FB 78 */ mr r3, r31
/* 8005A5EC 0005754C 38 81 00 30 */ addi r4, r1, 0x30
/* 8005A5F0 00057550 81 9F 00 00 */ lwz r12, 0(r31)
/* 8005A5F4 00057554 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 8005A5F8 00057558 7D 89 03 A6 */ mtctr r12
/* 8005A5FC 0005755C 4E 80 04 21 */ bctrl
/* 8005A600 00057560 88 1D 00 E4 */ lbz r0, 0xe4(r29)
/* 8005A604 00057564 38 60 00 00 */ li r3, 0
/* 8005A608 00057568 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8005A60C 0005756C 98 1D 00 E4 */ stb r0, 0xe4(r29)
lbl_8005A610:
/* 8005A610 00057570 80 7D 00 E8 */ lwz r3, 0xe8(r29)
/* 8005A614 00057574 FC 20 F8 90 */ fmr f1, f31
/* 8005A618 00057578 81 83 00 00 */ lwz r12, 0(r3)
/* 8005A61C 0005757C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8005A620 00057580 7D 89 03 A6 */ mtctr r12
/* 8005A624 00057584 4E 80 04 21 */ bctrl
/* 8005A628 00057588 A0 7D 00 EC */ lhz r3, 0xec(r29)
/* 8005A62C 0005758C A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8005A630 00057590 7C 03 00 40 */ cmplw r3, r0
/* 8005A634 00057594 41 82 00 60 */ beq lbl_8005A694
/* 8005A638 00057598 A0 1D 00 EC */ lhz r0, 0xec(r29)
/* 8005A63C 0005759C 7F C3 F3 78 */ mr r3, r30
/* 8005A640 000575A0 38 81 00 18 */ addi r4, r1, 0x18
/* 8005A644 000575A4 B0 01 00 18 */ sth r0, 0x18(r1)
/* 8005A648 000575A8 4B FF 1F 2D */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8005A64C 000575AC 7C 64 1B 78 */ mr r4, r3
/* 8005A650 000575B0 38 61 00 1C */ addi r3, r1, 0x1c
/* 8005A654 000575B4 48 05 34 31 */ bl "__ct__24TCastToPtr<10CGameLight>FP7CEntity"
/* 8005A658 000575B8 83 E3 00 04 */ lwz r31, 4(r3)
/* 8005A65C 000575BC 28 1F 00 00 */ cmplwi r31, 0
/* 8005A660 000575C0 41 82 00 34 */ beq lbl_8005A694
/* 8005A664 000575C4 88 1D 00 30 */ lbz r0, 0x30(r29)
/* 8005A668 000575C8 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8005A66C 000575CC 41 82 00 28 */ beq lbl_8005A694
/* 8005A670 000575D0 80 9D 00 E8 */ lwz r4, 0xe8(r29)
/* 8005A674 000575D4 38 61 00 60 */ addi r3, r1, 0x60
/* 8005A678 000575D8 81 84 00 00 */ lwz r12, 0(r4)
/* 8005A67C 000575DC 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 8005A680 000575E0 7D 89 03 A6 */ mtctr r12
/* 8005A684 000575E4 4E 80 04 21 */ bctrl
/* 8005A688 000575E8 7F E3 FB 78 */ mr r3, r31
/* 8005A68C 000575EC 38 81 00 60 */ addi r4, r1, 0x60
/* 8005A690 000575F0 48 05 B0 B5 */ bl SetLight__10CGameLightFRC6CLight
lbl_8005A694:
/* 8005A694 000575F4 C0 3D 00 F8 */ lfs f1, 0xf8(r29)
/* 8005A698 000575F8 C0 02 86 B0 */ lfs f0, lbl_805AA3D0@sda21(r2)
/* 8005A69C 000575FC EC 21 F8 2A */ fadds f1, f1, f31
/* 8005A6A0 00057600 D0 3D 00 F8 */ stfs f1, 0xf8(r29)
/* 8005A6A4 00057604 C0 3D 00 F8 */ lfs f1, 0xf8(r29)
/* 8005A6A8 00057608 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005A6AC 0005760C 40 81 00 20 */ ble lbl_8005A6CC
/* 8005A6B0 00057610 A0 1D 00 08 */ lhz r0, 8(r29)
/* 8005A6B4 00057614 7F C3 F3 78 */ mr r3, r30
/* 8005A6B8 00057618 38 81 00 14 */ addi r4, r1, 0x14
/* 8005A6BC 0005761C B0 01 00 10 */ sth r0, 0x10(r1)
/* 8005A6C0 00057620 B0 01 00 14 */ sth r0, 0x14(r1)
/* 8005A6C4 00057624 4B FF 1B A9 */ bl FreeScriptObject__13CStateManagerF9TUniqueId
/* 8005A6C8 00057628 48 00 00 38 */ b lbl_8005A700
lbl_8005A6CC:
/* 8005A6CC 0005762C 80 7D 00 E8 */ lwz r3, 0xe8(r29)
/* 8005A6D0 00057630 81 83 00 00 */ lwz r12, 0(r3)
/* 8005A6D4 00057634 81 8C 00 58 */ lwz r12, 0x58(r12)
/* 8005A6D8 00057638 7D 89 03 A6 */ mtctr r12
/* 8005A6DC 0005763C 4E 80 04 21 */ bctrl
/* 8005A6E0 00057640 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8005A6E4 00057644 41 82 00 1C */ beq lbl_8005A700
/* 8005A6E8 00057648 A0 1D 00 08 */ lhz r0, 8(r29)
/* 8005A6EC 0005764C 7F C3 F3 78 */ mr r3, r30
/* 8005A6F0 00057650 38 81 00 0C */ addi r4, r1, 0xc
/* 8005A6F4 00057654 B0 01 00 08 */ sth r0, 8(r1)
/* 8005A6F8 00057658 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8005A6FC 0005765C 4B FF 1B 71 */ bl FreeScriptObject__13CStateManagerF9TUniqueId
lbl_8005A700:
/* 8005A700 00057660 E3 E1 00 C8 */ psq_l f31, 200(r1), 0, qr0
/* 8005A704 00057664 80 01 00 D4 */ lwz r0, 0xd4(r1)
/* 8005A708 00057668 CB E1 00 C0 */ lfd f31, 0xc0(r1)
/* 8005A70C 0005766C 83 E1 00 BC */ lwz r31, 0xbc(r1)
/* 8005A710 00057670 83 C1 00 B8 */ lwz r30, 0xb8(r1)
/* 8005A714 00057674 83 A1 00 B4 */ lwz r29, 0xb4(r1)
/* 8005A718 00057678 7C 08 03 A6 */ mtlr r0
/* 8005A71C 0005767C 38 21 00 D0 */ addi r1, r1, 0xd0
/* 8005A720 00057680 4E 80 00 20 */ blr
.global PreRender__10CExplosionFR13CStateManagerRC14CFrustumPlanes
PreRender__10CExplosionFR13CStateManagerRC14CFrustumPlanes:
/* 8005A724 00057684 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8005A728 00057688 7C 08 02 A6 */ mflr r0
/* 8005A72C 0005768C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8005A730 00057690 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8005A734 00057694 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8005A738 00057698 7C BE 2B 78 */ mr r30, r5
/* 8005A73C 0005769C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8005A740 000576A0 7C 7D 1B 78 */ mr r29, r3
/* 8005A744 000576A4 4B FF A5 9D */ bl PreRender__6CActorFR13CStateManagerRC14CFrustumPlanes
/* 8005A748 000576A8 88 1D 00 F4 */ lbz r0, 0xf4(r29)
/* 8005A74C 000576AC 3B E0 00 00 */ li r31, 0
/* 8005A750 000576B0 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8005A754 000576B4 41 82 00 18 */ beq lbl_8005A76C
/* 8005A758 000576B8 7F C3 F3 78 */ mr r3, r30
/* 8005A75C 000576BC 38 9D 00 9C */ addi r4, r29, 0x9c
/* 8005A760 000576C0 48 2E AA 71 */ bl BoxInFrustumPlanes__14CFrustumPlanesCFRC6CAABox
/* 8005A764 000576C4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8005A768 000576C8 40 82 00 08 */ bne lbl_8005A770
lbl_8005A76C:
/* 8005A76C 000576CC 3B E0 00 01 */ li r31, 1
lbl_8005A770:
/* 8005A770 000576D0 88 1D 00 E4 */ lbz r0, 0xe4(r29)
/* 8005A774 000576D4 53 E0 0F BC */ rlwimi r0, r31, 1, 0x1e, 0x1e
/* 8005A778 000576D8 98 1D 00 E4 */ stb r0, 0xe4(r29)
/* 8005A77C 000576DC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8005A780 000576E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8005A784 000576E4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8005A788 000576E8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8005A78C 000576EC 7C 08 03 A6 */ mtlr r0
/* 8005A790 000576F0 38 21 00 20 */ addi r1, r1, 0x20
/* 8005A794 000576F4 4E 80 00 20 */ blr
.global AddToRenderer__10CExplosionCFRC14CFrustumPlanesRC13CStateManager
AddToRenderer__10CExplosionCFRC14CFrustumPlanesRC13CStateManager:
/* 8005A798 000576F8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8005A79C 000576FC 7C 08 02 A6 */ mflr r0
/* 8005A7A0 00057700 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005A7A4 00057704 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8005A7A8 00057708 7C BF 2B 78 */ mr r31, r5
/* 8005A7AC 0005770C 93 C1 00 08 */ stw r30, 8(r1)
/* 8005A7B0 00057710 7C 7E 1B 78 */ mr r30, r3
/* 8005A7B4 00057714 88 03 00 E4 */ lbz r0, 0xe4(r3)
/* 8005A7B8 00057718 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
/* 8005A7BC 0005771C 40 82 00 68 */ bne lbl_8005A824
/* 8005A7C0 00057720 88 1E 00 F4 */ lbz r0, 0xf4(r30)
/* 8005A7C4 00057724 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8005A7C8 00057728 41 82 00 10 */ beq lbl_8005A7D8
/* 8005A7CC 0005772C 80 1F 0F 34 */ lwz r0, 0xf34(r31)
/* 8005A7D0 00057730 2C 00 00 00 */ cmpwi r0, 0
/* 8005A7D4 00057734 41 82 00 28 */ beq lbl_8005A7FC
lbl_8005A7D8:
/* 8005A7D8 00057738 88 1E 00 F4 */ lbz r0, 0xf4(r30)
/* 8005A7DC 0005773C 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 8005A7E0 00057740 41 82 00 2C */ beq lbl_8005A80C
/* 8005A7E4 00057744 80 7F 08 B8 */ lwz r3, 0x8b8(r31)
/* 8005A7E8 00057748 7F E4 FB 78 */ mr r4, r31
/* 8005A7EC 0005774C 80 63 00 00 */ lwz r3, 0(r3)
/* 8005A7F0 00057750 48 03 6D 69 */ bl GetActiveVisor__12CPlayerStateCFRC13CStateManager
/* 8005A7F4 00057754 2C 03 00 01 */ cmpwi r3, 1
/* 8005A7F8 00057758 40 82 00 14 */ bne lbl_8005A80C
lbl_8005A7FC:
/* 8005A7FC 0005775C 7F C3 F3 78 */ mr r3, r30
/* 8005A800 00057760 7F E4 FB 78 */ mr r4, r31
/* 8005A804 00057764 4B FF A1 C9 */ bl EnsureRendered__6CActorCFRC13CStateManager
/* 8005A808 00057768 48 00 00 1C */ b lbl_8005A824
lbl_8005A80C:
/* 8005A80C 0005776C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 8005A810 00057770 80 9E 00 E8 */ lwz r4, 0xe8(r30)
/* 8005A814 00057774 81 83 00 00 */ lwz r12, 0(r3)
/* 8005A818 00057778 81 8C 00 34 */ lwz r12, 0x34(r12)
/* 8005A81C 0005777C 7D 89 03 A6 */ mtctr r12
/* 8005A820 00057780 4E 80 04 21 */ bctrl
lbl_8005A824:
/* 8005A824 00057784 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8005A828 00057788 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8005A82C 0005778C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8005A830 00057790 7C 08 03 A6 */ mtlr r0
/* 8005A834 00057794 38 21 00 10 */ addi r1, r1, 0x10
/* 8005A838 00057798 4E 80 00 20 */ blr
.global __dt__10CExplosionFv
__dt__10CExplosionFv:
/* 8005A83C 0005779C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8005A840 000577A0 7C 08 02 A6 */ mflr r0
/* 8005A844 000577A4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005A848 000577A8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8005A84C 000577AC 7C 9F 23 78 */ mr r31, r4
/* 8005A850 000577B0 93 C1 00 08 */ stw r30, 8(r1)
/* 8005A854 000577B4 7C 7E 1B 79 */ or. r30, r3, r3
/* 8005A858 000577B8 41 82 00 68 */ beq lbl_8005A8C0
/* 8005A85C 000577BC 3C 60 80 3E */ lis r3, lbl_803DA0A8@ha
/* 8005A860 000577C0 34 1E 00 E8 */ addic. r0, r30, 0xe8
/* 8005A864 000577C4 38 03 A0 A8 */ addi r0, r3, lbl_803DA0A8@l
/* 8005A868 000577C8 90 1E 00 00 */ stw r0, 0(r30)
/* 8005A86C 000577CC 41 82 00 24 */ beq lbl_8005A890
/* 8005A870 000577D0 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 8005A874 000577D4 28 03 00 00 */ cmplwi r3, 0
/* 8005A878 000577D8 41 82 00 18 */ beq lbl_8005A890
/* 8005A87C 000577DC 81 83 00 00 */ lwz r12, 0(r3)
/* 8005A880 000577E0 38 80 00 01 */ li r4, 1
/* 8005A884 000577E4 81 8C 00 08 */ lwz r12, 8(r12)
/* 8005A888 000577E8 7D 89 03 A6 */ mtctr r12
/* 8005A88C 000577EC 4E 80 04 21 */ bctrl
lbl_8005A890:
/* 8005A890 000577F0 28 1E 00 00 */ cmplwi r30, 0
/* 8005A894 000577F4 41 82 00 1C */ beq lbl_8005A8B0
/* 8005A898 000577F8 3C 80 80 3E */ lis r4, __vt__7CEffect@ha
/* 8005A89C 000577FC 7F C3 F3 78 */ mr r3, r30
/* 8005A8A0 00057800 38 04 A1 18 */ addi r0, r4, __vt__7CEffect@l
/* 8005A8A4 00057804 38 80 00 00 */ li r4, 0
/* 8005A8A8 00057808 90 1E 00 00 */ stw r0, 0(r30)
/* 8005A8AC 0005780C 4B FF AE 45 */ bl __dt__6CActorFv
lbl_8005A8B0:
/* 8005A8B0 00057810 7F E0 07 35 */ extsh. r0, r31
/* 8005A8B4 00057814 40 81 00 0C */ ble lbl_8005A8C0
/* 8005A8B8 00057818 7F C3 F3 78 */ mr r3, r30
/* 8005A8BC 0005781C 48 2B B0 75 */ bl Free__7CMemoryFPCv
lbl_8005A8C0:
/* 8005A8C0 00057820 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8005A8C4 00057824 7F C3 F3 78 */ mr r3, r30
/* 8005A8C8 00057828 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8005A8CC 0005782C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8005A8D0 00057830 7C 08 03 A6 */ mtlr r0
/* 8005A8D4 00057834 38 21 00 10 */ addi r1, r1, 0x10
/* 8005A8D8 00057838 4E 80 00 20 */ blr
.global "__ct__10CExplosionFRC31TLockedToken<20CElectricDescription>9TUniqueIdbRC11CEntityInfoRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4fUiRC9CVector3fRC6CColor"
"__ct__10CExplosionFRC31TLockedToken<20CElectricDescription>9TUniqueIdbRC11CEntityInfoRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4fUiRC9CVector3fRC6CColor":
/* 8005A8DC 0005783C 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8005A8E0 00057840 7C 08 02 A6 */ mflr r0
/* 8005A8E4 00057844 90 01 00 84 */ stw r0, 0x84(r1)
/* 8005A8E8 00057848 BF 01 00 60 */ stmw r24, 0x60(r1)
/* 8005A8EC 0005784C 7C 9B 23 78 */ mr r27, r4
/* 8005A8F0 00057850 7D 3C 4B 78 */ mr r28, r9
/* 8005A8F4 00057854 83 C1 00 88 */ lwz r30, 0x88(r1)
/* 8005A8F8 00057858 83 E1 00 8C */ lwz r31, 0x8c(r1)
/* 8005A8FC 0005785C 7C 7A 1B 78 */ mr r26, r3
/* 8005A900 00057860 7D 5D 53 78 */ mr r29, r10
/* 8005A904 00057864 38 81 00 08 */ addi r4, r1, 8
/* 8005A908 00057868 A0 05 00 00 */ lhz r0, 0(r5)
/* 8005A90C 0005786C 7C E5 3B 78 */ mr r5, r7
/* 8005A910 00057870 7D 07 43 78 */ mr r7, r8
/* 8005A914 00057874 7F 88 E3 78 */ mr r8, r28
/* 8005A918 00057878 B0 01 00 08 */ sth r0, 8(r1)
/* 8005A91C 0005787C 48 00 04 35 */ bl "__ct__7CEffectF9TUniqueIdRC11CEntityInfobRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4f"
/* 8005A920 00057880 3C 80 80 3E */ lis r4, lbl_803DA0A8@ha
/* 8005A924 00057884 3C 60 80 3D */ lis r3, lbl_803CCF78@ha
/* 8005A928 00057888 38 04 A0 A8 */ addi r0, r4, lbl_803DA0A8@l
/* 8005A92C 0005788C 3B 00 00 00 */ li r24, 0
/* 8005A930 00057890 90 1A 00 00 */ stw r0, 0(r26)
/* 8005A934 00057894 38 83 CF 78 */ addi r4, r3, lbl_803CCF78@l
/* 8005A938 00057898 38 60 04 58 */ li r3, 0x458
/* 8005A93C 0005789C 38 A0 00 00 */ li r5, 0
/* 8005A940 000578A0 48 2B AF 2D */ bl __nw__FUlPCcPCc
/* 8005A944 000578A4 7C 79 1B 79 */ or. r25, r3, r3
/* 8005A948 000578A8 41 82 00 24 */ beq lbl_8005A96C
/* 8005A94C 000578AC 7F 64 DB 78 */ mr r4, r27
/* 8005A950 000578B0 38 61 00 14 */ addi r3, r1, 0x14
/* 8005A954 000578B4 48 2E 65 55 */ bl __ct__6CTokenFRC6CToken
/* 8005A958 000578B8 7F 23 CB 78 */ mr r3, r25
/* 8005A95C 000578BC 38 81 00 14 */ addi r4, r1, 0x14
/* 8005A960 000578C0 3B 00 00 01 */ li r24, 1
/* 8005A964 000578C4 48 30 78 0D */ bl "__ct__17CParticleElectricF30TToken<20CElectricDescription>"
/* 8005A968 000578C8 7C 79 1B 78 */ mr r25, r3
lbl_8005A96C:
/* 8005A96C 000578CC 7F 00 07 75 */ extsb. r0, r24
/* 8005A970 000578D0 93 3A 00 E8 */ stw r25, 0xe8(r26)
/* 8005A974 000578D4 41 82 00 10 */ beq lbl_8005A984
/* 8005A978 000578D8 38 61 00 14 */ addi r3, r1, 0x14
/* 8005A97C 000578DC 38 80 00 00 */ li r4, 0
/* 8005A980 000578E0 48 2E 64 C1 */ bl __dt__6CTokenFv
lbl_8005A984:
/* 8005A984 000578E4 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8005A988 000578E8 7F 64 DB 78 */ mr r4, r27
/* 8005A98C 000578EC 38 61 00 0C */ addi r3, r1, 0xc
/* 8005A990 000578F0 B0 1A 00 EC */ sth r0, 0xec(r26)
/* 8005A994 000578F4 48 2E 65 15 */ bl __ct__6CTokenFRC6CToken
/* 8005A998 000578F8 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 8005A99C 000578FC 38 61 00 0C */ addi r3, r1, 0xc
/* 8005A9A0 00057900 38 80 FF FF */ li r4, -1
/* 8005A9A4 00057904 80 05 00 08 */ lwz r0, 8(r5)
/* 8005A9A8 00057908 90 1A 00 F0 */ stw r0, 0xf0(r26)
/* 8005A9AC 0005790C 48 2E 64 95 */ bl __dt__6CTokenFv
/* 8005A9B0 00057910 88 7A 00 F4 */ lbz r3, 0xf4(r26)
/* 8005A9B4 00057914 53 A3 2E 30 */ rlwimi r3, r29, 5, 0x18, 0x18
/* 8005A9B8 00057918 57 A0 07 FF */ clrlwi. r0, r29, 0x1f
/* 8005A9BC 0005791C 38 A0 00 01 */ li r5, 1
/* 8005A9C0 00057920 98 7A 00 F4 */ stb r3, 0xf4(r26)
/* 8005A9C4 00057924 88 1A 00 F4 */ lbz r0, 0xf4(r26)
/* 8005A9C8 00057928 50 A0 36 72 */ rlwimi r0, r5, 6, 0x19, 0x19
/* 8005A9CC 0005792C 98 1A 00 F4 */ stb r0, 0xf4(r26)
/* 8005A9D0 00057930 38 00 00 02 */ li r0, 2
/* 8005A9D4 00057934 88 7A 00 F4 */ lbz r3, 0xf4(r26)
/* 8005A9D8 00057938 53 A3 16 B4 */ rlwimi r3, r29, 2, 0x1a, 0x1a
/* 8005A9DC 0005793C 98 7A 00 F4 */ stb r3, 0xf4(r26)
/* 8005A9E0 00057940 41 82 00 08 */ beq lbl_8005A9E8
/* 8005A9E4 00057944 7C A0 2B 78 */ mr r0, r5
lbl_8005A9E8:
/* 8005A9E8 00057948 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 8005A9EC 0005794C 88 1A 00 E6 */ lbz r0, 0xe6(r26)
/* 8005A9F0 00057950 50 60 1E F8 */ rlwimi r0, r3, 3, 0x1b, 0x1c
/* 8005A9F4 00057954 38 81 00 1C */ addi r4, r1, 0x1c
/* 8005A9F8 00057958 98 1A 00 E6 */ stb r0, 0xe6(r26)
/* 8005A9FC 0005795C C0 5C 00 2C */ lfs f2, 0x2c(r28)
/* 8005AA00 00057960 C0 3C 00 1C */ lfs f1, 0x1c(r28)
/* 8005AA04 00057964 C0 1C 00 0C */ lfs f0, 0xc(r28)
/* 8005AA08 00057968 D0 21 00 20 */ stfs f1, 0x20(r1)
/* 8005AA0C 0005796C D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8005AA10 00057970 D0 41 00 24 */ stfs f2, 0x24(r1)
/* 8005AA14 00057974 80 7A 00 E8 */ lwz r3, 0xe8(r26)
/* 8005AA18 00057978 81 83 00 00 */ lwz r12, 0(r3)
/* 8005AA1C 0005797C 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 8005AA20 00057980 7D 89 03 A6 */ mtctr r12
/* 8005AA24 00057984 4E 80 04 21 */ bctrl
/* 8005AA28 00057988 83 3A 00 E8 */ lwz r25, 0xe8(r26)
/* 8005AA2C 0005798C 7F 84 E3 78 */ mr r4, r28
/* 8005AA30 00057990 38 61 00 28 */ addi r3, r1, 0x28
/* 8005AA34 00057994 48 2B 82 0D */ bl GetRotation__12CTransform4fCFv
/* 8005AA38 00057998 7F 23 CB 78 */ mr r3, r25
/* 8005AA3C 0005799C 38 81 00 28 */ addi r4, r1, 0x28
/* 8005AA40 000579A0 81 99 00 00 */ lwz r12, 0(r25)
/* 8005AA44 000579A4 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 8005AA48 000579A8 7D 89 03 A6 */ mtctr r12
/* 8005AA4C 000579AC 4E 80 04 21 */ bctrl
/* 8005AA50 000579B0 80 7A 00 E8 */ lwz r3, 0xe8(r26)
/* 8005AA54 000579B4 7F C4 F3 78 */ mr r4, r30
/* 8005AA58 000579B8 81 83 00 00 */ lwz r12, 0(r3)
/* 8005AA5C 000579BC 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8005AA60 000579C0 7D 89 03 A6 */ mtctr r12
/* 8005AA64 000579C4 4E 80 04 21 */ bctrl
/* 8005AA68 000579C8 80 7A 00 E8 */ lwz r3, 0xe8(r26)
/* 8005AA6C 000579CC 7F E4 FB 78 */ mr r4, r31
/* 8005AA70 000579D0 81 83 00 00 */ lwz r12, 0(r3)
/* 8005AA74 000579D4 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 8005AA78 000579D8 7D 89 03 A6 */ mtctr r12
/* 8005AA7C 000579DC 4E 80 04 21 */ bctrl
/* 8005AA80 000579E0 7F 43 D3 78 */ mr r3, r26
/* 8005AA84 000579E4 BB 01 00 60 */ lmw r24, 0x60(r1)
/* 8005AA88 000579E8 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8005AA8C 000579EC 7C 08 03 A6 */ mtlr r0
/* 8005AA90 000579F0 38 21 00 80 */ addi r1, r1, 0x80
/* 8005AA94 000579F4 4E 80 00 20 */ blr
.global __dt__7CEffectFv
__dt__7CEffectFv:
/* 8005AA98 000579F8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8005AA9C 000579FC 7C 08 02 A6 */ mflr r0
/* 8005AAA0 00057A00 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005AAA4 00057A04 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8005AAA8 00057A08 7C 9F 23 78 */ mr r31, r4
/* 8005AAAC 00057A0C 93 C1 00 08 */ stw r30, 8(r1)
/* 8005AAB0 00057A10 7C 7E 1B 79 */ or. r30, r3, r3
/* 8005AAB4 00057A14 41 82 00 28 */ beq lbl_8005AADC
/* 8005AAB8 00057A18 3C A0 80 3E */ lis r5, __vt__7CEffect@ha
/* 8005AABC 00057A1C 38 80 00 00 */ li r4, 0
/* 8005AAC0 00057A20 38 05 A1 18 */ addi r0, r5, __vt__7CEffect@l
/* 8005AAC4 00057A24 90 1E 00 00 */ stw r0, 0(r30)
/* 8005AAC8 00057A28 4B FF AC 29 */ bl __dt__6CActorFv
/* 8005AACC 00057A2C 7F E0 07 35 */ extsh. r0, r31
/* 8005AAD0 00057A30 40 81 00 0C */ ble lbl_8005AADC
/* 8005AAD4 00057A34 7F C3 F3 78 */ mr r3, r30
/* 8005AAD8 00057A38 48 2B AE 59 */ bl Free__7CMemoryFPCv
lbl_8005AADC:
/* 8005AADC 00057A3C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8005AAE0 00057A40 7F C3 F3 78 */ mr r3, r30
/* 8005AAE4 00057A44 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8005AAE8 00057A48 83 C1 00 08 */ lwz r30, 8(r1)
/* 8005AAEC 00057A4C 7C 08 03 A6 */ mtlr r0
/* 8005AAF0 00057A50 38 21 00 10 */ addi r1, r1, 0x10
/* 8005AAF4 00057A54 4E 80 00 20 */ blr
.global "__ct__10CExplosionFRC31TLockedToken<15CGenDescription>9TUniqueIdbRC11CEntityInfoRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4fUiRC9CVector3fRC6CColor"
"__ct__10CExplosionFRC31TLockedToken<15CGenDescription>9TUniqueIdbRC11CEntityInfoRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4fUiRC9CVector3fRC6CColor":
/* 8005AAF8 00057A58 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8005AAFC 00057A5C 7C 08 02 A6 */ mflr r0
/* 8005AB00 00057A60 90 01 00 84 */ stw r0, 0x84(r1)
/* 8005AB04 00057A64 BF 01 00 60 */ stmw r24, 0x60(r1)
/* 8005AB08 00057A68 7C 9B 23 78 */ mr r27, r4
/* 8005AB0C 00057A6C 7D 3C 4B 78 */ mr r28, r9
/* 8005AB10 00057A70 83 C1 00 88 */ lwz r30, 0x88(r1)
/* 8005AB14 00057A74 83 E1 00 8C */ lwz r31, 0x8c(r1)
/* 8005AB18 00057A78 7C 7A 1B 78 */ mr r26, r3
/* 8005AB1C 00057A7C 7D 5D 53 78 */ mr r29, r10
/* 8005AB20 00057A80 38 81 00 08 */ addi r4, r1, 8
/* 8005AB24 00057A84 A0 05 00 00 */ lhz r0, 0(r5)
/* 8005AB28 00057A88 7C E5 3B 78 */ mr r5, r7
/* 8005AB2C 00057A8C 7D 07 43 78 */ mr r7, r8
/* 8005AB30 00057A90 7F 88 E3 78 */ mr r8, r28
/* 8005AB34 00057A94 B0 01 00 08 */ sth r0, 8(r1)
/* 8005AB38 00057A98 48 00 02 19 */ bl "__ct__7CEffectF9TUniqueIdRC11CEntityInfobRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4f"
/* 8005AB3C 00057A9C 3C 80 80 3E */ lis r4, lbl_803DA0A8@ha
/* 8005AB40 00057AA0 3C 60 80 3D */ lis r3, lbl_803CCF78@ha
/* 8005AB44 00057AA4 38 04 A0 A8 */ addi r0, r4, lbl_803DA0A8@l
/* 8005AB48 00057AA8 3B 00 00 00 */ li r24, 0
/* 8005AB4C 00057AAC 90 1A 00 00 */ stw r0, 0(r26)
/* 8005AB50 00057AB0 38 83 CF 78 */ addi r4, r3, lbl_803CCF78@l
/* 8005AB54 00057AB4 38 60 03 40 */ li r3, 0x340
/* 8005AB58 00057AB8 38 A0 00 00 */ li r5, 0
/* 8005AB5C 00057ABC 48 2B AD 11 */ bl __nw__FUlPCcPCc
/* 8005AB60 00057AC0 7C 79 1B 79 */ or. r25, r3, r3
/* 8005AB64 00057AC4 41 82 00 38 */ beq lbl_8005AB9C
/* 8005AB68 00057AC8 7F 64 DB 78 */ mr r4, r27
/* 8005AB6C 00057ACC 38 61 00 14 */ addi r3, r1, 0x14
/* 8005AB70 00057AD0 48 2E 63 39 */ bl __ct__6CTokenFRC6CToken
/* 8005AB74 00057AD4 57 A0 07 BD */ rlwinm. r0, r29, 0, 0x1e, 0x1e
/* 8005AB78 00057AD8 7F 23 CB 78 */ mr r3, r25
/* 8005AB7C 00057ADC 38 81 00 14 */ addi r4, r1, 0x14
/* 8005AB80 00057AE0 3B 00 00 01 */ li r24, 1
/* 8005AB84 00057AE4 38 A0 00 00 */ li r5, 0
/* 8005AB88 00057AE8 38 C0 00 01 */ li r6, 1
/* 8005AB8C 00057AEC 41 82 00 08 */ beq lbl_8005AB94
/* 8005AB90 00057AF0 38 C0 00 02 */ li r6, 2
lbl_8005AB94:
/* 8005AB94 00057AF4 48 2C 48 4D */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 8005AB98 00057AF8 7C 79 1B 78 */ mr r25, r3
lbl_8005AB9C:
/* 8005AB9C 00057AFC 7F 00 07 75 */ extsb. r0, r24
/* 8005ABA0 00057B00 93 3A 00 E8 */ stw r25, 0xe8(r26)
/* 8005ABA4 00057B04 41 82 00 10 */ beq lbl_8005ABB4
/* 8005ABA8 00057B08 38 61 00 14 */ addi r3, r1, 0x14
/* 8005ABAC 00057B0C 38 80 00 00 */ li r4, 0
/* 8005ABB0 00057B10 48 2E 62 91 */ bl __dt__6CTokenFv
lbl_8005ABB4:
/* 8005ABB4 00057B14 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8005ABB8 00057B18 7F 64 DB 78 */ mr r4, r27
/* 8005ABBC 00057B1C 38 61 00 0C */ addi r3, r1, 0xc
/* 8005ABC0 00057B20 B0 1A 00 EC */ sth r0, 0xec(r26)
/* 8005ABC4 00057B24 48 2E 62 E5 */ bl __ct__6CTokenFRC6CToken
/* 8005ABC8 00057B28 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 8005ABCC 00057B2C 38 61 00 0C */ addi r3, r1, 0xc
/* 8005ABD0 00057B30 38 80 FF FF */ li r4, -1
/* 8005ABD4 00057B34 80 05 00 08 */ lwz r0, 8(r5)
/* 8005ABD8 00057B38 90 1A 00 F0 */ stw r0, 0xf0(r26)
/* 8005ABDC 00057B3C 48 2E 62 65 */ bl __dt__6CTokenFv
/* 8005ABE0 00057B40 88 7A 00 F4 */ lbz r3, 0xf4(r26)
/* 8005ABE4 00057B44 53 A3 2E 30 */ rlwimi r3, r29, 5, 0x18, 0x18
/* 8005ABE8 00057B48 57 A0 07 FF */ clrlwi. r0, r29, 0x1f
/* 8005ABEC 00057B4C 38 A0 00 01 */ li r5, 1
/* 8005ABF0 00057B50 98 7A 00 F4 */ stb r3, 0xf4(r26)
/* 8005ABF4 00057B54 38 00 00 02 */ li r0, 2
/* 8005ABF8 00057B58 C0 02 86 A8 */ lfs f0, lbl_805AA3C8@sda21(r2)
/* 8005ABFC 00057B5C 88 7A 00 F4 */ lbz r3, 0xf4(r26)
/* 8005AC00 00057B60 50 A3 36 72 */ rlwimi r3, r5, 6, 0x19, 0x19
/* 8005AC04 00057B64 98 7A 00 F4 */ stb r3, 0xf4(r26)
/* 8005AC08 00057B68 88 7A 00 F4 */ lbz r3, 0xf4(r26)
/* 8005AC0C 00057B6C 53 A3 16 B4 */ rlwimi r3, r29, 2, 0x1a, 0x1a
/* 8005AC10 00057B70 98 7A 00 F4 */ stb r3, 0xf4(r26)
/* 8005AC14 00057B74 D0 1A 00 F8 */ stfs f0, 0xf8(r26)
/* 8005AC18 00057B78 41 82 00 08 */ beq lbl_8005AC20
/* 8005AC1C 00057B7C 7C A0 2B 78 */ mr r0, r5
lbl_8005AC20:
/* 8005AC20 00057B80 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 8005AC24 00057B84 88 1A 00 E6 */ lbz r0, 0xe6(r26)
/* 8005AC28 00057B88 50 60 1E F8 */ rlwimi r0, r3, 3, 0x1b, 0x1c
/* 8005AC2C 00057B8C 38 81 00 1C */ addi r4, r1, 0x1c
/* 8005AC30 00057B90 98 1A 00 E6 */ stb r0, 0xe6(r26)
/* 8005AC34 00057B94 C0 5C 00 2C */ lfs f2, 0x2c(r28)
/* 8005AC38 00057B98 C0 3C 00 1C */ lfs f1, 0x1c(r28)
/* 8005AC3C 00057B9C C0 1C 00 0C */ lfs f0, 0xc(r28)
/* 8005AC40 00057BA0 D0 21 00 20 */ stfs f1, 0x20(r1)
/* 8005AC44 00057BA4 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8005AC48 00057BA8 D0 41 00 24 */ stfs f2, 0x24(r1)
/* 8005AC4C 00057BAC 80 7A 00 E8 */ lwz r3, 0xe8(r26)
/* 8005AC50 00057BB0 81 83 00 00 */ lwz r12, 0(r3)
/* 8005AC54 00057BB4 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 8005AC58 00057BB8 7D 89 03 A6 */ mtctr r12
/* 8005AC5C 00057BBC 4E 80 04 21 */ bctrl
/* 8005AC60 00057BC0 83 3A 00 E8 */ lwz r25, 0xe8(r26)
/* 8005AC64 00057BC4 7F 84 E3 78 */ mr r4, r28
/* 8005AC68 00057BC8 38 61 00 28 */ addi r3, r1, 0x28
/* 8005AC6C 00057BCC 48 2B 7F D5 */ bl GetRotation__12CTransform4fCFv
/* 8005AC70 00057BD0 7F 23 CB 78 */ mr r3, r25
/* 8005AC74 00057BD4 38 81 00 28 */ addi r4, r1, 0x28
/* 8005AC78 00057BD8 81 99 00 00 */ lwz r12, 0(r25)
/* 8005AC7C 00057BDC 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 8005AC80 00057BE0 7D 89 03 A6 */ mtctr r12
/* 8005AC84 00057BE4 4E 80 04 21 */ bctrl
/* 8005AC88 00057BE8 80 7A 00 E8 */ lwz r3, 0xe8(r26)
/* 8005AC8C 00057BEC 7F C4 F3 78 */ mr r4, r30
/* 8005AC90 00057BF0 81 83 00 00 */ lwz r12, 0(r3)
/* 8005AC94 00057BF4 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8005AC98 00057BF8 7D 89 03 A6 */ mtctr r12
/* 8005AC9C 00057BFC 4E 80 04 21 */ bctrl
/* 8005ACA0 00057C00 80 7A 00 E8 */ lwz r3, 0xe8(r26)
/* 8005ACA4 00057C04 7F E4 FB 78 */ mr r4, r31
/* 8005ACA8 00057C08 81 83 00 00 */ lwz r12, 0(r3)
/* 8005ACAC 00057C0C 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 8005ACB0 00057C10 7D 89 03 A6 */ mtctr r12
/* 8005ACB4 00057C14 4E 80 04 21 */ bctrl
/* 8005ACB8 00057C18 7F 43 D3 78 */ mr r3, r26
/* 8005ACBC 00057C1C BB 01 00 60 */ lmw r24, 0x60(r1)
/* 8005ACC0 00057C20 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8005ACC4 00057C24 7C 08 03 A6 */ mtlr r0
/* 8005ACC8 00057C28 38 21 00 80 */ addi r1, r1, 0x80
/* 8005ACCC 00057C2C 4E 80 00 20 */ blr
.global __dt__12CParticleGenFv
__dt__12CParticleGenFv:
/* 8005ACD0 00057C30 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8005ACD4 00057C34 7C 08 02 A6 */ mflr r0
/* 8005ACD8 00057C38 90 01 00 24 */ stw r0, 0x24(r1)
/* 8005ACDC 00057C3C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8005ACE0 00057C40 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8005ACE4 00057C44 7C 9E 23 78 */ mr r30, r4
/* 8005ACE8 00057C48 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8005ACEC 00057C4C 7C 7D 1B 79 */ or. r29, r3, r3
/* 8005ACF0 00057C50 41 82 00 38 */ beq lbl_8005AD28
/* 8005ACF4 00057C54 83 FD 00 04 */ lwz r31, 4(r29)
/* 8005ACF8 00057C58 48 00 00 14 */ b lbl_8005AD0C
lbl_8005ACFC:
/* 8005ACFC 00057C5C 7F E3 FB 79 */ or. r3, r31, r31
/* 8005AD00 00057C60 83 FF 00 04 */ lwz r31, 4(r31)
/* 8005AD04 00057C64 41 82 00 08 */ beq lbl_8005AD0C
/* 8005AD08 00057C68 48 2B AC 29 */ bl Free__7CMemoryFPCv
lbl_8005AD0C:
/* 8005AD0C 00057C6C 80 1D 00 08 */ lwz r0, 8(r29)
/* 8005AD10 00057C70 7C 1F 00 40 */ cmplw r31, r0
/* 8005AD14 00057C74 40 82 FF E8 */ bne lbl_8005ACFC
/* 8005AD18 00057C78 7F C0 07 35 */ extsh. r0, r30
/* 8005AD1C 00057C7C 40 81 00 0C */ ble lbl_8005AD28
/* 8005AD20 00057C80 7F A3 EB 78 */ mr r3, r29
/* 8005AD24 00057C84 48 2B AC 0D */ bl Free__7CMemoryFPCv
lbl_8005AD28:
/* 8005AD28 00057C88 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8005AD2C 00057C8C 7F A3 EB 78 */ mr r3, r29
/* 8005AD30 00057C90 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8005AD34 00057C94 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8005AD38 00057C98 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8005AD3C 00057C9C 7C 08 03 A6 */ mtlr r0
/* 8005AD40 00057CA0 38 21 00 20 */ addi r1, r1, 0x20
/* 8005AD44 00057CA4 4E 80 00 20 */ blr
.section .rodata
.balign 8
.global lbl_803CCF78
lbl_803CCF78:
# ROM: 0x3C9F78
.asciz "??(??)"
.byte 0x45
.asciz "xplodePLight_"
.balign 4