prime/asm/MetroidPrime/Player/CPlayerGun.s

11051 lines
554 KiB
ArmAsm

.include "macros.inc"
.section .ctors, "wa"
lbl_ctor:
.4byte __sinit_CPlayerGun_cpp
.section .data
.balign 8
.global kVerticalAngleTable
kVerticalAngleTable:
# ROM: 0x3D6D50
.4byte 0xC1F00000
.4byte 0
.4byte 0x41F00000
.global kHorizontalAngleTable
kHorizontalAngleTable:
.4byte 0x41F00000
.4byte 0x41F00000
.4byte 0x41F00000
.global kVerticalVarianceTable
kVerticalVarianceTable:
.4byte 0x41F00000
.4byte 0x41F00000
.4byte 0x41F00000
.global lbl_803D9D74
lbl_803D9D74:
# ROM: 0x3D6D74
.4byte lbl_8003C974
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C550
.4byte lbl_8003C624
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C630
.4byte lbl_8003C710
.4byte lbl_8003C9CC
.4byte lbl_8003C840
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C9CC
.4byte lbl_8003C730
.4byte lbl_8003C770
.4byte lbl_8003C820
.global lbl_803D9DD8
lbl_803D9DD8:
# ROM: 0x3D6DD8
.4byte lbl_8003F72C
.4byte lbl_8003F488
.4byte lbl_8003F4C0
.4byte lbl_8003F5F8
.4byte lbl_8003F72C
.4byte lbl_8003F618
.4byte lbl_8003F648
.4byte lbl_8003F65C
.4byte lbl_8003F72C
.4byte lbl_8003F6B4
.4byte lbl_8003F714
.global lbl_803D9E04
lbl_803D9E04:
# ROM: 0x3D6E04
.4byte lbl_80040E10
.4byte lbl_80040C54
.4byte lbl_80040C7C
.4byte lbl_80040CE8
.4byte lbl_80040CC8
.4byte lbl_80040CF8
.4byte lbl_80040D0C
.4byte lbl_80040E10
.4byte lbl_80040D64
.4byte lbl_80040DBC
.4byte 0
.section .sdata
.balign 8
.global gGunExtendDistance__Q210CPlayerGun12CMotionState
gGunExtendDistance__Q210CPlayerGun12CMotionState:
# ROM: 0x3F4780
.float 0.125
.global lbl_805A6DE4
lbl_805A6DE4:
# ROM: 0x3F4784
.4byte 0x00000013
.global lbl_805A6DE8
lbl_805A6DE8:
# ROM: 0x3F4788
.4byte 0x00000012
.global mItemEmptySound
mItemEmptySound:
# ROM: 0x3F478C
.2byte 0x0000
.2byte 0x06E3
.global mIntoBeamSound
mIntoBeamSound:
# ROM: 0x3F4790
.2byte 0x0000
.2byte 0x071D
.2byte 0x0723
.2byte 0x0721
.global mFromBeamSound
mFromBeamSound:
# ROM: 0x3F4798
.2byte 0x0000
.2byte 0x071E
.2byte 0x0724
.2byte 0x0722
.global sBeamChargeUpSound
sBeamChargeUpSound:
# ROM: 0x3F47A0
.2byte 0x06E6
.2byte 0x06DF
.2byte 0x0734
.2byte 0x072F
.global lbl_805A6E08
lbl_805A6E08:
# ROM: 0x3F47A8
.4byte 0xFFFF0000
.global lbl_805A6E0C
lbl_805A6E0C:
# ROM: 0x3F47AC
.float 0.6
.global lbl_805A6E10
lbl_805A6E10:
# ROM: 0x3F47B0
.float 1.0
.global lbl_805A6E14
lbl_805A6E14:
# ROM: 0x3F47B4
.4byte 0x00000013
.global lbl_805A6E18
lbl_805A6E18:
# ROM: 0x3F47B8
.4byte 0x00000012
.4byte 0
.section .bss
.balign 8
.lcomm lbl_8045C518, 0x18, 4
.lcomm kThermalFlags, 0x20, 4
.comm kScaleVector__10CPlayerGun, 0xC, 4
.section .sbss
.balign 8
# CPlayerGun
.global kTractorBeamFactor__10CPlayerGun
kTractorBeamFactor__10CPlayerGun:
.skip 0x4
.global kArmColor
kArmColor:
.skip 0x4
.global lbl_805A8D78
lbl_805A8D78:
.skip 0x4
.global lbl_805A8D7C
lbl_805A8D7C:
.skip 0x4
.global lbl_805A8D80
lbl_805A8D80:
.skip 0x4
.global kHandThermalFlag
kHandThermalFlag:
.skip 0x8
.global kHandHoloFlag
kHandHoloFlag:
.skip 0xC
.section .sdata2, "a"
.balign 8
.global lbl_805AA168
lbl_805AA168:
# ROM: 0x3F6A08
.4byte lbl_803CCEB0
.global lbl_805AA16C
lbl_805AA16C:
# ROM: 0x3F6A0C
.float 2.0
.global lbl_805AA170
lbl_805AA170:
# ROM: 0x3F6A10
.4byte 0x071F0725
.4byte 0x073A073C
.global lbl_805AA178
lbl_805AA178:
# ROM: 0x3F6A18
.4byte 0x07200739
.4byte 0x073B073D
.global lbl_805AA180
lbl_805AA180:
# ROM: 0x3F6A20
.4byte 0xFFFFFFFF
.4byte 0x00000004
.global lbl_805AA188
lbl_805AA188:
# ROM: 0x3F6A28
.float 5.0
.global lbl_805AA18C
lbl_805AA18C:
# ROM: 0x3F6A2C
.4byte 0
.global lbl_805AA190
lbl_805AA190:
# ROM: 0x3F6A30
.float 0.2
.global lbl_805AA194
lbl_805AA194:
# ROM: 0x3F6A34
.4byte 0x3FA56D1A
.global lbl_805AA198
lbl_805AA198:
# ROM: 0x3F6A38
.float 15.0
.global lbl_805AA19C
lbl_805AA19C:
# ROM: 0x3F6A3C
.float 1.0
.global lbl_805AA1A0
lbl_805AA1A0:
# ROM: 0x3F6A40
.float 2.0
.global lbl_805AA1A4
lbl_805AA1A4:
# ROM: 0x3F6A44
.4byte 0xBF666666
.global lbl_805AA1A8
lbl_805AA1A8:
# ROM: 0x3F6A48
.4byte 0xBECCCCCD
.global lbl_805AA1AC
lbl_805AA1AC:
# ROM: 0x3F6A4C
.float 0.4
.global lbl_805AA1B0
lbl_805AA1B0:
# ROM: 0x3F6A50
.float 0.1
.global lbl_805AA1B4
lbl_805AA1B4:
# ROM: 0x3F6A54
.float 150.0
.global lbl_805AA1B8
lbl_805AA1B8:
# ROM: 0x3F6A58
.float 0.75
.global lbl_805AA1BC
lbl_805AA1BC:
# ROM: 0x3F6A5C
.4byte 0x41200000
.global lbl_805AA1C0
lbl_805AA1C0:
# ROM: 0x3F6A60
.4byte 0x41A00000
.global lbl_805AA1C4
lbl_805AA1C4:
# ROM: 0x3F6A64
.4byte 0x3E22F983
.global lbl_805AA1C8
lbl_805AA1C8:
# ROM: 0x3F6A68
.float 6.2831855
.global lbl_805AA1CC
lbl_805AA1CC:
# ROM: 0x3F6A6C
.4byte 0x42652EE0
.global lbl_805AA1D0
lbl_805AA1D0:
# ROM: 0x3F6A70
.double 4.503601774854144E15
.global lbl_805AA1D8
lbl_805AA1D8:
# ROM: 0x3F6A78
.float 0.017453292
.global lbl_805AA1DC
lbl_805AA1DC:
# ROM: 0x3F6A7C
.4byte 0xC0800000
.global lbl_805AA1E0
lbl_805AA1E0:
# ROM: 0x3F6A80
.4byte 0x3FB99999
.4byte 0xA0000000
.global lbl_805AA1E8
lbl_805AA1E8:
# ROM: 0x3F6A88
.float -1.0
.global lbl_805AA1EC
lbl_805AA1EC:
# ROM: 0x3F6A8C
.4byte 0x3F4CCCCD
.global lbl_805AA1F0
lbl_805AA1F0:
# ROM: 0x3F6A90
.4byte 0x40400000
.global lbl_805AA1F4
lbl_805AA1F4:
# ROM: 0x3F6A94
.4byte 0x41F00000
.global lbl_805AA1F8
lbl_805AA1F8:
# ROM: 0x3F6A98
.float 0.25
.global lbl_805AA1FC
lbl_805AA1FC:
# ROM: 0x3F6A9C
.float 0.01
.global lbl_805AA200
lbl_805AA200:
# ROM: 0x3F6AA0
.float 8.0
.global lbl_805AA204
lbl_805AA204:
# ROM: 0x3F6AA4
.float 0.001
.global lbl_805AA208
lbl_805AA208:
# ROM: 0x3F6AA8
.4byte 0x3F266666
.global lbl_805AA20C
lbl_805AA20C:
# ROM: 0x3F6AAC
.float 0.3
.global lbl_805AA210
lbl_805AA210:
# ROM: 0x3F6AB0
.4byte 0x40E00000
.global lbl_805AA214
lbl_805AA214:
# ROM: 0x3F6AB4
.4byte 0x3D800000
.global lbl_805AA218
lbl_805AA218:
# ROM: 0x3F6AB8
.float 0.15
.global lbl_805AA21C
lbl_805AA21C:
# ROM: 0x3F6ABC
.float 0.5
.global lbl_805AA220
lbl_805AA220:
# ROM: 0x3F6AC0
.4byte 0x40600000
.global lbl_805AA224
lbl_805AA224:
# ROM: 0x3F6AC4
.float 4.0
.global lbl_805AA228
lbl_805AA228:
# ROM: 0x3F6AC8
.4byte 0x3D000000
.global lbl_805AA22C
lbl_805AA22C:
# ROM: 0x3F6ACC
.float 0.125
.global lbl_805AA230
lbl_805AA230:
# ROM: 0x3F6AD0
.4byte 0x4009999A
.global lbl_805AA234
lbl_805AA234:
# ROM: 0x3F6AD4
.4byte 0xBE4CCCCD
.global lbl_805AA238
lbl_805AA238:
# ROM: 0x3F6AD8
.float 0.02
.global lbl_805AA23C
lbl_805AA23C:
# ROM: 0x3F6ADC
.4byte 0x44200000
.global lbl_805AA240
lbl_805AA240:
# ROM: 0x3F6AE0
.4byte 0x43A00000
.global lbl_805AA244
lbl_805AA244:
# ROM: 0x3F6AE4
.4byte 0x43600000
.global lbl_805AA248
lbl_805AA248:
# ROM: 0x3F6AE8
.float 0.6
.global lbl_805AA24C
lbl_805AA24C:
# ROM: 0x3F6AEC
.4byte 0x3E962A5E
.global lbl_805AA250
lbl_805AA250:
# ROM: 0x3F6AF0
.4byte 0x3E7E26B3
.global lbl_805AA254
lbl_805AA254:
# ROM: 0x3F6AF4
.4byte 0xBE962A5E
.global lbl_805AA258
lbl_805AA258:
# ROM: 0x3F6AF8
.4byte 0xBE7E26B3
.global lbl_805AA25C
lbl_805AA25C:
# ROM: 0x3F6AFC
.4byte 0x3CCCCCCD
.section .text, "ax"
.global CModelDataNull__10CModelDataFv
CModelDataNull__10CModelDataFv:
/* 8003A7A4 00037704 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003A7A8 00037708 7C 08 02 A6 */ mflr r0
/* 8003A7AC 0003770C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003A7B0 00037710 48 0D C5 31 */ bl __ct__10CModelDataFv
/* 8003A7B4 00037714 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003A7B8 00037718 7C 08 03 A6 */ mtlr r0
/* 8003A7BC 0003771C 38 21 00 10 */ addi r1, r1, 0x10
/* 8003A7C0 00037720 4E 80 00 20 */ blr
.global clear_transform__FRC12CTransform4f
clear_transform__FRC12CTransform4f:
/* 8003A7C4 00037724 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8003A7C8 00037728 7C 08 02 A6 */ mflr r0
/* 8003A7CC 0003772C 90 01 00 44 */ stw r0, 0x44(r1)
/* 8003A7D0 00037730 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8003A7D4 00037734 7C 7F 1B 78 */ mr r31, r3
/* 8003A7D8 00037738 38 61 00 08 */ addi r3, r1, 8
/* 8003A7DC 0003773C 48 2D 83 99 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8003A7E0 00037740 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
/* 8003A7E4 00037744 7F E3 FB 78 */ mr r3, r31
/* 8003A7E8 00037748 38 A4 66 A0 */ addi r5, r4, sZeroVector__9CVector3f@l
/* 8003A7EC 0003774C 38 81 00 08 */ addi r4, r1, 8
/* 8003A7F0 00037750 C0 45 00 00 */ lfs f2, 0(r5)
/* 8003A7F4 00037754 C0 25 00 04 */ lfs f1, 4(r5)
/* 8003A7F8 00037758 C0 05 00 08 */ lfs f0, 8(r5)
/* 8003A7FC 0003775C D0 41 00 14 */ stfs f2, 0x14(r1)
/* 8003A800 00037760 D0 21 00 24 */ stfs f1, 0x24(r1)
/* 8003A804 00037764 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 8003A808 00037768 48 2D 83 6D */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8003A80C 0003776C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8003A810 00037770 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8003A814 00037774 7C 08 03 A6 */ mtlr r0
/* 8003A818 00037778 38 21 00 40 */ addi r1, r1, 0x40
/* 8003A81C 0003777C 4E 80 00 20 */ blr
.global SetPhazonBeamFeedback__10CPlayerGunFb
SetPhazonBeamFeedback__10CPlayerGunFb:
/* 8003A820 00037780 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8003A824 00037784 7C 08 02 A6 */ mflr r0
/* 8003A828 00037788 90 01 00 44 */ stw r0, 0x44(r1)
/* 8003A82C 0003778C 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8003A830 00037790 7C 9F 23 78 */ mr r31, r4
/* 8003A834 00037794 38 80 00 15 */ li r4, 0x15
/* 8003A838 00037798 93 C1 00 38 */ stw r30, 0x38(r1)
/* 8003A83C 0003779C 7C 7E 1B 78 */ mr r30, r3
/* 8003A840 000377A0 80 6D A0 74 */ lwz r3, gpStringTable@sda21(r13)
/* 8003A844 000377A4 48 31 BE B9 */ bl GetString__12CStringTableCFi
/* 8003A848 000377A8 7C 64 1B 78 */ mr r4, r3
/* 8003A84C 000377AC 38 61 00 1C */ addi r3, r1, 0x1c
/* 8003A850 000377B0 4B FD B1 A1 */ bl wstring_l__4rstlFPCw
/* 8003A854 000377B4 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 8003A858 000377B8 C0 02 84 68 */ lfs f0, lbl_805AA188@sda21(r2)
/* 8003A85C 000377BC 7C 00 00 34 */ cntlzw r0, r0
/* 8003A860 000377C0 38 C0 00 01 */ li r6, 1
/* 8003A864 000377C4 54 05 DE 3E */ rlwinm r5, r0, 0x1b, 0x18, 0x1f
/* 8003A868 000377C8 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8003A86C 000377CC 38 00 00 00 */ li r0, 0
/* 8003A870 000377D0 38 61 00 1C */ addi r3, r1, 0x1c
/* 8003A874 000377D4 98 C1 00 18 */ stb r6, 0x18(r1)
/* 8003A878 000377D8 38 81 00 14 */ addi r4, r1, 0x14
/* 8003A87C 000377DC 98 A1 00 19 */ stb r5, 0x19(r1)
/* 8003A880 000377E0 98 01 00 1A */ stb r0, 0x1a(r1)
/* 8003A884 000377E4 48 03 13 E5 */ bl "DisplayHudMemo__9CSamusHudFRCQ24rstl66basic_string<w,Q24rstl14char_traits<w>,Q24rstl17rmemory_allocator>RC13CHUDMemoParms"
/* 8003A888 000377E8 38 61 00 1C */ addi r3, r1, 0x1c
/* 8003A88C 000377EC 48 30 28 A9 */ bl "internal_dereference__Q24rstl66basic_string<w,Q24rstl14char_traits<w>,Q24rstl17rmemory_allocator>Fv"
/* 8003A890 000377F0 80 1E 02 E8 */ lwz r0, 0x2e8(r30)
/* 8003A894 000377F4 38 61 00 10 */ addi r3, r1, 0x10
/* 8003A898 000377F8 90 01 00 10 */ stw r0, 0x10(r1)
/* 8003A89C 000377FC 48 2A E5 39 */ bl IsPlaying__11CSfxManagerF10CSfxHandle
/* 8003A8A0 00037800 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003A8A4 00037804 41 82 00 14 */ beq lbl_8003A8B8
/* 8003A8A8 00037808 80 1E 02 E8 */ lwz r0, 0x2e8(r30)
/* 8003A8AC 0003780C 38 61 00 0C */ addi r3, r1, 0xc
/* 8003A8B0 00037810 90 01 00 0C */ stw r0, 0xc(r1)
/* 8003A8B4 00037814 48 2A F4 95 */ bl SfxStop__11CSfxManagerFRC10CSfxHandle
lbl_8003A8B8:
/* 8003A8B8 00037818 38 60 00 00 */ li r3, 0
/* 8003A8BC 0003781C 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 8003A8C0 00037820 90 7E 02 E8 */ stw r3, 0x2e8(r30)
/* 8003A8C4 00037824 41 82 00 28 */ beq lbl_8003A8EC
/* 8003A8C8 00037828 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 8003A8CC 0003782C 38 61 00 08 */ addi r3, r1, 8
/* 8003A8D0 00037830 38 80 0C 45 */ li r4, 0xc45
/* 8003A8D4 00037834 38 C0 00 00 */ li r6, 0
/* 8003A8D8 00037838 54 05 E7 FE */ rlwinm r5, r0, 0x1c, 0x1f, 0x1f
/* 8003A8DC 0003783C 38 E0 00 4A */ li r7, 0x4a
/* 8003A8E0 00037840 48 25 02 19 */ bl play_sfx__12NWeaponTypesFUsbbs
/* 8003A8E4 00037844 80 01 00 08 */ lwz r0, 8(r1)
/* 8003A8E8 00037848 90 1E 02 E8 */ stw r0, 0x2e8(r30)
lbl_8003A8EC:
/* 8003A8EC 0003784C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8003A8F0 00037850 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8003A8F4 00037854 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8003A8F8 00037858 7C 08 03 A6 */ mtlr r0
/* 8003A8FC 0003785C 38 21 00 40 */ addi r1, r1, 0x40
/* 8003A900 00037860 4E 80 00 20 */ blr
.global DropPowerBomb__10CPlayerGunCFR13CStateManager
DropPowerBomb__10CPlayerGunCFR13CStateManager:
/* 8003A904 00037864 94 21 FF 30 */ stwu r1, -0xd0(r1)
/* 8003A908 00037868 7C 08 02 A6 */ mflr r0
/* 8003A90C 0003786C 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 8003A910 00037870 DB E1 00 C0 */ stfd f31, 0xc0(r1)
/* 8003A914 00037874 F3 E1 00 C8 */ psq_st f31, 200(r1), 0, qr0
/* 8003A918 00037878 BF 61 00 AC */ stmw r27, 0xac(r1)
/* 8003A91C 0003787C 7C BF 2B 78 */ mr r31, r5
/* 8003A920 00037880 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003A924 00037884 80 A5 08 4C */ lwz r5, 0x84c(r5)
/* 8003A928 00037888 7C 7D 1B 78 */ mr r29, r3
/* 8003A92C 0003788C 7C 9E 23 78 */ mr r30, r4
/* 8003A930 00037890 C0 25 09 F4 */ lfs f1, 0x9f4(r5)
/* 8003A934 00037894 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003A938 00037898 4C 40 13 82 */ cror 2, 0, 2
/* 8003A93C 0003789C 40 82 00 10 */ bne lbl_8003A94C
/* 8003A940 000378A0 80 6D A1 34 */ lwz r3, gpTweakPlayerGun@sda21(r13)
/* 8003A944 000378A4 38 C3 00 8C */ addi r6, r3, 0x8c
/* 8003A948 000378A8 48 00 00 5C */ b lbl_8003A9A4
lbl_8003A94C:
/* 8003A94C 000378AC 88 01 00 28 */ lbz r0, 0x28(r1)
/* 8003A950 000378B0 38 80 00 00 */ li r4, 0
/* 8003A954 000378B4 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 8003A958 000378B8 38 A0 00 05 */ li r5, 5
/* 8003A95C 000378BC 98 01 00 28 */ stb r0, 0x28(r1)
/* 8003A960 000378C0 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 8003A964 000378C4 50 83 36 72 */ rlwimi r3, r4, 6, 0x19, 0x19
/* 8003A968 000378C8 88 01 00 50 */ lbz r0, 0x50(r1)
/* 8003A96C 000378CC 98 61 00 28 */ stb r3, 0x28(r1)
/* 8003A970 000378D0 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 8003A974 000378D4 50 83 2E B4 */ rlwimi r3, r4, 5, 0x1a, 0x1a
/* 8003A978 000378D8 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 8003A97C 000378DC 90 A1 00 24 */ stw r5, 0x24(r1)
/* 8003A980 000378E0 38 C1 00 38 */ addi r6, r1, 0x38
/* 8003A984 000378E4 98 61 00 28 */ stb r3, 0x28(r1)
/* 8003A988 000378E8 90 A1 00 38 */ stw r5, 0x38(r1)
/* 8003A98C 000378EC 98 61 00 3C */ stb r3, 0x3c(r1)
/* 8003A990 000378F0 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 8003A994 000378F4 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 8003A998 000378F8 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 8003A99C 000378FC D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 8003A9A0 00037900 98 01 00 50 */ stb r0, 0x50(r1)
lbl_8003A9A4:
/* 8003A9A4 00037904 80 06 00 00 */ lwz r0, 0(r6)
/* 8003A9A8 00037908 7F E4 FB 78 */ mr r4, r31
/* 8003A9AC 0003790C 80 AD A1 18 */ lwz r5, gpTweakPlayer@sda21(r13)
/* 8003A9B0 00037910 38 61 00 10 */ addi r3, r1, 0x10
/* 8003A9B4 00037914 90 01 00 54 */ stw r0, 0x54(r1)
/* 8003A9B8 00037918 88 06 00 04 */ lbz r0, 4(r6)
/* 8003A9BC 0003791C 98 01 00 58 */ stb r0, 0x58(r1)
/* 8003A9C0 00037920 C0 06 00 08 */ lfs f0, 8(r6)
/* 8003A9C4 00037924 D0 01 00 5C */ stfs f0, 0x5c(r1)
/* 8003A9C8 00037928 C0 06 00 0C */ lfs f0, 0xc(r6)
/* 8003A9CC 0003792C D0 01 00 60 */ stfs f0, 0x60(r1)
/* 8003A9D0 00037930 C0 06 00 10 */ lfs f0, 0x10(r6)
/* 8003A9D4 00037934 D0 01 00 64 */ stfs f0, 0x64(r1)
/* 8003A9D8 00037938 C0 06 00 14 */ lfs f0, 0x14(r6)
/* 8003A9DC 0003793C D0 01 00 68 */ stfs f0, 0x68(r1)
/* 8003A9E0 00037940 88 06 00 18 */ lbz r0, 0x18(r6)
/* 8003A9E4 00037944 98 01 00 6C */ stb r0, 0x6c(r1)
/* 8003A9E8 00037948 C3 E5 02 7C */ lfs f31, 0x27c(r5)
/* 8003A9EC 0003794C 48 01 26 F1 */ bl AllocateUniqueId__13CStateManagerFv
/* 8003A9F0 00037950 A0 01 00 10 */ lhz r0, 0x10(r1)
/* 8003A9F4 00037954 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 8003A9F8 00037958 38 63 CE B0 */ addi r3, r3, lbl_803CCEB0@l
/* 8003A9FC 0003795C 3B 60 00 00 */ li r27, 0
/* 8003AA00 00037960 B0 01 00 14 */ sth r0, 0x14(r1)
/* 8003AA04 00037964 38 83 00 09 */ addi r4, r3, 9
/* 8003AA08 00037968 38 60 01 70 */ li r3, 0x170
/* 8003AA0C 0003796C 38 A0 00 00 */ li r5, 0
/* 8003AA10 00037970 48 2D AE 5D */ bl __nw__FUlPCcPCc
/* 8003AA14 00037974 7C 7C 1B 79 */ or. r28, r3, r3
/* 8003AA18 00037978 41 82 00 88 */ beq lbl_8003AAA0
/* 8003AA1C 0003797C 38 61 00 1C */ addi r3, r1, 0x1c
/* 8003AA20 00037980 38 9E 07 A8 */ addi r4, r30, 0x7a8
/* 8003AA24 00037984 48 30 64 85 */ bl __ct__6CTokenFRC6CToken
/* 8003AA28 00037988 A0 C1 00 14 */ lhz r6, 0x14(r1)
/* 8003AA2C 0003798C 38 61 00 70 */ addi r3, r1, 0x70
/* 8003AA30 00037990 80 AD A3 90 */ lwz r5, kInvalidAreaId@sda21(r13)
/* 8003AA34 00037994 38 81 00 2C */ addi r4, r1, 0x2c
/* 8003AA38 00037998 A0 1E 05 38 */ lhz r0, 0x538(r30)
/* 8003AA3C 0003799C 3B 60 00 01 */ li r27, 1
/* 8003AA40 000379A0 B0 C1 00 08 */ sth r6, 8(r1)
/* 8003AA44 000379A4 C0 42 84 6C */ lfs f2, lbl_805AA18C@sda21(r2)
/* 8003AA48 000379A8 90 A1 00 18 */ stw r5, 0x18(r1)
/* 8003AA4C 000379AC B0 01 00 0C */ sth r0, 0xc(r1)
/* 8003AA50 000379B0 80 BF 08 4C */ lwz r5, 0x84c(r31)
/* 8003AA54 000379B4 C0 65 00 50 */ lfs f3, 0x50(r5)
/* 8003AA58 000379B8 C0 25 00 60 */ lfs f1, 0x60(r5)
/* 8003AA5C 000379BC C0 05 00 40 */ lfs f0, 0x40(r5)
/* 8003AA60 000379C0 EC 63 10 2A */ fadds f3, f3, f2
/* 8003AA64 000379C4 EC 21 F8 2A */ fadds f1, f1, f31
/* 8003AA68 000379C8 EC 00 10 2A */ fadds f0, f0, f2
/* 8003AA6C 000379CC D0 61 00 30 */ stfs f3, 0x30(r1)
/* 8003AA70 000379D0 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8003AA74 000379D4 D0 21 00 34 */ stfs f1, 0x34(r1)
/* 8003AA78 000379D8 48 2D 86 C9 */ bl Translate__12CTransform4fFRC9CVector3f
/* 8003AA7C 000379DC 7F 83 E3 78 */ mr r3, r28
/* 8003AA80 000379E0 38 81 00 1C */ addi r4, r1, 0x1c
/* 8003AA84 000379E4 38 A1 00 08 */ addi r5, r1, 8
/* 8003AA88 000379E8 38 C1 00 18 */ addi r6, r1, 0x18
/* 8003AA8C 000379EC 38 E1 00 0C */ addi r7, r1, 0xc
/* 8003AA90 000379F0 39 01 00 70 */ addi r8, r1, 0x70
/* 8003AA94 000379F4 39 21 00 54 */ addi r9, r1, 0x54
/* 8003AA98 000379F8 48 11 33 BD */ bl "__ct__10CPowerBombF25TToken<15CGenDescription>9TUniqueId7TAreaId9TUniqueIdRC12CTransform4fRC11CDamageInfo"
/* 8003AA9C 000379FC 7C 7C 1B 78 */ mr r28, r3
lbl_8003AAA0:
/* 8003AAA0 00037A00 7F 60 07 75 */ extsb. r0, r27
/* 8003AAA4 00037A04 41 82 00 10 */ beq lbl_8003AAB4
/* 8003AAA8 00037A08 38 61 00 1C */ addi r3, r1, 0x1c
/* 8003AAAC 00037A0C 38 80 00 00 */ li r4, 0
/* 8003AAB0 00037A10 48 30 63 91 */ bl __dt__6CTokenFv
lbl_8003AAB4:
/* 8003AAB4 00037A14 7F E3 FB 78 */ mr r3, r31
/* 8003AAB8 00037A18 7F 84 E3 78 */ mr r4, r28
/* 8003AABC 00037A1C 48 01 20 59 */ bl AddObject__13CStateManagerFR7CEntity
/* 8003AAC0 00037A20 A0 01 00 14 */ lhz r0, 0x14(r1)
/* 8003AAC4 00037A24 B0 1D 00 00 */ sth r0, 0(r29)
/* 8003AAC8 00037A28 E3 E1 00 C8 */ psq_l f31, 200(r1), 0, qr0
/* 8003AACC 00037A2C CB E1 00 C0 */ lfd f31, 0xc0(r1)
/* 8003AAD0 00037A30 BB 61 00 AC */ lmw r27, 0xac(r1)
/* 8003AAD4 00037A34 80 01 00 D4 */ lwz r0, 0xd4(r1)
/* 8003AAD8 00037A38 7C 08 03 A6 */ mtlr r0
/* 8003AADC 00037A3C 38 21 00 D0 */ addi r1, r1, 0xd0
/* 8003AAE0 00037A40 4E 80 00 20 */ blr
.global ReturnToRestPose__10CPlayerGunFv
ReturnToRestPose__10CPlayerGunFv:
/* 8003AAE4 00037A44 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003AAE8 00037A48 7C 08 02 A6 */ mflr r0
/* 8003AAEC 00037A4C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003AAF0 00037A50 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003AAF4 00037A54 7C 7F 1B 78 */ mr r31, r3
/* 8003AAF8 00037A58 88 03 08 32 */ lbz r0, 0x832(r3)
/* 8003AAFC 00037A5C 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 8003AB00 00037A60 28 00 00 01 */ cmplwi r0, 1
/* 8003AB04 00037A64 41 82 00 4C */ beq lbl_8003AB50
/* 8003AB08 00037A68 80 9F 02 F8 */ lwz r4, 0x2f8(r31)
/* 8003AB0C 00037A6C 54 80 07 FE */ clrlwi r0, r4, 0x1f
/* 8003AB10 00037A70 2C 00 00 01 */ cmpwi r0, 1
/* 8003AB14 00037A74 40 82 00 14 */ bne lbl_8003AB28
/* 8003AB18 00037A78 38 80 00 00 */ li r4, 0
/* 8003AB1C 00037A7C 38 A0 00 00 */ li r5, 0
/* 8003AB20 00037A80 48 00 6D A5 */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
/* 8003AB24 00037A84 48 00 00 1C */ b lbl_8003AB40
lbl_8003AB28:
/* 8003AB28 00037A88 54 80 07 7A */ rlwinm r0, r4, 0, 0x1d, 0x1d
/* 8003AB2C 00037A8C 2C 00 00 04 */ cmpwi r0, 4
/* 8003AB30 00037A90 40 82 00 10 */ bne lbl_8003AB40
/* 8003AB34 00037A94 38 80 00 06 */ li r4, 6
/* 8003AB38 00037A98 38 A0 00 00 */ li r5, 0
/* 8003AB3C 00037A9C 48 00 6D 89 */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
lbl_8003AB40:
/* 8003AB40 00037AA0 88 1F 08 32 */ lbz r0, 0x832(r31)
/* 8003AB44 00037AA4 38 60 00 01 */ li r3, 1
/* 8003AB48 00037AA8 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
/* 8003AB4C 00037AAC 98 1F 08 32 */ stb r0, 0x832(r31)
lbl_8003AB50:
/* 8003AB50 00037AB0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003AB54 00037AB4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003AB58 00037AB8 7C 08 03 A6 */ mtlr r0
/* 8003AB5C 00037ABC 38 21 00 10 */ addi r1, r1, 0x10
/* 8003AB60 00037AC0 4E 80 00 20 */ blr
.global AsyncLoadSuit__10CPlayerGunFR13CStateManager
AsyncLoadSuit__10CPlayerGunFR13CStateManager:
/* 8003AB64 00037AC4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003AB68 00037AC8 7C 08 02 A6 */ mflr r0
/* 8003AB6C 00037ACC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003AB70 00037AD0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003AB74 00037AD4 7C 9F 23 78 */ mr r31, r4
/* 8003AB78 00037AD8 93 C1 00 08 */ stw r30, 8(r1)
/* 8003AB7C 00037ADC 7C 7E 1B 78 */ mr r30, r3
/* 8003AB80 00037AE0 80 63 07 2C */ lwz r3, 0x72c(r3)
/* 8003AB84 00037AE4 48 17 F9 D5 */ bl AsyncLoadSuitArm__10CGunWeaponFR13CStateManager
/* 8003AB88 00037AE8 80 7E 07 40 */ lwz r3, 0x740(r30)
/* 8003AB8C 00037AEC 7F E4 FB 78 */ mr r4, r31
/* 8003AB90 00037AF0 48 0E 30 45 */ bl AsyncLoadSuit__11CGrappleArmFR13CStateManager
/* 8003AB94 00037AF4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003AB98 00037AF8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003AB9C 00037AFC 83 C1 00 08 */ lwz r30, 8(r1)
/* 8003ABA0 00037B00 7C 08 03 A6 */ mtlr r0
/* 8003ABA4 00037B04 38 21 00 10 */ addi r1, r1, 0x10
/* 8003ABA8 00037B08 4E 80 00 20 */ blr
.global SetFidgetAnimBits__10CPlayerGunFib
SetFidgetAnimBits__10CPlayerGunFib:
/* 8003ABAC 00037B0C 54 A0 06 3F */ clrlwi. r0, r5, 0x18
/* 8003ABB0 00037B10 38 A0 00 00 */ li r5, 0
/* 8003ABB4 00037B14 90 A3 02 FC */ stw r5, 0x2fc(r3)
/* 8003ABB8 00037B18 41 82 00 10 */ beq lbl_8003ABC8
/* 8003ABBC 00037B1C 38 00 00 02 */ li r0, 2
/* 8003ABC0 00037B20 90 03 02 FC */ stw r0, 0x2fc(r3)
/* 8003ABC4 00037B24 4E 80 00 20 */ blr
lbl_8003ABC8:
/* 8003ABC8 00037B28 80 03 03 A8 */ lwz r0, 0x3a8(r3)
/* 8003ABCC 00037B2C 2C 00 00 01 */ cmpwi r0, 1
/* 8003ABD0 00037B30 41 82 00 38 */ beq lbl_8003AC08
/* 8003ABD4 00037B34 4C 80 00 20 */ bgelr
/* 8003ABD8 00037B38 2C 00 00 00 */ cmpwi r0, 0
/* 8003ABDC 00037B3C 4D 80 00 20 */ bltlr
/* 8003ABE0 00037B40 38 00 00 01 */ li r0, 1
/* 8003ABE4 00037B44 2C 04 00 00 */ cmpwi r4, 0
/* 8003ABE8 00037B48 90 03 02 FC */ stw r0, 0x2fc(r3)
/* 8003ABEC 00037B4C 4C 81 00 20 */ blelr
/* 8003ABF0 00037B50 2C 04 00 02 */ cmpwi r4, 2
/* 8003ABF4 00037B54 4C 80 00 20 */ bgelr
/* 8003ABF8 00037B58 80 03 02 FC */ lwz r0, 0x2fc(r3)
/* 8003ABFC 00037B5C 60 00 00 04 */ ori r0, r0, 4
/* 8003AC00 00037B60 90 03 02 FC */ stw r0, 0x2fc(r3)
/* 8003AC04 00037B64 4E 80 00 20 */ blr
lbl_8003AC08:
/* 8003AC08 00037B68 2C 04 00 06 */ cmpwi r4, 6
/* 8003AC0C 00037B6C 40 80 00 0C */ bge lbl_8003AC18
/* 8003AC10 00037B70 2C 04 00 04 */ cmpwi r4, 4
/* 8003AC14 00037B74 40 80 00 10 */ bge lbl_8003AC24
lbl_8003AC18:
/* 8003AC18 00037B78 38 00 00 02 */ li r0, 2
/* 8003AC1C 00037B7C 90 03 02 FC */ stw r0, 0x2fc(r3)
/* 8003AC20 00037B80 48 00 00 0C */ b lbl_8003AC2C
lbl_8003AC24:
/* 8003AC24 00037B84 38 00 00 01 */ li r0, 1
/* 8003AC28 00037B88 90 03 02 FC */ stw r0, 0x2fc(r3)
lbl_8003AC2C:
/* 8003AC2C 00037B8C 80 03 02 FC */ lwz r0, 0x2fc(r3)
/* 8003AC30 00037B90 60 00 00 04 */ ori r0, r0, 4
/* 8003AC34 00037B94 90 03 02 FC */ stw r0, 0x2fc(r3)
/* 8003AC38 00037B98 4E 80 00 20 */ blr
.global IsFidgetLoaded__10CPlayerGunFv
IsFidgetLoaded__10CPlayerGunFv:
/* 8003AC3C 00037B9C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003AC40 00037BA0 7C 08 02 A6 */ mflr r0
/* 8003AC44 00037BA4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003AC48 00037BA8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003AC4C 00037BAC 3B E0 00 00 */ li r31, 0
/* 8003AC50 00037BB0 93 C1 00 08 */ stw r30, 8(r1)
/* 8003AC54 00037BB4 7C 7E 1B 78 */ mr r30, r3
/* 8003AC58 00037BB8 80 03 02 FC */ lwz r0, 0x2fc(r3)
/* 8003AC5C 00037BBC 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 8003AC60 00037BC0 2C 00 00 01 */ cmpwi r0, 1
/* 8003AC64 00037BC4 40 82 00 1C */ bne lbl_8003AC80
/* 8003AC68 00037BC8 80 7E 07 3C */ lwz r3, 0x73c(r30)
/* 8003AC6C 00037BCC 38 63 00 7C */ addi r3, r3, 0x7c
/* 8003AC70 00037BD0 48 1B 64 59 */ bl IsAnimLoaded__9CGSFidgetCFv
/* 8003AC74 00037BD4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003AC78 00037BD8 41 82 00 08 */ beq lbl_8003AC80
/* 8003AC7C 00037BDC 63 FF 00 01 */ ori r31, r31, 1
lbl_8003AC80:
/* 8003AC80 00037BE0 80 1E 02 FC */ lwz r0, 0x2fc(r30)
/* 8003AC84 00037BE4 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
/* 8003AC88 00037BE8 2C 00 00 02 */ cmpwi r0, 2
/* 8003AC8C 00037BEC 40 82 00 18 */ bne lbl_8003ACA4
/* 8003AC90 00037BF0 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003AC94 00037BF4 48 17 F9 A5 */ bl IsFidgetLoaded__10CGunWeaponFv
/* 8003AC98 00037BF8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003AC9C 00037BFC 41 82 00 08 */ beq lbl_8003ACA4
/* 8003ACA0 00037C00 63 FF 00 02 */ ori r31, r31, 2
lbl_8003ACA4:
/* 8003ACA4 00037C04 80 1E 02 FC */ lwz r0, 0x2fc(r30)
/* 8003ACA8 00037C08 54 00 07 7A */ rlwinm r0, r0, 0, 0x1d, 0x1d
/* 8003ACAC 00037C0C 2C 00 00 04 */ cmpwi r0, 4
/* 8003ACB0 00037C10 40 82 00 28 */ bne lbl_8003ACD8
/* 8003ACB4 00037C14 80 7E 07 40 */ lwz r3, 0x740(r30)
/* 8003ACB8 00037C18 80 63 03 28 */ lwz r3, 0x328(r3)
/* 8003ACBC 00037C1C 28 03 00 00 */ cmplwi r3, 0
/* 8003ACC0 00037C20 41 82 00 18 */ beq lbl_8003ACD8
/* 8003ACC4 00037C24 38 63 00 30 */ addi r3, r3, 0x30
/* 8003ACC8 00037C28 48 1B 64 01 */ bl IsAnimLoaded__9CGSFidgetCFv
/* 8003ACCC 00037C2C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003ACD0 00037C30 41 82 00 08 */ beq lbl_8003ACD8
/* 8003ACD4 00037C34 63 FF 00 04 */ ori r31, r31, 4
lbl_8003ACD8:
/* 8003ACD8 00037C38 80 1E 02 FC */ lwz r0, 0x2fc(r30)
/* 8003ACDC 00037C3C 7C 1F 00 50 */ subf r0, r31, r0
/* 8003ACE0 00037C40 7C 00 00 34 */ cntlzw r0, r0
/* 8003ACE4 00037C44 54 03 D9 7E */ srwi r3, r0, 5
/* 8003ACE8 00037C48 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003ACEC 00037C4C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8003ACF0 00037C50 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003ACF4 00037C54 7C 08 03 A6 */ mtlr r0
/* 8003ACF8 00037C58 38 21 00 10 */ addi r1, r1, 0x10
/* 8003ACFC 00037C5C 4E 80 00 20 */ blr
.global UnLoadFidget__10CPlayerGunFv
UnLoadFidget__10CPlayerGunFv:
/* 8003AD00 00037C60 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003AD04 00037C64 7C 08 02 A6 */ mflr r0
/* 8003AD08 00037C68 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003AD0C 00037C6C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003AD10 00037C70 7C 7F 1B 78 */ mr r31, r3
/* 8003AD14 00037C74 80 03 02 FC */ lwz r0, 0x2fc(r3)
/* 8003AD18 00037C78 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 8003AD1C 00037C7C 2C 00 00 01 */ cmpwi r0, 1
/* 8003AD20 00037C80 40 82 00 10 */ bne lbl_8003AD30
/* 8003AD24 00037C84 80 7F 07 3C */ lwz r3, 0x73c(r31)
/* 8003AD28 00037C88 38 63 00 7C */ addi r3, r3, 0x7c
/* 8003AD2C 00037C8C 48 1B 63 BD */ bl UnLoadAnim__9CGSFidgetFv
lbl_8003AD30:
/* 8003AD30 00037C90 80 1F 02 FC */ lwz r0, 0x2fc(r31)
/* 8003AD34 00037C94 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
/* 8003AD38 00037C98 2C 00 00 02 */ cmpwi r0, 2
/* 8003AD3C 00037C9C 40 82 00 0C */ bne lbl_8003AD48
/* 8003AD40 00037CA0 80 7F 07 2C */ lwz r3, 0x72c(r31)
/* 8003AD44 00037CA4 48 17 F9 1D */ bl UnLoadFidget__10CGunWeaponFv
lbl_8003AD48:
/* 8003AD48 00037CA8 80 1F 02 FC */ lwz r0, 0x2fc(r31)
/* 8003AD4C 00037CAC 54 00 07 7A */ rlwinm r0, r0, 0, 0x1d, 0x1d
/* 8003AD50 00037CB0 2C 00 00 04 */ cmpwi r0, 4
/* 8003AD54 00037CB4 40 82 00 1C */ bne lbl_8003AD70
/* 8003AD58 00037CB8 80 7F 07 40 */ lwz r3, 0x740(r31)
/* 8003AD5C 00037CBC 80 63 03 28 */ lwz r3, 0x328(r3)
/* 8003AD60 00037CC0 28 03 00 00 */ cmplwi r3, 0
/* 8003AD64 00037CC4 41 82 00 0C */ beq lbl_8003AD70
/* 8003AD68 00037CC8 38 63 00 30 */ addi r3, r3, 0x30
/* 8003AD6C 00037CCC 48 1B 63 7D */ bl UnLoadAnim__9CGSFidgetFv
lbl_8003AD70:
/* 8003AD70 00037CD0 38 00 00 00 */ li r0, 0
/* 8003AD74 00037CD4 90 1F 02 FC */ stw r0, 0x2fc(r31)
/* 8003AD78 00037CD8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003AD7C 00037CDC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003AD80 00037CE0 7C 08 03 A6 */ mtlr r0
/* 8003AD84 00037CE4 38 21 00 10 */ addi r1, r1, 0x10
/* 8003AD88 00037CE8 4E 80 00 20 */ blr
.global AsyncLoadFidget__10CPlayerGunFR13CStateManager
AsyncLoadFidget__10CPlayerGunFR13CStateManager:
/* 8003AD8C 00037CEC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003AD90 00037CF0 7C 08 02 A6 */ mflr r0
/* 8003AD94 00037CF4 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003AD98 00037CF8 BF 41 00 08 */ stmw r26, 8(r1)
/* 8003AD9C 00037CFC 7C 7C 1B 78 */ mr r28, r3
/* 8003ADA0 00037D00 7C 9D 23 78 */ mr r29, r4
/* 8003ADA4 00037D04 80 03 03 A4 */ lwz r0, 0x3a4(r3)
/* 8003ADA8 00037D08 83 63 03 A8 */ lwz r27, 0x3a8(r3)
/* 8003ADAC 00037D0C 20 00 00 03 */ subfic r0, r0, 3
/* 8003ADB0 00037D10 83 E3 03 B0 */ lwz r31, 0x3b0(r3)
/* 8003ADB4 00037D14 7C 00 00 34 */ cntlzw r0, r0
/* 8003ADB8 00037D18 7F 7E DB 78 */ mr r30, r27
/* 8003ADBC 00037D1C 54 1A D9 7E */ srwi r26, r0, 5
/* 8003ADC0 00037D20 7F E4 FB 78 */ mr r4, r31
/* 8003ADC4 00037D24 7F 45 D3 78 */ mr r5, r26
/* 8003ADC8 00037D28 4B FF FD E5 */ bl SetFidgetAnimBits__10CPlayerGunFib
/* 8003ADCC 00037D2C 80 1C 02 FC */ lwz r0, 0x2fc(r28)
/* 8003ADD0 00037D30 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 8003ADD4 00037D34 2C 00 00 01 */ cmpwi r0, 1
/* 8003ADD8 00037D38 40 82 00 20 */ bne lbl_8003ADF8
/* 8003ADDC 00037D3C 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 8003ADE0 00037D40 7F A4 EB 78 */ mr r4, r29
/* 8003ADE4 00037D44 80 DC 03 10 */ lwz r6, 0x310(r28)
/* 8003ADE8 00037D48 7F C5 F3 78 */ mr r5, r30
/* 8003ADEC 00037D4C 7F E7 FB 78 */ mr r7, r31
/* 8003ADF0 00037D50 38 63 00 4C */ addi r3, r3, 0x4c
/* 8003ADF4 00037D54 48 19 1A 29 */ bl LoadFidgetAnimAsync__14CGunControllerFR13CStateManageriii
lbl_8003ADF8:
/* 8003ADF8 00037D58 80 1C 02 FC */ lwz r0, 0x2fc(r28)
/* 8003ADFC 00037D5C 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
/* 8003AE00 00037D60 2C 00 00 02 */ cmpwi r0, 2
/* 8003AE04 00037D64 40 82 00 34 */ bne lbl_8003AE38
/* 8003AE08 00037D68 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 8003AE0C 00037D6C 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 8003AE10 00037D70 7F A4 EB 78 */ mr r4, r29
/* 8003AE14 00037D74 41 82 00 08 */ beq lbl_8003AE1C
/* 8003AE18 00037D78 3B 60 00 00 */ li r27, 0
lbl_8003AE1C:
/* 8003AE1C 00037D7C 7F 65 DB 78 */ mr r5, r27
/* 8003AE20 00037D80 7F E6 FB 78 */ mr r6, r31
/* 8003AE24 00037D84 48 17 F8 65 */ bl AsyncLoadFidget__10CGunWeaponFR13CStateManagerQ28SamusGun11EFidgetTypei
/* 8003AE28 00037D88 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 8003AE2C 00037D8C 38 60 00 00 */ li r3, 0
/* 8003AE30 00037D90 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
/* 8003AE34 00037D94 98 1C 08 32 */ stb r0, 0x832(r28)
lbl_8003AE38:
/* 8003AE38 00037D98 80 1C 02 FC */ lwz r0, 0x2fc(r28)
/* 8003AE3C 00037D9C 54 00 07 7A */ rlwinm r0, r0, 0, 0x1d, 0x1d
/* 8003AE40 00037DA0 2C 00 00 04 */ cmpwi r0, 4
/* 8003AE44 00037DA4 40 82 00 38 */ bne lbl_8003AE7C
/* 8003AE48 00037DA8 80 7C 07 40 */ lwz r3, 0x740(r28)
/* 8003AE4C 00037DAC 80 63 03 28 */ lwz r3, 0x328(r3)
/* 8003AE50 00037DB0 28 03 00 00 */ cmplwi r3, 0
/* 8003AE54 00037DB4 41 82 00 28 */ beq lbl_8003AE7C
/* 8003AE58 00037DB8 2C 1E 00 00 */ cmpwi r30, 0
/* 8003AE5C 00037DBC 7F A4 EB 78 */ mr r4, r29
/* 8003AE60 00037DC0 7F C5 F3 78 */ mr r5, r30
/* 8003AE64 00037DC4 41 82 00 0C */ beq lbl_8003AE70
/* 8003AE68 00037DC8 80 DC 03 10 */ lwz r6, 0x310(r28)
/* 8003AE6C 00037DCC 48 00 00 08 */ b lbl_8003AE74
lbl_8003AE70:
/* 8003AE70 00037DD0 38 C0 00 00 */ li r6, 0
lbl_8003AE74:
/* 8003AE74 00037DD4 7F E7 FB 78 */ mr r7, r31
/* 8003AE78 00037DD8 48 19 19 A5 */ bl LoadFidgetAnimAsync__14CGunControllerFR13CStateManageriii
lbl_8003AE7C:
/* 8003AE7C 00037DDC BB 41 00 08 */ lmw r26, 8(r1)
/* 8003AE80 00037DE0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003AE84 00037DE4 7C 08 03 A6 */ mtlr r0
/* 8003AE88 00037DE8 38 21 00 20 */ addi r1, r1, 0x20
/* 8003AE8C 00037DEC 4E 80 00 20 */ blr
.global ProcessGunMorph__10CPlayerGunFfR13CStateManager
ProcessGunMorph__10CPlayerGunFfR13CStateManager:
/* 8003AE90 00037DF0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8003AE94 00037DF4 7C 08 02 A6 */ mflr r0
/* 8003AE98 00037DF8 90 01 00 44 */ stw r0, 0x44(r1)
/* 8003AE9C 00037DFC DB E1 00 30 */ stfd f31, 0x30(r1)
/* 8003AEA0 00037E00 F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
/* 8003AEA4 00037E04 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8003AEA8 00037E08 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8003AEAC 00037E0C 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8003AEB0 00037E10 93 81 00 20 */ stw r28, 0x20(r1)
/* 8003AEB4 00037E14 7C 9D 23 78 */ mr r29, r4
/* 8003AEB8 00037E18 7C 7C 1B 78 */ mr r28, r3
/* 8003AEBC 00037E1C 80 64 08 4C */ lwz r3, 0x84c(r4)
/* 8003AEC0 00037E20 FF E0 08 90 */ fmr f31, f1
/* 8003AEC4 00037E24 80 BC 06 98 */ lwz r5, 0x698(r28)
/* 8003AEC8 00037E28 80 03 02 F8 */ lwz r0, 0x2f8(r3)
/* 8003AECC 00037E2C 80 64 08 B8 */ lwz r3, 0x8b8(r4)
/* 8003AED0 00037E30 2C 05 00 01 */ cmpwi r5, 1
/* 8003AED4 00037E34 7C 00 00 34 */ cntlzw r0, r0
/* 8003AED8 00037E38 83 E3 00 00 */ lwz r31, 0(r3)
/* 8003AEDC 00037E3C 54 1E D9 7E */ srwi r30, r0, 5
/* 8003AEE0 00037E40 41 82 01 4C */ beq lbl_8003B02C
/* 8003AEE4 00037E44 40 80 00 10 */ bge lbl_8003AEF4
/* 8003AEE8 00037E48 2C 05 00 00 */ cmpwi r5, 0
/* 8003AEEC 00037E4C 40 80 00 14 */ bge lbl_8003AF00
/* 8003AEF0 00037E50 48 00 01 3C */ b lbl_8003B02C
lbl_8003AEF4:
/* 8003AEF4 00037E54 2C 05 00 04 */ cmpwi r5, 4
/* 8003AEF8 00037E58 40 80 01 34 */ bge lbl_8003B02C
/* 8003AEFC 00037E5C 48 00 00 D0 */ b lbl_8003AFCC
lbl_8003AF00:
/* 8003AF00 00037E60 80 7C 03 10 */ lwz r3, 0x310(r28)
/* 8003AF04 00037E64 80 1C 03 14 */ lwz r0, 0x314(r28)
/* 8003AF08 00037E68 7C 03 00 00 */ cmpw r3, r0
/* 8003AF0C 00037E6C 41 82 01 20 */ beq lbl_8003B02C
/* 8003AF10 00037E70 80 7C 07 34 */ lwz r3, 0x734(r28)
/* 8003AF14 00037E74 28 03 00 00 */ cmplwi r3, 0
/* 8003AF18 00037E78 41 82 01 14 */ beq lbl_8003B02C
/* 8003AF1C 00037E7C 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8003AF20 00037E80 40 82 00 08 */ bne lbl_8003AF28
/* 8003AF24 00037E84 48 18 06 C9 */ bl Touch__10CGunWeaponFRC13CStateManager
lbl_8003AF28:
/* 8003AF28 00037E88 80 7C 07 34 */ lwz r3, 0x734(r28)
/* 8003AF2C 00037E8C 81 83 00 00 */ lwz r12, 0(r3)
/* 8003AF30 00037E90 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 8003AF34 00037E94 7D 89 03 A6 */ mtctr r12
/* 8003AF38 00037E98 4E 80 04 21 */ bctrl
/* 8003AF3C 00037E9C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003AF40 00037EA0 41 82 00 EC */ beq lbl_8003B02C
/* 8003AF44 00037EA4 80 7C 07 44 */ lwz r3, 0x744(r28)
/* 8003AF48 00037EA8 88 03 00 80 */ lbz r0, 0x80(r3)
/* 8003AF4C 00037EAC 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8003AF50 00037EB0 41 82 00 DC */ beq lbl_8003B02C
/* 8003AF54 00037EB4 80 1C 07 34 */ lwz r0, 0x734(r28)
/* 8003AF58 00037EB8 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 8003AF5C 00037EBC 7C 00 18 40 */ cmplw r0, r3
/* 8003AF60 00037EC0 41 82 00 08 */ beq lbl_8003AF68
/* 8003AF64 00037EC4 48 00 00 08 */ b lbl_8003AF6C
lbl_8003AF68:
/* 8003AF68 00037EC8 38 60 00 00 */ li r3, 0
lbl_8003AF6C:
/* 8003AF6C 00037ECC 90 7C 07 30 */ stw r3, 0x730(r28)
/* 8003AF70 00037ED0 38 00 00 00 */ li r0, 0
/* 8003AF74 00037ED4 38 80 00 01 */ li r4, 1
/* 8003AF78 00037ED8 90 1C 07 34 */ stw r0, 0x734(r28)
/* 8003AF7C 00037EDC 80 1C 03 14 */ lwz r0, 0x314(r28)
/* 8003AF80 00037EE0 90 1C 03 10 */ stw r0, 0x310(r28)
/* 8003AF84 00037EE4 80 1C 03 14 */ lwz r0, 0x314(r28)
/* 8003AF88 00037EE8 90 1C 03 20 */ stw r0, 0x320(r28)
/* 8003AF8C 00037EEC 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8003AF90 00037EF0 50 80 0F BC */ rlwimi r0, r4, 1, 0x1e, 0x1e
/* 8003AF94 00037EF4 98 1C 08 33 */ stb r0, 0x833(r28)
/* 8003AF98 00037EF8 80 1C 03 14 */ lwz r0, 0x314(r28)
/* 8003AF9C 00037EFC 54 00 10 3A */ slwi r0, r0, 2
/* 8003AFA0 00037F00 7C 7C 02 14 */ add r3, r28, r0
/* 8003AFA4 00037F04 80 03 07 64 */ lwz r0, 0x764(r3)
/* 8003AFA8 00037F08 90 1C 07 2C */ stw r0, 0x72c(r28)
/* 8003AFAC 00037F0C 80 1C 07 2C */ lwz r0, 0x72c(r28)
/* 8003AFB0 00037F10 90 1C 07 38 */ stw r0, 0x738(r28)
/* 8003AFB4 00037F14 88 1C 06 9C */ lbz r0, 0x69c(r28)
/* 8003AFB8 00037F18 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 8003AFBC 00037F1C 98 1C 06 9C */ stb r0, 0x69c(r28)
/* 8003AFC0 00037F20 80 1C 03 14 */ lwz r0, 0x314(r28)
/* 8003AFC4 00037F24 90 1F 00 08 */ stw r0, 8(r31)
/* 8003AFC8 00037F28 48 00 00 64 */ b lbl_8003B02C
lbl_8003AFCC:
/* 8003AFCC 00037F2C 80 7C 07 78 */ lwz r3, 0x778(r28)
/* 8003AFD0 00037F30 3C 80 80 57 */ lis r4, kScaleVector__10CPlayerGun@ha
/* 8003AFD4 00037F34 38 84 D4 04 */ addi r4, r4, kScaleVector__10CPlayerGun@l
/* 8003AFD8 00037F38 81 83 00 00 */ lwz r12, 0(r3)
/* 8003AFDC 00037F3C 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8003AFE0 00037F40 7D 89 03 A6 */ mtctr r12
/* 8003AFE4 00037F44 4E 80 04 21 */ bctrl
/* 8003AFE8 00037F48 C0 3C 06 78 */ lfs f1, 0x678(r28)
/* 8003AFEC 00037F4C 38 81 00 10 */ addi r4, r1, 0x10
/* 8003AFF0 00037F50 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003AFF4 00037F54 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 8003AFF8 00037F58 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8003AFFC 00037F5C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8003B000 00037F60 80 7C 07 78 */ lwz r3, 0x778(r28)
/* 8003B004 00037F64 81 83 00 00 */ lwz r12, 0(r3)
/* 8003B008 00037F68 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 8003B00C 00037F6C 7D 89 03 A6 */ mtctr r12
/* 8003B010 00037F70 4E 80 04 21 */ bctrl
/* 8003B014 00037F74 80 7C 07 78 */ lwz r3, 0x778(r28)
/* 8003B018 00037F78 FC 20 F8 90 */ fmr f1, f31
/* 8003B01C 00037F7C 81 83 00 00 */ lwz r12, 0(r3)
/* 8003B020 00037F80 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8003B024 00037F84 7D 89 03 A6 */ mtctr r12
/* 8003B028 00037F88 4E 80 04 21 */ bctrl
lbl_8003B02C:
/* 8003B02C 00037F8C FC 60 F8 90 */ fmr f3, f31
/* 8003B030 00037F90 C0 22 84 70 */ lfs f1, lbl_805AA190@sda21(r2)
/* 8003B034 00037F94 C0 42 84 74 */ lfs f2, lbl_805AA194@sda21(r2)
/* 8003B038 00037F98 38 7C 06 78 */ addi r3, r28, 0x678
/* 8003B03C 00037F9C 48 00 2F 31 */ bl Update__Q210CPlayerGun9CGunMorphFfff
/* 8003B040 00037FA0 2C 03 00 02 */ cmpwi r3, 2
/* 8003B044 00037FA4 41 82 00 3C */ beq lbl_8003B080
/* 8003B048 00037FA8 40 80 01 5C */ bge lbl_8003B1A4
/* 8003B04C 00037FAC 2C 03 00 01 */ cmpwi r3, 1
/* 8003B050 00037FB0 40 80 00 08 */ bge lbl_8003B058
/* 8003B054 00037FB4 48 00 01 50 */ b lbl_8003B1A4
lbl_8003B058:
/* 8003B058 00037FB8 A9 02 C5 F8 */ lha r8, kMaxPriority__11CSfxManager@sda21(r2)
/* 8003B05C 00037FBC 38 61 00 0C */ addi r3, r1, 0xc
/* 8003B060 00037FC0 81 42 C6 00 */ lwz r10, kAllAreas__11CSfxManager@sda21(r2)
/* 8003B064 00037FC4 38 80 06 EF */ li r4, 0x6ef
/* 8003B068 00037FC8 38 A0 00 7F */ li r5, 0x7f
/* 8003B06C 00037FCC 38 C0 00 40 */ li r6, 0x40
/* 8003B070 00037FD0 38 E0 00 01 */ li r7, 1
/* 8003B074 00037FD4 39 20 00 00 */ li r9, 0
/* 8003B078 00037FD8 48 2A EC FD */ bl SfxStart__11CSfxManagerFUsssbsbi
/* 8003B07C 00037FDC 48 00 01 28 */ b lbl_8003B1A4
lbl_8003B080:
/* 8003B080 00037FE0 80 7C 07 30 */ lwz r3, 0x730(r28)
/* 8003B084 00037FE4 28 03 00 00 */ cmplwi r3, 0
/* 8003B088 00037FE8 41 82 00 2C */ beq lbl_8003B0B4
/* 8003B08C 00037FEC 80 1C 07 2C */ lwz r0, 0x72c(r28)
/* 8003B090 00037FF0 7C 03 00 40 */ cmplw r3, r0
/* 8003B094 00037FF4 41 82 00 20 */ beq lbl_8003B0B4
/* 8003B098 00037FF8 81 83 00 00 */ lwz r12, 0(r3)
/* 8003B09C 00037FFC 7F A4 EB 78 */ mr r4, r29
/* 8003B0A0 00038000 81 8C 00 3C */ lwz r12, 0x3c(r12)
/* 8003B0A4 00038004 7D 89 03 A6 */ mtctr r12
/* 8003B0A8 00038008 4E 80 04 21 */ bctrl
/* 8003B0AC 0003800C 38 00 00 00 */ li r0, 0
/* 8003B0B0 00038010 90 1C 07 30 */ stw r0, 0x730(r28)
lbl_8003B0B4:
/* 8003B0B4 00038014 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8003B0B8 00038018 41 82 00 2C */ beq lbl_8003B0E4
/* 8003B0BC 0003801C 80 7C 03 10 */ lwz r3, 0x310(r28)
/* 8003B0C0 00038020 38 8D 82 30 */ addi r4, r13, mIntoBeamSound@sda21
/* 8003B0C4 00038024 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003B0C8 00038028 38 E0 00 4A */ li r7, 0x4a
/* 8003B0CC 0003802C 54 66 08 3C */ slwi r6, r3, 1
/* 8003B0D0 00038030 38 61 00 08 */ addi r3, r1, 8
/* 8003B0D4 00038034 7C 84 32 2E */ lhzx r4, r4, r6
/* 8003B0D8 00038038 54 05 E7 FE */ rlwinm r5, r0, 0x1c, 0x1f, 0x1f
/* 8003B0DC 0003803C 38 C0 00 00 */ li r6, 0
/* 8003B0E0 00038040 48 24 FA 19 */ bl play_sfx__12NWeaponTypesFUsbbs
lbl_8003B0E4:
/* 8003B0E4 00038044 80 1C 07 48 */ lwz r0, 0x748(r28)
/* 8003B0E8 00038048 38 80 00 01 */ li r4, 1
/* 8003B0EC 0003804C 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 8003B0F0 00038050 90 03 01 BC */ stw r0, 0x1bc(r3)
/* 8003B0F4 00038054 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 8003B0F8 00038058 81 83 00 00 */ lwz r12, 0(r3)
/* 8003B0FC 0003805C 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8003B100 00038060 7D 89 03 A6 */ mtctr r12
/* 8003B104 00038064 4E 80 04 21 */ bctrl
/* 8003B108 00038068 7F 83 E3 78 */ mr r3, r28
/* 8003B10C 0003806C 38 80 00 0A */ li r4, 0xa
/* 8003B110 00038070 38 A0 00 00 */ li r5, 0
/* 8003B114 00038074 48 00 67 B1 */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
/* 8003B118 00038078 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8003B11C 0003807C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8003B120 00038080 41 82 00 14 */ beq lbl_8003B134
/* 8003B124 00038084 7F 83 E3 78 */ mr r3, r28
/* 8003B128 00038088 7F A4 EB 78 */ mr r4, r29
/* 8003B12C 0003808C 48 00 0D 91 */ bl EnterFreeLook__10CPlayerGunFR13CStateManager
/* 8003B130 00038090 48 00 00 20 */ b lbl_8003B150
lbl_8003B134:
/* 8003B134 00038094 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 8003B138 00038098 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
/* 8003B13C 0003809C 41 82 00 14 */ beq lbl_8003B150
/* 8003B140 000380A0 7F 83 E3 78 */ mr r3, r28
/* 8003B144 000380A4 7F A4 EB 78 */ mr r4, r29
/* 8003B148 000380A8 38 A0 00 00 */ li r5, 0
/* 8003B14C 000380AC 48 00 0A ED */ bl ReturnArmAndGunToDefault__10CPlayerGunFR13CStateManagerb
lbl_8003B150:
/* 8003B150 000380B0 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003B154 000380B4 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 8003B158 000380B8 40 82 00 10 */ bne lbl_8003B168
/* 8003B15C 000380BC 80 1C 02 EC */ lwz r0, 0x2ec(r28)
/* 8003B160 000380C0 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8003B164 000380C4 41 82 00 28 */ beq lbl_8003B18C
lbl_8003B168:
/* 8003B168 000380C8 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 8003B16C 000380CC 2C 00 00 02 */ cmpwi r0, 2
/* 8003B170 000380D0 41 82 00 0C */ beq lbl_8003B17C
/* 8003B174 000380D4 38 00 00 01 */ li r0, 1
/* 8003B178 000380D8 90 1C 03 2C */ stw r0, 0x32c(r28)
lbl_8003B17C:
/* 8003B17C 000380DC 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003B180 000380E0 38 60 00 00 */ li r3, 0
/* 8003B184 000380E4 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8003B188 000380E8 98 1C 08 34 */ stb r0, 0x834(r28)
lbl_8003B18C:
/* 8003B18C 000380EC 88 7C 08 32 */ lbz r3, 0x832(r28)
/* 8003B190 000380F0 38 00 00 00 */ li r0, 0
/* 8003B194 000380F4 50 03 0F BC */ rlwimi r3, r0, 1, 0x1e, 0x1e
/* 8003B198 000380F8 38 00 00 06 */ li r0, 6
/* 8003B19C 000380FC 98 7C 08 32 */ stb r3, 0x832(r28)
/* 8003B1A0 00038100 90 1C 03 38 */ stw r0, 0x338(r28)
lbl_8003B1A4:
/* 8003B1A4 00038104 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
/* 8003B1A8 00038108 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8003B1AC 0003810C CB E1 00 30 */ lfd f31, 0x30(r1)
/* 8003B1B0 00038110 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8003B1B4 00038114 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8003B1B8 00038118 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8003B1BC 0003811C 83 81 00 20 */ lwz r28, 0x20(r1)
/* 8003B1C0 00038120 7C 08 03 A6 */ mtlr r0
/* 8003B1C4 00038124 38 21 00 40 */ addi r1, r1, 0x40
/* 8003B1C8 00038128 4E 80 00 20 */ blr
.global EnableFx__10CGunWeaponFb
EnableFx__10CGunWeaponFb:
/* 8003B1CC 0003812C 4E 80 00 20 */ blr
.global ProcessPhazonGunMorph__10CPlayerGunFfR13CStateManager
ProcessPhazonGunMorph__10CPlayerGunFfR13CStateManager:
/* 8003B1D0 00038130 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003B1D4 00038134 7C 08 02 A6 */ mflr r0
/* 8003B1D8 00038138 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003B1DC 0003813C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003B1E0 00038140 7C 7F 1B 78 */ mr r31, r3
/* 8003B1E4 00038144 93 C1 00 08 */ stw r30, 8(r1)
/* 8003B1E8 00038148 7C 9E 23 78 */ mr r30, r4
/* 8003B1EC 0003814C 88 63 08 35 */ lbz r3, 0x835(r3)
/* 8003B1F0 00038150 54 60 DF FF */ rlwinm. r0, r3, 0x1b, 0x1f, 0x1f
/* 8003B1F4 00038154 41 82 00 68 */ beq lbl_8003B25C
/* 8003B1F8 00038158 54 60 E7 FF */ rlwinm. r0, r3, 0x1c, 0x1f, 0x1f
/* 8003B1FC 0003815C 41 82 00 2C */ beq lbl_8003B228
/* 8003B200 00038160 C0 62 84 78 */ lfs f3, lbl_805AA198@sda21(r2)
/* 8003B204 00038164 C0 5F 03 9C */ lfs f2, 0x39c(r31)
/* 8003B208 00038168 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8003B20C 0003816C EC 43 10 7A */ fmadds f2, f3, f1, f2
/* 8003B210 00038170 D0 5F 03 9C */ stfs f2, 0x39c(r31)
/* 8003B214 00038174 C0 5F 03 9C */ lfs f2, 0x39c(r31)
/* 8003B218 00038178 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8003B21C 0003817C 40 81 00 40 */ ble lbl_8003B25C
/* 8003B220 00038180 D0 1F 03 9C */ stfs f0, 0x39c(r31)
/* 8003B224 00038184 48 00 00 38 */ b lbl_8003B25C
lbl_8003B228:
/* 8003B228 00038188 C0 62 84 80 */ lfs f3, lbl_805AA1A0@sda21(r2)
/* 8003B22C 0003818C C0 5F 03 9C */ lfs f2, 0x39c(r31)
/* 8003B230 00038190 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003B234 00038194 EC 43 10 7C */ fnmsubs f2, f3, f1, f2
/* 8003B238 00038198 D0 5F 03 9C */ stfs f2, 0x39c(r31)
/* 8003B23C 0003819C C0 5F 03 9C */ lfs f2, 0x39c(r31)
/* 8003B240 000381A0 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8003B244 000381A4 40 80 00 18 */ bge lbl_8003B25C
/* 8003B248 000381A8 88 1F 08 35 */ lbz r0, 0x835(r31)
/* 8003B24C 000381AC 38 60 00 00 */ li r3, 0
/* 8003B250 000381B0 50 60 2E B4 */ rlwimi r0, r3, 5, 0x1a, 0x1a
/* 8003B254 000381B4 98 1F 08 35 */ stb r0, 0x835(r31)
/* 8003B258 000381B8 D0 1F 03 9C */ stfs f0, 0x39c(r31)
lbl_8003B25C:
/* 8003B25C 000381BC 80 1F 03 3C */ lwz r0, 0x33c(r31)
/* 8003B260 000381C0 2C 00 00 02 */ cmpwi r0, 2
/* 8003B264 000381C4 41 82 00 88 */ beq lbl_8003B2EC
/* 8003B268 000381C8 40 80 01 04 */ bge lbl_8003B36C
/* 8003B26C 000381CC 2C 00 00 01 */ cmpwi r0, 1
/* 8003B270 000381D0 40 80 00 08 */ bge lbl_8003B278
/* 8003B274 000381D4 48 00 00 F8 */ b lbl_8003B36C
lbl_8003B278:
/* 8003B278 000381D8 80 7F 07 5C */ lwz r3, 0x75c(r31)
/* 8003B27C 000381DC 28 03 00 00 */ cmplwi r3, 0
/* 8003B280 000381E0 41 82 00 EC */ beq lbl_8003B36C
/* 8003B284 000381E4 81 83 00 00 */ lwz r12, 0(r3)
/* 8003B288 000381E8 7F C4 F3 78 */ mr r4, r30
/* 8003B28C 000381EC 81 8C 00 34 */ lwz r12, 0x34(r12)
/* 8003B290 000381F0 7D 89 03 A6 */ mtctr r12
/* 8003B294 000381F4 4E 80 04 21 */ bctrl
/* 8003B298 000381F8 80 7F 07 5C */ lwz r3, 0x75c(r31)
/* 8003B29C 000381FC 81 83 00 00 */ lwz r12, 0(r3)
/* 8003B2A0 00038200 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 8003B2A4 00038204 7D 89 03 A6 */ mtctr r12
/* 8003B2A8 00038208 4E 80 04 21 */ bctrl
/* 8003B2AC 0003820C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003B2B0 00038210 41 82 00 BC */ beq lbl_8003B36C
/* 8003B2B4 00038214 80 DE 08 B8 */ lwz r6, 0x8b8(r30)
/* 8003B2B8 00038218 7F E3 FB 78 */ mr r3, r31
/* 8003B2BC 0003821C 7F C5 F3 78 */ mr r5, r30
/* 8003B2C0 00038220 38 80 00 01 */ li r4, 1
/* 8003B2C4 00038224 80 C6 00 00 */ lwz r6, 0(r6)
/* 8003B2C8 00038228 48 00 3B 79 */ bl StartPhazonBeamTransition__10CPlayerGunFbR13CStateManagerR12CPlayerState
/* 8003B2CC 0003822C 7F E3 FB 78 */ mr r3, r31
/* 8003B2D0 00038230 38 80 00 00 */ li r4, 0
/* 8003B2D4 00038234 48 00 38 4D */ bl SetPhazonBeamMorph__10CPlayerGunFb
/* 8003B2D8 00038238 38 60 00 03 */ li r3, 3
/* 8003B2DC 0003823C 38 00 00 06 */ li r0, 6
/* 8003B2E0 00038240 90 7F 03 3C */ stw r3, 0x33c(r31)
/* 8003B2E4 00038244 90 1F 03 38 */ stw r0, 0x338(r31)
/* 8003B2E8 00038248 48 00 00 84 */ b lbl_8003B36C
lbl_8003B2EC:
/* 8003B2EC 0003824C 80 7F 07 38 */ lwz r3, 0x738(r31)
/* 8003B2F0 00038250 28 03 00 00 */ cmplwi r3, 0
/* 8003B2F4 00038254 41 82 00 78 */ beq lbl_8003B36C
/* 8003B2F8 00038258 81 83 00 00 */ lwz r12, 0(r3)
/* 8003B2FC 0003825C 7F C4 F3 78 */ mr r4, r30
/* 8003B300 00038260 81 8C 00 34 */ lwz r12, 0x34(r12)
/* 8003B304 00038264 7D 89 03 A6 */ mtctr r12
/* 8003B308 00038268 4E 80 04 21 */ bctrl
/* 8003B30C 0003826C 80 7F 07 38 */ lwz r3, 0x738(r31)
/* 8003B310 00038270 81 83 00 00 */ lwz r12, 0(r3)
/* 8003B314 00038274 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 8003B318 00038278 7D 89 03 A6 */ mtctr r12
/* 8003B31C 0003827C 4E 80 04 21 */ bctrl
/* 8003B320 00038280 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003B324 00038284 41 82 00 48 */ beq lbl_8003B36C
/* 8003B328 00038288 88 1F 08 35 */ lbz r0, 0x835(r31)
/* 8003B32C 0003828C 38 60 00 00 */ li r3, 0
/* 8003B330 00038290 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003B334 00038294 7F E3 FB 78 */ mr r3, r31
/* 8003B338 00038298 98 1F 08 35 */ stb r0, 0x835(r31)
/* 8003B33C 0003829C 7F C5 F3 78 */ mr r5, r30
/* 8003B340 000382A0 38 80 00 00 */ li r4, 0
/* 8003B344 000382A4 80 DE 08 B8 */ lwz r6, 0x8b8(r30)
/* 8003B348 000382A8 80 C6 00 00 */ lwz r6, 0(r6)
/* 8003B34C 000382AC 48 00 3A F5 */ bl StartPhazonBeamTransition__10CPlayerGunFbR13CStateManagerR12CPlayerState
/* 8003B350 000382B0 7F E3 FB 78 */ mr r3, r31
/* 8003B354 000382B4 38 80 00 00 */ li r4, 0
/* 8003B358 000382B8 48 00 37 C9 */ bl SetPhazonBeamMorph__10CPlayerGunFb
/* 8003B35C 000382BC 38 60 00 00 */ li r3, 0
/* 8003B360 000382C0 38 00 00 06 */ li r0, 6
/* 8003B364 000382C4 90 7F 03 3C */ stw r3, 0x33c(r31)
/* 8003B368 000382C8 90 1F 03 38 */ stw r0, 0x338(r31)
lbl_8003B36C:
/* 8003B36C 000382CC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003B370 000382D0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003B374 000382D4 83 C1 00 08 */ lwz r30, 8(r1)
/* 8003B378 000382D8 7C 08 03 A6 */ mtlr r0
/* 8003B37C 000382DC 38 21 00 10 */ addi r1, r1, 0x10
/* 8003B380 000382E0 4E 80 00 20 */ blr
.global LoadHandAnimTokens__10CPlayerGunFv
LoadHandAnimTokens__10CPlayerGunFv:
/* 8003B384 000382E4 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8003B388 000382E8 7C 08 02 A6 */ mflr r0
/* 8003B38C 000382EC 90 01 00 84 */ stw r0, 0x84(r1)
/* 8003B390 000382F0 DB E1 00 70 */ stfd f31, 0x70(r1)
/* 8003B394 000382F4 F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0
/* 8003B398 000382F8 BF 41 00 58 */ stmw r26, 0x58(r1)
/* 8003B39C 000382FC 7C 7A 1B 78 */ mr r26, r3
/* 8003B3A0 00038300 88 61 00 08 */ lbz r3, 8(r1)
/* 8003B3A4 00038304 83 9A 06 F0 */ lwz r28, 0x6f0(r26)
/* 8003B3A8 00038308 3B A0 00 00 */ li r29, 0
/* 8003B3AC 0003830C 88 01 00 0C */ lbz r0, 0xc(r1)
/* 8003B3B0 00038310 3B 60 00 00 */ li r27, 0
/* 8003B3B4 00038314 98 61 00 10 */ stb r3, 0x10(r1)
/* 8003B3B8 00038318 3B E0 00 01 */ li r31, 1
/* 8003B3BC 0003831C C3 E2 84 7C */ lfs f31, lbl_805AA19C@sda21(r2)
/* 8003B3C0 00038320 3B C0 FF FF */ li r30, -1
/* 8003B3C4 00038324 98 01 00 11 */ stb r0, 0x11(r1)
/* 8003B3C8 00038328 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8003B3CC 0003832C 93 A1 00 18 */ stw r29, 0x18(r1)
/* 8003B3D0 00038330 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8003B3D4 00038334 93 A1 00 20 */ stw r29, 0x20(r1)
lbl_8003B3D8:
/* 8003B3D8 00038338 93 61 00 24 */ stw r27, 0x24(r1)
/* 8003B3DC 0003833C 7F 83 E3 78 */ mr r3, r28
/* 8003B3E0 00038340 38 81 00 24 */ addi r4, r1, 0x24
/* 8003B3E4 00038344 38 A1 00 10 */ addi r5, r1, 0x10
/* 8003B3E8 00038348 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8003B3EC 0003834C D3 E1 00 2C */ stfs f31, 0x2c(r1)
/* 8003B3F0 00038350 9B E1 00 30 */ stb r31, 0x30(r1)
/* 8003B3F4 00038354 93 A1 00 34 */ stw r29, 0x34(r1)
/* 8003B3F8 00038358 93 A1 00 38 */ stw r29, 0x38(r1)
/* 8003B3FC 0003835C 9B A1 00 3C */ stb r29, 0x3c(r1)
/* 8003B400 00038360 93 A1 00 40 */ stw r29, 0x40(r1)
/* 8003B404 00038364 93 A1 00 44 */ stw r29, 0x44(r1)
/* 8003B408 00038368 93 A1 00 48 */ stw r29, 0x48(r1)
/* 8003B40C 0003836C 4B FF 18 6D */ bl "GetAnimationPrimitives__9CAnimDataCFRC18CAnimPlaybackParmsRQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>"
/* 8003B410 00038370 3B 7B 00 01 */ addi r27, r27, 1
/* 8003B414 00038374 2C 1B 00 03 */ cmpwi r27, 3
/* 8003B418 00038378 41 80 FF C0 */ blt lbl_8003B3D8
/* 8003B41C 0003837C 38 61 00 10 */ addi r3, r1, 0x10
/* 8003B420 00038380 38 9A 05 40 */ addi r4, r26, 0x540
/* 8003B424 00038384 38 A0 00 01 */ li r5, 1
/* 8003B428 00038388 4B FF 16 BD */ bl "PrimitiveSetToTokenVector__9CAnimDataFRCQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>RQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>b"
/* 8003B42C 0003838C 80 81 00 20 */ lwz r4, 0x20(r1)
/* 8003B430 00038390 28 04 00 00 */ cmplwi r4, 0
/* 8003B434 00038394 41 82 00 0C */ beq lbl_8003B440
/* 8003B438 00038398 38 61 00 10 */ addi r3, r1, 0x10
/* 8003B43C 0003839C 4B FF 5E 6D */ bl "free_node_and_sub_nodes__Q24rstl130red_black_tree<10CPrimitive,10CPrimitive,0,Q24rstl22identity<10CPrimitive>,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>FPQ34rstl130red_black_tree<10CPrimitive,10CPrimitive,0,Q24rstl22identity<10CPrimitive>,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>4node"
lbl_8003B440:
/* 8003B440 000383A0 38 00 00 00 */ li r0, 0
/* 8003B444 000383A4 90 01 00 20 */ stw r0, 0x20(r1)
/* 8003B448 000383A8 90 01 00 18 */ stw r0, 0x18(r1)
/* 8003B44C 000383AC 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8003B450 000383B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003B454 000383B4 E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0
/* 8003B458 000383B8 CB E1 00 70 */ lfd f31, 0x70(r1)
/* 8003B45C 000383BC BB 41 00 58 */ lmw r26, 0x58(r1)
/* 8003B460 000383C0 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8003B464 000383C4 7C 08 03 A6 */ mtlr r0
/* 8003B468 000383C8 38 21 00 80 */ addi r1, r1, 0x80
/* 8003B46C 000383CC 4E 80 00 20 */ blr
.global SetGunLightActive__10CPlayerGunFbR13CStateManager
SetGunLightActive__10CPlayerGunFbR13CStateManager:
/* 8003B470 000383D0 94 21 FF 30 */ stwu r1, -0xd0(r1)
/* 8003B474 000383D4 7C 08 02 A6 */ mflr r0
/* 8003B478 000383D8 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 8003B47C 000383DC 93 E1 00 CC */ stw r31, 0xcc(r1)
/* 8003B480 000383E0 93 C1 00 C8 */ stw r30, 0xc8(r1)
/* 8003B484 000383E4 7C 9E 23 78 */ mr r30, r4
/* 8003B488 000383E8 93 A1 00 C4 */ stw r29, 0xc4(r1)
/* 8003B48C 000383EC 7C 7D 1B 78 */ mr r29, r3
/* 8003B490 000383F0 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003B494 000383F4 A0 63 05 3C */ lhz r3, 0x53c(r3)
/* 8003B498 000383F8 7C 03 00 40 */ cmplw r3, r0
/* 8003B49C 000383FC 41 82 00 B8 */ beq lbl_8003B554
/* 8003B4A0 00038400 A0 1D 05 3C */ lhz r0, 0x53c(r29)
/* 8003B4A4 00038404 7C A3 2B 78 */ mr r3, r5
/* 8003B4A8 00038408 38 81 00 08 */ addi r4, r1, 8
/* 8003B4AC 0003840C B0 01 00 08 */ sth r0, 8(r1)
/* 8003B4B0 00038410 48 01 10 C5 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8003B4B4 00038414 7C 64 1B 78 */ mr r4, r3
/* 8003B4B8 00038418 38 61 00 0C */ addi r3, r1, 0xc
/* 8003B4BC 0003841C 48 07 25 C9 */ bl "__ct__24TCastToPtr<10CGameLight>FP7CEntity"
/* 8003B4C0 00038420 83 E3 00 04 */ lwz r31, 4(r3)
/* 8003B4C4 00038424 28 1F 00 00 */ cmplwi r31, 0
/* 8003B4C8 00038428 41 82 00 8C */ beq lbl_8003B554
/* 8003B4CC 0003842C 7F E3 FB 78 */ mr r3, r31
/* 8003B4D0 00038430 57 C4 06 3E */ clrlwi r4, r30, 0x18
/* 8003B4D4 00038434 81 9F 00 00 */ lwz r12, 0(r31)
/* 8003B4D8 00038438 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 8003B4DC 0003843C 7D 89 03 A6 */ mtctr r12
/* 8003B4E0 00038440 4E 80 04 21 */ bctrl
/* 8003B4E4 00038444 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8003B4E8 00038448 41 82 00 6C */ beq lbl_8003B554
/* 8003B4EC 0003844C 80 7D 07 2C */ lwz r3, 0x72c(r29)
/* 8003B4F0 00038450 48 18 0C F1 */ bl GetChargeMuzzleFx__10CGunWeaponCFv
/* 8003B4F4 00038454 7C 7E 1B 79 */ or. r30, r3, r3
/* 8003B4F8 00038458 41 82 00 5C */ beq lbl_8003B554
/* 8003B4FC 0003845C 81 83 00 00 */ lwz r12, 0(r3)
/* 8003B500 00038460 81 8C 00 64 */ lwz r12, 0x64(r12)
/* 8003B504 00038464 7D 89 03 A6 */ mtctr r12
/* 8003B508 00038468 4E 80 04 21 */ bctrl
/* 8003B50C 0003846C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003B510 00038470 41 82 00 44 */ beq lbl_8003B554
/* 8003B514 00038474 7F C4 F3 78 */ mr r4, r30
/* 8003B518 00038478 38 61 00 14 */ addi r3, r1, 0x14
/* 8003B51C 0003847C 81 9E 00 00 */ lwz r12, 0(r30)
/* 8003B520 00038480 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 8003B524 00038484 7D 89 03 A6 */ mtctr r12
/* 8003B528 00038488 4E 80 04 21 */ bctrl
/* 8003B52C 0003848C 38 61 00 64 */ addi r3, r1, 0x64
/* 8003B530 00038490 38 81 00 14 */ addi r4, r1, 0x14
/* 8003B534 00038494 48 00 00 3D */ bl __ct__6CLightFRC6CLight
/* 8003B538 00038498 48 30 EA 7D */ bl Black__6CColorFv
/* 8003B53C 0003849C 7C 64 1B 78 */ mr r4, r3
/* 8003B540 000384A0 38 61 00 64 */ addi r3, r1, 0x64
/* 8003B544 000384A4 48 2C AE 19 */ bl SetColor__6CLightFRC6CColor
/* 8003B548 000384A8 7F E3 FB 78 */ mr r3, r31
/* 8003B54C 000384AC 38 81 00 64 */ addi r4, r1, 0x64
/* 8003B550 000384B0 48 07 A1 F5 */ bl SetLight__10CGameLightFRC6CLight
lbl_8003B554:
/* 8003B554 000384B4 80 01 00 D4 */ lwz r0, 0xd4(r1)
/* 8003B558 000384B8 83 E1 00 CC */ lwz r31, 0xcc(r1)
/* 8003B55C 000384BC 83 C1 00 C8 */ lwz r30, 0xc8(r1)
/* 8003B560 000384C0 83 A1 00 C4 */ lwz r29, 0xc4(r1)
/* 8003B564 000384C4 7C 08 03 A6 */ mtlr r0
/* 8003B568 000384C8 38 21 00 D0 */ addi r1, r1, 0xd0
/* 8003B56C 000384CC 4E 80 00 20 */ blr
.global __ct__6CLightFRC6CLight
__ct__6CLightFRC6CLight:
/* 8003B570 000384D0 C0 04 00 00 */ lfs f0, 0(r4)
/* 8003B574 000384D4 D0 03 00 00 */ stfs f0, 0(r3)
/* 8003B578 000384D8 C0 04 00 04 */ lfs f0, 4(r4)
/* 8003B57C 000384DC D0 03 00 04 */ stfs f0, 4(r3)
/* 8003B580 000384E0 C0 04 00 08 */ lfs f0, 8(r4)
/* 8003B584 000384E4 D0 03 00 08 */ stfs f0, 8(r3)
/* 8003B588 000384E8 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 8003B58C 000384EC D0 03 00 0C */ stfs f0, 0xc(r3)
/* 8003B590 000384F0 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 8003B594 000384F4 D0 03 00 10 */ stfs f0, 0x10(r3)
/* 8003B598 000384F8 C0 04 00 14 */ lfs f0, 0x14(r4)
/* 8003B59C 000384FC D0 03 00 14 */ stfs f0, 0x14(r3)
/* 8003B5A0 00038500 80 04 00 18 */ lwz r0, 0x18(r4)
/* 8003B5A4 00038504 90 03 00 18 */ stw r0, 0x18(r3)
/* 8003B5A8 00038508 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 8003B5AC 0003850C 90 03 00 1C */ stw r0, 0x1c(r3)
/* 8003B5B0 00038510 C0 04 00 20 */ lfs f0, 0x20(r4)
/* 8003B5B4 00038514 D0 03 00 20 */ stfs f0, 0x20(r3)
/* 8003B5B8 00038518 C0 04 00 24 */ lfs f0, 0x24(r4)
/* 8003B5BC 0003851C D0 03 00 24 */ stfs f0, 0x24(r3)
/* 8003B5C0 00038520 C0 04 00 28 */ lfs f0, 0x28(r4)
/* 8003B5C4 00038524 D0 03 00 28 */ stfs f0, 0x28(r3)
/* 8003B5C8 00038528 C0 04 00 2C */ lfs f0, 0x2c(r4)
/* 8003B5CC 0003852C D0 03 00 2C */ stfs f0, 0x2c(r3)
/* 8003B5D0 00038530 C0 04 00 30 */ lfs f0, 0x30(r4)
/* 8003B5D4 00038534 D0 03 00 30 */ stfs f0, 0x30(r3)
/* 8003B5D8 00038538 C0 04 00 34 */ lfs f0, 0x34(r4)
/* 8003B5DC 0003853C D0 03 00 34 */ stfs f0, 0x34(r3)
/* 8003B5E0 00038540 C0 04 00 38 */ lfs f0, 0x38(r4)
/* 8003B5E4 00038544 D0 03 00 38 */ stfs f0, 0x38(r3)
/* 8003B5E8 00038548 80 04 00 3C */ lwz r0, 0x3c(r4)
/* 8003B5EC 0003854C 90 03 00 3C */ stw r0, 0x3c(r3)
/* 8003B5F0 00038550 80 04 00 40 */ lwz r0, 0x40(r4)
/* 8003B5F4 00038554 90 03 00 40 */ stw r0, 0x40(r3)
/* 8003B5F8 00038558 C0 04 00 44 */ lfs f0, 0x44(r4)
/* 8003B5FC 0003855C D0 03 00 44 */ stfs f0, 0x44(r3)
/* 8003B600 00038560 C0 04 00 48 */ lfs f0, 0x48(r4)
/* 8003B604 00038564 D0 03 00 48 */ stfs f0, 0x48(r3)
/* 8003B608 00038568 88 04 00 4C */ lbz r0, 0x4c(r4)
/* 8003B60C 0003856C 98 03 00 4C */ stb r0, 0x4c(r3)
/* 8003B610 00038570 4E 80 00 20 */ blr
.global UpdateGunLight__10CPlayerGunFRC12CTransform4fR13CStateManager
UpdateGunLight__10CPlayerGunFRC12CTransform4fR13CStateManager:
/* 8003B614 00038574 94 21 FF 20 */ stwu r1, -0xe0(r1)
/* 8003B618 00038578 7C 08 02 A6 */ mflr r0
/* 8003B61C 0003857C 90 01 00 E4 */ stw r0, 0xe4(r1)
/* 8003B620 00038580 93 E1 00 DC */ stw r31, 0xdc(r1)
/* 8003B624 00038584 7C 7F 1B 78 */ mr r31, r3
/* 8003B628 00038588 93 C1 00 D8 */ stw r30, 0xd8(r1)
/* 8003B62C 0003858C 93 A1 00 D4 */ stw r29, 0xd4(r1)
/* 8003B630 00038590 93 81 00 D0 */ stw r28, 0xd0(r1)
/* 8003B634 00038594 7C 9C 23 78 */ mr r28, r4
/* 8003B638 00038598 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003B63C 0003859C A0 63 05 3C */ lhz r3, 0x53c(r3)
/* 8003B640 000385A0 7C 03 00 40 */ cmplw r3, r0
/* 8003B644 000385A4 41 82 01 20 */ beq lbl_8003B764
/* 8003B648 000385A8 80 1F 03 2C */ lwz r0, 0x32c(r31)
/* 8003B64C 000385AC 2C 00 00 00 */ cmpwi r0, 0
/* 8003B650 000385B0 41 82 01 14 */ beq lbl_8003B764
/* 8003B654 000385B4 A0 1F 05 3C */ lhz r0, 0x53c(r31)
/* 8003B658 000385B8 7C A3 2B 78 */ mr r3, r5
/* 8003B65C 000385BC 38 81 00 08 */ addi r4, r1, 8
/* 8003B660 000385C0 B0 01 00 08 */ sth r0, 8(r1)
/* 8003B664 000385C4 48 01 0F 11 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8003B668 000385C8 7C 64 1B 78 */ mr r4, r3
/* 8003B66C 000385CC 38 61 00 10 */ addi r3, r1, 0x10
/* 8003B670 000385D0 48 07 24 15 */ bl "__ct__24TCastToPtr<10CGameLight>FP7CEntity"
/* 8003B674 000385D4 83 C3 00 04 */ lwz r30, 4(r3)
/* 8003B678 000385D8 28 1E 00 00 */ cmplwi r30, 0
/* 8003B67C 000385DC 41 82 00 E8 */ beq lbl_8003B764
/* 8003B680 000385E0 88 1E 00 30 */ lbz r0, 0x30(r30)
/* 8003B684 000385E4 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8003B688 000385E8 41 82 00 DC */ beq lbl_8003B764
/* 8003B68C 000385EC 80 7F 07 2C */ lwz r3, 0x72c(r31)
/* 8003B690 000385F0 48 18 0B 51 */ bl GetChargeMuzzleFx__10CGunWeaponCFv
/* 8003B694 000385F4 7C 7D 1B 78 */ mr r29, r3
/* 8003B698 000385F8 7F 84 E3 78 */ mr r4, r28
/* 8003B69C 000385FC 38 7E 00 34 */ addi r3, r30, 0x34
/* 8003B6A0 00038600 48 2D 74 A1 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8003B6A4 00038604 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8003B6A8 00038608 38 A0 00 01 */ li r5, 1
/* 8003B6AC 0003860C 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b
/* 8003B6B0 00038610 7F C3 F3 78 */ mr r3, r30
/* 8003B6B4 00038614 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8003B6B8 00038618 38 81 00 18 */ addi r4, r1, 0x18
/* 8003B6BC 0003861C 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8003B6C0 00038620 50 A0 1F 38 */ rlwimi r0, r5, 3, 0x1c, 0x1c
/* 8003B6C4 00038624 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8003B6C8 00038628 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8003B6CC 0003862C 50 A0 17 7A */ rlwimi r0, r5, 2, 0x1d, 0x1d
/* 8003B6D0 00038630 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8003B6D4 00038634 C0 5C 00 2C */ lfs f2, 0x2c(r28)
/* 8003B6D8 00038638 C0 3C 00 1C */ lfs f1, 0x1c(r28)
/* 8003B6DC 0003863C C0 1C 00 0C */ lfs f0, 0xc(r28)
/* 8003B6E0 00038640 D0 21 00 1C */ stfs f1, 0x1c(r1)
/* 8003B6E4 00038644 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8003B6E8 00038648 D0 41 00 20 */ stfs f2, 0x20(r1)
/* 8003B6EC 0003864C 48 01 77 A1 */ bl SetTranslation__6CActorFRC9CVector3f
/* 8003B6F0 00038650 28 1D 00 00 */ cmplwi r29, 0
/* 8003B6F4 00038654 41 82 00 70 */ beq lbl_8003B764
/* 8003B6F8 00038658 7F A3 EB 78 */ mr r3, r29
/* 8003B6FC 0003865C 81 9D 00 00 */ lwz r12, 0(r29)
/* 8003B700 00038660 81 8C 00 64 */ lwz r12, 0x64(r12)
/* 8003B704 00038664 7D 89 03 A6 */ mtctr r12
/* 8003B708 00038668 4E 80 04 21 */ bctrl
/* 8003B70C 0003866C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003B710 00038670 41 82 00 54 */ beq lbl_8003B764
/* 8003B714 00038674 7F A4 EB 78 */ mr r4, r29
/* 8003B718 00038678 38 61 00 24 */ addi r3, r1, 0x24
/* 8003B71C 0003867C 81 9D 00 00 */ lwz r12, 0(r29)
/* 8003B720 00038680 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 8003B724 00038684 7D 89 03 A6 */ mtctr r12
/* 8003B728 00038688 4E 80 04 21 */ bctrl
/* 8003B72C 0003868C 38 61 00 74 */ addi r3, r1, 0x74
/* 8003B730 00038690 38 81 00 24 */ addi r4, r1, 0x24
/* 8003B734 00038694 4B FF FE 3D */ bl __ct__6CLightFRC6CLight
/* 8003B738 00038698 80 81 00 8C */ lwz r4, 0x8c(r1)
/* 8003B73C 0003869C 38 60 00 00 */ li r3, 0
/* 8003B740 000386A0 C0 3F 03 40 */ lfs f1, 0x340(r31)
/* 8003B744 000386A4 48 32 7A D1 */ bl Lerp__6CColorFUiUif
/* 8003B748 000386A8 90 61 00 0C */ stw r3, 0xc(r1)
/* 8003B74C 000386AC 38 61 00 74 */ addi r3, r1, 0x74
/* 8003B750 000386B0 38 81 00 0C */ addi r4, r1, 0xc
/* 8003B754 000386B4 48 2C AC 09 */ bl SetColor__6CLightFRC6CColor
/* 8003B758 000386B8 7F C3 F3 78 */ mr r3, r30
/* 8003B75C 000386BC 38 81 00 74 */ addi r4, r1, 0x74
/* 8003B760 000386C0 48 07 9F E5 */ bl SetLight__10CGameLightFRC6CLight
lbl_8003B764:
/* 8003B764 000386C4 80 01 00 E4 */ lwz r0, 0xe4(r1)
/* 8003B768 000386C8 83 E1 00 DC */ lwz r31, 0xdc(r1)
/* 8003B76C 000386CC 83 C1 00 D8 */ lwz r30, 0xd8(r1)
/* 8003B770 000386D0 83 A1 00 D4 */ lwz r29, 0xd4(r1)
/* 8003B774 000386D4 83 81 00 D0 */ lwz r28, 0xd0(r1)
/* 8003B778 000386D8 7C 08 03 A6 */ mtlr r0
/* 8003B77C 000386DC 38 21 00 E0 */ addi r1, r1, 0xe0
/* 8003B780 000386E0 4E 80 00 20 */ blr
.global DeleteGunLight__10CPlayerGunFR13CStateManager
DeleteGunLight__10CPlayerGunFR13CStateManager:
/* 8003B784 000386E4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003B788 000386E8 7C 08 02 A6 */ mflr r0
/* 8003B78C 000386EC 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003B790 000386F0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003B794 000386F4 7C 7F 1B 78 */ mr r31, r3
/* 8003B798 000386F8 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003B79C 000386FC A0 63 05 3C */ lhz r3, 0x53c(r3)
/* 8003B7A0 00038700 7C 03 00 40 */ cmplw r3, r0
/* 8003B7A4 00038704 41 82 00 20 */ beq lbl_8003B7C4
/* 8003B7A8 00038708 A0 1F 05 3C */ lhz r0, 0x53c(r31)
/* 8003B7AC 0003870C 7C 83 23 78 */ mr r3, r4
/* 8003B7B0 00038710 38 81 00 08 */ addi r4, r1, 8
/* 8003B7B4 00038714 B0 01 00 08 */ sth r0, 8(r1)
/* 8003B7B8 00038718 48 01 0A B5 */ bl FreeScriptObject__13CStateManagerF9TUniqueId
/* 8003B7BC 0003871C A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003B7C0 00038720 B0 1F 05 3C */ sth r0, 0x53c(r31)
lbl_8003B7C4:
/* 8003B7C4 00038724 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003B7C8 00038728 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003B7CC 0003872C 7C 08 03 A6 */ mtlr r0
/* 8003B7D0 00038730 38 21 00 20 */ addi r1, r1, 0x20
/* 8003B7D4 00038734 4E 80 00 20 */ blr
.global CreateGunLight__10CPlayerGunFR13CStateManager
CreateGunLight__10CPlayerGunFR13CStateManager:
/* 8003B7D8 00038738 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8003B7DC 0003873C 7C 08 02 A6 */ mflr r0
/* 8003B7E0 00038740 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 8003B7E4 00038744 BF 61 00 8C */ stmw r27, 0x8c(r1)
/* 8003B7E8 00038748 7C 7E 1B 78 */ mr r30, r3
/* 8003B7EC 0003874C 7C 9F 23 78 */ mr r31, r4
/* 8003B7F0 00038750 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003B7F4 00038754 A0 63 05 3C */ lhz r3, 0x53c(r3)
/* 8003B7F8 00038758 7C 03 00 40 */ cmplw r3, r0
/* 8003B7FC 0003875C 40 82 00 DC */ bne lbl_8003B8D8
/* 8003B800 00038760 38 61 00 18 */ addi r3, r1, 0x18
/* 8003B804 00038764 48 01 18 D9 */ bl AllocateUniqueId__13CStateManagerFv
/* 8003B808 00038768 A0 01 00 18 */ lhz r0, 0x18(r1)
/* 8003B80C 0003876C 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 8003B810 00038770 38 63 CE B0 */ addi r3, r3, lbl_803CCEB0@l
/* 8003B814 00038774 3B 60 00 00 */ li r27, 0
/* 8003B818 00038778 B0 1E 05 3C */ sth r0, 0x53c(r30)
/* 8003B81C 0003877C 38 83 00 09 */ addi r4, r3, 9
/* 8003B820 00038780 38 60 01 48 */ li r3, 0x148
/* 8003B824 00038784 38 A0 00 00 */ li r5, 0
/* 8003B828 00038788 A0 1E 05 3C */ lhz r0, 0x53c(r30)
/* 8003B82C 0003878C 54 1D 05 BE */ clrlwi r29, r0, 0x16
/* 8003B830 00038790 48 2D A0 3D */ bl __nw__FUlPCcPCc
/* 8003B834 00038794 7C 7C 1B 79 */ or. r28, r3, r3
/* 8003B838 00038798 41 82 00 84 */ beq lbl_8003B8BC
/* 8003B83C 0003879C A0 1E 05 38 */ lhz r0, 0x538(r30)
/* 8003B840 000387A0 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 8003B844 000387A4 38 83 CE B0 */ addi r4, r3, lbl_803CCEB0@l
/* 8003B848 000387A8 38 61 00 20 */ addi r3, r1, 0x20
/* 8003B84C 000387AC B0 01 00 14 */ sth r0, 0x14(r1)
/* 8003B850 000387B0 38 84 00 10 */ addi r4, r4, 0x10
/* 8003B854 000387B4 4B FC 94 65 */ bl string_l__4rstlFPCc
/* 8003B858 000387B8 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13)
/* 8003B85C 000387BC 3B 60 00 01 */ li r27, 1
/* 8003B860 000387C0 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8003B864 000387C4 A0 1E 05 3C */ lhz r0, 0x53c(r30)
/* 8003B868 000387C8 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8003B86C 000387CC 48 30 E7 49 */ bl Black__6CColorFv
/* 8003B870 000387D0 3C 80 80 5A */ lis r4, sForwardVector__9CVector3f@ha
/* 8003B874 000387D4 7C 65 1B 78 */ mr r5, r3
/* 8003B878 000387D8 38 84 67 24 */ addi r4, r4, sForwardVector__9CVector3f@l
/* 8003B87C 000387DC 38 61 00 30 */ addi r3, r1, 0x30
/* 8003B880 000387E0 48 2C AB ED */ bl BuildDirectional__6CLightFRC9CVector3fRC6CColor
/* 8003B884 000387E4 93 A1 00 08 */ stw r29, 8(r1)
/* 8003B888 000387E8 38 00 00 00 */ li r0, 0
/* 8003B88C 000387EC C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 8003B890 000387F0 7F 83 E3 78 */ mr r3, r28
/* 8003B894 000387F4 90 01 00 0C */ stw r0, 0xc(r1)
/* 8003B898 000387F8 38 81 00 10 */ addi r4, r1, 0x10
/* 8003B89C 000387FC 38 A1 00 1C */ addi r5, r1, 0x1c
/* 8003B8A0 00038800 38 E1 00 20 */ addi r7, r1, 0x20
/* 8003B8A4 00038804 39 1E 03 E8 */ addi r8, r30, 0x3e8
/* 8003B8A8 00038808 39 21 00 14 */ addi r9, r1, 0x14
/* 8003B8AC 0003880C 39 41 00 30 */ addi r10, r1, 0x30
/* 8003B8B0 00038810 38 C0 00 00 */ li r6, 0
/* 8003B8B4 00038814 48 07 9F 71 */ bl "__ct__10CGameLightF9TUniqueId7TAreaIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4f9TUniqueIdRC6CLightUiUif"
/* 8003B8B8 00038818 7C 7C 1B 78 */ mr r28, r3
lbl_8003B8BC:
/* 8003B8BC 0003881C 7F E3 FB 78 */ mr r3, r31
/* 8003B8C0 00038820 7F 84 E3 78 */ mr r4, r28
/* 8003B8C4 00038824 48 01 14 31 */ bl AddObject__13CStateManagerFP7CEntity
/* 8003B8C8 00038828 7F 60 07 75 */ extsb. r0, r27
/* 8003B8CC 0003882C 41 82 00 0C */ beq lbl_8003B8D8
/* 8003B8D0 00038830 38 61 00 20 */ addi r3, r1, 0x20
/* 8003B8D4 00038834 48 30 22 0D */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_8003B8D8:
/* 8003B8D8 00038838 BB 61 00 8C */ lmw r27, 0x8c(r1)
/* 8003B8DC 0003883C 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 8003B8E0 00038840 7C 08 03 A6 */ mtlr r0
/* 8003B8E4 00038844 38 21 00 A0 */ addi r1, r1, 0xa0
/* 8003B8E8 00038848 4E 80 00 20 */ blr
.global CancelLockOn__10CPlayerGunFv
CancelLockOn__10CPlayerGunFv:
/* 8003B8EC 0003884C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003B8F0 00038850 7C 08 02 A6 */ mflr r0
/* 8003B8F4 00038854 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003B8F8 00038858 88 83 08 32 */ lbz r4, 0x832(r3)
/* 8003B8FC 0003885C 54 80 F7 FF */ rlwinm. r0, r4, 0x1e, 0x1f, 0x1f
/* 8003B900 00038860 41 82 00 3C */ beq lbl_8003B93C
/* 8003B904 00038864 38 00 00 00 */ li r0, 0
/* 8003B908 00038868 50 04 17 7A */ rlwimi r4, r0, 2, 0x1d, 0x1d
/* 8003B90C 0003886C 98 83 08 32 */ stb r4, 0x832(r3)
/* 8003B910 00038870 38 00 00 03 */ li r0, 3
/* 8003B914 00038874 90 03 06 C0 */ stw r0, 0x6c0(r3)
/* 8003B918 00038878 80 03 03 2C */ lwz r0, 0x32c(r3)
/* 8003B91C 0003887C 2C 00 00 00 */ cmpwi r0, 0
/* 8003B920 00038880 40 82 00 1C */ bne lbl_8003B93C
/* 8003B924 00038884 80 03 03 18 */ lwz r0, 0x318(r3)
/* 8003B928 00038888 2C 00 00 01 */ cmpwi r0, 1
/* 8003B92C 0003888C 41 82 00 10 */ beq lbl_8003B93C
/* 8003B930 00038890 38 80 00 00 */ li r4, 0
/* 8003B934 00038894 38 A0 00 00 */ li r5, 0
/* 8003B938 00038898 48 00 5F 8D */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
lbl_8003B93C:
/* 8003B93C 0003889C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003B940 000388A0 7C 08 03 A6 */ mtlr r0
/* 8003B944 000388A4 38 21 00 10 */ addi r1, r1, 0x10
/* 8003B948 000388A8 4E 80 00 20 */ blr
.global UpdateAuxWeapons__10CPlayerGunFfRC12CTransform4fR13CStateManager
UpdateAuxWeapons__10CPlayerGunFfRC12CTransform4fR13CStateManager:
/* 8003B94C 000388AC 94 21 FF 20 */ stwu r1, -0xe0(r1)
/* 8003B950 000388B0 7C 08 02 A6 */ mflr r0
/* 8003B954 000388B4 90 01 00 E4 */ stw r0, 0xe4(r1)
/* 8003B958 000388B8 DB E1 00 D0 */ stfd f31, 0xd0(r1)
/* 8003B95C 000388BC F3 E1 00 D8 */ psq_st f31, 216(r1), 0, qr0
/* 8003B960 000388C0 DB C1 00 C0 */ stfd f30, 0xc0(r1)
/* 8003B964 000388C4 F3 C1 00 C8 */ psq_st f30, 200(r1), 0, qr0
/* 8003B968 000388C8 DB A1 00 B0 */ stfd f29, 0xb0(r1)
/* 8003B96C 000388CC F3 A1 00 B8 */ psq_st f29, 184(r1), 0, qr0
/* 8003B970 000388D0 DB 81 00 A0 */ stfd f28, 0xa0(r1)
/* 8003B974 000388D4 F3 81 00 A8 */ psq_st f28, 168(r1), 0, qr0
/* 8003B978 000388D8 93 E1 00 9C */ stw r31, 0x9c(r1)
/* 8003B97C 000388DC 93 C1 00 98 */ stw r30, 0x98(r1)
/* 8003B980 000388E0 93 A1 00 94 */ stw r29, 0x94(r1)
/* 8003B984 000388E4 93 81 00 90 */ stw r28, 0x90(r1)
/* 8003B988 000388E8 7C 7E 1B 78 */ mr r30, r3
/* 8003B98C 000388EC 7C 9C 23 78 */ mr r28, r4
/* 8003B990 000388F0 C0 43 04 44 */ lfs f2, 0x444(r3)
/* 8003B994 000388F4 FF 80 08 90 */ fmr f28, f1
/* 8003B998 000388F8 C0 23 04 34 */ lfs f1, 0x434(r3)
/* 8003B99C 000388FC 7C BF 2B 78 */ mr r31, r5
/* 8003B9A0 00038900 C0 03 04 24 */ lfs f0, 0x424(r3)
/* 8003B9A4 00038904 38 61 00 60 */ addi r3, r1, 0x60
/* 8003B9A8 00038908 38 9E 04 A8 */ addi r4, r30, 0x4a8
/* 8003B9AC 0003890C D0 01 00 48 */ stfs f0, 0x48(r1)
/* 8003B9B0 00038910 D0 21 00 4C */ stfs f1, 0x4c(r1)
/* 8003B9B4 00038914 D0 41 00 50 */ stfs f2, 0x50(r1)
/* 8003B9B8 00038918 48 2D 71 BD */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8003B9BC 0003891C 38 61 00 54 */ addi r3, r1, 0x54
/* 8003B9C0 00038920 38 81 00 60 */ addi r4, r1, 0x60
/* 8003B9C4 00038924 38 A1 00 48 */ addi r5, r1, 0x48
/* 8003B9C8 00038928 48 2D 71 21 */ bl __ml__12CTransform4fCFRC9CVector3f
/* 8003B9CC 0003892C C3 E1 00 54 */ lfs f31, 0x54(r1)
/* 8003B9D0 00038930 7F E5 FB 78 */ mr r5, r31
/* 8003B9D4 00038934 C3 C1 00 58 */ lfs f30, 0x58(r1)
/* 8003B9D8 00038938 38 61 00 3C */ addi r3, r1, 0x3c
/* 8003B9DC 0003893C C3 A1 00 5C */ lfs f29, 0x5c(r1)
/* 8003B9E0 00038940 80 9F 08 70 */ lwz r4, 0x870(r31)
/* 8003B9E4 00038944 4B FC EF 31 */ bl GetGlobalCameraTranslation__14CCameraManagerCFRC13CStateManager
/* 8003B9E8 00038948 C0 41 00 3C */ lfs f2, 0x3c(r1)
/* 8003B9EC 0003894C 3C 60 80 57 */ lis r3, kScaleVector__10CPlayerGun@ha
/* 8003B9F0 00038950 C0 01 00 44 */ lfs f0, 0x44(r1)
/* 8003B9F4 00038954 38 83 D4 04 */ addi r4, r3, kScaleVector__10CPlayerGun@l
/* 8003B9F8 00038958 EC 7F 10 2A */ fadds f3, f31, f2
/* 8003B9FC 0003895C C0 21 00 40 */ lfs f1, 0x40(r1)
/* 8003BA00 00038960 EC 1D 00 2A */ fadds f0, f29, f0
/* 8003BA04 00038964 7F 86 E3 78 */ mr r6, r28
/* 8003BA08 00038968 EC 5E 08 2A */ fadds f2, f30, f1
/* 8003BA0C 0003896C 7F E7 FB 78 */ mr r7, r31
/* 8003BA10 00038970 D0 61 00 30 */ stfs f3, 0x30(r1)
/* 8003BA14 00038974 FC 20 E0 90 */ fmr f1, f28
/* 8003BA18 00038978 38 A1 00 30 */ addi r5, r1, 0x30
/* 8003BA1C 0003897C D0 41 00 34 */ stfs f2, 0x34(r1)
/* 8003BA20 00038980 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8003BA24 00038984 80 7E 07 44 */ lwz r3, 0x744(r30)
/* 8003BA28 00038988 48 17 DB B5 */ bl UpdateComboFx__10CAuxWeaponFfRC9CVector3fRC9CVector3fRC12CTransform4fR13CStateManager
/* 8003BA2C 0003898C 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8003BA30 00038990 7C 7D 1B 78 */ mr r29, r3
/* 8003BA34 00038994 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 8003BA38 00038998 2C 00 00 10 */ cmpwi r0, 0x10
/* 8003BA3C 0003899C 40 82 01 38 */ bne lbl_8003BB74
/* 8003BA40 000389A0 80 1E 03 10 */ lwz r0, 0x310(r30)
/* 8003BA44 000389A4 2C 00 00 02 */ cmpwi r0, 2
/* 8003BA48 000389A8 40 82 00 6C */ bne lbl_8003BAB4
/* 8003BA4C 000389AC 80 9E 07 44 */ lwz r4, 0x744(r30)
/* 8003BA50 000389B0 7F E5 FB 78 */ mr r5, r31
/* 8003BA54 000389B4 38 61 00 10 */ addi r3, r1, 0x10
/* 8003BA58 000389B8 48 17 DE 61 */ bl HasTarget__10CAuxWeaponCFRC13CStateManager
/* 8003BA5C 000389BC A0 61 00 10 */ lhz r3, 0x10(r1)
/* 8003BA60 000389C0 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003BA64 000389C4 7C 03 00 40 */ cmplw r3, r0
/* 8003BA68 000389C8 40 82 00 4C */ bne lbl_8003BAB4
/* 8003BA6C 000389CC 7F C4 F3 78 */ mr r4, r30
/* 8003BA70 000389D0 7F E5 FB 78 */ mr r5, r31
/* 8003BA74 000389D4 38 61 00 0C */ addi r3, r1, 0xc
/* 8003BA78 000389D8 48 00 27 85 */ bl GetTargetId__10CPlayerGunFR13CStateManager
/* 8003BA7C 000389DC A0 61 00 0C */ lhz r3, 0xc(r1)
/* 8003BA80 000389E0 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003BA84 000389E4 B0 61 00 14 */ sth r3, 0x14(r1)
/* 8003BA88 000389E8 7C 03 00 40 */ cmplw r3, r0
/* 8003BA8C 000389EC 40 82 00 10 */ bne lbl_8003BA9C
/* 8003BA90 000389F0 80 7F 08 4C */ lwz r3, 0x84c(r31)
/* 8003BA94 000389F4 A0 03 03 F4 */ lhz r0, 0x3f4(r3)
/* 8003BA98 000389F8 B0 01 00 14 */ sth r0, 0x14(r1)
lbl_8003BA9C:
/* 8003BA9C 000389FC A0 01 00 14 */ lhz r0, 0x14(r1)
/* 8003BAA0 00038A00 7F E5 FB 78 */ mr r5, r31
/* 8003BAA4 00038A04 38 81 00 08 */ addi r4, r1, 8
/* 8003BAA8 00038A08 B0 01 00 08 */ sth r0, 8(r1)
/* 8003BAAC 00038A0C 80 7E 07 44 */ lwz r3, 0x744(r30)
/* 8003BAB0 00038A10 48 17 DE 71 */ bl SetNewTarget__10CAuxWeaponF9TUniqueIdR13CStateManager
lbl_8003BAB4:
/* 8003BAB4 00038A14 57 A0 06 3E */ clrlwi r0, r29, 0x18
/* 8003BAB8 00038A18 28 00 00 01 */ cmplwi r0, 1
/* 8003BABC 00038A1C 41 82 01 34 */ beq lbl_8003BBF0
/* 8003BAC0 00038A20 80 1E 03 10 */ lwz r0, 0x310(r30)
/* 8003BAC4 00038A24 38 60 00 00 */ li r3, 0
/* 8003BAC8 00038A28 2C 00 00 02 */ cmpwi r0, 2
/* 8003BACC 00038A2C 41 82 00 0C */ beq lbl_8003BAD8
/* 8003BAD0 00038A30 2C 00 00 03 */ cmpwi r0, 3
/* 8003BAD4 00038A34 40 82 00 08 */ bne lbl_8003BADC
lbl_8003BAD8:
/* 8003BAD8 00038A38 38 60 00 01 */ li r3, 1
lbl_8003BADC:
/* 8003BADC 00038A3C 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8003BAE0 00038A40 7C 7D 1B 78 */ mr r29, r3
/* 8003BAE4 00038A44 28 00 00 01 */ cmplwi r0, 1
/* 8003BAE8 00038A48 41 82 00 18 */ beq lbl_8003BB00
/* 8003BAEC 00038A4C 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003BAF0 00038A50 48 17 FD 5D */ bl ComboFireOver__10CGunWeaponCFv
/* 8003BAF4 00038A54 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003BAF8 00038A58 41 82 00 08 */ beq lbl_8003BB00
/* 8003BAFC 00038A5C 3B A0 00 01 */ li r29, 1
lbl_8003BB00:
/* 8003BB00 00038A60 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003BB04 00038A64 38 80 00 03 */ li r4, 3
/* 8003BB08 00038A68 81 83 00 00 */ lwz r12, 0(r3)
/* 8003BB0C 00038A6C 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 8003BB10 00038A70 7D 89 03 A6 */ mtctr r12
/* 8003BB14 00038A74 4E 80 04 21 */ bctrl
/* 8003BB18 00038A78 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 8003BB1C 00038A7C 41 82 00 D4 */ beq lbl_8003BBF0
/* 8003BB20 00038A80 38 00 00 0A */ li r0, 0xa
/* 8003BB24 00038A84 7F C3 F3 78 */ mr r3, r30
/* 8003BB28 00038A88 90 1E 03 2C */ stw r0, 0x32c(r30)
/* 8003BB2C 00038A8C 7F E4 FB 78 */ mr r4, r31
/* 8003BB30 00038A90 38 A0 00 00 */ li r5, 0
/* 8003BB34 00038A94 48 00 01 05 */ bl ReturnArmAndGunToDefault__10CPlayerGunFR13CStateManagerb
/* 8003BB38 00038A98 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8003BB3C 00038A9C 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 8003BB40 00038AA0 2C 00 00 08 */ cmpwi r0, 8
/* 8003BB44 00038AA4 41 82 00 20 */ beq lbl_8003BB64
/* 8003BB48 00038AA8 80 7E 02 F8 */ lwz r3, 0x2f8(r30)
/* 8003BB4C 00038AAC 38 00 FF E9 */ li r0, -23
/* 8003BB50 00038AB0 60 63 00 01 */ ori r3, r3, 1
/* 8003BB54 00038AB4 90 7E 02 F8 */ stw r3, 0x2f8(r30)
/* 8003BB58 00038AB8 80 7E 02 F8 */ lwz r3, 0x2f8(r30)
/* 8003BB5C 00038ABC 7C 60 00 38 */ and r0, r3, r0
/* 8003BB60 00038AC0 90 1E 02 F8 */ stw r0, 0x2f8(r30)
lbl_8003BB64:
/* 8003BB64 00038AC4 38 00 00 00 */ li r0, 0
/* 8003BB68 00038AC8 90 1E 03 18 */ stw r0, 0x318(r30)
/* 8003BB6C 00038ACC 90 1E 03 1C */ stw r0, 0x31c(r30)
/* 8003BB70 00038AD0 48 00 00 80 */ b lbl_8003BBF0
lbl_8003BB74:
/* 8003BB74 00038AD4 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 8003BB78 00038AD8 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 8003BB7C 00038ADC 41 82 00 38 */ beq lbl_8003BBB4
/* 8003BB80 00038AE0 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003BB84 00038AE4 FC 20 E0 90 */ fmr f1, f28
/* 8003BB88 00038AE8 C0 7E 04 44 */ lfs f3, 0x444(r30)
/* 8003BB8C 00038AEC 7F 84 E3 78 */ mr r4, r28
/* 8003BB90 00038AF0 C0 5E 04 34 */ lfs f2, 0x434(r30)
/* 8003BB94 00038AF4 7F E6 FB 78 */ mr r6, r31
/* 8003BB98 00038AF8 C0 1E 04 24 */ lfs f0, 0x424(r30)
/* 8003BB9C 00038AFC 38 A1 00 24 */ addi r5, r1, 0x24
/* 8003BBA0 00038B00 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8003BBA4 00038B04 D0 41 00 28 */ stfs f2, 0x28(r1)
/* 8003BBA8 00038B08 D0 61 00 2C */ stfs f3, 0x2c(r1)
/* 8003BBAC 00038B0C 48 15 09 6D */ bl UpdateBeam__11CPhazonBeamFfRC12CTransform4fRC9CVector3fR13CStateManager
/* 8003BBB0 00038B10 48 00 00 40 */ b lbl_8003BBF0
lbl_8003BBB4:
/* 8003BBB4 00038B14 80 1E 03 10 */ lwz r0, 0x310(r30)
/* 8003BBB8 00038B18 2C 00 00 03 */ cmpwi r0, 3
/* 8003BBBC 00038B1C 40 82 00 34 */ bne lbl_8003BBF0
/* 8003BBC0 00038B20 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003BBC4 00038B24 FC 20 E0 90 */ fmr f1, f28
/* 8003BBC8 00038B28 C0 7E 04 44 */ lfs f3, 0x444(r30)
/* 8003BBCC 00038B2C 7F 84 E3 78 */ mr r4, r28
/* 8003BBD0 00038B30 C0 5E 04 34 */ lfs f2, 0x434(r30)
/* 8003BBD4 00038B34 7F E6 FB 78 */ mr r6, r31
/* 8003BBD8 00038B38 C0 1E 04 24 */ lfs f0, 0x424(r30)
/* 8003BBDC 00038B3C 38 A1 00 18 */ addi r5, r1, 0x18
/* 8003BBE0 00038B40 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8003BBE4 00038B44 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 8003BBE8 00038B48 D0 61 00 20 */ stfs f3, 0x20(r1)
/* 8003BBEC 00038B4C 48 0A 33 7D */ bl UpdateBeam__11CPlasmaBeamFfRC12CTransform4fRC9CVector3fR13CStateManager
lbl_8003BBF0:
/* 8003BBF0 00038B50 E3 E1 00 D8 */ psq_l f31, 216(r1), 0, qr0
/* 8003BBF4 00038B54 CB E1 00 D0 */ lfd f31, 0xd0(r1)
/* 8003BBF8 00038B58 E3 C1 00 C8 */ psq_l f30, 200(r1), 0, qr0
/* 8003BBFC 00038B5C CB C1 00 C0 */ lfd f30, 0xc0(r1)
/* 8003BC00 00038B60 E3 A1 00 B8 */ psq_l f29, 184(r1), 0, qr0
/* 8003BC04 00038B64 CB A1 00 B0 */ lfd f29, 0xb0(r1)
/* 8003BC08 00038B68 E3 81 00 A8 */ psq_l f28, 168(r1), 0, qr0
/* 8003BC0C 00038B6C CB 81 00 A0 */ lfd f28, 0xa0(r1)
/* 8003BC10 00038B70 83 E1 00 9C */ lwz r31, 0x9c(r1)
/* 8003BC14 00038B74 83 C1 00 98 */ lwz r30, 0x98(r1)
/* 8003BC18 00038B78 83 A1 00 94 */ lwz r29, 0x94(r1)
/* 8003BC1C 00038B7C 80 01 00 E4 */ lwz r0, 0xe4(r1)
/* 8003BC20 00038B80 83 81 00 90 */ lwz r28, 0x90(r1)
/* 8003BC24 00038B84 7C 08 03 A6 */ mtlr r0
/* 8003BC28 00038B88 38 21 00 E0 */ addi r1, r1, 0xe0
/* 8003BC2C 00038B8C 4E 80 00 20 */ blr
.global EnableSecondaryFx__10CGunWeaponFQ210CGunWeapon16ESecondaryFxType
EnableSecondaryFx__10CGunWeaponFQ210CGunWeapon16ESecondaryFxType:
/* 8003BC30 00038B90 90 83 01 CC */ stw r4, 0x1cc(r3)
/* 8003BC34 00038B94 4E 80 00 20 */ blr
.global ReturnArmAndGunToDefault__10CPlayerGunFR13CStateManagerb
ReturnArmAndGunToDefault__10CPlayerGunFR13CStateManagerb:
/* 8003BC38 00038B98 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003BC3C 00038B9C 7C 08 02 A6 */ mflr r0
/* 8003BC40 00038BA0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003BC44 00038BA4 54 A0 06 3F */ clrlwi. r0, r5, 0x18
/* 8003BC48 00038BA8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003BC4C 00038BAC 7C 9F 23 78 */ mr r31, r4
/* 8003BC50 00038BB0 93 C1 00 08 */ stw r30, 8(r1)
/* 8003BC54 00038BB4 7C 7E 1B 78 */ mr r30, r3
/* 8003BC58 00038BB8 40 82 00 10 */ bne lbl_8003BC68
/* 8003BC5C 00038BBC 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 8003BC60 00038BC0 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8003BC64 00038BC4 40 82 00 28 */ bne lbl_8003BC8C
lbl_8003BC68:
/* 8003BC68 00038BC8 80 7E 07 3C */ lwz r3, 0x73c(r30)
/* 8003BC6C 00038BCC 7F E4 FB 78 */ mr r4, r31
/* 8003BC70 00038BD0 38 A0 00 00 */ li r5, 0
/* 8003BC74 00038BD4 48 19 D4 0D */ bl ReturnToDefault__10CGunMotionFR13CStateManager
/* 8003BC78 00038BD8 80 7E 07 40 */ lwz r3, 0x740(r30)
/* 8003BC7C 00038BDC 7F E4 FB 78 */ mr r4, r31
/* 8003BC80 00038BE0 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 8003BC84 00038BE4 38 A0 00 00 */ li r5, 0
/* 8003BC88 00038BE8 48 0E 22 9D */ bl ReturnToDefault__11CGrappleArmFR13CStateManagerf
lbl_8003BC8C:
/* 8003BC8C 00038BEC 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 8003BC90 00038BF0 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8003BC94 00038BF4 40 82 00 10 */ bne lbl_8003BCA4
/* 8003BC98 00038BF8 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003BC9C 00038BFC 7F E4 FB 78 */ mr r4, r31
/* 8003BCA0 00038C00 48 17 FB BD */ bl ReturnToDefault__10CGunWeaponFR13CStateManager
lbl_8003BCA4:
/* 8003BCA4 00038C04 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 8003BCA8 00038C08 38 60 00 00 */ li r3, 0
/* 8003BCAC 00038C0C 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003BCB0 00038C10 98 1E 08 34 */ stb r0, 0x834(r30)
/* 8003BCB4 00038C14 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003BCB8 00038C18 83 C1 00 08 */ lwz r30, 8(r1)
/* 8003BCBC 00038C1C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003BCC0 00038C20 7C 08 03 A6 */ mtlr r0
/* 8003BCC4 00038C24 38 21 00 10 */ addi r1, r1, 0x10
/* 8003BCC8 00038C28 4E 80 00 20 */ blr
.global UpdateLeftArmTransform__10CPlayerGunFRC10CModelDataRC13CStateManager
UpdateLeftArmTransform__10CPlayerGunFRC10CModelDataRC13CStateManager:
/* 8003BCCC 00038C2C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8003BCD0 00038C30 7C 08 02 A6 */ mflr r0
/* 8003BCD4 00038C34 C0 42 84 84 */ lfs f2, lbl_805AA1A4@sda21(r2)
/* 8003BCD8 00038C38 90 01 00 44 */ stw r0, 0x44(r1)
/* 8003BCDC 00038C3C C0 22 84 88 */ lfs f1, lbl_805AA1A8@sda21(r2)
/* 8003BCE0 00038C40 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8003BCE4 00038C44 C0 02 84 8C */ lfs f0, lbl_805AA1AC@sda21(r2)
/* 8003BCE8 00038C48 93 C1 00 38 */ stw r30, 0x38(r1)
/* 8003BCEC 00038C4C 7C 9E 23 78 */ mr r30, r4
/* 8003BCF0 00038C50 93 A1 00 34 */ stw r29, 0x34(r1)
/* 8003BCF4 00038C54 7C 7D 1B 78 */ mr r29, r3
/* 8003BCF8 00038C58 D0 41 00 24 */ stfs f2, 0x24(r1)
/* 8003BCFC 00038C5C D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8003BD00 00038C60 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8003BD04 00038C64 88 03 08 34 */ lbz r0, 0x834(r3)
/* 8003BD08 00038C68 80 63 07 40 */ lwz r3, 0x740(r3)
/* 8003BD0C 00038C6C 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 8003BD10 00038C70 3B E3 02 E0 */ addi r31, r3, 0x2e0
/* 8003BD14 00038C74 41 82 00 18 */ beq lbl_8003BD2C
/* 8003BD18 00038C78 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 8003BD1C 00038C7C 7F E3 FB 78 */ mr r3, r31
/* 8003BD20 00038C80 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 8003BD24 00038C84 48 2D 6E 1D */ bl __as__12CTransform4fFRC12CTransform4f
/* 8003BD28 00038C88 48 00 00 3C */ b lbl_8003BD64
lbl_8003BD2C:
/* 8003BD2C 00038C8C 3C 80 80 3D */ lis r4, lbl_803CCEB0@ha
/* 8003BD30 00038C90 38 61 00 14 */ addi r3, r1, 0x14
/* 8003BD34 00038C94 38 84 CE B0 */ addi r4, r4, lbl_803CCEB0@l
/* 8003BD38 00038C98 38 84 00 18 */ addi r4, r4, 0x18
/* 8003BD3C 00038C9C 4B FC 8F 7D */ bl string_l__4rstlFPCc
/* 8003BD40 00038CA0 7F A3 EB 78 */ mr r3, r29
/* 8003BD44 00038CA4 7F E4 FB 78 */ mr r4, r31
/* 8003BD48 00038CA8 7F C5 F3 78 */ mr r5, r30
/* 8003BD4C 00038CAC 38 C1 00 14 */ addi r6, r1, 0x14
/* 8003BD50 00038CB0 38 E0 00 01 */ li r7, 1
/* 8003BD54 00038CB4 39 00 00 00 */ li r8, 0
/* 8003BD58 00038CB8 48 00 5C 71 */ bl "GetLctrWithShake__10CPlayerGunFR12CTransform4fRC10CModelDataRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bb"
/* 8003BD5C 00038CBC 38 61 00 14 */ addi r3, r1, 0x14
/* 8003BD60 00038CC0 48 30 1D 81 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_8003BD64:
/* 8003BD64 00038CC4 7F E4 FB 78 */ mr r4, r31
/* 8003BD68 00038CC8 38 61 00 08 */ addi r3, r1, 8
/* 8003BD6C 00038CCC 38 A1 00 24 */ addi r5, r1, 0x24
/* 8003BD70 00038CD0 48 2D 6D 79 */ bl __ml__12CTransform4fCFRC9CVector3f
/* 8003BD74 00038CD4 C0 21 00 0C */ lfs f1, 0xc(r1)
/* 8003BD78 00038CD8 38 9D 03 E8 */ addi r4, r29, 0x3e8
/* 8003BD7C 00038CDC C0 41 00 10 */ lfs f2, 0x10(r1)
/* 8003BD80 00038CE0 C0 01 00 08 */ lfs f0, 8(r1)
/* 8003BD84 00038CE4 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8003BD88 00038CE8 D0 3F 00 1C */ stfs f1, 0x1c(r31)
/* 8003BD8C 00038CEC D0 5F 00 2C */ stfs f2, 0x2c(r31)
/* 8003BD90 00038CF0 80 7D 07 40 */ lwz r3, 0x740(r29)
/* 8003BD94 00038CF4 38 63 02 20 */ addi r3, r3, 0x220
/* 8003BD98 00038CF8 48 2D 6D A9 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8003BD9C 00038CFC 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8003BDA0 00038D00 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8003BDA4 00038D04 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8003BDA8 00038D08 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 8003BDAC 00038D0C 7C 08 03 A6 */ mtlr r0
/* 8003BDB0 00038D10 38 21 00 40 */ addi r1, r1, 0x40
/* 8003BDB4 00038D14 4E 80 00 20 */ blr
.global EnterFidget__10CPlayerGunFR13CStateManager
EnterFidget__10CPlayerGunFR13CStateManager:
/* 8003BDB8 00038D18 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003BDBC 00038D1C 7C 08 02 A6 */ mflr r0
/* 8003BDC0 00038D20 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003BDC4 00038D24 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003BDC8 00038D28 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003BDCC 00038D2C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8003BDD0 00038D30 7C 9D 23 78 */ mr r29, r4
/* 8003BDD4 00038D34 93 81 00 10 */ stw r28, 0x10(r1)
/* 8003BDD8 00038D38 7C 7C 1B 78 */ mr r28, r3
/* 8003BDDC 00038D3C 80 03 02 FC */ lwz r0, 0x2fc(r3)
/* 8003BDE0 00038D40 83 E3 03 A8 */ lwz r31, 0x3a8(r3)
/* 8003BDE4 00038D44 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 8003BDE8 00038D48 83 C3 03 B0 */ lwz r30, 0x3b0(r3)
/* 8003BDEC 00038D4C 2C 00 00 01 */ cmpwi r0, 1
/* 8003BDF0 00038D50 40 82 00 28 */ bne lbl_8003BE18
/* 8003BDF4 00038D54 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 8003BDF8 00038D58 7F E5 FB 78 */ mr r5, r31
/* 8003BDFC 00038D5C 7F C6 F3 78 */ mr r6, r30
/* 8003BE00 00038D60 48 19 D1 AD */ bl EnterFidget__10CGunMotionFR13CStateManagerQ28SamusGun11EFidgetTypei
/* 8003BE04 00038D64 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003BE08 00038D68 38 60 00 01 */ li r3, 1
/* 8003BE0C 00038D6C 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003BE10 00038D70 98 1C 08 34 */ stb r0, 0x834(r28)
/* 8003BE14 00038D74 48 00 00 14 */ b lbl_8003BE28
lbl_8003BE18:
/* 8003BE18 00038D78 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003BE1C 00038D7C 38 60 00 00 */ li r3, 0
/* 8003BE20 00038D80 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003BE24 00038D84 98 1C 08 34 */ stb r0, 0x834(r28)
lbl_8003BE28:
/* 8003BE28 00038D88 80 1C 02 FC */ lwz r0, 0x2fc(r28)
/* 8003BE2C 00038D8C 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
/* 8003BE30 00038D90 2C 00 00 02 */ cmpwi r0, 2
/* 8003BE34 00038D94 40 82 00 18 */ bne lbl_8003BE4C
/* 8003BE38 00038D98 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 8003BE3C 00038D9C 7F A4 EB 78 */ mr r4, r29
/* 8003BE40 00038DA0 7F E5 FB 78 */ mr r5, r31
/* 8003BE44 00038DA4 7F C6 F3 78 */ mr r6, r30
/* 8003BE48 00038DA8 48 17 F9 D5 */ bl EnterFidget__10CGunWeaponFR13CStateManagerQ28SamusGun11EFidgetTypei
lbl_8003BE4C:
/* 8003BE4C 00038DAC 80 1C 02 FC */ lwz r0, 0x2fc(r28)
/* 8003BE50 00038DB0 54 00 07 7A */ rlwinm r0, r0, 0, 0x1d, 0x1d
/* 8003BE54 00038DB4 2C 00 00 04 */ cmpwi r0, 4
/* 8003BE58 00038DB8 40 82 00 2C */ bne lbl_8003BE84
/* 8003BE5C 00038DBC 2C 1F 00 00 */ cmpwi r31, 0
/* 8003BE60 00038DC0 80 7C 07 40 */ lwz r3, 0x740(r28)
/* 8003BE64 00038DC4 7F A4 EB 78 */ mr r4, r29
/* 8003BE68 00038DC8 7F E5 FB 78 */ mr r5, r31
/* 8003BE6C 00038DCC 41 82 00 0C */ beq lbl_8003BE78
/* 8003BE70 00038DD0 80 DC 03 10 */ lwz r6, 0x310(r28)
/* 8003BE74 00038DD4 48 00 00 08 */ b lbl_8003BE7C
lbl_8003BE78:
/* 8003BE78 00038DD8 38 C0 00 00 */ li r6, 0
lbl_8003BE7C:
/* 8003BE7C 00038DDC 7F C7 F3 78 */ mr r7, r30
/* 8003BE80 00038DE0 48 0E 21 31 */ bl EnterFidget__11CGrappleArmFR13CStateManageriii
lbl_8003BE84:
/* 8003BE84 00038DE4 7F 83 E3 78 */ mr r3, r28
/* 8003BE88 00038DE8 4B FF EE 79 */ bl UnLoadFidget__10CPlayerGunFv
/* 8003BE8C 00038DEC 88 1C 03 D8 */ lbz r0, 0x3d8(r28)
/* 8003BE90 00038DF0 38 60 00 00 */ li r3, 0
/* 8003BE94 00038DF4 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8003BE98 00038DF8 98 1C 03 D8 */ stb r0, 0x3d8(r28)
/* 8003BE9C 00038DFC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003BEA0 00038E00 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003BEA4 00038E04 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8003BEA8 00038E08 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8003BEAC 00038E0C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003BEB0 00038E10 7C 08 03 A6 */ mtlr r0
/* 8003BEB4 00038E14 38 21 00 20 */ addi r1, r1, 0x20
/* 8003BEB8 00038E18 4E 80 00 20 */ blr
.global EnterFreeLook__10CPlayerGunFR13CStateManager
EnterFreeLook__10CPlayerGunFR13CStateManager:
/* 8003BEBC 00038E1C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003BEC0 00038E20 7C 08 02 A6 */ mflr r0
/* 8003BEC4 00038E24 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003BEC8 00038E28 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003BECC 00038E2C 7C 9F 23 78 */ mr r31, r4
/* 8003BED0 00038E30 93 C1 00 08 */ stw r30, 8(r1)
/* 8003BED4 00038E34 7C 7E 1B 78 */ mr r30, r3
/* 8003BED8 00038E38 88 03 08 32 */ lbz r0, 0x832(r3)
/* 8003BEDC 00038E3C 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
/* 8003BEE0 00038E40 40 82 00 1C */ bne lbl_8003BEFC
/* 8003BEE4 00038E44 80 7E 07 3C */ lwz r3, 0x73c(r30)
/* 8003BEE8 00038E48 7F E5 FB 78 */ mr r5, r31
/* 8003BEEC 00038E4C C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 8003BEF0 00038E50 38 80 00 03 */ li r4, 3
/* 8003BEF4 00038E54 38 C0 00 00 */ li r6, 0
/* 8003BEF8 00038E58 48 19 D2 C1 */ bl PlayPasAnim__10CGunMotionFQ28SamusGun15EAnimationStateR13CStateManagerfb
lbl_8003BEFC:
/* 8003BEFC 00038E5C 80 7E 07 3C */ lwz r3, 0x73c(r30)
/* 8003BF00 00038E60 48 19 D1 79 */ bl GetFreeLookSetId__10CGunMotionCFv
/* 8003BF04 00038E64 88 1E 08 35 */ lbz r0, 0x835(r30)
/* 8003BF08 00038E68 7C 64 1B 78 */ mr r4, r3
/* 8003BF0C 00038E6C 80 7E 07 40 */ lwz r3, 0x740(r30)
/* 8003BF10 00038E70 7C 85 23 78 */ mr r5, r4
/* 8003BF14 00038E74 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8003BF18 00038E78 41 82 00 0C */ beq lbl_8003BF24
/* 8003BF1C 00038E7C 38 80 00 01 */ li r4, 1
/* 8003BF20 00038E80 48 00 00 08 */ b lbl_8003BF28
lbl_8003BF24:
/* 8003BF24 00038E84 80 9E 03 10 */ lwz r4, 0x310(r30)
lbl_8003BF28:
/* 8003BF28 00038E88 7F E6 FB 78 */ mr r6, r31
/* 8003BF2C 00038E8C 48 0E 20 D5 */ bl EnterFreeLook__11CGrappleArmFiiR13CStateManager
/* 8003BF30 00038E90 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003BF34 00038E94 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003BF38 00038E98 83 C1 00 08 */ lwz r30, 8(r1)
/* 8003BF3C 00038E9C 7C 08 03 A6 */ mtlr r0
/* 8003BF40 00038EA0 38 21 00 10 */ addi r1, r1, 0x10
/* 8003BF44 00038EA4 4E 80 00 20 */ blr
.global CancelCharge__10CPlayerGunFR13CStateManagerb
CancelCharge__10CPlayerGunFR13CStateManagerb:
/* 8003BF48 00038EA8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003BF4C 00038EAC 7C 08 02 A6 */ mflr r0
/* 8003BF50 00038EB0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003BF54 00038EB4 54 A0 06 3F */ clrlwi. r0, r5, 0x18
/* 8003BF58 00038EB8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003BF5C 00038EBC 7C 9F 23 78 */ mr r31, r4
/* 8003BF60 00038EC0 93 C1 00 08 */ stw r30, 8(r1)
/* 8003BF64 00038EC4 7C 7E 1B 78 */ mr r30, r3
/* 8003BF68 00038EC8 41 82 00 28 */ beq lbl_8003BF90
/* 8003BF6C 00038ECC 38 00 00 09 */ li r0, 9
/* 8003BF70 00038ED0 38 80 00 03 */ li r4, 3
/* 8003BF74 00038ED4 90 1E 03 2C */ stw r0, 0x32c(r30)
/* 8003BF78 00038ED8 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003BF7C 00038EDC 81 83 00 00 */ lwz r12, 0(r3)
/* 8003BF80 00038EE0 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 8003BF84 00038EE4 7D 89 03 A6 */ mtctr r12
/* 8003BF88 00038EE8 4E 80 04 21 */ bctrl
/* 8003BF8C 00038EEC 48 00 00 1C */ b lbl_8003BFA8
lbl_8003BF90:
/* 8003BF90 00038EF0 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003BF94 00038EF4 38 80 00 00 */ li r4, 0
/* 8003BF98 00038EF8 81 83 00 00 */ lwz r12, 0(r3)
/* 8003BF9C 00038EFC 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 8003BFA0 00038F00 7D 89 03 A6 */ mtctr r12
/* 8003BFA4 00038F04 4E 80 04 21 */ bctrl
lbl_8003BFA8:
/* 8003BFA8 00038F08 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 8003BFAC 00038F0C 38 60 00 00 */ li r3, 0
/* 8003BFB0 00038F10 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8003BFB4 00038F14 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003BFB8 00038F18 98 1E 08 34 */ stb r0, 0x834(r30)
/* 8003BFBC 00038F1C 38 80 00 00 */ li r4, 0
/* 8003BFC0 00038F20 38 A0 00 00 */ li r5, 0
/* 8003BFC4 00038F24 D0 1E 03 48 */ stfs f0, 0x348(r30)
/* 8003BFC8 00038F28 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003BFCC 00038F2C 48 17 FF BD */ bl ActivateCharge__10CGunWeaponFbb
/* 8003BFD0 00038F30 7F C3 F3 78 */ mr r3, r30
/* 8003BFD4 00038F34 7F E5 FB 78 */ mr r5, r31
/* 8003BFD8 00038F38 38 80 00 00 */ li r4, 0
/* 8003BFDC 00038F3C 4B FF F4 95 */ bl SetGunLightActive__10CPlayerGunFbR13CStateManager
/* 8003BFE0 00038F40 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003BFE4 00038F44 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003BFE8 00038F48 83 C1 00 08 */ lwz r30, 8(r1)
/* 8003BFEC 00038F4C 7C 08 03 A6 */ mtlr r0
/* 8003BFF0 00038F50 38 21 00 10 */ addi r1, r1, 0x10
/* 8003BFF4 00038F54 4E 80 00 20 */ blr
.global DoUserAnimEvent__10CPlayerGunFfR13CStateManagerRC13CInt32POINode14EUserEventType
DoUserAnimEvent__10CPlayerGunFfR13CStateManagerRC13CInt32POINode14EUserEventType:
/* 8003BFF8 00038F58 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003BFFC 00038F5C 7C 08 02 A6 */ mflr r0
/* 8003C000 00038F60 2C 06 00 06 */ cmpwi r6, 6
/* 8003C004 00038F64 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003C008 00038F68 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003C00C 00038F6C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003C010 00038F70 7C 9E 23 78 */ mr r30, r4
/* 8003C014 00038F74 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8003C018 00038F78 7C 7D 1B 78 */ mr r29, r3
/* 8003C01C 00038F7C 41 82 00 C8 */ beq lbl_8003C0E4
/* 8003C020 00038F80 40 80 00 10 */ bge lbl_8003C030
/* 8003C024 00038F84 2C 06 00 00 */ cmpwi r6, 0
/* 8003C028 00038F88 41 82 00 14 */ beq lbl_8003C03C
/* 8003C02C 00038F8C 48 00 00 B8 */ b lbl_8003C0E4
lbl_8003C030:
/* 8003C030 00038F90 2C 06 00 08 */ cmpwi r6, 8
/* 8003C034 00038F94 41 82 00 B0 */ beq lbl_8003C0E4
/* 8003C038 00038F98 48 00 00 AC */ b lbl_8003C0E4
lbl_8003C03C:
/* 8003C03C 00038F9C 80 1D 03 2C */ lwz r0, 0x32c(r29)
/* 8003C040 00038FA0 2C 00 00 08 */ cmpwi r0, 8
/* 8003C044 00038FA4 40 82 00 A0 */ bne lbl_8003C0E4
/* 8003C048 00038FA8 80 7D 03 10 */ lwz r3, 0x310(r29)
/* 8003C04C 00038FAC 38 00 00 00 */ li r0, 0
/* 8003C050 00038FB0 2C 03 00 02 */ cmpwi r3, 2
/* 8003C054 00038FB4 41 82 00 10 */ beq lbl_8003C064
/* 8003C058 00038FB8 2C 03 00 03 */ cmpwi r3, 3
/* 8003C05C 00038FBC 41 82 00 08 */ beq lbl_8003C064
/* 8003C060 00038FC0 38 00 00 01 */ li r0, 1
lbl_8003C064:
/* 8003C064 00038FC4 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 8003C068 00038FC8 41 82 00 0C */ beq lbl_8003C074
/* 8003C06C 00038FCC 38 60 00 01 */ li r3, 1
/* 8003C070 00038FD0 48 00 00 0C */ b lbl_8003C07C
lbl_8003C074:
/* 8003C074 00038FD4 80 1D 02 EC */ lwz r0, 0x2ec(r29)
/* 8003C078 00038FD8 54 03 07 FE */ clrlwi r3, r0, 0x1f
lbl_8003C07C:
/* 8003C07C 00038FDC 7C 03 00 D0 */ neg r0, r3
/* 8003C080 00038FE0 7C 00 1B 78 */ or r0, r0, r3
/* 8003C084 00038FE4 54 1F 0F FF */ rlwinm. r31, r0, 1, 0x1f, 0x1f
/* 8003C088 00038FE8 41 82 00 10 */ beq lbl_8003C098
/* 8003C08C 00038FEC 7F A3 EB 78 */ mr r3, r29
/* 8003C090 00038FF0 7F C4 F3 78 */ mr r4, r30
/* 8003C094 00038FF4 48 00 3D F9 */ bl FireSecondary__10CPlayerGunFfR13CStateManager
lbl_8003C098:
/* 8003C098 00038FF8 80 1D 02 F8 */ lwz r0, 0x2f8(r29)
/* 8003C09C 00038FFC 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 8003C0A0 00039000 2C 00 00 10 */ cmpwi r0, 0x10
/* 8003C0A4 00039004 41 82 00 10 */ beq lbl_8003C0B4
/* 8003C0A8 00039008 80 1D 02 F8 */ lwz r0, 0x2f8(r29)
/* 8003C0AC 0003900C 60 00 00 10 */ ori r0, r0, 0x10
/* 8003C0B0 00039010 90 1D 02 F8 */ stw r0, 0x2f8(r29)
lbl_8003C0B4:
/* 8003C0B4 00039014 7F A3 EB 78 */ mr r3, r29
/* 8003C0B8 00039018 7F C4 F3 78 */ mr r4, r30
/* 8003C0BC 0003901C 38 A0 00 01 */ li r5, 1
/* 8003C0C0 00039020 4B FF FE 89 */ bl CancelCharge__10CPlayerGunFR13CStateManagerb
/* 8003C0C4 00039024 28 1F 00 00 */ cmplwi r31, 0
/* 8003C0C8 00039028 41 82 00 1C */ beq lbl_8003C0E4
/* 8003C0CC 0003902C 80 7D 07 2C */ lwz r3, 0x72c(r29)
/* 8003C0D0 00039030 38 80 00 02 */ li r4, 2
/* 8003C0D4 00039034 81 83 00 00 */ lwz r12, 0(r3)
/* 8003C0D8 00039038 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 8003C0DC 0003903C 7D 89 03 A6 */ mtctr r12
/* 8003C0E0 00039040 4E 80 04 21 */ bctrl
lbl_8003C0E4:
/* 8003C0E4 00039044 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003C0E8 00039048 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003C0EC 0003904C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003C0F0 00039050 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8003C0F4 00039054 7C 08 03 A6 */ mtlr r0
/* 8003C0F8 00039058 38 21 00 20 */ addi r1, r1, 0x20
/* 8003C0FC 0003905C 4E 80 00 20 */ blr
.global DoUserAnimEvents__10CPlayerGunFfR13CStateManager
DoUserAnimEvents__10CPlayerGunFfR13CStateManager:
/* 8003C100 00039060 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 8003C104 00039064 7C 08 02 A6 */ mflr r0
/* 8003C108 00039068 90 01 00 64 */ stw r0, 0x64(r1)
/* 8003C10C 0003906C DB E1 00 50 */ stfd f31, 0x50(r1)
/* 8003C110 00039070 F3 E1 00 58 */ psq_st f31, 88(r1), 0, qr0
/* 8003C114 00039074 BF 21 00 34 */ stmw r25, 0x34(r1)
/* 8003C118 00039078 7C 7E 1B 78 */ mr r30, r3
/* 8003C11C 0003907C 7C 9F 23 78 */ mr r31, r4
/* 8003C120 00039080 80 A4 08 4C */ lwz r5, 0x84c(r4)
/* 8003C124 00039084 FF E0 08 90 */ fmr f31, f1
/* 8003C128 00039088 80 63 07 2C */ lwz r3, 0x72c(r3)
/* 8003C12C 0003908C 83 A5 00 04 */ lwz r29, 4(r5)
/* 8003C130 00039090 83 83 00 20 */ lwz r28, 0x20(r3)
/* 8003C134 00039094 80 64 08 70 */ lwz r3, 0x870(r4)
/* 8003C138 00039098 4B FC F9 E1 */ bl GetCurrentCamera__14CCameraManagerCFRC13CStateManager
/* 8003C13C 0003909C C0 BE 04 14 */ lfs f5, 0x414(r30)
/* 8003C140 000390A0 3C 80 80 57 */ lis r4, mSoundPOINodes__9CAnimData@ha
/* 8003C144 000390A4 C0 9E 04 04 */ lfs f4, 0x404(r30)
/* 8003C148 000390A8 38 84 C9 EC */ addi r4, r4, mSoundPOINodes__9CAnimData@l
/* 8003C14C 000390AC C0 7E 03 F4 */ lfs f3, 0x3f4(r30)
/* 8003C150 000390B0 3B 64 00 04 */ addi r27, r4, 4
/* 8003C154 000390B4 D0 61 00 24 */ stfs f3, 0x24(r1)
/* 8003C158 000390B8 D0 81 00 28 */ stfs f4, 0x28(r1)
/* 8003C15C 000390BC D0 A1 00 2C */ stfs f5, 0x2c(r1)
/* 8003C160 000390C0 C0 43 00 50 */ lfs f2, 0x50(r3)
/* 8003C164 000390C4 C0 23 00 60 */ lfs f1, 0x60(r3)
/* 8003C168 000390C8 C0 03 00 40 */ lfs f0, 0x40(r3)
/* 8003C16C 000390CC EC 42 20 28 */ fsubs f2, f2, f4
/* 8003C170 000390D0 EC 21 28 28 */ fsubs f1, f1, f5
/* 8003C174 000390D4 EC 00 18 28 */ fsubs f0, f0, f3
/* 8003C178 000390D8 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 8003C17C 000390DC D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8003C180 000390E0 D0 21 00 20 */ stfs f1, 0x20(r1)
/* 8003C184 000390E4 83 5C 02 18 */ lwz r26, 0x218(r28)
/* 8003C188 000390E8 2C 1A 00 00 */ cmpwi r26, 0
/* 8003C18C 000390EC 40 81 00 80 */ ble lbl_8003C20C
/* 8003C190 000390F0 3B 20 00 00 */ li r25, 0
/* 8003C194 000390F4 48 00 00 70 */ b lbl_8003C204
lbl_8003C198:
/* 8003C198 000390F8 A0 1B 00 18 */ lhz r0, 0x18(r27)
/* 8003C19C 000390FC 80 7B 00 30 */ lwz r3, 0x30(r27)
/* 8003C1A0 00039100 2C 00 00 08 */ cmpwi r0, 8
/* 8003C1A4 00039104 40 82 00 58 */ bne lbl_8003C1FC
/* 8003C1A8 00039108 2C 03 FF FF */ cmpwi r3, -1
/* 8003C1AC 0003910C 41 82 00 10 */ beq lbl_8003C1BC
/* 8003C1B0 00039110 80 1C 02 04 */ lwz r0, 0x204(r28)
/* 8003C1B4 00039114 7C 03 00 00 */ cmpw r3, r0
/* 8003C1B8 00039118 40 82 00 44 */ bne lbl_8003C1FC
lbl_8003C1BC:
/* 8003C1BC 0003911C 38 01 00 24 */ addi r0, r1, 0x24
/* 8003C1C0 00039120 89 22 CC 40 */ lbz r9, kMaxVolume__9CAudioSys@sda21(r2)
/* 8003C1C4 00039124 90 01 00 08 */ stw r0, 8(r1)
/* 8003C1C8 00039128 38 7E 06 70 */ addi r3, r30, 0x670
/* 8003C1CC 0003912C 38 9E 03 28 */ addi r4, r30, 0x328
/* 8003C1D0 00039130 39 41 00 18 */ addi r10, r1, 0x18
/* 8003C1D4 00039134 93 A1 00 0C */ stw r29, 0xc(r1)
/* 8003C1D8 00039138 38 A0 00 00 */ li r5, 0
/* 8003C1DC 0003913C 39 00 00 14 */ li r8, 0x14
/* 8003C1E0 00039140 93 E1 00 10 */ stw r31, 0x10(r1)
/* 8003C1E4 00039144 80 DB 00 38 */ lwz r6, 0x38(r27)
/* 8003C1E8 00039148 C0 3B 00 2C */ lfs f1, 0x2c(r27)
/* 8003C1EC 0003914C 80 FB 00 34 */ lwz r7, 0x34(r27)
/* 8003C1F0 00039150 C0 5B 00 3C */ lfs f2, 0x3c(r27)
/* 8003C1F4 00039154 C0 7B 00 40 */ lfs f3, 0x40(r27)
/* 8003C1F8 00039158 48 24 E9 91 */ bl "do_sound_event__12NWeaponTypesFRQ24rstl21pair<Us,10CSfxHandle>RibUifUiffUcUcRC9CVector3fRC9CVector3f7TAreaIdR13CStateManager"
lbl_8003C1FC:
/* 8003C1FC 0003915C 3B 7B 00 44 */ addi r27, r27, 0x44
/* 8003C200 00039160 3B 39 00 01 */ addi r25, r25, 1
lbl_8003C204:
/* 8003C204 00039164 7C 19 D0 00 */ cmpw r25, r26
/* 8003C208 00039168 41 80 FF 90 */ blt lbl_8003C198
lbl_8003C20C:
/* 8003C20C 0003916C 83 3C 02 10 */ lwz r25, 0x210(r28)
/* 8003C210 00039170 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
/* 8003C214 00039174 38 63 BD F4 */ addi r3, r3, mInt32POINodes__9CAnimData@l
/* 8003C218 00039178 2C 19 00 00 */ cmpwi r25, 0
/* 8003C21C 0003917C 3B 63 00 04 */ addi r27, r3, 4
/* 8003C220 00039180 40 81 00 B4 */ ble lbl_8003C2D4
/* 8003C224 00039184 3B 40 00 00 */ li r26, 0
/* 8003C228 00039188 48 00 00 A4 */ b lbl_8003C2CC
lbl_8003C22C:
/* 8003C22C 0003918C A0 1B 00 18 */ lhz r0, 0x18(r27)
/* 8003C230 00039190 2C 00 00 05 */ cmpwi r0, 5
/* 8003C234 00039194 41 82 00 90 */ beq lbl_8003C2C4
/* 8003C238 00039198 40 80 00 10 */ bge lbl_8003C248
/* 8003C23C 0003919C 2C 00 00 04 */ cmpwi r0, 4
/* 8003C240 000391A0 40 80 00 2C */ bge lbl_8003C26C
/* 8003C244 000391A4 48 00 00 80 */ b lbl_8003C2C4
lbl_8003C248:
/* 8003C248 000391A8 2C 00 00 07 */ cmpwi r0, 7
/* 8003C24C 000391AC 40 80 00 78 */ bge lbl_8003C2C4
/* 8003C250 000391B0 FC 20 F8 90 */ fmr f1, f31
/* 8003C254 000391B4 80 DB 00 38 */ lwz r6, 0x38(r27)
/* 8003C258 000391B8 7F C3 F3 78 */ mr r3, r30
/* 8003C25C 000391BC 7F E4 FB 78 */ mr r4, r31
/* 8003C260 000391C0 7F 65 DB 78 */ mr r5, r27
/* 8003C264 000391C4 4B FF FD 95 */ bl DoUserAnimEvent__10CPlayerGunFfR13CStateManagerRC13CInt32POINode14EUserEventType
/* 8003C268 000391C8 48 00 00 5C */ b lbl_8003C2C4
lbl_8003C26C:
/* 8003C26C 000391CC 80 7B 00 30 */ lwz r3, 0x30(r27)
/* 8003C270 000391D0 2C 03 FF FF */ cmpwi r3, -1
/* 8003C274 000391D4 41 82 00 10 */ beq lbl_8003C284
/* 8003C278 000391D8 80 1C 02 04 */ lwz r0, 0x204(r28)
/* 8003C27C 000391DC 7C 03 00 00 */ cmpw r3, r0
/* 8003C280 000391E0 40 82 00 44 */ bne lbl_8003C2C4
lbl_8003C284:
/* 8003C284 000391E4 38 01 00 24 */ addi r0, r1, 0x24
/* 8003C288 000391E8 C0 42 84 90 */ lfs f2, lbl_805AA1B0@sda21(r2)
/* 8003C28C 000391EC 90 01 00 08 */ stw r0, 8(r1)
/* 8003C290 000391F0 38 7E 06 70 */ addi r3, r30, 0x670
/* 8003C294 000391F4 C0 62 84 94 */ lfs f3, lbl_805AA1B4@sda21(r2)
/* 8003C298 000391F8 38 9E 03 28 */ addi r4, r30, 0x328
/* 8003C29C 000391FC 93 A1 00 0C */ stw r29, 0xc(r1)
/* 8003C2A0 00039200 39 41 00 18 */ addi r10, r1, 0x18
/* 8003C2A4 00039204 89 22 CC 40 */ lbz r9, kMaxVolume__9CAudioSys@sda21(r2)
/* 8003C2A8 00039208 38 A0 00 00 */ li r5, 0
/* 8003C2AC 0003920C 93 E1 00 10 */ stw r31, 0x10(r1)
/* 8003C2B0 00039210 39 00 00 14 */ li r8, 0x14
/* 8003C2B4 00039214 80 DB 00 38 */ lwz r6, 0x38(r27)
/* 8003C2B8 00039218 C0 3B 00 2C */ lfs f1, 0x2c(r27)
/* 8003C2BC 0003921C 80 FB 00 34 */ lwz r7, 0x34(r27)
/* 8003C2C0 00039220 48 24 E8 C9 */ bl "do_sound_event__12NWeaponTypesFRQ24rstl21pair<Us,10CSfxHandle>RibUifUiffUcUcRC9CVector3fRC9CVector3f7TAreaIdR13CStateManager"
lbl_8003C2C4:
/* 8003C2C4 00039224 3B 7B 00 4C */ addi r27, r27, 0x4c
/* 8003C2C8 00039228 3B 5A 00 01 */ addi r26, r26, 1
lbl_8003C2CC:
/* 8003C2CC 0003922C 7C 1A C8 00 */ cmpw r26, r25
/* 8003C2D0 00039230 41 80 FF 5C */ blt lbl_8003C22C
lbl_8003C2D4:
/* 8003C2D4 00039234 E3 E1 00 58 */ psq_l f31, 88(r1), 0, qr0
/* 8003C2D8 00039238 CB E1 00 50 */ lfd f31, 0x50(r1)
/* 8003C2DC 0003923C BB 21 00 34 */ lmw r25, 0x34(r1)
/* 8003C2E0 00039240 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8003C2E4 00039244 7C 08 03 A6 */ mtlr r0
/* 8003C2E8 00039248 38 21 00 60 */ addi r1, r1, 0x60
/* 8003C2EC 0003924C 4E 80 00 20 */ blr
.global RenderEnergyDrainEffects__10CPlayerGunCFRC13CStateManager
RenderEnergyDrainEffects__10CPlayerGunCFRC13CStateManager:
/* 8003C2F0 00039250 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8003C2F4 00039254 7C 08 02 A6 */ mflr r0
/* 8003C2F8 00039258 90 01 00 34 */ stw r0, 0x34(r1)
/* 8003C2FC 0003925C 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8003C300 00039260 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8003C304 00039264 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8003C308 00039268 7C 9D 23 78 */ mr r29, r4
/* 8003C30C 0003926C 38 81 00 10 */ addi r4, r1, 0x10
/* 8003C310 00039270 A0 03 05 38 */ lhz r0, 0x538(r3)
/* 8003C314 00039274 7F A3 EB 78 */ mr r3, r29
/* 8003C318 00039278 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8003C31C 0003927C 48 01 02 89 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8003C320 00039280 7C 64 1B 78 */ mr r4, r3
/* 8003C324 00039284 38 61 00 18 */ addi r3, r1, 0x18
/* 8003C328 00039288 48 07 00 6D */ bl "__ct__20TCastToPtr<7CPlayer>FP7CEntity"
/* 8003C32C 0003928C 83 C3 00 04 */ lwz r30, 4(r3)
/* 8003C330 00039290 28 1E 00 00 */ cmplwi r30, 0
/* 8003C334 00039294 41 82 00 60 */ beq lbl_8003C394
/* 8003C338 00039298 83 FE 02 80 */ lwz r31, 0x280(r30)
/* 8003C33C 0003929C 48 00 00 40 */ b lbl_8003C37C
lbl_8003C340:
/* 8003C340 000392A0 A0 1F 00 00 */ lhz r0, 0(r31)
/* 8003C344 000392A4 7F A3 EB 78 */ mr r3, r29
/* 8003C348 000392A8 38 81 00 0C */ addi r4, r1, 0xc
/* 8003C34C 000392AC B0 01 00 08 */ sth r0, 8(r1)
/* 8003C350 000392B0 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8003C354 000392B4 48 01 02 51 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8003C358 000392B8 7C 64 1B 78 */ mr r4, r3
/* 8003C35C 000392BC 38 61 00 14 */ addi r3, r1, 0x14
/* 8003C360 000392C0 48 06 91 41 */ bl "__ct__30TPatternedCast<12CMetroidBeta>FP7CEntity"
/* 8003C364 000392C4 48 06 91 11 */ bl "CastTo<12CMetroidBeta>__10CPatternedFRC30TPatternedCast<12CMetroidBeta>"
/* 8003C368 000392C8 28 03 00 00 */ cmplwi r3, 0
/* 8003C36C 000392CC 41 82 00 0C */ beq lbl_8003C378
/* 8003C370 000392D0 48 18 92 BD */ bl RenderHitGunEffect__12CMetroidBetaCFv
/* 8003C374 000392D4 48 00 00 20 */ b lbl_8003C394
lbl_8003C378:
/* 8003C378 000392D8 3B FF 00 08 */ addi r31, r31, 8
lbl_8003C37C:
/* 8003C37C 000392DC 80 1E 02 78 */ lwz r0, 0x278(r30)
/* 8003C380 000392E0 80 7E 02 80 */ lwz r3, 0x280(r30)
/* 8003C384 000392E4 54 00 18 38 */ slwi r0, r0, 3
/* 8003C388 000392E8 7C 03 02 14 */ add r0, r3, r0
/* 8003C38C 000392EC 7C 1F 00 40 */ cmplw r31, r0
/* 8003C390 000392F0 40 82 FF B0 */ bne lbl_8003C340
lbl_8003C394:
/* 8003C394 000392F4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8003C398 000392F8 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8003C39C 000392FC 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8003C3A0 00039300 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8003C3A4 00039304 7C 08 03 A6 */ mtlr r0
/* 8003C3A8 00039308 38 21 00 30 */ addi r1, r1, 0x30
/* 8003C3AC 0003930C 4E 80 00 20 */ blr
.global StopContinuousBeam__10CPlayerGunFR13CStateManagerb
StopContinuousBeam__10CPlayerGunFR13CStateManagerb:
/* 8003C3B0 00039310 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003C3B4 00039314 7C 08 02 A6 */ mflr r0
/* 8003C3B8 00039318 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003C3BC 0003931C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003C3C0 00039320 7C 7F 1B 78 */ mr r31, r3
/* 8003C3C4 00039324 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003C3C8 00039328 7C BE 2B 78 */ mr r30, r5
/* 8003C3CC 0003932C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8003C3D0 00039330 7C 9D 23 78 */ mr r29, r4
/* 8003C3D4 00039334 80 03 02 F8 */ lwz r0, 0x2f8(r3)
/* 8003C3D8 00039338 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 8003C3DC 0003933C 2C 00 00 10 */ cmpwi r0, 0x10
/* 8003C3E0 00039340 40 82 00 8C */ bne lbl_8003C46C
/* 8003C3E4 00039344 38 A0 00 00 */ li r5, 0
/* 8003C3E8 00039348 4B FF F8 51 */ bl ReturnArmAndGunToDefault__10CPlayerGunFR13CStateManagerb
/* 8003C3EC 0003934C 80 7F 07 44 */ lwz r3, 0x744(r31)
/* 8003C3F0 00039350 7F A4 EB 78 */ mr r4, r29
/* 8003C3F4 00039354 7F C5 F3 78 */ mr r5, r30
/* 8003C3F8 00039358 48 17 D0 C5 */ bl StopComboFx__10CAuxWeaponFR13CStateManagerb
/* 8003C3FC 0003935C 80 1F 03 10 */ lwz r0, 0x310(r31)
/* 8003C400 00039360 38 60 00 01 */ li r3, 1
/* 8003C404 00039364 2C 00 00 01 */ cmpwi r0, 1
/* 8003C408 00039368 41 82 00 C8 */ beq lbl_8003C4D0
/* 8003C40C 0003936C 40 80 00 10 */ bge lbl_8003C41C
/* 8003C410 00039370 2C 00 00 00 */ cmpwi r0, 0
/* 8003C414 00039374 40 80 00 10 */ bge lbl_8003C424
/* 8003C418 00039378 48 00 00 B8 */ b lbl_8003C4D0
lbl_8003C41C:
/* 8003C41C 0003937C 2C 00 00 04 */ cmpwi r0, 4
/* 8003C420 00039380 40 80 00 B0 */ bge lbl_8003C4D0
lbl_8003C424:
/* 8003C424 00039384 2C 00 00 00 */ cmpwi r0, 0
/* 8003C428 00039388 40 82 00 14 */ bne lbl_8003C43C
/* 8003C42C 0003938C 88 1F 08 33 */ lbz r0, 0x833(r31)
/* 8003C430 00039390 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 8003C434 00039394 40 82 00 08 */ bne lbl_8003C43C
/* 8003C438 00039398 38 60 00 00 */ li r3, 0
lbl_8003C43C:
/* 8003C43C 0003939C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003C440 000393A0 41 82 00 90 */ beq lbl_8003C4D0
/* 8003C444 000393A4 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8003C448 000393A8 80 7F 07 2C */ lwz r3, 0x72c(r31)
/* 8003C44C 000393AC 38 80 00 03 */ li r4, 3
/* 8003C450 000393B0 41 82 00 08 */ beq lbl_8003C458
/* 8003C454 000393B4 38 80 00 00 */ li r4, 0
lbl_8003C458:
/* 8003C458 000393B8 81 83 00 00 */ lwz r12, 0(r3)
/* 8003C45C 000393BC 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 8003C460 000393C0 7D 89 03 A6 */ mtctr r12
/* 8003C464 000393C4 4E 80 04 21 */ bctrl
/* 8003C468 000393C8 48 00 00 68 */ b lbl_8003C4D0
lbl_8003C46C:
/* 8003C46C 000393CC 88 1F 08 33 */ lbz r0, 0x833(r31)
/* 8003C470 000393D0 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 8003C474 000393D4 41 82 00 2C */ beq lbl_8003C4A0
/* 8003C478 000393D8 83 FF 07 2C */ lwz r31, 0x72c(r31)
/* 8003C47C 000393DC 7F E3 FB 78 */ mr r3, r31
/* 8003C480 000393E0 48 15 0A 35 */ bl IsFiring__11CPhazonBeamCFRC13CStateManager
/* 8003C484 000393E4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003C488 000393E8 41 82 00 48 */ beq lbl_8003C4D0
/* 8003C48C 000393EC 7F E3 FB 78 */ mr r3, r31
/* 8003C490 000393F0 7F A4 EB 78 */ mr r4, r29
/* 8003C494 000393F4 7F C5 F3 78 */ mr r5, r30
/* 8003C498 000393F8 48 15 00 45 */ bl StopBeam__11CPhazonBeamFR13CStateManagerb
/* 8003C49C 000393FC 48 00 00 34 */ b lbl_8003C4D0
lbl_8003C4A0:
/* 8003C4A0 00039400 80 1F 03 10 */ lwz r0, 0x310(r31)
/* 8003C4A4 00039404 2C 00 00 03 */ cmpwi r0, 3
/* 8003C4A8 00039408 40 82 00 28 */ bne lbl_8003C4D0
/* 8003C4AC 0003940C 83 FF 07 2C */ lwz r31, 0x72c(r31)
/* 8003C4B0 00039410 7F E3 FB 78 */ mr r3, r31
/* 8003C4B4 00039414 48 0A 2F 69 */ bl IsFiring__11CPlasmaBeamCFRC13CStateManager
/* 8003C4B8 00039418 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003C4BC 0003941C 41 82 00 14 */ beq lbl_8003C4D0
/* 8003C4C0 00039420 7F E3 FB 78 */ mr r3, r31
/* 8003C4C4 00039424 7F A4 EB 78 */ mr r4, r29
/* 8003C4C8 00039428 7F C5 F3 78 */ mr r5, r30
/* 8003C4CC 0003942C 48 0A 2A 99 */ bl StopBeam__11CPlasmaBeamFR13CStateManagerb
lbl_8003C4D0:
/* 8003C4D0 00039430 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003C4D4 00039434 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003C4D8 00039438 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003C4DC 0003943C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8003C4E0 00039440 7C 08 03 A6 */ mtlr r0
/* 8003C4E4 00039444 38 21 00 20 */ addi r1, r1, 0x20
/* 8003C4E8 00039448 4E 80 00 20 */ blr
.global AcceptScriptMsg__10CPlayerGunF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__10CPlayerGunF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 8003C4EC 0003944C 94 21 FF 50 */ stwu r1, -0xb0(r1)
/* 8003C4F0 00039450 7C 08 02 A6 */ mflr r0
/* 8003C4F4 00039454 90 01 00 B4 */ stw r0, 0xb4(r1)
/* 8003C4F8 00039458 DB E1 00 A0 */ stfd f31, 0xa0(r1)
/* 8003C4FC 0003945C F3 E1 00 A8 */ psq_st f31, 168(r1), 0, qr0
/* 8003C500 00039460 BF 21 00 84 */ stmw r25, 0x84(r1)
/* 8003C504 00039464 7C DF 33 78 */ mr r31, r6
/* 8003C508 00039468 7C 9C 23 78 */ mr r28, r4
/* 8003C50C 0003946C 83 66 08 4C */ lwz r27, 0x84c(r6)
/* 8003C510 00039470 38 1C FF E9 */ addi r0, r28, -23
/* 8003C514 00039474 80 C6 08 B8 */ lwz r6, 0x8b8(r6)
/* 8003C518 00039478 28 00 00 18 */ cmplwi r0, 0x18
/* 8003C51C 0003947C 80 9B 02 F8 */ lwz r4, 0x2f8(r27)
/* 8003C520 00039480 7C 7D 1B 78 */ mr r29, r3
/* 8003C524 00039484 83 26 00 00 */ lwz r25, 0(r6)
/* 8003C528 00039488 7C BE 2B 78 */ mr r30, r5
/* 8003C52C 0003948C 7C 84 00 34 */ cntlzw r4, r4
/* 8003C530 00039490 54 9A D9 7E */ srwi r26, r4, 5
/* 8003C534 00039494 41 81 04 98 */ bgt lbl_8003C9CC
/* 8003C538 00039498 3C 80 80 3E */ lis r4, lbl_803D9D74@ha
/* 8003C53C 0003949C 54 00 10 3A */ slwi r0, r0, 2
/* 8003C540 000394A0 38 84 9D 74 */ addi r4, r4, lbl_803D9D74@l
/* 8003C544 000394A4 7C 04 00 2E */ lwzx r0, r4, r0
/* 8003C548 000394A8 7C 09 03 A6 */ mtctr r0
/* 8003C54C 000394AC 4E 80 04 20 */ bctr
lbl_8003C550:
/* 8003C550 000394B0 7F E4 FB 78 */ mr r4, r31
/* 8003C554 000394B4 4B FF F2 85 */ bl CreateGunLight__10CPlayerGunFR13CStateManager
/* 8003C558 000394B8 80 19 00 08 */ lwz r0, 8(r25)
/* 8003C55C 000394BC 3C 60 80 3D */ lis r3, lbl_803CCE84@ha
/* 8003C560 000394C0 38 63 CE 84 */ addi r3, r3, lbl_803CCE84@l
/* 8003C564 000394C4 7F E4 FB 78 */ mr r4, r31
/* 8003C568 000394C8 54 19 10 3A */ slwi r25, r0, 2
/* 8003C56C 000394CC 38 A0 00 01 */ li r5, 1
/* 8003C570 000394D0 7C 03 C8 2E */ lwzx r0, r3, r25
/* 8003C574 000394D4 90 1D 03 20 */ stw r0, 0x320(r29)
/* 8003C578 000394D8 90 1D 03 14 */ stw r0, 0x314(r29)
/* 8003C57C 000394DC 90 1D 03 10 */ stw r0, 0x310(r29)
/* 8003C580 000394E0 80 1D 03 10 */ lwz r0, 0x310(r29)
/* 8003C584 000394E4 54 00 10 3A */ slwi r0, r0, 2
/* 8003C588 000394E8 7C 7D 02 14 */ add r3, r29, r0
/* 8003C58C 000394EC 80 03 07 64 */ lwz r0, 0x764(r3)
/* 8003C590 000394F0 90 1D 07 2C */ stw r0, 0x72c(r29)
/* 8003C594 000394F4 80 1D 07 2C */ lwz r0, 0x72c(r29)
/* 8003C598 000394F8 90 1D 07 38 */ stw r0, 0x738(r29)
/* 8003C59C 000394FC 80 7D 07 2C */ lwz r3, 0x72c(r29)
/* 8003C5A0 00039500 81 83 00 00 */ lwz r12, 0(r3)
/* 8003C5A4 00039504 81 8C 00 38 */ lwz r12, 0x38(r12)
/* 8003C5A8 00039508 7D 89 03 A6 */ mtctr r12
/* 8003C5AC 0003950C 4E 80 04 21 */ bctrl
/* 8003C5B0 00039510 80 1D 07 48 */ lwz r0, 0x748(r29)
/* 8003C5B4 00039514 7F E5 FB 78 */ mr r5, r31
/* 8003C5B8 00039518 80 7D 07 2C */ lwz r3, 0x72c(r29)
/* 8003C5BC 0003951C 90 03 01 BC */ stw r0, 0x1bc(r3)
/* 8003C5C0 00039520 80 7D 07 44 */ lwz r3, 0x744(r29)
/* 8003C5C4 00039524 80 9D 03 10 */ lwz r4, 0x310(r29)
/* 8003C5C8 00039528 48 17 C3 75 */ bl Load__10CAuxWeaponFiR13CStateManager
/* 8003C5CC 0003952C 3C 60 80 3D */ lis r3, mHandAnimId__10CPlayerGun@ha
/* 8003C5D0 00039530 38 00 00 00 */ li r0, 0
/* 8003C5D4 00039534 38 63 CE 44 */ addi r3, r3, mHandAnimId__10CPlayerGun@l
/* 8003C5D8 00039538 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8003C5DC 0003953C 7C C3 C8 2E */ lwzx r6, r3, r25
/* 8003C5E0 00039540 38 80 FF FF */ li r4, -1
/* 8003C5E4 00039544 38 60 00 01 */ li r3, 1
/* 8003C5E8 00039548 90 81 00 5C */ stw r4, 0x5c(r1)
/* 8003C5EC 0003954C 38 81 00 58 */ addi r4, r1, 0x58
/* 8003C5F0 00039550 38 A0 00 00 */ li r5, 0
/* 8003C5F4 00039554 90 C1 00 58 */ stw r6, 0x58(r1)
/* 8003C5F8 00039558 D0 01 00 60 */ stfs f0, 0x60(r1)
/* 8003C5FC 0003955C 98 61 00 64 */ stb r3, 0x64(r1)
/* 8003C600 00039560 90 01 00 68 */ stw r0, 0x68(r1)
/* 8003C604 00039564 90 01 00 6C */ stw r0, 0x6c(r1)
/* 8003C608 00039568 98 01 00 70 */ stb r0, 0x70(r1)
/* 8003C60C 0003956C 90 01 00 74 */ stw r0, 0x74(r1)
/* 8003C610 00039570 90 01 00 78 */ stw r0, 0x78(r1)
/* 8003C614 00039574 90 01 00 7C */ stw r0, 0x7c(r1)
/* 8003C618 00039578 80 7D 06 F0 */ lwz r3, 0x6f0(r29)
/* 8003C61C 0003957C 4B FF 07 61 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
/* 8003C620 00039580 48 00 03 AC */ b lbl_8003C9CC
lbl_8003C624:
/* 8003C624 00039584 7F E4 FB 78 */ mr r4, r31
/* 8003C628 00039588 4B FF F1 5D */ bl DeleteGunLight__10CPlayerGunFR13CStateManager
/* 8003C62C 0003958C 48 00 03 A0 */ b lbl_8003C9CC
lbl_8003C630:
/* 8003C630 00039590 7F 23 CB 78 */ mr r3, r25
/* 8003C634 00039594 38 80 00 17 */ li r4, 0x17
/* 8003C638 00039598 48 05 54 89 */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003C63C 0003959C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003C640 000395A0 41 82 00 64 */ beq lbl_8003C6A4
/* 8003C644 000395A4 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 8003C648 000395A8 41 82 00 5C */ beq lbl_8003C6A4
/* 8003C64C 000395AC A0 1E 00 00 */ lhz r0, 0(r30)
/* 8003C650 000395B0 7F E3 FB 78 */ mr r3, r31
/* 8003C654 000395B4 38 81 00 2C */ addi r4, r1, 0x2c
/* 8003C658 000395B8 B0 01 00 2C */ sth r0, 0x2c(r1)
/* 8003C65C 000395BC 48 00 FF 49 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8003C660 000395C0 7C 64 1B 78 */ mr r4, r3
/* 8003C664 000395C4 38 61 00 48 */ addi r3, r1, 0x48
/* 8003C668 000395C8 48 06 A1 F9 */ bl "__ct__26TCastToPtr<12CScriptWater>FP7CEntity"
/* 8003C66C 000395CC 80 63 00 04 */ lwz r3, 4(r3)
/* 8003C670 000395D0 28 03 00 00 */ cmplwi r3, 0
/* 8003C674 000395D4 41 82 00 30 */ beq lbl_8003C6A4
/* 8003C678 000395D8 80 63 01 B4 */ lwz r3, 0x1b4(r3)
/* 8003C67C 000395DC 80 03 00 44 */ lwz r0, 0x44(r3)
/* 8003C680 000395E0 2C 00 00 03 */ cmpwi r0, 3
/* 8003C684 000395E4 40 82 00 20 */ bne lbl_8003C6A4
/* 8003C688 000395E8 88 1D 08 35 */ lbz r0, 0x835(r29)
/* 8003C68C 000395EC 38 60 00 01 */ li r3, 1
/* 8003C690 000395F0 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8003C694 000395F4 98 1D 08 35 */ stb r0, 0x835(r29)
/* 8003C698 000395F8 88 1D 08 35 */ lbz r0, 0x835(r29)
/* 8003C69C 000395FC 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003C6A0 00039600 98 1D 08 35 */ stb r0, 0x835(r29)
lbl_8003C6A4:
/* 8003C6A4 00039604 C3 FB 08 28 */ lfs f31, 0x828(r27)
/* 8003C6A8 00039608 7F 63 DB 78 */ mr r3, r27
/* 8003C6AC 0003960C 48 24 87 35 */ bl GetEyeHeight__7CPlayerCFv
/* 8003C6B0 00039610 FC 1F 08 40 */ fcmpo cr0, f31, f1
/* 8003C6B4 00039614 40 81 00 48 */ ble lbl_8003C6FC
/* 8003C6B8 00039618 88 1D 08 34 */ lbz r0, 0x834(r29)
/* 8003C6BC 0003961C 38 60 00 01 */ li r3, 1
/* 8003C6C0 00039620 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8003C6C4 00039624 7F E4 FB 78 */ mr r4, r31
/* 8003C6C8 00039628 98 1D 08 34 */ stb r0, 0x834(r29)
/* 8003C6CC 0003962C 80 7D 07 44 */ lwz r3, 0x744(r29)
/* 8003C6D0 00039630 48 17 CD 61 */ bl IsComboFxActive__10CAuxWeaponCFRC13CStateManager
/* 8003C6D4 00039634 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003C6D8 00039638 41 82 02 F4 */ beq lbl_8003C9CC
/* 8003C6DC 0003963C 80 1D 03 10 */ lwz r0, 0x310(r29)
/* 8003C6E0 00039640 2C 00 00 02 */ cmpwi r0, 2
/* 8003C6E4 00039644 41 82 02 E8 */ beq lbl_8003C9CC
/* 8003C6E8 00039648 7F A3 EB 78 */ mr r3, r29
/* 8003C6EC 0003964C 7F E4 FB 78 */ mr r4, r31
/* 8003C6F0 00039650 38 A0 00 00 */ li r5, 0
/* 8003C6F4 00039654 4B FF FC BD */ bl StopContinuousBeam__10CPlayerGunFR13CStateManagerb
/* 8003C6F8 00039658 48 00 02 D4 */ b lbl_8003C9CC
lbl_8003C6FC:
/* 8003C6FC 0003965C 88 1D 08 34 */ lbz r0, 0x834(r29)
/* 8003C700 00039660 38 60 00 00 */ li r3, 0
/* 8003C704 00039664 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8003C708 00039668 98 1D 08 34 */ stb r0, 0x834(r29)
/* 8003C70C 0003966C 48 00 02 C0 */ b lbl_8003C9CC
lbl_8003C710:
/* 8003C710 00039670 88 1D 08 34 */ lbz r0, 0x834(r29)
/* 8003C714 00039674 38 60 00 00 */ li r3, 0
/* 8003C718 00039678 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8003C71C 0003967C 98 1D 08 34 */ stb r0, 0x834(r29)
/* 8003C720 00039680 88 1D 08 35 */ lbz r0, 0x835(r29)
/* 8003C724 00039684 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8003C728 00039688 98 1D 08 35 */ stb r0, 0x835(r29)
/* 8003C72C 0003968C 48 00 02 A0 */ b lbl_8003C9CC
lbl_8003C730:
/* 8003C730 00039690 88 1D 08 35 */ lbz r0, 0x835(r29)
/* 8003C734 00039694 38 60 00 01 */ li r3, 1
/* 8003C738 00039698 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
/* 8003C73C 0003969C 7F 23 CB 78 */ mr r3, r25
/* 8003C740 000396A0 98 1D 08 35 */ stb r0, 0x835(r29)
/* 8003C744 000396A4 38 80 00 17 */ li r4, 0x17
/* 8003C748 000396A8 48 05 53 79 */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003C74C 000396AC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003C750 000396B0 41 82 02 7C */ beq lbl_8003C9CC
/* 8003C754 000396B4 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 8003C758 000396B8 41 82 02 74 */ beq lbl_8003C9CC
/* 8003C75C 000396BC 88 1D 08 35 */ lbz r0, 0x835(r29)
/* 8003C760 000396C0 38 60 00 01 */ li r3, 1
/* 8003C764 000396C4 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8003C768 000396C8 98 1D 08 35 */ stb r0, 0x835(r29)
/* 8003C76C 000396CC 48 00 02 60 */ b lbl_8003C9CC
lbl_8003C770:
/* 8003C770 000396D0 88 1D 08 35 */ lbz r0, 0x835(r29)
/* 8003C774 000396D4 38 60 00 01 */ li r3, 1
/* 8003C778 000396D8 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
/* 8003C77C 000396DC 7F 23 CB 78 */ mr r3, r25
/* 8003C780 000396E0 98 1D 08 35 */ stb r0, 0x835(r29)
/* 8003C784 000396E4 38 80 00 17 */ li r4, 0x17
/* 8003C788 000396E8 48 05 53 39 */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003C78C 000396EC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003C790 000396F0 41 82 02 3C */ beq lbl_8003C9CC
/* 8003C794 000396F4 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 8003C798 000396F8 41 82 02 34 */ beq lbl_8003C9CC
/* 8003C79C 000396FC 88 1D 08 35 */ lbz r0, 0x835(r29)
/* 8003C7A0 00039700 38 60 00 01 */ li r3, 1
/* 8003C7A4 00039704 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8003C7A8 00039708 98 1D 08 35 */ stb r0, 0x835(r29)
/* 8003C7AC 0003970C 88 1D 08 35 */ lbz r0, 0x835(r29)
/* 8003C7B0 00039710 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003C7B4 00039714 98 1D 08 35 */ stb r0, 0x835(r29)
/* 8003C7B8 00039718 88 1D 08 33 */ lbz r0, 0x833(r29)
/* 8003C7BC 0003971C 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 8003C7C0 00039720 41 82 02 0C */ beq lbl_8003C9CC
/* 8003C7C4 00039724 80 7D 07 2C */ lwz r3, 0x72c(r29)
/* 8003C7C8 00039728 7F E4 FB 78 */ mr r4, r31
/* 8003C7CC 0003972C 48 15 06 E9 */ bl IsFiring__11CPhazonBeamCFRC13CStateManager
/* 8003C7D0 00039730 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003C7D4 00039734 41 82 01 F8 */ beq lbl_8003C9CC
/* 8003C7D8 00039738 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8003C7DC 0003973C 7F E3 FB 78 */ mr r3, r31
/* 8003C7E0 00039740 38 81 00 28 */ addi r4, r1, 0x28
/* 8003C7E4 00039744 B0 01 00 28 */ sth r0, 0x28(r1)
/* 8003C7E8 00039748 48 00 FD 8D */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8003C7EC 0003974C 7C 64 1B 78 */ mr r4, r3
/* 8003C7F0 00039750 38 61 00 50 */ addi r3, r1, 0x50
/* 8003C7F4 00039754 48 07 21 C1 */ bl "__ct__20TCastToPtr<7CEntity>FP7CEntity"
/* 8003C7F8 00039758 80 83 00 04 */ lwz r4, 4(r3)
/* 8003C7FC 0003975C 28 04 00 00 */ cmplwi r4, 0
/* 8003C800 00039760 41 82 01 CC */ beq lbl_8003C9CC
/* 8003C804 00039764 A0 1D 05 38 */ lhz r0, 0x538(r29)
/* 8003C808 00039768 7F E3 FB 78 */ mr r3, r31
/* 8003C80C 0003976C 38 A1 00 24 */ addi r5, r1, 0x24
/* 8003C810 00039770 38 C0 00 05 */ li r6, 5
/* 8003C814 00039774 B0 01 00 24 */ sth r0, 0x24(r1)
/* 8003C818 00039778 48 00 76 B9 */ bl SendScriptMsg__13CStateManagerFP7CEntity9TUniqueId20EScriptObjectMessage
/* 8003C81C 0003977C 48 00 01 B0 */ b lbl_8003C9CC
lbl_8003C820:
/* 8003C820 00039780 88 1D 08 35 */ lbz r0, 0x835(r29)
/* 8003C824 00039784 38 60 00 00 */ li r3, 0
/* 8003C828 00039788 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
/* 8003C82C 0003978C 98 1D 08 35 */ stb r0, 0x835(r29)
/* 8003C830 00039790 88 1D 08 35 */ lbz r0, 0x835(r29)
/* 8003C834 00039794 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8003C838 00039798 98 1D 08 35 */ stb r0, 0x835(r29)
/* 8003C83C 0003979C 48 00 01 90 */ b lbl_8003C9CC
lbl_8003C840:
/* 8003C840 000397A0 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8003C844 000397A4 7F E3 FB 78 */ mr r3, r31
/* 8003C848 000397A8 38 81 00 20 */ addi r4, r1, 0x20
/* 8003C84C 000397AC 3B 40 00 00 */ li r26, 0
/* 8003C850 000397B0 B0 01 00 20 */ sth r0, 0x20(r1)
/* 8003C854 000397B4 3B 20 00 00 */ li r25, 0
/* 8003C858 000397B8 48 00 FD 4D */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8003C85C 000397BC 7C 64 1B 78 */ mr r4, r3
/* 8003C860 000397C0 38 61 00 40 */ addi r3, r1, 0x40
/* 8003C864 000397C4 48 07 24 65 */ bl "__ct__31TCastToPtr<17CEnergyProjectile>FP7CEntity"
/* 8003C868 000397C8 80 63 00 04 */ lwz r3, 4(r3)
/* 8003C86C 000397CC 28 03 00 00 */ cmplwi r3, 0
/* 8003C870 000397D0 41 82 00 24 */ beq lbl_8003C894
/* 8003C874 000397D4 80 03 00 E8 */ lwz r0, 0xe8(r3)
/* 8003C878 000397D8 54 00 04 E6 */ rlwinm r0, r0, 0, 0x13, 0x13
/* 8003C87C 000397DC 2C 00 10 00 */ cmpwi r0, 0x1000
/* 8003C880 000397E0 40 82 00 14 */ bne lbl_8003C894
/* 8003C884 000397E4 C0 03 01 50 */ lfs f0, 0x150(r3)
/* 8003C888 000397E8 3B 40 00 01 */ li r26, 1
/* 8003C88C 000397EC D0 1D 03 94 */ stfs f0, 0x394(r29)
/* 8003C890 000397F0 48 00 00 8C */ b lbl_8003C91C
lbl_8003C894:
/* 8003C894 000397F4 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8003C898 000397F8 7F E3 FB 78 */ mr r3, r31
/* 8003C89C 000397FC 38 81 00 1C */ addi r4, r1, 0x1c
/* 8003C8A0 00039800 B0 01 00 1C */ sth r0, 0x1c(r1)
/* 8003C8A4 00039804 48 00 FD 01 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8003C8A8 00039808 7C 64 1B 78 */ mr r4, r3
/* 8003C8AC 0003980C 38 61 00 38 */ addi r3, r1, 0x38
/* 8003C8B0 00039810 48 07 01 AD */ bl "__ct__24TCastToPtr<10CPatterned>FP7CEntity"
/* 8003C8B4 00039814 80 63 00 04 */ lwz r3, 4(r3)
/* 8003C8B8 00039818 28 03 00 00 */ cmplwi r3, 0
/* 8003C8BC 0003981C 41 82 00 60 */ beq lbl_8003C91C
/* 8003C8C0 00039820 88 03 04 02 */ lbz r0, 0x402(r3)
/* 8003C8C4 00039824 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 8003C8C8 00039828 41 82 00 54 */ beq lbl_8003C91C
/* 8003C8CC 0003982C C0 03 05 04 */ lfs f0, 0x504(r3)
/* 8003C8D0 00039830 3B 40 00 01 */ li r26, 1
/* 8003C8D4 00039834 D0 1D 03 94 */ stfs f0, 0x394(r29)
/* 8003C8D8 00039838 A0 9B 02 6C */ lhz r4, 0x26c(r27)
/* 8003C8DC 0003983C A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003C8E0 00039840 54 83 04 3E */ clrlwi r3, r4, 0x10
/* 8003C8E4 00039844 B0 81 00 30 */ sth r4, 0x30(r1)
/* 8003C8E8 00039848 7C 03 00 40 */ cmplw r3, r0
/* 8003C8EC 0003984C 41 82 00 30 */ beq lbl_8003C91C
/* 8003C8F0 00039850 B0 81 00 18 */ sth r4, 0x18(r1)
/* 8003C8F4 00039854 7F E3 FB 78 */ mr r3, r31
/* 8003C8F8 00039858 38 81 00 18 */ addi r4, r1, 0x18
/* 8003C8FC 0003985C 48 00 FC A9 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8003C900 00039860 7C 64 1B 78 */ mr r4, r3
/* 8003C904 00039864 38 61 00 34 */ addi r3, r1, 0x34
/* 8003C908 00039868 48 06 8B CD */ bl "__ct__25TPatternedCast<8CMetroid>FP7CEntity"
/* 8003C90C 0003986C 48 06 8B 9D */ bl "CastTo<8CMetroid>__10CPatternedFRC25TPatternedCast<8CMetroid>"
/* 8003C910 00039870 7C 03 00 D0 */ neg r0, r3
/* 8003C914 00039874 7C 00 1B 78 */ or r0, r0, r3
/* 8003C918 00039878 54 19 0F FE */ srwi r25, r0, 0x1f
lbl_8003C91C:
/* 8003C91C 0003987C 88 9D 08 34 */ lbz r4, 0x834(r29)
/* 8003C920 00039880 54 80 FF FF */ rlwinm. r0, r4, 0x1f, 0x1f, 0x1f
/* 8003C924 00039884 40 82 00 A8 */ bne lbl_8003C9CC
/* 8003C928 00039888 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 8003C92C 0003988C 41 82 00 1C */ beq lbl_8003C948
/* 8003C930 00039890 38 00 00 00 */ li r0, 0
/* 8003C934 00039894 7F A3 EB 78 */ mr r3, r29
/* 8003C938 00039898 50 04 07 FE */ rlwimi r4, r0, 0, 0x1f, 0x1f
/* 8003C93C 0003989C 98 9D 08 34 */ stb r4, 0x834(r29)
/* 8003C940 000398A0 7F E4 FB 78 */ mr r4, r31
/* 8003C944 000398A4 48 00 01 15 */ bl CancelFiring__10CPlayerGunFR13CStateManager
lbl_8003C948:
/* 8003C948 000398A8 57 20 06 3E */ clrlwi r0, r25, 0x18
/* 8003C94C 000398AC 7F A3 EB 78 */ mr r3, r29
/* 8003C950 000398B0 7C 00 00 34 */ cntlzw r0, r0
/* 8003C954 000398B4 7F E6 FB 78 */ mr r6, r31
/* 8003C958 000398B8 54 05 D9 7E */ srwi r5, r0, 5
/* 8003C95C 000398BC 57 44 06 3E */ clrlwi r4, r26, 0x18
/* 8003C960 000398C0 48 00 02 69 */ bl TakeDamage__10CPlayerGunFbbR13CStateManager
/* 8003C964 000398C4 88 1D 08 34 */ lbz r0, 0x834(r29)
/* 8003C968 000398C8 53 40 0F BC */ rlwimi r0, r26, 1, 0x1e, 0x1e
/* 8003C96C 000398CC 98 1D 08 34 */ stb r0, 0x834(r29)
/* 8003C970 000398D0 48 00 00 5C */ b lbl_8003C9CC
lbl_8003C974:
/* 8003C974 000398D4 88 1B 07 60 */ lbz r0, 0x760(r27)
/* 8003C978 000398D8 28 00 00 00 */ cmplwi r0, 0
/* 8003C97C 000398DC 41 82 00 50 */ beq lbl_8003C9CC
/* 8003C980 000398E0 88 1D 08 34 */ lbz r0, 0x834(r29)
/* 8003C984 000398E4 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
/* 8003C988 000398E8 40 82 00 44 */ bne lbl_8003C9CC
/* 8003C98C 000398EC 38 00 00 00 */ li r0, 0
/* 8003C990 000398F0 7F E4 FB 78 */ mr r4, r31
/* 8003C994 000398F4 90 1D 02 F4 */ stw r0, 0x2f4(r29)
/* 8003C998 000398F8 90 1D 02 EC */ stw r0, 0x2ec(r29)
/* 8003C99C 000398FC 48 00 00 BD */ bl CancelFiring__10CPlayerGunFR13CStateManager
/* 8003C9A0 00039900 7F A3 EB 78 */ mr r3, r29
/* 8003C9A4 00039904 7F E6 FB 78 */ mr r6, r31
/* 8003C9A8 00039908 38 80 00 01 */ li r4, 1
/* 8003C9AC 0003990C 38 A0 00 00 */ li r5, 0
/* 8003C9B0 00039910 48 00 02 19 */ bl TakeDamage__10CPlayerGunFbbR13CStateManager
/* 8003C9B4 00039914 C0 02 84 98 */ lfs f0, lbl_805AA1B8@sda21(r2)
/* 8003C9B8 00039918 38 60 00 01 */ li r3, 1
/* 8003C9BC 0003991C D0 1D 03 94 */ stfs f0, 0x394(r29)
/* 8003C9C0 00039920 88 1D 08 34 */ lbz r0, 0x834(r29)
/* 8003C9C4 00039924 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
/* 8003C9C8 00039928 98 1D 08 34 */ stb r0, 0x834(r29)
lbl_8003C9CC:
/* 8003C9CC 0003992C A0 1E 00 00 */ lhz r0, 0(r30)
/* 8003C9D0 00039930 7F 84 E3 78 */ mr r4, r28
/* 8003C9D4 00039934 7F E6 FB 78 */ mr r6, r31
/* 8003C9D8 00039938 38 A1 00 14 */ addi r5, r1, 0x14
/* 8003C9DC 0003993C B0 01 00 14 */ sth r0, 0x14(r1)
/* 8003C9E0 00039940 80 7D 07 40 */ lwz r3, 0x740(r29)
/* 8003C9E4 00039944 48 0E 0F 1D */ bl AcceptScriptMsg__11CGrappleArmF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 8003C9E8 00039948 80 7D 07 58 */ lwz r3, 0x758(r29)
/* 8003C9EC 0003994C 7F 84 E3 78 */ mr r4, r28
/* 8003C9F0 00039950 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8003C9F4 00039954 7F E6 FB 78 */ mr r6, r31
/* 8003C9F8 00039958 38 A1 00 10 */ addi r5, r1, 0x10
/* 8003C9FC 0003995C B0 01 00 10 */ sth r0, 0x10(r1)
/* 8003CA00 00039960 48 0A 24 E5 */ bl AcceptScriptMsg__11CPlasmaBeamF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 8003CA04 00039964 80 7D 07 5C */ lwz r3, 0x75c(r29)
/* 8003CA08 00039968 7F 84 E3 78 */ mr r4, r28
/* 8003CA0C 0003996C A0 1E 00 00 */ lhz r0, 0(r30)
/* 8003CA10 00039970 7F E6 FB 78 */ mr r6, r31
/* 8003CA14 00039974 38 A1 00 0C */ addi r5, r1, 0xc
/* 8003CA18 00039978 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8003CA1C 0003997C 48 14 F8 0D */ bl AcceptScriptMsg__11CPhazonBeamF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 8003CA20 00039980 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8003CA24 00039984 7F 84 E3 78 */ mr r4, r28
/* 8003CA28 00039988 7F E6 FB 78 */ mr r6, r31
/* 8003CA2C 0003998C 38 A1 00 08 */ addi r5, r1, 8
/* 8003CA30 00039990 B0 01 00 08 */ sth r0, 8(r1)
/* 8003CA34 00039994 80 7D 07 44 */ lwz r3, 0x744(r29)
/* 8003CA38 00039998 48 17 BF F5 */ bl AcceptScriptMsg__10CAuxWeaponF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 8003CA3C 0003999C E3 E1 00 A8 */ psq_l f31, 168(r1), 0, qr0
/* 8003CA40 000399A0 CB E1 00 A0 */ lfd f31, 0xa0(r1)
/* 8003CA44 000399A4 BB 21 00 84 */ lmw r25, 0x84(r1)
/* 8003CA48 000399A8 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 8003CA4C 000399AC 7C 08 03 A6 */ mtlr r0
/* 8003CA50 000399B0 38 21 00 B0 */ addi r1, r1, 0xb0
/* 8003CA54 000399B4 4E 80 00 20 */ blr
.global CancelFiring__10CPlayerGunFR13CStateManager
CancelFiring__10CPlayerGunFR13CStateManager:
/* 8003CA58 000399B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003CA5C 000399BC 7C 08 02 A6 */ mflr r0
/* 8003CA60 000399C0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003CA64 000399C4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003CA68 000399C8 7C 9F 23 78 */ mr r31, r4
/* 8003CA6C 000399CC 93 C1 00 08 */ stw r30, 8(r1)
/* 8003CA70 000399D0 7C 7E 1B 78 */ mr r30, r3
/* 8003CA74 000399D4 80 03 03 2C */ lwz r0, 0x32c(r3)
/* 8003CA78 000399D8 2C 00 00 08 */ cmpwi r0, 8
/* 8003CA7C 000399DC 40 82 00 0C */ bne lbl_8003CA88
/* 8003CA80 000399E0 38 A0 00 01 */ li r5, 1
/* 8003CA84 000399E4 4B FF F1 B5 */ bl ReturnArmAndGunToDefault__10CPlayerGunFR13CStateManagerb
lbl_8003CA88:
/* 8003CA88 000399E8 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8003CA8C 000399EC 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 8003CA90 000399F0 2C 00 00 10 */ cmpwi r0, 0x10
/* 8003CA94 000399F4 40 82 00 4C */ bne lbl_8003CAE0
/* 8003CA98 000399F8 7F C3 F3 78 */ mr r3, r30
/* 8003CA9C 000399FC 7F E4 FB 78 */ mr r4, r31
/* 8003CAA0 00039A00 38 A0 00 01 */ li r5, 1
/* 8003CAA4 00039A04 4B FF F9 0D */ bl StopContinuousBeam__10CPlayerGunFR13CStateManagerb
/* 8003CAA8 00039A08 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8003CAAC 00039A0C 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 8003CAB0 00039A10 2C 00 00 08 */ cmpwi r0, 8
/* 8003CAB4 00039A14 41 82 00 20 */ beq lbl_8003CAD4
/* 8003CAB8 00039A18 80 7E 02 F8 */ lwz r3, 0x2f8(r30)
/* 8003CABC 00039A1C 38 00 FF E9 */ li r0, -23
/* 8003CAC0 00039A20 60 63 00 01 */ ori r3, r3, 1
/* 8003CAC4 00039A24 90 7E 02 F8 */ stw r3, 0x2f8(r30)
/* 8003CAC8 00039A28 80 7E 02 F8 */ lwz r3, 0x2f8(r30)
/* 8003CACC 00039A2C 7C 60 00 38 */ and r0, r3, r0
/* 8003CAD0 00039A30 90 1E 02 F8 */ stw r0, 0x2f8(r30)
lbl_8003CAD4:
/* 8003CAD4 00039A34 38 00 00 00 */ li r0, 0
/* 8003CAD8 00039A38 90 1E 03 18 */ stw r0, 0x318(r30)
/* 8003CADC 00039A3C 90 1E 03 1C */ stw r0, 0x31c(r30)
lbl_8003CAE0:
/* 8003CAE0 00039A40 80 1E 03 2C */ lwz r0, 0x32c(r30)
/* 8003CAE4 00039A44 2C 00 00 00 */ cmpwi r0, 0
/* 8003CAE8 00039A48 41 82 00 34 */ beq lbl_8003CB1C
/* 8003CAEC 00039A4C 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003CAF0 00039A50 38 80 00 00 */ li r4, 0
/* 8003CAF4 00039A54 38 A0 00 00 */ li r5, 0
/* 8003CAF8 00039A58 48 17 F4 91 */ bl ActivateCharge__10CGunWeaponFbb
/* 8003CAFC 00039A5C 7F C3 F3 78 */ mr r3, r30
/* 8003CB00 00039A60 7F E5 FB 78 */ mr r5, r31
/* 8003CB04 00039A64 38 80 00 00 */ li r4, 0
/* 8003CB08 00039A68 4B FF E9 69 */ bl SetGunLightActive__10CPlayerGunFbR13CStateManager
/* 8003CB0C 00039A6C 7F C3 F3 78 */ mr r3, r30
/* 8003CB10 00039A70 7F E4 FB 78 */ mr r4, r31
/* 8003CB14 00039A74 38 A0 00 01 */ li r5, 1
/* 8003CB18 00039A78 48 00 26 C5 */ bl ResetCharge__10CPlayerGunFR13CStateManagerb
lbl_8003CB1C:
/* 8003CB1C 00039A7C 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8003CB20 00039A80 7F C3 F3 78 */ mr r3, r30
/* 8003CB24 00039A84 7F E4 FB 78 */ mr r4, r31
/* 8003CB28 00039A88 54 05 07 BC */ rlwinm r5, r0, 0, 0x1e, 0x1e
/* 8003CB2C 00039A8C 38 05 FF FE */ addi r0, r5, -2
/* 8003CB30 00039A90 7C 00 00 34 */ cntlzw r0, r0
/* 8003CB34 00039A94 54 05 D9 7E */ srwi r5, r0, 5
/* 8003CB38 00039A98 48 00 28 09 */ bl Reset__10CPlayerGunFR13CStateManagerb
/* 8003CB3C 00039A9C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003CB40 00039AA0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003CB44 00039AA4 83 C1 00 08 */ lwz r30, 8(r1)
/* 8003CB48 00039AA8 7C 08 03 A6 */ mtlr r0
/* 8003CB4C 00039AAC 38 21 00 10 */ addi r1, r1, 0x10
/* 8003CB50 00039AB0 4E 80 00 20 */ blr
.global StopChargeSound__10CPlayerGunFR13CStateManager
StopChargeSound__10CPlayerGunFR13CStateManager:
/* 8003CB54 00039AB4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003CB58 00039AB8 7C 08 02 A6 */ mflr r0
/* 8003CB5C 00039ABC 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003CB60 00039AC0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003CB64 00039AC4 7C 9F 23 78 */ mr r31, r4
/* 8003CB68 00039AC8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003CB6C 00039ACC 7C 7E 1B 78 */ mr r30, r3
/* 8003CB70 00039AD0 80 03 02 E0 */ lwz r0, 0x2e0(r3)
/* 8003CB74 00039AD4 28 00 00 00 */ cmplwi r0, 0
/* 8003CB78 00039AD8 41 82 00 1C */ beq lbl_8003CB94
/* 8003CB7C 00039ADC 80 1E 02 E0 */ lwz r0, 0x2e0(r30)
/* 8003CB80 00039AE0 38 61 00 08 */ addi r3, r1, 8
/* 8003CB84 00039AE4 90 01 00 08 */ stw r0, 8(r1)
/* 8003CB88 00039AE8 48 2A D1 C1 */ bl SfxStop__11CSfxManagerFRC10CSfxHandle
/* 8003CB8C 00039AEC 38 00 00 00 */ li r0, 0
/* 8003CB90 00039AF0 90 1E 02 E0 */ stw r0, 0x2e0(r30)
lbl_8003CB94:
/* 8003CB94 00039AF4 A8 9E 08 30 */ lha r4, 0x830(r30)
/* 8003CB98 00039AF8 2C 04 FF FF */ cmpwi r4, -1
/* 8003CB9C 00039AFC 41 82 00 14 */ beq lbl_8003CBB0
/* 8003CBA0 00039B00 80 7F 08 8C */ lwz r3, 0x88c(r31)
/* 8003CBA4 00039B04 48 1F 15 71 */ bl StopRumble__14CRumbleManagerFs
/* 8003CBA8 00039B08 38 00 FF FF */ li r0, -1
/* 8003CBAC 00039B0C B0 1E 08 30 */ sth r0, 0x830(r30)
lbl_8003CBB0:
/* 8003CBB0 00039B10 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003CBB4 00039B14 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003CBB8 00039B18 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003CBBC 00039B1C 7C 08 03 A6 */ mtlr r0
/* 8003CBC0 00039B20 38 21 00 20 */ addi r1, r1, 0x20
/* 8003CBC4 00039B24 4E 80 00 20 */ blr
.global TakeDamage__10CPlayerGunFbbR13CStateManager
TakeDamage__10CPlayerGunFbbR13CStateManager:
/* 8003CBC8 00039B28 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8003CBCC 00039B2C 7C 08 02 A6 */ mflr r0
/* 8003CBD0 00039B30 90 01 00 54 */ stw r0, 0x54(r1)
/* 8003CBD4 00039B34 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 8003CBD8 00039B38 F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0
/* 8003CBDC 00039B3C 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8003CBE0 00039B40 93 C1 00 38 */ stw r30, 0x38(r1)
/* 8003CBE4 00039B44 93 A1 00 34 */ stw r29, 0x34(r1)
/* 8003CBE8 00039B48 93 81 00 30 */ stw r28, 0x30(r1)
/* 8003CBEC 00039B4C 7C 7C 1B 78 */ mr r28, r3
/* 8003CBF0 00039B50 7C DF 33 78 */ mr r31, r6
/* 8003CBF4 00039B54 C0 23 03 98 */ lfs f1, 0x398(r3)
/* 8003CBF8 00039B58 7C 9D 23 78 */ mr r29, r4
/* 8003CBFC 00039B5C C0 02 84 9C */ lfs f0, lbl_805AA1BC@sda21(r2)
/* 8003CC00 00039B60 7C BE 2B 78 */ mr r30, r5
/* 8003CC04 00039B64 80 86 08 4C */ lwz r4, 0x84c(r6)
/* 8003CC08 00039B68 38 60 00 00 */ li r3, 0
/* 8003CC0C 00039B6C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003CC10 00039B70 C3 E2 84 6C */ lfs f31, lbl_805AA18C@sda21(r2)
/* 8003CC14 00039B74 4C 41 13 82 */ cror 2, 1, 2
/* 8003CC18 00039B78 40 82 00 C8 */ bne lbl_8003CCE0
/* 8003CC1C 00039B7C 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 8003CC20 00039B80 40 82 00 C0 */ bne lbl_8003CCE0
/* 8003CC24 00039B84 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 8003CC28 00039B88 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 8003CC2C 00039B8C 2C 00 00 10 */ cmpwi r0, 0x10
/* 8003CC30 00039B90 41 82 00 B0 */ beq lbl_8003CCE0
/* 8003CC34 00039B94 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 8003CC38 00039B98 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 8003CC3C 00039B9C 40 82 00 A4 */ bne lbl_8003CCE0
/* 8003CC40 00039BA0 C0 1C 03 84 */ lfs f0, 0x384(r28)
/* 8003CC44 00039BA4 FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 8003CC48 00039BA8 4C 40 13 82 */ cror 2, 0, 2
/* 8003CC4C 00039BAC 40 82 00 94 */ bne lbl_8003CCE0
/* 8003CC50 00039BB0 C0 22 84 A0 */ lfs f1, lbl_805AA1C0@sda21(r2)
/* 8003CC54 00039BB4 C0 02 84 98 */ lfs f0, lbl_805AA1B8@sda21(r2)
/* 8003CC58 00039BB8 D0 3C 03 84 */ stfs f1, 0x384(r28)
/* 8003CC5C 00039BBC D0 1C 03 64 */ stfs f0, 0x364(r28)
/* 8003CC60 00039BC0 80 1C 06 98 */ lwz r0, 0x698(r28)
/* 8003CC64 00039BC4 2C 00 00 01 */ cmpwi r0, 1
/* 8003CC68 00039BC8 40 82 00 78 */ bne lbl_8003CCE0
/* 8003CC6C 00039BCC 38 61 00 08 */ addi r3, r1, 8
/* 8003CC70 00039BD0 38 84 00 34 */ addi r4, r4, 0x34
/* 8003CC74 00039BD4 38 BC 03 DC */ addi r5, r28, 0x3dc
/* 8003CC78 00039BD8 48 2D 5D AD */ bl TransposeRotate__12CTransform4fCFRC9CVector3f
/* 8003CC7C 00039BDC C0 21 00 0C */ lfs f1, 0xc(r1)
/* 8003CC80 00039BE0 C0 41 00 08 */ lfs f2, 8(r1)
/* 8003CC84 00039BE4 48 35 7F E9 */ bl atan2
/* 8003CC88 00039BE8 FC 80 08 18 */ frsp f4, f1
/* 8003CC8C 00039BEC C0 02 84 A4 */ lfs f0, lbl_805AA1C4@sda21(r2)
/* 8003CC90 00039BF0 3C 00 43 30 */ lis r0, 0x4330
/* 8003CC94 00039BF4 C8 62 84 B0 */ lfd f3, lbl_805AA1D0@sda21(r2)
/* 8003CC98 00039BF8 90 01 00 20 */ stw r0, 0x20(r1)
/* 8003CC9C 00039BFC EC 44 00 32 */ fmuls f2, f4, f0
/* 8003CCA0 00039C00 C0 22 84 A8 */ lfs f1, lbl_805AA1C8@sda21(r2)
/* 8003CCA4 00039C04 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003CCA8 00039C08 FC 40 10 1E */ fctiwz f2, f2
/* 8003CCAC 00039C0C D8 41 00 18 */ stfd f2, 0x18(r1)
/* 8003CCB0 00039C10 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8003CCB4 00039C14 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8003CCB8 00039C18 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003CCBC 00039C1C C8 41 00 20 */ lfd f2, 0x20(r1)
/* 8003CCC0 00039C20 EC 42 18 28 */ fsubs f2, f2, f3
/* 8003CCC4 00039C24 EC 42 20 7C */ fnmsubs f2, f2, f1, f4
/* 8003CCC8 00039C28 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8003CCCC 00039C2C 40 80 00 08 */ bge lbl_8003CCD4
/* 8003CCD0 00039C30 EC 42 08 2A */ fadds f2, f2, f1
lbl_8003CCD4:
/* 8003CCD4 00039C34 C0 02 84 AC */ lfs f0, lbl_805AA1CC@sda21(r2)
/* 8003CCD8 00039C38 38 60 00 01 */ li r3, 1
/* 8003CCDC 00039C3C EF E0 00 B2 */ fmuls f31, f0, f2
lbl_8003CCE0:
/* 8003CCE0 00039C40 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003CCE4 00039C44 40 82 00 0C */ bne lbl_8003CCF0
/* 8003CCE8 00039C48 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 8003CCEC 00039C4C 41 82 00 70 */ beq lbl_8003CD5C
lbl_8003CCF0:
/* 8003CCF0 00039C50 80 7F 08 B8 */ lwz r3, 0x8b8(r31)
/* 8003CCF4 00039C54 80 63 00 00 */ lwz r3, 0(r3)
/* 8003CCF8 00039C58 80 03 00 14 */ lwz r0, 0x14(r3)
/* 8003CCFC 00039C5C 2C 00 00 02 */ cmpwi r0, 2
/* 8003CD00 00039C60 41 82 00 5C */ beq lbl_8003CD5C
/* 8003CD04 00039C64 FC 20 F8 90 */ fmr f1, f31
/* 8003CD08 00039C68 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 8003CD0C 00039C6C 7F E5 FB 78 */ mr r5, r31
/* 8003CD10 00039C70 7F A6 EB 78 */ mr r6, r29
/* 8003CD14 00039C74 38 80 00 02 */ li r4, 2
/* 8003CD18 00039C78 48 19 C4 A1 */ bl PlayPasAnim__10CGunMotionFQ28SamusGun15EAnimationStateR13CStateManagerfb
/* 8003CD1C 00039C7C 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 8003CD20 00039C80 41 82 00 0C */ beq lbl_8003CD2C
/* 8003CD24 00039C84 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8003CD28 00039C88 40 82 00 10 */ bne lbl_8003CD38
lbl_8003CD2C:
/* 8003CD2C 00039C8C 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8003CD30 00039C90 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8003CD34 00039C94 41 82 00 28 */ beq lbl_8003CD5C
lbl_8003CD38:
/* 8003CD38 00039C98 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8003CD3C 00039C9C FC 20 F8 90 */ fmr f1, f31
/* 8003CD40 00039CA0 80 7C 07 40 */ lwz r3, 0x740(r28)
/* 8003CD44 00039CA4 7F E4 FB 78 */ mr r4, r31
/* 8003CD48 00039CA8 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 8003CD4C 00039CAC 7F A5 EB 78 */ mr r5, r29
/* 8003CD50 00039CB0 7C 00 00 34 */ cntlzw r0, r0
/* 8003CD54 00039CB4 54 06 D9 7E */ srwi r6, r0, 5
/* 8003CD58 00039CB8 48 0E 10 D9 */ bl EnterStruck__11CGrappleArmFR13CStateManagerfbb
lbl_8003CD5C:
/* 8003CD5C 00039CBC C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003CD60 00039CC0 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
/* 8003CD64 00039CC4 D0 1C 03 98 */ stfs f0, 0x398(r28)
/* 8003CD68 00039CC8 C4 03 66 A0 */ lfsu f0, sZeroVector__9CVector3f@l(r3)
/* 8003CD6C 00039CCC D0 1C 03 DC */ stfs f0, 0x3dc(r28)
/* 8003CD70 00039CD0 C0 03 00 04 */ lfs f0, 4(r3)
/* 8003CD74 00039CD4 D0 1C 03 E0 */ stfs f0, 0x3e0(r28)
/* 8003CD78 00039CD8 C0 03 00 08 */ lfs f0, 8(r3)
/* 8003CD7C 00039CDC D0 1C 03 E4 */ stfs f0, 0x3e4(r28)
/* 8003CD80 00039CE0 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0
/* 8003CD84 00039CE4 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8003CD88 00039CE8 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 8003CD8C 00039CEC 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8003CD90 00039CF0 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8003CD94 00039CF4 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 8003CD98 00039CF8 83 81 00 30 */ lwz r28, 0x30(r1)
/* 8003CD9C 00039CFC 7C 08 03 A6 */ mtlr r0
/* 8003CDA0 00039D00 38 21 00 50 */ addi r1, r1, 0x50
/* 8003CDA4 00039D04 4E 80 00 20 */ blr
.global DamageRumble__10CPlayerGunFRC9CVector3fRC13CStateManager
DamageRumble__10CPlayerGunFRC9CVector3fRC13CStateManager:
/* 8003CDA8 00039D08 D0 23 03 98 */ stfs f1, 0x398(r3)
/* 8003CDAC 00039D0C C0 04 00 00 */ lfs f0, 0(r4)
/* 8003CDB0 00039D10 D0 03 03 DC */ stfs f0, 0x3dc(r3)
/* 8003CDB4 00039D14 C0 04 00 04 */ lfs f0, 4(r4)
/* 8003CDB8 00039D18 D0 03 03 E0 */ stfs f0, 0x3e0(r3)
/* 8003CDBC 00039D1C C0 04 00 08 */ lfs f0, 8(r4)
/* 8003CDC0 00039D20 D0 03 03 E4 */ stfs f0, 0x3e4(r3)
/* 8003CDC4 00039D24 4E 80 00 20 */ blr
.global Update__Q210CPlayerGun12CMotionStateFbfR12CTransform4fR13CStateManager
Update__Q210CPlayerGun12CMotionStateFbfR12CTransform4fR13CStateManager:
/* 8003CDC8 00039D28 94 21 FD 80 */ stwu r1, -0x280(r1)
/* 8003CDCC 00039D2C 7C 08 02 A6 */ mflr r0
/* 8003CDD0 00039D30 90 01 02 84 */ stw r0, 0x284(r1)
/* 8003CDD4 00039D34 DB E1 02 70 */ stfd f31, 0x270(r1)
/* 8003CDD8 00039D38 F3 E1 02 78 */ psq_st f31, 632(r1), 0, qr0
/* 8003CDDC 00039D3C 93 E1 02 6C */ stw r31, 0x26c(r1)
/* 8003CDE0 00039D40 93 C1 02 68 */ stw r30, 0x268(r1)
/* 8003CDE4 00039D44 93 A1 02 64 */ stw r29, 0x264(r1)
/* 8003CDE8 00039D48 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 8003CDEC 00039D4C FF E0 08 90 */ fmr f31, f1
/* 8003CDF0 00039D50 7C 7D 1B 78 */ mr r29, r3
/* 8003CDF4 00039D54 7C BE 2B 78 */ mr r30, r5
/* 8003CDF8 00039D58 7C DF 33 78 */ mr r31, r6
/* 8003CDFC 00039D5C 41 82 00 18 */ beq lbl_8003CE14
/* 8003CE00 00039D60 38 00 00 01 */ li r0, 1
/* 8003CE04 00039D64 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003CE08 00039D68 90 1D 00 24 */ stw r0, 0x24(r29)
/* 8003CE0C 00039D6C D0 1D 00 08 */ stfs f0, 8(r29)
/* 8003CE10 00039D70 48 00 00 30 */ b lbl_8003CE40
lbl_8003CE14:
/* 8003CE14 00039D74 80 1D 00 24 */ lwz r0, 0x24(r29)
/* 8003CE18 00039D78 2C 00 00 00 */ cmpwi r0, 0
/* 8003CE1C 00039D7C 41 82 00 24 */ beq lbl_8003CE40
/* 8003CE20 00039D80 C0 1D 00 08 */ lfs f0, 8(r29)
/* 8003CE24 00039D84 FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 8003CE28 00039D88 40 81 00 0C */ ble lbl_8003CE34
/* 8003CE2C 00039D8C 38 00 00 02 */ li r0, 2
/* 8003CE30 00039D90 90 1D 00 24 */ stw r0, 0x24(r29)
lbl_8003CE34:
/* 8003CE34 00039D94 C0 1D 00 08 */ lfs f0, 8(r29)
/* 8003CE38 00039D98 EC 00 F8 2A */ fadds f0, f0, f31
/* 8003CE3C 00039D9C D0 1D 00 08 */ stfs f0, 8(r29)
lbl_8003CE40:
/* 8003CE40 00039DA0 88 1D 00 00 */ lbz r0, 0(r29)
/* 8003CE44 00039DA4 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8003CE48 00039DA8 41 82 00 94 */ beq lbl_8003CEDC
/* 8003CE4C 00039DAC 80 1D 00 20 */ lwz r0, 0x20(r29)
/* 8003CE50 00039DB0 2C 00 00 02 */ cmpwi r0, 2
/* 8003CE54 00039DB4 40 82 00 88 */ bne lbl_8003CEDC
/* 8003CE58 00039DB8 C0 82 84 7C */ lfs f4, lbl_805AA19C@sda21(r2)
/* 8003CE5C 00039DBC 38 61 01 CC */ addi r3, r1, 0x1cc
/* 8003CE60 00039DC0 C0 0D 82 20 */ lfs f0, gGunExtendDistance__Q210CPlayerGun12CMotionState@sda21(r13)
/* 8003CE64 00039DC4 38 81 00 0C */ addi r4, r1, 0xc
/* 8003CE68 00039DC8 C0 BD 00 0C */ lfs f5, 0xc(r29)
/* 8003CE6C 00039DCC EC 24 00 24 */ fdivs f1, f4, f0
/* 8003CE70 00039DD0 C0 02 84 BC */ lfs f0, lbl_805AA1DC@sda21(r2)
/* 8003CE74 00039DD4 C0 42 84 78 */ lfs f2, lbl_805AA198@sda21(r2)
/* 8003CE78 00039DD8 C0 62 84 B8 */ lfs f3, lbl_805AA1D8@sda21(r2)
/* 8003CE7C 00039DDC EC A5 00 72 */ fmuls f5, f5, f1
/* 8003CE80 00039DE0 EC 20 01 72 */ fmuls f1, f0, f5
/* 8003CE84 00039DE4 EC 05 20 28 */ fsubs f0, f5, f4
/* 8003CE88 00039DE8 EC 01 00 32 */ fmuls f0, f1, f0
/* 8003CE8C 00039DEC EC 02 00 32 */ fmuls f0, f2, f0
/* 8003CE90 00039DF0 EC 03 00 32 */ fmuls f0, f3, f0
/* 8003CE94 00039DF4 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8003CE98 00039DF8 48 2D 69 79 */ bl RotateZ__12CTransform4fFRC9CRelAngle
/* 8003CE9C 00039DFC 38 61 02 2C */ addi r3, r1, 0x22c
/* 8003CEA0 00039E00 38 81 01 CC */ addi r4, r1, 0x1cc
/* 8003CEA4 00039E04 48 2D 5C D1 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8003CEA8 00039E08 C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 8003CEAC 00039E0C 7F C4 F3 78 */ mr r4, r30
/* 8003CEB0 00039E10 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003CEB4 00039E14 38 61 01 9C */ addi r3, r1, 0x19c
/* 8003CEB8 00039E18 D0 21 02 48 */ stfs f1, 0x248(r1)
/* 8003CEBC 00039E1C 38 A1 02 2C */ addi r5, r1, 0x22c
/* 8003CEC0 00039E20 D0 01 02 38 */ stfs f0, 0x238(r1)
/* 8003CEC4 00039E24 D0 01 02 58 */ stfs f0, 0x258(r1)
/* 8003CEC8 00039E28 48 2D 5A 89 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8003CECC 00039E2C 7F C3 F3 78 */ mr r3, r30
/* 8003CED0 00039E30 38 81 01 9C */ addi r4, r1, 0x19c
/* 8003CED4 00039E34 48 2D 5C 6D */ bl __as__12CTransform4fFRC12CTransform4f
/* 8003CED8 00039E38 48 00 02 44 */ b lbl_8003D11C
lbl_8003CEDC:
/* 8003CEDC 00039E3C 80 1D 00 24 */ lwz r0, 0x24(r29)
/* 8003CEE0 00039E40 2C 00 00 01 */ cmpwi r0, 1
/* 8003CEE4 00039E44 41 82 00 0C */ beq lbl_8003CEF0
/* 8003CEE8 00039E48 2C 00 00 02 */ cmpwi r0, 2
/* 8003CEEC 00039E4C 40 82 02 00 */ bne lbl_8003D0EC
lbl_8003CEF0:
/* 8003CEF0 00039E50 C0 5D 00 14 */ lfs f2, 0x14(r29)
/* 8003CEF4 00039E54 C0 22 84 7C */ lfs f1, lbl_805AA19C@sda21(r2)
/* 8003CEF8 00039E58 C8 02 84 C0 */ lfd f0, lbl_805AA1E0@sda21(r2)
/* 8003CEFC 00039E5C EC 22 08 28 */ fsubs f1, f2, f1
/* 8003CF00 00039E60 FC 20 0A 10 */ fabs f1, f1
/* 8003CF04 00039E64 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003CF08 00039E68 40 80 00 C8 */ bge lbl_8003CFD0
/* 8003CF0C 00039E6C C0 3D 00 1C */ lfs f1, 0x1c(r29)
/* 8003CF10 00039E70 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003CF14 00039E74 D0 3D 00 18 */ stfs f1, 0x18(r29)
/* 8003CF18 00039E78 D0 1D 00 14 */ stfs f0, 0x14(r29)
/* 8003CF1C 00039E7C 80 1D 00 24 */ lwz r0, 0x24(r29)
/* 8003CF20 00039E80 2C 00 00 01 */ cmpwi r0, 1
/* 8003CF24 00039E84 40 82 00 88 */ bne lbl_8003CFAC
/* 8003CF28 00039E88 80 7F 09 00 */ lwz r3, 0x900(r31)
/* 8003CF2C 00039E8C 48 2D 55 F5 */ bl Next__9CRandom16Fv
/* 8003CF30 00039E90 3C 80 88 89 */ lis r4, 0x88888889@ha
/* 8003CF34 00039E94 38 04 88 89 */ addi r0, r4, 0x88888889@l
/* 8003CF38 00039E98 7C 00 18 96 */ mulhw r0, r0, r3
/* 8003CF3C 00039E9C 7C 00 1A 14 */ add r0, r0, r3
/* 8003CF40 00039EA0 7C 00 1E 70 */ srawi r0, r0, 3
/* 8003CF44 00039EA4 54 04 0F FE */ srwi r4, r0, 0x1f
/* 8003CF48 00039EA8 7C 00 22 14 */ add r0, r0, r4
/* 8003CF4C 00039EAC 1C 00 00 0F */ mulli r0, r0, 0xf
/* 8003CF50 00039EB0 7C 00 18 50 */ subf r0, r0, r3
/* 8003CF54 00039EB4 B0 01 00 08 */ sth r0, 8(r1)
/* 8003CF58 00039EB8 E0 01 D0 08 */ psq_l f0, 8(r1), 1, qr5
/* 8003CF5C 00039EBC D0 1D 00 1C */ stfs f0, 0x1c(r29)
/* 8003CF60 00039EC0 80 7F 09 00 */ lwz r3, 0x900(r31)
/* 8003CF64 00039EC4 48 2D 55 BD */ bl Next__9CRandom16Fv
/* 8003CF68 00039EC8 3C 80 51 EC */ lis r4, 0x51EB851F@ha
/* 8003CF6C 00039ECC 38 04 85 1F */ addi r0, r4, 0x51EB851F@l
/* 8003CF70 00039ED0 7C 00 18 96 */ mulhw r0, r0, r3
/* 8003CF74 00039ED4 7C 00 2E 70 */ srawi r0, r0, 5
/* 8003CF78 00039ED8 54 04 0F FE */ srwi r4, r0, 0x1f
/* 8003CF7C 00039EDC 7C 00 22 14 */ add r0, r0, r4
/* 8003CF80 00039EE0 1C 00 00 64 */ mulli r0, r0, 0x64
/* 8003CF84 00039EE4 7C 00 18 50 */ subf r0, r0, r3
/* 8003CF88 00039EE8 2C 00 00 2D */ cmpwi r0, 0x2d
/* 8003CF8C 00039EEC 40 81 00 0C */ ble lbl_8003CF98
/* 8003CF90 00039EF0 C0 22 84 7C */ lfs f1, lbl_805AA19C@sda21(r2)
/* 8003CF94 00039EF4 48 00 00 08 */ b lbl_8003CF9C
lbl_8003CF98:
/* 8003CF98 00039EF8 C0 22 84 C8 */ lfs f1, lbl_805AA1E8@sda21(r2)
lbl_8003CF9C:
/* 8003CF9C 00039EFC C0 1D 00 1C */ lfs f0, 0x1c(r29)
/* 8003CFA0 00039F00 EC 00 00 72 */ fmuls f0, f0, f1
/* 8003CFA4 00039F04 D0 1D 00 1C */ stfs f0, 0x1c(r29)
/* 8003CFA8 00039F08 48 00 00 3C */ b lbl_8003CFE4
lbl_8003CFAC:
/* 8003CFAC 00039F0C D0 1D 00 1C */ stfs f0, 0x1c(r29)
/* 8003CFB0 00039F10 C0 1D 00 18 */ lfs f0, 0x18(r29)
/* 8003CFB4 00039F14 C0 3D 00 1C */ lfs f1, 0x1c(r29)
/* 8003CFB8 00039F18 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 8003CFBC 00039F1C 40 82 00 28 */ bne lbl_8003CFE4
/* 8003CFC0 00039F20 D0 3D 00 10 */ stfs f1, 0x10(r29)
/* 8003CFC4 00039F24 38 00 00 00 */ li r0, 0
/* 8003CFC8 00039F28 90 1D 00 24 */ stw r0, 0x24(r29)
/* 8003CFCC 00039F2C 48 00 00 18 */ b lbl_8003CFE4
lbl_8003CFD0:
/* 8003CFD0 00039F30 C0 3D 00 18 */ lfs f1, 0x18(r29)
/* 8003CFD4 00039F34 C0 1D 00 1C */ lfs f0, 0x1c(r29)
/* 8003CFD8 00039F38 EC 00 08 28 */ fsubs f0, f0, f1
/* 8003CFDC 00039F3C EC 02 08 3A */ fmadds f0, f2, f0, f1
/* 8003CFE0 00039F40 D0 1D 00 10 */ stfs f0, 0x10(r29)
lbl_8003CFE4:
/* 8003CFE4 00039F44 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8003CFE8 00039F48 38 61 00 20 */ addi r3, r1, 0x20
/* 8003CFEC 00039F4C C0 5D 00 14 */ lfs f2, 0x14(r29)
/* 8003CFF0 00039F50 38 81 00 14 */ addi r4, r1, 0x14
/* 8003CFF4 00039F54 C0 22 84 9C */ lfs f1, lbl_805AA1BC@sda21(r2)
/* 8003CFF8 00039F58 EC 00 10 28 */ fsubs f0, f0, f2
/* 8003CFFC 00039F5C C0 62 84 CC */ lfs f3, lbl_805AA1EC@sda21(r2)
/* 8003D000 00039F60 EC 81 07 F2 */ fmuls f4, f1, f31
/* 8003D004 00039F64 C0 22 84 B8 */ lfs f1, lbl_805AA1D8@sda21(r2)
/* 8003D008 00039F68 EC 03 00 32 */ fmuls f0, f3, f0
/* 8003D00C 00039F6C EC 04 10 3A */ fmadds f0, f4, f0, f2
/* 8003D010 00039F70 D0 1D 00 14 */ stfs f0, 0x14(r29)
/* 8003D014 00039F74 C0 1D 00 10 */ lfs f0, 0x10(r29)
/* 8003D018 00039F78 EC 01 00 32 */ fmuls f0, f1, f0
/* 8003D01C 00039F7C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8003D020 00039F80 C0 5E 00 24 */ lfs f2, 0x24(r30)
/* 8003D024 00039F84 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8003D028 00039F88 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8003D02C 00039F8C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8003D030 00039F90 D0 21 00 18 */ stfs f1, 0x18(r1)
/* 8003D034 00039F94 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 8003D038 00039F98 48 2D 6D 99 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8003D03C 00039F9C 7C 64 1B 78 */ mr r4, r3
/* 8003D040 00039FA0 38 61 00 2C */ addi r3, r1, 0x2c
/* 8003D044 00039FA4 38 A1 00 10 */ addi r5, r1, 0x10
/* 8003D048 00039FA8 48 2D 42 AD */ bl AxisAngle__11CQuaternionFRC13CUnitVector3fRC9CRelAngle
/* 8003D04C 00039FAC C0 61 00 2C */ lfs f3, 0x2c(r1)
/* 8003D050 00039FB0 7F C4 F3 78 */ mr r4, r30
/* 8003D054 00039FB4 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8003D058 00039FB8 38 61 01 0C */ addi r3, r1, 0x10c
/* 8003D05C 00039FBC C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8003D060 00039FC0 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8003D064 00039FC4 D0 61 00 3C */ stfs f3, 0x3c(r1)
/* 8003D068 00039FC8 D0 41 00 40 */ stfs f2, 0x40(r1)
/* 8003D06C 00039FCC D0 21 00 44 */ stfs f1, 0x44(r1)
/* 8003D070 00039FD0 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 8003D074 00039FD4 48 2D 5B CD */ bl GetRotation__12CTransform4fCFv
/* 8003D078 00039FD8 38 61 01 3C */ addi r3, r1, 0x13c
/* 8003D07C 00039FDC 38 81 00 3C */ addi r4, r1, 0x3c
/* 8003D080 00039FE0 48 2D 4F 39 */ bl BuildTransform4f__11CQuaternionCFv
/* 8003D084 00039FE4 38 61 01 6C */ addi r3, r1, 0x16c
/* 8003D088 00039FE8 38 81 01 3C */ addi r4, r1, 0x13c
/* 8003D08C 00039FEC 38 A1 01 0C */ addi r5, r1, 0x10c
/* 8003D090 00039FF0 48 2D 58 C1 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8003D094 00039FF4 38 61 01 FC */ addi r3, r1, 0x1fc
/* 8003D098 00039FF8 38 81 01 6C */ addi r4, r1, 0x16c
/* 8003D09C 00039FFC 48 2D 5A D9 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8003D0A0 0003A000 C0 9E 00 2C */ lfs f4, 0x2c(r30)
/* 8003D0A4 0003A004 38 61 00 AC */ addi r3, r1, 0xac
/* 8003D0A8 0003A008 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 8003D0AC 0003A00C C0 5E 00 1C */ lfs f2, 0x1c(r30)
/* 8003D0B0 0003A010 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8003D0B4 0003A014 FC 60 08 90 */ fmr f3, f1
/* 8003D0B8 0003A018 D0 01 02 08 */ stfs f0, 0x208(r1)
/* 8003D0BC 0003A01C D0 41 02 18 */ stfs f2, 0x218(r1)
/* 8003D0C0 0003A020 D0 81 02 28 */ stfs f4, 0x228(r1)
/* 8003D0C4 0003A024 C0 5D 00 0C */ lfs f2, 0xc(r29)
/* 8003D0C8 0003A028 48 2D 60 C1 */ bl Translate__12CTransform4fFfff
/* 8003D0CC 0003A02C 38 61 00 DC */ addi r3, r1, 0xdc
/* 8003D0D0 0003A030 38 81 01 FC */ addi r4, r1, 0x1fc
/* 8003D0D4 0003A034 38 A1 00 AC */ addi r5, r1, 0xac
/* 8003D0D8 0003A038 48 2D 58 79 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8003D0DC 0003A03C 7F C3 F3 78 */ mr r3, r30
/* 8003D0E0 0003A040 38 81 00 DC */ addi r4, r1, 0xdc
/* 8003D0E4 0003A044 48 2D 5A 5D */ bl __as__12CTransform4fFRC12CTransform4f
/* 8003D0E8 0003A048 48 00 00 34 */ b lbl_8003D11C
lbl_8003D0EC:
/* 8003D0EC 0003A04C C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 8003D0F0 0003A050 38 61 00 7C */ addi r3, r1, 0x7c
/* 8003D0F4 0003A054 C0 5D 00 0C */ lfs f2, 0xc(r29)
/* 8003D0F8 0003A058 FC 60 08 90 */ fmr f3, f1
/* 8003D0FC 0003A05C 48 2D 60 8D */ bl Translate__12CTransform4fFfff
/* 8003D100 0003A060 7F C4 F3 78 */ mr r4, r30
/* 8003D104 0003A064 38 61 00 4C */ addi r3, r1, 0x4c
/* 8003D108 0003A068 38 A1 00 7C */ addi r5, r1, 0x7c
/* 8003D10C 0003A06C 48 2D 58 45 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8003D110 0003A070 7F C3 F3 78 */ mr r3, r30
/* 8003D114 0003A074 38 81 00 4C */ addi r4, r1, 0x4c
/* 8003D118 0003A078 48 2D 5A 29 */ bl __as__12CTransform4fFRC12CTransform4f
lbl_8003D11C:
/* 8003D11C 0003A07C 80 1D 00 20 */ lwz r0, 0x20(r29)
/* 8003D120 0003A080 2C 00 00 03 */ cmpwi r0, 3
/* 8003D124 0003A084 41 82 00 54 */ beq lbl_8003D178
/* 8003D128 0003A088 40 80 00 7C */ bge lbl_8003D1A4
/* 8003D12C 0003A08C 2C 00 00 02 */ cmpwi r0, 2
/* 8003D130 0003A090 40 80 00 08 */ bge lbl_8003D138
/* 8003D134 0003A094 48 00 00 70 */ b lbl_8003D1A4
lbl_8003D138:
/* 8003D138 0003A098 C0 22 84 D0 */ lfs f1, lbl_805AA1F0@sda21(r2)
/* 8003D13C 0003A09C C0 1D 00 0C */ lfs f0, 0xc(r29)
/* 8003D140 0003A0A0 EC 01 07 FA */ fmadds f0, f1, f31, f0
/* 8003D144 0003A0A4 D0 1D 00 0C */ stfs f0, 0xc(r29)
/* 8003D148 0003A0A8 C0 1D 00 0C */ lfs f0, 0xc(r29)
/* 8003D14C 0003A0AC C0 2D 82 20 */ lfs f1, gGunExtendDistance__Q210CPlayerGun12CMotionState@sda21(r13)
/* 8003D150 0003A0B0 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8003D154 0003A0B4 40 81 00 50 */ ble lbl_8003D1A4
/* 8003D158 0003A0B8 D0 3D 00 0C */ stfs f1, 0xc(r29)
/* 8003D15C 0003A0BC 38 00 00 01 */ li r0, 1
/* 8003D160 0003A0C0 38 60 00 00 */ li r3, 0
/* 8003D164 0003A0C4 90 1D 00 20 */ stw r0, 0x20(r29)
/* 8003D168 0003A0C8 88 1D 00 00 */ lbz r0, 0(r29)
/* 8003D16C 0003A0CC 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8003D170 0003A0D0 98 1D 00 00 */ stb r0, 0(r29)
/* 8003D174 0003A0D4 48 00 00 30 */ b lbl_8003D1A4
lbl_8003D178:
/* 8003D178 0003A0D8 C0 42 84 D0 */ lfs f2, lbl_805AA1F0@sda21(r2)
/* 8003D17C 0003A0DC C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 8003D180 0003A0E0 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003D184 0003A0E4 EC 22 0F FC */ fnmsubs f1, f2, f31, f1
/* 8003D188 0003A0E8 D0 3D 00 0C */ stfs f1, 0xc(r29)
/* 8003D18C 0003A0EC C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 8003D190 0003A0F0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003D194 0003A0F4 40 80 00 10 */ bge lbl_8003D1A4
/* 8003D198 0003A0F8 D0 1D 00 0C */ stfs f0, 0xc(r29)
/* 8003D19C 0003A0FC 38 00 00 00 */ li r0, 0
/* 8003D1A0 0003A100 90 1D 00 20 */ stw r0, 0x20(r29)
lbl_8003D1A4:
/* 8003D1A4 0003A104 88 7D 00 00 */ lbz r3, 0(r29)
/* 8003D1A8 0003A108 54 60 CF FE */ rlwinm r0, r3, 0x19, 0x1f, 0x1f
/* 8003D1AC 0003A10C 28 00 00 01 */ cmplwi r0, 1
/* 8003D1B0 0003A110 41 82 00 34 */ beq lbl_8003D1E4
/* 8003D1B4 0003A114 C0 3D 00 04 */ lfs f1, 4(r29)
/* 8003D1B8 0003A118 C0 02 84 D4 */ lfs f0, lbl_805AA1F4@sda21(r2)
/* 8003D1BC 0003A11C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003D1C0 0003A120 40 80 00 10 */ bge lbl_8003D1D0
/* 8003D1C4 0003A124 EC 01 F8 2A */ fadds f0, f1, f31
/* 8003D1C8 0003A128 D0 1D 00 04 */ stfs f0, 4(r29)
/* 8003D1CC 0003A12C 48 00 00 18 */ b lbl_8003D1E4
lbl_8003D1D0:
/* 8003D1D0 0003A130 38 00 00 01 */ li r0, 1
/* 8003D1D4 0003A134 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003D1D8 0003A138 50 03 3E 30 */ rlwimi r3, r0, 7, 0x18, 0x18
/* 8003D1DC 0003A13C 98 7D 00 00 */ stb r3, 0(r29)
/* 8003D1E0 0003A140 D0 1D 00 04 */ stfs f0, 4(r29)
lbl_8003D1E4:
/* 8003D1E4 0003A144 E3 E1 02 78 */ psq_l f31, 632(r1), 0, qr0
/* 8003D1E8 0003A148 80 01 02 84 */ lwz r0, 0x284(r1)
/* 8003D1EC 0003A14C CB E1 02 70 */ lfd f31, 0x270(r1)
/* 8003D1F0 0003A150 83 E1 02 6C */ lwz r31, 0x26c(r1)
/* 8003D1F4 0003A154 83 C1 02 68 */ lwz r30, 0x268(r1)
/* 8003D1F8 0003A158 83 A1 02 64 */ lwz r29, 0x264(r1)
/* 8003D1FC 0003A15C 7C 08 03 A6 */ mtlr r0
/* 8003D200 0003A160 38 21 02 80 */ addi r1, r1, 0x280
/* 8003D204 0003A164 4E 80 00 20 */ blr
.global UpdateGunIdle__10CPlayerGunFbffR13CStateManager
UpdateGunIdle__10CPlayerGunFbffR13CStateManager:
/* 8003D208 0003A168 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8003D20C 0003A16C 7C 08 02 A6 */ mflr r0
/* 8003D210 0003A170 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 8003D214 0003A174 DB E1 00 90 */ stfd f31, 0x90(r1)
/* 8003D218 0003A178 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0
/* 8003D21C 0003A17C DB C1 00 80 */ stfd f30, 0x80(r1)
/* 8003D220 0003A180 F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0
/* 8003D224 0003A184 BE 21 00 44 */ stmw r17, 0x44(r1)
/* 8003D228 0003A188 7C BE 2B 78 */ mr r30, r5
/* 8003D22C 0003A18C FF C0 08 90 */ fmr f30, f1
/* 8003D230 0003A190 83 65 08 4C */ lwz r27, 0x84c(r5)
/* 8003D234 0003A194 FF E0 10 90 */ fmr f31, f2
/* 8003D238 0003A198 7C 7C 1B 78 */ mr r28, r3
/* 8003D23C 0003A19C 7C 9D 23 78 */ mr r29, r4
/* 8003D240 0003A1A0 88 1B 03 DC */ lbz r0, 0x3dc(r27)
/* 8003D244 0003A1A4 28 00 00 00 */ cmplwi r0, 0
/* 8003D248 0003A1A8 41 82 00 EC */ beq lbl_8003D334
/* 8003D24C 0003A1AC 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 8003D250 0003A1B0 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 8003D254 0003A1B4 40 82 00 E0 */ bne lbl_8003D334
/* 8003D258 0003A1B8 80 7C 07 40 */ lwz r3, 0x740(r28)
/* 8003D25C 0003A1BC 88 03 03 B2 */ lbz r0, 0x3b2(r3)
/* 8003D260 0003A1C0 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 8003D264 0003A1C4 40 82 00 D0 */ bne lbl_8003D334
/* 8003D268 0003A1C8 80 1C 03 A4 */ lwz r0, 0x3a4(r28)
/* 8003D26C 0003A1CC 2C 00 00 03 */ cmpwi r0, 3
/* 8003D270 0003A1D0 41 82 00 C4 */ beq lbl_8003D334
/* 8003D274 0003A1D4 80 1B 04 98 */ lwz r0, 0x498(r27)
/* 8003D278 0003A1D8 2C 00 00 02 */ cmpwi r0, 2
/* 8003D27C 0003A1DC 40 82 00 B8 */ bne lbl_8003D334
/* 8003D280 0003A1E0 88 7C 08 34 */ lbz r3, 0x834(r28)
/* 8003D284 0003A1E4 54 60 FF FF */ rlwinm. r0, r3, 0x1f, 0x1f, 0x1f
/* 8003D288 0003A1E8 40 82 00 AC */ bne lbl_8003D334
/* 8003D28C 0003A1EC 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 8003D290 0003A1F0 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 8003D294 0003A1F4 2C 00 00 08 */ cmpwi r0, 8
/* 8003D298 0003A1F8 41 82 06 7C */ beq lbl_8003D914
/* 8003D29C 0003A1FC 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8003D2A0 0003A200 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 8003D2A4 0003A204 28 00 00 01 */ cmplwi r0, 1
/* 8003D2A8 0003A208 41 82 00 68 */ beq lbl_8003D310
/* 8003D2AC 0003A20C 54 60 DF FF */ rlwinm. r0, r3, 0x1b, 0x1f, 0x1f
/* 8003D2B0 0003A210 40 82 00 60 */ bne lbl_8003D310
/* 8003D2B4 0003A214 C0 3C 03 88 */ lfs f1, 0x388(r28)
/* 8003D2B8 0003A218 C0 02 84 D8 */ lfs f0, lbl_805AA1F8@sda21(r2)
/* 8003D2BC 0003A21C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003D2C0 0003A220 40 80 00 0C */ bge lbl_8003D2CC
/* 8003D2C4 0003A224 EC 01 F8 2A */ fadds f0, f1, f31
/* 8003D2C8 0003A228 D0 1C 03 88 */ stfs f0, 0x388(r28)
lbl_8003D2CC:
/* 8003D2CC 0003A22C C0 3C 03 88 */ lfs f1, 0x388(r28)
/* 8003D2D0 0003A230 C0 02 84 D8 */ lfs f0, lbl_805AA1F8@sda21(r2)
/* 8003D2D4 0003A234 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003D2D8 0003A238 4C 41 13 82 */ cror 2, 1, 2
/* 8003D2DC 0003A23C 40 82 06 38 */ bne lbl_8003D914
/* 8003D2E0 0003A240 80 7C 07 40 */ lwz r3, 0x740(r28)
/* 8003D2E4 0003A244 88 03 03 B2 */ lbz r0, 0x3b2(r3)
/* 8003D2E8 0003A248 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 8003D2EC 0003A24C 40 82 06 28 */ bne lbl_8003D914
/* 8003D2F0 0003A250 7F 83 E3 78 */ mr r3, r28
/* 8003D2F4 0003A254 7F C4 F3 78 */ mr r4, r30
/* 8003D2F8 0003A258 4B FF EB C5 */ bl EnterFreeLook__10CPlayerGunFR13CStateManager
/* 8003D2FC 0003A25C 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8003D300 0003A260 38 60 00 01 */ li r3, 1
/* 8003D304 0003A264 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
/* 8003D308 0003A268 98 1C 08 33 */ stb r0, 0x833(r28)
/* 8003D30C 0003A26C 48 00 06 08 */ b lbl_8003D914
lbl_8003D310:
/* 8003D310 0003A270 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003D314 0003A274 D0 1C 03 88 */ stfs f0, 0x388(r28)
/* 8003D318 0003A278 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003D31C 0003A27C 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 8003D320 0003A280 41 82 05 F4 */ beq lbl_8003D914
/* 8003D324 0003A284 7F 83 E3 78 */ mr r3, r28
/* 8003D328 0003A288 7F C4 F3 78 */ mr r4, r30
/* 8003D32C 0003A28C 48 00 06 0D */ bl ResetIdle__10CPlayerGunFR13CStateManager
/* 8003D330 0003A290 48 00 05 E4 */ b lbl_8003D914
lbl_8003D334:
/* 8003D334 0003A294 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8003D338 0003A298 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8003D33C 0003A29C 41 82 00 4C */ beq lbl_8003D388
/* 8003D340 0003A2A0 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 8003D344 0003A2A4 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 8003D348 0003A2A8 2C 00 00 10 */ cmpwi r0, 0x10
/* 8003D34C 0003A2AC 41 82 00 2C */ beq lbl_8003D378
/* 8003D350 0003A2B0 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003D354 0003A2B4 7F C4 F3 78 */ mr r4, r30
/* 8003D358 0003A2B8 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 8003D35C 0003A2BC 54 05 FF FE */ rlwinm r5, r0, 0x1f, 0x1f, 0x1f
/* 8003D360 0003A2C0 48 19 BD 21 */ bl ReturnToDefault__10CGunMotionFR13CStateManager
/* 8003D364 0003A2C4 80 7C 07 40 */ lwz r3, 0x740(r28)
/* 8003D368 0003A2C8 7F C4 F3 78 */ mr r4, r30
/* 8003D36C 0003A2CC C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 8003D370 0003A2D0 38 A0 00 00 */ li r5, 0
/* 8003D374 0003A2D4 48 0E 0B B1 */ bl ReturnToDefault__11CGrappleArmFR13CStateManagerf
lbl_8003D378:
/* 8003D378 0003A2D8 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8003D37C 0003A2DC 38 60 00 00 */ li r3, 0
/* 8003D380 0003A2E0 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
/* 8003D384 0003A2E4 98 1C 08 33 */ stb r0, 0x833(r28)
lbl_8003D388:
/* 8003D388 0003A2E8 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 8003D38C 0003A2EC C0 02 84 DC */ lfs f0, lbl_805AA1FC@sda21(r2)
/* 8003D390 0003A2F0 D0 3C 03 88 */ stfs f1, 0x388(r28)
/* 8003D394 0003A2F4 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 8003D398 0003A2F8 80 7E 08 B8 */ lwz r3, 0x8b8(r30)
/* 8003D39C 0003A2FC 80 63 00 00 */ lwz r3, 0(r3)
/* 8003D3A0 0003A300 7F 40 00 26 */ mfcr r26
/* 8003D3A4 0003A304 80 9C 02 F4 */ lwz r4, 0x2f4(r28)
/* 8003D3A8 0003A308 3B 20 00 01 */ li r25, 1
/* 8003D3AC 0003A30C 80 1B 02 F8 */ lwz r0, 0x2f8(r27)
/* 8003D3B0 0003A310 7F 38 CB 78 */ mr r24, r25
/* 8003D3B4 0003A314 54 85 07 BE */ clrlwi r5, r4, 0x1e
/* 8003D3B8 0003A318 7F 37 CB 78 */ mr r23, r25
/* 8003D3BC 0003A31C 7C 85 00 D0 */ neg r4, r5
/* 8003D3C0 0003A320 2C 00 00 01 */ cmpwi r0, 1
/* 8003D3C4 0003A324 7C 92 2B 78 */ or r18, r4, r5
/* 8003D3C8 0003A328 7F 36 CB 78 */ mr r22, r25
/* 8003D3CC 0003A32C 7F 35 CB 78 */ mr r21, r25
/* 8003D3D0 0003A330 7F 34 CB 78 */ mr r20, r25
/* 8003D3D4 0003A334 7F 33 CB 78 */ mr r19, r25
/* 8003D3D8 0003A338 7F 20 CB 78 */ mr r0, r25
/* 8003D3DC 0003A33C 7F 24 CB 78 */ mr r4, r25
/* 8003D3E0 0003A340 7F 25 CB 78 */ mr r5, r25
/* 8003D3E4 0003A344 7F 26 CB 78 */ mr r6, r25
/* 8003D3E8 0003A348 7F 27 CB 78 */ mr r7, r25
/* 8003D3EC 0003A34C 7F 28 CB 78 */ mr r8, r25
/* 8003D3F0 0003A350 7F 29 CB 78 */ mr r9, r25
/* 8003D3F4 0003A354 7F 2A CB 78 */ mr r10, r25
/* 8003D3F8 0003A358 7F 2B CB 78 */ mr r11, r25
/* 8003D3FC 0003A35C 7F 2C CB 78 */ mr r12, r25
/* 8003D400 0003A360 7F 31 CB 78 */ mr r17, r25
/* 8003D404 0003A364 57 5F 17 FE */ rlwinm r31, r26, 2, 0x1f, 0x1f
/* 8003D408 0003A368 56 5A 0F FE */ srwi r26, r18, 0x1f
/* 8003D40C 0003A36C 41 82 00 28 */ beq lbl_8003D434
/* 8003D410 0003A370 82 5B 02 B0 */ lwz r18, 0x2b0(r27)
/* 8003D414 0003A374 2C 12 00 02 */ cmpwi r18, 2
/* 8003D418 0003A378 40 82 00 0C */ bne lbl_8003D424
/* 8003D41C 0003A37C 82 5B 02 AC */ lwz r18, 0x2ac(r27)
/* 8003D420 0003A380 48 00 00 08 */ b lbl_8003D428
lbl_8003D424:
/* 8003D424 0003A384 3A 40 00 04 */ li r18, 4
lbl_8003D428:
/* 8003D428 0003A388 2C 12 00 04 */ cmpwi r18, 4
/* 8003D42C 0003A38C 41 82 00 08 */ beq lbl_8003D434
/* 8003D430 0003A390 3A 20 00 00 */ li r17, 0
lbl_8003D434:
/* 8003D434 0003A394 56 32 06 3F */ clrlwi. r18, r17, 0x18
/* 8003D438 0003A398 40 82 00 14 */ bne lbl_8003D44C
/* 8003D43C 0003A39C 80 63 00 14 */ lwz r3, 0x14(r3)
/* 8003D440 0003A3A0 2C 03 00 02 */ cmpwi r3, 2
/* 8003D444 0003A3A4 41 82 00 08 */ beq lbl_8003D44C
/* 8003D448 0003A3A8 39 80 00 00 */ li r12, 0
lbl_8003D44C:
/* 8003D44C 0003A3AC 55 83 06 3F */ clrlwi. r3, r12, 0x18
/* 8003D450 0003A3B0 40 82 00 10 */ bne lbl_8003D460
/* 8003D454 0003A3B4 28 1A 00 00 */ cmplwi r26, 0
/* 8003D458 0003A3B8 40 82 00 08 */ bne lbl_8003D460
/* 8003D45C 0003A3BC 39 60 00 00 */ li r11, 0
lbl_8003D460:
/* 8003D460 0003A3C0 55 63 06 3F */ clrlwi. r3, r11, 0x18
/* 8003D464 0003A3C4 40 82 00 14 */ bne lbl_8003D478
/* 8003D468 0003A3C8 80 7C 03 2C */ lwz r3, 0x32c(r28)
/* 8003D46C 0003A3CC 2C 03 00 00 */ cmpwi r3, 0
/* 8003D470 0003A3D0 40 82 00 08 */ bne lbl_8003D478
/* 8003D474 0003A3D4 39 40 00 00 */ li r10, 0
lbl_8003D478:
/* 8003D478 0003A3D8 55 43 06 3F */ clrlwi. r3, r10, 0x18
/* 8003D47C 0003A3DC 40 82 00 14 */ bne lbl_8003D490
/* 8003D480 0003A3E0 88 7C 08 32 */ lbz r3, 0x832(r28)
/* 8003D484 0003A3E4 54 63 F7 FF */ rlwinm. r3, r3, 0x1e, 0x1f, 0x1f
/* 8003D488 0003A3E8 40 82 00 08 */ bne lbl_8003D490
/* 8003D48C 0003A3EC 39 20 00 00 */ li r9, 0
lbl_8003D490:
/* 8003D490 0003A3F0 55 23 06 3F */ clrlwi. r3, r9, 0x18
/* 8003D494 0003A3F4 40 82 00 18 */ bne lbl_8003D4AC
/* 8003D498 0003A3F8 80 7C 02 F8 */ lwz r3, 0x2f8(r28)
/* 8003D49C 0003A3FC 54 63 07 38 */ rlwinm r3, r3, 0, 0x1c, 0x1c
/* 8003D4A0 0003A400 2C 03 00 08 */ cmpwi r3, 8
/* 8003D4A4 0003A404 41 82 00 08 */ beq lbl_8003D4AC
/* 8003D4A8 0003A408 39 00 00 00 */ li r8, 0
lbl_8003D4AC:
/* 8003D4AC 0003A40C 55 03 06 3F */ clrlwi. r3, r8, 0x18
/* 8003D4B0 0003A410 40 82 00 18 */ bne lbl_8003D4C8
/* 8003D4B4 0003A414 C0 3C 03 64 */ lfs f1, 0x364(r28)
/* 8003D4B8 0003A418 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003D4BC 0003A41C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003D4C0 0003A420 41 81 00 08 */ bgt lbl_8003D4C8
/* 8003D4C4 0003A424 38 E0 00 00 */ li r7, 0
lbl_8003D4C8:
/* 8003D4C8 0003A428 54 E3 06 3F */ clrlwi. r3, r7, 0x18
/* 8003D4CC 0003A42C 40 82 00 14 */ bne lbl_8003D4E0
/* 8003D4D0 0003A430 80 7B 02 58 */ lwz r3, 0x258(r27)
/* 8003D4D4 0003A434 2C 03 00 00 */ cmpwi r3, 0
/* 8003D4D8 0003A438 40 82 00 08 */ bne lbl_8003D4E0
/* 8003D4DC 0003A43C 38 C0 00 00 */ li r6, 0
lbl_8003D4E0:
/* 8003D4E0 0003A440 54 C3 06 3F */ clrlwi. r3, r6, 0x18
/* 8003D4E4 0003A444 40 82 00 14 */ bne lbl_8003D4F8
/* 8003D4E8 0003A448 88 7B 03 DC */ lbz r3, 0x3dc(r27)
/* 8003D4EC 0003A44C 28 03 00 00 */ cmplwi r3, 0
/* 8003D4F0 0003A450 40 82 00 08 */ bne lbl_8003D4F8
/* 8003D4F4 0003A454 38 A0 00 00 */ li r5, 0
lbl_8003D4F8:
/* 8003D4F8 0003A458 54 A3 06 3F */ clrlwi. r3, r5, 0x18
/* 8003D4FC 0003A45C 40 82 00 14 */ bne lbl_8003D510
/* 8003D500 0003A460 88 7B 03 DE */ lbz r3, 0x3de(r27)
/* 8003D504 0003A464 28 03 00 00 */ cmplwi r3, 0
/* 8003D508 0003A468 40 82 00 08 */ bne lbl_8003D510
/* 8003D50C 0003A46C 38 80 00 00 */ li r4, 0
lbl_8003D510:
/* 8003D510 0003A470 54 83 06 3F */ clrlwi. r3, r4, 0x18
/* 8003D514 0003A474 40 82 00 14 */ bne lbl_8003D528
/* 8003D518 0003A478 80 7B 03 04 */ lwz r3, 0x304(r27)
/* 8003D51C 0003A47C 2C 03 00 00 */ cmpwi r3, 0
/* 8003D520 0003A480 40 82 00 08 */ bne lbl_8003D528
/* 8003D524 0003A484 38 00 00 00 */ li r0, 0
lbl_8003D528:
/* 8003D528 0003A488 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 8003D52C 0003A48C 40 82 00 30 */ bne lbl_8003D55C
/* 8003D530 0003A490 7F 64 DB 78 */ mr r4, r27
/* 8003D534 0003A494 38 61 00 28 */ addi r3, r1, 0x28
/* 8003D538 0003A498 48 0D D6 6D */ bl GetAngularVelocityOR__13CPhysicsActorCFv
/* 8003D53C 0003A49C 38 61 00 28 */ addi r3, r1, 0x28
/* 8003D540 0003A4A0 4B FD DF D1 */ bl GetAngle__10CAxisAngleCFv
/* 8003D544 0003A4A4 FC 20 0A 10 */ fabs f1, f1
/* 8003D548 0003A4A8 C0 02 84 90 */ lfs f0, lbl_805AA1B0@sda21(r2)
/* 8003D54C 0003A4AC FC 20 08 18 */ frsp f1, f1
/* 8003D550 0003A4B0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003D554 0003A4B4 41 81 00 08 */ bgt lbl_8003D55C
/* 8003D558 0003A4B8 3A 60 00 00 */ li r19, 0
lbl_8003D55C:
/* 8003D55C 0003A4BC 56 60 06 3F */ clrlwi. r0, r19, 0x18
/* 8003D560 0003A4C0 40 82 00 10 */ bne lbl_8003D570
/* 8003D564 0003A4C4 28 1F 00 00 */ cmplwi r31, 0
/* 8003D568 0003A4C8 40 82 00 08 */ bne lbl_8003D570
/* 8003D56C 0003A4CC 3A 80 00 00 */ li r20, 0
lbl_8003D570:
/* 8003D570 0003A4D0 56 80 06 3F */ clrlwi. r0, r20, 0x18
/* 8003D574 0003A4D4 40 82 00 18 */ bne lbl_8003D58C
/* 8003D578 0003A4D8 80 7E 08 70 */ lwz r3, 0x870(r30)
/* 8003D57C 0003A4DC 4B FC D3 85 */ bl IsInCinematicCamera__14CCameraManagerCFv
/* 8003D580 0003A4E0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003D584 0003A4E4 40 82 00 08 */ bne lbl_8003D58C
/* 8003D588 0003A4E8 3A A0 00 00 */ li r21, 0
lbl_8003D58C:
/* 8003D58C 0003A4EC 56 A0 06 3F */ clrlwi. r0, r21, 0x18
/* 8003D590 0003A4F0 40 82 00 14 */ bne lbl_8003D5A4
/* 8003D594 0003A4F4 80 1B 04 98 */ lwz r0, 0x498(r27)
/* 8003D598 0003A4F8 2C 00 00 02 */ cmpwi r0, 2
/* 8003D59C 0003A4FC 40 82 00 08 */ bne lbl_8003D5A4
/* 8003D5A0 0003A500 3A C0 00 00 */ li r22, 0
lbl_8003D5A4:
/* 8003D5A4 0003A504 56 C0 06 3F */ clrlwi. r0, r22, 0x18
/* 8003D5A8 0003A508 40 82 00 14 */ bne lbl_8003D5BC
/* 8003D5AC 0003A50C 80 1B 03 B8 */ lwz r0, 0x3b8(r27)
/* 8003D5B0 0003A510 2C 00 00 00 */ cmpwi r0, 0
/* 8003D5B4 0003A514 40 82 00 08 */ bne lbl_8003D5BC
/* 8003D5B8 0003A518 3A E0 00 00 */ li r23, 0
lbl_8003D5BC:
/* 8003D5BC 0003A51C 56 E0 06 3F */ clrlwi. r0, r23, 0x18
/* 8003D5C0 0003A520 40 82 00 14 */ bne lbl_8003D5D4
/* 8003D5C4 0003A524 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003D5C8 0003A528 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
/* 8003D5CC 0003A52C 40 82 00 08 */ bne lbl_8003D5D4
/* 8003D5D0 0003A530 3B 00 00 00 */ li r24, 0
lbl_8003D5D4:
/* 8003D5D4 0003A534 57 00 06 3F */ clrlwi. r0, r24, 0x18
/* 8003D5D8 0003A538 40 82 00 14 */ bne lbl_8003D5EC
/* 8003D5DC 0003A53C 88 1C 08 35 */ lbz r0, 0x835(r28)
/* 8003D5E0 0003A540 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8003D5E4 0003A544 40 82 00 08 */ bne lbl_8003D5EC
/* 8003D5E8 0003A548 3B 20 00 00 */ li r25, 0
lbl_8003D5EC:
/* 8003D5EC 0003A54C 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8003D5F0 0003A550 53 20 3E 30 */ rlwimi r0, r25, 7, 0x18, 0x18
/* 8003D5F4 0003A554 98 1C 08 33 */ stb r0, 0x833(r28)
/* 8003D5F8 0003A558 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8003D5FC 0003A55C 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8003D600 0003A560 41 82 01 78 */ beq lbl_8003D778
/* 8003D604 0003A564 88 7C 08 34 */ lbz r3, 0x834(r28)
/* 8003D608 0003A568 54 60 FF FF */ rlwinm. r0, r3, 0x1f, 0x1f, 0x1f
/* 8003D60C 0003A56C 40 82 00 C4 */ bne lbl_8003D6D0
/* 8003D610 0003A570 28 1F 00 00 */ cmplwi r31, 0
/* 8003D614 0003A574 3A 60 00 00 */ li r19, 0
/* 8003D618 0003A578 41 82 00 10 */ beq lbl_8003D628
/* 8003D61C 0003A57C 28 1A 00 00 */ cmplwi r26, 0
/* 8003D620 0003A580 40 82 00 08 */ bne lbl_8003D628
/* 8003D624 0003A584 3A 60 00 01 */ li r19, 1
lbl_8003D628:
/* 8003D628 0003A588 56 60 06 3F */ clrlwi. r0, r19, 0x18
/* 8003D62C 0003A58C 41 82 00 80 */ beq lbl_8003D6AC
/* 8003D630 0003A590 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8003D634 0003A594 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 8003D638 0003A598 D0 1C 03 70 */ stfs f0, 0x370(r28)
/* 8003D63C 0003A59C D0 3C 03 74 */ stfs f1, 0x374(r28)
/* 8003D640 0003A5A0 C0 1C 03 64 */ lfs f0, 0x364(r28)
/* 8003D644 0003A5A4 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8003D648 0003A5A8 4C 40 13 82 */ cror 2, 0, 2
/* 8003D64C 0003A5AC 40 82 00 48 */ bne lbl_8003D694
/* 8003D650 0003A5B0 C0 1C 03 68 */ lfs f0, 0x368(r28)
/* 8003D654 0003A5B4 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8003D658 0003A5B8 4C 40 13 82 */ cror 2, 0, 2
/* 8003D65C 0003A5BC 40 82 00 38 */ bne lbl_8003D694
/* 8003D660 0003A5C0 C0 02 84 E0 */ lfs f0, lbl_805AA200@sda21(r2)
/* 8003D664 0003A5C4 7F C5 F3 78 */ mr r5, r30
/* 8003D668 0003A5C8 38 80 00 00 */ li r4, 0
/* 8003D66C 0003A5CC 38 C0 00 00 */ li r6, 0
/* 8003D670 0003A5D0 D0 1C 03 68 */ stfs f0, 0x368(r28)
/* 8003D674 0003A5D4 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 8003D678 0003A5D8 48 19 BB 41 */ bl PlayPasAnim__10CGunMotionFQ28SamusGun15EAnimationStateR13CStateManagerfb
/* 8003D67C 0003A5DC 38 00 00 01 */ li r0, 1
/* 8003D680 0003A5E0 7F C5 F3 78 */ mr r5, r30
/* 8003D684 0003A5E4 90 1C 03 24 */ stw r0, 0x324(r28)
/* 8003D688 0003A5E8 38 7C 05 50 */ addi r3, r28, 0x550
/* 8003D68C 0003A5EC 38 80 00 00 */ li r4, 0
/* 8003D690 0003A5F0 48 0A C3 C5 */ bl SetState__16CPlayerCameraBobFQ216CPlayerCameraBob15ECameraBobStateR13CStateManager
lbl_8003D694:
/* 8003D694 0003A5F4 C0 1C 03 68 */ lfs f0, 0x368(r28)
/* 8003D698 0003A5F8 EC 00 F8 28 */ fsubs f0, f0, f31
/* 8003D69C 0003A5FC D0 1C 03 68 */ stfs f0, 0x368(r28)
/* 8003D6A0 0003A600 C0 1C 03 60 */ lfs f0, 0x360(r28)
/* 8003D6A4 0003A604 EC 00 F8 2A */ fadds f0, f0, f31
/* 8003D6A8 0003A608 D0 1C 03 60 */ stfs f0, 0x360(r28)
lbl_8003D6AC:
/* 8003D6AC 0003A60C 56 60 06 3F */ clrlwi. r0, r19, 0x18
/* 8003D6B0 0003A610 41 82 00 10 */ beq lbl_8003D6C0
/* 8003D6B4 0003A614 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003D6B8 0003A618 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 8003D6BC 0003A61C 41 82 02 48 */ beq lbl_8003D904
lbl_8003D6C0:
/* 8003D6C0 0003A620 7F 83 E3 78 */ mr r3, r28
/* 8003D6C4 0003A624 7F C4 F3 78 */ mr r4, r30
/* 8003D6C8 0003A628 48 00 02 71 */ bl ResetIdle__10CPlayerGunFR13CStateManager
/* 8003D6CC 0003A62C 48 00 02 38 */ b lbl_8003D904
lbl_8003D6D0:
/* 8003D6D0 0003A630 C0 3C 03 94 */ lfs f1, 0x394(r28)
/* 8003D6D4 0003A634 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003D6D8 0003A638 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003D6DC 0003A63C 40 81 00 10 */ ble lbl_8003D6EC
/* 8003D6E0 0003A640 EC 01 F8 28 */ fsubs f0, f1, f31
/* 8003D6E4 0003A644 D0 1C 03 94 */ stfs f0, 0x394(r28)
/* 8003D6E8 0003A648 48 00 02 1C */ b lbl_8003D904
lbl_8003D6EC:
/* 8003D6EC 0003A64C 54 60 07 FE */ clrlwi r0, r3, 0x1f
/* 8003D6F0 0003A650 28 00 00 01 */ cmplwi r0, 1
/* 8003D6F4 0003A654 41 82 00 28 */ beq lbl_8003D71C
/* 8003D6F8 0003A658 D0 1C 03 94 */ stfs f0, 0x394(r28)
/* 8003D6FC 0003A65C 38 60 00 01 */ li r3, 1
/* 8003D700 0003A660 38 80 00 01 */ li r4, 1
/* 8003D704 0003A664 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003D708 0003A668 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
/* 8003D70C 0003A66C 98 1C 08 34 */ stb r0, 0x834(r28)
/* 8003D710 0003A670 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 8003D714 0003A674 48 19 B8 D5 */ bl BasePosition__10CGunMotionFb
/* 8003D718 0003A678 48 00 01 EC */ b lbl_8003D904
lbl_8003D71C:
/* 8003D71C 0003A67C 3C 80 80 3D */ lis r4, lbl_803CCEB0@ha
/* 8003D720 0003A680 38 61 00 18 */ addi r3, r1, 0x18
/* 8003D724 0003A684 38 84 CE B0 */ addi r4, r4, lbl_803CCEB0@l
/* 8003D728 0003A688 38 84 00 1E */ addi r4, r4, 0x1e
/* 8003D72C 0003A68C 4B FC 75 8D */ bl string_l__4rstlFPCc
/* 8003D730 0003A690 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 8003D734 0003A694 38 81 00 18 */ addi r4, r1, 0x18
/* 8003D738 0003A698 C0 22 84 E4 */ lfs f1, lbl_805AA204@sda21(r2)
/* 8003D73C 0003A69C 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8003D740 0003A6A0 4B FE EC AD */ bl "IsAnimTimeRemaining__9CAnimDataCFfRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8003D744 0003A6A4 7C 73 1B 78 */ mr r19, r3
/* 8003D748 0003A6A8 38 61 00 18 */ addi r3, r1, 0x18
/* 8003D74C 0003A6AC 48 30 03 95 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 8003D750 0003A6B0 56 60 06 3F */ clrlwi. r0, r19, 0x18
/* 8003D754 0003A6B4 40 82 01 B0 */ bne lbl_8003D904
/* 8003D758 0003A6B8 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003D75C 0003A6BC 38 60 00 00 */ li r3, 0
/* 8003D760 0003A6C0 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
/* 8003D764 0003A6C4 98 1C 08 34 */ stb r0, 0x834(r28)
/* 8003D768 0003A6C8 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003D76C 0003A6CC 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
/* 8003D770 0003A6D0 98 1C 08 34 */ stb r0, 0x834(r28)
/* 8003D774 0003A6D4 48 00 01 90 */ b lbl_8003D904
lbl_8003D778:
/* 8003D778 0003A6D8 C0 02 84 DC */ lfs f0, lbl_805AA1FC@sda21(r2)
/* 8003D77C 0003A6DC 38 7C 03 A4 */ addi r3, r28, 0x3a4
/* 8003D780 0003A6E0 80 9C 02 EC */ lwz r4, 0x2ec(r28)
/* 8003D784 0003A6E4 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 8003D788 0003A6E8 7C 00 00 26 */ mfcr r0
/* 8003D78C 0003A6EC FC 20 F8 90 */ fmr f1, f31
/* 8003D790 0003A6F0 7F A6 EB 78 */ mr r6, r29
/* 8003D794 0003A6F4 7F C7 F3 78 */ mr r7, r30
/* 8003D798 0003A6F8 54 05 17 FE */ rlwinm r5, r0, 2, 0x1f, 0x1f
/* 8003D79C 0003A6FC 48 11 6F CD */ bl Update__7CFidgetFibbfR13CStateManager
/* 8003D7A0 0003A700 2C 03 00 06 */ cmpwi r3, 6
/* 8003D7A4 0003A704 41 82 01 60 */ beq lbl_8003D904
/* 8003D7A8 0003A708 40 80 00 1C */ bge lbl_8003D7C4
/* 8003D7AC 0003A70C 2C 03 00 00 */ cmpwi r3, 0
/* 8003D7B0 0003A710 41 82 00 20 */ beq lbl_8003D7D0
/* 8003D7B4 0003A714 41 80 01 50 */ blt lbl_8003D904
/* 8003D7B8 0003A718 2C 03 00 04 */ cmpwi r3, 4
/* 8003D7BC 0003A71C 40 80 00 A4 */ bge lbl_8003D860
/* 8003D7C0 0003A720 48 00 00 50 */ b lbl_8003D810
lbl_8003D7C4:
/* 8003D7C4 0003A724 2C 03 00 08 */ cmpwi r3, 8
/* 8003D7C8 0003A728 40 80 01 3C */ bge lbl_8003D904
/* 8003D7CC 0003A72C 48 00 00 74 */ b lbl_8003D840
lbl_8003D7D0:
/* 8003D7D0 0003A730 80 1C 03 24 */ lwz r0, 0x324(r28)
/* 8003D7D4 0003A734 2C 00 00 02 */ cmpwi r0, 2
/* 8003D7D8 0003A738 41 82 00 24 */ beq lbl_8003D7FC
/* 8003D7DC 0003A73C 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 8003D7E0 0003A740 7F C5 F3 78 */ mr r5, r30
/* 8003D7E4 0003A744 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 8003D7E8 0003A748 38 80 00 05 */ li r4, 5
/* 8003D7EC 0003A74C 38 C0 00 00 */ li r6, 0
/* 8003D7F0 0003A750 48 19 B9 C9 */ bl PlayPasAnim__10CGunMotionFQ28SamusGun15EAnimationStateR13CStateManagerfb
/* 8003D7F4 0003A754 38 00 00 02 */ li r0, 2
/* 8003D7F8 0003A758 90 1C 03 24 */ stw r0, 0x324(r28)
lbl_8003D7FC:
/* 8003D7FC 0003A75C 7F C5 F3 78 */ mr r5, r30
/* 8003D800 0003A760 38 7C 05 50 */ addi r3, r28, 0x550
/* 8003D804 0003A764 38 80 00 03 */ li r4, 3
/* 8003D808 0003A768 48 0A C2 4D */ bl SetState__16CPlayerCameraBobFQ216CPlayerCameraBob15ECameraBobStateR13CStateManager
/* 8003D80C 0003A76C 48 00 00 F8 */ b lbl_8003D904
lbl_8003D810:
/* 8003D810 0003A770 80 1C 03 24 */ lwz r0, 0x324(r28)
/* 8003D814 0003A774 2C 00 00 00 */ cmpwi r0, 0
/* 8003D818 0003A778 41 82 00 18 */ beq lbl_8003D830
/* 8003D81C 0003A77C 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 8003D820 0003A780 38 80 00 00 */ li r4, 0
/* 8003D824 0003A784 48 19 B7 C5 */ bl BasePosition__10CGunMotionFb
/* 8003D828 0003A788 38 00 00 00 */ li r0, 0
/* 8003D82C 0003A78C 90 1C 03 24 */ stw r0, 0x324(r28)
lbl_8003D830:
/* 8003D830 0003A790 7F 83 E3 78 */ mr r3, r28
/* 8003D834 0003A794 7F C4 F3 78 */ mr r4, r30
/* 8003D838 0003A798 4B FF D5 55 */ bl AsyncLoadFidget__10CPlayerGunFR13CStateManager
/* 8003D83C 0003A79C 48 00 00 C8 */ b lbl_8003D904
lbl_8003D840:
/* 8003D840 0003A7A0 7F 83 E3 78 */ mr r3, r28
/* 8003D844 0003A7A4 4B FF D3 F9 */ bl IsFidgetLoaded__10CPlayerGunFv
/* 8003D848 0003A7A8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003D84C 0003A7AC 41 82 00 B8 */ beq lbl_8003D904
/* 8003D850 0003A7B0 7F 83 E3 78 */ mr r3, r28
/* 8003D854 0003A7B4 7F C4 F3 78 */ mr r4, r30
/* 8003D858 0003A7B8 4B FF E5 61 */ bl EnterFidget__10CPlayerGunFR13CStateManager
/* 8003D85C 0003A7BC 48 00 00 A8 */ b lbl_8003D904
lbl_8003D860:
/* 8003D860 0003A7C0 7F C5 F3 78 */ mr r5, r30
/* 8003D864 0003A7C4 38 7C 05 50 */ addi r3, r28, 0x550
/* 8003D868 0003A7C8 38 80 00 00 */ li r4, 0
/* 8003D86C 0003A7CC 48 0A C1 E9 */ bl SetState__16CPlayerCameraBobFQ216CPlayerCameraBob15ECameraBobStateR13CStateManager
/* 8003D870 0003A7D0 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8003D874 0003A7D4 38 60 00 00 */ li r3, 0
/* 8003D878 0003A7D8 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8003D87C 0003A7DC 3A 20 00 00 */ li r17, 0
/* 8003D880 0003A7E0 98 1C 08 33 */ stb r0, 0x833(r28)
/* 8003D884 0003A7E4 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003D888 0003A7E8 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8003D88C 0003A7EC 41 82 00 14 */ beq lbl_8003D8A0
/* 8003D890 0003A7F0 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 8003D894 0003A7F4 88 03 00 B8 */ lbz r0, 0xb8(r3)
/* 8003D898 0003A7F8 54 03 CF FE */ rlwinm r3, r0, 0x19, 0x1f, 0x1f
/* 8003D89C 0003A7FC 48 00 00 30 */ b lbl_8003D8CC
lbl_8003D8A0:
/* 8003D8A0 0003A800 3C 80 80 3D */ lis r4, lbl_803CCEB0@ha
/* 8003D8A4 0003A804 38 61 00 08 */ addi r3, r1, 8
/* 8003D8A8 0003A808 38 84 CE B0 */ addi r4, r4, lbl_803CCEB0@l
/* 8003D8AC 0003A80C 38 84 00 1E */ addi r4, r4, 0x1e
/* 8003D8B0 0003A810 4B FC 74 09 */ bl string_l__4rstlFPCc
/* 8003D8B4 0003A814 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 8003D8B8 0003A818 38 81 00 08 */ addi r4, r1, 8
/* 8003D8BC 0003A81C C0 22 84 E4 */ lfs f1, lbl_805AA204@sda21(r2)
/* 8003D8C0 0003A820 3A 20 00 01 */ li r17, 1
/* 8003D8C4 0003A824 80 63 00 20 */ lwz r3, 0x20(r3)
/* 8003D8C8 0003A828 4B FE EB 25 */ bl "IsAnimTimeRemaining__9CAnimDataCFfRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
lbl_8003D8CC:
/* 8003D8CC 0003A82C 88 9C 08 34 */ lbz r4, 0x834(r28)
/* 8003D8D0 0003A830 50 64 2E B4 */ rlwimi r4, r3, 5, 0x1a, 0x1a
/* 8003D8D4 0003A834 7E 20 07 75 */ extsb. r0, r17
/* 8003D8D8 0003A838 98 9C 08 34 */ stb r4, 0x834(r28)
/* 8003D8DC 0003A83C 41 82 00 0C */ beq lbl_8003D8E8
/* 8003D8E0 0003A840 38 61 00 08 */ addi r3, r1, 8
/* 8003D8E4 0003A844 48 30 01 FD */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_8003D8E8:
/* 8003D8E8 0003A848 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 8003D8EC 0003A84C 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 8003D8F0 0003A850 40 82 00 14 */ bne lbl_8003D904
/* 8003D8F4 0003A854 38 7C 03 A4 */ addi r3, r28, 0x3a4
/* 8003D8F8 0003A858 48 11 72 61 */ bl ResetMinor__7CFidgetFv
/* 8003D8FC 0003A85C 7F 83 E3 78 */ mr r3, r28
/* 8003D900 0003A860 4B FF D1 E5 */ bl ReturnToRestPose__10CPlayerGunFv
lbl_8003D904:
/* 8003D904 0003A864 FC 20 F8 90 */ fmr f1, f31
/* 8003D908 0003A868 7F C4 F3 78 */ mr r4, r30
/* 8003D90C 0003A86C 38 7C 05 50 */ addi r3, r28, 0x550
/* 8003D910 0003A870 48 0A C5 DD */ bl Update__16CPlayerCameraBobFfR13CStateManager
lbl_8003D914:
/* 8003D914 0003A874 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0
/* 8003D918 0003A878 CB E1 00 90 */ lfd f31, 0x90(r1)
/* 8003D91C 0003A87C E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0
/* 8003D920 0003A880 CB C1 00 80 */ lfd f30, 0x80(r1)
/* 8003D924 0003A884 BA 21 00 44 */ lmw r17, 0x44(r1)
/* 8003D928 0003A888 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 8003D92C 0003A88C 7C 08 03 A6 */ mtlr r0
/* 8003D930 0003A890 38 21 00 A0 */ addi r1, r1, 0xa0
/* 8003D934 0003A894 4E 80 00 20 */ blr
.global ResetIdle__10CPlayerGunFR13CStateManager
ResetIdle__10CPlayerGunFR13CStateManager:
/* 8003D938 0003A898 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003D93C 0003A89C 7C 08 02 A6 */ mflr r0
/* 8003D940 0003A8A0 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8003D944 0003A8A4 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003D948 0003A8A8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003D94C 0003A8AC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003D950 0003A8B0 7C 9E 23 78 */ mr r30, r4
/* 8003D954 0003A8B4 7F C5 F3 78 */ mr r5, r30
/* 8003D958 0003A8B8 38 80 00 04 */ li r4, 4
/* 8003D95C 0003A8BC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8003D960 0003A8C0 7C 7D 1B 78 */ mr r29, r3
/* 8003D964 0003A8C4 83 E3 03 A4 */ lwz r31, 0x3a4(r3)
/* 8003D968 0003A8C8 38 7D 05 50 */ addi r3, r29, 0x550
/* 8003D96C 0003A8CC D0 1D 03 70 */ stfs f0, 0x370(r29)
/* 8003D970 0003A8D0 48 0A C0 E5 */ bl SetState__16CPlayerCameraBobFQ216CPlayerCameraBob15ECameraBobStateR13CStateManager
/* 8003D974 0003A8D4 2C 1F 00 00 */ cmpwi r31, 0
/* 8003D978 0003A8D8 41 82 00 24 */ beq lbl_8003D99C
/* 8003D97C 0003A8DC 2C 1F 00 07 */ cmpwi r31, 7
/* 8003D980 0003A8E0 40 82 00 0C */ bne lbl_8003D98C
/* 8003D984 0003A8E4 7F A3 EB 78 */ mr r3, r29
/* 8003D988 0003A8E8 4B FF D3 79 */ bl UnLoadFidget__10CPlayerGunFv
lbl_8003D98C:
/* 8003D98C 0003A8EC 7F A3 EB 78 */ mr r3, r29
/* 8003D990 0003A8F0 7F C4 F3 78 */ mr r4, r30
/* 8003D994 0003A8F4 38 A0 00 01 */ li r5, 1
/* 8003D998 0003A8F8 4B FF E2 A1 */ bl ReturnArmAndGunToDefault__10CPlayerGunFR13CStateManagerb
lbl_8003D99C:
/* 8003D99C 0003A8FC 38 7D 03 A4 */ addi r3, r29, 0x3a4
/* 8003D9A0 0003A900 48 11 71 C5 */ bl ResetAll__7CFidgetFv
/* 8003D9A4 0003A904 7F A3 EB 78 */ mr r3, r29
/* 8003D9A8 0003A908 4B FF D1 3D */ bl ReturnToRestPose__10CPlayerGunFv
/* 8003D9AC 0003A90C 80 1D 03 24 */ lwz r0, 0x324(r29)
/* 8003D9B0 0003A910 2C 00 00 00 */ cmpwi r0, 0
/* 8003D9B4 0003A914 41 82 00 0C */ beq lbl_8003D9C0
/* 8003D9B8 0003A918 38 00 00 00 */ li r0, 0
/* 8003D9BC 0003A91C 90 1D 03 24 */ stw r0, 0x324(r29)
lbl_8003D9C0:
/* 8003D9C0 0003A920 80 7D 07 40 */ lwz r3, 0x740(r29)
/* 8003D9C4 0003A924 88 03 03 B2 */ lbz r0, 0x3b2(r3)
/* 8003D9C8 0003A928 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8003D9CC 0003A92C 40 82 00 14 */ bne lbl_8003D9E0
/* 8003D9D0 0003A930 88 1D 08 34 */ lbz r0, 0x834(r29)
/* 8003D9D4 0003A934 38 60 00 00 */ li r3, 0
/* 8003D9D8 0003A938 50 60 2E B4 */ rlwimi r0, r3, 5, 0x1a, 0x1a
/* 8003D9DC 0003A93C 98 1D 08 34 */ stb r0, 0x834(r29)
lbl_8003D9E0:
/* 8003D9E0 0003A940 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003D9E4 0003A944 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003D9E8 0003A948 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003D9EC 0003A94C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8003D9F0 0003A950 7C 08 03 A6 */ mtlr r0
/* 8003D9F4 0003A954 38 21 00 20 */ addi r1, r1, 0x20
/* 8003D9F8 0003A958 4E 80 00 20 */ blr
.global UpdateWeaponFire__10CPlayerGunFfR12CPlayerStateR13CStateManager
UpdateWeaponFire__10CPlayerGunFfR12CPlayerStateR13CStateManager:
/* 8003D9FC 0003A95C 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8003DA00 0003A960 7C 08 02 A6 */ mflr r0
/* 8003DA04 0003A964 90 01 00 54 */ stw r0, 0x54(r1)
/* 8003DA08 0003A968 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 8003DA0C 0003A96C F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0
/* 8003DA10 0003A970 BF 01 00 20 */ stmw r24, 0x20(r1)
/* 8003DA14 0003A974 7C 79 1B 78 */ mr r25, r3
/* 8003DA18 0003A978 7C BB 2B 78 */ mr r27, r5
/* 8003DA1C 0003A97C 80 A3 02 EC */ lwz r5, 0x2ec(r3)
/* 8003DA20 0003A980 38 60 00 00 */ li r3, 0
/* 8003DA24 0003A984 80 D9 02 F4 */ lwz r6, 0x2f4(r25)
/* 8003DA28 0003A988 7C 9A 23 78 */ mr r26, r4
/* 8003DA2C 0003A98C FF E0 08 90 */ fmr f31, f1
/* 8003DA30 0003A990 7C A0 32 78 */ xor r0, r5, r6
/* 8003DA34 0003A994 90 D9 02 EC */ stw r6, 0x2ec(r25)
/* 8003DA38 0003A998 7C DE 00 38 */ and r30, r6, r0
/* 8003DA3C 0003A99C 93 D9 02 F0 */ stw r30, 0x2f0(r25)
/* 8003DA40 0003A9A0 7C BF 00 38 */ and r31, r5, r0
/* 8003DA44 0003A9A4 80 BB 08 4C */ lwz r5, 0x84c(r27)
/* 8003DA48 0003A9A8 88 19 08 32 */ lbz r0, 0x832(r25)
/* 8003DA4C 0003A9AC 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8003DA50 0003A9B0 80 99 03 2C */ lwz r4, 0x32c(r25)
/* 8003DA54 0003A9B4 83 A5 02 F8 */ lwz r29, 0x2f8(r5)
/* 8003DA58 0003A9B8 7C 64 00 D0 */ neg r3, r4
/* 8003DA5C 0003A9BC 98 19 08 32 */ stb r0, 0x832(r25)
/* 8003DA60 0003A9C0 7C 63 23 78 */ or r3, r3, r4
/* 8003DA64 0003A9C4 54 7C 0F FE */ srwi r28, r3, 0x1f
/* 8003DA68 0003A9C8 88 19 08 32 */ lbz r0, 0x832(r25)
/* 8003DA6C 0003A9CC 83 1B 08 4C */ lwz r24, 0x84c(r27)
/* 8003DA70 0003A9D0 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8003DA74 0003A9D4 40 82 00 F4 */ bne lbl_8003DB68
/* 8003DA78 0003A9D8 88 19 08 34 */ lbz r0, 0x834(r25)
/* 8003DA7C 0003A9DC 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
/* 8003DA80 0003A9E0 40 82 00 E8 */ bne lbl_8003DB68
/* 8003DA84 0003A9E4 80 79 07 2C */ lwz r3, 0x72c(r25)
/* 8003DA88 0003A9E8 48 17 F2 0D */ bl GetWeaponInfo__10CGunWeaponCFv
/* 8003DA8C 0003A9EC 57 C0 07 FF */ clrlwi. r0, r30, 0x1f
/* 8003DA90 0003A9F0 C0 23 00 00 */ lfs f1, 0(r3)
/* 8003DA94 0003A9F4 40 82 00 A0 */ bne lbl_8003DB34
/* 8003DA98 0003A9F8 C0 19 03 90 */ lfs f0, 0x390(r25)
/* 8003DA9C 0003A9FC FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8003DAA0 0003AA00 4C 41 13 82 */ cror 2, 1, 2
/* 8003DAA4 0003AA04 40 82 00 B8 */ bne lbl_8003DB5C
/* 8003DAA8 0003AA08 2C 1D 00 00 */ cmpwi r29, 0
/* 8003DAAC 0003AA0C D0 39 03 90 */ stfs f1, 0x390(r25)
/* 8003DAB0 0003AA10 40 82 00 AC */ bne lbl_8003DB5C
/* 8003DAB4 0003AA14 7F 43 D3 78 */ mr r3, r26
/* 8003DAB8 0003AA18 38 80 00 0A */ li r4, 0xa
/* 8003DABC 0003AA1C 48 05 3E D1 */ bl ItemEnabled__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003DAC0 0003AA20 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003DAC4 0003AA24 41 82 00 98 */ beq lbl_8003DB5C
/* 8003DAC8 0003AA28 80 18 04 98 */ lwz r0, 0x498(r24)
/* 8003DACC 0003AA2C 2C 00 00 02 */ cmpwi r0, 2
/* 8003DAD0 0003AA30 40 82 00 8C */ bne lbl_8003DB5C
/* 8003DAD4 0003AA34 80 18 03 B8 */ lwz r0, 0x3b8(r24)
/* 8003DAD8 0003AA38 2C 00 00 00 */ cmpwi r0, 0
/* 8003DADC 0003AA3C 40 82 00 80 */ bne lbl_8003DB5C
/* 8003DAE0 0003AA40 80 7B 08 B8 */ lwz r3, 0x8b8(r27)
/* 8003DAE4 0003AA44 80 63 00 00 */ lwz r3, 0(r3)
/* 8003DAE8 0003AA48 80 03 00 18 */ lwz r0, 0x18(r3)
/* 8003DAEC 0003AA4C 2C 00 00 02 */ cmpwi r0, 2
/* 8003DAF0 0003AA50 41 82 00 6C */ beq lbl_8003DB5C
/* 8003DAF4 0003AA54 80 03 00 14 */ lwz r0, 0x14(r3)
/* 8003DAF8 0003AA58 2C 00 00 02 */ cmpwi r0, 2
/* 8003DAFC 0003AA5C 41 82 00 60 */ beq lbl_8003DB5C
/* 8003DB00 0003AA60 80 19 02 EC */ lwz r0, 0x2ec(r25)
/* 8003DB04 0003AA64 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8003DB08 0003AA68 41 82 00 54 */ beq lbl_8003DB5C
/* 8003DB0C 0003AA6C 28 1C 00 00 */ cmplwi r28, 0
/* 8003DB10 0003AA70 40 82 00 4C */ bne lbl_8003DB5C
/* 8003DB14 0003AA74 88 19 08 32 */ lbz r0, 0x832(r25)
/* 8003DB18 0003AA78 38 60 00 01 */ li r3, 1
/* 8003DB1C 0003AA7C 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8003DB20 0003AA80 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003DB24 0003AA84 98 19 08 32 */ stb r0, 0x832(r25)
/* 8003DB28 0003AA88 63 DE 00 01 */ ori r30, r30, 1
/* 8003DB2C 0003AA8C D0 19 03 90 */ stfs f0, 0x390(r25)
/* 8003DB30 0003AA90 48 00 00 2C */ b lbl_8003DB5C
lbl_8003DB34:
/* 8003DB34 0003AA94 C0 19 03 90 */ lfs f0, 0x390(r25)
/* 8003DB38 0003AA98 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8003DB3C 0003AA9C 4C 41 13 82 */ cror 2, 1, 2
/* 8003DB40 0003AAA0 40 82 00 1C */ bne lbl_8003DB5C
/* 8003DB44 0003AAA4 88 19 08 32 */ lbz r0, 0x832(r25)
/* 8003DB48 0003AAA8 38 60 00 01 */ li r3, 1
/* 8003DB4C 0003AAAC 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8003DB50 0003AAB0 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003DB54 0003AAB4 98 19 08 32 */ stb r0, 0x832(r25)
/* 8003DB58 0003AAB8 D0 19 03 90 */ stfs f0, 0x390(r25)
lbl_8003DB5C:
/* 8003DB5C 0003AABC C0 19 03 90 */ lfs f0, 0x390(r25)
/* 8003DB60 0003AAC0 EC 00 F8 2A */ fadds f0, f0, f31
/* 8003DB64 0003AAC4 D0 19 03 90 */ stfs f0, 0x390(r25)
lbl_8003DB68:
/* 8003DB68 0003AAC8 88 79 08 34 */ lbz r3, 0x834(r25)
/* 8003DB6C 0003AACC 54 60 EF FF */ rlwinm. r0, r3, 0x1d, 0x1f, 0x1f
/* 8003DB70 0003AAD0 41 82 00 10 */ beq lbl_8003DB80
/* 8003DB74 0003AAD4 80 19 02 EC */ lwz r0, 0x2ec(r25)
/* 8003DB78 0003AAD8 50 03 1F 38 */ rlwimi r3, r0, 3, 0x1c, 0x1c
/* 8003DB7C 0003AADC 98 79 08 34 */ stb r3, 0x834(r25)
lbl_8003DB80:
/* 8003DB80 0003AAE0 2C 1D 00 01 */ cmpwi r29, 1
/* 8003DB84 0003AAE4 40 82 01 C4 */ bne lbl_8003DD48
/* 8003DB88 0003AAE8 88 19 08 35 */ lbz r0, 0x835(r25)
/* 8003DB8C 0003AAEC 38 60 00 00 */ li r3, 0
/* 8003DB90 0003AAF0 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8003DB94 0003AAF4 98 19 08 35 */ stb r0, 0x835(r25)
/* 8003DB98 0003AAF8 88 19 08 35 */ lbz r0, 0x835(r25)
/* 8003DB9C 0003AAFC 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 8003DBA0 0003AB00 98 19 08 35 */ stb r0, 0x835(r25)
/* 8003DBA4 0003AB04 88 79 08 35 */ lbz r3, 0x835(r25)
/* 8003DBA8 0003AB08 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 8003DBAC 0003AB0C 40 82 03 A4 */ bne lbl_8003DF50
/* 8003DBB0 0003AB10 38 00 00 01 */ li r0, 1
/* 8003DBB4 0003AB14 50 03 1F 38 */ rlwimi r3, r0, 3, 0x1c, 0x1c
/* 8003DBB8 0003AB18 98 79 08 35 */ stb r3, 0x835(r25)
/* 8003DBBC 0003AB1C A0 79 05 3A */ lhz r3, 0x53a(r25)
/* 8003DBC0 0003AB20 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003DBC4 0003AB24 7C 03 00 40 */ cmplw r3, r0
/* 8003DBC8 0003AB28 41 82 00 70 */ beq lbl_8003DC38
/* 8003DBCC 0003AB2C A0 19 05 38 */ lhz r0, 0x538(r25)
/* 8003DBD0 0003AB30 7F 63 DB 78 */ mr r3, r27
/* 8003DBD4 0003AB34 38 81 00 14 */ addi r4, r1, 0x14
/* 8003DBD8 0003AB38 38 A0 00 05 */ li r5, 5
/* 8003DBDC 0003AB3C B0 01 00 14 */ sth r0, 0x14(r1)
/* 8003DBE0 0003AB40 38 C0 00 01 */ li r6, 1
/* 8003DBE4 0003AB44 48 00 7B 4D */ bl CanCreateProjectile__13CStateManagerCF9TUniqueId11EWeaponTypei
/* 8003DBE8 0003AB48 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003DBEC 0003AB4C 40 82 00 4C */ bne lbl_8003DC38
/* 8003DBF0 0003AB50 A0 19 05 3A */ lhz r0, 0x53a(r25)
/* 8003DBF4 0003AB54 7F 63 DB 78 */ mr r3, r27
/* 8003DBF8 0003AB58 38 81 00 10 */ addi r4, r1, 0x10
/* 8003DBFC 0003AB5C B0 01 00 10 */ sth r0, 0x10(r1)
/* 8003DC00 0003AB60 48 00 E9 A5 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8003DC04 0003AB64 28 03 00 00 */ cmplwi r3, 0
/* 8003DC08 0003AB68 41 82 00 28 */ beq lbl_8003DC30
/* 8003DC0C 0003AB6C C0 23 01 5C */ lfs f1, 0x15c(r3)
/* 8003DC10 0003AB70 C0 02 9D 60 */ lfs f0, lbl_805ABA80@sda21(r2)
/* 8003DC14 0003AB74 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003DC18 0003AB78 41 81 00 18 */ bgt lbl_8003DC30
/* 8003DC1C 0003AB7C 88 19 08 35 */ lbz r0, 0x835(r25)
/* 8003DC20 0003AB80 38 60 00 00 */ li r3, 0
/* 8003DC24 0003AB84 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8003DC28 0003AB88 98 19 08 35 */ stb r0, 0x835(r25)
/* 8003DC2C 0003AB8C 48 00 00 0C */ b lbl_8003DC38
lbl_8003DC30:
/* 8003DC30 0003AB90 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003DC34 0003AB94 B0 19 05 3A */ sth r0, 0x53a(r25)
lbl_8003DC38:
/* 8003DC38 0003AB98 57 C0 07 FF */ clrlwi. r0, r30, 0x1f
/* 8003DC3C 0003AB9C 40 82 00 0C */ bne lbl_8003DC48
/* 8003DC40 0003ABA0 28 1C 00 00 */ cmplwi r28, 0
/* 8003DC44 0003ABA4 41 82 00 38 */ beq lbl_8003DC7C
lbl_8003DC48:
/* 8003DC48 0003ABA8 7F 43 D3 78 */ mr r3, r26
/* 8003DC4C 0003ABAC 38 80 00 06 */ li r4, 6
/* 8003DC50 0003ABB0 48 05 3E 71 */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003DC54 0003ABB4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003DC58 0003ABB8 41 82 00 24 */ beq lbl_8003DC7C
/* 8003DC5C 0003ABBC 88 19 08 35 */ lbz r0, 0x835(r25)
/* 8003DC60 0003ABC0 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 8003DC64 0003ABC4 41 82 02 EC */ beq lbl_8003DF50
/* 8003DC68 0003ABC8 7F 23 CB 78 */ mr r3, r25
/* 8003DC6C 0003ABCC 7F 65 DB 78 */ mr r5, r27
/* 8003DC70 0003ABD0 38 80 00 00 */ li r4, 0
/* 8003DC74 0003ABD4 48 00 1F D1 */ bl DropBomb__10CPlayerGunFQ210CPlayerGun8EBWeaponR13CStateManager
/* 8003DC78 0003ABD8 48 00 02 D8 */ b lbl_8003DF50
lbl_8003DC7C:
/* 8003DC7C 0003ABDC 3B 00 00 00 */ li r24, 0
/* 8003DC80 0003ABE0 7F 43 D3 78 */ mr r3, r26
/* 8003DC84 0003ABE4 7F 1D C3 78 */ mr r29, r24
/* 8003DC88 0003ABE8 38 80 00 07 */ li r4, 7
/* 8003DC8C 0003ABEC 7F 1C C3 78 */ mr r28, r24
/* 8003DC90 0003ABF0 48 05 3E 31 */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003DC94 0003ABF4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003DC98 0003ABF8 41 82 00 1C */ beq lbl_8003DCB4
/* 8003DC9C 0003ABFC 7F 43 D3 78 */ mr r3, r26
/* 8003DCA0 0003AC00 38 80 00 07 */ li r4, 7
/* 8003DCA4 0003AC04 48 05 3E 79 */ bl GetItemAmount__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003DCA8 0003AC08 2C 03 00 00 */ cmpwi r3, 0
/* 8003DCAC 0003AC0C 40 81 00 08 */ ble lbl_8003DCB4
/* 8003DCB0 0003AC10 3B 80 00 01 */ li r28, 1
lbl_8003DCB4:
/* 8003DCB4 0003AC14 57 80 06 3F */ clrlwi. r0, r28, 0x18
/* 8003DCB8 0003AC18 41 82 00 2C */ beq lbl_8003DCE4
/* 8003DCBC 0003AC1C A0 19 05 38 */ lhz r0, 0x538(r25)
/* 8003DCC0 0003AC20 7F 63 DB 78 */ mr r3, r27
/* 8003DCC4 0003AC24 38 81 00 0C */ addi r4, r1, 0xc
/* 8003DCC8 0003AC28 38 A0 00 05 */ li r5, 5
/* 8003DCCC 0003AC2C B0 01 00 0C */ sth r0, 0xc(r1)
/* 8003DCD0 0003AC30 38 C0 00 01 */ li r6, 1
/* 8003DCD4 0003AC34 48 00 7A 5D */ bl CanCreateProjectile__13CStateManagerCF9TUniqueId11EWeaponTypei
/* 8003DCD8 0003AC38 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003DCDC 0003AC3C 41 82 00 08 */ beq lbl_8003DCE4
/* 8003DCE0 0003AC40 3B A0 00 01 */ li r29, 1
lbl_8003DCE4:
/* 8003DCE4 0003AC44 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 8003DCE8 0003AC48 41 82 00 2C */ beq lbl_8003DD14
/* 8003DCEC 0003AC4C A0 19 05 38 */ lhz r0, 0x538(r25)
/* 8003DCF0 0003AC50 7F 63 DB 78 */ mr r3, r27
/* 8003DCF4 0003AC54 38 81 00 08 */ addi r4, r1, 8
/* 8003DCF8 0003AC58 38 A0 00 04 */ li r5, 4
/* 8003DCFC 0003AC5C B0 01 00 08 */ sth r0, 8(r1)
/* 8003DD00 0003AC60 38 C0 00 01 */ li r6, 1
/* 8003DD04 0003AC64 48 00 7A 2D */ bl CanCreateProjectile__13CStateManagerCF9TUniqueId11EWeaponTypei
/* 8003DD08 0003AC68 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003DD0C 0003AC6C 41 82 00 08 */ beq lbl_8003DD14
/* 8003DD10 0003AC70 3B 00 00 01 */ li r24, 1
lbl_8003DD14:
/* 8003DD14 0003AC74 88 79 08 35 */ lbz r3, 0x835(r25)
/* 8003DD18 0003AC78 53 03 17 7A */ rlwimi r3, r24, 2, 0x1d, 0x1d
/* 8003DD1C 0003AC7C 57 C0 07 BD */ rlwinm. r0, r30, 0, 0x1e, 0x1e
/* 8003DD20 0003AC80 98 79 08 35 */ stb r3, 0x835(r25)
/* 8003DD24 0003AC84 41 82 02 2C */ beq lbl_8003DF50
/* 8003DD28 0003AC88 88 19 08 35 */ lbz r0, 0x835(r25)
/* 8003DD2C 0003AC8C 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 8003DD30 0003AC90 41 82 02 20 */ beq lbl_8003DF50
/* 8003DD34 0003AC94 7F 23 CB 78 */ mr r3, r25
/* 8003DD38 0003AC98 7F 65 DB 78 */ mr r5, r27
/* 8003DD3C 0003AC9C 38 80 00 01 */ li r4, 1
/* 8003DD40 0003ACA0 48 00 1F 05 */ bl DropBomb__10CPlayerGunFQ210CPlayerGun8EBWeaponR13CStateManager
/* 8003DD44 0003ACA4 48 00 02 0C */ b lbl_8003DF50
lbl_8003DD48:
/* 8003DD48 0003ACA8 80 79 02 F8 */ lwz r3, 0x2f8(r25)
/* 8003DD4C 0003ACAC 54 60 07 38 */ rlwinm r0, r3, 0, 0x1c, 0x1c
/* 8003DD50 0003ACB0 2C 00 00 08 */ cmpwi r0, 8
/* 8003DD54 0003ACB4 41 82 01 FC */ beq lbl_8003DF50
/* 8003DD58 0003ACB8 2C 1D 00 00 */ cmpwi r29, 0
/* 8003DD5C 0003ACBC 41 82 00 08 */ beq lbl_8003DD64
/* 8003DD60 0003ACC0 48 00 01 F0 */ b lbl_8003DF50
lbl_8003DD64:
/* 8003DD64 0003ACC4 57 C0 07 BD */ rlwinm. r0, r30, 0, 0x1e, 0x1e
/* 8003DD68 0003ACC8 41 82 01 10 */ beq lbl_8003DE78
/* 8003DD6C 0003ACCC 80 19 03 18 */ lwz r0, 0x318(r25)
/* 8003DD70 0003ACD0 2C 00 00 00 */ cmpwi r0, 0
/* 8003DD74 0003ACD4 40 82 01 04 */ bne lbl_8003DE78
/* 8003DD78 0003ACD8 54 60 07 BC */ rlwinm r0, r3, 0, 0x1e, 0x1e
/* 8003DD7C 0003ACDC 2C 00 00 02 */ cmpwi r0, 2
/* 8003DD80 0003ACE0 41 82 00 F8 */ beq lbl_8003DE78
/* 8003DD84 0003ACE4 80 19 03 2C */ lwz r0, 0x32c(r25)
/* 8003DD88 0003ACE8 2C 00 00 00 */ cmpwi r0, 0
/* 8003DD8C 0003ACEC 40 82 00 EC */ bne lbl_8003DE78
/* 8003DD90 0003ACF0 7F 43 D3 78 */ mr r3, r26
/* 8003DD94 0003ACF4 38 80 00 04 */ li r4, 4
/* 8003DD98 0003ACF8 48 05 3D 85 */ bl GetItemAmount__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003DD9C 0003ACFC 80 19 03 38 */ lwz r0, 0x338(r25)
/* 8003DDA0 0003AD00 7C 7C 1B 78 */ mr r28, r3
/* 8003DDA4 0003AD04 2C 00 00 01 */ cmpwi r0, 1
/* 8003DDA8 0003AD08 41 82 01 A8 */ beq lbl_8003DF50
/* 8003DDAC 0003AD0C 2C 00 00 02 */ cmpwi r0, 2
/* 8003DDB0 0003AD10 41 82 01 A0 */ beq lbl_8003DF50
/* 8003DDB4 0003AD14 7F 43 D3 78 */ mr r3, r26
/* 8003DDB8 0003AD18 38 80 00 04 */ li r4, 4
/* 8003DDBC 0003AD1C 48 05 3D 05 */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003DDC0 0003AD20 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003DDC4 0003AD24 41 82 00 68 */ beq lbl_8003DE2C
/* 8003DDC8 0003AD28 2C 1C 00 00 */ cmpwi r28, 0
/* 8003DDCC 0003AD2C 40 81 00 60 */ ble lbl_8003DE2C
/* 8003DDD0 0003AD30 93 99 03 00 */ stw r28, 0x300(r25)
/* 8003DDD4 0003AD34 80 19 03 00 */ lwz r0, 0x300(r25)
/* 8003DDD8 0003AD38 2C 00 00 05 */ cmpwi r0, 5
/* 8003DDDC 0003AD3C 40 81 00 0C */ ble lbl_8003DDE8
/* 8003DDE0 0003AD40 38 00 00 05 */ li r0, 5
/* 8003DDE4 0003AD44 90 19 03 00 */ stw r0, 0x300(r25)
lbl_8003DDE8:
/* 8003DDE8 0003AD48 88 19 08 35 */ lbz r0, 0x835(r25)
/* 8003DDEC 0003AD4C 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8003DDF0 0003AD50 40 82 00 28 */ bne lbl_8003DE18
/* 8003DDF4 0003AD54 80 79 02 F8 */ lwz r3, 0x2f8(r25)
/* 8003DDF8 0003AD58 38 00 00 01 */ li r0, 1
/* 8003DDFC 0003AD5C 54 63 00 3C */ rlwinm r3, r3, 0, 0, 0x1e
/* 8003DE00 0003AD60 90 79 02 F8 */ stw r3, 0x2f8(r25)
/* 8003DE04 0003AD64 80 79 02 F8 */ lwz r3, 0x2f8(r25)
/* 8003DE08 0003AD68 60 63 00 06 */ ori r3, r3, 6
/* 8003DE0C 0003AD6C 90 79 02 F8 */ stw r3, 0x2f8(r25)
/* 8003DE10 0003AD70 90 19 03 18 */ stw r0, 0x318(r25)
/* 8003DE14 0003AD74 90 19 03 1C */ stw r0, 0x31c(r25)
lbl_8003DE18:
/* 8003DE18 0003AD78 FC 20 F8 90 */ fmr f1, f31
/* 8003DE1C 0003AD7C 7F 23 CB 78 */ mr r3, r25
/* 8003DE20 0003AD80 7F 64 DB 78 */ mr r4, r27
/* 8003DE24 0003AD84 48 00 20 69 */ bl FireSecondary__10CPlayerGunFfR13CStateManager
/* 8003DE28 0003AD88 48 00 01 28 */ b lbl_8003DF50
lbl_8003DE2C:
/* 8003DE2C 0003AD8C 80 19 02 E4 */ lwz r0, 0x2e4(r25)
/* 8003DE30 0003AD90 38 61 00 1C */ addi r3, r1, 0x1c
/* 8003DE34 0003AD94 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8003DE38 0003AD98 48 2A AF 9D */ bl IsPlaying__11CSfxManagerF10CSfxHandle
/* 8003DE3C 0003AD9C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003DE40 0003ADA0 40 82 00 2C */ bne lbl_8003DE6C
/* 8003DE44 0003ADA4 88 19 08 34 */ lbz r0, 0x834(r25)
/* 8003DE48 0003ADA8 38 61 00 18 */ addi r3, r1, 0x18
/* 8003DE4C 0003ADAC 38 80 06 F5 */ li r4, 0x6f5
/* 8003DE50 0003ADB0 38 C0 00 00 */ li r6, 0
/* 8003DE54 0003ADB4 54 05 E7 FE */ rlwinm r5, r0, 0x1c, 0x1f, 0x1f
/* 8003DE58 0003ADB8 38 E0 00 4A */ li r7, 0x4a
/* 8003DE5C 0003ADBC 48 24 CC 9D */ bl play_sfx__12NWeaponTypesFUsbbs
/* 8003DE60 0003ADC0 80 01 00 18 */ lwz r0, 0x18(r1)
/* 8003DE64 0003ADC4 90 19 02 E4 */ stw r0, 0x2e4(r25)
/* 8003DE68 0003ADC8 48 00 00 E8 */ b lbl_8003DF50
lbl_8003DE6C:
/* 8003DE6C 0003ADCC 38 00 00 00 */ li r0, 0
/* 8003DE70 0003ADD0 90 19 02 E4 */ stw r0, 0x2e4(r25)
/* 8003DE74 0003ADD4 48 00 00 DC */ b lbl_8003DF50
lbl_8003DE78:
/* 8003DE78 0003ADD8 80 19 03 A4 */ lwz r0, 0x3a4(r25)
/* 8003DE7C 0003ADDC 2C 00 00 00 */ cmpwi r0, 0
/* 8003DE80 0003ADE0 40 82 00 D0 */ bne lbl_8003DF50
/* 8003DE84 0003ADE4 54 60 06 F6 */ rlwinm r0, r3, 0, 0x1b, 0x1b
/* 8003DE88 0003ADE8 2C 00 00 10 */ cmpwi r0, 0x10
/* 8003DE8C 0003ADEC 40 82 00 70 */ bne lbl_8003DEFC
/* 8003DE90 0003ADF0 80 79 07 44 */ lwz r3, 0x744(r25)
/* 8003DE94 0003ADF4 7F 64 DB 78 */ mr r4, r27
/* 8003DE98 0003ADF8 48 17 B5 99 */ bl IsComboFxActive__10CAuxWeaponCFRC13CStateManager
/* 8003DE9C 0003ADFC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003DEA0 0003AE00 41 82 00 5C */ beq lbl_8003DEFC
/* 8003DEA4 0003AE04 80 19 03 10 */ lwz r0, 0x310(r25)
/* 8003DEA8 0003AE08 38 60 00 00 */ li r3, 0
/* 8003DEAC 0003AE0C 2C 00 00 02 */ cmpwi r0, 2
/* 8003DEB0 0003AE10 40 82 00 14 */ bne lbl_8003DEC4
/* 8003DEB4 0003AE14 88 19 08 33 */ lbz r0, 0x833(r25)
/* 8003DEB8 0003AE18 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 8003DEBC 0003AE1C 41 82 00 08 */ beq lbl_8003DEC4
/* 8003DEC0 0003AE20 38 60 00 01 */ li r3, 1
lbl_8003DEC4:
/* 8003DEC4 0003AE24 80 19 02 EC */ lwz r0, 0x2ec(r25)
/* 8003DEC8 0003AE28 2C 00 00 00 */ cmpwi r0, 0
/* 8003DECC 0003AE2C 41 82 00 0C */ beq lbl_8003DED8
/* 8003DED0 0003AE30 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003DED4 0003AE34 41 82 00 7C */ beq lbl_8003DF50
lbl_8003DED8:
/* 8003DED8 0003AE38 80 19 02 F8 */ lwz r0, 0x2f8(r25)
/* 8003DEDC 0003AE3C 7F 23 CB 78 */ mr r3, r25
/* 8003DEE0 0003AE40 7F 64 DB 78 */ mr r4, r27
/* 8003DEE4 0003AE44 54 05 07 38 */ rlwinm r5, r0, 0, 0x1c, 0x1c
/* 8003DEE8 0003AE48 38 05 FF F8 */ addi r0, r5, -8
/* 8003DEEC 0003AE4C 7C 00 00 34 */ cntlzw r0, r0
/* 8003DEF0 0003AE50 54 05 D9 7E */ srwi r5, r0, 5
/* 8003DEF4 0003AE54 4B FF E4 BD */ bl StopContinuousBeam__10CPlayerGunFR13CStateManagerb
/* 8003DEF8 0003AE58 48 00 00 58 */ b lbl_8003DF50
lbl_8003DEFC:
/* 8003DEFC 0003AE5C 7F 43 D3 78 */ mr r3, r26
/* 8003DF00 0003AE60 38 80 00 0A */ li r4, 0xa
/* 8003DF04 0003AE64 48 05 3A 89 */ bl ItemEnabled__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003DF08 0003AE68 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003DF0C 0003AE6C 41 82 00 2C */ beq lbl_8003DF38
/* 8003DF10 0003AE70 80 19 03 3C */ lwz r0, 0x33c(r25)
/* 8003DF14 0003AE74 2C 00 00 00 */ cmpwi r0, 0
/* 8003DF18 0003AE78 40 82 00 20 */ bne lbl_8003DF38
/* 8003DF1C 0003AE7C FC 20 F8 90 */ fmr f1, f31
/* 8003DF20 0003AE80 7F 23 CB 78 */ mr r3, r25
/* 8003DF24 0003AE84 7F E4 FB 78 */ mr r4, r31
/* 8003DF28 0003AE88 7F C5 F3 78 */ mr r5, r30
/* 8003DF2C 0003AE8C 7F 66 DB 78 */ mr r6, r27
/* 8003DF30 0003AE90 48 00 27 3D */ bl ProcessChargeState__10CPlayerGunFiiR13CStateManagerf
/* 8003DF34 0003AE94 48 00 00 1C */ b lbl_8003DF50
lbl_8003DF38:
/* 8003DF38 0003AE98 FC 20 F8 90 */ fmr f1, f31
/* 8003DF3C 0003AE9C 7F 23 CB 78 */ mr r3, r25
/* 8003DF40 0003AEA0 7F E4 FB 78 */ mr r4, r31
/* 8003DF44 0003AEA4 7F C5 F3 78 */ mr r5, r30
/* 8003DF48 0003AEA8 7F 66 DB 78 */ mr r6, r27
/* 8003DF4C 0003AEAC 48 00 25 B1 */ bl ProcessNormalState__10CPlayerGunFiiR13CStateManagerf
lbl_8003DF50:
/* 8003DF50 0003AEB0 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0
/* 8003DF54 0003AEB4 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 8003DF58 0003AEB8 BB 01 00 20 */ lmw r24, 0x20(r1)
/* 8003DF5C 0003AEBC 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8003DF60 0003AEC0 7C 08 03 A6 */ mtlr r0
/* 8003DF64 0003AEC4 38 21 00 50 */ addi r1, r1, 0x50
/* 8003DF68 0003AEC8 4E 80 00 20 */ blr
.global Update__Q210CPlayerGun9CGunMorphFfff
Update__Q210CPlayerGun9CGunMorphFfff:
/* 8003DF6C 0003AECC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8003DF70 0003AED0 7C 08 02 A6 */ mflr r0
/* 8003DF74 0003AED4 90 01 00 44 */ stw r0, 0x44(r1)
/* 8003DF78 0003AED8 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 8003DF7C 0003AEDC F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
/* 8003DF80 0003AEE0 DB C1 00 20 */ stfd f30, 0x20(r1)
/* 8003DF84 0003AEE4 F3 C1 00 28 */ psq_st f30, 40(r1), 0, qr0
/* 8003DF88 0003AEE8 DB A1 00 10 */ stfd f29, 0x10(r1)
/* 8003DF8C 0003AEEC F3 A1 00 18 */ psq_st f29, 24(r1), 0, qr0
/* 8003DF90 0003AEF0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003DF94 0003AEF4 7C 7F 1B 78 */ mr r31, r3
/* 8003DF98 0003AEF8 FF A0 08 90 */ fmr f29, f1
/* 8003DF9C 0003AEFC 80 03 00 20 */ lwz r0, 0x20(r3)
/* 8003DFA0 0003AF00 FF C0 10 90 */ fmr f30, f2
/* 8003DFA4 0003AF04 FF E0 18 90 */ fmr f31, f3
/* 8003DFA8 0003AF08 38 80 00 00 */ li r4, 0
/* 8003DFAC 0003AF0C 2C 00 00 00 */ cmpwi r0, 0
/* 8003DFB0 0003AF10 41 82 00 0C */ beq lbl_8003DFBC
/* 8003DFB4 0003AF14 41 80 00 58 */ blt lbl_8003E00C
/* 8003DFB8 0003AF18 48 00 00 54 */ b lbl_8003E00C
lbl_8003DFBC:
/* 8003DFBC 0003AF1C C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8003DFC0 0003AF20 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003DFC4 0003AF24 EC 21 F8 28 */ fsubs f1, f1, f31
/* 8003DFC8 0003AF28 D0 3F 00 14 */ stfs f1, 0x14(r31)
/* 8003DFCC 0003AF2C C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8003DFD0 0003AF30 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003DFD4 0003AF34 4C 40 13 82 */ cror 2, 0, 2
/* 8003DFD8 0003AF38 40 82 00 34 */ bne lbl_8003E00C
/* 8003DFDC 0003AF3C 88 1F 00 24 */ lbz r0, 0x24(r31)
/* 8003DFE0 0003AF40 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8003DFE4 0003AF44 41 82 00 28 */ beq lbl_8003E00C
/* 8003DFE8 0003AF48 38 80 00 01 */ li r4, 1
/* 8003DFEC 0003AF4C 48 00 01 09 */ bl StartWipe__Q210CPlayerGun9CGunMorphFQ310CPlayerGun9CGunMorph4EDir
/* 8003DFF0 0003AF50 88 1F 00 24 */ lbz r0, 0x24(r31)
/* 8003DFF4 0003AF54 38 60 00 00 */ li r3, 0
/* 8003DFF8 0003AF58 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003DFFC 0003AF5C C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003E000 0003AF60 98 1F 00 24 */ stb r0, 0x24(r31)
/* 8003E004 0003AF64 38 80 00 01 */ li r4, 1
/* 8003E008 0003AF68 D0 1F 00 14 */ stfs f0, 0x14(r31)
lbl_8003E00C:
/* 8003E00C 0003AF6C 88 1F 00 24 */ lbz r0, 0x24(r31)
/* 8003E010 0003AF70 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8003E014 0003AF74 41 82 00 B0 */ beq lbl_8003E0C4
/* 8003E018 0003AF78 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8003E01C 0003AF7C C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8003E020 0003AF80 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 8003E024 0003AF84 EC 21 00 32 */ fmuls f1, f1, f0
/* 8003E028 0003AF88 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8003E02C 0003AF8C 2C 00 00 00 */ cmpwi r0, 0
/* 8003E030 0003AF90 EC 40 08 28 */ fsubs f2, f0, f1
/* 8003E034 0003AF94 40 82 00 18 */ bne lbl_8003E04C
/* 8003E038 0003AF98 EC 1E 00 72 */ fmuls f0, f30, f1
/* 8003E03C 0003AF9C EC 1D 00 BA */ fmadds f0, f29, f2, f0
/* 8003E040 0003AFA0 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8003E044 0003AFA4 D0 3F 00 18 */ stfs f1, 0x18(r31)
/* 8003E048 0003AFA8 48 00 00 14 */ b lbl_8003E05C
lbl_8003E04C:
/* 8003E04C 0003AFAC EC 1D 00 72 */ fmuls f0, f29, f1
/* 8003E050 0003AFB0 EC 1E 00 BA */ fmadds f0, f30, f2, f0
/* 8003E054 0003AFB4 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8003E058 0003AFB8 D0 5F 00 18 */ stfs f2, 0x18(r31)
lbl_8003E05C:
/* 8003E05C 0003AFBC C0 3F 00 08 */ lfs f1, 8(r31)
/* 8003E060 0003AFC0 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003E064 0003AFC4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003E068 0003AFC8 4C 40 13 82 */ cror 2, 0, 2
/* 8003E06C 0003AFCC 40 82 00 50 */ bne lbl_8003E0BC
/* 8003E070 0003AFD0 88 1F 00 24 */ lbz r0, 0x24(r31)
/* 8003E074 0003AFD4 38 60 00 00 */ li r3, 0
/* 8003E078 0003AFD8 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8003E07C 0003AFDC 98 1F 00 24 */ stb r0, 0x24(r31)
/* 8003E080 0003AFE0 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8003E084 0003AFE4 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 8003E088 0003AFE8 2C 00 00 00 */ cmpwi r0, 0
/* 8003E08C 0003AFEC 40 82 00 10 */ bne lbl_8003E09C
/* 8003E090 0003AFF0 90 7F 00 20 */ stw r3, 0x20(r31)
/* 8003E094 0003AFF4 D0 1F 00 18 */ stfs f0, 0x18(r31)
/* 8003E098 0003AFF8 48 00 00 2C */ b lbl_8003E0C4
lbl_8003E09C:
/* 8003E09C 0003AFFC C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8003E0A0 0003B000 38 60 00 01 */ li r3, 1
/* 8003E0A4 0003B004 38 00 00 02 */ li r0, 2
/* 8003E0A8 0003B008 38 80 00 02 */ li r4, 2
/* 8003E0AC 0003B00C D0 1F 00 18 */ stfs f0, 0x18(r31)
/* 8003E0B0 0003B010 90 7F 00 20 */ stw r3, 0x20(r31)
/* 8003E0B4 0003B014 90 1F 00 1C */ stw r0, 0x1c(r31)
/* 8003E0B8 0003B018 48 00 00 0C */ b lbl_8003E0C4
lbl_8003E0BC:
/* 8003E0BC 0003B01C EC 01 F8 28 */ fsubs f0, f1, f31
/* 8003E0C0 0003B020 D0 1F 00 08 */ stfs f0, 8(r31)
lbl_8003E0C4:
/* 8003E0C4 0003B024 7C 83 23 78 */ mr r3, r4
/* 8003E0C8 0003B028 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
/* 8003E0CC 0003B02C CB E1 00 30 */ lfd f31, 0x30(r1)
/* 8003E0D0 0003B030 E3 C1 00 28 */ psq_l f30, 40(r1), 0, qr0
/* 8003E0D4 0003B034 CB C1 00 20 */ lfd f30, 0x20(r1)
/* 8003E0D8 0003B038 E3 A1 00 18 */ psq_l f29, 24(r1), 0, qr0
/* 8003E0DC 0003B03C CB A1 00 10 */ lfd f29, 0x10(r1)
/* 8003E0E0 0003B040 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8003E0E4 0003B044 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003E0E8 0003B048 7C 08 03 A6 */ mtlr r0
/* 8003E0EC 0003B04C 38 21 00 40 */ addi r1, r1, 0x40
/* 8003E0F0 0003B050 4E 80 00 20 */ blr
.global StartWipe__Q210CPlayerGun9CGunMorphFQ310CPlayerGun9CGunMorph4EDir
StartWipe__Q210CPlayerGun9CGunMorphFQ310CPlayerGun9CGunMorph4EDir:
/* 8003E0F4 0003B054 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 8003E0F8 0003B058 2C 04 00 00 */ cmpwi r4, 0
/* 8003E0FC 0003B05C D0 03 00 14 */ stfs f0, 0x14(r3)
/* 8003E100 0003B060 40 82 00 10 */ bne lbl_8003E110
/* 8003E104 0003B064 80 03 00 20 */ lwz r0, 0x20(r3)
/* 8003E108 0003B068 2C 00 00 00 */ cmpwi r0, 0
/* 8003E10C 0003B06C 4D 82 00 20 */ beqlr
lbl_8003E110:
/* 8003E110 0003B070 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8003E114 0003B074 7C 00 20 00 */ cmpw r0, r4
/* 8003E118 0003B078 41 82 00 2C */ beq lbl_8003E144
/* 8003E11C 0003B07C 80 03 00 20 */ lwz r0, 0x20(r3)
/* 8003E120 0003B080 2C 00 00 03 */ cmpwi r0, 3
/* 8003E124 0003B084 41 82 00 20 */ beq lbl_8003E144
/* 8003E128 0003B088 C0 03 00 04 */ lfs f0, 4(r3)
/* 8003E12C 0003B08C C0 22 84 7C */ lfs f1, lbl_805AA19C@sda21(r2)
/* 8003E130 0003B090 D0 03 00 08 */ stfs f0, 8(r3)
/* 8003E134 0003B094 C0 03 00 04 */ lfs f0, 4(r3)
/* 8003E138 0003B098 EC 01 00 24 */ fdivs f0, f1, f0
/* 8003E13C 0003B09C D0 03 00 0C */ stfs f0, 0xc(r3)
/* 8003E140 0003B0A0 48 00 00 20 */ b lbl_8003E160
lbl_8003E144:
/* 8003E144 0003B0A4 80 03 00 20 */ lwz r0, 0x20(r3)
/* 8003E148 0003B0A8 2C 00 00 02 */ cmpwi r0, 2
/* 8003E14C 0003B0AC 41 82 00 14 */ beq lbl_8003E160
/* 8003E150 0003B0B0 C0 23 00 04 */ lfs f1, 4(r3)
/* 8003E154 0003B0B4 C0 03 00 08 */ lfs f0, 8(r3)
/* 8003E158 0003B0B8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8003E15C 0003B0BC D0 03 00 08 */ stfs f0, 8(r3)
lbl_8003E160:
/* 8003E160 0003B0C0 90 83 00 1C */ stw r4, 0x1c(r3)
/* 8003E164 0003B0C4 38 80 00 03 */ li r4, 3
/* 8003E168 0003B0C8 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8003E16C 0003B0CC 2C 00 00 00 */ cmpwi r0, 0
/* 8003E170 0003B0D0 40 82 00 08 */ bne lbl_8003E178
/* 8003E174 0003B0D4 38 80 00 02 */ li r4, 2
lbl_8003E178:
/* 8003E178 0003B0D8 90 83 00 20 */ stw r4, 0x20(r3)
/* 8003E17C 0003B0DC 38 80 00 01 */ li r4, 1
/* 8003E180 0003B0E0 88 03 00 24 */ lbz r0, 0x24(r3)
/* 8003E184 0003B0E4 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 8003E188 0003B0E8 98 03 00 24 */ stb r0, 0x24(r3)
/* 8003E18C 0003B0EC 4E 80 00 20 */ blr
.global __ct__Q210CPlayerGun9CGunMorphFff
__ct__Q210CPlayerGun9CGunMorphFff:
/* 8003E190 0003B0F0 FC 00 08 50 */ fneg f0, f1
/* 8003E194 0003B0F4 C0 A2 84 7C */ lfs f5, lbl_805AA19C@sda21(r2)
/* 8003E198 0003B0F8 C0 62 84 6C */ lfs f3, lbl_805AA18C@sda21(r2)
/* 8003E19C 0003B0FC FC C0 12 10 */ fabs f6, f2
/* 8003E1A0 0003B100 C0 42 84 90 */ lfs f2, lbl_805AA1B0@sda21(r2)
/* 8003E1A4 0003B104 38 A0 00 02 */ li r5, 2
/* 8003E1A8 0003B108 FC 80 09 6E */ fsel f4, f0, f5, f1
/* 8003E1AC 0003B10C D0 63 00 00 */ stfs f3, 0(r3)
/* 8003E1B0 0003B110 FC 20 30 18 */ frsp f1, f6
/* 8003E1B4 0003B114 C0 02 84 80 */ lfs f0, lbl_805AA1A0@sda21(r2)
/* 8003E1B8 0003B118 38 00 00 01 */ li r0, 1
/* 8003E1BC 0003B11C 38 80 00 00 */ li r4, 0
/* 8003E1C0 0003B120 D0 83 00 04 */ stfs f4, 4(r3)
/* 8003E1C4 0003B124 D0 63 00 08 */ stfs f3, 8(r3)
/* 8003E1C8 0003B128 D0 43 00 0C */ stfs f2, 0xc(r3)
/* 8003E1CC 0003B12C D0 23 00 10 */ stfs f1, 0x10(r3)
/* 8003E1D0 0003B130 D0 03 00 14 */ stfs f0, 0x14(r3)
/* 8003E1D4 0003B134 D0 A3 00 18 */ stfs f5, 0x18(r3)
/* 8003E1D8 0003B138 90 A3 00 1C */ stw r5, 0x1c(r3)
/* 8003E1DC 0003B13C 90 03 00 20 */ stw r0, 0x20(r3)
/* 8003E1E0 0003B140 88 03 00 24 */ lbz r0, 0x24(r3)
/* 8003E1E4 0003B144 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 8003E1E8 0003B148 98 03 00 24 */ stb r0, 0x24(r3)
/* 8003E1EC 0003B14C 88 03 00 24 */ lbz r0, 0x24(r3)
/* 8003E1F0 0003B150 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 8003E1F4 0003B154 98 03 00 24 */ stb r0, 0x24(r3)
/* 8003E1F8 0003B158 4E 80 00 20 */ blr
.global GetTargetId__10CPlayerGunFR13CStateManager
GetTargetId__10CPlayerGunFR13CStateManager:
/* 8003E1FC 0003B15C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003E200 0003B160 7C 08 02 A6 */ mflr r0
/* 8003E204 0003B164 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003E208 0003B168 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003E20C 0003B16C 7C 7F 1B 78 */ mr r31, r3
/* 8003E210 0003B170 80 C5 08 4C */ lwz r6, 0x84c(r5)
/* 8003E214 0003B174 88 04 08 32 */ lbz r0, 0x832(r4)
/* 8003E218 0003B178 A0 66 03 10 */ lhz r3, 0x310(r6)
/* 8003E21C 0003B17C 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 8003E220 0003B180 B0 61 00 0C */ sth r3, 0xc(r1)
/* 8003E224 0003B184 41 82 00 28 */ beq lbl_8003E24C
/* 8003E228 0003B188 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003E22C 0003B18C 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 8003E230 0003B190 7C 03 00 40 */ cmplw r3, r0
/* 8003E234 0003B194 40 82 00 18 */ bne lbl_8003E24C
/* 8003E238 0003B198 80 04 03 10 */ lwz r0, 0x310(r4)
/* 8003E23C 0003B19C 2C 00 00 02 */ cmpwi r0, 2
/* 8003E240 0003B1A0 40 82 00 0C */ bne lbl_8003E24C
/* 8003E244 0003B1A4 A0 06 03 3C */ lhz r0, 0x33c(r6)
/* 8003E248 0003B1A8 B0 01 00 0C */ sth r0, 0xc(r1)
lbl_8003E24C:
/* 8003E24C 0003B1AC A0 61 00 0C */ lhz r3, 0xc(r1)
/* 8003E250 0003B1B0 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003E254 0003B1B4 7C 03 00 40 */ cmplw r3, r0
/* 8003E258 0003B1B8 41 82 00 70 */ beq lbl_8003E2C8
/* 8003E25C 0003B1BC A0 01 00 0C */ lhz r0, 0xc(r1)
/* 8003E260 0003B1C0 7C A3 2B 78 */ mr r3, r5
/* 8003E264 0003B1C4 38 81 00 08 */ addi r4, r1, 8
/* 8003E268 0003B1C8 B0 01 00 08 */ sth r0, 8(r1)
/* 8003E26C 0003B1CC 48 00 E3 39 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8003E270 0003B1D0 7C 64 1B 78 */ mr r4, r3
/* 8003E274 0003B1D4 38 61 00 10 */ addi r3, r1, 0x10
/* 8003E278 0003B1D8 48 07 1A 19 */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 8003E27C 0003B1DC 80 83 00 04 */ lwz r4, 4(r3)
/* 8003E280 0003B1E0 28 04 00 00 */ cmplwi r4, 0
/* 8003E284 0003B1E4 41 82 00 44 */ beq lbl_8003E2C8
/* 8003E288 0003B1E8 80 64 00 68 */ lwz r3, 0x68(r4)
/* 8003E28C 0003B1EC 38 00 01 00 */ li r0, 0x100
/* 8003E290 0003B1F0 80 A4 00 6C */ lwz r5, 0x6c(r4)
/* 8003E294 0003B1F4 38 80 00 00 */ li r4, 0
/* 8003E298 0003B1F8 7C 60 00 38 */ and r0, r3, r0
/* 8003E29C 0003B1FC 7C A3 20 38 */ and r3, r5, r4
/* 8003E2A0 0003B200 7C 63 22 78 */ xor r3, r3, r4
/* 8003E2A4 0003B204 7C 00 22 78 */ xor r0, r0, r4
/* 8003E2A8 0003B208 7C 60 03 79 */ or. r0, r3, r0
/* 8003E2AC 0003B20C 41 82 00 08 */ beq lbl_8003E2B4
/* 8003E2B0 0003B210 38 80 00 01 */ li r4, 1
lbl_8003E2B4:
/* 8003E2B4 0003B214 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 8003E2B8 0003B218 28 00 00 01 */ cmplwi r0, 1
/* 8003E2BC 0003B21C 41 82 00 0C */ beq lbl_8003E2C8
/* 8003E2C0 0003B220 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8003E2C4 0003B224 B0 01 00 0C */ sth r0, 0xc(r1)
lbl_8003E2C8:
/* 8003E2C8 0003B228 A0 01 00 0C */ lhz r0, 0xc(r1)
/* 8003E2CC 0003B22C B0 1F 00 00 */ sth r0, 0(r31)
/* 8003E2D0 0003B230 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003E2D4 0003B234 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003E2D8 0003B238 7C 08 03 A6 */ mtlr r0
/* 8003E2DC 0003B23C 38 21 00 20 */ addi r1, r1, 0x20
/* 8003E2E0 0003B240 4E 80 00 20 */ blr
.global GetBeamVelocity__10CPlayerGunCFv
GetBeamVelocity__10CPlayerGunCFv:
/* 8003E2E4 0003B244 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003E2E8 0003B248 7C 08 02 A6 */ mflr r0
/* 8003E2EC 0003B24C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003E2F0 0003B250 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003E2F4 0003B254 7C 7F 1B 78 */ mr r31, r3
/* 8003E2F8 0003B258 80 63 07 2C */ lwz r3, 0x72c(r3)
/* 8003E2FC 0003B25C 81 83 00 00 */ lwz r12, 0(r3)
/* 8003E300 0003B260 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 8003E304 0003B264 7D 89 03 A6 */ mtctr r12
/* 8003E308 0003B268 4E 80 04 21 */ bctrl
/* 8003E30C 0003B26C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003E310 0003B270 41 82 00 1C */ beq lbl_8003E32C
/* 8003E314 0003B274 80 1F 03 30 */ lwz r0, 0x330(r31)
/* 8003E318 0003B278 80 7F 07 2C */ lwz r3, 0x72c(r31)
/* 8003E31C 0003B27C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8003E320 0003B280 7C 63 02 14 */ add r3, r3, r0
/* 8003E324 0003B284 C0 23 01 D8 */ lfs f1, 0x1d8(r3)
/* 8003E328 0003B288 48 00 00 08 */ b lbl_8003E330
lbl_8003E32C:
/* 8003E32C 0003B28C C0 22 84 9C */ lfs f1, lbl_805AA1BC@sda21(r2)
lbl_8003E330:
/* 8003E330 0003B290 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003E334 0003B294 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003E338 0003B298 7C 08 03 A6 */ mtlr r0
/* 8003E33C 0003B29C 38 21 00 10 */ addi r1, r1, 0x10
/* 8003E340 0003B2A0 4E 80 00 20 */ blr
.global InitCTData__10CPlayerGunFv
InitCTData__10CPlayerGunFv:
/* 8003E344 0003B2A4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003E348 0003B2A8 7C 08 02 A6 */ mflr r0
/* 8003E34C 0003B2AC 38 80 00 00 */ li r4, 0
/* 8003E350 0003B2B0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003E354 0003B2B4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003E358 0003B2B8 7C 7F 1B 78 */ mr r31, r3
/* 8003E35C 0003B2BC 38 61 00 08 */ addi r3, r1, 8
/* 8003E360 0003B2C0 38 1F 07 7C */ addi r0, r31, 0x77c
/* 8003E364 0003B2C4 98 81 00 08 */ stb r4, 8(r1)
/* 8003E368 0003B2C8 7C 03 00 40 */ cmplw r3, r0
/* 8003E36C 0003B2CC 90 81 00 0C */ stw r4, 0xc(r1)
/* 8003E370 0003B2D0 41 82 00 48 */ beq lbl_8003E3B8
/* 8003E374 0003B2D4 88 1F 07 7C */ lbz r0, 0x77c(r31)
/* 8003E378 0003B2D8 28 00 00 00 */ cmplwi r0, 0
/* 8003E37C 0003B2DC 41 82 00 24 */ beq lbl_8003E3A0
/* 8003E380 0003B2E0 80 7F 07 80 */ lwz r3, 0x780(r31)
/* 8003E384 0003B2E4 28 03 00 00 */ cmplwi r3, 0
/* 8003E388 0003B2E8 41 82 00 18 */ beq lbl_8003E3A0
/* 8003E38C 0003B2EC 81 83 00 00 */ lwz r12, 0(r3)
/* 8003E390 0003B2F0 38 80 00 01 */ li r4, 1
/* 8003E394 0003B2F4 81 8C 00 08 */ lwz r12, 8(r12)
/* 8003E398 0003B2F8 7D 89 03 A6 */ mtctr r12
/* 8003E39C 0003B2FC 4E 80 04 21 */ bctrl
lbl_8003E3A0:
/* 8003E3A0 0003B300 88 61 00 08 */ lbz r3, 8(r1)
/* 8003E3A4 0003B304 38 00 00 00 */ li r0, 0
/* 8003E3A8 0003B308 98 7F 07 7C */ stb r3, 0x77c(r31)
/* 8003E3AC 0003B30C 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8003E3B0 0003B310 90 7F 07 80 */ stw r3, 0x780(r31)
/* 8003E3B4 0003B314 98 01 00 08 */ stb r0, 8(r1)
lbl_8003E3B8:
/* 8003E3B8 0003B318 88 01 00 08 */ lbz r0, 8(r1)
/* 8003E3BC 0003B31C 28 00 00 00 */ cmplwi r0, 0
/* 8003E3C0 0003B320 41 82 00 24 */ beq lbl_8003E3E4
/* 8003E3C4 0003B324 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8003E3C8 0003B328 28 03 00 00 */ cmplwi r3, 0
/* 8003E3CC 0003B32C 41 82 00 18 */ beq lbl_8003E3E4
/* 8003E3D0 0003B330 81 83 00 00 */ lwz r12, 0(r3)
/* 8003E3D4 0003B334 38 80 00 01 */ li r4, 1
/* 8003E3D8 0003B338 81 8C 00 08 */ lwz r12, 8(r12)
/* 8003E3DC 0003B33C 7D 89 03 A6 */ mtctr r12
/* 8003E3E0 0003B340 4E 80 04 21 */ bctrl
lbl_8003E3E4:
/* 8003E3E4 0003B344 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003E3E8 0003B348 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003E3EC 0003B34C 7C 08 03 A6 */ mtlr r0
/* 8003E3F0 0003B350 38 21 00 20 */ addi r1, r1, 0x20
/* 8003E3F4 0003B354 4E 80 00 20 */ blr
.global InitMuzzleData__10CPlayerGunFv
InitMuzzleData__10CPlayerGunFv:
/* 8003E3F8 0003B358 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8003E3FC 0003B35C 7C 08 02 A6 */ mflr r0
/* 8003E400 0003B360 3C 80 50 41 */ lis r4, 0x50415254@ha
/* 8003E404 0003B364 90 01 00 74 */ stw r0, 0x74(r1)
/* 8003E408 0003B368 BE A1 00 44 */ stmw r21, 0x44(r1)
/* 8003E40C 0003B36C 7C 79 1B 78 */ mr r25, r3
/* 8003E410 0003B370 3B 79 07 C4 */ addi r27, r25, 0x7c4
/* 8003E414 0003B374 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 8003E418 0003B378 7F 7D DB 78 */ mr r29, r27
/* 8003E41C 0003B37C 3B 99 08 04 */ addi r28, r25, 0x804
/* 8003E420 0003B380 3B C4 52 54 */ addi r30, r4, 0x50415254@l
/* 8003E424 0003B384 3B 01 00 28 */ addi r24, r1, 0x28
/* 8003E428 0003B388 3B E3 CE B0 */ addi r31, r3, lbl_803CCEB0@l
/* 8003E42C 0003B38C 3B 40 00 00 */ li r26, 0
/* 8003E430 0003B390 3A E0 00 00 */ li r23, 0
lbl_8003E434:
/* 8003E434 0003B394 2C 1A 00 00 */ cmpwi r26, 0
/* 8003E438 0003B398 80 6D A1 48 */ lwz r3, gpTweakGunRes@sda21(r13)
/* 8003E43C 0003B39C 41 80 00 0C */ blt lbl_8003E448
/* 8003E440 0003B3A0 2C 1A 00 04 */ cmpwi r26, 4
/* 8003E444 0003B3A4 40 81 00 0C */ ble lbl_8003E450
lbl_8003E448:
/* 8003E448 0003B3A8 38 00 FF FF */ li r0, -1
/* 8003E44C 0003B3AC 48 00 00 0C */ b lbl_8003E458
lbl_8003E450:
/* 8003E450 0003B3B0 80 63 00 B0 */ lwz r3, 0xb0(r3)
/* 8003E454 0003B3B4 7C 03 B8 2E */ lwzx r0, r3, r23
lbl_8003E458:
/* 8003E458 0003B3B8 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8003E45C 0003B3BC 38 61 00 18 */ addi r3, r1, 0x18
/* 8003E460 0003B3C0 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8003E464 0003B3C4 38 A1 00 20 */ addi r5, r1, 0x20
/* 8003E468 0003B3C8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003E46C 0003B3CC 81 84 00 00 */ lwz r12, 0(r4)
/* 8003E470 0003B3D0 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8003E474 0003B3D4 7D 89 03 A6 */ mtctr r12
/* 8003E478 0003B3D8 4E 80 04 21 */ bctrl
/* 8003E47C 0003B3DC 7F 03 C3 78 */ mr r3, r24
/* 8003E480 0003B3E0 38 81 00 18 */ addi r4, r1, 0x18
/* 8003E484 0003B3E4 48 30 2A 25 */ bl __ct__6CTokenFRC6CToken
/* 8003E488 0003B3E8 7F 03 C3 78 */ mr r3, r24
/* 8003E48C 0003B3EC 48 30 29 81 */ bl GetObj__6CTokenFv
/* 8003E490 0003B3F0 80 03 00 04 */ lwz r0, 4(r3)
/* 8003E494 0003B3F4 90 01 00 30 */ stw r0, 0x30(r1)
/* 8003E498 0003B3F8 80 19 07 C0 */ lwz r0, 0x7c0(r25)
/* 8003E49C 0003B3FC 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8003E4A0 0003B400 7E DB 02 15 */ add. r22, r27, r0
/* 8003E4A4 0003B404 41 82 00 20 */ beq lbl_8003E4C4
/* 8003E4A8 0003B408 7E C3 B3 78 */ mr r3, r22
/* 8003E4AC 0003B40C 38 81 00 28 */ addi r4, r1, 0x28
/* 8003E4B0 0003B410 48 30 29 F9 */ bl __ct__6CTokenFRC6CToken
/* 8003E4B4 0003B414 80 01 00 30 */ lwz r0, 0x30(r1)
/* 8003E4B8 0003B418 7E C3 B3 78 */ mr r3, r22
/* 8003E4BC 0003B41C 90 16 00 08 */ stw r0, 8(r22)
/* 8003E4C0 0003B420 48 30 28 C5 */ bl Lock__6CTokenFv
lbl_8003E4C4:
/* 8003E4C4 0003B424 80 B9 07 C0 */ lwz r5, 0x7c0(r25)
/* 8003E4C8 0003B428 38 61 00 28 */ addi r3, r1, 0x28
/* 8003E4CC 0003B42C 38 80 00 00 */ li r4, 0
/* 8003E4D0 0003B430 38 05 00 01 */ addi r0, r5, 1
/* 8003E4D4 0003B434 90 19 07 C0 */ stw r0, 0x7c0(r25)
/* 8003E4D8 0003B438 48 30 29 69 */ bl __dt__6CTokenFv
/* 8003E4DC 0003B43C 38 61 00 18 */ addi r3, r1, 0x18
/* 8003E4E0 0003B440 38 80 FF FF */ li r4, -1
/* 8003E4E4 0003B444 48 30 29 5D */ bl __dt__6CTokenFv
/* 8003E4E8 0003B448 38 9F 00 09 */ addi r4, r31, 9
/* 8003E4EC 0003B44C 3A A0 00 00 */ li r21, 0
/* 8003E4F0 0003B450 38 60 03 40 */ li r3, 0x340
/* 8003E4F4 0003B454 38 A0 00 00 */ li r5, 0
/* 8003E4F8 0003B458 48 2D 73 75 */ bl __nw__FUlPCcPCc
/* 8003E4FC 0003B45C 7C 76 1B 79 */ or. r22, r3, r3
/* 8003E500 0003B460 41 82 00 2C */ beq lbl_8003E52C
/* 8003E504 0003B464 7F A4 EB 78 */ mr r4, r29
/* 8003E508 0003B468 38 61 00 10 */ addi r3, r1, 0x10
/* 8003E50C 0003B46C 48 30 29 9D */ bl __ct__6CTokenFRC6CToken
/* 8003E510 0003B470 7E C3 B3 78 */ mr r3, r22
/* 8003E514 0003B474 38 81 00 10 */ addi r4, r1, 0x10
/* 8003E518 0003B478 3A A0 00 01 */ li r21, 1
/* 8003E51C 0003B47C 38 A0 00 00 */ li r5, 0
/* 8003E520 0003B480 38 C0 00 01 */ li r6, 1
/* 8003E524 0003B484 48 2E 0E BD */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 8003E528 0003B488 7C 76 1B 78 */ mr r22, r3
lbl_8003E52C:
/* 8003E52C 0003B48C 7E A0 07 75 */ extsb. r0, r21
/* 8003E530 0003B490 41 82 00 10 */ beq lbl_8003E540
/* 8003E534 0003B494 38 61 00 10 */ addi r3, r1, 0x10
/* 8003E538 0003B498 38 80 00 00 */ li r4, 0
/* 8003E53C 0003B49C 48 30 29 05 */ bl __dt__6CTokenFv
lbl_8003E540:
/* 8003E540 0003B4A0 7E C3 B3 78 */ mr r3, r22
/* 8003E544 0003B4A4 38 80 00 00 */ li r4, 0
/* 8003E548 0003B4A8 81 96 00 00 */ lwz r12, 0(r22)
/* 8003E54C 0003B4AC 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 8003E550 0003B4B0 7D 89 03 A6 */ mtctr r12
/* 8003E554 0003B4B4 4E 80 04 21 */ bctrl
/* 8003E558 0003B4B8 80 19 08 00 */ lwz r0, 0x800(r25)
/* 8003E55C 0003B4BC 7C 76 00 D0 */ neg r3, r22
/* 8003E560 0003B4C0 7C 63 B3 78 */ or r3, r3, r22
/* 8003E564 0003B4C4 92 C1 00 0C */ stw r22, 0xc(r1)
/* 8003E568 0003B4C8 54 00 18 38 */ slwi r0, r0, 3
/* 8003E56C 0003B4CC 54 63 0F FE */ srwi r3, r3, 0x1f
/* 8003E570 0003B4D0 7C 9C 02 15 */ add. r4, r28, r0
/* 8003E574 0003B4D4 98 61 00 08 */ stb r3, 8(r1)
/* 8003E578 0003B4D8 41 82 00 14 */ beq lbl_8003E58C
/* 8003E57C 0003B4DC 98 64 00 00 */ stb r3, 0(r4)
/* 8003E580 0003B4E0 38 00 00 00 */ li r0, 0
/* 8003E584 0003B4E4 92 C4 00 04 */ stw r22, 4(r4)
/* 8003E588 0003B4E8 98 01 00 08 */ stb r0, 8(r1)
lbl_8003E58C:
/* 8003E58C 0003B4EC 80 79 08 00 */ lwz r3, 0x800(r25)
/* 8003E590 0003B4F0 88 01 00 08 */ lbz r0, 8(r1)
/* 8003E594 0003B4F4 38 63 00 01 */ addi r3, r3, 1
/* 8003E598 0003B4F8 28 00 00 00 */ cmplwi r0, 0
/* 8003E59C 0003B4FC 90 79 08 00 */ stw r3, 0x800(r25)
/* 8003E5A0 0003B500 41 82 00 24 */ beq lbl_8003E5C4
/* 8003E5A4 0003B504 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8003E5A8 0003B508 28 03 00 00 */ cmplwi r3, 0
/* 8003E5AC 0003B50C 41 82 00 18 */ beq lbl_8003E5C4
/* 8003E5B0 0003B510 81 83 00 00 */ lwz r12, 0(r3)
/* 8003E5B4 0003B514 38 80 00 01 */ li r4, 1
/* 8003E5B8 0003B518 81 8C 00 08 */ lwz r12, 8(r12)
/* 8003E5BC 0003B51C 7D 89 03 A6 */ mtctr r12
/* 8003E5C0 0003B520 4E 80 04 21 */ bctrl
lbl_8003E5C4:
/* 8003E5C4 0003B524 3B 5A 00 01 */ addi r26, r26, 1
/* 8003E5C8 0003B528 3A F7 00 04 */ addi r23, r23, 4
/* 8003E5CC 0003B52C 2C 1A 00 05 */ cmpwi r26, 5
/* 8003E5D0 0003B530 3B BD 00 0C */ addi r29, r29, 0xc
/* 8003E5D4 0003B534 41 80 FE 60 */ blt lbl_8003E434
/* 8003E5D8 0003B538 BA A1 00 44 */ lmw r21, 0x44(r1)
/* 8003E5DC 0003B53C 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8003E5E0 0003B540 7C 08 03 A6 */ mtlr r0
/* 8003E5E4 0003B544 38 21 00 70 */ addi r1, r1, 0x70
/* 8003E5E8 0003B548 4E 80 00 20 */ blr
.global InitBombData__10CPlayerGunFv
InitBombData__10CPlayerGunFv:
/* 8003E5EC 0003B54C 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 8003E5F0 0003B550 7C 08 02 A6 */ mflr r0
/* 8003E5F4 0003B554 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 8003E5F8 0003B558 BF 01 00 A0 */ stmw r24, 0xa0(r1)
/* 8003E5FC 0003B55C 7C 7C 1B 78 */ mr r28, r3
/* 8003E600 0003B560 3B E1 00 84 */ addi r31, r1, 0x84
/* 8003E604 0003B564 3B A0 00 00 */ li r29, 0
/* 8003E608 0003B568 3B DC 07 88 */ addi r30, r28, 0x788
lbl_8003E60C:
/* 8003E60C 0003B56C 3B 60 00 00 */ li r27, 0
/* 8003E610 0003B570 93 61 00 80 */ stw r27, 0x80(r1)
/* 8003E614 0003B574 80 1C 07 84 */ lwz r0, 0x784(r28)
/* 8003E618 0003B578 1C 00 00 1C */ mulli r0, r0, 0x1c
/* 8003E61C 0003B57C 7C 7E 02 15 */ add. r3, r30, r0
/* 8003E620 0003B580 41 82 00 50 */ beq lbl_8003E670
/* 8003E624 0003B584 93 63 00 00 */ stw r27, 0(r3)
/* 8003E628 0003B588 7F F9 FB 78 */ mr r25, r31
/* 8003E62C 0003B58C 3B 43 00 04 */ addi r26, r3, 4
/* 8003E630 0003B590 83 03 00 00 */ lwz r24, 0(r3)
/* 8003E634 0003B594 48 00 00 34 */ b lbl_8003E668
lbl_8003E638:
/* 8003E638 0003B598 28 1A 00 00 */ cmplwi r26, 0
/* 8003E63C 0003B59C 41 82 00 20 */ beq lbl_8003E65C
/* 8003E640 0003B5A0 7F 43 D3 78 */ mr r3, r26
/* 8003E644 0003B5A4 7F 24 CB 78 */ mr r4, r25
/* 8003E648 0003B5A8 48 30 28 61 */ bl __ct__6CTokenFRC6CToken
/* 8003E64C 0003B5AC 80 19 00 08 */ lwz r0, 8(r25)
/* 8003E650 0003B5B0 7F 43 D3 78 */ mr r3, r26
/* 8003E654 0003B5B4 90 1A 00 08 */ stw r0, 8(r26)
/* 8003E658 0003B5B8 48 30 27 2D */ bl Lock__6CTokenFv
lbl_8003E65C:
/* 8003E65C 0003B5BC 3B 5A 00 0C */ addi r26, r26, 0xc
/* 8003E660 0003B5C0 3B 7B 00 01 */ addi r27, r27, 1
/* 8003E664 0003B5C4 3B 39 00 0C */ addi r25, r25, 0xc
lbl_8003E668:
/* 8003E668 0003B5C8 7C 1B C0 00 */ cmpw r27, r24
/* 8003E66C 0003B5CC 41 80 FF CC */ blt lbl_8003E638
lbl_8003E670:
/* 8003E670 0003B5D0 80 7C 07 84 */ lwz r3, 0x784(r28)
/* 8003E674 0003B5D4 7F F8 FB 78 */ mr r24, r31
/* 8003E678 0003B5D8 3B 60 00 00 */ li r27, 0
/* 8003E67C 0003B5DC 38 03 00 01 */ addi r0, r3, 1
/* 8003E680 0003B5E0 90 1C 07 84 */ stw r0, 0x784(r28)
/* 8003E684 0003B5E4 48 00 00 24 */ b lbl_8003E6A8
lbl_8003E688:
/* 8003E688 0003B5E8 28 18 00 00 */ cmplwi r24, 0
/* 8003E68C 0003B5EC 41 82 00 14 */ beq lbl_8003E6A0
/* 8003E690 0003B5F0 41 82 00 10 */ beq lbl_8003E6A0
/* 8003E694 0003B5F4 7F 03 C3 78 */ mr r3, r24
/* 8003E698 0003B5F8 38 80 00 00 */ li r4, 0
/* 8003E69C 0003B5FC 48 30 27 A5 */ bl __dt__6CTokenFv
lbl_8003E6A0:
/* 8003E6A0 0003B600 3B 18 00 0C */ addi r24, r24, 0xc
/* 8003E6A4 0003B604 3B 7B 00 01 */ addi r27, r27, 1
lbl_8003E6A8:
/* 8003E6A8 0003B608 80 01 00 80 */ lwz r0, 0x80(r1)
/* 8003E6AC 0003B60C 7C 1B 00 00 */ cmpw r27, r0
/* 8003E6B0 0003B610 41 80 FF D8 */ blt lbl_8003E688
/* 8003E6B4 0003B614 3B BD 00 01 */ addi r29, r29, 1
/* 8003E6B8 0003B618 38 00 00 00 */ li r0, 0
/* 8003E6BC 0003B61C 2C 1D 00 02 */ cmpwi r29, 2
/* 8003E6C0 0003B620 90 01 00 80 */ stw r0, 0x80(r1)
/* 8003E6C4 0003B624 41 80 FF 48 */ blt lbl_8003E60C
/* 8003E6C8 0003B628 80 AD A1 48 */ lwz r5, gpTweakGunRes@sda21(r13)
/* 8003E6CC 0003B62C 3C 60 50 41 */ lis r3, 0x50415254@ha
/* 8003E6D0 0003B630 38 03 52 54 */ addi r0, r3, 0x50415254@l
/* 8003E6D4 0003B634 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8003E6D8 0003B638 80 C5 00 28 */ lwz r6, 0x28(r5)
/* 8003E6DC 0003B63C 38 61 00 28 */ addi r3, r1, 0x28
/* 8003E6E0 0003B640 38 A1 00 30 */ addi r5, r1, 0x30
/* 8003E6E4 0003B644 90 01 00 30 */ stw r0, 0x30(r1)
/* 8003E6E8 0003B648 90 C1 00 34 */ stw r6, 0x34(r1)
/* 8003E6EC 0003B64C 81 84 00 00 */ lwz r12, 0(r4)
/* 8003E6F0 0003B650 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8003E6F4 0003B654 7D 89 03 A6 */ mtctr r12
/* 8003E6F8 0003B658 4E 80 04 21 */ bctrl
/* 8003E6FC 0003B65C 38 61 00 48 */ addi r3, r1, 0x48
/* 8003E700 0003B660 38 81 00 28 */ addi r4, r1, 0x28
/* 8003E704 0003B664 48 30 27 A5 */ bl __ct__6CTokenFRC6CToken
/* 8003E708 0003B668 38 61 00 28 */ addi r3, r1, 0x28
/* 8003E70C 0003B66C 38 80 FF FF */ li r4, -1
/* 8003E710 0003B670 48 30 27 31 */ bl __dt__6CTokenFv
/* 8003E714 0003B674 80 AD A1 48 */ lwz r5, gpTweakGunRes@sda21(r13)
/* 8003E718 0003B678 3C 60 50 41 */ lis r3, 0x50415254@ha
/* 8003E71C 0003B67C 38 03 52 54 */ addi r0, r3, 0x50415254@l
/* 8003E720 0003B680 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8003E724 0003B684 80 C5 00 2C */ lwz r6, 0x2c(r5)
/* 8003E728 0003B688 38 61 00 18 */ addi r3, r1, 0x18
/* 8003E72C 0003B68C 38 A1 00 20 */ addi r5, r1, 0x20
/* 8003E730 0003B690 90 01 00 20 */ stw r0, 0x20(r1)
/* 8003E734 0003B694 90 C1 00 24 */ stw r6, 0x24(r1)
/* 8003E738 0003B698 81 84 00 00 */ lwz r12, 0(r4)
/* 8003E73C 0003B69C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8003E740 0003B6A0 7D 89 03 A6 */ mtctr r12
/* 8003E744 0003B6A4 4E 80 04 21 */ bctrl
/* 8003E748 0003B6A8 38 61 00 40 */ addi r3, r1, 0x40
/* 8003E74C 0003B6AC 38 81 00 18 */ addi r4, r1, 0x18
/* 8003E750 0003B6B0 48 30 27 59 */ bl __ct__6CTokenFRC6CToken
/* 8003E754 0003B6B4 38 61 00 18 */ addi r3, r1, 0x18
/* 8003E758 0003B6B8 38 80 FF FF */ li r4, -1
/* 8003E75C 0003B6BC 48 30 26 E5 */ bl __dt__6CTokenFv
/* 8003E760 0003B6C0 80 AD A1 48 */ lwz r5, gpTweakGunRes@sda21(r13)
/* 8003E764 0003B6C4 3C 60 50 41 */ lis r3, 0x50415254@ha
/* 8003E768 0003B6C8 38 03 52 54 */ addi r0, r3, 0x50415254@l
/* 8003E76C 0003B6CC 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8003E770 0003B6D0 80 C5 00 30 */ lwz r6, 0x30(r5)
/* 8003E774 0003B6D4 38 61 00 08 */ addi r3, r1, 8
/* 8003E778 0003B6D8 38 A1 00 10 */ addi r5, r1, 0x10
/* 8003E77C 0003B6DC 90 01 00 10 */ stw r0, 0x10(r1)
/* 8003E780 0003B6E0 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8003E784 0003B6E4 81 84 00 00 */ lwz r12, 0(r4)
/* 8003E788 0003B6E8 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8003E78C 0003B6EC 7D 89 03 A6 */ mtctr r12
/* 8003E790 0003B6F0 4E 80 04 21 */ bctrl
/* 8003E794 0003B6F4 38 61 00 38 */ addi r3, r1, 0x38
/* 8003E798 0003B6F8 38 81 00 08 */ addi r4, r1, 8
/* 8003E79C 0003B6FC 48 30 27 0D */ bl __ct__6CTokenFRC6CToken
/* 8003E7A0 0003B700 38 61 00 08 */ addi r3, r1, 8
/* 8003E7A4 0003B704 38 80 FF FF */ li r4, -1
/* 8003E7A8 0003B708 48 30 26 99 */ bl __dt__6CTokenFv
/* 8003E7AC 0003B70C 3B 01 00 74 */ addi r24, r1, 0x74
/* 8003E7B0 0003B710 38 81 00 48 */ addi r4, r1, 0x48
/* 8003E7B4 0003B714 7F 03 C3 78 */ mr r3, r24
/* 8003E7B8 0003B718 48 30 26 F1 */ bl __ct__6CTokenFRC6CToken
/* 8003E7BC 0003B71C 7F 03 C3 78 */ mr r3, r24
/* 8003E7C0 0003B720 48 30 26 4D */ bl GetObj__6CTokenFv
/* 8003E7C4 0003B724 80 03 00 04 */ lwz r0, 4(r3)
/* 8003E7C8 0003B728 90 01 00 7C */ stw r0, 0x7c(r1)
/* 8003E7CC 0003B72C 80 1E 00 00 */ lwz r0, 0(r30)
/* 8003E7D0 0003B730 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8003E7D4 0003B734 7F 7E 02 14 */ add r27, r30, r0
/* 8003E7D8 0003B738 37 7B 00 04 */ addic. r27, r27, 4
/* 8003E7DC 0003B73C 41 82 00 20 */ beq lbl_8003E7FC
/* 8003E7E0 0003B740 7F 63 DB 78 */ mr r3, r27
/* 8003E7E4 0003B744 7F 04 C3 78 */ mr r4, r24
/* 8003E7E8 0003B748 48 30 26 C1 */ bl __ct__6CTokenFRC6CToken
/* 8003E7EC 0003B74C 80 01 00 7C */ lwz r0, 0x7c(r1)
/* 8003E7F0 0003B750 7F 63 DB 78 */ mr r3, r27
/* 8003E7F4 0003B754 90 1B 00 08 */ stw r0, 8(r27)
/* 8003E7F8 0003B758 48 30 25 8D */ bl Lock__6CTokenFv
lbl_8003E7FC:
/* 8003E7FC 0003B75C 80 BE 00 00 */ lwz r5, 0(r30)
/* 8003E800 0003B760 38 61 00 74 */ addi r3, r1, 0x74
/* 8003E804 0003B764 38 80 00 00 */ li r4, 0
/* 8003E808 0003B768 38 05 00 01 */ addi r0, r5, 1
/* 8003E80C 0003B76C 90 1E 00 00 */ stw r0, 0(r30)
/* 8003E810 0003B770 48 30 26 31 */ bl __dt__6CTokenFv
/* 8003E814 0003B774 3B 01 00 68 */ addi r24, r1, 0x68
/* 8003E818 0003B778 38 81 00 40 */ addi r4, r1, 0x40
/* 8003E81C 0003B77C 7F 03 C3 78 */ mr r3, r24
/* 8003E820 0003B780 48 30 26 89 */ bl __ct__6CTokenFRC6CToken
/* 8003E824 0003B784 7F 03 C3 78 */ mr r3, r24
/* 8003E828 0003B788 48 30 25 E5 */ bl GetObj__6CTokenFv
/* 8003E82C 0003B78C 80 03 00 04 */ lwz r0, 4(r3)
/* 8003E830 0003B790 90 01 00 70 */ stw r0, 0x70(r1)
/* 8003E834 0003B794 80 1E 00 00 */ lwz r0, 0(r30)
/* 8003E838 0003B798 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8003E83C 0003B79C 7F 7E 02 14 */ add r27, r30, r0
/* 8003E840 0003B7A0 37 7B 00 04 */ addic. r27, r27, 4
/* 8003E844 0003B7A4 41 82 00 20 */ beq lbl_8003E864
/* 8003E848 0003B7A8 7F 63 DB 78 */ mr r3, r27
/* 8003E84C 0003B7AC 7F 04 C3 78 */ mr r4, r24
/* 8003E850 0003B7B0 48 30 26 59 */ bl __ct__6CTokenFRC6CToken
/* 8003E854 0003B7B4 80 01 00 70 */ lwz r0, 0x70(r1)
/* 8003E858 0003B7B8 7F 63 DB 78 */ mr r3, r27
/* 8003E85C 0003B7BC 90 1B 00 08 */ stw r0, 8(r27)
/* 8003E860 0003B7C0 48 30 25 25 */ bl Lock__6CTokenFv
lbl_8003E864:
/* 8003E864 0003B7C4 80 BE 00 00 */ lwz r5, 0(r30)
/* 8003E868 0003B7C8 38 61 00 68 */ addi r3, r1, 0x68
/* 8003E86C 0003B7CC 38 80 00 00 */ li r4, 0
/* 8003E870 0003B7D0 38 05 00 01 */ addi r0, r5, 1
/* 8003E874 0003B7D4 90 1E 00 00 */ stw r0, 0(r30)
/* 8003E878 0003B7D8 48 30 25 C9 */ bl __dt__6CTokenFv
/* 8003E87C 0003B7DC 3B 01 00 5C */ addi r24, r1, 0x5c
/* 8003E880 0003B7E0 38 81 00 38 */ addi r4, r1, 0x38
/* 8003E884 0003B7E4 7F 03 C3 78 */ mr r3, r24
/* 8003E888 0003B7E8 48 30 26 21 */ bl __ct__6CTokenFRC6CToken
/* 8003E88C 0003B7EC 7F 03 C3 78 */ mr r3, r24
/* 8003E890 0003B7F0 48 30 25 7D */ bl GetObj__6CTokenFv
/* 8003E894 0003B7F4 80 03 00 04 */ lwz r0, 4(r3)
/* 8003E898 0003B7F8 3B 1E 00 1C */ addi r24, r30, 0x1c
/* 8003E89C 0003B7FC 90 01 00 64 */ stw r0, 0x64(r1)
/* 8003E8A0 0003B800 80 1E 00 1C */ lwz r0, 0x1c(r30)
/* 8003E8A4 0003B804 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8003E8A8 0003B808 7F 78 02 14 */ add r27, r24, r0
/* 8003E8AC 0003B80C 37 7B 00 04 */ addic. r27, r27, 4
/* 8003E8B0 0003B810 41 82 00 20 */ beq lbl_8003E8D0
/* 8003E8B4 0003B814 7F 63 DB 78 */ mr r3, r27
/* 8003E8B8 0003B818 38 81 00 5C */ addi r4, r1, 0x5c
/* 8003E8BC 0003B81C 48 30 25 ED */ bl __ct__6CTokenFRC6CToken
/* 8003E8C0 0003B820 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8003E8C4 0003B824 7F 63 DB 78 */ mr r3, r27
/* 8003E8C8 0003B828 90 1B 00 08 */ stw r0, 8(r27)
/* 8003E8CC 0003B82C 48 30 24 B9 */ bl Lock__6CTokenFv
lbl_8003E8D0:
/* 8003E8D0 0003B830 80 B8 00 00 */ lwz r5, 0(r24)
/* 8003E8D4 0003B834 38 61 00 5C */ addi r3, r1, 0x5c
/* 8003E8D8 0003B838 38 80 00 00 */ li r4, 0
/* 8003E8DC 0003B83C 38 05 00 01 */ addi r0, r5, 1
/* 8003E8E0 0003B840 90 18 00 00 */ stw r0, 0(r24)
/* 8003E8E4 0003B844 48 30 25 5D */ bl __dt__6CTokenFv
/* 8003E8E8 0003B848 3B 21 00 50 */ addi r25, r1, 0x50
/* 8003E8EC 0003B84C 38 81 00 38 */ addi r4, r1, 0x38
/* 8003E8F0 0003B850 7F 23 CB 78 */ mr r3, r25
/* 8003E8F4 0003B854 48 30 25 B5 */ bl __ct__6CTokenFRC6CToken
/* 8003E8F8 0003B858 7F 23 CB 78 */ mr r3, r25
/* 8003E8FC 0003B85C 48 30 25 11 */ bl GetObj__6CTokenFv
/* 8003E900 0003B860 80 03 00 04 */ lwz r0, 4(r3)
/* 8003E904 0003B864 90 01 00 58 */ stw r0, 0x58(r1)
/* 8003E908 0003B868 80 18 00 00 */ lwz r0, 0(r24)
/* 8003E90C 0003B86C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8003E910 0003B870 7F 78 02 14 */ add r27, r24, r0
/* 8003E914 0003B874 37 7B 00 04 */ addic. r27, r27, 4
/* 8003E918 0003B878 41 82 00 20 */ beq lbl_8003E938
/* 8003E91C 0003B87C 7F 63 DB 78 */ mr r3, r27
/* 8003E920 0003B880 7F 24 CB 78 */ mr r4, r25
/* 8003E924 0003B884 48 30 25 85 */ bl __ct__6CTokenFRC6CToken
/* 8003E928 0003B888 80 01 00 58 */ lwz r0, 0x58(r1)
/* 8003E92C 0003B88C 7F 63 DB 78 */ mr r3, r27
/* 8003E930 0003B890 90 1B 00 08 */ stw r0, 8(r27)
/* 8003E934 0003B894 48 30 24 51 */ bl Lock__6CTokenFv
lbl_8003E938:
/* 8003E938 0003B898 80 B8 00 00 */ lwz r5, 0(r24)
/* 8003E93C 0003B89C 38 61 00 50 */ addi r3, r1, 0x50
/* 8003E940 0003B8A0 38 80 00 00 */ li r4, 0
/* 8003E944 0003B8A4 38 05 00 01 */ addi r0, r5, 1
/* 8003E948 0003B8A8 90 18 00 00 */ stw r0, 0(r24)
/* 8003E94C 0003B8AC 48 30 24 F5 */ bl __dt__6CTokenFv
/* 8003E950 0003B8B0 38 61 00 38 */ addi r3, r1, 0x38
/* 8003E954 0003B8B4 38 80 00 00 */ li r4, 0
/* 8003E958 0003B8B8 48 30 24 E9 */ bl __dt__6CTokenFv
/* 8003E95C 0003B8BC 38 61 00 40 */ addi r3, r1, 0x40
/* 8003E960 0003B8C0 38 80 00 00 */ li r4, 0
/* 8003E964 0003B8C4 48 30 24 DD */ bl __dt__6CTokenFv
/* 8003E968 0003B8C8 38 61 00 48 */ addi r3, r1, 0x48
/* 8003E96C 0003B8CC 38 80 00 00 */ li r4, 0
/* 8003E970 0003B8D0 48 30 24 D1 */ bl __dt__6CTokenFv
/* 8003E974 0003B8D4 BB 01 00 A0 */ lmw r24, 0xa0(r1)
/* 8003E978 0003B8D8 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 8003E97C 0003B8DC 7C 08 03 A6 */ mtlr r0
/* 8003E980 0003B8E0 38 21 00 C0 */ addi r1, r1, 0xc0
/* 8003E984 0003B8E4 4E 80 00 20 */ blr
.global InitBeamData__10CPlayerGunFv
InitBeamData__10CPlayerGunFv:
/* 8003E988 0003B8E8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003E98C 0003B8EC 7C 08 02 A6 */ mflr r0
/* 8003E990 0003B8F0 38 80 00 01 */ li r4, 1
/* 8003E994 0003B8F4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003E998 0003B8F8 80 03 07 4C */ lwz r0, 0x74c(r3)
/* 8003E99C 0003B8FC 90 03 07 64 */ stw r0, 0x764(r3)
/* 8003E9A0 0003B900 80 03 07 50 */ lwz r0, 0x750(r3)
/* 8003E9A4 0003B904 90 03 07 68 */ stw r0, 0x768(r3)
/* 8003E9A8 0003B908 80 03 07 54 */ lwz r0, 0x754(r3)
/* 8003E9AC 0003B90C 90 03 07 6C */ stw r0, 0x76c(r3)
/* 8003E9B0 0003B910 80 03 07 58 */ lwz r0, 0x758(r3)
/* 8003E9B4 0003B914 90 03 07 70 */ stw r0, 0x770(r3)
/* 8003E9B8 0003B918 80 03 07 64 */ lwz r0, 0x764(r3)
/* 8003E9BC 0003B91C 90 03 07 2C */ stw r0, 0x72c(r3)
/* 8003E9C0 0003B920 80 03 07 2C */ lwz r0, 0x72c(r3)
/* 8003E9C4 0003B924 90 03 07 38 */ stw r0, 0x738(r3)
/* 8003E9C8 0003B928 80 63 07 78 */ lwz r3, 0x778(r3)
/* 8003E9CC 0003B92C 81 83 00 00 */ lwz r12, 0(r3)
/* 8003E9D0 0003B930 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 8003E9D4 0003B934 7D 89 03 A6 */ mtctr r12
/* 8003E9D8 0003B938 4E 80 04 21 */ bctrl
/* 8003E9DC 0003B93C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003E9E0 0003B940 7C 08 03 A6 */ mtlr r0
/* 8003E9E4 0003B944 38 21 00 10 */ addi r1, r1, 0x10
/* 8003E9E8 0003B948 4E 80 00 20 */ blr
.global HandlePhazonBeamChange__10CPlayerGunFR13CStateManager
HandlePhazonBeamChange__10CPlayerGunFR13CStateManager:
/* 8003E9EC 0003B94C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003E9F0 0003B950 7C 08 02 A6 */ mflr r0
/* 8003E9F4 0003B954 38 A0 00 00 */ li r5, 0
/* 8003E9F8 0003B958 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003E9FC 0003B95C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003EA00 0003B960 7C 9F 23 78 */ mr r31, r4
/* 8003EA04 0003B964 93 C1 00 08 */ stw r30, 8(r1)
/* 8003EA08 0003B968 7C 7E 1B 78 */ mr r30, r3
/* 8003EA0C 0003B96C 80 03 03 3C */ lwz r0, 0x33c(r3)
/* 8003EA10 0003B970 2C 00 00 03 */ cmpwi r0, 3
/* 8003EA14 0003B974 41 82 00 2C */ beq lbl_8003EA40
/* 8003EA18 0003B978 40 80 00 74 */ bge lbl_8003EA8C
/* 8003EA1C 0003B97C 2C 00 00 00 */ cmpwi r0, 0
/* 8003EA20 0003B980 41 82 00 08 */ beq lbl_8003EA28
/* 8003EA24 0003B984 48 00 00 68 */ b lbl_8003EA8C
lbl_8003EA28:
/* 8003EA28 0003B988 38 80 00 01 */ li r4, 1
/* 8003EA2C 0003B98C 48 00 00 F5 */ bl SetPhazonBeamMorph__10CPlayerGunFb
/* 8003EA30 0003B990 38 00 00 08 */ li r0, 8
/* 8003EA34 0003B994 38 A0 00 01 */ li r5, 1
/* 8003EA38 0003B998 90 1E 03 38 */ stw r0, 0x338(r30)
/* 8003EA3C 0003B99C 48 00 00 50 */ b lbl_8003EA8C
lbl_8003EA40:
/* 8003EA40 0003B9A0 88 1E 08 35 */ lbz r0, 0x835(r30)
/* 8003EA44 0003B9A4 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8003EA48 0003B9A8 40 82 00 44 */ bne lbl_8003EA8C
/* 8003EA4C 0003B9AC 38 80 00 01 */ li r4, 1
/* 8003EA50 0003B9B0 48 00 00 D1 */ bl SetPhazonBeamMorph__10CPlayerGunFb
/* 8003EA54 0003B9B4 38 00 00 09 */ li r0, 9
/* 8003EA58 0003B9B8 38 A0 00 01 */ li r5, 1
/* 8003EA5C 0003B9BC 90 1E 03 38 */ stw r0, 0x338(r30)
/* 8003EA60 0003B9C0 80 9E 07 5C */ lwz r4, 0x75c(r30)
/* 8003EA64 0003B9C4 28 04 00 00 */ cmplwi r4, 0
/* 8003EA68 0003B9C8 41 82 00 24 */ beq lbl_8003EA8C
/* 8003EA6C 0003B9CC 88 04 02 74 */ lbz r0, 0x274(r4)
/* 8003EA70 0003B9D0 38 60 00 00 */ li r3, 0
/* 8003EA74 0003B9D4 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003EA78 0003B9D8 38 60 00 01 */ li r3, 1
/* 8003EA7C 0003B9DC 98 04 02 74 */ stb r0, 0x274(r4)
/* 8003EA80 0003B9E0 88 04 02 74 */ lbz r0, 0x274(r4)
/* 8003EA84 0003B9E4 50 60 2E B4 */ rlwimi r0, r3, 5, 0x1a, 0x1a
/* 8003EA88 0003B9E8 98 04 02 74 */ stb r0, 0x274(r4)
lbl_8003EA8C:
/* 8003EA8C 0003B9EC 54 A0 06 3F */ clrlwi. r0, r5, 0x18
/* 8003EA90 0003B9F0 41 82 00 78 */ beq lbl_8003EB08
/* 8003EA94 0003B9F4 80 BF 08 B8 */ lwz r5, 0x8b8(r31)
/* 8003EA98 0003B9F8 7F C3 F3 78 */ mr r3, r30
/* 8003EA9C 0003B9FC 7F E4 FB 78 */ mr r4, r31
/* 8003EAA0 0003BA00 38 C0 00 01 */ li r6, 1
/* 8003EAA4 0003BA04 80 A5 00 00 */ lwz r5, 0(r5)
/* 8003EAA8 0003BA08 48 00 06 01 */ bl ResetBeamParams__10CPlayerGunFR13CStateManagerRC12CPlayerStateb
/* 8003EAAC 0003BA0C 38 00 00 00 */ li r0, 0
/* 8003EAB0 0003BA10 7F C3 F3 78 */ mr r3, r30
/* 8003EAB4 0003BA14 90 1E 02 F8 */ stw r0, 0x2f8(r30)
/* 8003EAB8 0003BA18 38 80 00 09 */ li r4, 9
/* 8003EABC 0003BA1C 38 A0 00 00 */ li r5, 0
/* 8003EAC0 0003BA20 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8003EAC4 0003BA24 60 00 00 08 */ ori r0, r0, 8
/* 8003EAC8 0003BA28 90 1E 02 F8 */ stw r0, 0x2f8(r30)
/* 8003EACC 0003BA2C 48 00 2D F9 */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
/* 8003EAD0 0003BA30 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 8003EAD4 0003BA34 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8003EAD8 0003BA38 41 82 00 20 */ beq lbl_8003EAF8
/* 8003EADC 0003BA3C 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 8003EAE0 0003BA40 38 60 00 01 */ li r3, 1
/* 8003EAE4 0003BA44 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
/* 8003EAE8 0003BA48 7F E4 FB 78 */ mr r4, r31
/* 8003EAEC 0003BA4C 98 1E 08 32 */ stb r0, 0x832(r30)
/* 8003EAF0 0003BA50 80 7E 07 40 */ lwz r3, 0x740(r30)
/* 8003EAF4 0003BA54 48 0D F4 01 */ bl EnterIdle__11CGrappleArmFR13CStateManager
lbl_8003EAF8:
/* 8003EAF8 0003BA58 7F C3 F3 78 */ mr r3, r30
/* 8003EAFC 0003BA5C 7F E4 FB 78 */ mr r4, r31
/* 8003EB00 0003BA60 38 A0 00 00 */ li r5, 0
/* 8003EB04 0003BA64 4B FF D4 45 */ bl CancelCharge__10CPlayerGunFR13CStateManagerb
lbl_8003EB08:
/* 8003EB08 0003BA68 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003EB0C 0003BA6C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003EB10 0003BA70 83 C1 00 08 */ lwz r30, 8(r1)
/* 8003EB14 0003BA74 7C 08 03 A6 */ mtlr r0
/* 8003EB18 0003BA78 38 21 00 10 */ addi r1, r1, 0x10
/* 8003EB1C 0003BA7C 4E 80 00 20 */ blr
.global SetPhazonBeamMorph__10CPlayerGunFb
SetPhazonBeamMorph__10CPlayerGunFb:
/* 8003EB20 0003BA80 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 8003EB24 0003BA84 41 82 00 0C */ beq lbl_8003EB30
/* 8003EB28 0003BA88 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003EB2C 0003BA8C 48 00 00 08 */ b lbl_8003EB34
lbl_8003EB30:
/* 8003EB30 0003BA90 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
lbl_8003EB34:
/* 8003EB34 0003BA94 D0 03 03 9C */ stfs f0, 0x39c(r3)
/* 8003EB38 0003BA98 54 85 06 3E */ clrlwi r5, r4, 0x18
/* 8003EB3C 0003BA9C 38 80 00 01 */ li r4, 1
/* 8003EB40 0003BAA0 88 03 08 35 */ lbz r0, 0x835(r3)
/* 8003EB44 0003BAA4 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b
/* 8003EB48 0003BAA8 98 03 08 35 */ stb r0, 0x835(r3)
/* 8003EB4C 0003BAAC 88 03 08 35 */ lbz r0, 0x835(r3)
/* 8003EB50 0003BAB0 50 80 2E B4 */ rlwimi r0, r4, 5, 0x1a, 0x1a
/* 8003EB54 0003BAB4 98 03 08 35 */ stb r0, 0x835(r3)
/* 8003EB58 0003BAB8 4E 80 00 20 */ blr
.global HandleBeamChange__10CPlayerGunFRC11CFinalInputR13CStateManager
HandleBeamChange__10CPlayerGunFRC11CFinalInputR13CStateManager:
/* 8003EB5C 0003BABC 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8003EB60 0003BAC0 7C 08 02 A6 */ mflr r0
/* 8003EB64 0003BAC4 90 01 00 54 */ stw r0, 0x54(r1)
/* 8003EB68 0003BAC8 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 8003EB6C 0003BACC F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0
/* 8003EB70 0003BAD0 DB C1 00 30 */ stfd f30, 0x30(r1)
/* 8003EB74 0003BAD4 F3 C1 00 38 */ psq_st f30, 56(r1), 0, qr0
/* 8003EB78 0003BAD8 BF 01 00 10 */ stmw r24, 0x10(r1)
/* 8003EB7C 0003BADC 80 E5 08 B8 */ lwz r7, 0x8b8(r5)
/* 8003EB80 0003BAE0 7C BF 2B 78 */ mr r31, r5
/* 8003EB84 0003BAE4 3C C0 80 3D */ lis r6, mBeamArr@ha
/* 8003EB88 0003BAE8 3C A0 80 3D */ lis r5, mBeamCtrlCmd@ha
/* 8003EB8C 0003BAEC C3 C2 84 6C */ lfs f30, lbl_805AA18C@sda21(r2)
/* 8003EB90 0003BAF0 3B 86 CE 54 */ addi r28, r6, mBeamArr@l
/* 8003EB94 0003BAF4 83 A7 00 00 */ lwz r29, 0(r7)
/* 8003EB98 0003BAF8 3B 65 CE 74 */ addi r27, r5, mBeamCtrlCmd@l
/* 8003EB9C 0003BAFC C3 E2 84 E8 */ lfs f31, lbl_805AA208@sda21(r2)
/* 8003EBA0 0003BB00 7C 7E 1B 78 */ mr r30, r3
/* 8003EBA4 0003BB04 7C 98 23 78 */ mr r24, r4
/* 8003EBA8 0003BB08 3B 40 FF FF */ li r26, -1
/* 8003EBAC 0003BB0C 3B 20 00 00 */ li r25, 0
lbl_8003EBB0:
/* 8003EBB0 0003BB10 80 9C 00 00 */ lwz r4, 0(r28)
/* 8003EBB4 0003BB14 7F A3 EB 78 */ mr r3, r29
/* 8003EBB8 0003BB18 48 05 2F 09 */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003EBBC 0003BB1C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003EBC0 0003BB20 41 82 00 28 */ beq lbl_8003EBE8
/* 8003EBC4 0003BB24 80 7B 00 00 */ lwz r3, 0(r27)
/* 8003EBC8 0003BB28 7F 04 C3 78 */ mr r4, r24
/* 8003EBCC 0003BB2C 4B FC DD 4D */ bl GetAnalogInput__13ControlMapperFQ213ControlMapper9ECommandsRC11CFinalInput
/* 8003EBD0 0003BB30 FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 8003EBD4 0003BB34 40 81 00 14 */ ble lbl_8003EBE8
/* 8003EBD8 0003BB38 FC 01 F0 40 */ fcmpo cr0, f1, f30
/* 8003EBDC 0003BB3C 40 81 00 0C */ ble lbl_8003EBE8
/* 8003EBE0 0003BB40 FF C0 08 90 */ fmr f30, f1
/* 8003EBE4 0003BB44 7F 3A CB 78 */ mr r26, r25
lbl_8003EBE8:
/* 8003EBE8 0003BB48 3B 39 00 01 */ addi r25, r25, 1
/* 8003EBEC 0003BB4C 3B 7B 00 04 */ addi r27, r27, 4
/* 8003EBF0 0003BB50 2C 19 00 04 */ cmpwi r25, 4
/* 8003EBF4 0003BB54 3B 9C 00 04 */ addi r28, r28, 4
/* 8003EBF8 0003BB58 41 80 FF B8 */ blt lbl_8003EBB0
/* 8003EBFC 0003BB5C 2C 1A FF FF */ cmpwi r26, -1
/* 8003EC00 0003BB60 40 81 01 70 */ ble lbl_8003ED70
/* 8003EC04 0003BB64 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 8003EC08 0003BB68 38 60 00 01 */ li r3, 1
/* 8003EC0C 0003BB6C 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003EC10 0003BB70 98 1E 08 33 */ stb r0, 0x833(r30)
/* 8003EC14 0003BB74 80 1E 03 10 */ lwz r0, 0x310(r30)
/* 8003EC18 0003BB78 7C 00 D0 00 */ cmpw r0, r26
/* 8003EC1C 0003BB7C 41 82 00 DC */ beq lbl_8003ECF8
/* 8003EC20 0003BB80 3C 60 80 3D */ lis r3, mBeamArr@ha
/* 8003EC24 0003BB84 57 40 10 3A */ slwi r0, r26, 2
/* 8003EC28 0003BB88 38 83 CE 54 */ addi r4, r3, mBeamArr@l
/* 8003EC2C 0003BB8C 7F A3 EB 78 */ mr r3, r29
/* 8003EC30 0003BB90 7C 84 00 2E */ lwzx r4, r4, r0
/* 8003EC34 0003BB94 48 05 2E 8D */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003EC38 0003BB98 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003EC3C 0003BB9C 41 82 00 BC */ beq lbl_8003ECF8
/* 8003EC40 0003BBA0 93 5E 03 14 */ stw r26, 0x314(r30)
/* 8003EC44 0003BBA4 38 80 00 00 */ li r4, 0
/* 8003EC48 0003BBA8 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8003EC4C 0003BBAC 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 8003EC50 0003BBB0 2C 00 00 10 */ cmpwi r0, 0x10
/* 8003EC54 0003BBB4 40 82 00 08 */ bne lbl_8003EC5C
/* 8003EC58 0003BBB8 38 80 00 10 */ li r4, 0x10
lbl_8003EC5C:
/* 8003EC5C 0003BBBC 38 60 00 00 */ li r3, 0
/* 8003EC60 0003BBC0 60 80 00 08 */ ori r0, r4, 8
/* 8003EC64 0003BBC4 90 7E 02 F8 */ stw r3, 0x2f8(r30)
/* 8003EC68 0003BBC8 7F C3 F3 78 */ mr r3, r30
/* 8003EC6C 0003BBCC 38 80 00 09 */ li r4, 9
/* 8003EC70 0003BBD0 38 A0 00 00 */ li r5, 0
/* 8003EC74 0003BBD4 80 DE 02 F8 */ lwz r6, 0x2f8(r30)
/* 8003EC78 0003BBD8 7C C0 03 78 */ or r0, r6, r0
/* 8003EC7C 0003BBDC 90 1E 02 F8 */ stw r0, 0x2f8(r30)
/* 8003EC80 0003BBE0 48 00 2C 45 */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
/* 8003EC84 0003BBE4 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 8003EC88 0003BBE8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8003EC8C 0003BBEC 40 82 00 24 */ bne lbl_8003ECB0
/* 8003EC90 0003BBF0 80 7E 07 44 */ lwz r3, 0x744(r30)
/* 8003EC94 0003BBF4 7F E4 FB 78 */ mr r4, r31
/* 8003EC98 0003BBF8 48 17 A7 99 */ bl IsComboFxActive__10CAuxWeaponCFRC13CStateManager
/* 8003EC9C 0003BBFC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003ECA0 0003BC00 40 82 00 10 */ bne lbl_8003ECB0
/* 8003ECA4 0003BC04 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 8003ECA8 0003BC08 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 8003ECAC 0003BC0C 41 82 00 20 */ beq lbl_8003ECCC
lbl_8003ECB0:
/* 8003ECB0 0003BC10 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 8003ECB4 0003BC14 38 60 00 01 */ li r3, 1
/* 8003ECB8 0003BC18 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
/* 8003ECBC 0003BC1C 7F E4 FB 78 */ mr r4, r31
/* 8003ECC0 0003BC20 98 1E 08 32 */ stb r0, 0x832(r30)
/* 8003ECC4 0003BC24 80 7E 07 40 */ lwz r3, 0x740(r30)
/* 8003ECC8 0003BC28 48 0D F2 2D */ bl EnterIdle__11CGrappleArmFR13CStateManager
lbl_8003ECCC:
/* 8003ECCC 0003BC2C 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003ECD0 0003BC30 38 80 00 00 */ li r4, 0
/* 8003ECD4 0003BC34 81 83 00 00 */ lwz r12, 0(r3)
/* 8003ECD8 0003BC38 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 8003ECDC 0003BC3C 7D 89 03 A6 */ mtctr r12
/* 8003ECE0 0003BC40 4E 80 04 21 */ bctrl
/* 8003ECE4 0003BC44 38 60 00 05 */ li r3, 5
/* 8003ECE8 0003BC48 38 00 00 00 */ li r0, 0
/* 8003ECEC 0003BC4C 90 7E 03 38 */ stw r3, 0x338(r30)
/* 8003ECF0 0003BC50 90 1E 02 E4 */ stw r0, 0x2e4(r30)
/* 8003ECF4 0003BC54 48 00 00 7C */ b lbl_8003ED70
lbl_8003ECF8:
/* 8003ECF8 0003BC58 3C 60 80 3D */ lis r3, mBeamArr@ha
/* 8003ECFC 0003BC5C 57 40 10 3A */ slwi r0, r26, 2
/* 8003ED00 0003BC60 38 83 CE 54 */ addi r4, r3, mBeamArr@l
/* 8003ED04 0003BC64 7F A3 EB 78 */ mr r3, r29
/* 8003ED08 0003BC68 7C 84 00 2E */ lwzx r4, r4, r0
/* 8003ED0C 0003BC6C 48 05 2D B5 */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003ED10 0003BC70 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003ED14 0003BC74 41 82 00 5C */ beq lbl_8003ED70
/* 8003ED18 0003BC78 7F C3 F3 78 */ mr r3, r30
/* 8003ED1C 0003BC7C 48 00 17 7D */ bl ExitMissile__10CPlayerGunFv
/* 8003ED20 0003BC80 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003ED24 0003BC84 41 82 00 44 */ beq lbl_8003ED68
/* 8003ED28 0003BC88 80 1E 02 E4 */ lwz r0, 0x2e4(r30)
/* 8003ED2C 0003BC8C 38 61 00 0C */ addi r3, r1, 0xc
/* 8003ED30 0003BC90 90 01 00 0C */ stw r0, 0xc(r1)
/* 8003ED34 0003BC94 48 2A A0 A1 */ bl IsPlaying__11CSfxManagerF10CSfxHandle
/* 8003ED38 0003BC98 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003ED3C 0003BC9C 40 82 00 34 */ bne lbl_8003ED70
/* 8003ED40 0003BCA0 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 8003ED44 0003BCA4 38 61 00 08 */ addi r3, r1, 8
/* 8003ED48 0003BCA8 38 80 06 E3 */ li r4, 0x6e3
/* 8003ED4C 0003BCAC 38 C0 00 00 */ li r6, 0
/* 8003ED50 0003BCB0 54 05 E7 FE */ rlwinm r5, r0, 0x1c, 0x1f, 0x1f
/* 8003ED54 0003BCB4 38 E0 00 4A */ li r7, 0x4a
/* 8003ED58 0003BCB8 48 24 BD A1 */ bl play_sfx__12NWeaponTypesFUsbbs
/* 8003ED5C 0003BCBC 80 01 00 08 */ lwz r0, 8(r1)
/* 8003ED60 0003BCC0 90 1E 02 E4 */ stw r0, 0x2e4(r30)
/* 8003ED64 0003BCC4 48 00 00 0C */ b lbl_8003ED70
lbl_8003ED68:
/* 8003ED68 0003BCC8 38 00 00 00 */ li r0, 0
/* 8003ED6C 0003BCCC 90 1E 02 E4 */ stw r0, 0x2e4(r30)
lbl_8003ED70:
/* 8003ED70 0003BCD0 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0
/* 8003ED74 0003BCD4 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 8003ED78 0003BCD8 E3 C1 00 38 */ psq_l f30, 56(r1), 0, qr0
/* 8003ED7C 0003BCDC CB C1 00 30 */ lfd f30, 0x30(r1)
/* 8003ED80 0003BCE0 BB 01 00 10 */ lmw r24, 0x10(r1)
/* 8003ED84 0003BCE4 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8003ED88 0003BCE8 7C 08 03 A6 */ mtlr r0
/* 8003ED8C 0003BCEC 38 21 00 50 */ addi r1, r1, 0x50
/* 8003ED90 0003BCF0 4E 80 00 20 */ blr
.global HandleWeaponChange__10CPlayerGunFRC11CFinalInputR13CStateManager
HandleWeaponChange__10CPlayerGunFRC11CFinalInputR13CStateManager:
/* 8003ED94 0003BCF4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003ED98 0003BCF8 7C 08 02 A6 */ mflr r0
/* 8003ED9C 0003BCFC 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003EDA0 0003BD00 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003EDA4 0003BD04 7C BF 2B 78 */ mr r31, r5
/* 8003EDA8 0003BD08 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003EDAC 0003BD0C 7C 9E 23 78 */ mr r30, r4
/* 8003EDB0 0003BD10 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8003EDB4 0003BD14 7C 7D 1B 78 */ mr r29, r3
/* 8003EDB8 0003BD18 38 60 00 00 */ li r3, 0
/* 8003EDBC 0003BD1C 88 1D 08 33 */ lbz r0, 0x833(r29)
/* 8003EDC0 0003BD20 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003EDC4 0003BD24 38 60 00 0D */ li r3, 0xd
/* 8003EDC8 0003BD28 98 1D 08 33 */ stb r0, 0x833(r29)
/* 8003EDCC 0003BD2C 4B FC DA 05 */ bl GetPressInput__13ControlMapperFQ213ControlMapper9ECommandsRC11CFinalInput
/* 8003EDD0 0003BD30 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003EDD4 0003BD34 41 82 00 14 */ beq lbl_8003EDE8
/* 8003EDD8 0003BD38 7F A3 EB 78 */ mr r3, r29
/* 8003EDDC 0003BD3C 7F E4 FB 78 */ mr r4, r31
/* 8003EDE0 0003BD40 38 A0 00 01 */ li r5, 1
/* 8003EDE4 0003BD44 4B FF D5 CD */ bl StopContinuousBeam__10CPlayerGunFR13CStateManagerb
lbl_8003EDE8:
/* 8003EDE8 0003BD48 80 1D 02 F8 */ lwz r0, 0x2f8(r29)
/* 8003EDEC 0003BD4C 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 8003EDF0 0003BD50 2C 00 00 08 */ cmpwi r0, 8
/* 8003EDF4 0003BD54 41 82 00 30 */ beq lbl_8003EE24
/* 8003EDF8 0003BD58 88 1D 08 35 */ lbz r0, 0x835(r29)
/* 8003EDFC 0003BD5C 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8003EE00 0003BD60 40 82 00 18 */ bne lbl_8003EE18
/* 8003EE04 0003BD64 7F A3 EB 78 */ mr r3, r29
/* 8003EE08 0003BD68 7F C4 F3 78 */ mr r4, r30
/* 8003EE0C 0003BD6C 7F E5 FB 78 */ mr r5, r31
/* 8003EE10 0003BD70 4B FF FD 4D */ bl HandleBeamChange__10CPlayerGunFRC11CFinalInputR13CStateManager
/* 8003EE14 0003BD74 48 00 00 10 */ b lbl_8003EE24
lbl_8003EE18:
/* 8003EE18 0003BD78 7F A3 EB 78 */ mr r3, r29
/* 8003EE1C 0003BD7C 7F E4 FB 78 */ mr r4, r31
/* 8003EE20 0003BD80 4B FF FB CD */ bl HandlePhazonBeamChange__10CPlayerGunFR13CStateManager
lbl_8003EE24:
/* 8003EE24 0003BD84 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003EE28 0003BD88 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003EE2C 0003BD8C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003EE30 0003BD90 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8003EE34 0003BD94 7C 08 03 A6 */ mtlr r0
/* 8003EE38 0003BD98 38 21 00 20 */ addi r1, r1, 0x20
/* 8003EE3C 0003BD9C 4E 80 00 20 */ blr
.global StartPhazonBeamTransition__10CPlayerGunFbR13CStateManagerR12CPlayerState
StartPhazonBeamTransition__10CPlayerGunFbR13CStateManagerR12CPlayerState:
/* 8003EE40 0003BDA0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003EE44 0003BDA4 7C 08 02 A6 */ mflr r0
/* 8003EE48 0003BDA8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003EE4C 0003BDAC 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 8003EE50 0003BDB0 BF 61 00 0C */ stmw r27, 0xc(r1)
/* 8003EE54 0003BDB4 7C 7E 1B 78 */ mr r30, r3
/* 8003EE58 0003BDB8 7C 9B 23 78 */ mr r27, r4
/* 8003EE5C 0003BDBC 7C BF 2B 78 */ mr r31, r5
/* 8003EE60 0003BDC0 7C DC 33 78 */ mr r28, r6
/* 8003EE64 0003BDC4 88 63 08 33 */ lbz r3, 0x833(r3)
/* 8003EE68 0003BDC8 54 63 EF FE */ rlwinm r3, r3, 0x1d, 0x1f, 0x1f
/* 8003EE6C 0003BDCC 7C 03 00 40 */ cmplw r3, r0
/* 8003EE70 0003BDD0 41 82 01 14 */ beq lbl_8003EF84
/* 8003EE74 0003BDD4 80 1E 03 10 */ lwz r0, 0x310(r30)
/* 8003EE78 0003BDD8 3B BE 07 64 */ addi r29, r30, 0x764
/* 8003EE7C 0003BDDC 7F E4 FB 78 */ mr r4, r31
/* 8003EE80 0003BDE0 54 00 10 3A */ slwi r0, r0, 2
/* 8003EE84 0003BDE4 7C 7D 00 2E */ lwzx r3, r29, r0
/* 8003EE88 0003BDE8 81 83 00 00 */ lwz r12, 0(r3)
/* 8003EE8C 0003BDEC 81 8C 00 3C */ lwz r12, 0x3c(r12)
/* 8003EE90 0003BDF0 7D 89 03 A6 */ mtctr r12
/* 8003EE94 0003BDF4 4E 80 04 21 */ bctrl
/* 8003EE98 0003BDF8 57 60 06 3F */ clrlwi. r0, r27, 0x18
/* 8003EE9C 0003BDFC 41 82 00 0C */ beq lbl_8003EEA8
/* 8003EEA0 0003BE00 80 FE 07 5C */ lwz r7, 0x75c(r30)
/* 8003EEA4 0003BE04 48 00 00 08 */ b lbl_8003EEAC
lbl_8003EEA8:
/* 8003EEA8 0003BE08 80 FE 07 38 */ lwz r7, 0x738(r30)
lbl_8003EEAC:
/* 8003EEAC 0003BE0C 80 1E 03 10 */ lwz r0, 0x310(r30)
/* 8003EEB0 0003BE10 7F C3 F3 78 */ mr r3, r30
/* 8003EEB4 0003BE14 7F E4 FB 78 */ mr r4, r31
/* 8003EEB8 0003BE18 7F 85 E3 78 */ mr r5, r28
/* 8003EEBC 0003BE1C 54 00 10 3A */ slwi r0, r0, 2
/* 8003EEC0 0003BE20 38 C0 00 00 */ li r6, 0
/* 8003EEC4 0003BE24 7C FD 01 2E */ stwx r7, r29, r0
/* 8003EEC8 0003BE28 48 00 01 E1 */ bl ResetBeamParams__10CPlayerGunFR13CStateManagerRC12CPlayerStateb
/* 8003EECC 0003BE2C 80 1E 03 10 */ lwz r0, 0x310(r30)
/* 8003EED0 0003BE30 7F C3 F3 78 */ mr r3, r30
/* 8003EED4 0003BE34 7F 64 DB 78 */ mr r4, r27
/* 8003EED8 0003BE38 54 00 10 3A */ slwi r0, r0, 2
/* 8003EEDC 0003BE3C 7C 1D 00 2E */ lwzx r0, r29, r0
/* 8003EEE0 0003BE40 90 1E 07 2C */ stw r0, 0x72c(r30)
/* 8003EEE4 0003BE44 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 8003EEE8 0003BE48 53 60 1F 38 */ rlwimi r0, r27, 3, 0x1c, 0x1c
/* 8003EEEC 0003BE4C 98 1E 08 33 */ stb r0, 0x833(r30)
/* 8003EEF0 0003BE50 4B FF B9 31 */ bl SetPhazonBeamFeedback__10CPlayerGunFb
/* 8003EEF4 0003BE54 80 1E 07 48 */ lwz r0, 0x748(r30)
/* 8003EEF8 0003BE58 38 80 00 01 */ li r4, 1
/* 8003EEFC 0003BE5C 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003EF00 0003BE60 90 03 01 BC */ stw r0, 0x1bc(r3)
/* 8003EF04 0003BE64 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003EF08 0003BE68 81 83 00 00 */ lwz r12, 0(r3)
/* 8003EF0C 0003BE6C 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8003EF10 0003BE70 7D 89 03 A6 */ mtctr r12
/* 8003EF14 0003BE74 4E 80 04 21 */ bctrl
/* 8003EF18 0003BE78 80 DE 07 2C */ lwz r6, 0x72c(r30)
/* 8003EF1C 0003BE7C 38 A0 00 00 */ li r5, 0
/* 8003EF20 0003BE80 7F C3 F3 78 */ mr r3, r30
/* 8003EF24 0003BE84 38 80 00 0A */ li r4, 0xa
/* 8003EF28 0003BE88 88 06 02 18 */ lbz r0, 0x218(r6)
/* 8003EF2C 0003BE8C 50 A0 17 7A */ rlwimi r0, r5, 2, 0x1d, 0x1d
/* 8003EF30 0003BE90 38 A0 00 00 */ li r5, 0
/* 8003EF34 0003BE94 98 06 02 18 */ stb r0, 0x218(r6)
/* 8003EF38 0003BE98 48 00 29 8D */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
/* 8003EF3C 0003BE9C 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 8003EF40 0003BEA0 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8003EF44 0003BEA4 41 82 00 14 */ beq lbl_8003EF58
/* 8003EF48 0003BEA8 7F C3 F3 78 */ mr r3, r30
/* 8003EF4C 0003BEAC 7F E4 FB 78 */ mr r4, r31
/* 8003EF50 0003BEB0 4B FF CF 6D */ bl EnterFreeLook__10CPlayerGunFR13CStateManager
/* 8003EF54 0003BEB4 48 00 00 20 */ b lbl_8003EF74
lbl_8003EF58:
/* 8003EF58 0003BEB8 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 8003EF5C 0003BEBC 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
/* 8003EF60 0003BEC0 41 82 00 14 */ beq lbl_8003EF74
/* 8003EF64 0003BEC4 7F C3 F3 78 */ mr r3, r30
/* 8003EF68 0003BEC8 7F E4 FB 78 */ mr r4, r31
/* 8003EF6C 0003BECC 38 A0 00 00 */ li r5, 0
/* 8003EF70 0003BED0 4B FF CC C9 */ bl ReturnArmAndGunToDefault__10CPlayerGunFR13CStateManagerb
lbl_8003EF74:
/* 8003EF74 0003BED4 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 8003EF78 0003BED8 38 60 00 00 */ li r3, 0
/* 8003EF7C 0003BEDC 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
/* 8003EF80 0003BEE0 98 1E 08 32 */ stb r0, 0x832(r30)
lbl_8003EF84:
/* 8003EF84 0003BEE4 BB 61 00 0C */ lmw r27, 0xc(r1)
/* 8003EF88 0003BEE8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003EF8C 0003BEEC 7C 08 03 A6 */ mtlr r0
/* 8003EF90 0003BEF0 38 21 00 20 */ addi r1, r1, 0x20
/* 8003EF94 0003BEF4 4E 80 00 20 */ blr
.global ChangeWeapon__10CPlayerGunFRC12CPlayerStateR13CStateManager
ChangeWeapon__10CPlayerGunFRC12CPlayerStateR13CStateManager:
/* 8003EF98 0003BEF8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003EF9C 0003BEFC 7C 08 02 A6 */ mflr r0
/* 8003EFA0 0003BF00 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003EFA4 0003BF04 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003EFA8 0003BF08 7C BF 2B 78 */ mr r31, r5
/* 8003EFAC 0003BF0C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003EFB0 0003BF10 7C 9E 23 78 */ mr r30, r4
/* 8003EFB4 0003BF14 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8003EFB8 0003BF18 7C 7D 1B 78 */ mr r29, r3
/* 8003EFBC 0003BF1C 80 63 07 30 */ lwz r3, 0x730(r3)
/* 8003EFC0 0003BF20 28 03 00 00 */ cmplwi r3, 0
/* 8003EFC4 0003BF24 41 82 00 24 */ beq lbl_8003EFE8
/* 8003EFC8 0003BF28 80 1D 07 2C */ lwz r0, 0x72c(r29)
/* 8003EFCC 0003BF2C 7C 03 00 40 */ cmplw r3, r0
/* 8003EFD0 0003BF30 41 82 00 18 */ beq lbl_8003EFE8
/* 8003EFD4 0003BF34 81 83 00 00 */ lwz r12, 0(r3)
/* 8003EFD8 0003BF38 7F E4 FB 78 */ mr r4, r31
/* 8003EFDC 0003BF3C 81 8C 00 3C */ lwz r12, 0x3c(r12)
/* 8003EFE0 0003BF40 7D 89 03 A6 */ mtctr r12
/* 8003EFE4 0003BF44 4E 80 04 21 */ bctrl
lbl_8003EFE8:
/* 8003EFE8 0003BF48 80 1D 03 14 */ lwz r0, 0x314(r29)
/* 8003EFEC 0003BF4C 54 00 10 3A */ slwi r0, r0, 2
/* 8003EFF0 0003BF50 7C 7D 02 14 */ add r3, r29, r0
/* 8003EFF4 0003BF54 80 03 07 64 */ lwz r0, 0x764(r3)
/* 8003EFF8 0003BF58 90 1D 07 34 */ stw r0, 0x734(r29)
/* 8003EFFC 0003BF5C 80 7D 07 34 */ lwz r3, 0x734(r29)
/* 8003F000 0003BF60 28 03 00 00 */ cmplwi r3, 0
/* 8003F004 0003BF64 41 82 00 38 */ beq lbl_8003F03C
/* 8003F008 0003BF68 80 1D 07 2C */ lwz r0, 0x72c(r29)
/* 8003F00C 0003BF6C 7C 03 00 40 */ cmplw r3, r0
/* 8003F010 0003BF70 41 82 00 2C */ beq lbl_8003F03C
/* 8003F014 0003BF74 81 83 00 00 */ lwz r12, 0(r3)
/* 8003F018 0003BF78 7F E4 FB 78 */ mr r4, r31
/* 8003F01C 0003BF7C 38 A0 00 00 */ li r5, 0
/* 8003F020 0003BF80 81 8C 00 38 */ lwz r12, 0x38(r12)
/* 8003F024 0003BF84 7D 89 03 A6 */ mtctr r12
/* 8003F028 0003BF88 4E 80 04 21 */ bctrl
/* 8003F02C 0003BF8C 80 7D 07 44 */ lwz r3, 0x744(r29)
/* 8003F030 0003BF90 7F E5 FB 78 */ mr r5, r31
/* 8003F034 0003BF94 80 9D 03 14 */ lwz r4, 0x314(r29)
/* 8003F038 0003BF98 48 17 99 05 */ bl Load__10CAuxWeaponFiR13CStateManager
lbl_8003F03C:
/* 8003F03C 0003BF9C 80 7D 07 2C */ lwz r3, 0x72c(r29)
/* 8003F040 0003BFA0 38 80 00 00 */ li r4, 0
/* 8003F044 0003BFA4 81 83 00 00 */ lwz r12, 0(r3)
/* 8003F048 0003BFA8 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8003F04C 0003BFAC 7D 89 03 A6 */ mtctr r12
/* 8003F050 0003BFB0 4E 80 04 21 */ bctrl
/* 8003F054 0003BFB4 80 FD 03 2C */ lwz r7, 0x32c(r29)
/* 8003F058 0003BFB8 7F A3 EB 78 */ mr r3, r29
/* 8003F05C 0003BFBC 88 1D 08 34 */ lbz r0, 0x834(r29)
/* 8003F060 0003BFC0 7F E4 FB 78 */ mr r4, r31
/* 8003F064 0003BFC4 7C C7 00 D0 */ neg r6, r7
/* 8003F068 0003BFC8 7F C5 F3 78 */ mr r5, r30
/* 8003F06C 0003BFCC 7C C7 3B 78 */ or r7, r6, r7
/* 8003F070 0003BFD0 50 E0 27 38 */ rlwimi r0, r7, 4, 0x1c, 0x1c
/* 8003F074 0003BFD4 38 C0 00 01 */ li r6, 1
/* 8003F078 0003BFD8 98 1D 08 34 */ stb r0, 0x834(r29)
/* 8003F07C 0003BFDC 48 00 00 2D */ bl ResetBeamParams__10CPlayerGunFR13CStateManagerRC12CPlayerStateb
/* 8003F080 0003BFE0 38 7D 06 78 */ addi r3, r29, 0x678
/* 8003F084 0003BFE4 38 80 00 00 */ li r4, 0
/* 8003F088 0003BFE8 4B FF F0 6D */ bl StartWipe__Q210CPlayerGun9CGunMorphFQ310CPlayerGun9CGunMorph4EDir
/* 8003F08C 0003BFEC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003F090 0003BFF0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003F094 0003BFF4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003F098 0003BFF8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8003F09C 0003BFFC 7C 08 03 A6 */ mtlr r0
/* 8003F0A0 0003C000 38 21 00 20 */ addi r1, r1, 0x20
/* 8003F0A4 0003C004 4E 80 00 20 */ blr
.global ResetBeamParams__10CPlayerGunFR13CStateManagerRC12CPlayerStateb
ResetBeamParams__10CPlayerGunFR13CStateManagerRC12CPlayerStateb:
/* 8003F0A8 0003C008 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8003F0AC 0003C00C 7C 08 02 A6 */ mflr r0
/* 8003F0B0 0003C010 90 01 00 54 */ stw r0, 0x54(r1)
/* 8003F0B4 0003C014 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8003F0B8 0003C018 7C 7F 1B 78 */ mr r31, r3
/* 8003F0BC 0003C01C 93 C1 00 48 */ stw r30, 0x48(r1)
/* 8003F0C0 0003C020 7C DE 33 78 */ mr r30, r6
/* 8003F0C4 0003C024 93 A1 00 44 */ stw r29, 0x44(r1)
/* 8003F0C8 0003C028 7C BD 2B 78 */ mr r29, r5
/* 8003F0CC 0003C02C 38 A0 00 01 */ li r5, 1
/* 8003F0D0 0003C030 93 81 00 40 */ stw r28, 0x40(r1)
/* 8003F0D4 0003C034 7C 9C 23 78 */ mr r28, r4
/* 8003F0D8 0003C038 4B FF D2 D9 */ bl StopContinuousBeam__10CPlayerGunFR13CStateManagerb
/* 8003F0DC 0003C03C 7F A3 EB 78 */ mr r3, r29
/* 8003F0E0 0003C040 38 80 00 0A */ li r4, 0xa
/* 8003F0E4 0003C044 48 05 28 A9 */ bl ItemEnabled__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003F0E8 0003C048 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003F0EC 0003C04C 41 82 00 14 */ beq lbl_8003F100
/* 8003F0F0 0003C050 7F E3 FB 78 */ mr r3, r31
/* 8003F0F4 0003C054 7F 84 E3 78 */ mr r4, r28
/* 8003F0F8 0003C058 38 A0 00 00 */ li r5, 0
/* 8003F0FC 0003C05C 48 00 00 E1 */ bl ResetCharge__10CPlayerGunFR13CStateManagerb
lbl_8003F100:
/* 8003F100 0003C060 80 9F 03 14 */ lwz r4, 0x314(r31)
/* 8003F104 0003C064 38 00 00 00 */ li r0, 0
/* 8003F108 0003C068 3C 60 80 3D */ lis r3, mHandAnimId__10CPlayerGun@ha
/* 8003F10C 0003C06C C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8003F110 0003C070 54 86 10 3A */ slwi r6, r4, 2
/* 8003F114 0003C074 38 A0 FF FF */ li r5, -1
/* 8003F118 0003C078 38 83 CE 44 */ addi r4, r3, mHandAnimId__10CPlayerGun@l
/* 8003F11C 0003C07C 38 60 00 01 */ li r3, 1
/* 8003F120 0003C080 7C C4 30 2E */ lwzx r6, r4, r6
/* 8003F124 0003C084 38 81 00 0C */ addi r4, r1, 0xc
/* 8003F128 0003C088 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8003F12C 0003C08C 38 A0 00 00 */ li r5, 0
/* 8003F130 0003C090 90 C1 00 0C */ stw r6, 0xc(r1)
/* 8003F134 0003C094 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8003F138 0003C098 98 61 00 18 */ stb r3, 0x18(r1)
/* 8003F13C 0003C09C 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8003F140 0003C0A0 90 01 00 20 */ stw r0, 0x20(r1)
/* 8003F144 0003C0A4 98 01 00 24 */ stb r0, 0x24(r1)
/* 8003F148 0003C0A8 90 01 00 28 */ stw r0, 0x28(r1)
/* 8003F14C 0003C0AC 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8003F150 0003C0B0 90 01 00 30 */ stw r0, 0x30(r1)
/* 8003F154 0003C0B4 80 7F 06 F0 */ lwz r3, 0x6f0(r31)
/* 8003F158 0003C0B8 4B FE DC 25 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
/* 8003F15C 0003C0BC 7F E3 FB 78 */ mr r3, r31
/* 8003F160 0003C0C0 7F 84 E3 78 */ mr r4, r28
/* 8003F164 0003C0C4 38 A0 00 00 */ li r5, 0
/* 8003F168 0003C0C8 48 00 01 D9 */ bl Reset__10CPlayerGunFR13CStateManagerb
/* 8003F16C 0003C0CC 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8003F170 0003C0D0 41 82 00 28 */ beq lbl_8003F198
/* 8003F174 0003C0D4 A9 02 C5 F8 */ lha r8, kMaxPriority__11CSfxManager@sda21(r2)
/* 8003F178 0003C0D8 38 61 00 08 */ addi r3, r1, 8
/* 8003F17C 0003C0DC 81 42 C6 00 */ lwz r10, kAllAreas__11CSfxManager@sda21(r2)
/* 8003F180 0003C0E0 38 80 06 EE */ li r4, 0x6ee
/* 8003F184 0003C0E4 38 A0 00 7F */ li r5, 0x7f
/* 8003F188 0003C0E8 38 C0 00 40 */ li r6, 0x40
/* 8003F18C 0003C0EC 38 E0 00 01 */ li r7, 1
/* 8003F190 0003C0F0 39 20 00 00 */ li r9, 0
/* 8003F194 0003C0F4 48 2A AB E1 */ bl SfxStart__11CSfxManagerFUsssbsbi
lbl_8003F198:
/* 8003F198 0003C0F8 80 1F 02 EC */ lwz r0, 0x2ec(r31)
/* 8003F19C 0003C0FC 38 60 00 01 */ li r3, 1
/* 8003F1A0 0003C100 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8003F1A4 0003C104 90 1F 02 EC */ stw r0, 0x2ec(r31)
/* 8003F1A8 0003C108 80 1F 03 10 */ lwz r0, 0x310(r31)
/* 8003F1AC 0003C10C 90 1F 03 20 */ stw r0, 0x320(r31)
/* 8003F1B0 0003C110 88 1F 08 33 */ lbz r0, 0x833(r31)
/* 8003F1B4 0003C114 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
/* 8003F1B8 0003C118 98 1F 08 33 */ stb r0, 0x833(r31)
/* 8003F1BC 0003C11C 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8003F1C0 0003C120 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 8003F1C4 0003C124 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 8003F1C8 0003C128 83 81 00 40 */ lwz r28, 0x40(r1)
/* 8003F1CC 0003C12C 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8003F1D0 0003C130 7C 08 03 A6 */ mtlr r0
/* 8003F1D4 0003C134 38 21 00 50 */ addi r1, r1, 0x50
/* 8003F1D8 0003C138 4E 80 00 20 */ blr
.global ResetCharge__10CPlayerGunFR13CStateManagerb
ResetCharge__10CPlayerGunFR13CStateManagerb:
/* 8003F1DC 0003C13C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003F1E0 0003C140 7C 08 02 A6 */ mflr r0
/* 8003F1E4 0003C144 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003F1E8 0003C148 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003F1EC 0003C14C 7C 7F 1B 78 */ mr r31, r3
/* 8003F1F0 0003C150 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003F1F4 0003C154 7C 9E 23 78 */ mr r30, r4
/* 8003F1F8 0003C158 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8003F1FC 0003C15C 7C BD 2B 78 */ mr r29, r5
/* 8003F200 0003C160 80 03 03 2C */ lwz r0, 0x32c(r3)
/* 8003F204 0003C164 2C 00 00 00 */ cmpwi r0, 0
/* 8003F208 0003C168 41 82 00 08 */ beq lbl_8003F210
/* 8003F20C 0003C16C 4B FF D9 49 */ bl StopChargeSound__10CPlayerGunFR13CStateManager
lbl_8003F210:
/* 8003F210 0003C170 80 7F 02 F8 */ lwz r3, 0x2f8(r31)
/* 8003F214 0003C174 54 60 07 38 */ rlwinm r0, r3, 0, 0x1c, 0x1c
/* 8003F218 0003C178 2C 00 00 08 */ cmpwi r0, 8
/* 8003F21C 0003C17C 41 82 00 C4 */ beq lbl_8003F2E0
/* 8003F220 0003C180 54 60 06 F6 */ rlwinm r0, r3, 0, 0x1b, 0x1b
/* 8003F224 0003C184 2C 00 00 10 */ cmpwi r0, 0x10
/* 8003F228 0003C188 41 82 00 B8 */ beq lbl_8003F2E0
/* 8003F22C 0003C18C 80 7E 08 4C */ lwz r3, 0x84c(r30)
/* 8003F230 0003C190 3B C0 00 01 */ li r30, 1
/* 8003F234 0003C194 80 03 02 F8 */ lwz r0, 0x2f8(r3)
/* 8003F238 0003C198 2C 00 00 01 */ cmpwi r0, 1
/* 8003F23C 0003C19C 41 82 00 10 */ beq lbl_8003F24C
/* 8003F240 0003C1A0 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 8003F244 0003C1A4 40 82 00 08 */ bne lbl_8003F24C
/* 8003F248 0003C1A8 3B C0 00 00 */ li r30, 0
lbl_8003F24C:
/* 8003F24C 0003C1AC 88 1F 08 32 */ lbz r0, 0x832(r31)
/* 8003F250 0003C1B0 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 8003F254 0003C1B4 40 82 00 0C */ bne lbl_8003F260
/* 8003F258 0003C1B8 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8003F25C 0003C1BC 41 82 00 14 */ beq lbl_8003F270
lbl_8003F260:
/* 8003F260 0003C1C0 7F E3 FB 78 */ mr r3, r31
/* 8003F264 0003C1C4 38 80 00 00 */ li r4, 0
/* 8003F268 0003C1C8 38 A0 00 00 */ li r5, 0
/* 8003F26C 0003C1CC 48 00 26 59 */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
lbl_8003F270:
/* 8003F270 0003C1D0 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8003F274 0003C1D4 41 82 00 1C */ beq lbl_8003F290
/* 8003F278 0003C1D8 80 7F 07 2C */ lwz r3, 0x72c(r31)
/* 8003F27C 0003C1DC 38 80 00 00 */ li r4, 0
/* 8003F280 0003C1E0 81 83 00 00 */ lwz r12, 0(r3)
/* 8003F284 0003C1E4 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 8003F288 0003C1E8 7D 89 03 A6 */ mtctr r12
/* 8003F28C 0003C1EC 4E 80 04 21 */ bctrl
lbl_8003F290:
/* 8003F290 0003C1F0 80 7F 02 F8 */ lwz r3, 0x2f8(r31)
/* 8003F294 0003C1F4 54 60 07 BC */ rlwinm r0, r3, 0, 0x1e, 0x1e
/* 8003F298 0003C1F8 2C 00 00 02 */ cmpwi r0, 2
/* 8003F29C 0003C1FC 40 82 00 10 */ bne lbl_8003F2AC
/* 8003F2A0 0003C200 80 1F 03 30 */ lwz r0, 0x330(r31)
/* 8003F2A4 0003C204 2C 00 00 00 */ cmpwi r0, 0
/* 8003F2A8 0003C208 41 82 00 38 */ beq lbl_8003F2E0
lbl_8003F2AC:
/* 8003F2AC 0003C20C 54 60 07 38 */ rlwinm r0, r3, 0, 0x1c, 0x1c
/* 8003F2B0 0003C210 2C 00 00 08 */ cmpwi r0, 8
/* 8003F2B4 0003C214 41 82 00 20 */ beq lbl_8003F2D4
/* 8003F2B8 0003C218 80 7F 02 F8 */ lwz r3, 0x2f8(r31)
/* 8003F2BC 0003C21C 38 00 FF E9 */ li r0, -23
/* 8003F2C0 0003C220 60 63 00 01 */ ori r3, r3, 1
/* 8003F2C4 0003C224 90 7F 02 F8 */ stw r3, 0x2f8(r31)
/* 8003F2C8 0003C228 80 7F 02 F8 */ lwz r3, 0x2f8(r31)
/* 8003F2CC 0003C22C 7C 60 00 38 */ and r0, r3, r0
/* 8003F2D0 0003C230 90 1F 02 F8 */ stw r0, 0x2f8(r31)
lbl_8003F2D4:
/* 8003F2D4 0003C234 38 00 00 00 */ li r0, 0
/* 8003F2D8 0003C238 90 1F 03 18 */ stw r0, 0x318(r31)
/* 8003F2DC 0003C23C 90 1F 03 1C */ stw r0, 0x31c(r31)
lbl_8003F2E0:
/* 8003F2E0 0003C240 38 80 00 00 */ li r4, 0
/* 8003F2E4 0003C244 38 60 00 01 */ li r3, 1
/* 8003F2E8 0003C248 90 9F 03 2C */ stw r4, 0x32c(r31)
/* 8003F2EC 0003C24C C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003F2F0 0003C250 90 9F 03 30 */ stw r4, 0x330(r31)
/* 8003F2F4 0003C254 80 1F 03 10 */ lwz r0, 0x310(r31)
/* 8003F2F8 0003C258 90 1F 03 20 */ stw r0, 0x320(r31)
/* 8003F2FC 0003C25C 88 1F 08 33 */ lbz r0, 0x833(r31)
/* 8003F300 0003C260 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
/* 8003F304 0003C264 98 1F 08 33 */ stb r0, 0x833(r31)
/* 8003F308 0003C268 88 1F 08 32 */ lbz r0, 0x832(r31)
/* 8003F30C 0003C26C 50 80 26 F6 */ rlwimi r0, r4, 4, 0x1b, 0x1b
/* 8003F310 0003C270 98 1F 08 32 */ stb r0, 0x832(r31)
/* 8003F314 0003C274 88 1F 08 32 */ lbz r0, 0x832(r31)
/* 8003F318 0003C278 50 80 2E B4 */ rlwimi r0, r4, 5, 0x1a, 0x1a
/* 8003F31C 0003C27C 98 1F 08 32 */ stb r0, 0x832(r31)
/* 8003F320 0003C280 D0 1F 03 44 */ stfs f0, 0x344(r31)
/* 8003F324 0003C284 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003F328 0003C288 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003F32C 0003C28C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8003F330 0003C290 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003F334 0003C294 7C 08 03 A6 */ mtlr r0
/* 8003F338 0003C298 38 21 00 20 */ addi r1, r1, 0x20
/* 8003F33C 0003C29C 4E 80 00 20 */ blr
.global Reset__10CPlayerGunFR13CStateManagerb
Reset__10CPlayerGunFR13CStateManagerb:
/* 8003F340 0003C2A0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003F344 0003C2A4 7C 08 02 A6 */ mflr r0
/* 8003F348 0003C2A8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003F34C 0003C2AC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003F350 0003C2B0 7C 7F 1B 78 */ mr r31, r3
/* 8003F354 0003C2B4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003F358 0003C2B8 7C BE 2B 78 */ mr r30, r5
/* 8003F35C 0003C2BC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8003F360 0003C2C0 7C 9D 23 78 */ mr r29, r4
/* 8003F364 0003C2C4 80 63 07 2C */ lwz r3, 0x72c(r3)
/* 8003F368 0003C2C8 81 83 00 00 */ lwz r12, 0(r3)
/* 8003F36C 0003C2CC 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8003F370 0003C2D0 7D 89 03 A6 */ mtctr r12
/* 8003F374 0003C2D4 4E 80 04 21 */ bctrl
/* 8003F378 0003C2D8 88 1F 08 32 */ lbz r0, 0x832(r31)
/* 8003F37C 0003C2DC 38 C0 00 00 */ li r6, 0
/* 8003F380 0003C2E0 50 C0 36 72 */ rlwimi r0, r6, 6, 0x19, 0x19
/* 8003F384 0003C2E4 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003F388 0003C2E8 98 1F 08 32 */ stb r0, 0x832(r31)
/* 8003F38C 0003C2EC 7F E3 FB 78 */ mr r3, r31
/* 8003F390 0003C2F0 7F A5 EB 78 */ mr r5, r29
/* 8003F394 0003C2F4 38 80 00 00 */ li r4, 0
/* 8003F398 0003C2F8 88 1F 08 32 */ lbz r0, 0x832(r31)
/* 8003F39C 0003C2FC 50 C0 3E 30 */ rlwimi r0, r6, 7, 0x18, 0x18
/* 8003F3A0 0003C300 98 1F 08 32 */ stb r0, 0x832(r31)
/* 8003F3A4 0003C304 88 1F 08 33 */ lbz r0, 0x833(r31)
/* 8003F3A8 0003C308 50 C0 2E B4 */ rlwimi r0, r6, 5, 0x1a, 0x1a
/* 8003F3AC 0003C30C 98 1F 08 33 */ stb r0, 0x833(r31)
/* 8003F3B0 0003C310 D0 1F 03 48 */ stfs f0, 0x348(r31)
/* 8003F3B4 0003C314 4B FF C0 BD */ bl SetGunLightActive__10CPlayerGunFbR13CStateManager
/* 8003F3B8 0003C318 80 7F 02 F8 */ lwz r3, 0x2f8(r31)
/* 8003F3BC 0003C31C 54 60 06 F6 */ rlwinm r0, r3, 0, 0x1b, 0x1b
/* 8003F3C0 0003C320 2C 00 00 10 */ cmpwi r0, 0x10
/* 8003F3C4 0003C324 41 82 00 50 */ beq lbl_8003F414
/* 8003F3C8 0003C328 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8003F3CC 0003C32C 40 82 00 54 */ bne lbl_8003F420
/* 8003F3D0 0003C330 54 60 07 BC */ rlwinm r0, r3, 0, 0x1e, 0x1e
/* 8003F3D4 0003C334 2C 00 00 02 */ cmpwi r0, 2
/* 8003F3D8 0003C338 41 82 00 48 */ beq lbl_8003F420
/* 8003F3DC 0003C33C 54 60 07 38 */ rlwinm r0, r3, 0, 0x1c, 0x1c
/* 8003F3E0 0003C340 2C 00 00 08 */ cmpwi r0, 8
/* 8003F3E4 0003C344 41 82 00 20 */ beq lbl_8003F404
/* 8003F3E8 0003C348 80 7F 02 F8 */ lwz r3, 0x2f8(r31)
/* 8003F3EC 0003C34C 38 00 FF E9 */ li r0, -23
/* 8003F3F0 0003C350 60 63 00 01 */ ori r3, r3, 1
/* 8003F3F4 0003C354 90 7F 02 F8 */ stw r3, 0x2f8(r31)
/* 8003F3F8 0003C358 80 7F 02 F8 */ lwz r3, 0x2f8(r31)
/* 8003F3FC 0003C35C 7C 60 00 38 */ and r0, r3, r0
/* 8003F400 0003C360 90 1F 02 F8 */ stw r0, 0x2f8(r31)
lbl_8003F404:
/* 8003F404 0003C364 38 00 00 00 */ li r0, 0
/* 8003F408 0003C368 90 1F 03 18 */ stw r0, 0x318(r31)
/* 8003F40C 0003C36C 90 1F 03 1C */ stw r0, 0x31c(r31)
/* 8003F410 0003C370 48 00 00 10 */ b lbl_8003F420
lbl_8003F414:
/* 8003F414 0003C374 80 1F 02 F8 */ lwz r0, 0x2f8(r31)
/* 8003F418 0003C378 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c
/* 8003F41C 0003C37C 90 1F 02 F8 */ stw r0, 0x2f8(r31)
lbl_8003F420:
/* 8003F420 0003C380 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003F424 0003C384 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003F428 0003C388 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003F42C 0003C38C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8003F430 0003C390 7C 08 03 A6 */ mtlr r0
/* 8003F434 0003C394 38 21 00 20 */ addi r1, r1, 0x20
/* 8003F438 0003C398 4E 80 00 20 */ blr
.global UpdateChargeState__10CPlayerGunFfR13CStateManager
UpdateChargeState__10CPlayerGunFfR13CStateManager:
/* 8003F43C 0003C39C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8003F440 0003C3A0 7C 08 02 A6 */ mflr r0
/* 8003F444 0003C3A4 90 01 00 34 */ stw r0, 0x34(r1)
/* 8003F448 0003C3A8 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 8003F44C 0003C3AC F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 8003F450 0003C3B0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003F454 0003C3B4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003F458 0003C3B8 7C 7E 1B 78 */ mr r30, r3
/* 8003F45C 0003C3BC FF E0 08 90 */ fmr f31, f1
/* 8003F460 0003C3C0 80 03 03 2C */ lwz r0, 0x32c(r3)
/* 8003F464 0003C3C4 7C 9F 23 78 */ mr r31, r4
/* 8003F468 0003C3C8 28 00 00 0A */ cmplwi r0, 0xa
/* 8003F46C 0003C3CC 41 81 02 C0 */ bgt lbl_8003F72C
/* 8003F470 0003C3D0 3C A0 80 3E */ lis r5, lbl_803D9DD8@ha
/* 8003F474 0003C3D4 54 00 10 3A */ slwi r0, r0, 2
/* 8003F478 0003C3D8 38 A5 9D D8 */ addi r5, r5, lbl_803D9DD8@l
/* 8003F47C 0003C3DC 7C 05 00 2E */ lwzx r0, r5, r0
/* 8003F480 0003C3E0 7C 09 03 A6 */ mtctr r0
/* 8003F484 0003C3E4 4E 80 04 20 */ bctr
lbl_8003F488:
/* 8003F488 0003C3E8 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003F48C 0003C3EC 38 A0 00 00 */ li r5, 0
/* 8003F490 0003C3F0 38 80 00 01 */ li r4, 1
/* 8003F494 0003C3F4 38 00 00 02 */ li r0, 2
/* 8003F498 0003C3F8 D0 1E 03 40 */ stfs f0, 0x340(r30)
/* 8003F49C 0003C3FC 90 BE 03 30 */ stw r5, 0x330(r30)
/* 8003F4A0 0003C400 88 7E 08 32 */ lbz r3, 0x832(r30)
/* 8003F4A4 0003C404 50 A3 26 F6 */ rlwimi r3, r5, 4, 0x1b, 0x1b
/* 8003F4A8 0003C408 98 7E 08 32 */ stb r3, 0x832(r30)
/* 8003F4AC 0003C40C 88 7E 08 34 */ lbz r3, 0x834(r30)
/* 8003F4B0 0003C410 50 83 3E 30 */ rlwimi r3, r4, 7, 0x18, 0x18
/* 8003F4B4 0003C414 98 7E 08 34 */ stb r3, 0x834(r30)
/* 8003F4B8 0003C418 90 1E 03 2C */ stw r0, 0x32c(r30)
/* 8003F4BC 0003C41C 48 00 02 70 */ b lbl_8003F72C
lbl_8003F4C0:
/* 8003F4C0 0003C420 88 9E 08 32 */ lbz r4, 0x832(r30)
/* 8003F4C4 0003C424 54 80 E7 FE */ rlwinm r0, r4, 0x1c, 0x1f, 0x1f
/* 8003F4C8 0003C428 28 00 00 01 */ cmplwi r0, 1
/* 8003F4CC 0003C42C 41 82 00 C0 */ beq lbl_8003F58C
/* 8003F4D0 0003C430 C0 3E 03 40 */ lfs f1, 0x340(r30)
/* 8003F4D4 0003C434 C0 0D A1 BC */ lfs f0, lbl_805A8D7C@sda21(r13)
/* 8003F4D8 0003C438 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003F4DC 0003C43C 40 81 00 18 */ ble lbl_8003F4F4
/* 8003F4E0 0003C440 54 80 D7 FF */ rlwinm. r0, r4, 0x1a, 0x1f, 0x1f
/* 8003F4E4 0003C444 41 82 00 10 */ beq lbl_8003F4F4
/* 8003F4E8 0003C448 38 00 00 00 */ li r0, 0
/* 8003F4EC 0003C44C 50 04 36 72 */ rlwimi r4, r0, 6, 0x19, 0x19
/* 8003F4F0 0003C450 98 9E 08 32 */ stb r4, 0x832(r30)
lbl_8003F4F4:
/* 8003F4F4 0003C454 C0 3E 03 40 */ lfs f1, 0x340(r30)
/* 8003F4F8 0003C458 C0 0D A1 B0 */ lfs f0, kTractorBeamFactor__10CPlayerGun@sda21(r13)
/* 8003F4FC 0003C45C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003F500 0003C460 40 81 02 2C */ ble lbl_8003F72C
/* 8003F504 0003C464 7F C3 F3 78 */ mr r3, r30
/* 8003F508 0003C468 38 80 00 02 */ li r4, 2
/* 8003F50C 0003C46C 38 A0 00 00 */ li r5, 0
/* 8003F510 0003C470 48 00 23 B5 */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
/* 8003F514 0003C474 80 1E 02 E0 */ lwz r0, 0x2e0(r30)
/* 8003F518 0003C478 28 00 00 00 */ cmplwi r0, 0
/* 8003F51C 0003C47C 40 82 00 34 */ bne lbl_8003F550
/* 8003F520 0003C480 80 7E 03 10 */ lwz r3, 0x310(r30)
/* 8003F524 0003C484 38 8D 82 40 */ addi r4, r13, sBeamChargeUpSound@sda21
/* 8003F528 0003C488 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 8003F52C 0003C48C 38 C0 00 01 */ li r6, 1
/* 8003F530 0003C490 54 65 08 3C */ slwi r5, r3, 1
/* 8003F534 0003C494 38 61 00 0C */ addi r3, r1, 0xc
/* 8003F538 0003C498 7C 84 2A 2E */ lhzx r4, r4, r5
/* 8003F53C 0003C49C 54 05 E7 FE */ rlwinm r5, r0, 0x1c, 0x1f, 0x1f
/* 8003F540 0003C4A0 38 E0 00 4A */ li r7, 0x4a
/* 8003F544 0003C4A4 48 24 B5 B5 */ bl play_sfx__12NWeaponTypesFUsbbs
/* 8003F548 0003C4A8 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8003F54C 0003C4AC 90 1E 02 E0 */ stw r0, 0x2e0(r30)
lbl_8003F550:
/* 8003F550 0003C4B0 A8 1E 08 30 */ lha r0, 0x830(r30)
/* 8003F554 0003C4B4 2C 00 FF FF */ cmpwi r0, -1
/* 8003F558 0003C4B8 40 82 00 20 */ bne lbl_8003F578
/* 8003F55C 0003C4BC 80 7F 08 8C */ lwz r3, 0x88c(r31)
/* 8003F560 0003C4C0 7F E4 FB 78 */ mr r4, r31
/* 8003F564 0003C4C4 C0 22 84 7C */ lfs f1, lbl_805AA19C@sda21(r2)
/* 8003F568 0003C4C8 38 A0 00 0C */ li r5, 0xc
/* 8003F56C 0003C4CC 38 C0 00 03 */ li r6, 3
/* 8003F570 0003C4D0 48 1E EC D5 */ bl Rumble__14CRumbleManagerFR13CStateManager11ERumbleFxIdf15ERumblePriority
/* 8003F574 0003C4D4 B0 7E 08 30 */ sth r3, 0x830(r30)
lbl_8003F578:
/* 8003F578 0003C4D8 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 8003F57C 0003C4DC 38 60 00 01 */ li r3, 1
/* 8003F580 0003C4E0 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8003F584 0003C4E4 98 1E 08 32 */ stb r0, 0x832(r30)
/* 8003F588 0003C4E8 48 00 01 A4 */ b lbl_8003F72C
lbl_8003F58C:
/* 8003F58C 0003C4EC C0 3E 03 40 */ lfs f1, 0x340(r30)
/* 8003F590 0003C4F0 C0 0D A1 C0 */ lfs f0, lbl_805A8D80@sda21(r13)
/* 8003F594 0003C4F4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003F598 0003C4F8 4C 41 13 82 */ cror 2, 1, 2
/* 8003F59C 0003C4FC 40 82 01 90 */ bne lbl_8003F72C
/* 8003F5A0 0003C500 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8003F5A4 0003C504 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 8003F5A8 0003C508 2C 00 00 08 */ cmpwi r0, 8
/* 8003F5AC 0003C50C 41 82 01 80 */ beq lbl_8003F72C
/* 8003F5B0 0003C510 39 00 00 01 */ li r8, 1
/* 8003F5B4 0003C514 38 E0 00 00 */ li r7, 0
/* 8003F5B8 0003C518 51 04 36 72 */ rlwimi r4, r8, 6, 0x19, 0x19
/* 8003F5BC 0003C51C 38 00 00 03 */ li r0, 3
/* 8003F5C0 0003C520 98 9E 08 32 */ stb r4, 0x832(r30)
/* 8003F5C4 0003C524 7F E5 FB 78 */ mr r5, r31
/* 8003F5C8 0003C528 38 80 00 01 */ li r4, 1
/* 8003F5CC 0003C52C 88 DE 08 32 */ lbz r6, 0x832(r30)
/* 8003F5D0 0003C530 50 E6 26 F6 */ rlwimi r6, r7, 4, 0x1b, 0x1b
/* 8003F5D4 0003C534 98 DE 08 32 */ stb r6, 0x832(r30)
/* 8003F5D8 0003C538 90 1E 03 2C */ stw r0, 0x32c(r30)
/* 8003F5DC 0003C53C 91 1E 03 30 */ stw r8, 0x330(r30)
/* 8003F5E0 0003C540 48 00 01 DD */ bl EnableChargeFx__10CPlayerGunFQ212CPlayerState12EChargeStageR13CStateManager
/* 8003F5E4 0003C544 7F C3 F3 78 */ mr r3, r30
/* 8003F5E8 0003C548 38 80 00 03 */ li r4, 3
/* 8003F5EC 0003C54C 38 A0 00 01 */ li r5, 1
/* 8003F5F0 0003C550 48 00 22 D5 */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
/* 8003F5F4 0003C554 48 00 01 38 */ b lbl_8003F72C
lbl_8003F5F8:
/* 8003F5F8 0003C558 C0 3E 03 40 */ lfs f1, 0x340(r30)
/* 8003F5FC 0003C55C C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8003F600 0003C560 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003F604 0003C564 4C 41 13 82 */ cror 2, 1, 2
/* 8003F608 0003C568 40 82 01 24 */ bne lbl_8003F72C
/* 8003F60C 0003C56C 38 00 00 04 */ li r0, 4
/* 8003F610 0003C570 90 1E 03 2C */ stw r0, 0x32c(r30)
/* 8003F614 0003C574 48 00 01 18 */ b lbl_8003F72C
lbl_8003F618:
/* 8003F618 0003C578 C0 3E 03 44 */ lfs f1, 0x344(r30)
/* 8003F61C 0003C57C C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8003F620 0003C580 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003F624 0003C584 4C 41 13 82 */ cror 2, 1, 2
/* 8003F628 0003C588 40 82 01 04 */ bne lbl_8003F72C
/* 8003F62C 0003C58C 38 00 00 06 */ li r0, 6
/* 8003F630 0003C590 38 60 00 00 */ li r3, 0
/* 8003F634 0003C594 90 1E 03 2C */ stw r0, 0x32c(r30)
/* 8003F638 0003C598 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 8003F63C 0003C59C 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003F640 0003C5A0 98 1E 08 32 */ stb r0, 0x832(r30)
/* 8003F644 0003C5A4 48 00 00 E8 */ b lbl_8003F72C
lbl_8003F648:
/* 8003F648 0003C5A8 38 00 00 07 */ li r0, 7
/* 8003F64C 0003C5AC C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8003F650 0003C5B0 90 1E 03 2C */ stw r0, 0x32c(r30)
/* 8003F654 0003C5B4 D0 1E 03 48 */ stfs f0, 0x348(r30)
/* 8003F658 0003C5B8 48 00 00 D4 */ b lbl_8003F72C
lbl_8003F65C:
/* 8003F65C 0003C5BC 80 7E 07 40 */ lwz r3, 0x740(r30)
/* 8003F660 0003C5C0 7F E5 FB 78 */ mr r5, r31
/* 8003F664 0003C5C4 80 9E 03 10 */ lwz r4, 0x310(r30)
/* 8003F668 0003C5C8 48 0D E8 ED */ bl EnterComboFire__11CGrappleArmFiR13CStateManager
/* 8003F66C 0003C5CC 80 7E 07 3C */ lwz r3, 0x73c(r30)
/* 8003F670 0003C5D0 7F E5 FB 78 */ mr r5, r31
/* 8003F674 0003C5D4 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 8003F678 0003C5D8 38 80 00 04 */ li r4, 4
/* 8003F67C 0003C5DC 38 C0 00 00 */ li r6, 0
/* 8003F680 0003C5E0 48 19 9B 39 */ bl PlayPasAnim__10CGunMotionFQ28SamusGun15EAnimationStateR13CStateManagerfb
/* 8003F684 0003C5E4 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003F688 0003C5E8 7F E5 FB 78 */ mr r5, r31
/* 8003F68C 0003C5EC C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 8003F690 0003C5F0 38 80 00 04 */ li r4, 4
/* 8003F694 0003C5F4 48 17 D0 ED */ bl PlayPasAnim__10CGunWeaponFQ28SamusGun15EAnimationStateR13CStateManagerf
/* 8003F698 0003C5F8 88 7E 08 33 */ lbz r3, 0x833(r30)
/* 8003F69C 0003C5FC 38 00 00 00 */ li r0, 0
/* 8003F6A0 0003C600 50 03 07 FE */ rlwimi r3, r0, 0, 0x1f, 0x1f
/* 8003F6A4 0003C604 38 00 00 08 */ li r0, 8
/* 8003F6A8 0003C608 98 7E 08 33 */ stb r3, 0x833(r30)
/* 8003F6AC 0003C60C 90 1E 03 2C */ stw r0, 0x32c(r30)
/* 8003F6B0 0003C610 48 00 00 7C */ b lbl_8003F72C
lbl_8003F6B4:
/* 8003F6B4 0003C614 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8003F6B8 0003C618 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 8003F6BC 0003C61C 2C 00 00 10 */ cmpwi r0, 0x10
/* 8003F6C0 0003C620 41 82 00 40 */ beq lbl_8003F700
/* 8003F6C4 0003C624 C0 3E 03 48 */ lfs f1, 0x348(r30)
/* 8003F6C8 0003C628 C0 02 84 EC */ lfs f0, lbl_805AA20C@sda21(r2)
/* 8003F6CC 0003C62C EC 21 F8 2A */ fadds f1, f1, f31
/* 8003F6D0 0003C630 D0 3E 03 48 */ stfs f1, 0x348(r30)
/* 8003F6D4 0003C634 C0 3E 03 48 */ lfs f1, 0x348(r30)
/* 8003F6D8 0003C638 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003F6DC 0003C63C 4C 41 13 82 */ cror 2, 1, 2
/* 8003F6E0 0003C640 40 82 00 4C */ bne lbl_8003F72C
/* 8003F6E4 0003C644 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003F6E8 0003C648 48 17 D0 21 */ bl IsChargeAnimOver__10CGunWeaponCFv
/* 8003F6EC 0003C64C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003F6F0 0003C650 41 82 00 3C */ beq lbl_8003F72C
/* 8003F6F4 0003C654 38 00 00 0A */ li r0, 0xa
/* 8003F6F8 0003C658 90 1E 03 2C */ stw r0, 0x32c(r30)
/* 8003F6FC 0003C65C 48 00 00 30 */ b lbl_8003F72C
lbl_8003F700:
/* 8003F700 0003C660 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 8003F704 0003C664 38 60 00 00 */ li r3, 0
/* 8003F708 0003C668 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8003F70C 0003C66C 98 1E 08 32 */ stb r0, 0x832(r30)
/* 8003F710 0003C670 48 00 00 1C */ b lbl_8003F72C
lbl_8003F714:
/* 8003F714 0003C674 38 A0 00 00 */ li r5, 0
/* 8003F718 0003C678 4B FF FA C5 */ bl ResetCharge__10CPlayerGunFR13CStateManagerb
/* 8003F71C 0003C67C 7F C3 F3 78 */ mr r3, r30
/* 8003F720 0003C680 7F E4 FB 78 */ mr r4, r31
/* 8003F724 0003C684 38 A0 00 00 */ li r5, 0
/* 8003F728 0003C688 4B FF FC 19 */ bl Reset__10CPlayerGunFR13CStateManagerb
lbl_8003F72C:
/* 8003F72C 0003C68C 80 1E 02 E0 */ lwz r0, 0x2e0(r30)
/* 8003F730 0003C690 28 00 00 00 */ cmplwi r0, 0
/* 8003F734 0003C694 41 82 00 30 */ beq lbl_8003F764
/* 8003F738 0003C698 88 BE 08 34 */ lbz r5, 0x834(r30)
/* 8003F73C 0003C69C 38 80 20 00 */ li r4, 0x2000
/* 8003F740 0003C6A0 80 1E 02 E0 */ lwz r0, 0x2e0(r30)
/* 8003F744 0003C6A4 38 61 00 08 */ addi r3, r1, 8
/* 8003F748 0003C6A8 54 A6 E7 FE */ rlwinm r6, r5, 0x1c, 0x1f, 0x1f
/* 8003F74C 0003C6AC 7C A6 00 D0 */ neg r5, r6
/* 8003F750 0003C6B0 90 01 00 08 */ stw r0, 8(r1)
/* 8003F754 0003C6B4 7C A0 33 78 */ or r0, r5, r6
/* 8003F758 0003C6B8 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8003F75C 0003C6BC 7C 84 00 78 */ andc r4, r4, r0
/* 8003F760 0003C6C0 48 2A 97 4D */ bl PitchBend__11CSfxManagerF10CSfxHandlei
lbl_8003F764:
/* 8003F764 0003C6C4 80 1E 03 2C */ lwz r0, 0x32c(r30)
/* 8003F768 0003C6C8 2C 00 00 00 */ cmpwi r0, 0
/* 8003F76C 0003C6CC 40 81 00 30 */ ble lbl_8003F79C
/* 8003F770 0003C6D0 2C 00 00 04 */ cmpwi r0, 4
/* 8003F774 0003C6D4 40 80 00 28 */ bge lbl_8003F79C
/* 8003F778 0003C6D8 C0 4D A1 B8 */ lfs f2, lbl_805A8D78@sda21(r13)
/* 8003F77C 0003C6DC C0 3E 03 40 */ lfs f1, 0x340(r30)
/* 8003F780 0003C6E0 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8003F784 0003C6E4 EC 22 0F FA */ fmadds f1, f2, f31, f1
/* 8003F788 0003C6E8 D0 3E 03 40 */ stfs f1, 0x340(r30)
/* 8003F78C 0003C6EC C0 3E 03 40 */ lfs f1, 0x340(r30)
/* 8003F790 0003C6F0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003F794 0003C6F4 40 81 00 08 */ ble lbl_8003F79C
/* 8003F798 0003C6F8 D0 1E 03 40 */ stfs f0, 0x340(r30)
lbl_8003F79C:
/* 8003F79C 0003C6FC E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 8003F7A0 0003C700 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8003F7A4 0003C704 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 8003F7A8 0003C708 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003F7AC 0003C70C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003F7B0 0003C710 7C 08 03 A6 */ mtlr r0
/* 8003F7B4 0003C714 38 21 00 30 */ addi r1, r1, 0x30
/* 8003F7B8 0003C718 4E 80 00 20 */ blr
.global EnableChargeFx__10CPlayerGunFQ212CPlayerState12EChargeStageR13CStateManager
EnableChargeFx__10CPlayerGunFQ212CPlayerState12EChargeStageR13CStateManager:
/* 8003F7BC 0003C71C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8003F7C0 0003C720 7C 08 02 A6 */ mflr r0
/* 8003F7C4 0003C724 38 80 00 01 */ li r4, 1
/* 8003F7C8 0003C728 90 01 00 34 */ stw r0, 0x34(r1)
/* 8003F7CC 0003C72C 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8003F7D0 0003C730 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8003F7D4 0003C734 7C 7E 1B 78 */ mr r30, r3
/* 8003F7D8 0003C738 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8003F7DC 0003C73C 93 81 00 20 */ stw r28, 0x20(r1)
/* 8003F7E0 0003C740 7C BC 2B 78 */ mr r28, r5
/* 8003F7E4 0003C744 38 A0 00 00 */ li r5, 0
/* 8003F7E8 0003C748 80 63 07 2C */ lwz r3, 0x72c(r3)
/* 8003F7EC 0003C74C 48 17 C7 9D */ bl ActivateCharge__10CGunWeaponFbb
/* 8003F7F0 0003C750 7F C3 F3 78 */ mr r3, r30
/* 8003F7F4 0003C754 7F 85 E3 78 */ mr r5, r28
/* 8003F7F8 0003C758 38 80 00 01 */ li r4, 1
/* 8003F7FC 0003C75C 4B FF BC 75 */ bl SetGunLightActive__10CPlayerGunFbR13CStateManager
/* 8003F800 0003C760 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003F804 0003C764 38 80 00 01 */ li r4, 1
/* 8003F808 0003C768 81 83 00 00 */ lwz r12, 0(r3)
/* 8003F80C 0003C76C 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 8003F810 0003C770 7D 89 03 A6 */ mtctr r12
/* 8003F814 0003C774 4E 80 04 21 */ bctrl
/* 8003F818 0003C778 7F C3 F3 78 */ mr r3, r30
/* 8003F81C 0003C77C 7F 84 E3 78 */ mr r4, r28
/* 8003F820 0003C780 38 A0 00 00 */ li r5, 0
/* 8003F824 0003C784 4B FF CB 8D */ bl StopContinuousBeam__10CPlayerGunFR13CStateManagerb
/* 8003F828 0003C788 80 1E 03 10 */ lwz r0, 0x310(r30)
/* 8003F82C 0003C78C 2C 00 00 03 */ cmpwi r0, 3
/* 8003F830 0003C790 41 82 00 14 */ beq lbl_8003F844
/* 8003F834 0003C794 40 80 00 20 */ bge lbl_8003F854
/* 8003F838 0003C798 2C 00 00 00 */ cmpwi r0, 0
/* 8003F83C 0003C79C 41 82 00 08 */ beq lbl_8003F844
/* 8003F840 0003C7A0 48 00 00 14 */ b lbl_8003F854
lbl_8003F844:
/* 8003F844 0003C7A4 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 8003F848 0003C7A8 38 60 00 01 */ li r3, 1
/* 8003F84C 0003C7AC 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8003F850 0003C7B0 98 1E 08 32 */ stb r0, 0x832(r30)
lbl_8003F854:
/* 8003F854 0003C7B4 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8003F858 0003C7B8 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 8003F85C 0003C7BC 38 63 CE B0 */ addi r3, r3, lbl_803CCEB0@l
/* 8003F860 0003C7C0 38 C0 00 01 */ li r6, 1
/* 8003F864 0003C7C4 60 04 00 07 */ ori r4, r0, 7
/* 8003F868 0003C7C8 38 00 00 00 */ li r0, 0
/* 8003F86C 0003C7CC 90 9E 02 F8 */ stw r4, 0x2f8(r30)
/* 8003F870 0003C7D0 38 83 00 09 */ addi r4, r3, 9
/* 8003F874 0003C7D4 3B A0 00 00 */ li r29, 0
/* 8003F878 0003C7D8 38 60 03 40 */ li r3, 0x340
/* 8003F87C 0003C7DC 90 DE 03 18 */ stw r6, 0x318(r30)
/* 8003F880 0003C7E0 38 A0 00 00 */ li r5, 0
/* 8003F884 0003C7E4 90 1E 03 38 */ stw r0, 0x338(r30)
/* 8003F888 0003C7E8 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 8003F88C 0003C7EC 50 C0 0F BC */ rlwimi r0, r6, 1, 0x1e, 0x1e
/* 8003F890 0003C7F0 98 1E 08 33 */ stb r0, 0x833(r30)
/* 8003F894 0003C7F4 48 2D 5F D9 */ bl __nw__FUlPCcPCc
/* 8003F898 0003C7F8 7C 7F 1B 79 */ or. r31, r3, r3
/* 8003F89C 0003C7FC 41 82 00 38 */ beq lbl_8003F8D4
/* 8003F8A0 0003C800 80 1E 03 20 */ lwz r0, 0x320(r30)
/* 8003F8A4 0003C804 38 61 00 10 */ addi r3, r1, 0x10
/* 8003F8A8 0003C808 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8003F8AC 0003C80C 7C 9E 02 14 */ add r4, r30, r0
/* 8003F8B0 0003C810 38 84 07 C4 */ addi r4, r4, 0x7c4
/* 8003F8B4 0003C814 48 30 15 F5 */ bl __ct__6CTokenFRC6CToken
/* 8003F8B8 0003C818 7F E3 FB 78 */ mr r3, r31
/* 8003F8BC 0003C81C 38 81 00 10 */ addi r4, r1, 0x10
/* 8003F8C0 0003C820 3B A0 00 01 */ li r29, 1
/* 8003F8C4 0003C824 38 A0 00 00 */ li r5, 0
/* 8003F8C8 0003C828 38 C0 00 01 */ li r6, 1
/* 8003F8CC 0003C82C 48 2D FB 15 */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 8003F8D0 0003C830 7C 7F 1B 78 */ mr r31, r3
lbl_8003F8D4:
/* 8003F8D4 0003C834 7C 1F 00 D0 */ neg r0, r31
/* 8003F8D8 0003C838 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003F8DC 0003C83C 7C 00 FB 78 */ or r0, r0, r31
/* 8003F8E0 0003C840 3B FE 08 04 */ addi r31, r30, 0x804
/* 8003F8E4 0003C844 54 03 0F FE */ srwi r3, r0, 0x1f
/* 8003F8E8 0003C848 38 01 00 08 */ addi r0, r1, 8
/* 8003F8EC 0003C84C 98 61 00 08 */ stb r3, 8(r1)
/* 8003F8F0 0003C850 80 7E 03 20 */ lwz r3, 0x320(r30)
/* 8003F8F4 0003C854 54 63 18 38 */ slwi r3, r3, 3
/* 8003F8F8 0003C858 7F 9F 1A 14 */ add r28, r31, r3
/* 8003F8FC 0003C85C 7C 00 E0 40 */ cmplw r0, r28
/* 8003F900 0003C860 41 82 00 48 */ beq lbl_8003F948
/* 8003F904 0003C864 88 1C 00 00 */ lbz r0, 0(r28)
/* 8003F908 0003C868 28 00 00 00 */ cmplwi r0, 0
/* 8003F90C 0003C86C 41 82 00 24 */ beq lbl_8003F930
/* 8003F910 0003C870 80 7C 00 04 */ lwz r3, 4(r28)
/* 8003F914 0003C874 28 03 00 00 */ cmplwi r3, 0
/* 8003F918 0003C878 41 82 00 18 */ beq lbl_8003F930
/* 8003F91C 0003C87C 81 83 00 00 */ lwz r12, 0(r3)
/* 8003F920 0003C880 38 80 00 01 */ li r4, 1
/* 8003F924 0003C884 81 8C 00 08 */ lwz r12, 8(r12)
/* 8003F928 0003C888 7D 89 03 A6 */ mtctr r12
/* 8003F92C 0003C88C 4E 80 04 21 */ bctrl
lbl_8003F930:
/* 8003F930 0003C890 88 61 00 08 */ lbz r3, 8(r1)
/* 8003F934 0003C894 38 00 00 00 */ li r0, 0
/* 8003F938 0003C898 98 7C 00 00 */ stb r3, 0(r28)
/* 8003F93C 0003C89C 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8003F940 0003C8A0 90 7C 00 04 */ stw r3, 4(r28)
/* 8003F944 0003C8A4 98 01 00 08 */ stb r0, 8(r1)
lbl_8003F948:
/* 8003F948 0003C8A8 88 01 00 08 */ lbz r0, 8(r1)
/* 8003F94C 0003C8AC 28 00 00 00 */ cmplwi r0, 0
/* 8003F950 0003C8B0 41 82 00 24 */ beq lbl_8003F974
/* 8003F954 0003C8B4 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8003F958 0003C8B8 28 03 00 00 */ cmplwi r3, 0
/* 8003F95C 0003C8BC 41 82 00 18 */ beq lbl_8003F974
/* 8003F960 0003C8C0 81 83 00 00 */ lwz r12, 0(r3)
/* 8003F964 0003C8C4 38 80 00 01 */ li r4, 1
/* 8003F968 0003C8C8 81 8C 00 08 */ lwz r12, 8(r12)
/* 8003F96C 0003C8CC 7D 89 03 A6 */ mtctr r12
/* 8003F970 0003C8D0 4E 80 04 21 */ bctrl
lbl_8003F974:
/* 8003F974 0003C8D4 7F A0 07 75 */ extsb. r0, r29
/* 8003F978 0003C8D8 41 82 00 10 */ beq lbl_8003F988
/* 8003F97C 0003C8DC 38 61 00 10 */ addi r3, r1, 0x10
/* 8003F980 0003C8E0 38 80 00 00 */ li r4, 0
/* 8003F984 0003C8E4 48 30 14 BD */ bl __dt__6CTokenFv
lbl_8003F988:
/* 8003F988 0003C8E8 80 1E 03 20 */ lwz r0, 0x320(r30)
/* 8003F98C 0003C8EC 38 80 00 01 */ li r4, 1
/* 8003F990 0003C8F0 54 03 18 38 */ slwi r3, r0, 3
/* 8003F994 0003C8F4 38 03 00 04 */ addi r0, r3, 4
/* 8003F998 0003C8F8 7C 7F 00 2E */ lwzx r3, r31, r0
/* 8003F99C 0003C8FC 81 83 00 00 */ lwz r12, 0(r3)
/* 8003F9A0 0003C900 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 8003F9A4 0003C904 7D 89 03 A6 */ mtctr r12
/* 8003F9A8 0003C908 4E 80 04 21 */ bctrl
/* 8003F9AC 0003C90C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8003F9B0 0003C910 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8003F9B4 0003C914 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8003F9B8 0003C918 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8003F9BC 0003C91C 83 81 00 20 */ lwz r28, 0x20(r1)
/* 8003F9C0 0003C920 7C 08 03 A6 */ mtlr r0
/* 8003F9C4 0003C924 38 21 00 30 */ addi r1, r1, 0x30
/* 8003F9C8 0003C928 4E 80 00 20 */ blr
.global ActivateCombo__10CPlayerGunFR13CStateManager
ActivateCombo__10CPlayerGunFR13CStateManager:
/* 8003F9CC 0003C92C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8003F9D0 0003C930 7C 08 02 A6 */ mflr r0
/* 8003F9D4 0003C934 90 01 00 44 */ stw r0, 0x44(r1)
/* 8003F9D8 0003C938 BF 61 00 2C */ stmw r27, 0x2c(r1)
/* 8003F9DC 0003C93C 7C 7E 1B 78 */ mr r30, r3
/* 8003F9E0 0003C940 7C 9F 23 78 */ mr r31, r4
/* 8003F9E4 0003C944 88 03 08 32 */ lbz r0, 0x832(r3)
/* 8003F9E8 0003C948 54 00 DF FE */ rlwinm r0, r0, 0x1b, 0x1f, 0x1f
/* 8003F9EC 0003C94C 28 00 00 01 */ cmplwi r0, 1
/* 8003F9F0 0003C950 41 82 02 40 */ beq lbl_8003FC30
/* 8003F9F4 0003C954 80 7F 08 B8 */ lwz r3, 0x8b8(r31)
/* 8003F9F8 0003C958 83 83 00 00 */ lwz r28, 0(r3)
/* 8003F9FC 0003C95C 7F 83 E3 78 */ mr r3, r28
/* 8003FA00 0003C960 48 05 18 1D */ bl GetMissileCostForAltAttack__12CPlayerStateCFv
/* 8003FA04 0003C964 80 1E 03 18 */ lwz r0, 0x318(r30)
/* 8003FA08 0003C968 7C 7D 1B 78 */ mr r29, r3
/* 8003FA0C 0003C96C 38 82 84 60 */ addi r4, r2, lbl_805AA180@sda21
/* 8003FA10 0003C970 7F 83 E3 78 */ mr r3, r28
/* 8003FA14 0003C974 54 00 10 3A */ slwi r0, r0, 2
/* 8003FA18 0003C978 7C 84 00 2E */ lwzx r4, r4, r0
/* 8003FA1C 0003C97C 48 05 21 01 */ bl GetItemAmount__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003FA20 0003C980 7C 03 E8 00 */ cmpw r3, r29
/* 8003FA24 0003C984 41 80 01 F0 */ blt lbl_8003FC14
/* 8003FA28 0003C988 80 1E 03 10 */ lwz r0, 0x310(r30)
/* 8003FA2C 0003C98C 38 60 00 01 */ li r3, 1
/* 8003FA30 0003C990 2C 00 00 03 */ cmpwi r0, 3
/* 8003FA34 0003C994 40 82 00 18 */ bne lbl_8003FA4C
/* 8003FA38 0003C998 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 8003FA3C 0003C99C 54 00 E7 FE */ rlwinm r0, r0, 0x1c, 0x1f, 0x1f
/* 8003FA40 0003C9A0 7C 00 00 34 */ cntlzw r0, r0
/* 8003FA44 0003C9A4 54 00 D9 7E */ srwi r0, r0, 5
/* 8003FA48 0003C9A8 7C 03 03 78 */ mr r3, r0
lbl_8003FA4C:
/* 8003FA4C 0003C9AC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003FA50 0003C9B0 41 82 01 E0 */ beq lbl_8003FC30
/* 8003FA54 0003C9B4 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 8003FA58 0003C9B8 38 80 00 01 */ li r4, 1
/* 8003FA5C 0003C9BC 50 80 2E B4 */ rlwimi r0, r4, 5, 0x1a, 0x1a
/* 8003FA60 0003C9C0 98 1E 08 32 */ stb r0, 0x832(r30)
/* 8003FA64 0003C9C4 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8003FA68 0003C9C8 3B 63 01 60 */ addi r27, r3, 0x160
/* 8003FA6C 0003C9CC 80 03 01 68 */ lwz r0, 0x168(r3)
/* 8003FA70 0003C9D0 28 00 00 00 */ cmplwi r0, 0
/* 8003FA74 0003C9D4 41 82 00 08 */ beq lbl_8003FA7C
/* 8003FA78 0003C9D8 48 00 00 3C */ b lbl_8003FAB4
lbl_8003FA7C:
/* 8003FA7C 0003C9DC 88 1B 00 04 */ lbz r0, 4(r27)
/* 8003FA80 0003C9E0 28 00 00 00 */ cmplwi r0, 0
/* 8003FA84 0003C9E4 41 82 00 2C */ beq lbl_8003FAB0
/* 8003FA88 0003C9E8 80 7B 00 00 */ lwz r3, 0(r27)
/* 8003FA8C 0003C9EC 80 03 00 10 */ lwz r0, 0x10(r3)
/* 8003FA90 0003C9F0 28 00 00 00 */ cmplwi r0, 0
/* 8003FA94 0003C9F4 41 82 00 1C */ beq lbl_8003FAB0
/* 8003FA98 0003C9F8 7F 63 DB 78 */ mr r3, r27
/* 8003FA9C 0003C9FC 48 30 13 71 */ bl GetObj__6CTokenFv
/* 8003FAA0 0003CA00 80 03 00 04 */ lwz r0, 4(r3)
/* 8003FAA4 0003CA04 38 80 00 01 */ li r4, 1
/* 8003FAA8 0003CA08 90 1B 00 08 */ stw r0, 8(r27)
/* 8003FAAC 0003CA0C 48 00 00 08 */ b lbl_8003FAB4
lbl_8003FAB0:
/* 8003FAB0 0003CA10 38 80 00 00 */ li r4, 0
lbl_8003FAB4:
/* 8003FAB4 0003CA14 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 8003FAB8 0003CA18 41 82 01 14 */ beq lbl_8003FBCC
/* 8003FABC 0003CA1C 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 8003FAC0 0003CA20 3B A0 00 00 */ li r29, 0
/* 8003FAC4 0003CA24 38 83 CE B0 */ addi r4, r3, lbl_803CCEB0@l
/* 8003FAC8 0003CA28 38 60 03 40 */ li r3, 0x340
/* 8003FACC 0003CA2C 38 84 00 09 */ addi r4, r4, 9
/* 8003FAD0 0003CA30 38 A0 00 00 */ li r5, 0
/* 8003FAD4 0003CA34 48 2D 5D 99 */ bl __nw__FUlPCcPCc
/* 8003FAD8 0003CA38 7C 7C 1B 79 */ or. r28, r3, r3
/* 8003FADC 0003CA3C 41 82 00 2C */ beq lbl_8003FB08
/* 8003FAE0 0003CA40 7F 64 DB 78 */ mr r4, r27
/* 8003FAE4 0003CA44 38 61 00 18 */ addi r3, r1, 0x18
/* 8003FAE8 0003CA48 48 30 13 C1 */ bl __ct__6CTokenFRC6CToken
/* 8003FAEC 0003CA4C 7F 83 E3 78 */ mr r3, r28
/* 8003FAF0 0003CA50 38 81 00 18 */ addi r4, r1, 0x18
/* 8003FAF4 0003CA54 3B A0 00 01 */ li r29, 1
/* 8003FAF8 0003CA58 38 A0 00 00 */ li r5, 0
/* 8003FAFC 0003CA5C 38 C0 00 01 */ li r6, 1
/* 8003FB00 0003CA60 48 2D F8 E1 */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 8003FB04 0003CA64 7C 7C 1B 78 */ mr r28, r3
lbl_8003FB08:
/* 8003FB08 0003CA68 7C 1C 00 D0 */ neg r0, r28
/* 8003FB0C 0003CA6C 38 61 00 10 */ addi r3, r1, 0x10
/* 8003FB10 0003CA70 7C 04 E3 78 */ or r4, r0, r28
/* 8003FB14 0003CA74 38 1E 07 7C */ addi r0, r30, 0x77c
/* 8003FB18 0003CA78 54 84 0F FE */ srwi r4, r4, 0x1f
/* 8003FB1C 0003CA7C 93 81 00 14 */ stw r28, 0x14(r1)
/* 8003FB20 0003CA80 7C 03 00 40 */ cmplw r3, r0
/* 8003FB24 0003CA84 98 81 00 10 */ stb r4, 0x10(r1)
/* 8003FB28 0003CA88 41 82 00 48 */ beq lbl_8003FB70
/* 8003FB2C 0003CA8C 88 1E 07 7C */ lbz r0, 0x77c(r30)
/* 8003FB30 0003CA90 28 00 00 00 */ cmplwi r0, 0
/* 8003FB34 0003CA94 41 82 00 24 */ beq lbl_8003FB58
/* 8003FB38 0003CA98 80 7E 07 80 */ lwz r3, 0x780(r30)
/* 8003FB3C 0003CA9C 28 03 00 00 */ cmplwi r3, 0
/* 8003FB40 0003CAA0 41 82 00 18 */ beq lbl_8003FB58
/* 8003FB44 0003CAA4 81 83 00 00 */ lwz r12, 0(r3)
/* 8003FB48 0003CAA8 38 80 00 01 */ li r4, 1
/* 8003FB4C 0003CAAC 81 8C 00 08 */ lwz r12, 8(r12)
/* 8003FB50 0003CAB0 7D 89 03 A6 */ mtctr r12
/* 8003FB54 0003CAB4 4E 80 04 21 */ bctrl
lbl_8003FB58:
/* 8003FB58 0003CAB8 88 61 00 10 */ lbz r3, 0x10(r1)
/* 8003FB5C 0003CABC 38 00 00 00 */ li r0, 0
/* 8003FB60 0003CAC0 98 7E 07 7C */ stb r3, 0x77c(r30)
/* 8003FB64 0003CAC4 80 61 00 14 */ lwz r3, 0x14(r1)
/* 8003FB68 0003CAC8 90 7E 07 80 */ stw r3, 0x780(r30)
/* 8003FB6C 0003CACC 98 01 00 10 */ stb r0, 0x10(r1)
lbl_8003FB70:
/* 8003FB70 0003CAD0 88 01 00 10 */ lbz r0, 0x10(r1)
/* 8003FB74 0003CAD4 28 00 00 00 */ cmplwi r0, 0
/* 8003FB78 0003CAD8 41 82 00 24 */ beq lbl_8003FB9C
/* 8003FB7C 0003CADC 80 61 00 14 */ lwz r3, 0x14(r1)
/* 8003FB80 0003CAE0 28 03 00 00 */ cmplwi r3, 0
/* 8003FB84 0003CAE4 41 82 00 18 */ beq lbl_8003FB9C
/* 8003FB88 0003CAE8 81 83 00 00 */ lwz r12, 0(r3)
/* 8003FB8C 0003CAEC 38 80 00 01 */ li r4, 1
/* 8003FB90 0003CAF0 81 8C 00 08 */ lwz r12, 8(r12)
/* 8003FB94 0003CAF4 7D 89 03 A6 */ mtctr r12
/* 8003FB98 0003CAF8 4E 80 04 21 */ bctrl
lbl_8003FB9C:
/* 8003FB9C 0003CAFC 7F A0 07 75 */ extsb. r0, r29
/* 8003FBA0 0003CB00 41 82 00 10 */ beq lbl_8003FBB0
/* 8003FBA4 0003CB04 38 61 00 18 */ addi r3, r1, 0x18
/* 8003FBA8 0003CB08 38 80 00 00 */ li r4, 0
/* 8003FBAC 0003CB0C 48 30 12 95 */ bl __dt__6CTokenFv
lbl_8003FBB0:
/* 8003FBB0 0003CB10 80 7E 07 80 */ lwz r3, 0x780(r30)
/* 8003FBB4 0003CB14 3C 80 80 57 */ lis r4, kScaleVector__10CPlayerGun@ha
/* 8003FBB8 0003CB18 38 84 D4 04 */ addi r4, r4, kScaleVector__10CPlayerGun@l
/* 8003FBBC 0003CB1C 81 83 00 00 */ lwz r12, 0(r3)
/* 8003FBC0 0003CB20 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8003FBC4 0003CB24 7D 89 03 A6 */ mtctr r12
/* 8003FBC8 0003CB28 4E 80 04 21 */ bctrl
lbl_8003FBCC:
/* 8003FBCC 0003CB2C 80 BE 07 2C */ lwz r5, 0x72c(r30)
/* 8003FBD0 0003CB30 38 C0 00 01 */ li r6, 1
/* 8003FBD4 0003CB34 7F C3 F3 78 */ mr r3, r30
/* 8003FBD8 0003CB38 7F E4 FB 78 */ mr r4, r31
/* 8003FBDC 0003CB3C 88 05 02 18 */ lbz r0, 0x218(r5)
/* 8003FBE0 0003CB40 50 C0 36 72 */ rlwimi r0, r6, 6, 0x19, 0x19
/* 8003FBE4 0003CB44 98 05 02 18 */ stb r0, 0x218(r5)
/* 8003FBE8 0003CB48 4B FF CF 6D */ bl StopChargeSound__10CPlayerGunFR13CStateManager
/* 8003FBEC 0003CB4C 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 8003FBF0 0003CB50 38 61 00 0C */ addi r3, r1, 0xc
/* 8003FBF4 0003CB54 38 80 06 E2 */ li r4, 0x6e2
/* 8003FBF8 0003CB58 38 C0 00 00 */ li r6, 0
/* 8003FBFC 0003CB5C 54 05 E7 FE */ rlwinm r5, r0, 0x1c, 0x1f, 0x1f
/* 8003FC00 0003CB60 38 E0 00 4A */ li r7, 0x4a
/* 8003FC04 0003CB64 48 24 AE F5 */ bl play_sfx__12NWeaponTypesFUsbbs
/* 8003FC08 0003CB68 38 00 00 05 */ li r0, 5
/* 8003FC0C 0003CB6C 90 1E 03 2C */ stw r0, 0x32c(r30)
/* 8003FC10 0003CB70 48 00 00 20 */ b lbl_8003FC30
lbl_8003FC14:
/* 8003FC14 0003CB74 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 8003FC18 0003CB78 38 61 00 08 */ addi r3, r1, 8
/* 8003FC1C 0003CB7C 38 80 06 F5 */ li r4, 0x6f5
/* 8003FC20 0003CB80 38 C0 00 00 */ li r6, 0
/* 8003FC24 0003CB84 54 05 E7 FE */ rlwinm r5, r0, 0x1c, 0x1f, 0x1f
/* 8003FC28 0003CB88 38 E0 00 4A */ li r7, 0x4a
/* 8003FC2C 0003CB8C 48 24 AE CD */ bl play_sfx__12NWeaponTypesFUsbbs
lbl_8003FC30:
/* 8003FC30 0003CB90 BB 61 00 2C */ lmw r27, 0x2c(r1)
/* 8003FC34 0003CB94 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8003FC38 0003CB98 7C 08 03 A6 */ mtlr r0
/* 8003FC3C 0003CB9C 38 21 00 40 */ addi r1, r1, 0x40
/* 8003FC40 0003CBA0 4E 80 00 20 */ blr
.global DropBomb__10CPlayerGunFQ210CPlayerGun8EBWeaponR13CStateManager
DropBomb__10CPlayerGunFQ210CPlayerGun8EBWeaponR13CStateManager:
/* 8003FC44 0003CBA4 94 21 FF 50 */ stwu r1, -0xb0(r1)
/* 8003FC48 0003CBA8 7C 08 02 A6 */ mflr r0
/* 8003FC4C 0003CBAC 90 01 00 B4 */ stw r0, 0xb4(r1)
/* 8003FC50 0003CBB0 DB E1 00 A0 */ stfd f31, 0xa0(r1)
/* 8003FC54 0003CBB4 F3 E1 00 A8 */ psq_st f31, 168(r1), 0, qr0
/* 8003FC58 0003CBB8 BF 41 00 88 */ stmw r26, 0x88(r1)
/* 8003FC5C 0003CBBC 7C 9B 23 78 */ mr r27, r4
/* 8003FC60 0003CBC0 80 8D A1 18 */ lwz r4, gpTweakPlayer@sda21(r13)
/* 8003FC64 0003CBC4 2C 1B 00 01 */ cmpwi r27, 1
/* 8003FC68 0003CBC8 7C 7E 1B 78 */ mr r30, r3
/* 8003FC6C 0003CBCC C3 E4 02 7C */ lfs f31, 0x27c(r4)
/* 8003FC70 0003CBD0 7C BF 2B 78 */ mr r31, r5
/* 8003FC74 0003CBD4 41 82 01 D0 */ beq lbl_8003FE44
/* 8003FC78 0003CBD8 40 80 01 F8 */ bge lbl_8003FE70
/* 8003FC7C 0003CBDC 2C 1B 00 00 */ cmpwi r27, 0
/* 8003FC80 0003CBE0 40 80 00 08 */ bge lbl_8003FC88
/* 8003FC84 0003CBE4 48 00 01 EC */ b lbl_8003FE70
lbl_8003FC88:
/* 8003FC88 0003CBE8 80 1E 03 2C */ lwz r0, 0x32c(r30)
/* 8003FC8C 0003CBEC 2C 00 00 00 */ cmpwi r0, 0
/* 8003FC90 0003CBF0 41 82 00 10 */ beq lbl_8003FCA0
/* 8003FC94 0003CBF4 38 00 00 0A */ li r0, 0xa
/* 8003FC98 0003CBF8 90 1E 03 2C */ stw r0, 0x32c(r30)
/* 8003FC9C 0003CBFC 48 00 01 D4 */ b lbl_8003FE70
lbl_8003FCA0:
/* 8003FCA0 0003CC00 80 1E 03 08 */ lwz r0, 0x308(r30)
/* 8003FCA4 0003CC04 2C 00 00 00 */ cmpwi r0, 0
/* 8003FCA8 0003CC08 40 81 01 C8 */ ble lbl_8003FE70
/* 8003FCAC 0003CC0C 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 8003FCB0 0003CC10 3B A0 00 00 */ li r29, 0
/* 8003FCB4 0003CC14 38 63 CE B0 */ addi r3, r3, lbl_803CCEB0@l
/* 8003FCB8 0003CC18 3B 40 00 00 */ li r26, 0
/* 8003FCBC 0003CC1C 38 83 00 09 */ addi r4, r3, 9
/* 8003FCC0 0003CC20 38 60 01 98 */ li r3, 0x198
/* 8003FCC4 0003CC24 38 A0 00 00 */ li r5, 0
/* 8003FCC8 0003CC28 48 2D 5B A5 */ bl __nw__FUlPCcPCc
/* 8003FCCC 0003CC2C 7C 7C 1B 79 */ or. r28, r3, r3
/* 8003FCD0 0003CC30 41 82 00 C4 */ beq lbl_8003FD94
/* 8003FCD4 0003CC34 1C 1B 00 1C */ mulli r0, r27, 0x1c
/* 8003FCD8 0003CC38 38 61 00 38 */ addi r3, r1, 0x38
/* 8003FCDC 0003CC3C 7F 7E 02 14 */ add r27, r30, r0
/* 8003FCE0 0003CC40 38 9B 07 8C */ addi r4, r27, 0x78c
/* 8003FCE4 0003CC44 48 30 11 C5 */ bl __ct__6CTokenFRC6CToken
/* 8003FCE8 0003CC48 38 61 00 40 */ addi r3, r1, 0x40
/* 8003FCEC 0003CC4C 38 9B 07 98 */ addi r4, r27, 0x798
/* 8003FCF0 0003CC50 3B 40 00 01 */ li r26, 1
/* 8003FCF4 0003CC54 48 30 11 B5 */ bl __ct__6CTokenFRC6CToken
/* 8003FCF8 0003CC58 7F E4 FB 78 */ mr r4, r31
/* 8003FCFC 0003CC5C 38 61 00 18 */ addi r3, r1, 0x18
/* 8003FD00 0003CC60 3B A0 00 01 */ li r29, 1
/* 8003FD04 0003CC64 48 00 D3 D9 */ bl AllocateUniqueId__13CStateManagerFv
/* 8003FD08 0003CC68 A0 01 00 18 */ lhz r0, 0x18(r1)
/* 8003FD0C 0003CC6C 38 61 00 54 */ addi r3, r1, 0x54
/* 8003FD10 0003CC70 80 AD A1 34 */ lwz r5, gpTweakPlayerGun@sda21(r13)
/* 8003FD14 0003CC74 38 81 00 48 */ addi r4, r1, 0x48
/* 8003FD18 0003CC78 B0 01 00 1C */ sth r0, 0x1c(r1)
/* 8003FD1C 0003CC7C C0 42 84 6C */ lfs f2, lbl_805AA18C@sda21(r2)
/* 8003FD20 0003CC80 3B 65 00 70 */ addi r27, r5, 0x70
/* 8003FD24 0003CC84 80 BF 08 4C */ lwz r5, 0x84c(r31)
/* 8003FD28 0003CC88 80 A5 00 04 */ lwz r5, 4(r5)
/* 8003FD2C 0003CC8C 90 A1 00 2C */ stw r5, 0x2c(r1)
/* 8003FD30 0003CC90 A0 1E 05 38 */ lhz r0, 0x538(r30)
/* 8003FD34 0003CC94 90 A1 00 28 */ stw r5, 0x28(r1)
/* 8003FD38 0003CC98 B0 01 00 20 */ sth r0, 0x20(r1)
/* 8003FD3C 0003CC9C 80 BF 08 4C */ lwz r5, 0x84c(r31)
/* 8003FD40 0003CCA0 C0 65 00 50 */ lfs f3, 0x50(r5)
/* 8003FD44 0003CCA4 C0 25 00 60 */ lfs f1, 0x60(r5)
/* 8003FD48 0003CCA8 C0 05 00 40 */ lfs f0, 0x40(r5)
/* 8003FD4C 0003CCAC EC 63 10 2A */ fadds f3, f3, f2
/* 8003FD50 0003CCB0 EC 21 F8 2A */ fadds f1, f1, f31
/* 8003FD54 0003CCB4 EC 00 10 2A */ fadds f0, f0, f2
/* 8003FD58 0003CCB8 D0 61 00 4C */ stfs f3, 0x4c(r1)
/* 8003FD5C 0003CCBC D0 01 00 48 */ stfs f0, 0x48(r1)
/* 8003FD60 0003CCC0 D0 21 00 50 */ stfs f1, 0x50(r1)
/* 8003FD64 0003CCC4 48 2D 33 DD */ bl Translate__12CTransform4fFRC9CVector3f
/* 8003FD68 0003CCC8 C0 3E 03 54 */ lfs f1, 0x354(r30)
/* 8003FD6C 0003CCCC 7F 83 E3 78 */ mr r3, r28
/* 8003FD70 0003CCD0 7F 6A DB 78 */ mr r10, r27
/* 8003FD74 0003CCD4 38 81 00 38 */ addi r4, r1, 0x38
/* 8003FD78 0003CCD8 38 A1 00 40 */ addi r5, r1, 0x40
/* 8003FD7C 0003CCDC 38 C1 00 1C */ addi r6, r1, 0x1c
/* 8003FD80 0003CCE0 38 E1 00 2C */ addi r7, r1, 0x2c
/* 8003FD84 0003CCE4 39 01 00 20 */ addi r8, r1, 0x20
/* 8003FD88 0003CCE8 39 21 00 54 */ addi r9, r1, 0x54
/* 8003FD8C 0003CCEC 48 05 0A 19 */ bl "__ct__5CBombF25TToken<15CGenDescription>25TToken<15CGenDescription>9TUniqueId7TAreaId9TUniqueIdfRC12CTransform4fRC11CDamageInfo"
/* 8003FD90 0003CCF0 7C 7C 1B 78 */ mr r28, r3
lbl_8003FD94:
/* 8003FD94 0003CCF4 7F 40 07 75 */ extsb. r0, r26
/* 8003FD98 0003CCF8 7F 9B E3 78 */ mr r27, r28
/* 8003FD9C 0003CCFC 41 82 00 10 */ beq lbl_8003FDAC
/* 8003FDA0 0003CD00 38 61 00 38 */ addi r3, r1, 0x38
/* 8003FDA4 0003CD04 38 80 00 00 */ li r4, 0
/* 8003FDA8 0003CD08 48 30 10 99 */ bl __dt__6CTokenFv
lbl_8003FDAC:
/* 8003FDAC 0003CD0C 7F A0 07 75 */ extsb. r0, r29
/* 8003FDB0 0003CD10 41 82 00 10 */ beq lbl_8003FDC0
/* 8003FDB4 0003CD14 38 61 00 40 */ addi r3, r1, 0x40
/* 8003FDB8 0003CD18 38 80 00 00 */ li r4, 0
/* 8003FDBC 0003CD1C 48 30 10 85 */ bl __dt__6CTokenFv
lbl_8003FDC0:
/* 8003FDC0 0003CD20 7F E3 FB 78 */ mr r3, r31
/* 8003FDC4 0003CD24 7F 64 DB 78 */ mr r4, r27
/* 8003FDC8 0003CD28 48 00 CD 4D */ bl AddObject__13CStateManagerFR7CEntity
/* 8003FDCC 0003CD2C 80 1E 03 08 */ lwz r0, 0x308(r30)
/* 8003FDD0 0003CD30 2C 00 00 03 */ cmpwi r0, 3
/* 8003FDD4 0003CD34 40 82 00 0C */ bne lbl_8003FDE0
/* 8003FDD8 0003CD38 C0 1E 03 58 */ lfs f0, 0x358(r30)
/* 8003FDDC 0003CD3C D0 1E 03 5C */ stfs f0, 0x35c(r30)
lbl_8003FDE0:
/* 8003FDE0 0003CD40 80 BE 03 08 */ lwz r5, 0x308(r30)
/* 8003FDE4 0003CD44 7F E3 FB 78 */ mr r3, r31
/* 8003FDE8 0003CD48 38 81 00 14 */ addi r4, r1, 0x14
/* 8003FDEC 0003CD4C 38 05 FF FF */ addi r0, r5, -1
/* 8003FDF0 0003CD50 90 1E 03 08 */ stw r0, 0x308(r30)
/* 8003FDF4 0003CD54 80 BF 08 4C */ lwz r5, 0x84c(r31)
/* 8003FDF8 0003CD58 A0 05 08 2E */ lhz r0, 0x82e(r5)
/* 8003FDFC 0003CD5C B0 01 00 24 */ sth r0, 0x24(r1)
/* 8003FE00 0003CD60 B0 01 00 14 */ sth r0, 0x14(r1)
/* 8003FE04 0003CD64 48 00 C7 71 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8003FE08 0003CD68 28 03 00 00 */ cmplwi r3, 0
/* 8003FE0C 0003CD6C 41 82 00 64 */ beq lbl_8003FE70
/* 8003FE10 0003CD70 7C 64 1B 78 */ mr r4, r3
/* 8003FE14 0003CD74 38 61 00 30 */ addi r3, r1, 0x30
/* 8003FE18 0003CD78 48 06 8F FD */ bl "__ct__29TCastToPtr<15CScriptPlatform>FP7CEntity"
/* 8003FE1C 0003CD7C 80 63 00 04 */ lwz r3, 4(r3)
/* 8003FE20 0003CD80 28 03 00 00 */ cmplwi r3, 0
/* 8003FE24 0003CD84 41 82 00 4C */ beq lbl_8003FE70
/* 8003FE28 0003CD88 A0 1B 00 08 */ lhz r0, 8(r27)
/* 8003FE2C 0003CD8C 7F E5 FB 78 */ mr r5, r31
/* 8003FE30 0003CD90 38 81 00 10 */ addi r4, r1, 0x10
/* 8003FE34 0003CD94 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8003FE38 0003CD98 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8003FE3C 0003CD9C 48 07 20 F5 */ bl AddSlave__15CScriptPlatformF9TUniqueIdR13CStateManager
/* 8003FE40 0003CDA0 48 00 00 30 */ b lbl_8003FE70
lbl_8003FE44:
/* 8003FE44 0003CDA4 80 7F 08 B8 */ lwz r3, 0x8b8(r31)
/* 8003FE48 0003CDA8 38 80 00 07 */ li r4, 7
/* 8003FE4C 0003CDAC 38 A0 00 01 */ li r5, 1
/* 8003FE50 0003CDB0 80 63 00 00 */ lwz r3, 0(r3)
/* 8003FE54 0003CDB4 48 05 1D 41 */ bl DecrPickUp__12CPlayerStateFQ212CPlayerState9EItemTypei
/* 8003FE58 0003CDB8 7F C4 F3 78 */ mr r4, r30
/* 8003FE5C 0003CDBC 7F E5 FB 78 */ mr r5, r31
/* 8003FE60 0003CDC0 38 61 00 08 */ addi r3, r1, 8
/* 8003FE64 0003CDC4 4B FF AA A1 */ bl DropPowerBomb__10CPlayerGunCFR13CStateManager
/* 8003FE68 0003CDC8 A0 01 00 08 */ lhz r0, 8(r1)
/* 8003FE6C 0003CDCC B0 1E 05 3A */ sth r0, 0x53a(r30)
lbl_8003FE70:
/* 8003FE70 0003CDD0 E3 E1 00 A8 */ psq_l f31, 168(r1), 0, qr0
/* 8003FE74 0003CDD4 CB E1 00 A0 */ lfd f31, 0xa0(r1)
/* 8003FE78 0003CDD8 BB 41 00 88 */ lmw r26, 0x88(r1)
/* 8003FE7C 0003CDDC 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 8003FE80 0003CDE0 7C 08 03 A6 */ mtlr r0
/* 8003FE84 0003CDE4 38 21 00 B0 */ addi r1, r1, 0xb0
/* 8003FE88 0003CDE8 4E 80 00 20 */ blr
.global FireSecondary__10CPlayerGunFfR13CStateManager
FireSecondary__10CPlayerGunFfR13CStateManager:
/* 8003FE8C 0003CDEC 94 21 FE B0 */ stwu r1, -0x150(r1)
/* 8003FE90 0003CDF0 7C 08 02 A6 */ mflr r0
/* 8003FE94 0003CDF4 90 01 01 54 */ stw r0, 0x154(r1)
/* 8003FE98 0003CDF8 DB E1 01 40 */ stfd f31, 0x140(r1)
/* 8003FE9C 0003CDFC F3 E1 01 48 */ psq_st f31, 328(r1), 0, qr0
/* 8003FEA0 0003CE00 DB C1 01 30 */ stfd f30, 0x130(r1)
/* 8003FEA4 0003CE04 F3 C1 01 38 */ psq_st f30, 312(r1), 0, qr0
/* 8003FEA8 0003CE08 DB A1 01 20 */ stfd f29, 0x120(r1)
/* 8003FEAC 0003CE0C F3 A1 01 28 */ psq_st f29, 296(r1), 0, qr0
/* 8003FEB0 0003CE10 DB 81 01 10 */ stfd f28, 0x110(r1)
/* 8003FEB4 0003CE14 F3 81 01 18 */ psq_st f28, 280(r1), 0, qr0
/* 8003FEB8 0003CE18 93 E1 01 0C */ stw r31, 0x10c(r1)
/* 8003FEBC 0003CE1C 93 C1 01 08 */ stw r30, 0x108(r1)
/* 8003FEC0 0003CE20 93 A1 01 04 */ stw r29, 0x104(r1)
/* 8003FEC4 0003CE24 93 81 01 00 */ stw r28, 0x100(r1)
/* 8003FEC8 0003CE28 FF 80 08 90 */ fmr f28, f1
/* 8003FECC 0003CE2C 7C 9F 23 78 */ mr r31, r4
/* 8003FED0 0003CE30 7C 7E 1B 78 */ mr r30, r3
/* 8003FED4 0003CE34 80 64 08 70 */ lwz r3, 0x870(r4)
/* 8003FED8 0003CE38 4B FC AA 29 */ bl IsInCinematicCamera__14CCameraManagerCFv
/* 8003FEDC 0003CE3C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003FEE0 0003CE40 40 82 03 0C */ bne lbl_800401EC
/* 8003FEE4 0003CE44 88 1E 08 35 */ lbz r0, 0x835(r30)
/* 8003FEE8 0003CE48 80 7F 08 B8 */ lwz r3, 0x8b8(r31)
/* 8003FEEC 0003CE4C 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8003FEF0 0003CE50 83 A3 00 00 */ lwz r29, 0(r3)
/* 8003FEF4 0003CE54 40 82 00 40 */ bne lbl_8003FF34
/* 8003FEF8 0003CE58 80 1E 03 18 */ lwz r0, 0x318(r30)
/* 8003FEFC 0003CE5C 2C 00 00 00 */ cmpwi r0, 0
/* 8003FF00 0003CE60 41 82 00 34 */ beq lbl_8003FF34
/* 8003FF04 0003CE64 54 00 10 3A */ slwi r0, r0, 2
/* 8003FF08 0003CE68 38 62 84 60 */ addi r3, r2, lbl_805AA180@sda21
/* 8003FF0C 0003CE6C 7C 83 00 2E */ lwzx r4, r3, r0
/* 8003FF10 0003CE70 7F A3 EB 78 */ mr r3, r29
/* 8003FF14 0003CE74 48 05 1B AD */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003FF18 0003CE78 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8003FF1C 0003CE7C 28 00 00 01 */ cmplwi r0, 1
/* 8003FF20 0003CE80 40 82 00 14 */ bne lbl_8003FF34
/* 8003FF24 0003CE84 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8003FF28 0003CE88 54 00 07 7A */ rlwinm r0, r0, 0, 0x1d, 0x1d
/* 8003FF2C 0003CE8C 2C 00 00 04 */ cmpwi r0, 4
/* 8003FF30 0003CE90 41 82 00 24 */ beq lbl_8003FF54
lbl_8003FF34:
/* 8003FF34 0003CE94 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 8003FF38 0003CE98 38 61 00 1C */ addi r3, r1, 0x1c
/* 8003FF3C 0003CE9C 38 80 06 F5 */ li r4, 0x6f5
/* 8003FF40 0003CEA0 38 C0 00 00 */ li r6, 0
/* 8003FF44 0003CEA4 54 05 E7 FE */ rlwinm r5, r0, 0x1c, 0x1f, 0x1f
/* 8003FF48 0003CEA8 38 E0 00 4A */ li r7, 0x4a
/* 8003FF4C 0003CEAC 48 24 AB AD */ bl play_sfx__12NWeaponTypesFUsbbs
/* 8003FF50 0003CEB0 48 00 02 9C */ b lbl_800401EC
lbl_8003FF54:
/* 8003FF54 0003CEB4 80 1E 03 18 */ lwz r0, 0x318(r30)
/* 8003FF58 0003CEB8 3B 80 00 00 */ li r28, 0
/* 8003FF5C 0003CEBC 2C 00 00 01 */ cmpwi r0, 1
/* 8003FF60 0003CEC0 41 82 00 08 */ beq lbl_8003FF68
/* 8003FF64 0003CEC4 48 00 00 90 */ b lbl_8003FFF4
lbl_8003FF68:
/* 8003FF68 0003CEC8 7F A3 EB 78 */ mr r3, r29
/* 8003FF6C 0003CECC 38 80 00 04 */ li r4, 4
/* 8003FF70 0003CED0 48 05 1B AD */ bl GetItemAmount__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8003FF74 0003CED4 90 7E 03 00 */ stw r3, 0x300(r30)
/* 8003FF78 0003CED8 7F E3 FB 78 */ mr r3, r31
/* 8003FF7C 0003CEDC 38 81 00 10 */ addi r4, r1, 0x10
/* 8003FF80 0003CEE0 38 A0 00 06 */ li r5, 6
/* 8003FF84 0003CEE4 A0 1E 05 38 */ lhz r0, 0x538(r30)
/* 8003FF88 0003CEE8 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8003FF8C 0003CEEC 48 00 4D 1D */ bl GetWeaponIdCount__13CStateManagerF9TUniqueId11EWeaponType
/* 8003FF90 0003CEF0 2C 03 00 03 */ cmpwi r3, 3
/* 8003FF94 0003CEF4 40 80 00 40 */ bge lbl_8003FFD4
/* 8003FF98 0003CEF8 80 1E 03 00 */ lwz r0, 0x300(r30)
/* 8003FF9C 0003CEFC 2C 00 00 00 */ cmpwi r0, 0
/* 8003FFA0 0003CF00 41 82 00 34 */ beq lbl_8003FFD4
/* 8003FFA4 0003CF04 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 8003FFA8 0003CF08 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 8003FFAC 0003CF0C 41 82 00 14 */ beq lbl_8003FFC0
/* 8003FFB0 0003CF10 7F A3 EB 78 */ mr r3, r29
/* 8003FFB4 0003CF14 48 05 12 69 */ bl GetMissileCostForAltAttack__12CPlayerStateCFv
/* 8003FFB8 0003CF18 7C 65 1B 78 */ mr r5, r3
/* 8003FFBC 0003CF1C 48 00 00 08 */ b lbl_8003FFC4
lbl_8003FFC0:
/* 8003FFC0 0003CF20 38 A0 00 01 */ li r5, 1
lbl_8003FFC4:
/* 8003FFC4 0003CF24 7F A3 EB 78 */ mr r3, r29
/* 8003FFC8 0003CF28 38 80 00 04 */ li r4, 4
/* 8003FFCC 0003CF2C 48 05 1B C9 */ bl DecrPickUp__12CPlayerStateFQ212CPlayerState9EItemTypei
/* 8003FFD0 0003CF30 3B 80 00 01 */ li r28, 1
lbl_8003FFD4:
/* 8003FFD4 0003CF34 80 7E 03 00 */ lwz r3, 0x300(r30)
/* 8003FFD8 0003CF38 2C 03 00 05 */ cmpwi r3, 5
/* 8003FFDC 0003CF3C 40 81 00 10 */ ble lbl_8003FFEC
/* 8003FFE0 0003CF40 38 00 00 05 */ li r0, 5
/* 8003FFE4 0003CF44 90 1E 03 00 */ stw r0, 0x300(r30)
/* 8003FFE8 0003CF48 48 00 00 0C */ b lbl_8003FFF4
lbl_8003FFEC:
/* 8003FFEC 0003CF4C 38 03 FF FF */ addi r0, r3, -1
/* 8003FFF0 0003CF50 90 1E 03 00 */ stw r0, 0x300(r30)
lbl_8003FFF4:
/* 8003FFF4 0003CF54 57 80 06 3F */ clrlwi. r0, r28, 0x18
/* 8003FFF8 0003CF58 41 82 01 CC */ beq lbl_800401C4
/* 8003FFFC 0003CF5C 7F C4 F3 78 */ mr r4, r30
/* 80040000 0003CF60 7F E5 FB 78 */ mr r5, r31
/* 80040004 0003CF64 38 61 00 0C */ addi r3, r1, 0xc
/* 80040008 0003CF68 4B FF E1 F5 */ bl GetTargetId__10CPlayerGunFR13CStateManager
/* 8004000C 0003CF6C 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 80040010 0003CF70 A0 61 00 0C */ lhz r3, 0xc(r1)
/* 80040014 0003CF74 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 80040018 0003CF78 B0 61 00 14 */ sth r3, 0x14(r1)
/* 8004001C 0003CF7C 41 82 00 2C */ beq lbl_80040048
/* 80040020 0003CF80 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 80040024 0003CF84 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 80040028 0003CF88 7C 03 00 40 */ cmplw r3, r0
/* 8004002C 0003CF8C 40 82 00 1C */ bne lbl_80040048
/* 80040030 0003CF90 80 1E 03 10 */ lwz r0, 0x310(r30)
/* 80040034 0003CF94 2C 00 00 02 */ cmpwi r0, 2
/* 80040038 0003CF98 40 82 00 10 */ bne lbl_80040048
/* 8004003C 0003CF9C 80 7F 08 4C */ lwz r3, 0x84c(r31)
/* 80040040 0003CFA0 A0 03 03 F4 */ lhz r0, 0x3f4(r3)
/* 80040044 0003CFA4 B0 01 00 14 */ sth r0, 0x14(r1)
lbl_80040048:
/* 80040048 0003CFA8 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 8004004C 0003CFAC 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 80040050 0003CFB0 41 82 00 0C */ beq lbl_8004005C
/* 80040054 0003CFB4 38 9E 04 48 */ addi r4, r30, 0x448
/* 80040058 0003CFB8 48 00 00 24 */ b lbl_8004007C
lbl_8004005C:
/* 8004005C 0003CFBC 38 61 00 98 */ addi r3, r1, 0x98
/* 80040060 0003CFC0 38 9E 04 A8 */ addi r4, r30, 0x4a8
/* 80040064 0003CFC4 48 2D 2B 11 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80040068 0003CFC8 38 61 00 68 */ addi r3, r1, 0x68
/* 8004006C 0003CFCC 38 81 00 98 */ addi r4, r1, 0x98
/* 80040070 0003CFD0 38 BE 04 18 */ addi r5, r30, 0x418
/* 80040074 0003CFD4 48 2D 28 DD */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80040078 0003CFD8 38 81 00 68 */ addi r4, r1, 0x68
lbl_8004007C:
/* 8004007C 0003CFDC 38 61 00 C8 */ addi r3, r1, 0xc8
/* 80040080 0003CFE0 48 2D 2A F5 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80040084 0003CFE4 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 80040088 0003CFE8 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 8004008C 0003CFEC 40 82 00 3C */ bne lbl_800400C8
/* 80040090 0003CFF0 C0 3E 03 64 */ lfs f1, 0x364(r30)
/* 80040094 0003CFF4 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 80040098 0003CFF8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8004009C 0003CFFC 4C 40 13 82 */ cror 2, 0, 2
/* 800400A0 0003D000 40 82 00 28 */ bne lbl_800400C8
/* 800400A4 0003D004 C3 A1 00 F4 */ lfs f29, 0xf4(r1)
/* 800400A8 0003D008 38 61 00 C8 */ addi r3, r1, 0xc8
/* 800400AC 0003D00C C3 C1 00 E4 */ lfs f30, 0xe4(r1)
/* 800400B0 0003D010 38 9E 04 78 */ addi r4, r30, 0x478
/* 800400B4 0003D014 C3 E1 00 D4 */ lfs f31, 0xd4(r1)
/* 800400B8 0003D018 48 2D 2A 89 */ bl __as__12CTransform4fFRC12CTransform4f
/* 800400BC 0003D01C D3 E1 00 D4 */ stfs f31, 0xd4(r1)
/* 800400C0 0003D020 D3 C1 00 E4 */ stfs f30, 0xe4(r1)
/* 800400C4 0003D024 D3 A1 00 F4 */ stfs f29, 0xf4(r1)
lbl_800400C8:
/* 800400C8 0003D028 80 9F 08 70 */ lwz r4, 0x870(r31)
/* 800400CC 0003D02C 7F E5 FB 78 */ mr r5, r31
/* 800400D0 0003D030 38 61 00 2C */ addi r3, r1, 0x2c
/* 800400D4 0003D034 4B FC A8 41 */ bl GetGlobalCameraTranslation__14CCameraManagerCFRC13CStateManager
/* 800400D8 0003D038 C0 81 00 D4 */ lfs f4, 0xd4(r1)
/* 800400DC 0003D03C FC 20 E0 90 */ fmr f1, f28
/* 800400E0 0003D040 C0 61 00 2C */ lfs f3, 0x2c(r1)
/* 800400E4 0003D044 7F E8 FB 78 */ mr r8, r31
/* 800400E8 0003D048 C0 41 00 E4 */ lfs f2, 0xe4(r1)
/* 800400EC 0003D04C 38 E1 00 C8 */ addi r7, r1, 0xc8
/* 800400F0 0003D050 EC 84 18 2A */ fadds f4, f4, f3
/* 800400F4 0003D054 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 800400F8 0003D058 39 41 00 08 */ addi r10, r1, 8
/* 800400FC 0003D05C A0 01 00 14 */ lhz r0, 0x14(r1)
/* 80040100 0003D060 EC 62 00 2A */ fadds f3, f2, f0
/* 80040104 0003D064 C0 41 00 F4 */ lfs f2, 0xf4(r1)
/* 80040108 0003D068 C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8004010C 0003D06C D0 81 00 D4 */ stfs f4, 0xd4(r1)
/* 80040110 0003D070 EC 02 00 2A */ fadds f0, f2, f0
/* 80040114 0003D074 D0 61 00 E4 */ stfs f3, 0xe4(r1)
/* 80040118 0003D078 D0 01 00 F4 */ stfs f0, 0xf4(r1)
/* 8004011C 0003D07C B0 01 00 08 */ sth r0, 8(r1)
/* 80040120 0003D080 81 3E 07 2C */ lwz r9, 0x72c(r30)
/* 80040124 0003D084 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 80040128 0003D088 80 7E 07 44 */ lwz r3, 0x744(r30)
/* 8004012C 0003D08C 80 BE 03 10 */ lwz r5, 0x310(r30)
/* 80040130 0003D090 54 04 E7 FE */ rlwinm r4, r0, 0x1c, 0x1f, 0x1f
/* 80040134 0003D094 80 DE 03 30 */ lwz r6, 0x330(r30)
/* 80040138 0003D098 81 29 01 C0 */ lwz r9, 0x1c0(r9)
/* 8004013C 0003D09C 48 17 98 59 */ bl Fire__10CAuxWeaponFfbiQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager11EWeaponType9TUniqueId
/* 80040140 0003D0A0 38 61 00 38 */ addi r3, r1, 0x38
/* 80040144 0003D0A4 38 9E 04 A8 */ addi r4, r30, 0x4a8
/* 80040148 0003D0A8 48 2D 2A 2D */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8004014C 0003D0AC C0 41 00 44 */ lfs f2, 0x44(r1)
/* 80040150 0003D0B0 7F E3 FB 78 */ mr r3, r31
/* 80040154 0003D0B4 C0 21 00 54 */ lfs f1, 0x54(r1)
/* 80040158 0003D0B8 38 81 00 20 */ addi r4, r1, 0x20
/* 8004015C 0003D0BC C0 01 00 64 */ lfs f0, 0x64(r1)
/* 80040160 0003D0C0 38 A0 00 00 */ li r5, 0
/* 80040164 0003D0C4 D0 41 00 20 */ stfs f2, 0x20(r1)
/* 80040168 0003D0C8 D0 21 00 24 */ stfs f1, 0x24(r1)
/* 8004016C 0003D0CC D0 01 00 28 */ stfs f0, 0x28(r1)
/* 80040170 0003D0D0 48 00 86 15 */ bl InformListeners__13CStateManagerFRC9CVector3f16EListenNoiseType
/* 80040174 0003D0D4 C0 02 84 F0 */ lfs f0, lbl_805AA210@sda21(r2)
/* 80040178 0003D0D8 D0 1E 03 A0 */ stfs f0, 0x3a0(r30)
/* 8004017C 0003D0DC 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 80040180 0003D0E0 54 00 DF FE */ rlwinm r0, r0, 0x1b, 0x1f, 0x1f
/* 80040184 0003D0E4 28 00 00 01 */ cmplwi r0, 1
/* 80040188 0003D0E8 41 82 00 64 */ beq lbl_800401EC
/* 8004018C 0003D0EC 7F C3 F3 78 */ mr r3, r30
/* 80040190 0003D0F0 38 80 00 07 */ li r4, 7
/* 80040194 0003D0F4 38 A0 00 00 */ li r5, 0
/* 80040198 0003D0F8 48 00 17 2D */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
/* 8004019C 0003D0FC 80 1E 03 00 */ lwz r0, 0x300(r30)
/* 800401A0 0003D100 38 60 00 03 */ li r3, 3
/* 800401A4 0003D104 2C 00 00 00 */ cmpwi r0, 0
/* 800401A8 0003D108 40 81 00 08 */ ble lbl_800401B0
/* 800401AC 0003D10C 38 60 00 04 */ li r3, 4
lbl_800401B0:
/* 800401B0 0003D110 90 7E 03 38 */ stw r3, 0x338(r30)
/* 800401B4 0003D114 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 800401B8 0003D118 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 800401BC 0003D11C 90 1E 02 F8 */ stw r0, 0x2f8(r30)
/* 800401C0 0003D120 48 00 00 2C */ b lbl_800401EC
lbl_800401C4:
/* 800401C4 0003D124 80 7E 03 18 */ lwz r3, 0x318(r30)
/* 800401C8 0003D128 38 8D 82 2C */ addi r4, r13, mItemEmptySound@sda21
/* 800401CC 0003D12C 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 800401D0 0003D130 38 E0 00 4A */ li r7, 0x4a
/* 800401D4 0003D134 54 66 08 3C */ slwi r6, r3, 1
/* 800401D8 0003D138 38 61 00 18 */ addi r3, r1, 0x18
/* 800401DC 0003D13C 7C 84 32 2E */ lhzx r4, r4, r6
/* 800401E0 0003D140 54 05 E7 FE */ rlwinm r5, r0, 0x1c, 0x1f, 0x1f
/* 800401E4 0003D144 38 C0 00 00 */ li r6, 0
/* 800401E8 0003D148 48 24 A9 11 */ bl play_sfx__12NWeaponTypesFUsbbs
lbl_800401EC:
/* 800401EC 0003D14C E3 E1 01 48 */ psq_l f31, 328(r1), 0, qr0
/* 800401F0 0003D150 CB E1 01 40 */ lfd f31, 0x140(r1)
/* 800401F4 0003D154 E3 C1 01 38 */ psq_l f30, 312(r1), 0, qr0
/* 800401F8 0003D158 CB C1 01 30 */ lfd f30, 0x130(r1)
/* 800401FC 0003D15C E3 A1 01 28 */ psq_l f29, 296(r1), 0, qr0
/* 80040200 0003D160 CB A1 01 20 */ lfd f29, 0x120(r1)
/* 80040204 0003D164 E3 81 01 18 */ psq_l f28, 280(r1), 0, qr0
/* 80040208 0003D168 CB 81 01 10 */ lfd f28, 0x110(r1)
/* 8004020C 0003D16C 83 E1 01 0C */ lwz r31, 0x10c(r1)
/* 80040210 0003D170 83 C1 01 08 */ lwz r30, 0x108(r1)
/* 80040214 0003D174 83 A1 01 04 */ lwz r29, 0x104(r1)
/* 80040218 0003D178 80 01 01 54 */ lwz r0, 0x154(r1)
/* 8004021C 0003D17C 83 81 01 00 */ lwz r28, 0x100(r1)
/* 80040220 0003D180 7C 08 03 A6 */ mtlr r0
/* 80040224 0003D184 38 21 01 50 */ addi r1, r1, 0x150
/* 80040228 0003D188 4E 80 00 20 */ blr
.global UpdateNormalShotCycle__10CPlayerGunFfR13CStateManager
UpdateNormalShotCycle__10CPlayerGunFfR13CStateManager:
/* 8004022C 0003D18C 94 21 FE C0 */ stwu r1, -0x140(r1)
/* 80040230 0003D190 7C 08 02 A6 */ mflr r0
/* 80040234 0003D194 90 01 01 44 */ stw r0, 0x144(r1)
/* 80040238 0003D198 DB E1 01 30 */ stfd f31, 0x130(r1)
/* 8004023C 0003D19C F3 E1 01 38 */ psq_st f31, 312(r1), 0, qr0
/* 80040240 0003D1A0 DB C1 01 20 */ stfd f30, 0x120(r1)
/* 80040244 0003D1A4 F3 C1 01 28 */ psq_st f30, 296(r1), 0, qr0
/* 80040248 0003D1A8 DB A1 01 10 */ stfd f29, 0x110(r1)
/* 8004024C 0003D1AC F3 A1 01 18 */ psq_st f29, 280(r1), 0, qr0
/* 80040250 0003D1B0 DB 81 01 00 */ stfd f28, 0x100(r1)
/* 80040254 0003D1B4 F3 81 01 08 */ psq_st f28, 264(r1), 0, qr0
/* 80040258 0003D1B8 93 E1 00 FC */ stw r31, 0xfc(r1)
/* 8004025C 0003D1BC 93 C1 00 F8 */ stw r30, 0xf8(r1)
/* 80040260 0003D1C0 93 A1 00 F4 */ stw r29, 0xf4(r1)
/* 80040264 0003D1C4 FF 80 08 90 */ fmr f28, f1
/* 80040268 0003D1C8 7C 7E 1B 78 */ mr r30, r3
/* 8004026C 0003D1CC 7C 9F 23 78 */ mr r31, r4
/* 80040270 0003D1D0 48 00 02 29 */ bl ExitMissile__10CPlayerGunFv
/* 80040274 0003D1D4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040278 0003D1D8 41 82 01 E4 */ beq lbl_8004045C
/* 8004027C 0003D1DC 80 7F 08 70 */ lwz r3, 0x870(r31)
/* 80040280 0003D1E0 4B FC A6 81 */ bl IsInCinematicCamera__14CCameraManagerCFv
/* 80040284 0003D1E4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040288 0003D1E8 41 82 00 08 */ beq lbl_80040290
/* 8004028C 0003D1EC 48 00 01 D0 */ b lbl_8004045C
lbl_80040290:
/* 80040290 0003D1F0 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 80040294 0003D1F4 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 80040298 0003D1F8 7C 03 03 78 */ mr r3, r0
/* 8004029C 0003D1FC 40 82 00 14 */ bne lbl_800402B0
/* 800402A0 0003D200 80 1E 03 10 */ lwz r0, 0x310(r30)
/* 800402A4 0003D204 2C 00 00 03 */ cmpwi r0, 3
/* 800402A8 0003D208 40 82 00 08 */ bne lbl_800402B0
/* 800402AC 0003D20C 38 60 00 01 */ li r3, 1
lbl_800402B0:
/* 800402B0 0003D210 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800402B4 0003D214 38 60 00 00 */ li r3, 0
/* 800402B8 0003D218 41 82 00 14 */ beq lbl_800402CC
/* 800402BC 0003D21C 80 1E 03 2C */ lwz r0, 0x32c(r30)
/* 800402C0 0003D220 2C 00 00 00 */ cmpwi r0, 0
/* 800402C4 0003D224 40 82 00 08 */ bne lbl_800402CC
/* 800402C8 0003D228 38 60 00 01 */ li r3, 1
lbl_800402CC:
/* 800402CC 0003D22C 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 800402D0 0003D230 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 800402D4 0003D234 7C 63 00 34 */ cntlzw r3, r3
/* 800402D8 0003D238 50 60 0E 72 */ rlwimi r0, r3, 1, 0x19, 0x19
/* 800402DC 0003D23C 98 1E 08 32 */ stb r0, 0x832(r30)
/* 800402E0 0003D240 80 7E 03 0C */ lwz r3, 0x30c(r30)
/* 800402E4 0003D244 38 03 00 01 */ addi r0, r3, 1
/* 800402E8 0003D248 90 1E 03 0C */ stw r0, 0x30c(r30)
/* 800402EC 0003D24C 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 800402F0 0003D250 80 9E 07 2C */ lwz r4, 0x72c(r30)
/* 800402F4 0003D254 80 7E 03 30 */ lwz r3, 0x330(r30)
/* 800402F8 0003D258 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 800402FC 0003D25C 7C 64 1A 14 */ add r3, r4, r3
/* 80040300 0003D260 8B A3 01 F0 */ lbz r29, 0x1f0(r3)
/* 80040304 0003D264 41 82 00 0C */ beq lbl_80040310
/* 80040308 0003D268 38 9E 04 48 */ addi r4, r30, 0x448
/* 8004030C 0003D26C 48 00 00 24 */ b lbl_80040330
lbl_80040310:
/* 80040310 0003D270 38 61 00 88 */ addi r3, r1, 0x88
/* 80040314 0003D274 38 9E 04 A8 */ addi r4, r30, 0x4a8
/* 80040318 0003D278 48 2D 28 5D */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8004031C 0003D27C 38 61 00 58 */ addi r3, r1, 0x58
/* 80040320 0003D280 38 81 00 88 */ addi r4, r1, 0x88
/* 80040324 0003D284 38 BE 04 18 */ addi r5, r30, 0x418
/* 80040328 0003D288 48 2D 26 29 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8004032C 0003D28C 38 81 00 58 */ addi r4, r1, 0x58
lbl_80040330:
/* 80040330 0003D290 38 61 00 B8 */ addi r3, r1, 0xb8
/* 80040334 0003D294 48 2D 28 41 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80040338 0003D298 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 8004033C 0003D29C 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 80040340 0003D2A0 40 82 00 3C */ bne lbl_8004037C
/* 80040344 0003D2A4 C0 3E 03 64 */ lfs f1, 0x364(r30)
/* 80040348 0003D2A8 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8004034C 0003D2AC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80040350 0003D2B0 4C 40 13 82 */ cror 2, 0, 2
/* 80040354 0003D2B4 40 82 00 28 */ bne lbl_8004037C
/* 80040358 0003D2B8 C3 A1 00 E4 */ lfs f29, 0xe4(r1)
/* 8004035C 0003D2BC 38 61 00 B8 */ addi r3, r1, 0xb8
/* 80040360 0003D2C0 C3 C1 00 D4 */ lfs f30, 0xd4(r1)
/* 80040364 0003D2C4 38 9E 04 78 */ addi r4, r30, 0x478
/* 80040368 0003D2C8 C3 E1 00 C4 */ lfs f31, 0xc4(r1)
/* 8004036C 0003D2CC 48 2D 27 D5 */ bl __as__12CTransform4fFRC12CTransform4f
/* 80040370 0003D2D0 D3 E1 00 C4 */ stfs f31, 0xc4(r1)
/* 80040374 0003D2D4 D3 C1 00 D4 */ stfs f30, 0xd4(r1)
/* 80040378 0003D2D8 D3 A1 00 E4 */ stfs f29, 0xe4(r1)
lbl_8004037C:
/* 8004037C 0003D2DC 80 9F 08 70 */ lwz r4, 0x870(r31)
/* 80040380 0003D2E0 7F E5 FB 78 */ mr r5, r31
/* 80040384 0003D2E4 38 61 00 1C */ addi r3, r1, 0x1c
/* 80040388 0003D2E8 4B FC A5 8D */ bl GetGlobalCameraTranslation__14CCameraManagerCFRC13CStateManager
/* 8004038C 0003D2EC C0 21 00 C4 */ lfs f1, 0xc4(r1)
/* 80040390 0003D2F0 28 1D 00 00 */ cmplwi r29, 0
/* 80040394 0003D2F4 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 80040398 0003D2F8 C0 61 00 D4 */ lfs f3, 0xd4(r1)
/* 8004039C 0003D2FC C0 41 00 20 */ lfs f2, 0x20(r1)
/* 800403A0 0003D300 EC 81 00 2A */ fadds f4, f1, f0
/* 800403A4 0003D304 C0 21 00 E4 */ lfs f1, 0xe4(r1)
/* 800403A8 0003D308 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 800403AC 0003D30C EC 43 10 2A */ fadds f2, f3, f2
/* 800403B0 0003D310 D0 81 00 C4 */ stfs f4, 0xc4(r1)
/* 800403B4 0003D314 EC 21 00 2A */ fadds f1, f1, f0
/* 800403B8 0003D318 C0 02 84 F4 */ lfs f0, lbl_805AA214@sda21(r2)
/* 800403BC 0003D31C D0 41 00 D4 */ stfs f2, 0xd4(r1)
/* 800403C0 0003D320 D0 21 00 E4 */ stfs f1, 0xe4(r1)
/* 800403C4 0003D324 D0 1E 03 8C */ stfs f0, 0x38c(r30)
/* 800403C8 0003D328 41 82 00 1C */ beq lbl_800403E4
/* 800403CC 0003D32C 7F C4 F3 78 */ mr r4, r30
/* 800403D0 0003D330 7F E5 FB 78 */ mr r5, r31
/* 800403D4 0003D334 38 61 00 08 */ addi r3, r1, 8
/* 800403D8 0003D338 4B FF DE 25 */ bl GetTargetId__10CPlayerGunFR13CStateManager
/* 800403DC 0003D33C 38 61 00 08 */ addi r3, r1, 8
/* 800403E0 0003D340 48 00 00 08 */ b lbl_800403E8
lbl_800403E4:
/* 800403E4 0003D344 38 6D A3 8C */ addi r3, r13, kInvalidUniqueId@sda21
lbl_800403E8:
/* 800403E8 0003D348 A0 03 00 00 */ lhz r0, 0(r3)
/* 800403EC 0003D34C FC 20 E0 90 */ fmr f1, f28
/* 800403F0 0003D350 7F E7 FB 78 */ mr r7, r31
/* 800403F4 0003D354 38 C1 00 B8 */ addi r6, r1, 0xb8
/* 800403F8 0003D358 B0 01 00 0C */ sth r0, 0xc(r1)
/* 800403FC 0003D35C 39 01 00 0C */ addi r8, r1, 0xc
/* 80040400 0003D360 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 80040404 0003D364 C0 5E 03 40 */ lfs f2, 0x340(r30)
/* 80040408 0003D368 81 83 00 00 */ lwz r12, 0(r3)
/* 8004040C 0003D36C 88 1E 08 34 */ lbz r0, 0x834(r30)
/* 80040410 0003D370 FC 60 10 90 */ fmr f3, f2
/* 80040414 0003D374 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 80040418 0003D378 54 04 E7 FE */ rlwinm r4, r0, 0x1c, 0x1f, 0x1f
/* 8004041C 0003D37C 80 BE 03 30 */ lwz r5, 0x330(r30)
/* 80040420 0003D380 7D 89 03 A6 */ mtctr r12
/* 80040424 0003D384 4E 80 04 21 */ bctrl
/* 80040428 0003D388 38 61 00 28 */ addi r3, r1, 0x28
/* 8004042C 0003D38C 38 9E 04 A8 */ addi r4, r30, 0x4a8
/* 80040430 0003D390 48 2D 27 45 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80040434 0003D394 C0 41 00 34 */ lfs f2, 0x34(r1)
/* 80040438 0003D398 7F E3 FB 78 */ mr r3, r31
/* 8004043C 0003D39C C0 21 00 44 */ lfs f1, 0x44(r1)
/* 80040440 0003D3A0 38 81 00 10 */ addi r4, r1, 0x10
/* 80040444 0003D3A4 C0 01 00 54 */ lfs f0, 0x54(r1)
/* 80040448 0003D3A8 38 A0 00 00 */ li r5, 0
/* 8004044C 0003D3AC D0 41 00 10 */ stfs f2, 0x10(r1)
/* 80040450 0003D3B0 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 80040454 0003D3B4 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80040458 0003D3B8 48 00 83 2D */ bl InformListeners__13CStateManagerFRC9CVector3f16EListenNoiseType
lbl_8004045C:
/* 8004045C 0003D3BC E3 E1 01 38 */ psq_l f31, 312(r1), 0, qr0
/* 80040460 0003D3C0 CB E1 01 30 */ lfd f31, 0x130(r1)
/* 80040464 0003D3C4 E3 C1 01 28 */ psq_l f30, 296(r1), 0, qr0
/* 80040468 0003D3C8 CB C1 01 20 */ lfd f30, 0x120(r1)
/* 8004046C 0003D3CC E3 A1 01 18 */ psq_l f29, 280(r1), 0, qr0
/* 80040470 0003D3D0 CB A1 01 10 */ lfd f29, 0x110(r1)
/* 80040474 0003D3D4 E3 81 01 08 */ psq_l f28, 264(r1), 0, qr0
/* 80040478 0003D3D8 CB 81 01 00 */ lfd f28, 0x100(r1)
/* 8004047C 0003D3DC 83 E1 00 FC */ lwz r31, 0xfc(r1)
/* 80040480 0003D3E0 83 C1 00 F8 */ lwz r30, 0xf8(r1)
/* 80040484 0003D3E4 80 01 01 44 */ lwz r0, 0x144(r1)
/* 80040488 0003D3E8 83 A1 00 F4 */ lwz r29, 0xf4(r1)
/* 8004048C 0003D3EC 7C 08 03 A6 */ mtlr r0
/* 80040490 0003D3F0 38 21 01 40 */ addi r1, r1, 0x140
/* 80040494 0003D3F4 4E 80 00 20 */ blr
.global ExitMissile__10CPlayerGunFv
ExitMissile__10CPlayerGunFv:
/* 80040498 0003D3F8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004049C 0003D3FC 7C 08 02 A6 */ mflr r0
/* 800404A0 0003D400 90 01 00 14 */ stw r0, 0x14(r1)
/* 800404A4 0003D404 80 83 02 F8 */ lwz r4, 0x2f8(r3)
/* 800404A8 0003D408 54 80 07 FE */ clrlwi r0, r4, 0x1f
/* 800404AC 0003D40C 2C 00 00 01 */ cmpwi r0, 1
/* 800404B0 0003D410 41 82 00 38 */ beq lbl_800404E8
/* 800404B4 0003D414 54 80 06 F6 */ rlwinm r0, r4, 0, 0x1b, 0x1b
/* 800404B8 0003D418 2C 00 00 10 */ cmpwi r0, 0x10
/* 800404BC 0003D41C 41 82 00 24 */ beq lbl_800404E0
/* 800404C0 0003D420 80 03 03 38 */ lwz r0, 0x338(r3)
/* 800404C4 0003D424 2C 00 00 02 */ cmpwi r0, 2
/* 800404C8 0003D428 41 82 00 18 */ beq lbl_800404E0
/* 800404CC 0003D42C 38 00 00 02 */ li r0, 2
/* 800404D0 0003D430 38 80 00 05 */ li r4, 5
/* 800404D4 0003D434 90 03 03 38 */ stw r0, 0x338(r3)
/* 800404D8 0003D438 38 A0 00 00 */ li r5, 0
/* 800404DC 0003D43C 48 00 13 E9 */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
lbl_800404E0:
/* 800404E0 0003D440 38 60 00 00 */ li r3, 0
/* 800404E4 0003D444 48 00 00 08 */ b lbl_800404EC
lbl_800404E8:
/* 800404E8 0003D448 38 60 00 01 */ li r3, 1
lbl_800404EC:
/* 800404EC 0003D44C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800404F0 0003D450 7C 08 03 A6 */ mtlr r0
/* 800404F4 0003D454 38 21 00 10 */ addi r1, r1, 0x10
/* 800404F8 0003D458 4E 80 00 20 */ blr
.global ProcessNormalState__10CPlayerGunFiiR13CStateManagerf
ProcessNormalState__10CPlayerGunFiiR13CStateManagerf:
/* 800404FC 0003D45C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80040500 0003D460 7C 08 02 A6 */ mflr r0
/* 80040504 0003D464 90 01 00 14 */ stw r0, 0x14(r1)
/* 80040508 0003D468 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 8004050C 0003D46C 41 82 00 10 */ beq lbl_8004051C
/* 80040510 0003D470 7C C4 33 78 */ mr r4, r6
/* 80040514 0003D474 48 00 01 19 */ bl ResetNormal__10CPlayerGunFR13CStateManager
/* 80040518 0003D478 48 00 00 48 */ b lbl_80040560
lbl_8004051C:
/* 8004051C 0003D47C 54 A0 07 FF */ clrlwi. r0, r5, 0x1f
/* 80040520 0003D480 41 82 00 30 */ beq lbl_80040550
/* 80040524 0003D484 C0 42 84 6C */ lfs f2, lbl_805AA18C@sda21(r2)
/* 80040528 0003D488 C0 03 03 48 */ lfs f0, 0x348(r3)
/* 8004052C 0003D48C FC 02 00 00 */ fcmpu cr0, f2, f0
/* 80040530 0003D490 40 82 00 20 */ bne lbl_80040550
/* 80040534 0003D494 88 03 08 32 */ lbz r0, 0x832(r3)
/* 80040538 0003D498 54 00 EF FE */ rlwinm r0, r0, 0x1d, 0x1f, 0x1f
/* 8004053C 0003D49C 28 00 00 01 */ cmplwi r0, 1
/* 80040540 0003D4A0 40 82 00 10 */ bne lbl_80040550
/* 80040544 0003D4A4 7C C4 33 78 */ mr r4, r6
/* 80040548 0003D4A8 4B FF FC E5 */ bl UpdateNormalShotCycle__10CPlayerGunFfR13CStateManager
/* 8004054C 0003D4AC 48 00 00 14 */ b lbl_80040560
lbl_80040550:
/* 80040550 0003D4B0 54 A0 07 BD */ rlwinm. r0, r5, 0, 0x1e, 0x1e
/* 80040554 0003D4B4 41 82 00 0C */ beq lbl_80040560
/* 80040558 0003D4B8 7C C4 33 78 */ mr r4, r6
/* 8004055C 0003D4BC 4B FF F9 31 */ bl FireSecondary__10CPlayerGunFfR13CStateManager
lbl_80040560:
/* 80040560 0003D4C0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80040564 0003D4C4 7C 08 03 A6 */ mtlr r0
/* 80040568 0003D4C8 38 21 00 10 */ addi r1, r1, 0x10
/* 8004056C 0003D4CC 4E 80 00 20 */ blr
.global ResetCharged__10CPlayerGunFfR13CStateManager
ResetCharged__10CPlayerGunFfR13CStateManager:
/* 80040570 0003D4D0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80040574 0003D4D4 7C 08 02 A6 */ mflr r0
/* 80040578 0003D4D8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004057C 0003D4DC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80040580 0003D4E0 7C 9F 23 78 */ mr r31, r4
/* 80040584 0003D4E4 93 C1 00 08 */ stw r30, 8(r1)
/* 80040588 0003D4E8 7C 7E 1B 78 */ mr r30, r3
/* 8004058C 0003D4EC 88 03 08 32 */ lbz r0, 0x832(r3)
/* 80040590 0003D4F0 54 00 DF FE */ rlwinm r0, r0, 0x1b, 0x1f, 0x1f
/* 80040594 0003D4F4 28 00 00 01 */ cmplwi r0, 1
/* 80040598 0003D4F8 41 82 00 7C */ beq lbl_80040614
/* 8004059C 0003D4FC 80 1E 03 2C */ lwz r0, 0x32c(r30)
/* 800405A0 0003D500 2C 00 00 03 */ cmpwi r0, 3
/* 800405A4 0003D504 41 80 00 3C */ blt lbl_800405E0
/* 800405A8 0003D508 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 800405AC 0003D50C 38 A0 00 00 */ li r5, 0
/* 800405B0 0003D510 50 A0 0F BC */ rlwimi r0, r5, 1, 0x1e, 0x1e
/* 800405B4 0003D514 98 1E 08 33 */ stb r0, 0x833(r30)
/* 800405B8 0003D518 4B FF FC 75 */ bl UpdateNormalShotCycle__10CPlayerGunFfR13CStateManager
/* 800405BC 0003D51C 88 1E 08 32 */ lbz r0, 0x832(r30)
/* 800405C0 0003D520 38 60 00 01 */ li r3, 1
/* 800405C4 0003D524 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 800405C8 0003D528 7F C3 F3 78 */ mr r3, r30
/* 800405CC 0003D52C 98 1E 08 32 */ stb r0, 0x832(r30)
/* 800405D0 0003D530 7F E4 FB 78 */ mr r4, r31
/* 800405D4 0003D534 38 A0 00 01 */ li r5, 1
/* 800405D8 0003D538 4B FF B9 71 */ bl CancelCharge__10CPlayerGunFR13CStateManagerb
/* 800405DC 0003D53C 48 00 00 2C */ b lbl_80040608
lbl_800405E0:
/* 800405E0 0003D540 2C 00 00 00 */ cmpwi r0, 0
/* 800405E4 0003D544 41 82 00 24 */ beq lbl_80040608
/* 800405E8 0003D548 80 7E 03 10 */ lwz r3, 0x310(r30)
/* 800405EC 0003D54C 38 80 00 01 */ li r4, 1
/* 800405F0 0003D550 38 00 00 0A */ li r0, 0xa
/* 800405F4 0003D554 90 7E 03 20 */ stw r3, 0x320(r30)
/* 800405F8 0003D558 88 7E 08 33 */ lbz r3, 0x833(r30)
/* 800405FC 0003D55C 50 83 0F BC */ rlwimi r3, r4, 1, 0x1e, 0x1e
/* 80040600 0003D560 98 7E 08 33 */ stb r3, 0x833(r30)
/* 80040604 0003D564 90 1E 03 2C */ stw r0, 0x32c(r30)
lbl_80040608:
/* 80040608 0003D568 7F C3 F3 78 */ mr r3, r30
/* 8004060C 0003D56C 7F E4 FB 78 */ mr r4, r31
/* 80040610 0003D570 4B FF C5 45 */ bl StopChargeSound__10CPlayerGunFR13CStateManager
lbl_80040614:
/* 80040614 0003D574 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80040618 0003D578 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004061C 0003D57C 83 C1 00 08 */ lwz r30, 8(r1)
/* 80040620 0003D580 7C 08 03 A6 */ mtlr r0
/* 80040624 0003D584 38 21 00 10 */ addi r1, r1, 0x10
/* 80040628 0003D588 4E 80 00 20 */ blr
.global ResetNormal__10CPlayerGunFR13CStateManager
ResetNormal__10CPlayerGunFR13CStateManager:
/* 8004062C 0003D58C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80040630 0003D590 7C 08 02 A6 */ mflr r0
/* 80040634 0003D594 38 A0 00 00 */ li r5, 0
/* 80040638 0003D598 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004063C 0003D59C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80040640 0003D5A0 7C 7F 1B 78 */ mr r31, r3
/* 80040644 0003D5A4 4B FF EC FD */ bl Reset__10CPlayerGunFR13CStateManagerb
/* 80040648 0003D5A8 88 1F 08 32 */ lbz r0, 0x832(r31)
/* 8004064C 0003D5AC 38 60 00 00 */ li r3, 0
/* 80040650 0003D5B0 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 80040654 0003D5B4 98 1F 08 32 */ stb r0, 0x832(r31)
/* 80040658 0003D5B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004065C 0003D5BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80040660 0003D5C0 7C 08 03 A6 */ mtlr r0
/* 80040664 0003D5C4 38 21 00 10 */ addi r1, r1, 0x10
/* 80040668 0003D5C8 4E 80 00 20 */ blr
.global ProcessChargeState__10CPlayerGunFiiR13CStateManagerf
ProcessChargeState__10CPlayerGunFiiR13CStateManagerf:
/* 8004066C 0003D5CC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80040670 0003D5D0 7C 08 02 A6 */ mflr r0
/* 80040674 0003D5D4 90 01 00 34 */ stw r0, 0x34(r1)
/* 80040678 0003D5D8 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 8004067C 0003D5DC F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 80040680 0003D5E0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80040684 0003D5E4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80040688 0003D5E8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8004068C 0003D5EC 93 81 00 10 */ stw r28, 0x10(r1)
/* 80040690 0003D5F0 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 80040694 0003D5F4 FF E0 08 90 */ fmr f31, f1
/* 80040698 0003D5F8 7C 7C 1B 78 */ mr r28, r3
/* 8004069C 0003D5FC 7C BD 2B 78 */ mr r29, r5
/* 800406A0 0003D600 7C DE 33 78 */ mr r30, r6
/* 800406A4 0003D604 41 82 00 10 */ beq lbl_800406B4
/* 800406A8 0003D608 7F C4 F3 78 */ mr r4, r30
/* 800406AC 0003D60C 4B FF FE C5 */ bl ResetCharged__10CPlayerGunFfR13CStateManager
/* 800406B0 0003D610 48 00 00 D0 */ b lbl_80040780
lbl_800406B4:
/* 800406B4 0003D614 57 A4 07 FF */ clrlwi. r4, r29, 0x1f
/* 800406B8 0003D618 41 82 00 4C */ beq lbl_80040704
/* 800406BC 0003D61C 80 1C 03 2C */ lwz r0, 0x32c(r28)
/* 800406C0 0003D620 2C 00 00 00 */ cmpwi r0, 0
/* 800406C4 0003D624 40 82 00 BC */ bne lbl_80040780
/* 800406C8 0003D628 2C 04 00 00 */ cmpwi r4, 0
/* 800406CC 0003D62C 41 82 00 B4 */ beq lbl_80040780
/* 800406D0 0003D630 C0 42 84 6C */ lfs f2, lbl_805AA18C@sda21(r2)
/* 800406D4 0003D634 C0 1C 03 48 */ lfs f0, 0x348(r28)
/* 800406D8 0003D638 FC 02 00 00 */ fcmpu cr0, f2, f0
/* 800406DC 0003D63C 40 82 00 A4 */ bne lbl_80040780
/* 800406E0 0003D640 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 800406E4 0003D644 54 00 EF FE */ rlwinm r0, r0, 0x1d, 0x1f, 0x1f
/* 800406E8 0003D648 28 00 00 01 */ cmplwi r0, 1
/* 800406EC 0003D64C 40 82 00 94 */ bne lbl_80040780
/* 800406F0 0003D650 7F C4 F3 78 */ mr r4, r30
/* 800406F4 0003D654 4B FF FB 39 */ bl UpdateNormalShotCycle__10CPlayerGunFfR13CStateManager
/* 800406F8 0003D658 38 00 00 01 */ li r0, 1
/* 800406FC 0003D65C 90 1C 03 2C */ stw r0, 0x32c(r28)
/* 80040700 0003D660 48 00 00 80 */ b lbl_80040780
lbl_80040704:
/* 80040704 0003D664 80 7E 08 B8 */ lwz r3, 0x8b8(r30)
/* 80040708 0003D668 38 80 00 04 */ li r4, 4
/* 8004070C 0003D66C 83 E3 00 00 */ lwz r31, 0(r3)
/* 80040710 0003D670 7F E3 FB 78 */ mr r3, r31
/* 80040714 0003D674 48 05 13 AD */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 80040718 0003D678 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8004071C 0003D67C 41 82 00 64 */ beq lbl_80040780
/* 80040720 0003D680 57 A0 07 BD */ rlwinm. r0, r29, 0, 0x1e, 0x1e
/* 80040724 0003D684 41 82 00 5C */ beq lbl_80040780
/* 80040728 0003D688 80 1C 03 2C */ lwz r0, 0x32c(r28)
/* 8004072C 0003D68C 2C 00 00 04 */ cmpwi r0, 4
/* 80040730 0003D690 41 80 00 38 */ blt lbl_80040768
/* 80040734 0003D694 80 1C 03 10 */ lwz r0, 0x310(r28)
/* 80040738 0003D698 3C 60 80 3D */ lis r3, mBeamComboArr@ha
/* 8004073C 0003D69C 38 83 CE 64 */ addi r4, r3, mBeamComboArr@l
/* 80040740 0003D6A0 7F E3 FB 78 */ mr r3, r31
/* 80040744 0003D6A4 54 00 10 3A */ slwi r0, r0, 2
/* 80040748 0003D6A8 7C 84 00 2E */ lwzx r4, r4, r0
/* 8004074C 0003D6AC 48 05 13 75 */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 80040750 0003D6B0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040754 0003D6B4 41 82 00 2C */ beq lbl_80040780
/* 80040758 0003D6B8 7F 83 E3 78 */ mr r3, r28
/* 8004075C 0003D6BC 7F C4 F3 78 */ mr r4, r30
/* 80040760 0003D6C0 4B FF F2 6D */ bl ActivateCombo__10CPlayerGunFR13CStateManager
/* 80040764 0003D6C4 48 00 00 1C */ b lbl_80040780
lbl_80040768:
/* 80040768 0003D6C8 2C 00 00 00 */ cmpwi r0, 0
/* 8004076C 0003D6CC 40 82 00 14 */ bne lbl_80040780
/* 80040770 0003D6D0 FC 20 F8 90 */ fmr f1, f31
/* 80040774 0003D6D4 7F 83 E3 78 */ mr r3, r28
/* 80040778 0003D6D8 7F C4 F3 78 */ mr r4, r30
/* 8004077C 0003D6DC 4B FF F7 11 */ bl FireSecondary__10CPlayerGunFfR13CStateManager
lbl_80040780:
/* 80040780 0003D6E0 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 80040784 0003D6E4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80040788 0003D6E8 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 8004078C 0003D6EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80040790 0003D6F0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80040794 0003D6F4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80040798 0003D6F8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8004079C 0003D6FC 7C 08 03 A6 */ mtlr r0
/* 800407A0 0003D700 38 21 00 30 */ addi r1, r1, 0x30
/* 800407A4 0003D704 4E 80 00 20 */ blr
.global ProcessInput__10CPlayerGunFRC11CFinalInputR13CStateManager
ProcessInput__10CPlayerGunFRC11CFinalInputR13CStateManager:
/* 800407A8 0003D708 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800407AC 0003D70C 7C 08 02 A6 */ mflr r0
/* 800407B0 0003D710 90 01 00 24 */ stw r0, 0x24(r1)
/* 800407B4 0003D714 BF 61 00 0C */ stmw r27, 0xc(r1)
/* 800407B8 0003D718 7C 9E 23 78 */ mr r30, r4
/* 800407BC 0003D71C 7C 7D 1B 78 */ mr r29, r3
/* 800407C0 0003D720 7C BF 2B 78 */ mr r31, r5
/* 800407C4 0003D724 38 80 00 00 */ li r4, 0
/* 800407C8 0003D728 88 03 08 34 */ lbz r0, 0x834(r3)
/* 800407CC 0003D72C 80 65 08 B8 */ lwz r3, 0x8b8(r5)
/* 800407D0 0003D730 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
/* 800407D4 0003D734 83 85 08 4C */ lwz r28, 0x84c(r5)
/* 800407D8 0003D738 83 63 00 00 */ lwz r27, 0(r3)
/* 800407DC 0003D73C 41 82 00 14 */ beq lbl_800407F0
/* 800407E0 0003D740 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 800407E4 0003D744 2C 00 00 01 */ cmpwi r0, 1
/* 800407E8 0003D748 41 82 00 08 */ beq lbl_800407F0
/* 800407EC 0003D74C 38 80 00 01 */ li r4, 1
lbl_800407F0:
/* 800407F0 0003D750 88 1D 08 32 */ lbz r0, 0x832(r29)
/* 800407F4 0003D754 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800407F8 0003D758 40 82 01 28 */ bne lbl_80040920
/* 800407FC 0003D75C 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 80040800 0003D760 40 82 01 20 */ bne lbl_80040920
/* 80040804 0003D764 80 1D 02 F8 */ lwz r0, 0x2f8(r29)
/* 80040808 0003D768 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 8004080C 0003D76C 2C 00 00 08 */ cmpwi r0, 8
/* 80040810 0003D770 40 82 00 08 */ bne lbl_80040818
/* 80040814 0003D774 48 00 01 0C */ b lbl_80040920
lbl_80040818:
/* 80040818 0003D778 7F 63 DB 78 */ mr r3, r27
/* 8004081C 0003D77C 38 80 00 0A */ li r4, 0xa
/* 80040820 0003D780 48 05 12 A1 */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 80040824 0003D784 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040828 0003D788 41 82 00 28 */ beq lbl_80040850
/* 8004082C 0003D78C 7F 63 DB 78 */ mr r3, r27
/* 80040830 0003D790 38 80 00 0A */ li r4, 0xa
/* 80040834 0003D794 48 05 11 59 */ bl ItemEnabled__12CPlayerStateCFQ212CPlayerState9EItemType
/* 80040838 0003D798 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8004083C 0003D79C 40 82 00 44 */ bne lbl_80040880
/* 80040840 0003D7A0 7F 63 DB 78 */ mr r3, r27
/* 80040844 0003D7A4 38 80 00 0A */ li r4, 0xa
/* 80040848 0003D7A8 48 05 11 FD */ bl EnableItem__12CPlayerStateFQ212CPlayerState9EItemType
/* 8004084C 0003D7AC 48 00 00 34 */ b lbl_80040880
lbl_80040850:
/* 80040850 0003D7B0 7F 63 DB 78 */ mr r3, r27
/* 80040854 0003D7B4 38 80 00 0A */ li r4, 0xa
/* 80040858 0003D7B8 48 05 11 35 */ bl ItemEnabled__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8004085C 0003D7BC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040860 0003D7C0 41 82 00 20 */ beq lbl_80040880
/* 80040864 0003D7C4 7F 63 DB 78 */ mr r3, r27
/* 80040868 0003D7C8 38 80 00 0A */ li r4, 0xa
/* 8004086C 0003D7CC 48 05 11 85 */ bl DisableItem__12CPlayerStateFQ212CPlayerState9EItemType
/* 80040870 0003D7D0 7F A3 EB 78 */ mr r3, r29
/* 80040874 0003D7D4 7F E4 FB 78 */ mr r4, r31
/* 80040878 0003D7D8 38 A0 00 00 */ li r5, 0
/* 8004087C 0003D7DC 4B FF E9 61 */ bl ResetCharge__10CPlayerGunFR13CStateManagerb
lbl_80040880:
/* 80040880 0003D7E0 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 80040884 0003D7E4 2C 00 00 01 */ cmpwi r0, 1
/* 80040888 0003D7E8 41 82 00 48 */ beq lbl_800408D0
/* 8004088C 0003D7EC 40 80 00 10 */ bge lbl_8004089C
/* 80040890 0003D7F0 2C 00 00 00 */ cmpwi r0, 0
/* 80040894 0003D7F4 40 80 00 1C */ bge lbl_800408B0
/* 80040898 0003D7F8 48 00 00 88 */ b lbl_80040920
lbl_8004089C:
/* 8004089C 0003D7FC 2C 00 00 04 */ cmpwi r0, 4
/* 800408A0 0003D800 40 80 00 80 */ bge lbl_80040920
/* 800408A4 0003D804 38 00 00 00 */ li r0, 0
/* 800408A8 0003D808 90 1D 02 F4 */ stw r0, 0x2f4(r29)
/* 800408AC 0003D80C 48 00 00 74 */ b lbl_80040920
lbl_800408B0:
/* 800408B0 0003D810 80 1D 02 F8 */ lwz r0, 0x2f8(r29)
/* 800408B4 0003D814 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 800408B8 0003D818 2C 00 00 10 */ cmpwi r0, 0x10
/* 800408BC 0003D81C 41 82 00 14 */ beq lbl_800408D0
/* 800408C0 0003D820 7F A3 EB 78 */ mr r3, r29
/* 800408C4 0003D824 7F C4 F3 78 */ mr r4, r30
/* 800408C8 0003D828 7F E5 FB 78 */ mr r5, r31
/* 800408CC 0003D82C 4B FF E4 C9 */ bl HandleWeaponChange__10CPlayerGunFRC11CFinalInputR13CStateManager
lbl_800408D0:
/* 800408D0 0003D830 7F C4 F3 78 */ mr r4, r30
/* 800408D4 0003D834 38 60 00 0B */ li r3, 0xb
/* 800408D8 0003D838 4B FC BF 9D */ bl GetDigitalInput__13ControlMapperFQ213ControlMapper9ECommandsRC11CFinalInput
/* 800408DC 0003D83C 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 800408E0 0003D840 7F C4 F3 78 */ mr r4, r30
/* 800408E4 0003D844 7C 05 00 D0 */ neg r0, r5
/* 800408E8 0003D848 38 60 00 0C */ li r3, 0xc
/* 800408EC 0003D84C 7C 00 2B 78 */ or r0, r0, r5
/* 800408F0 0003D850 54 00 0F FE */ srwi r0, r0, 0x1f
/* 800408F4 0003D854 90 1D 02 F4 */ stw r0, 0x2f4(r29)
/* 800408F8 0003D858 4B FC BF 7D */ bl GetDigitalInput__13ControlMapperFQ213ControlMapper9ECommandsRC11CFinalInput
/* 800408FC 0003D85C 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 80040900 0003D860 80 1D 02 F4 */ lwz r0, 0x2f4(r29)
/* 80040904 0003D864 7C 85 00 D0 */ neg r4, r5
/* 80040908 0003D868 38 60 00 02 */ li r3, 2
/* 8004090C 0003D86C 7C 84 2B 78 */ or r4, r4, r5
/* 80040910 0003D870 7C 84 FE 70 */ srawi r4, r4, 0x1f
/* 80040914 0003D874 7C 63 20 38 */ and r3, r3, r4
/* 80040918 0003D878 7C 00 1B 78 */ or r0, r0, r3
/* 8004091C 0003D87C 90 1D 02 F4 */ stw r0, 0x2f4(r29)
lbl_80040920:
/* 80040920 0003D880 BB 61 00 0C */ lmw r27, 0xc(r1)
/* 80040924 0003D884 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80040928 0003D888 7C 08 03 A6 */ mtlr r0
/* 8004092C 0003D88C 38 21 00 20 */ addi r1, r1, 0x20
/* 80040930 0003D890 4E 80 00 20 */ blr
.global Update__10CPlayerGunFfffR13CStateManager
Update__10CPlayerGunFfffR13CStateManager:
/* 80040934 0003D894 94 21 F3 C0 */ stwu r1, -0xc40(r1)
/* 80040938 0003D898 7C 08 02 A6 */ mflr r0
/* 8004093C 0003D89C 90 01 0C 44 */ stw r0, 0xc44(r1)
/* 80040940 0003D8A0 DB E1 0C 30 */ stfd f31, 0xc30(r1)
/* 80040944 0003D8A4 F3 E1 0C 38 */ psq_st f31, -968(r1), 0, qr0
/* 80040948 0003D8A8 DB C1 0C 20 */ stfd f30, 0xc20(r1)
/* 8004094C 0003D8AC F3 C1 0C 28 */ psq_st f30, -984(r1), 0, qr0
/* 80040950 0003D8B0 DB A1 0C 10 */ stfd f29, 0xc10(r1)
/* 80040954 0003D8B4 F3 A1 0C 18 */ psq_st f29, -1000(r1), 0, qr0
/* 80040958 0003D8B8 DB 81 0C 00 */ stfd f28, 0xc00(r1)
/* 8004095C 0003D8BC F3 81 0C 08 */ psq_st f28, -1016(r1), 0, qr0
/* 80040960 0003D8C0 DB 61 0B F0 */ stfd f27, 0xbf0(r1)
/* 80040964 0003D8C4 F3 61 0B F8 */ psq_st f27, -1032(r1), 0, qr0
/* 80040968 0003D8C8 BE E1 0B CC */ stmw r23, 0xbcc(r1)
/* 8004096C 0003D8CC 83 64 08 4C */ lwz r27, 0x84c(r4)
/* 80040970 0003D8D0 7C 9D 23 78 */ mr r29, r4
/* 80040974 0003D8D4 80 84 08 B8 */ lwz r4, 0x8b8(r4)
/* 80040978 0003D8D8 7C 7C 1B 78 */ mr r28, r3
/* 8004097C 0003D8DC 80 1B 02 F8 */ lwz r0, 0x2f8(r27)
/* 80040980 0003D8E0 FF C0 08 90 */ fmr f30, f1
/* 80040984 0003D8E4 83 03 06 98 */ lwz r24, 0x698(r3)
/* 80040988 0003D8E8 FF 60 10 90 */ fmr f27, f2
/* 8004098C 0003D8EC 7C 03 00 34 */ cntlzw r3, r0
/* 80040990 0003D8F0 FF A0 18 90 */ fmr f29, f3
/* 80040994 0003D8F4 54 60 DE 3F */ rlwinm. r0, r3, 0x1b, 0x18, 0x1f
/* 80040998 0003D8F8 83 E4 00 00 */ lwz r31, 0(r4)
/* 8004099C 0003D8FC 54 7E D9 7E */ srwi r30, r3, 5
/* 800409A0 0003D900 41 82 00 34 */ beq lbl_800409D4
/* 800409A4 0003D904 7F 63 DB 78 */ mr r3, r27
/* 800409A8 0003D908 4B FD 53 55 */ bl GetFrozenState__7CPlayerCFv
/* 800409AC 0003D90C 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 800409B0 0003D910 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 800409B4 0003D914 54 00 F7 FE */ rlwinm r0, r0, 0x1e, 0x1f, 0x1f
/* 800409B8 0003D918 7C 00 1A 78 */ xor r0, r0, r3
/* 800409BC 0003D91C 7C 60 00 38 */ and r0, r3, r0
/* 800409C0 0003D920 7C 00 00 34 */ cntlzw r0, r0
/* 800409C4 0003D924 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f
/* 800409C8 0003D928 7C 00 00 34 */ cntlzw r0, r0
/* 800409CC 0003D92C 54 1A D9 7E */ srwi r26, r0, 5
/* 800409D0 0003D930 48 00 00 08 */ b lbl_800409D8
lbl_800409D4:
/* 800409D4 0003D934 3B 40 00 00 */ li r26, 0
lbl_800409D8:
/* 800409D8 0003D938 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 800409DC 0003D93C 41 82 00 34 */ beq lbl_80040A10
/* 800409E0 0003D940 7F 63 DB 78 */ mr r3, r27
/* 800409E4 0003D944 4B FD 53 19 */ bl GetFrozenState__7CPlayerCFv
/* 800409E8 0003D948 88 9C 08 34 */ lbz r4, 0x834(r28)
/* 800409EC 0003D94C 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 800409F0 0003D950 54 83 F7 FE */ rlwinm r3, r4, 0x1e, 0x1f, 0x1f
/* 800409F4 0003D954 7C 60 02 78 */ xor r0, r3, r0
/* 800409F8 0003D958 7C 60 00 38 */ and r0, r3, r0
/* 800409FC 0003D95C 7C 00 00 34 */ cntlzw r0, r0
/* 80040A00 0003D960 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f
/* 80040A04 0003D964 7C 00 00 34 */ cntlzw r0, r0
/* 80040A08 0003D968 54 19 D9 7E */ srwi r25, r0, 5
/* 80040A0C 0003D96C 48 00 00 08 */ b lbl_80040A14
lbl_80040A10:
/* 80040A10 0003D970 3B 20 00 00 */ li r25, 0
lbl_80040A14:
/* 80040A14 0003D974 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 80040A18 0003D978 41 82 00 10 */ beq lbl_80040A28
/* 80040A1C 0003D97C 7F 63 DB 78 */ mr r3, r27
/* 80040A20 0003D980 4B FD 52 DD */ bl GetFrozenState__7CPlayerCFv
/* 80040A24 0003D984 48 00 00 08 */ b lbl_80040A2C
lbl_80040A28:
/* 80040A28 0003D988 38 60 00 00 */ li r3, 0
lbl_80040A2C:
/* 80040A2C 0003D98C 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 80040A30 0003D990 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 80040A34 0003D994 98 1C 08 34 */ stb r0, 0x834(r28)
/* 80040A38 0003D998 88 1C 08 34 */ lbz r0, 0x834(r28)
/* 80040A3C 0003D99C 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 80040A40 0003D9A0 41 82 00 0C */ beq lbl_80040A4C
/* 80040A44 0003D9A4 C3 82 84 6C */ lfs f28, lbl_805AA18C@sda21(r2)
/* 80040A48 0003D9A8 48 00 00 08 */ b lbl_80040A50
lbl_80040A4C:
/* 80040A4C 0003D9AC FF 80 E8 90 */ fmr f28, f29
lbl_80040A50:
/* 80040A50 0003D9B0 80 7D 08 B8 */ lwz r3, 0x8b8(r29)
/* 80040A54 0003D9B4 20 98 00 01 */ subfic r4, r24, 1
/* 80040A58 0003D9B8 38 18 FF FF */ addi r0, r24, -1
/* 80040A5C 0003D9BC 80 63 00 00 */ lwz r3, 0(r3)
/* 80040A60 0003D9C0 7C 80 03 78 */ or r0, r4, r0
/* 80040A64 0003D9C4 54 17 0F FE */ srwi r23, r0, 0x1f
/* 80040A68 0003D9C8 80 03 00 14 */ lwz r0, 0x14(r3)
/* 80040A6C 0003D9CC 2C 00 00 01 */ cmpwi r0, 1
/* 80040A70 0003D9D0 41 82 00 0C */ beq lbl_80040A7C
/* 80040A74 0003D9D4 28 17 00 00 */ cmplwi r23, 0
/* 80040A78 0003D9D8 41 82 00 28 */ beq lbl_80040AA0
lbl_80040A7C:
/* 80040A7C 0003D9DC 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13)
/* 80040A80 0003D9E0 FC 20 E0 90 */ fmr f1, f28
/* 80040A84 0003D9E4 7F A5 EB 78 */ mr r5, r29
/* 80040A88 0003D9E8 38 61 01 00 */ addi r3, r1, 0x100
/* 80040A8C 0003D9EC 90 01 00 10 */ stw r0, 0x10(r1)
/* 80040A90 0003D9F0 38 9C 06 E0 */ addi r4, r28, 0x6e0
/* 80040A94 0003D9F4 38 C1 00 10 */ addi r6, r1, 0x10
/* 80040A98 0003D9F8 38 E0 00 01 */ li r7, 1
/* 80040A9C 0003D9FC 48 0D 50 99 */ bl AdvanceAnimation__10CModelDataFfR13CStateManager7TAreaIdb
lbl_80040AA0:
/* 80040AA0 0003DA00 28 17 00 00 */ cmplwi r23, 0
/* 80040AA4 0003DA04 41 82 00 40 */ beq lbl_80040AE4
/* 80040AA8 0003DA08 80 7C 07 34 */ lwz r3, 0x734(r28)
/* 80040AAC 0003DA0C 28 03 00 00 */ cmplwi r3, 0
/* 80040AB0 0003DA10 41 82 00 34 */ beq lbl_80040AE4
/* 80040AB4 0003DA14 80 1C 07 2C */ lwz r0, 0x72c(r28)
/* 80040AB8 0003DA18 7C 03 00 40 */ cmplw r3, r0
/* 80040ABC 0003DA1C 41 82 00 28 */ beq lbl_80040AE4
/* 80040AC0 0003DA20 80 7C 07 44 */ lwz r3, 0x744(r28)
/* 80040AC4 0003DA24 48 17 7D E1 */ bl LoadIdle__10CAuxWeaponFv
/* 80040AC8 0003DA28 80 7C 07 34 */ lwz r3, 0x734(r28)
/* 80040ACC 0003DA2C FC 20 E0 90 */ fmr f1, f28
/* 80040AD0 0003DA30 7F A4 EB 78 */ mr r4, r29
/* 80040AD4 0003DA34 81 83 00 00 */ lwz r12, 0(r3)
/* 80040AD8 0003DA38 81 8C 00 34 */ lwz r12, 0x34(r12)
/* 80040ADC 0003DA3C 7D 89 03 A6 */ mtctr r12
/* 80040AE0 0003DA40 4E 80 04 21 */ bctrl
lbl_80040AE4:
/* 80040AE4 0003DA44 80 7C 07 44 */ lwz r3, 0x744(r28)
/* 80040AE8 0003DA48 88 03 00 80 */ lbz r0, 0x80(r3)
/* 80040AEC 0003DA4C 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80040AF0 0003DA50 40 82 00 08 */ bne lbl_80040AF8
/* 80040AF4 0003DA54 48 17 7D B1 */ bl LoadIdle__10CAuxWeaponFv
lbl_80040AF8:
/* 80040AF8 0003DA58 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 80040AFC 0003DA5C 41 82 00 2C */ beq lbl_80040B28
/* 80040B00 0003DA60 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80040B04 0003DA64 38 80 00 00 */ li r4, 0
/* 80040B08 0003DA68 81 83 00 00 */ lwz r12, 0(r3)
/* 80040B0C 0003DA6C 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 80040B10 0003DA70 7D 89 03 A6 */ mtctr r12
/* 80040B14 0003DA74 4E 80 04 21 */ bctrl
/* 80040B18 0003DA78 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80040B1C 0003DA7C 38 80 00 01 */ li r4, 1
/* 80040B20 0003DA80 48 17 97 A9 */ bl EnableFrozenEffect__10CGunWeaponF13EFrozenFxType
/* 80040B24 0003DA84 48 00 00 18 */ b lbl_80040B3C
lbl_80040B28:
/* 80040B28 0003DA88 57 20 06 3F */ clrlwi. r0, r25, 0x18
/* 80040B2C 0003DA8C 41 82 00 10 */ beq lbl_80040B3C
/* 80040B30 0003DA90 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80040B34 0003DA94 38 80 00 02 */ li r4, 2
/* 80040B38 0003DA98 48 17 97 91 */ bl EnableFrozenEffect__10CGunWeaponF13EFrozenFxType
lbl_80040B3C:
/* 80040B3C 0003DA9C 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 80040B40 0003DAA0 40 82 00 0C */ bne lbl_80040B4C
/* 80040B44 0003DAA4 57 20 06 3F */ clrlwi. r0, r25, 0x18
/* 80040B48 0003DAA8 41 82 00 1C */ beq lbl_80040B64
lbl_80040B4C:
/* 80040B4C 0003DAAC 38 00 00 00 */ li r0, 0
/* 80040B50 0003DAB0 7F 83 E3 78 */ mr r3, r28
/* 80040B54 0003DAB4 90 1C 02 F4 */ stw r0, 0x2f4(r28)
/* 80040B58 0003DAB8 7F A4 EB 78 */ mr r4, r29
/* 80040B5C 0003DABC 90 1C 02 EC */ stw r0, 0x2ec(r28)
/* 80040B60 0003DAC0 4B FF BE F9 */ bl CancelFiring__10CPlayerGunFR13CStateManager
lbl_80040B64:
/* 80040B64 0003DAC4 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80040B68 0003DAC8 FC 20 E0 90 */ fmr f1, f28
/* 80040B6C 0003DACC 7F A4 EB 78 */ mr r4, r29
/* 80040B70 0003DAD0 81 83 00 00 */ lwz r12, 0(r3)
/* 80040B74 0003DAD4 81 8C 00 34 */ lwz r12, 0x34(r12)
/* 80040B78 0003DAD8 7D 89 03 A6 */ mtctr r12
/* 80040B7C 0003DADC 4E 80 04 21 */ bctrl
/* 80040B80 0003DAE0 C0 1C 03 70 */ lfs f0, 0x370(r28)
/* 80040B84 0003DAE4 7F A4 EB 78 */ mr r4, r29
/* 80040B88 0003DAE8 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 80040B8C 0003DAEC EC 3C 00 32 */ fmuls f1, f28, f0
/* 80040B90 0003DAF0 48 19 85 9D */ bl Update__10CGunMotionFfR13CStateManager
/* 80040B94 0003DAF4 FC 20 F0 90 */ fmr f1, f30
/* 80040B98 0003DAF8 80 7C 07 40 */ lwz r3, 0x740(r28)
/* 80040B9C 0003DAFC FC 40 E0 90 */ fmr f2, f28
/* 80040BA0 0003DB00 7F A4 EB 78 */ mr r4, r29
/* 80040BA4 0003DB04 48 0D E3 05 */ bl Update__11CGrappleArmFffR13CStateManager
/* 80040BA8 0003DB08 80 1C 03 38 */ lwz r0, 0x338(r28)
/* 80040BAC 0003DB0C 2C 00 00 00 */ cmpwi r0, 0
/* 80040BB0 0003DB10 41 82 02 70 */ beq lbl_80040E20
/* 80040BB4 0003DB14 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80040BB8 0003DB18 2C 18 00 00 */ cmpwi r24, 0
/* 80040BBC 0003DB1C 83 03 00 20 */ lwz r24, 0x20(r3)
/* 80040BC0 0003DB20 40 82 00 28 */ bne lbl_80040BE8
/* 80040BC4 0003DB24 2C 00 00 05 */ cmpwi r0, 5
/* 80040BC8 0003DB28 40 82 02 58 */ bne lbl_80040E20
/* 80040BCC 0003DB2C 7F 83 E3 78 */ mr r3, r28
/* 80040BD0 0003DB30 7F E4 FB 78 */ mr r4, r31
/* 80040BD4 0003DB34 7F A5 EB 78 */ mr r5, r29
/* 80040BD8 0003DB38 4B FF E3 C1 */ bl ChangeWeapon__10CPlayerGunFRC12CPlayerStateR13CStateManager
/* 80040BDC 0003DB3C 38 00 00 00 */ li r0, 0
/* 80040BE0 0003DB40 90 1C 03 38 */ stw r0, 0x338(r28)
/* 80040BE4 0003DB44 48 00 02 3C */ b lbl_80040E20
lbl_80040BE8:
/* 80040BE8 0003DB48 3C 80 80 3D */ lis r4, lbl_803CCEB0@ha
/* 80040BEC 0003DB4C 38 61 00 80 */ addi r3, r1, 0x80
/* 80040BF0 0003DB50 38 84 CE B0 */ addi r4, r4, lbl_803CCEB0@l
/* 80040BF4 0003DB54 38 84 00 1E */ addi r4, r4, 0x1e
/* 80040BF8 0003DB58 4B FC 40 C1 */ bl string_l__4rstlFPCc
/* 80040BFC 0003DB5C C0 22 84 E4 */ lfs f1, lbl_805AA204@sda21(r2)
/* 80040C00 0003DB60 7F 03 C3 78 */ mr r3, r24
/* 80040C04 0003DB64 38 81 00 80 */ addi r4, r1, 0x80
/* 80040C08 0003DB68 4B FE B7 E5 */ bl "IsAnimTimeRemaining__9CAnimDataCFfRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 80040C0C 0003DB6C 7C 78 1B 78 */ mr r24, r3
/* 80040C10 0003DB70 38 61 00 80 */ addi r3, r1, 0x80
/* 80040C14 0003DB74 48 2F CE CD */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 80040C18 0003DB78 57 00 06 3F */ clrlwi. r0, r24, 0x18
/* 80040C1C 0003DB7C 41 82 00 10 */ beq lbl_80040C2C
/* 80040C20 0003DB80 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 80040C24 0003DB84 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
/* 80040C28 0003DB88 41 82 01 F8 */ beq lbl_80040E20
lbl_80040C2C:
/* 80040C2C 0003DB8C 80 1C 03 38 */ lwz r0, 0x338(r28)
/* 80040C30 0003DB90 3B 00 00 01 */ li r24, 1
/* 80040C34 0003DB94 28 00 00 09 */ cmplwi r0, 9
/* 80040C38 0003DB98 41 81 01 D8 */ bgt lbl_80040E10
/* 80040C3C 0003DB9C 3C 60 80 3E */ lis r3, lbl_803D9E04@ha
/* 80040C40 0003DBA0 54 00 10 3A */ slwi r0, r0, 2
/* 80040C44 0003DBA4 38 63 9E 04 */ addi r3, r3, lbl_803D9E04@l
/* 80040C48 0003DBA8 7C 03 00 2E */ lwzx r0, r3, r0
/* 80040C4C 0003DBAC 7C 09 03 A6 */ mtctr r0
/* 80040C50 0003DBB0 4E 80 04 20 */ bctr
lbl_80040C54:
/* 80040C54 0003DBB4 80 7C 02 F8 */ lwz r3, 0x2f8(r28)
/* 80040C58 0003DBB8 38 00 00 01 */ li r0, 1
/* 80040C5C 0003DBBC 54 63 00 3C */ rlwinm r3, r3, 0, 0, 0x1e
/* 80040C60 0003DBC0 90 7C 02 F8 */ stw r3, 0x2f8(r28)
/* 80040C64 0003DBC4 80 7C 02 F8 */ lwz r3, 0x2f8(r28)
/* 80040C68 0003DBC8 60 63 00 06 */ ori r3, r3, 6
/* 80040C6C 0003DBCC 90 7C 02 F8 */ stw r3, 0x2f8(r28)
/* 80040C70 0003DBD0 90 1C 03 18 */ stw r0, 0x318(r28)
/* 80040C74 0003DBD4 90 1C 03 1C */ stw r0, 0x31c(r28)
/* 80040C78 0003DBD8 48 00 01 98 */ b lbl_80040E10
lbl_80040C7C:
/* 80040C7C 0003DBDC 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 80040C80 0003DBE0 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 80040C84 0003DBE4 2C 00 00 08 */ cmpwi r0, 8
/* 80040C88 0003DBE8 41 82 00 20 */ beq lbl_80040CA8
/* 80040C8C 0003DBEC 80 7C 02 F8 */ lwz r3, 0x2f8(r28)
/* 80040C90 0003DBF0 38 00 FF E9 */ li r0, -23
/* 80040C94 0003DBF4 60 63 00 01 */ ori r3, r3, 1
/* 80040C98 0003DBF8 90 7C 02 F8 */ stw r3, 0x2f8(r28)
/* 80040C9C 0003DBFC 80 7C 02 F8 */ lwz r3, 0x2f8(r28)
/* 80040CA0 0003DC00 7C 60 00 38 */ and r0, r3, r0
/* 80040CA4 0003DC04 90 1C 02 F8 */ stw r0, 0x2f8(r28)
lbl_80040CA8:
/* 80040CA8 0003DC08 38 00 00 00 */ li r0, 0
/* 80040CAC 0003DC0C 90 1C 03 18 */ stw r0, 0x318(r28)
/* 80040CB0 0003DC10 90 1C 03 1C */ stw r0, 0x31c(r28)
/* 80040CB4 0003DC14 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80040CB8 0003DC18 48 17 BF DD */ bl GetWeaponInfo__10CGunWeaponCFv
/* 80040CBC 0003DC1C C0 03 00 00 */ lfs f0, 0(r3)
/* 80040CC0 0003DC20 D0 1C 03 90 */ stfs f0, 0x390(r28)
/* 80040CC4 0003DC24 48 00 01 4C */ b lbl_80040E10
lbl_80040CC8:
/* 80040CC8 0003DC28 7F 83 E3 78 */ mr r3, r28
/* 80040CCC 0003DC2C 38 80 00 08 */ li r4, 8
/* 80040CD0 0003DC30 38 A0 00 00 */ li r5, 0
/* 80040CD4 0003DC34 48 00 0B F1 */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
/* 80040CD8 0003DC38 38 00 00 03 */ li r0, 3
/* 80040CDC 0003DC3C 3B 00 00 00 */ li r24, 0
/* 80040CE0 0003DC40 90 1C 03 38 */ stw r0, 0x338(r28)
/* 80040CE4 0003DC44 48 00 01 2C */ b lbl_80040E10
lbl_80040CE8:
/* 80040CE8 0003DC48 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 80040CEC 0003DC4C 60 00 00 04 */ ori r0, r0, 4
/* 80040CF0 0003DC50 90 1C 02 F8 */ stw r0, 0x2f8(r28)
/* 80040CF4 0003DC54 48 00 01 1C */ b lbl_80040E10
lbl_80040CF8:
/* 80040CF8 0003DC58 7F 83 E3 78 */ mr r3, r28
/* 80040CFC 0003DC5C 7F E4 FB 78 */ mr r4, r31
/* 80040D00 0003DC60 7F A5 EB 78 */ mr r5, r29
/* 80040D04 0003DC64 4B FF E2 95 */ bl ChangeWeapon__10CPlayerGunFRC12CPlayerStateR13CStateManager
/* 80040D08 0003DC68 48 00 01 08 */ b lbl_80040E10
lbl_80040D0C:
/* 80040D0C 0003DC6C 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80040D10 0003DC70 48 17 BF 85 */ bl GetWeaponInfo__10CGunWeaponCFv
/* 80040D14 0003DC74 C0 03 00 00 */ lfs f0, 0(r3)
/* 80040D18 0003DC78 D0 1C 03 90 */ stfs f0, 0x390(r28)
/* 80040D1C 0003DC7C 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 80040D20 0003DC80 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 80040D24 0003DC84 90 1C 02 F8 */ stw r0, 0x2f8(r28)
/* 80040D28 0003DC88 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 80040D2C 0003DC8C 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 80040D30 0003DC90 2C 00 00 08 */ cmpwi r0, 8
/* 80040D34 0003DC94 41 82 00 20 */ beq lbl_80040D54
/* 80040D38 0003DC98 80 7C 02 F8 */ lwz r3, 0x2f8(r28)
/* 80040D3C 0003DC9C 38 00 FF E9 */ li r0, -23
/* 80040D40 0003DCA0 60 63 00 01 */ ori r3, r3, 1
/* 80040D44 0003DCA4 90 7C 02 F8 */ stw r3, 0x2f8(r28)
/* 80040D48 0003DCA8 80 7C 02 F8 */ lwz r3, 0x2f8(r28)
/* 80040D4C 0003DCAC 7C 60 00 38 */ and r0, r3, r0
/* 80040D50 0003DCB0 90 1C 02 F8 */ stw r0, 0x2f8(r28)
lbl_80040D54:
/* 80040D54 0003DCB4 38 00 00 00 */ li r0, 0
/* 80040D58 0003DCB8 90 1C 03 18 */ stw r0, 0x318(r28)
/* 80040D5C 0003DCBC 90 1C 03 1C */ stw r0, 0x31c(r28)
/* 80040D60 0003DCC0 48 00 00 B0 */ b lbl_80040E10
lbl_80040D64:
/* 80040D64 0003DCC4 80 7C 07 5C */ lwz r3, 0x75c(r28)
/* 80040D68 0003DCC8 81 83 00 00 */ lwz r12, 0(r3)
/* 80040D6C 0003DCCC 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 80040D70 0003DCD0 7D 89 03 A6 */ mtctr r12
/* 80040D74 0003DCD4 4E 80 04 21 */ bctrl
/* 80040D78 0003DCD8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040D7C 0003DCDC 40 82 00 94 */ bne lbl_80040E10
/* 80040D80 0003DCE0 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80040D84 0003DCE4 38 C0 00 01 */ li r6, 1
/* 80040D88 0003DCE8 7F A4 EB 78 */ mr r4, r29
/* 80040D8C 0003DCEC 38 A0 00 00 */ li r5, 0
/* 80040D90 0003DCF0 88 03 02 18 */ lbz r0, 0x218(r3)
/* 80040D94 0003DCF4 50 C0 17 7A */ rlwimi r0, r6, 2, 0x1d, 0x1d
/* 80040D98 0003DCF8 98 03 02 18 */ stb r0, 0x218(r3)
/* 80040D9C 0003DCFC 80 7C 07 5C */ lwz r3, 0x75c(r28)
/* 80040DA0 0003DD00 81 83 00 00 */ lwz r12, 0(r3)
/* 80040DA4 0003DD04 81 8C 00 38 */ lwz r12, 0x38(r12)
/* 80040DA8 0003DD08 7D 89 03 A6 */ mtctr r12
/* 80040DAC 0003DD0C 4E 80 04 21 */ bctrl
/* 80040DB0 0003DD10 38 00 00 01 */ li r0, 1
/* 80040DB4 0003DD14 90 1C 03 3C */ stw r0, 0x33c(r28)
/* 80040DB8 0003DD18 48 00 00 58 */ b lbl_80040E10
lbl_80040DBC:
/* 80040DBC 0003DD1C 80 7C 07 38 */ lwz r3, 0x738(r28)
/* 80040DC0 0003DD20 81 83 00 00 */ lwz r12, 0(r3)
/* 80040DC4 0003DD24 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 80040DC8 0003DD28 7D 89 03 A6 */ mtctr r12
/* 80040DCC 0003DD2C 4E 80 04 21 */ bctrl
/* 80040DD0 0003DD30 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040DD4 0003DD34 40 82 00 3C */ bne lbl_80040E10
/* 80040DD8 0003DD38 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80040DDC 0003DD3C 38 C0 00 01 */ li r6, 1
/* 80040DE0 0003DD40 7F A4 EB 78 */ mr r4, r29
/* 80040DE4 0003DD44 38 A0 00 00 */ li r5, 0
/* 80040DE8 0003DD48 88 03 02 18 */ lbz r0, 0x218(r3)
/* 80040DEC 0003DD4C 50 C0 17 7A */ rlwimi r0, r6, 2, 0x1d, 0x1d
/* 80040DF0 0003DD50 98 03 02 18 */ stb r0, 0x218(r3)
/* 80040DF4 0003DD54 80 7C 07 38 */ lwz r3, 0x738(r28)
/* 80040DF8 0003DD58 81 83 00 00 */ lwz r12, 0(r3)
/* 80040DFC 0003DD5C 81 8C 00 38 */ lwz r12, 0x38(r12)
/* 80040E00 0003DD60 7D 89 03 A6 */ mtctr r12
/* 80040E04 0003DD64 4E 80 04 21 */ bctrl
/* 80040E08 0003DD68 38 00 00 02 */ li r0, 2
/* 80040E0C 0003DD6C 90 1C 03 3C */ stw r0, 0x33c(r28)
lbl_80040E10:
/* 80040E10 0003DD70 57 00 06 3F */ clrlwi. r0, r24, 0x18
/* 80040E14 0003DD74 41 82 00 0C */ beq lbl_80040E20
/* 80040E18 0003DD78 38 00 00 00 */ li r0, 0
/* 80040E1C 0003DD7C 90 1C 03 38 */ stw r0, 0x338(r28)
lbl_80040E20:
/* 80040E20 0003DD80 C0 3C 03 7C */ lfs f1, 0x37c(r28)
/* 80040E24 0003DD84 C0 02 84 70 */ lfs f0, lbl_805AA190@sda21(r2)
/* 80040E28 0003DD88 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80040E2C 0003DD8C 40 80 00 10 */ bge lbl_80040E3C
/* 80040E30 0003DD90 EC 01 E0 2A */ fadds f0, f1, f28
/* 80040E34 0003DD94 D0 1C 03 7C */ stfs f0, 0x37c(r28)
/* 80040E38 0003DD98 48 00 00 20 */ b lbl_80040E58
lbl_80040E3C:
/* 80040E3C 0003DD9C C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 80040E40 0003DDA0 D0 1C 03 7C */ stfs f0, 0x37c(r28)
/* 80040E44 0003DDA4 80 7C 03 0C */ lwz r3, 0x30c(r28)
/* 80040E48 0003DDA8 2C 03 00 00 */ cmpwi r3, 0
/* 80040E4C 0003DDAC 40 81 00 0C */ ble lbl_80040E58
/* 80040E50 0003DDB0 38 03 FF FF */ addi r0, r3, -1
/* 80040E54 0003DDB4 90 1C 03 0C */ stw r0, 0x30c(r28)
lbl_80040E58:
/* 80040E58 0003DDB8 80 1C 03 2C */ lwz r0, 0x32c(r28)
/* 80040E5C 0003DDBC 2C 00 00 00 */ cmpwi r0, 0
/* 80040E60 0003DDC0 41 82 00 94 */ beq lbl_80040EF4
/* 80040E64 0003DDC4 7F 63 DB 78 */ mr r3, r27
/* 80040E68 0003DDC8 4B FD 4E 95 */ bl GetFrozenState__7CPlayerCFv
/* 80040E6C 0003DDCC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040E70 0003DDD0 40 82 00 84 */ bne lbl_80040EF4
/* 80040E74 0003DDD4 80 7D 09 00 */ lwz r3, 0x900(r29)
/* 80040E78 0003DDD8 48 2D 16 A9 */ bl Next__9CRandom16Fv
/* 80040E7C 0003DDDC 3C A0 55 55 */ lis r5, 0x55555556@ha
/* 80040E80 0003DDE0 3C 80 80 3D */ lis r4, chargeShakeTbl@ha
/* 80040E84 0003DDE4 38 05 55 56 */ addi r0, r5, 0x55555556@l
/* 80040E88 0003DDE8 C0 1C 03 40 */ lfs f0, 0x340(r28)
/* 80040E8C 0003DDEC 7C A0 18 96 */ mulhw r5, r0, r3
/* 80040E90 0003DDF0 38 84 CE 38 */ addi r4, r4, chargeShakeTbl@l
/* 80040E94 0003DDF4 54 A0 0F FE */ srwi r0, r5, 0x1f
/* 80040E98 0003DDF8 7C 05 02 14 */ add r0, r5, r0
/* 80040E9C 0003DDFC 1C 00 00 03 */ mulli r0, r0, 3
/* 80040EA0 0003DE00 7C 00 18 50 */ subf r0, r0, r3
/* 80040EA4 0003DE04 54 00 10 3A */ slwi r0, r0, 2
/* 80040EA8 0003DE08 7C 24 04 2E */ lfsx f1, r4, r0
/* 80040EAC 0003DE0C EC 00 00 72 */ fmuls f0, f0, f1
/* 80040EB0 0003DE10 D0 1C 03 4C */ stfs f0, 0x34c(r28)
/* 80040EB4 0003DE14 80 7D 09 00 */ lwz r3, 0x900(r29)
/* 80040EB8 0003DE18 48 2D 16 69 */ bl Next__9CRandom16Fv
/* 80040EBC 0003DE1C 3C A0 55 55 */ lis r5, 0x55555556@ha
/* 80040EC0 0003DE20 3C 80 80 3D */ lis r4, chargeShakeTbl@ha
/* 80040EC4 0003DE24 38 05 55 56 */ addi r0, r5, 0x55555556@l
/* 80040EC8 0003DE28 C0 1C 03 40 */ lfs f0, 0x340(r28)
/* 80040ECC 0003DE2C 7C A0 18 96 */ mulhw r5, r0, r3
/* 80040ED0 0003DE30 38 84 CE 38 */ addi r4, r4, chargeShakeTbl@l
/* 80040ED4 0003DE34 54 A0 0F FE */ srwi r0, r5, 0x1f
/* 80040ED8 0003DE38 7C 05 02 14 */ add r0, r5, r0
/* 80040EDC 0003DE3C 1C 00 00 03 */ mulli r0, r0, 3
/* 80040EE0 0003DE40 7C 00 18 50 */ subf r0, r0, r3
/* 80040EE4 0003DE44 54 00 10 3A */ slwi r0, r0, 2
/* 80040EE8 0003DE48 7C 24 04 2E */ lfsx f1, r4, r0
/* 80040EEC 0003DE4C EC 00 00 72 */ fmuls f0, f0, f1
/* 80040EF0 0003DE50 D0 1C 03 50 */ stfs f0, 0x350(r28)
lbl_80040EF4:
/* 80040EF4 0003DE54 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80040EF8 0003DE58 81 83 00 00 */ lwz r12, 0(r3)
/* 80040EFC 0003DE5C 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 80040F00 0003DE60 7D 89 03 A6 */ mtctr r12
/* 80040F04 0003DE64 4E 80 04 21 */ bctrl
/* 80040F08 0003DE68 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040F0C 0003DE6C 41 82 09 7C */ beq lbl_80041888
/* 80040F10 0003DE70 80 BC 07 2C */ lwz r5, 0x72c(r28)
/* 80040F14 0003DE74 38 61 00 70 */ addi r3, r1, 0x70
/* 80040F18 0003DE78 83 1C 07 3C */ lwz r24, 0x73c(r28)
/* 80040F1C 0003DE7C 80 82 84 48 */ lwz r4, lbl_805AA168@sda21(r2)
/* 80040F20 0003DE80 3B 25 00 10 */ addi r25, r5, 0x10
/* 80040F24 0003DE84 4B FC 3D 95 */ bl string_l__4rstlFPCc
/* 80040F28 0003DE88 7F 83 E3 78 */ mr r3, r28
/* 80040F2C 0003DE8C 7F 05 C3 78 */ mr r5, r24
/* 80040F30 0003DE90 38 9C 04 D8 */ addi r4, r28, 0x4d8
/* 80040F34 0003DE94 38 C1 00 70 */ addi r6, r1, 0x70
/* 80040F38 0003DE98 38 E0 00 01 */ li r7, 1
/* 80040F3C 0003DE9C 39 00 00 01 */ li r8, 1
/* 80040F40 0003DEA0 48 00 0A 89 */ bl "GetLctrWithShake__10CPlayerGunFR12CTransform4fRC10CModelDataRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bb"
/* 80040F44 0003DEA4 38 61 00 70 */ addi r3, r1, 0x70
/* 80040F48 0003DEA8 48 2F CB 99 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 80040F4C 0003DEAC 80 82 A9 C8 */ lwz r4, lbl_805AC6E8@sda21(r2)
/* 80040F50 0003DEB0 38 61 00 60 */ addi r3, r1, 0x60
/* 80040F54 0003DEB4 4B FC 3D 65 */ bl string_l__4rstlFPCc
/* 80040F58 0003DEB8 7F 83 E3 78 */ mr r3, r28
/* 80040F5C 0003DEBC 7F 25 CB 78 */ mr r5, r25
/* 80040F60 0003DEC0 38 9C 04 18 */ addi r4, r28, 0x418
/* 80040F64 0003DEC4 38 C1 00 60 */ addi r6, r1, 0x60
/* 80040F68 0003DEC8 38 E0 00 00 */ li r7, 0
/* 80040F6C 0003DECC 39 00 00 01 */ li r8, 1
/* 80040F70 0003DED0 48 00 0A 59 */ bl "GetLctrWithShake__10CPlayerGunFR12CTransform4fRC10CModelDataRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bb"
/* 80040F74 0003DED4 38 61 00 60 */ addi r3, r1, 0x60
/* 80040F78 0003DED8 48 2F CB 69 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 80040F7C 0003DEDC 3C 80 80 3D */ lis r4, lbl_803CCEB0@ha
/* 80040F80 0003DEE0 38 61 00 50 */ addi r3, r1, 0x50
/* 80040F84 0003DEE4 38 84 CE B0 */ addi r4, r4, lbl_803CCEB0@l
/* 80040F88 0003DEE8 38 84 00 18 */ addi r4, r4, 0x18
/* 80040F8C 0003DEEC 4B FC 3D 2D */ bl string_l__4rstlFPCc
/* 80040F90 0003DEF0 7F 83 E3 78 */ mr r3, r28
/* 80040F94 0003DEF4 7F 25 CB 78 */ mr r5, r25
/* 80040F98 0003DEF8 38 9C 05 08 */ addi r4, r28, 0x508
/* 80040F9C 0003DEFC 38 C1 00 50 */ addi r6, r1, 0x50
/* 80040FA0 0003DF00 38 E0 00 00 */ li r7, 0
/* 80040FA4 0003DF04 39 00 00 00 */ li r8, 0
/* 80040FA8 0003DF08 48 00 0A 21 */ bl "GetLctrWithShake__10CPlayerGunFR12CTransform4fRC10CModelDataRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bb"
/* 80040FAC 0003DF0C 38 61 00 50 */ addi r3, r1, 0x50
/* 80040FB0 0003DF10 48 2F CB 31 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 80040FB4 0003DF14 38 61 02 A0 */ addi r3, r1, 0x2a0
/* 80040FB8 0003DF18 38 9C 05 50 */ addi r4, r28, 0x550
/* 80040FBC 0003DF1C 48 0A 8D E9 */ bl GetCameraBobTransformation__16CPlayerCameraBobCFv
/* 80040FC0 0003DF20 38 61 02 D0 */ addi r3, r1, 0x2d0
/* 80040FC4 0003DF24 38 9C 03 E8 */ addi r4, r28, 0x3e8
/* 80040FC8 0003DF28 38 BC 04 D8 */ addi r5, r28, 0x4d8
/* 80040FCC 0003DF2C 48 2D 19 85 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80040FD0 0003DF30 38 61 03 00 */ addi r3, r1, 0x300
/* 80040FD4 0003DF34 38 81 02 D0 */ addi r4, r1, 0x2d0
/* 80040FD8 0003DF38 38 A1 02 A0 */ addi r5, r1, 0x2a0
/* 80040FDC 0003DF3C 48 2D 19 75 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80040FE0 0003DF40 38 7C 04 A8 */ addi r3, r28, 0x4a8
/* 80040FE4 0003DF44 38 81 03 00 */ addi r4, r1, 0x300
/* 80040FE8 0003DF48 48 2D 1B 59 */ bl __as__12CTransform4fFRC12CTransform4f
/* 80040FEC 0003DF4C 80 7C 07 40 */ lwz r3, 0x740(r28)
/* 80040FF0 0003DF50 88 63 03 B2 */ lbz r3, 0x3b2(r3)
/* 80040FF4 0003DF54 54 60 CF FF */ rlwinm. r0, r3, 0x19, 0x1f, 0x1f
/* 80040FF8 0003DF58 41 82 00 1C */ beq lbl_80041014
/* 80040FFC 0003DF5C 54 60 EF FF */ rlwinm. r0, r3, 0x1d, 0x1f, 0x1f
/* 80041000 0003DF60 40 82 00 14 */ bne lbl_80041014
/* 80041004 0003DF64 7F 83 E3 78 */ mr r3, r28
/* 80041008 0003DF68 7F 24 CB 78 */ mr r4, r25
/* 8004100C 0003DF6C 7F A5 EB 78 */ mr r5, r29
/* 80041010 0003DF70 4B FF AC BD */ bl UpdateLeftArmTransform__10CPlayerGunFRC10CModelDataRC13CStateManager
lbl_80041014:
/* 80041014 0003DF74 80 1C 02 F0 */ lwz r0, 0x2f0(r28)
/* 80041018 0003DF78 38 7C 06 A0 */ addi r3, r28, 0x6a0
/* 8004101C 0003DF7C 38 80 00 00 */ li r4, 0
/* 80041020 0003DF80 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80041024 0003DF84 41 82 00 2C */ beq lbl_80041050
/* 80041028 0003DF88 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 8004102C 0003DF8C 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 80041030 0003DF90 41 82 00 20 */ beq lbl_80041050
/* 80041034 0003DF94 80 1C 03 2C */ lwz r0, 0x32c(r28)
/* 80041038 0003DF98 2C 00 00 02 */ cmpwi r0, 2
/* 8004103C 0003DF9C 40 80 00 14 */ bge lbl_80041050
/* 80041040 0003DFA0 88 1B 03 DC */ lbz r0, 0x3dc(r27)
/* 80041044 0003DFA4 28 00 00 00 */ cmplwi r0, 0
/* 80041048 0003DFA8 40 82 00 08 */ bne lbl_80041050
/* 8004104C 0003DFAC 38 80 00 01 */ li r4, 1
lbl_80041050:
/* 80041050 0003DFB0 FC 20 E0 90 */ fmr f1, f28
/* 80041054 0003DFB4 7F A6 EB 78 */ mr r6, r29
/* 80041058 0003DFB8 38 BC 04 A8 */ addi r5, r28, 0x4a8
/* 8004105C 0003DFBC 4B FF BD 6D */ bl Update__Q210CPlayerGun12CMotionStateFbfR12CTransform4fR13CStateManager
/* 80041060 0003DFC0 38 61 02 70 */ addi r3, r1, 0x270
/* 80041064 0003DFC4 38 9C 04 A8 */ addi r4, r28, 0x4a8
/* 80041068 0003DFC8 48 2D 1B 0D */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8004106C 0003DFCC FC 20 E0 90 */ fmr f1, f28
/* 80041070 0003DFD0 7F 23 CB 78 */ mr r3, r25
/* 80041074 0003DFD4 7F A5 EB 78 */ mr r5, r29
/* 80041078 0003DFD8 38 81 02 70 */ addi r4, r1, 0x270
/* 8004107C 0003DFDC 48 0D 45 11 */ bl AdvanceParticles__10CModelDataFRC12CTransform4ffR13CStateManager
/* 80041080 0003DFE0 C0 3C 03 80 */ lfs f1, 0x380(r28)
/* 80041084 0003DFE4 38 80 00 00 */ li r4, 0
/* 80041088 0003DFE8 C0 02 84 80 */ lfs f0, lbl_805AA1A0@sda21(r2)
/* 8004108C 0003DFEC 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80041090 0003DFF0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80041094 0003DFF4 40 81 00 18 */ ble lbl_800410AC
/* 80041098 0003DFF8 C0 3C 03 78 */ lfs f1, 0x378(r28)
/* 8004109C 0003DFFC C0 02 84 F8 */ lfs f0, lbl_805AA218@sda21(r2)
/* 800410A0 0003E000 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800410A4 0003E004 40 81 00 08 */ ble lbl_800410AC
/* 800410A8 0003E008 38 80 00 01 */ li r4, 1
lbl_800410AC:
/* 800410AC 0003E00C 81 83 00 00 */ lwz r12, 0(r3)
/* 800410B0 0003E010 FC 20 E8 90 */ fmr f1, f29
/* 800410B4 0003E014 7F A5 EB 78 */ mr r5, r29
/* 800410B8 0003E018 38 DC 05 08 */ addi r6, r28, 0x508
/* 800410BC 0003E01C 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 800410C0 0003E020 7D 89 03 A6 */ mtctr r12
/* 800410C4 0003E024 4E 80 04 21 */ bctrl
/* 800410C8 0003E028 38 61 02 10 */ addi r3, r1, 0x210
/* 800410CC 0003E02C 38 9C 04 A8 */ addi r4, r28, 0x4a8
/* 800410D0 0003E030 48 2D 1A A5 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 800410D4 0003E034 38 61 02 40 */ addi r3, r1, 0x240
/* 800410D8 0003E038 38 81 02 10 */ addi r4, r1, 0x210
/* 800410DC 0003E03C 38 BC 04 18 */ addi r5, r28, 0x418
/* 800410E0 0003E040 48 2D 18 71 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 800410E4 0003E044 38 61 03 90 */ addi r3, r1, 0x390
/* 800410E8 0003E048 38 81 02 40 */ addi r4, r1, 0x240
/* 800410EC 0003E04C 48 2D 1A 89 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 800410F0 0003E050 80 1B 02 F8 */ lwz r0, 0x2f8(r27)
/* 800410F4 0003E054 2C 00 00 00 */ cmpwi r0, 0
/* 800410F8 0003E058 40 82 02 70 */ bne lbl_80041368
/* 800410FC 0003E05C 80 7D 08 70 */ lwz r3, 0x870(r29)
/* 80041100 0003E060 4B FC 98 01 */ bl IsInCinematicCamera__14CCameraManagerCFv
/* 80041104 0003E064 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80041108 0003E068 40 82 02 60 */ bne lbl_80041368
/* 8004110C 0003E06C 38 00 00 00 */ li r0, 0
/* 80041110 0003E070 38 61 01 E0 */ addi r3, r1, 0x1e0
/* 80041114 0003E074 90 01 03 C0 */ stw r0, 0x3c0(r1)
/* 80041118 0003E078 38 9C 04 A8 */ addi r4, r28, 0x4a8
/* 8004111C 0003E07C 48 2D 1A 59 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80041120 0003E080 80 9C 07 2C */ lwz r4, 0x72c(r28)
/* 80041124 0003E084 38 61 00 D0 */ addi r3, r1, 0xd0
/* 80041128 0003E088 48 17 A5 A1 */ bl GetBounds__10CGunWeaponCFv
/* 8004112C 0003E08C 38 61 00 E8 */ addi r3, r1, 0xe8
/* 80041130 0003E090 38 81 00 D0 */ addi r4, r1, 0xd0
/* 80041134 0003E094 38 A1 01 E0 */ addi r5, r1, 0x1e0
/* 80041138 0003E098 48 2F 67 C5 */ bl GetTransformedAABox__6CAABoxCFRC12CTransform4f
/* 8004113C 0003E09C 3C 80 80 46 */ lis r4, lbl_8045C518@ha
/* 80041140 0003E0A0 7F A3 EB 78 */ mr r3, r29
/* 80041144 0003E0A4 38 C4 C5 18 */ addi r6, r4, lbl_8045C518@l
/* 80041148 0003E0A8 7F 67 DB 78 */ mr r7, r27
/* 8004114C 0003E0AC 38 81 03 C0 */ addi r4, r1, 0x3c0
/* 80041150 0003E0B0 38 A1 00 E8 */ addi r5, r1, 0xe8
/* 80041154 0003E0B4 48 00 B5 CD */ bl "BuildNearList__13CStateManagerCFRQ24rstl32reserved_vector<9TUniqueId,1024>RC6CAABoxRC15CMaterialFilterPC6CActor"
/* 80041158 0003E0B8 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8004115C 0003E0BC 38 61 00 44 */ addi r3, r1, 0x44
/* 80041160 0003E0C0 38 81 00 38 */ addi r4, r1, 0x38
/* 80041164 0003E0C4 B0 01 00 0C */ sth r0, 0xc(r1)
/* 80041168 0003E0C8 C0 5C 04 CC */ lfs f2, 0x4cc(r28)
/* 8004116C 0003E0CC C0 3C 04 BC */ lfs f1, 0x4bc(r28)
/* 80041170 0003E0D0 C0 1C 04 AC */ lfs f0, 0x4ac(r28)
/* 80041174 0003E0D4 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 80041178 0003E0D8 D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 8004117C 0003E0DC D0 41 00 40 */ stfs f2, 0x40(r1)
/* 80041180 0003E0E0 48 2D 36 D1 */ bl AsNormalized__9CVector3fCFv
/* 80041184 0003E0E4 C0 A1 00 44 */ lfs f5, 0x44(r1)
/* 80041188 0003E0E8 38 60 00 00 */ li r3, 0
/* 8004118C 0003E0EC C0 81 00 48 */ lfs f4, 0x48(r1)
/* 80041190 0003E0F0 38 80 00 01 */ li r4, 1
/* 80041194 0003E0F4 C0 02 84 FC */ lfs f0, lbl_805AA21C@sda21(r2)
/* 80041198 0003E0F8 C0 61 00 4C */ lfs f3, 0x4c(r1)
/* 8004119C 0003E0FC EC 20 01 32 */ fmuls f1, f0, f4
/* 800411A0 0003E100 D0 A1 00 A8 */ stfs f5, 0xa8(r1)
/* 800411A4 0003E104 EC 40 00 F2 */ fmuls f2, f0, f3
/* 800411A8 0003E108 80 AD 82 58 */ lwz r5, lbl_805A6E18@sda21(r13)
/* 800411AC 0003E10C EC 00 01 72 */ fmuls f0, f0, f5
/* 800411B0 0003E110 D0 81 00 AC */ stfs f4, 0xac(r1)
/* 800411B4 0003E114 D0 61 00 B0 */ stfs f3, 0xb0(r1)
/* 800411B8 0003E118 FF A0 10 50 */ fneg f29, f2
/* 800411BC 0003E11C FF C0 08 50 */ fneg f30, f1
/* 800411C0 0003E120 FF E0 00 50 */ fneg f31, f0
/* 800411C4 0003E124 C0 5C 04 C4 */ lfs f2, 0x4c4(r28)
/* 800411C8 0003E128 C0 3C 04 D4 */ lfs f1, 0x4d4(r28)
/* 800411CC 0003E12C C0 1C 04 B4 */ lfs f0, 0x4b4(r28)
/* 800411D0 0003E130 EC 42 F0 2A */ fadds f2, f2, f30
/* 800411D4 0003E134 EC 21 E8 2A */ fadds f1, f1, f29
/* 800411D8 0003E138 EC 00 F8 2A */ fadds f0, f0, f31
/* 800411DC 0003E13C D0 41 00 A0 */ stfs f2, 0xa0(r1)
/* 800411E0 0003E140 D0 01 00 9C */ stfs f0, 0x9c(r1)
/* 800411E4 0003E144 D0 21 00 A4 */ stfs f1, 0xa4(r1)
/* 800411E8 0003E148 48 34 8D 0D */ bl __shl2i
/* 800411EC 0003E14C 80 AD 82 54 */ lwz r5, lbl_805A6E14@sda21(r13)
/* 800411F0 0003E150 7C 99 23 78 */ mr r25, r4
/* 800411F4 0003E154 7C 78 1B 78 */ mr r24, r3
/* 800411F8 0003E158 38 60 00 00 */ li r3, 0
/* 800411FC 0003E15C 38 80 00 01 */ li r4, 1
/* 80041200 0003E160 48 34 8C F5 */ bl __shl2i
/* 80041204 0003E164 38 00 00 03 */ li r0, 3
/* 80041208 0003E168 90 81 00 BC */ stw r4, 0xbc(r1)
/* 8004120C 0003E16C C0 22 85 00 */ lfs f1, lbl_805AA220@sda21(r2)
/* 80041210 0003E170 7F A4 EB 78 */ mr r4, r29
/* 80041214 0003E174 90 61 00 B8 */ stw r3, 0xb8(r1)
/* 80041218 0003E178 38 61 01 B0 */ addi r3, r1, 0x1b0
/* 8004121C 0003E17C 38 A1 00 0C */ addi r5, r1, 0xc
/* 80041220 0003E180 38 C1 00 9C */ addi r6, r1, 0x9c
/* 80041224 0003E184 93 21 00 C4 */ stw r25, 0xc4(r1)
/* 80041228 0003E188 38 E1 00 A8 */ addi r7, r1, 0xa8
/* 8004122C 0003E18C 39 01 00 B8 */ addi r8, r1, 0xb8
/* 80041230 0003E190 39 21 03 C0 */ addi r9, r1, 0x3c0
/* 80041234 0003E194 93 01 00 C0 */ stw r24, 0xc0(r1)
/* 80041238 0003E198 90 01 00 C8 */ stw r0, 0xc8(r1)
/* 8004123C 0003E19C 48 00 BD 89 */ bl "RayWorldIntersection__13CStateManagerCFR9TUniqueIdRC9CVector3fRC9CVector3ffRC15CMaterialFilterRCQ24rstl32reserved_vector<9TUniqueId,1024>"
/* 80041240 0003E1A0 88 A1 01 D0 */ lbz r5, 0x1d0(r1)
/* 80041244 0003E1A4 C0 E1 01 B0 */ lfs f7, 0x1b0(r1)
/* 80041248 0003E1A8 C0 C1 01 B4 */ lfs f6, 0x1b4(r1)
/* 8004124C 0003E1AC 28 05 00 00 */ cmplwi r5, 0
/* 80041250 0003E1B0 C0 A1 01 B8 */ lfs f5, 0x1b8(r1)
/* 80041254 0003E1B4 C0 81 01 BC */ lfs f4, 0x1bc(r1)
/* 80041258 0003E1B8 C0 61 01 C0 */ lfs f3, 0x1c0(r1)
/* 8004125C 0003E1BC C0 41 01 C4 */ lfs f2, 0x1c4(r1)
/* 80041260 0003E1C0 C0 21 01 C8 */ lfs f1, 0x1c8(r1)
/* 80041264 0003E1C4 C0 01 01 CC */ lfs f0, 0x1cc(r1)
/* 80041268 0003E1C8 80 61 01 D8 */ lwz r3, 0x1d8(r1)
/* 8004126C 0003E1CC 80 81 01 DC */ lwz r4, 0x1dc(r1)
/* 80041270 0003E1D0 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 80041274 0003E1D4 50 A0 17 7A */ rlwimi r0, r5, 2, 0x1d, 0x1d
/* 80041278 0003E1D8 D0 E1 03 60 */ stfs f7, 0x360(r1)
/* 8004127C 0003E1DC D0 C1 03 64 */ stfs f6, 0x364(r1)
/* 80041280 0003E1E0 D0 A1 03 68 */ stfs f5, 0x368(r1)
/* 80041284 0003E1E4 D0 81 03 6C */ stfs f4, 0x36c(r1)
/* 80041288 0003E1E8 D0 61 03 70 */ stfs f3, 0x370(r1)
/* 8004128C 0003E1EC D0 41 03 74 */ stfs f2, 0x374(r1)
/* 80041290 0003E1F0 D0 21 03 78 */ stfs f1, 0x378(r1)
/* 80041294 0003E1F4 D0 01 03 7C */ stfs f0, 0x37c(r1)
/* 80041298 0003E1F8 98 A1 03 80 */ stb r5, 0x380(r1)
/* 8004129C 0003E1FC 90 81 03 8C */ stw r4, 0x38c(r1)
/* 800412A0 0003E200 90 61 03 88 */ stw r3, 0x388(r1)
/* 800412A4 0003E204 98 1C 08 33 */ stb r0, 0x833(r28)
/* 800412A8 0003E208 41 82 00 68 */ beq lbl_80041310
/* 800412AC 0003E20C 38 61 01 4C */ addi r3, r1, 0x14c
/* 800412B0 0003E210 38 9C 04 A8 */ addi r4, r28, 0x4a8
/* 800412B4 0003E214 48 2D 18 C1 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 800412B8 0003E218 38 61 01 7C */ addi r3, r1, 0x17c
/* 800412BC 0003E21C 38 81 01 4C */ addi r4, r1, 0x14c
/* 800412C0 0003E220 38 BC 05 08 */ addi r5, r28, 0x508
/* 800412C4 0003E224 48 2D 16 8D */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 800412C8 0003E228 38 7C 04 48 */ addi r3, r28, 0x448
/* 800412CC 0003E22C 38 81 01 7C */ addi r4, r1, 0x17c
/* 800412D0 0003E230 48 2D 18 71 */ bl __as__12CTransform4fFRC12CTransform4f
/* 800412D4 0003E234 C0 1C 04 54 */ lfs f0, 0x454(r28)
/* 800412D8 0003E238 C0 41 03 64 */ lfs f2, 0x364(r1)
/* 800412DC 0003E23C EC 60 F8 2A */ fadds f3, f0, f31
/* 800412E0 0003E240 C0 21 03 68 */ lfs f1, 0x368(r1)
/* 800412E4 0003E244 C0 01 03 6C */ lfs f0, 0x36c(r1)
/* 800412E8 0003E248 D0 7C 04 54 */ stfs f3, 0x454(r28)
/* 800412EC 0003E24C C0 7C 04 64 */ lfs f3, 0x464(r28)
/* 800412F0 0003E250 EC 63 F0 2A */ fadds f3, f3, f30
/* 800412F4 0003E254 D0 7C 04 64 */ stfs f3, 0x464(r28)
/* 800412F8 0003E258 C0 7C 04 74 */ lfs f3, 0x474(r28)
/* 800412FC 0003E25C EC 63 E8 2A */ fadds f3, f3, f29
/* 80041300 0003E260 D0 7C 04 74 */ stfs f3, 0x474(r28)
/* 80041304 0003E264 D0 41 03 9C */ stfs f2, 0x39c(r1)
/* 80041308 0003E268 D0 21 03 AC */ stfs f1, 0x3ac(r1)
/* 8004130C 0003E26C D0 01 03 BC */ stfs f0, 0x3bc(r1)
lbl_80041310:
/* 80041310 0003E270 80 A1 03 C0 */ lwz r5, 0x3c0(r1)
/* 80041314 0003E274 38 60 00 00 */ li r3, 0
/* 80041318 0003E278 2C 05 00 00 */ cmpwi r5, 0
/* 8004131C 0003E27C 40 81 00 40 */ ble lbl_8004135C
/* 80041320 0003E280 2C 05 00 08 */ cmpwi r5, 8
/* 80041324 0003E284 38 85 FF F8 */ addi r4, r5, -8
/* 80041328 0003E288 40 81 00 20 */ ble lbl_80041348
/* 8004132C 0003E28C 38 04 00 07 */ addi r0, r4, 7
/* 80041330 0003E290 54 00 E8 FE */ srwi r0, r0, 3
/* 80041334 0003E294 7C 09 03 A6 */ mtctr r0
/* 80041338 0003E298 2C 04 00 00 */ cmpwi r4, 0
/* 8004133C 0003E29C 40 81 00 0C */ ble lbl_80041348
lbl_80041340:
/* 80041340 0003E2A0 38 63 00 08 */ addi r3, r3, 8
/* 80041344 0003E2A4 42 00 FF FC */ bdnz lbl_80041340
lbl_80041348:
/* 80041348 0003E2A8 7C 03 28 50 */ subf r0, r3, r5
/* 8004134C 0003E2AC 7C 09 03 A6 */ mtctr r0
/* 80041350 0003E2B0 7C 03 28 00 */ cmpw r3, r5
/* 80041354 0003E2B4 40 80 00 08 */ bge lbl_8004135C
lbl_80041358:
/* 80041358 0003E2B8 42 00 00 00 */ bdnz lbl_80041358
lbl_8004135C:
/* 8004135C 0003E2BC 38 00 00 00 */ li r0, 0
/* 80041360 0003E2C0 90 01 03 C0 */ stw r0, 0x3c0(r1)
/* 80041364 0003E2C4 48 00 00 14 */ b lbl_80041378
lbl_80041368:
/* 80041368 0003E2C8 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8004136C 0003E2CC 38 60 00 00 */ li r3, 0
/* 80041370 0003E2D0 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 80041374 0003E2D4 98 1C 08 33 */ stb r0, 0x833(r28)
lbl_80041378:
/* 80041378 0003E2D8 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8004137C 0003E2DC 38 61 03 30 */ addi r3, r1, 0x330
/* 80041380 0003E2E0 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 80041384 0003E2E4 41 82 00 0C */ beq lbl_80041390
/* 80041388 0003E2E8 38 9C 04 48 */ addi r4, r28, 0x448
/* 8004138C 0003E2EC 48 00 00 08 */ b lbl_80041394
lbl_80041390:
/* 80041390 0003E2F0 38 81 03 90 */ addi r4, r1, 0x390
lbl_80041394:
/* 80041394 0003E2F4 48 2D 17 E1 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80041398 0003E2F8 80 9D 08 70 */ lwz r4, 0x870(r29)
/* 8004139C 0003E2FC 7F A5 EB 78 */ mr r5, r29
/* 800413A0 0003E300 38 61 00 2C */ addi r3, r1, 0x2c
/* 800413A4 0003E304 4B FC 95 71 */ bl GetGlobalCameraTranslation__14CCameraManagerCFRC13CStateManager
/* 800413A8 0003E308 C0 61 00 30 */ lfs f3, 0x30(r1)
/* 800413AC 0003E30C C0 21 03 AC */ lfs f1, 0x3ac(r1)
/* 800413B0 0003E310 C0 01 03 4C */ lfs f0, 0x34c(r1)
/* 800413B4 0003E314 EC 81 18 2A */ fadds f4, f1, f3
/* 800413B8 0003E318 C0 A1 00 34 */ lfs f5, 0x34(r1)
/* 800413BC 0003E31C EC 20 18 2A */ fadds f1, f0, f3
/* 800413C0 0003E320 C0 41 03 BC */ lfs f2, 0x3bc(r1)
/* 800413C4 0003E324 C0 01 03 5C */ lfs f0, 0x35c(r1)
/* 800413C8 0003E328 EC 62 28 2A */ fadds f3, f2, f5
/* 800413CC 0003E32C EC 00 28 2A */ fadds f0, f0, f5
/* 800413D0 0003E330 C0 A1 03 9C */ lfs f5, 0x39c(r1)
/* 800413D4 0003E334 C0 C1 00 2C */ lfs f6, 0x2c(r1)
/* 800413D8 0003E338 C0 41 03 3C */ lfs f2, 0x33c(r1)
/* 800413DC 0003E33C EC A5 30 2A */ fadds f5, f5, f6
/* 800413E0 0003E340 D0 81 03 AC */ stfs f4, 0x3ac(r1)
/* 800413E4 0003E344 EC 42 30 2A */ fadds f2, f2, f6
/* 800413E8 0003E348 D0 61 03 BC */ stfs f3, 0x3bc(r1)
/* 800413EC 0003E34C D0 A1 03 9C */ stfs f5, 0x39c(r1)
/* 800413F0 0003E350 D0 41 03 3C */ stfs f2, 0x33c(r1)
/* 800413F4 0003E354 D0 21 03 4C */ stfs f1, 0x34c(r1)
/* 800413F8 0003E358 D0 01 03 5C */ stfs f0, 0x35c(r1)
/* 800413FC 0003E35C 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 80041400 0003E360 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 80041404 0003E364 41 82 01 30 */ beq lbl_80041534
/* 80041408 0003E368 88 1C 08 33 */ lbz r0, 0x833(r28)
/* 8004140C 0003E36C 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
/* 80041410 0003E370 41 82 00 1C */ beq lbl_8004142C
/* 80041414 0003E374 C0 3C 03 44 */ lfs f1, 0x344(r28)
/* 80041418 0003E378 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8004141C 0003E37C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80041420 0003E380 7C 00 00 26 */ mfcr r0
/* 80041424 0003E384 54 19 0F FE */ srwi r25, r0, 0x1f
/* 80041428 0003E388 48 00 00 08 */ b lbl_80041430
lbl_8004142C:
/* 8004142C 0003E38C 3B 20 00 00 */ li r25, 0
lbl_80041430:
/* 80041430 0003E390 57 20 06 3F */ clrlwi. r0, r25, 0x18
/* 80041434 0003E394 38 60 00 00 */ li r3, 0
/* 80041438 0003E398 41 82 00 14 */ beq lbl_8004144C
/* 8004143C 0003E39C 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 80041440 0003E3A0 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 80041444 0003E3A4 41 82 00 08 */ beq lbl_8004144C
/* 80041448 0003E3A8 38 60 00 01 */ li r3, 1
lbl_8004144C:
/* 8004144C 0003E3AC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80041450 0003E3B0 41 82 00 1C */ beq lbl_8004146C
/* 80041454 0003E3B4 C0 22 84 7C */ lfs f1, lbl_805AA19C@sda21(r2)
/* 80041458 0003E3B8 C0 1C 03 44 */ lfs f0, 0x344(r28)
/* 8004145C 0003E3BC C0 42 84 80 */ lfs f2, lbl_805AA1A0@sda21(r2)
/* 80041460 0003E3C0 EC 01 00 28 */ fsubs f0, f1, f0
/* 80041464 0003E3C4 EC 02 00 32 */ fmuls f0, f2, f0
/* 80041468 0003E3C8 48 00 00 08 */ b lbl_80041470
lbl_8004146C:
/* 8004146C 0003E3CC C0 02 84 80 */ lfs f0, lbl_805AA1A0@sda21(r2)
lbl_80041470:
/* 80041470 0003E3D0 D0 01 00 90 */ stfs f0, 0x90(r1)
/* 80041474 0003E3D4 FC 20 E0 90 */ fmr f1, f28
/* 80041478 0003E3D8 7F 26 CB 78 */ mr r6, r25
/* 8004147C 0003E3DC 38 81 00 90 */ addi r4, r1, 0x90
/* 80041480 0003E3E0 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 80041484 0003E3E4 38 A1 00 20 */ addi r5, r1, 0x20
/* 80041488 0003E3E8 D0 01 00 98 */ stfs f0, 0x98(r1)
/* 8004148C 0003E3EC C0 7C 04 44 */ lfs f3, 0x444(r28)
/* 80041490 0003E3F0 C0 5C 04 34 */ lfs f2, 0x434(r28)
/* 80041494 0003E3F4 C0 1C 04 24 */ lfs f0, 0x424(r28)
/* 80041498 0003E3F8 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8004149C 0003E3FC D0 41 00 24 */ stfs f2, 0x24(r1)
/* 800414A0 0003E400 D0 61 00 28 */ stfs f3, 0x28(r1)
/* 800414A4 0003E404 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 800414A8 0003E408 48 17 AD 4D */ bl UpdateMuzzleFx__10CGunWeaponFfRC9CVector3fRC9CVector3fb
/* 800414AC 0003E40C 80 1C 03 20 */ lwz r0, 0x320(r28)
/* 800414B0 0003E410 3B 5C 08 04 */ addi r26, r28, 0x804
/* 800414B4 0003E414 38 9C 04 18 */ addi r4, r28, 0x418
/* 800414B8 0003E418 54 00 18 38 */ slwi r0, r0, 3
/* 800414BC 0003E41C 7C 7A 02 14 */ add r3, r26, r0
/* 800414C0 0003E420 80 63 00 04 */ lwz r3, 4(r3)
/* 800414C4 0003E424 48 2D D6 C1 */ bl SetGlobalOrientAndTrans__11CElementGenFRC12CTransform4f
/* 800414C8 0003E428 80 1C 03 20 */ lwz r0, 0x320(r28)
/* 800414CC 0003E42C 38 81 00 90 */ addi r4, r1, 0x90
/* 800414D0 0003E430 54 03 18 38 */ slwi r3, r0, 3
/* 800414D4 0003E434 38 03 00 04 */ addi r0, r3, 4
/* 800414D8 0003E438 7C 7A 00 2E */ lwzx r3, r26, r0
/* 800414DC 0003E43C 81 83 00 00 */ lwz r12, 0(r3)
/* 800414E0 0003E440 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 800414E4 0003E444 7D 89 03 A6 */ mtctr r12
/* 800414E8 0003E448 4E 80 04 21 */ bctrl
/* 800414EC 0003E44C 80 1C 03 20 */ lwz r0, 0x320(r28)
/* 800414F0 0003E450 7F 24 CB 78 */ mr r4, r25
/* 800414F4 0003E454 54 03 18 38 */ slwi r3, r0, 3
/* 800414F8 0003E458 38 03 00 04 */ addi r0, r3, 4
/* 800414FC 0003E45C 7C 7A 00 2E */ lwzx r3, r26, r0
/* 80041500 0003E460 81 83 00 00 */ lwz r12, 0(r3)
/* 80041504 0003E464 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 80041508 0003E468 7D 89 03 A6 */ mtctr r12
/* 8004150C 0003E46C 4E 80 04 21 */ bctrl
/* 80041510 0003E470 80 1C 03 20 */ lwz r0, 0x320(r28)
/* 80041514 0003E474 FC 20 E0 90 */ fmr f1, f28
/* 80041518 0003E478 54 03 18 38 */ slwi r3, r0, 3
/* 8004151C 0003E47C 38 03 00 04 */ addi r0, r3, 4
/* 80041520 0003E480 7C 7A 00 2E */ lwzx r3, r26, r0
/* 80041524 0003E484 81 83 00 00 */ lwz r12, 0(r3)
/* 80041528 0003E488 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8004152C 0003E48C 7D 89 03 A6 */ mtctr r12
/* 80041530 0003E490 4E 80 04 21 */ bctrl
lbl_80041534:
/* 80041534 0003E494 80 7C 07 48 */ lwz r3, 0x748(r28)
/* 80041538 0003E498 28 03 00 00 */ cmplwi r3, 0
/* 8004153C 0003E49C 41 82 00 10 */ beq lbl_8004154C
/* 80041540 0003E4A0 FC 20 E0 90 */ fmr f1, f28
/* 80041544 0003E4A4 7F A4 EB 78 */ mr r4, r29
/* 80041548 0003E4A8 48 22 8E A5 */ bl Update__20CRainSplashGeneratorFfR13CStateManager
lbl_8004154C:
/* 8004154C 0003E4AC 7F 83 E3 78 */ mr r3, r28
/* 80041550 0003E4B0 7F A5 EB 78 */ mr r5, r29
/* 80041554 0003E4B4 38 81 03 90 */ addi r4, r1, 0x390
/* 80041558 0003E4B8 4B FF A0 BD */ bl UpdateGunLight__10CPlayerGunFRC12CTransform4fR13CStateManager
/* 8004155C 0003E4BC FC 20 E0 90 */ fmr f1, f28
/* 80041560 0003E4C0 7F 83 E3 78 */ mr r3, r28
/* 80041564 0003E4C4 7F A4 EB 78 */ mr r4, r29
/* 80041568 0003E4C8 4B FF 99 29 */ bl ProcessGunMorph__10CPlayerGunFfR13CStateManager
/* 8004156C 0003E4CC 88 1C 08 35 */ lbz r0, 0x835(r28)
/* 80041570 0003E4D0 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 80041574 0003E4D4 41 82 00 14 */ beq lbl_80041588
/* 80041578 0003E4D8 FC 20 E0 90 */ fmr f1, f28
/* 8004157C 0003E4DC 7F 83 E3 78 */ mr r3, r28
/* 80041580 0003E4E0 7F A4 EB 78 */ mr r4, r29
/* 80041584 0003E4E4 4B FF 9C 4D */ bl ProcessPhazonGunMorph__10CPlayerGunFfR13CStateManager
lbl_80041588:
/* 80041588 0003E4E8 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 8004158C 0003E4EC 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 80041590 0003E4F0 41 82 00 8C */ beq lbl_8004161C
/* 80041594 0003E4F4 80 7C 07 80 */ lwz r3, 0x780(r28)
/* 80041598 0003E4F8 28 03 00 00 */ cmplwi r3, 0
/* 8004159C 0003E4FC 41 82 00 80 */ beq lbl_8004161C
/* 800415A0 0003E500 C0 5C 04 44 */ lfs f2, 0x444(r28)
/* 800415A4 0003E504 38 81 00 14 */ addi r4, r1, 0x14
/* 800415A8 0003E508 C0 3C 04 34 */ lfs f1, 0x434(r28)
/* 800415AC 0003E50C C0 1C 04 24 */ lfs f0, 0x424(r28)
/* 800415B0 0003E510 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 800415B4 0003E514 D0 21 00 18 */ stfs f1, 0x18(r1)
/* 800415B8 0003E518 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 800415BC 0003E51C 81 83 00 00 */ lwz r12, 0(r3)
/* 800415C0 0003E520 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 800415C4 0003E524 7D 89 03 A6 */ mtctr r12
/* 800415C8 0003E528 4E 80 04 21 */ bctrl
/* 800415CC 0003E52C 83 1C 07 80 */ lwz r24, 0x780(r28)
/* 800415D0 0003E530 38 61 01 1C */ addi r3, r1, 0x11c
/* 800415D4 0003E534 38 9C 04 18 */ addi r4, r28, 0x418
/* 800415D8 0003E538 48 2D 16 69 */ bl GetRotation__12CTransform4fCFv
/* 800415DC 0003E53C 7F 03 C3 78 */ mr r3, r24
/* 800415E0 0003E540 38 81 01 1C */ addi r4, r1, 0x11c
/* 800415E4 0003E544 81 98 00 00 */ lwz r12, 0(r24)
/* 800415E8 0003E548 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 800415EC 0003E54C 7D 89 03 A6 */ mtctr r12
/* 800415F0 0003E550 4E 80 04 21 */ bctrl
/* 800415F4 0003E554 80 7C 07 80 */ lwz r3, 0x780(r28)
/* 800415F8 0003E558 FC 20 E0 90 */ fmr f1, f28
/* 800415FC 0003E55C 81 83 00 00 */ lwz r12, 0(r3)
/* 80041600 0003E560 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 80041604 0003E564 7D 89 03 A6 */ mtctr r12
/* 80041608 0003E568 4E 80 04 21 */ bctrl
/* 8004160C 0003E56C C0 22 85 04 */ lfs f1, lbl_805AA224@sda21(r2)
/* 80041610 0003E570 C0 1C 03 44 */ lfs f0, 0x344(r28)
/* 80041614 0003E574 EC 01 07 3A */ fmadds f0, f1, f28, f0
/* 80041618 0003E578 D0 1C 03 44 */ stfs f0, 0x344(r28)
lbl_8004161C:
/* 8004161C 0003E57C C0 1C 03 5C */ lfs f0, 0x35c(r28)
/* 80041620 0003E580 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 80041624 0003E584 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 80041628 0003E588 40 81 00 24 */ ble lbl_8004164C
/* 8004162C 0003E58C EC 00 E0 28 */ fsubs f0, f0, f28
/* 80041630 0003E590 D0 1C 03 5C */ stfs f0, 0x35c(r28)
/* 80041634 0003E594 C0 1C 03 5C */ lfs f0, 0x35c(r28)
/* 80041638 0003E598 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8004163C 0003E59C 4C 40 13 82 */ cror 2, 0, 2
/* 80041640 0003E5A0 40 82 00 0C */ bne lbl_8004164C
/* 80041644 0003E5A4 38 00 00 03 */ li r0, 3
/* 80041648 0003E5A8 90 1C 03 08 */ stw r0, 0x308(r28)
lbl_8004164C:
/* 8004164C 0003E5AC 7F E3 FB 78 */ mr r3, r31
/* 80041650 0003E5B0 38 80 00 0A */ li r4, 0xa
/* 80041654 0003E5B4 48 05 03 39 */ bl ItemEnabled__12CPlayerStateCFQ212CPlayerState9EItemType
/* 80041658 0003E5B8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8004165C 0003E5BC 41 82 00 24 */ beq lbl_80041680
/* 80041660 0003E5C0 80 1C 03 2C */ lwz r0, 0x32c(r28)
/* 80041664 0003E5C4 2C 00 00 00 */ cmpwi r0, 0
/* 80041668 0003E5C8 41 82 00 18 */ beq lbl_80041680
/* 8004166C 0003E5CC FC 20 E0 90 */ fmr f1, f28
/* 80041670 0003E5D0 7F 83 E3 78 */ mr r3, r28
/* 80041674 0003E5D4 7F A4 EB 78 */ mr r4, r29
/* 80041678 0003E5D8 4B FF DD C5 */ bl UpdateChargeState__10CPlayerGunFfR13CStateManager
/* 8004167C 0003E5DC 48 00 00 24 */ b lbl_800416A0
lbl_80041680:
/* 80041680 0003E5E0 C0 3C 03 40 */ lfs f1, 0x340(r28)
/* 80041684 0003E5E4 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 80041688 0003E5E8 EC 21 E0 28 */ fsubs f1, f1, f28
/* 8004168C 0003E5EC D0 3C 03 40 */ stfs f1, 0x340(r28)
/* 80041690 0003E5F0 C0 3C 03 40 */ lfs f1, 0x340(r28)
/* 80041694 0003E5F4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80041698 0003E5F8 40 80 00 08 */ bge lbl_800416A0
/* 8004169C 0003E5FC D0 1C 03 40 */ stfs f0, 0x340(r28)
lbl_800416A0:
/* 800416A0 0003E600 FC 20 E0 90 */ fmr f1, f28
/* 800416A4 0003E604 7F 83 E3 78 */ mr r3, r28
/* 800416A8 0003E608 7F A5 EB 78 */ mr r5, r29
/* 800416AC 0003E60C 38 81 03 30 */ addi r4, r1, 0x330
/* 800416B0 0003E610 4B FF A2 9D */ bl UpdateAuxWeapons__10CPlayerGunFfRC12CTransform4fR13CStateManager
/* 800416B4 0003E614 FC 20 E0 90 */ fmr f1, f28
/* 800416B8 0003E618 7F 83 E3 78 */ mr r3, r28
/* 800416BC 0003E61C 7F A4 EB 78 */ mr r4, r29
/* 800416C0 0003E620 4B FF AA 41 */ bl DoUserAnimEvents__10CPlayerGunFfR13CStateManager
/* 800416C4 0003E624 80 1B 03 04 */ lwz r0, 0x304(r27)
/* 800416C8 0003E628 2C 00 00 01 */ cmpwi r0, 1
/* 800416CC 0003E62C 40 82 00 70 */ bne lbl_8004173C
/* 800416D0 0003E630 7F 84 E3 78 */ mr r4, r28
/* 800416D4 0003E634 7F A5 EB 78 */ mr r5, r29
/* 800416D8 0003E638 38 61 00 08 */ addi r3, r1, 8
/* 800416DC 0003E63C 4B FF CB 21 */ bl GetTargetId__10CPlayerGunFR13CStateManager
/* 800416E0 0003E640 A0 61 00 08 */ lhz r3, 8(r1)
/* 800416E4 0003E644 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 800416E8 0003E648 7C 03 00 40 */ cmplw r3, r0
/* 800416EC 0003E64C 41 82 00 50 */ beq lbl_8004173C
/* 800416F0 0003E650 88 7C 08 32 */ lbz r3, 0x832(r28)
/* 800416F4 0003E654 54 60 F7 FF */ rlwinm. r0, r3, 0x1e, 0x1f, 0x1f
/* 800416F8 0003E658 40 82 00 4C */ bne lbl_80041744
/* 800416FC 0003E65C 54 60 DF FF */ rlwinm. r0, r3, 0x1b, 0x1f, 0x1f
/* 80041700 0003E660 40 82 00 44 */ bne lbl_80041744
/* 80041704 0003E664 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 80041708 0003E668 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 8004170C 0003E66C 2C 00 00 10 */ cmpwi r0, 0x10
/* 80041710 0003E670 41 82 00 34 */ beq lbl_80041744
/* 80041714 0003E674 38 00 00 01 */ li r0, 1
/* 80041718 0003E678 7F A4 EB 78 */ mr r4, r29
/* 8004171C 0003E67C 50 03 17 7A */ rlwimi r3, r0, 2, 0x1d, 0x1d
/* 80041720 0003E680 38 A0 00 01 */ li r5, 1
/* 80041724 0003E684 98 7C 08 32 */ stb r3, 0x832(r28)
/* 80041728 0003E688 38 00 00 02 */ li r0, 2
/* 8004172C 0003E68C 7F 83 E3 78 */ mr r3, r28
/* 80041730 0003E690 90 1C 06 C0 */ stw r0, 0x6c0(r28)
/* 80041734 0003E694 4B FF A5 05 */ bl ReturnArmAndGunToDefault__10CPlayerGunFR13CStateManagerb
/* 80041738 0003E698 48 00 00 0C */ b lbl_80041744
lbl_8004173C:
/* 8004173C 0003E69C 7F 83 E3 78 */ mr r3, r28
/* 80041740 0003E6A0 4B FF A1 AD */ bl CancelLockOn__10CPlayerGunFv
lbl_80041744:
/* 80041744 0003E6A4 FC 20 E0 90 */ fmr f1, f28
/* 80041748 0003E6A8 7F 83 E3 78 */ mr r3, r28
/* 8004174C 0003E6AC 7F E4 FB 78 */ mr r4, r31
/* 80041750 0003E6B0 7F A5 EB 78 */ mr r5, r29
/* 80041754 0003E6B4 4B FF C2 A9 */ bl UpdateWeaponFire__10CPlayerGunFfR12CPlayerStateR13CStateManager
/* 80041758 0003E6B8 C0 3C 03 64 */ lfs f1, 0x364(r28)
/* 8004175C 0003E6BC 7F 83 E3 78 */ mr r3, r28
/* 80041760 0003E6C0 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 80041764 0003E6C4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80041768 0003E6C8 7C 00 00 26 */ mfcr r0
/* 8004176C 0003E6CC FC 20 D8 90 */ fmr f1, f27
/* 80041770 0003E6D0 FC 40 E0 90 */ fmr f2, f28
/* 80041774 0003E6D4 7F A5 EB 78 */ mr r5, r29
/* 80041778 0003E6D8 54 04 17 FE */ rlwinm r4, r0, 2, 0x1f, 0x1f
/* 8004177C 0003E6DC 4B FF BA 8D */ bl UpdateGunIdle__10CPlayerGunFbffR13CStateManager
/* 80041780 0003E6E0 80 1C 02 EC */ lwz r0, 0x2ec(r28)
/* 80041784 0003E6E4 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80041788 0003E6E8 41 82 00 10 */ beq lbl_80041798
/* 8004178C 0003E6EC C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 80041790 0003E6F0 D0 1C 03 78 */ stfs f0, 0x378(r28)
/* 80041794 0003E6F4 48 00 00 3C */ b lbl_800417D0
lbl_80041798:
/* 80041798 0003E6F8 C0 3C 03 78 */ lfs f1, 0x378(r28)
/* 8004179C 0003E6FC C0 02 84 80 */ lfs f0, lbl_805AA1A0@sda21(r2)
/* 800417A0 0003E700 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800417A4 0003E704 40 80 00 2C */ bge lbl_800417D0
/* 800417A8 0003E708 EC 21 E0 2A */ fadds f1, f1, f28
/* 800417AC 0003E70C C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 800417B0 0003E710 D0 3C 03 78 */ stfs f1, 0x378(r28)
/* 800417B4 0003E714 C0 3C 03 78 */ lfs f1, 0x378(r28)
/* 800417B8 0003E718 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800417BC 0003E71C 40 81 00 14 */ ble lbl_800417D0
/* 800417C0 0003E720 38 00 00 00 */ li r0, 0
/* 800417C4 0003E724 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 800417C8 0003E728 90 1C 03 0C */ stw r0, 0x30c(r28)
/* 800417CC 0003E72C D0 1C 03 80 */ stfs f0, 0x380(r28)
lbl_800417D0:
/* 800417D0 0003E730 C0 3C 03 8C */ lfs f1, 0x38c(r28)
/* 800417D4 0003E734 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 800417D8 0003E738 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800417DC 0003E73C 40 81 00 0C */ ble lbl_800417E8
/* 800417E0 0003E740 EC 01 E0 28 */ fsubs f0, f1, f28
/* 800417E4 0003E744 D0 1C 03 8C */ stfs f0, 0x38c(r28)
lbl_800417E8:
/* 800417E8 0003E748 80 1C 03 0C */ lwz r0, 0x30c(r28)
/* 800417EC 0003E74C 2C 00 00 05 */ cmpwi r0, 5
/* 800417F0 0003E750 40 81 00 1C */ ble lbl_8004180C
/* 800417F4 0003E754 C0 3C 03 80 */ lfs f1, 0x380(r28)
/* 800417F8 0003E758 C0 02 84 80 */ lfs f0, lbl_805AA1A0@sda21(r2)
/* 800417FC 0003E75C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80041800 0003E760 40 80 00 0C */ bge lbl_8004180C
/* 80041804 0003E764 EC 01 E0 2A */ fadds f0, f1, f28
/* 80041808 0003E768 D0 1C 03 80 */ stfs f0, 0x380(r28)
lbl_8004180C:
/* 8004180C 0003E76C C0 3C 03 84 */ lfs f1, 0x384(r28)
/* 80041810 0003E770 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 80041814 0003E774 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80041818 0003E778 40 81 00 0C */ ble lbl_80041824
/* 8004181C 0003E77C EC 01 E0 28 */ fsubs f0, f1, f28
/* 80041820 0003E780 D0 1C 03 84 */ stfs f0, 0x384(r28)
lbl_80041824:
/* 80041824 0003E784 C0 3C 03 64 */ lfs f1, 0x364(r28)
/* 80041828 0003E788 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8004182C 0003E78C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80041830 0003E790 40 81 00 18 */ ble lbl_80041848
/* 80041834 0003E794 38 00 00 00 */ li r0, 0
/* 80041838 0003E798 90 1C 02 F4 */ stw r0, 0x2f4(r28)
/* 8004183C 0003E79C C0 1C 03 64 */ lfs f0, 0x364(r28)
/* 80041840 0003E7A0 EC 00 E0 28 */ fsubs f0, f0, f28
/* 80041844 0003E7A4 D0 1C 03 64 */ stfs f0, 0x364(r28)
lbl_80041848:
/* 80041848 0003E7A8 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8004184C 0003E7AC 41 82 00 3C */ beq lbl_80041888
/* 80041850 0003E7B0 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 80041854 0003E7B4 54 00 07 7A */ rlwinm r0, r0, 0, 0x1d, 0x1d
/* 80041858 0003E7B8 2C 00 00 04 */ cmpwi r0, 4
/* 8004185C 0003E7BC 40 82 00 2C */ bne lbl_80041888
/* 80041860 0003E7C0 C0 3C 03 A0 */ lfs f1, 0x3a0(r28)
/* 80041864 0003E7C4 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 80041868 0003E7C8 EC 21 E0 28 */ fsubs f1, f1, f28
/* 8004186C 0003E7CC D0 3C 03 A0 */ stfs f1, 0x3a0(r28)
/* 80041870 0003E7D0 C0 3C 03 A0 */ lfs f1, 0x3a0(r28)
/* 80041874 0003E7D4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80041878 0003E7D8 40 80 00 10 */ bge lbl_80041888
/* 8004187C 0003E7DC D0 1C 03 A0 */ stfs f0, 0x3a0(r28)
/* 80041880 0003E7E0 7F 83 E3 78 */ mr r3, r28
/* 80041884 0003E7E4 4B FF EC 15 */ bl ExitMissile__10CPlayerGunFv
lbl_80041888:
/* 80041888 0003E7E8 E3 E1 0C 38 */ psq_l f31, -968(r1), 0, qr0
/* 8004188C 0003E7EC CB E1 0C 30 */ lfd f31, 0xc30(r1)
/* 80041890 0003E7F0 E3 C1 0C 28 */ psq_l f30, -984(r1), 0, qr0
/* 80041894 0003E7F4 CB C1 0C 20 */ lfd f30, 0xc20(r1)
/* 80041898 0003E7F8 E3 A1 0C 18 */ psq_l f29, -1000(r1), 0, qr0
/* 8004189C 0003E7FC CB A1 0C 10 */ lfd f29, 0xc10(r1)
/* 800418A0 0003E800 E3 81 0C 08 */ psq_l f28, -1016(r1), 0, qr0
/* 800418A4 0003E804 CB 81 0C 00 */ lfd f28, 0xc00(r1)
/* 800418A8 0003E808 E3 61 0B F8 */ psq_l f27, -1032(r1), 0, qr0
/* 800418AC 0003E80C CB 61 0B F0 */ lfd f27, 0xbf0(r1)
/* 800418B0 0003E810 BA E1 0B CC */ lmw r23, 0xbcc(r1)
/* 800418B4 0003E814 80 01 0C 44 */ lwz r0, 0xc44(r1)
/* 800418B8 0003E818 7C 08 03 A6 */ mtlr r0
/* 800418BC 0003E81C 38 21 0C 40 */ addi r1, r1, 0xc40
/* 800418C0 0003E820 4E 80 00 20 */ blr
.global PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb
PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb:
/* 800418C4 0003E824 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800418C8 0003E828 7C 08 02 A6 */ mflr r0
/* 800418CC 0003E82C 90 01 00 24 */ stw r0, 0x24(r1)
/* 800418D0 0003E830 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800418D4 0003E834 7C 7F 1B 78 */ mr r31, r3
/* 800418D8 0003E838 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800418DC 0003E83C 7C 9E 23 78 */ mr r30, r4
/* 800418E0 0003E840 80 03 03 38 */ lwz r0, 0x338(r3)
/* 800418E4 0003E844 2C 00 00 05 */ cmpwi r0, 5
/* 800418E8 0003E848 41 82 00 18 */ beq lbl_80041900
/* 800418EC 0003E84C 80 7F 07 2C */ lwz r3, 0x72c(r31)
/* 800418F0 0003E850 81 83 00 00 */ lwz r12, 0(r3)
/* 800418F4 0003E854 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 800418F8 0003E858 7D 89 03 A6 */ mtctr r12
/* 800418FC 0003E85C 4E 80 04 21 */ bctrl
lbl_80041900:
/* 80041900 0003E860 2C 1E 00 07 */ cmpwi r30, 7
/* 80041904 0003E864 A0 62 C5 FC */ lhz r3, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
/* 80041908 0003E868 41 82 00 80 */ beq lbl_80041988
/* 8004190C 0003E86C 40 80 00 14 */ bge lbl_80041920
/* 80041910 0003E870 2C 1E 00 05 */ cmpwi r30, 5
/* 80041914 0003E874 41 82 00 1C */ beq lbl_80041930
/* 80041918 0003E878 40 80 00 54 */ bge lbl_8004196C
/* 8004191C 0003E87C 48 00 00 6C */ b lbl_80041988
lbl_80041920:
/* 80041920 0003E880 2C 1E 00 09 */ cmpwi r30, 9
/* 80041924 0003E884 41 82 00 34 */ beq lbl_80041958
/* 80041928 0003E888 40 80 00 60 */ bge lbl_80041988
/* 8004192C 0003E88C 48 00 00 24 */ b lbl_80041950
lbl_80041930:
/* 80041930 0003E890 80 1F 02 F8 */ lwz r0, 0x2f8(r31)
/* 80041934 0003E894 38 62 84 58 */ addi r3, r2, lbl_805AA178@sda21
/* 80041938 0003E898 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 8004193C 0003E89C 90 1F 02 F8 */ stw r0, 0x2f8(r31)
/* 80041940 0003E8A0 80 1F 03 10 */ lwz r0, 0x310(r31)
/* 80041944 0003E8A4 54 00 08 3C */ slwi r0, r0, 1
/* 80041948 0003E8A8 7C 63 02 2E */ lhzx r3, r3, r0
/* 8004194C 0003E8AC 48 00 00 3C */ b lbl_80041988
lbl_80041950:
/* 80041950 0003E8B0 38 60 06 E9 */ li r3, 0x6e9
/* 80041954 0003E8B4 48 00 00 34 */ b lbl_80041988
lbl_80041958:
/* 80041958 0003E8B8 80 1F 03 10 */ lwz r0, 0x310(r31)
/* 8004195C 0003E8BC 38 6D 82 38 */ addi r3, r13, mFromBeamSound@sda21
/* 80041960 0003E8C0 54 00 08 3C */ slwi r0, r0, 1
/* 80041964 0003E8C4 7C 63 02 2E */ lhzx r3, r3, r0
/* 80041968 0003E8C8 48 00 00 20 */ b lbl_80041988
lbl_8004196C:
/* 8004196C 0003E8CC 80 1F 02 F8 */ lwz r0, 0x2f8(r31)
/* 80041970 0003E8D0 38 62 84 50 */ addi r3, r2, lbl_805AA170@sda21
/* 80041974 0003E8D4 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80041978 0003E8D8 90 1F 02 F8 */ stw r0, 0x2f8(r31)
/* 8004197C 0003E8DC 80 1F 03 10 */ lwz r0, 0x310(r31)
/* 80041980 0003E8E0 54 00 08 3C */ slwi r0, r0, 1
/* 80041984 0003E8E4 7C 63 02 2E */ lhzx r3, r3, r0
lbl_80041988:
/* 80041988 0003E8E8 A0 02 C5 FC */ lhz r0, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
/* 8004198C 0003E8EC 54 64 04 3E */ clrlwi r4, r3, 0x10
/* 80041990 0003E8F0 7C 04 00 40 */ cmplw r4, r0
/* 80041994 0003E8F4 41 82 00 1C */ beq lbl_800419B0
/* 80041998 0003E8F8 88 1F 08 34 */ lbz r0, 0x834(r31)
/* 8004199C 0003E8FC 38 61 00 08 */ addi r3, r1, 8
/* 800419A0 0003E900 38 C0 00 00 */ li r6, 0
/* 800419A4 0003E904 38 E0 00 4A */ li r7, 0x4a
/* 800419A8 0003E908 54 05 E7 FE */ rlwinm r5, r0, 0x1c, 0x1f, 0x1f
/* 800419AC 0003E90C 48 24 91 4D */ bl play_sfx__12NWeaponTypesFUsbbs
lbl_800419B0:
/* 800419B0 0003E910 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800419B4 0003E914 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800419B8 0003E918 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800419BC 0003E91C 7C 08 03 A6 */ mtlr r0
/* 800419C0 0003E920 38 21 00 20 */ addi r1, r1, 0x20
/* 800419C4 0003E924 4E 80 00 20 */ blr
.global "GetLctrWithShake__10CPlayerGunFR12CTransform4fRC10CModelDataRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bb"
"GetLctrWithShake__10CPlayerGunFR12CTransform4fRC10CModelDataRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bb":
/* 800419C8 0003E928 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 800419CC 0003E92C 7C 08 02 A6 */ mflr r0
/* 800419D0 0003E930 90 01 00 84 */ stw r0, 0x84(r1)
/* 800419D4 0003E934 55 00 06 3F */ clrlwi. r0, r8, 0x18
/* 800419D8 0003E938 93 E1 00 7C */ stw r31, 0x7c(r1)
/* 800419DC 0003E93C 7C FF 3B 78 */ mr r31, r7
/* 800419E0 0003E940 93 C1 00 78 */ stw r30, 0x78(r1)
/* 800419E4 0003E944 7C 9E 23 78 */ mr r30, r4
/* 800419E8 0003E948 93 A1 00 74 */ stw r29, 0x74(r1)
/* 800419EC 0003E94C 7C 7D 1B 78 */ mr r29, r3
/* 800419F0 0003E950 41 82 00 20 */ beq lbl_80041A10
/* 800419F4 0003E954 7C A4 2B 78 */ mr r4, r5
/* 800419F8 0003E958 7C C5 33 78 */ mr r5, r6
/* 800419FC 0003E95C 38 61 00 38 */ addi r3, r1, 0x38
/* 80041A00 0003E960 38 C0 00 00 */ li r6, 0
/* 80041A04 0003E964 48 0D 3F 19 */ bl "GetScaledLocatorTransformDynamic__10CModelDataCFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>PC13CCharAnimTime"
/* 80041A08 0003E968 38 81 00 38 */ addi r4, r1, 0x38
/* 80041A0C 0003E96C 48 00 00 18 */ b lbl_80041A24
lbl_80041A10:
/* 80041A10 0003E970 7C A4 2B 78 */ mr r4, r5
/* 80041A14 0003E974 7C C5 33 78 */ mr r5, r6
/* 80041A18 0003E978 38 61 00 08 */ addi r3, r1, 8
/* 80041A1C 0003E97C 48 0D 3F 85 */ bl "GetScaledLocatorTransform__10CModelDataCFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 80041A20 0003E980 38 81 00 08 */ addi r4, r1, 8
lbl_80041A24:
/* 80041A24 0003E984 7F C3 F3 78 */ mr r3, r30
/* 80041A28 0003E988 48 2D 11 19 */ bl __as__12CTransform4fFRC12CTransform4f
/* 80041A2C 0003E98C 88 1D 08 34 */ lbz r0, 0x834(r29)
/* 80041A30 0003E990 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80041A34 0003E994 41 82 00 3C */ beq lbl_80041A70
/* 80041A38 0003E998 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 80041A3C 0003E99C 41 82 00 34 */ beq lbl_80041A70
/* 80041A40 0003E9A0 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 80041A44 0003E9A4 C0 1D 03 4C */ lfs f0, 0x34c(r29)
/* 80041A48 0003E9A8 C0 5D 03 50 */ lfs f2, 0x350(r29)
/* 80041A4C 0003E9AC EC 21 00 2A */ fadds f1, f1, f0
/* 80041A50 0003E9B0 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 80041A54 0003E9B4 D0 3E 00 0C */ stfs f1, 0xc(r30)
/* 80041A58 0003E9B8 C0 3E 00 1C */ lfs f1, 0x1c(r30)
/* 80041A5C 0003E9BC EC 01 00 2A */ fadds f0, f1, f0
/* 80041A60 0003E9C0 D0 1E 00 1C */ stfs f0, 0x1c(r30)
/* 80041A64 0003E9C4 C0 1E 00 2C */ lfs f0, 0x2c(r30)
/* 80041A68 0003E9C8 EC 00 10 2A */ fadds f0, f0, f2
/* 80041A6C 0003E9CC D0 1E 00 2C */ stfs f0, 0x2c(r30)
lbl_80041A70:
/* 80041A70 0003E9D0 80 01 00 84 */ lwz r0, 0x84(r1)
/* 80041A74 0003E9D4 83 E1 00 7C */ lwz r31, 0x7c(r1)
/* 80041A78 0003E9D8 83 C1 00 78 */ lwz r30, 0x78(r1)
/* 80041A7C 0003E9DC 83 A1 00 74 */ lwz r29, 0x74(r1)
/* 80041A80 0003E9E0 7C 08 03 A6 */ mtlr r0
/* 80041A84 0003E9E4 38 21 00 80 */ addi r1, r1, 0x80
/* 80041A88 0003E9E8 4E 80 00 20 */ blr
.global Render__10CPlayerGunCFRC13CStateManagerRC9CVector3fRC11CModelFlags
Render__10CPlayerGunCFRC13CStateManagerRC9CVector3fRC11CModelFlags:
/* 80041A8C 0003E9EC 94 21 FB 90 */ stwu r1, -0x470(r1)
/* 80041A90 0003E9F0 7C 08 02 A6 */ mflr r0
/* 80041A94 0003E9F4 90 01 04 74 */ stw r0, 0x474(r1)
/* 80041A98 0003E9F8 BE C1 04 48 */ stmw r22, 0x448(r1)
/* 80041A9C 0003E9FC 7C 7C 1B 78 */ mr r28, r3
/* 80041AA0 0003EA00 7C 9D 23 78 */ mr r29, r4
/* 80041AA4 0003EA04 7C BE 2B 78 */ mr r30, r5
/* 80041AA8 0003EA08 7C DF 33 78 */ mr r31, r6
/* 80041AAC 0003EA0C 48 2C 83 B1 */ bl GetProjectionState__9CGraphicsFv
/* 80041AB0 0003EA10 88 03 00 00 */ lbz r0, 0(r3)
/* 80041AB4 0003EA14 80 9D 08 B8 */ lwz r4, 0x8b8(r29)
/* 80041AB8 0003EA18 98 01 00 38 */ stb r0, 0x38(r1)
/* 80041ABC 0003EA1C C0 03 00 04 */ lfs f0, 4(r3)
/* 80041AC0 0003EA20 D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 80041AC4 0003EA24 C0 03 00 08 */ lfs f0, 8(r3)
/* 80041AC8 0003EA28 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 80041ACC 0003EA2C C0 03 00 0C */ lfs f0, 0xc(r3)
/* 80041AD0 0003EA30 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 80041AD4 0003EA34 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 80041AD8 0003EA38 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 80041ADC 0003EA3C C0 03 00 14 */ lfs f0, 0x14(r3)
/* 80041AE0 0003EA40 D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 80041AE4 0003EA44 C0 03 00 18 */ lfs f0, 0x18(r3)
/* 80041AE8 0003EA48 D0 01 00 50 */ stfs f0, 0x50(r1)
/* 80041AEC 0003EA4C 80 64 00 00 */ lwz r3, 0(r4)
/* 80041AF0 0003EA50 83 23 00 14 */ lwz r25, 0x14(r3)
/* 80041AF4 0003EA54 20 19 00 03 */ subfic r0, r25, 3
/* 80041AF8 0003EA58 7C 03 00 34 */ cntlzw r3, r0
/* 80041AFC 0003EA5C 54 60 DE 3F */ rlwinm. r0, r3, 0x1b, 0x18, 0x1f
/* 80041B00 0003EA60 54 78 D9 7E */ srwi r24, r3, 5
/* 80041B04 0003EA64 41 82 00 1C */ beq lbl_80041B20
/* 80041B08 0003EA68 80 9C 03 10 */ lwz r4, 0x310(r28)
/* 80041B0C 0003EA6C 3C 60 80 46 */ lis r3, kThermalFlags@ha
/* 80041B10 0003EA70 38 03 C5 30 */ addi r0, r3, kThermalFlags@l
/* 80041B14 0003EA74 54 83 18 38 */ slwi r3, r4, 3
/* 80041B18 0003EA78 7F 60 1A 14 */ add r27, r0, r3
/* 80041B1C 0003EA7C 48 00 00 48 */ b lbl_80041B64
lbl_80041B20:
/* 80041B20 0003EA80 88 1C 08 35 */ lbz r0, 0x835(r28)
/* 80041B24 0003EA84 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 80041B28 0003EA88 41 82 00 38 */ beq lbl_80041B60
/* 80041B2C 0003EA8C C0 3C 03 9C */ lfs f1, 0x39c(r28)
/* 80041B30 0003EA90 38 60 FF FF */ li r3, -1
/* 80041B34 0003EA94 38 80 00 FF */ li r4, 0xff
/* 80041B38 0003EA98 48 32 16 DD */ bl Lerp__6CColorFUiUif
/* 80041B3C 0003EA9C 38 A0 00 01 */ li r5, 1
/* 80041B40 0003EAA0 38 80 00 00 */ li r4, 0
/* 80041B44 0003EAA4 38 00 00 03 */ li r0, 3
/* 80041B48 0003EAA8 98 A1 00 18 */ stb r5, 0x18(r1)
/* 80041B4C 0003EAAC 3B 61 00 18 */ addi r27, r1, 0x18
/* 80041B50 0003EAB0 98 81 00 19 */ stb r4, 0x19(r1)
/* 80041B54 0003EAB4 B0 01 00 1A */ sth r0, 0x1a(r1)
/* 80041B58 0003EAB8 90 61 00 1C */ stw r3, 0x1c(r1)
/* 80041B5C 0003EABC 48 00 00 08 */ b lbl_80041B64
lbl_80041B60:
/* 80041B60 0003EAC0 7F FB FB 78 */ mr r27, r31
lbl_80041B64:
/* 80041B64 0003EAC4 80 7D 08 70 */ lwz r3, 0x870(r29)
/* 80041B68 0003EAC8 7F A4 EB 78 */ mr r4, r29
/* 80041B6C 0003EACC 4B FC 9F AD */ bl GetCurrentCamera__14CCameraManagerCFRC13CStateManager
/* 80041B70 0003EAD0 C0 22 85 08 */ lfs f1, lbl_805AA228@sda21(r2)
/* 80041B74 0003EAD4 7C 77 1B 78 */ mr r23, r3
/* 80041B78 0003EAD8 C0 42 85 0C */ lfs f2, lbl_805AA22C@sda21(r2)
/* 80041B7C 0003EADC 48 2C 88 65 */ bl SetDepthRange__9CGraphicsFff
/* 80041B80 0003EAE0 38 61 02 64 */ addi r3, r1, 0x264
/* 80041B84 0003EAE4 38 9C 04 A8 */ addi r4, r28, 0x4a8
/* 80041B88 0003EAE8 48 2D 0F ED */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80041B8C 0003EAEC 7F C4 F3 78 */ mr r4, r30
/* 80041B90 0003EAF0 38 61 02 94 */ addi r3, r1, 0x294
/* 80041B94 0003EAF4 48 2D 15 AD */ bl Translate__12CTransform4fFRC9CVector3f
/* 80041B98 0003EAF8 38 61 02 C4 */ addi r3, r1, 0x2c4
/* 80041B9C 0003EAFC 38 81 02 94 */ addi r4, r1, 0x294
/* 80041BA0 0003EB00 38 A1 02 64 */ addi r5, r1, 0x264
/* 80041BA4 0003EB04 48 2D 0D AD */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80041BA8 0003EB08 38 61 04 14 */ addi r3, r1, 0x414
/* 80041BAC 0003EB0C 38 81 02 C4 */ addi r4, r1, 0x2c4
/* 80041BB0 0003EB10 48 2D 0F C5 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80041BB4 0003EB14 38 61 02 34 */ addi r3, r1, 0x234
/* 80041BB8 0003EB18 38 81 04 14 */ addi r4, r1, 0x414
/* 80041BBC 0003EB1C 38 BC 05 08 */ addi r5, r28, 0x508
/* 80041BC0 0003EB20 48 2D 0D 91 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80041BC4 0003EB24 38 61 03 E4 */ addi r3, r1, 0x3e4
/* 80041BC8 0003EB28 38 81 02 34 */ addi r4, r1, 0x234
/* 80041BCC 0003EB2C 48 2D 0F A9 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80041BD0 0003EB30 80 1C 03 2C */ lwz r0, 0x32c(r28)
/* 80041BD4 0003EB34 2C 00 00 00 */ cmpwi r0, 0
/* 80041BD8 0003EB38 41 82 00 44 */ beq lbl_80041C1C
/* 80041BDC 0003EB3C 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 80041BE0 0003EB40 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 80041BE4 0003EB44 2C 00 00 10 */ cmpwi r0, 0x10
/* 80041BE8 0003EB48 41 82 00 34 */ beq lbl_80041C1C
/* 80041BEC 0003EB4C C0 3C 03 50 */ lfs f1, 0x350(r28)
/* 80041BF0 0003EB50 C0 01 04 40 */ lfs f0, 0x440(r1)
/* 80041BF4 0003EB54 C0 81 04 20 */ lfs f4, 0x420(r1)
/* 80041BF8 0003EB58 C0 7C 03 4C */ lfs f3, 0x34c(r28)
/* 80041BFC 0003EB5C EC 00 08 2A */ fadds f0, f0, f1
/* 80041C00 0003EB60 C0 41 04 30 */ lfs f2, 0x430(r1)
/* 80041C04 0003EB64 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 80041C08 0003EB68 EC 64 18 2A */ fadds f3, f4, f3
/* 80041C0C 0003EB6C D0 01 04 40 */ stfs f0, 0x440(r1)
/* 80041C10 0003EB70 EC 02 08 2A */ fadds f0, f2, f1
/* 80041C14 0003EB74 D0 61 04 20 */ stfs f3, 0x420(r1)
/* 80041C18 0003EB78 D0 01 04 30 */ stfs f0, 0x430(r1)
lbl_80041C1C:
/* 80041C1C 0003EB7C 3C 60 80 5A */ lis r3, mViewMatrix__9CGraphics@ha
/* 80041C20 0003EB80 82 DC 06 98 */ lwz r22, 0x698(r28)
/* 80041C24 0003EB84 38 83 61 D4 */ addi r4, r3, mViewMatrix__9CGraphics@l
/* 80041C28 0003EB88 38 61 03 B4 */ addi r3, r1, 0x3b4
/* 80041C2C 0003EB8C 48 2D 0F 49 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80041C30 0003EB90 38 61 01 D4 */ addi r3, r1, 0x1d4
/* 80041C34 0003EB94 38 81 04 14 */ addi r4, r1, 0x414
/* 80041C38 0003EB98 48 2D 0A A9 */ bl GetInverse__12CTransform4fCFv
/* 80041C3C 0003EB9C 38 61 02 04 */ addi r3, r1, 0x204
/* 80041C40 0003EBA0 38 81 01 D4 */ addi r4, r1, 0x1d4
/* 80041C44 0003EBA4 38 A1 03 B4 */ addi r5, r1, 0x3b4
/* 80041C48 0003EBA8 48 2D 0D 09 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80041C4C 0003EBAC 38 61 02 04 */ addi r3, r1, 0x204
/* 80041C50 0003EBB0 48 2C AA FD */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 80041C54 0003EBB4 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80041C58 0003EBB8 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 80041C5C 0003EBBC 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 80041C60 0003EBC0 81 83 00 00 */ lwz r12, 0(r3)
/* 80041C64 0003EBC4 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 80041C68 0003EBC8 7D 89 03 A6 */ mtctr r12
/* 80041C6C 0003EBCC 4E 80 04 21 */ bctrl
/* 80041C70 0003EBD0 80 1C 03 2C */ lwz r0, 0x32c(r28)
/* 80041C74 0003EBD4 2C 00 00 04 */ cmpwi r0, 4
/* 80041C78 0003EBD8 41 80 00 2C */ blt lbl_80041CA4
/* 80041C7C 0003EBDC 2C 00 00 05 */ cmpwi r0, 5
/* 80041C80 0003EBE0 40 80 00 24 */ bge lbl_80041CA4
/* 80041C84 0003EBE4 80 1C 03 20 */ lwz r0, 0x320(r28)
/* 80041C88 0003EBE8 54 00 18 38 */ slwi r0, r0, 3
/* 80041C8C 0003EBEC 7C 7C 02 14 */ add r3, r28, r0
/* 80041C90 0003EBF0 80 63 08 08 */ lwz r3, 0x808(r3)
/* 80041C94 0003EBF4 81 83 00 00 */ lwz r12, 0(r3)
/* 80041C98 0003EBF8 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80041C9C 0003EBFC 7D 89 03 A6 */ mtctr r12
/* 80041CA0 0003EC00 4E 80 04 21 */ bctrl
lbl_80041CA4:
/* 80041CA4 0003EC04 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 80041CA8 0003EC08 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 80041CAC 0003EC0C 41 82 00 38 */ beq lbl_80041CE4
/* 80041CB0 0003EC10 C0 3C 03 8C */ lfs f1, 0x38c(r28)
/* 80041CB4 0003EC14 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 80041CB8 0003EC18 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80041CBC 0003EC1C 41 81 00 10 */ bgt lbl_80041CCC
/* 80041CC0 0003EC20 80 1C 03 2C */ lwz r0, 0x32c(r28)
/* 80041CC4 0003EC24 2C 00 00 02 */ cmpwi r0, 2
/* 80041CC8 0003EC28 40 81 00 1C */ ble lbl_80041CE4
lbl_80041CCC:
/* 80041CCC 0003EC2C 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80041CD0 0003EC30 7F A4 EB 78 */ mr r4, r29
/* 80041CD4 0003EC34 81 83 00 00 */ lwz r12, 0(r3)
/* 80041CD8 0003EC38 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 80041CDC 0003EC3C 7D 89 03 A6 */ mtctr r12
/* 80041CE0 0003EC40 4E 80 04 21 */ bctrl
lbl_80041CE4:
/* 80041CE4 0003EC44 2C 16 00 02 */ cmpwi r22, 2
/* 80041CE8 0003EC48 41 82 00 0C */ beq lbl_80041CF4
/* 80041CEC 0003EC4C 2C 16 00 03 */ cmpwi r22, 3
/* 80041CF0 0003EC50 40 82 00 18 */ bne lbl_80041D08
lbl_80041CF4:
/* 80041CF4 0003EC54 80 7C 07 78 */ lwz r3, 0x778(r28)
/* 80041CF8 0003EC58 81 83 00 00 */ lwz r12, 0(r3)
/* 80041CFC 0003EC5C 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80041D00 0003EC60 7D 89 03 A6 */ mtctr r12
/* 80041D04 0003EC64 4E 80 04 21 */ bctrl
lbl_80041D08:
/* 80041D08 0003EC68 38 61 03 B4 */ addi r3, r1, 0x3b4
/* 80041D0C 0003EC6C 48 2C AA 41 */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 80041D10 0003EC70 80 1C 02 F8 */ lwz r0, 0x2f8(r28)
/* 80041D14 0003EC74 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b
/* 80041D18 0003EC78 2C 00 00 10 */ cmpwi r0, 0x10
/* 80041D1C 0003EC7C 40 82 00 0C */ bne lbl_80041D28
/* 80041D20 0003EC80 80 7C 07 44 */ lwz r3, 0x744(r28)
/* 80041D24 0003EC84 48 17 7B 4D */ bl RenderMuzzleFx__10CAuxWeaponCFv
lbl_80041D28:
/* 80041D28 0003EC88 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80041D2C 0003EC8C 7F A4 EB 78 */ mr r4, r29
/* 80041D30 0003EC90 38 A1 04 14 */ addi r5, r1, 0x414
/* 80041D34 0003EC94 81 83 00 00 */ lwz r12, 0(r3)
/* 80041D38 0003EC98 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 80041D3C 0003EC9C 7D 89 03 A6 */ mtctr r12
/* 80041D40 0003ECA0 4E 80 04 21 */ bctrl
/* 80041D44 0003ECA4 80 7C 07 40 */ lwz r3, 0x740(r28)
/* 80041D48 0003ECA8 3B 40 00 00 */ li r26, 0
/* 80041D4C 0003ECAC 88 03 03 B2 */ lbz r0, 0x3b2(r3)
/* 80041D50 0003ECB0 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 80041D54 0003ECB4 40 82 00 18 */ bne lbl_80041D6C
/* 80041D58 0003ECB8 80 7D 08 4C */ lwz r3, 0x84c(r29)
/* 80041D5C 0003ECBC 80 03 04 98 */ lwz r0, 0x498(r3)
/* 80041D60 0003ECC0 2C 00 00 02 */ cmpwi r0, 2
/* 80041D64 0003ECC4 40 82 00 08 */ bne lbl_80041D6C
/* 80041D68 0003ECC8 3B 40 00 01 */ li r26, 1
lbl_80041D6C:
/* 80041D6C 0003ECCC 80 7C 07 3C */ lwz r3, 0x73c(r28)
/* 80041D70 0003ECD0 7F A4 EB 78 */ mr r4, r29
/* 80041D74 0003ECD4 38 A1 04 14 */ addi r5, r1, 0x414
/* 80041D78 0003ECD8 48 19 73 31 */ bl Draw__10CGunMotionCFRC13CStateManagerRC12CTransform4f
/* 80041D7C 0003ECDC 2C 16 00 01 */ cmpwi r22, 1
/* 80041D80 0003ECE0 41 82 00 20 */ beq lbl_80041DA0
/* 80041D84 0003ECE4 40 80 00 10 */ bge lbl_80041D94
/* 80041D88 0003ECE8 2C 16 00 00 */ cmpwi r22, 0
/* 80041D8C 0003ECEC 40 80 00 D8 */ bge lbl_80041E64
/* 80041D90 0003ECF0 48 00 03 00 */ b lbl_80042090
lbl_80041D94:
/* 80041D94 0003ECF4 2C 16 00 04 */ cmpwi r22, 4
/* 80041D98 0003ECF8 40 80 02 F8 */ bge lbl_80042090
/* 80041D9C 0003ECFC 48 00 00 C8 */ b lbl_80041E64
lbl_80041DA0:
/* 80041DA0 0003ED00 80 BC 02 9C */ lwz r5, 0x29c(r28)
/* 80041DA4 0003ED04 80 02 94 00 */ lwz r0, lbl_805AB120@sda21(r2)
/* 80041DA8 0003ED08 7C 05 00 40 */ cmplw r5, r0
/* 80041DAC 0003ED0C 41 82 00 14 */ beq lbl_80041DC0
/* 80041DB0 0003ED10 80 7C 08 2C */ lwz r3, 0x82c(r28)
/* 80041DB4 0003ED14 38 81 04 14 */ addi r4, r1, 0x414
/* 80041DB8 0003ED18 C0 22 85 10 */ lfs f1, lbl_805AA230@sda21(r2)
/* 80041DBC 0003ED1C 48 0C F1 FD */ bl EnableModelProjectedShadow__12CWorldShadowCFRC12CTransform4fUif
lbl_80041DC0:
/* 80041DC0 0003ED20 2C 19 00 01 */ cmpwi r25, 1
/* 80041DC4 0003ED24 40 82 00 58 */ bne lbl_80041E1C
/* 80041DC8 0003ED28 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 80041DCC 0003ED2C 38 61 01 74 */ addi r3, r1, 0x174
/* 80041DD0 0003ED30 C0 42 85 14 */ lfs f2, lbl_805AA234@sda21(r2)
/* 80041DD4 0003ED34 C0 62 85 18 */ lfs f3, lbl_805AA238@sda21(r2)
/* 80041DD8 0003ED38 48 2D 13 B1 */ bl Translate__12CTransform4fFfff
/* 80041DDC 0003ED3C 38 61 01 A4 */ addi r3, r1, 0x1a4
/* 80041DE0 0003ED40 38 81 03 E4 */ addi r4, r1, 0x3e4
/* 80041DE4 0003ED44 38 A1 01 74 */ addi r5, r1, 0x174
/* 80041DE8 0003ED48 48 2D 0B 69 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80041DEC 0003ED4C 38 61 03 84 */ addi r3, r1, 0x384
/* 80041DF0 0003ED50 38 81 01 A4 */ addi r4, r1, 0x1a4
/* 80041DF4 0003ED54 48 2D 0D 81 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80041DF8 0003ED58 57 00 06 3F */ clrlwi. r0, r24, 0x18
/* 80041DFC 0003ED5C 7F A4 EB 78 */ mr r4, r29
/* 80041E00 0003ED60 7F 86 E3 78 */ mr r6, r28
/* 80041E04 0003ED64 38 7C 06 E0 */ addi r3, r28, 0x6e0
/* 80041E08 0003ED68 38 A1 03 84 */ addi r5, r1, 0x384
/* 80041E0C 0003ED6C 38 ED A1 CC */ addi r7, r13, kHandHoloFlag@sda21
/* 80041E10 0003ED70 41 82 00 08 */ beq lbl_80041E18
/* 80041E14 0003ED74 38 ED A1 C4 */ addi r7, r13, kHandThermalFlag@sda21
lbl_80041E18:
/* 80041E18 0003ED78 48 0D 2F A5 */ bl Render__10CModelDataCFRC13CStateManagerRC12CTransform4fPC12CActorLightsRC11CModelFlags
lbl_80041E1C:
/* 80041E1C 0003ED7C 7F 83 E3 78 */ mr r3, r28
/* 80041E20 0003ED80 7F A4 EB 78 */ mr r4, r29
/* 80041E24 0003ED84 7F C5 F3 78 */ mr r5, r30
/* 80041E28 0003ED88 7F E6 FB 78 */ mr r6, r31
/* 80041E2C 0003ED8C 48 00 03 35 */ bl DrawArm__10CPlayerGunCFRC13CStateManagerRC9CVector3fRC11CModelFlags
/* 80041E30 0003ED90 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80041E34 0003ED94 7F 44 D3 78 */ mr r4, r26
/* 80041E38 0003ED98 7F A5 EB 78 */ mr r5, r29
/* 80041E3C 0003ED9C 7F 67 DB 78 */ mr r7, r27
/* 80041E40 0003EDA0 81 83 00 00 */ lwz r12, 0(r3)
/* 80041E44 0003EDA4 7F 88 E3 78 */ mr r8, r28
/* 80041E48 0003EDA8 38 C1 04 14 */ addi r6, r1, 0x414
/* 80041E4C 0003EDAC 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 80041E50 0003EDB0 7D 89 03 A6 */ mtctr r12
/* 80041E54 0003EDB4 4E 80 04 21 */ bctrl
/* 80041E58 0003EDB8 80 7C 08 2C */ lwz r3, 0x82c(r28)
/* 80041E5C 0003EDBC 48 0C F1 3D */ bl DisableModelProjectedShadow__12CWorldShadowCFv
/* 80041E60 0003EDC0 48 00 02 30 */ b lbl_80042090
lbl_80041E64:
/* 80041E64 0003EDC4 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 80041E68 0003EDC8 38 61 01 14 */ addi r3, r1, 0x114
/* 80041E6C 0003EDCC C0 42 85 14 */ lfs f2, lbl_805AA234@sda21(r2)
/* 80041E70 0003EDD0 C0 62 85 18 */ lfs f3, lbl_805AA238@sda21(r2)
/* 80041E74 0003EDD4 48 2D 13 15 */ bl Translate__12CTransform4fFfff
/* 80041E78 0003EDD8 38 61 01 44 */ addi r3, r1, 0x144
/* 80041E7C 0003EDDC 38 81 03 E4 */ addi r4, r1, 0x3e4
/* 80041E80 0003EDE0 38 A1 01 14 */ addi r5, r1, 0x114
/* 80041E84 0003EDE4 48 2D 0A CD */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80041E88 0003EDE8 38 61 03 54 */ addi r3, r1, 0x354
/* 80041E8C 0003EDEC 38 81 01 44 */ addi r4, r1, 0x144
/* 80041E90 0003EDF0 48 2D 0C E5 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80041E94 0003EDF4 2C 16 00 00 */ cmpwi r22, 0
/* 80041E98 0003EDF8 41 82 01 58 */ beq lbl_80041FF0
/* 80041E9C 0003EDFC C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 80041EA0 0003EE00 38 61 00 B4 */ addi r3, r1, 0xb4
/* 80041EA4 0003EE04 C0 5C 06 78 */ lfs f2, 0x678(r28)
/* 80041EA8 0003EE08 FC 60 08 90 */ fmr f3, f1
/* 80041EAC 0003EE0C 48 2D 12 DD */ bl Translate__12CTransform4fFfff
/* 80041EB0 0003EE10 38 61 00 E4 */ addi r3, r1, 0xe4
/* 80041EB4 0003EE14 38 81 03 E4 */ addi r4, r1, 0x3e4
/* 80041EB8 0003EE18 38 A1 00 B4 */ addi r5, r1, 0xb4
/* 80041EBC 0003EE1C 48 2D 0A 95 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80041EC0 0003EE20 38 61 03 24 */ addi r3, r1, 0x324
/* 80041EC4 0003EE24 38 81 00 E4 */ addi r4, r1, 0xe4
/* 80041EC8 0003EE28 48 2D 0C AD */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80041ECC 0003EE2C 48 00 08 45 */ bl CopyScreenTex__Fv
/* 80041ED0 0003EE30 57 00 06 3F */ clrlwi. r0, r24, 0x18
/* 80041ED4 0003EE34 7F A4 EB 78 */ mr r4, r29
/* 80041ED8 0003EE38 7F 86 E3 78 */ mr r6, r28
/* 80041EDC 0003EE3C 38 7C 06 E0 */ addi r3, r28, 0x6e0
/* 80041EE0 0003EE40 38 A1 03 54 */ addi r5, r1, 0x354
/* 80041EE4 0003EE44 38 ED A1 CC */ addi r7, r13, kHandHoloFlag@sda21
/* 80041EE8 0003EE48 41 82 00 08 */ beq lbl_80041EF0
/* 80041EEC 0003EE4C 38 ED A1 C4 */ addi r7, r13, kHandThermalFlag@sda21
lbl_80041EF0:
/* 80041EF0 0003EE50 48 0D 2E CD */ bl Render__10CModelDataCFRC13CStateManagerRC12CTransform4fPC12CActorLightsRC11CModelFlags
/* 80041EF4 0003EE54 C0 22 84 7C */ lfs f1, lbl_805AA19C@sda21(r2)
/* 80041EF8 0003EE58 38 80 00 00 */ li r4, 0
/* 80041EFC 0003EE5C 38 00 00 03 */ li r0, 3
/* 80041F00 0003EE60 98 81 00 10 */ stb r4, 0x10(r1)
/* 80041F04 0003EE64 FC 40 08 90 */ fmr f2, f1
/* 80041F08 0003EE68 38 61 00 14 */ addi r3, r1, 0x14
/* 80041F0C 0003EE6C FC 60 08 90 */ fmr f3, f1
/* 80041F10 0003EE70 98 81 00 11 */ stb r4, 0x11(r1)
/* 80041F14 0003EE74 FC 80 08 90 */ fmr f4, f1
/* 80041F18 0003EE78 B0 01 00 12 */ sth r0, 0x12(r1)
/* 80041F1C 0003EE7C 48 32 14 D1 */ bl __ct__6CColorFffff
/* 80041F20 0003EE80 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80041F24 0003EE84 7F A4 EB 78 */ mr r4, r29
/* 80041F28 0003EE88 38 A1 04 14 */ addi r5, r1, 0x414
/* 80041F2C 0003EE8C 38 C1 00 10 */ addi r6, r1, 0x10
/* 80041F30 0003EE90 48 17 9C 9D */ bl DrawHologram__10CGunWeaponCFRC13CStateManagerRC12CTransform4fRC11CModelFlags
/* 80041F34 0003EE94 C0 41 03 30 */ lfs f2, 0x330(r1)
/* 80041F38 0003EE98 7F 84 E3 78 */ mr r4, r28
/* 80041F3C 0003EE9C C0 21 03 40 */ lfs f1, 0x340(r1)
/* 80041F40 0003EEA0 7E E6 BB 78 */ mr r6, r23
/* 80041F44 0003EEA4 C0 01 03 50 */ lfs f0, 0x350(r1)
/* 80041F48 0003EEA8 38 61 00 2C */ addi r3, r1, 0x2c
/* 80041F4C 0003EEAC D0 41 00 20 */ stfs f2, 0x20(r1)
/* 80041F50 0003EEB0 38 A1 00 20 */ addi r5, r1, 0x20
/* 80041F54 0003EEB4 D0 21 00 24 */ stfs f1, 0x24(r1)
/* 80041F58 0003EEB8 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 80041F5C 0003EEBC 48 00 03 45 */ bl ConvertToScreenSpace__10CPlayerGunCFRC9CVector3fRC11CGameCamera
/* 80041F60 0003EEC0 C0 21 00 34 */ lfs f1, 0x34(r1)
/* 80041F64 0003EEC4 48 00 05 25 */ bl DrawScreenTex__Ff
/* 80041F68 0003EEC8 80 BC 02 9C */ lwz r5, 0x29c(r28)
/* 80041F6C 0003EECC 80 02 94 00 */ lwz r0, lbl_805AB120@sda21(r2)
/* 80041F70 0003EED0 7C 05 00 40 */ cmplw r5, r0
/* 80041F74 0003EED4 41 82 00 14 */ beq lbl_80041F88
/* 80041F78 0003EED8 80 7C 08 2C */ lwz r3, 0x82c(r28)
/* 80041F7C 0003EEDC 38 81 04 14 */ addi r4, r1, 0x414
/* 80041F80 0003EEE0 C0 22 85 10 */ lfs f1, lbl_805AA230@sda21(r2)
/* 80041F84 0003EEE4 48 0C F0 35 */ bl EnableModelProjectedShadow__12CWorldShadowCFRC12CTransform4fUif
lbl_80041F88:
/* 80041F88 0003EEE8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80041F8C 0003EEEC 38 81 03 24 */ addi r4, r1, 0x324
/* 80041F90 0003EEF0 81 83 00 00 */ lwz r12, 0(r3)
/* 80041F94 0003EEF4 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 80041F98 0003EEF8 7D 89 03 A6 */ mtctr r12
/* 80041F9C 0003EEFC 4E 80 04 21 */ bctrl
/* 80041FA0 0003EF00 38 7C 06 C8 */ addi r3, r28, 0x6c8
/* 80041FA4 0003EF04 48 17 7C A9 */ bl DrawClipCube__FRC6CAABox
/* 80041FA8 0003EF08 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80041FAC 0003EF0C 7F 44 D3 78 */ mr r4, r26
/* 80041FB0 0003EF10 7F A5 EB 78 */ mr r5, r29
/* 80041FB4 0003EF14 7F 67 DB 78 */ mr r7, r27
/* 80041FB8 0003EF18 81 83 00 00 */ lwz r12, 0(r3)
/* 80041FBC 0003EF1C 7F 88 E3 78 */ mr r8, r28
/* 80041FC0 0003EF20 38 C1 04 14 */ addi r6, r1, 0x414
/* 80041FC4 0003EF24 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 80041FC8 0003EF28 7D 89 03 A6 */ mtctr r12
/* 80041FCC 0003EF2C 4E 80 04 21 */ bctrl
/* 80041FD0 0003EF30 7F 83 E3 78 */ mr r3, r28
/* 80041FD4 0003EF34 7F A4 EB 78 */ mr r4, r29
/* 80041FD8 0003EF38 7F C5 F3 78 */ mr r5, r30
/* 80041FDC 0003EF3C 7F E6 FB 78 */ mr r6, r31
/* 80041FE0 0003EF40 48 00 01 81 */ bl DrawArm__10CPlayerGunCFRC13CStateManagerRC9CVector3fRC11CModelFlags
/* 80041FE4 0003EF44 80 7C 08 2C */ lwz r3, 0x82c(r28)
/* 80041FE8 0003EF48 48 0C EF B1 */ bl DisableModelProjectedShadow__12CWorldShadowCFv
/* 80041FEC 0003EF4C 48 00 00 A4 */ b lbl_80042090
lbl_80041FF0:
/* 80041FF0 0003EF50 57 00 06 3F */ clrlwi. r0, r24, 0x18
/* 80041FF4 0003EF54 7F A4 EB 78 */ mr r4, r29
/* 80041FF8 0003EF58 7F 86 E3 78 */ mr r6, r28
/* 80041FFC 0003EF5C 38 7C 06 E0 */ addi r3, r28, 0x6e0
/* 80042000 0003EF60 38 A1 03 54 */ addi r5, r1, 0x354
/* 80042004 0003EF64 38 ED A1 CC */ addi r7, r13, kHandHoloFlag@sda21
/* 80042008 0003EF68 41 82 00 08 */ beq lbl_80042010
/* 8004200C 0003EF6C 38 ED A1 C4 */ addi r7, r13, kHandThermalFlag@sda21
lbl_80042010:
/* 80042010 0003EF70 48 0D 2D AD */ bl Render__10CModelDataCFRC13CStateManagerRC12CTransform4fPC12CActorLightsRC11CModelFlags
/* 80042014 0003EF74 C0 22 84 7C */ lfs f1, lbl_805AA19C@sda21(r2)
/* 80042018 0003EF78 38 80 00 00 */ li r4, 0
/* 8004201C 0003EF7C 38 00 00 03 */ li r0, 3
/* 80042020 0003EF80 98 81 00 08 */ stb r4, 8(r1)
/* 80042024 0003EF84 FC 40 08 90 */ fmr f2, f1
/* 80042028 0003EF88 38 61 00 0C */ addi r3, r1, 0xc
/* 8004202C 0003EF8C FC 60 08 90 */ fmr f3, f1
/* 80042030 0003EF90 98 81 00 09 */ stb r4, 9(r1)
/* 80042034 0003EF94 FC 80 08 90 */ fmr f4, f1
/* 80042038 0003EF98 B0 01 00 0A */ sth r0, 0xa(r1)
/* 8004203C 0003EF9C 48 32 13 B1 */ bl __ct__6CColorFffff
/* 80042040 0003EFA0 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 80042044 0003EFA4 7F A4 EB 78 */ mr r4, r29
/* 80042048 0003EFA8 38 A1 04 14 */ addi r5, r1, 0x414
/* 8004204C 0003EFAC 38 C1 00 08 */ addi r6, r1, 8
/* 80042050 0003EFB0 48 17 9B 7D */ bl DrawHologram__10CGunWeaponCFRC13CStateManagerRC12CTransform4fRC11CModelFlags
/* 80042054 0003EFB4 80 BC 02 9C */ lwz r5, 0x29c(r28)
/* 80042058 0003EFB8 80 02 94 00 */ lwz r0, lbl_805AB120@sda21(r2)
/* 8004205C 0003EFBC 7C 05 00 40 */ cmplw r5, r0
/* 80042060 0003EFC0 41 82 00 14 */ beq lbl_80042074
/* 80042064 0003EFC4 80 7C 08 2C */ lwz r3, 0x82c(r28)
/* 80042068 0003EFC8 38 81 04 14 */ addi r4, r1, 0x414
/* 8004206C 0003EFCC C0 22 85 10 */ lfs f1, lbl_805AA230@sda21(r2)
/* 80042070 0003EFD0 48 0C EF 49 */ bl EnableModelProjectedShadow__12CWorldShadowCFRC12CTransform4fUif
lbl_80042074:
/* 80042074 0003EFD4 7F 83 E3 78 */ mr r3, r28
/* 80042078 0003EFD8 7F A4 EB 78 */ mr r4, r29
/* 8004207C 0003EFDC 7F C5 F3 78 */ mr r5, r30
/* 80042080 0003EFE0 7F E6 FB 78 */ mr r6, r31
/* 80042084 0003EFE4 48 00 00 DD */ bl DrawArm__10CPlayerGunCFRC13CStateManagerRC9CVector3fRC11CModelFlags
/* 80042088 0003EFE8 80 7C 08 2C */ lwz r3, 0x82c(r28)
/* 8004208C 0003EFEC 48 0C EF 0D */ bl DisableModelProjectedShadow__12CWorldShadowCFv
lbl_80042090:
/* 80042090 0003EFF0 3C 80 80 5A */ lis r4, mViewMatrix__9CGraphics@ha
/* 80042094 0003EFF4 38 61 02 F4 */ addi r3, r1, 0x2f4
/* 80042098 0003EFF8 38 84 61 D4 */ addi r4, r4, mViewMatrix__9CGraphics@l
/* 8004209C 0003EFFC 48 2D 0A D9 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 800420A0 0003F000 38 61 00 54 */ addi r3, r1, 0x54
/* 800420A4 0003F004 38 81 04 14 */ addi r4, r1, 0x414
/* 800420A8 0003F008 48 2D 06 39 */ bl GetInverse__12CTransform4fCFv
/* 800420AC 0003F00C 38 61 00 84 */ addi r3, r1, 0x84
/* 800420B0 0003F010 38 81 00 54 */ addi r4, r1, 0x54
/* 800420B4 0003F014 38 A1 02 F4 */ addi r5, r1, 0x2f4
/* 800420B8 0003F018 48 2D 08 99 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 800420BC 0003F01C 38 61 00 84 */ addi r3, r1, 0x84
/* 800420C0 0003F020 48 2C A6 8D */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 800420C4 0003F024 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 800420C8 0003F028 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 800420CC 0003F02C 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 800420D0 0003F030 81 83 00 00 */ lwz r12, 0(r3)
/* 800420D4 0003F034 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 800420D8 0003F038 7D 89 03 A6 */ mtctr r12
/* 800420DC 0003F03C 4E 80 04 21 */ bctrl
/* 800420E0 0003F040 80 7C 07 2C */ lwz r3, 0x72c(r28)
/* 800420E4 0003F044 7F A4 EB 78 */ mr r4, r29
/* 800420E8 0003F048 38 A1 04 14 */ addi r5, r1, 0x414
/* 800420EC 0003F04C 81 83 00 00 */ lwz r12, 0(r3)
/* 800420F0 0003F050 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 800420F4 0003F054 7D 89 03 A6 */ mtctr r12
/* 800420F8 0003F058 4E 80 04 21 */ bctrl
/* 800420FC 0003F05C 88 1C 08 32 */ lbz r0, 0x832(r28)
/* 80042100 0003F060 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 80042104 0003F064 41 82 00 20 */ beq lbl_80042124
/* 80042108 0003F068 80 7C 07 80 */ lwz r3, 0x780(r28)
/* 8004210C 0003F06C 28 03 00 00 */ cmplwi r3, 0
/* 80042110 0003F070 41 82 00 14 */ beq lbl_80042124
/* 80042114 0003F074 81 83 00 00 */ lwz r12, 0(r3)
/* 80042118 0003F078 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8004211C 0003F07C 7D 89 03 A6 */ mtctr r12
/* 80042120 0003F080 4E 80 04 21 */ bctrl
lbl_80042124:
/* 80042124 0003F084 38 61 02 F4 */ addi r3, r1, 0x2f4
/* 80042128 0003F088 48 2C A6 25 */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 8004212C 0003F08C 7F 83 E3 78 */ mr r3, r28
/* 80042130 0003F090 7F A4 EB 78 */ mr r4, r29
/* 80042134 0003F094 4B FF A1 BD */ bl RenderEnergyDrainEffects__10CPlayerGunCFRC13CStateManager
/* 80042138 0003F098 C0 22 85 0C */ lfs f1, lbl_805AA22C@sda21(r2)
/* 8004213C 0003F09C C0 42 84 7C */ lfs f2, lbl_805AA19C@sda21(r2)
/* 80042140 0003F0A0 48 2C 82 A1 */ bl SetDepthRange__9CGraphicsFff
/* 80042144 0003F0A4 38 61 00 38 */ addi r3, r1, 0x38
/* 80042148 0003F0A8 48 2C 7C B9 */ bl SetProjectionState__9CGraphicsFRCQ29CGraphics16CProjectionState
/* 8004214C 0003F0AC BA C1 04 48 */ lmw r22, 0x448(r1)
/* 80042150 0003F0B0 80 01 04 74 */ lwz r0, 0x474(r1)
/* 80042154 0003F0B4 7C 08 03 A6 */ mtlr r0
/* 80042158 0003F0B8 38 21 04 70 */ addi r1, r1, 0x470
/* 8004215C 0003F0BC 4E 80 00 20 */ blr
.global DrawArm__10CPlayerGunCFRC13CStateManagerRC9CVector3fRC11CModelFlags
DrawArm__10CPlayerGunCFRC13CStateManagerRC9CVector3fRC11CModelFlags:
/* 80042160 0003F0C0 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 80042164 0003F0C4 7C 08 02 A6 */ mflr r0
/* 80042168 0003F0C8 90 01 00 74 */ stw r0, 0x74(r1)
/* 8004216C 0003F0CC 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 80042170 0003F0D0 7C DF 33 78 */ mr r31, r6
/* 80042174 0003F0D4 93 C1 00 68 */ stw r30, 0x68(r1)
/* 80042178 0003F0D8 7C BE 2B 78 */ mr r30, r5
/* 8004217C 0003F0DC 93 A1 00 64 */ stw r29, 0x64(r1)
/* 80042180 0003F0E0 7C 9D 23 78 */ mr r29, r4
/* 80042184 0003F0E4 93 81 00 60 */ stw r28, 0x60(r1)
/* 80042188 0003F0E8 7C 7C 1B 78 */ mr r28, r3
/* 8004218C 0003F0EC 80 83 07 40 */ lwz r4, 0x740(r3)
/* 80042190 0003F0F0 88 04 03 B2 */ lbz r0, 0x3b2(r4)
/* 80042194 0003F0F4 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80042198 0003F0F8 41 82 00 E4 */ beq lbl_8004227C
/* 8004219C 0003F0FC 80 04 03 34 */ lwz r0, 0x334(r4)
/* 800421A0 0003F100 2C 00 00 0A */ cmpwi r0, 0xa
/* 800421A4 0003F104 41 82 00 D8 */ beq lbl_8004227C
/* 800421A8 0003F108 80 BD 08 4C */ lwz r5, 0x84c(r29)
/* 800421AC 0003F10C 38 61 00 28 */ addi r3, r1, 0x28
/* 800421B0 0003F110 38 84 02 20 */ addi r4, r4, 0x220
/* 800421B4 0003F114 C0 45 00 58 */ lfs f2, 0x58(r5)
/* 800421B8 0003F118 C0 25 00 48 */ lfs f1, 0x48(r5)
/* 800421BC 0003F11C C0 05 00 38 */ lfs f0, 0x38(r5)
/* 800421C0 0003F120 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 800421C4 0003F124 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 800421C8 0003F128 D0 41 00 18 */ stfs f2, 0x18(r1)
/* 800421CC 0003F12C 48 2D 09 A9 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 800421D0 0003F130 C0 61 00 3C */ lfs f3, 0x3c(r1)
/* 800421D4 0003F134 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 800421D8 0003F138 C0 81 00 2C */ lfs f4, 0x2c(r1)
/* 800421DC 0003F13C EC 03 00 32 */ fmuls f0, f3, f0
/* 800421E0 0003F140 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 800421E4 0003F144 80 7D 08 4C */ lwz r3, 0x84c(r29)
/* 800421E8 0003F148 C0 41 00 4C */ lfs f2, 0x4c(r1)
/* 800421EC 0003F14C 80 03 03 B8 */ lwz r0, 0x3b8(r3)
/* 800421F0 0003F150 EC 04 00 7A */ fmadds f0, f4, f1, f0
/* 800421F4 0003F154 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 800421F8 0003F158 2C 00 00 00 */ cmpwi r0, 0
/* 800421FC 0003F15C D0 81 00 1C */ stfs f4, 0x1c(r1)
/* 80042200 0003F160 EC 22 00 7A */ fmadds f1, f2, f1, f0
/* 80042204 0003F164 D0 61 00 20 */ stfs f3, 0x20(r1)
/* 80042208 0003F168 D0 41 00 24 */ stfs f2, 0x24(r1)
/* 8004220C 0003F16C 40 82 00 14 */ bne lbl_80042220
/* 80042210 0003F170 40 82 00 6C */ bne lbl_8004227C
/* 80042214 0003F174 C0 02 84 90 */ lfs f0, lbl_805AA1B0@sda21(r2)
/* 80042218 0003F178 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8004221C 0003F17C 40 81 00 60 */ ble lbl_8004227C
lbl_80042220:
/* 80042220 0003F180 80 7C 07 40 */ lwz r3, 0x740(r28)
/* 80042224 0003F184 88 03 03 B2 */ lbz r0, 0x3b2(r3)
/* 80042228 0003F188 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 8004222C 0003F18C 41 82 00 0C */ beq lbl_80042238
/* 80042230 0003F190 7F E6 FB 78 */ mr r6, r31
/* 80042234 0003F194 48 00 00 34 */ b lbl_80042268
lbl_80042238:
/* 80042238 0003F198 C0 22 84 7C */ lfs f1, lbl_805AA19C@sda21(r2)
/* 8004223C 0003F19C 38 80 00 00 */ li r4, 0
/* 80042240 0003F1A0 38 00 00 03 */ li r0, 3
/* 80042244 0003F1A4 98 81 00 08 */ stb r4, 8(r1)
/* 80042248 0003F1A8 FC 40 08 90 */ fmr f2, f1
/* 8004224C 0003F1AC 38 61 00 0C */ addi r3, r1, 0xc
/* 80042250 0003F1B0 FC 60 08 90 */ fmr f3, f1
/* 80042254 0003F1B4 98 81 00 09 */ stb r4, 9(r1)
/* 80042258 0003F1B8 FC 80 08 90 */ fmr f4, f1
/* 8004225C 0003F1BC B0 01 00 0A */ sth r0, 0xa(r1)
/* 80042260 0003F1C0 48 32 11 8D */ bl __ct__6CColorFffff
/* 80042264 0003F1C4 38 C1 00 08 */ addi r6, r1, 8
lbl_80042268:
/* 80042268 0003F1C8 80 7C 07 40 */ lwz r3, 0x740(r28)
/* 8004226C 0003F1CC 7F A4 EB 78 */ mr r4, r29
/* 80042270 0003F1D0 7F C5 F3 78 */ mr r5, r30
/* 80042274 0003F1D4 7F 87 E3 78 */ mr r7, r28
/* 80042278 0003F1D8 48 0D D3 85 */ bl Render__11CGrappleArmCFRC13CStateManagerRC9CVector3fRC11CModelFlagsPC12CActorLights
lbl_8004227C:
/* 8004227C 0003F1DC 80 01 00 74 */ lwz r0, 0x74(r1)
/* 80042280 0003F1E0 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 80042284 0003F1E4 83 C1 00 68 */ lwz r30, 0x68(r1)
/* 80042288 0003F1E8 83 A1 00 64 */ lwz r29, 0x64(r1)
/* 8004228C 0003F1EC 83 81 00 60 */ lwz r28, 0x60(r1)
/* 80042290 0003F1F0 7C 08 03 A6 */ mtlr r0
/* 80042294 0003F1F4 38 21 00 70 */ addi r1, r1, 0x70
/* 80042298 0003F1F8 4E 80 00 20 */ blr
.global PreRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f
PreRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f:
/* 8004229C 0003F1FC 4E 80 00 20 */ blr
.global ConvertToScreenSpace__10CPlayerGunCFRC9CVector3fRC11CGameCamera
ConvertToScreenSpace__10CPlayerGunCFRC9CVector3fRC11CGameCamera:
/* 800422A0 0003F200 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 800422A4 0003F204 7C 08 02 A6 */ mflr r0
/* 800422A8 0003F208 38 86 00 34 */ addi r4, r6, 0x34
/* 800422AC 0003F20C 90 01 00 84 */ stw r0, 0x84(r1)
/* 800422B0 0003F210 93 E1 00 7C */ stw r31, 0x7c(r1)
/* 800422B4 0003F214 7C 7F 1B 78 */ mr r31, r3
/* 800422B8 0003F218 38 61 00 14 */ addi r3, r1, 0x14
/* 800422BC 0003F21C C0 25 00 08 */ lfs f1, 8(r5)
/* 800422C0 0003F220 C0 06 00 60 */ lfs f0, 0x60(r6)
/* 800422C4 0003F224 C0 65 00 04 */ lfs f3, 4(r5)
/* 800422C8 0003F228 EC 81 00 28 */ fsubs f4, f1, f0
/* 800422CC 0003F22C C0 46 00 50 */ lfs f2, 0x50(r6)
/* 800422D0 0003F230 C0 25 00 00 */ lfs f1, 0(r5)
/* 800422D4 0003F234 38 A1 00 08 */ addi r5, r1, 8
/* 800422D8 0003F238 C0 06 00 40 */ lfs f0, 0x40(r6)
/* 800422DC 0003F23C EC 43 10 28 */ fsubs f2, f3, f2
/* 800422E0 0003F240 EC 01 00 28 */ fsubs f0, f1, f0
/* 800422E4 0003F244 D0 81 00 10 */ stfs f4, 0x10(r1)
/* 800422E8 0003F248 D0 41 00 0C */ stfs f2, 0xc(r1)
/* 800422EC 0003F24C D0 01 00 08 */ stfs f0, 8(r1)
/* 800422F0 0003F250 48 2D 07 35 */ bl TransposeRotate__12CTransform4fCFRC9CVector3f
/* 800422F4 0003F254 C0 61 00 14 */ lfs f3, 0x14(r1)
/* 800422F8 0003F258 38 00 00 00 */ li r0, 0
/* 800422FC 0003F25C C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 80042300 0003F260 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 80042304 0003F264 C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 80042308 0003F268 FC 00 18 00 */ fcmpu cr0, f0, f3
/* 8004230C 0003F26C D0 61 00 20 */ stfs f3, 0x20(r1)
/* 80042310 0003F270 D0 41 00 24 */ stfs f2, 0x24(r1)
/* 80042314 0003F274 D0 21 00 28 */ stfs f1, 0x28(r1)
/* 80042318 0003F278 40 82 00 14 */ bne lbl_8004232C
/* 8004231C 0003F27C FC 00 10 00 */ fcmpu cr0, f0, f2
/* 80042320 0003F280 40 82 00 0C */ bne lbl_8004232C
/* 80042324 0003F284 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 80042328 0003F288 41 82 00 08 */ beq lbl_80042330
lbl_8004232C:
/* 8004232C 0003F28C 38 00 00 01 */ li r0, 1
lbl_80042330:
/* 80042330 0003F290 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 80042334 0003F294 41 82 00 20 */ beq lbl_80042354
/* 80042338 0003F298 38 61 00 2C */ addi r3, r1, 0x2c
/* 8004233C 0003F29C 48 2C 9F F5 */ bl GetPerspectiveProjectionMatrix__9CGraphicsFv
/* 80042340 0003F2A0 7F E3 FB 78 */ mr r3, r31
/* 80042344 0003F2A4 38 81 00 2C */ addi r4, r1, 0x2c
/* 80042348 0003F2A8 38 A1 00 20 */ addi r5, r1, 0x20
/* 8004234C 0003F2AC 48 2C E4 05 */ bl MultiplyOneOverW__9CMatrix4fCFRC9CVector3f
/* 80042350 0003F2B0 48 00 00 18 */ b lbl_80042368
lbl_80042354:
/* 80042354 0003F2B4 C0 22 84 C8 */ lfs f1, lbl_805AA1E8@sda21(r2)
/* 80042358 0003F2B8 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 8004235C 0003F2BC D0 3F 00 00 */ stfs f1, 0(r31)
/* 80042360 0003F2C0 D0 3F 00 04 */ stfs f1, 4(r31)
/* 80042364 0003F2C4 D0 1F 00 08 */ stfs f0, 8(r31)
lbl_80042368:
/* 80042368 0003F2C8 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8004236C 0003F2CC 83 E1 00 7C */ lwz r31, 0x7c(r1)
/* 80042370 0003F2D0 7C 08 03 A6 */ mtlr r0
/* 80042374 0003F2D4 38 21 00 80 */ addi r1, r1, 0x80
/* 80042378 0003F2D8 4E 80 00 20 */ blr
.global TouchModel__10CPlayerGunCFRC13CStateManager
TouchModel__10CPlayerGunCFRC13CStateManager:
/* 8004237C 0003F2DC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80042380 0003F2E0 7C 08 02 A6 */ mflr r0
/* 80042384 0003F2E4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80042388 0003F2E8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004238C 0003F2EC 7C 9F 23 78 */ mr r31, r4
/* 80042390 0003F2F0 93 C1 00 08 */ stw r30, 8(r1)
/* 80042394 0003F2F4 7C 7E 1B 78 */ mr r30, r3
/* 80042398 0003F2F8 80 64 08 4C */ lwz r3, 0x84c(r4)
/* 8004239C 0003F2FC 80 03 02 F8 */ lwz r0, 0x2f8(r3)
/* 800423A0 0003F300 2C 00 00 01 */ cmpwi r0, 1
/* 800423A4 0003F304 41 82 00 AC */ beq lbl_80042450
/* 800423A8 0003F308 80 7E 07 3C */ lwz r3, 0x73c(r30)
/* 800423AC 0003F30C 38 A0 00 00 */ li r5, 0
/* 800423B0 0003F310 48 0D 39 61 */ bl Touch__10CModelDataCFRC13CStateManageri
/* 800423B4 0003F314 80 1E 03 3C */ lwz r0, 0x33c(r30)
/* 800423B8 0003F318 2C 00 00 02 */ cmpwi r0, 2
/* 800423BC 0003F31C 41 82 00 2C */ beq lbl_800423E8
/* 800423C0 0003F320 40 80 00 40 */ bge lbl_80042400
/* 800423C4 0003F324 2C 00 00 01 */ cmpwi r0, 1
/* 800423C8 0003F328 40 80 00 08 */ bge lbl_800423D0
/* 800423CC 0003F32C 48 00 00 34 */ b lbl_80042400
lbl_800423D0:
/* 800423D0 0003F330 80 7E 07 5C */ lwz r3, 0x75c(r30)
/* 800423D4 0003F334 28 03 00 00 */ cmplwi r3, 0
/* 800423D8 0003F338 41 82 00 50 */ beq lbl_80042428
/* 800423DC 0003F33C 7F E4 FB 78 */ mr r4, r31
/* 800423E0 0003F340 48 17 92 0D */ bl Touch__10CGunWeaponFRC13CStateManager
/* 800423E4 0003F344 48 00 00 44 */ b lbl_80042428
lbl_800423E8:
/* 800423E8 0003F348 80 7E 07 38 */ lwz r3, 0x738(r30)
/* 800423EC 0003F34C 28 03 00 00 */ cmplwi r3, 0
/* 800423F0 0003F350 41 82 00 38 */ beq lbl_80042428
/* 800423F4 0003F354 7F E4 FB 78 */ mr r4, r31
/* 800423F8 0003F358 48 17 91 F5 */ bl Touch__10CGunWeaponFRC13CStateManager
/* 800423FC 0003F35C 48 00 00 2C */ b lbl_80042428
lbl_80042400:
/* 80042400 0003F360 88 1E 08 33 */ lbz r0, 0x833(r30)
/* 80042404 0003F364 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 80042408 0003F368 40 82 00 14 */ bne lbl_8004241C
/* 8004240C 0003F36C 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 80042410 0003F370 7F E4 FB 78 */ mr r4, r31
/* 80042414 0003F374 48 17 91 D9 */ bl Touch__10CGunWeaponFRC13CStateManager
/* 80042418 0003F378 48 00 00 10 */ b lbl_80042428
lbl_8004241C:
/* 8004241C 0003F37C 80 7E 07 5C */ lwz r3, 0x75c(r30)
/* 80042420 0003F380 7F E4 FB 78 */ mr r4, r31
/* 80042424 0003F384 48 17 91 C9 */ bl Touch__10CGunWeaponFRC13CStateManager
lbl_80042428:
/* 80042428 0003F388 80 7E 07 2C */ lwz r3, 0x72c(r30)
/* 8004242C 0003F38C 7F E4 FB 78 */ mr r4, r31
/* 80042430 0003F390 48 17 91 89 */ bl TouchHolo__10CGunWeaponFRC13CStateManager
/* 80042434 0003F394 80 7E 07 40 */ lwz r3, 0x740(r30)
/* 80042438 0003F398 7F E4 FB 78 */ mr r4, r31
/* 8004243C 0003F39C 48 0D D4 5D */ bl TouchModel__11CGrappleArmCFRC13CStateManager
/* 80042440 0003F3A0 7F E4 FB 78 */ mr r4, r31
/* 80042444 0003F3A4 38 7E 06 E0 */ addi r3, r30, 0x6e0
/* 80042448 0003F3A8 38 A0 00 00 */ li r5, 0
/* 8004244C 0003F3AC 48 0D 38 C5 */ bl Touch__10CModelDataCFRC13CStateManageri
lbl_80042450:
/* 80042450 0003F3B0 80 7E 07 34 */ lwz r3, 0x734(r30)
/* 80042454 0003F3B4 28 03 00 00 */ cmplwi r3, 0
/* 80042458 0003F3B8 41 82 00 18 */ beq lbl_80042470
/* 8004245C 0003F3BC 7F E4 FB 78 */ mr r4, r31
/* 80042460 0003F3C0 48 17 91 8D */ bl Touch__10CGunWeaponFRC13CStateManager
/* 80042464 0003F3C4 80 7E 07 34 */ lwz r3, 0x734(r30)
/* 80042468 0003F3C8 7F E4 FB 78 */ mr r4, r31
/* 8004246C 0003F3CC 48 17 91 4D */ bl TouchHolo__10CGunWeaponFRC13CStateManager
lbl_80042470:
/* 80042470 0003F3D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80042474 0003F3D4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80042478 0003F3D8 83 C1 00 08 */ lwz r30, 8(r1)
/* 8004247C 0003F3DC 7C 08 03 A6 */ mtlr r0
/* 80042480 0003F3E0 38 21 00 10 */ addi r1, r1, 0x10
/* 80042484 0003F3E4 4E 80 00 20 */ blr
.global DrawScreenTex__Ff
DrawScreenTex__Ff:
/* 80042488 0003F3E8 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8004248C 0003F3EC 7C 08 02 A6 */ mflr r0
/* 80042490 0003F3F0 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 80042494 0003F3F4 DB E1 00 90 */ stfd f31, 0x90(r1)
/* 80042498 0003F3F8 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0
/* 8004249C 0003F3FC FF E0 08 90 */ fmr f31, f1
/* 800424A0 0003F400 3C 60 80 5A */ lis r3, mViewMatrix__9CGraphics@ha
/* 800424A4 0003F404 38 83 61 D4 */ addi r4, r3, mViewMatrix__9CGraphics@l
/* 800424A8 0003F408 38 61 00 3C */ addi r3, r1, 0x3c
/* 800424AC 0003F40C 48 2D 06 C9 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 800424B0 0003F410 48 2C 79 AD */ bl GetProjectionState__9CGraphicsFv
/* 800424B4 0003F414 88 03 00 00 */ lbz r0, 0(r3)
/* 800424B8 0003F418 3C C0 43 30 */ lis r6, 0x4330
/* 800424BC 0003F41C 3C 80 80 3F */ lis r4, mViewport__9CGraphics@ha
/* 800424C0 0003F420 85 04 D9 10 */ lwzu r8, mViewport__9CGraphics@l(r4)
/* 800424C4 0003F424 98 01 00 20 */ stb r0, 0x20(r1)
/* 800424C8 0003F428 6D 07 80 00 */ xoris r7, r8, 0x8000
/* 800424CC 0003F42C 80 A4 00 08 */ lwz r5, 8(r4)
/* 800424D0 0003F430 C0 03 00 04 */ lfs f0, 4(r3)
/* 800424D4 0003F434 81 24 00 04 */ lwz r9, 4(r4)
/* 800424D8 0003F438 7C A8 2A 14 */ add r5, r8, r5
/* 800424DC 0003F43C D0 01 00 24 */ stfs f0, 0x24(r1)
/* 800424E0 0003F440 6C A5 80 00 */ xoris r5, r5, 0x8000
/* 800424E4 0003F444 80 84 00 0C */ lwz r4, 0xc(r4)
/* 800424E8 0003F448 6D 20 80 00 */ xoris r0, r9, 0x8000
/* 800424EC 0003F44C C0 03 00 08 */ lfs f0, 8(r3)
/* 800424F0 0003F450 7C 89 22 14 */ add r4, r9, r4
/* 800424F4 0003F454 90 C1 00 70 */ stw r6, 0x70(r1)
/* 800424F8 0003F458 6C 84 80 00 */ xoris r4, r4, 0x8000
/* 800424FC 0003F45C C8 82 84 B0 */ lfd f4, lbl_805AA1D0@sda21(r2)
/* 80042500 0003F460 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 80042504 0003F464 C0 A2 84 C8 */ lfs f5, lbl_805AA1E8@sda21(r2)
/* 80042508 0003F468 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 8004250C 0003F46C 90 E1 00 74 */ stw r7, 0x74(r1)
/* 80042510 0003F470 C0 C2 84 7C */ lfs f6, lbl_805AA19C@sda21(r2)
/* 80042514 0003F474 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 80042518 0003F478 C8 01 00 70 */ lfd f0, 0x70(r1)
/* 8004251C 0003F47C C0 43 00 10 */ lfs f2, 0x10(r3)
/* 80042520 0003F480 EC 20 20 28 */ fsubs f1, f0, f4
/* 80042524 0003F484 90 A1 00 7C */ stw r5, 0x7c(r1)
/* 80042528 0003F488 D0 41 00 30 */ stfs f2, 0x30(r1)
/* 8004252C 0003F48C C0 03 00 14 */ lfs f0, 0x14(r3)
/* 80042530 0003F490 90 C1 00 78 */ stw r6, 0x78(r1)
/* 80042534 0003F494 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 80042538 0003F498 C8 01 00 78 */ lfd f0, 0x78(r1)
/* 8004253C 0003F49C C0 E3 00 18 */ lfs f7, 0x18(r3)
/* 80042540 0003F4A0 90 81 00 84 */ stw r4, 0x84(r1)
/* 80042544 0003F4A4 EC 40 20 28 */ fsubs f2, f0, f4
/* 80042548 0003F4A8 90 C1 00 80 */ stw r6, 0x80(r1)
/* 8004254C 0003F4AC C8 01 00 80 */ lfd f0, 0x80(r1)
/* 80042550 0003F4B0 90 01 00 8C */ stw r0, 0x8c(r1)
/* 80042554 0003F4B4 EC 60 20 28 */ fsubs f3, f0, f4
/* 80042558 0003F4B8 90 C1 00 88 */ stw r6, 0x88(r1)
/* 8004255C 0003F4BC C8 01 00 88 */ lfd f0, 0x88(r1)
/* 80042560 0003F4C0 D0 E1 00 38 */ stfs f7, 0x38(r1)
/* 80042564 0003F4C4 EC 80 20 28 */ fsubs f4, f0, f4
/* 80042568 0003F4C8 48 2C 9F ED */ bl SetOrtho__9CGraphicsFffffff
/* 8004256C 0003F4CC 3C 60 80 5A */ lis r3, sIdentity__12CTransform4f@ha
/* 80042570 0003F4D0 38 63 66 70 */ addi r3, r3, sIdentity__12CTransform4f@l
/* 80042574 0003F4D4 48 2C A1 D9 */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 80042578 0003F4D8 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 8004257C 0003F4DC 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 80042580 0003F4E0 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 80042584 0003F4E4 81 83 00 00 */ lwz r12, 0(r3)
/* 80042588 0003F4E8 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 8004258C 0003F4EC 7D 89 03 A6 */ mtctr r12
/* 80042590 0003F4F0 4E 80 04 21 */ bctrl
/* 80042594 0003F4F4 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80042598 0003F4F8 81 83 00 00 */ lwz r12, 0(r3)
/* 8004259C 0003F4FC 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 800425A0 0003F500 7D 89 03 A6 */ mtctr r12
/* 800425A4 0003F504 4E 80 04 21 */ bctrl
/* 800425A8 0003F508 38 60 00 01 */ li r3, 1
/* 800425AC 0003F50C 38 80 00 06 */ li r4, 6
/* 800425B0 0003F510 38 A0 00 01 */ li r5, 1
/* 800425B4 0003F514 48 2C 94 E1 */ bl SetDepthWriteMode__9CGraphicsFb8ERglEnumb
/* 800425B8 0003F518 80 E2 C7 A8 */ lwz r7, lbl_805AE4C8@sda21(r2)
/* 800425BC 0003F51C 38 60 01 40 */ li r3, 0x140
/* 800425C0 0003F520 38 80 00 E0 */ li r4, 0xe0
/* 800425C4 0003F524 38 A0 00 06 */ li r5, 6
/* 800425C8 0003F528 38 C0 00 00 */ li r6, 0
/* 800425CC 0003F52C 48 2C 7A 55 */ bl LoadDolphinSpareTexture__9CGraphicsFii9_GXTexFmtPv11_GXTexMapID
/* 800425D0 0003F530 3C 80 80 3D */ lis r4, lbl_803CCE98@ha
/* 800425D4 0003F534 38 61 00 08 */ addi r3, r1, 8
/* 800425D8 0003F538 39 24 CE 98 */ addi r9, r4, lbl_803CCE98@l
/* 800425DC 0003F53C 81 09 00 00 */ lwz r8, 0(r9)
/* 800425E0 0003F540 80 E9 00 04 */ lwz r7, 4(r9)
/* 800425E4 0003F544 80 C9 00 08 */ lwz r6, 8(r9)
/* 800425E8 0003F548 80 A9 00 0C */ lwz r5, 0xc(r9)
/* 800425EC 0003F54C 80 89 00 10 */ lwz r4, 0x10(r9)
/* 800425F0 0003F550 80 09 00 14 */ lwz r0, 0x14(r9)
/* 800425F4 0003F554 91 01 00 08 */ stw r8, 8(r1)
/* 800425F8 0003F558 90 E1 00 0C */ stw r7, 0xc(r1)
/* 800425FC 0003F55C 90 C1 00 10 */ stw r6, 0x10(r1)
/* 80042600 0003F560 90 A1 00 14 */ stw r5, 0x14(r1)
/* 80042604 0003F564 90 81 00 18 */ stw r4, 0x18(r1)
/* 80042608 0003F568 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8004260C 0003F56C 48 2C 58 1D */ bl SetVtxDescv__3CGXFPC14_GXVtxDescList
/* 80042610 0003F570 38 60 00 00 */ li r3, 0
/* 80042614 0003F574 48 2C 68 3D */ bl SetNumChans__3CGXFUc
/* 80042618 0003F578 38 60 00 01 */ li r3, 1
/* 8004261C 0003F57C 48 2C 67 F9 */ bl SetNumTexGens__3CGXFUc
/* 80042620 0003F580 38 60 00 01 */ li r3, 1
/* 80042624 0003F584 48 2C 66 6D */ bl SetNumTevStages__3CGXFUc
/* 80042628 0003F588 80 A2 C7 A8 */ lwz r5, lbl_805AE4C8@sda21(r2)
/* 8004262C 0003F58C 38 60 00 00 */ li r3, 0
/* 80042630 0003F590 38 80 00 00 */ li r4, 0
/* 80042634 0003F594 38 C0 00 FF */ li r6, 0xff
/* 80042638 0003F598 48 2C 63 15 */ bl SetTevOrder__3CGXF13_GXTevStageID13_GXTexCoordID11_GXTexMapID12_GXChannelID
/* 8004263C 0003F59C 38 60 00 00 */ li r3, 0
/* 80042640 0003F5A0 38 80 00 00 */ li r4, 0
/* 80042644 0003F5A4 38 A0 00 00 */ li r5, 0
/* 80042648 0003F5A8 38 C0 00 00 */ li r6, 0
/* 8004264C 0003F5AC 38 E0 00 00 */ li r7, 0
/* 80042650 0003F5B0 39 00 00 00 */ li r8, 0
/* 80042654 0003F5B4 39 20 00 02 */ li r9, 2
/* 80042658 0003F5B8 48 2C 66 75 */ bl SetChanCtrl__3CGXFQ23CGX10EChannelIdUc11_GXColorSrc11_GXColorSrc10_GXLightID12_GXDiffuseFn9_GXAttnFn
/* 8004265C 0003F5BC 38 60 00 98 */ li r3, 0x98
/* 80042660 0003F5C0 38 80 00 00 */ li r4, 0
/* 80042664 0003F5C4 38 A0 00 04 */ li r5, 4
/* 80042668 0003F5C8 48 2C 5F 1D */ bl Begin__3CGXF12_GXPrimitive9_GXVtxFmtUs
/* 8004266C 0003F5CC C0 82 85 20 */ lfs f4, lbl_805AA240@sda21(r2)
/* 80042670 0003F5D0 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80042674 0003F5D4 C0 62 84 6C */ lfs f3, lbl_805AA18C@sda21(r2)
/* 80042678 0003F5D8 D0 83 80 00 */ stfs f4, 0xCC008000@l(r3)
/* 8004267C 0003F5DC C0 42 84 7C */ lfs f2, lbl_805AA19C@sda21(r2)
/* 80042680 0003F5E0 D3 E3 80 00 */ stfs f31, 0xCC008000@l(r3)
/* 80042684 0003F5E4 C0 22 85 1C */ lfs f1, lbl_805AA23C@sda21(r2)
/* 80042688 0003F5E8 D0 63 80 00 */ stfs f3, 0xCC008000@l(r3)
/* 8004268C 0003F5EC C0 02 85 24 */ lfs f0, lbl_805AA244@sda21(r2)
/* 80042690 0003F5F0 D0 63 80 00 */ stfs f3, 0xCC008000@l(r3)
/* 80042694 0003F5F4 D0 43 80 00 */ stfs f2, 0xCC008000@l(r3)
/* 80042698 0003F5F8 D0 23 80 00 */ stfs f1, 0xCC008000@l(r3)
/* 8004269C 0003F5FC D3 E3 80 00 */ stfs f31, 0xCC008000@l(r3)
/* 800426A0 0003F600 D0 63 80 00 */ stfs f3, 0xCC008000@l(r3)
/* 800426A4 0003F604 D0 43 80 00 */ stfs f2, 0xCC008000@l(r3)
/* 800426A8 0003F608 D0 43 80 00 */ stfs f2, 0xCC008000@l(r3)
/* 800426AC 0003F60C D0 83 80 00 */ stfs f4, 0xCC008000@l(r3)
/* 800426B0 0003F610 D3 E3 80 00 */ stfs f31, 0xCC008000@l(r3)
/* 800426B4 0003F614 D0 03 80 00 */ stfs f0, 0xCC008000@l(r3)
/* 800426B8 0003F618 D0 63 80 00 */ stfs f3, 0xCC008000@l(r3)
/* 800426BC 0003F61C D0 63 80 00 */ stfs f3, 0xCC008000@l(r3)
/* 800426C0 0003F620 D0 23 80 00 */ stfs f1, 0xCC008000@l(r3)
/* 800426C4 0003F624 D3 E3 80 00 */ stfs f31, 0xCC008000@l(r3)
/* 800426C8 0003F628 D0 03 80 00 */ stfs f0, 0xCC008000@l(r3)
/* 800426CC 0003F62C D0 43 80 00 */ stfs f2, 0xCC008000@l(r3)
/* 800426D0 0003F630 D0 63 80 00 */ stfs f3, 0xCC008000@l(r3)
/* 800426D4 0003F634 48 2C 5E AD */ bl End__3CGXFv
/* 800426D8 0003F638 38 60 00 01 */ li r3, 1
/* 800426DC 0003F63C 38 80 00 03 */ li r4, 3
/* 800426E0 0003F640 38 A0 00 01 */ li r5, 1
/* 800426E4 0003F644 48 2C 93 B1 */ bl SetDepthWriteMode__9CGraphicsFb8ERglEnumb
/* 800426E8 0003F648 38 61 00 3C */ addi r3, r1, 0x3c
/* 800426EC 0003F64C 48 2C A0 61 */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 800426F0 0003F650 38 61 00 20 */ addi r3, r1, 0x20
/* 800426F4 0003F654 48 2C 77 0D */ bl SetProjectionState__9CGraphicsFRCQ29CGraphics16CProjectionState
/* 800426F8 0003F658 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0
/* 800426FC 0003F65C 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 80042700 0003F660 CB E1 00 90 */ lfd f31, 0x90(r1)
/* 80042704 0003F664 7C 08 03 A6 */ mtlr r0
/* 80042708 0003F668 38 21 00 A0 */ addi r1, r1, 0xa0
/* 8004270C 0003F66C 4E 80 00 20 */ blr
.global CopyScreenTex__Fv
CopyScreenTex__Fv:
/* 80042710 0003F670 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80042714 0003F674 7C 08 02 A6 */ mflr r0
/* 80042718 0003F678 38 60 01 40 */ li r3, 0x140
/* 8004271C 0003F67C 38 80 00 E0 */ li r4, 0xe0
/* 80042720 0003F680 90 01 00 14 */ stw r0, 0x14(r1)
/* 80042724 0003F684 38 A0 01 40 */ li r5, 0x140
/* 80042728 0003F688 38 C0 00 E0 */ li r6, 0xe0
/* 8004272C 0003F68C 48 33 66 89 */ bl GXSetTexCopySrc
/* 80042730 0003F690 38 60 01 40 */ li r3, 0x140
/* 80042734 0003F694 38 80 00 E0 */ li r4, 0xe0
/* 80042738 0003F698 38 A0 00 06 */ li r5, 6
/* 8004273C 0003F69C 38 C0 00 00 */ li r6, 0
/* 80042740 0003F6A0 48 33 67 41 */ bl GXSetTexCopyDst
/* 80042744 0003F6A4 80 6D A8 28 */ lwz r3, mpSpareBuffer__9CGraphics@sda21(r13)
/* 80042748 0003F6A8 38 80 00 00 */ li r4, 0
/* 8004274C 0003F6AC 48 33 6D E9 */ bl GXCopyTex
/* 80042750 0003F6B0 48 33 5E 15 */ bl GXPixModeSync
/* 80042754 0003F6B4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80042758 0003F6B8 7C 08 03 A6 */ mtlr r0
/* 8004275C 0003F6BC 38 21 00 10 */ addi r1, r1, 0x10
/* 80042760 0003F6C0 4E 80 00 20 */ blr
.global PreRender__10CPlayerGunFR13CStateManagerRC14CFrustumPlanesRC9CVector3f
PreRender__10CPlayerGunFR13CStateManagerRC14CFrustumPlanesRC9CVector3f:
/* 80042764 0003F6C4 94 21 FE D0 */ stwu r1, -0x130(r1)
/* 80042768 0003F6C8 7C 08 02 A6 */ mflr r0
/* 8004276C 0003F6CC 90 01 01 34 */ stw r0, 0x134(r1)
/* 80042770 0003F6D0 BF 61 01 1C */ stmw r27, 0x11c(r1)
/* 80042774 0003F6D4 7C 7B 1B 78 */ mr r27, r3
/* 80042778 0003F6D8 7C 9C 23 78 */ mr r28, r4
/* 8004277C 0003F6DC 7C BD 2B 78 */ mr r29, r5
/* 80042780 0003F6E0 7C DE 33 78 */ mr r30, r6
/* 80042784 0003F6E4 80 64 08 B8 */ lwz r3, 0x8b8(r4)
/* 80042788 0003F6E8 80 63 00 00 */ lwz r3, 0(r3)
/* 8004278C 0003F6EC 80 03 00 14 */ lwz r0, 0x14(r3)
/* 80042790 0003F6F0 2C 00 00 02 */ cmpwi r0, 2
/* 80042794 0003F6F4 41 82 02 08 */ beq lbl_8004299C
/* 80042798 0003F6F8 48 04 ED C1 */ bl GetActiveVisor__12CPlayerStateCFRC13CStateManager
/* 8004279C 0003F6FC 7C 7F 1B 78 */ mr r31, r3
/* 800427A0 0003F700 2C 1F 00 03 */ cmpwi r31, 3
/* 800427A4 0003F704 41 82 00 14 */ beq lbl_800427B8
/* 800427A8 0003F708 40 80 01 A4 */ bge lbl_8004294C
/* 800427AC 0003F70C 2C 1F 00 00 */ cmpwi r31, 0
/* 800427B0 0003F710 41 82 00 5C */ beq lbl_8004280C
/* 800427B4 0003F714 48 00 01 98 */ b lbl_8004294C
lbl_800427B8:
/* 800427B8 0003F718 C0 62 84 FC */ lfs f3, lbl_805AA21C@sda21(r2)
/* 800427BC 0003F71C 38 81 00 1C */ addi r4, r1, 0x1c
/* 800427C0 0003F720 C0 5B 03 80 */ lfs f2, 0x380(r27)
/* 800427C4 0003F724 38 6D 82 4C */ addi r3, r13, lbl_805A6E0C@sda21
/* 800427C8 0003F728 C0 22 85 28 */ lfs f1, lbl_805AA248@sda21(r2)
/* 800427CC 0003F72C 38 AD 82 50 */ addi r5, r13, lbl_805A6E10@sda21
/* 800427D0 0003F730 C0 1B 03 78 */ lfs f0, 0x378(r27)
/* 800427D4 0003F734 EC 23 08 BA */ fmadds f1, f3, f2, f1
/* 800427D8 0003F738 EC 01 00 28 */ fsubs f0, f1, f0
/* 800427DC 0003F73C D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 800427E0 0003F740 4B FC 9A D5 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 800427E4 0003F744 C0 23 00 00 */ lfs f1, 0(r3)
/* 800427E8 0003F748 38 61 00 18 */ addi r3, r1, 0x18
/* 800427EC 0003F74C C0 82 84 7C */ lfs f4, lbl_805AA19C@sda21(r2)
/* 800427F0 0003F750 FC 40 08 90 */ fmr f2, f1
/* 800427F4 0003F754 FC 60 08 90 */ fmr f3, f1
/* 800427F8 0003F758 48 32 0B F5 */ bl __ct__6CColorFffff
/* 800427FC 0003F75C 7C 64 1B 78 */ mr r4, r3
/* 80042800 0003F760 7F 63 DB 78 */ mr r3, r27
/* 80042804 0003F764 48 0C 08 AD */ bl BuildConstantAmbientLighting__12CActorLightsFRC6CColor
/* 80042808 0003F768 48 00 01 44 */ b lbl_8004294C
lbl_8004280C:
/* 8004280C 0003F76C 38 61 00 50 */ addi r3, r1, 0x50
/* 80042810 0003F770 38 9B 04 A8 */ addi r4, r27, 0x4a8
/* 80042814 0003F774 48 2D 03 61 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80042818 0003F778 7F C4 F3 78 */ mr r4, r30
/* 8004281C 0003F77C 38 61 00 80 */ addi r3, r1, 0x80
/* 80042820 0003F780 48 2D 09 21 */ bl Translate__12CTransform4fFRC9CVector3f
/* 80042824 0003F784 38 61 00 B0 */ addi r3, r1, 0xb0
/* 80042828 0003F788 38 81 00 80 */ addi r4, r1, 0x80
/* 8004282C 0003F78C 38 A1 00 50 */ addi r5, r1, 0x50
/* 80042830 0003F790 48 2D 01 21 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80042834 0003F794 38 61 00 E0 */ addi r3, r1, 0xe0
/* 80042838 0003F798 38 81 00 B0 */ addi r4, r1, 0xb0
/* 8004283C 0003F79C 48 2D 03 39 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80042840 0003F7A0 80 9B 07 2C */ lwz r4, 0x72c(r27)
/* 80042844 0003F7A4 38 61 00 20 */ addi r3, r1, 0x20
/* 80042848 0003F7A8 38 A1 00 E0 */ addi r5, r1, 0xe0
/* 8004284C 0003F7AC 48 17 8E 09 */ bl GetBounds__10CGunWeaponCFRC12CTransform4f
/* 80042850 0003F7B0 C0 A1 00 20 */ lfs f5, 0x20(r1)
/* 80042854 0003F7B4 C0 81 00 24 */ lfs f4, 0x24(r1)
/* 80042858 0003F7B8 C0 61 00 28 */ lfs f3, 0x28(r1)
/* 8004285C 0003F7BC C0 41 00 2C */ lfs f2, 0x2c(r1)
/* 80042860 0003F7C0 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 80042864 0003F7C4 C0 01 00 34 */ lfs f0, 0x34(r1)
/* 80042868 0003F7C8 D0 A1 00 38 */ stfs f5, 0x38(r1)
/* 8004286C 0003F7CC 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13)
/* 80042870 0003F7D0 D0 81 00 3C */ stfs f4, 0x3c(r1)
/* 80042874 0003F7D4 D0 61 00 40 */ stfs f3, 0x40(r1)
/* 80042878 0003F7D8 D0 41 00 44 */ stfs f2, 0x44(r1)
/* 8004287C 0003F7DC D0 21 00 48 */ stfs f1, 0x48(r1)
/* 80042880 0003F7E0 D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 80042884 0003F7E4 80 7C 08 CC */ lwz r3, 0x8cc(r28)
/* 80042888 0003F7E8 7C 03 00 00 */ cmpw r3, r0
/* 8004288C 0003F7EC 41 82 00 4C */ beq lbl_800428D8
/* 80042890 0003F7F0 88 1B 02 98 */ lbz r0, 0x298(r27)
/* 80042894 0003F7F4 38 60 00 01 */ li r3, 1
/* 80042898 0003F7F8 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8004289C 0003F7FC C0 02 84 D8 */ lfs f0, lbl_805AA1F8@sda21(r2)
/* 800428A0 0003F800 98 1B 02 98 */ stb r0, 0x298(r27)
/* 800428A4 0003F804 7F 63 DB 78 */ mr r3, r27
/* 800428A8 0003F808 7F 84 E3 78 */ mr r4, r28
/* 800428AC 0003F80C 38 C1 00 38 */ addi r6, r1, 0x38
/* 800428B0 0003F810 D0 1B 02 D0 */ stfs f0, 0x2d0(r27)
/* 800428B4 0003F814 81 1C 08 CC */ lwz r8, 0x8cc(r28)
/* 800428B8 0003F818 80 FC 08 50 */ lwz r7, 0x850(r28)
/* 800428BC 0003F81C 55 05 18 38 */ slwi r5, r8, 3
/* 800428C0 0003F820 91 01 00 10 */ stw r8, 0x10(r1)
/* 800428C4 0003F824 80 E7 00 20 */ lwz r7, 0x20(r7)
/* 800428C8 0003F828 38 05 00 04 */ addi r0, r5, 4
/* 800428CC 0003F82C 91 01 00 14 */ stw r8, 0x14(r1)
/* 800428D0 0003F830 7C A7 00 2E */ lwzx r5, r7, r0
/* 800428D4 0003F834 48 0C 14 ED */ bl BuildAreaLightList__12CActorLightsFRC13CStateManagerRC9CGameAreaRC6CAABox
lbl_800428D8:
/* 800428D8 0003F838 7F 63 DB 78 */ mr r3, r27
/* 800428DC 0003F83C 7F 84 E3 78 */ mr r4, r28
/* 800428E0 0003F840 38 A1 00 38 */ addi r5, r1, 0x38
/* 800428E4 0003F844 48 0C 0E 2D */ bl BuildDynamicLightList__12CActorLightsFRC13CStateManagerRC6CAABox
/* 800428E8 0003F848 80 7B 02 9C */ lwz r3, 0x29c(r27)
/* 800428EC 0003F84C 80 02 94 00 */ lwz r0, lbl_805AB120@sda21(r2)
/* 800428F0 0003F850 7C 03 00 40 */ cmplw r3, r0
/* 800428F4 0003F854 41 82 00 50 */ beq lbl_80042944
/* 800428F8 0003F858 80 7B 07 2C */ lwz r3, 0x72c(r27)
/* 800428FC 0003F85C 81 83 00 00 */ lwz r12, 0(r3)
/* 80042900 0003F860 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 80042904 0003F864 7D 89 03 A6 */ mtctr r12
/* 80042908 0003F868 4E 80 04 21 */ bctrl
/* 8004290C 0003F86C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80042910 0003F870 41 82 00 3C */ beq lbl_8004294C
/* 80042914 0003F874 80 1C 08 CC */ lwz r0, 0x8cc(r28)
/* 80042918 0003F878 7F 84 E3 78 */ mr r4, r28
/* 8004291C 0003F87C 80 DB 02 A0 */ lwz r6, 0x2a0(r27)
/* 80042920 0003F880 38 A1 00 0C */ addi r5, r1, 0xc
/* 80042924 0003F884 90 01 00 08 */ stw r0, 8(r1)
/* 80042928 0003F888 38 E1 00 38 */ addi r7, r1, 0x38
/* 8004292C 0003F88C 39 00 00 01 */ li r8, 1
/* 80042930 0003F890 39 20 00 00 */ li r9, 0
/* 80042934 0003F894 90 01 00 0C */ stw r0, 0xc(r1)
/* 80042938 0003F898 80 7B 08 2C */ lwz r3, 0x82c(r27)
/* 8004293C 0003F89C 48 0C E8 95 */ bl BuildLightShadowTexture__12CWorldShadowFRC13CStateManager7TAreaIdUiRC6CAABoxbb
/* 80042940 0003F8A0 48 00 00 0C */ b lbl_8004294C
lbl_80042944:
/* 80042944 0003F8A4 80 7B 08 2C */ lwz r3, 0x82c(r27)
/* 80042948 0003F8A8 48 0C E6 45 */ bl ResetBlur__12CWorldShadowFv
lbl_8004294C:
/* 8004294C 0003F8AC 80 7B 07 40 */ lwz r3, 0x740(r27)
/* 80042950 0003F8B0 88 03 03 B2 */ lbz r0, 0x3b2(r3)
/* 80042954 0003F8B4 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80042958 0003F8B8 41 82 00 14 */ beq lbl_8004296C
/* 8004295C 0003F8BC 7F 84 E3 78 */ mr r4, r28
/* 80042960 0003F8C0 7F A5 EB 78 */ mr r5, r29
/* 80042964 0003F8C4 7F C6 F3 78 */ mr r6, r30
/* 80042968 0003F8C8 48 0D CE C9 */ bl PreRender__11CGrappleArmFR13CStateManagerRC14CFrustumPlanesRC9CVector3f
lbl_8004296C:
/* 8004296C 0003F8CC 80 1B 06 98 */ lwz r0, 0x698(r27)
/* 80042970 0003F8D0 2C 00 00 01 */ cmpwi r0, 1
/* 80042974 0003F8D4 40 82 00 0C */ bne lbl_80042980
/* 80042978 0003F8D8 2C 1F 00 01 */ cmpwi r31, 1
/* 8004297C 0003F8DC 40 82 00 0C */ bne lbl_80042988
lbl_80042980:
/* 80042980 0003F8E0 80 7B 06 F0 */ lwz r3, 0x6f0(r27)
/* 80042984 0003F8E4 4B FE A0 81 */ bl PreRender__9CAnimDataFv
lbl_80042988:
/* 80042988 0003F8E8 88 1B 08 33 */ lbz r0, 0x833(r27)
/* 8004298C 0003F8EC 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 80042990 0003F8F0 41 82 00 0C */ beq lbl_8004299C
/* 80042994 0003F8F4 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80042998 0003F8F8 48 27 35 D9 */ bl AllocatePhazonSuitMaskTexture__13CCubeRendererFv
lbl_8004299C:
/* 8004299C 0003F8FC BB 61 01 1C */ lmw r27, 0x11c(r1)
/* 800429A0 0003F900 80 01 01 34 */ lwz r0, 0x134(r1)
/* 800429A4 0003F904 7C 08 03 A6 */ mtlr r0
/* 800429A8 0003F908 38 21 01 30 */ addi r1, r1, 0x130
/* 800429AC 0003F90C 4E 80 00 20 */ blr
.global AddToRenderer__10CPlayerGunCFRC14CFrustumPlanesRC13CStateManager
AddToRenderer__10CPlayerGunCFRC14CFrustumPlanesRC13CStateManager:
/* 800429B0 0003F910 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800429B4 0003F914 7C 08 02 A6 */ mflr r0
/* 800429B8 0003F918 90 01 00 14 */ stw r0, 0x14(r1)
/* 800429BC 0003F91C 80 63 07 2C */ lwz r3, 0x72c(r3)
/* 800429C0 0003F920 38 63 00 10 */ addi r3, r3, 0x10
/* 800429C4 0003F924 88 03 00 4C */ lbz r0, 0x4c(r3)
/* 800429C8 0003F928 28 00 00 00 */ cmplwi r0, 0
/* 800429CC 0003F92C 41 82 00 08 */ beq lbl_800429D4
/* 800429D0 0003F930 48 0D 32 B1 */ bl RenderParticles__10CModelDataCFRC14CFrustumPlanes
lbl_800429D4:
/* 800429D4 0003F934 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800429D8 0003F938 7C 08 03 A6 */ mtlr r0
/* 800429DC 0003F93C 38 21 00 10 */ addi r1, r1, 0x10
/* 800429E0 0003F940 4E 80 00 20 */ blr
.global __dt__10CPlayerGunFv
__dt__10CPlayerGunFv:
/* 800429E4 0003F944 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 800429E8 0003F948 7C 08 02 A6 */ mflr r0
/* 800429EC 0003F94C 90 01 00 34 */ stw r0, 0x34(r1)
/* 800429F0 0003F950 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 800429F4 0003F954 7C 9F 23 78 */ mr r31, r4
/* 800429F8 0003F958 93 C1 00 28 */ stw r30, 0x28(r1)
/* 800429FC 0003F95C 7C 7E 1B 79 */ or. r30, r3, r3
/* 80042A00 0003F960 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80042A04 0003F964 93 81 00 20 */ stw r28, 0x20(r1)
/* 80042A08 0003F968 41 82 03 D8 */ beq lbl_80042DE0
/* 80042A0C 0003F96C 34 1E 08 2C */ addic. r0, r30, 0x82c
/* 80042A10 0003F970 41 82 00 10 */ beq lbl_80042A20
/* 80042A14 0003F974 80 7E 08 2C */ lwz r3, 0x82c(r30)
/* 80042A18 0003F978 38 80 00 01 */ li r4, 1
/* 80042A1C 0003F97C 48 0C F1 39 */ bl __dt__12CWorldShadowFv
lbl_80042A20:
/* 80042A20 0003F980 34 1E 08 00 */ addic. r0, r30, 0x800
/* 80042A24 0003F984 41 82 00 60 */ beq lbl_80042A84
/* 80042A28 0003F988 3B 9E 08 04 */ addi r28, r30, 0x804
/* 80042A2C 0003F98C 3B A0 00 00 */ li r29, 0
/* 80042A30 0003F990 48 00 00 40 */ b lbl_80042A70
lbl_80042A34:
/* 80042A34 0003F994 28 1C 00 00 */ cmplwi r28, 0
/* 80042A38 0003F998 41 82 00 30 */ beq lbl_80042A68
/* 80042A3C 0003F99C 88 1C 00 00 */ lbz r0, 0(r28)
/* 80042A40 0003F9A0 28 00 00 00 */ cmplwi r0, 0
/* 80042A44 0003F9A4 41 82 00 24 */ beq lbl_80042A68
/* 80042A48 0003F9A8 80 7C 00 04 */ lwz r3, 4(r28)
/* 80042A4C 0003F9AC 28 03 00 00 */ cmplwi r3, 0
/* 80042A50 0003F9B0 41 82 00 18 */ beq lbl_80042A68
/* 80042A54 0003F9B4 81 83 00 00 */ lwz r12, 0(r3)
/* 80042A58 0003F9B8 38 80 00 01 */ li r4, 1
/* 80042A5C 0003F9BC 81 8C 00 08 */ lwz r12, 8(r12)
/* 80042A60 0003F9C0 7D 89 03 A6 */ mtctr r12
/* 80042A64 0003F9C4 4E 80 04 21 */ bctrl
lbl_80042A68:
/* 80042A68 0003F9C8 3B 9C 00 08 */ addi r28, r28, 8
/* 80042A6C 0003F9CC 3B BD 00 01 */ addi r29, r29, 1
lbl_80042A70:
/* 80042A70 0003F9D0 80 1E 08 00 */ lwz r0, 0x800(r30)
/* 80042A74 0003F9D4 7C 1D 00 00 */ cmpw r29, r0
/* 80042A78 0003F9D8 41 80 FF BC */ blt lbl_80042A34
/* 80042A7C 0003F9DC 38 00 00 00 */ li r0, 0
/* 80042A80 0003F9E0 90 1E 08 00 */ stw r0, 0x800(r30)
lbl_80042A84:
/* 80042A84 0003F9E4 34 1E 07 C0 */ addic. r0, r30, 0x7c0
/* 80042A88 0003F9E8 41 82 00 44 */ beq lbl_80042ACC
/* 80042A8C 0003F9EC 3B 9E 07 C4 */ addi r28, r30, 0x7c4
/* 80042A90 0003F9F0 3B A0 00 00 */ li r29, 0
/* 80042A94 0003F9F4 48 00 00 24 */ b lbl_80042AB8
lbl_80042A98:
/* 80042A98 0003F9F8 28 1C 00 00 */ cmplwi r28, 0
/* 80042A9C 0003F9FC 41 82 00 14 */ beq lbl_80042AB0
/* 80042AA0 0003FA00 41 82 00 10 */ beq lbl_80042AB0
/* 80042AA4 0003FA04 7F 83 E3 78 */ mr r3, r28
/* 80042AA8 0003FA08 38 80 00 00 */ li r4, 0
/* 80042AAC 0003FA0C 48 2F E3 95 */ bl __dt__6CTokenFv
lbl_80042AB0:
/* 80042AB0 0003FA10 3B 9C 00 0C */ addi r28, r28, 0xc
/* 80042AB4 0003FA14 3B BD 00 01 */ addi r29, r29, 1
lbl_80042AB8:
/* 80042AB8 0003FA18 80 1E 07 C0 */ lwz r0, 0x7c0(r30)
/* 80042ABC 0003FA1C 7C 1D 00 00 */ cmpw r29, r0
/* 80042AC0 0003FA20 41 80 FF D8 */ blt lbl_80042A98
/* 80042AC4 0003FA24 38 00 00 00 */ li r0, 0
/* 80042AC8 0003FA28 90 1E 07 C0 */ stw r0, 0x7c0(r30)
lbl_80042ACC:
/* 80042ACC 0003FA2C 38 7E 07 84 */ addi r3, r30, 0x784
/* 80042AD0 0003FA30 38 80 FF FF */ li r4, -1
/* 80042AD4 0003FA34 48 00 06 41 */ bl "__dt__Q24rstl80reserved_vector<Q24rstl52reserved_vector<31TLockedToken<15CGenDescription>,2>,2>Fv"
/* 80042AD8 0003FA38 34 1E 07 7C */ addic. r0, r30, 0x77c
/* 80042ADC 0003FA3C 41 82 00 30 */ beq lbl_80042B0C
/* 80042AE0 0003FA40 88 1E 07 7C */ lbz r0, 0x77c(r30)
/* 80042AE4 0003FA44 28 00 00 00 */ cmplwi r0, 0
/* 80042AE8 0003FA48 41 82 00 24 */ beq lbl_80042B0C
/* 80042AEC 0003FA4C 80 7E 07 80 */ lwz r3, 0x780(r30)
/* 80042AF0 0003FA50 28 03 00 00 */ cmplwi r3, 0
/* 80042AF4 0003FA54 41 82 00 18 */ beq lbl_80042B0C
/* 80042AF8 0003FA58 81 83 00 00 */ lwz r12, 0(r3)
/* 80042AFC 0003FA5C 38 80 00 01 */ li r4, 1
/* 80042B00 0003FA60 81 8C 00 08 */ lwz r12, 8(r12)
/* 80042B04 0003FA64 7D 89 03 A6 */ mtctr r12
/* 80042B08 0003FA68 4E 80 04 21 */ bctrl
lbl_80042B0C:
/* 80042B0C 0003FA6C 34 1E 07 74 */ addic. r0, r30, 0x774
/* 80042B10 0003FA70 41 82 00 30 */ beq lbl_80042B40
/* 80042B14 0003FA74 88 1E 07 74 */ lbz r0, 0x774(r30)
/* 80042B18 0003FA78 28 00 00 00 */ cmplwi r0, 0
/* 80042B1C 0003FA7C 41 82 00 24 */ beq lbl_80042B40
/* 80042B20 0003FA80 80 7E 07 78 */ lwz r3, 0x778(r30)
/* 80042B24 0003FA84 28 03 00 00 */ cmplwi r3, 0
/* 80042B28 0003FA88 41 82 00 18 */ beq lbl_80042B40
/* 80042B2C 0003FA8C 81 83 00 00 */ lwz r12, 0(r3)
/* 80042B30 0003FA90 38 80 00 01 */ li r4, 1
/* 80042B34 0003FA94 81 8C 00 08 */ lwz r12, 8(r12)
/* 80042B38 0003FA98 7D 89 03 A6 */ mtctr r12
/* 80042B3C 0003FA9C 4E 80 04 21 */ bctrl
lbl_80042B40:
/* 80042B40 0003FAA0 34 1E 07 60 */ addic. r0, r30, 0x760
/* 80042B44 0003FAA4 41 82 00 58 */ beq lbl_80042B9C
/* 80042B48 0003FAA8 80 BE 07 60 */ lwz r5, 0x760(r30)
/* 80042B4C 0003FAAC 38 60 00 00 */ li r3, 0
/* 80042B50 0003FAB0 2C 05 00 00 */ cmpwi r5, 0
/* 80042B54 0003FAB4 40 81 00 40 */ ble lbl_80042B94
/* 80042B58 0003FAB8 2C 05 00 08 */ cmpwi r5, 8
/* 80042B5C 0003FABC 38 85 FF F8 */ addi r4, r5, -8
/* 80042B60 0003FAC0 40 81 00 20 */ ble lbl_80042B80
/* 80042B64 0003FAC4 38 04 00 07 */ addi r0, r4, 7
/* 80042B68 0003FAC8 54 00 E8 FE */ srwi r0, r0, 3
/* 80042B6C 0003FACC 7C 09 03 A6 */ mtctr r0
/* 80042B70 0003FAD0 2C 04 00 00 */ cmpwi r4, 0
/* 80042B74 0003FAD4 40 81 00 0C */ ble lbl_80042B80
lbl_80042B78:
/* 80042B78 0003FAD8 38 63 00 08 */ addi r3, r3, 8
/* 80042B7C 0003FADC 42 00 FF FC */ bdnz lbl_80042B78
lbl_80042B80:
/* 80042B80 0003FAE0 7C 03 28 50 */ subf r0, r3, r5
/* 80042B84 0003FAE4 7C 09 03 A6 */ mtctr r0
/* 80042B88 0003FAE8 7C 03 28 00 */ cmpw r3, r5
/* 80042B8C 0003FAEC 40 80 00 08 */ bge lbl_80042B94
lbl_80042B90:
/* 80042B90 0003FAF0 42 00 00 00 */ bdnz lbl_80042B90
lbl_80042B94:
/* 80042B94 0003FAF4 38 00 00 00 */ li r0, 0
/* 80042B98 0003FAF8 90 1E 07 60 */ stw r0, 0x760(r30)
lbl_80042B9C:
/* 80042B9C 0003FAFC 34 1E 07 5C */ addic. r0, r30, 0x75c
/* 80042BA0 0003FB00 41 82 00 24 */ beq lbl_80042BC4
/* 80042BA4 0003FB04 80 7E 07 5C */ lwz r3, 0x75c(r30)
/* 80042BA8 0003FB08 28 03 00 00 */ cmplwi r3, 0
/* 80042BAC 0003FB0C 41 82 00 18 */ beq lbl_80042BC4
/* 80042BB0 0003FB10 81 83 00 00 */ lwz r12, 0(r3)
/* 80042BB4 0003FB14 38 80 00 01 */ li r4, 1
/* 80042BB8 0003FB18 81 8C 00 08 */ lwz r12, 8(r12)
/* 80042BBC 0003FB1C 7D 89 03 A6 */ mtctr r12
/* 80042BC0 0003FB20 4E 80 04 21 */ bctrl
lbl_80042BC4:
/* 80042BC4 0003FB24 34 1E 07 58 */ addic. r0, r30, 0x758
/* 80042BC8 0003FB28 41 82 00 24 */ beq lbl_80042BEC
/* 80042BCC 0003FB2C 80 7E 07 58 */ lwz r3, 0x758(r30)
/* 80042BD0 0003FB30 28 03 00 00 */ cmplwi r3, 0
/* 80042BD4 0003FB34 41 82 00 18 */ beq lbl_80042BEC
/* 80042BD8 0003FB38 81 83 00 00 */ lwz r12, 0(r3)
/* 80042BDC 0003FB3C 38 80 00 01 */ li r4, 1
/* 80042BE0 0003FB40 81 8C 00 08 */ lwz r12, 8(r12)
/* 80042BE4 0003FB44 7D 89 03 A6 */ mtctr r12
/* 80042BE8 0003FB48 4E 80 04 21 */ bctrl
lbl_80042BEC:
/* 80042BEC 0003FB4C 34 1E 07 54 */ addic. r0, r30, 0x754
/* 80042BF0 0003FB50 41 82 00 24 */ beq lbl_80042C14
/* 80042BF4 0003FB54 80 7E 07 54 */ lwz r3, 0x754(r30)
/* 80042BF8 0003FB58 28 03 00 00 */ cmplwi r3, 0
/* 80042BFC 0003FB5C 41 82 00 18 */ beq lbl_80042C14
/* 80042C00 0003FB60 81 83 00 00 */ lwz r12, 0(r3)
/* 80042C04 0003FB64 38 80 00 01 */ li r4, 1
/* 80042C08 0003FB68 81 8C 00 08 */ lwz r12, 8(r12)
/* 80042C0C 0003FB6C 7D 89 03 A6 */ mtctr r12
/* 80042C10 0003FB70 4E 80 04 21 */ bctrl
lbl_80042C14:
/* 80042C14 0003FB74 34 1E 07 50 */ addic. r0, r30, 0x750
/* 80042C18 0003FB78 41 82 00 24 */ beq lbl_80042C3C
/* 80042C1C 0003FB7C 80 7E 07 50 */ lwz r3, 0x750(r30)
/* 80042C20 0003FB80 28 03 00 00 */ cmplwi r3, 0
/* 80042C24 0003FB84 41 82 00 18 */ beq lbl_80042C3C
/* 80042C28 0003FB88 81 83 00 00 */ lwz r12, 0(r3)
/* 80042C2C 0003FB8C 38 80 00 01 */ li r4, 1
/* 80042C30 0003FB90 81 8C 00 08 */ lwz r12, 8(r12)
/* 80042C34 0003FB94 7D 89 03 A6 */ mtctr r12
/* 80042C38 0003FB98 4E 80 04 21 */ bctrl
lbl_80042C3C:
/* 80042C3C 0003FB9C 34 1E 07 4C */ addic. r0, r30, 0x74c
/* 80042C40 0003FBA0 41 82 00 24 */ beq lbl_80042C64
/* 80042C44 0003FBA4 80 7E 07 4C */ lwz r3, 0x74c(r30)
/* 80042C48 0003FBA8 28 03 00 00 */ cmplwi r3, 0
/* 80042C4C 0003FBAC 41 82 00 18 */ beq lbl_80042C64
/* 80042C50 0003FBB0 81 83 00 00 */ lwz r12, 0(r3)
/* 80042C54 0003FBB4 38 80 00 01 */ li r4, 1
/* 80042C58 0003FBB8 81 8C 00 08 */ lwz r12, 8(r12)
/* 80042C5C 0003FBBC 7D 89 03 A6 */ mtctr r12
/* 80042C60 0003FBC0 4E 80 04 21 */ bctrl
lbl_80042C64:
/* 80042C64 0003FBC4 38 7E 07 48 */ addi r3, r30, 0x748
/* 80042C68 0003FBC8 38 80 FF FF */ li r4, -1
/* 80042C6C 0003FBCC 48 00 03 0D */ bl "__dt__Q24rstl34single_ptr<20CRainSplashGenerator>Fv"
/* 80042C70 0003FBD0 38 7E 07 44 */ addi r3, r30, 0x744
/* 80042C74 0003FBD4 38 80 FF FF */ li r4, -1
/* 80042C78 0003FBD8 48 00 01 8D */ bl "__dt__Q24rstl24single_ptr<10CAuxWeapon>Fv"
/* 80042C7C 0003FBDC 34 1E 07 40 */ addic. r0, r30, 0x740
/* 80042C80 0003FBE0 41 82 00 10 */ beq lbl_80042C90
/* 80042C84 0003FBE4 80 7E 07 40 */ lwz r3, 0x740(r30)
/* 80042C88 0003FBE8 38 80 00 01 */ li r4, 1
/* 80042C8C 0003FBEC 48 0D CC D9 */ bl __dt__11CGrappleArmFv
lbl_80042C90:
/* 80042C90 0003FBF0 34 1E 07 3C */ addic. r0, r30, 0x73c
/* 80042C94 0003FBF4 41 82 00 10 */ beq lbl_80042CA4
/* 80042C98 0003FBF8 80 7E 07 3C */ lwz r3, 0x73c(r30)
/* 80042C9C 0003FBFC 38 80 00 01 */ li r4, 1
/* 80042CA0 0003FC00 48 19 69 39 */ bl __dt__10CGunMotionFv
lbl_80042CA4:
/* 80042CA4 0003FC04 38 7E 06 E0 */ addi r3, r30, 0x6e0
/* 80042CA8 0003FC08 38 80 FF FF */ li r4, -1
/* 80042CAC 0003FC0C 48 0D 3D A1 */ bl __dt__10CModelDataFv
/* 80042CB0 0003FC10 34 1E 05 50 */ addic. r0, r30, 0x550
/* 80042CB4 0003FC14 41 82 00 BC */ beq lbl_80042D70
/* 80042CB8 0003FC18 34 1E 06 00 */ addic. r0, r30, 0x600
/* 80042CBC 0003FC1C 41 82 00 58 */ beq lbl_80042D14
/* 80042CC0 0003FC20 80 BE 06 00 */ lwz r5, 0x600(r30)
/* 80042CC4 0003FC24 38 60 00 00 */ li r3, 0
/* 80042CC8 0003FC28 2C 05 00 00 */ cmpwi r5, 0
/* 80042CCC 0003FC2C 40 81 00 40 */ ble lbl_80042D0C
/* 80042CD0 0003FC30 2C 05 00 08 */ cmpwi r5, 8
/* 80042CD4 0003FC34 38 85 FF F8 */ addi r4, r5, -8
/* 80042CD8 0003FC38 40 81 00 20 */ ble lbl_80042CF8
/* 80042CDC 0003FC3C 38 04 00 07 */ addi r0, r4, 7
/* 80042CE0 0003FC40 54 00 E8 FE */ srwi r0, r0, 3
/* 80042CE4 0003FC44 7C 09 03 A6 */ mtctr r0
/* 80042CE8 0003FC48 2C 04 00 00 */ cmpwi r4, 0
/* 80042CEC 0003FC4C 40 81 00 0C */ ble lbl_80042CF8
lbl_80042CF0:
/* 80042CF0 0003FC50 38 63 00 08 */ addi r3, r3, 8
/* 80042CF4 0003FC54 42 00 FF FC */ bdnz lbl_80042CF0
lbl_80042CF8:
/* 80042CF8 0003FC58 7C 03 28 50 */ subf r0, r3, r5
/* 80042CFC 0003FC5C 7C 09 03 A6 */ mtctr r0
/* 80042D00 0003FC60 7C 03 28 00 */ cmpw r3, r5
/* 80042D04 0003FC64 40 80 00 08 */ bge lbl_80042D0C
lbl_80042D08:
/* 80042D08 0003FC68 42 00 00 00 */ bdnz lbl_80042D08
lbl_80042D0C:
/* 80042D0C 0003FC6C 38 00 00 00 */ li r0, 0
/* 80042D10 0003FC70 90 1E 06 00 */ stw r0, 0x600(r30)
lbl_80042D14:
/* 80042D14 0003FC74 34 1E 05 CC */ addic. r0, r30, 0x5cc
/* 80042D18 0003FC78 41 82 00 58 */ beq lbl_80042D70
/* 80042D1C 0003FC7C 80 BE 05 CC */ lwz r5, 0x5cc(r30)
/* 80042D20 0003FC80 38 60 00 00 */ li r3, 0
/* 80042D24 0003FC84 2C 05 00 00 */ cmpwi r5, 0
/* 80042D28 0003FC88 40 81 00 40 */ ble lbl_80042D68
/* 80042D2C 0003FC8C 2C 05 00 08 */ cmpwi r5, 8
/* 80042D30 0003FC90 38 85 FF F8 */ addi r4, r5, -8
/* 80042D34 0003FC94 40 81 00 20 */ ble lbl_80042D54
/* 80042D38 0003FC98 38 04 00 07 */ addi r0, r4, 7
/* 80042D3C 0003FC9C 54 00 E8 FE */ srwi r0, r0, 3
/* 80042D40 0003FCA0 7C 09 03 A6 */ mtctr r0
/* 80042D44 0003FCA4 2C 04 00 00 */ cmpwi r4, 0
/* 80042D48 0003FCA8 40 81 00 0C */ ble lbl_80042D54
lbl_80042D4C:
/* 80042D4C 0003FCAC 38 63 00 08 */ addi r3, r3, 8
/* 80042D50 0003FCB0 42 00 FF FC */ bdnz lbl_80042D4C
lbl_80042D54:
/* 80042D54 0003FCB4 7C 03 28 50 */ subf r0, r3, r5
/* 80042D58 0003FCB8 7C 09 03 A6 */ mtctr r0
/* 80042D5C 0003FCBC 7C 03 28 00 */ cmpw r3, r5
/* 80042D60 0003FCC0 40 80 00 08 */ bge lbl_80042D68
lbl_80042D64:
/* 80042D64 0003FCC4 42 00 00 00 */ bdnz lbl_80042D64
lbl_80042D68:
/* 80042D68 0003FCC8 38 00 00 00 */ li r0, 0
/* 80042D6C 0003FCCC 90 1E 05 CC */ stw r0, 0x5cc(r30)
lbl_80042D70:
/* 80042D70 0003FCD0 34 1E 05 40 */ addic. r0, r30, 0x540
/* 80042D74 0003FCD4 41 82 00 50 */ beq lbl_80042DC4
/* 80042D78 0003FCD8 80 1E 05 44 */ lwz r0, 0x544(r30)
/* 80042D7C 0003FCDC 83 9E 05 4C */ lwz r28, 0x54c(r30)
/* 80042D80 0003FCE0 54 00 18 38 */ slwi r0, r0, 3
/* 80042D84 0003FCE4 7F BC 02 14 */ add r29, r28, r0
/* 80042D88 0003FCE8 93 81 00 0C */ stw r28, 0xc(r1)
/* 80042D8C 0003FCEC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80042D90 0003FCF0 93 A1 00 10 */ stw r29, 0x10(r1)
/* 80042D94 0003FCF4 93 81 00 08 */ stw r28, 8(r1)
/* 80042D98 0003FCF8 48 00 00 14 */ b lbl_80042DAC
lbl_80042D9C:
/* 80042D9C 0003FCFC 7F 83 E3 78 */ mr r3, r28
/* 80042DA0 0003FD00 38 80 FF FF */ li r4, -1
/* 80042DA4 0003FD04 48 2F E0 9D */ bl __dt__6CTokenFv
/* 80042DA8 0003FD08 3B 9C 00 08 */ addi r28, r28, 8
lbl_80042DAC:
/* 80042DAC 0003FD0C 7C 1C E8 40 */ cmplw r28, r29
/* 80042DB0 0003FD10 40 82 FF EC */ bne lbl_80042D9C
/* 80042DB4 0003FD14 80 7E 05 4C */ lwz r3, 0x54c(r30)
/* 80042DB8 0003FD18 28 03 00 00 */ cmplwi r3, 0
/* 80042DBC 0003FD1C 41 82 00 08 */ beq lbl_80042DC4
/* 80042DC0 0003FD20 48 2D 2B 71 */ bl Free__7CMemoryFPCv
lbl_80042DC4:
/* 80042DC4 0003FD24 7F C3 F3 78 */ mr r3, r30
/* 80042DC8 0003FD28 38 80 FF FF */ li r4, -1
/* 80042DCC 0003FD2C 48 0C 23 09 */ bl __dt__12CActorLightsFv
/* 80042DD0 0003FD30 7F E0 07 35 */ extsh. r0, r31
/* 80042DD4 0003FD34 40 81 00 0C */ ble lbl_80042DE0
/* 80042DD8 0003FD38 7F C3 F3 78 */ mr r3, r30
/* 80042DDC 0003FD3C 48 00 0D 71 */ bl "__dl__24TOneStatic<10CPlayerGun>FPv"
lbl_80042DE0:
/* 80042DE0 0003FD40 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80042DE4 0003FD44 7F C3 F3 78 */ mr r3, r30
/* 80042DE8 0003FD48 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80042DEC 0003FD4C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80042DF0 0003FD50 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80042DF4 0003FD54 83 81 00 20 */ lwz r28, 0x20(r1)
/* 80042DF8 0003FD58 7C 08 03 A6 */ mtlr r0
/* 80042DFC 0003FD5C 38 21 00 30 */ addi r1, r1, 0x30
/* 80042E00 0003FD60 4E 80 00 20 */ blr
.global "__dt__Q24rstl24single_ptr<10CAuxWeapon>Fv"
"__dt__Q24rstl24single_ptr<10CAuxWeapon>Fv":
/* 80042E04 0003FD64 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80042E08 0003FD68 7C 08 02 A6 */ mflr r0
/* 80042E0C 0003FD6C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80042E10 0003FD70 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80042E14 0003FD74 7C 9F 23 78 */ mr r31, r4
/* 80042E18 0003FD78 93 C1 00 08 */ stw r30, 8(r1)
/* 80042E1C 0003FD7C 7C 7E 1B 79 */ or. r30, r3, r3
/* 80042E20 0003FD80 41 82 00 20 */ beq lbl_80042E40
/* 80042E24 0003FD84 80 7E 00 00 */ lwz r3, 0(r30)
/* 80042E28 0003FD88 38 80 00 01 */ li r4, 1
/* 80042E2C 0003FD8C 48 00 00 31 */ bl __dt__10CAuxWeaponFv
/* 80042E30 0003FD90 7F E0 07 35 */ extsh. r0, r31
/* 80042E34 0003FD94 40 81 00 0C */ ble lbl_80042E40
/* 80042E38 0003FD98 7F C3 F3 78 */ mr r3, r30
/* 80042E3C 0003FD9C 48 2D 2A F5 */ bl Free__7CMemoryFPCv
lbl_80042E40:
/* 80042E40 0003FDA0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80042E44 0003FDA4 7F C3 F3 78 */ mr r3, r30
/* 80042E48 0003FDA8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80042E4C 0003FDAC 83 C1 00 08 */ lwz r30, 8(r1)
/* 80042E50 0003FDB0 7C 08 03 A6 */ mtlr r0
/* 80042E54 0003FDB4 38 21 00 10 */ addi r1, r1, 0x10
/* 80042E58 0003FDB8 4E 80 00 20 */ blr
.global __dt__10CAuxWeaponFv
__dt__10CAuxWeaponFv:
/* 80042E5C 0003FDBC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80042E60 0003FDC0 7C 08 02 A6 */ mflr r0
/* 80042E64 0003FDC4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80042E68 0003FDC8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80042E6C 0003FDCC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80042E70 0003FDD0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80042E74 0003FDD4 7C 9D 23 78 */ mr r29, r4
/* 80042E78 0003FDD8 93 81 00 10 */ stw r28, 0x10(r1)
/* 80042E7C 0003FDDC 7C 7C 1B 79 */ or. r28, r3, r3
/* 80042E80 0003FDE0 41 82 00 D4 */ beq lbl_80042F54
/* 80042E84 0003FDE4 34 1C 00 28 */ addic. r0, r28, 0x28
/* 80042E88 0003FDE8 41 82 00 44 */ beq lbl_80042ECC
/* 80042E8C 0003FDEC 3B DC 00 2C */ addi r30, r28, 0x2c
/* 80042E90 0003FDF0 3B E0 00 00 */ li r31, 0
/* 80042E94 0003FDF4 48 00 00 24 */ b lbl_80042EB8
lbl_80042E98:
/* 80042E98 0003FDF8 28 1E 00 00 */ cmplwi r30, 0
/* 80042E9C 0003FDFC 41 82 00 14 */ beq lbl_80042EB0
/* 80042EA0 0003FE00 41 82 00 10 */ beq lbl_80042EB0
/* 80042EA4 0003FE04 7F C3 F3 78 */ mr r3, r30
/* 80042EA8 0003FE08 38 80 00 00 */ li r4, 0
/* 80042EAC 0003FE0C 48 2F DF 95 */ bl __dt__6CTokenFv
lbl_80042EB0:
/* 80042EB0 0003FE10 3B DE 00 0C */ addi r30, r30, 0xc
/* 80042EB4 0003FE14 3B FF 00 01 */ addi r31, r31, 1
lbl_80042EB8:
/* 80042EB8 0003FE18 80 1C 00 28 */ lwz r0, 0x28(r28)
/* 80042EBC 0003FE1C 7C 1F 00 00 */ cmpw r31, r0
/* 80042EC0 0003FE20 41 80 FF D8 */ blt lbl_80042E98
/* 80042EC4 0003FE24 38 00 00 00 */ li r0, 0
/* 80042EC8 0003FE28 90 1C 00 28 */ stw r0, 0x28(r28)
lbl_80042ECC:
/* 80042ECC 0003FE2C 34 1C 00 24 */ addic. r0, r28, 0x24
/* 80042ED0 0003FE30 41 82 00 24 */ beq lbl_80042EF4
/* 80042ED4 0003FE34 80 7C 00 24 */ lwz r3, 0x24(r28)
/* 80042ED8 0003FE38 28 03 00 00 */ cmplwi r3, 0
/* 80042EDC 0003FE3C 41 82 00 18 */ beq lbl_80042EF4
/* 80042EE0 0003FE40 81 83 00 00 */ lwz r12, 0(r3)
/* 80042EE4 0003FE44 38 80 00 01 */ li r4, 1
/* 80042EE8 0003FE48 81 8C 00 08 */ lwz r12, 8(r12)
/* 80042EEC 0003FE4C 7D 89 03 A6 */ mtctr r12
/* 80042EF0 0003FE50 4E 80 04 21 */ bctrl
lbl_80042EF4:
/* 80042EF4 0003FE54 34 1C 00 18 */ addic. r0, r28, 0x18
/* 80042EF8 0003FE58 41 82 00 18 */ beq lbl_80042F10
/* 80042EFC 0003FE5C 34 1C 00 18 */ addic. r0, r28, 0x18
/* 80042F00 0003FE60 41 82 00 10 */ beq lbl_80042F10
/* 80042F04 0003FE64 38 7C 00 18 */ addi r3, r28, 0x18
/* 80042F08 0003FE68 38 80 00 00 */ li r4, 0
/* 80042F0C 0003FE6C 48 2F DF 35 */ bl __dt__6CTokenFv
lbl_80042F10:
/* 80042F10 0003FE70 34 1C 00 0C */ addic. r0, r28, 0xc
/* 80042F14 0003FE74 41 82 00 18 */ beq lbl_80042F2C
/* 80042F18 0003FE78 34 1C 00 0C */ addic. r0, r28, 0xc
/* 80042F1C 0003FE7C 41 82 00 10 */ beq lbl_80042F2C
/* 80042F20 0003FE80 38 7C 00 0C */ addi r3, r28, 0xc
/* 80042F24 0003FE84 38 80 00 00 */ li r4, 0
/* 80042F28 0003FE88 48 2F DF 19 */ bl __dt__6CTokenFv
lbl_80042F2C:
/* 80042F2C 0003FE8C 28 1C 00 00 */ cmplwi r28, 0
/* 80042F30 0003FE90 41 82 00 14 */ beq lbl_80042F44
/* 80042F34 0003FE94 41 82 00 10 */ beq lbl_80042F44
/* 80042F38 0003FE98 7F 83 E3 78 */ mr r3, r28
/* 80042F3C 0003FE9C 38 80 00 00 */ li r4, 0
/* 80042F40 0003FEA0 48 2F DF 01 */ bl __dt__6CTokenFv
lbl_80042F44:
/* 80042F44 0003FEA4 7F A0 07 35 */ extsh. r0, r29
/* 80042F48 0003FEA8 40 81 00 0C */ ble lbl_80042F54
/* 80042F4C 0003FEAC 7F 83 E3 78 */ mr r3, r28
/* 80042F50 0003FEB0 48 2D 29 E1 */ bl Free__7CMemoryFPCv
lbl_80042F54:
/* 80042F54 0003FEB4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80042F58 0003FEB8 7F 83 E3 78 */ mr r3, r28
/* 80042F5C 0003FEBC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80042F60 0003FEC0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80042F64 0003FEC4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80042F68 0003FEC8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80042F6C 0003FECC 7C 08 03 A6 */ mtlr r0
/* 80042F70 0003FED0 38 21 00 20 */ addi r1, r1, 0x20
/* 80042F74 0003FED4 4E 80 00 20 */ blr
.global "__dt__Q24rstl34single_ptr<20CRainSplashGenerator>Fv"
"__dt__Q24rstl34single_ptr<20CRainSplashGenerator>Fv":
/* 80042F78 0003FED8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80042F7C 0003FEDC 7C 08 02 A6 */ mflr r0
/* 80042F80 0003FEE0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80042F84 0003FEE4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80042F88 0003FEE8 7C 9F 23 78 */ mr r31, r4
/* 80042F8C 0003FEEC 93 C1 00 08 */ stw r30, 8(r1)
/* 80042F90 0003FEF0 7C 7E 1B 79 */ or. r30, r3, r3
/* 80042F94 0003FEF4 41 82 00 20 */ beq lbl_80042FB4
/* 80042F98 0003FEF8 80 7E 00 00 */ lwz r3, 0(r30)
/* 80042F9C 0003FEFC 38 80 00 01 */ li r4, 1
/* 80042FA0 0003FF00 48 00 00 31 */ bl __dt__20CRainSplashGeneratorFv
/* 80042FA4 0003FF04 7F E0 07 35 */ extsh. r0, r31
/* 80042FA8 0003FF08 40 81 00 0C */ ble lbl_80042FB4
/* 80042FAC 0003FF0C 7F C3 F3 78 */ mr r3, r30
/* 80042FB0 0003FF10 48 2D 29 81 */ bl Free__7CMemoryFPCv
lbl_80042FB4:
/* 80042FB4 0003FF14 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80042FB8 0003FF18 7F C3 F3 78 */ mr r3, r30
/* 80042FBC 0003FF1C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80042FC0 0003FF20 83 C1 00 08 */ lwz r30, 8(r1)
/* 80042FC4 0003FF24 7C 08 03 A6 */ mtlr r0
/* 80042FC8 0003FF28 38 21 00 10 */ addi r1, r1, 0x10
/* 80042FCC 0003FF2C 4E 80 00 20 */ blr
.global __dt__20CRainSplashGeneratorFv
__dt__20CRainSplashGeneratorFv:
/* 80042FD0 0003FF30 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80042FD4 0003FF34 7C 08 02 A6 */ mflr r0
/* 80042FD8 0003FF38 90 01 00 14 */ stw r0, 0x14(r1)
/* 80042FDC 0003FF3C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80042FE0 0003FF40 7C 9F 23 78 */ mr r31, r4
/* 80042FE4 0003FF44 93 C1 00 08 */ stw r30, 8(r1)
/* 80042FE8 0003FF48 7C 7E 1B 79 */ or. r30, r3, r3
/* 80042FEC 0003FF4C 41 82 00 1C */ beq lbl_80043008
/* 80042FF0 0003FF50 38 80 FF FF */ li r4, -1
/* 80042FF4 0003FF54 48 00 00 31 */ bl sub_80043024
/* 80042FF8 0003FF58 7F E0 07 35 */ extsh. r0, r31
/* 80042FFC 0003FF5C 40 81 00 0C */ ble lbl_80043008
/* 80043000 0003FF60 7F C3 F3 78 */ mr r3, r30
/* 80043004 0003FF64 48 2D 29 2D */ bl Free__7CMemoryFPCv
lbl_80043008:
/* 80043008 0003FF68 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004300C 0003FF6C 7F C3 F3 78 */ mr r3, r30
/* 80043010 0003FF70 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80043014 0003FF74 83 C1 00 08 */ lwz r30, 8(r1)
/* 80043018 0003FF78 7C 08 03 A6 */ mtlr r0
/* 8004301C 0003FF7C 38 21 00 10 */ addi r1, r1, 0x10
/* 80043020 0003FF80 4E 80 00 20 */ blr
.global sub_80043024
sub_80043024:
/* 80043024 0003FF84 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80043028 0003FF88 7C 08 02 A6 */ mflr r0
/* 8004302C 0003FF8C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80043030 0003FF90 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80043034 0003FF94 7C 9F 23 78 */ mr r31, r4
/* 80043038 0003FF98 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8004303C 0003FF9C 7C 7E 1B 79 */ or. r30, r3, r3
/* 80043040 0003FFA0 41 82 00 B8 */ beq lbl_800430F8
/* 80043044 0003FFA4 80 1E 00 04 */ lwz r0, 4(r30)
/* 80043048 0003FFA8 80 DE 00 0C */ lwz r6, 0xc(r30)
/* 8004304C 0003FFAC 1C 00 00 74 */ mulli r0, r0, 0x74
/* 80043050 0003FFB0 90 C1 00 10 */ stw r6, 0x10(r1)
/* 80043054 0003FFB4 7C 66 02 14 */ add r3, r6, r0
/* 80043058 0003FFB8 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8004305C 0003FFBC 90 61 00 08 */ stw r3, 8(r1)
/* 80043060 0003FFC0 90 61 00 0C */ stw r3, 0xc(r1)
/* 80043064 0003FFC4 48 00 00 6C */ b lbl_800430D0
lbl_80043068:
/* 80043068 0003FFC8 28 06 00 00 */ cmplwi r6, 0
/* 8004306C 0003FFCC 41 82 00 60 */ beq lbl_800430CC
/* 80043070 0003FFD0 41 82 00 5C */ beq lbl_800430CC
/* 80043074 0003FFD4 80 E6 00 00 */ lwz r7, 0(r6)
/* 80043078 0003FFD8 38 80 00 00 */ li r4, 0
/* 8004307C 0003FFDC 2C 07 00 00 */ cmpwi r7, 0
/* 80043080 0003FFE0 40 81 00 44 */ ble lbl_800430C4
/* 80043084 0003FFE4 2C 07 00 08 */ cmpwi r7, 8
/* 80043088 0003FFE8 38 A7 FF F8 */ addi r5, r7, -8
/* 8004308C 0003FFEC 40 81 00 20 */ ble lbl_800430AC
/* 80043090 0003FFF0 38 05 00 07 */ addi r0, r5, 7
/* 80043094 0003FFF4 54 00 E8 FE */ srwi r0, r0, 3
/* 80043098 0003FFF8 7C 09 03 A6 */ mtctr r0
/* 8004309C 0003FFFC 2C 05 00 00 */ cmpwi r5, 0
/* 800430A0 00040000 40 81 00 0C */ ble lbl_800430AC
lbl_800430A4:
/* 800430A4 00040004 38 84 00 08 */ addi r4, r4, 8
/* 800430A8 00040008 42 00 FF FC */ bdnz lbl_800430A4
lbl_800430AC:
/* 800430AC 0004000C 7C 04 38 50 */ subf r0, r4, r7
/* 800430B0 00040010 7C 09 03 A6 */ mtctr r0
/* 800430B4 00040014 7C 04 38 00 */ cmpw r4, r7
/* 800430B8 00040018 40 80 00 0C */ bge lbl_800430C4
lbl_800430BC:
/* 800430BC 0004001C 38 84 00 01 */ addi r4, r4, 1
/* 800430C0 00040020 42 00 FF FC */ bdnz lbl_800430BC
lbl_800430C4:
/* 800430C4 00040024 38 00 00 00 */ li r0, 0
/* 800430C8 00040028 90 06 00 00 */ stw r0, 0(r6)
lbl_800430CC:
/* 800430CC 0004002C 38 C6 00 74 */ addi r6, r6, 0x74
lbl_800430D0:
/* 800430D0 00040030 7C 06 18 40 */ cmplw r6, r3
/* 800430D4 00040034 40 82 FF 94 */ bne lbl_80043068
/* 800430D8 00040038 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 800430DC 0004003C 28 03 00 00 */ cmplwi r3, 0
/* 800430E0 00040040 41 82 00 08 */ beq lbl_800430E8
/* 800430E4 00040044 48 2D 28 4D */ bl Free__7CMemoryFPCv
lbl_800430E8:
/* 800430E8 00040048 7F E0 07 35 */ extsh. r0, r31
/* 800430EC 0004004C 40 81 00 0C */ ble lbl_800430F8
/* 800430F0 00040050 7F C3 F3 78 */ mr r3, r30
/* 800430F4 00040054 48 2D 28 3D */ bl Free__7CMemoryFPCv
lbl_800430F8:
/* 800430F8 00040058 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800430FC 0004005C 7F C3 F3 78 */ mr r3, r30
/* 80043100 00040060 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80043104 00040064 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80043108 00040068 7C 08 03 A6 */ mtlr r0
/* 8004310C 0004006C 38 21 00 20 */ addi r1, r1, 0x20
/* 80043110 00040070 4E 80 00 20 */ blr
.global "__dt__Q24rstl80reserved_vector<Q24rstl52reserved_vector<31TLockedToken<15CGenDescription>,2>,2>Fv"
"__dt__Q24rstl80reserved_vector<Q24rstl52reserved_vector<31TLockedToken<15CGenDescription>,2>,2>Fv":
/* 80043114 00040074 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80043118 00040078 7C 08 02 A6 */ mflr r0
/* 8004311C 0004007C 90 01 00 34 */ stw r0, 0x34(r1)
/* 80043120 00040080 BF 21 00 14 */ stmw r25, 0x14(r1)
/* 80043124 00040084 7C 79 1B 79 */ or. r25, r3, r3
/* 80043128 00040088 7C 9A 23 78 */ mr r26, r4
/* 8004312C 0004008C 41 82 00 84 */ beq lbl_800431B0
/* 80043130 00040090 3B C0 00 00 */ li r30, 0
/* 80043134 00040094 3B 79 00 04 */ addi r27, r25, 4
/* 80043138 00040098 7F DF F3 78 */ mr r31, r30
/* 8004313C 0004009C 48 00 00 50 */ b lbl_8004318C
lbl_80043140:
/* 80043140 000400A0 28 1B 00 00 */ cmplwi r27, 0
/* 80043144 000400A4 41 82 00 40 */ beq lbl_80043184
/* 80043148 000400A8 3B 9B 00 04 */ addi r28, r27, 4
/* 8004314C 000400AC 3B A0 00 00 */ li r29, 0
/* 80043150 000400B0 48 00 00 24 */ b lbl_80043174
lbl_80043154:
/* 80043154 000400B4 28 1C 00 00 */ cmplwi r28, 0
/* 80043158 000400B8 41 82 00 14 */ beq lbl_8004316C
/* 8004315C 000400BC 41 82 00 10 */ beq lbl_8004316C
/* 80043160 000400C0 7F 83 E3 78 */ mr r3, r28
/* 80043164 000400C4 38 80 00 00 */ li r4, 0
/* 80043168 000400C8 48 2F DC D9 */ bl __dt__6CTokenFv
lbl_8004316C:
/* 8004316C 000400CC 3B 9C 00 0C */ addi r28, r28, 0xc
/* 80043170 000400D0 3B BD 00 01 */ addi r29, r29, 1
lbl_80043174:
/* 80043174 000400D4 80 1B 00 00 */ lwz r0, 0(r27)
/* 80043178 000400D8 7C 1D 00 00 */ cmpw r29, r0
/* 8004317C 000400DC 41 80 FF D8 */ blt lbl_80043154
/* 80043180 000400E0 93 FB 00 00 */ stw r31, 0(r27)
lbl_80043184:
/* 80043184 000400E4 3B 7B 00 1C */ addi r27, r27, 0x1c
/* 80043188 000400E8 3B DE 00 01 */ addi r30, r30, 1
lbl_8004318C:
/* 8004318C 000400EC 80 19 00 00 */ lwz r0, 0(r25)
/* 80043190 000400F0 7C 1E 00 00 */ cmpw r30, r0
/* 80043194 000400F4 41 80 FF AC */ blt lbl_80043140
/* 80043198 000400F8 38 60 00 00 */ li r3, 0
/* 8004319C 000400FC 7F 40 07 35 */ extsh. r0, r26
/* 800431A0 00040100 90 79 00 00 */ stw r3, 0(r25)
/* 800431A4 00040104 40 81 00 0C */ ble lbl_800431B0
/* 800431A8 00040108 7F 23 CB 78 */ mr r3, r25
/* 800431AC 0004010C 48 2D 27 85 */ bl Free__7CMemoryFPCv
lbl_800431B0:
/* 800431B0 00040110 7F 23 CB 78 */ mr r3, r25
/* 800431B4 00040114 BB 21 00 14 */ lmw r25, 0x14(r1)
/* 800431B8 00040118 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800431BC 0004011C 7C 08 03 A6 */ mtlr r0
/* 800431C0 00040120 38 21 00 30 */ addi r1, r1, 0x30
/* 800431C4 00040124 4E 80 00 20 */ blr
.global __ct__10CPlayerGunF9TUniqueId
__ct__10CPlayerGunF9TUniqueId:
/* 800431C8 00040128 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 800431CC 0004012C 7C 08 02 A6 */ mflr r0
/* 800431D0 00040130 3C A0 80 5A */ lis r5, sZeroVector__9CVector3f@ha
/* 800431D4 00040134 3C C0 80 3E */ lis r6, kVerticalAngleTable@ha
/* 800431D8 00040138 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 800431DC 0004013C 39 00 00 00 */ li r8, 0
/* 800431E0 00040140 C0 22 94 04 */ lfs f1, lbl_805AB124@sda21(r2)
/* 800431E4 00040144 39 20 00 00 */ li r9, 0
/* 800431E8 00040148 BF 61 00 8C */ stmw r27, 0x8c(r1)
/* 800431EC 0004014C 7C 9E 23 78 */ mr r30, r4
/* 800431F0 00040150 3B A6 9D 50 */ addi r29, r6, kVerticalAngleTable@l
/* 800431F4 00040154 7C 7F 1B 78 */ mr r31, r3
/* 800431F8 00040158 38 C0 00 04 */ li r6, 4
/* 800431FC 0004015C 39 40 00 00 */ li r10, 0
/* 80043200 00040160 84 85 66 A0 */ lwzu r4, sZeroVector__9CVector3f@l(r5)
/* 80043204 00040164 80 E5 00 04 */ lwz r7, 0x4(r5)
/* 80043208 00040168 80 05 00 08 */ lwz r0, 0x8(r5)
/* 8004320C 0004016C 38 A1 00 58 */ addi r5, r1, 0x58
/* 80043210 00040170 90 81 00 58 */ stw r4, 0x58(r1)
/* 80043214 00040174 38 80 00 08 */ li r4, 8
/* 80043218 00040178 90 E1 00 5C */ stw r7, 0x5c(r1)
/* 8004321C 0004017C 38 E0 00 04 */ li r7, 4
/* 80043220 00040180 90 01 00 60 */ stw r0, 0x60(r1)
/* 80043224 00040184 48 0C 1F A9 */ bl __ct__12CActorLightsFUi9CVector3fiifbbb
/* 80043228 00040188 38 E0 00 00 */ li r7, 0
/* 8004322C 0004018C 38 C0 00 01 */ li r6, 1
/* 80043230 00040190 90 FF 02 E0 */ stw r7, 0x2e0(r31)
/* 80043234 00040194 38 A0 00 03 */ li r5, 3
/* 80043238 00040198 38 80 00 04 */ li r4, 4
/* 8004323C 0004019C 38 00 20 00 */ li r0, 0x2000
/* 80043240 000401A0 90 FF 02 E4 */ stw r7, 0x2e4(r31)
/* 80043244 000401A4 38 7F 03 A4 */ addi r3, r31, 0x3a4
/* 80043248 000401A8 C0 42 84 6C */ lfs f2, lbl_805AA18C@sda21(r2)
/* 8004324C 000401AC 90 FF 02 E8 */ stw r7, 0x2e8(r31)
/* 80043250 000401B0 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 80043254 000401B4 90 FF 02 EC */ stw r7, 0x2ec(r31)
/* 80043258 000401B8 90 FF 02 F0 */ stw r7, 0x2f0(r31)
/* 8004325C 000401BC 90 FF 02 F4 */ stw r7, 0x2f4(r31)
/* 80043260 000401C0 90 DF 02 F8 */ stw r6, 0x2f8(r31)
/* 80043264 000401C4 90 FF 02 FC */ stw r7, 0x2fc(r31)
/* 80043268 000401C8 90 FF 03 00 */ stw r7, 0x300(r31)
/* 8004326C 000401CC 90 FF 03 04 */ stw r7, 0x304(r31)
/* 80043270 000401D0 90 BF 03 08 */ stw r5, 0x308(r31)
/* 80043274 000401D4 90 FF 03 0C */ stw r7, 0x30c(r31)
/* 80043278 000401D8 90 FF 03 10 */ stw r7, 0x310(r31)
/* 8004327C 000401DC 90 FF 03 14 */ stw r7, 0x314(r31)
/* 80043280 000401E0 90 FF 03 18 */ stw r7, 0x318(r31)
/* 80043284 000401E4 80 BF 03 18 */ lwz r5, 0x318(r31)
/* 80043288 000401E8 90 BF 03 1C */ stw r5, 0x31c(r31)
/* 8004328C 000401EC 80 BF 03 10 */ lwz r5, 0x310(r31)
/* 80043290 000401F0 90 BF 03 20 */ stw r5, 0x320(r31)
/* 80043294 000401F4 90 9F 03 24 */ stw r4, 0x324(r31)
/* 80043298 000401F8 90 1F 03 28 */ stw r0, 0x328(r31)
/* 8004329C 000401FC 90 FF 03 2C */ stw r7, 0x32c(r31)
/* 800432A0 00040200 90 FF 03 30 */ stw r7, 0x330(r31)
/* 800432A4 00040204 90 FF 03 34 */ stw r7, 0x334(r31)
/* 800432A8 00040208 90 FF 03 38 */ stw r7, 0x338(r31)
/* 800432AC 0004020C 90 FF 03 3C */ stw r7, 0x33c(r31)
/* 800432B0 00040210 D0 5F 03 40 */ stfs f2, 0x340(r31)
/* 800432B4 00040214 D0 5F 03 44 */ stfs f2, 0x344(r31)
/* 800432B8 00040218 D0 5F 03 48 */ stfs f2, 0x348(r31)
/* 800432BC 0004021C D0 5F 03 4C */ stfs f2, 0x34c(r31)
/* 800432C0 00040220 D0 5F 03 50 */ stfs f2, 0x350(r31)
/* 800432C4 00040224 80 8D A1 34 */ lwz r4, gpTweakPlayerGun@sda21(r13)
/* 800432C8 00040228 C0 24 00 2C */ lfs f1, 0x2c(r4)
/* 800432CC 0004022C D0 3F 03 54 */ stfs f1, 0x354(r31)
/* 800432D0 00040230 80 8D A1 34 */ lwz r4, gpTweakPlayerGun@sda21(r13)
/* 800432D4 00040234 C0 24 00 30 */ lfs f1, 0x30(r4)
/* 800432D8 00040238 D0 3F 03 58 */ stfs f1, 0x358(r31)
/* 800432DC 0004023C D0 5F 03 5C */ stfs f2, 0x35c(r31)
/* 800432E0 00040240 D0 5F 03 60 */ stfs f2, 0x360(r31)
/* 800432E4 00040244 D0 5F 03 64 */ stfs f2, 0x364(r31)
/* 800432E8 00040248 D0 5F 03 68 */ stfs f2, 0x368(r31)
/* 800432EC 0004024C D0 1F 03 6C */ stfs f0, 0x36c(r31)
/* 800432F0 00040250 D0 1F 03 70 */ stfs f0, 0x370(r31)
/* 800432F4 00040254 D0 5F 03 74 */ stfs f2, 0x374(r31)
/* 800432F8 00040258 D0 5F 03 78 */ stfs f2, 0x378(r31)
/* 800432FC 0004025C D0 5F 03 7C */ stfs f2, 0x37c(r31)
/* 80043300 00040260 D0 5F 03 80 */ stfs f2, 0x380(r31)
/* 80043304 00040264 D0 5F 03 84 */ stfs f2, 0x384(r31)
/* 80043308 00040268 D0 5F 03 88 */ stfs f2, 0x388(r31)
/* 8004330C 0004026C D0 5F 03 8C */ stfs f2, 0x38c(r31)
/* 80043310 00040270 D0 5F 03 90 */ stfs f2, 0x390(r31)
/* 80043314 00040274 D0 5F 03 94 */ stfs f2, 0x394(r31)
/* 80043318 00040278 D0 5F 03 98 */ stfs f2, 0x398(r31)
/* 8004331C 0004027C D0 5F 03 9C */ stfs f2, 0x39c(r31)
/* 80043320 00040280 D0 5F 03 A0 */ stfs f2, 0x3a0(r31)
/* 80043324 00040284 48 11 18 8D */ bl __ct__7CFidgetFv
/* 80043328 00040288 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
/* 8004332C 0004028C 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 80043330 00040290 38 A3 66 A0 */ addi r5, r3, sZeroVector__9CVector3f@l
/* 80043334 00040294 C0 05 00 00 */ lfs f0, 0(r5)
/* 80043338 00040298 38 7F 03 E8 */ addi r3, r31, 0x3e8
/* 8004333C 0004029C 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 80043340 000402A0 D0 1F 03 DC */ stfs f0, 0x3dc(r31)
/* 80043344 000402A4 C0 05 00 04 */ lfs f0, 4(r5)
/* 80043348 000402A8 D0 1F 03 E0 */ stfs f0, 0x3e0(r31)
/* 8004334C 000402AC C0 05 00 08 */ lfs f0, 8(r5)
/* 80043350 000402B0 D0 1F 03 E4 */ stfs f0, 0x3e4(r31)
/* 80043354 000402B4 48 2C F8 21 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80043358 000402B8 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 8004335C 000402BC 38 7F 04 18 */ addi r3, r31, 0x418
/* 80043360 000402C0 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 80043364 000402C4 48 2C F8 11 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80043368 000402C8 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 8004336C 000402CC 38 7F 04 48 */ addi r3, r31, 0x448
/* 80043370 000402D0 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 80043374 000402D4 48 2C F8 01 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80043378 000402D8 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 8004337C 000402DC 38 7F 04 78 */ addi r3, r31, 0x478
/* 80043380 000402E0 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 80043384 000402E4 48 2C F7 F1 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80043388 000402E8 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 8004338C 000402EC 38 7F 04 A8 */ addi r3, r31, 0x4a8
/* 80043390 000402F0 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 80043394 000402F4 48 2C F7 E1 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80043398 000402F8 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 8004339C 000402FC 38 7F 04 D8 */ addi r3, r31, 0x4d8
/* 800433A0 00040300 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 800433A4 00040304 48 2C F7 D1 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 800433A8 00040308 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 800433AC 0004030C 38 7F 05 08 */ addi r3, r31, 0x508
/* 800433B0 00040310 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 800433B4 00040314 48 2C F7 C1 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 800433B8 00040318 A0 9E 00 00 */ lhz r4, 0(r30)
/* 800433BC 0004031C 38 00 00 00 */ li r0, 0
/* 800433C0 00040320 38 61 00 38 */ addi r3, r1, 0x38
/* 800433C4 00040324 B0 9F 05 38 */ sth r4, 0x538(r31)
/* 800433C8 00040328 A0 8D A3 8C */ lhz r4, kInvalidUniqueId@sda21(r13)
/* 800433CC 0004032C B0 9F 05 3A */ sth r4, 0x53a(r31)
/* 800433D0 00040330 A0 8D A3 8C */ lhz r4, kInvalidUniqueId@sda21(r13)
/* 800433D4 00040334 B0 9F 05 3C */ sth r4, 0x53c(r31)
/* 800433D8 00040338 90 1F 05 44 */ stw r0, 0x544(r31)
/* 800433DC 0004033C 90 1F 05 48 */ stw r0, 0x548(r31)
/* 800433E0 00040340 90 1F 05 4C */ stw r0, 0x54c(r31)
/* 800433E4 00040344 C0 2D 87 B8 */ lfs f1, kCameraBobExtentX__16CPlayerCameraBob@sda21(r13)
/* 800433E8 00040348 C0 4D 87 BC */ lfs f2, kCameraBobExtentY__16CPlayerCameraBob@sda21(r13)
/* 800433EC 0004034C 48 2D 0E 15 */ bl __ct__9CVector2fFff
/* 800433F0 00040350 C0 2D 87 C0 */ lfs f1, kCameraBobPeriod__16CPlayerCameraBob@sda21(r13)
/* 800433F4 00040354 7C 65 1B 78 */ mr r5, r3
/* 800433F8 00040358 38 7F 05 50 */ addi r3, r31, 0x550
/* 800433FC 0004035C 38 80 00 01 */ li r4, 1
/* 80043400 00040360 48 0A 6E 51 */ bl __ct__16CPlayerCameraBobFQ216CPlayerCameraBob14ECameraBobTypeRC9CVector2ff
/* 80043404 00040364 38 00 00 01 */ li r0, 1
/* 80043408 00040368 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2)
/* 8004340C 0004036C 90 1F 06 58 */ stw r0, 0x658(r31)
/* 80043410 00040370 38 00 00 00 */ li r0, 0
/* 80043414 00040374 38 7F 06 78 */ addi r3, r31, 0x678
/* 80043418 00040378 D0 1F 06 5C */ stfs f0, 0x65c(r31)
/* 8004341C 0004037C D0 1F 06 60 */ stfs f0, 0x660(r31)
/* 80043420 00040380 D0 1F 06 64 */ stfs f0, 0x664(r31)
/* 80043424 00040384 80 8D A1 34 */ lwz r4, gpTweakPlayerGun@sda21(r13)
/* 80043428 00040388 C0 04 00 24 */ lfs f0, 0x24(r4)
/* 8004342C 0004038C D0 1F 06 68 */ stfs f0, 0x668(r31)
/* 80043430 00040390 80 8D A1 34 */ lwz r4, gpTweakPlayerGun@sda21(r13)
/* 80043434 00040394 C0 04 00 28 */ lfs f0, 0x28(r4)
/* 80043438 00040398 D0 1F 06 6C */ stfs f0, 0x66c(r31)
/* 8004343C 0004039C A0 8D 82 48 */ lhz r4, lbl_805A6E08@sda21(r13)
/* 80043440 000403A0 B0 9F 06 70 */ sth r4, 0x670(r31)
/* 80043444 000403A4 90 1F 06 74 */ stw r0, 0x674(r31)
/* 80043448 000403A8 80 8D A1 34 */ lwz r4, gpTweakPlayerGun@sda21(r13)
/* 8004344C 000403AC C0 44 00 34 */ lfs f2, 0x34(r4)
/* 80043450 000403B0 C0 24 00 38 */ lfs f1, 0x38(r4)
/* 80043454 000403B4 4B FF AD 3D */ bl __ct__Q210CPlayerGun9CGunMorphFff
/* 80043458 000403B8 88 1F 06 A0 */ lbz r0, 0x6a0(r31)
/* 8004345C 000403BC 38 60 00 01 */ li r3, 1
/* 80043460 000403C0 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 80043464 000403C4 C0 A2 84 6C */ lfs f5, lbl_805AA18C@sda21(r2)
/* 80043468 000403C8 98 1F 06 A0 */ stb r0, 0x6a0(r31)
/* 8004346C 000403CC 38 00 00 00 */ li r0, 0
/* 80043470 000403D0 C0 82 85 2C */ lfs f4, lbl_805AA24C@sda21(r2)
/* 80043474 000403D4 38 7F 06 C8 */ addi r3, r31, 0x6c8
/* 80043478 000403D8 D0 BF 06 A4 */ stfs f5, 0x6a4(r31)
/* 8004347C 000403DC 38 81 00 4C */ addi r4, r1, 0x4c
/* 80043480 000403E0 C0 62 84 74 */ lfs f3, lbl_805AA194@sda21(r2)
/* 80043484 000403E4 38 A1 00 40 */ addi r5, r1, 0x40
/* 80043488 000403E8 D0 BF 06 A8 */ stfs f5, 0x6a8(r31)
/* 8004348C 000403EC C0 42 85 30 */ lfs f2, lbl_805AA250@sda21(r2)
/* 80043490 000403F0 D0 BF 06 AC */ stfs f5, 0x6ac(r31)
/* 80043494 000403F4 C0 22 85 34 */ lfs f1, lbl_805AA254@sda21(r2)
/* 80043498 000403F8 D0 BF 06 B0 */ stfs f5, 0x6b0(r31)
/* 8004349C 000403FC C0 02 85 38 */ lfs f0, lbl_805AA258@sda21(r2)
/* 800434A0 00040400 D0 BF 06 B4 */ stfs f5, 0x6b4(r31)
/* 800434A4 00040404 D0 BF 06 B8 */ stfs f5, 0x6b8(r31)
/* 800434A8 00040408 D0 BF 06 BC */ stfs f5, 0x6bc(r31)
/* 800434AC 0004040C 90 1F 06 C0 */ stw r0, 0x6c0(r31)
/* 800434B0 00040410 90 1F 06 C4 */ stw r0, 0x6c4(r31)
/* 800434B4 00040414 D0 81 00 40 */ stfs f4, 0x40(r1)
/* 800434B8 00040418 D0 61 00 44 */ stfs f3, 0x44(r1)
/* 800434BC 0004041C D0 41 00 48 */ stfs f2, 0x48(r1)
/* 800434C0 00040420 D0 21 00 4C */ stfs f1, 0x4c(r1)
/* 800434C4 00040424 D0 A1 00 50 */ stfs f5, 0x50(r1)
/* 800434C8 00040428 D0 01 00 54 */ stfs f0, 0x54(r1)
/* 800434CC 0004042C 48 2F 50 3D */ bl __ct__6CAABoxFRC9CVector3fRC9CVector3f
/* 800434D0 00040430 80 6D A1 48 */ lwz r3, gpTweakGunRes@sda21(r13)
/* 800434D4 00040434 38 A0 00 01 */ li r5, 1
/* 800434D8 00040438 80 C2 83 F0 */ lwz r6, kDefaultCharIdx__8CAnimRes@sda21(r2)
/* 800434DC 0004043C 38 00 00 00 */ li r0, 0
/* 800434E0 00040440 80 E3 00 0C */ lwz r7, 0xc(r3)
/* 800434E4 00040444 38 7F 06 E0 */ addi r3, r31, 0x6e0
/* 800434E8 00040448 C0 02 84 D0 */ lfs f0, lbl_805AA1F0@sda21(r2)
/* 800434EC 0004044C 38 81 00 64 */ addi r4, r1, 0x64
/* 800434F0 00040450 90 E1 00 64 */ stw r7, 0x64(r1)
/* 800434F4 00040454 90 C1 00 68 */ stw r6, 0x68(r1)
/* 800434F8 00040458 D0 01 00 6C */ stfs f0, 0x6c(r1)
/* 800434FC 0004045C D0 01 00 70 */ stfs f0, 0x70(r1)
/* 80043500 00040460 D0 01 00 74 */ stfs f0, 0x74(r1)
/* 80043504 00040464 98 A1 00 78 */ stb r5, 0x78(r1)
/* 80043508 00040468 90 01 00 7C */ stw r0, 0x7c(r1)
/* 8004350C 0004046C 48 0D 36 49 */ bl __ct__10CModelDataFRC8CAnimRes
/* 80043510 00040470 38 00 00 00 */ li r0, 0
/* 80043514 00040474 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 80043518 00040478 90 1F 07 2C */ stw r0, 0x72c(r31)
/* 8004351C 0004047C 38 63 CE B0 */ addi r3, r3, lbl_803CCEB0@l
/* 80043520 00040480 38 83 00 09 */ addi r4, r3, 9
/* 80043524 00040484 38 60 00 BC */ li r3, 0xbc
/* 80043528 00040488 90 1F 07 30 */ stw r0, 0x730(r31)
/* 8004352C 0004048C 38 A0 00 00 */ li r5, 0
/* 80043530 00040490 90 1F 07 34 */ stw r0, 0x734(r31)
/* 80043534 00040494 90 1F 07 38 */ stw r0, 0x738(r31)
/* 80043538 00040498 48 2D 23 35 */ bl __nw__FUlPCcPCc
/* 8004353C 0004049C 7C 60 1B 79 */ or. r0, r3, r3
/* 80043540 000404A0 41 82 00 1C */ beq lbl_8004355C
/* 80043544 000404A4 80 CD A1 48 */ lwz r6, gpTweakGunRes@sda21(r13)
/* 80043548 000404A8 3C 80 80 57 */ lis r4, kScaleVector__10CPlayerGun@ha
/* 8004354C 000404AC 38 A4 D4 04 */ addi r5, r4, kScaleVector__10CPlayerGun@l
/* 80043550 000404B0 80 86 00 04 */ lwz r4, 4(r6)
/* 80043554 000404B4 48 19 61 4D */ bl __ct__10CGunMotionFUiRC9CVector3f
/* 80043558 000404B8 7C 60 1B 78 */ mr r0, r3
lbl_8004355C:
/* 8004355C 000404BC 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 80043560 000404C0 90 1F 07 3C */ stw r0, 0x73c(r31)
/* 80043564 000404C4 38 83 CE B0 */ addi r4, r3, lbl_803CCEB0@l
/* 80043568 000404C8 38 60 03 B4 */ li r3, 0x3b4
/* 8004356C 000404CC 38 84 00 09 */ addi r4, r4, 9
/* 80043570 000404D0 38 A0 00 00 */ li r5, 0
/* 80043574 000404D4 48 2D 22 F9 */ bl __nw__FUlPCcPCc
/* 80043578 000404D8 7C 60 1B 79 */ or. r0, r3, r3
/* 8004357C 000404DC 41 82 00 14 */ beq lbl_80043590
/* 80043580 000404E0 3C 80 80 57 */ lis r4, kScaleVector__10CPlayerGun@ha
/* 80043584 000404E4 38 84 D4 04 */ addi r4, r4, kScaleVector__10CPlayerGun@l
/* 80043588 000404E8 48 0D C7 D9 */ bl __ct__11CGrappleArmFRC9CVector3f
/* 8004358C 000404EC 7C 60 1B 78 */ mr r0, r3
lbl_80043590:
/* 80043590 000404F0 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 80043594 000404F4 90 1F 07 40 */ stw r0, 0x740(r31)
/* 80043598 000404F8 38 83 CE B0 */ addi r4, r3, lbl_803CCEB0@l
/* 8004359C 000404FC 38 60 00 84 */ li r3, 0x84
/* 800435A0 00040500 38 84 00 09 */ addi r4, r4, 9
/* 800435A4 00040504 38 A0 00 00 */ li r5, 0
/* 800435A8 00040508 48 2D 22 C5 */ bl __nw__FUlPCcPCc
/* 800435AC 0004050C 7C 60 1B 79 */ or. r0, r3, r3
/* 800435B0 00040510 41 82 00 18 */ beq lbl_800435C8
/* 800435B4 00040514 A0 1E 00 00 */ lhz r0, 0(r30)
/* 800435B8 00040518 38 81 00 1C */ addi r4, r1, 0x1c
/* 800435BC 0004051C B0 01 00 1C */ sth r0, 0x1c(r1)
/* 800435C0 00040520 48 17 65 11 */ bl __ct__10CAuxWeaponF9TUniqueId
/* 800435C4 00040524 7C 60 1B 78 */ mr r0, r3
lbl_800435C8:
/* 800435C8 00040528 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 800435CC 0004052C 90 1F 07 44 */ stw r0, 0x744(r31)
/* 800435D0 00040530 38 83 CE B0 */ addi r4, r3, lbl_803CCEB0@l
/* 800435D4 00040534 38 60 00 4C */ li r3, 0x4c
/* 800435D8 00040538 38 84 00 09 */ addi r4, r4, 9
/* 800435DC 0004053C 38 A0 00 00 */ li r5, 0
/* 800435E0 00040540 48 2D 22 8D */ bl __nw__FUlPCcPCc
/* 800435E4 00040544 7C 60 1B 79 */ or. r0, r3, r3
/* 800435E8 00040548 41 82 00 24 */ beq lbl_8004360C
/* 800435EC 0004054C 3C 80 80 57 */ lis r4, kScaleVector__10CPlayerGun@ha
/* 800435F0 00040550 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 800435F4 00040554 C0 42 85 0C */ lfs f2, lbl_805AA22C@sda21(r2)
/* 800435F8 00040558 38 84 D4 04 */ addi r4, r4, kScaleVector__10CPlayerGun@l
/* 800435FC 0004055C 38 A0 00 14 */ li r5, 0x14
/* 80043600 00040560 38 C0 00 02 */ li r6, 2
/* 80043604 00040564 48 22 71 35 */ bl __ct__20CRainSplashGeneratorFRC9CVector3fiiff
/* 80043608 00040568 7C 60 1B 78 */ mr r0, r3
lbl_8004360C:
/* 8004360C 0004056C 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 80043610 00040570 90 1F 07 48 */ stw r0, 0x748(r31)
/* 80043614 00040574 38 83 CE B0 */ addi r4, r3, lbl_803CCEB0@l
/* 80043618 00040578 38 60 02 48 */ li r3, 0x248
/* 8004361C 0004057C 38 84 00 09 */ addi r4, r4, 9
/* 80043620 00040580 38 A0 00 00 */ li r5, 0
/* 80043624 00040584 48 2D 22 49 */ bl __nw__FUlPCcPCc
/* 80043628 00040588 7C 60 1B 79 */ or. r0, r3, r3
/* 8004362C 0004058C 41 82 00 30 */ beq lbl_8004365C
/* 80043630 00040590 A0 1E 00 00 */ lhz r0, 0(r30)
/* 80043634 00040594 3C 80 80 57 */ lis r4, kScaleVector__10CPlayerGun@ha
/* 80043638 00040598 39 04 D4 04 */ addi r8, r4, kScaleVector__10CPlayerGun@l
/* 8004363C 0004059C 80 8D A1 48 */ lwz r4, gpTweakGunRes@sda21(r13)
/* 80043640 000405A0 B0 01 00 18 */ sth r0, 0x18(r1)
/* 80043644 000405A4 38 C1 00 18 */ addi r6, r1, 0x18
/* 80043648 000405A8 38 A0 00 00 */ li r5, 0
/* 8004364C 000405AC 38 E0 00 20 */ li r7, 0x20
/* 80043650 000405B0 80 84 00 10 */ lwz r4, 0x10(r4)
/* 80043654 000405B4 48 09 C9 4D */ bl __ct__10CPowerBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
/* 80043658 000405B8 7C 60 1B 78 */ mr r0, r3
lbl_8004365C:
/* 8004365C 000405BC 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 80043660 000405C0 90 1F 07 4C */ stw r0, 0x74c(r31)
/* 80043664 000405C4 38 83 CE B0 */ addi r4, r3, lbl_803CCEB0@l
/* 80043668 000405C8 38 60 02 4C */ li r3, 0x24c
/* 8004366C 000405CC 38 84 00 09 */ addi r4, r4, 9
/* 80043670 000405D0 38 A0 00 00 */ li r5, 0
/* 80043674 000405D4 48 2D 21 F9 */ bl __nw__FUlPCcPCc
/* 80043678 000405D8 7C 60 1B 79 */ or. r0, r3, r3
/* 8004367C 000405DC 41 82 00 30 */ beq lbl_800436AC
/* 80043680 000405E0 A0 1E 00 00 */ lhz r0, 0(r30)
/* 80043684 000405E4 3C 80 80 57 */ lis r4, kScaleVector__10CPlayerGun@ha
/* 80043688 000405E8 39 04 D4 04 */ addi r8, r4, kScaleVector__10CPlayerGun@l
/* 8004368C 000405EC 80 8D A1 48 */ lwz r4, gpTweakGunRes@sda21(r13)
/* 80043690 000405F0 B0 01 00 14 */ sth r0, 0x14(r1)
/* 80043694 000405F4 38 C1 00 14 */ addi r6, r1, 0x14
/* 80043698 000405F8 38 A0 00 01 */ li r5, 1
/* 8004369C 000405FC 38 E0 00 20 */ li r7, 0x20
/* 800436A0 00040600 80 84 00 14 */ lwz r4, 0x14(r4)
/* 800436A4 00040604 48 09 E2 49 */ bl __ct__8CIceBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
/* 800436A8 00040608 7C 60 1B 78 */ mr r0, r3
lbl_800436AC:
/* 800436AC 0004060C 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 800436B0 00040610 90 1F 07 50 */ stw r0, 0x750(r31)
/* 800436B4 00040614 38 83 CE B0 */ addi r4, r3, lbl_803CCEB0@l
/* 800436B8 00040618 38 60 02 5C */ li r3, 0x25c
/* 800436BC 0004061C 38 84 00 09 */ addi r4, r4, 9
/* 800436C0 00040620 38 A0 00 00 */ li r5, 0
/* 800436C4 00040624 48 2D 21 A9 */ bl __nw__FUlPCcPCc
/* 800436C8 00040628 7C 60 1B 79 */ or. r0, r3, r3
/* 800436CC 0004062C 41 82 00 30 */ beq lbl_800436FC
/* 800436D0 00040630 A0 1E 00 00 */ lhz r0, 0(r30)
/* 800436D4 00040634 3C 80 80 57 */ lis r4, kScaleVector__10CPlayerGun@ha
/* 800436D8 00040638 39 04 D4 04 */ addi r8, r4, kScaleVector__10CPlayerGun@l
/* 800436DC 0004063C 80 8D A1 48 */ lwz r4, gpTweakGunRes@sda21(r13)
/* 800436E0 00040640 B0 01 00 10 */ sth r0, 0x10(r1)
/* 800436E4 00040644 38 C1 00 10 */ addi r6, r1, 0x10
/* 800436E8 00040648 38 A0 00 02 */ li r5, 2
/* 800436EC 0004064C 38 E0 00 20 */ li r7, 0x20
/* 800436F0 00040650 80 84 00 18 */ lwz r4, 0x18(r4)
/* 800436F4 00040654 48 09 D6 45 */ bl __ct__9CWaveBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
/* 800436F8 00040658 7C 60 1B 78 */ mr r0, r3
lbl_800436FC:
/* 800436FC 0004065C 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 80043700 00040660 90 1F 07 54 */ stw r0, 0x754(r31)
/* 80043704 00040664 38 83 CE B0 */ addi r4, r3, lbl_803CCEB0@l
/* 80043708 00040668 38 60 02 40 */ li r3, 0x240
/* 8004370C 0004066C 38 84 00 09 */ addi r4, r4, 9
/* 80043710 00040670 38 A0 00 00 */ li r5, 0
/* 80043714 00040674 48 2D 21 59 */ bl __nw__FUlPCcPCc
/* 80043718 00040678 7C 60 1B 79 */ or. r0, r3, r3
/* 8004371C 0004067C 41 82 00 30 */ beq lbl_8004374C
/* 80043720 00040680 A0 1E 00 00 */ lhz r0, 0(r30)
/* 80043724 00040684 3C 80 80 57 */ lis r4, kScaleVector__10CPlayerGun@ha
/* 80043728 00040688 39 04 D4 04 */ addi r8, r4, kScaleVector__10CPlayerGun@l
/* 8004372C 0004068C 80 8D A1 48 */ lwz r4, gpTweakGunRes@sda21(r13)
/* 80043730 00040690 B0 01 00 0C */ sth r0, 0xc(r1)
/* 80043734 00040694 38 C1 00 0C */ addi r6, r1, 0xc
/* 80043738 00040698 38 A0 00 03 */ li r5, 3
/* 8004373C 0004069C 38 E0 00 20 */ li r7, 0x20
/* 80043740 000406A0 80 84 00 1C */ lwz r4, 0x1c(r4)
/* 80043744 000406A4 48 09 BD F9 */ bl __ct__11CPlasmaBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
/* 80043748 000406A8 7C 60 1B 78 */ mr r0, r3
lbl_8004374C:
/* 8004374C 000406AC 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 80043750 000406B0 90 1F 07 58 */ stw r0, 0x758(r31)
/* 80043754 000406B4 38 83 CE B0 */ addi r4, r3, lbl_803CCEB0@l
/* 80043758 000406B8 38 60 02 7C */ li r3, 0x27c
/* 8004375C 000406BC 38 84 00 09 */ addi r4, r4, 9
/* 80043760 000406C0 38 A0 00 00 */ li r5, 0
/* 80043764 000406C4 48 2D 21 09 */ bl __nw__FUlPCcPCc
/* 80043768 000406C8 7C 60 1B 79 */ or. r0, r3, r3
/* 8004376C 000406CC 41 82 00 30 */ beq lbl_8004379C
/* 80043770 000406D0 A0 1E 00 00 */ lhz r0, 0(r30)
/* 80043774 000406D4 3C 80 80 57 */ lis r4, kScaleVector__10CPlayerGun@ha
/* 80043778 000406D8 39 04 D4 04 */ addi r8, r4, kScaleVector__10CPlayerGun@l
/* 8004377C 000406DC 80 8D A1 48 */ lwz r4, gpTweakGunRes@sda21(r13)
/* 80043780 000406E0 B0 01 00 08 */ sth r0, 8(r1)
/* 80043784 000406E4 38 C1 00 08 */ addi r6, r1, 8
/* 80043788 000406E8 38 A0 00 08 */ li r5, 8
/* 8004378C 000406EC 38 E0 00 20 */ li r7, 0x20
/* 80043790 000406F0 80 84 00 20 */ lwz r4, 0x20(r4)
/* 80043794 000406F4 48 14 98 AD */ bl __ct__11CPhazonBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f
/* 80043798 000406F8 7C 60 1B 78 */ mr r0, r3
lbl_8004379C:
/* 8004379C 000406FC 90 1F 07 5C */ stw r0, 0x75c(r31)
/* 800437A0 00040700 38 60 00 04 */ li r3, 4
/* 800437A4 00040704 34 9F 07 64 */ addic. r4, r31, 0x764
/* 800437A8 00040708 38 00 00 00 */ li r0, 0
/* 800437AC 0004070C 90 7F 07 60 */ stw r3, 0x760(r31)
/* 800437B0 00040710 41 82 00 08 */ beq lbl_800437B8
/* 800437B4 00040714 90 04 00 00 */ stw r0, 0(r4)
lbl_800437B8:
/* 800437B8 00040718 34 84 00 04 */ addic. r4, r4, 4
/* 800437BC 0004071C 41 82 00 08 */ beq lbl_800437C4
/* 800437C0 00040720 90 04 00 00 */ stw r0, 0(r4)
lbl_800437C4:
/* 800437C4 00040724 34 84 00 04 */ addic. r4, r4, 4
/* 800437C8 00040728 41 82 00 08 */ beq lbl_800437D0
/* 800437CC 0004072C 90 04 00 00 */ stw r0, 0(r4)
lbl_800437D0:
/* 800437D0 00040730 34 84 00 04 */ addic. r4, r4, 4
/* 800437D4 00040734 41 82 00 08 */ beq lbl_800437DC
/* 800437D8 00040738 90 04 00 00 */ stw r0, 0(r4)
lbl_800437DC:
/* 800437DC 0004073C 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 800437E0 00040740 3B 80 00 00 */ li r28, 0
/* 800437E4 00040744 38 63 CE B0 */ addi r3, r3, lbl_803CCEB0@l
/* 800437E8 00040748 3B 60 00 00 */ li r27, 0
/* 800437EC 0004074C 38 83 00 09 */ addi r4, r3, 9
/* 800437F0 00040750 38 60 03 40 */ li r3, 0x340
/* 800437F4 00040754 38 A0 00 00 */ li r5, 0
/* 800437F8 00040758 48 2D 20 75 */ bl __nw__FUlPCcPCc
/* 800437FC 0004075C 7C 7E 1B 79 */ or. r30, r3, r3
/* 80043800 00040760 41 82 00 64 */ beq lbl_80043864
/* 80043804 00040764 80 AD A1 48 */ lwz r5, gpTweakGunRes@sda21(r13)
/* 80043808 00040768 3C 60 50 41 */ lis r3, 0x50415254@ha
/* 8004380C 0004076C 38 03 52 54 */ addi r0, r3, 0x50415254@l
/* 80043810 00040770 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 80043814 00040774 80 C5 00 24 */ lwz r6, 0x24(r5)
/* 80043818 00040778 38 61 00 28 */ addi r3, r1, 0x28
/* 8004381C 0004077C 38 A1 00 30 */ addi r5, r1, 0x30
/* 80043820 00040780 90 01 00 30 */ stw r0, 0x30(r1)
/* 80043824 00040784 90 C1 00 34 */ stw r6, 0x34(r1)
/* 80043828 00040788 81 84 00 00 */ lwz r12, 0(r4)
/* 8004382C 0004078C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 80043830 00040790 7D 89 03 A6 */ mtctr r12
/* 80043834 00040794 4E 80 04 21 */ bctrl
/* 80043838 00040798 38 61 00 20 */ addi r3, r1, 0x20
/* 8004383C 0004079C 38 81 00 28 */ addi r4, r1, 0x28
/* 80043840 000407A0 3B 80 00 01 */ li r28, 1
/* 80043844 000407A4 48 2F D6 65 */ bl __ct__6CTokenFRC6CToken
/* 80043848 000407A8 7F C3 F3 78 */ mr r3, r30
/* 8004384C 000407AC 38 81 00 20 */ addi r4, r1, 0x20
/* 80043850 000407B0 3B 60 00 01 */ li r27, 1
/* 80043854 000407B4 38 A0 00 00 */ li r5, 0
/* 80043858 000407B8 38 C0 00 01 */ li r6, 1
/* 8004385C 000407BC 48 2D BB 85 */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags"
/* 80043860 000407C0 7C 7E 1B 78 */ mr r30, r3
lbl_80043864:
/* 80043864 000407C4 7C 7E 00 D0 */ neg r3, r30
/* 80043868 000407C8 7F 60 07 75 */ extsb. r0, r27
/* 8004386C 000407CC 7C 60 F3 78 */ or r0, r3, r30
/* 80043870 000407D0 54 00 0F FE */ srwi r0, r0, 0x1f
/* 80043874 000407D4 98 1F 07 74 */ stb r0, 0x774(r31)
/* 80043878 000407D8 93 DF 07 78 */ stw r30, 0x778(r31)
/* 8004387C 000407DC 41 82 00 10 */ beq lbl_8004388C
/* 80043880 000407E0 38 61 00 20 */ addi r3, r1, 0x20
/* 80043884 000407E4 38 80 00 00 */ li r4, 0
/* 80043888 000407E8 48 2F D5 B9 */ bl __dt__6CTokenFv
lbl_8004388C:
/* 8004388C 000407EC 7F 80 07 75 */ extsb. r0, r28
/* 80043890 000407F0 41 82 00 10 */ beq lbl_800438A0
/* 80043894 000407F4 38 61 00 28 */ addi r3, r1, 0x28
/* 80043898 000407F8 38 80 FF FF */ li r4, -1
/* 8004389C 000407FC 48 2F D5 A5 */ bl __dt__6CTokenFv
lbl_800438A0:
/* 800438A0 00040800 38 00 00 00 */ li r0, 0
/* 800438A4 00040804 3C 60 80 3D */ lis r3, lbl_803CCEB0@ha
/* 800438A8 00040808 98 1F 07 7C */ stb r0, 0x77c(r31)
/* 800438AC 0004080C 38 63 CE B0 */ addi r3, r3, lbl_803CCEB0@l
/* 800438B0 00040810 38 83 00 09 */ addi r4, r3, 9
/* 800438B4 00040814 38 60 00 8C */ li r3, 0x8c
/* 800438B8 00040818 90 1F 07 80 */ stw r0, 0x780(r31)
/* 800438BC 0004081C 38 A0 00 00 */ li r5, 0
/* 800438C0 00040820 90 1F 07 84 */ stw r0, 0x784(r31)
/* 800438C4 00040824 90 1F 07 C0 */ stw r0, 0x7c0(r31)
/* 800438C8 00040828 90 1F 08 00 */ stw r0, 0x800(r31)
/* 800438CC 0004082C 48 2D 1F A1 */ bl __nw__FUlPCcPCc
/* 800438D0 00040830 7C 60 1B 79 */ or. r0, r3, r3
/* 800438D4 00040834 41 82 00 18 */ beq lbl_800438EC
/* 800438D8 00040838 38 80 00 20 */ li r4, 0x20
/* 800438DC 0004083C 38 A0 00 20 */ li r5, 0x20
/* 800438E0 00040840 38 C0 00 01 */ li r6, 1
/* 800438E4 00040844 48 0C E2 E1 */ bl __ct__12CWorldShadowFUiUib
/* 800438E8 00040848 7C 60 1B 78 */ mr r0, r3
lbl_800438EC:
/* 800438EC 0004084C 90 1F 08 2C */ stw r0, 0x82c(r31)
/* 800438F0 00040850 38 60 FF FF */ li r3, -1
/* 800438F4 00040854 38 80 00 00 */ li r4, 0
/* 800438F8 00040858 38 00 00 01 */ li r0, 1
/* 800438FC 0004085C B0 7F 08 30 */ sth r3, 0x830(r31)
/* 80043900 00040860 88 7F 08 32 */ lbz r3, 0x832(r31)
/* 80043904 00040864 50 83 3E 30 */ rlwimi r3, r4, 7, 0x18, 0x18
/* 80043908 00040868 98 7F 08 32 */ stb r3, 0x832(r31)
/* 8004390C 0004086C 88 7F 08 32 */ lbz r3, 0x832(r31)
/* 80043910 00040870 50 83 36 72 */ rlwimi r3, r4, 6, 0x19, 0x19
/* 80043914 00040874 98 7F 08 32 */ stb r3, 0x832(r31)
/* 80043918 00040878 88 7F 08 32 */ lbz r3, 0x832(r31)
/* 8004391C 0004087C 50 83 2E B4 */ rlwimi r3, r4, 5, 0x1a, 0x1a
/* 80043920 00040880 98 7F 08 32 */ stb r3, 0x832(r31)
/* 80043924 00040884 88 7F 08 32 */ lbz r3, 0x832(r31)
/* 80043928 00040888 50 83 26 F6 */ rlwimi r3, r4, 4, 0x1b, 0x1b
/* 8004392C 0004088C 98 7F 08 32 */ stb r3, 0x832(r31)
/* 80043930 00040890 88 7F 08 32 */ lbz r3, 0x832(r31)
/* 80043934 00040894 50 83 1F 38 */ rlwimi r3, r4, 3, 0x1c, 0x1c
/* 80043938 00040898 98 7F 08 32 */ stb r3, 0x832(r31)
/* 8004393C 0004089C 88 7F 08 32 */ lbz r3, 0x832(r31)
/* 80043940 000408A0 50 83 17 7A */ rlwimi r3, r4, 2, 0x1d, 0x1d
/* 80043944 000408A4 98 7F 08 32 */ stb r3, 0x832(r31)
/* 80043948 000408A8 88 7F 08 32 */ lbz r3, 0x832(r31)
/* 8004394C 000408AC 50 83 0F BC */ rlwimi r3, r4, 1, 0x1e, 0x1e
/* 80043950 000408B0 98 7F 08 32 */ stb r3, 0x832(r31)
/* 80043954 000408B4 88 7F 08 32 */ lbz r3, 0x832(r31)
/* 80043958 000408B8 50 03 07 FE */ rlwimi r3, r0, 0, 0x1f, 0x1f
/* 8004395C 000408BC 98 7F 08 32 */ stb r3, 0x832(r31)
/* 80043960 000408C0 88 7F 08 33 */ lbz r3, 0x833(r31)
/* 80043964 000408C4 50 03 3E 30 */ rlwimi r3, r0, 7, 0x18, 0x18
/* 80043968 000408C8 98 7F 08 33 */ stb r3, 0x833(r31)
/* 8004396C 000408CC 88 7F 08 33 */ lbz r3, 0x833(r31)
/* 80043970 000408D0 50 83 36 72 */ rlwimi r3, r4, 6, 0x19, 0x19
/* 80043974 000408D4 98 7F 08 33 */ stb r3, 0x833(r31)
/* 80043978 000408D8 88 7F 08 33 */ lbz r3, 0x833(r31)
/* 8004397C 000408DC 50 83 2E B4 */ rlwimi r3, r4, 5, 0x1a, 0x1a
/* 80043980 000408E0 98 7F 08 33 */ stb r3, 0x833(r31)
/* 80043984 000408E4 88 7F 08 33 */ lbz r3, 0x833(r31)
/* 80043988 000408E8 50 83 26 F6 */ rlwimi r3, r4, 4, 0x1b, 0x1b
/* 8004398C 000408EC 98 7F 08 33 */ stb r3, 0x833(r31)
/* 80043990 000408F0 88 7F 08 33 */ lbz r3, 0x833(r31)
/* 80043994 000408F4 50 83 1F 38 */ rlwimi r3, r4, 3, 0x1c, 0x1c
/* 80043998 000408F8 98 7F 08 33 */ stb r3, 0x833(r31)
/* 8004399C 000408FC 88 7F 08 33 */ lbz r3, 0x833(r31)
/* 800439A0 00040900 50 83 17 7A */ rlwimi r3, r4, 2, 0x1d, 0x1d
/* 800439A4 00040904 98 7F 08 33 */ stb r3, 0x833(r31)
/* 800439A8 00040908 88 7F 08 33 */ lbz r3, 0x833(r31)
/* 800439AC 0004090C 50 03 0F BC */ rlwimi r3, r0, 1, 0x1e, 0x1e
/* 800439B0 00040910 98 7F 08 33 */ stb r3, 0x833(r31)
/* 800439B4 00040914 88 7F 08 33 */ lbz r3, 0x833(r31)
/* 800439B8 00040918 50 83 07 FE */ rlwimi r3, r4, 0, 0x1f, 0x1f
/* 800439BC 0004091C 98 7F 08 33 */ stb r3, 0x833(r31)
/* 800439C0 00040920 88 7F 08 34 */ lbz r3, 0x834(r31)
/* 800439C4 00040924 50 83 3E 30 */ rlwimi r3, r4, 7, 0x18, 0x18
/* 800439C8 00040928 98 7F 08 34 */ stb r3, 0x834(r31)
/* 800439CC 0004092C 88 7F 08 34 */ lbz r3, 0x834(r31)
/* 800439D0 00040930 50 83 36 72 */ rlwimi r3, r4, 6, 0x19, 0x19
/* 800439D4 00040934 98 7F 08 34 */ stb r3, 0x834(r31)
/* 800439D8 00040938 88 7F 08 34 */ lbz r3, 0x834(r31)
/* 800439DC 0004093C 50 83 2E B4 */ rlwimi r3, r4, 5, 0x1a, 0x1a
/* 800439E0 00040940 98 7F 08 34 */ stb r3, 0x834(r31)
/* 800439E4 00040944 88 7F 08 34 */ lbz r3, 0x834(r31)
/* 800439E8 00040948 50 83 26 F6 */ rlwimi r3, r4, 4, 0x1b, 0x1b
/* 800439EC 0004094C 98 7F 08 34 */ stb r3, 0x834(r31)
/* 800439F0 00040950 88 7F 08 34 */ lbz r3, 0x834(r31)
/* 800439F4 00040954 50 83 1F 38 */ rlwimi r3, r4, 3, 0x1c, 0x1c
/* 800439F8 00040958 98 7F 08 34 */ stb r3, 0x834(r31)
/* 800439FC 0004095C 88 7F 08 34 */ lbz r3, 0x834(r31)
/* 80043A00 00040960 50 83 17 7A */ rlwimi r3, r4, 2, 0x1d, 0x1d
/* 80043A04 00040964 98 7F 08 34 */ stb r3, 0x834(r31)
/* 80043A08 00040968 88 7F 08 34 */ lbz r3, 0x834(r31)
/* 80043A0C 0004096C 50 83 0F BC */ rlwimi r3, r4, 1, 0x1e, 0x1e
/* 80043A10 00040970 98 7F 08 34 */ stb r3, 0x834(r31)
/* 80043A14 00040974 88 7F 08 34 */ lbz r3, 0x834(r31)
/* 80043A18 00040978 50 83 07 FE */ rlwimi r3, r4, 0, 0x1f, 0x1f
/* 80043A1C 0004097C 98 7F 08 34 */ stb r3, 0x834(r31)
/* 80043A20 00040980 88 7F 08 35 */ lbz r3, 0x835(r31)
/* 80043A24 00040984 50 83 3E 30 */ rlwimi r3, r4, 7, 0x18, 0x18
/* 80043A28 00040988 98 7F 08 35 */ stb r3, 0x835(r31)
/* 80043A2C 0004098C 88 7F 08 35 */ lbz r3, 0x835(r31)
/* 80043A30 00040990 50 83 36 72 */ rlwimi r3, r4, 6, 0x19, 0x19
/* 80043A34 00040994 38 FD 00 00 */ addi r7, r29, 0
/* 80043A38 00040998 38 DD 00 0C */ addi r6, r29, 0xc
/* 80043A3C 0004099C 98 7F 08 35 */ stb r3, 0x835(r31)
/* 80043A40 000409A0 38 BD 00 18 */ addi r5, r29, 0x18
/* 80043A44 000409A4 7F E3 FB 78 */ mr r3, r31
/* 80043A48 000409A8 89 1F 08 35 */ lbz r8, 0x835(r31)
/* 80043A4C 000409AC 50 88 2E B4 */ rlwimi r8, r4, 5, 0x1a, 0x1a
/* 80043A50 000409B0 99 1F 08 35 */ stb r8, 0x835(r31)
/* 80043A54 000409B4 89 1F 08 35 */ lbz r8, 0x835(r31)
/* 80043A58 000409B8 50 88 26 F6 */ rlwimi r8, r4, 4, 0x1b, 0x1b
/* 80043A5C 000409BC 99 1F 08 35 */ stb r8, 0x835(r31)
/* 80043A60 000409C0 89 1F 08 35 */ lbz r8, 0x835(r31)
/* 80043A64 000409C4 50 88 1F 38 */ rlwimi r8, r4, 3, 0x1c, 0x1c
/* 80043A68 000409C8 99 1F 08 35 */ stb r8, 0x835(r31)
/* 80043A6C 000409CC 89 1F 08 35 */ lbz r8, 0x835(r31)
/* 80043A70 000409D0 50 88 17 7A */ rlwimi r8, r4, 2, 0x1d, 0x1d
/* 80043A74 000409D4 99 1F 08 35 */ stb r8, 0x835(r31)
/* 80043A78 000409D8 89 1F 08 35 */ lbz r8, 0x835(r31)
/* 80043A7C 000409DC 50 88 0F BC */ rlwimi r8, r4, 1, 0x1e, 0x1e
/* 80043A80 000409E0 99 1F 08 35 */ stb r8, 0x835(r31)
/* 80043A84 000409E4 89 1F 08 35 */ lbz r8, 0x835(r31)
/* 80043A88 000409E8 50 88 07 FE */ rlwimi r8, r4, 0, 0x1f, 0x1f
/* 80043A8C 000409EC 99 1F 08 35 */ stb r8, 0x835(r31)
/* 80043A90 000409F0 88 9F 06 F4 */ lbz r4, 0x6f4(r31)
/* 80043A94 000409F4 50 04 36 72 */ rlwimi r4, r0, 6, 0x19, 0x19
/* 80043A98 000409F8 98 9F 06 F4 */ stb r4, 0x6f4(r31)
/* 80043A9C 000409FC 80 8D A1 34 */ lwz r4, gpTweakPlayerGun@sda21(r13)
/* 80043AA0 00040A00 C0 04 00 04 */ lfs f0, 4(r4)
/* 80043AA4 00040A04 D0 07 00 08 */ stfs f0, 8(r7)
/* 80043AA8 00040A08 C0 04 00 08 */ lfs f0, 8(r4)
/* 80043AAC 00040A0C D0 1D 00 00 */ stfs f0, 0(r29)
/* 80043AB0 00040A10 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 80043AB4 00040A14 D0 06 00 04 */ stfs f0, 4(r6)
/* 80043AB8 00040A18 C0 04 00 18 */ lfs f0, 0x18(r4)
/* 80043ABC 00040A1C D0 06 00 08 */ stfs f0, 8(r6)
/* 80043AC0 00040A20 C0 04 00 20 */ lfs f0, 0x20(r4)
/* 80043AC4 00040A24 D0 1D 00 0C */ stfs f0, 0xc(r29)
/* 80043AC8 00040A28 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 80043ACC 00040A2C D0 05 00 04 */ stfs f0, 4(r5)
/* 80043AD0 00040A30 C0 04 00 14 */ lfs f0, 0x14(r4)
/* 80043AD4 00040A34 D0 05 00 08 */ stfs f0, 8(r5)
/* 80043AD8 00040A38 C0 04 00 1C */ lfs f0, 0x1c(r4)
/* 80043ADC 00040A3C D0 1D 00 18 */ stfs f0, 0x18(r29)
/* 80043AE0 00040A40 C0 04 00 48 */ lfs f0, 0x48(r4)
/* 80043AE4 00040A44 D0 0D 82 20 */ stfs f0, gGunExtendDistance__Q210CPlayerGun12CMotionState@sda21(r13)
/* 80043AE8 00040A48 4B FF AE A1 */ bl InitBeamData__10CPlayerGunFv
/* 80043AEC 00040A4C 7F E3 FB 78 */ mr r3, r31
/* 80043AF0 00040A50 4B FF AA FD */ bl InitBombData__10CPlayerGunFv
/* 80043AF4 00040A54 7F E3 FB 78 */ mr r3, r31
/* 80043AF8 00040A58 4B FF A9 01 */ bl InitMuzzleData__10CPlayerGunFv
/* 80043AFC 00040A5C 7F E3 FB 78 */ mr r3, r31
/* 80043B00 00040A60 4B FF A8 45 */ bl InitCTData__10CPlayerGunFv
/* 80043B04 00040A64 7F E3 FB 78 */ mr r3, r31
/* 80043B08 00040A68 4B FF 78 7D */ bl LoadHandAnimTokens__10CPlayerGunFv
/* 80043B0C 00040A6C 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
/* 80043B10 00040A70 38 7F 05 50 */ addi r3, r31, 0x550
/* 80043B14 00040A74 38 84 66 A0 */ addi r4, r4, sZeroVector__9CVector3f@l
/* 80043B18 00040A78 48 0A 5F 01 */ bl SetPlayerVelocity__16CPlayerCameraBobFRC9CVector3f
/* 80043B1C 00040A7C C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 80043B20 00040A80 38 7F 05 50 */ addi r3, r31, 0x550
/* 80043B24 00040A84 48 0A 63 29 */ bl SetBobMagnitude__16CPlayerCameraBobFf
/* 80043B28 00040A88 C0 22 84 6C */ lfs f1, lbl_805AA18C@sda21(r2)
/* 80043B2C 00040A8C 38 7F 05 50 */ addi r3, r31, 0x550
/* 80043B30 00040A90 48 0A 63 6D */ bl SetBobTimeScale__16CPlayerCameraBobFf
/* 80043B34 00040A94 7F E3 FB 78 */ mr r3, r31
/* 80043B38 00040A98 BB 61 00 8C */ lmw r27, 0x8c(r1)
/* 80043B3C 00040A9C 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 80043B40 00040AA0 7C 08 03 A6 */ mtlr r0
/* 80043B44 00040AA4 38 21 00 A0 */ addi r1, r1, 0xa0
/* 80043B48 00040AA8 4E 80 00 20 */ blr
.global "__dl__24TOneStatic<10CPlayerGun>FPv"
"__dl__24TOneStatic<10CPlayerGun>FPv":
/* 80043B4C 00040AAC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80043B50 00040AB0 7C 08 02 A6 */ mflr r0
/* 80043B54 00040AB4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80043B58 00040AB8 4B FD 73 89 */ bl "ReferenceCount__24TOneStatic<10CPlayerGun>Fv"
/* 80043B5C 00040ABC 80 83 00 00 */ lwz r4, 0(r3)
/* 80043B60 00040AC0 38 04 FF FF */ addi r0, r4, -1
/* 80043B64 00040AC4 90 03 00 00 */ stw r0, 0(r3)
/* 80043B68 00040AC8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80043B6C 00040ACC 7C 08 03 A6 */ mtlr r0
/* 80043B70 00040AD0 38 21 00 10 */ addi r1, r1, 0x10
/* 80043B74 00040AD4 4E 80 00 20 */ blr
.global __sinit_CPlayerGun_cpp
__sinit_CPlayerGun_cpp:
/* 80043B78 00040AD8 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80043B7C 00040ADC 7C 08 02 A6 */ mflr r0
/* 80043B80 00040AE0 90 01 00 54 */ stw r0, 0x54(r1)
/* 80043B84 00040AE4 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 80043B88 00040AE8 93 C1 00 48 */ stw r30, 0x48(r1)
/* 80043B8C 00040AEC 48 04 D6 71 */ bl GetMissileComboChargeFactor__12CPlayerStateFv
/* 80043B90 00040AF0 C0 42 84 D8 */ lfs f2, lbl_805AA1F8@sda21(r2)
/* 80043B94 00040AF4 3C 60 80 57 */ lis r3, kScaleVector__10CPlayerGun@ha
/* 80043B98 00040AF8 C0 02 84 80 */ lfs f0, lbl_805AA1A0@sda21(r2)
/* 80043B9C 00040AFC 38 83 D4 04 */ addi r4, r3, kScaleVector__10CPlayerGun@l
/* 80043BA0 00040B00 EC 62 08 24 */ fdivs f3, f2, f1
/* 80043BA4 00040B04 C0 22 84 98 */ lfs f1, lbl_805AA1B8@sda21(r2)
/* 80043BA8 00040B08 D0 04 00 00 */ stfs f0, 0(r4)
/* 80043BAC 00040B0C 38 61 00 0C */ addi r3, r1, 0xc
/* 80043BB0 00040B10 C0 42 84 FC */ lfs f2, lbl_805AA21C@sda21(r2)
/* 80043BB4 00040B14 D0 04 00 04 */ stfs f0, 4(r4)
/* 80043BB8 00040B18 D0 6D A1 B0 */ stfs f3, kTractorBeamFactor__10CPlayerGun@sda21(r13)
/* 80043BBC 00040B1C C0 62 84 6C */ lfs f3, lbl_805AA18C@sda21(r2)
/* 80043BC0 00040B20 D0 04 00 08 */ stfs f0, 8(r4)
/* 80043BC4 00040B24 C0 82 84 7C */ lfs f4, lbl_805AA19C@sda21(r2)
/* 80043BC8 00040B28 48 31 F8 25 */ bl __ct__6CColorFffff
/* 80043BCC 00040B2C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80043BD0 00040B30 38 60 00 00 */ li r3, 0
/* 80043BD4 00040B34 80 AD 82 28 */ lwz r5, lbl_805A6DE8@sda21(r13)
/* 80043BD8 00040B38 38 80 00 01 */ li r4, 1
/* 80043BDC 00040B3C 90 0D A1 B4 */ stw r0, kArmColor@sda21(r13)
/* 80043BE0 00040B40 48 34 63 15 */ bl __shl2i
/* 80043BE4 00040B44 80 AD 82 24 */ lwz r5, lbl_805A6DE4@sda21(r13)
/* 80043BE8 00040B48 7C 9E 23 78 */ mr r30, r4
/* 80043BEC 00040B4C 7C 7F 1B 78 */ mr r31, r3
/* 80043BF0 00040B50 38 60 00 00 */ li r3, 0
/* 80043BF4 00040B54 38 80 00 01 */ li r4, 1
/* 80043BF8 00040B58 48 34 62 FD */ bl __shl2i
/* 80043BFC 00040B5C 3C A0 80 46 */ lis r5, lbl_8045C518@ha
/* 80043C00 00040B60 38 00 00 03 */ li r0, 3
/* 80043C04 00040B64 38 A5 C5 18 */ addi r5, r5, lbl_8045C518@l
/* 80043C08 00040B68 90 01 00 38 */ stw r0, 0x38(r1)
/* 80043C0C 00040B6C 90 85 00 04 */ stw r4, 4(r5)
/* 80043C10 00040B70 90 65 00 00 */ stw r3, 0(r5)
/* 80043C14 00040B74 93 C5 00 0C */ stw r30, 0xc(r5)
/* 80043C18 00040B78 93 E5 00 08 */ stw r31, 8(r5)
/* 80043C1C 00040B7C 90 05 00 10 */ stw r0, 0x10(r5)
/* 80043C20 00040B80 48 04 D5 DD */ bl GetMissileComboChargeFactor__12CPlayerStateFv
/* 80043C24 00040B84 C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2)
/* 80043C28 00040B88 EC 00 08 24 */ fdivs f0, f0, f1
/* 80043C2C 00040B8C D0 0D A1 B8 */ stfs f0, lbl_805A8D78@sda21(r13)
/* 80043C30 00040B90 48 04 D5 CD */ bl GetMissileComboChargeFactor__12CPlayerStateFv
/* 80043C34 00040B94 C0 02 85 3C */ lfs f0, lbl_805AA25C@sda21(r2)
/* 80043C38 00040B98 EC 00 08 24 */ fdivs f0, f0, f1
/* 80043C3C 00040B9C D0 0D A1 BC */ stfs f0, lbl_805A8D7C@sda21(r13)
/* 80043C40 00040BA0 48 04 D5 BD */ bl GetMissileComboChargeFactor__12CPlayerStateFv
/* 80043C44 00040BA4 C0 42 84 7C */ lfs f2, lbl_805AA19C@sda21(r2)
/* 80043C48 00040BA8 38 80 00 00 */ li r4, 0
/* 80043C4C 00040BAC 38 00 00 03 */ li r0, 3
/* 80043C50 00040BB0 98 81 00 20 */ stb r4, 0x20(r1)
/* 80043C54 00040BB4 EC 02 08 24 */ fdivs f0, f2, f1
/* 80043C58 00040BB8 38 61 00 24 */ addi r3, r1, 0x24
/* 80043C5C 00040BBC 98 81 00 21 */ stb r4, 0x21(r1)
/* 80043C60 00040BC0 B0 01 00 22 */ sth r0, 0x22(r1)
/* 80043C64 00040BC4 FC 20 10 90 */ fmr f1, f2
/* 80043C68 00040BC8 D0 0D A1 C0 */ stfs f0, lbl_805A8D80@sda21(r13)
/* 80043C6C 00040BCC FC 60 10 90 */ fmr f3, f2
/* 80043C70 00040BD0 FC 80 10 90 */ fmr f4, f2
/* 80043C74 00040BD4 48 31 F7 79 */ bl __ct__6CColorFffff
/* 80043C78 00040BD8 38 C0 00 00 */ li r6, 0
/* 80043C7C 00040BDC 38 00 00 80 */ li r0, 0x80
/* 80043C80 00040BE0 98 C1 00 08 */ stb r6, 8(r1)
/* 80043C84 00040BE4 3C 60 80 46 */ lis r3, kThermalFlags@ha
/* 80043C88 00040BE8 C0 22 84 7C */ lfs f1, lbl_805AA19C@sda21(r2)
/* 80043C8C 00040BEC 39 43 C5 30 */ addi r10, r3, kThermalFlags@l
/* 80043C90 00040BF0 89 61 00 20 */ lbz r11, 0x20(r1)
/* 80043C94 00040BF4 38 80 00 03 */ li r4, 3
/* 80043C98 00040BF8 89 21 00 21 */ lbz r9, 0x21(r1)
/* 80043C9C 00040BFC 38 A0 00 05 */ li r5, 5
/* 80043CA0 00040C00 A1 01 00 22 */ lhz r8, 0x22(r1)
/* 80043CA4 00040C04 FC 40 08 90 */ fmr f2, f1
/* 80043CA8 00040C08 80 E1 00 24 */ lwz r7, 0x24(r1)
/* 80043CAC 00040C0C FC 60 08 90 */ fmr f3, f1
/* 80043CB0 00040C10 98 C1 00 09 */ stb r6, 9(r1)
/* 80043CB4 00040C14 FC 80 08 90 */ fmr f4, f1
/* 80043CB8 00040C18 38 61 00 1C */ addi r3, r1, 0x1c
/* 80043CBC 00040C1C 98 C1 00 0A */ stb r6, 0xa(r1)
/* 80043CC0 00040C20 98 01 00 0B */ stb r0, 0xb(r1)
/* 80043CC4 00040C24 80 01 00 08 */ lwz r0, 8(r1)
/* 80043CC8 00040C28 99 6A 00 00 */ stb r11, 0(r10)
/* 80043CCC 00040C2C 99 2A 00 01 */ stb r9, 1(r10)
/* 80043CD0 00040C30 B1 0A 00 02 */ sth r8, 2(r10)
/* 80043CD4 00040C34 90 EA 00 04 */ stw r7, 4(r10)
/* 80043CD8 00040C38 98 AA 00 08 */ stb r5, 8(r10)
/* 80043CDC 00040C3C 98 CA 00 09 */ stb r6, 9(r10)
/* 80043CE0 00040C40 B0 8A 00 0A */ sth r4, 0xa(r10)
/* 80043CE4 00040C44 90 0A 00 0C */ stw r0, 0xc(r10)
/* 80043CE8 00040C48 98 C1 00 18 */ stb r6, 0x18(r1)
/* 80043CEC 00040C4C 98 C1 00 19 */ stb r6, 0x19(r1)
/* 80043CF0 00040C50 B0 81 00 1A */ sth r4, 0x1a(r1)
/* 80043CF4 00040C54 48 31 F6 F9 */ bl __ct__6CColorFffff
/* 80043CF8 00040C58 C0 22 84 7C */ lfs f1, lbl_805AA19C@sda21(r2)
/* 80043CFC 00040C5C 38 80 00 00 */ li r4, 0
/* 80043D00 00040C60 3C 60 80 46 */ lis r3, kThermalFlags@ha
/* 80043D04 00040C64 89 21 00 18 */ lbz r9, 0x18(r1)
/* 80043D08 00040C68 39 03 C5 30 */ addi r8, r3, kThermalFlags@l
/* 80043D0C 00040C6C 88 E1 00 19 */ lbz r7, 0x19(r1)
/* 80043D10 00040C70 A0 C1 00 1A */ lhz r6, 0x1a(r1)
/* 80043D14 00040C74 38 00 00 03 */ li r0, 3
/* 80043D18 00040C78 80 A1 00 1C */ lwz r5, 0x1c(r1)
/* 80043D1C 00040C7C FC 40 08 90 */ fmr f2, f1
/* 80043D20 00040C80 FC 60 08 90 */ fmr f3, f1
/* 80043D24 00040C84 99 28 00 10 */ stb r9, 0x10(r8)
/* 80043D28 00040C88 FC 80 08 90 */ fmr f4, f1
/* 80043D2C 00040C8C 38 61 00 14 */ addi r3, r1, 0x14
/* 80043D30 00040C90 98 E8 00 11 */ stb r7, 0x11(r8)
/* 80043D34 00040C94 B0 C8 00 12 */ sth r6, 0x12(r8)
/* 80043D38 00040C98 90 A8 00 14 */ stw r5, 0x14(r8)
/* 80043D3C 00040C9C 98 81 00 10 */ stb r4, 0x10(r1)
/* 80043D40 00040CA0 98 81 00 11 */ stb r4, 0x11(r1)
/* 80043D44 00040CA4 B0 01 00 12 */ sth r0, 0x12(r1)
/* 80043D48 00040CA8 48 31 F6 A5 */ bl __ct__6CColorFffff
/* 80043D4C 00040CAC 3C 60 80 46 */ lis r3, kThermalFlags@ha
/* 80043D50 00040CB0 88 C1 00 10 */ lbz r6, 0x10(r1)
/* 80043D54 00040CB4 38 A3 C5 30 */ addi r5, r3, kThermalFlags@l
/* 80043D58 00040CB8 88 81 00 11 */ lbz r4, 0x11(r1)
/* 80043D5C 00040CBC A0 61 00 12 */ lhz r3, 0x12(r1)
/* 80043D60 00040CC0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80043D64 00040CC4 98 C5 00 18 */ stb r6, 0x18(r5)
/* 80043D68 00040CC8 98 85 00 19 */ stb r4, 0x19(r5)
/* 80043D6C 00040CCC B0 65 00 1A */ sth r3, 0x1a(r5)
/* 80043D70 00040CD0 90 05 00 1C */ stw r0, 0x1c(r5)
/* 80043D74 00040CD4 48 30 62 39 */ bl White__6CColorFv
/* 80043D78 00040CD8 A1 42 C5 FC */ lhz r10, kInternalInvalidSfxId__11CSfxManager@sda21(r2)
/* 80043D7C 00040CDC 39 00 00 07 */ li r8, 7
/* 80043D80 00040CE0 81 23 00 00 */ lwz r9, 0(r3)
/* 80043D84 00040CE4 38 CD A1 C4 */ addi r6, r13, kHandThermalFlag@sda21
/* 80043D88 00040CE8 38 E0 00 00 */ li r7, 0
/* 80043D8C 00040CEC 38 A0 00 03 */ li r5, 3
/* 80043D90 00040CF0 38 6D A1 CC */ addi r3, r13, kHandHoloFlag@sda21
/* 80043D94 00040CF4 80 0D A1 B4 */ lwz r0, kArmColor@sda21(r13)
/* 80043D98 00040CF8 38 80 00 01 */ li r4, 1
/* 80043D9C 00040CFC 99 0D A1 C4 */ stb r8, kHandThermalFlag@sda21(r13)
/* 80043DA0 00040D00 98 E6 00 01 */ stb r7, 1(r6)
/* 80043DA4 00040D04 B0 A6 00 02 */ sth r5, 2(r6)
/* 80043DA8 00040D08 91 26 00 04 */ stw r9, 4(r6)
/* 80043DAC 00040D0C 98 8D A1 CC */ stb r4, kHandHoloFlag@sda21(r13)
/* 80043DB0 00040D10 98 E3 00 01 */ stb r7, 1(r3)
/* 80043DB4 00040D14 B0 A3 00 02 */ sth r5, 2(r3)
/* 80043DB8 00040D18 90 03 00 04 */ stw r0, 4(r3)
/* 80043DBC 00040D1C B1 4D 82 2C */ sth r10, mItemEmptySound@sda21(r13)
/* 80043DC0 00040D20 B1 4D 82 30 */ sth r10, mIntoBeamSound@sda21(r13)
/* 80043DC4 00040D24 B1 4D 82 38 */ sth r10, mFromBeamSound@sda21(r13)
/* 80043DC8 00040D28 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 80043DCC 00040D2C 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 80043DD0 00040D30 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80043DD4 00040D34 7C 08 03 A6 */ mtlr r0
/* 80043DD8 00040D38 38 21 00 50 */ addi r1, r1, 0x50
/* 80043DDC 00040D3C 4E 80 00 20 */ blr
.section .rodata
.balign 8
.global chargeShakeTbl
chargeShakeTbl:
# ROM: 0x3C9E38
.4byte 0xBA83126F
.4byte 0
.float 0.001
.global mHandAnimId__10CPlayerGun
mHandAnimId__10CPlayerGun:
# ROM: 0x3C9E44
.4byte 0
.4byte 0x00000001
.4byte 0x00000002
.4byte 0x00000001
.global mBeamArr
mBeamArr:
# ROM: 0x3C9E54
.4byte 0
.4byte 0x00000001
.4byte 0x00000002
.4byte 0x00000003
.global mBeamComboArr
mBeamComboArr:
# ROM: 0x3C9E64
.4byte 0x0000000B
.4byte 0x0000000E
.4byte 0x0000001C
.4byte 0x00000008
.global mBeamCtrlCmd
mBeamCtrlCmd:
# ROM: 0x3C9E74
.4byte 0x00000013
.4byte 0x00000014
.4byte 0x00000015
.4byte 0x00000016
.global lbl_803CCE84
lbl_803CCE84:
# ROM: 0x3C9E84
.4byte 0
.4byte 0x00000001
.4byte 0x00000002
.4byte 0x00000003
.4byte 0
.global lbl_803CCE98
lbl_803CCE98:
# ROM: 0x3C9E98
.4byte 0x00000009
.4byte 0x00000001
.4byte 0x0000000D
.4byte 0x00000001
.4byte 0x000000FF
.4byte 0
.global lbl_803CCEB0
lbl_803CCEB0:
# ROM: 0x3C9EB0
.asciz "GBSE_SDK"
.byte 0x3F, 0x3F, 0x28
.4byte 0x3F3F2900
.asciz "GunLite"
.asciz "elbow"
.byte 0x57, 0x68
.asciz "ole Body"
.balign 4
.4byte 0