.include "macros.inc"

.section .data
.balign 8

.global lbl_803E4648
lbl_803E4648:
	# ROM: 0x3E1648
	.4byte 0
	.4byte 0
	.4byte __dt__15CBeamProjectileFv
	.4byte Accept__15CBeamProjectileFR8IVisitor
	.4byte PreThink__7CEntityFfR13CStateManager
	.4byte Think__7CWeaponFfR13CStateManager
	.4byte AcceptScriptMsg__15CGameProjectileF20EScriptObjectMessage9TUniqueIdR13CStateManager
	.4byte SetActive__6CActorFb
	.4byte PreRender__6CActorFR13CStateManagerRC14CFrustumPlanes
	.4byte AddToRenderer__6CActorCFRC14CFrustumPlanesRC13CStateManager
	.4byte Render__15CGameProjectileCFRC13CStateManager
	.4byte CanRenderUnsorted__6CActorCFRC13CStateManager
	.4byte CalculateRenderBounds__15CBeamProjectileFv
	.4byte HealthInfo__6CActorFR13CStateManager
	.4byte GetDamageVulnerability__6CActorCFv
	.4byte GetDamageVulnerability__6CActorCFRC9CVector3fRC9CVector3fRC11CDamageInfo
	.4byte GetTouchBounds__15CBeamProjectileCFv
	.4byte nullsub_142
	.4byte GetOrbitPosition__6CActorCFRC13CStateManager
	.4byte GetAimPosition__6CActorCFRC13CStateManagerf
	.4byte GetHomingPosition__6CActorCFRC13CStateManagerf
	.4byte GetScanObjectIndicatorPosition__6CActorCFRC13CStateManager
	.4byte GetCollisionResponseType__7CWeaponCFRC9CVector3fRC9CVector3fRC11CWeaponModei
	.4byte FluidFXThink__15CGameProjectileFQ26CActor11EFluidStateR12CScriptWaterR13CStateManager
	.4byte OnScanStateChange__6CActorFQ26CActor10EScanStateR13CStateManager
	.4byte GetSortingBounds__6CActorCFRC13CStateManager
	.4byte DoUserAnimEvent__6CActorFR13CStateManagerRC13CInt32POINode14EUserEventTypef
	.4byte ResolveCollisionWithActor__15CGameProjectileFRC14CRayCastResultR6CActorR13CStateManager
	.4byte UpdateFx__15CBeamProjectileFRC12CTransform4ffR13CStateManager
	.4byte ResetBeam__15CBeamProjectileFR13CStateManagerb
	.4byte 0
	.4byte 0

.section .sdata
.balign 8

.global lbl_805A7B90
lbl_805A7B90:
	# ROM: 0x3F5530
	.4byte 0x00000012
	.4byte 0


.section .text, "ax"

