prime/asm/MetroidPrime/Weapons/CGunWeapon.s

4211 lines
202 KiB
ArmAsm

.include "macros.inc"
.section .data
.global lbl_803E52B0
lbl_803E52B0:
# ROM: 0x3E22B0
.4byte 0
.4byte 0
.4byte __dt__10CGunWeaponFv
.4byte Reset__10CGunWeaponFR13CStateManager
.4byte PlayAnim__10CGunWeaponFQ212NWeaponTypes12EGunAnimTypeb
.4byte PreRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f
.4byte PostRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f
.4byte UpdateGunFx__10CGunWeaponFbfRC13CStateManagerRC12CTransform4f
.4byte Fire__10CGunWeaponFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
.4byte EnableFx__10CGunWeaponFb
.4byte EnableSecondaryFx__10CGunWeaponFQ210CGunWeapon16ESecondaryFxType
.4byte Draw__10CGunWeaponCFbRC13CStateManagerRC12CTransform4fRC11CModelFlagsPC12CActorLights
.4byte DrawMuzzleFx__10CGunWeaponCFRC13CStateManager
.4byte Update__10CGunWeaponFfR13CStateManager
.4byte Load__10CGunWeaponFR13CStateManagerb
.4byte Unload__10CGunWeaponFR13CStateManager
.4byte IsLoaded__10CGunWeaponCFv
.4byte 0
.section .text, "ax"
.global DrawClipCube__FRC6CAABox
DrawClipCube__FRC6CAABox:
/* 801B9C4C 001B6BAC 94 21 FE C0 */ stwu r1, -0x140(r1)
/* 801B9C50 001B6BB0 7C 08 02 A6 */ mflr r0
/* 801B9C54 001B6BB4 C0 22 A9 D8 */ lfs f1, lbl_805AC6F8@sda21(r2)
/* 801B9C58 001B6BB8 90 01 01 44 */ stw r0, 0x144(r1)
/* 801B9C5C 001B6BBC FC 40 08 90 */ fmr f2, f1
/* 801B9C60 001B6BC0 C0 82 A9 DC */ lfs f4, lbl_805AC6FC@sda21(r2)
/* 801B9C64 001B6BC4 93 E1 01 3C */ stw r31, 0x13c(r1)
/* 801B9C68 001B6BC8 FC 60 08 90 */ fmr f3, f1
/* 801B9C6C 001B6BCC 7C 7F 1B 78 */ mr r31, r3
/* 801B9C70 001B6BD0 38 61 00 08 */ addi r3, r1, 8
/* 801B9C74 001B6BD4 48 1A 97 79 */ bl __ct__6CColorFffff
/* 801B9C78 001B6BD8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9C7C 001B6BDC 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9C80 001B6BE0 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 801B9C84 001B6BE4 7D 89 03 A6 */ mtctr r12
/* 801B9C88 001B6BE8 4E 80 04 21 */ bctrl
/* 801B9C8C 001B6BEC 38 60 00 00 */ li r3, 0
/* 801B9C90 001B6BF0 48 15 1D E1 */ bl SetCullMode__9CGraphicsF12ERglCullMode
/* 801B9C94 001B6BF4 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9C98 001B6BF8 38 80 00 04 */ li r4, 4
/* 801B9C9C 001B6BFC 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9CA0 001B6C00 81 8C 00 A0 */ lwz r12, 0xa0(r12)
/* 801B9CA4 001B6C04 7D 89 03 A6 */ mtctr r12
/* 801B9CA8 001B6C08 4E 80 04 21 */ bctrl
/* 801B9CAC 001B6C0C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9CB0 001B6C10 38 81 00 08 */ addi r4, r1, 8
/* 801B9CB4 001B6C14 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9CB8 001B6C18 81 8C 00 B4 */ lwz r12, 0xb4(r12)
/* 801B9CBC 001B6C1C 7D 89 03 A6 */ mtctr r12
/* 801B9CC0 001B6C20 4E 80 04 21 */ bctrl
/* 801B9CC4 001B6C24 C0 3F 00 08 */ lfs f1, 8(r31)
/* 801B9CC8 001B6C28 38 81 01 20 */ addi r4, r1, 0x120
/* 801B9CCC 001B6C2C C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801B9CD0 001B6C30 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801B9CD4 001B6C34 D0 41 01 24 */ stfs f2, 0x124(r1)
/* 801B9CD8 001B6C38 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9CDC 001B6C3C D0 01 01 20 */ stfs f0, 0x120(r1)
/* 801B9CE0 001B6C40 D0 21 01 28 */ stfs f1, 0x128(r1)
/* 801B9CE4 001B6C44 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9CE8 001B6C48 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9CEC 001B6C4C 7D 89 03 A6 */ mtctr r12
/* 801B9CF0 001B6C50 4E 80 04 21 */ bctrl
/* 801B9CF4 001B6C54 C0 3F 00 08 */ lfs f1, 8(r31)
/* 801B9CF8 001B6C58 38 81 01 14 */ addi r4, r1, 0x114
/* 801B9CFC 001B6C5C C0 5F 00 04 */ lfs f2, 4(r31)
/* 801B9D00 001B6C60 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801B9D04 001B6C64 D0 41 01 18 */ stfs f2, 0x118(r1)
/* 801B9D08 001B6C68 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9D0C 001B6C6C D0 01 01 14 */ stfs f0, 0x114(r1)
/* 801B9D10 001B6C70 D0 21 01 1C */ stfs f1, 0x11c(r1)
/* 801B9D14 001B6C74 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9D18 001B6C78 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9D1C 001B6C7C 7D 89 03 A6 */ mtctr r12
/* 801B9D20 001B6C80 4E 80 04 21 */ bctrl
/* 801B9D24 001B6C84 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801B9D28 001B6C88 38 81 01 08 */ addi r4, r1, 0x108
/* 801B9D2C 001B6C8C C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801B9D30 001B6C90 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801B9D34 001B6C94 D0 41 01 0C */ stfs f2, 0x10c(r1)
/* 801B9D38 001B6C98 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9D3C 001B6C9C D0 01 01 08 */ stfs f0, 0x108(r1)
/* 801B9D40 001B6CA0 D0 21 01 10 */ stfs f1, 0x110(r1)
/* 801B9D44 001B6CA4 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9D48 001B6CA8 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9D4C 001B6CAC 7D 89 03 A6 */ mtctr r12
/* 801B9D50 001B6CB0 4E 80 04 21 */ bctrl
/* 801B9D54 001B6CB4 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801B9D58 001B6CB8 38 81 00 FC */ addi r4, r1, 0xfc
/* 801B9D5C 001B6CBC C0 5F 00 04 */ lfs f2, 4(r31)
/* 801B9D60 001B6CC0 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801B9D64 001B6CC4 D0 41 01 00 */ stfs f2, 0x100(r1)
/* 801B9D68 001B6CC8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9D6C 001B6CCC D0 01 00 FC */ stfs f0, 0xfc(r1)
/* 801B9D70 001B6CD0 D0 21 01 04 */ stfs f1, 0x104(r1)
/* 801B9D74 001B6CD4 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9D78 001B6CD8 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9D7C 001B6CDC 7D 89 03 A6 */ mtctr r12
/* 801B9D80 001B6CE0 4E 80 04 21 */ bctrl
/* 801B9D84 001B6CE4 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9D88 001B6CE8 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9D8C 001B6CEC 81 8C 00 B8 */ lwz r12, 0xb8(r12)
/* 801B9D90 001B6CF0 7D 89 03 A6 */ mtctr r12
/* 801B9D94 001B6CF4 4E 80 04 21 */ bctrl
/* 801B9D98 001B6CF8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9D9C 001B6CFC 38 80 00 04 */ li r4, 4
/* 801B9DA0 001B6D00 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9DA4 001B6D04 81 8C 00 A0 */ lwz r12, 0xa0(r12)
/* 801B9DA8 001B6D08 7D 89 03 A6 */ mtctr r12
/* 801B9DAC 001B6D0C 4E 80 04 21 */ bctrl
/* 801B9DB0 001B6D10 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9DB4 001B6D14 38 81 00 08 */ addi r4, r1, 8
/* 801B9DB8 001B6D18 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9DBC 001B6D1C 81 8C 00 B4 */ lwz r12, 0xb4(r12)
/* 801B9DC0 001B6D20 7D 89 03 A6 */ mtctr r12
/* 801B9DC4 001B6D24 4E 80 04 21 */ bctrl
/* 801B9DC8 001B6D28 C0 3F 00 08 */ lfs f1, 8(r31)
/* 801B9DCC 001B6D2C 38 81 00 F0 */ addi r4, r1, 0xf0
/* 801B9DD0 001B6D30 C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801B9DD4 001B6D34 C0 1F 00 00 */ lfs f0, 0(r31)
/* 801B9DD8 001B6D38 D0 41 00 F4 */ stfs f2, 0xf4(r1)
/* 801B9DDC 001B6D3C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9DE0 001B6D40 D0 01 00 F0 */ stfs f0, 0xf0(r1)
/* 801B9DE4 001B6D44 D0 21 00 F8 */ stfs f1, 0xf8(r1)
/* 801B9DE8 001B6D48 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9DEC 001B6D4C 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9DF0 001B6D50 7D 89 03 A6 */ mtctr r12
/* 801B9DF4 001B6D54 4E 80 04 21 */ bctrl
/* 801B9DF8 001B6D58 C0 3F 00 08 */ lfs f1, 8(r31)
/* 801B9DFC 001B6D5C 38 81 00 E4 */ addi r4, r1, 0xe4
/* 801B9E00 001B6D60 C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801B9E04 001B6D64 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801B9E08 001B6D68 D0 41 00 E8 */ stfs f2, 0xe8(r1)
/* 801B9E0C 001B6D6C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9E10 001B6D70 D0 01 00 E4 */ stfs f0, 0xe4(r1)
/* 801B9E14 001B6D74 D0 21 00 EC */ stfs f1, 0xec(r1)
/* 801B9E18 001B6D78 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9E1C 001B6D7C 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9E20 001B6D80 7D 89 03 A6 */ mtctr r12
/* 801B9E24 001B6D84 4E 80 04 21 */ bctrl
/* 801B9E28 001B6D88 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801B9E2C 001B6D8C 38 81 00 D8 */ addi r4, r1, 0xd8
/* 801B9E30 001B6D90 C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801B9E34 001B6D94 C0 1F 00 00 */ lfs f0, 0(r31)
/* 801B9E38 001B6D98 D0 41 00 DC */ stfs f2, 0xdc(r1)
/* 801B9E3C 001B6D9C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9E40 001B6DA0 D0 01 00 D8 */ stfs f0, 0xd8(r1)
/* 801B9E44 001B6DA4 D0 21 00 E0 */ stfs f1, 0xe0(r1)
/* 801B9E48 001B6DA8 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9E4C 001B6DAC 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9E50 001B6DB0 7D 89 03 A6 */ mtctr r12
/* 801B9E54 001B6DB4 4E 80 04 21 */ bctrl
/* 801B9E58 001B6DB8 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801B9E5C 001B6DBC 38 81 00 CC */ addi r4, r1, 0xcc
/* 801B9E60 001B6DC0 C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801B9E64 001B6DC4 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801B9E68 001B6DC8 D0 41 00 D0 */ stfs f2, 0xd0(r1)
/* 801B9E6C 001B6DCC 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9E70 001B6DD0 D0 01 00 CC */ stfs f0, 0xcc(r1)
/* 801B9E74 001B6DD4 D0 21 00 D4 */ stfs f1, 0xd4(r1)
/* 801B9E78 001B6DD8 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9E7C 001B6DDC 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9E80 001B6DE0 7D 89 03 A6 */ mtctr r12
/* 801B9E84 001B6DE4 4E 80 04 21 */ bctrl
/* 801B9E88 001B6DE8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9E8C 001B6DEC 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9E90 001B6DF0 81 8C 00 B8 */ lwz r12, 0xb8(r12)
/* 801B9E94 001B6DF4 7D 89 03 A6 */ mtctr r12
/* 801B9E98 001B6DF8 4E 80 04 21 */ bctrl
/* 801B9E9C 001B6DFC 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9EA0 001B6E00 38 80 00 04 */ li r4, 4
/* 801B9EA4 001B6E04 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9EA8 001B6E08 81 8C 00 A0 */ lwz r12, 0xa0(r12)
/* 801B9EAC 001B6E0C 7D 89 03 A6 */ mtctr r12
/* 801B9EB0 001B6E10 4E 80 04 21 */ bctrl
/* 801B9EB4 001B6E14 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9EB8 001B6E18 38 81 00 08 */ addi r4, r1, 8
/* 801B9EBC 001B6E1C 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9EC0 001B6E20 81 8C 00 B4 */ lwz r12, 0xb4(r12)
/* 801B9EC4 001B6E24 7D 89 03 A6 */ mtctr r12
/* 801B9EC8 001B6E28 4E 80 04 21 */ bctrl
/* 801B9ECC 001B6E2C C0 3F 00 08 */ lfs f1, 8(r31)
/* 801B9ED0 001B6E30 38 81 00 C0 */ addi r4, r1, 0xc0
/* 801B9ED4 001B6E34 C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801B9ED8 001B6E38 C0 1F 00 00 */ lfs f0, 0(r31)
/* 801B9EDC 001B6E3C D0 41 00 C4 */ stfs f2, 0xc4(r1)
/* 801B9EE0 001B6E40 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9EE4 001B6E44 D0 01 00 C0 */ stfs f0, 0xc0(r1)
/* 801B9EE8 001B6E48 D0 21 00 C8 */ stfs f1, 0xc8(r1)
/* 801B9EEC 001B6E4C 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9EF0 001B6E50 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9EF4 001B6E54 7D 89 03 A6 */ mtctr r12
/* 801B9EF8 001B6E58 4E 80 04 21 */ bctrl
/* 801B9EFC 001B6E5C C0 3F 00 08 */ lfs f1, 8(r31)
/* 801B9F00 001B6E60 38 81 00 B4 */ addi r4, r1, 0xb4
/* 801B9F04 001B6E64 C0 5F 00 04 */ lfs f2, 4(r31)
/* 801B9F08 001B6E68 C0 1F 00 00 */ lfs f0, 0(r31)
/* 801B9F0C 001B6E6C D0 41 00 B8 */ stfs f2, 0xb8(r1)
/* 801B9F10 001B6E70 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9F14 001B6E74 D0 01 00 B4 */ stfs f0, 0xb4(r1)
/* 801B9F18 001B6E78 D0 21 00 BC */ stfs f1, 0xbc(r1)
/* 801B9F1C 001B6E7C 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9F20 001B6E80 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9F24 001B6E84 7D 89 03 A6 */ mtctr r12
/* 801B9F28 001B6E88 4E 80 04 21 */ bctrl
/* 801B9F2C 001B6E8C C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801B9F30 001B6E90 38 81 00 A8 */ addi r4, r1, 0xa8
/* 801B9F34 001B6E94 C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801B9F38 001B6E98 C0 1F 00 00 */ lfs f0, 0(r31)
/* 801B9F3C 001B6E9C D0 41 00 AC */ stfs f2, 0xac(r1)
/* 801B9F40 001B6EA0 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9F44 001B6EA4 D0 01 00 A8 */ stfs f0, 0xa8(r1)
/* 801B9F48 001B6EA8 D0 21 00 B0 */ stfs f1, 0xb0(r1)
/* 801B9F4C 001B6EAC 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9F50 001B6EB0 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9F54 001B6EB4 7D 89 03 A6 */ mtctr r12
/* 801B9F58 001B6EB8 4E 80 04 21 */ bctrl
/* 801B9F5C 001B6EBC C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801B9F60 001B6EC0 38 81 00 9C */ addi r4, r1, 0x9c
/* 801B9F64 001B6EC4 C0 5F 00 04 */ lfs f2, 4(r31)
/* 801B9F68 001B6EC8 C0 1F 00 00 */ lfs f0, 0(r31)
/* 801B9F6C 001B6ECC D0 41 00 A0 */ stfs f2, 0xa0(r1)
/* 801B9F70 001B6ED0 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9F74 001B6ED4 D0 01 00 9C */ stfs f0, 0x9c(r1)
/* 801B9F78 001B6ED8 D0 21 00 A4 */ stfs f1, 0xa4(r1)
/* 801B9F7C 001B6EDC 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9F80 001B6EE0 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9F84 001B6EE4 7D 89 03 A6 */ mtctr r12
/* 801B9F88 001B6EE8 4E 80 04 21 */ bctrl
/* 801B9F8C 001B6EEC 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9F90 001B6EF0 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9F94 001B6EF4 81 8C 00 B8 */ lwz r12, 0xb8(r12)
/* 801B9F98 001B6EF8 7D 89 03 A6 */ mtctr r12
/* 801B9F9C 001B6EFC 4E 80 04 21 */ bctrl
/* 801B9FA0 001B6F00 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9FA4 001B6F04 38 80 00 04 */ li r4, 4
/* 801B9FA8 001B6F08 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9FAC 001B6F0C 81 8C 00 A0 */ lwz r12, 0xa0(r12)
/* 801B9FB0 001B6F10 7D 89 03 A6 */ mtctr r12
/* 801B9FB4 001B6F14 4E 80 04 21 */ bctrl
/* 801B9FB8 001B6F18 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9FBC 001B6F1C 38 81 00 08 */ addi r4, r1, 8
/* 801B9FC0 001B6F20 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9FC4 001B6F24 81 8C 00 B4 */ lwz r12, 0xb4(r12)
/* 801B9FC8 001B6F28 7D 89 03 A6 */ mtctr r12
/* 801B9FCC 001B6F2C 4E 80 04 21 */ bctrl
/* 801B9FD0 001B6F30 C0 3F 00 08 */ lfs f1, 8(r31)
/* 801B9FD4 001B6F34 38 81 00 90 */ addi r4, r1, 0x90
/* 801B9FD8 001B6F38 C0 5F 00 04 */ lfs f2, 4(r31)
/* 801B9FDC 001B6F3C C0 1F 00 00 */ lfs f0, 0(r31)
/* 801B9FE0 001B6F40 D0 41 00 94 */ stfs f2, 0x94(r1)
/* 801B9FE4 001B6F44 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801B9FE8 001B6F48 D0 01 00 90 */ stfs f0, 0x90(r1)
/* 801B9FEC 001B6F4C D0 21 00 98 */ stfs f1, 0x98(r1)
/* 801B9FF0 001B6F50 81 83 00 00 */ lwz r12, 0(r3)
/* 801B9FF4 001B6F54 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801B9FF8 001B6F58 7D 89 03 A6 */ mtctr r12
/* 801B9FFC 001B6F5C 4E 80 04 21 */ bctrl
/* 801BA000 001B6F60 C0 3F 00 08 */ lfs f1, 8(r31)
/* 801BA004 001B6F64 38 81 00 84 */ addi r4, r1, 0x84
/* 801BA008 001B6F68 C0 5F 00 04 */ lfs f2, 4(r31)
/* 801BA00C 001B6F6C C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801BA010 001B6F70 D0 41 00 88 */ stfs f2, 0x88(r1)
/* 801BA014 001B6F74 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA018 001B6F78 D0 01 00 84 */ stfs f0, 0x84(r1)
/* 801BA01C 001B6F7C D0 21 00 8C */ stfs f1, 0x8c(r1)
/* 801BA020 001B6F80 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA024 001B6F84 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801BA028 001B6F88 7D 89 03 A6 */ mtctr r12
/* 801BA02C 001B6F8C 4E 80 04 21 */ bctrl
/* 801BA030 001B6F90 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801BA034 001B6F94 38 81 00 78 */ addi r4, r1, 0x78
/* 801BA038 001B6F98 C0 5F 00 04 */ lfs f2, 4(r31)
/* 801BA03C 001B6F9C C0 1F 00 00 */ lfs f0, 0(r31)
/* 801BA040 001B6FA0 D0 41 00 7C */ stfs f2, 0x7c(r1)
/* 801BA044 001B6FA4 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA048 001B6FA8 D0 01 00 78 */ stfs f0, 0x78(r1)
/* 801BA04C 001B6FAC D0 21 00 80 */ stfs f1, 0x80(r1)
/* 801BA050 001B6FB0 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA054 001B6FB4 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801BA058 001B6FB8 7D 89 03 A6 */ mtctr r12
/* 801BA05C 001B6FBC 4E 80 04 21 */ bctrl
/* 801BA060 001B6FC0 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801BA064 001B6FC4 38 81 00 6C */ addi r4, r1, 0x6c
/* 801BA068 001B6FC8 C0 5F 00 04 */ lfs f2, 4(r31)
/* 801BA06C 001B6FCC C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801BA070 001B6FD0 D0 41 00 70 */ stfs f2, 0x70(r1)
/* 801BA074 001B6FD4 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA078 001B6FD8 D0 01 00 6C */ stfs f0, 0x6c(r1)
/* 801BA07C 001B6FDC D0 21 00 74 */ stfs f1, 0x74(r1)
/* 801BA080 001B6FE0 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA084 001B6FE4 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801BA088 001B6FE8 7D 89 03 A6 */ mtctr r12
/* 801BA08C 001B6FEC 4E 80 04 21 */ bctrl
/* 801BA090 001B6FF0 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA094 001B6FF4 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA098 001B6FF8 81 8C 00 B8 */ lwz r12, 0xb8(r12)
/* 801BA09C 001B6FFC 7D 89 03 A6 */ mtctr r12
/* 801BA0A0 001B7000 4E 80 04 21 */ bctrl
/* 801BA0A4 001B7004 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA0A8 001B7008 38 80 00 04 */ li r4, 4
/* 801BA0AC 001B700C 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA0B0 001B7010 81 8C 00 A0 */ lwz r12, 0xa0(r12)
/* 801BA0B4 001B7014 7D 89 03 A6 */ mtctr r12
/* 801BA0B8 001B7018 4E 80 04 21 */ bctrl
/* 801BA0BC 001B701C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA0C0 001B7020 38 81 00 08 */ addi r4, r1, 8
/* 801BA0C4 001B7024 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA0C8 001B7028 81 8C 00 B4 */ lwz r12, 0xb4(r12)
/* 801BA0CC 001B702C 7D 89 03 A6 */ mtctr r12
/* 801BA0D0 001B7030 4E 80 04 21 */ bctrl
/* 801BA0D4 001B7034 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801BA0D8 001B7038 38 81 00 60 */ addi r4, r1, 0x60
/* 801BA0DC 001B703C C0 5F 00 04 */ lfs f2, 4(r31)
/* 801BA0E0 001B7040 C0 1F 00 00 */ lfs f0, 0(r31)
/* 801BA0E4 001B7044 D0 41 00 64 */ stfs f2, 0x64(r1)
/* 801BA0E8 001B7048 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA0EC 001B704C D0 01 00 60 */ stfs f0, 0x60(r1)
/* 801BA0F0 001B7050 D0 21 00 68 */ stfs f1, 0x68(r1)
/* 801BA0F4 001B7054 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA0F8 001B7058 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801BA0FC 001B705C 7D 89 03 A6 */ mtctr r12
/* 801BA100 001B7060 4E 80 04 21 */ bctrl
/* 801BA104 001B7064 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801BA108 001B7068 38 81 00 54 */ addi r4, r1, 0x54
/* 801BA10C 001B706C C0 5F 00 04 */ lfs f2, 4(r31)
/* 801BA110 001B7070 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801BA114 001B7074 D0 41 00 58 */ stfs f2, 0x58(r1)
/* 801BA118 001B7078 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA11C 001B707C D0 01 00 54 */ stfs f0, 0x54(r1)
/* 801BA120 001B7080 D0 21 00 5C */ stfs f1, 0x5c(r1)
/* 801BA124 001B7084 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA128 001B7088 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801BA12C 001B708C 7D 89 03 A6 */ mtctr r12
/* 801BA130 001B7090 4E 80 04 21 */ bctrl
/* 801BA134 001B7094 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801BA138 001B7098 38 81 00 48 */ addi r4, r1, 0x48
/* 801BA13C 001B709C C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801BA140 001B70A0 C0 1F 00 00 */ lfs f0, 0(r31)
/* 801BA144 001B70A4 D0 41 00 4C */ stfs f2, 0x4c(r1)
/* 801BA148 001B70A8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA14C 001B70AC D0 01 00 48 */ stfs f0, 0x48(r1)
/* 801BA150 001B70B0 D0 21 00 50 */ stfs f1, 0x50(r1)
/* 801BA154 001B70B4 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA158 001B70B8 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801BA15C 001B70BC 7D 89 03 A6 */ mtctr r12
/* 801BA160 001B70C0 4E 80 04 21 */ bctrl
/* 801BA164 001B70C4 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 801BA168 001B70C8 38 81 00 3C */ addi r4, r1, 0x3c
/* 801BA16C 001B70CC C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801BA170 001B70D0 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801BA174 001B70D4 D0 41 00 40 */ stfs f2, 0x40(r1)
/* 801BA178 001B70D8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA17C 001B70DC D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 801BA180 001B70E0 D0 21 00 44 */ stfs f1, 0x44(r1)
/* 801BA184 001B70E4 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA188 001B70E8 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801BA18C 001B70EC 7D 89 03 A6 */ mtctr r12
/* 801BA190 001B70F0 4E 80 04 21 */ bctrl
/* 801BA194 001B70F4 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA198 001B70F8 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA19C 001B70FC 81 8C 00 B8 */ lwz r12, 0xb8(r12)
/* 801BA1A0 001B7100 7D 89 03 A6 */ mtctr r12
/* 801BA1A4 001B7104 4E 80 04 21 */ bctrl
/* 801BA1A8 001B7108 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA1AC 001B710C 38 80 00 04 */ li r4, 4
/* 801BA1B0 001B7110 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA1B4 001B7114 81 8C 00 A0 */ lwz r12, 0xa0(r12)
/* 801BA1B8 001B7118 7D 89 03 A6 */ mtctr r12
/* 801BA1BC 001B711C 4E 80 04 21 */ bctrl
/* 801BA1C0 001B7120 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA1C4 001B7124 38 81 00 08 */ addi r4, r1, 8
/* 801BA1C8 001B7128 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA1CC 001B712C 81 8C 00 B4 */ lwz r12, 0xb4(r12)
/* 801BA1D0 001B7130 7D 89 03 A6 */ mtctr r12
/* 801BA1D4 001B7134 4E 80 04 21 */ bctrl
/* 801BA1D8 001B7138 C0 3F 00 08 */ lfs f1, 8(r31)
/* 801BA1DC 001B713C 38 81 00 30 */ addi r4, r1, 0x30
/* 801BA1E0 001B7140 C0 5F 00 04 */ lfs f2, 4(r31)
/* 801BA1E4 001B7144 C0 1F 00 00 */ lfs f0, 0(r31)
/* 801BA1E8 001B7148 D0 41 00 34 */ stfs f2, 0x34(r1)
/* 801BA1EC 001B714C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA1F0 001B7150 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 801BA1F4 001B7154 D0 21 00 38 */ stfs f1, 0x38(r1)
/* 801BA1F8 001B7158 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA1FC 001B715C 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801BA200 001B7160 7D 89 03 A6 */ mtctr r12
/* 801BA204 001B7164 4E 80 04 21 */ bctrl
/* 801BA208 001B7168 C0 3F 00 08 */ lfs f1, 8(r31)
/* 801BA20C 001B716C 38 81 00 24 */ addi r4, r1, 0x24
/* 801BA210 001B7170 C0 5F 00 04 */ lfs f2, 4(r31)
/* 801BA214 001B7174 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801BA218 001B7178 D0 41 00 28 */ stfs f2, 0x28(r1)
/* 801BA21C 001B717C 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA220 001B7180 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 801BA224 001B7184 D0 21 00 2C */ stfs f1, 0x2c(r1)
/* 801BA228 001B7188 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA22C 001B718C 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801BA230 001B7190 7D 89 03 A6 */ mtctr r12
/* 801BA234 001B7194 4E 80 04 21 */ bctrl
/* 801BA238 001B7198 C0 3F 00 08 */ lfs f1, 8(r31)
/* 801BA23C 001B719C 38 81 00 18 */ addi r4, r1, 0x18
/* 801BA240 001B71A0 C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801BA244 001B71A4 C0 1F 00 00 */ lfs f0, 0(r31)
/* 801BA248 001B71A8 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 801BA24C 001B71AC 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA250 001B71B0 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 801BA254 001B71B4 D0 21 00 20 */ stfs f1, 0x20(r1)
/* 801BA258 001B71B8 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA25C 001B71BC 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801BA260 001B71C0 7D 89 03 A6 */ mtctr r12
/* 801BA264 001B71C4 4E 80 04 21 */ bctrl
/* 801BA268 001B71C8 C0 3F 00 08 */ lfs f1, 8(r31)
/* 801BA26C 001B71CC 38 81 00 0C */ addi r4, r1, 0xc
/* 801BA270 001B71D0 C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 801BA274 001B71D4 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801BA278 001B71D8 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 801BA27C 001B71DC 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA280 001B71E0 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 801BA284 001B71E4 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 801BA288 001B71E8 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA28C 001B71EC 81 8C 00 A8 */ lwz r12, 0xa8(r12)
/* 801BA290 001B71F0 7D 89 03 A6 */ mtctr r12
/* 801BA294 001B71F4 4E 80 04 21 */ bctrl
/* 801BA298 001B71F8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BA29C 001B71FC 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA2A0 001B7200 81 8C 00 B8 */ lwz r12, 0xb8(r12)
/* 801BA2A4 001B7204 7D 89 03 A6 */ mtctr r12
/* 801BA2A8 001B7208 4E 80 04 21 */ bctrl
/* 801BA2AC 001B720C 38 60 00 01 */ li r3, 1
/* 801BA2B0 001B7210 48 15 17 C1 */ bl SetCullMode__9CGraphicsF12ERglCullMode
/* 801BA2B4 001B7214 80 01 01 44 */ lwz r0, 0x144(r1)
/* 801BA2B8 001B7218 83 E1 01 3C */ lwz r31, 0x13c(r1)
/* 801BA2BC 001B721C 7C 08 03 A6 */ mtlr r0
/* 801BA2C0 001B7220 38 21 01 40 */ addi r1, r1, 0x140
/* 801BA2C4 001B7224 4E 80 00 20 */ blr
.global EnableFrozenEffect__10CGunWeaponF13EFrozenFxType
EnableFrozenEffect__10CGunWeaponF13EFrozenFxType:
/* 801BA2C8 001B7228 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 801BA2CC 001B722C 7C 08 02 A6 */ mflr r0
/* 801BA2D0 001B7230 90 01 00 34 */ stw r0, 0x34(r1)
/* 801BA2D4 001B7234 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 801BA2D8 001B7238 7C 9F 23 78 */ mr r31, r4
/* 801BA2DC 001B723C 2C 1F 00 02 */ cmpwi r31, 2
/* 801BA2E0 001B7240 93 C1 00 28 */ stw r30, 0x28(r1)
/* 801BA2E4 001B7244 7C 7E 1B 78 */ mr r30, r3
/* 801BA2E8 001B7248 93 A1 00 24 */ stw r29, 0x24(r1)
/* 801BA2EC 001B724C 93 81 00 20 */ stw r28, 0x20(r1)
/* 801BA2F0 001B7250 41 82 00 14 */ beq lbl_801BA304
/* 801BA2F4 001B7254 40 80 01 64 */ bge lbl_801BA458
/* 801BA2F8 001B7258 2C 1F 00 01 */ cmpwi r31, 1
/* 801BA2FC 001B725C 40 80 00 B4 */ bge lbl_801BA3B0
/* 801BA300 001B7260 48 00 01 58 */ b lbl_801BA458
lbl_801BA304:
/* 801BA304 001B7264 80 1E 02 04 */ lwz r0, 0x204(r30)
/* 801BA308 001B7268 2C 00 00 02 */ cmpwi r0, 2
/* 801BA30C 001B726C 41 82 01 4C */ beq lbl_801BA458
/* 801BA310 001B7270 3C 60 80 3D */ lis r3, lbl_803D1828@ha
/* 801BA314 001B7274 3B 80 00 00 */ li r28, 0
/* 801BA318 001B7278 38 83 18 28 */ addi r4, r3, lbl_803D1828@l
/* 801BA31C 001B727C 38 60 03 40 */ li r3, 0x340
/* 801BA320 001B7280 38 84 01 B5 */ addi r4, r4, 0x1b5
/* 801BA324 001B7284 38 A0 00 00 */ li r5, 0
/* 801BA328 001B7288 48 15 B5 45 */ bl __nw__FUlPCcPCc
/* 801BA32C 001B728C 7C 7D 1B 79 */ or. r29, r3, r3
/* 801BA330 001B7290 41 82 00 2C */ beq lbl_801BA35C
/* 801BA334 001B7294 38 61 00 10 */ addi r3, r1, 0x10
/* 801BA338 001B7298 38 9E 01 98 */ addi r4, r30, 0x198
/* 801BA33C 001B729C 48 18 6B 6D */ bl __ct__6CTokenFRC6CToken
/* 801BA340 001B72A0 7F A3 EB 78 */ mr r3, r29
/* 801BA344 001B72A4 38 81 00 10 */ addi r4, r1, 0x10
/* 801BA348 001B72A8 3B 80 00 01 */ li r28, 1
/* 801BA34C 001B72AC 38 A0 00 00 */ li r5, 0
/* 801BA350 001B72B0 38 C0 00 01 */ li r6, 1
/* 801BA354 001B72B4 48 16 50 8D */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 801BA358 001B72B8 7C 7D 1B 78 */ mr r29, r3
lbl_801BA35C:
/* 801BA35C 001B72BC 80 7E 01 B8 */ lwz r3, 0x1b8(r30)
/* 801BA360 001B72C0 28 03 00 00 */ cmplwi r3, 0
/* 801BA364 001B72C4 41 82 00 18 */ beq lbl_801BA37C
/* 801BA368 001B72C8 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA36C 001B72CC 38 80 00 01 */ li r4, 1
/* 801BA370 001B72D0 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BA374 001B72D4 7D 89 03 A6 */ mtctr r12
/* 801BA378 001B72D8 4E 80 04 21 */ bctrl
lbl_801BA37C:
/* 801BA37C 001B72DC 7F 80 07 75 */ extsb. r0, r28
/* 801BA380 001B72E0 93 BE 01 B8 */ stw r29, 0x1b8(r30)
/* 801BA384 001B72E4 41 82 00 10 */ beq lbl_801BA394
/* 801BA388 001B72E8 38 61 00 10 */ addi r3, r1, 0x10
/* 801BA38C 001B72EC 38 80 00 00 */ li r4, 0
/* 801BA390 001B72F0 48 18 6A B1 */ bl __dt__6CTokenFv
lbl_801BA394:
/* 801BA394 001B72F4 80 7E 01 B8 */ lwz r3, 0x1b8(r30)
/* 801BA398 001B72F8 38 9E 00 04 */ addi r4, r30, 4
/* 801BA39C 001B72FC 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA3A0 001B7300 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 801BA3A4 001B7304 7D 89 03 A6 */ mtctr r12
/* 801BA3A8 001B7308 4E 80 04 21 */ bctrl
/* 801BA3AC 001B730C 48 00 00 AC */ b lbl_801BA458
lbl_801BA3B0:
/* 801BA3B0 001B7310 80 1E 02 04 */ lwz r0, 0x204(r30)
/* 801BA3B4 001B7314 2C 00 00 01 */ cmpwi r0, 1
/* 801BA3B8 001B7318 41 82 00 A0 */ beq lbl_801BA458
/* 801BA3BC 001B731C 3C 60 80 3D */ lis r3, lbl_803D1828@ha
/* 801BA3C0 001B7320 3B 80 00 00 */ li r28, 0
/* 801BA3C4 001B7324 38 83 18 28 */ addi r4, r3, lbl_803D1828@l
/* 801BA3C8 001B7328 38 60 03 40 */ li r3, 0x340
/* 801BA3CC 001B732C 38 84 01 B5 */ addi r4, r4, 0x1b5
/* 801BA3D0 001B7330 38 A0 00 00 */ li r5, 0
/* 801BA3D4 001B7334 48 15 B4 99 */ bl __nw__FUlPCcPCc
/* 801BA3D8 001B7338 7C 7D 1B 79 */ or. r29, r3, r3
/* 801BA3DC 001B733C 41 82 00 2C */ beq lbl_801BA408
/* 801BA3E0 001B7340 38 61 00 08 */ addi r3, r1, 8
/* 801BA3E4 001B7344 38 9E 01 8C */ addi r4, r30, 0x18c
/* 801BA3E8 001B7348 48 18 6A C1 */ bl __ct__6CTokenFRC6CToken
/* 801BA3EC 001B734C 7F A3 EB 78 */ mr r3, r29
/* 801BA3F0 001B7350 38 81 00 08 */ addi r4, r1, 8
/* 801BA3F4 001B7354 3B 80 00 01 */ li r28, 1
/* 801BA3F8 001B7358 38 A0 00 00 */ li r5, 0
/* 801BA3FC 001B735C 38 C0 00 01 */ li r6, 1
/* 801BA400 001B7360 48 16 4F E1 */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 801BA404 001B7364 7C 7D 1B 78 */ mr r29, r3
lbl_801BA408:
/* 801BA408 001B7368 80 7E 01 B8 */ lwz r3, 0x1b8(r30)
/* 801BA40C 001B736C 28 03 00 00 */ cmplwi r3, 0
/* 801BA410 001B7370 41 82 00 18 */ beq lbl_801BA428
/* 801BA414 001B7374 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA418 001B7378 38 80 00 01 */ li r4, 1
/* 801BA41C 001B737C 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BA420 001B7380 7D 89 03 A6 */ mtctr r12
/* 801BA424 001B7384 4E 80 04 21 */ bctrl
lbl_801BA428:
/* 801BA428 001B7388 7F 80 07 75 */ extsb. r0, r28
/* 801BA42C 001B738C 93 BE 01 B8 */ stw r29, 0x1b8(r30)
/* 801BA430 001B7390 41 82 00 10 */ beq lbl_801BA440
/* 801BA434 001B7394 38 61 00 08 */ addi r3, r1, 8
/* 801BA438 001B7398 38 80 00 00 */ li r4, 0
/* 801BA43C 001B739C 48 18 6A 05 */ bl __dt__6CTokenFv
lbl_801BA440:
/* 801BA440 001B73A0 80 7E 01 B8 */ lwz r3, 0x1b8(r30)
/* 801BA444 001B73A4 38 9E 00 04 */ addi r4, r30, 4
/* 801BA448 001B73A8 81 83 00 00 */ lwz r12, 0(r3)
/* 801BA44C 001B73AC 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 801BA450 001B73B0 7D 89 03 A6 */ mtctr r12
/* 801BA454 001B73B4 4E 80 04 21 */ bctrl
lbl_801BA458:
/* 801BA458 001B73B8 93 FE 02 04 */ stw r31, 0x204(r30)
/* 801BA45C 001B73BC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 801BA460 001B73C0 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 801BA464 001B73C4 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 801BA468 001B73C8 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 801BA46C 001B73CC 83 81 00 20 */ lwz r28, 0x20(r1)
/* 801BA470 001B73D0 7C 08 03 A6 */ mtlr r0
/* 801BA474 001B73D4 38 21 00 30 */ addi r1, r1, 0x30
/* 801BA478 001B73D8 4E 80 00 20 */ blr
.global PointGenerator__10CGunWeaponFPvPC9CVector3fPC9CVector3fi
PointGenerator__10CGunWeaponFPvPC9CVector3fPC9CVector3fi:
/* 801BA47C 001B73DC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BA480 001B73E0 7C 08 02 A6 */ mflr r0
/* 801BA484 001B73E4 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BA488 001B73E8 48 0B 01 59 */ bl GeneratePoints__20CRainSplashGeneratorFPC9CVector3fPC9CVector3fi
/* 801BA48C 001B73EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BA490 001B73F0 7C 08 03 A6 */ mtlr r0
/* 801BA494 001B73F4 38 21 00 10 */ addi r1, r1, 0x10
/* 801BA498 001B73F8 4E 80 00 20 */ blr
.global LoadSuitArm__10CGunWeaponFR13CStateManager
LoadSuitArm__10CGunWeaponFR13CStateManager:
/* 801BA49C 001B73FC 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 801BA4A0 001B7400 7C 08 02 A6 */ mflr r0
/* 801BA4A4 001B7404 90 01 00 74 */ stw r0, 0x74(r1)
/* 801BA4A8 001B7408 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 801BA4AC 001B740C 7C 7F 1B 78 */ mr r31, r3
/* 801BA4B0 001B7410 80 63 01 3C */ lwz r3, 0x13c(r3)
/* 801BA4B4 001B7414 80 03 00 10 */ lwz r0, 0x10(r3)
/* 801BA4B8 001B7418 28 00 00 00 */ cmplwi r0, 0
/* 801BA4BC 001B741C 41 82 00 88 */ beq lbl_801BA544
/* 801BA4C0 001B7420 7C 83 23 78 */ mr r3, r4
/* 801BA4C4 001B7424 48 0D 05 09 */ bl get_current_suit__12NWeaponTypesFRC13CStateManager
/* 801BA4C8 001B7428 3C 80 80 3D */ lis r4, lbl_803D17DC@ha
/* 801BA4CC 001B742C 54 60 10 3A */ slwi r0, r3, 2
/* 801BA4D0 001B7430 38 64 17 DC */ addi r3, r4, lbl_803D17DC@l
/* 801BA4D4 001B7434 7C 63 00 2E */ lwzx r3, r3, r0
/* 801BA4D8 001B7438 48 0D 0F 71 */ bl get_asset_id_from_name__12NWeaponTypesFPCc
/* 801BA4DC 001B743C 90 61 00 08 */ stw r3, 8(r1)
/* 801BA4E0 001B7440 38 61 00 18 */ addi r3, r1, 0x18
/* 801BA4E4 001B7444 38 81 00 08 */ addi r4, r1, 8
/* 801BA4E8 001B7448 C0 1F 00 04 */ lfs f0, 4(r31)
/* 801BA4EC 001B744C D0 01 00 0C */ stfs f0, 0xc(r1)
/* 801BA4F0 001B7450 C0 1F 00 08 */ lfs f0, 8(r31)
/* 801BA4F4 001B7454 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 801BA4F8 001B7458 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801BA4FC 001B745C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 801BA500 001B7460 4B F5 C8 5D */ bl __ct__10CModelDataFRC10CStaticRes
/* 801BA504 001B7464 38 7F 00 B0 */ addi r3, r31, 0xb0
/* 801BA508 001B7468 38 81 00 18 */ addi r4, r1, 0x18
/* 801BA50C 001B746C 4B F2 39 6D */ bl sub_800dde78
/* 801BA510 001B7470 38 61 00 18 */ addi r3, r1, 0x18
/* 801BA514 001B7474 38 80 FF FF */ li r4, -1
/* 801BA518 001B7478 4B F5 C5 35 */ bl __dt__10CModelDataFv
/* 801BA51C 001B747C 88 1F 00 C4 */ lbz r0, 0xc4(r31)
/* 801BA520 001B7480 38 60 00 01 */ li r3, 1
/* 801BA524 001B7484 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 801BA528 001B7488 38 80 00 00 */ li r4, 0
/* 801BA52C 001B748C 98 1F 00 C4 */ stb r0, 0xc4(r31)
/* 801BA530 001B7490 38 7F 01 3C */ addi r3, r31, 0x13c
/* 801BA534 001B7494 88 1F 02 18 */ lbz r0, 0x218(r31)
/* 801BA538 001B7498 50 80 1F 38 */ rlwimi r0, r4, 3, 0x1c, 0x1c
/* 801BA53C 001B749C 98 1F 02 18 */ stb r0, 0x218(r31)
/* 801BA540 001B74A0 48 18 68 01 */ bl Unlock__6CTokenFv
lbl_801BA544:
/* 801BA544 001B74A4 80 01 00 74 */ lwz r0, 0x74(r1)
/* 801BA548 001B74A8 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 801BA54C 001B74AC 7C 08 03 A6 */ mtlr r0
/* 801BA550 001B74B0 38 21 00 70 */ addi r1, r1, 0x70
/* 801BA554 001B74B4 4E 80 00 20 */ blr
.global AsyncLoadSuitArm__10CGunWeaponFR13CStateManager
AsyncLoadSuitArm__10CGunWeaponFR13CStateManager:
/* 801BA558 001B74B8 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 801BA55C 001B74BC 7C 08 02 A6 */ mflr r0
/* 801BA560 001B74C0 90 01 00 74 */ stw r0, 0x74(r1)
/* 801BA564 001B74C4 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 801BA568 001B74C8 93 C1 00 68 */ stw r30, 0x68(r1)
/* 801BA56C 001B74CC 7C 7E 1B 78 */ mr r30, r3
/* 801BA570 001B74D0 7C 83 23 78 */ mr r3, r4
/* 801BA574 001B74D4 48 0D 04 59 */ bl get_current_suit__12NWeaponTypesFRC13CStateManager
/* 801BA578 001B74D8 38 00 00 00 */ li r0, 0
/* 801BA57C 001B74DC 7C 7F 1B 78 */ mr r31, r3
/* 801BA580 001B74E0 98 01 00 64 */ stb r0, 0x64(r1)
/* 801BA584 001B74E4 38 7E 00 B0 */ addi r3, r30, 0xb0
/* 801BA588 001B74E8 38 81 00 18 */ addi r4, r1, 0x18
/* 801BA58C 001B74EC 4B F6 37 C1 */ bl sub_8011dd4c
/* 801BA590 001B74F0 88 01 00 64 */ lbz r0, 0x64(r1)
/* 801BA594 001B74F4 28 00 00 00 */ cmplwi r0, 0
/* 801BA598 001B74F8 41 82 00 10 */ beq lbl_801BA5A8
/* 801BA59C 001B74FC 38 61 00 18 */ addi r3, r1, 0x18
/* 801BA5A0 001B7500 38 80 FF FF */ li r4, -1
/* 801BA5A4 001B7504 4B F5 C4 A9 */ bl __dt__10CModelDataFv
lbl_801BA5A8:
/* 801BA5A8 001B7508 38 00 00 00 */ li r0, 0
/* 801BA5AC 001B750C 3C 60 80 3D */ lis r3, lbl_803D17DC@ha
/* 801BA5B0 001B7510 98 01 00 64 */ stb r0, 0x64(r1)
/* 801BA5B4 001B7514 57 E0 10 3A */ slwi r0, r31, 2
/* 801BA5B8 001B7518 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 801BA5BC 001B751C 38 A3 17 DC */ addi r5, r3, lbl_803D17DC@l
/* 801BA5C0 001B7520 38 61 00 10 */ addi r3, r1, 0x10
/* 801BA5C4 001B7524 7C A5 00 2E */ lwzx r5, r5, r0
/* 801BA5C8 001B7528 81 84 00 00 */ lwz r12, 0(r4)
/* 801BA5CC 001B752C 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 801BA5D0 001B7530 7D 89 03 A6 */ mtctr r12
/* 801BA5D4 001B7534 4E 80 04 21 */ bctrl
/* 801BA5D8 001B7538 38 61 00 08 */ addi r3, r1, 8
/* 801BA5DC 001B753C 38 81 00 10 */ addi r4, r1, 0x10
/* 801BA5E0 001B7540 48 18 68 C9 */ bl __ct__6CTokenFRC6CToken
/* 801BA5E4 001B7544 38 7E 01 3C */ addi r3, r30, 0x13c
/* 801BA5E8 001B7548 38 81 00 08 */ addi r4, r1, 8
/* 801BA5EC 001B754C 48 18 66 D9 */ bl __as__6CTokenFRC6CToken
/* 801BA5F0 001B7550 38 61 00 08 */ addi r3, r1, 8
/* 801BA5F4 001B7554 38 80 00 00 */ li r4, 0
/* 801BA5F8 001B7558 48 18 68 49 */ bl __dt__6CTokenFv
/* 801BA5FC 001B755C 38 61 00 10 */ addi r3, r1, 0x10
/* 801BA600 001B7560 38 80 FF FF */ li r4, -1
/* 801BA604 001B7564 48 18 68 3D */ bl __dt__6CTokenFv
/* 801BA608 001B7568 38 7E 01 3C */ addi r3, r30, 0x13c
/* 801BA60C 001B756C 48 18 67 79 */ bl Lock__6CTokenFv
/* 801BA610 001B7570 88 1E 02 18 */ lbz r0, 0x218(r30)
/* 801BA614 001B7574 38 60 00 01 */ li r3, 1
/* 801BA618 001B7578 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 801BA61C 001B757C 98 1E 02 18 */ stb r0, 0x218(r30)
/* 801BA620 001B7580 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 801BA624 001B7584 83 C1 00 68 */ lwz r30, 0x68(r1)
/* 801BA628 001B7588 80 01 00 74 */ lwz r0, 0x74(r1)
/* 801BA62C 001B758C 7C 08 03 A6 */ mtlr r0
/* 801BA630 001B7590 38 21 00 70 */ addi r1, r1, 0x70
/* 801BA634 001B7594 4E 80 00 20 */ blr
.global IsFidgetLoaded__10CGunWeaponFv
IsFidgetLoaded__10CGunWeaponFv:
/* 801BA638 001B7598 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BA63C 001B759C 7C 08 02 A6 */ mflr r0
/* 801BA640 001B75A0 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BA644 001B75A4 80 63 01 00 */ lwz r3, 0x100(r3)
/* 801BA648 001B75A8 38 63 00 30 */ addi r3, r3, 0x30
/* 801BA64C 001B75AC 48 03 6A 7D */ bl IsAnimLoaded__9CGSFidgetCFv
/* 801BA650 001B75B0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BA654 001B75B4 7C 08 03 A6 */ mtlr r0
/* 801BA658 001B75B8 38 21 00 10 */ addi r1, r1, 0x10
/* 801BA65C 001B75BC 4E 80 00 20 */ blr
.global UnLoadFidget__10CGunWeaponFv
UnLoadFidget__10CGunWeaponFv:
/* 801BA660 001B75C0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BA664 001B75C4 7C 08 02 A6 */ mflr r0
/* 801BA668 001B75C8 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BA66C 001B75CC 80 63 01 00 */ lwz r3, 0x100(r3)
/* 801BA670 001B75D0 38 63 00 30 */ addi r3, r3, 0x30
/* 801BA674 001B75D4 48 03 6A 75 */ bl UnLoadAnim__9CGSFidgetFv
/* 801BA678 001B75D8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BA67C 001B75DC 7C 08 03 A6 */ mtlr r0
/* 801BA680 001B75E0 38 21 00 10 */ addi r1, r1, 0x10
/* 801BA684 001B75E4 4E 80 00 20 */ blr
.global AsyncLoadFidget__10CGunWeaponFR13CStateManagerQ28SamusGun11EFidgetTypei
AsyncLoadFidget__10CGunWeaponFR13CStateManagerQ28SamusGun11EFidgetTypei:
/* 801BA688 001B75E8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BA68C 001B75EC 7C 08 02 A6 */ mflr r0
/* 801BA690 001B75F0 7C 68 1B 78 */ mr r8, r3
/* 801BA694 001B75F4 7C C7 33 78 */ mr r7, r6
/* 801BA698 001B75F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BA69C 001B75FC 80 63 01 00 */ lwz r3, 0x100(r3)
/* 801BA6A0 001B7600 80 C8 02 00 */ lwz r6, 0x200(r8)
/* 801BA6A4 001B7604 48 01 21 79 */ bl LoadFidgetAnimAsync__14CGunControllerFR13CStateManageriii
/* 801BA6A8 001B7608 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BA6AC 001B760C 7C 08 03 A6 */ mtlr r0
/* 801BA6B0 001B7610 38 21 00 10 */ addi r1, r1, 0x10
/* 801BA6B4 001B7614 4E 80 00 20 */ blr
.global BuildDependencyList__10CGunWeaponFQ212CPlayerState7EBeamId
BuildDependencyList__10CGunWeaponFQ212CPlayerState7EBeamId:
/* 801BA6B8 001B7618 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 801BA6BC 001B761C 7C 08 02 A6 */ mflr r0
/* 801BA6C0 001B7620 3C A0 80 3D */ lis r5, lbl_803D17C8@ha
/* 801BA6C4 001B7624 90 01 00 44 */ stw r0, 0x44(r1)
/* 801BA6C8 001B7628 7C 80 23 78 */ mr r0, r4
/* 801BA6CC 001B762C 38 A5 17 C8 */ addi r5, r5, lbl_803D17C8@l
/* 801BA6D0 001B7630 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 801BA6D4 001B7634 93 C1 00 38 */ stw r30, 0x38(r1)
/* 801BA6D8 001B7638 54 1E 10 3A */ slwi r30, r0, 2
/* 801BA6DC 001B763C 7C A5 F0 2E */ lwzx r5, r5, r30
/* 801BA6E0 001B7640 93 A1 00 34 */ stw r29, 0x34(r1)
/* 801BA6E4 001B7644 7C 7D 1B 78 */ mr r29, r3
/* 801BA6E8 001B7648 38 61 00 10 */ addi r3, r1, 0x10
/* 801BA6EC 001B764C 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 801BA6F0 001B7650 81 84 00 00 */ lwz r12, 0(r4)
/* 801BA6F4 001B7654 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 801BA6F8 001B7658 7D 89 03 A6 */ mtctr r12
/* 801BA6FC 001B765C 4E 80 04 21 */ bctrl
/* 801BA700 001B7660 3B E1 00 24 */ addi r31, r1, 0x24
/* 801BA704 001B7664 38 81 00 10 */ addi r4, r1, 0x10
/* 801BA708 001B7668 7F E3 FB 78 */ mr r3, r31
/* 801BA70C 001B766C 48 18 67 9D */ bl __ct__6CTokenFRC6CToken
/* 801BA710 001B7670 7F E3 FB 78 */ mr r3, r31
/* 801BA714 001B7674 48 18 66 F9 */ bl GetObj__6CTokenFv
/* 801BA718 001B7678 80 03 00 04 */ lwz r0, 4(r3)
/* 801BA71C 001B767C 38 61 00 10 */ addi r3, r1, 0x10
/* 801BA720 001B7680 38 80 FF FF */ li r4, -1
/* 801BA724 001B7684 90 01 00 2C */ stw r0, 0x2c(r1)
/* 801BA728 001B7688 48 18 67 19 */ bl __dt__6CTokenFv
/* 801BA72C 001B768C 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 801BA730 001B7690 3C 60 80 3D */ lis r3, lbl_803D17B4@ha
/* 801BA734 001B7694 38 A3 17 B4 */ addi r5, r3, lbl_803D17B4@l
/* 801BA738 001B7698 38 61 00 08 */ addi r3, r1, 8
/* 801BA73C 001B769C 81 84 00 00 */ lwz r12, 0(r4)
/* 801BA740 001B76A0 7C A5 F0 2E */ lwzx r5, r5, r30
/* 801BA744 001B76A4 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 801BA748 001B76A8 7D 89 03 A6 */ mtctr r12
/* 801BA74C 001B76AC 4E 80 04 21 */ bctrl
/* 801BA750 001B76B0 3B C1 00 18 */ addi r30, r1, 0x18
/* 801BA754 001B76B4 38 81 00 08 */ addi r4, r1, 8
/* 801BA758 001B76B8 7F C3 F3 78 */ mr r3, r30
/* 801BA75C 001B76BC 48 18 67 4D */ bl __ct__6CTokenFRC6CToken
/* 801BA760 001B76C0 7F C3 F3 78 */ mr r3, r30
/* 801BA764 001B76C4 48 18 66 A9 */ bl GetObj__6CTokenFv
/* 801BA768 001B76C8 80 03 00 04 */ lwz r0, 4(r3)
/* 801BA76C 001B76CC 38 61 00 08 */ addi r3, r1, 8
/* 801BA770 001B76D0 38 80 FF FF */ li r4, -1
/* 801BA774 001B76D4 90 01 00 20 */ stw r0, 0x20(r1)
/* 801BA778 001B76D8 48 18 66 C9 */ bl __dt__6CTokenFv
/* 801BA77C 001B76DC 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 801BA780 001B76E0 38 7D 01 2C */ addi r3, r29, 0x12c
/* 801BA784 001B76E4 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 801BA788 001B76E8 80 9F 00 04 */ lwz r4, 4(r31)
/* 801BA78C 001B76EC 80 1E 00 04 */ lwz r0, 4(r30)
/* 801BA790 001B76F0 7C 84 02 14 */ add r4, r4, r0
/* 801BA794 001B76F4 4B E4 E1 C9 */ bl "reserve__Q24rstl42vector<6CToken,Q24rstl17rmemory_allocator>Fi"
/* 801BA798 001B76F8 7F E3 FB 78 */ mr r3, r31
/* 801BA79C 001B76FC 38 9D 01 2C */ addi r4, r29, 0x12c
/* 801BA7A0 001B7700 38 A0 00 01 */ li r5, 1
/* 801BA7A4 001B7704 48 00 00 49 */ bl "FillTokenVector__10CGunWeaponFRCQ24rstl47vector<10SObjectTag,Q24rstl17rmemory_allocator>RQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>"
/* 801BA7A8 001B7708 7F C3 F3 78 */ mr r3, r30
/* 801BA7AC 001B770C 38 9D 01 2C */ addi r4, r29, 0x12c
/* 801BA7B0 001B7710 38 A0 00 00 */ li r5, 0
/* 801BA7B4 001B7714 48 00 00 39 */ bl "FillTokenVector__10CGunWeaponFRCQ24rstl47vector<10SObjectTag,Q24rstl17rmemory_allocator>RQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>"
/* 801BA7B8 001B7718 38 61 00 18 */ addi r3, r1, 0x18
/* 801BA7BC 001B771C 38 80 00 00 */ li r4, 0
/* 801BA7C0 001B7720 48 18 66 81 */ bl __dt__6CTokenFv
/* 801BA7C4 001B7724 38 61 00 24 */ addi r3, r1, 0x24
/* 801BA7C8 001B7728 38 80 00 00 */ li r4, 0
/* 801BA7CC 001B772C 48 18 66 75 */ bl __dt__6CTokenFv
/* 801BA7D0 001B7730 80 01 00 44 */ lwz r0, 0x44(r1)
/* 801BA7D4 001B7734 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 801BA7D8 001B7738 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 801BA7DC 001B773C 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 801BA7E0 001B7740 7C 08 03 A6 */ mtlr r0
/* 801BA7E4 001B7744 38 21 00 40 */ addi r1, r1, 0x40
/* 801BA7E8 001B7748 4E 80 00 20 */ blr
.global "FillTokenVector__10CGunWeaponFRCQ24rstl47vector<10SObjectTag,Q24rstl17rmemory_allocator>RQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>"
"FillTokenVector__10CGunWeaponFRCQ24rstl47vector<10SObjectTag,Q24rstl17rmemory_allocator>RQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>":
/* 801BA7EC 001B774C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 801BA7F0 001B7750 7C 08 02 A6 */ mflr r0
/* 801BA7F4 001B7754 90 01 00 34 */ stw r0, 0x34(r1)
/* 801BA7F8 001B7758 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 801BA7FC 001B775C 54 BF 06 3E */ clrlwi r31, r5, 0x18
/* 801BA800 001B7760 93 C1 00 28 */ stw r30, 0x28(r1)
/* 801BA804 001B7764 93 A1 00 24 */ stw r29, 0x24(r1)
/* 801BA808 001B7768 7C 9D 23 78 */ mr r29, r4
/* 801BA80C 001B776C 93 81 00 20 */ stw r28, 0x20(r1)
/* 801BA810 001B7770 7C 7C 1B 78 */ mr r28, r3
/* 801BA814 001B7774 83 C3 00 0C */ lwz r30, 0xc(r3)
/* 801BA818 001B7778 48 00 00 C4 */ b lbl_801BA8DC
lbl_801BA81C:
/* 801BA81C 001B777C 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 801BA820 001B7780 7F C5 F3 78 */ mr r5, r30
/* 801BA824 001B7784 38 61 00 08 */ addi r3, r1, 8
/* 801BA828 001B7788 81 84 00 00 */ lwz r12, 0(r4)
/* 801BA82C 001B778C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 801BA830 001B7790 7D 89 03 A6 */ mtctr r12
/* 801BA834 001B7794 4E 80 04 21 */ bctrl
/* 801BA838 001B7798 38 61 00 10 */ addi r3, r1, 0x10
/* 801BA83C 001B779C 38 81 00 08 */ addi r4, r1, 8
/* 801BA840 001B77A0 48 18 66 69 */ bl __ct__6CTokenFRC6CToken
/* 801BA844 001B77A4 38 61 00 08 */ addi r3, r1, 8
/* 801BA848 001B77A8 38 80 FF FF */ li r4, -1
/* 801BA84C 001B77AC 48 18 65 F5 */ bl __dt__6CTokenFv
/* 801BA850 001B77B0 28 1F 00 00 */ cmplwi r31, 0
/* 801BA854 001B77B4 40 82 00 28 */ bne lbl_801BA87C
/* 801BA858 001B77B8 80 61 00 10 */ lwz r3, 0x10(r1)
/* 801BA85C 001B77BC 80 63 00 04 */ lwz r3, 4(r3)
/* 801BA860 001B77C0 3C 03 AB A8 */ addis r0, r3, 0xaba8
/* 801BA864 001B77C4 28 00 54 52 */ cmplwi r0, 0x5452
/* 801BA868 001B77C8 40 82 00 14 */ bne lbl_801BA87C
/* 801BA86C 001B77CC 38 61 00 10 */ addi r3, r1, 0x10
/* 801BA870 001B77D0 38 80 FF FF */ li r4, -1
/* 801BA874 001B77D4 48 18 65 CD */ bl __dt__6CTokenFv
/* 801BA878 001B77D8 48 00 00 60 */ b lbl_801BA8D8
lbl_801BA87C:
/* 801BA87C 001B77DC 80 1D 00 04 */ lwz r0, 4(r29)
/* 801BA880 001B77E0 80 BD 00 08 */ lwz r5, 8(r29)
/* 801BA884 001B77E4 7C 00 28 00 */ cmpw r0, r5
/* 801BA888 001B77E8 41 80 00 1C */ blt lbl_801BA8A4
/* 801BA88C 001B77EC 2C 05 00 00 */ cmpwi r5, 0
/* 801BA890 001B77F0 7F A3 EB 78 */ mr r3, r29
/* 801BA894 001B77F4 38 80 00 04 */ li r4, 4
/* 801BA898 001B77F8 41 82 00 08 */ beq lbl_801BA8A0
/* 801BA89C 001B77FC 54 A4 08 3C */ slwi r4, r5, 1
lbl_801BA8A0:
/* 801BA8A0 001B7800 4B E4 E0 BD */ bl "reserve__Q24rstl42vector<6CToken,Q24rstl17rmemory_allocator>Fi"
lbl_801BA8A4:
/* 801BA8A4 001B7804 80 1D 00 04 */ lwz r0, 4(r29)
/* 801BA8A8 001B7808 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 801BA8AC 001B780C 54 00 18 38 */ slwi r0, r0, 3
/* 801BA8B0 001B7810 7C 63 02 15 */ add. r3, r3, r0
/* 801BA8B4 001B7814 41 82 00 0C */ beq lbl_801BA8C0
/* 801BA8B8 001B7818 38 81 00 10 */ addi r4, r1, 0x10
/* 801BA8BC 001B781C 48 18 65 ED */ bl __ct__6CTokenFRC6CToken
lbl_801BA8C0:
/* 801BA8C0 001B7820 80 BD 00 04 */ lwz r5, 4(r29)
/* 801BA8C4 001B7824 38 61 00 10 */ addi r3, r1, 0x10
/* 801BA8C8 001B7828 38 80 FF FF */ li r4, -1
/* 801BA8CC 001B782C 38 05 00 01 */ addi r0, r5, 1
/* 801BA8D0 001B7830 90 1D 00 04 */ stw r0, 4(r29)
/* 801BA8D4 001B7834 48 18 65 6D */ bl __dt__6CTokenFv
lbl_801BA8D8:
/* 801BA8D8 001B7838 3B DE 00 08 */ addi r30, r30, 8
lbl_801BA8DC:
/* 801BA8DC 001B783C 80 1C 00 04 */ lwz r0, 4(r28)
/* 801BA8E0 001B7840 80 7C 00 0C */ lwz r3, 0xc(r28)
/* 801BA8E4 001B7844 54 00 18 38 */ slwi r0, r0, 3
/* 801BA8E8 001B7848 7C 03 02 14 */ add r0, r3, r0
/* 801BA8EC 001B784C 7C 1E 00 40 */ cmplw r30, r0
/* 801BA8F0 001B7850 40 82 FF 2C */ bne lbl_801BA81C
/* 801BA8F4 001B7854 80 01 00 34 */ lwz r0, 0x34(r1)
/* 801BA8F8 001B7858 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 801BA8FC 001B785C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 801BA900 001B7860 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 801BA904 001B7864 83 81 00 20 */ lwz r28, 0x20(r1)
/* 801BA908 001B7868 7C 08 03 A6 */ mtlr r0
/* 801BA90C 001B786C 38 21 00 30 */ addi r1, r1, 0x30
/* 801BA910 001B7870 4E 80 00 20 */ blr
.global UnlockTokens__10CGunWeaponFv
UnlockTokens__10CGunWeaponFv:
/* 801BA914 001B7874 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BA918 001B7878 7C 08 02 A6 */ mflr r0
/* 801BA91C 001B787C 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BA920 001B7880 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801BA924 001B7884 7C 7F 1B 78 */ mr r31, r3
/* 801BA928 001B7888 38 7F 01 3C */ addi r3, r31, 0x13c
/* 801BA92C 001B788C 48 18 64 15 */ bl Unlock__6CTokenFv
/* 801BA930 001B7890 38 7F 01 2C */ addi r3, r31, 0x12c
/* 801BA934 001B7894 48 0D 08 41 */ bl "unlock_tokens__12NWeaponTypesFRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>"
/* 801BA938 001B7898 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BA93C 001B789C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801BA940 001B78A0 7C 08 03 A6 */ mtlr r0
/* 801BA944 001B78A4 38 21 00 10 */ addi r1, r1, 0x10
/* 801BA948 001B78A8 4E 80 00 20 */ blr
.global LockTokens__10CGunWeaponFR13CStateManager
LockTokens__10CGunWeaponFR13CStateManager:
/* 801BA94C 001B78AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BA950 001B78B0 7C 08 02 A6 */ mflr r0
/* 801BA954 001B78B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BA958 001B78B8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801BA95C 001B78BC 7C 7F 1B 78 */ mr r31, r3
/* 801BA960 001B78C0 4B FF FB F9 */ bl AsyncLoadSuitArm__10CGunWeaponFR13CStateManager
/* 801BA964 001B78C4 38 7F 01 2C */ addi r3, r31, 0x12c
/* 801BA968 001B78C8 48 0D 08 69 */ bl "lock_tokens__12NWeaponTypesFRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>"
/* 801BA96C 001B78CC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BA970 001B78D0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801BA974 001B78D4 7C 08 03 A6 */ mtlr r0
/* 801BA978 001B78D8 38 21 00 10 */ addi r1, r1, 0x10
/* 801BA97C 001B78DC 4E 80 00 20 */ blr
.global IsAnimsLoaded__10CGunWeaponCFv
IsAnimsLoaded__10CGunWeaponCFv:
/* 801BA980 001B78E0 80 03 01 10 */ lwz r0, 0x110(r3)
/* 801BA984 001B78E4 80 A3 01 18 */ lwz r5, 0x118(r3)
/* 801BA988 001B78E8 54 00 18 38 */ slwi r0, r0, 3
/* 801BA98C 001B78EC 7C 85 02 14 */ add r4, r5, r0
/* 801BA990 001B78F0 48 00 00 20 */ b lbl_801BA9B0
lbl_801BA994:
/* 801BA994 001B78F4 80 65 00 00 */ lwz r3, 0(r5)
/* 801BA998 001B78F8 80 03 00 10 */ lwz r0, 0x10(r3)
/* 801BA99C 001B78FC 28 00 00 00 */ cmplwi r0, 0
/* 801BA9A0 001B7900 40 82 00 0C */ bne lbl_801BA9AC
/* 801BA9A4 001B7904 38 60 00 00 */ li r3, 0
/* 801BA9A8 001B7908 4E 80 00 20 */ blr
lbl_801BA9AC:
/* 801BA9AC 001B790C 38 A5 00 08 */ addi r5, r5, 8
lbl_801BA9B0:
/* 801BA9B0 001B7910 7C 05 20 40 */ cmplw r5, r4
/* 801BA9B4 001B7914 40 82 FF E0 */ bne lbl_801BA994
/* 801BA9B8 001B7918 38 60 00 01 */ li r3, 1
/* 801BA9BC 001B791C 4E 80 00 20 */ blr
.global LoadAnimations__10CGunWeaponFv
LoadAnimations__10CGunWeaponFv:
/* 801BA9C0 001B7920 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BA9C4 001B7924 7C 08 02 A6 */ mflr r0
/* 801BA9C8 001B7928 7C 65 1B 78 */ mr r5, r3
/* 801BA9CC 001B792C 38 80 00 00 */ li r4, 0
/* 801BA9D0 001B7930 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BA9D4 001B7934 38 C5 01 0C */ addi r6, r5, 0x10c
/* 801BA9D8 001B7938 38 A0 00 0F */ li r5, 0xf
/* 801BA9DC 001B793C 38 E0 00 01 */ li r7, 1
/* 801BA9E0 001B7940 80 63 00 20 */ lwz r3, 0x20(r3)
/* 801BA9E4 001B7944 48 0D 08 89 */ bl "get_token_vector__12NWeaponTypesFR9CAnimDataiiRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>b"
/* 801BA9E8 001B7948 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BA9EC 001B794C 7C 08 03 A6 */ mtlr r0
/* 801BA9F0 001B7950 38 21 00 10 */ addi r1, r1, 0x10
/* 801BA9F4 001B7954 4E 80 00 20 */ blr
.global LoadFxIdle__10CGunWeaponFfR13CStateManager
LoadFxIdle__10CGunWeaponFfR13CStateManager:
/* 801BA9F8 001B7958 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 801BA9FC 001B795C 7C 08 02 A6 */ mflr r0
/* 801BAA00 001B7960 90 01 00 34 */ stw r0, 0x34(r1)
/* 801BAA04 001B7964 DB E1 00 28 */ stfd f31, 0x28(r1)
/* 801BAA08 001B7968 FF E0 08 90 */ fmr f31, f1
/* 801BAA0C 001B796C BF 41 00 10 */ stmw r26, 0x10(r1)
/* 801BAA10 001B7970 7C 7A 1B 78 */ mr r26, r3
/* 801BAA14 001B7974 7C 9B 23 78 */ mr r27, r4
/* 801BAA18 001B7978 38 7A 01 2C */ addi r3, r26, 0x12c
/* 801BAA1C 001B797C 48 0D 08 11 */ bl "are_tokens_ready__12NWeaponTypesFRCQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>"
/* 801BAA20 001B7980 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 801BAA24 001B7984 41 82 02 2C */ beq lbl_801BAC50
/* 801BAA28 001B7988 80 7A 02 10 */ lwz r3, 0x210(r26)
/* 801BAA2C 001B798C 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
/* 801BAA30 001B7990 41 82 00 14 */ beq lbl_801BAA44
/* 801BAA34 001B7994 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d
/* 801BAA38 001B7998 41 82 00 0C */ beq lbl_801BAA44
/* 801BAA3C 001B799C 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b
/* 801BAA40 001B79A0 40 82 02 10 */ bne lbl_801BAC50
lbl_801BAA44:
/* 801BAA44 001B79A4 3B FA 01 70 */ addi r31, r26, 0x170
/* 801BAA48 001B79A8 3B DA 01 48 */ addi r30, r26, 0x148
/* 801BAA4C 001B79AC 3B A0 00 01 */ li r29, 1
/* 801BAA50 001B79B0 3B 80 00 00 */ li r28, 0
lbl_801BAA54:
/* 801BAA54 001B79B4 80 1F 00 08 */ lwz r0, 8(r31)
/* 801BAA58 001B79B8 28 00 00 00 */ cmplwi r0, 0
/* 801BAA5C 001B79BC 41 82 00 0C */ beq lbl_801BAA68
/* 801BAA60 001B79C0 38 60 00 01 */ li r3, 1
/* 801BAA64 001B79C4 48 00 00 3C */ b lbl_801BAAA0
lbl_801BAA68:
/* 801BAA68 001B79C8 88 1F 00 04 */ lbz r0, 4(r31)
/* 801BAA6C 001B79CC 28 00 00 00 */ cmplwi r0, 0
/* 801BAA70 001B79D0 41 82 00 2C */ beq lbl_801BAA9C
/* 801BAA74 001B79D4 80 7F 00 00 */ lwz r3, 0(r31)
/* 801BAA78 001B79D8 80 03 00 10 */ lwz r0, 0x10(r3)
/* 801BAA7C 001B79DC 28 00 00 00 */ cmplwi r0, 0
/* 801BAA80 001B79E0 41 82 00 1C */ beq lbl_801BAA9C
/* 801BAA84 001B79E4 7F E3 FB 78 */ mr r3, r31
/* 801BAA88 001B79E8 48 18 63 85 */ bl GetObj__6CTokenFv
/* 801BAA8C 001B79EC 80 03 00 04 */ lwz r0, 4(r3)
/* 801BAA90 001B79F0 38 60 00 01 */ li r3, 1
/* 801BAA94 001B79F4 90 1F 00 08 */ stw r0, 8(r31)
/* 801BAA98 001B79F8 48 00 00 08 */ b lbl_801BAAA0
lbl_801BAA9C:
/* 801BAA9C 001B79FC 38 60 00 00 */ li r3, 0
lbl_801BAAA0:
/* 801BAAA0 001B7A00 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 801BAAA4 001B7A04 40 82 00 0C */ bne lbl_801BAAB0
/* 801BAAA8 001B7A08 3B A0 00 00 */ li r29, 0
/* 801BAAAC 001B7A0C 48 00 00 74 */ b lbl_801BAB20
lbl_801BAAB0:
/* 801BAAB0 001B7A10 80 1E 00 08 */ lwz r0, 8(r30)
/* 801BAAB4 001B7A14 28 00 00 00 */ cmplwi r0, 0
/* 801BAAB8 001B7A18 41 82 00 0C */ beq lbl_801BAAC4
/* 801BAABC 001B7A1C 38 60 00 01 */ li r3, 1
/* 801BAAC0 001B7A20 48 00 00 3C */ b lbl_801BAAFC
lbl_801BAAC4:
/* 801BAAC4 001B7A24 88 1E 00 04 */ lbz r0, 4(r30)
/* 801BAAC8 001B7A28 28 00 00 00 */ cmplwi r0, 0
/* 801BAACC 001B7A2C 41 82 00 2C */ beq lbl_801BAAF8
/* 801BAAD0 001B7A30 80 7E 00 00 */ lwz r3, 0(r30)
/* 801BAAD4 001B7A34 80 03 00 10 */ lwz r0, 0x10(r3)
/* 801BAAD8 001B7A38 28 00 00 00 */ cmplwi r0, 0
/* 801BAADC 001B7A3C 41 82 00 1C */ beq lbl_801BAAF8
/* 801BAAE0 001B7A40 7F C3 F3 78 */ mr r3, r30
/* 801BAAE4 001B7A44 48 18 63 29 */ bl GetObj__6CTokenFv
/* 801BAAE8 001B7A48 80 03 00 04 */ lwz r0, 4(r3)
/* 801BAAEC 001B7A4C 38 60 00 01 */ li r3, 1
/* 801BAAF0 001B7A50 90 1E 00 08 */ stw r0, 8(r30)
/* 801BAAF4 001B7A54 48 00 00 08 */ b lbl_801BAAFC
lbl_801BAAF8:
/* 801BAAF8 001B7A58 38 60 00 00 */ li r3, 0
lbl_801BAAFC:
/* 801BAAFC 001B7A5C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 801BAB00 001B7A60 40 82 00 0C */ bne lbl_801BAB0C
/* 801BAB04 001B7A64 3B A0 00 00 */ li r29, 0
/* 801BAB08 001B7A68 48 00 00 18 */ b lbl_801BAB20
lbl_801BAB0C:
/* 801BAB0C 001B7A6C 3B 9C 00 01 */ addi r28, r28, 1
/* 801BAB10 001B7A70 3B DE 00 0C */ addi r30, r30, 0xc
/* 801BAB14 001B7A74 2C 1C 00 02 */ cmpwi r28, 2
/* 801BAB18 001B7A78 3B FF 00 0C */ addi r31, r31, 0xc
/* 801BAB1C 001B7A7C 41 80 FF 38 */ blt lbl_801BAA54
lbl_801BAB20:
/* 801BAB20 001B7A80 3B C0 00 00 */ li r30, 0
/* 801BAB24 001B7A84 3B 9A 01 8C */ addi r28, r26, 0x18c
lbl_801BAB28:
/* 801BAB28 001B7A88 80 1C 00 08 */ lwz r0, 8(r28)
/* 801BAB2C 001B7A8C 28 00 00 00 */ cmplwi r0, 0
/* 801BAB30 001B7A90 41 82 00 0C */ beq lbl_801BAB3C
/* 801BAB34 001B7A94 38 60 00 01 */ li r3, 1
/* 801BAB38 001B7A98 48 00 00 3C */ b lbl_801BAB74
lbl_801BAB3C:
/* 801BAB3C 001B7A9C 88 1C 00 04 */ lbz r0, 4(r28)
/* 801BAB40 001B7AA0 28 00 00 00 */ cmplwi r0, 0
/* 801BAB44 001B7AA4 41 82 00 2C */ beq lbl_801BAB70
/* 801BAB48 001B7AA8 80 7C 00 00 */ lwz r3, 0(r28)
/* 801BAB4C 001B7AAC 80 03 00 10 */ lwz r0, 0x10(r3)
/* 801BAB50 001B7AB0 28 00 00 00 */ cmplwi r0, 0
/* 801BAB54 001B7AB4 41 82 00 1C */ beq lbl_801BAB70
/* 801BAB58 001B7AB8 7F 83 E3 78 */ mr r3, r28
/* 801BAB5C 001B7ABC 48 18 62 B1 */ bl GetObj__6CTokenFv
/* 801BAB60 001B7AC0 80 03 00 04 */ lwz r0, 4(r3)
/* 801BAB64 001B7AC4 38 60 00 01 */ li r3, 1
/* 801BAB68 001B7AC8 90 1C 00 08 */ stw r0, 8(r28)
/* 801BAB6C 001B7ACC 48 00 00 08 */ b lbl_801BAB74
lbl_801BAB70:
/* 801BAB70 001B7AD0 38 60 00 00 */ li r3, 0
lbl_801BAB74:
/* 801BAB74 001B7AD4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 801BAB78 001B7AD8 40 82 00 0C */ bne lbl_801BAB84
/* 801BAB7C 001B7ADC 3B A0 00 00 */ li r29, 0
/* 801BAB80 001B7AE0 48 00 00 14 */ b lbl_801BAB94
lbl_801BAB84:
/* 801BAB84 001B7AE4 3B DE 00 01 */ addi r30, r30, 1
/* 801BAB88 001B7AE8 3B 9C 00 0C */ addi r28, r28, 0xc
/* 801BAB8C 001B7AEC 2C 1E 00 02 */ cmpwi r30, 2
/* 801BAB90 001B7AF0 41 80 FF 98 */ blt lbl_801BAB28
lbl_801BAB94:
/* 801BAB94 001B7AF4 80 1A 01 68 */ lwz r0, 0x168(r26)
/* 801BAB98 001B7AF8 28 00 00 00 */ cmplwi r0, 0
/* 801BAB9C 001B7AFC 41 82 00 0C */ beq lbl_801BABA8
/* 801BABA0 001B7B00 38 60 00 01 */ li r3, 1
/* 801BABA4 001B7B04 48 00 00 3C */ b lbl_801BABE0
lbl_801BABA8:
/* 801BABA8 001B7B08 88 1A 01 64 */ lbz r0, 0x164(r26)
/* 801BABAC 001B7B0C 28 00 00 00 */ cmplwi r0, 0
/* 801BABB0 001B7B10 41 82 00 2C */ beq lbl_801BABDC
/* 801BABB4 001B7B14 80 7A 01 60 */ lwz r3, 0x160(r26)
/* 801BABB8 001B7B18 80 03 00 10 */ lwz r0, 0x10(r3)
/* 801BABBC 001B7B1C 28 00 00 00 */ cmplwi r0, 0
/* 801BABC0 001B7B20 41 82 00 1C */ beq lbl_801BABDC
/* 801BABC4 001B7B24 38 7A 01 60 */ addi r3, r26, 0x160
/* 801BABC8 001B7B28 48 18 62 45 */ bl GetObj__6CTokenFv
/* 801BABCC 001B7B2C 80 03 00 04 */ lwz r0, 4(r3)
/* 801BABD0 001B7B30 38 60 00 01 */ li r3, 1
/* 801BABD4 001B7B34 90 1A 01 68 */ stw r0, 0x168(r26)
/* 801BABD8 001B7B38 48 00 00 08 */ b lbl_801BABE0
lbl_801BABDC:
/* 801BABDC 001B7B3C 38 60 00 00 */ li r3, 0
lbl_801BABE0:
/* 801BABE0 001B7B40 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 801BABE4 001B7B44 40 82 00 08 */ bne lbl_801BABEC
/* 801BABE8 001B7B48 3B A0 00 00 */ li r29, 0
lbl_801BABEC:
/* 801BABEC 001B7B4C 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 801BABF0 001B7B50 41 82 00 60 */ beq lbl_801BAC50
/* 801BABF4 001B7B54 80 1A 02 10 */ lwz r0, 0x210(r26)
/* 801BABF8 001B7B58 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
/* 801BABFC 001B7B5C 2C 00 00 02 */ cmpwi r0, 2
/* 801BAC00 001B7B60 41 82 00 1C */ beq lbl_801BAC1C
/* 801BAC04 001B7B64 FC 20 F8 90 */ fmr f1, f31
/* 801BAC08 001B7B68 7F 43 D3 78 */ mr r3, r26
/* 801BAC0C 001B7B6C 48 00 1F 3D */ bl LoadMuzzleFx__10CGunWeaponFf
/* 801BAC10 001B7B70 80 1A 02 10 */ lwz r0, 0x210(r26)
/* 801BAC14 001B7B74 60 00 00 02 */ ori r0, r0, 2
/* 801BAC18 001B7B78 90 1A 02 10 */ stw r0, 0x210(r26)
lbl_801BAC1C:
/* 801BAC1C 001B7B7C 80 1A 02 10 */ lwz r0, 0x210(r26)
/* 801BAC20 001B7B80 60 00 00 10 */ ori r0, r0, 0x10
/* 801BAC24 001B7B84 90 1A 02 10 */ stw r0, 0x210(r26)
/* 801BAC28 001B7B88 80 1A 02 10 */ lwz r0, 0x210(r26)
/* 801BAC2C 001B7B8C 54 00 07 7A */ rlwinm r0, r0, 0, 0x1d, 0x1d
/* 801BAC30 001B7B90 2C 00 00 04 */ cmpwi r0, 4
/* 801BAC34 001B7B94 41 82 00 1C */ beq lbl_801BAC50
/* 801BAC38 001B7B98 7F 43 D3 78 */ mr r3, r26
/* 801BAC3C 001B7B9C 7F 64 DB 78 */ mr r4, r27
/* 801BAC40 001B7BA0 48 00 1B 99 */ bl LoadProjectileData__10CGunWeaponFR13CStateManager
/* 801BAC44 001B7BA4 80 1A 02 10 */ lwz r0, 0x210(r26)
/* 801BAC48 001B7BA8 60 00 00 04 */ ori r0, r0, 4
/* 801BAC4C 001B7BAC 90 1A 02 10 */ stw r0, 0x210(r26)
lbl_801BAC50:
/* 801BAC50 001B7BB0 CB E1 00 28 */ lfd f31, 0x28(r1)
/* 801BAC54 001B7BB4 BB 41 00 10 */ lmw r26, 0x10(r1)
/* 801BAC58 001B7BB8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 801BAC5C 001B7BBC 7C 08 03 A6 */ mtlr r0
/* 801BAC60 001B7BC0 38 21 00 30 */ addi r1, r1, 0x30
/* 801BAC64 001B7BC4 4E 80 00 20 */ blr
.global FreeResPools__10CGunWeaponFv
FreeResPools__10CGunWeaponFv:
/* 801BAC68 001B7BC8 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 801BAC6C 001B7BCC 7C 08 02 A6 */ mflr r0
/* 801BAC70 001B7BD0 90 01 00 64 */ stw r0, 0x64(r1)
/* 801BAC74 001B7BD4 38 00 00 00 */ li r0, 0
/* 801BAC78 001B7BD8 BF 61 00 4C */ stmw r27, 0x4c(r1)
/* 801BAC7C 001B7BDC 7C 7F 1B 78 */ mr r31, r3
/* 801BAC80 001B7BE0 90 03 01 68 */ stw r0, 0x168(r3)
/* 801BAC84 001B7BE4 38 7F 01 60 */ addi r3, r31, 0x160
/* 801BAC88 001B7BE8 48 18 60 B9 */ bl Unlock__6CTokenFv
/* 801BAC8C 001B7BEC 3B BF 01 70 */ addi r29, r31, 0x170
/* 801BAC90 001B7BF0 3B 9F 01 48 */ addi r28, r31, 0x148
/* 801BAC94 001B7BF4 3B 60 00 00 */ li r27, 0
/* 801BAC98 001B7BF8 3B C0 00 00 */ li r30, 0
lbl_801BAC9C:
/* 801BAC9C 001B7BFC 93 DD 00 08 */ stw r30, 8(r29)
/* 801BACA0 001B7C00 7F A3 EB 78 */ mr r3, r29
/* 801BACA4 001B7C04 48 18 60 9D */ bl Unlock__6CTokenFv
/* 801BACA8 001B7C08 93 DC 00 08 */ stw r30, 8(r28)
/* 801BACAC 001B7C0C 7F 83 E3 78 */ mr r3, r28
/* 801BACB0 001B7C10 48 18 60 91 */ bl Unlock__6CTokenFv
/* 801BACB4 001B7C14 3B 7B 00 01 */ addi r27, r27, 1
/* 801BACB8 001B7C18 3B 9C 00 0C */ addi r28, r28, 0xc
/* 801BACBC 001B7C1C 2C 1B 00 02 */ cmpwi r27, 2
/* 801BACC0 001B7C20 3B BD 00 0C */ addi r29, r29, 0xc
/* 801BACC4 001B7C24 41 80 FF D8 */ blt lbl_801BAC9C
/* 801BACC8 001B7C28 3B 9F 01 8C */ addi r28, r31, 0x18c
/* 801BACCC 001B7C2C 3B 60 00 00 */ li r27, 0
/* 801BACD0 001B7C30 3B C0 00 00 */ li r30, 0
lbl_801BACD4:
/* 801BACD4 001B7C34 93 DC 00 08 */ stw r30, 8(r28)
/* 801BACD8 001B7C38 7F 83 E3 78 */ mr r3, r28
/* 801BACDC 001B7C3C 48 18 60 65 */ bl Unlock__6CTokenFv
/* 801BACE0 001B7C40 3B 7B 00 01 */ addi r27, r27, 1
/* 801BACE4 001B7C44 3B 9C 00 0C */ addi r28, r28, 0xc
/* 801BACE8 001B7C48 2C 1B 00 02 */ cmpwi r27, 2
/* 801BACEC 001B7C4C 41 80 FF E8 */ blt lbl_801BACD4
/* 801BACF0 001B7C50 38 00 00 00 */ li r0, 0
/* 801BACF4 001B7C54 38 7F 01 0C */ addi r3, r31, 0x10c
/* 801BACF8 001B7C58 90 01 00 1C */ stw r0, 0x1c(r1)
/* 801BACFC 001B7C5C 38 81 00 18 */ addi r4, r1, 0x18
/* 801BAD00 001B7C60 90 01 00 20 */ stw r0, 0x20(r1)
/* 801BAD04 001B7C64 90 01 00 24 */ stw r0, 0x24(r1)
/* 801BAD08 001B7C68 4B E4 BA FD */ bl sub_80006804
/* 801BAD0C 001B7C6C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 801BAD10 001B7C70 83 81 00 24 */ lwz r28, 0x24(r1)
/* 801BAD14 001B7C74 54 00 18 38 */ slwi r0, r0, 3
/* 801BAD18 001B7C78 7F DC 02 14 */ add r30, r28, r0
/* 801BAD1C 001B7C7C 93 81 00 0C */ stw r28, 0xc(r1)
/* 801BAD20 001B7C80 93 C1 00 14 */ stw r30, 0x14(r1)
/* 801BAD24 001B7C84 93 C1 00 10 */ stw r30, 0x10(r1)
/* 801BAD28 001B7C88 93 81 00 08 */ stw r28, 8(r1)
/* 801BAD2C 001B7C8C 48 00 00 14 */ b lbl_801BAD40
lbl_801BAD30:
/* 801BAD30 001B7C90 7F 83 E3 78 */ mr r3, r28
/* 801BAD34 001B7C94 38 80 FF FF */ li r4, -1
/* 801BAD38 001B7C98 48 18 61 09 */ bl __dt__6CTokenFv
/* 801BAD3C 001B7C9C 3B 9C 00 08 */ addi r28, r28, 8
lbl_801BAD40:
/* 801BAD40 001B7CA0 7C 1C F0 40 */ cmplw r28, r30
/* 801BAD44 001B7CA4 40 82 FF EC */ bne lbl_801BAD30
/* 801BAD48 001B7CA8 80 61 00 24 */ lwz r3, 0x24(r1)
/* 801BAD4C 001B7CAC 28 03 00 00 */ cmplwi r3, 0
/* 801BAD50 001B7CB0 41 82 00 08 */ beq lbl_801BAD58
/* 801BAD54 001B7CB4 48 15 AB DD */ bl Free__7CMemoryFPCv
lbl_801BAD58:
/* 801BAD58 001B7CB8 38 7F 01 A4 */ addi r3, r31, 0x1a4
/* 801BAD5C 001B7CBC 38 01 00 28 */ addi r0, r1, 0x28
/* 801BAD60 001B7CC0 3B C0 00 00 */ li r30, 0
/* 801BAD64 001B7CC4 7C 03 00 40 */ cmplw r3, r0
/* 801BAD68 001B7CC8 93 C1 00 28 */ stw r30, 0x28(r1)
/* 801BAD6C 001B7CCC 41 82 00 A8 */ beq lbl_801BAE14
/* 801BAD70 001B7CD0 3B BF 01 A8 */ addi r29, r31, 0x1a8
/* 801BAD74 001B7CD4 7F BC EB 78 */ mr r28, r29
/* 801BAD78 001B7CD8 48 00 00 40 */ b lbl_801BADB8
lbl_801BAD7C:
/* 801BAD7C 001B7CDC 28 1C 00 00 */ cmplwi r28, 0
/* 801BAD80 001B7CE0 41 82 00 30 */ beq lbl_801BADB0
/* 801BAD84 001B7CE4 88 1C 00 00 */ lbz r0, 0(r28)
/* 801BAD88 001B7CE8 28 00 00 00 */ cmplwi r0, 0
/* 801BAD8C 001B7CEC 41 82 00 24 */ beq lbl_801BADB0
/* 801BAD90 001B7CF0 80 7C 00 04 */ lwz r3, 4(r28)
/* 801BAD94 001B7CF4 28 03 00 00 */ cmplwi r3, 0
/* 801BAD98 001B7CF8 41 82 00 18 */ beq lbl_801BADB0
/* 801BAD9C 001B7CFC 81 83 00 00 */ lwz r12, 0(r3)
/* 801BADA0 001B7D00 38 80 00 01 */ li r4, 1
/* 801BADA4 001B7D04 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BADA8 001B7D08 7D 89 03 A6 */ mtctr r12
/* 801BADAC 001B7D0C 4E 80 04 21 */ bctrl
lbl_801BADB0:
/* 801BADB0 001B7D10 3B 9C 00 08 */ addi r28, r28, 8
/* 801BADB4 001B7D14 3B DE 00 01 */ addi r30, r30, 1
lbl_801BADB8:
/* 801BADB8 001B7D18 80 1F 01 A4 */ lwz r0, 0x1a4(r31)
/* 801BADBC 001B7D1C 7C 1E 00 00 */ cmpw r30, r0
/* 801BADC0 001B7D20 41 80 FF BC */ blt lbl_801BAD7C
/* 801BADC4 001B7D24 38 60 00 00 */ li r3, 0
/* 801BADC8 001B7D28 38 A1 00 2C */ addi r5, r1, 0x2c
/* 801BADCC 001B7D2C 90 7F 01 A4 */ stw r3, 0x1a4(r31)
/* 801BADD0 001B7D30 80 01 00 28 */ lwz r0, 0x28(r1)
/* 801BADD4 001B7D34 54 00 18 38 */ slwi r0, r0, 3
/* 801BADD8 001B7D38 7C 85 02 14 */ add r4, r5, r0
/* 801BADDC 001B7D3C 48 00 00 28 */ b lbl_801BAE04
lbl_801BADE0:
/* 801BADE0 001B7D40 28 1D 00 00 */ cmplwi r29, 0
/* 801BADE4 001B7D44 41 82 00 18 */ beq lbl_801BADFC
/* 801BADE8 001B7D48 88 05 00 00 */ lbz r0, 0(r5)
/* 801BADEC 001B7D4C 98 1D 00 00 */ stb r0, 0(r29)
/* 801BADF0 001B7D50 80 05 00 04 */ lwz r0, 4(r5)
/* 801BADF4 001B7D54 90 1D 00 04 */ stw r0, 4(r29)
/* 801BADF8 001B7D58 98 65 00 00 */ stb r3, 0(r5)
lbl_801BADFC:
/* 801BADFC 001B7D5C 3B BD 00 08 */ addi r29, r29, 8
/* 801BAE00 001B7D60 38 A5 00 08 */ addi r5, r5, 8
lbl_801BAE04:
/* 801BAE04 001B7D64 7C 05 20 40 */ cmplw r5, r4
/* 801BAE08 001B7D68 40 82 FF D8 */ bne lbl_801BADE0
/* 801BAE0C 001B7D6C 80 01 00 28 */ lwz r0, 0x28(r1)
/* 801BAE10 001B7D70 90 1F 01 A4 */ stw r0, 0x1a4(r31)
lbl_801BAE14:
/* 801BAE14 001B7D74 3B 81 00 2C */ addi r28, r1, 0x2c
/* 801BAE18 001B7D78 3B C0 00 00 */ li r30, 0
/* 801BAE1C 001B7D7C 48 00 00 40 */ b lbl_801BAE5C
lbl_801BAE20:
/* 801BAE20 001B7D80 28 1C 00 00 */ cmplwi r28, 0
/* 801BAE24 001B7D84 41 82 00 30 */ beq lbl_801BAE54
/* 801BAE28 001B7D88 88 1C 00 00 */ lbz r0, 0(r28)
/* 801BAE2C 001B7D8C 28 00 00 00 */ cmplwi r0, 0
/* 801BAE30 001B7D90 41 82 00 24 */ beq lbl_801BAE54
/* 801BAE34 001B7D94 80 7C 00 04 */ lwz r3, 4(r28)
/* 801BAE38 001B7D98 28 03 00 00 */ cmplwi r3, 0
/* 801BAE3C 001B7D9C 41 82 00 18 */ beq lbl_801BAE54
/* 801BAE40 001B7DA0 81 83 00 00 */ lwz r12, 0(r3)
/* 801BAE44 001B7DA4 38 80 00 01 */ li r4, 1
/* 801BAE48 001B7DA8 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BAE4C 001B7DAC 7D 89 03 A6 */ mtctr r12
/* 801BAE50 001B7DB0 4E 80 04 21 */ bctrl
lbl_801BAE54:
/* 801BAE54 001B7DB4 3B 9C 00 08 */ addi r28, r28, 8
/* 801BAE58 001B7DB8 3B DE 00 01 */ addi r30, r30, 1
lbl_801BAE5C:
/* 801BAE5C 001B7DBC 80 01 00 28 */ lwz r0, 0x28(r1)
/* 801BAE60 001B7DC0 7C 1E 00 00 */ cmpw r30, r0
/* 801BAE64 001B7DC4 41 80 FF BC */ blt lbl_801BAE20
/* 801BAE68 001B7DC8 38 00 00 00 */ li r0, 0
/* 801BAE6C 001B7DCC 38 7F 01 D0 */ addi r3, r31, 0x1d0
/* 801BAE70 001B7DD0 90 01 00 28 */ stw r0, 0x28(r1)
/* 801BAE74 001B7DD4 48 00 00 19 */ bl Clear__13CVelocityInfoFv
/* 801BAE78 001B7DD8 BB 61 00 4C */ lmw r27, 0x4c(r1)
/* 801BAE7C 001B7DDC 80 01 00 64 */ lwz r0, 0x64(r1)
/* 801BAE80 001B7DE0 7C 08 03 A6 */ mtlr r0
/* 801BAE84 001B7DE4 38 21 00 60 */ addi r1, r1, 0x60
/* 801BAE88 001B7DE8 4E 80 00 20 */ blr
.global Clear__13CVelocityInfoFv
Clear__13CVelocityInfoFv:
/* 801BAE8C 001B7DEC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 801BAE90 001B7DF0 38 80 00 00 */ li r4, 0
/* 801BAE94 001B7DF4 38 01 00 1C */ addi r0, r1, 0x1c
/* 801BAE98 001B7DF8 90 81 00 1C */ stw r4, 0x1c(r1)
/* 801BAE9C 001B7DFC 7C 03 00 40 */ cmplw r3, r0
/* 801BAEA0 001B7E00 41 82 00 A4 */ beq lbl_801BAF44
/* 801BAEA4 001B7E04 80 C3 00 00 */ lwz r6, 0(r3)
/* 801BAEA8 001B7E08 2C 06 00 00 */ cmpwi r6, 0
/* 801BAEAC 001B7E0C 40 81 00 40 */ ble lbl_801BAEEC
/* 801BAEB0 001B7E10 2C 06 00 08 */ cmpwi r6, 8
/* 801BAEB4 001B7E14 38 A6 FF F8 */ addi r5, r6, -8
/* 801BAEB8 001B7E18 40 81 00 20 */ ble lbl_801BAED8
/* 801BAEBC 001B7E1C 38 05 00 07 */ addi r0, r5, 7
/* 801BAEC0 001B7E20 54 00 E8 FE */ srwi r0, r0, 3
/* 801BAEC4 001B7E24 7C 09 03 A6 */ mtctr r0
/* 801BAEC8 001B7E28 2C 05 00 00 */ cmpwi r5, 0
/* 801BAECC 001B7E2C 40 81 00 0C */ ble lbl_801BAED8
lbl_801BAED0:
/* 801BAED0 001B7E30 38 84 00 08 */ addi r4, r4, 8
/* 801BAED4 001B7E34 42 00 FF FC */ bdnz lbl_801BAED0
lbl_801BAED8:
/* 801BAED8 001B7E38 7C 04 30 50 */ subf r0, r4, r6
/* 801BAEDC 001B7E3C 7C 09 03 A6 */ mtctr r0
/* 801BAEE0 001B7E40 7C 04 30 00 */ cmpw r4, r6
/* 801BAEE4 001B7E44 40 80 00 08 */ bge lbl_801BAEEC
lbl_801BAEE8:
/* 801BAEE8 001B7E48 42 00 00 00 */ bdnz lbl_801BAEE8
lbl_801BAEEC:
/* 801BAEEC 001B7E4C 38 00 00 00 */ li r0, 0
/* 801BAEF0 001B7E50 38 A1 00 20 */ addi r5, r1, 0x20
/* 801BAEF4 001B7E54 90 03 00 00 */ stw r0, 0(r3)
/* 801BAEF8 001B7E58 38 83 00 04 */ addi r4, r3, 4
/* 801BAEFC 001B7E5C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 801BAF00 001B7E60 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801BAF04 001B7E64 7C 05 02 14 */ add r0, r5, r0
/* 801BAF08 001B7E68 48 00 00 2C */ b lbl_801BAF34
lbl_801BAF0C:
/* 801BAF0C 001B7E6C 28 04 00 00 */ cmplwi r4, 0
/* 801BAF10 001B7E70 41 82 00 1C */ beq lbl_801BAF2C
/* 801BAF14 001B7E74 C0 05 00 00 */ lfs f0, 0(r5)
/* 801BAF18 001B7E78 D0 04 00 00 */ stfs f0, 0(r4)
/* 801BAF1C 001B7E7C C0 05 00 04 */ lfs f0, 4(r5)
/* 801BAF20 001B7E80 D0 04 00 04 */ stfs f0, 4(r4)
/* 801BAF24 001B7E84 C0 05 00 08 */ lfs f0, 8(r5)
/* 801BAF28 001B7E88 D0 04 00 08 */ stfs f0, 8(r4)
lbl_801BAF2C:
/* 801BAF2C 001B7E8C 38 84 00 0C */ addi r4, r4, 0xc
/* 801BAF30 001B7E90 38 A5 00 0C */ addi r5, r5, 0xc
lbl_801BAF34:
/* 801BAF34 001B7E94 7C 05 00 40 */ cmplw r5, r0
/* 801BAF38 001B7E98 40 82 FF D4 */ bne lbl_801BAF0C
/* 801BAF3C 001B7E9C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 801BAF40 001B7EA0 90 03 00 00 */ stw r0, 0(r3)
lbl_801BAF44:
/* 801BAF44 001B7EA4 80 C1 00 1C */ lwz r6, 0x1c(r1)
/* 801BAF48 001B7EA8 38 80 00 00 */ li r4, 0
/* 801BAF4C 001B7EAC 2C 06 00 00 */ cmpwi r6, 0
/* 801BAF50 001B7EB0 40 81 00 40 */ ble lbl_801BAF90
/* 801BAF54 001B7EB4 2C 06 00 08 */ cmpwi r6, 8
/* 801BAF58 001B7EB8 38 A6 FF F8 */ addi r5, r6, -8
/* 801BAF5C 001B7EBC 40 81 00 20 */ ble lbl_801BAF7C
/* 801BAF60 001B7EC0 38 05 00 07 */ addi r0, r5, 7
/* 801BAF64 001B7EC4 54 00 E8 FE */ srwi r0, r0, 3
/* 801BAF68 001B7EC8 7C 09 03 A6 */ mtctr r0
/* 801BAF6C 001B7ECC 2C 05 00 00 */ cmpwi r5, 0
/* 801BAF70 001B7ED0 40 81 00 0C */ ble lbl_801BAF7C
lbl_801BAF74:
/* 801BAF74 001B7ED4 38 84 00 08 */ addi r4, r4, 8
/* 801BAF78 001B7ED8 42 00 FF FC */ bdnz lbl_801BAF74
lbl_801BAF7C:
/* 801BAF7C 001B7EDC 7C 04 30 50 */ subf r0, r4, r6
/* 801BAF80 001B7EE0 7C 09 03 A6 */ mtctr r0
/* 801BAF84 001B7EE4 7C 04 30 00 */ cmpw r4, r6
/* 801BAF88 001B7EE8 40 80 00 08 */ bge lbl_801BAF90
lbl_801BAF8C:
/* 801BAF8C 001B7EEC 42 00 00 00 */ bdnz lbl_801BAF8C
lbl_801BAF90:
/* 801BAF90 001B7EF0 38 83 00 1C */ addi r4, r3, 0x1c
/* 801BAF94 001B7EF4 38 01 00 08 */ addi r0, r1, 8
/* 801BAF98 001B7EF8 38 A0 00 00 */ li r5, 0
/* 801BAF9C 001B7EFC 7C 04 00 40 */ cmplw r4, r0
/* 801BAFA0 001B7F00 90 A1 00 1C */ stw r5, 0x1c(r1)
/* 801BAFA4 001B7F04 90 A1 00 08 */ stw r5, 8(r1)
/* 801BAFA8 001B7F08 41 82 00 98 */ beq lbl_801BB040
/* 801BAFAC 001B7F0C 80 C3 00 1C */ lwz r6, 0x1c(r3)
/* 801BAFB0 001B7F10 38 E3 00 20 */ addi r7, r3, 0x20
/* 801BAFB4 001B7F14 2C 06 00 00 */ cmpwi r6, 0
/* 801BAFB8 001B7F18 40 81 00 40 */ ble lbl_801BAFF8
/* 801BAFBC 001B7F1C 2C 06 00 08 */ cmpwi r6, 8
/* 801BAFC0 001B7F20 38 86 FF F8 */ addi r4, r6, -8
/* 801BAFC4 001B7F24 40 81 00 20 */ ble lbl_801BAFE4
/* 801BAFC8 001B7F28 38 04 00 07 */ addi r0, r4, 7
/* 801BAFCC 001B7F2C 54 00 E8 FE */ srwi r0, r0, 3
/* 801BAFD0 001B7F30 7C 09 03 A6 */ mtctr r0
/* 801BAFD4 001B7F34 2C 04 00 00 */ cmpwi r4, 0
/* 801BAFD8 001B7F38 40 81 00 0C */ ble lbl_801BAFE4
lbl_801BAFDC:
/* 801BAFDC 001B7F3C 38 A5 00 08 */ addi r5, r5, 8
/* 801BAFE0 001B7F40 42 00 FF FC */ bdnz lbl_801BAFDC
lbl_801BAFE4:
/* 801BAFE4 001B7F44 7C 05 30 50 */ subf r0, r5, r6
/* 801BAFE8 001B7F48 7C 09 03 A6 */ mtctr r0
/* 801BAFEC 001B7F4C 7C 05 30 00 */ cmpw r5, r6
/* 801BAFF0 001B7F50 40 80 00 08 */ bge lbl_801BAFF8
lbl_801BAFF4:
/* 801BAFF4 001B7F54 42 00 00 00 */ bdnz lbl_801BAFF4
lbl_801BAFF8:
/* 801BAFF8 001B7F58 38 00 00 00 */ li r0, 0
/* 801BAFFC 001B7F5C 38 A1 00 0C */ addi r5, r1, 0xc
/* 801BB000 001B7F60 90 03 00 1C */ stw r0, 0x1c(r3)
/* 801BB004 001B7F64 80 01 00 08 */ lwz r0, 8(r1)
/* 801BB008 001B7F68 7C 85 02 14 */ add r4, r5, r0
/* 801BB00C 001B7F6C 7C 05 20 50 */ subf r0, r5, r4
/* 801BB010 001B7F70 7C 09 03 A6 */ mtctr r0
/* 801BB014 001B7F74 7C 05 20 40 */ cmplw r5, r4
/* 801BB018 001B7F78 41 82 00 20 */ beq lbl_801BB038
lbl_801BB01C:
/* 801BB01C 001B7F7C 28 07 00 00 */ cmplwi r7, 0
/* 801BB020 001B7F80 41 82 00 0C */ beq lbl_801BB02C
/* 801BB024 001B7F84 88 05 00 00 */ lbz r0, 0(r5)
/* 801BB028 001B7F88 98 07 00 00 */ stb r0, 0(r7)
lbl_801BB02C:
/* 801BB02C 001B7F8C 38 E7 00 01 */ addi r7, r7, 1
/* 801BB030 001B7F90 38 A5 00 01 */ addi r5, r5, 1
/* 801BB034 001B7F94 42 00 FF E8 */ bdnz lbl_801BB01C
lbl_801BB038:
/* 801BB038 001B7F98 80 01 00 08 */ lwz r0, 8(r1)
/* 801BB03C 001B7F9C 90 03 00 1C */ stw r0, 0x1c(r3)
lbl_801BB040:
/* 801BB040 001B7FA0 80 C1 00 08 */ lwz r6, 8(r1)
/* 801BB044 001B7FA4 38 80 00 00 */ li r4, 0
/* 801BB048 001B7FA8 2C 06 00 00 */ cmpwi r6, 0
/* 801BB04C 001B7FAC 40 81 00 40 */ ble lbl_801BB08C
/* 801BB050 001B7FB0 2C 06 00 08 */ cmpwi r6, 8
/* 801BB054 001B7FB4 38 A6 FF F8 */ addi r5, r6, -8
/* 801BB058 001B7FB8 40 81 00 20 */ ble lbl_801BB078
/* 801BB05C 001B7FBC 38 05 00 07 */ addi r0, r5, 7
/* 801BB060 001B7FC0 54 00 E8 FE */ srwi r0, r0, 3
/* 801BB064 001B7FC4 7C 09 03 A6 */ mtctr r0
/* 801BB068 001B7FC8 2C 05 00 00 */ cmpwi r5, 0
/* 801BB06C 001B7FCC 40 81 00 0C */ ble lbl_801BB078
lbl_801BB070:
/* 801BB070 001B7FD0 38 84 00 08 */ addi r4, r4, 8
/* 801BB074 001B7FD4 42 00 FF FC */ bdnz lbl_801BB070
lbl_801BB078:
/* 801BB078 001B7FD8 7C 04 30 50 */ subf r0, r4, r6
/* 801BB07C 001B7FDC 7C 09 03 A6 */ mtctr r0
/* 801BB080 001B7FE0 7C 04 30 00 */ cmpw r4, r6
/* 801BB084 001B7FE4 40 80 00 08 */ bge lbl_801BB08C
lbl_801BB088:
/* 801BB088 001B7FE8 42 00 00 00 */ bdnz lbl_801BB088
lbl_801BB08C:
/* 801BB08C 001B7FEC 38 83 00 24 */ addi r4, r3, 0x24
/* 801BB090 001B7FF0 38 01 00 10 */ addi r0, r1, 0x10
/* 801BB094 001B7FF4 38 A0 00 00 */ li r5, 0
/* 801BB098 001B7FF8 7C 04 00 40 */ cmplw r4, r0
/* 801BB09C 001B7FFC 90 A1 00 08 */ stw r5, 8(r1)
/* 801BB0A0 001B8000 90 A1 00 10 */ stw r5, 0x10(r1)
/* 801BB0A4 001B8004 41 82 00 94 */ beq lbl_801BB138
/* 801BB0A8 001B8008 80 C3 00 24 */ lwz r6, 0x24(r3)
/* 801BB0AC 001B800C 38 E3 00 28 */ addi r7, r3, 0x28
/* 801BB0B0 001B8010 2C 06 00 00 */ cmpwi r6, 0
/* 801BB0B4 001B8014 40 81 00 40 */ ble lbl_801BB0F4
/* 801BB0B8 001B8018 2C 06 00 08 */ cmpwi r6, 8
/* 801BB0BC 001B801C 38 86 FF F8 */ addi r4, r6, -8
/* 801BB0C0 001B8020 40 81 00 20 */ ble lbl_801BB0E0
/* 801BB0C4 001B8024 38 04 00 07 */ addi r0, r4, 7
/* 801BB0C8 001B8028 54 00 E8 FE */ srwi r0, r0, 3
/* 801BB0CC 001B802C 7C 09 03 A6 */ mtctr r0
/* 801BB0D0 001B8030 2C 04 00 00 */ cmpwi r4, 0
/* 801BB0D4 001B8034 40 81 00 0C */ ble lbl_801BB0E0
lbl_801BB0D8:
/* 801BB0D8 001B8038 38 A5 00 08 */ addi r5, r5, 8
/* 801BB0DC 001B803C 42 00 FF FC */ bdnz lbl_801BB0D8
lbl_801BB0E0:
/* 801BB0E0 001B8040 7C 05 30 50 */ subf r0, r5, r6
/* 801BB0E4 001B8044 7C 09 03 A6 */ mtctr r0
/* 801BB0E8 001B8048 7C 05 30 00 */ cmpw r5, r6
/* 801BB0EC 001B804C 40 80 00 08 */ bge lbl_801BB0F4
lbl_801BB0F0:
/* 801BB0F0 001B8050 42 00 00 00 */ bdnz lbl_801BB0F0
lbl_801BB0F4:
/* 801BB0F4 001B8054 38 00 00 00 */ li r0, 0
/* 801BB0F8 001B8058 38 81 00 14 */ addi r4, r1, 0x14
/* 801BB0FC 001B805C 90 03 00 24 */ stw r0, 0x24(r3)
/* 801BB100 001B8060 80 01 00 10 */ lwz r0, 0x10(r1)
/* 801BB104 001B8064 54 00 10 3A */ slwi r0, r0, 2
/* 801BB108 001B8068 7C 04 02 14 */ add r0, r4, r0
/* 801BB10C 001B806C 48 00 00 1C */ b lbl_801BB128
lbl_801BB110:
/* 801BB110 001B8070 28 07 00 00 */ cmplwi r7, 0
/* 801BB114 001B8074 41 82 00 0C */ beq lbl_801BB120
/* 801BB118 001B8078 C0 04 00 00 */ lfs f0, 0(r4)
/* 801BB11C 001B807C D0 07 00 00 */ stfs f0, 0(r7)
lbl_801BB120:
/* 801BB120 001B8080 38 E7 00 04 */ addi r7, r7, 4
/* 801BB124 001B8084 38 84 00 04 */ addi r4, r4, 4
lbl_801BB128:
/* 801BB128 001B8088 7C 04 00 40 */ cmplw r4, r0
/* 801BB12C 001B808C 40 82 FF E4 */ bne lbl_801BB110
/* 801BB130 001B8090 80 01 00 10 */ lwz r0, 0x10(r1)
/* 801BB134 001B8094 90 03 00 24 */ stw r0, 0x24(r3)
lbl_801BB138:
/* 801BB138 001B8098 80 A1 00 10 */ lwz r5, 0x10(r1)
/* 801BB13C 001B809C 38 60 00 00 */ li r3, 0
/* 801BB140 001B80A0 2C 05 00 00 */ cmpwi r5, 0
/* 801BB144 001B80A4 40 81 00 40 */ ble lbl_801BB184
/* 801BB148 001B80A8 2C 05 00 08 */ cmpwi r5, 8
/* 801BB14C 001B80AC 38 85 FF F8 */ addi r4, r5, -8
/* 801BB150 001B80B0 40 81 00 20 */ ble lbl_801BB170
/* 801BB154 001B80B4 38 04 00 07 */ addi r0, r4, 7
/* 801BB158 001B80B8 54 00 E8 FE */ srwi r0, r0, 3
/* 801BB15C 001B80BC 7C 09 03 A6 */ mtctr r0
/* 801BB160 001B80C0 2C 04 00 00 */ cmpwi r4, 0
/* 801BB164 001B80C4 40 81 00 0C */ ble lbl_801BB170
lbl_801BB168:
/* 801BB168 001B80C8 38 63 00 08 */ addi r3, r3, 8
/* 801BB16C 001B80CC 42 00 FF FC */ bdnz lbl_801BB168
lbl_801BB170:
/* 801BB170 001B80D0 7C 03 28 50 */ subf r0, r3, r5
/* 801BB174 001B80D4 7C 09 03 A6 */ mtctr r0
/* 801BB178 001B80D8 7C 03 28 00 */ cmpw r3, r5
/* 801BB17C 001B80DC 40 80 00 08 */ bge lbl_801BB184
lbl_801BB180:
/* 801BB180 001B80E0 42 00 00 00 */ bdnz lbl_801BB180
lbl_801BB184:
/* 801BB184 001B80E4 38 00 00 00 */ li r0, 0
/* 801BB188 001B80E8 90 01 00 10 */ stw r0, 0x10(r1)
/* 801BB18C 001B80EC 38 21 00 40 */ addi r1, r1, 0x40
/* 801BB190 001B80F0 4E 80 00 20 */ blr
.global AllocResPools__10CGunWeaponFQ212CPlayerState7EBeamId
AllocResPools__10CGunWeaponFQ212CPlayerState7EBeamId:
/* 801BB194 001B80F4 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 801BB198 001B80F8 7C 08 02 A6 */ mflr r0
/* 801BB19C 001B80FC 90 01 00 84 */ stw r0, 0x84(r1)
/* 801BB1A0 001B8100 BE C1 00 58 */ stmw r22, 0x58(r1)
/* 801BB1A4 001B8104 7C 78 1B 78 */ mr r24, r3
/* 801BB1A8 001B8108 7C 96 23 78 */ mr r22, r4
/* 801BB1AC 001B810C 80 6D A1 48 */ lwz r3, gpTweakGunRes@sda21(r13)
/* 801BB1B0 001B8110 4B F0 07 A9 */ bl GetWeaponResourcePair__12CTweakGunResCFi
/* 801BB1B4 001B8114 3C A0 80 3D */ lis r5, lbl_803D1750@ha
/* 801BB1B8 001B8118 3C 80 57 50 */ lis r4, 0x57505343@ha
/* 801BB1BC 001B811C 56 DA 18 38 */ slwi r26, r22, 3
/* 801BB1C0 001B8120 7C 7F 1B 78 */ mr r31, r3
/* 801BB1C4 001B8124 38 05 17 50 */ addi r0, r5, lbl_803D1750@l
/* 801BB1C8 001B8128 3B 98 01 70 */ addi r28, r24, 0x170
/* 801BB1CC 001B812C 7F C0 D2 14 */ add r30, r0, r26
/* 801BB1D0 001B8130 3B 78 01 48 */ addi r27, r24, 0x148
/* 801BB1D4 001B8134 3A E4 53 43 */ addi r23, r4, 0x57505343@l
/* 801BB1D8 001B8138 3B 20 00 00 */ li r25, 0
/* 801BB1DC 001B813C 3B A0 00 00 */ li r29, 0
lbl_801BB1E0:
/* 801BB1E0 001B8140 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 801BB1E4 001B8144 38 61 00 20 */ addi r3, r1, 0x20
/* 801BB1E8 001B8148 80 BE 00 00 */ lwz r5, 0(r30)
/* 801BB1EC 001B814C 81 84 00 00 */ lwz r12, 0(r4)
/* 801BB1F0 001B8150 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 801BB1F4 001B8154 7D 89 03 A6 */ mtctr r12
/* 801BB1F8 001B8158 4E 80 04 21 */ bctrl
/* 801BB1FC 001B815C 38 61 00 40 */ addi r3, r1, 0x40
/* 801BB200 001B8160 38 81 00 20 */ addi r4, r1, 0x20
/* 801BB204 001B8164 48 18 5C A5 */ bl __ct__6CTokenFRC6CToken
/* 801BB208 001B8168 38 00 00 00 */ li r0, 0
/* 801BB20C 001B816C 90 01 00 48 */ stw r0, 0x48(r1)
/* 801BB210 001B8170 80 18 01 6C */ lwz r0, 0x16c(r24)
/* 801BB214 001B8174 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801BB218 001B8178 7E DC 02 15 */ add. r22, r28, r0
/* 801BB21C 001B817C 41 82 00 18 */ beq lbl_801BB234
/* 801BB220 001B8180 7E C3 B3 78 */ mr r3, r22
/* 801BB224 001B8184 38 81 00 40 */ addi r4, r1, 0x40
/* 801BB228 001B8188 48 18 5C 81 */ bl __ct__6CTokenFRC6CToken
/* 801BB22C 001B818C 80 01 00 48 */ lwz r0, 0x48(r1)
/* 801BB230 001B8190 90 16 00 08 */ stw r0, 8(r22)
lbl_801BB234:
/* 801BB234 001B8194 80 B8 01 6C */ lwz r5, 0x16c(r24)
/* 801BB238 001B8198 38 61 00 40 */ addi r3, r1, 0x40
/* 801BB23C 001B819C 38 80 00 00 */ li r4, 0
/* 801BB240 001B81A0 38 05 00 01 */ addi r0, r5, 1
/* 801BB244 001B81A4 90 18 01 6C */ stw r0, 0x16c(r24)
/* 801BB248 001B81A8 48 18 5B F9 */ bl __dt__6CTokenFv
/* 801BB24C 001B81AC 38 61 00 20 */ addi r3, r1, 0x20
/* 801BB250 001B81B0 38 80 FF FF */ li r4, -1
/* 801BB254 001B81B4 48 18 5B ED */ bl __dt__6CTokenFv
/* 801BB258 001B81B8 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 801BB25C 001B81BC 38 61 00 10 */ addi r3, r1, 0x10
/* 801BB260 001B81C0 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 801BB264 001B81C4 38 A1 00 18 */ addi r5, r1, 0x18
/* 801BB268 001B81C8 7C 06 E8 2E */ lwzx r0, r6, r29
/* 801BB26C 001B81CC 92 E1 00 18 */ stw r23, 0x18(r1)
/* 801BB270 001B81D0 90 01 00 1C */ stw r0, 0x1c(r1)
/* 801BB274 001B81D4 81 84 00 00 */ lwz r12, 0(r4)
/* 801BB278 001B81D8 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 801BB27C 001B81DC 7D 89 03 A6 */ mtctr r12
/* 801BB280 001B81E0 4E 80 04 21 */ bctrl
/* 801BB284 001B81E4 38 61 00 34 */ addi r3, r1, 0x34
/* 801BB288 001B81E8 38 81 00 10 */ addi r4, r1, 0x10
/* 801BB28C 001B81EC 48 18 5C 1D */ bl __ct__6CTokenFRC6CToken
/* 801BB290 001B81F0 38 00 00 00 */ li r0, 0
/* 801BB294 001B81F4 90 01 00 3C */ stw r0, 0x3c(r1)
/* 801BB298 001B81F8 80 18 01 44 */ lwz r0, 0x144(r24)
/* 801BB29C 001B81FC 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801BB2A0 001B8200 7E DB 02 15 */ add. r22, r27, r0
/* 801BB2A4 001B8204 41 82 00 18 */ beq lbl_801BB2BC
/* 801BB2A8 001B8208 7E C3 B3 78 */ mr r3, r22
/* 801BB2AC 001B820C 38 81 00 34 */ addi r4, r1, 0x34
/* 801BB2B0 001B8210 48 18 5B F9 */ bl __ct__6CTokenFRC6CToken
/* 801BB2B4 001B8214 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 801BB2B8 001B8218 90 16 00 08 */ stw r0, 8(r22)
lbl_801BB2BC:
/* 801BB2BC 001B821C 80 B8 01 44 */ lwz r5, 0x144(r24)
/* 801BB2C0 001B8220 38 61 00 34 */ addi r3, r1, 0x34
/* 801BB2C4 001B8224 38 80 00 00 */ li r4, 0
/* 801BB2C8 001B8228 38 05 00 01 */ addi r0, r5, 1
/* 801BB2CC 001B822C 90 18 01 44 */ stw r0, 0x144(r24)
/* 801BB2D0 001B8230 48 18 5B 71 */ bl __dt__6CTokenFv
/* 801BB2D4 001B8234 38 61 00 10 */ addi r3, r1, 0x10
/* 801BB2D8 001B8238 38 80 FF FF */ li r4, -1
/* 801BB2DC 001B823C 48 18 5B 65 */ bl __dt__6CTokenFv
/* 801BB2E0 001B8240 3B 39 00 01 */ addi r25, r25, 1
/* 801BB2E4 001B8244 3B BD 00 04 */ addi r29, r29, 4
/* 801BB2E8 001B8248 2C 19 00 02 */ cmpwi r25, 2
/* 801BB2EC 001B824C 3B DE 00 04 */ addi r30, r30, 4
/* 801BB2F0 001B8250 41 80 FE F0 */ blt lbl_801BB1E0
/* 801BB2F4 001B8254 3C 60 80 3D */ lis r3, lbl_803D1778@ha
/* 801BB2F8 001B8258 3B 38 01 8C */ addi r25, r24, 0x18c
/* 801BB2FC 001B825C 38 03 17 78 */ addi r0, r3, lbl_803D1778@l
/* 801BB300 001B8260 3B 60 00 00 */ li r27, 0
/* 801BB304 001B8264 7E E0 D2 14 */ add r23, r0, r26
lbl_801BB308:
/* 801BB308 001B8268 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 801BB30C 001B826C 38 61 00 08 */ addi r3, r1, 8
/* 801BB310 001B8270 80 B7 00 00 */ lwz r5, 0(r23)
/* 801BB314 001B8274 81 84 00 00 */ lwz r12, 0(r4)
/* 801BB318 001B8278 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 801BB31C 001B827C 7D 89 03 A6 */ mtctr r12
/* 801BB320 001B8280 4E 80 04 21 */ bctrl
/* 801BB324 001B8284 38 61 00 28 */ addi r3, r1, 0x28
/* 801BB328 001B8288 38 81 00 08 */ addi r4, r1, 8
/* 801BB32C 001B828C 48 18 5B 7D */ bl __ct__6CTokenFRC6CToken
/* 801BB330 001B8290 38 00 00 00 */ li r0, 0
/* 801BB334 001B8294 90 01 00 30 */ stw r0, 0x30(r1)
/* 801BB338 001B8298 80 18 01 88 */ lwz r0, 0x188(r24)
/* 801BB33C 001B829C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801BB340 001B82A0 7E D9 02 15 */ add. r22, r25, r0
/* 801BB344 001B82A4 41 82 00 18 */ beq lbl_801BB35C
/* 801BB348 001B82A8 7E C3 B3 78 */ mr r3, r22
/* 801BB34C 001B82AC 38 81 00 28 */ addi r4, r1, 0x28
/* 801BB350 001B82B0 48 18 5B 59 */ bl __ct__6CTokenFRC6CToken
/* 801BB354 001B82B4 80 01 00 30 */ lwz r0, 0x30(r1)
/* 801BB358 001B82B8 90 16 00 08 */ stw r0, 8(r22)
lbl_801BB35C:
/* 801BB35C 001B82BC 80 B8 01 88 */ lwz r5, 0x188(r24)
/* 801BB360 001B82C0 38 61 00 28 */ addi r3, r1, 0x28
/* 801BB364 001B82C4 38 80 00 00 */ li r4, 0
/* 801BB368 001B82C8 38 05 00 01 */ addi r0, r5, 1
/* 801BB36C 001B82CC 90 18 01 88 */ stw r0, 0x188(r24)
/* 801BB370 001B82D0 48 18 5A D1 */ bl __dt__6CTokenFv
/* 801BB374 001B82D4 38 61 00 08 */ addi r3, r1, 8
/* 801BB378 001B82D8 38 80 FF FF */ li r4, -1
/* 801BB37C 001B82DC 48 18 5A C5 */ bl __dt__6CTokenFv
/* 801BB380 001B82E0 3B 7B 00 01 */ addi r27, r27, 1
/* 801BB384 001B82E4 3A F7 00 04 */ addi r23, r23, 4
/* 801BB388 001B82E8 2C 1B 00 02 */ cmpwi r27, 2
/* 801BB38C 001B82EC 41 80 FF 7C */ blt lbl_801BB308
/* 801BB390 001B82F0 BA C1 00 58 */ lmw r22, 0x58(r1)
/* 801BB394 001B82F4 80 01 00 84 */ lwz r0, 0x84(r1)
/* 801BB398 001B82F8 7C 08 03 A6 */ mtlr r0
/* 801BB39C 001B82FC 38 21 00 80 */ addi r1, r1, 0x80
/* 801BB3A0 001B8300 4E 80 00 20 */ blr
.global IsLoaded__10CGunWeaponCFv
IsLoaded__10CGunWeaponCFv:
/* 801BB3A4 001B8304 88 03 02 18 */ lbz r0, 0x218(r3)
/* 801BB3A8 001B8308 54 03 DF FE */ rlwinm r3, r0, 0x1b, 0x1f, 0x1f
/* 801BB3AC 001B830C 4E 80 00 20 */ blr
.global Unload__10CGunWeaponFR13CStateManager
Unload__10CGunWeaponFR13CStateManager:
/* 801BB3B0 001B8310 94 21 FF 00 */ stwu r1, -0x100(r1)
/* 801BB3B4 001B8314 7C 08 02 A6 */ mflr r0
/* 801BB3B8 001B8318 90 01 01 04 */ stw r0, 0x104(r1)
/* 801BB3BC 001B831C 93 E1 00 FC */ stw r31, 0xfc(r1)
/* 801BB3C0 001B8320 7C 7F 1B 78 */ mr r31, r3
/* 801BB3C4 001B8324 4B FF F5 51 */ bl UnlockTokens__10CGunWeaponFv
/* 801BB3C8 001B8328 38 00 00 00 */ li r0, 0
/* 801BB3CC 001B832C 38 7F 00 10 */ addi r3, r31, 0x10
/* 801BB3D0 001B8330 90 1F 02 10 */ stw r0, 0x210(r31)
/* 801BB3D4 001B8334 38 81 00 A8 */ addi r4, r1, 0xa8
/* 801BB3D8 001B8338 90 1F 02 04 */ stw r0, 0x204(r31)
/* 801BB3DC 001B833C 98 01 00 F4 */ stb r0, 0xf4(r1)
/* 801BB3E0 001B8340 4B F6 29 6D */ bl sub_8011dd4c
/* 801BB3E4 001B8344 88 01 00 F4 */ lbz r0, 0xf4(r1)
/* 801BB3E8 001B8348 28 00 00 00 */ cmplwi r0, 0
/* 801BB3EC 001B834C 41 82 00 10 */ beq lbl_801BB3FC
/* 801BB3F0 001B8350 38 61 00 A8 */ addi r3, r1, 0xa8
/* 801BB3F4 001B8354 38 80 FF FF */ li r4, -1
/* 801BB3F8 001B8358 4B F5 B6 55 */ bl __dt__10CModelDataFv
lbl_801BB3FC:
/* 801BB3FC 001B835C 38 00 00 00 */ li r0, 0
/* 801BB400 001B8360 38 7F 00 60 */ addi r3, r31, 0x60
/* 801BB404 001B8364 98 01 00 F4 */ stb r0, 0xf4(r1)
/* 801BB408 001B8368 38 81 00 58 */ addi r4, r1, 0x58
/* 801BB40C 001B836C 98 01 00 A4 */ stb r0, 0xa4(r1)
/* 801BB410 001B8370 4B F6 29 3D */ bl sub_8011dd4c
/* 801BB414 001B8374 88 01 00 A4 */ lbz r0, 0xa4(r1)
/* 801BB418 001B8378 28 00 00 00 */ cmplwi r0, 0
/* 801BB41C 001B837C 41 82 00 10 */ beq lbl_801BB42C
/* 801BB420 001B8380 38 61 00 58 */ addi r3, r1, 0x58
/* 801BB424 001B8384 38 80 FF FF */ li r4, -1
/* 801BB428 001B8388 4B F5 B6 25 */ bl __dt__10CModelDataFv
lbl_801BB42C:
/* 801BB42C 001B838C 38 00 00 00 */ li r0, 0
/* 801BB430 001B8390 38 7F 00 B0 */ addi r3, r31, 0xb0
/* 801BB434 001B8394 98 01 00 A4 */ stb r0, 0xa4(r1)
/* 801BB438 001B8398 38 81 00 08 */ addi r4, r1, 8
/* 801BB43C 001B839C 98 01 00 54 */ stb r0, 0x54(r1)
/* 801BB440 001B83A0 4B F6 29 0D */ bl sub_8011dd4c
/* 801BB444 001B83A4 88 01 00 54 */ lbz r0, 0x54(r1)
/* 801BB448 001B83A8 28 00 00 00 */ cmplwi r0, 0
/* 801BB44C 001B83AC 41 82 00 10 */ beq lbl_801BB45C
/* 801BB450 001B83B0 38 61 00 08 */ addi r3, r1, 8
/* 801BB454 001B83B4 38 80 FF FF */ li r4, -1
/* 801BB458 001B83B8 4B F5 B5 F5 */ bl __dt__10CModelDataFv
lbl_801BB45C:
/* 801BB45C 001B83BC 38 00 00 00 */ li r0, 0
/* 801BB460 001B83C0 38 7F 01 00 */ addi r3, r31, 0x100
/* 801BB464 001B83C4 98 01 00 54 */ stb r0, 0x54(r1)
/* 801BB468 001B83C8 38 80 00 00 */ li r4, 0
/* 801BB46C 001B83CC 4B F6 26 69 */ bl "__as__Q24rstl28single_ptr<14CGunController>FRC14CGunController"
/* 801BB470 001B83D0 38 00 00 00 */ li r0, 0
/* 801BB474 001B83D4 90 1F 01 BC */ stw r0, 0x1bc(r31)
/* 801BB478 001B83D8 80 7F 01 B8 */ lwz r3, 0x1b8(r31)
/* 801BB47C 001B83DC 28 03 00 00 */ cmplwi r3, 0
/* 801BB480 001B83E0 41 82 00 18 */ beq lbl_801BB498
/* 801BB484 001B83E4 81 83 00 00 */ lwz r12, 0(r3)
/* 801BB488 001B83E8 38 80 00 01 */ li r4, 1
/* 801BB48C 001B83EC 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BB490 001B83F0 7D 89 03 A6 */ mtctr r12
/* 801BB494 001B83F4 4E 80 04 21 */ bctrl
lbl_801BB498:
/* 801BB498 001B83F8 38 00 00 00 */ li r0, 0
/* 801BB49C 001B83FC 7F E3 FB 78 */ mr r3, r31
/* 801BB4A0 001B8400 90 1F 01 B8 */ stw r0, 0x1b8(r31)
/* 801BB4A4 001B8404 4B FF F7 C5 */ bl FreeResPools__10CGunWeaponFv
/* 801BB4A8 001B8408 38 7F 01 04 */ addi r3, r31, 0x104
/* 801BB4AC 001B840C 48 18 58 95 */ bl Unlock__6CTokenFv
/* 801BB4B0 001B8410 88 1F 02 18 */ lbz r0, 0x218(r31)
/* 801BB4B4 001B8414 38 60 00 00 */ li r3, 0
/* 801BB4B8 001B8418 50 60 2E B4 */ rlwimi r0, r3, 5, 0x1a, 0x1a
/* 801BB4BC 001B841C 98 1F 02 18 */ stb r0, 0x218(r31)
/* 801BB4C0 001B8420 83 E1 00 FC */ lwz r31, 0xfc(r1)
/* 801BB4C4 001B8424 80 01 01 04 */ lwz r0, 0x104(r1)
/* 801BB4C8 001B8428 7C 08 03 A6 */ mtlr r0
/* 801BB4CC 001B842C 38 21 01 00 */ addi r1, r1, 0x100
/* 801BB4D0 001B8430 4E 80 00 20 */ blr
.global Load__10CGunWeaponFR13CStateManagerb
Load__10CGunWeaponFR13CStateManagerb:
/* 801BB4D4 001B8434 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801BB4D8 001B8438 7C 08 02 A6 */ mflr r0
/* 801BB4DC 001B843C 90 01 00 24 */ stw r0, 0x24(r1)
/* 801BB4E0 001B8440 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 801BB4E4 001B8444 93 C1 00 18 */ stw r30, 0x18(r1)
/* 801BB4E8 001B8448 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801BB4EC 001B844C 7C BD 2B 78 */ mr r29, r5
/* 801BB4F0 001B8450 93 81 00 10 */ stw r28, 0x10(r1)
/* 801BB4F4 001B8454 7C 7C 1B 78 */ mr r28, r3
/* 801BB4F8 001B8458 4B FF F4 55 */ bl LockTokens__10CGunWeaponFR13CStateManager
/* 801BB4FC 001B845C 88 7C 02 18 */ lbz r3, 0x218(r28)
/* 801BB500 001B8460 53 A3 26 F6 */ rlwimi r3, r29, 4, 0x1b, 0x1b
/* 801BB504 001B8464 38 00 00 00 */ li r0, 0
/* 801BB508 001B8468 98 7C 02 18 */ stb r3, 0x218(r28)
/* 801BB50C 001B846C 90 1C 02 04 */ stw r0, 0x204(r28)
/* 801BB510 001B8470 80 7C 01 B8 */ lwz r3, 0x1b8(r28)
/* 801BB514 001B8474 28 03 00 00 */ cmplwi r3, 0
/* 801BB518 001B8478 41 82 00 18 */ beq lbl_801BB530
/* 801BB51C 001B847C 81 83 00 00 */ lwz r12, 0(r3)
/* 801BB520 001B8480 38 80 00 01 */ li r4, 1
/* 801BB524 001B8484 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BB528 001B8488 7D 89 03 A6 */ mtctr r12
/* 801BB52C 001B848C 4E 80 04 21 */ bctrl
lbl_801BB530:
/* 801BB530 001B8490 38 00 00 00 */ li r0, 0
/* 801BB534 001B8494 38 7C 01 04 */ addi r3, r28, 0x104
/* 801BB538 001B8498 90 1C 01 B8 */ stw r0, 0x1b8(r28)
/* 801BB53C 001B849C 48 18 58 49 */ bl Lock__6CTokenFv
/* 801BB540 001B84A0 38 7C 01 60 */ addi r3, r28, 0x160
/* 801BB544 001B84A4 48 18 58 41 */ bl Lock__6CTokenFv
/* 801BB548 001B84A8 3B FC 01 70 */ addi r31, r28, 0x170
/* 801BB54C 001B84AC 3B DC 01 48 */ addi r30, r28, 0x148
/* 801BB550 001B84B0 3B A0 00 00 */ li r29, 0
lbl_801BB554:
/* 801BB554 001B84B4 7F E3 FB 78 */ mr r3, r31
/* 801BB558 001B84B8 48 18 58 2D */ bl Lock__6CTokenFv
/* 801BB55C 001B84BC 7F C3 F3 78 */ mr r3, r30
/* 801BB560 001B84C0 48 18 58 25 */ bl Lock__6CTokenFv
/* 801BB564 001B84C4 3B BD 00 01 */ addi r29, r29, 1
/* 801BB568 001B84C8 3B DE 00 0C */ addi r30, r30, 0xc
/* 801BB56C 001B84CC 2C 1D 00 02 */ cmpwi r29, 2
/* 801BB570 001B84D0 3B FF 00 0C */ addi r31, r31, 0xc
/* 801BB574 001B84D4 41 80 FF E0 */ blt lbl_801BB554
/* 801BB578 001B84D8 3B A0 00 00 */ li r29, 0
/* 801BB57C 001B84DC 3B DC 01 8C */ addi r30, r28, 0x18c
lbl_801BB580:
/* 801BB580 001B84E0 7F C3 F3 78 */ mr r3, r30
/* 801BB584 001B84E4 48 18 58 01 */ bl Lock__6CTokenFv
/* 801BB588 001B84E8 3B BD 00 01 */ addi r29, r29, 1
/* 801BB58C 001B84EC 3B DE 00 0C */ addi r30, r30, 0xc
/* 801BB590 001B84F0 2C 1D 00 02 */ cmpwi r29, 2
/* 801BB594 001B84F4 41 80 FF EC */ blt lbl_801BB580
/* 801BB598 001B84F8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 801BB59C 001B84FC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 801BB5A0 001B8500 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 801BB5A4 001B8504 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 801BB5A8 001B8508 83 81 00 10 */ lwz r28, 0x10(r1)
/* 801BB5AC 001B850C 7C 08 03 A6 */ mtlr r0
/* 801BB5B0 001B8510 38 21 00 20 */ addi r1, r1, 0x20
/* 801BB5B4 001B8514 4E 80 00 20 */ blr
.global TouchHolo__10CGunWeaponFRC13CStateManager
TouchHolo__10CGunWeaponFRC13CStateManager:
/* 801BB5B8 001B8518 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BB5BC 001B851C 7C 08 02 A6 */ mflr r0
/* 801BB5C0 001B8520 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BB5C4 001B8524 88 03 00 AC */ lbz r0, 0xac(r3)
/* 801BB5C8 001B8528 28 00 00 00 */ cmplwi r0, 0
/* 801BB5CC 001B852C 41 82 00 10 */ beq lbl_801BB5DC
/* 801BB5D0 001B8530 38 63 00 60 */ addi r3, r3, 0x60
/* 801BB5D4 001B8534 38 A0 00 00 */ li r5, 0
/* 801BB5D8 001B8538 4B F5 A7 39 */ bl Touch__10CModelDataCFRC13CStateManageri
lbl_801BB5DC:
/* 801BB5DC 001B853C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BB5E0 001B8540 7C 08 03 A6 */ mtlr r0
/* 801BB5E4 001B8544 38 21 00 10 */ addi r1, r1, 0x10
/* 801BB5E8 001B8548 4E 80 00 20 */ blr
.global Touch__10CGunWeaponFRC13CStateManager
Touch__10CGunWeaponFRC13CStateManager:
/* 801BB5EC 001B854C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BB5F0 001B8550 7C 08 02 A6 */ mflr r0
/* 801BB5F4 001B8554 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BB5F8 001B8558 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801BB5FC 001B855C 7C 9F 23 78 */ mr r31, r4
/* 801BB600 001B8560 93 C1 00 08 */ stw r30, 8(r1)
/* 801BB604 001B8564 7C 7E 1B 78 */ mr r30, r3
/* 801BB608 001B8568 88 03 00 5C */ lbz r0, 0x5c(r3)
/* 801BB60C 001B856C 28 00 00 00 */ cmplwi r0, 0
/* 801BB610 001B8570 41 82 00 2C */ beq lbl_801BB63C
/* 801BB614 001B8574 80 BE 02 0C */ lwz r5, 0x20c(r30)
/* 801BB618 001B8578 38 7E 00 10 */ addi r3, r30, 0x10
/* 801BB61C 001B857C 4B F5 A6 F5 */ bl Touch__10CModelDataCFRC13CStateManageri
/* 801BB620 001B8580 88 1E 00 FC */ lbz r0, 0xfc(r30)
/* 801BB624 001B8584 28 00 00 00 */ cmplwi r0, 0
/* 801BB628 001B8588 41 82 00 14 */ beq lbl_801BB63C
/* 801BB62C 001B858C 7F E4 FB 78 */ mr r4, r31
/* 801BB630 001B8590 38 7E 00 B0 */ addi r3, r30, 0xb0
/* 801BB634 001B8594 38 A0 00 00 */ li r5, 0
/* 801BB638 001B8598 4B F5 A6 D9 */ bl Touch__10CModelDataCFRC13CStateManageri
lbl_801BB63C:
/* 801BB63C 001B859C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BB640 001B85A0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801BB644 001B85A4 83 C1 00 08 */ lwz r30, 8(r1)
/* 801BB648 001B85A8 7C 08 03 A6 */ mtlr r0
/* 801BB64C 001B85AC 38 21 00 10 */ addi r1, r1, 0x10
/* 801BB650 001B85B0 4E 80 00 20 */ blr
.global GetBounds__10CGunWeaponCFRC12CTransform4f
GetBounds__10CGunWeaponCFRC12CTransform4f:
/* 801BB654 001B85B4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BB658 001B85B8 7C 08 02 A6 */ mflr r0
/* 801BB65C 001B85BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BB660 001B85C0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801BB664 001B85C4 7C 7F 1B 78 */ mr r31, r3
/* 801BB668 001B85C8 88 04 00 5C */ lbz r0, 0x5c(r4)
/* 801BB66C 001B85CC 28 00 00 00 */ cmplwi r0, 0
/* 801BB670 001B85D0 41 82 00 10 */ beq lbl_801BB680
/* 801BB674 001B85D4 38 84 00 10 */ addi r4, r4, 0x10
/* 801BB678 001B85D8 4B F5 A1 3D */ bl GetBounds__10CModelDataCFRC12CTransform4f
/* 801BB67C 001B85DC 48 00 00 38 */ b lbl_801BB6B4
lbl_801BB680:
/* 801BB680 001B85E0 3C 60 80 5A */ lis r3, lbl_805A6784@ha
/* 801BB684 001B85E4 C4 03 67 84 */ lfsu f0, lbl_805A6784@l(r3)
/* 801BB688 001B85E8 D0 1F 00 00 */ stfs f0, 0(r31)
/* 801BB68C 001B85EC C0 03 00 04 */ lfs f0, 4(r3)
/* 801BB690 001B85F0 D0 1F 00 04 */ stfs f0, 4(r31)
/* 801BB694 001B85F4 C0 03 00 08 */ lfs f0, 8(r3)
/* 801BB698 001B85F8 D0 1F 00 08 */ stfs f0, 8(r31)
/* 801BB69C 001B85FC C0 03 00 0C */ lfs f0, 0xc(r3)
/* 801BB6A0 001B8600 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 801BB6A4 001B8604 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 801BB6A8 001B8608 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 801BB6AC 001B860C C0 03 00 14 */ lfs f0, 0x14(r3)
/* 801BB6B0 001B8610 D0 1F 00 14 */ stfs f0, 0x14(r31)
lbl_801BB6B4:
/* 801BB6B4 001B8614 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BB6B8 001B8618 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801BB6BC 001B861C 7C 08 03 A6 */ mtlr r0
/* 801BB6C0 001B8620 38 21 00 10 */ addi r1, r1, 0x10
/* 801BB6C4 001B8624 4E 80 00 20 */ blr
.global GetBounds__10CGunWeaponCFv
GetBounds__10CGunWeaponCFv:
/* 801BB6C8 001B8628 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BB6CC 001B862C 7C 08 02 A6 */ mflr r0
/* 801BB6D0 001B8630 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BB6D4 001B8634 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801BB6D8 001B8638 7C 7F 1B 78 */ mr r31, r3
/* 801BB6DC 001B863C 88 04 00 5C */ lbz r0, 0x5c(r4)
/* 801BB6E0 001B8640 28 00 00 00 */ cmplwi r0, 0
/* 801BB6E4 001B8644 41 82 00 10 */ beq lbl_801BB6F4
/* 801BB6E8 001B8648 38 84 00 10 */ addi r4, r4, 0x10
/* 801BB6EC 001B864C 4B F5 9E D9 */ bl GetBounds__10CModelDataCFv
/* 801BB6F0 001B8650 48 00 00 38 */ b lbl_801BB728
lbl_801BB6F4:
/* 801BB6F4 001B8654 3C 60 80 5A */ lis r3, lbl_805A6784@ha
/* 801BB6F8 001B8658 C4 03 67 84 */ lfsu f0, lbl_805A6784@l(r3)
/* 801BB6FC 001B865C D0 1F 00 00 */ stfs f0, 0(r31)
/* 801BB700 001B8660 C0 03 00 04 */ lfs f0, 4(r3)
/* 801BB704 001B8664 D0 1F 00 04 */ stfs f0, 4(r31)
/* 801BB708 001B8668 C0 03 00 08 */ lfs f0, 8(r3)
/* 801BB70C 001B866C D0 1F 00 08 */ stfs f0, 8(r31)
/* 801BB710 001B8670 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 801BB714 001B8674 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 801BB718 001B8678 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 801BB71C 001B867C D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 801BB720 001B8680 C0 03 00 14 */ lfs f0, 0x14(r3)
/* 801BB724 001B8684 D0 1F 00 14 */ stfs f0, 0x14(r31)
lbl_801BB728:
/* 801BB728 001B8688 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BB72C 001B868C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801BB730 001B8690 7C 08 03 A6 */ mtlr r0
/* 801BB734 001B8694 38 21 00 10 */ addi r1, r1, 0x10
/* 801BB738 001B8698 4E 80 00 20 */ blr
.global GetDamageInfo__10CGunWeaponFR13CStateManagerQ212CPlayerState12EChargeStagef
GetDamageInfo__10CGunWeaponFR13CStateManagerQ212CPlayerState12EChargeStagef:
/* 801BB73C 001B869C 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 801BB740 001B86A0 7C 08 02 A6 */ mflr r0
/* 801BB744 001B86A4 90 01 00 54 */ stw r0, 0x54(r1)
/* 801BB748 001B86A8 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 801BB74C 001B86AC F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0
/* 801BB750 001B86B0 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 801BB754 001B86B4 93 C1 00 38 */ stw r30, 0x38(r1)
/* 801BB758 001B86B8 93 A1 00 34 */ stw r29, 0x34(r1)
/* 801BB75C 001B86BC FF E0 08 90 */ fmr f31, f1
/* 801BB760 001B86C0 7C 7D 1B 78 */ mr r29, r3
/* 801BB764 001B86C4 7C BE 2B 78 */ mr r30, r5
/* 801BB768 001B86C8 7C DF 33 78 */ mr r31, r6
/* 801BB76C 001B86CC 7C 83 23 78 */ mr r3, r4
/* 801BB770 001B86D0 48 00 15 25 */ bl GetWeaponInfo__10CGunWeaponCFv
/* 801BB774 001B86D4 2C 1F 00 00 */ cmpwi r31, 0
/* 801BB778 001B86D8 7C 67 1B 78 */ mr r7, r3
/* 801BB77C 001B86DC 40 82 00 18 */ bne lbl_801BB794
/* 801BB780 001B86E0 7F A3 EB 78 */ mr r3, r29
/* 801BB784 001B86E4 7F C5 F3 78 */ mr r5, r30
/* 801BB788 001B86E8 38 87 00 04 */ addi r4, r7, 4
/* 801BB78C 001B86EC 48 0C F2 99 */ bl GetShotDamageInfo__10CGunWeaponCFRC10SShotParamR13CStateManager
/* 801BB790 001B86F0 48 00 00 68 */ b lbl_801BB7F8
lbl_801BB794:
/* 801BB794 001B86F4 C0 47 00 34 */ lfs f2, 0x34(r7)
/* 801BB798 001B86F8 38 80 00 00 */ li r4, 0
/* 801BB79C 001B86FC C0 27 00 30 */ lfs f1, 0x30(r7)
/* 801BB7A0 001B8700 7F A3 EB 78 */ mr r3, r29
/* 801BB7A4 001B8704 C0 07 00 28 */ lfs f0, 0x28(r7)
/* 801BB7A8 001B8708 EC 5F 00 B2 */ fmuls f2, f31, f2
/* 801BB7AC 001B870C 80 A7 00 20 */ lwz r5, 0x20(r7)
/* 801BB7B0 001B8710 EC 3F 00 72 */ fmuls f1, f31, f1
/* 801BB7B4 001B8714 88 01 00 20 */ lbz r0, 0x20(r1)
/* 801BB7B8 001B8718 EC 1F 00 32 */ fmuls f0, f31, f0
/* 801BB7BC 001B871C 90 A1 00 08 */ stw r5, 8(r1)
/* 801BB7C0 001B8720 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 801BB7C4 001B8724 7F C5 F3 78 */ mr r5, r30
/* 801BB7C8 001B8728 88 C7 00 24 */ lbz r6, 0x24(r7)
/* 801BB7CC 001B872C 38 81 00 08 */ addi r4, r1, 8
/* 801BB7D0 001B8730 98 C1 00 0C */ stb r6, 0xc(r1)
/* 801BB7D4 001B8734 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 801BB7D8 001B8738 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 801BB7DC 001B873C D0 21 00 18 */ stfs f1, 0x18(r1)
/* 801BB7E0 001B8740 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 801BB7E4 001B8744 98 01 00 20 */ stb r0, 0x20(r1)
/* 801BB7E8 001B8748 C0 07 00 2C */ lfs f0, 0x2c(r7)
/* 801BB7EC 001B874C EC 1F 00 32 */ fmuls f0, f31, f0
/* 801BB7F0 001B8750 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 801BB7F4 001B8754 48 0C F2 31 */ bl GetShotDamageInfo__10CGunWeaponCFRC10SShotParamR13CStateManager
lbl_801BB7F8:
/* 801BB7F8 001B8758 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0
/* 801BB7FC 001B875C 80 01 00 54 */ lwz r0, 0x54(r1)
/* 801BB800 001B8760 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 801BB804 001B8764 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 801BB808 001B8768 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 801BB80C 001B876C 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 801BB810 001B8770 7C 08 03 A6 */ mtlr r0
/* 801BB814 001B8774 38 21 00 50 */ addi r1, r1, 0x50
/* 801BB818 001B8778 4E 80 00 20 */ blr
.global EnterFidget__10CGunWeaponFR13CStateManagerQ28SamusGun11EFidgetTypei
EnterFidget__10CGunWeaponFR13CStateManagerQ28SamusGun11EFidgetTypei:
/* 801BB81C 001B877C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BB820 001B8780 7C 08 02 A6 */ mflr r0
/* 801BB824 001B8784 7C 68 1B 78 */ mr r8, r3
/* 801BB828 001B8788 7C C7 33 78 */ mr r7, r6
/* 801BB82C 001B878C 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BB830 001B8790 80 63 01 00 */ lwz r3, 0x100(r3)
/* 801BB834 001B8794 80 C8 02 00 */ lwz r6, 0x200(r8)
/* 801BB838 001B8798 48 01 12 C9 */ bl EnterFidget__14CGunControllerFR13CStateManageriii
/* 801BB83C 001B879C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BB840 001B87A0 7C 08 03 A6 */ mtlr r0
/* 801BB844 001B87A4 38 21 00 10 */ addi r1, r1, 0x10
/* 801BB848 001B87A8 4E 80 00 20 */ blr
.global ComboFireOver__10CGunWeaponCFv
ComboFireOver__10CGunWeaponCFv:
/* 801BB84C 001B87AC 80 63 01 00 */ lwz r3, 0x100(r3)
/* 801BB850 001B87B0 88 03 00 2C */ lbz r0, 0x2c(r3)
/* 801BB854 001B87B4 54 03 CF FE */ rlwinm r3, r0, 0x19, 0x1f, 0x1f
/* 801BB858 001B87B8 4E 80 00 20 */ blr
.global ReturnToDefault__10CGunWeaponFR13CStateManager
ReturnToDefault__10CGunWeaponFR13CStateManager:
/* 801BB85C 001B87BC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BB860 001B87C0 7C 08 02 A6 */ mflr r0
/* 801BB864 001B87C4 C0 22 A9 DC */ lfs f1, lbl_805AC6FC@sda21(r2)
/* 801BB868 001B87C8 38 A0 00 00 */ li r5, 0
/* 801BB86C 001B87CC 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BB870 001B87D0 80 63 01 00 */ lwz r3, 0x100(r3)
/* 801BB874 001B87D4 48 01 0A 85 */ bl ReturnToDefault__14CGunControllerFR13CStateManagerf
/* 801BB878 001B87D8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BB87C 001B87DC 7C 08 03 A6 */ mtlr r0
/* 801BB880 001B87E0 38 21 00 10 */ addi r1, r1, 0x10
/* 801BB884 001B87E4 4E 80 00 20 */ blr
.global Fire__10CGunWeaponFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId
Fire__10CGunWeaponFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId:
/* 801BB888 001B87E8 94 21 FE E0 */ stwu r1, -0x120(r1)
/* 801BB88C 001B87EC 7C 08 02 A6 */ mflr r0
/* 801BB890 001B87F0 90 01 01 24 */ stw r0, 0x124(r1)
/* 801BB894 001B87F4 DB E1 01 10 */ stfd f31, 0x110(r1)
/* 801BB898 001B87F8 F3 E1 01 18 */ psq_st f31, 280(r1), 0, qr0
/* 801BB89C 001B87FC DB C1 01 00 */ stfd f30, 0x100(r1)
/* 801BB8A0 001B8800 F3 C1 01 08 */ psq_st f30, 264(r1), 0, qr0
/* 801BB8A4 001B8804 DB A1 00 F0 */ stfd f29, 0xf0(r1)
/* 801BB8A8 001B8808 F3 A1 00 F8 */ psq_st f29, 248(r1), 0, qr0
/* 801BB8AC 001B880C BE C1 00 C8 */ stmw r22, 0xc8(r1)
/* 801BB8B0 001B8810 FF A0 10 90 */ fmr f29, f2
/* 801BB8B4 001B8814 7C 77 1B 78 */ mr r23, r3
/* 801BB8B8 001B8818 FF E0 08 90 */ fmr f31, f1
/* 801BB8BC 001B881C 7C 98 23 78 */ mr r24, r4
/* 801BB8C0 001B8820 FF C0 18 90 */ fmr f30, f3
/* 801BB8C4 001B8824 7C B9 2B 78 */ mr r25, r5
/* 801BB8C8 001B8828 7C FB 3B 78 */ mr r27, r7
/* 801BB8CC 001B882C FC 20 E8 90 */ fmr f1, f29
/* 801BB8D0 001B8830 7C DA 33 78 */ mr r26, r6
/* 801BB8D4 001B8834 7D 1C 43 78 */ mr r28, r8
/* 801BB8D8 001B8838 7E E4 BB 78 */ mr r4, r23
/* 801BB8DC 001B883C 7F 65 DB 78 */ mr r5, r27
/* 801BB8E0 001B8840 7F 26 CB 78 */ mr r6, r25
/* 801BB8E4 001B8844 38 61 00 64 */ addi r3, r1, 0x64
/* 801BB8E8 001B8848 4B FF FE 55 */ bl GetDamageInfo__10CGunWeaponFR13CStateManagerQ212CPlayerState12EChargeStagef
/* 801BB8EC 001B884C 80 81 00 64 */ lwz r4, 0x64(r1)
/* 801BB8F0 001B8850 2C 19 00 00 */ cmpwi r25, 0
/* 801BB8F4 001B8854 88 61 00 68 */ lbz r3, 0x68(r1)
/* 801BB8F8 001B8858 C0 61 00 6C */ lfs f3, 0x6c(r1)
/* 801BB8FC 001B885C C0 41 00 70 */ lfs f2, 0x70(r1)
/* 801BB900 001B8860 C0 21 00 74 */ lfs f1, 0x74(r1)
/* 801BB904 001B8864 C0 01 00 78 */ lfs f0, 0x78(r1)
/* 801BB908 001B8868 88 01 00 7C */ lbz r0, 0x7c(r1)
/* 801BB90C 001B886C 90 81 00 80 */ stw r4, 0x80(r1)
/* 801BB910 001B8870 98 61 00 84 */ stb r3, 0x84(r1)
/* 801BB914 001B8874 D0 61 00 88 */ stfs f3, 0x88(r1)
/* 801BB918 001B8878 D0 41 00 8C */ stfs f2, 0x8c(r1)
/* 801BB91C 001B887C D0 21 00 90 */ stfs f1, 0x90(r1)
/* 801BB920 001B8880 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 801BB924 001B8884 98 01 00 98 */ stb r0, 0x98(r1)
/* 801BB928 001B8888 40 82 00 0C */ bne lbl_801BB934
/* 801BB92C 001B888C C0 22 A9 D8 */ lfs f1, lbl_805AC6F8@sda21(r2)
/* 801BB930 001B8890 48 00 00 08 */ b lbl_801BB938
lbl_801BB934:
/* 801BB934 001B8894 FC 20 F0 90 */ fmr f1, f30
lbl_801BB938:
/* 801BB938 001B8898 C0 02 A9 D8 */ lfs f0, lbl_805AC6F8@sda21(r2)
/* 801BB93C 001B889C 2C 19 00 00 */ cmpwi r25, 0
/* 801BB940 001B88A0 EC 61 00 32 */ fmuls f3, f1, f0
/* 801BB944 001B88A4 40 82 00 08 */ bne lbl_801BB94C
/* 801BB948 001B88A8 48 00 00 08 */ b lbl_801BB950
lbl_801BB94C:
/* 801BB94C 001B88AC FC 00 F0 90 */ fmr f0, f30
lbl_801BB950:
/* 801BB950 001B88B0 C0 82 A9 D8 */ lfs f4, lbl_805AC6F8@sda21(r2)
/* 801BB954 001B88B4 2C 19 00 00 */ cmpwi r25, 0
/* 801BB958 001B88B8 EC 40 01 32 */ fmuls f2, f0, f4
/* 801BB95C 001B88BC 40 82 00 08 */ bne lbl_801BB964
/* 801BB960 001B88C0 48 00 00 08 */ b lbl_801BB968
lbl_801BB964:
/* 801BB964 001B88C4 FC 80 F0 90 */ fmr f4, f30
lbl_801BB968:
/* 801BB968 001B88C8 C0 22 A9 D8 */ lfs f1, lbl_805AC6F8@sda21(r2)
/* 801BB96C 001B88CC 2C 19 00 00 */ cmpwi r25, 0
/* 801BB970 001B88D0 D0 61 00 58 */ stfs f3, 0x58(r1)
/* 801BB974 001B88D4 EC 04 00 72 */ fmuls f0, f4, f1
/* 801BB978 001B88D8 D0 41 00 5C */ stfs f2, 0x5c(r1)
/* 801BB97C 001B88DC D0 01 00 60 */ stfs f0, 0x60(r1)
/* 801BB980 001B88E0 40 82 00 0C */ bne lbl_801BB98C
/* 801BB984 001B88E4 38 00 00 00 */ li r0, 0
/* 801BB988 001B88E8 48 00 00 24 */ b lbl_801BB9AC
lbl_801BB98C:
/* 801BB98C 001B88EC EC 3D 08 28 */ fsubs f1, f29, f1
/* 801BB990 001B88F0 C8 02 A9 E0 */ lfd f0, lbl_805AC700@sda21(r2)
/* 801BB994 001B88F4 FC 20 0A 10 */ fabs f1, f1
/* 801BB998 001B88F8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801BB99C 001B88FC 7C 00 00 26 */ mfcr r0
/* 801BB9A0 001B8900 54 00 0F FE */ srwi r0, r0, 0x1f
/* 801BB9A4 001B8904 7C 00 00 34 */ cntlzw r0, r0
/* 801BB9A8 001B8908 54 00 D9 7E */ srwi r0, r0, 5
lbl_801BB9AC:
/* 801BB9AC 001B890C 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 801BB9B0 001B8910 38 A0 00 00 */ li r5, 0
/* 801BB9B4 001B8914 41 82 00 08 */ beq lbl_801BB9BC
/* 801BB9B8 001B8918 3C A0 00 01 */ lis r5, 1
lbl_801BB9BC:
/* 801BB9BC 001B891C 2C 19 00 00 */ cmpwi r25, 0
/* 801BB9C0 001B8920 38 80 08 00 */ li r4, 0x800
/* 801BB9C4 001B8924 41 82 00 08 */ beq lbl_801BB9CC
/* 801BB9C8 001B8928 38 80 08 04 */ li r4, 0x804
lbl_801BB9CC:
/* 801BB9CC 001B892C 1C 19 00 0C */ mulli r0, r25, 0xc
/* 801BB9D0 001B8930 3C 60 80 3D */ lis r3, lbl_803D1828@ha
/* 801BB9D4 001B8934 7C 9D 2B 78 */ or r29, r4, r5
/* 801BB9D8 001B8938 38 63 18 28 */ addi r3, r3, lbl_803D1828@l
/* 801BB9DC 001B893C 7F F7 02 14 */ add r31, r23, r0
/* 801BB9E0 001B8940 3A C0 00 00 */ li r22, 0
/* 801BB9E4 001B8944 38 83 01 B5 */ addi r4, r3, 0x1b5
/* 801BB9E8 001B8948 38 60 03 D8 */ li r3, 0x3d8
/* 801BB9EC 001B894C 38 A0 00 00 */ li r5, 0
/* 801BB9F0 001B8950 3B FF 01 48 */ addi r31, r31, 0x148
/* 801BB9F4 001B8954 48 15 9E 79 */ bl __nw__FUlPCcPCc
/* 801BB9F8 001B8958 7C 7E 1B 79 */ or. r30, r3, r3
/* 801BB9FC 001B895C 41 82 00 A8 */ beq lbl_801BBAA4
/* 801BBA00 001B8960 A0 BC 00 00 */ lhz r5, 0(r28)
/* 801BBA04 001B8964 38 00 00 00 */ li r0, 0
/* 801BBA08 001B8968 98 01 00 54 */ stb r0, 0x54(r1)
/* 801BBA0C 001B896C 7F 64 DB 78 */ mr r4, r27
/* 801BBA10 001B8970 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13)
/* 801BBA14 001B8974 38 61 00 30 */ addi r3, r1, 0x30
/* 801BBA18 001B8978 B0 A1 00 40 */ sth r5, 0x40(r1)
/* 801BBA1C 001B897C 3A C0 00 01 */ li r22, 1
/* 801BBA20 001B8980 A0 B7 01 C4 */ lhz r5, 0x1c4(r23)
/* 801BBA24 001B8984 B0 A1 00 38 */ sth r5, 0x38(r1)
/* 801BBA28 001B8988 B0 A1 00 3C */ sth r5, 0x3c(r1)
/* 801BBA2C 001B898C 90 01 00 44 */ stw r0, 0x44(r1)
/* 801BBA30 001B8990 4B E9 16 AD */ bl AllocateUniqueId__13CStateManagerFv
/* 801BBA34 001B8994 A0 61 00 30 */ lhz r3, 0x30(r1)
/* 801BBA38 001B8998 38 01 00 44 */ addi r0, r1, 0x44
/* 801BBA3C 001B899C 38 E1 00 3C */ addi r7, r1, 0x3c
/* 801BBA40 001B89A0 38 81 00 40 */ addi r4, r1, 0x40
/* 801BBA44 001B89A4 B0 61 00 34 */ sth r3, 0x34(r1)
/* 801BBA48 001B89A8 39 61 00 58 */ addi r11, r1, 0x58
/* 801BBA4C 001B89AC 39 01 00 48 */ addi r8, r1, 0x48
/* 801BBA50 001B89B0 A0 C2 C5 FC */ lhz r6, lbl_805AE31C@sda21(r2)
/* 801BBA54 001B89B4 90 01 00 08 */ stw r0, 8(r1)
/* 801BBA58 001B89B8 38 00 00 00 */ li r0, 0
/* 801BBA5C 001B89BC 7F C3 F3 78 */ mr r3, r30
/* 801BBA60 001B89C0 7F E5 FB 78 */ mr r5, r31
/* 801BBA64 001B89C4 90 E1 00 0C */ stw r7, 0xc(r1)
/* 801BBA68 001B89C8 7F 47 D3 78 */ mr r7, r26
/* 801BBA6C 001B89CC 39 21 00 80 */ addi r9, r1, 0x80
/* 801BBA70 001B89D0 39 41 00 34 */ addi r10, r1, 0x34
/* 801BBA74 001B89D4 90 81 00 10 */ stw r4, 0x10(r1)
/* 801BBA78 001B89D8 38 80 00 01 */ li r4, 1
/* 801BBA7C 001B89DC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801BBA80 001B89E0 93 01 00 18 */ stw r24, 0x18(r1)
/* 801BBA84 001B89E4 91 61 00 1C */ stw r11, 0x1c(r1)
/* 801BBA88 001B89E8 91 01 00 20 */ stw r8, 0x20(r1)
/* 801BBA8C 001B89EC 90 C1 00 24 */ stw r6, 0x24(r1)
/* 801BBA90 001B89F0 90 01 00 28 */ stw r0, 0x28(r1)
/* 801BBA94 001B89F4 80 D7 01 C0 */ lwz r6, 0x1c0(r23)
/* 801BBA98 001B89F8 81 17 01 C8 */ lwz r8, 0x1c8(r23)
/* 801BBA9C 001B89FC 48 05 9B FD */ bl "__ct__17CEnergyProjectileFbRC28TToken<18CWeaponDescription>11EWeaponTypeRC12CTransform4f14EMaterialTypesRC11CDamageInfo9TUniqueId7TAreaId9TUniqueId9TUniqueIdUibRC9CVector3fRCQ24rstl50optional_object<31TLockedToken<15CGenDescription>>sb"
/* 801BBAA0 001B8A00 7C 7E 1B 78 */ mr r30, r3
lbl_801BBAA4:
/* 801BBAA4 001B8A04 7E C0 07 75 */ extsb. r0, r22
/* 801BBAA8 001B8A08 41 82 00 30 */ beq lbl_801BBAD8
/* 801BBAAC 001B8A0C 88 01 00 54 */ lbz r0, 0x54(r1)
/* 801BBAB0 001B8A10 28 00 00 00 */ cmplwi r0, 0
/* 801BBAB4 001B8A14 41 82 00 1C */ beq lbl_801BBAD0
/* 801BBAB8 001B8A18 34 61 00 48 */ addic. r3, r1, 0x48
/* 801BBABC 001B8A1C 41 82 00 14 */ beq lbl_801BBAD0
/* 801BBAC0 001B8A20 28 03 00 00 */ cmplwi r3, 0
/* 801BBAC4 001B8A24 41 82 00 0C */ beq lbl_801BBAD0
/* 801BBAC8 001B8A28 38 80 00 00 */ li r4, 0
/* 801BBACC 001B8A2C 48 18 53 75 */ bl __dt__6CTokenFv
lbl_801BBAD0:
/* 801BBAD0 001B8A30 38 00 00 00 */ li r0, 0
/* 801BBAD4 001B8A34 98 01 00 54 */ stb r0, 0x54(r1)
lbl_801BBAD8:
/* 801BBAD8 001B8A38 28 1E 00 00 */ cmplwi r30, 0
/* 801BBADC 001B8A3C 41 82 00 2C */ beq lbl_801BBB08
/* 801BBAE0 001B8A40 7F 63 DB 78 */ mr r3, r27
/* 801BBAE4 001B8A44 7F C4 F3 78 */ mr r4, r30
/* 801BBAE8 001B8A48 4B E9 12 0D */ bl AddObject__13CStateManagerFP7CEntityQ213CStateManager18EScriptPersistence
/* 801BBAEC 001B8A4C 7F C3 F3 78 */ mr r3, r30
/* 801BBAF0 001B8A50 FC 20 F8 90 */ fmr f1, f31
/* 801BBAF4 001B8A54 81 9E 00 00 */ lwz r12, 0(r30)
/* 801BBAF8 001B8A58 7F 64 DB 78 */ mr r4, r27
/* 801BBAFC 001B8A5C 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 801BBB00 001B8A60 7D 89 03 A6 */ mtctr r12
/* 801BBB04 001B8A64 4E 80 04 21 */ bctrl
lbl_801BBB08:
/* 801BBB08 001B8A68 2C 19 00 00 */ cmpwi r25, 0
/* 801BBB0C 001B8A6C 41 82 00 28 */ beq lbl_801BBB34
/* 801BBB10 001B8A70 88 17 02 18 */ lbz r0, 0x218(r23)
/* 801BBB14 001B8A74 38 60 00 01 */ li r3, 1
/* 801BBB18 001B8A78 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 801BBB1C 001B8A7C 38 A0 00 00 */ li r5, 0
/* 801BBB20 001B8A80 98 17 02 18 */ stb r0, 0x218(r23)
/* 801BBB24 001B8A84 3C 60 80 57 */ lis r3, lbl_805719E8@ha
/* 801BBB28 001B8A88 38 83 19 E8 */ addi r4, r3, lbl_805719E8@l
/* 801BBB2C 001B8A8C 80 7B 08 70 */ lwz r3, 0x870(r27)
/* 801BBB30 001B8A90 4B E4 EE F1 */ bl AddCameraShaker__14CCameraManagerFRC16CCameraShakeDatab
lbl_801BBB34:
/* 801BBB34 001B8A94 80 77 00 20 */ lwz r3, 0x20(r23)
/* 801BBB38 001B8A98 39 20 00 00 */ li r9, 0
/* 801BBB3C 001B8A9C 39 00 00 01 */ li r8, 1
/* 801BBB40 001B8AA0 57 25 10 3A */ slwi r5, r25, 2
/* 801BBB44 001B8AA4 88 03 02 20 */ lbz r0, 0x220(r3)
/* 801BBB48 001B8AA8 51 20 36 72 */ rlwimi r0, r9, 6, 0x19, 0x19
/* 801BBB4C 001B8AAC 38 82 A9 D0 */ addi r4, r2, lbl_805AC6F0@sda21
/* 801BBB50 001B8AB0 C0 02 A9 D8 */ lfs f0, lbl_805AC6F8@sda21(r2)
/* 801BBB54 001B8AB4 98 03 02 20 */ stb r0, 0x220(r3)
/* 801BBB58 001B8AB8 38 00 FF FF */ li r0, -1
/* 801BBB5C 001B8ABC 7C C4 28 2E */ lwzx r6, r4, r5
/* 801BBB60 001B8AC0 38 81 00 9C */ addi r4, r1, 0x9c
/* 801BBB64 001B8AC4 88 E3 02 20 */ lbz r7, 0x220(r3)
/* 801BBB68 001B8AC8 51 07 3E 30 */ rlwimi r7, r8, 7, 0x18, 0x18
/* 801BBB6C 001B8ACC 38 A0 00 00 */ li r5, 0
/* 801BBB70 001B8AD0 98 E3 02 20 */ stb r7, 0x220(r3)
/* 801BBB74 001B8AD4 90 C1 00 9C */ stw r6, 0x9c(r1)
/* 801BBB78 001B8AD8 90 01 00 A0 */ stw r0, 0xa0(r1)
/* 801BBB7C 001B8ADC D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 801BBB80 001B8AE0 99 01 00 A8 */ stb r8, 0xa8(r1)
/* 801BBB84 001B8AE4 91 21 00 AC */ stw r9, 0xac(r1)
/* 801BBB88 001B8AE8 91 21 00 B0 */ stw r9, 0xb0(r1)
/* 801BBB8C 001B8AEC 99 21 00 B4 */ stb r9, 0xb4(r1)
/* 801BBB90 001B8AF0 91 21 00 B8 */ stw r9, 0xb8(r1)
/* 801BBB94 001B8AF4 91 21 00 BC */ stw r9, 0xbc(r1)
/* 801BBB98 001B8AF8 91 21 00 C0 */ stw r9, 0xc0(r1)
/* 801BBB9C 001B8AFC 4B E7 11 E1 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
/* 801BBBA0 001B8B00 E3 E1 01 18 */ psq_l f31, 280(r1), 0, qr0
/* 801BBBA4 001B8B04 CB E1 01 10 */ lfd f31, 0x110(r1)
/* 801BBBA8 001B8B08 E3 C1 01 08 */ psq_l f30, 264(r1), 0, qr0
/* 801BBBAC 001B8B0C CB C1 01 00 */ lfd f30, 0x100(r1)
/* 801BBBB0 001B8B10 E3 A1 00 F8 */ psq_l f29, 248(r1), 0, qr0
/* 801BBBB4 001B8B14 CB A1 00 F0 */ lfd f29, 0xf0(r1)
/* 801BBBB8 001B8B18 BA C1 00 C8 */ lmw r22, 0xc8(r1)
/* 801BBBBC 001B8B1C 80 01 01 24 */ lwz r0, 0x124(r1)
/* 801BBBC0 001B8B20 7C 08 03 A6 */ mtlr r0
/* 801BBBC4 001B8B24 38 21 01 20 */ addi r1, r1, 0x120
/* 801BBBC8 001B8B28 4E 80 00 20 */ blr
.global DrawHologram__10CGunWeaponCFRC13CStateManagerRC12CTransform4fRC11CModelFlags
DrawHologram__10CGunWeaponCFRC13CStateManagerRC12CTransform4fRC11CModelFlags:
/* 801BBBCC 001B8B2C 94 21 FF 00 */ stwu r1, -0x100(r1)
/* 801BBBD0 001B8B30 7C 08 02 A6 */ mflr r0
/* 801BBBD4 001B8B34 90 01 01 04 */ stw r0, 0x104(r1)
/* 801BBBD8 001B8B38 93 E1 00 FC */ stw r31, 0xfc(r1)
/* 801BBBDC 001B8B3C 7C DF 33 78 */ mr r31, r6
/* 801BBBE0 001B8B40 93 C1 00 F8 */ stw r30, 0xf8(r1)
/* 801BBBE4 001B8B44 7C 7E 1B 78 */ mr r30, r3
/* 801BBBE8 001B8B48 88 63 02 18 */ lbz r3, 0x218(r3)
/* 801BBBEC 001B8B4C 54 60 DF FF */ rlwinm. r0, r3, 0x1b, 0x1f, 0x1f
/* 801BBBF0 001B8B50 41 82 01 00 */ beq lbl_801BBCF0
/* 801BBBF4 001B8B54 54 60 F7 FF */ rlwinm. r0, r3, 0x1e, 0x1f, 0x1f
/* 801BBBF8 001B8B58 41 82 00 1C */ beq lbl_801BBC14
/* 801BBBFC 001B8B5C 7F E7 FB 78 */ mr r7, r31
/* 801BBC00 001B8B60 38 7E 00 60 */ addi r3, r30, 0x60
/* 801BBC04 001B8B64 38 80 00 00 */ li r4, 0
/* 801BBC08 001B8B68 38 C0 00 00 */ li r6, 0
/* 801BBC0C 001B8B6C 4B F5 A3 B9 */ bl FlatDraw__10CModelDataF11EWhichModelRC12CTransform4fbRC11CModelFlags
/* 801BBC10 001B8B70 48 00 00 E0 */ b lbl_801BBCF0
lbl_801BBC14:
/* 801BBC14 001B8B74 C0 5E 00 10 */ lfs f2, 0x10(r30)
/* 801BBC18 001B8B78 7C A4 2B 78 */ mr r4, r5
/* 801BBC1C 001B8B7C C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 801BBC20 001B8B80 38 61 00 74 */ addi r3, r1, 0x74
/* 801BBC24 001B8B84 C0 1E 00 18 */ lfs f0, 0x18(r30)
/* 801BBC28 001B8B88 D0 41 00 08 */ stfs f2, 8(r1)
/* 801BBC2C 001B8B8C D0 21 00 0C */ stfs f1, 0xc(r1)
/* 801BBC30 001B8B90 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 801BBC34 001B8B94 48 15 6F 41 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 801BBC38 001B8B98 C0 21 00 08 */ lfs f1, 8(r1)
/* 801BBC3C 001B8B9C 38 61 00 44 */ addi r3, r1, 0x44
/* 801BBC40 001B8BA0 C0 41 00 0C */ lfs f2, 0xc(r1)
/* 801BBC44 001B8BA4 C0 61 00 10 */ lfs f3, 0x10(r1)
/* 801BBC48 001B8BA8 48 15 75 C1 */ bl Scale__12CTransform4fFfff
/* 801BBC4C 001B8BAC 38 61 00 14 */ addi r3, r1, 0x14
/* 801BBC50 001B8BB0 38 81 00 74 */ addi r4, r1, 0x74
/* 801BBC54 001B8BB4 38 A1 00 44 */ addi r5, r1, 0x44
/* 801BBC58 001B8BB8 48 15 6C F9 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 801BBC5C 001B8BBC 38 61 00 74 */ addi r3, r1, 0x74
/* 801BBC60 001B8BC0 38 81 00 14 */ addi r4, r1, 0x14
/* 801BBC64 001B8BC4 48 15 6E DD */ bl __as__12CTransform4fFRC12CTransform4f
/* 801BBC68 001B8BC8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BBC6C 001B8BCC 38 81 00 74 */ addi r4, r1, 0x74
/* 801BBC70 001B8BD0 81 83 00 00 */ lwz r12, 0(r3)
/* 801BBC74 001B8BD4 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 801BBC78 001B8BD8 7D 89 03 A6 */ mtctr r12
/* 801BBC7C 001B8BDC 4E 80 04 21 */ bctrl
/* 801BBC80 001B8BE0 48 15 0C FD */ bl DisableAllLights__9CGraphicsFv
/* 801BBC84 001B8BE4 48 18 E3 29 */ bl White__6CColorFv
/* 801BBC88 001B8BE8 7C 64 1B 78 */ mr r4, r3
/* 801BBC8C 001B8BEC 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BBC90 001B8BF0 81 83 00 00 */ lwz r12, 0(r3)
/* 801BBC94 001B8BF4 81 8C 00 BC */ lwz r12, 0xbc(r12)
/* 801BBC98 001B8BF8 7D 89 03 A6 */ mtctr r12
/* 801BBC9C 001B8BFC 4E 80 04 21 */ bctrl
/* 801BBCA0 001B8C00 38 00 00 00 */ li r0, 0
/* 801BBCA4 001B8C04 80 9E 00 70 */ lwz r4, 0x70(r30)
/* 801BBCA8 001B8C08 98 01 00 EC */ stb r0, 0xec(r1)
/* 801BBCAC 001B8C0C 7F E5 FB 78 */ mr r5, r31
/* 801BBCB0 001B8C10 80 7E 00 20 */ lwz r3, 0x20(r30)
/* 801BBCB4 001B8C14 38 C1 00 A4 */ addi r6, r1, 0xa4
/* 801BBCB8 001B8C18 80 84 00 E0 */ lwz r4, 0xe0(r4)
/* 801BBCBC 001B8C1C 38 E0 00 00 */ li r7, 0
/* 801BBCC0 001B8C20 4B E7 0C 5D */ bl "Render__9CAnimDataCFRC13CSkinnedModelRC11CModelFlagsRCQ24rstl37optional_object<18CVertexMorphEffect>PCf"
/* 801BBCC4 001B8C24 38 61 00 A4 */ addi r3, r1, 0xa4
/* 801BBCC8 001B8C28 38 80 FF FF */ li r4, -1
/* 801BBCCC 001B8C2C 4B EB BF C1 */ bl sub_80077c8c
/* 801BBCD0 001B8C30 48 18 E2 DD */ bl White__6CColorFv
/* 801BBCD4 001B8C34 7C 64 1B 78 */ mr r4, r3
/* 801BBCD8 001B8C38 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 801BBCDC 001B8C3C 81 83 00 00 */ lwz r12, 0(r3)
/* 801BBCE0 001B8C40 81 8C 00 BC */ lwz r12, 0xbc(r12)
/* 801BBCE4 001B8C44 7D 89 03 A6 */ mtctr r12
/* 801BBCE8 001B8C48 4E 80 04 21 */ bctrl
/* 801BBCEC 001B8C4C 48 15 0C 91 */ bl DisableAllLights__9CGraphicsFv
lbl_801BBCF0:
/* 801BBCF0 001B8C50 80 01 01 04 */ lwz r0, 0x104(r1)
/* 801BBCF4 001B8C54 83 E1 00 FC */ lwz r31, 0xfc(r1)
/* 801BBCF8 001B8C58 83 C1 00 F8 */ lwz r30, 0xf8(r1)
/* 801BBCFC 001B8C5C 7C 08 03 A6 */ mtlr r0
/* 801BBD00 001B8C60 38 21 01 00 */ addi r1, r1, 0x100
/* 801BBD04 001B8C64 4E 80 00 20 */ blr
.global Draw__10CGunWeaponCFbRC13CStateManagerRC12CTransform4fRC11CModelFlagsPC12CActorLights
Draw__10CGunWeaponCFbRC13CStateManagerRC12CTransform4fRC11CModelFlagsPC12CActorLights:
/* 801BBD08 001B8C68 94 21 FF 20 */ stwu r1, -0xe0(r1)
/* 801BBD0C 001B8C6C 7C 08 02 A6 */ mflr r0
/* 801BBD10 001B8C70 90 01 00 E4 */ stw r0, 0xe4(r1)
/* 801BBD14 001B8C74 BF 41 00 C8 */ stmw r26, 0xc8(r1)
/* 801BBD18 001B8C78 7C 7A 1B 78 */ mr r26, r3
/* 801BBD1C 001B8C7C 7C 9B 23 78 */ mr r27, r4
/* 801BBD20 001B8C80 7C BC 2B 78 */ mr r28, r5
/* 801BBD24 001B8C84 7C DD 33 78 */ mr r29, r6
/* 801BBD28 001B8C88 7C FE 3B 78 */ mr r30, r7
/* 801BBD2C 001B8C8C 7D 1F 43 78 */ mr r31, r8
/* 801BBD30 001B8C90 88 03 02 18 */ lbz r0, 0x218(r3)
/* 801BBD34 001B8C94 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 801BBD38 001B8C98 41 82 02 3C */ beq lbl_801BBF74
/* 801BBD3C 001B8C9C 80 82 A9 CC */ lwz r4, lbl_805AC6EC@sda21(r2)
/* 801BBD40 001B8CA0 38 61 00 28 */ addi r3, r1, 0x28
/* 801BBD44 001B8CA4 4B E4 8F 75 */ bl string_l__4rstlFPCc
/* 801BBD48 001B8CA8 38 61 00 38 */ addi r3, r1, 0x38
/* 801BBD4C 001B8CAC 38 9A 00 10 */ addi r4, r26, 0x10
/* 801BBD50 001B8CB0 38 A1 00 28 */ addi r5, r1, 0x28
/* 801BBD54 001B8CB4 4B F5 9C 4D */ bl "GetScaledLocatorTransform__10CModelDataCFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 801BBD58 001B8CB8 7F A4 EB 78 */ mr r4, r29
/* 801BBD5C 001B8CBC 38 61 00 68 */ addi r3, r1, 0x68
/* 801BBD60 001B8CC0 38 A1 00 38 */ addi r5, r1, 0x38
/* 801BBD64 001B8CC4 48 15 6B ED */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 801BBD68 001B8CC8 38 61 00 98 */ addi r3, r1, 0x98
/* 801BBD6C 001B8CCC 38 81 00 68 */ addi r4, r1, 0x68
/* 801BBD70 001B8CD0 48 15 6E 05 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 801BBD74 001B8CD4 38 61 00 28 */ addi r3, r1, 0x28
/* 801BBD78 001B8CD8 48 18 1D 69 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 801BBD7C 001B8CDC 80 7A 01 BC */ lwz r3, 0x1bc(r26)
/* 801BBD80 001B8CE0 28 03 00 00 */ cmplwi r3, 0
/* 801BBD84 001B8CE4 41 82 00 1C */ beq lbl_801BBDA0
/* 801BBD88 001B8CE8 88 03 00 48 */ lbz r0, 0x48(r3)
/* 801BBD8C 001B8CEC 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 801BBD90 001B8CF0 41 82 00 10 */ beq lbl_801BBDA0
/* 801BBD94 001B8CF4 3C 80 80 1C */ lis r4, PointGenerator__10CGunWeaponFPvPC9CVector3fPC9CVector3fi@ha
/* 801BBD98 001B8CF8 38 84 A4 7C */ addi r4, r4, PointGenerator__10CGunWeaponFPvPC9CVector3fPC9CVector3fi@l
/* 801BBD9C 001B8CFC 48 19 69 79 */ bl SetPointGeneratorFunc__13CSkinnedModelFUiPFUiPC9CVector3fPC9CVector3fi_v
lbl_801BBDA0:
/* 801BBDA0 001B8D00 80 1C 0F 34 */ lwz r0, 0xf34(r28)
/* 801BBDA4 001B8D04 2C 00 00 00 */ cmpwi r0, 0
/* 801BBDA8 001B8D08 40 82 01 08 */ bne lbl_801BBEB0
/* 801BBDAC 001B8D0C 80 1A 02 00 */ lwz r0, 0x200(r26)
/* 801BBDB0 001B8D10 2C 00 00 01 */ cmpwi r0, 1
/* 801BBDB4 001B8D14 41 82 00 FC */ beq lbl_801BBEB0
/* 801BBDB8 001B8D18 E0 3E A0 07 */ psq_l f1, 7(r30), 1, qr2
/* 801BBDBC 001B8D1C 38 61 00 0C */ addi r3, r1, 0xc
/* 801BBDC0 001B8D20 C0 02 A9 E8 */ lfs f0, lbl_805AC708@sda21(r2)
/* 801BBDC4 001B8D24 EC 20 00 72 */ fmuls f1, f0, f1
/* 801BBDC8 001B8D28 FC 40 08 90 */ fmr f2, f1
/* 801BBDCC 001B8D2C FC 60 08 90 */ fmr f3, f1
/* 801BBDD0 001B8D30 FC 80 08 90 */ fmr f4, f1
/* 801BBDD4 001B8D34 48 1A 76 19 */ bl __ct__6CColorFffff
/* 801BBDD8 001B8D38 88 1A 02 18 */ lbz r0, 0x218(r26)
/* 801BBDDC 001B8D3C 38 60 00 40 */ li r3, 0x40
/* 801BBDE0 001B8D40 98 61 00 08 */ stb r3, 8(r1)
/* 801BBDE4 001B8D44 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 801BBDE8 001B8D48 98 61 00 09 */ stb r3, 9(r1)
/* 801BBDEC 001B8D4C 98 61 00 0A */ stb r3, 0xa(r1)
/* 801BBDF0 001B8D50 98 61 00 0B */ stb r3, 0xb(r1)
/* 801BBDF4 001B8D54 41 82 00 1C */ beq lbl_801BBE10
/* 801BBDF8 001B8D58 7F 43 D3 78 */ mr r3, r26
/* 801BBDFC 001B8D5C 7F 84 E3 78 */ mr r4, r28
/* 801BBE00 001B8D60 7F A5 EB 78 */ mr r5, r29
/* 801BBE04 001B8D64 7F C6 F3 78 */ mr r6, r30
/* 801BBE08 001B8D68 4B FF FD C5 */ bl DrawHologram__10CGunWeaponCFRC13CStateManagerRC12CTransform4fRC11CModelFlags
/* 801BBE0C 001B8D6C 48 00 00 48 */ b lbl_801BBE54
lbl_801BBE10:
/* 801BBE10 001B8D70 C0 22 A9 D8 */ lfs f1, lbl_805AC6F8@sda21(r2)
/* 801BBE14 001B8D74 38 80 00 00 */ li r4, 0
/* 801BBE18 001B8D78 38 00 00 03 */ li r0, 3
/* 801BBE1C 001B8D7C 98 81 00 20 */ stb r4, 0x20(r1)
/* 801BBE20 001B8D80 FC 40 08 90 */ fmr f2, f1
/* 801BBE24 001B8D84 38 61 00 24 */ addi r3, r1, 0x24
/* 801BBE28 001B8D88 FC 60 08 90 */ fmr f3, f1
/* 801BBE2C 001B8D8C 98 81 00 21 */ stb r4, 0x21(r1)
/* 801BBE30 001B8D90 FC 80 08 90 */ fmr f4, f1
/* 801BBE34 001B8D94 B0 01 00 22 */ sth r0, 0x22(r1)
/* 801BBE38 001B8D98 48 1A 75 B5 */ bl __ct__6CColorFffff
/* 801BBE3C 001B8D9C 7F A4 EB 78 */ mr r4, r29
/* 801BBE40 001B8DA0 38 7A 00 10 */ addi r3, r26, 0x10
/* 801BBE44 001B8DA4 38 A1 00 0C */ addi r5, r1, 0xc
/* 801BBE48 001B8DA8 38 C1 00 08 */ addi r6, r1, 8
/* 801BBE4C 001B8DAC 38 E1 00 20 */ addi r7, r1, 0x20
/* 801BBE50 001B8DB0 4B F5 A4 51 */ bl RenderThermal__10CModelDataCFRC12CTransform4fRC6CColorRC6CColorRC11CModelFlags
lbl_801BBE54:
/* 801BBE54 001B8DB4 57 60 06 3F */ clrlwi. r0, r27, 0x18
/* 801BBE58 001B8DB8 41 82 00 F4 */ beq lbl_801BBF4C
/* 801BBE5C 001B8DBC 88 1A 00 FC */ lbz r0, 0xfc(r26)
/* 801BBE60 001B8DC0 28 00 00 00 */ cmplwi r0, 0
/* 801BBE64 001B8DC4 41 82 00 E8 */ beq lbl_801BBF4C
/* 801BBE68 001B8DC8 C0 22 A9 D8 */ lfs f1, lbl_805AC6F8@sda21(r2)
/* 801BBE6C 001B8DCC 38 80 00 00 */ li r4, 0
/* 801BBE70 001B8DD0 38 00 00 03 */ li r0, 3
/* 801BBE74 001B8DD4 98 81 00 18 */ stb r4, 0x18(r1)
/* 801BBE78 001B8DD8 FC 40 08 90 */ fmr f2, f1
/* 801BBE7C 001B8DDC 38 61 00 1C */ addi r3, r1, 0x1c
/* 801BBE80 001B8DE0 FC 60 08 90 */ fmr f3, f1
/* 801BBE84 001B8DE4 98 81 00 19 */ stb r4, 0x19(r1)
/* 801BBE88 001B8DE8 FC 80 08 90 */ fmr f4, f1
/* 801BBE8C 001B8DEC B0 01 00 1A */ sth r0, 0x1a(r1)
/* 801BBE90 001B8DF0 48 1A 75 5D */ bl __ct__6CColorFffff
/* 801BBE94 001B8DF4 7F A4 EB 78 */ mr r4, r29
/* 801BBE98 001B8DF8 38 7A 00 B0 */ addi r3, r26, 0xb0
/* 801BBE9C 001B8DFC 38 A1 00 0C */ addi r5, r1, 0xc
/* 801BBEA0 001B8E00 38 C1 00 08 */ addi r6, r1, 8
/* 801BBEA4 001B8E04 38 E1 00 18 */ addi r7, r1, 0x18
/* 801BBEA8 001B8E08 4B F5 A3 F9 */ bl RenderThermal__10CModelDataCFRC12CTransform4fRC6CColorRC6CColorRC11CModelFlags
/* 801BBEAC 001B8E0C 48 00 00 A0 */ b lbl_801BBF4C
lbl_801BBEB0:
/* 801BBEB0 001B8E10 80 7C 08 B8 */ lwz r3, 0x8b8(r28)
/* 801BBEB4 001B8E14 80 63 00 00 */ lwz r3, 0(r3)
/* 801BBEB8 001B8E18 80 03 00 14 */ lwz r0, 0x14(r3)
/* 801BBEBC 001B8E1C 2C 00 00 01 */ cmpwi r0, 1
/* 801BBEC0 001B8E20 41 82 00 4C */ beq lbl_801BBF0C
/* 801BBEC4 001B8E24 88 1A 02 18 */ lbz r0, 0x218(r26)
/* 801BBEC8 001B8E28 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 801BBECC 001B8E2C 40 82 00 40 */ bne lbl_801BBF0C
/* 801BBED0 001B8E30 81 3A 02 0C */ lwz r9, 0x20c(r26)
/* 801BBED4 001B8E34 7F 84 E3 78 */ mr r4, r28
/* 801BBED8 001B8E38 88 7E 00 00 */ lbz r3, 0(r30)
/* 801BBEDC 001B8E3C 7F A5 EB 78 */ mr r5, r29
/* 801BBEE0 001B8E40 A1 1E 00 02 */ lhz r8, 2(r30)
/* 801BBEE4 001B8E44 7F E6 FB 78 */ mr r6, r31
/* 801BBEE8 001B8E48 80 1E 00 04 */ lwz r0, 4(r30)
/* 801BBEEC 001B8E4C 38 E1 00 10 */ addi r7, r1, 0x10
/* 801BBEF0 001B8E50 98 61 00 10 */ stb r3, 0x10(r1)
/* 801BBEF4 001B8E54 38 7A 00 10 */ addi r3, r26, 0x10
/* 801BBEF8 001B8E58 99 21 00 11 */ stb r9, 0x11(r1)
/* 801BBEFC 001B8E5C B1 01 00 12 */ sth r8, 0x12(r1)
/* 801BBF00 001B8E60 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BBF04 001B8E64 4B F5 8E B9 */ bl Render__10CModelDataCFRC13CStateManagerRC12CTransform4fPC12CActorLightsRC11CModelFlags
/* 801BBF08 001B8E68 48 00 00 18 */ b lbl_801BBF20
lbl_801BBF0C:
/* 801BBF0C 001B8E6C 7F 43 D3 78 */ mr r3, r26
/* 801BBF10 001B8E70 7F 84 E3 78 */ mr r4, r28
/* 801BBF14 001B8E74 7F A5 EB 78 */ mr r5, r29
/* 801BBF18 001B8E78 7F C6 F3 78 */ mr r6, r30
/* 801BBF1C 001B8E7C 4B FF FC B1 */ bl DrawHologram__10CGunWeaponCFRC13CStateManagerRC12CTransform4fRC11CModelFlags
lbl_801BBF20:
/* 801BBF20 001B8E80 57 60 06 3F */ clrlwi. r0, r27, 0x18
/* 801BBF24 001B8E84 41 82 00 28 */ beq lbl_801BBF4C
/* 801BBF28 001B8E88 88 1A 00 FC */ lbz r0, 0xfc(r26)
/* 801BBF2C 001B8E8C 28 00 00 00 */ cmplwi r0, 0
/* 801BBF30 001B8E90 41 82 00 1C */ beq lbl_801BBF4C
/* 801BBF34 001B8E94 7F 84 E3 78 */ mr r4, r28
/* 801BBF38 001B8E98 7F E6 FB 78 */ mr r6, r31
/* 801BBF3C 001B8E9C 7F C7 F3 78 */ mr r7, r30
/* 801BBF40 001B8EA0 38 7A 00 B0 */ addi r3, r26, 0xb0
/* 801BBF44 001B8EA4 38 A1 00 98 */ addi r5, r1, 0x98
/* 801BBF48 001B8EA8 4B F5 8E 75 */ bl Render__10CModelDataCFRC13CStateManagerRC12CTransform4fPC12CActorLightsRC11CModelFlags
lbl_801BBF4C:
/* 801BBF4C 001B8EAC 80 7A 01 BC */ lwz r3, 0x1bc(r26)
/* 801BBF50 001B8EB0 28 03 00 00 */ cmplwi r3, 0
/* 801BBF54 001B8EB4 41 82 00 20 */ beq lbl_801BBF74
/* 801BBF58 001B8EB8 88 03 00 48 */ lbz r0, 0x48(r3)
/* 801BBF5C 001B8EBC 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 801BBF60 001B8EC0 41 82 00 14 */ beq lbl_801BBF74
/* 801BBF64 001B8EC4 48 19 67 A5 */ bl ClearPointGeneratorFunc__13CSkinnedModelFv
/* 801BBF68 001B8EC8 80 7A 01 BC */ lwz r3, 0x1bc(r26)
/* 801BBF6C 001B8ECC 7F A4 EB 78 */ mr r4, r29
/* 801BBF70 001B8ED0 48 0A E4 51 */ bl Draw__20CRainSplashGeneratorCFRC12CTransform4f
lbl_801BBF74:
/* 801BBF74 001B8ED4 BB 41 00 C8 */ lmw r26, 0xc8(r1)
/* 801BBF78 001B8ED8 80 01 00 E4 */ lwz r0, 0xe4(r1)
/* 801BBF7C 001B8EDC 7C 08 03 A6 */ mtlr r0
/* 801BBF80 001B8EE0 38 21 00 E0 */ addi r1, r1, 0xe0
/* 801BBF84 001B8EE4 4E 80 00 20 */ blr
.global ActivateCharge__10CGunWeaponFbb
ActivateCharge__10CGunWeaponFbb:
/* 801BBF88 001B8EE8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 801BBF8C 001B8EEC 7C 08 02 A6 */ mflr r0
/* 801BBF90 001B8EF0 90 01 00 34 */ stw r0, 0x34(r1)
/* 801BBF94 001B8EF4 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 801BBF98 001B8EF8 93 C1 00 28 */ stw r30, 0x28(r1)
/* 801BBF9C 001B8EFC 7C 7E 1B 78 */ mr r30, r3
/* 801BBFA0 001B8F00 3B FE 01 A8 */ addi r31, r30, 0x1a8
/* 801BBFA4 001B8F04 93 A1 00 24 */ stw r29, 0x24(r1)
/* 801BBFA8 001B8F08 7C 9D 23 78 */ mr r29, r4
/* 801BBFAC 001B8F0C 38 80 00 00 */ li r4, 0
/* 801BBFB0 001B8F10 93 81 00 20 */ stw r28, 0x20(r1)
/* 801BBFB4 001B8F14 7C BC 2B 78 */ mr r28, r5
/* 801BBFB8 001B8F18 80 03 02 08 */ lwz r0, 0x208(r3)
/* 801BBFBC 001B8F1C 54 00 18 38 */ slwi r0, r0, 3
/* 801BBFC0 001B8F20 7C 7F 02 14 */ add r3, r31, r0
/* 801BBFC4 001B8F24 80 63 00 04 */ lwz r3, 4(r3)
/* 801BBFC8 001B8F28 81 83 00 00 */ lwz r12, 0(r3)
/* 801BBFCC 001B8F2C 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 801BBFD0 001B8F30 7D 89 03 A6 */ mtctr r12
/* 801BBFD4 001B8F34 4E 80 04 21 */ bctrl
/* 801BBFD8 001B8F38 57 A3 06 3F */ clrlwi. r3, r29, 0x18
/* 801BBFDC 001B8F3C 7C 03 00 D0 */ neg r0, r3
/* 801BBFE0 001B8F40 7C 00 1B 78 */ or r0, r0, r3
/* 801BBFE4 001B8F44 54 00 0F FE */ srwi r0, r0, 0x1f
/* 801BBFE8 001B8F48 90 1E 02 08 */ stw r0, 0x208(r30)
/* 801BBFEC 001B8F4C 40 82 00 0C */ bne lbl_801BBFF8
/* 801BBFF0 001B8F50 57 80 06 3F */ clrlwi. r0, r28, 0x18
/* 801BBFF4 001B8F54 41 82 01 0C */ beq lbl_801BC100
lbl_801BBFF8:
/* 801BBFF8 001B8F58 3C 60 80 3D */ lis r3, lbl_803D1828@ha
/* 801BBFFC 001B8F5C 3B A0 00 00 */ li r29, 0
/* 801BC000 001B8F60 38 83 18 28 */ addi r4, r3, lbl_803D1828@l
/* 801BC004 001B8F64 38 60 03 40 */ li r3, 0x340
/* 801BC008 001B8F68 38 84 01 B5 */ addi r4, r4, 0x1b5
/* 801BC00C 001B8F6C 38 A0 00 00 */ li r5, 0
/* 801BC010 001B8F70 48 15 98 5D */ bl __nw__FUlPCcPCc
/* 801BC014 001B8F74 7C 7C 1B 79 */ or. r28, r3, r3
/* 801BC018 001B8F78 41 82 00 38 */ beq lbl_801BC050
/* 801BC01C 001B8F7C 80 1E 02 08 */ lwz r0, 0x208(r30)
/* 801BC020 001B8F80 38 61 00 10 */ addi r3, r1, 0x10
/* 801BC024 001B8F84 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801BC028 001B8F88 7C 9E 02 14 */ add r4, r30, r0
/* 801BC02C 001B8F8C 38 84 01 70 */ addi r4, r4, 0x170
/* 801BC030 001B8F90 48 18 4E 79 */ bl __ct__6CTokenFRC6CToken
/* 801BC034 001B8F94 7F 83 E3 78 */ mr r3, r28
/* 801BC038 001B8F98 38 81 00 10 */ addi r4, r1, 0x10
/* 801BC03C 001B8F9C 3B A0 00 01 */ li r29, 1
/* 801BC040 001B8FA0 38 A0 00 00 */ li r5, 0
/* 801BC044 001B8FA4 38 C0 00 01 */ li r6, 1
/* 801BC048 001B8FA8 48 16 33 99 */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 801BC04C 001B8FAC 7C 7C 1B 78 */ mr r28, r3
lbl_801BC050:
/* 801BC050 001B8FB0 7C 1C 00 D0 */ neg r0, r28
/* 801BC054 001B8FB4 93 81 00 0C */ stw r28, 0xc(r1)
/* 801BC058 001B8FB8 7C 03 E3 78 */ or r3, r0, r28
/* 801BC05C 001B8FBC 38 01 00 08 */ addi r0, r1, 8
/* 801BC060 001B8FC0 54 63 0F FE */ srwi r3, r3, 0x1f
/* 801BC064 001B8FC4 98 61 00 08 */ stb r3, 8(r1)
/* 801BC068 001B8FC8 80 7E 02 08 */ lwz r3, 0x208(r30)
/* 801BC06C 001B8FCC 54 63 18 38 */ slwi r3, r3, 3
/* 801BC070 001B8FD0 7F 9F 1A 14 */ add r28, r31, r3
/* 801BC074 001B8FD4 7C 00 E0 40 */ cmplw r0, r28
/* 801BC078 001B8FD8 41 82 00 48 */ beq lbl_801BC0C0
/* 801BC07C 001B8FDC 88 1C 00 00 */ lbz r0, 0(r28)
/* 801BC080 001B8FE0 28 00 00 00 */ cmplwi r0, 0
/* 801BC084 001B8FE4 41 82 00 24 */ beq lbl_801BC0A8
/* 801BC088 001B8FE8 80 7C 00 04 */ lwz r3, 4(r28)
/* 801BC08C 001B8FEC 28 03 00 00 */ cmplwi r3, 0
/* 801BC090 001B8FF0 41 82 00 18 */ beq lbl_801BC0A8
/* 801BC094 001B8FF4 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC098 001B8FF8 38 80 00 01 */ li r4, 1
/* 801BC09C 001B8FFC 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BC0A0 001B9000 7D 89 03 A6 */ mtctr r12
/* 801BC0A4 001B9004 4E 80 04 21 */ bctrl
lbl_801BC0A8:
/* 801BC0A8 001B9008 88 61 00 08 */ lbz r3, 8(r1)
/* 801BC0AC 001B900C 38 00 00 00 */ li r0, 0
/* 801BC0B0 001B9010 98 7C 00 00 */ stb r3, 0(r28)
/* 801BC0B4 001B9014 80 61 00 0C */ lwz r3, 0xc(r1)
/* 801BC0B8 001B9018 90 7C 00 04 */ stw r3, 4(r28)
/* 801BC0BC 001B901C 98 01 00 08 */ stb r0, 8(r1)
lbl_801BC0C0:
/* 801BC0C0 001B9020 88 01 00 08 */ lbz r0, 8(r1)
/* 801BC0C4 001B9024 28 00 00 00 */ cmplwi r0, 0
/* 801BC0C8 001B9028 41 82 00 24 */ beq lbl_801BC0EC
/* 801BC0CC 001B902C 80 61 00 0C */ lwz r3, 0xc(r1)
/* 801BC0D0 001B9030 28 03 00 00 */ cmplwi r3, 0
/* 801BC0D4 001B9034 41 82 00 18 */ beq lbl_801BC0EC
/* 801BC0D8 001B9038 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC0DC 001B903C 38 80 00 01 */ li r4, 1
/* 801BC0E0 001B9040 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BC0E4 001B9044 7D 89 03 A6 */ mtctr r12
/* 801BC0E8 001B9048 4E 80 04 21 */ bctrl
lbl_801BC0EC:
/* 801BC0EC 001B904C 7F A0 07 75 */ extsb. r0, r29
/* 801BC0F0 001B9050 41 82 00 10 */ beq lbl_801BC100
/* 801BC0F4 001B9054 38 61 00 10 */ addi r3, r1, 0x10
/* 801BC0F8 001B9058 38 80 00 00 */ li r4, 0
/* 801BC0FC 001B905C 48 18 4D 45 */ bl __dt__6CTokenFv
lbl_801BC100:
/* 801BC100 001B9060 80 01 00 34 */ lwz r0, 0x34(r1)
/* 801BC104 001B9064 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 801BC108 001B9068 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 801BC10C 001B906C 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 801BC110 001B9070 83 81 00 20 */ lwz r28, 0x20(r1)
/* 801BC114 001B9074 7C 08 03 A6 */ mtlr r0
/* 801BC118 001B9078 38 21 00 30 */ addi r1, r1, 0x30
/* 801BC11C 001B907C 4E 80 00 20 */ blr
.global DrawMuzzleFx__10CGunWeaponCFRC13CStateManager
DrawMuzzleFx__10CGunWeaponCFRC13CStateManager:
/* 801BC120 001B9080 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BC124 001B9084 7C 08 02 A6 */ mflr r0
/* 801BC128 001B9088 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BC12C 001B908C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801BC130 001B9090 93 C1 00 08 */ stw r30, 8(r1)
/* 801BC134 001B9094 7C 7E 1B 78 */ mr r30, r3
/* 801BC138 001B9098 3B FE 01 A8 */ addi r31, r30, 0x1a8
/* 801BC13C 001B909C 80 03 02 08 */ lwz r0, 0x208(r3)
/* 801BC140 001B90A0 54 00 18 38 */ slwi r0, r0, 3
/* 801BC144 001B90A4 7C 7F 02 14 */ add r3, r31, r0
/* 801BC148 001B90A8 80 03 00 04 */ lwz r0, 4(r3)
/* 801BC14C 001B90AC 28 00 00 00 */ cmplwi r0, 0
/* 801BC150 001B90B0 41 82 00 78 */ beq lbl_801BC1C8
/* 801BC154 001B90B4 80 1E 02 00 */ lwz r0, 0x200(r30)
/* 801BC158 001B90B8 2C 00 00 01 */ cmpwi r0, 1
/* 801BC15C 001B90BC 41 82 00 4C */ beq lbl_801BC1A8
/* 801BC160 001B90C0 80 64 08 B8 */ lwz r3, 0x8b8(r4)
/* 801BC164 001B90C4 80 63 00 00 */ lwz r3, 0(r3)
/* 801BC168 001B90C8 4B ED 53 F1 */ bl GetActiveVisor__12CPlayerStateCFRC13CStateManager
/* 801BC16C 001B90CC 2C 03 00 01 */ cmpwi r3, 1
/* 801BC170 001B90D0 40 82 00 38 */ bne lbl_801BC1A8
/* 801BC174 001B90D4 80 1E 02 08 */ lwz r0, 0x208(r30)
/* 801BC178 001B90D8 38 60 00 01 */ li r3, 1
/* 801BC17C 001B90DC 98 6D A8 B9 */ stb r3, lbl_805A9479@sda21(r13)
/* 801BC180 001B90E0 54 03 18 38 */ slwi r3, r0, 3
/* 801BC184 001B90E4 38 03 00 04 */ addi r0, r3, 4
/* 801BC188 001B90E8 7C 7F 00 2E */ lwzx r3, r31, r0
/* 801BC18C 001B90EC 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC190 001B90F0 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 801BC194 001B90F4 7D 89 03 A6 */ mtctr r12
/* 801BC198 001B90F8 4E 80 04 21 */ bctrl
/* 801BC19C 001B90FC 38 00 00 00 */ li r0, 0
/* 801BC1A0 001B9100 98 0D A8 B9 */ stb r0, lbl_805A9479@sda21(r13)
/* 801BC1A4 001B9104 48 00 00 24 */ b lbl_801BC1C8
lbl_801BC1A8:
/* 801BC1A8 001B9108 80 1E 02 08 */ lwz r0, 0x208(r30)
/* 801BC1AC 001B910C 54 03 18 38 */ slwi r3, r0, 3
/* 801BC1B0 001B9110 38 03 00 04 */ addi r0, r3, 4
/* 801BC1B4 001B9114 7C 7F 00 2E */ lwzx r3, r31, r0
/* 801BC1B8 001B9118 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC1BC 001B911C 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 801BC1C0 001B9120 7D 89 03 A6 */ mtctr r12
/* 801BC1C4 001B9124 4E 80 04 21 */ bctrl
lbl_801BC1C8:
/* 801BC1C8 001B9128 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BC1CC 001B912C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801BC1D0 001B9130 83 C1 00 08 */ lwz r30, 8(r1)
/* 801BC1D4 001B9134 7C 08 03 A6 */ mtlr r0
/* 801BC1D8 001B9138 38 21 00 10 */ addi r1, r1, 0x10
/* 801BC1DC 001B913C 4E 80 00 20 */ blr
.global GetChargeMuzzleFx__10CGunWeaponCFv
GetChargeMuzzleFx__10CGunWeaponCFv:
/* 801BC1E0 001B9140 80 63 01 B4 */ lwz r3, 0x1b4(r3)
/* 801BC1E4 001B9144 28 03 00 00 */ cmplwi r3, 0
/* 801BC1E8 001B9148 4C 82 00 20 */ bnelr
/* 801BC1EC 001B914C 38 60 00 00 */ li r3, 0
/* 801BC1F0 001B9150 4E 80 00 20 */ blr
.global UpdateMuzzleFx__10CGunWeaponFfRC9CVector3fRC9CVector3fb
UpdateMuzzleFx__10CGunWeaponFfRC9CVector3fRC9CVector3fb:
/* 801BC1F4 001B9154 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801BC1F8 001B9158 7C 08 02 A6 */ mflr r0
/* 801BC1FC 001B915C 90 01 00 24 */ stw r0, 0x24(r1)
/* 801BC200 001B9160 DB E1 00 18 */ stfd f31, 0x18(r1)
/* 801BC204 001B9164 FF E0 08 90 */ fmr f31, f1
/* 801BC208 001B9168 93 E1 00 14 */ stw r31, 0x14(r1)
/* 801BC20C 001B916C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 801BC210 001B9170 7C DE 33 78 */ mr r30, r6
/* 801BC214 001B9174 93 A1 00 0C */ stw r29, 0xc(r1)
/* 801BC218 001B9178 7C 9D 23 78 */ mr r29, r4
/* 801BC21C 001B917C 7C A4 2B 78 */ mr r4, r5
/* 801BC220 001B9180 93 81 00 08 */ stw r28, 8(r1)
/* 801BC224 001B9184 7C 7C 1B 78 */ mr r28, r3
/* 801BC228 001B9188 3B FC 01 A8 */ addi r31, r28, 0x1a8
/* 801BC22C 001B918C 80 03 02 08 */ lwz r0, 0x208(r3)
/* 801BC230 001B9190 54 00 18 38 */ slwi r0, r0, 3
/* 801BC234 001B9194 7C 7F 02 14 */ add r3, r31, r0
/* 801BC238 001B9198 80 63 00 04 */ lwz r3, 4(r3)
/* 801BC23C 001B919C 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC240 001B91A0 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 801BC244 001B91A4 7D 89 03 A6 */ mtctr r12
/* 801BC248 001B91A8 4E 80 04 21 */ bctrl
/* 801BC24C 001B91AC 80 1C 02 08 */ lwz r0, 0x208(r28)
/* 801BC250 001B91B0 7F A4 EB 78 */ mr r4, r29
/* 801BC254 001B91B4 54 03 18 38 */ slwi r3, r0, 3
/* 801BC258 001B91B8 38 03 00 04 */ addi r0, r3, 4
/* 801BC25C 001B91BC 7C 7F 00 2E */ lwzx r3, r31, r0
/* 801BC260 001B91C0 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC264 001B91C4 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 801BC268 001B91C8 7D 89 03 A6 */ mtctr r12
/* 801BC26C 001B91CC 4E 80 04 21 */ bctrl
/* 801BC270 001B91D0 80 1C 02 08 */ lwz r0, 0x208(r28)
/* 801BC274 001B91D4 7F C4 F3 78 */ mr r4, r30
/* 801BC278 001B91D8 54 03 18 38 */ slwi r3, r0, 3
/* 801BC27C 001B91DC 38 03 00 04 */ addi r0, r3, 4
/* 801BC280 001B91E0 7C 7F 00 2E */ lwzx r3, r31, r0
/* 801BC284 001B91E4 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC288 001B91E8 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 801BC28C 001B91EC 7D 89 03 A6 */ mtctr r12
/* 801BC290 001B91F0 4E 80 04 21 */ bctrl
/* 801BC294 001B91F4 80 1C 02 08 */ lwz r0, 0x208(r28)
/* 801BC298 001B91F8 FC 20 F8 90 */ fmr f1, f31
/* 801BC29C 001B91FC 54 03 18 38 */ slwi r3, r0, 3
/* 801BC2A0 001B9200 38 03 00 04 */ addi r0, r3, 4
/* 801BC2A4 001B9204 7C 7F 00 2E */ lwzx r3, r31, r0
/* 801BC2A8 001B9208 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC2AC 001B920C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 801BC2B0 001B9210 7D 89 03 A6 */ mtctr r12
/* 801BC2B4 001B9214 4E 80 04 21 */ bctrl
/* 801BC2B8 001B9218 80 01 00 24 */ lwz r0, 0x24(r1)
/* 801BC2BC 001B921C CB E1 00 18 */ lfd f31, 0x18(r1)
/* 801BC2C0 001B9220 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 801BC2C4 001B9224 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 801BC2C8 001B9228 83 A1 00 0C */ lwz r29, 0xc(r1)
/* 801BC2CC 001B922C 83 81 00 08 */ lwz r28, 8(r1)
/* 801BC2D0 001B9230 7C 08 03 A6 */ mtlr r0
/* 801BC2D4 001B9234 38 21 00 20 */ addi r1, r1, 0x20
/* 801BC2D8 001B9238 4E 80 00 20 */ blr
.global UpdateGunFx__10CGunWeaponFbfRC13CStateManagerRC12CTransform4f
UpdateGunFx__10CGunWeaponFbfRC13CStateManagerRC12CTransform4f:
/* 801BC2DC 001B923C 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 801BC2E0 001B9240 7C 08 02 A6 */ mflr r0
/* 801BC2E4 001B9244 90 01 00 74 */ stw r0, 0x74(r1)
/* 801BC2E8 001B9248 DB E1 00 60 */ stfd f31, 0x60(r1)
/* 801BC2EC 001B924C F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0
/* 801BC2F0 001B9250 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 801BC2F4 001B9254 93 C1 00 58 */ stw r30, 0x58(r1)
/* 801BC2F8 001B9258 93 A1 00 54 */ stw r29, 0x54(r1)
/* 801BC2FC 001B925C 88 03 02 18 */ lbz r0, 0x218(r3)
/* 801BC300 001B9260 FF E0 08 90 */ fmr f31, f1
/* 801BC304 001B9264 7C 7D 1B 78 */ mr r29, r3
/* 801BC308 001B9268 7C DE 33 78 */ mr r30, r6
/* 801BC30C 001B926C 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 801BC310 001B9270 41 82 00 F0 */ beq lbl_801BC400
/* 801BC314 001B9274 80 1D 02 04 */ lwz r0, 0x204(r29)
/* 801BC318 001B9278 2C 00 00 00 */ cmpwi r0, 0
/* 801BC31C 001B927C 41 82 00 E4 */ beq lbl_801BC400
/* 801BC320 001B9280 2C 00 00 02 */ cmpwi r0, 2
/* 801BC324 001B9284 40 82 00 B0 */ bne lbl_801BC3D4
/* 801BC328 001B9288 80 7D 01 B8 */ lwz r3, 0x1b8(r29)
/* 801BC32C 001B928C 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC330 001B9290 81 8C 00 58 */ lwz r12, 0x58(r12)
/* 801BC334 001B9294 7D 89 03 A6 */ mtctr r12
/* 801BC338 001B9298 4E 80 04 21 */ bctrl
/* 801BC33C 001B929C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 801BC340 001B92A0 41 82 00 38 */ beq lbl_801BC378
/* 801BC344 001B92A4 38 00 00 00 */ li r0, 0
/* 801BC348 001B92A8 90 1D 02 04 */ stw r0, 0x204(r29)
/* 801BC34C 001B92AC 80 7D 01 B8 */ lwz r3, 0x1b8(r29)
/* 801BC350 001B92B0 28 03 00 00 */ cmplwi r3, 0
/* 801BC354 001B92B4 41 82 00 18 */ beq lbl_801BC36C
/* 801BC358 001B92B8 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC35C 001B92BC 38 80 00 01 */ li r4, 1
/* 801BC360 001B92C0 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BC364 001B92C4 7D 89 03 A6 */ mtctr r12
/* 801BC368 001B92C8 4E 80 04 21 */ bctrl
lbl_801BC36C:
/* 801BC36C 001B92CC 38 00 00 00 */ li r0, 0
/* 801BC370 001B92D0 90 1D 01 B8 */ stw r0, 0x1b8(r29)
/* 801BC374 001B92D4 48 00 00 6C */ b lbl_801BC3E0
lbl_801BC378:
/* 801BC378 001B92D8 C0 5E 00 2C */ lfs f2, 0x2c(r30)
/* 801BC37C 001B92DC 38 81 00 08 */ addi r4, r1, 8
/* 801BC380 001B92E0 C0 3E 00 1C */ lfs f1, 0x1c(r30)
/* 801BC384 001B92E4 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 801BC388 001B92E8 D0 21 00 0C */ stfs f1, 0xc(r1)
/* 801BC38C 001B92EC D0 01 00 08 */ stfs f0, 8(r1)
/* 801BC390 001B92F0 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 801BC394 001B92F4 80 7D 01 B8 */ lwz r3, 0x1b8(r29)
/* 801BC398 001B92F8 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC39C 001B92FC 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 801BC3A0 001B9300 7D 89 03 A6 */ mtctr r12
/* 801BC3A4 001B9304 4E 80 04 21 */ bctrl
/* 801BC3A8 001B9308 83 FD 01 B8 */ lwz r31, 0x1b8(r29)
/* 801BC3AC 001B930C 7F C4 F3 78 */ mr r4, r30
/* 801BC3B0 001B9310 38 61 00 14 */ addi r3, r1, 0x14
/* 801BC3B4 001B9314 48 15 68 8D */ bl GetRotation__12CTransform4fCFv
/* 801BC3B8 001B9318 7F E3 FB 78 */ mr r3, r31
/* 801BC3BC 001B931C 38 81 00 14 */ addi r4, r1, 0x14
/* 801BC3C0 001B9320 81 9F 00 00 */ lwz r12, 0(r31)
/* 801BC3C4 001B9324 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 801BC3C8 001B9328 7D 89 03 A6 */ mtctr r12
/* 801BC3CC 001B932C 4E 80 04 21 */ bctrl
/* 801BC3D0 001B9330 48 00 00 10 */ b lbl_801BC3E0
lbl_801BC3D4:
/* 801BC3D4 001B9334 80 7D 01 B8 */ lwz r3, 0x1b8(r29)
/* 801BC3D8 001B9338 7F C4 F3 78 */ mr r4, r30
/* 801BC3DC 001B933C 48 16 27 A9 */ bl SetGlobalOrientAndTrans__11CElementGenFRC12CTransform4f
lbl_801BC3E0:
/* 801BC3E0 001B9340 80 7D 01 B8 */ lwz r3, 0x1b8(r29)
/* 801BC3E4 001B9344 28 03 00 00 */ cmplwi r3, 0
/* 801BC3E8 001B9348 41 82 00 18 */ beq lbl_801BC400
/* 801BC3EC 001B934C 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC3F0 001B9350 FC 20 F8 90 */ fmr f1, f31
/* 801BC3F4 001B9354 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 801BC3F8 001B9358 7D 89 03 A6 */ mtctr r12
/* 801BC3FC 001B935C 4E 80 04 21 */ bctrl
lbl_801BC400:
/* 801BC400 001B9360 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0
/* 801BC404 001B9364 80 01 00 74 */ lwz r0, 0x74(r1)
/* 801BC408 001B9368 CB E1 00 60 */ lfd f31, 0x60(r1)
/* 801BC40C 001B936C 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 801BC410 001B9370 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 801BC414 001B9374 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 801BC418 001B9378 7C 08 03 A6 */ mtlr r0
/* 801BC41C 001B937C 38 21 00 70 */ addi r1, r1, 0x70
/* 801BC420 001B9380 4E 80 00 20 */ blr
.global PostRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f
PostRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f:
/* 801BC424 001B9384 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BC428 001B9388 7C 08 02 A6 */ mflr r0
/* 801BC42C 001B938C 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BC430 001B9390 88 03 02 18 */ lbz r0, 0x218(r3)
/* 801BC434 001B9394 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 801BC438 001B9398 41 82 00 30 */ beq lbl_801BC468
/* 801BC43C 001B939C 80 83 01 B8 */ lwz r4, 0x1b8(r3)
/* 801BC440 001B93A0 28 04 00 00 */ cmplwi r4, 0
/* 801BC444 001B93A4 41 82 00 24 */ beq lbl_801BC468
/* 801BC448 001B93A8 80 03 02 04 */ lwz r0, 0x204(r3)
/* 801BC44C 001B93AC 2C 00 00 00 */ cmpwi r0, 0
/* 801BC450 001B93B0 41 82 00 18 */ beq lbl_801BC468
/* 801BC454 001B93B4 7C 83 23 78 */ mr r3, r4
/* 801BC458 001B93B8 81 84 00 00 */ lwz r12, 0(r4)
/* 801BC45C 001B93BC 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 801BC460 001B93C0 7D 89 03 A6 */ mtctr r12
/* 801BC464 001B93C4 4E 80 04 21 */ bctrl
lbl_801BC468:
/* 801BC468 001B93C8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BC46C 001B93CC 7C 08 03 A6 */ mtlr r0
/* 801BC470 001B93D0 38 21 00 10 */ addi r1, r1, 0x10
/* 801BC474 001B93D4 4E 80 00 20 */ blr
.global Update__10CGunWeaponFfR13CStateManager
Update__10CGunWeaponFfR13CStateManager:
/* 801BC478 001B93D8 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 801BC47C 001B93DC 7C 08 02 A6 */ mflr r0
/* 801BC480 001B93E0 90 01 00 44 */ stw r0, 0x44(r1)
/* 801BC484 001B93E4 DB E1 00 38 */ stfd f31, 0x38(r1)
/* 801BC488 001B93E8 FF E0 08 90 */ fmr f31, f1
/* 801BC48C 001B93EC 93 E1 00 34 */ stw r31, 0x34(r1)
/* 801BC490 001B93F0 7C 9F 23 78 */ mr r31, r4
/* 801BC494 001B93F4 93 C1 00 30 */ stw r30, 0x30(r1)
/* 801BC498 001B93F8 7C 7E 1B 78 */ mr r30, r3
/* 801BC49C 001B93FC 88 03 02 18 */ lbz r0, 0x218(r3)
/* 801BC4A0 001B9400 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 801BC4A4 001B9404 41 82 00 50 */ beq lbl_801BC4F4
/* 801BC4A8 001B9408 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13)
/* 801BC4AC 001B940C 7F E5 FB 78 */ mr r5, r31
/* 801BC4B0 001B9410 38 61 00 0C */ addi r3, r1, 0xc
/* 801BC4B4 001B9414 38 9E 00 10 */ addi r4, r30, 0x10
/* 801BC4B8 001B9418 90 01 00 08 */ stw r0, 8(r1)
/* 801BC4BC 001B941C 38 C1 00 08 */ addi r6, r1, 8
/* 801BC4C0 001B9420 38 E0 00 01 */ li r7, 1
/* 801BC4C4 001B9424 4B F5 96 71 */ bl AdvanceAnimation__10CModelDataFfR13CStateManager7TAreaIdb
/* 801BC4C8 001B9428 FC 20 F8 90 */ fmr f1, f31
/* 801BC4CC 001B942C 80 7E 01 00 */ lwz r3, 0x100(r30)
/* 801BC4D0 001B9430 7F E4 FB 78 */ mr r4, r31
/* 801BC4D4 001B9434 48 01 01 6D */ bl Update__14CGunControllerFfR13CStateManager
/* 801BC4D8 001B9438 88 1E 02 18 */ lbz r0, 0x218(r30)
/* 801BC4DC 001B943C 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 801BC4E0 001B9440 41 82 00 EC */ beq lbl_801BC5CC
/* 801BC4E4 001B9444 7F C3 F3 78 */ mr r3, r30
/* 801BC4E8 001B9448 7F E4 FB 78 */ mr r4, r31
/* 801BC4EC 001B944C 4B FF DF B1 */ bl LoadSuitArm__10CGunWeaponFR13CStateManager
/* 801BC4F0 001B9450 48 00 00 DC */ b lbl_801BC5CC
lbl_801BC4F4:
/* 801BC4F4 001B9454 88 1E 01 08 */ lbz r0, 0x108(r30)
/* 801BC4F8 001B9458 28 00 00 00 */ cmplwi r0, 0
/* 801BC4FC 001B945C 41 82 00 D0 */ beq lbl_801BC5CC
/* 801BC500 001B9460 80 BE 01 04 */ lwz r5, 0x104(r30)
/* 801BC504 001B9464 80 05 00 10 */ lwz r0, 0x10(r5)
/* 801BC508 001B9468 28 00 00 00 */ cmplwi r0, 0
/* 801BC50C 001B946C 41 82 00 58 */ beq lbl_801BC564
/* 801BC510 001B9470 80 1E 02 10 */ lwz r0, 0x210(r30)
/* 801BC514 001B9474 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 801BC518 001B9478 2C 00 00 01 */ cmpwi r0, 1
/* 801BC51C 001B947C 41 82 00 1C */ beq lbl_801BC538
/* 801BC520 001B9480 48 00 04 89 */ bl LoadGunModels__10CGunWeaponFR13CStateManager
/* 801BC524 001B9484 7F C3 F3 78 */ mr r3, r30
/* 801BC528 001B9488 4B FF E4 99 */ bl LoadAnimations__10CGunWeaponFv
/* 801BC52C 001B948C 80 1E 02 10 */ lwz r0, 0x210(r30)
/* 801BC530 001B9490 60 00 00 01 */ ori r0, r0, 1
/* 801BC534 001B9494 90 1E 02 10 */ stw r0, 0x210(r30)
lbl_801BC538:
/* 801BC538 001B9498 80 1E 02 10 */ lwz r0, 0x210(r30)
/* 801BC53C 001B949C 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 801BC540 001B94A0 2C 00 00 08 */ cmpwi r0, 8
/* 801BC544 001B94A4 41 82 00 20 */ beq lbl_801BC564
/* 801BC548 001B94A8 7F C3 F3 78 */ mr r3, r30
/* 801BC54C 001B94AC 4B FF E4 35 */ bl IsAnimsLoaded__10CGunWeaponCFv
/* 801BC550 001B94B0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 801BC554 001B94B4 41 82 00 10 */ beq lbl_801BC564
/* 801BC558 001B94B8 80 1E 02 10 */ lwz r0, 0x210(r30)
/* 801BC55C 001B94BC 60 00 00 08 */ ori r0, r0, 8
/* 801BC560 001B94C0 90 1E 02 10 */ stw r0, 0x210(r30)
lbl_801BC564:
/* 801BC564 001B94C4 FC 20 F8 90 */ fmr f1, f31
/* 801BC568 001B94C8 7F C3 F3 78 */ mr r3, r30
/* 801BC56C 001B94CC 7F E4 FB 78 */ mr r4, r31
/* 801BC570 001B94D0 4B FF E4 89 */ bl LoadFxIdle__10CGunWeaponFfR13CStateManager
/* 801BC574 001B94D4 80 1E 02 10 */ lwz r0, 0x210(r30)
/* 801BC578 001B94D8 54 00 06 FE */ clrlwi r0, r0, 0x1b
/* 801BC57C 001B94DC 2C 00 00 1F */ cmpwi r0, 0x1f
/* 801BC580 001B94E0 40 82 00 4C */ bne lbl_801BC5CC
/* 801BC584 001B94E4 38 7E 00 10 */ addi r3, r30, 0x10
/* 801BC588 001B94E8 38 80 00 00 */ li r4, 0
/* 801BC58C 001B94EC 4B F5 89 D1 */ bl PickAnimatedModel__10CModelDataCFQ210CModelData11EWhichModel
/* 801BC590 001B94F0 80 63 00 0C */ lwz r3, 0xc(r3)
/* 801BC594 001B94F4 80 9E 02 0C */ lwz r4, 0x20c(r30)
/* 801BC598 001B94F8 48 19 90 11 */ bl IsLoaded__6CModelCFi
/* 801BC59C 001B94FC 7C 7F 1B 78 */ mr r31, r3
/* 801BC5A0 001B9500 38 7E 00 B0 */ addi r3, r30, 0xb0
/* 801BC5A4 001B9504 38 80 00 00 */ li r4, 0
/* 801BC5A8 001B9508 4B F5 86 DD */ bl IsLoaded__10CModelDataCFi
/* 801BC5AC 001B950C 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 801BC5B0 001B9510 41 82 00 1C */ beq lbl_801BC5CC
/* 801BC5B4 001B9514 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 801BC5B8 001B9518 41 82 00 14 */ beq lbl_801BC5CC
/* 801BC5BC 001B951C 88 1E 02 18 */ lbz r0, 0x218(r30)
/* 801BC5C0 001B9520 38 60 00 01 */ li r3, 1
/* 801BC5C4 001B9524 50 60 2E B4 */ rlwimi r0, r3, 5, 0x1a, 0x1a
/* 801BC5C8 001B9528 98 1E 02 18 */ stb r0, 0x218(r30)
lbl_801BC5CC:
/* 801BC5CC 001B952C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 801BC5D0 001B9530 CB E1 00 38 */ lfd f31, 0x38(r1)
/* 801BC5D4 001B9534 83 E1 00 34 */ lwz r31, 0x34(r1)
/* 801BC5D8 001B9538 83 C1 00 30 */ lwz r30, 0x30(r1)
/* 801BC5DC 001B953C 7C 08 03 A6 */ mtlr r0
/* 801BC5E0 001B9540 38 21 00 40 */ addi r1, r1, 0x40
/* 801BC5E4 001B9544 4E 80 00 20 */ blr
.global Reset__10CGunWeaponFR13CStateManager
Reset__10CGunWeaponFR13CStateManager:
/* 801BC5E8 001B9548 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BC5EC 001B954C 7C 08 02 A6 */ mflr r0
/* 801BC5F0 001B9550 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BC5F4 001B9554 88 03 02 18 */ lbz r0, 0x218(r3)
/* 801BC5F8 001B9558 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 801BC5FC 001B955C 41 82 00 4C */ beq lbl_801BC648
/* 801BC600 001B9560 80 C3 00 20 */ lwz r6, 0x20(r3)
/* 801BC604 001B9564 38 A0 00 00 */ li r5, 0
/* 801BC608 001B9568 38 80 00 01 */ li r4, 1
/* 801BC60C 001B956C 88 06 02 20 */ lbz r0, 0x220(r6)
/* 801BC610 001B9570 50 A0 36 72 */ rlwimi r0, r5, 6, 0x19, 0x19
/* 801BC614 001B9574 98 06 02 20 */ stb r0, 0x220(r6)
/* 801BC618 001B9578 88 06 02 20 */ lbz r0, 0x220(r6)
/* 801BC61C 001B957C 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 801BC620 001B9580 98 06 02 20 */ stb r0, 0x220(r6)
/* 801BC624 001B9584 88 03 02 18 */ lbz r0, 0x218(r3)
/* 801BC628 001B9588 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 801BC62C 001B958C 41 82 00 14 */ beq lbl_801BC640
/* 801BC630 001B9590 88 03 02 18 */ lbz r0, 0x218(r3)
/* 801BC634 001B9594 50 A0 36 72 */ rlwimi r0, r5, 6, 0x19, 0x19
/* 801BC638 001B9598 98 03 02 18 */ stb r0, 0x218(r3)
/* 801BC63C 001B959C 48 00 00 0C */ b lbl_801BC648
lbl_801BC640:
/* 801BC640 001B95A0 80 63 01 00 */ lwz r3, 0x100(r3)
/* 801BC644 001B95A4 48 00 FC 8D */ bl Reset__14CGunControllerFv
lbl_801BC648:
/* 801BC648 001B95A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BC64C 001B95AC 7C 08 03 A6 */ mtlr r0
/* 801BC650 001B95B0 38 21 00 10 */ addi r1, r1, 0x10
/* 801BC654 001B95B4 4E 80 00 20 */ blr
.global PlayAnim__10CGunWeaponFQ212NWeaponTypes12EGunAnimTypeb
PlayAnim__10CGunWeaponFQ212NWeaponTypes12EGunAnimTypeb:
/* 801BC658 001B95B8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 801BC65C 001B95BC 7C 08 02 A6 */ mflr r0
/* 801BC660 001B95C0 90 01 00 34 */ stw r0, 0x34(r1)
/* 801BC664 001B95C4 88 03 02 18 */ lbz r0, 0x218(r3)
/* 801BC668 001B95C8 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 801BC66C 001B95CC 41 82 00 8C */ beq lbl_801BC6F8
/* 801BC670 001B95D0 2C 04 00 00 */ cmpwi r4, 0
/* 801BC674 001B95D4 41 80 00 84 */ blt lbl_801BC6F8
/* 801BC678 001B95D8 2C 04 00 0A */ cmpwi r4, 0xa
/* 801BC67C 001B95DC 40 81 00 08 */ ble lbl_801BC684
/* 801BC680 001B95E0 48 00 00 78 */ b lbl_801BC6F8
lbl_801BC684:
/* 801BC684 001B95E4 80 63 00 20 */ lwz r3, 0x20(r3)
/* 801BC688 001B95E8 54 A7 06 3E */ clrlwi r7, r5, 0x18
/* 801BC68C 001B95EC 3C A0 80 3D */ lis r5, lbl_803D17FC@ha
/* 801BC690 001B95F0 54 80 10 3A */ slwi r0, r4, 2
/* 801BC694 001B95F4 88 C3 02 20 */ lbz r6, 0x220(r3)
/* 801BC698 001B95F8 50 E6 36 72 */ rlwimi r6, r7, 6, 0x19, 0x19
/* 801BC69C 001B95FC 38 85 17 FC */ addi r4, r5, lbl_803D17FC@l
/* 801BC6A0 001B9600 39 00 00 01 */ li r8, 1
/* 801BC6A4 001B9604 98 C3 02 20 */ stb r6, 0x220(r3)
/* 801BC6A8 001B9608 38 C0 FF FF */ li r6, -1
/* 801BC6AC 001B960C 7C E4 00 2E */ lwzx r7, r4, r0
/* 801BC6B0 001B9610 38 00 00 00 */ li r0, 0
/* 801BC6B4 001B9614 88 83 02 20 */ lbz r4, 0x220(r3)
/* 801BC6B8 001B9618 51 04 3E 30 */ rlwimi r4, r8, 7, 0x18, 0x18
/* 801BC6BC 001B961C C0 02 A9 D8 */ lfs f0, lbl_805AC6F8@sda21(r2)
/* 801BC6C0 001B9620 38 A0 00 00 */ li r5, 0
/* 801BC6C4 001B9624 98 83 02 20 */ stb r4, 0x220(r3)
/* 801BC6C8 001B9628 38 81 00 08 */ addi r4, r1, 8
/* 801BC6CC 001B962C 90 E1 00 08 */ stw r7, 8(r1)
/* 801BC6D0 001B9630 90 C1 00 0C */ stw r6, 0xc(r1)
/* 801BC6D4 001B9634 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 801BC6D8 001B9638 99 01 00 14 */ stb r8, 0x14(r1)
/* 801BC6DC 001B963C 90 01 00 18 */ stw r0, 0x18(r1)
/* 801BC6E0 001B9640 90 01 00 1C */ stw r0, 0x1c(r1)
/* 801BC6E4 001B9644 98 01 00 20 */ stb r0, 0x20(r1)
/* 801BC6E8 001B9648 90 01 00 24 */ stw r0, 0x24(r1)
/* 801BC6EC 001B964C 90 01 00 28 */ stw r0, 0x28(r1)
/* 801BC6F0 001B9650 90 01 00 2C */ stw r0, 0x2c(r1)
/* 801BC6F4 001B9654 4B E7 06 89 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
lbl_801BC6F8:
/* 801BC6F8 001B9658 80 01 00 34 */ lwz r0, 0x34(r1)
/* 801BC6FC 001B965C 7C 08 03 A6 */ mtlr r0
/* 801BC700 001B9660 38 21 00 30 */ addi r1, r1, 0x30
/* 801BC704 001B9664 4E 80 00 20 */ blr
.global IsChargeAnimOver__10CGunWeaponCFv
IsChargeAnimOver__10CGunWeaponCFv:
/* 801BC708 001B9668 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801BC70C 001B966C 7C 08 02 A6 */ mflr r0
/* 801BC710 001B9670 90 01 00 24 */ stw r0, 0x24(r1)
/* 801BC714 001B9674 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 801BC718 001B9678 7C 7F 1B 78 */ mr r31, r3
/* 801BC71C 001B967C 88 03 02 18 */ lbz r0, 0x218(r3)
/* 801BC720 001B9680 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 801BC724 001B9684 41 82 00 44 */ beq lbl_801BC768
/* 801BC728 001B9688 3C 80 80 3D */ lis r4, lbl_803D1828@ha
/* 801BC72C 001B968C 38 61 00 08 */ addi r3, r1, 8
/* 801BC730 001B9690 38 84 18 28 */ addi r4, r4, lbl_803D1828@l
/* 801BC734 001B9694 38 84 01 BC */ addi r4, r4, 0x1bc
/* 801BC738 001B9698 4B E4 85 81 */ bl string_l__4rstlFPCc
/* 801BC73C 001B969C 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 801BC740 001B96A0 38 81 00 08 */ addi r4, r1, 8
/* 801BC744 001B96A4 C0 22 A9 EC */ lfs f1, lbl_805AC70C@sda21(r2)
/* 801BC748 001B96A8 4B E6 FC A5 */ bl "IsAnimTimeRemaining__9CAnimDataCFfRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 801BC74C 001B96AC 7C 7F 1B 78 */ mr r31, r3
/* 801BC750 001B96B0 38 61 00 08 */ addi r3, r1, 8
/* 801BC754 001B96B4 48 18 13 8D */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 801BC758 001B96B8 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 801BC75C 001B96BC 41 82 00 0C */ beq lbl_801BC768
/* 801BC760 001B96C0 38 60 00 00 */ li r3, 0
/* 801BC764 001B96C4 48 00 00 08 */ b lbl_801BC76C
lbl_801BC768:
/* 801BC768 001B96C8 38 60 00 01 */ li r3, 1
lbl_801BC76C:
/* 801BC76C 001B96CC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 801BC770 001B96D0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 801BC774 001B96D4 7C 08 03 A6 */ mtlr r0
/* 801BC778 001B96D8 38 21 00 20 */ addi r1, r1, 0x20
/* 801BC77C 001B96DC 4E 80 00 20 */ blr
.global PlayPasAnim__10CGunWeaponFQ28SamusGun15EAnimationStateR13CStateManagerf
PlayPasAnim__10CGunWeaponFQ28SamusGun15EAnimationStateR13CStateManagerf:
/* 801BC780 001B96E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BC784 001B96E4 7C 08 02 A6 */ mflr r0
/* 801BC788 001B96E8 2C 04 00 04 */ cmpwi r4, 4
/* 801BC78C 001B96EC 7C 66 1B 78 */ mr r6, r3
/* 801BC790 001B96F0 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BC794 001B96F4 41 82 00 14 */ beq lbl_801BC7A8
/* 801BC798 001B96F8 40 80 00 24 */ bge lbl_801BC7BC
/* 801BC79C 001B96FC 2C 04 00 00 */ cmpwi r4, 0
/* 801BC7A0 001B9700 41 82 00 24 */ beq lbl_801BC7C4
/* 801BC7A4 001B9704 48 00 00 18 */ b lbl_801BC7BC
lbl_801BC7A8:
/* 801BC7A8 001B9708 80 66 01 00 */ lwz r3, 0x100(r6)
/* 801BC7AC 001B970C 7C A4 2B 78 */ mr r4, r5
/* 801BC7B0 001B9710 80 A6 02 00 */ lwz r5, 0x200(r6)
/* 801BC7B4 001B9714 48 01 03 95 */ bl EnterComboFire__14CGunControllerFR13CStateManageri
/* 801BC7B8 001B9718 48 00 00 0C */ b lbl_801BC7C4
lbl_801BC7BC:
/* 801BC7BC 001B971C 38 60 00 00 */ li r3, 0
/* 801BC7C0 001B9720 48 00 00 08 */ b lbl_801BC7C8
lbl_801BC7C4:
/* 801BC7C4 001B9724 38 60 00 01 */ li r3, 1
lbl_801BC7C8:
/* 801BC7C8 001B9728 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BC7CC 001B972C 7C 08 03 A6 */ mtlr r0
/* 801BC7D0 001B9730 38 21 00 10 */ addi r1, r1, 0x10
/* 801BC7D4 001B9734 4E 80 00 20 */ blr
.global LoadProjectileData__10CGunWeaponFR13CStateManager
LoadProjectileData__10CGunWeaponFR13CStateManager:
/* 801BC7D8 001B9738 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 801BC7DC 001B973C 7C 08 02 A6 */ mflr r0
/* 801BC7E0 001B9740 90 01 00 64 */ stw r0, 0x64(r1)
/* 801BC7E4 001B9744 DB E1 00 50 */ stfd f31, 0x50(r1)
/* 801BC7E8 001B9748 F3 E1 00 58 */ psq_st f31, 88(r1), 0, qr0
/* 801BC7EC 001B974C BE C1 00 28 */ stmw r22, 0x28(r1)
/* 801BC7F0 001B9750 80 84 08 D8 */ lwz r4, 0x8d8(r4)
/* 801BC7F4 001B9754 7C 76 1B 78 */ mr r22, r3
/* 801BC7F8 001B9758 38 61 00 0C */ addi r3, r1, 0xc
/* 801BC7FC 001B975C 48 15 5D F1 */ bl __ct__9CRandom16FUi
/* 801BC800 001B9760 38 61 00 1C */ addi r3, r1, 0x1c
/* 801BC804 001B9764 38 81 00 0C */ addi r4, r1, 0xc
/* 801BC808 001B9768 48 15 5E 79 */ bl __ct__13CGlobalRandomFR9CRandom16
/* 801BC80C 001B976C 3B 16 01 D4 */ addi r24, r22, 0x1d4
/* 801BC810 001B9770 3C 80 80 5A */ lis r4, skZero3f@ha
/* 801BC814 001B9774 3C 60 80 5A */ lis r3, lbl_805A6724@ha
/* 801BC818 001B9778 C3 E2 A9 DC */ lfs f31, lbl_805AC6FC@sda21(r2)
/* 801BC81C 001B977C 7F 1B C3 78 */ mr r27, r24
/* 801BC820 001B9780 3B 96 01 48 */ addi r28, r22, 0x148
/* 801BC824 001B9784 3B C4 66 A0 */ addi r30, r4, skZero3f@l
/* 801BC828 001B9788 3B 56 01 F8 */ addi r26, r22, 0x1f8
/* 801BC82C 001B978C 3B 36 01 F0 */ addi r25, r22, 0x1f0
/* 801BC830 001B9790 3B E3 67 24 */ addi r31, r3, lbl_805A6724@l
/* 801BC834 001B9794 3A E0 00 00 */ li r23, 0
lbl_801BC838:
/* 801BC838 001B9798 83 BC 00 08 */ lwz r29, 8(r28)
/* 801BC83C 001B979C C0 5E 00 00 */ lfs f2, 0(r30)
/* 801BC840 001B97A0 C0 3E 00 04 */ lfs f1, 4(r30)
/* 801BC844 001B97A4 C0 1E 00 08 */ lfs f0, 8(r30)
/* 801BC848 001B97A8 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 801BC84C 001B97AC D0 21 00 14 */ stfs f1, 0x14(r1)
/* 801BC850 001B97B0 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 801BC854 001B97B4 80 7D 00 04 */ lwz r3, 4(r29)
/* 801BC858 001B97B8 28 03 00 00 */ cmplwi r3, 0
/* 801BC85C 001B97BC 41 82 00 1C */ beq lbl_801BC878
/* 801BC860 001B97C0 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC864 001B97C4 38 A1 00 10 */ addi r5, r1, 0x10
/* 801BC868 001B97C8 38 80 00 00 */ li r4, 0
/* 801BC86C 001B97CC 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 801BC870 001B97D0 7D 89 03 A6 */ mtctr r12
/* 801BC874 001B97D4 4E 80 04 21 */ bctrl
lbl_801BC878:
/* 801BC878 001B97D8 80 16 01 D0 */ lwz r0, 0x1d0(r22)
/* 801BC87C 001B97DC 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801BC880 001B97E0 7C 78 02 15 */ add. r3, r24, r0
/* 801BC884 001B97E4 41 82 00 1C */ beq lbl_801BC8A0
/* 801BC888 001B97E8 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 801BC88C 001B97EC D0 03 00 00 */ stfs f0, 0(r3)
/* 801BC890 001B97F0 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 801BC894 001B97F4 D0 03 00 04 */ stfs f0, 4(r3)
/* 801BC898 001B97F8 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 801BC89C 001B97FC D0 03 00 08 */ stfs f0, 8(r3)
lbl_801BC8A0:
/* 801BC8A0 001B9800 80 76 01 D0 */ lwz r3, 0x1d0(r22)
/* 801BC8A4 001B9804 38 03 00 01 */ addi r0, r3, 1
/* 801BC8A8 001B9808 90 16 01 D0 */ stw r0, 0x1d0(r22)
/* 801BC8AC 001B980C D3 E1 00 08 */ stfs f31, 8(r1)
/* 801BC8B0 001B9810 80 7D 00 30 */ lwz r3, 0x30(r29)
/* 801BC8B4 001B9814 28 03 00 00 */ cmplwi r3, 0
/* 801BC8B8 001B9818 41 82 00 1C */ beq lbl_801BC8D4
/* 801BC8BC 001B981C 81 83 00 00 */ lwz r12, 0(r3)
/* 801BC8C0 001B9820 38 A1 00 08 */ addi r5, r1, 8
/* 801BC8C4 001B9824 38 80 00 00 */ li r4, 0
/* 801BC8C8 001B9828 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 801BC8CC 001B982C 7D 89 03 A6 */ mtctr r12
/* 801BC8D0 001B9830 4E 80 04 21 */ bctrl
lbl_801BC8D4:
/* 801BC8D4 001B9834 80 16 01 F4 */ lwz r0, 0x1f4(r22)
/* 801BC8D8 001B9838 54 00 10 3A */ slwi r0, r0, 2
/* 801BC8DC 001B983C 7C 7A 02 15 */ add. r3, r26, r0
/* 801BC8E0 001B9840 41 82 00 0C */ beq lbl_801BC8EC
/* 801BC8E4 001B9844 C0 01 00 08 */ lfs f0, 8(r1)
/* 801BC8E8 001B9848 D0 03 00 00 */ stfs f0, 0(r3)
lbl_801BC8EC:
/* 801BC8EC 001B984C 80 76 01 F4 */ lwz r3, 0x1f4(r22)
/* 801BC8F0 001B9850 38 03 00 01 */ addi r0, r3, 1
/* 801BC8F4 001B9854 90 16 01 F4 */ stw r0, 0x1f4(r22)
/* 801BC8F8 001B9858 80 16 01 EC */ lwz r0, 0x1ec(r22)
/* 801BC8FC 001B985C 7C 79 02 15 */ add. r3, r25, r0
/* 801BC900 001B9860 41 82 00 0C */ beq lbl_801BC90C
/* 801BC904 001B9864 88 1D 00 29 */ lbz r0, 0x29(r29)
/* 801BC908 001B9868 98 03 00 00 */ stb r0, 0(r3)
lbl_801BC90C:
/* 801BC90C 001B986C 80 76 01 EC */ lwz r3, 0x1ec(r22)
/* 801BC910 001B9870 38 03 00 01 */ addi r0, r3, 1
/* 801BC914 001B9874 90 16 01 EC */ stw r0, 0x1ec(r22)
/* 801BC918 001B9878 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 801BC91C 001B987C FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 801BC920 001B9880 40 81 00 30 */ ble lbl_801BC950
/* 801BC924 001B9884 C0 1B 00 00 */ lfs f0, 0(r27)
/* 801BC928 001B9888 C0 22 A9 F0 */ lfs f1, lbl_805AC710@sda21(r2)
/* 801BC92C 001B988C EC 00 00 72 */ fmuls f0, f0, f1
/* 801BC930 001B9890 D0 1B 00 00 */ stfs f0, 0(r27)
/* 801BC934 001B9894 C0 1B 00 04 */ lfs f0, 4(r27)
/* 801BC938 001B9898 EC 00 00 72 */ fmuls f0, f0, f1
/* 801BC93C 001B989C D0 1B 00 04 */ stfs f0, 4(r27)
/* 801BC940 001B98A0 C0 1B 00 08 */ lfs f0, 8(r27)
/* 801BC944 001B98A4 EC 00 00 72 */ fmuls f0, f0, f1
/* 801BC948 001B98A8 D0 1B 00 08 */ stfs f0, 8(r27)
/* 801BC94C 001B98AC 48 00 00 20 */ b lbl_801BC96C
lbl_801BC950:
/* 801BC950 001B98B0 3C 60 80 5A */ lis r3, lbl_805A6724@ha
/* 801BC954 001B98B4 C0 03 67 24 */ lfs f0, lbl_805A6724@l(r3)
/* 801BC958 001B98B8 D0 1B 00 00 */ stfs f0, 0(r27)
/* 801BC95C 001B98BC C0 1F 00 04 */ lfs f0, 4(r31)
/* 801BC960 001B98C0 D0 1B 00 04 */ stfs f0, 4(r27)
/* 801BC964 001B98C4 C0 1F 00 08 */ lfs f0, 8(r31)
/* 801BC968 001B98C8 D0 1B 00 08 */ stfs f0, 8(r27)
lbl_801BC96C:
/* 801BC96C 001B98CC 3A F7 00 01 */ addi r23, r23, 1
/* 801BC970 001B98D0 3B 7B 00 0C */ addi r27, r27, 0xc
/* 801BC974 001B98D4 2C 17 00 02 */ cmpwi r23, 2
/* 801BC978 001B98D8 3B 9C 00 0C */ addi r28, r28, 0xc
/* 801BC97C 001B98DC 41 80 FE BC */ blt lbl_801BC838
/* 801BC980 001B98E0 38 61 00 1C */ addi r3, r1, 0x1c
/* 801BC984 001B98E4 38 80 FF FF */ li r4, -1
/* 801BC988 001B98E8 48 15 5C 7D */ bl __dt__13CGlobalRandomFv
/* 801BC98C 001B98EC E3 E1 00 58 */ psq_l f31, 88(r1), 0, qr0
/* 801BC990 001B98F0 CB E1 00 50 */ lfd f31, 0x50(r1)
/* 801BC994 001B98F4 BA C1 00 28 */ lmw r22, 0x28(r1)
/* 801BC998 001B98F8 80 01 00 64 */ lwz r0, 0x64(r1)
/* 801BC99C 001B98FC 7C 08 03 A6 */ mtlr r0
/* 801BC9A0 001B9900 38 21 00 60 */ addi r1, r1, 0x60
/* 801BC9A4 001B9904 4E 80 00 20 */ blr
.global LoadGunModels__10CGunWeaponFR13CStateManager
LoadGunModels__10CGunWeaponFR13CStateManager:
/* 801BC9A8 001B9908 94 21 FE F0 */ stwu r1, -0x110(r1)
/* 801BC9AC 001B990C 7C 08 02 A6 */ mflr r0
/* 801BC9B0 001B9910 90 01 01 14 */ stw r0, 0x114(r1)
/* 801BC9B4 001B9914 93 E1 01 0C */ stw r31, 0x10c(r1)
/* 801BC9B8 001B9918 7C 7F 1B 78 */ mr r31, r3
/* 801BC9BC 001B991C 93 C1 01 08 */ stw r30, 0x108(r1)
/* 801BC9C0 001B9920 3B C0 00 09 */ li r30, 9
/* 801BC9C4 001B9924 93 A1 01 04 */ stw r29, 0x104(r1)
/* 801BC9C8 001B9928 7C 9D 23 78 */ mr r29, r4
/* 801BC9CC 001B992C 88 03 02 18 */ lbz r0, 0x218(r3)
/* 801BC9D0 001B9930 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 801BC9D4 001B9934 41 82 00 08 */ beq lbl_801BC9DC
/* 801BC9D8 001B9938 3B C0 00 00 */ li r30, 0
lbl_801BC9DC:
/* 801BC9DC 001B993C 80 BF 02 14 */ lwz r5, 0x214(r31)
/* 801BC9E0 001B9940 38 00 00 00 */ li r0, 0
/* 801BC9E4 001B9944 38 61 00 B4 */ addi r3, r1, 0xb4
/* 801BC9E8 001B9948 38 81 00 24 */ addi r4, r1, 0x24
/* 801BC9EC 001B994C 90 A1 00 24 */ stw r5, 0x24(r1)
/* 801BC9F0 001B9950 90 01 00 28 */ stw r0, 0x28(r1)
/* 801BC9F4 001B9954 C0 1F 00 04 */ lfs f0, 4(r31)
/* 801BC9F8 001B9958 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 801BC9FC 001B995C C0 1F 00 08 */ lfs f0, 8(r31)
/* 801BCA00 001B9960 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 801BCA04 001B9964 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801BCA08 001B9968 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 801BCA0C 001B996C 98 01 00 38 */ stb r0, 0x38(r1)
/* 801BCA10 001B9970 93 C1 00 3C */ stw r30, 0x3c(r1)
/* 801BCA14 001B9974 4B F5 A1 41 */ bl __ct__10CModelDataFRC8CAnimRes
/* 801BCA18 001B9978 38 7F 00 10 */ addi r3, r31, 0x10
/* 801BCA1C 001B997C 38 81 00 B4 */ addi r4, r1, 0xb4
/* 801BCA20 001B9980 4B F2 14 59 */ bl sub_800dde78
/* 801BCA24 001B9984 38 61 00 B4 */ addi r3, r1, 0xb4
/* 801BCA28 001B9988 38 80 FF FF */ li r4, -1
/* 801BCA2C 001B998C 4B F5 A0 21 */ bl __dt__10CModelDataFv
/* 801BCA30 001B9990 80 9F 02 14 */ lwz r4, 0x214(r31)
/* 801BCA34 001B9994 38 A0 00 01 */ li r5, 1
/* 801BCA38 001B9998 38 00 00 00 */ li r0, 0
/* 801BCA3C 001B999C 38 61 00 68 */ addi r3, r1, 0x68
/* 801BCA40 001B99A0 90 81 00 08 */ stw r4, 8(r1)
/* 801BCA44 001B99A4 38 81 00 08 */ addi r4, r1, 8
/* 801BCA48 001B99A8 90 A1 00 0C */ stw r5, 0xc(r1)
/* 801BCA4C 001B99AC C0 1F 00 04 */ lfs f0, 4(r31)
/* 801BCA50 001B99B0 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 801BCA54 001B99B4 C0 1F 00 08 */ lfs f0, 8(r31)
/* 801BCA58 001B99B8 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 801BCA5C 001B99BC C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 801BCA60 001B99C0 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 801BCA64 001B99C4 98 01 00 1C */ stb r0, 0x1c(r1)
/* 801BCA68 001B99C8 93 C1 00 20 */ stw r30, 0x20(r1)
/* 801BCA6C 001B99CC 4B F5 A0 E9 */ bl __ct__10CModelDataFRC8CAnimRes
/* 801BCA70 001B99D0 38 7F 00 60 */ addi r3, r31, 0x60
/* 801BCA74 001B99D4 38 81 00 68 */ addi r4, r1, 0x68
/* 801BCA78 001B99D8 4B F2 14 01 */ bl sub_800dde78
/* 801BCA7C 001B99DC 38 61 00 68 */ addi r3, r1, 0x68
/* 801BCA80 001B99E0 38 80 FF FF */ li r4, -1
/* 801BCA84 001B99E4 4B F5 9F C9 */ bl __dt__10CModelDataFv
/* 801BCA88 001B99E8 C0 02 A9 D8 */ lfs f0, lbl_805AC6F8@sda21(r2)
/* 801BCA8C 001B99EC 38 00 00 00 */ li r0, 0
/* 801BCA90 001B99F0 38 C0 FF FF */ li r6, -1
/* 801BCA94 001B99F4 38 60 00 01 */ li r3, 1
/* 801BCA98 001B99F8 93 C1 00 40 */ stw r30, 0x40(r1)
/* 801BCA9C 001B99FC 38 81 00 40 */ addi r4, r1, 0x40
/* 801BCAA0 001B9A00 38 A0 00 01 */ li r5, 1
/* 801BCAA4 001B9A04 90 C1 00 44 */ stw r6, 0x44(r1)
/* 801BCAA8 001B9A08 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 801BCAAC 001B9A0C 98 61 00 4C */ stb r3, 0x4c(r1)
/* 801BCAB0 001B9A10 90 01 00 50 */ stw r0, 0x50(r1)
/* 801BCAB4 001B9A14 90 01 00 54 */ stw r0, 0x54(r1)
/* 801BCAB8 001B9A18 98 01 00 58 */ stb r0, 0x58(r1)
/* 801BCABC 001B9A1C 90 01 00 5C */ stw r0, 0x5c(r1)
/* 801BCAC0 001B9A20 90 01 00 60 */ stw r0, 0x60(r1)
/* 801BCAC4 001B9A24 90 01 00 64 */ stw r0, 0x64(r1)
/* 801BCAC8 001B9A28 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 801BCACC 001B9A2C 4B E7 02 B1 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
/* 801BCAD0 001B9A30 7F E3 FB 78 */ mr r3, r31
/* 801BCAD4 001B9A34 7F A4 EB 78 */ mr r4, r29
/* 801BCAD8 001B9A38 4B FF D9 C5 */ bl LoadSuitArm__10CGunWeaponFR13CStateManager
/* 801BCADC 001B9A3C 88 1F 00 24 */ lbz r0, 0x24(r31)
/* 801BCAE0 001B9A40 38 A0 00 01 */ li r5, 1
/* 801BCAE4 001B9A44 50 A0 36 72 */ rlwimi r0, r5, 6, 0x19, 0x19
/* 801BCAE8 001B9A48 3C 60 80 3D */ lis r3, lbl_803D1828@ha
/* 801BCAEC 001B9A4C 98 1F 00 24 */ stb r0, 0x24(r31)
/* 801BCAF0 001B9A50 38 63 18 28 */ addi r3, r3, lbl_803D1828@l
/* 801BCAF4 001B9A54 38 83 01 B5 */ addi r4, r3, 0x1b5
/* 801BCAF8 001B9A58 38 60 00 5C */ li r3, 0x5c
/* 801BCAFC 001B9A5C 88 1F 00 74 */ lbz r0, 0x74(r31)
/* 801BCB00 001B9A60 50 A0 36 72 */ rlwimi r0, r5, 6, 0x19, 0x19
/* 801BCB04 001B9A64 38 A0 00 00 */ li r5, 0
/* 801BCB08 001B9A68 98 1F 00 74 */ stb r0, 0x74(r31)
/* 801BCB0C 001B9A6C 48 15 8D 61 */ bl __nw__FUlPCcPCc
/* 801BCB10 001B9A70 7C 64 1B 79 */ or. r4, r3, r3
/* 801BCB14 001B9A74 41 82 00 10 */ beq lbl_801BCB24
/* 801BCB18 001B9A78 38 9F 00 10 */ addi r4, r31, 0x10
/* 801BCB1C 001B9A7C 48 01 01 19 */ bl __ct__14CGunControllerFR10CModelData
/* 801BCB20 001B9A80 7C 64 1B 78 */ mr r4, r3
lbl_801BCB24:
/* 801BCB24 001B9A84 38 7F 01 00 */ addi r3, r31, 0x100
/* 801BCB28 001B9A88 4B F6 0F AD */ bl "__as__Q24rstl28single_ptr<14CGunController>FRC14CGunController"
/* 801BCB2C 001B9A8C 80 01 01 14 */ lwz r0, 0x114(r1)
/* 801BCB30 001B9A90 83 E1 01 0C */ lwz r31, 0x10c(r1)
/* 801BCB34 001B9A94 83 C1 01 08 */ lwz r30, 0x108(r1)
/* 801BCB38 001B9A98 83 A1 01 04 */ lwz r29, 0x104(r1)
/* 801BCB3C 001B9A9C 7C 08 03 A6 */ mtlr r0
/* 801BCB40 001B9AA0 38 21 01 10 */ addi r1, r1, 0x110
/* 801BCB44 001B9AA4 4E 80 00 20 */ blr
.global LoadMuzzleFx__10CGunWeaponFf
LoadMuzzleFx__10CGunWeaponFf:
/* 801BCB48 001B9AA8 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 801BCB4C 001B9AAC 7C 08 02 A6 */ mflr r0
/* 801BCB50 001B9AB0 90 01 00 44 */ stw r0, 0x44(r1)
/* 801BCB54 001B9AB4 DB E1 00 38 */ stfd f31, 0x38(r1)
/* 801BCB58 001B9AB8 FF E0 08 90 */ fmr f31, f1
/* 801BCB5C 001B9ABC BF 21 00 1C */ stmw r25, 0x1c(r1)
/* 801BCB60 001B9AC0 7C 7B 1B 78 */ mr r27, r3
/* 801BCB64 001B9AC4 3C 60 80 3D */ lis r3, lbl_803D1828@ha
/* 801BCB68 001B9AC8 3B 80 00 00 */ li r28, 0
/* 801BCB6C 001B9ACC 3B DB 01 70 */ addi r30, r27, 0x170
/* 801BCB70 001B9AD0 3B BB 01 A8 */ addi r29, r27, 0x1a8
/* 801BCB74 001B9AD4 3B E3 18 28 */ addi r31, r3, lbl_803D1828@l
lbl_801BCB78:
/* 801BCB78 001B9AD8 38 9F 01 B5 */ addi r4, r31, 0x1b5
/* 801BCB7C 001B9ADC 3B 20 00 00 */ li r25, 0
/* 801BCB80 001B9AE0 38 60 03 40 */ li r3, 0x340
/* 801BCB84 001B9AE4 38 A0 00 00 */ li r5, 0
/* 801BCB88 001B9AE8 48 15 8C E5 */ bl __nw__FUlPCcPCc
/* 801BCB8C 001B9AEC 7C 7A 1B 79 */ or. r26, r3, r3
/* 801BCB90 001B9AF0 41 82 00 2C */ beq lbl_801BCBBC
/* 801BCB94 001B9AF4 7F C4 F3 78 */ mr r4, r30
/* 801BCB98 001B9AF8 38 61 00 10 */ addi r3, r1, 0x10
/* 801BCB9C 001B9AFC 48 18 43 0D */ bl __ct__6CTokenFRC6CToken
/* 801BCBA0 001B9B00 7F 43 D3 78 */ mr r3, r26
/* 801BCBA4 001B9B04 38 81 00 10 */ addi r4, r1, 0x10
/* 801BCBA8 001B9B08 3B 20 00 01 */ li r25, 1
/* 801BCBAC 001B9B0C 38 A0 00 00 */ li r5, 0
/* 801BCBB0 001B9B10 38 C0 00 01 */ li r6, 1
/* 801BCBB4 001B9B14 48 16 28 2D */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 801BCBB8 001B9B18 7C 7A 1B 78 */ mr r26, r3
lbl_801BCBBC:
/* 801BCBBC 001B9B1C 7F 20 07 75 */ extsb. r0, r25
/* 801BCBC0 001B9B20 41 82 00 10 */ beq lbl_801BCBD0
/* 801BCBC4 001B9B24 38 61 00 10 */ addi r3, r1, 0x10
/* 801BCBC8 001B9B28 38 80 00 00 */ li r4, 0
/* 801BCBCC 001B9B2C 48 18 42 75 */ bl __dt__6CTokenFv
lbl_801BCBD0:
/* 801BCBD0 001B9B30 7F 43 D3 78 */ mr r3, r26
/* 801BCBD4 001B9B34 38 80 00 00 */ li r4, 0
/* 801BCBD8 001B9B38 81 9A 00 00 */ lwz r12, 0(r26)
/* 801BCBDC 001B9B3C 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 801BCBE0 001B9B40 7D 89 03 A6 */ mtctr r12
/* 801BCBE4 001B9B44 4E 80 04 21 */ bctrl
/* 801BCBE8 001B9B48 7F 43 D3 78 */ mr r3, r26
/* 801BCBEC 001B9B4C FC 20 F8 90 */ fmr f1, f31
/* 801BCBF0 001B9B50 81 9A 00 00 */ lwz r12, 0(r26)
/* 801BCBF4 001B9B54 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 801BCBF8 001B9B58 7D 89 03 A6 */ mtctr r12
/* 801BCBFC 001B9B5C 4E 80 04 21 */ bctrl
/* 801BCC00 001B9B60 80 1B 01 A4 */ lwz r0, 0x1a4(r27)
/* 801BCC04 001B9B64 7C 7A 00 D0 */ neg r3, r26
/* 801BCC08 001B9B68 7C 63 D3 78 */ or r3, r3, r26
/* 801BCC0C 001B9B6C 93 41 00 0C */ stw r26, 0xc(r1)
/* 801BCC10 001B9B70 54 00 18 38 */ slwi r0, r0, 3
/* 801BCC14 001B9B74 54 63 0F FE */ srwi r3, r3, 0x1f
/* 801BCC18 001B9B78 7C 9D 02 15 */ add. r4, r29, r0
/* 801BCC1C 001B9B7C 98 61 00 08 */ stb r3, 8(r1)
/* 801BCC20 001B9B80 41 82 00 14 */ beq lbl_801BCC34
/* 801BCC24 001B9B84 98 64 00 00 */ stb r3, 0(r4)
/* 801BCC28 001B9B88 38 00 00 00 */ li r0, 0
/* 801BCC2C 001B9B8C 93 44 00 04 */ stw r26, 4(r4)
/* 801BCC30 001B9B90 98 01 00 08 */ stb r0, 8(r1)
lbl_801BCC34:
/* 801BCC34 001B9B94 80 7B 01 A4 */ lwz r3, 0x1a4(r27)
/* 801BCC38 001B9B98 88 01 00 08 */ lbz r0, 8(r1)
/* 801BCC3C 001B9B9C 38 63 00 01 */ addi r3, r3, 1
/* 801BCC40 001B9BA0 28 00 00 00 */ cmplwi r0, 0
/* 801BCC44 001B9BA4 90 7B 01 A4 */ stw r3, 0x1a4(r27)
/* 801BCC48 001B9BA8 41 82 00 24 */ beq lbl_801BCC6C
/* 801BCC4C 001B9BAC 80 61 00 0C */ lwz r3, 0xc(r1)
/* 801BCC50 001B9BB0 28 03 00 00 */ cmplwi r3, 0
/* 801BCC54 001B9BB4 41 82 00 18 */ beq lbl_801BCC6C
/* 801BCC58 001B9BB8 81 83 00 00 */ lwz r12, 0(r3)
/* 801BCC5C 001B9BBC 38 80 00 01 */ li r4, 1
/* 801BCC60 001B9BC0 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BCC64 001B9BC4 7D 89 03 A6 */ mtctr r12
/* 801BCC68 001B9BC8 4E 80 04 21 */ bctrl
lbl_801BCC6C:
/* 801BCC6C 001B9BCC 3B 9C 00 01 */ addi r28, r28, 1
/* 801BCC70 001B9BD0 3B DE 00 0C */ addi r30, r30, 0xc
/* 801BCC74 001B9BD4 2C 1C 00 02 */ cmpwi r28, 2
/* 801BCC78 001B9BD8 41 80 FF 00 */ blt lbl_801BCB78
/* 801BCC7C 001B9BDC CB E1 00 38 */ lfd f31, 0x38(r1)
/* 801BCC80 001B9BE0 BB 21 00 1C */ lmw r25, 0x1c(r1)
/* 801BCC84 001B9BE4 80 01 00 44 */ lwz r0, 0x44(r1)
/* 801BCC88 001B9BE8 7C 08 03 A6 */ mtlr r0
/* 801BCC8C 001B9BEC 38 21 00 40 */ addi r1, r1, 0x40
/* 801BCC90 001B9BF0 4E 80 00 20 */ blr
.global GetWeaponInfo__10CGunWeaponCFv
GetWeaponInfo__10CGunWeaponCFv:
/* 801BCC94 001B9BF4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BCC98 001B9BF8 7C 08 02 A6 */ mflr r0
/* 801BCC9C 001B9BFC 7C 64 1B 78 */ mr r4, r3
/* 801BCCA0 001B9C00 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BCCA4 001B9C04 80 6D A1 34 */ lwz r3, gpTweakPlayerGun@sda21(r13)
/* 801BCCA8 001B9C08 80 84 02 00 */ lwz r4, 0x200(r4)
/* 801BCCAC 001B9C0C 4B EB 2F D1 */ bl GetBeamInfo__15CTweakPlayerGunCFi
/* 801BCCB0 001B9C10 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BCCB4 001B9C14 7C 08 03 A6 */ mtlr r0
/* 801BCCB8 001B9C18 38 21 00 10 */ addi r1, r1, 0x10
/* 801BCCBC 001B9C1C 4E 80 00 20 */ blr
.global __dt__10CGunWeaponFv
__dt__10CGunWeaponFv:
/* 801BCCC0 001B9C20 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 801BCCC4 001B9C24 7C 08 02 A6 */ mflr r0
/* 801BCCC8 001B9C28 90 01 00 54 */ stw r0, 0x54(r1)
/* 801BCCCC 001B9C2C 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 801BCCD0 001B9C30 7C 9F 23 78 */ mr r31, r4
/* 801BCCD4 001B9C34 93 C1 00 48 */ stw r30, 0x48(r1)
/* 801BCCD8 001B9C38 7C 7E 1B 79 */ or. r30, r3, r3
/* 801BCCDC 001B9C3C 93 A1 00 44 */ stw r29, 0x44(r1)
/* 801BCCE0 001B9C40 93 81 00 40 */ stw r28, 0x40(r1)
/* 801BCCE4 001B9C44 41 82 03 54 */ beq lbl_801BD038
/* 801BCCE8 001B9C48 3C 80 80 3E */ lis r4, lbl_803E52B0@ha
/* 801BCCEC 001B9C4C 38 7E 01 D0 */ addi r3, r30, 0x1d0
/* 801BCCF0 001B9C50 38 04 52 B0 */ addi r0, r4, lbl_803E52B0@l
/* 801BCCF4 001B9C54 38 80 FF FF */ li r4, -1
/* 801BCCF8 001B9C58 90 1E 00 00 */ stw r0, 0(r30)
/* 801BCCFC 001B9C5C 48 00 03 61 */ bl sub_801bd05c
/* 801BCD00 001B9C60 34 1E 01 B8 */ addic. r0, r30, 0x1b8
/* 801BCD04 001B9C64 41 82 00 24 */ beq lbl_801BCD28
/* 801BCD08 001B9C68 80 7E 01 B8 */ lwz r3, 0x1b8(r30)
/* 801BCD0C 001B9C6C 28 03 00 00 */ cmplwi r3, 0
/* 801BCD10 001B9C70 41 82 00 18 */ beq lbl_801BCD28
/* 801BCD14 001B9C74 81 83 00 00 */ lwz r12, 0(r3)
/* 801BCD18 001B9C78 38 80 00 01 */ li r4, 1
/* 801BCD1C 001B9C7C 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BCD20 001B9C80 7D 89 03 A6 */ mtctr r12
/* 801BCD24 001B9C84 4E 80 04 21 */ bctrl
lbl_801BCD28:
/* 801BCD28 001B9C88 34 1E 01 A4 */ addic. r0, r30, 0x1a4
/* 801BCD2C 001B9C8C 41 82 00 60 */ beq lbl_801BCD8C
/* 801BCD30 001B9C90 3B 9E 01 A8 */ addi r28, r30, 0x1a8
/* 801BCD34 001B9C94 3B A0 00 00 */ li r29, 0
/* 801BCD38 001B9C98 48 00 00 40 */ b lbl_801BCD78
lbl_801BCD3C:
/* 801BCD3C 001B9C9C 28 1C 00 00 */ cmplwi r28, 0
/* 801BCD40 001B9CA0 41 82 00 30 */ beq lbl_801BCD70
/* 801BCD44 001B9CA4 88 1C 00 00 */ lbz r0, 0(r28)
/* 801BCD48 001B9CA8 28 00 00 00 */ cmplwi r0, 0
/* 801BCD4C 001B9CAC 41 82 00 24 */ beq lbl_801BCD70
/* 801BCD50 001B9CB0 80 7C 00 04 */ lwz r3, 4(r28)
/* 801BCD54 001B9CB4 28 03 00 00 */ cmplwi r3, 0
/* 801BCD58 001B9CB8 41 82 00 18 */ beq lbl_801BCD70
/* 801BCD5C 001B9CBC 81 83 00 00 */ lwz r12, 0(r3)
/* 801BCD60 001B9CC0 38 80 00 01 */ li r4, 1
/* 801BCD64 001B9CC4 81 8C 00 08 */ lwz r12, 8(r12)
/* 801BCD68 001B9CC8 7D 89 03 A6 */ mtctr r12
/* 801BCD6C 001B9CCC 4E 80 04 21 */ bctrl
lbl_801BCD70:
/* 801BCD70 001B9CD0 3B 9C 00 08 */ addi r28, r28, 8
/* 801BCD74 001B9CD4 3B BD 00 01 */ addi r29, r29, 1
lbl_801BCD78:
/* 801BCD78 001B9CD8 80 1E 01 A4 */ lwz r0, 0x1a4(r30)
/* 801BCD7C 001B9CDC 7C 1D 00 00 */ cmpw r29, r0
/* 801BCD80 001B9CE0 41 80 FF BC */ blt lbl_801BCD3C
/* 801BCD84 001B9CE4 38 00 00 00 */ li r0, 0
/* 801BCD88 001B9CE8 90 1E 01 A4 */ stw r0, 0x1a4(r30)
lbl_801BCD8C:
/* 801BCD8C 001B9CEC 34 1E 01 88 */ addic. r0, r30, 0x188
/* 801BCD90 001B9CF0 41 82 00 44 */ beq lbl_801BCDD4
/* 801BCD94 001B9CF4 3B 9E 01 8C */ addi r28, r30, 0x18c
/* 801BCD98 001B9CF8 3B A0 00 00 */ li r29, 0
/* 801BCD9C 001B9CFC 48 00 00 24 */ b lbl_801BCDC0
lbl_801BCDA0:
/* 801BCDA0 001B9D00 28 1C 00 00 */ cmplwi r28, 0
/* 801BCDA4 001B9D04 41 82 00 14 */ beq lbl_801BCDB8
/* 801BCDA8 001B9D08 41 82 00 10 */ beq lbl_801BCDB8
/* 801BCDAC 001B9D0C 7F 83 E3 78 */ mr r3, r28
/* 801BCDB0 001B9D10 38 80 00 00 */ li r4, 0
/* 801BCDB4 001B9D14 48 18 40 8D */ bl __dt__6CTokenFv
lbl_801BCDB8:
/* 801BCDB8 001B9D18 3B 9C 00 0C */ addi r28, r28, 0xc
/* 801BCDBC 001B9D1C 3B BD 00 01 */ addi r29, r29, 1
lbl_801BCDC0:
/* 801BCDC0 001B9D20 80 1E 01 88 */ lwz r0, 0x188(r30)
/* 801BCDC4 001B9D24 7C 1D 00 00 */ cmpw r29, r0
/* 801BCDC8 001B9D28 41 80 FF D8 */ blt lbl_801BCDA0
/* 801BCDCC 001B9D2C 38 00 00 00 */ li r0, 0
/* 801BCDD0 001B9D30 90 1E 01 88 */ stw r0, 0x188(r30)
lbl_801BCDD4:
/* 801BCDD4 001B9D34 34 1E 01 6C */ addic. r0, r30, 0x16c
/* 801BCDD8 001B9D38 41 82 00 44 */ beq lbl_801BCE1C
/* 801BCDDC 001B9D3C 3B 9E 01 70 */ addi r28, r30, 0x170
/* 801BCDE0 001B9D40 3B A0 00 00 */ li r29, 0
/* 801BCDE4 001B9D44 48 00 00 24 */ b lbl_801BCE08
lbl_801BCDE8:
/* 801BCDE8 001B9D48 28 1C 00 00 */ cmplwi r28, 0
/* 801BCDEC 001B9D4C 41 82 00 14 */ beq lbl_801BCE00
/* 801BCDF0 001B9D50 41 82 00 10 */ beq lbl_801BCE00
/* 801BCDF4 001B9D54 7F 83 E3 78 */ mr r3, r28
/* 801BCDF8 001B9D58 38 80 00 00 */ li r4, 0
/* 801BCDFC 001B9D5C 48 18 40 45 */ bl __dt__6CTokenFv
lbl_801BCE00:
/* 801BCE00 001B9D60 3B 9C 00 0C */ addi r28, r28, 0xc
/* 801BCE04 001B9D64 3B BD 00 01 */ addi r29, r29, 1
lbl_801BCE08:
/* 801BCE08 001B9D68 80 1E 01 6C */ lwz r0, 0x16c(r30)
/* 801BCE0C 001B9D6C 7C 1D 00 00 */ cmpw r29, r0
/* 801BCE10 001B9D70 41 80 FF D8 */ blt lbl_801BCDE8
/* 801BCE14 001B9D74 38 00 00 00 */ li r0, 0
/* 801BCE18 001B9D78 90 1E 01 6C */ stw r0, 0x16c(r30)
lbl_801BCE1C:
/* 801BCE1C 001B9D7C 34 1E 01 60 */ addic. r0, r30, 0x160
/* 801BCE20 001B9D80 41 82 00 18 */ beq lbl_801BCE38
/* 801BCE24 001B9D84 34 1E 01 60 */ addic. r0, r30, 0x160
/* 801BCE28 001B9D88 41 82 00 10 */ beq lbl_801BCE38
/* 801BCE2C 001B9D8C 38 7E 01 60 */ addi r3, r30, 0x160
/* 801BCE30 001B9D90 38 80 00 00 */ li r4, 0
/* 801BCE34 001B9D94 48 18 40 0D */ bl __dt__6CTokenFv
lbl_801BCE38:
/* 801BCE38 001B9D98 34 1E 01 44 */ addic. r0, r30, 0x144
/* 801BCE3C 001B9D9C 41 82 00 44 */ beq lbl_801BCE80
/* 801BCE40 001B9DA0 3B 9E 01 48 */ addi r28, r30, 0x148
/* 801BCE44 001B9DA4 3B A0 00 00 */ li r29, 0
/* 801BCE48 001B9DA8 48 00 00 24 */ b lbl_801BCE6C
lbl_801BCE4C:
/* 801BCE4C 001B9DAC 28 1C 00 00 */ cmplwi r28, 0
/* 801BCE50 001B9DB0 41 82 00 14 */ beq lbl_801BCE64
/* 801BCE54 001B9DB4 41 82 00 10 */ beq lbl_801BCE64
/* 801BCE58 001B9DB8 7F 83 E3 78 */ mr r3, r28
/* 801BCE5C 001B9DBC 38 80 00 00 */ li r4, 0
/* 801BCE60 001B9DC0 48 18 3F E1 */ bl __dt__6CTokenFv
lbl_801BCE64:
/* 801BCE64 001B9DC4 3B 9C 00 0C */ addi r28, r28, 0xc
/* 801BCE68 001B9DC8 3B BD 00 01 */ addi r29, r29, 1
lbl_801BCE6C:
/* 801BCE6C 001B9DCC 80 1E 01 44 */ lwz r0, 0x144(r30)
/* 801BCE70 001B9DD0 7C 1D 00 00 */ cmpw r29, r0
/* 801BCE74 001B9DD4 41 80 FF D8 */ blt lbl_801BCE4C
/* 801BCE78 001B9DD8 38 00 00 00 */ li r0, 0
/* 801BCE7C 001B9DDC 90 1E 01 44 */ stw r0, 0x144(r30)
lbl_801BCE80:
/* 801BCE80 001B9DE0 34 1E 01 3C */ addic. r0, r30, 0x13c
/* 801BCE84 001B9DE4 41 82 00 10 */ beq lbl_801BCE94
/* 801BCE88 001B9DE8 38 7E 01 3C */ addi r3, r30, 0x13c
/* 801BCE8C 001B9DEC 38 80 00 00 */ li r4, 0
/* 801BCE90 001B9DF0 48 18 3F B1 */ bl __dt__6CTokenFv
lbl_801BCE94:
/* 801BCE94 001B9DF4 34 1E 01 2C */ addic. r0, r30, 0x12c
/* 801BCE98 001B9DF8 41 82 00 50 */ beq lbl_801BCEE8
/* 801BCE9C 001B9DFC 80 1E 01 30 */ lwz r0, 0x130(r30)
/* 801BCEA0 001B9E00 83 9E 01 38 */ lwz r28, 0x138(r30)
/* 801BCEA4 001B9E04 54 00 18 38 */ slwi r0, r0, 3
/* 801BCEA8 001B9E08 7F BC 02 14 */ add r29, r28, r0
/* 801BCEAC 001B9E0C 93 81 00 2C */ stw r28, 0x2c(r1)
/* 801BCEB0 001B9E10 93 A1 00 34 */ stw r29, 0x34(r1)
/* 801BCEB4 001B9E14 93 A1 00 30 */ stw r29, 0x30(r1)
/* 801BCEB8 001B9E18 93 81 00 28 */ stw r28, 0x28(r1)
/* 801BCEBC 001B9E1C 48 00 00 14 */ b lbl_801BCED0
lbl_801BCEC0:
/* 801BCEC0 001B9E20 7F 83 E3 78 */ mr r3, r28
/* 801BCEC4 001B9E24 38 80 FF FF */ li r4, -1
/* 801BCEC8 001B9E28 48 18 3F 79 */ bl __dt__6CTokenFv
/* 801BCECC 001B9E2C 3B 9C 00 08 */ addi r28, r28, 8
lbl_801BCED0:
/* 801BCED0 001B9E30 7C 1C E8 40 */ cmplw r28, r29
/* 801BCED4 001B9E34 40 82 FF EC */ bne lbl_801BCEC0
/* 801BCED8 001B9E38 80 7E 01 38 */ lwz r3, 0x138(r30)
/* 801BCEDC 001B9E3C 28 03 00 00 */ cmplwi r3, 0
/* 801BCEE0 001B9E40 41 82 00 08 */ beq lbl_801BCEE8
/* 801BCEE4 001B9E44 48 15 8A 4D */ bl Free__7CMemoryFPCv
lbl_801BCEE8:
/* 801BCEE8 001B9E48 34 1E 01 1C */ addic. r0, r30, 0x11c
/* 801BCEEC 001B9E4C 41 82 00 50 */ beq lbl_801BCF3C
/* 801BCEF0 001B9E50 80 1E 01 20 */ lwz r0, 0x120(r30)
/* 801BCEF4 001B9E54 83 9E 01 28 */ lwz r28, 0x128(r30)
/* 801BCEF8 001B9E58 54 00 18 38 */ slwi r0, r0, 3
/* 801BCEFC 001B9E5C 7F BC 02 14 */ add r29, r28, r0
/* 801BCF00 001B9E60 93 81 00 1C */ stw r28, 0x1c(r1)
/* 801BCF04 001B9E64 93 A1 00 24 */ stw r29, 0x24(r1)
/* 801BCF08 001B9E68 93 A1 00 20 */ stw r29, 0x20(r1)
/* 801BCF0C 001B9E6C 93 81 00 18 */ stw r28, 0x18(r1)
/* 801BCF10 001B9E70 48 00 00 14 */ b lbl_801BCF24
lbl_801BCF14:
/* 801BCF14 001B9E74 7F 83 E3 78 */ mr r3, r28
/* 801BCF18 001B9E78 38 80 FF FF */ li r4, -1
/* 801BCF1C 001B9E7C 48 18 3F 25 */ bl __dt__6CTokenFv
/* 801BCF20 001B9E80 3B 9C 00 08 */ addi r28, r28, 8
lbl_801BCF24:
/* 801BCF24 001B9E84 7C 1C E8 40 */ cmplw r28, r29
/* 801BCF28 001B9E88 40 82 FF EC */ bne lbl_801BCF14
/* 801BCF2C 001B9E8C 80 7E 01 28 */ lwz r3, 0x128(r30)
/* 801BCF30 001B9E90 28 03 00 00 */ cmplwi r3, 0
/* 801BCF34 001B9E94 41 82 00 08 */ beq lbl_801BCF3C
/* 801BCF38 001B9E98 48 15 89 F9 */ bl Free__7CMemoryFPCv
lbl_801BCF3C:
/* 801BCF3C 001B9E9C 34 1E 01 0C */ addic. r0, r30, 0x10c
/* 801BCF40 001B9EA0 41 82 00 50 */ beq lbl_801BCF90
/* 801BCF44 001B9EA4 80 1E 01 10 */ lwz r0, 0x110(r30)
/* 801BCF48 001B9EA8 83 9E 01 18 */ lwz r28, 0x118(r30)
/* 801BCF4C 001B9EAC 54 00 18 38 */ slwi r0, r0, 3
/* 801BCF50 001B9EB0 7F BC 02 14 */ add r29, r28, r0
/* 801BCF54 001B9EB4 93 81 00 0C */ stw r28, 0xc(r1)
/* 801BCF58 001B9EB8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801BCF5C 001B9EBC 93 A1 00 10 */ stw r29, 0x10(r1)
/* 801BCF60 001B9EC0 93 81 00 08 */ stw r28, 8(r1)
/* 801BCF64 001B9EC4 48 00 00 14 */ b lbl_801BCF78
lbl_801BCF68:
/* 801BCF68 001B9EC8 7F 83 E3 78 */ mr r3, r28
/* 801BCF6C 001B9ECC 38 80 FF FF */ li r4, -1
/* 801BCF70 001B9ED0 48 18 3E D1 */ bl __dt__6CTokenFv
/* 801BCF74 001B9ED4 3B 9C 00 08 */ addi r28, r28, 8
lbl_801BCF78:
/* 801BCF78 001B9ED8 7C 1C E8 40 */ cmplw r28, r29
/* 801BCF7C 001B9EDC 40 82 FF EC */ bne lbl_801BCF68
/* 801BCF80 001B9EE0 80 7E 01 18 */ lwz r3, 0x118(r30)
/* 801BCF84 001B9EE4 28 03 00 00 */ cmplwi r3, 0
/* 801BCF88 001B9EE8 41 82 00 08 */ beq lbl_801BCF90
/* 801BCF8C 001B9EEC 48 15 89 A5 */ bl Free__7CMemoryFPCv
lbl_801BCF90:
/* 801BCF90 001B9EF0 34 1E 01 04 */ addic. r0, r30, 0x104
/* 801BCF94 001B9EF4 41 82 00 10 */ beq lbl_801BCFA4
/* 801BCF98 001B9EF8 38 7E 01 04 */ addi r3, r30, 0x104
/* 801BCF9C 001B9EFC 38 80 00 00 */ li r4, 0
/* 801BCFA0 001B9F00 48 18 3E A1 */ bl __dt__6CTokenFv
lbl_801BCFA4:
/* 801BCFA4 001B9F04 38 7E 01 00 */ addi r3, r30, 0x100
/* 801BCFA8 001B9F08 38 80 FF FF */ li r4, -1
/* 801BCFAC 001B9F0C 4B F6 2D 5D */ bl "__dt__Q24rstl28single_ptr<14CGunController>Fv"
/* 801BCFB0 001B9F10 34 1E 00 B0 */ addic. r0, r30, 0xb0
/* 801BCFB4 001B9F14 41 82 00 24 */ beq lbl_801BCFD8
/* 801BCFB8 001B9F18 88 1E 00 FC */ lbz r0, 0xfc(r30)
/* 801BCFBC 001B9F1C 28 00 00 00 */ cmplwi r0, 0
/* 801BCFC0 001B9F20 41 82 00 10 */ beq lbl_801BCFD0
/* 801BCFC4 001B9F24 38 7E 00 B0 */ addi r3, r30, 0xb0
/* 801BCFC8 001B9F28 38 80 FF FF */ li r4, -1
/* 801BCFCC 001B9F2C 4B F5 9A 81 */ bl __dt__10CModelDataFv
lbl_801BCFD0:
/* 801BCFD0 001B9F30 38 00 00 00 */ li r0, 0
/* 801BCFD4 001B9F34 98 1E 00 FC */ stb r0, 0xfc(r30)
lbl_801BCFD8:
/* 801BCFD8 001B9F38 34 1E 00 60 */ addic. r0, r30, 0x60
/* 801BCFDC 001B9F3C 41 82 00 24 */ beq lbl_801BD000
/* 801BCFE0 001B9F40 88 1E 00 AC */ lbz r0, 0xac(r30)
/* 801BCFE4 001B9F44 28 00 00 00 */ cmplwi r0, 0
/* 801BCFE8 001B9F48 41 82 00 10 */ beq lbl_801BCFF8
/* 801BCFEC 001B9F4C 38 7E 00 60 */ addi r3, r30, 0x60
/* 801BCFF0 001B9F50 38 80 FF FF */ li r4, -1
/* 801BCFF4 001B9F54 4B F5 9A 59 */ bl __dt__10CModelDataFv
lbl_801BCFF8:
/* 801BCFF8 001B9F58 38 00 00 00 */ li r0, 0
/* 801BCFFC 001B9F5C 98 1E 00 AC */ stb r0, 0xac(r30)
lbl_801BD000:
/* 801BD000 001B9F60 34 1E 00 10 */ addic. r0, r30, 0x10
/* 801BD004 001B9F64 41 82 00 24 */ beq lbl_801BD028
/* 801BD008 001B9F68 88 1E 00 5C */ lbz r0, 0x5c(r30)
/* 801BD00C 001B9F6C 28 00 00 00 */ cmplwi r0, 0
/* 801BD010 001B9F70 41 82 00 10 */ beq lbl_801BD020
/* 801BD014 001B9F74 38 7E 00 10 */ addi r3, r30, 0x10
/* 801BD018 001B9F78 38 80 FF FF */ li r4, -1
/* 801BD01C 001B9F7C 4B F5 9A 31 */ bl __dt__10CModelDataFv
lbl_801BD020:
/* 801BD020 001B9F80 38 00 00 00 */ li r0, 0
/* 801BD024 001B9F84 98 1E 00 5C */ stb r0, 0x5c(r30)
lbl_801BD028:
/* 801BD028 001B9F88 7F E0 07 35 */ extsh. r0, r31
/* 801BD02C 001B9F8C 40 81 00 0C */ ble lbl_801BD038
/* 801BD030 001B9F90 7F C3 F3 78 */ mr r3, r30
/* 801BD034 001B9F94 48 15 88 FD */ bl Free__7CMemoryFPCv
lbl_801BD038:
/* 801BD038 001B9F98 80 01 00 54 */ lwz r0, 0x54(r1)
/* 801BD03C 001B9F9C 7F C3 F3 78 */ mr r3, r30
/* 801BD040 001B9FA0 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 801BD044 001B9FA4 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 801BD048 001B9FA8 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 801BD04C 001B9FAC 83 81 00 40 */ lwz r28, 0x40(r1)
/* 801BD050 001B9FB0 7C 08 03 A6 */ mtlr r0
/* 801BD054 001B9FB4 38 21 00 50 */ addi r1, r1, 0x50
/* 801BD058 001B9FB8 4E 80 00 20 */ blr
.global sub_801bd05c
sub_801bd05c:
/* 801BD05C 001B9FBC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801BD060 001B9FC0 7C 08 02 A6 */ mflr r0
/* 801BD064 001B9FC4 90 01 00 14 */ stw r0, 0x14(r1)
/* 801BD068 001B9FC8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801BD06C 001B9FCC 7C 7F 1B 79 */ or. r31, r3, r3
/* 801BD070 001B9FD0 41 82 01 28 */ beq lbl_801BD198
/* 801BD074 001B9FD4 34 1F 00 24 */ addic. r0, r31, 0x24
/* 801BD078 001B9FD8 41 82 00 58 */ beq lbl_801BD0D0
/* 801BD07C 001B9FDC 80 DF 00 24 */ lwz r6, 0x24(r31)
/* 801BD080 001B9FE0 38 60 00 00 */ li r3, 0
/* 801BD084 001B9FE4 2C 06 00 00 */ cmpwi r6, 0
/* 801BD088 001B9FE8 40 81 00 40 */ ble lbl_801BD0C8
/* 801BD08C 001B9FEC 2C 06 00 08 */ cmpwi r6, 8
/* 801BD090 001B9FF0 38 A6 FF F8 */ addi r5, r6, -8
/* 801BD094 001B9FF4 40 81 00 20 */ ble lbl_801BD0B4
/* 801BD098 001B9FF8 38 05 00 07 */ addi r0, r5, 7
/* 801BD09C 001B9FFC 54 00 E8 FE */ srwi r0, r0, 3
/* 801BD0A0 001BA000 7C 09 03 A6 */ mtctr r0
/* 801BD0A4 001BA004 2C 05 00 00 */ cmpwi r5, 0
/* 801BD0A8 001BA008 40 81 00 0C */ ble lbl_801BD0B4
lbl_801BD0AC:
/* 801BD0AC 001BA00C 38 63 00 08 */ addi r3, r3, 8
/* 801BD0B0 001BA010 42 00 FF FC */ bdnz lbl_801BD0AC
lbl_801BD0B4:
/* 801BD0B4 001BA014 7C 03 30 50 */ subf r0, r3, r6
/* 801BD0B8 001BA018 7C 09 03 A6 */ mtctr r0
/* 801BD0BC 001BA01C 7C 03 30 00 */ cmpw r3, r6
/* 801BD0C0 001BA020 40 80 00 08 */ bge lbl_801BD0C8
lbl_801BD0C4:
/* 801BD0C4 001BA024 42 00 00 00 */ bdnz lbl_801BD0C4
lbl_801BD0C8:
/* 801BD0C8 001BA028 38 00 00 00 */ li r0, 0
/* 801BD0CC 001BA02C 90 1F 00 24 */ stw r0, 0x24(r31)
lbl_801BD0D0:
/* 801BD0D0 001BA030 34 1F 00 1C */ addic. r0, r31, 0x1c
/* 801BD0D4 001BA034 41 82 00 58 */ beq lbl_801BD12C
/* 801BD0D8 001BA038 80 DF 00 1C */ lwz r6, 0x1c(r31)
/* 801BD0DC 001BA03C 38 60 00 00 */ li r3, 0
/* 801BD0E0 001BA040 2C 06 00 00 */ cmpwi r6, 0
/* 801BD0E4 001BA044 40 81 00 40 */ ble lbl_801BD124
/* 801BD0E8 001BA048 2C 06 00 08 */ cmpwi r6, 8
/* 801BD0EC 001BA04C 38 A6 FF F8 */ addi r5, r6, -8
/* 801BD0F0 001BA050 40 81 00 20 */ ble lbl_801BD110
/* 801BD0F4 001BA054 38 05 00 07 */ addi r0, r5, 7
/* 801BD0F8 001BA058 54 00 E8 FE */ srwi r0, r0, 3
/* 801BD0FC 001BA05C 7C 09 03 A6 */ mtctr r0
/* 801BD100 001BA060 2C 05 00 00 */ cmpwi r5, 0
/* 801BD104 001BA064 40 81 00 0C */ ble lbl_801BD110
lbl_801BD108:
/* 801BD108 001BA068 38 63 00 08 */ addi r3, r3, 8
/* 801BD10C 001BA06C 42 00 FF FC */ bdnz lbl_801BD108
lbl_801BD110:
/* 801BD110 001BA070 7C 03 30 50 */ subf r0, r3, r6
/* 801BD114 001BA074 7C 09 03 A6 */ mtctr r0
/* 801BD118 001BA078 7C 03 30 00 */ cmpw r3, r6
/* 801BD11C 001BA07C 40 80 00 08 */ bge lbl_801BD124
lbl_801BD120:
/* 801BD120 001BA080 42 00 00 00 */ bdnz lbl_801BD120
lbl_801BD124:
/* 801BD124 001BA084 38 00 00 00 */ li r0, 0
/* 801BD128 001BA088 90 1F 00 1C */ stw r0, 0x1c(r31)
lbl_801BD12C:
/* 801BD12C 001BA08C 28 1F 00 00 */ cmplwi r31, 0
/* 801BD130 001BA090 41 82 00 58 */ beq lbl_801BD188
/* 801BD134 001BA094 80 DF 00 00 */ lwz r6, 0(r31)
/* 801BD138 001BA098 38 60 00 00 */ li r3, 0
/* 801BD13C 001BA09C 2C 06 00 00 */ cmpwi r6, 0
/* 801BD140 001BA0A0 40 81 00 40 */ ble lbl_801BD180
/* 801BD144 001BA0A4 2C 06 00 08 */ cmpwi r6, 8
/* 801BD148 001BA0A8 38 A6 FF F8 */ addi r5, r6, -8
/* 801BD14C 001BA0AC 40 81 00 20 */ ble lbl_801BD16C
/* 801BD150 001BA0B0 38 05 00 07 */ addi r0, r5, 7
/* 801BD154 001BA0B4 54 00 E8 FE */ srwi r0, r0, 3
/* 801BD158 001BA0B8 7C 09 03 A6 */ mtctr r0
/* 801BD15C 001BA0BC 2C 05 00 00 */ cmpwi r5, 0
/* 801BD160 001BA0C0 40 81 00 0C */ ble lbl_801BD16C
lbl_801BD164:
/* 801BD164 001BA0C4 38 63 00 08 */ addi r3, r3, 8
/* 801BD168 001BA0C8 42 00 FF FC */ bdnz lbl_801BD164
lbl_801BD16C:
/* 801BD16C 001BA0CC 7C 03 30 50 */ subf r0, r3, r6
/* 801BD170 001BA0D0 7C 09 03 A6 */ mtctr r0
/* 801BD174 001BA0D4 7C 03 30 00 */ cmpw r3, r6
/* 801BD178 001BA0D8 40 80 00 08 */ bge lbl_801BD180
lbl_801BD17C:
/* 801BD17C 001BA0DC 42 00 00 00 */ bdnz lbl_801BD17C
lbl_801BD180:
/* 801BD180 001BA0E0 38 00 00 00 */ li r0, 0
/* 801BD184 001BA0E4 90 1F 00 00 */ stw r0, 0(r31)
lbl_801BD188:
/* 801BD188 001BA0E8 7C 80 07 35 */ extsh. r0, r4
/* 801BD18C 001BA0EC 40 81 00 0C */ ble lbl_801BD198
/* 801BD190 001BA0F0 7F E3 FB 78 */ mr r3, r31
/* 801BD194 001BA0F4 48 15 87 9D */ bl Free__7CMemoryFPCv
lbl_801BD198:
/* 801BD198 001BA0F8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801BD19C 001BA0FC 7F E3 FB 78 */ mr r3, r31
/* 801BD1A0 001BA100 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801BD1A4 001BA104 7C 08 03 A6 */ mtlr r0
/* 801BD1A8 001BA108 38 21 00 10 */ addi r1, r1, 0x10
/* 801BD1AC 001BA10C 4E 80 00 20 */ blr
.global __ct__10CGunWeaponFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
__ct__10CGunWeaponFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f:
/* 801BD1B0 001BA110 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 801BD1B4 001BA114 7C 08 02 A6 */ mflr r0
/* 801BD1B8 001BA118 3D 20 80 3E */ lis r9, lbl_803E52B0@ha
/* 801BD1BC 001BA11C 90 01 00 44 */ stw r0, 0x44(r1)
/* 801BD1C0 001BA120 38 09 52 B0 */ addi r0, r9, lbl_803E52B0@l
/* 801BD1C4 001BA124 39 20 00 00 */ li r9, 0
/* 801BD1C8 001BA128 BF 41 00 28 */ stmw r26, 0x28(r1)
/* 801BD1CC 001BA12C 7C 7E 1B 78 */ mr r30, r3
/* 801BD1D0 001BA130 7C BB 2B 78 */ mr r27, r5
/* 801BD1D4 001BA134 3C 60 41 4E */ lis r3, 0x414E4353@ha
/* 801BD1D8 001BA138 7C 9F 23 78 */ mr r31, r4
/* 801BD1DC 001BA13C 7C DC 33 78 */ mr r28, r6
/* 801BD1E0 001BA140 7C FD 3B 78 */ mr r29, r7
/* 801BD1E4 001BA144 38 A1 00 20 */ addi r5, r1, 0x20
/* 801BD1E8 001BA148 90 1E 00 00 */ stw r0, 0(r30)
/* 801BD1EC 001BA14C 38 03 43 53 */ addi r0, r3, 0x414E4353@l
/* 801BD1F0 001BA150 38 61 00 18 */ addi r3, r1, 0x18
/* 801BD1F4 001BA154 C0 08 00 00 */ lfs f0, 0(r8)
/* 801BD1F8 001BA158 D0 1E 00 04 */ stfs f0, 4(r30)
/* 801BD1FC 001BA15C C0 08 00 04 */ lfs f0, 4(r8)
/* 801BD200 001BA160 D0 1E 00 08 */ stfs f0, 8(r30)
/* 801BD204 001BA164 C0 08 00 08 */ lfs f0, 8(r8)
/* 801BD208 001BA168 D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 801BD20C 001BA16C 99 3E 00 5C */ stb r9, 0x5c(r30)
/* 801BD210 001BA170 99 3E 00 AC */ stb r9, 0xac(r30)
/* 801BD214 001BA174 99 3E 00 FC */ stb r9, 0xfc(r30)
/* 801BD218 001BA178 91 3E 01 00 */ stw r9, 0x100(r30)
/* 801BD21C 001BA17C 90 01 00 20 */ stw r0, 0x20(r1)
/* 801BD220 001BA180 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 801BD224 001BA184 93 E1 00 24 */ stw r31, 0x24(r1)
/* 801BD228 001BA188 81 84 00 00 */ lwz r12, 0(r4)
/* 801BD22C 001BA18C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 801BD230 001BA190 7D 89 03 A6 */ mtctr r12
/* 801BD234 001BA194 4E 80 04 21 */ bctrl
/* 801BD238 001BA198 38 7E 01 04 */ addi r3, r30, 0x104
/* 801BD23C 001BA19C 38 81 00 18 */ addi r4, r1, 0x18
/* 801BD240 001BA1A0 48 18 3C 69 */ bl __ct__6CTokenFRC6CToken
/* 801BD244 001BA1A4 38 61 00 18 */ addi r3, r1, 0x18
/* 801BD248 001BA1A8 38 80 FF FF */ li r4, -1
/* 801BD24C 001BA1AC 48 18 3B F5 */ bl __dt__6CTokenFv
/* 801BD250 001BA1B0 38 00 00 00 */ li r0, 0
/* 801BD254 001BA1B4 3C 60 80 3D */ lis r3, lbl_803D17DC@ha
/* 801BD258 001BA1B8 90 1E 01 10 */ stw r0, 0x110(r30)
/* 801BD25C 001BA1BC 38 83 17 DC */ addi r4, r3, lbl_803D17DC@l
/* 801BD260 001BA1C0 38 61 00 10 */ addi r3, r1, 0x10
/* 801BD264 001BA1C4 80 A4 00 00 */ lwz r5, 0(r4)
/* 801BD268 001BA1C8 90 1E 01 14 */ stw r0, 0x114(r30)
/* 801BD26C 001BA1CC 90 1E 01 18 */ stw r0, 0x118(r30)
/* 801BD270 001BA1D0 90 1E 01 20 */ stw r0, 0x120(r30)
/* 801BD274 001BA1D4 90 1E 01 24 */ stw r0, 0x124(r30)
/* 801BD278 001BA1D8 90 1E 01 28 */ stw r0, 0x128(r30)
/* 801BD27C 001BA1DC 90 1E 01 30 */ stw r0, 0x130(r30)
/* 801BD280 001BA1E0 90 1E 01 34 */ stw r0, 0x134(r30)
/* 801BD284 001BA1E4 90 1E 01 38 */ stw r0, 0x138(r30)
/* 801BD288 001BA1E8 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 801BD28C 001BA1EC 81 84 00 00 */ lwz r12, 0(r4)
/* 801BD290 001BA1F0 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 801BD294 001BA1F4 7D 89 03 A6 */ mtctr r12
/* 801BD298 001BA1F8 4E 80 04 21 */ bctrl
/* 801BD29C 001BA1FC 38 7E 01 3C */ addi r3, r30, 0x13c
/* 801BD2A0 001BA200 38 81 00 10 */ addi r4, r1, 0x10
/* 801BD2A4 001BA204 48 18 3C 05 */ bl __ct__6CTokenFRC6CToken
/* 801BD2A8 001BA208 38 61 00 10 */ addi r3, r1, 0x10
/* 801BD2AC 001BA20C 38 80 FF FF */ li r4, -1
/* 801BD2B0 001BA210 48 18 3B 91 */ bl __dt__6CTokenFv
/* 801BD2B4 001BA214 38 00 00 00 */ li r0, 0
/* 801BD2B8 001BA218 7F 63 DB 78 */ mr r3, r27
/* 801BD2BC 001BA21C 90 1E 01 44 */ stw r0, 0x144(r30)
/* 801BD2C0 001BA220 48 00 01 29 */ bl GetWeaponIndex__F11EWeaponType
/* 801BD2C4 001BA224 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 801BD2C8 001BA228 3C A0 80 3D */ lis r5, lbl_803D17A0@ha
/* 801BD2CC 001BA22C 54 60 10 3A */ slwi r0, r3, 2
/* 801BD2D0 001BA230 38 61 00 08 */ addi r3, r1, 8
/* 801BD2D4 001BA234 81 84 00 00 */ lwz r12, 0(r4)
/* 801BD2D8 001BA238 38 A5 17 A0 */ addi r5, r5, lbl_803D17A0@l
/* 801BD2DC 001BA23C 7C A5 00 2E */ lwzx r5, r5, r0
/* 801BD2E0 001BA240 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 801BD2E4 001BA244 7D 89 03 A6 */ mtctr r12
/* 801BD2E8 001BA248 4E 80 04 21 */ bctrl
/* 801BD2EC 001BA24C 3B 5E 01 60 */ addi r26, r30, 0x160
/* 801BD2F0 001BA250 38 81 00 08 */ addi r4, r1, 8
/* 801BD2F4 001BA254 7F 43 D3 78 */ mr r3, r26
/* 801BD2F8 001BA258 48 18 3B B1 */ bl __ct__6CTokenFRC6CToken
/* 801BD2FC 001BA25C 38 00 00 00 */ li r0, 0
/* 801BD300 001BA260 38 61 00 08 */ addi r3, r1, 8
/* 801BD304 001BA264 90 1A 00 08 */ stw r0, 8(r26)
/* 801BD308 001BA268 38 80 FF FF */ li r4, -1
/* 801BD30C 001BA26C 48 18 3B 35 */ bl __dt__6CTokenFv
/* 801BD310 001BA270 38 80 00 00 */ li r4, 0
/* 801BD314 001BA274 7F 63 DB 78 */ mr r3, r27
/* 801BD318 001BA278 90 9E 01 6C */ stw r4, 0x16c(r30)
/* 801BD31C 001BA27C 90 9E 01 88 */ stw r4, 0x188(r30)
/* 801BD320 001BA280 90 9E 01 A4 */ stw r4, 0x1a4(r30)
/* 801BD324 001BA284 90 9E 01 B8 */ stw r4, 0x1b8(r30)
/* 801BD328 001BA288 90 9E 01 BC */ stw r4, 0x1bc(r30)
/* 801BD32C 001BA28C 93 7E 01 C0 */ stw r27, 0x1c0(r30)
/* 801BD330 001BA290 A0 1C 00 00 */ lhz r0, 0(r28)
/* 801BD334 001BA294 B0 1E 01 C4 */ sth r0, 0x1c4(r30)
/* 801BD338 001BA298 93 BE 01 C8 */ stw r29, 0x1c8(r30)
/* 801BD33C 001BA29C 90 9E 01 CC */ stw r4, 0x1cc(r30)
/* 801BD340 001BA2A0 90 9E 01 D0 */ stw r4, 0x1d0(r30)
/* 801BD344 001BA2A4 90 9E 01 EC */ stw r4, 0x1ec(r30)
/* 801BD348 001BA2A8 90 9E 01 F4 */ stw r4, 0x1f4(r30)
/* 801BD34C 001BA2AC 48 00 00 9D */ bl GetWeaponIndex__F11EWeaponType
/* 801BD350 001BA2B0 90 7E 02 00 */ stw r3, 0x200(r30)
/* 801BD354 001BA2B4 38 80 00 00 */ li r4, 0
/* 801BD358 001BA2B8 7F C3 F3 78 */ mr r3, r30
/* 801BD35C 001BA2BC 90 9E 02 04 */ stw r4, 0x204(r30)
/* 801BD360 001BA2C0 90 9E 02 08 */ stw r4, 0x208(r30)
/* 801BD364 001BA2C4 80 1E 02 00 */ lwz r0, 0x200(r30)
/* 801BD368 001BA2C8 90 1E 02 0C */ stw r0, 0x20c(r30)
/* 801BD36C 001BA2CC 90 9E 02 10 */ stw r4, 0x210(r30)
/* 801BD370 001BA2D0 93 FE 02 14 */ stw r31, 0x214(r30)
/* 801BD374 001BA2D4 88 1E 02 18 */ lbz r0, 0x218(r30)
/* 801BD378 001BA2D8 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 801BD37C 001BA2DC 98 1E 02 18 */ stb r0, 0x218(r30)
/* 801BD380 001BA2E0 88 1E 02 18 */ lbz r0, 0x218(r30)
/* 801BD384 001BA2E4 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 801BD388 001BA2E8 98 1E 02 18 */ stb r0, 0x218(r30)
/* 801BD38C 001BA2EC 88 1E 02 18 */ lbz r0, 0x218(r30)
/* 801BD390 001BA2F0 50 80 2E B4 */ rlwimi r0, r4, 5, 0x1a, 0x1a
/* 801BD394 001BA2F4 98 1E 02 18 */ stb r0, 0x218(r30)
/* 801BD398 001BA2F8 88 1E 02 18 */ lbz r0, 0x218(r30)
/* 801BD39C 001BA2FC 50 80 26 F6 */ rlwimi r0, r4, 4, 0x1b, 0x1b
/* 801BD3A0 001BA300 98 1E 02 18 */ stb r0, 0x218(r30)
/* 801BD3A4 001BA304 88 1E 02 18 */ lbz r0, 0x218(r30)
/* 801BD3A8 001BA308 50 80 1F 38 */ rlwimi r0, r4, 3, 0x1c, 0x1c
/* 801BD3AC 001BA30C 98 1E 02 18 */ stb r0, 0x218(r30)
/* 801BD3B0 001BA310 88 1E 02 18 */ lbz r0, 0x218(r30)
/* 801BD3B4 001BA314 50 80 17 7A */ rlwimi r0, r4, 2, 0x1d, 0x1d
/* 801BD3B8 001BA318 98 1E 02 18 */ stb r0, 0x218(r30)
/* 801BD3BC 001BA31C 80 9E 02 00 */ lwz r4, 0x200(r30)
/* 801BD3C0 001BA320 4B FF DD D5 */ bl AllocResPools__10CGunWeaponFQ212CPlayerState7EBeamId
/* 801BD3C4 001BA324 80 9E 02 00 */ lwz r4, 0x200(r30)
/* 801BD3C8 001BA328 7F C3 F3 78 */ mr r3, r30
/* 801BD3CC 001BA32C 4B FF D2 ED */ bl BuildDependencyList__10CGunWeaponFQ212CPlayerState7EBeamId
/* 801BD3D0 001BA330 7F C3 F3 78 */ mr r3, r30
/* 801BD3D4 001BA334 BB 41 00 28 */ lmw r26, 0x28(r1)
/* 801BD3D8 001BA338 80 01 00 44 */ lwz r0, 0x44(r1)
/* 801BD3DC 001BA33C 7C 08 03 A6 */ mtlr r0
/* 801BD3E0 001BA340 38 21 00 40 */ addi r1, r1, 0x40
/* 801BD3E4 001BA344 4E 80 00 20 */ blr
.global GetWeaponIndex__F11EWeaponType
GetWeaponIndex__F11EWeaponType:
/* 801BD3E8 001BA348 2C 03 00 03 */ cmpwi r3, 3
/* 801BD3EC 001BA34C 41 82 00 44 */ beq lbl_801BD430
/* 801BD3F0 001BA350 40 80 00 1C */ bge lbl_801BD40C
/* 801BD3F4 001BA354 2C 03 00 01 */ cmpwi r3, 1
/* 801BD3F8 001BA358 41 82 00 28 */ beq lbl_801BD420
/* 801BD3FC 001BA35C 40 80 00 2C */ bge lbl_801BD428
/* 801BD400 001BA360 2C 03 00 00 */ cmpwi r3, 0
/* 801BD404 001BA364 40 80 00 14 */ bge lbl_801BD418
/* 801BD408 001BA368 48 00 00 38 */ b lbl_801BD440
lbl_801BD40C:
/* 801BD40C 001BA36C 2C 03 00 08 */ cmpwi r3, 8
/* 801BD410 001BA370 41 82 00 28 */ beq lbl_801BD438
/* 801BD414 001BA374 48 00 00 2C */ b lbl_801BD440
lbl_801BD418:
/* 801BD418 001BA378 38 60 00 00 */ li r3, 0
/* 801BD41C 001BA37C 4E 80 00 20 */ blr
lbl_801BD420:
/* 801BD420 001BA380 38 60 00 01 */ li r3, 1
/* 801BD424 001BA384 4E 80 00 20 */ blr
lbl_801BD428:
/* 801BD428 001BA388 38 60 00 02 */ li r3, 2
/* 801BD42C 001BA38C 4E 80 00 20 */ blr
lbl_801BD430:
/* 801BD430 001BA390 38 60 00 03 */ li r3, 3
/* 801BD434 001BA394 4E 80 00 20 */ blr
lbl_801BD438:
/* 801BD438 001BA398 38 60 00 04 */ li r3, 4
/* 801BD43C 001BA39C 4E 80 00 20 */ blr
lbl_801BD440:
/* 801BD440 001BA3A0 38 60 00 00 */ li r3, 0
/* 801BD444 001BA3A4 4E 80 00 20 */ blr
.section .sdata2, "a"
.global lbl_805AC6E8
lbl_805AC6E8:
# ROM: 0x3F8F88
.4byte 0x803D19D1
.global lbl_805AC6EC
lbl_805AC6EC:
# ROM: 0x3F8F8C
.4byte 0x803D19D7
.global lbl_805AC6F0
lbl_805AC6F0:
# ROM: 0x3F8F90
.4byte 0x00000004
.4byte 0x00000003
.global lbl_805AC6F8
lbl_805AC6F8:
# ROM: 0x3F8F98
.float 1.0
.global lbl_805AC6FC
lbl_805AC6FC:
# ROM: 0x3F8F9C
.4byte 0
.global lbl_805AC700
lbl_805AC700:
# ROM: 0x3F8FA0
.double 9.999999747378752E-6
.global lbl_805AC708
lbl_805AC708:
# ROM: 0x3F8FA8
.4byte 0x3B808081
.global lbl_805AC70C
lbl_805AC70C:
# ROM: 0x3F8FAC
.float 0.001
.global lbl_805AC710
lbl_805AC710:
# ROM: 0x3F8FB0
.4byte 0x42700000
.4byte 0
.section .rodata
.global lbl_803D1750
lbl_803D1750:
# ROM: 0x3CE750
.4byte 0x803D1828
.4byte 0x803D1834
.4byte 0x803D1840
.4byte 0x803D184A
.4byte 0x803D1828
.4byte 0x803D1854
.4byte 0x803D185F
.4byte 0x803D186C
.4byte 0x803D1879
.4byte 0x803D1886
.global lbl_803D1778
lbl_803D1778:
# ROM: 0x3CE778
.4byte 0x803D1892
.4byte 0x803D189E
.4byte 0x803D18A7
.4byte 0x803D189E
.4byte 0x803D18B1
.4byte 0x803D189E
.4byte 0x803D18BC
.4byte 0x803D189E
.4byte 0x803D18A7
.4byte 0x803D189E
.global lbl_803D17A0
lbl_803D17A0:
# ROM: 0x3CE7A0
.4byte 0x803D18C9
.4byte 0x803D18D3
.4byte 0x803D18DB
.4byte 0x803D18E4
.4byte 0x803D18EF
.global lbl_803D17B4
lbl_803D17B4:
# ROM: 0x3CE7B4
.4byte 0x803D18FA
.4byte 0x803D190A
.4byte 0x803D1918
.4byte 0x803D1927
.4byte 0x803D1938
.global lbl_803D17C8
lbl_803D17C8:
# ROM: 0x3CE7C8
.4byte 0x803D1949
.4byte 0x803D1954
.4byte 0x803D195D
.4byte 0x803D1967
.4byte 0x803D1973
.global lbl_803D17DC
lbl_803D17DC:
# ROM: 0x3CE7DC
.4byte 0x803D197F
.4byte 0x803D1988
.4byte 0x803D1993
.4byte 0x803D199C
.4byte 0x803D19A6
.4byte 0x803D19B0
.4byte 0x803D19BB
.4byte 0x803D19C6
.global lbl_803D17FC
lbl_803D17FC:
# ROM: 0x3CE7FC
.4byte 0
.4byte 0x00000004
.4byte 0x00000001
.4byte 0x00000002
.4byte 0x00000003
.4byte 0x00000005
.4byte 0x00000006
.4byte 0x00000007
.4byte 0x00000008
.4byte 0x00000009
.4byte 0x0000000A
.global lbl_803D1828
lbl_803D1828:
# ROM: 0x3CE828
.asciz "PowerMuzzle"
.asciz "PowerCharge"
.asciz "IceMuzzle"
.byte 0x49, 0x63
.asciz "eCharge"
.asciz "WaveCharge"
.byte 0x50
.asciz "lasmaMuzzle"
.asciz "PlasmaCharge"
.byte 0x50, 0x68, 0x61
.asciz "zonMuzzle"
.byte 0x45, 0x6D
.asciz "ptyMuzzle"
.byte 0x70, 0x6F
.asciz "werFrozen"
.byte 0x49, 0x63
.asciz "e2nd_2"
.byte 0x69
.asciz "ceFrozen"
.byte 0x77, 0x61, 0x76
.asciz "eFrozen"
.asciz "plasmaFrozen"
.byte 0x50, 0x6F, 0x77
.asciz "erXfer"
.byte 0x49
.asciz "ceXfer"
.byte 0x57
.asciz "aveXfer"
.asciz "PlasmaXfer"
.byte 0x50
.asciz "hazonXfer"
.byte 0x50, 0x6F
.asciz "wer_Anim_DGRP"
.byte 0x49, 0x63
.asciz "e_Anim_DGRP"
.asciz "Wave_Anim_DGRP"
.byte 0x50
.asciz "lasma_Anim_DGRP"
.asciz "Phazon_Anim_DGRP"
.byte 0x50, 0x6F, 0x77
.asciz "er_DGRP"
.asciz "Ice_DGRP"
.byte 0x57, 0x61, 0x76
.asciz "e_DGRP"
.byte 0x50
.asciz "lasma_DGRP"
.byte 0x50
.asciz "hazon_DGRP"
.byte 0x50
.asciz "owerArm"
.asciz "GravityArm"
.byte 0x56
.asciz "ariaArm"
.asciz "PhazonArm"
.byte 0x46, 0x75
.asciz "sionArm"
.asciz "FusionArmG"
.byte 0x46
.asciz "usionArmV"
.byte 0x46, 0x75
.asciz "sionArmP"
.byte 0x4C, 0x42, 0x45
.4byte 0x414D0065
.asciz "lbow"
.byte 0x3F, 0x3F, 0x28
.4byte 0x3F3F2900
.asciz "Whole Body"
.balign 4