.global UpdateFx__15CBeamProjectileFRC12CTransform4ffR13CStateManager
UpdateFx__15CBeamProjectileFRC12CTransform4ffR13CStateManager:
/* 80198DE0 00195D40  94 21 F6 10 */	stwu r1, -0x9f0(r1)
/* 80198DE4 00195D44  7C 08 02 A6 */	mflr r0
/* 80198DE8 00195D48  90 01 09 F4 */	stw r0, 0x9f4(r1)
/* 80198DEC 00195D4C  DB E1 09 E0 */	stfd f31, 0x9e0(r1)
/* 80198DF0 00195D50  F3 E1 09 E8 */	psq_st f31, -1560(r1), 0, qr0
/* 80198DF4 00195D54  93 E1 09 DC */	stw r31, 0x9dc(r1)
/* 80198DF8 00195D58  93 C1 09 D8 */	stw r30, 0x9d8(r1)
/* 80198DFC 00195D5C  93 A1 09 D4 */	stw r29, 0x9d4(r1)
/* 80198E00 00195D60  93 81 09 D0 */	stw r28, 0x9d0(r1)
/* 80198E04 00195D64  88 03 00 30 */	lbz r0, 0x30(r3)
/* 80198E08 00195D68  FF E0 08 90 */	fmr f31, f1
/* 80198E0C 00195D6C  7C 7C 1B 78 */	mr r28, r3
/* 80198E10 00195D70  7C 9D 23 78 */	mr r29, r4
/* 80198E14 00195D74  54 00 CF FF */	rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80198E18 00195D78  7C BE 2B 78 */	mr r30, r5
/* 80198E1C 00195D7C  41 82 04 7C */	beq lbl_80199298
/* 80198E20 00195D80  38 61 01 68 */	addi r3, r1, 0x168
/* 80198E24 00195D84  48 17 9E 1D */	bl GetRotation__12CTransform4fCFv
/* 80198E28 00195D88  38 7C 00 34 */	addi r3, r28, 0x34
/* 80198E2C 00195D8C  38 81 01 68 */	addi r4, r1, 0x168
/* 80198E30 00195D90  48 17 9D 11 */	bl __as__12CTransform4fFRC12CTransform4f
/* 80198E34 00195D94  88 1C 00 E4 */	lbz r0, 0xe4(r28)
/* 80198E38 00195D98  38 60 00 01 */	li r3, 1
/* 80198E3C 00195D9C  50 60 26 F6 */	rlwimi r0, r3, 4, 0x1b, 0x1b
/* 80198E40 00195DA0  98 1C 00 E4 */	stb r0, 0xe4(r28)
/* 80198E44 00195DA4  88 1C 00 E4 */	lbz r0, 0xe4(r28)
/* 80198E48 00195DA8  50 60 1F 38 */	rlwimi r0, r3, 3, 0x1c, 0x1c
/* 80198E4C 00195DAC  98 1C 00 E4 */	stb r0, 0xe4(r28)
/* 80198E50 00195DB0  88 1C 00 E4 */	lbz r0, 0xe4(r28)
/* 80198E54 00195DB4  50 60 17 7A */	rlwimi r0, r3, 2, 0x1d, 0x1d
/* 80198E58 00195DB8  98 1C 00 E4 */	stb r0, 0xe4(r28)
/* 80198E5C 00195DBC  88 1C 04 64 */	lbz r0, 0x464(r28)
/* 80198E60 00195DC0  54 00 CF FF */	rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80198E64 00195DC4  41 82 00 28 */	beq lbl_80198E8C
/* 80198E68 00195DC8  C0 3C 03 08 */	lfs f1, 0x308(r28)
/* 80198E6C 00195DCC  C0 1C 03 00 */	lfs f0, 0x300(r28)
/* 80198E70 00195DD0  EC 01 07 FA */	fmadds f0, f1, f31, f0
/* 80198E74 00195DD4  D0 1C 03 00 */	stfs f0, 0x300(r28)
/* 80198E78 00195DD8  C0 1C 03 00 */	lfs f0, 0x300(r28)
/* 80198E7C 00195DDC  C0 3C 02 EC */	lfs f1, 0x2ec(r28)
/* 80198E80 00195DE0  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 80198E84 00195DE4  40 81 00 08 */	ble lbl_80198E8C
/* 80198E88 00195DE8  D0 3C 03 00 */	stfs f1, 0x300(r28)
lbl_80198E8C:
/* 80198E8C 00195DEC  C0 1C 03 00 */	lfs f0, 0x300(r28)
/* 80198E90 00195DF0  38 00 00 00 */	li r0, 0
/* 80198E94 00195DF4  38 61 00 64 */	addi r3, r1, 0x64
/* 80198E98 00195DF8  38 81 00 58 */	addi r4, r1, 0x58
/* 80198E9C 00195DFC  D0 1C 03 04 */	stfs f0, 0x304(r28)
/* 80198EA0 00195E00  90 1C 02 F8 */	stw r0, 0x2f8(r28)
/* 80198EA4 00195E04  C0 7D 00 2C */	lfs f3, 0x2c(r29)
/* 80198EA8 00195E08  C0 5D 00 1C */	lfs f2, 0x1c(r29)
/* 80198EAC 00195E0C  C0 3D 00 0C */	lfs f1, 0xc(r29)
/* 80198EB0 00195E10  C0 BD 00 24 */	lfs f5, 0x24(r29)
/* 80198EB4 00195E14  C0 9D 00 14 */	lfs f4, 0x14(r29)
/* 80198EB8 00195E18  C0 1D 00 04 */	lfs f0, 4(r29)
/* 80198EBC 00195E1C  D0 21 00 7C */	stfs f1, 0x7c(r1)
/* 80198EC0 00195E20  D0 41 00 80 */	stfs f2, 0x80(r1)
/* 80198EC4 00195E24  D0 61 00 84 */	stfs f3, 0x84(r1)
/* 80198EC8 00195E28  D0 01 00 58 */	stfs f0, 0x58(r1)
/* 80198ECC 00195E2C  D0 81 00 5C */	stfs f4, 0x5c(r1)
/* 80198ED0 00195E30  D0 A1 00 60 */	stfs f5, 0x60(r1)
/* 80198ED4 00195E34  48 17 B9 7D */	bl AsNormalized__9CVector3fCFv
/* 80198ED8 00195E38  C0 FC 03 00 */	lfs f7, 0x300(r28)
/* 80198EDC 00195E3C  7F 83 E3 78 */	mr r3, r28
/* 80198EE0 00195E40  C0 41 00 68 */	lfs f2, 0x68(r1)
/* 80198EE4 00195E44  38 81 00 70 */	addi r4, r1, 0x70
/* 80198EE8 00195E48  C0 21 00 6C */	lfs f1, 0x6c(r1)
/* 80198EEC 00195E4C  C0 01 00 64 */	lfs f0, 0x64(r1)
/* 80198EF0 00195E50  EC A7 00 B2 */	fmuls f5, f7, f2
/* 80198EF4 00195E54  C0 DD 00 1C */	lfs f6, 0x1c(r29)
/* 80198EF8 00195E58  EC 67 00 72 */	fmuls f3, f7, f1
/* 80198EFC 00195E5C  C0 9D 00 2C */	lfs f4, 0x2c(r29)
/* 80198F00 00195E60  EC 27 00 32 */	fmuls f1, f7, f0
/* 80198F04 00195E64  C0 5D 00 0C */	lfs f2, 0xc(r29)
/* 80198F08 00195E68  EC A6 28 2A */	fadds f5, f6, f5
/* 80198F0C 00195E6C  C0 01 00 7C */	lfs f0, 0x7c(r1)
/* 80198F10 00195E70  EC 64 18 2A */	fadds f3, f4, f3
/* 80198F14 00195E74  EC 22 08 2A */	fadds f1, f2, f1
/* 80198F18 00195E78  D0 A1 00 74 */	stfs f5, 0x74(r1)
/* 80198F1C 00195E7C  D0 21 00 70 */	stfs f1, 0x70(r1)
/* 80198F20 00195E80  D0 61 00 78 */	stfs f3, 0x78(r1)
/* 80198F24 00195E84  D0 1C 02 98 */	stfs f0, 0x298(r28)
/* 80198F28 00195E88  C0 01 00 80 */	lfs f0, 0x80(r1)
/* 80198F2C 00195E8C  D0 1C 02 9C */	stfs f0, 0x29c(r28)
/* 80198F30 00195E90  C0 01 00 84 */	lfs f0, 0x84(r1)
/* 80198F34 00195E94  D0 1C 02 A0 */	stfs f0, 0x2a0(r28)
/* 80198F38 00195E98  4B EB 9F 55 */	bl SetTranslation__6CActorFRC9CVector3f
/* 80198F3C 00195E9C  C0 7C 02 F4 */	lfs f3, 0x2f4(r28)
/* 80198F40 00195EA0  38 61 00 F0 */	addi r3, r1, 0xf0
/* 80198F44 00195EA4  C0 22 A6 C8 */	lfs f1, lbl_805AC3E8@sda21(r2)
/* 80198F48 00195EA8  38 81 00 4C */	addi r4, r1, 0x4c
/* 80198F4C 00195EAC  FC 40 18 50 */	fneg f2, f3
/* 80198F50 00195EB0  C0 1C 03 04 */	lfs f0, 0x304(r28)
/* 80198F54 00195EB4  D0 21 01 24 */	stfs f1, 0x124(r1)
/* 80198F58 00195EB8  38 A1 00 40 */	addi r5, r1, 0x40
/* 80198F5C 00195EBC  D0 41 01 20 */	stfs f2, 0x120(r1)
/* 80198F60 00195EC0  80 01 01 24 */	lwz r0, 0x124(r1)
/* 80198F64 00195EC4  80 C1 01 20 */	lwz r6, 0x120(r1)
/* 80198F68 00195EC8  D0 41 01 28 */	stfs f2, 0x128(r1)
/* 80198F6C 00195ECC  90 DC 03 54 */	stw r6, 0x354(r28)
/* 80198F70 00195ED0  80 C1 01 28 */	lwz r6, 0x128(r1)
/* 80198F74 00195ED4  D0 61 01 2C */	stfs f3, 0x12c(r1)
/* 80198F78 00195ED8  90 1C 03 58 */	stw r0, 0x358(r28)
/* 80198F7C 00195EDC  80 01 01 2C */	lwz r0, 0x12c(r1)
/* 80198F80 00195EE0  D0 01 01 30 */	stfs f0, 0x130(r1)
/* 80198F84 00195EE4  90 DC 03 5C */	stw r6, 0x35c(r28)
/* 80198F88 00195EE8  80 C1 01 30 */	lwz r6, 0x130(r1)
/* 80198F8C 00195EEC  D0 61 01 34 */	stfs f3, 0x134(r1)
/* 80198F90 00195EF0  90 1C 03 60 */	stw r0, 0x360(r28)
/* 80198F94 00195EF4  80 01 01 34 */	lwz r0, 0x134(r1)
/* 80198F98 00195EF8  90 DC 03 64 */	stw r6, 0x364(r28)
/* 80198F9C 00195EFC  90 1C 03 68 */	stw r0, 0x368(r28)
/* 80198FA0 00195F00  C0 5C 02 F4 */	lfs f2, 0x2f4(r28)
/* 80198FA4 00195F04  C0 1C 03 00 */	lfs f0, 0x300(r28)
/* 80198FA8 00195F08  FC 60 10 50 */	fneg f3, f2
/* 80198FAC 00195F0C  D0 41 00 40 */	stfs f2, 0x40(r1)
/* 80198FB0 00195F10  D0 01 00 44 */	stfs f0, 0x44(r1)
/* 80198FB4 00195F14  D0 41 00 48 */	stfs f2, 0x48(r1)
/* 80198FB8 00195F18  D0 61 00 4C */	stfs f3, 0x4c(r1)
/* 80198FBC 00195F1C  D0 21 00 50 */	stfs f1, 0x50(r1)
/* 80198FC0 00195F20  D0 61 00 54 */	stfs f3, 0x54(r1)
/* 80198FC4 00195F24  48 19 F5 45 */	bl __ct__6CAABoxFRC9CVector3fRC9CVector3f
/* 80198FC8 00195F28  7C 64 1B 78 */	mr r4, r3
/* 80198FCC 00195F2C  7F A5 EB 78 */	mr r5, r29
/* 80198FD0 00195F30  38 61 01 08 */	addi r3, r1, 0x108
/* 80198FD4 00195F34  48 19 E9 29 */	bl GetTransformedAABox__6CAABoxCFRC12CTransform4f
/* 80198FD8 00195F38  80 C1 01 08 */	lwz r6, 0x108(r1)
/* 80198FDC 00195F3C  38 00 00 00 */	li r0, 0
/* 80198FE0 00195F40  80 A1 01 0C */	lwz r5, 0x10c(r1)
/* 80198FE4 00195F44  38 60 00 00 */	li r3, 0
/* 80198FE8 00195F48  38 80 00 01 */	li r4, 1
/* 80198FEC 00195F4C  90 DC 03 6C */	stw r6, 0x36c(r28)
/* 80198FF0 00195F50  90 BC 03 70 */	stw r5, 0x370(r28)
/* 80198FF4 00195F54  80 A1 01 10 */	lwz r5, 0x110(r1)
/* 80198FF8 00195F58  90 BC 03 74 */	stw r5, 0x374(r28)
/* 80198FFC 00195F5C  80 C1 01 14 */	lwz r6, 0x114(r1)
/* 80199000 00195F60  80 A1 01 18 */	lwz r5, 0x118(r1)
/* 80199004 00195F64  90 DC 03 78 */	stw r6, 0x378(r28)
/* 80199008 00195F68  90 BC 03 7C */	stw r5, 0x37c(r28)
/* 8019900C 00195F6C  80 A1 01 1C */	lwz r5, 0x11c(r1)
/* 80199010 00195F70  90 BC 03 80 */	stw r5, 0x380(r28)
/* 80199014 00195F74  A0 CD A3 8C */	lhz r6, kInvalidUniqueId@sda21(r13)
/* 80199018 00195F78  80 AD 8F D0 */	lwz r5, lbl_805A7B90@sda21(r13)
/* 8019901C 00195F7C  B0 C1 00 1C */	sth r6, 0x1c(r1)
/* 80199020 00195F80  90 01 01 C8 */	stw r0, 0x1c8(r1)
/* 80199024 00195F84  48 1F 0E D1 */	bl __shl2i
/* 80199028 00195F88  39 20 FF FF */	li r9, -1
/* 8019902C 00195F8C  39 00 00 00 */	li r8, 0
/* 80199030 00195F90  38 00 00 02 */	li r0, 2
/* 80199034 00195F94  90 81 00 E4 */	stw r4, 0xe4(r1)
/* 80199038 00195F98  7F 87 E3 78 */	mr r7, r28
/* 8019903C 00195F9C  38 81 01 C8 */	addi r4, r1, 0x1c8
/* 80199040 00195FA0  90 61 00 E0 */	stw r3, 0xe0(r1)
/* 80199044 00195FA4  7F C3 F3 78 */	mr r3, r30
/* 80199048 00195FA8  38 BC 03 6C */	addi r5, r28, 0x36c
/* 8019904C 00195FAC  38 C1 00 D8 */	addi r6, r1, 0xd8
/* 80199050 00195FB0  91 21 00 DC */	stw r9, 0xdc(r1)
/* 80199054 00195FB4  91 01 00 D8 */	stw r8, 0xd8(r1)
/* 80199058 00195FB8  90 01 00 E8 */	stw r0, 0xe8(r1)
/* 8019905C 00195FBC  4B EB 36 C5 */	bl "BuildNearList__13CStateManagerCFRQ24rstl32reserved_vector<9TUniqueId,1024>RC6CAABoxRC15CMaterialFilterPC6CActor"
/* 80199060 00195FC0  C0 3C 03 00 */	lfs f1, 0x300(r28)
/* 80199064 00195FC4  7F 84 E3 78 */	mr r4, r28
/* 80199068 00195FC8  7F C9 F3 78 */	mr r9, r30
/* 8019906C 00195FCC  38 61 01 38 */	addi r3, r1, 0x138
/* 80199070 00195FD0  38 A1 00 1C */	addi r5, r1, 0x1c
/* 80199074 00195FD4  38 C1 00 7C */	addi r6, r1, 0x7c
/* 80199078 00195FD8  38 E1 00 70 */	addi r7, r1, 0x70
/* 8019907C 00195FDC  39 01 01 C8 */	addi r8, r1, 0x1c8
/* 80199080 00195FE0  4B E9 F6 41 */	bl "RayCollisionCheckWithWorld__15CGameProjectileFR9TUniqueIdRC9CVector3fRC9CVector3ffRQ24rstl32reserved_vector<9TUniqueId,1024>R13CStateManager"
/* 80199084 00195FE4  C0 E1 01 38 */	lfs f7, 0x138(r1)
/* 80199088 00195FE8  7F C3 F3 78 */	mr r3, r30
/* 8019908C 00195FEC  C0 C1 01 3C */	lfs f6, 0x13c(r1)
/* 80199090 00195FF0  3B E1 01 9C */	addi r31, r1, 0x19c
/* 80199094 00195FF4  C0 A1 01 40 */	lfs f5, 0x140(r1)
/* 80199098 00195FF8  38 81 00 18 */	addi r4, r1, 0x18
/* 8019909C 00195FFC  C0 81 01 44 */	lfs f4, 0x144(r1)
/* 801990A0 00196000  C0 61 01 48 */	lfs f3, 0x148(r1)
/* 801990A4 00196004  C0 41 01 4C */	lfs f2, 0x14c(r1)
/* 801990A8 00196008  C0 21 01 50 */	lfs f1, 0x150(r1)
/* 801990AC 0019600C  C0 01 01 54 */	lfs f0, 0x154(r1)
/* 801990B0 00196010  88 E1 01 58 */	lbz r7, 0x158(r1)
/* 801990B4 00196014  80 A1 01 60 */	lwz r5, 0x160(r1)
/* 801990B8 00196018  80 C1 01 64 */	lwz r6, 0x164(r1)
/* 801990BC 0019601C  A0 01 00 1C */	lhz r0, 0x1c(r1)
/* 801990C0 00196020  D0 E1 01 98 */	stfs f7, 0x198(r1)
/* 801990C4 00196024  D0 C1 01 9C */	stfs f6, 0x19c(r1)
/* 801990C8 00196028  D0 A1 01 A0 */	stfs f5, 0x1a0(r1)
/* 801990CC 0019602C  D0 81 01 A4 */	stfs f4, 0x1a4(r1)
/* 801990D0 00196030  D0 61 01 A8 */	stfs f3, 0x1a8(r1)
/* 801990D4 00196034  D0 41 01 AC */	stfs f2, 0x1ac(r1)
/* 801990D8 00196038  D0 21 01 B0 */	stfs f1, 0x1b0(r1)
/* 801990DC 0019603C  D0 01 01 B4 */	stfs f0, 0x1b4(r1)
/* 801990E0 00196040  98 E1 01 B8 */	stb r7, 0x1b8(r1)
/* 801990E4 00196044  90 C1 01 C4 */	stw r6, 0x1c4(r1)
/* 801990E8 00196048  90 A1 01 C0 */	stw r5, 0x1c0(r1)
/* 801990EC 0019604C  B0 01 00 18 */	sth r0, 0x18(r1)
/* 801990F0 00196050  4B EB 34 85 */	bl ObjectById__13CStateManagerF9TUniqueId
/* 801990F4 00196054  7C 64 1B 78 */	mr r4, r3
/* 801990F8 00196058  38 61 00 20 */	addi r3, r1, 0x20
/* 801990FC 0019605C  4B F1 6B 95 */	bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 80199100 00196060  80 03 00 04 */	lwz r0, 4(r3)
/* 80199104 00196064  28 00 00 00 */	cmplwi r0, 0
/* 80199108 00196068  41 82 00 50 */	beq lbl_80199158
/* 8019910C 0019606C  A0 01 00 1C */	lhz r0, 0x1c(r1)
/* 80199110 00196070  7F 83 E3 78 */	mr r3, r28
/* 80199114 00196074  38 A1 01 98 */	addi r5, r1, 0x198
/* 80199118 00196078  38 C1 00 14 */	addi r6, r1, 0x14
/* 8019911C 0019607C  B0 01 00 14 */	sth r0, 0x14(r1)
/* 80199120 00196080  38 80 00 01 */	li r4, 1
/* 80199124 00196084  48 00 01 9D */	bl SetCollisionResultData__15CBeamProjectileFQ215CBeamProjectile11EDamageTypeRC14CRayCastResult
/* 80199128 00196088  88 1C 04 64 */	lbz r0, 0x464(r28)
/* 8019912C 0019608C  54 00 D7 FF */	rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 80199130 00196090  41 82 01 08 */	beq lbl_80199238
/* 80199134 00196094  FC 20 F8 90 */	fmr f1, f31
/* 80199138 00196098  38 61 00 BC */	addi r3, r1, 0xbc
/* 8019913C 0019609C  38 9C 01 2C */	addi r4, r28, 0x12c
/* 80199140 001960A0  4B F2 A3 09 */	bl __ct__11CDamageInfoFRC11CDamageInfof
/* 80199144 001960A4  7F 83 E3 78 */	mr r3, r28
/* 80199148 001960A8  7F C4 F3 78 */	mr r4, r30
/* 8019914C 001960AC  38 A1 00 BC */	addi r5, r1, 0xbc
/* 80199150 001960B0  4B E9 F1 25 */	bl ApplyDamageToActors__15CGameProjectileFR13CStateManager
/* 80199154 001960B4  48 00 00 E4 */	b lbl_80199238
lbl_80199158:
/* 80199158 001960B8  88 01 01 B8 */	lbz r0, 0x1b8(r1)
/* 8019915C 001960BC  28 00 00 00 */	cmplwi r0, 0
/* 80199160 001960C0  41 82 00 90 */	beq lbl_801991F0
/* 80199164 001960C4  A0 0D A3 8C */	lhz r0, kInvalidUniqueId@sda21(r13)
/* 80199168 001960C8  7F 83 E3 78 */	mr r3, r28
/* 8019916C 001960CC  38 A1 01 98 */	addi r5, r1, 0x198
/* 80199170 001960D0  38 C1 00 10 */	addi r6, r1, 0x10
/* 80199174 001960D4  B0 01 00 10 */	sth r0, 0x10(r1)
/* 80199178 001960D8  38 80 00 02 */	li r4, 2
/* 8019917C 001960DC  48 00 01 45 */	bl SetCollisionResultData__15CBeamProjectileFQ215CBeamProjectile11EDamageTypeRC14CRayCastResult
/* 80199180 001960E0  88 1C 04 64 */	lbz r0, 0x464(r28)
/* 80199184 001960E4  54 00 D7 FF */	rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 80199188 001960E8  41 82 00 B0 */	beq lbl_80199238
/* 8019918C 001960EC  80 1C 00 F8 */	lwz r0, 0xf8(r28)
/* 80199190 001960F0  FC 20 F8 90 */	fmr f1, f31
/* 80199194 001960F4  80 BC 00 FC */	lwz r5, 0xfc(r28)
/* 80199198 001960F8  38 61 00 A0 */	addi r3, r1, 0xa0
/* 8019919C 001960FC  38 9C 01 2C */	addi r4, r28, 0x12c
/* 801991A0 00196100  90 A1 00 8C */	stw r5, 0x8c(r1)
/* 801991A4 00196104  90 01 00 88 */	stw r0, 0x88(r1)
/* 801991A8 00196108  80 1C 01 00 */	lwz r0, 0x100(r28)
/* 801991AC 0019610C  80 BC 01 04 */	lwz r5, 0x104(r28)
/* 801991B0 00196110  90 A1 00 94 */	stw r5, 0x94(r1)
/* 801991B4 00196114  90 01 00 90 */	stw r0, 0x90(r1)
/* 801991B8 00196118  80 1C 01 08 */	lwz r0, 0x108(r28)
/* 801991BC 0019611C  90 01 00 98 */	stw r0, 0x98(r1)
/* 801991C0 00196120  4B F2 A2 89 */	bl __ct__11CDamageInfoFRC11CDamageInfof
/* 801991C4 00196124  A0 1C 00 EC */	lhz r0, 0xec(r28)
/* 801991C8 00196128  7F C3 F3 78 */	mr r3, r30
/* 801991CC 0019612C  7F 85 E3 78 */	mr r5, r28
/* 801991D0 00196130  7F E6 FB 78 */	mr r6, r31
/* 801991D4 00196134  B0 01 00 08 */	sth r0, 8(r1)
/* 801991D8 00196138  38 81 00 0C */	addi r4, r1, 0xc
/* 801991DC 0019613C  38 E1 00 A0 */	addi r7, r1, 0xa0
/* 801991E0 00196140  39 01 00 88 */	addi r8, r1, 0x88
/* 801991E4 00196144  B0 01 00 0C */	sth r0, 0xc(r1)
/* 801991E8 00196148  4B EA FA C5 */	bl ApplyDamageToWorld__13CStateManagerF9TUniqueIdRC6CActorRC9CVector3fRC11CDamageInfoRC15CMaterialFilter
/* 801991EC 0019614C  48 00 00 4C */	b lbl_80199238
lbl_801991F0:
/* 801991F0 00196150  C0 3C 02 F4 */	lfs f1, 0x2f4(r28)
/* 801991F4 00196154  7F A4 EB 78 */	mr r4, r29
/* 801991F8 00196158  C0 1C 03 04 */	lfs f0, 0x304(r28)
/* 801991FC 0019615C  38 61 00 34 */	addi r3, r1, 0x34
/* 80199200 00196160  38 A1 00 28 */	addi r5, r1, 0x28
/* 80199204 00196164  D0 21 00 28 */	stfs f1, 0x28(r1)
/* 80199208 00196168  D0 01 00 2C */	stfs f0, 0x2c(r1)
/* 8019920C 0019616C  D0 21 00 30 */	stfs f1, 0x30(r1)
/* 80199210 00196170  48 17 98 D9 */	bl __ml__12CTransform4fCFRC9CVector3f
/* 80199214 00196174  C0 01 00 34 */	lfs f0, 0x34(r1)
/* 80199218 00196178  7F 83 E3 78 */	mr r3, r28
/* 8019921C 0019617C  38 9C 03 18 */	addi r4, r28, 0x318
/* 80199220 00196180  D0 1C 03 18 */	stfs f0, 0x318(r28)
/* 80199224 00196184  C0 01 00 38 */	lfs f0, 0x38(r1)
/* 80199228 00196188  D0 1C 03 1C */	stfs f0, 0x31c(r28)
/* 8019922C 0019618C  C0 01 00 3C */	lfs f0, 0x3c(r1)
/* 80199230 00196190  D0 1C 03 20 */	stfs f0, 0x320(r28)
/* 80199234 00196194  4B EB 9C 59 */	bl SetTranslation__6CActorFRC9CVector3f
lbl_80199238:
/* 80199238 00196198  7F A4 EB 78 */	mr r4, r29
/* 8019923C 0019619C  38 7C 03 24 */	addi r3, r28, 0x324
/* 80199240 001961A0  48 17 99 01 */	bl __as__12CTransform4fFRC12CTransform4f
/* 80199244 001961A4  80 A1 01 C8 */	lwz r5, 0x1c8(r1)
/* 80199248 001961A8  38 60 00 00 */	li r3, 0
/* 8019924C 001961AC  2C 05 00 00 */	cmpwi r5, 0
/* 80199250 001961B0  40 81 00 40 */	ble lbl_80199290
/* 80199254 001961B4  2C 05 00 08 */	cmpwi r5, 8
/* 80199258 001961B8  38 85 FF F8 */	addi r4, r5, -8
/* 8019925C 001961BC  40 81 00 20 */	ble lbl_8019927C
/* 80199260 001961C0  38 04 00 07 */	addi r0, r4, 7
/* 80199264 001961C4  54 00 E8 FE */	srwi r0, r0, 3
/* 80199268 001961C8  7C 09 03 A6 */	mtctr r0
/* 8019926C 001961CC  2C 04 00 00 */	cmpwi r4, 0
/* 80199270 001961D0  40 81 00 0C */	ble lbl_8019927C
lbl_80199274:
/* 80199274 001961D4  38 63 00 08 */	addi r3, r3, 8
/* 80199278 001961D8  42 00 FF FC */	bdnz lbl_80199274
lbl_8019927C:
/* 8019927C 001961DC  7C 03 28 50 */	subf r0, r3, r5
/* 80199280 001961E0  7C 09 03 A6 */	mtctr r0
/* 80199284 001961E4  7C 03 28 00 */	cmpw r3, r5
/* 80199288 001961E8  40 80 00 08 */	bge lbl_80199290
lbl_8019928C:
/* 8019928C 001961EC  42 00 00 00 */	bdnz lbl_8019928C
lbl_80199290:
/* 80199290 001961F0  38 00 00 00 */	li r0, 0
/* 80199294 001961F4  90 01 01 C8 */	stw r0, 0x1c8(r1)
lbl_80199298:
/* 80199298 001961F8  E3 E1 09 E8 */	psq_l f31, -1560(r1), 0, qr0
/* 8019929C 001961FC  80 01 09 F4 */	lwz r0, 0x9f4(r1)
/* 801992A0 00196200  CB E1 09 E0 */	lfd f31, 0x9e0(r1)
/* 801992A4 00196204  83 E1 09 DC */	lwz r31, 0x9dc(r1)
/* 801992A8 00196208  83 C1 09 D8 */	lwz r30, 0x9d8(r1)
/* 801992AC 0019620C  83 A1 09 D4 */	lwz r29, 0x9d4(r1)
/* 801992B0 00196210  83 81 09 D0 */	lwz r28, 0x9d0(r1)
/* 801992B4 00196214  7C 08 03 A6 */	mtlr r0
/* 801992B8 00196218  38 21 09 F0 */	addi r1, r1, 0x9f0
/* 801992BC 0019621C  4E 80 00 20 */	blr

.global SetCollisionResultData__15CBeamProjectileFQ215CBeamProjectile11EDamageTypeRC14CRayCastResult
SetCollisionResultData__15CBeamProjectileFQ215CBeamProjectile11EDamageTypeRC14CRayCastResult:
/* 801992C0 00196220  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801992C4 00196224  7C 08 02 A6 */	mflr r0
/* 801992C8 00196228  2C 04 00 01 */	cmpwi r4, 1
/* 801992CC 0019622C  90 01 00 14 */	stw r0, 0x14(r1)
/* 801992D0 00196230  90 83 02 F8 */	stw r4, 0x2f8(r3)
/* 801992D4 00196234  C0 05 00 00 */	lfs f0, 0(r5)
/* 801992D8 00196238  D0 03 03 04 */	stfs f0, 0x304(r3)
/* 801992DC 0019623C  C0 05 00 04 */	lfs f0, 4(r5)
/* 801992E0 00196240  D0 03 03 18 */	stfs f0, 0x318(r3)
/* 801992E4 00196244  C0 05 00 08 */	lfs f0, 8(r5)
/* 801992E8 00196248  D0 03 03 1C */	stfs f0, 0x31c(r3)
/* 801992EC 0019624C  C0 05 00 0C */	lfs f0, 0xc(r5)
/* 801992F0 00196250  D0 03 03 20 */	stfs f0, 0x320(r3)
/* 801992F4 00196254  C0 05 00 10 */	lfs f0, 0x10(r5)
/* 801992F8 00196258  D0 03 03 0C */	stfs f0, 0x30c(r3)
/* 801992FC 0019625C  C0 05 00 14 */	lfs f0, 0x14(r5)
/* 80199300 00196260  D0 03 03 10 */	stfs f0, 0x310(r3)
/* 80199304 00196264  C0 05 00 18 */	lfs f0, 0x18(r5)
/* 80199308 00196268  D0 03 03 14 */	stfs f0, 0x314(r3)
/* 8019930C 0019626C  40 82 00 08 */	bne lbl_80199314
/* 80199310 00196270  48 00 00 08 */	b lbl_80199318
lbl_80199314:
/* 80199314 00196274  38 CD A3 8C */	addi r6, r13, kInvalidUniqueId@sda21
lbl_80199318:
/* 80199318 00196278  A0 06 00 00 */	lhz r0, 0(r6)
/* 8019931C 0019627C  38 85 00 04 */	addi r4, r5, 4
/* 80199320 00196280  B0 03 02 FE */	sth r0, 0x2fe(r3)
/* 80199324 00196284  4B EB 9B 69 */	bl SetTranslation__6CActorFRC9CVector3f
/* 80199328 00196288  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8019932C 0019628C  7C 08 03 A6 */	mtlr r0
/* 80199330 00196290  38 21 00 10 */	addi r1, r1, 0x10
/* 80199334 00196294  4E 80 00 20 */	blr

.global ResetBeam__15CBeamProjectileFR13CStateManagerb
ResetBeam__15CBeamProjectileFR13CStateManagerb:
/* 80199338 00196298  88 03 04 64 */	lbz r0, 0x464(r3)
/* 8019933C 0019629C  54 00 CF FF */	rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80199340 001962A0  4D 82 00 20 */	beqlr
/* 80199344 001962A4  C0 02 A6 C8 */	lfs f0, lbl_805AC3E8@sda21(r2)
/* 80199348 001962A8  D0 03 03 00 */	stfs f0, 0x300(r3)
/* 8019934C 001962AC  4E 80 00 20 */	blr

.global nullsub_142
nullsub_142:
/* 80199350 001962B0  4E 80 00 20 */	blr

.global Accept__15CBeamProjectileFR8IVisitor
Accept__15CBeamProjectileFR8IVisitor:
/* 80199354 001962B4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80199358 001962B8  7C 08 02 A6 */	mflr r0
/* 8019935C 001962BC  90 01 00 14 */	stw r0, 0x14(r1)
/* 80199360 001962C0  7C 60 1B 78 */	mr r0, r3
/* 80199364 001962C4  7C 83 23 78 */	mr r3, r4
/* 80199368 001962C8  81 84 00 00 */	lwz r12, 0(r4)
/* 8019936C 001962CC  7C 04 03 78 */	mr r4, r0
/* 80199370 001962D0  81 8C 00 3C */	lwz r12, 0x3c(r12)
/* 80199374 001962D4  7D 89 03 A6 */	mtctr r12
/* 80199378 001962D8  4E 80 04 21 */	bctrl
/* 8019937C 001962DC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80199380 001962E0  7C 08 03 A6 */	mtlr r0
/* 80199384 001962E4  38 21 00 10 */	addi r1, r1, 0x10
/* 80199388 001962E8  4E 80 00 20 */	blr

.global CalculateRenderBounds__15CBeamProjectileFv
CalculateRenderBounds__15CBeamProjectileFv:
/* 8019938C 001962EC  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80199390 001962F0  7C 08 02 A6 */	mflr r0
/* 80199394 001962F4  90 01 00 34 */	stw r0, 0x34(r1)
/* 80199398 001962F8  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 8019939C 001962FC  7C 7F 1B 78 */	mr r31, r3
/* 801993A0 00196300  38 61 00 08 */	addi r3, r1, 8
/* 801993A4 00196304  38 9F 03 54 */	addi r4, r31, 0x354
/* 801993A8 00196308  38 BF 03 24 */	addi r5, r31, 0x324
/* 801993AC 0019630C  48 19 E5 51 */	bl GetTransformedAABox__6CAABoxCFRC12CTransform4f
/* 801993B0 00196310  80 61 00 08 */	lwz r3, 8(r1)
/* 801993B4 00196314  80 01 00 0C */	lwz r0, 0xc(r1)
/* 801993B8 00196318  90 7F 00 9C */	stw r3, 0x9c(r31)
/* 801993BC 0019631C  90 1F 00 A0 */	stw r0, 0xa0(r31)
/* 801993C0 00196320  80 01 00 10 */	lwz r0, 0x10(r1)
/* 801993C4 00196324  90 1F 00 A4 */	stw r0, 0xa4(r31)
/* 801993C8 00196328  80 61 00 14 */	lwz r3, 0x14(r1)
/* 801993CC 0019632C  80 01 00 18 */	lwz r0, 0x18(r1)
/* 801993D0 00196330  90 7F 00 A8 */	stw r3, 0xa8(r31)
/* 801993D4 00196334  90 1F 00 AC */	stw r0, 0xac(r31)
/* 801993D8 00196338  80 01 00 1C */	lwz r0, 0x1c(r1)
/* 801993DC 0019633C  90 1F 00 B0 */	stw r0, 0xb0(r31)
/* 801993E0 00196340  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 801993E4 00196344  80 01 00 34 */	lwz r0, 0x34(r1)
/* 801993E8 00196348  7C 08 03 A6 */	mtlr r0
/* 801993EC 0019634C  38 21 00 30 */	addi r1, r1, 0x30
/* 801993F0 00196350  4E 80 00 20 */	blr

.global GetTouchBounds__15CBeamProjectileCFv
GetTouchBounds__15CBeamProjectileCFv:
/* 801993F4 00196354  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801993F8 00196358  88 04 00 30 */	lbz r0, 0x30(r4)
/* 801993FC 0019635C  54 00 CF FF */	rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80199400 00196360  41 82 00 10 */	beq lbl_80199410
/* 80199404 00196364  88 04 04 64 */	lbz r0, 0x464(r4)
/* 80199408 00196368  54 00 D7 FF */	rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8019940C 0019636C  40 82 00 10 */	bne lbl_8019941C
lbl_80199410:
/* 80199410 00196370  38 00 00 00 */	li r0, 0
/* 80199414 00196374  98 03 00 18 */	stb r0, 0x18(r3)
/* 80199418 00196378  48 00 00 6C */	b lbl_80199484
lbl_8019941C:
/* 8019941C 0019637C  C0 C4 00 60 */	lfs f6, 0x60(r4)
/* 80199420 00196380  28 03 00 00 */	cmplwi r3, 0
/* 80199424 00196384  C0 E2 84 00 */	lfs f7, lbl_805AA120@sda21(r2)
/* 80199428 00196388  38 00 00 01 */	li r0, 1
/* 8019942C 0019638C  C0 24 00 50 */	lfs f1, 0x50(r4)
/* 80199430 00196390  C0 04 00 40 */	lfs f0, 0x40(r4)
/* 80199434 00196394  EC 66 38 28 */	fsubs f3, f6, f7
/* 80199438 00196398  EC 81 38 28 */	fsubs f4, f1, f7
/* 8019943C 0019639C  EC A0 38 28 */	fsubs f5, f0, f7
/* 80199440 001963A0  98 03 00 18 */	stb r0, 0x18(r3)
/* 80199444 001963A4  EC 47 00 2A */	fadds f2, f7, f0
/* 80199448 001963A8  EC 27 08 2A */	fadds f1, f7, f1
/* 8019944C 001963AC  D0 81 00 0C */	stfs f4, 0xc(r1)
/* 80199450 001963B0  EC 07 30 2A */	fadds f0, f7, f6
/* 80199454 001963B4  D0 A1 00 08 */	stfs f5, 8(r1)
/* 80199458 001963B8  D0 61 00 10 */	stfs f3, 0x10(r1)
/* 8019945C 001963BC  D0 41 00 14 */	stfs f2, 0x14(r1)
/* 80199460 001963C0  D0 21 00 18 */	stfs f1, 0x18(r1)
/* 80199464 001963C4  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 80199468 001963C8  41 82 00 1C */	beq lbl_80199484
/* 8019946C 001963CC  D0 A3 00 00 */	stfs f5, 0(r3)
/* 80199470 001963D0  D0 83 00 04 */	stfs f4, 4(r3)
/* 80199474 001963D4  D0 63 00 08 */	stfs f3, 8(r3)
/* 80199478 001963D8  D0 43 00 0C */	stfs f2, 0xc(r3)
/* 8019947C 001963DC  D0 23 00 10 */	stfs f1, 0x10(r3)
/* 80199480 001963E0  D0 03 00 14 */	stfs f0, 0x14(r3)
lbl_80199484:
/* 80199484 001963E4  38 21 00 20 */	addi r1, r1, 0x20
/* 80199488 001963E8  4E 80 00 20 */	blr

.global "__ct__15CBeamProjectileFRC28TToken<18CWeaponDescription>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>11EWeaponTypeRC12CTransform4fiff14EMaterialTypesRC11CDamageInfo9TUniqueId9TUniqueIdUib"
"__ct__15CBeamProjectileFRC28TToken<18CWeaponDescription>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>11EWeaponTypeRC12CTransform4fiff14EMaterialTypesRC11CDamageInfo9TUniqueId9TUniqueIdUib":
/* 8019948C 001963EC  94 21 FF 40 */	stwu r1, -0xc0(r1)
/* 80199490 001963F0  7C 08 02 A6 */	mflr r0
/* 80199494 001963F4  90 01 00 C4 */	stw r0, 0xc4(r1)
/* 80199498 001963F8  DB E1 00 B0 */	stfd f31, 0xb0(r1)
/* 8019949C 001963FC  F3 E1 00 B8 */	psq_st f31, 184(r1), 0, qr0
/* 801994A0 00196400  DB C1 00 A0 */	stfd f30, 0xa0(r1)
/* 801994A4 00196404  F3 C1 00 A8 */	psq_st f30, 168(r1), 0, qr0
/* 801994A8 00196408  BE 61 00 6C */	stmw r19, 0x6c(r1)
/* 801994AC 0019640C  C0 02 A6 CC */	lfs f0, lbl_805AC3EC@sda21(r2)
/* 801994B0 00196410  38 00 00 00 */	li r0, 0
/* 801994B4 00196414  A2 ED A3 8C */	lhz r23, kInvalidUniqueId@sda21(r13)
/* 801994B8 00196418  7C BB 2B 78 */	mr r27, r5
/* 801994BC 0019641C  98 01 00 4C */	stb r0, 0x4c(r1)
/* 801994C0 00196420  7C DC 33 78 */	mr r28, r6
/* 801994C4 00196424  80 A1 00 D0 */	lwz r5, 0xd0(r1)
/* 801994C8 00196428  7C FD 3B 78 */	mr r29, r7
/* 801994CC 0019642C  B2 E1 00 30 */	sth r23, 0x30(r1)
/* 801994D0 00196430  7D 1E 43 78 */	mr r30, r8
/* 801994D4 00196434  80 C1 00 CC */	lwz r6, 0xcc(r1)
/* 801994D8 00196438  3A 61 00 38 */	addi r19, r1, 0x38
/* 801994DC 0019643C  D0 01 00 50 */	stfs f0, 0x50(r1)
/* 801994E0 00196440  3A 81 00 3C */	addi r20, r1, 0x3c
/* 801994E4 00196444  81 81 00 C8 */	lwz r12, 0xc8(r1)
/* 801994E8 00196448  3A A1 00 34 */	addi r21, r1, 0x34
/* 801994EC 0019644C  D0 01 00 54 */	stfs f0, 0x54(r1)
/* 801994F0 00196450  3A C1 00 30 */	addi r22, r1, 0x30
/* 801994F4 00196454  81 61 00 D4 */	lwz r11, 0xd4(r1)
/* 801994F8 00196458  3A E1 00 50 */	addi r23, r1, 0x50
/* 801994FC 0019645C  D0 01 00 58 */	stfs f0, 0x58(r1)
/* 80199500 00196460  3B 01 00 40 */	addi r24, r1, 0x40
/* 80199504 00196464  A3 22 C5 FC */	lhz r25, lbl_805AE31C@sda21(r2)
/* 80199508 00196468  FF C0 08 90 */	fmr f30, f1
/* 8019950C 0019646C  A0 A5 00 00 */	lhz r5, 0(r5)
/* 80199510 00196470  FF E0 10 90 */	fmr f31, f2
/* 80199514 00196474  8B E1 00 DB */	lbz r31, 0xdb(r1)
/* 80199518 00196478  7C 7A 1B 78 */	mr r26, r3
/* 8019951C 0019647C  B0 A1 00 34 */	sth r5, 0x34(r1)
/* 80199520 00196480  7C 85 23 78 */	mr r5, r4
/* 80199524 00196484  7F 87 E3 78 */	mr r7, r28
/* 80199528 00196488  80 86 00 00 */	lwz r4, 0(r6)
/* 8019952C 0019648C  7F 66 DB 78 */	mr r6, r27
/* 80199530 00196490  7F A8 EB 78 */	mr r8, r29
/* 80199534 00196494  90 81 00 3C */	stw r4, 0x3c(r1)
/* 80199538 00196498  38 80 00 00 */	li r4, 0
/* 8019953C 0019649C  A1 8C 00 00 */	lhz r12, 0(r12)
/* 80199540 001964A0  B1 81 00 38 */	sth r12, 0x38(r1)
/* 80199544 001964A4  92 61 00 08 */	stw r19, 8(r1)
/* 80199548 001964A8  92 81 00 0C */	stw r20, 0xc(r1)
/* 8019954C 001964AC  92 A1 00 10 */	stw r21, 0x10(r1)
/* 80199550 001964B0  92 C1 00 14 */	stw r22, 0x14(r1)
/* 80199554 001964B4  91 61 00 18 */	stw r11, 0x18(r1)
/* 80199558 001964B8  90 01 00 1C */	stw r0, 0x1c(r1)
/* 8019955C 001964BC  92 E1 00 20 */	stw r23, 0x20(r1)
/* 80199560 001964C0  93 01 00 24 */	stw r24, 0x24(r1)
/* 80199564 001964C4  93 21 00 28 */	stw r25, 0x28(r1)
/* 80199568 001964C8  90 01 00 2C */	stw r0, 0x2c(r1)
/* 8019956C 001964CC  4B EA 0F 19 */	bl "__ct__15CGameProjectileFbRC28TToken<18CWeaponDescription>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>11EWeaponTypeRC12CTransform4f14EMaterialTypesRC11CDamageInfo9TUniqueId7TAreaId9TUniqueId9TUniqueIdUibRC9CVector3fRCQ24rstl50optional_object<31TLockedToken<15CGenDescription>>sb"
/* 80199570 001964D0  88 01 00 4C */	lbz r0, 0x4c(r1)
/* 80199574 001964D4  28 00 00 00 */	cmplwi r0, 0
/* 80199578 001964D8  41 82 00 1C */	beq lbl_80199594
/* 8019957C 001964DC  34 61 00 40 */	addic. r3, r1, 0x40
/* 80199580 001964E0  41 82 00 14 */	beq lbl_80199594
/* 80199584 001964E4  28 03 00 00 */	cmplwi r3, 0
/* 80199588 001964E8  41 82 00 0C */	beq lbl_80199594
/* 8019958C 001964EC  38 80 00 00 */	li r4, 0
/* 80199590 001964F0  48 1A 78 B1 */	bl __dt__6CTokenFv
lbl_80199594:
/* 80199594 001964F4  38 00 00 00 */	li r0, 0
/* 80199598 001964F8  3C 60 80 3E */	lis r3, lbl_803E4648@ha
/* 8019959C 001964FC  98 01 00 4C */	stb r0, 0x4c(r1)
/* 801995A0 00196500  38 03 46 48 */	addi r0, r3, lbl_803E4648@l
/* 801995A4 00196504  7F C3 F3 78 */	mr r3, r30
/* 801995A8 00196508  90 1A 00 00 */	stw r0, 0(r26)
/* 801995AC 0019650C  48 1F 38 71 */	bl abs
/* 801995B0 00196510  90 7A 02 E8 */	stw r3, 0x2e8(r26)
/* 801995B4 00196514  3C 60 43 30 */	lis r3, 0x4330
/* 801995B8 00196518  C8 42 A6 D0 */	lfd f2, lbl_805AC3F0@sda21(r2)
/* 801995BC 0019651C  38 00 00 00 */	li r0, 0
/* 801995C0 00196520  80 9A 02 E8 */	lwz r4, 0x2e8(r26)
/* 801995C4 00196524  28 1F 00 00 */	cmplwi r31, 0
/* 801995C8 00196528  90 61 00 60 */	stw r3, 0x60(r1)
/* 801995CC 0019652C  6C 83 80 00 */	xoris r3, r4, 0x8000
/* 801995D0 00196530  C0 22 A6 CC */	lfs f1, lbl_805AC3EC@sda21(r2)
/* 801995D4 00196534  90 61 00 64 */	stw r3, 0x64(r1)
/* 801995D8 00196538  C8 01 00 60 */	lfd f0, 0x60(r1)
/* 801995DC 0019653C  EC 00 10 28 */	fsubs f0, f0, f2
/* 801995E0 00196540  D0 1A 02 EC */	stfs f0, 0x2ec(r26)
/* 801995E4 00196544  C0 1A 02 EC */	lfs f0, 0x2ec(r26)
/* 801995E8 00196548  EC 01 00 24 */	fdivs f0, f1, f0
/* 801995EC 0019654C  D0 1A 02 F0 */	stfs f0, 0x2f0(r26)
/* 801995F0 00196550  D3 DA 02 F4 */	stfs f30, 0x2f4(r26)
/* 801995F4 00196554  90 1A 02 F8 */	stw r0, 0x2f8(r26)
/* 801995F8 00196558  A0 0D A3 8C */	lhz r0, kInvalidUniqueId@sda21(r13)
/* 801995FC 0019655C  B0 1A 02 FC */	sth r0, 0x2fc(r26)
/* 80199600 00196560  A0 0D A3 8C */	lhz r0, kInvalidUniqueId@sda21(r13)
/* 80199604 00196564  B0 1A 02 FE */	sth r0, 0x2fe(r26)
/* 80199608 00196568  41 82 00 0C */	beq lbl_80199614
/* 8019960C 0019656C  C0 02 A6 C8 */	lfs f0, lbl_805AC3E8@sda21(r2)
/* 80199610 00196570  48 00 00 08 */	b lbl_80199618
lbl_80199614:
/* 80199614 00196574  C0 1A 02 EC */	lfs f0, 0x2ec(r26)
lbl_80199618:
/* 80199618 00196578  D0 1A 03 00 */	stfs f0, 0x300(r26)
/* 8019961C 0019657C  3C 60 80 5A */	lis r3, sIdentity__12CTransform4f@ha
/* 80199620 00196580  38 83 66 70 */	addi r4, r3, sIdentity__12CTransform4f@l
/* 80199624 00196584  3C C0 80 5A */	lis r6, sUpVector__9CVector3f@ha
/* 80199628 00196588  C0 1A 02 EC */	lfs f0, 0x2ec(r26)
/* 8019962C 0019658C  3C A0 80 5A */	lis r5, sZeroVector__9CVector3f@ha
/* 80199630 00196590  38 7A 03 24 */	addi r3, r26, 0x324
/* 80199634 00196594  D0 1A 03 04 */	stfs f0, 0x304(r26)
/* 80199638 00196598  D3 FA 03 08 */	stfs f31, 0x308(r26)
/* 8019963C 0019659C  C4 06 66 F4 */	lfsu f0, sUpVector__9CVector3f@l(r6)
/* 80199640 001965A0  D0 1A 03 0C */	stfs f0, 0x30c(r26)
/* 80199644 001965A4  C0 06 00 04 */	lfs f0, 4(r6)
/* 80199648 001965A8  D0 1A 03 10 */	stfs f0, 0x310(r26)
/* 8019964C 001965AC  C0 06 00 08 */	lfs f0, 8(r6)
/* 80199650 001965B0  D0 1A 03 14 */	stfs f0, 0x314(r26)
/* 80199654 001965B4  C4 05 66 A0 */	lfsu f0, sZeroVector__9CVector3f@l(r5)
/* 80199658 001965B8  D0 1A 03 18 */	stfs f0, 0x318(r26)
/* 8019965C 001965BC  C0 05 00 04 */	lfs f0, 4(r5)
/* 80199660 001965C0  D0 1A 03 1C */	stfs f0, 0x31c(r26)
/* 80199664 001965C4  C0 05 00 08 */	lfs f0, 8(r5)
/* 80199668 001965C8  D0 1A 03 20 */	stfs f0, 0x320(r26)
/* 8019966C 001965CC  48 17 95 09 */	bl __ct__12CTransform4fFRC12CTransform4f
/* 80199670 001965D0  3C 60 80 5A */	lis r3, mskNullBox__6CAABox@ha
/* 80199674 001965D4  3C 80 80 5A */	lis r4, sZeroVector__9CVector3f@ha
/* 80199678 001965D8  38 A3 67 84 */	addi r5, r3, mskNullBox__6CAABox@l
/* 8019967C 001965DC  38 60 00 0A */	li r3, 0xa
/* 80199680 001965E0  C0 05 00 00 */	lfs f0, 0(r5)
/* 80199684 001965E4  38 00 00 02 */	li r0, 2
/* 80199688 001965E8  38 84 66 A0 */	addi r4, r4, sZeroVector__9CVector3f@l
/* 8019968C 001965EC  38 FA 03 88 */	addi r7, r26, 0x388
/* 80199690 001965F0  D0 1A 03 54 */	stfs f0, 0x354(r26)
/* 80199694 001965F4  38 C0 00 00 */	li r6, 0
/* 80199698 001965F8  C0 05 00 04 */	lfs f0, 4(r5)
/* 8019969C 001965FC  D0 1A 03 58 */	stfs f0, 0x358(r26)
/* 801996A0 00196600  C0 05 00 08 */	lfs f0, 8(r5)
/* 801996A4 00196604  D0 1A 03 5C */	stfs f0, 0x35c(r26)
/* 801996A8 00196608  C0 05 00 0C */	lfs f0, 0xc(r5)
/* 801996AC 0019660C  D0 1A 03 60 */	stfs f0, 0x360(r26)
/* 801996B0 00196610  C0 05 00 10 */	lfs f0, 0x10(r5)
/* 801996B4 00196614  D0 1A 03 64 */	stfs f0, 0x364(r26)
/* 801996B8 00196618  C0 05 00 14 */	lfs f0, 0x14(r5)
/* 801996BC 0019661C  D0 1A 03 68 */	stfs f0, 0x368(r26)
/* 801996C0 00196620  C0 05 00 00 */	lfs f0, 0(r5)
/* 801996C4 00196624  D0 1A 03 6C */	stfs f0, 0x36c(r26)
/* 801996C8 00196628  C0 05 00 04 */	lfs f0, 4(r5)
/* 801996CC 0019662C  D0 1A 03 70 */	stfs f0, 0x370(r26)
/* 801996D0 00196630  C0 05 00 08 */	lfs f0, 8(r5)
/* 801996D4 00196634  D0 1A 03 74 */	stfs f0, 0x374(r26)
/* 801996D8 00196638  C0 05 00 0C */	lfs f0, 0xc(r5)
/* 801996DC 0019663C  D0 1A 03 78 */	stfs f0, 0x378(r26)
/* 801996E0 00196640  C0 05 00 10 */	lfs f0, 0x10(r5)
/* 801996E4 00196644  D0 1A 03 7C */	stfs f0, 0x37c(r26)
/* 801996E8 00196648  C0 05 00 14 */	lfs f0, 0x14(r5)
/* 801996EC 0019664C  D0 1A 03 80 */	stfs f0, 0x380(r26)
/* 801996F0 00196650  90 7A 03 84 */	stw r3, 0x384(r26)
/* 801996F4 00196654  7C 09 03 A6 */	mtctr r0
lbl_801996F8:
/* 801996F8 00196658  28 07 00 00 */	cmplwi r7, 0
/* 801996FC 0019665C  41 82 00 1C */	beq lbl_80199718
/* 80199700 00196660  C0 04 00 00 */	lfs f0, 0(r4)
/* 80199704 00196664  D0 07 00 00 */	stfs f0, 0(r7)
/* 80199708 00196668  C0 04 00 04 */	lfs f0, 4(r4)
/* 8019970C 0019666C  D0 07 00 04 */	stfs f0, 4(r7)
/* 80199710 00196670  C0 04 00 08 */	lfs f0, 8(r4)
/* 80199714 00196674  D0 07 00 08 */	stfs f0, 8(r7)
lbl_80199718:
/* 80199718 00196678  34 E7 00 0C */	addic. r7, r7, 0xc
/* 8019971C 0019667C  41 82 00 1C */	beq lbl_80199738
/* 80199720 00196680  C0 04 00 00 */	lfs f0, 0(r4)
/* 80199724 00196684  D0 07 00 00 */	stfs f0, 0(r7)
/* 80199728 00196688  C0 04 00 04 */	lfs f0, 4(r4)
/* 8019972C 0019668C  D0 07 00 04 */	stfs f0, 4(r7)
/* 80199730 00196690  C0 04 00 08 */	lfs f0, 8(r4)
/* 80199734 00196694  D0 07 00 08 */	stfs f0, 8(r7)
lbl_80199738:
/* 80199738 00196698  34 E7 00 0C */	addic. r7, r7, 0xc
/* 8019973C 0019669C  41 82 00 1C */	beq lbl_80199758
/* 80199740 001966A0  C0 04 00 00 */	lfs f0, 0(r4)
/* 80199744 001966A4  D0 07 00 00 */	stfs f0, 0(r7)
/* 80199748 001966A8  C0 04 00 04 */	lfs f0, 4(r4)
/* 8019974C 001966AC  D0 07 00 04 */	stfs f0, 4(r7)
/* 80199750 001966B0  C0 04 00 08 */	lfs f0, 8(r4)
/* 80199754 001966B4  D0 07 00 08 */	stfs f0, 8(r7)
lbl_80199758:
/* 80199758 001966B8  34 E7 00 0C */	addic. r7, r7, 0xc
/* 8019975C 001966BC  41 82 00 1C */	beq lbl_80199778
/* 80199760 001966C0  C0 04 00 00 */	lfs f0, 0(r4)
/* 80199764 001966C4  D0 07 00 00 */	stfs f0, 0(r7)
/* 80199768 001966C8  C0 04 00 04 */	lfs f0, 4(r4)
/* 8019976C 001966CC  D0 07 00 04 */	stfs f0, 4(r7)
/* 80199770 001966D0  C0 04 00 08 */	lfs f0, 8(r4)
/* 80199774 001966D4  D0 07 00 08 */	stfs f0, 8(r7)
lbl_80199778:
/* 80199778 001966D8  34 E7 00 0C */	addic. r7, r7, 0xc
/* 8019977C 001966DC  41 82 00 1C */	beq lbl_80199798
/* 80199780 001966E0  C0 04 00 00 */	lfs f0, 0(r4)
/* 80199784 001966E4  D0 07 00 00 */	stfs f0, 0(r7)
/* 80199788 001966E8  C0 04 00 04 */	lfs f0, 4(r4)
/* 8019978C 001966EC  D0 07 00 04 */	stfs f0, 4(r7)
/* 80199790 001966F0  C0 04 00 08 */	lfs f0, 8(r4)
/* 80199794 001966F4  D0 07 00 08 */	stfs f0, 8(r7)
lbl_80199798:
/* 80199798 001966F8  38 C6 00 04 */	addi r6, r6, 4
/* 8019979C 001966FC  38 E7 00 0C */	addi r7, r7, 0xc
/* 801997A0 00196700  42 00 FF 58 */	bdnz lbl_801996F8
/* 801997A4 00196704  3C 80 80 5A */	lis r4, sZeroVector__9CVector3f@ha
/* 801997A8 00196708  38 60 00 08 */	li r3, 8
/* 801997AC 0019670C  38 00 00 02 */	li r0, 2
/* 801997B0 00196710  90 7A 04 00 */	stw r3, 0x400(r26)
/* 801997B4 00196714  38 64 66 A0 */	addi r3, r4, sZeroVector__9CVector3f@l
/* 801997B8 00196718  38 BA 04 04 */	addi r5, r26, 0x404
/* 801997BC 0019671C  38 80 00 00 */	li r4, 0
/* 801997C0 00196720  7C 09 03 A6 */	mtctr r0
lbl_801997C4:
/* 801997C4 00196724  28 05 00 00 */	cmplwi r5, 0
/* 801997C8 00196728  41 82 00 1C */	beq lbl_801997E4
/* 801997CC 0019672C  C0 03 00 00 */	lfs f0, 0(r3)
/* 801997D0 00196730  D0 05 00 00 */	stfs f0, 0(r5)
/* 801997D4 00196734  C0 03 00 04 */	lfs f0, 4(r3)
/* 801997D8 00196738  D0 05 00 04 */	stfs f0, 4(r5)
/* 801997DC 0019673C  C0 03 00 08 */	lfs f0, 8(r3)
/* 801997E0 00196740  D0 05 00 08 */	stfs f0, 8(r5)
lbl_801997E4:
/* 801997E4 00196744  34 A5 00 0C */	addic. r5, r5, 0xc
/* 801997E8 00196748  41 82 00 1C */	beq lbl_80199804
/* 801997EC 0019674C  C0 03 00 00 */	lfs f0, 0(r3)
/* 801997F0 00196750  D0 05 00 00 */	stfs f0, 0(r5)
/* 801997F4 00196754  C0 03 00 04 */	lfs f0, 4(r3)
/* 801997F8 00196758  D0 05 00 04 */	stfs f0, 4(r5)
/* 801997FC 0019675C  C0 03 00 08 */	lfs f0, 8(r3)
/* 80199800 00196760  D0 05 00 08 */	stfs f0, 8(r5)
lbl_80199804:
/* 80199804 00196764  34 A5 00 0C */	addic. r5, r5, 0xc
/* 80199808 00196768  41 82 00 1C */	beq lbl_80199824
/* 8019980C 0019676C  C0 03 00 00 */	lfs f0, 0(r3)
/* 80199810 00196770  D0 05 00 00 */	stfs f0, 0(r5)
/* 80199814 00196774  C0 03 00 04 */	lfs f0, 4(r3)
/* 80199818 00196778  D0 05 00 04 */	stfs f0, 4(r5)
/* 8019981C 0019677C  C0 03 00 08 */	lfs f0, 8(r3)
/* 80199820 00196780  D0 05 00 08 */	stfs f0, 8(r5)
lbl_80199824:
/* 80199824 00196784  34 A5 00 0C */	addic. r5, r5, 0xc
/* 80199828 00196788  41 82 00 1C */	beq lbl_80199844
/* 8019982C 0019678C  C0 03 00 00 */	lfs f0, 0(r3)
/* 80199830 00196790  D0 05 00 00 */	stfs f0, 0(r5)
/* 80199834 00196794  C0 03 00 04 */	lfs f0, 4(r3)
/* 80199838 00196798  D0 05 00 04 */	stfs f0, 4(r5)
/* 8019983C 0019679C  C0 03 00 08 */	lfs f0, 8(r3)
/* 80199840 001967A0  D0 05 00 08 */	stfs f0, 8(r5)
lbl_80199844:
/* 80199844 001967A4  38 84 00 03 */	addi r4, r4, 3
/* 80199848 001967A8  38 A5 00 0C */	addi r5, r5, 0xc
/* 8019984C 001967AC  42 00 FF 78 */	bdnz lbl_801997C4
/* 80199850 001967B0  88 1A 04 64 */	lbz r0, 0x464(r26)
/* 80199854 001967B4  53 E0 3E 30 */	rlwimi r0, r31, 7, 0x18, 0x18
/* 80199858 001967B8  38 80 00 00 */	li r4, 0
/* 8019985C 001967BC  7F 43 D3 78 */	mr r3, r26
/* 80199860 001967C0  98 1A 04 64 */	stb r0, 0x464(r26)
/* 80199864 001967C4  88 1A 04 64 */	lbz r0, 0x464(r26)
/* 80199868 001967C8  50 80 36 72 */	rlwimi r0, r4, 6, 0x19, 0x19
/* 8019986C 001967CC  98 1A 04 64 */	stb r0, 0x464(r26)
/* 80199870 001967D0  E3 E1 00 B8 */	psq_l f31, 184(r1), 0, qr0
/* 80199874 001967D4  CB E1 00 B0 */	lfd f31, 0xb0(r1)
/* 80199878 001967D8  E3 C1 00 A8 */	psq_l f30, 168(r1), 0, qr0
/* 8019987C 001967DC  CB C1 00 A0 */	lfd f30, 0xa0(r1)
/* 80199880 001967E0  BA 61 00 6C */	lmw r19, 0x6c(r1)
/* 80199884 001967E4  80 01 00 C4 */	lwz r0, 0xc4(r1)
/* 80199888 001967E8  7C 08 03 A6 */	mtlr r0
/* 8019988C 001967EC  38 21 00 C0 */	addi r1, r1, 0xc0
/* 80199890 001967F0  4E 80 00 20 */	blr

.section .sdata2, "a"
.balign 8
.global lbl_805AC3E8
lbl_805AC3E8:
	# ROM: 0x3F8C88
	.4byte 0

.global lbl_805AC3EC
lbl_805AC3EC:
	# ROM: 0x3F8C8C
	.float 1.0

.global lbl_805AC3F0
lbl_805AC3F0:
	# ROM: 0x3F8C90
	.double 4.503601774854144E15