prime/asm/MetroidPrime/Weapons/GunController/CGunController.s

866 lines
43 KiB
ArmAsm

.include "macros.inc"
.section .data
.balign 8
.global lbl_803E5728
lbl_803E5728:
# ROM: 0x3E2728
.4byte lbl_801CC7D4
.4byte lbl_801CC7D4
.4byte lbl_801CC69C
.4byte lbl_801CC6F0
.4byte lbl_801CC7D4
.4byte lbl_801CC710
.4byte lbl_801CC730
.4byte lbl_801CC798
.section .text, "ax"
.global ReturnToBasePosition__14CGunControllerFR13CStateManager
ReturnToBasePosition__14CGunControllerFR13CStateManager:
/* 801CC12C 001C908C 94 21 FF 20 */ stwu r1, -0xe0(r1)
/* 801CC130 001C9090 7C 08 02 A6 */ mflr r0
/* 801CC134 001C9094 90 01 00 E4 */ stw r0, 0xe4(r1)
/* 801CC138 001C9098 93 E1 00 DC */ stw r31, 0xdc(r1)
/* 801CC13C 001C909C 7C 7F 1B 78 */ mr r31, r3
/* 801CC140 001C90A0 93 C1 00 D8 */ stw r30, 0xd8(r1)
/* 801CC144 001C90A4 93 A1 00 D4 */ stw r29, 0xd4(r1)
/* 801CC148 001C90A8 7C 9D 23 78 */ mr r29, r4
/* 801CC14C 001C90AC 80 83 00 00 */ lwz r4, 0(r3)
/* 801CC150 001C90B0 38 61 00 10 */ addi r3, r1, 0x10
/* 801CC154 001C90B4 83 C4 00 10 */ lwz r30, 0x10(r4)
/* 801CC158 001C90B8 48 11 6F 25 */ bl NoParameter__12CPASAnimParmFv
/* 801CC15C 001C90BC 38 61 00 18 */ addi r3, r1, 0x18
/* 801CC160 001C90C0 48 11 6F 1D */ bl NoParameter__12CPASAnimParmFv
/* 801CC164 001C90C4 38 61 00 20 */ addi r3, r1, 0x20
/* 801CC168 001C90C8 48 11 6F 15 */ bl NoParameter__12CPASAnimParmFv
/* 801CC16C 001C90CC 38 61 00 28 */ addi r3, r1, 0x28
/* 801CC170 001C90D0 48 11 6F 0D */ bl NoParameter__12CPASAnimParmFv
/* 801CC174 001C90D4 38 61 00 30 */ addi r3, r1, 0x30
/* 801CC178 001C90D8 48 11 6F 05 */ bl NoParameter__12CPASAnimParmFv
/* 801CC17C 001C90DC 38 61 00 38 */ addi r3, r1, 0x38
/* 801CC180 001C90E0 48 11 6E FD */ bl NoParameter__12CPASAnimParmFv
/* 801CC184 001C90E4 38 61 00 40 */ addi r3, r1, 0x40
/* 801CC188 001C90E8 48 11 6E F5 */ bl NoParameter__12CPASAnimParmFv
/* 801CC18C 001C90EC 38 61 00 48 */ addi r3, r1, 0x48
/* 801CC190 001C90F0 48 11 6E ED */ bl NoParameter__12CPASAnimParmFv
/* 801CC194 001C90F4 38 61 00 18 */ addi r3, r1, 0x18
/* 801CC198 001C90F8 38 01 00 10 */ addi r0, r1, 0x10
/* 801CC19C 001C90FC 90 61 00 08 */ stw r3, 8(r1)
/* 801CC1A0 001C9100 38 61 00 80 */ addi r3, r1, 0x80
/* 801CC1A4 001C9104 38 A1 00 48 */ addi r5, r1, 0x48
/* 801CC1A8 001C9108 38 C1 00 40 */ addi r6, r1, 0x40
/* 801CC1AC 001C910C 90 01 00 0C */ stw r0, 0xc(r1)
/* 801CC1B0 001C9110 38 E1 00 38 */ addi r7, r1, 0x38
/* 801CC1B4 001C9114 39 01 00 30 */ addi r8, r1, 0x30
/* 801CC1B8 001C9118 39 21 00 28 */ addi r9, r1, 0x28
/* 801CC1BC 001C911C 39 41 00 20 */ addi r10, r1, 0x20
/* 801CC1C0 001C9120 38 80 00 06 */ li r4, 6
/* 801CC1C4 001C9124 4B EB 11 01 */ bl __ct__16CPASAnimParmDataFiRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParm
/* 801CC1C8 001C9128 80 DD 09 00 */ lwz r6, 0x900(r29)
/* 801CC1CC 001C912C 38 61 00 50 */ addi r3, r1, 0x50
/* 801CC1D0 001C9130 38 9E 00 3C */ addi r4, r30, 0x3c
/* 801CC1D4 001C9134 38 A1 00 80 */ addi r5, r1, 0x80
/* 801CC1D8 001C9138 38 E0 FF FF */ li r7, -1
/* 801CC1DC 001C913C 48 11 8E 85 */ bl FindBestAnimation__12CPASDatabaseCFRC16CPASAnimParmDataR9CRandom16i
/* 801CC1E0 001C9140 34 A1 00 84 */ addic. r5, r1, 0x84
/* 801CC1E4 001C9144 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 801CC1E8 001C9148 41 82 00 58 */ beq lbl_801CC240
/* 801CC1EC 001C914C 80 C5 00 00 */ lwz r6, 0(r5)
/* 801CC1F0 001C9150 38 60 00 00 */ li r3, 0
/* 801CC1F4 001C9154 2C 06 00 00 */ cmpwi r6, 0
/* 801CC1F8 001C9158 40 81 00 40 */ ble lbl_801CC238
/* 801CC1FC 001C915C 2C 06 00 08 */ cmpwi r6, 8
/* 801CC200 001C9160 38 86 FF F8 */ addi r4, r6, -8
/* 801CC204 001C9164 40 81 00 20 */ ble lbl_801CC224
/* 801CC208 001C9168 38 04 00 07 */ addi r0, r4, 7
/* 801CC20C 001C916C 54 00 E8 FE */ srwi r0, r0, 3
/* 801CC210 001C9170 7C 09 03 A6 */ mtctr r0
/* 801CC214 001C9174 2C 04 00 00 */ cmpwi r4, 0
/* 801CC218 001C9178 40 81 00 0C */ ble lbl_801CC224
lbl_801CC21C:
/* 801CC21C 001C917C 38 63 00 08 */ addi r3, r3, 8
/* 801CC220 001C9180 42 00 FF FC */ bdnz lbl_801CC21C
lbl_801CC224:
/* 801CC224 001C9184 7C 03 30 50 */ subf r0, r3, r6
/* 801CC228 001C9188 7C 09 03 A6 */ mtctr r0
/* 801CC22C 001C918C 7C 03 30 00 */ cmpw r3, r6
/* 801CC230 001C9190 40 80 00 08 */ bge lbl_801CC238
lbl_801CC234:
/* 801CC234 001C9194 42 00 00 00 */ bdnz lbl_801CC234
lbl_801CC238:
/* 801CC238 001C9198 38 00 00 00 */ li r0, 0
/* 801CC23C 001C919C 90 05 00 00 */ stw r0, 0(r5)
lbl_801CC240:
/* 801CC240 001C91A0 88 1E 02 20 */ lbz r0, 0x220(r30)
/* 801CC244 001C91A4 39 00 00 00 */ li r8, 0
/* 801CC248 001C91A8 51 00 36 72 */ rlwimi r0, r8, 6, 0x19, 0x19
/* 801CC24C 001C91AC 38 E0 00 01 */ li r7, 1
/* 801CC250 001C91B0 98 1E 02 20 */ stb r0, 0x220(r30)
/* 801CC254 001C91B4 38 00 FF FF */ li r0, -1
/* 801CC258 001C91B8 C0 02 AB 70 */ lfs f0, lbl_805AC890@sda21(r2)
/* 801CC25C 001C91BC 7F C3 F3 78 */ mr r3, r30
/* 801CC260 001C91C0 88 DE 02 20 */ lbz r6, 0x220(r30)
/* 801CC264 001C91C4 50 E6 3E 30 */ rlwimi r6, r7, 7, 0x18, 0x18
/* 801CC268 001C91C8 38 81 00 58 */ addi r4, r1, 0x58
/* 801CC26C 001C91CC 38 A0 00 00 */ li r5, 0
/* 801CC270 001C91D0 98 DE 02 20 */ stb r6, 0x220(r30)
/* 801CC274 001C91D4 93 A1 00 58 */ stw r29, 0x58(r1)
/* 801CC278 001C91D8 90 01 00 5C */ stw r0, 0x5c(r1)
/* 801CC27C 001C91DC D0 01 00 60 */ stfs f0, 0x60(r1)
/* 801CC280 001C91E0 98 E1 00 64 */ stb r7, 0x64(r1)
/* 801CC284 001C91E4 91 01 00 68 */ stw r8, 0x68(r1)
/* 801CC288 001C91E8 91 01 00 6C */ stw r8, 0x6c(r1)
/* 801CC28C 001C91EC 99 01 00 70 */ stb r8, 0x70(r1)
/* 801CC290 001C91F0 91 01 00 74 */ stw r8, 0x74(r1)
/* 801CC294 001C91F4 91 01 00 78 */ stw r8, 0x78(r1)
/* 801CC298 001C91F8 91 01 00 7C */ stw r8, 0x7c(r1)
/* 801CC29C 001C91FC 4B E6 0A E1 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
/* 801CC2A0 001C9200 93 BF 00 54 */ stw r29, 0x54(r31)
/* 801CC2A4 001C9204 38 60 00 00 */ li r3, 0
/* 801CC2A8 001C9208 88 1F 00 58 */ lbz r0, 0x58(r31)
/* 801CC2AC 001C920C 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 801CC2B0 001C9210 98 1F 00 58 */ stb r0, 0x58(r31)
/* 801CC2B4 001C9214 83 E1 00 DC */ lwz r31, 0xdc(r1)
/* 801CC2B8 001C9218 83 C1 00 D8 */ lwz r30, 0xd8(r1)
/* 801CC2BC 001C921C 83 A1 00 D4 */ lwz r29, 0xd4(r1)
/* 801CC2C0 001C9220 80 01 00 E4 */ lwz r0, 0xe4(r1)
/* 801CC2C4 001C9224 7C 08 03 A6 */ mtlr r0
/* 801CC2C8 001C9228 38 21 00 E0 */ addi r1, r1, 0xe0
/* 801CC2CC 001C922C 4E 80 00 20 */ blr
.global Reset__14CGunControllerFv
Reset__14CGunControllerFv:
/* 801CC2D0 001C9230 88 03 00 58 */ lbz r0, 0x58(r3)
/* 801CC2D4 001C9234 38 80 00 01 */ li r4, 1
/* 801CC2D8 001C9238 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 801CC2DC 001C923C 38 80 00 00 */ li r4, 0
/* 801CC2E0 001C9240 98 03 00 58 */ stb r0, 0x58(r3)
/* 801CC2E4 001C9244 88 03 00 58 */ lbz r0, 0x58(r3)
/* 801CC2E8 001C9248 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 801CC2EC 001C924C 98 03 00 58 */ stb r0, 0x58(r3)
/* 801CC2F0 001C9250 90 83 00 50 */ stw r4, 0x50(r3)
/* 801CC2F4 001C9254 4E 80 00 20 */ blr
.global ReturnToDefault__14CGunControllerFR13CStateManagerf
ReturnToDefault__14CGunControllerFR13CStateManagerf:
/* 801CC2F8 001C9258 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801CC2FC 001C925C 7C 08 02 A6 */ mflr r0
/* 801CC300 001C9260 7C 88 23 78 */ mr r8, r4
/* 801CC304 001C9264 90 01 00 14 */ stw r0, 0x14(r1)
/* 801CC308 001C9268 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801CC30C 001C926C 7C BF 2B 78 */ mr r31, r5
/* 801CC310 001C9270 93 C1 00 08 */ stw r30, 8(r1)
/* 801CC314 001C9274 7C 7E 1B 78 */ mr r30, r3
/* 801CC318 001C9278 80 03 00 50 */ lwz r0, 0x50(r3)
/* 801CC31C 001C927C 80 C3 00 00 */ lwz r6, 0(r3)
/* 801CC320 001C9280 2C 00 00 05 */ cmpwi r0, 5
/* 801CC324 001C9284 80 E6 00 10 */ lwz r7, 0x10(r6)
/* 801CC328 001C9288 41 82 00 9C */ beq lbl_801CC3C4
/* 801CC32C 001C928C 40 80 00 1C */ bge lbl_801CC348
/* 801CC330 001C9290 2C 00 00 03 */ cmpwi r0, 3
/* 801CC334 001C9294 41 82 00 70 */ beq lbl_801CC3A4
/* 801CC338 001C9298 40 80 00 24 */ bge lbl_801CC35C
/* 801CC33C 001C929C 2C 00 00 02 */ cmpwi r0, 2
/* 801CC340 001C92A0 40 80 00 2C */ bge lbl_801CC36C
/* 801CC344 001C92A4 48 00 00 98 */ b lbl_801CC3DC
lbl_801CC348:
/* 801CC348 001C92A8 2C 00 00 07 */ cmpwi r0, 7
/* 801CC34C 001C92AC 41 82 00 80 */ beq lbl_801CC3CC
/* 801CC350 001C92B0 40 80 00 8C */ bge lbl_801CC3DC
/* 801CC354 001C92B4 38 00 00 02 */ li r0, 2
/* 801CC358 001C92B8 90 1E 00 50 */ stw r0, 0x50(r30)
lbl_801CC35C:
/* 801CC35C 001C92BC 88 1E 00 18 */ lbz r0, 0x18(r30)
/* 801CC360 001C92C0 38 60 00 00 */ li r3, 0
/* 801CC364 001C92C4 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 801CC368 001C92C8 98 1E 00 18 */ stb r0, 0x18(r30)
lbl_801CC36C:
/* 801CC36C 001C92CC 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 801CC370 001C92D0 40 82 00 6C */ bne lbl_801CC3DC
/* 801CC374 001C92D4 80 BE 00 10 */ lwz r5, 0x10(r30)
/* 801CC378 001C92D8 7C E4 3B 78 */ mr r4, r7
/* 801CC37C 001C92DC 80 DE 00 14 */ lwz r6, 0x14(r30)
/* 801CC380 001C92E0 38 7E 00 04 */ addi r3, r30, 4
/* 801CC384 001C92E4 38 E0 00 02 */ li r7, 2
/* 801CC388 001C92E8 48 00 09 21 */ bl SetAnim__11CGSFreeLookFR9CAnimDataiiiR13CStateManagerf
/* 801CC38C 001C92EC 90 7E 00 54 */ stw r3, 0x54(r30)
/* 801CC390 001C92F0 38 60 00 00 */ li r3, 0
/* 801CC394 001C92F4 88 1E 00 58 */ lbz r0, 0x58(r30)
/* 801CC398 001C92F8 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 801CC39C 001C92FC 98 1E 00 58 */ stb r0, 0x58(r30)
/* 801CC3A0 001C9300 48 00 00 3C */ b lbl_801CC3DC
lbl_801CC3A4:
/* 801CC3A4 001C9304 80 BE 00 28 */ lwz r5, 0x28(r30)
/* 801CC3A8 001C9308 7C E4 3B 78 */ mr r4, r7
/* 801CC3AC 001C930C 7D 07 43 78 */ mr r7, r8
/* 801CC3B0 001C9310 38 7E 00 1C */ addi r3, r30, 0x1c
/* 801CC3B4 001C9314 38 C0 00 02 */ li r6, 2
/* 801CC3B8 001C9318 48 00 0C E9 */ bl SetAnim__12CGSComboFireFR9CAnimDataiiR13CStateManagerf
/* 801CC3BC 001C931C 90 7E 00 54 */ stw r3, 0x54(r30)
/* 801CC3C0 001C9320 48 00 00 1C */ b lbl_801CC3DC
lbl_801CC3C4:
/* 801CC3C4 001C9324 4B FF FD 69 */ bl ReturnToBasePosition__14CGunControllerFR13CStateManager
/* 801CC3C8 001C9328 48 00 00 14 */ b lbl_801CC3DC
lbl_801CC3CC:
/* 801CC3CC 001C932C 88 1E 00 18 */ lbz r0, 0x18(r30)
/* 801CC3D0 001C9330 38 60 00 00 */ li r3, 0
/* 801CC3D4 001C9334 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 801CC3D8 001C9338 98 1E 00 18 */ stb r0, 0x18(r30)
lbl_801CC3DC:
/* 801CC3DC 001C933C 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 801CC3E0 001C9340 41 82 00 0C */ beq lbl_801CC3EC
/* 801CC3E4 001C9344 38 00 00 01 */ li r0, 1
/* 801CC3E8 001C9348 90 1E 00 50 */ stw r0, 0x50(r30)
lbl_801CC3EC:
/* 801CC3EC 001C934C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801CC3F0 001C9350 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801CC3F4 001C9354 83 C1 00 08 */ lwz r30, 8(r1)
/* 801CC3F8 001C9358 7C 08 03 A6 */ mtlr r0
/* 801CC3FC 001C935C 38 21 00 10 */ addi r1, r1, 0x10
/* 801CC400 001C9360 4E 80 00 20 */ blr
.global EnterIdle__14CGunControllerFR13CStateManager
EnterIdle__14CGunControllerFR13CStateManager:
/* 801CC404 001C9364 94 21 FF 10 */ stwu r1, -0xf0(r1)
/* 801CC408 001C9368 7C 08 02 A6 */ mflr r0
/* 801CC40C 001C936C 90 01 00 F4 */ stw r0, 0xf4(r1)
/* 801CC410 001C9370 93 E1 00 EC */ stw r31, 0xec(r1)
/* 801CC414 001C9374 7C 7F 1B 78 */ mr r31, r3
/* 801CC418 001C9378 38 61 00 60 */ addi r3, r1, 0x60
/* 801CC41C 001C937C 93 C1 00 E8 */ stw r30, 0xe8(r1)
/* 801CC420 001C9380 93 A1 00 E4 */ stw r29, 0xe4(r1)
/* 801CC424 001C9384 7C 9D 23 78 */ mr r29, r4
/* 801CC428 001C9388 48 11 6C 55 */ bl NoParameter__12CPASAnimParmFv
/* 801CC42C 001C938C 80 61 00 60 */ lwz r3, 0x60(r1)
/* 801CC430 001C9390 80 01 00 64 */ lwz r0, 0x64(r1)
/* 801CC434 001C9394 90 61 00 68 */ stw r3, 0x68(r1)
/* 801CC438 001C9398 90 01 00 6C */ stw r0, 0x6c(r1)
/* 801CC43C 001C939C 80 1F 00 50 */ lwz r0, 0x50(r31)
/* 801CC440 001C93A0 2C 00 00 03 */ cmpwi r0, 3
/* 801CC444 001C93A4 41 82 00 44 */ beq lbl_801CC488
/* 801CC448 001C93A8 40 80 01 DC */ bge lbl_801CC624
/* 801CC44C 001C93AC 2C 00 00 02 */ cmpwi r0, 2
/* 801CC450 001C93B0 40 80 00 08 */ bge lbl_801CC458
/* 801CC454 001C93B4 48 00 01 D0 */ b lbl_801CC624
lbl_801CC458:
/* 801CC458 001C93B8 38 61 00 58 */ addi r3, r1, 0x58
/* 801CC45C 001C93BC 38 80 00 01 */ li r4, 1
/* 801CC460 001C93C0 48 11 6B 25 */ bl FromEnum__12CPASAnimParmFi
/* 801CC464 001C93C4 80 81 00 58 */ lwz r4, 0x58(r1)
/* 801CC468 001C93C8 38 60 00 01 */ li r3, 1
/* 801CC46C 001C93CC 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 801CC470 001C93D0 90 81 00 68 */ stw r4, 0x68(r1)
/* 801CC474 001C93D4 90 01 00 6C */ stw r0, 0x6c(r1)
/* 801CC478 001C93D8 88 1F 00 18 */ lbz r0, 0x18(r31)
/* 801CC47C 001C93DC 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 801CC480 001C93E0 98 1F 00 18 */ stb r0, 0x18(r31)
/* 801CC484 001C93E4 48 00 00 38 */ b lbl_801CC4BC
lbl_801CC488:
/* 801CC488 001C93E8 38 61 00 50 */ addi r3, r1, 0x50
/* 801CC48C 001C93EC 38 80 00 01 */ li r4, 1
/* 801CC490 001C93F0 48 11 6A F5 */ bl FromEnum__12CPASAnimParmFi
/* 801CC494 001C93F4 80 81 00 50 */ lwz r4, 0x50(r1)
/* 801CC498 001C93F8 38 60 00 01 */ li r3, 1
/* 801CC49C 001C93FC 80 01 00 54 */ lwz r0, 0x54(r1)
/* 801CC4A0 001C9400 90 81 00 68 */ stw r4, 0x68(r1)
/* 801CC4A4 001C9404 90 01 00 6C */ stw r0, 0x6c(r1)
/* 801CC4A8 001C9408 88 1F 00 2C */ lbz r0, 0x2c(r31)
/* 801CC4AC 001C940C 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 801CC4B0 001C9410 98 1F 00 2C */ stb r0, 0x2c(r31)
/* 801CC4B4 001C9414 48 00 00 08 */ b lbl_801CC4BC
/* 801CC4B8 001C9418 48 00 01 6C */ b lbl_801CC624
lbl_801CC4BC:
/* 801CC4BC 001C941C 80 9F 00 00 */ lwz r4, 0(r31)
/* 801CC4C0 001C9420 38 61 00 10 */ addi r3, r1, 0x10
/* 801CC4C4 001C9424 83 C4 00 10 */ lwz r30, 0x10(r4)
/* 801CC4C8 001C9428 48 11 6B B5 */ bl NoParameter__12CPASAnimParmFv
/* 801CC4CC 001C942C 38 61 00 18 */ addi r3, r1, 0x18
/* 801CC4D0 001C9430 48 11 6B AD */ bl NoParameter__12CPASAnimParmFv
/* 801CC4D4 001C9434 38 61 00 20 */ addi r3, r1, 0x20
/* 801CC4D8 001C9438 48 11 6B A5 */ bl NoParameter__12CPASAnimParmFv
/* 801CC4DC 001C943C 38 61 00 28 */ addi r3, r1, 0x28
/* 801CC4E0 001C9440 48 11 6B 9D */ bl NoParameter__12CPASAnimParmFv
/* 801CC4E4 001C9444 38 61 00 30 */ addi r3, r1, 0x30
/* 801CC4E8 001C9448 48 11 6B 95 */ bl NoParameter__12CPASAnimParmFv
/* 801CC4EC 001C944C 38 61 00 38 */ addi r3, r1, 0x38
/* 801CC4F0 001C9450 48 11 6B 8D */ bl NoParameter__12CPASAnimParmFv
/* 801CC4F4 001C9454 38 61 00 40 */ addi r3, r1, 0x40
/* 801CC4F8 001C9458 48 11 6B 85 */ bl NoParameter__12CPASAnimParmFv
/* 801CC4FC 001C945C 38 61 00 18 */ addi r3, r1, 0x18
/* 801CC500 001C9460 38 01 00 10 */ addi r0, r1, 0x10
/* 801CC504 001C9464 90 61 00 08 */ stw r3, 8(r1)
/* 801CC508 001C9468 38 61 00 98 */ addi r3, r1, 0x98
/* 801CC50C 001C946C 38 A1 00 68 */ addi r5, r1, 0x68
/* 801CC510 001C9470 38 C1 00 40 */ addi r6, r1, 0x40
/* 801CC514 001C9474 90 01 00 0C */ stw r0, 0xc(r1)
/* 801CC518 001C9478 38 E1 00 38 */ addi r7, r1, 0x38
/* 801CC51C 001C947C 39 01 00 30 */ addi r8, r1, 0x30
/* 801CC520 001C9480 39 21 00 28 */ addi r9, r1, 0x28
/* 801CC524 001C9484 39 41 00 20 */ addi r10, r1, 0x20
/* 801CC528 001C9488 38 80 00 05 */ li r4, 5
/* 801CC52C 001C948C 4B EB 0D 99 */ bl __ct__16CPASAnimParmDataFiRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParm
/* 801CC530 001C9490 80 DD 09 00 */ lwz r6, 0x900(r29)
/* 801CC534 001C9494 38 61 00 48 */ addi r3, r1, 0x48
/* 801CC538 001C9498 38 9E 00 3C */ addi r4, r30, 0x3c
/* 801CC53C 001C949C 38 A1 00 98 */ addi r5, r1, 0x98
/* 801CC540 001C94A0 38 E0 FF FF */ li r7, -1
/* 801CC544 001C94A4 48 11 8B 1D */ bl FindBestAnimation__12CPASDatabaseCFRC16CPASAnimParmDataR9CRandom16i
/* 801CC548 001C94A8 34 A1 00 9C */ addic. r5, r1, 0x9c
/* 801CC54C 001C94AC 83 A1 00 4C */ lwz r29, 0x4c(r1)
/* 801CC550 001C94B0 41 82 00 58 */ beq lbl_801CC5A8
/* 801CC554 001C94B4 80 C5 00 00 */ lwz r6, 0(r5)
/* 801CC558 001C94B8 38 60 00 00 */ li r3, 0
/* 801CC55C 001C94BC 2C 06 00 00 */ cmpwi r6, 0
/* 801CC560 001C94C0 40 81 00 40 */ ble lbl_801CC5A0
/* 801CC564 001C94C4 2C 06 00 08 */ cmpwi r6, 8
/* 801CC568 001C94C8 38 86 FF F8 */ addi r4, r6, -8
/* 801CC56C 001C94CC 40 81 00 20 */ ble lbl_801CC58C
/* 801CC570 001C94D0 38 04 00 07 */ addi r0, r4, 7
/* 801CC574 001C94D4 54 00 E8 FE */ srwi r0, r0, 3
/* 801CC578 001C94D8 7C 09 03 A6 */ mtctr r0
/* 801CC57C 001C94DC 2C 04 00 00 */ cmpwi r4, 0
/* 801CC580 001C94E0 40 81 00 0C */ ble lbl_801CC58C
lbl_801CC584:
/* 801CC584 001C94E4 38 63 00 08 */ addi r3, r3, 8
/* 801CC588 001C94E8 42 00 FF FC */ bdnz lbl_801CC584
lbl_801CC58C:
/* 801CC58C 001C94EC 7C 03 30 50 */ subf r0, r3, r6
/* 801CC590 001C94F0 7C 09 03 A6 */ mtctr r0
/* 801CC594 001C94F4 7C 03 30 00 */ cmpw r3, r6
/* 801CC598 001C94F8 40 80 00 08 */ bge lbl_801CC5A0
lbl_801CC59C:
/* 801CC59C 001C94FC 42 00 00 00 */ bdnz lbl_801CC59C
lbl_801CC5A0:
/* 801CC5A0 001C9500 38 00 00 00 */ li r0, 0
/* 801CC5A4 001C9504 90 05 00 00 */ stw r0, 0(r5)
lbl_801CC5A8:
/* 801CC5A8 001C9508 88 1E 02 20 */ lbz r0, 0x220(r30)
/* 801CC5AC 001C950C 39 00 00 00 */ li r8, 0
/* 801CC5B0 001C9510 51 00 36 72 */ rlwimi r0, r8, 6, 0x19, 0x19
/* 801CC5B4 001C9514 38 E0 00 01 */ li r7, 1
/* 801CC5B8 001C9518 98 1E 02 20 */ stb r0, 0x220(r30)
/* 801CC5BC 001C951C 38 00 FF FF */ li r0, -1
/* 801CC5C0 001C9520 C0 02 AB 70 */ lfs f0, lbl_805AC890@sda21(r2)
/* 801CC5C4 001C9524 7F C3 F3 78 */ mr r3, r30
/* 801CC5C8 001C9528 88 DE 02 20 */ lbz r6, 0x220(r30)
/* 801CC5CC 001C952C 50 E6 3E 30 */ rlwimi r6, r7, 7, 0x18, 0x18
/* 801CC5D0 001C9530 38 81 00 70 */ addi r4, r1, 0x70
/* 801CC5D4 001C9534 38 A0 00 00 */ li r5, 0
/* 801CC5D8 001C9538 98 DE 02 20 */ stb r6, 0x220(r30)
/* 801CC5DC 001C953C 93 A1 00 70 */ stw r29, 0x70(r1)
/* 801CC5E0 001C9540 90 01 00 74 */ stw r0, 0x74(r1)
/* 801CC5E4 001C9544 D0 01 00 78 */ stfs f0, 0x78(r1)
/* 801CC5E8 001C9548 98 E1 00 7C */ stb r7, 0x7c(r1)
/* 801CC5EC 001C954C 91 01 00 80 */ stw r8, 0x80(r1)
/* 801CC5F0 001C9550 91 01 00 84 */ stw r8, 0x84(r1)
/* 801CC5F4 001C9554 99 01 00 88 */ stb r8, 0x88(r1)
/* 801CC5F8 001C9558 91 01 00 8C */ stw r8, 0x8c(r1)
/* 801CC5FC 001C955C 91 01 00 90 */ stw r8, 0x90(r1)
/* 801CC600 001C9560 91 01 00 94 */ stw r8, 0x94(r1)
/* 801CC604 001C9564 4B E6 07 79 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
/* 801CC608 001C9568 93 BF 00 54 */ stw r29, 0x54(r31)
/* 801CC60C 001C956C 38 00 00 04 */ li r0, 4
/* 801CC610 001C9570 38 60 00 00 */ li r3, 0
/* 801CC614 001C9574 90 1F 00 50 */ stw r0, 0x50(r31)
/* 801CC618 001C9578 88 1F 00 58 */ lbz r0, 0x58(r31)
/* 801CC61C 001C957C 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 801CC620 001C9580 98 1F 00 58 */ stb r0, 0x58(r31)
lbl_801CC624:
/* 801CC624 001C9584 80 01 00 F4 */ lwz r0, 0xf4(r1)
/* 801CC628 001C9588 83 E1 00 EC */ lwz r31, 0xec(r1)
/* 801CC62C 001C958C 83 C1 00 E8 */ lwz r30, 0xe8(r1)
/* 801CC630 001C9590 83 A1 00 E4 */ lwz r29, 0xe4(r1)
/* 801CC634 001C9594 7C 08 03 A6 */ mtlr r0
/* 801CC638 001C9598 38 21 00 F0 */ addi r1, r1, 0xf0
/* 801CC63C 001C959C 4E 80 00 20 */ blr
.global Update__14CGunControllerFfR13CStateManager
Update__14CGunControllerFfR13CStateManager:
/* 801CC640 001C95A0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 801CC644 001C95A4 7C 08 02 A6 */ mflr r0
/* 801CC648 001C95A8 90 01 00 44 */ stw r0, 0x44(r1)
/* 801CC64C 001C95AC 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 801CC650 001C95B0 7C 9F 23 78 */ mr r31, r4
/* 801CC654 001C95B4 93 C1 00 38 */ stw r30, 0x38(r1)
/* 801CC658 001C95B8 7C 7E 1B 78 */ mr r30, r3
/* 801CC65C 001C95BC 38 60 00 00 */ li r3, 0
/* 801CC660 001C95C0 93 A1 00 34 */ stw r29, 0x34(r1)
/* 801CC664 001C95C4 80 BE 00 00 */ lwz r5, 0(r30)
/* 801CC668 001C95C8 88 1E 00 58 */ lbz r0, 0x58(r30)
/* 801CC66C 001C95CC 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 801CC670 001C95D0 83 A5 00 10 */ lwz r29, 0x10(r5)
/* 801CC674 001C95D4 98 1E 00 58 */ stb r0, 0x58(r30)
/* 801CC678 001C95D8 80 1E 00 50 */ lwz r0, 0x50(r30)
/* 801CC67C 001C95DC 28 00 00 07 */ cmplwi r0, 7
/* 801CC680 001C95E0 41 81 01 54 */ bgt lbl_801CC7D4
/* 801CC684 001C95E4 3C 60 80 3E */ lis r3, lbl_803E5728@ha
/* 801CC688 001C95E8 54 00 10 3A */ slwi r0, r0, 2
/* 801CC68C 001C95EC 38 63 57 28 */ addi r3, r3, lbl_803E5728@l
/* 801CC690 001C95F0 7C 03 00 2E */ lwzx r0, r3, r0
/* 801CC694 001C95F4 7C 09 03 A6 */ mtctr r0
/* 801CC698 001C95F8 4E 80 04 20 */ bctr
lbl_801CC69C:
/* 801CC69C 001C95FC 7F A4 EB 78 */ mr r4, r29
/* 801CC6A0 001C9600 7F E5 FB 78 */ mr r5, r31
/* 801CC6A4 001C9604 38 7E 00 04 */ addi r3, r30, 4
/* 801CC6A8 001C9608 48 00 08 39 */ bl Update__11CGSFreeLookFR9CAnimDatafR13CStateManager
/* 801CC6AC 001C960C 88 1E 00 58 */ lbz r0, 0x58(r30)
/* 801CC6B0 001C9610 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 801CC6B4 001C9614 98 1E 00 58 */ stb r0, 0x58(r30)
/* 801CC6B8 001C9618 88 7E 00 58 */ lbz r3, 0x58(r30)
/* 801CC6BC 001C961C 54 60 CF FF */ rlwinm. r0, r3, 0x19, 0x1f, 0x1f
/* 801CC6C0 001C9620 41 82 01 14 */ beq lbl_801CC7D4
/* 801CC6C4 001C9624 54 60 D7 FF */ rlwinm. r0, r3, 0x1a, 0x1f, 0x1f
/* 801CC6C8 001C9628 41 82 01 0C */ beq lbl_801CC7D4
/* 801CC6CC 001C962C 80 BE 00 10 */ lwz r5, 0x10(r30)
/* 801CC6D0 001C9630 7F C3 F3 78 */ mr r3, r30
/* 801CC6D4 001C9634 7F E4 FB 78 */ mr r4, r31
/* 801CC6D8 001C9638 48 00 04 71 */ bl EnterComboFire__14CGunControllerFR13CStateManageri
/* 801CC6DC 001C963C 88 1E 00 58 */ lbz r0, 0x58(r30)
/* 801CC6E0 001C9640 38 60 00 00 */ li r3, 0
/* 801CC6E4 001C9644 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 801CC6E8 001C9648 98 1E 00 58 */ stb r0, 0x58(r30)
/* 801CC6EC 001C964C 48 00 00 E8 */ b lbl_801CC7D4
lbl_801CC6F0:
/* 801CC6F0 001C9650 7F A4 EB 78 */ mr r4, r29
/* 801CC6F4 001C9654 7F E5 FB 78 */ mr r5, r31
/* 801CC6F8 001C9658 38 7E 00 1C */ addi r3, r30, 0x1c
/* 801CC6FC 001C965C 48 00 0B 9D */ bl Update__12CGSComboFireFR9CAnimDatafR13CStateManager
/* 801CC700 001C9660 88 1E 00 58 */ lbz r0, 0x58(r30)
/* 801CC704 001C9664 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 801CC708 001C9668 98 1E 00 58 */ stb r0, 0x58(r30)
/* 801CC70C 001C966C 48 00 00 C8 */ b lbl_801CC7D4
lbl_801CC710:
/* 801CC710 001C9670 7F A4 EB 78 */ mr r4, r29
/* 801CC714 001C9674 7F E5 FB 78 */ mr r5, r31
/* 801CC718 001C9678 38 7E 00 30 */ addi r3, r30, 0x30
/* 801CC71C 001C967C 48 02 4D A1 */ bl Update__9CGSFidgetFR9CAnimDatafR13CStateManager
/* 801CC720 001C9680 88 1E 00 58 */ lbz r0, 0x58(r30)
/* 801CC724 001C9684 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 801CC728 001C9688 98 1E 00 58 */ stb r0, 0x58(r30)
/* 801CC72C 001C968C 48 00 00 A8 */ b lbl_801CC7D4
lbl_801CC730:
/* 801CC730 001C9690 3C 80 80 3D */ lis r4, lbl_803D1AA8@ha
/* 801CC734 001C9694 38 61 00 18 */ addi r3, r1, 0x18
/* 801CC738 001C9698 38 84 1A A8 */ addi r4, r4, lbl_803D1AA8@l
/* 801CC73C 001C969C 4B E3 85 7D */ bl string_l__4rstlFPCc
/* 801CC740 001C96A0 C0 22 AB 74 */ lfs f1, lbl_805AC894@sda21(r2)
/* 801CC744 001C96A4 7F A3 EB 78 */ mr r3, r29
/* 801CC748 001C96A8 38 81 00 18 */ addi r4, r1, 0x18
/* 801CC74C 001C96AC 4B E5 FC A1 */ bl "IsAnimTimeRemaining__9CAnimDataCFfRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 801CC750 001C96B0 7C 7D 1B 78 */ mr r29, r3
/* 801CC754 001C96B4 38 61 00 18 */ addi r3, r1, 0x18
/* 801CC758 001C96B8 48 17 13 89 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 801CC75C 001C96BC 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 801CC760 001C96C0 40 82 00 74 */ bne lbl_801CC7D4
/* 801CC764 001C96C4 80 9E 00 00 */ lwz r4, 0(r30)
/* 801CC768 001C96C8 7F E8 FB 78 */ mr r8, r31
/* 801CC76C 001C96CC 80 BE 00 10 */ lwz r5, 0x10(r30)
/* 801CC770 001C96D0 38 7E 00 04 */ addi r3, r30, 4
/* 801CC774 001C96D4 80 84 00 10 */ lwz r4, 0x10(r4)
/* 801CC778 001C96D8 38 E0 00 00 */ li r7, 0
/* 801CC77C 001C96DC 80 DE 00 14 */ lwz r6, 0x14(r30)
/* 801CC780 001C96E0 C0 22 AB 78 */ lfs f1, lbl_805AC898@sda21(r2)
/* 801CC784 001C96E4 48 00 05 25 */ bl SetAnim__11CGSFreeLookFR9CAnimDataiiiR13CStateManagerf
/* 801CC788 001C96E8 90 7E 00 54 */ stw r3, 0x54(r30)
/* 801CC78C 001C96EC 38 00 00 02 */ li r0, 2
/* 801CC790 001C96F0 90 1E 00 50 */ stw r0, 0x50(r30)
/* 801CC794 001C96F4 48 00 00 40 */ b lbl_801CC7D4
lbl_801CC798:
/* 801CC798 001C96F8 3C 80 80 3D */ lis r4, lbl_803D1AA8@ha
/* 801CC79C 001C96FC 38 61 00 08 */ addi r3, r1, 8
/* 801CC7A0 001C9700 38 84 1A A8 */ addi r4, r4, lbl_803D1AA8@l
/* 801CC7A4 001C9704 4B E3 85 15 */ bl string_l__4rstlFPCc
/* 801CC7A8 001C9708 C0 22 AB 74 */ lfs f1, lbl_805AC894@sda21(r2)
/* 801CC7AC 001C970C 7F A3 EB 78 */ mr r3, r29
/* 801CC7B0 001C9710 38 81 00 08 */ addi r4, r1, 8
/* 801CC7B4 001C9714 4B E5 FC 39 */ bl "IsAnimTimeRemaining__9CAnimDataCFfRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 801CC7B8 001C9718 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 801CC7BC 001C971C 88 1E 00 58 */ lbz r0, 0x58(r30)
/* 801CC7C0 001C9720 7C 64 00 34 */ cntlzw r4, r3
/* 801CC7C4 001C9724 50 80 16 30 */ rlwimi r0, r4, 2, 0x18, 0x18
/* 801CC7C8 001C9728 38 61 00 08 */ addi r3, r1, 8
/* 801CC7CC 001C972C 98 1E 00 58 */ stb r0, 0x58(r30)
/* 801CC7D0 001C9730 48 17 13 11 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_801CC7D4:
/* 801CC7D4 001C9734 88 1E 00 58 */ lbz r0, 0x58(r30)
/* 801CC7D8 001C9738 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 801CC7DC 001C973C 41 82 00 20 */ beq lbl_801CC7FC
/* 801CC7E0 001C9740 38 80 00 00 */ li r4, 0
/* 801CC7E4 001C9744 38 60 00 01 */ li r3, 1
/* 801CC7E8 001C9748 90 9E 00 50 */ stw r4, 0x50(r30)
/* 801CC7EC 001C974C 88 1E 00 58 */ lbz r0, 0x58(r30)
/* 801CC7F0 001C9750 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 801CC7F4 001C9754 98 1E 00 58 */ stb r0, 0x58(r30)
/* 801CC7F8 001C9758 48 00 00 08 */ b lbl_801CC800
lbl_801CC7FC:
/* 801CC7FC 001C975C 38 60 00 00 */ li r3, 0
lbl_801CC800:
/* 801CC800 001C9760 80 01 00 44 */ lwz r0, 0x44(r1)
/* 801CC804 001C9764 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 801CC808 001C9768 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 801CC80C 001C976C 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 801CC810 001C9770 7C 08 03 A6 */ mtlr r0
/* 801CC814 001C9774 38 21 00 40 */ addi r1, r1, 0x40
/* 801CC818 001C9778 4E 80 00 20 */ blr
.global LoadFidgetAnimAsync__14CGunControllerFR13CStateManageriii
LoadFidgetAnimAsync__14CGunControllerFR13CStateManageriii:
/* 801CC81C 001C977C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801CC820 001C9780 7C 08 02 A6 */ mflr r0
/* 801CC824 001C9784 7C 88 23 78 */ mr r8, r4
/* 801CC828 001C9788 90 01 00 14 */ stw r0, 0x14(r1)
/* 801CC82C 001C978C 81 23 00 00 */ lwz r9, 0(r3)
/* 801CC830 001C9790 38 63 00 30 */ addi r3, r3, 0x30
/* 801CC834 001C9794 80 89 00 10 */ lwz r4, 0x10(r9)
/* 801CC838 001C9798 48 02 49 4D */ bl LoadAnimAsync__9CGSFidgetFR9CAnimDataiiiR13CStateManager
/* 801CC83C 001C979C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801CC840 001C97A0 7C 08 03 A6 */ mtlr r0
/* 801CC844 001C97A4 38 21 00 10 */ addi r1, r1, 0x10
/* 801CC848 001C97A8 4E 80 00 20 */ blr
.global EnterStruck__14CGunControllerFR13CStateManagerf
EnterStruck__14CGunControllerFR13CStateManagerf:
/* 801CC84C 001C97AC 94 21 FE C0 */ stwu r1, -0x140(r1)
/* 801CC850 001C97B0 7C 08 02 A6 */ mflr r0
/* 801CC854 001C97B4 90 01 01 44 */ stw r0, 0x144(r1)
/* 801CC858 001C97B8 DB E1 01 30 */ stfd f31, 0x130(r1)
/* 801CC85C 001C97BC F3 E1 01 38 */ psq_st f31, 312(r1), 0, qr0
/* 801CC860 001C97C0 BF 61 01 1C */ stmw r27, 0x11c(r1)
/* 801CC864 001C97C4 7C 7C 1B 78 */ mr r28, r3
/* 801CC868 001C97C8 FF E0 08 90 */ fmr f31, f1
/* 801CC86C 001C97CC 80 03 00 50 */ lwz r0, 0x50(r3)
/* 801CC870 001C97D0 7C 9D 23 78 */ mr r29, r4
/* 801CC874 001C97D4 7C BE 2B 78 */ mr r30, r5
/* 801CC878 001C97D8 7C DB 33 78 */ mr r27, r6
/* 801CC87C 001C97DC 2C 00 00 02 */ cmpwi r0, 2
/* 801CC880 001C97E0 41 82 00 20 */ beq lbl_801CC8A0
/* 801CC884 001C97E4 40 80 00 10 */ bge lbl_801CC894
/* 801CC888 001C97E8 2C 00 00 00 */ cmpwi r0, 0
/* 801CC88C 001C97EC 41 82 00 2C */ beq lbl_801CC8B8
/* 801CC890 001C97F0 48 00 02 54 */ b lbl_801CCAE4
lbl_801CC894:
/* 801CC894 001C97F4 2C 00 00 05 */ cmpwi r0, 5
/* 801CC898 001C97F8 41 82 00 20 */ beq lbl_801CC8B8
/* 801CC89C 001C97FC 48 00 02 48 */ b lbl_801CCAE4
lbl_801CC8A0:
/* 801CC8A0 001C9800 88 1C 00 18 */ lbz r0, 0x18(r28)
/* 801CC8A4 001C9804 38 60 00 01 */ li r3, 1
/* 801CC8A8 001C9808 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 801CC8AC 001C980C 98 1C 00 18 */ stb r0, 0x18(r28)
/* 801CC8B0 001C9810 48 00 00 08 */ b lbl_801CC8B8
/* 801CC8B4 001C9814 48 00 02 30 */ b lbl_801CCAE4
lbl_801CC8B8:
/* 801CC8B8 001C9818 83 FC 00 10 */ lwz r31, 0x10(r28)
/* 801CC8BC 001C981C 38 61 00 18 */ addi r3, r1, 0x18
/* 801CC8C0 001C9820 48 11 67 BD */ bl NoParameter__12CPASAnimParmFv
/* 801CC8C4 001C9824 38 61 00 20 */ addi r3, r1, 0x20
/* 801CC8C8 001C9828 48 11 67 B5 */ bl NoParameter__12CPASAnimParmFv
/* 801CC8CC 001C982C 38 61 00 28 */ addi r3, r1, 0x28
/* 801CC8D0 001C9830 48 11 67 AD */ bl NoParameter__12CPASAnimParmFv
/* 801CC8D4 001C9834 38 61 00 30 */ addi r3, r1, 0x30
/* 801CC8D8 001C9838 48 11 67 A5 */ bl NoParameter__12CPASAnimParmFv
/* 801CC8DC 001C983C 38 61 00 38 */ addi r3, r1, 0x38
/* 801CC8E0 001C9840 57 64 06 3E */ clrlwi r4, r27, 0x18
/* 801CC8E4 001C9844 48 11 66 D1 */ bl FromBool__12CPASAnimParmFb
/* 801CC8E8 001C9848 38 61 00 40 */ addi r3, r1, 0x40
/* 801CC8EC 001C984C 57 C4 06 3E */ clrlwi r4, r30, 0x18
/* 801CC8F0 001C9850 48 11 66 C5 */ bl FromBool__12CPASAnimParmFb
/* 801CC8F4 001C9854 FC 20 F8 90 */ fmr f1, f31
/* 801CC8F8 001C9858 38 61 00 48 */ addi r3, r1, 0x48
/* 801CC8FC 001C985C 48 11 66 ED */ bl FromReal32__12CPASAnimParmFf
/* 801CC900 001C9860 7F E4 FB 78 */ mr r4, r31
/* 801CC904 001C9864 38 61 00 50 */ addi r3, r1, 0x50
/* 801CC908 001C9868 48 11 67 45 */ bl FromInt32__12CPASAnimParmFi
/* 801CC90C 001C986C 38 61 00 20 */ addi r3, r1, 0x20
/* 801CC910 001C9870 38 01 00 18 */ addi r0, r1, 0x18
/* 801CC914 001C9874 90 61 00 08 */ stw r3, 8(r1)
/* 801CC918 001C9878 38 61 00 80 */ addi r3, r1, 0x80
/* 801CC91C 001C987C 38 A1 00 50 */ addi r5, r1, 0x50
/* 801CC920 001C9880 38 C1 00 48 */ addi r6, r1, 0x48
/* 801CC924 001C9884 90 01 00 0C */ stw r0, 0xc(r1)
/* 801CC928 001C9888 38 E1 00 40 */ addi r7, r1, 0x40
/* 801CC92C 001C988C 39 01 00 38 */ addi r8, r1, 0x38
/* 801CC930 001C9890 39 21 00 30 */ addi r9, r1, 0x30
/* 801CC934 001C9894 39 41 00 28 */ addi r10, r1, 0x28
/* 801CC938 001C9898 38 80 00 02 */ li r4, 2
/* 801CC93C 001C989C 4B EB 09 89 */ bl __ct__16CPASAnimParmDataFiRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParm
/* 801CC940 001C98A0 80 61 00 80 */ lwz r3, 0x80(r1)
/* 801CC944 001C98A4 38 C1 00 84 */ addi r6, r1, 0x84
/* 801CC948 001C98A8 80 01 00 84 */ lwz r0, 0x84(r1)
/* 801CC94C 001C98AC 3B E1 00 CC */ addi r31, r1, 0xcc
/* 801CC950 001C98B0 90 61 00 C8 */ stw r3, 0xc8(r1)
/* 801CC954 001C98B4 38 A6 00 04 */ addi r5, r6, 4
/* 801CC958 001C98B8 38 9F 00 04 */ addi r4, r31, 4
/* 801CC95C 001C98BC 90 01 00 CC */ stw r0, 0xcc(r1)
/* 801CC960 001C98C0 7C 09 03 A6 */ mtctr r0
/* 801CC964 001C98C4 2C 00 00 00 */ cmpwi r0, 0
/* 801CC968 001C98C8 40 81 00 28 */ ble lbl_801CC990
lbl_801CC96C:
/* 801CC96C 001C98CC 28 04 00 00 */ cmplwi r4, 0
/* 801CC970 001C98D0 41 82 00 14 */ beq lbl_801CC984
/* 801CC974 001C98D4 80 65 00 00 */ lwz r3, 0(r5)
/* 801CC978 001C98D8 80 05 00 04 */ lwz r0, 4(r5)
/* 801CC97C 001C98DC 90 64 00 00 */ stw r3, 0(r4)
/* 801CC980 001C98E0 90 04 00 04 */ stw r0, 4(r4)
lbl_801CC984:
/* 801CC984 001C98E4 38 84 00 08 */ addi r4, r4, 8
/* 801CC988 001C98E8 38 A5 00 08 */ addi r5, r5, 8
/* 801CC98C 001C98EC 42 00 FF E0 */ bdnz lbl_801CC96C
lbl_801CC990:
/* 801CC990 001C98F0 28 06 00 00 */ cmplwi r6, 0
/* 801CC994 001C98F4 41 82 00 58 */ beq lbl_801CC9EC
/* 801CC998 001C98F8 80 A1 00 84 */ lwz r5, 0x84(r1)
/* 801CC99C 001C98FC 38 60 00 00 */ li r3, 0
/* 801CC9A0 001C9900 2C 05 00 00 */ cmpwi r5, 0
/* 801CC9A4 001C9904 40 81 00 40 */ ble lbl_801CC9E4
/* 801CC9A8 001C9908 2C 05 00 08 */ cmpwi r5, 8
/* 801CC9AC 001C990C 38 85 FF F8 */ addi r4, r5, -8
/* 801CC9B0 001C9910 40 81 00 20 */ ble lbl_801CC9D0
/* 801CC9B4 001C9914 38 04 00 07 */ addi r0, r4, 7
/* 801CC9B8 001C9918 54 00 E8 FE */ srwi r0, r0, 3
/* 801CC9BC 001C991C 7C 09 03 A6 */ mtctr r0
/* 801CC9C0 001C9920 2C 04 00 00 */ cmpwi r4, 0
/* 801CC9C4 001C9924 40 81 00 0C */ ble lbl_801CC9D0
lbl_801CC9C8:
/* 801CC9C8 001C9928 38 63 00 08 */ addi r3, r3, 8
/* 801CC9CC 001C992C 42 00 FF FC */ bdnz lbl_801CC9C8
lbl_801CC9D0:
/* 801CC9D0 001C9930 7C 03 28 50 */ subf r0, r3, r5
/* 801CC9D4 001C9934 7C 09 03 A6 */ mtctr r0
/* 801CC9D8 001C9938 7C 03 28 00 */ cmpw r3, r5
/* 801CC9DC 001C993C 40 80 00 08 */ bge lbl_801CC9E4
lbl_801CC9E0:
/* 801CC9E0 001C9940 42 00 00 00 */ bdnz lbl_801CC9E0
lbl_801CC9E4:
/* 801CC9E4 001C9944 38 00 00 00 */ li r0, 0
/* 801CC9E8 001C9948 90 01 00 84 */ stw r0, 0x84(r1)
lbl_801CC9EC:
/* 801CC9EC 001C994C 80 9C 00 00 */ lwz r4, 0(r28)
/* 801CC9F0 001C9950 38 61 00 10 */ addi r3, r1, 0x10
/* 801CC9F4 001C9954 80 DD 09 00 */ lwz r6, 0x900(r29)
/* 801CC9F8 001C9958 38 A1 00 C8 */ addi r5, r1, 0xc8
/* 801CC9FC 001C995C 83 A4 00 10 */ lwz r29, 0x10(r4)
/* 801CCA00 001C9960 38 E0 FF FF */ li r7, -1
/* 801CCA04 001C9964 38 9D 00 3C */ addi r4, r29, 0x3c
/* 801CCA08 001C9968 48 11 86 59 */ bl FindBestAnimation__12CPASDatabaseCFRC16CPASAnimParmDataR9CRandom16i
/* 801CCA0C 001C996C 83 61 00 14 */ lwz r27, 0x14(r1)
/* 801CCA10 001C9970 39 00 00 00 */ li r8, 0
/* 801CCA14 001C9974 88 1D 02 20 */ lbz r0, 0x220(r29)
/* 801CCA18 001C9978 51 00 36 72 */ rlwimi r0, r8, 6, 0x19, 0x19
/* 801CCA1C 001C997C 38 E0 00 01 */ li r7, 1
/* 801CCA20 001C9980 C0 02 AB 70 */ lfs f0, lbl_805AC890@sda21(r2)
/* 801CCA24 001C9984 98 1D 02 20 */ stb r0, 0x220(r29)
/* 801CCA28 001C9988 38 00 FF FF */ li r0, -1
/* 801CCA2C 001C998C 7F A3 EB 78 */ mr r3, r29
/* 801CCA30 001C9990 38 81 00 58 */ addi r4, r1, 0x58
/* 801CCA34 001C9994 88 DD 02 20 */ lbz r6, 0x220(r29)
/* 801CCA38 001C9998 50 E6 3E 30 */ rlwimi r6, r7, 7, 0x18, 0x18
/* 801CCA3C 001C999C 38 A0 00 00 */ li r5, 0
/* 801CCA40 001C99A0 98 DD 02 20 */ stb r6, 0x220(r29)
/* 801CCA44 001C99A4 93 61 00 58 */ stw r27, 0x58(r1)
/* 801CCA48 001C99A8 90 01 00 5C */ stw r0, 0x5c(r1)
/* 801CCA4C 001C99AC D0 01 00 60 */ stfs f0, 0x60(r1)
/* 801CCA50 001C99B0 98 E1 00 64 */ stb r7, 0x64(r1)
/* 801CCA54 001C99B4 91 01 00 68 */ stw r8, 0x68(r1)
/* 801CCA58 001C99B8 91 01 00 6C */ stw r8, 0x6c(r1)
/* 801CCA5C 001C99BC 99 01 00 70 */ stb r8, 0x70(r1)
/* 801CCA60 001C99C0 91 01 00 74 */ stw r8, 0x74(r1)
/* 801CCA64 001C99C4 91 01 00 78 */ stw r8, 0x78(r1)
/* 801CCA68 001C99C8 91 01 00 7C */ stw r8, 0x7c(r1)
/* 801CCA6C 001C99CC 4B E6 03 11 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
/* 801CCA70 001C99D0 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 801CCA74 001C99D4 93 7C 00 54 */ stw r27, 0x54(r28)
/* 801CCA78 001C99D8 38 00 00 06 */ li r0, 6
/* 801CCA7C 001C99DC 41 82 00 08 */ beq lbl_801CCA84
/* 801CCA80 001C99E0 38 00 00 07 */ li r0, 7
lbl_801CCA84:
/* 801CCA84 001C99E4 28 1F 00 00 */ cmplwi r31, 0
/* 801CCA88 001C99E8 90 1C 00 50 */ stw r0, 0x50(r28)
/* 801CCA8C 001C99EC 41 82 00 58 */ beq lbl_801CCAE4
/* 801CCA90 001C99F0 80 A1 00 CC */ lwz r5, 0xcc(r1)
/* 801CCA94 001C99F4 38 60 00 00 */ li r3, 0
/* 801CCA98 001C99F8 2C 05 00 00 */ cmpwi r5, 0
/* 801CCA9C 001C99FC 40 81 00 40 */ ble lbl_801CCADC
/* 801CCAA0 001C9A00 2C 05 00 08 */ cmpwi r5, 8
/* 801CCAA4 001C9A04 38 85 FF F8 */ addi r4, r5, -8
/* 801CCAA8 001C9A08 40 81 00 20 */ ble lbl_801CCAC8
/* 801CCAAC 001C9A0C 38 04 00 07 */ addi r0, r4, 7
/* 801CCAB0 001C9A10 54 00 E8 FE */ srwi r0, r0, 3
/* 801CCAB4 001C9A14 7C 09 03 A6 */ mtctr r0
/* 801CCAB8 001C9A18 2C 04 00 00 */ cmpwi r4, 0
/* 801CCABC 001C9A1C 40 81 00 0C */ ble lbl_801CCAC8
lbl_801CCAC0:
/* 801CCAC0 001C9A20 38 63 00 08 */ addi r3, r3, 8
/* 801CCAC4 001C9A24 42 00 FF FC */ bdnz lbl_801CCAC0
lbl_801CCAC8:
/* 801CCAC8 001C9A28 7C 03 28 50 */ subf r0, r3, r5
/* 801CCACC 001C9A2C 7C 09 03 A6 */ mtctr r0
/* 801CCAD0 001C9A30 7C 03 28 00 */ cmpw r3, r5
/* 801CCAD4 001C9A34 40 80 00 08 */ bge lbl_801CCADC
lbl_801CCAD8:
/* 801CCAD8 001C9A38 42 00 00 00 */ bdnz lbl_801CCAD8
lbl_801CCADC:
/* 801CCADC 001C9A3C 38 00 00 00 */ li r0, 0
/* 801CCAE0 001C9A40 90 01 00 CC */ stw r0, 0xcc(r1)
lbl_801CCAE4:
/* 801CCAE4 001C9A44 E3 E1 01 38 */ psq_l f31, 312(r1), 0, qr0
/* 801CCAE8 001C9A48 CB E1 01 30 */ lfd f31, 0x130(r1)
/* 801CCAEC 001C9A4C BB 61 01 1C */ lmw r27, 0x11c(r1)
/* 801CCAF0 001C9A50 80 01 01 44 */ lwz r0, 0x144(r1)
/* 801CCAF4 001C9A54 7C 08 03 A6 */ mtlr r0
/* 801CCAF8 001C9A58 38 21 01 40 */ addi r1, r1, 0x140
/* 801CCAFC 001C9A5C 4E 80 00 20 */ blr
.global EnterFidget__14CGunControllerFR13CStateManageriii
EnterFidget__14CGunControllerFR13CStateManageriii:
/* 801CCB00 001C9A60 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801CCB04 001C9A64 7C 08 02 A6 */ mflr r0
/* 801CCB08 001C9A68 7C 88 23 78 */ mr r8, r4
/* 801CCB0C 001C9A6C 90 01 00 14 */ stw r0, 0x14(r1)
/* 801CCB10 001C9A70 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801CCB14 001C9A74 7C 7F 1B 78 */ mr r31, r3
/* 801CCB18 001C9A78 81 23 00 00 */ lwz r9, 0(r3)
/* 801CCB1C 001C9A7C 38 7F 00 30 */ addi r3, r31, 0x30
/* 801CCB20 001C9A80 80 89 00 10 */ lwz r4, 0x10(r9)
/* 801CCB24 001C9A84 48 02 47 AD */ bl SetAnim__9CGSFidgetFR9CAnimDataiiiR13CStateManager
/* 801CCB28 001C9A88 90 7F 00 54 */ stw r3, 0x54(r31)
/* 801CCB2C 001C9A8C 38 00 00 05 */ li r0, 5
/* 801CCB30 001C9A90 90 1F 00 50 */ stw r0, 0x50(r31)
/* 801CCB34 001C9A94 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801CCB38 001C9A98 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801CCB3C 001C9A9C 7C 08 03 A6 */ mtlr r0
/* 801CCB40 001C9AA0 38 21 00 10 */ addi r1, r1, 0x10
/* 801CCB44 001C9AA4 4E 80 00 20 */ blr
.global EnterComboFire__14CGunControllerFR13CStateManageri
EnterComboFire__14CGunControllerFR13CStateManageri:
/* 801CCB48 001C9AA8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801CCB4C 001C9AAC 7C 08 02 A6 */ mflr r0
/* 801CCB50 001C9AB0 90 01 00 14 */ stw r0, 0x14(r1)
/* 801CCB54 001C9AB4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801CCB58 001C9AB8 7C 7F 1B 78 */ mr r31, r3
/* 801CCB5C 001C9ABC 80 03 00 50 */ lwz r0, 0x50(r3)
/* 801CCB60 001C9AC0 2C 00 00 02 */ cmpwi r0, 2
/* 801CCB64 001C9AC4 41 82 00 28 */ beq lbl_801CCB8C
/* 801CCB68 001C9AC8 80 DF 00 00 */ lwz r6, 0(r31)
/* 801CCB6C 001C9ACC 7C 87 23 78 */ mr r7, r4
/* 801CCB70 001C9AD0 C0 22 AB 78 */ lfs f1, lbl_805AC898@sda21(r2)
/* 801CCB74 001C9AD4 38 7F 00 1C */ addi r3, r31, 0x1c
/* 801CCB78 001C9AD8 80 86 00 10 */ lwz r4, 0x10(r6)
/* 801CCB7C 001C9ADC 38 C0 00 00 */ li r6, 0
/* 801CCB80 001C9AE0 48 00 05 21 */ bl SetAnim__12CGSComboFireFR9CAnimDataiiR13CStateManagerf
/* 801CCB84 001C9AE4 90 7F 00 54 */ stw r3, 0x54(r31)
/* 801CCB88 001C9AE8 48 00 00 0C */ b lbl_801CCB94
lbl_801CCB8C:
/* 801CCB8C 001C9AEC 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 801CCB90 001C9AF0 90 1F 00 20 */ stw r0, 0x20(r31)
lbl_801CCB94:
/* 801CCB94 001C9AF4 38 00 00 03 */ li r0, 3
/* 801CCB98 001C9AF8 38 60 00 01 */ li r3, 1
/* 801CCB9C 001C9AFC 90 1F 00 50 */ stw r0, 0x50(r31)
/* 801CCBA0 001C9B00 88 1F 00 58 */ lbz r0, 0x58(r31)
/* 801CCBA4 001C9B04 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 801CCBA8 001C9B08 98 1F 00 58 */ stb r0, 0x58(r31)
/* 801CCBAC 001C9B0C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801CCBB0 001C9B10 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801CCBB4 001C9B14 7C 08 03 A6 */ mtlr r0
/* 801CCBB8 001C9B18 38 21 00 10 */ addi r1, r1, 0x10
/* 801CCBBC 001C9B1C 4E 80 00 20 */ blr
.global EnterFreeLook__14CGunControllerFR13CStateManagerii
EnterFreeLook__14CGunControllerFR13CStateManagerii:
/* 801CCBC0 001C9B20 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801CCBC4 001C9B24 7C 08 02 A6 */ mflr r0
/* 801CCBC8 001C9B28 90 01 00 14 */ stw r0, 0x14(r1)
/* 801CCBCC 001C9B2C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801CCBD0 001C9B30 7C 7F 1B 78 */ mr r31, r3
/* 801CCBD4 001C9B34 80 03 00 50 */ lwz r0, 0x50(r3)
/* 801CCBD8 001C9B38 2C 00 00 03 */ cmpwi r0, 3
/* 801CCBDC 001C9B3C 41 82 00 34 */ beq lbl_801CCC10
/* 801CCBE0 001C9B40 88 1F 00 58 */ lbz r0, 0x58(r31)
/* 801CCBE4 001C9B44 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 801CCBE8 001C9B48 40 82 00 28 */ bne lbl_801CCC10
/* 801CCBEC 001C9B4C 80 FF 00 00 */ lwz r7, 0(r31)
/* 801CCBF0 001C9B50 7C 88 23 78 */ mr r8, r4
/* 801CCBF4 001C9B54 C0 22 AB 78 */ lfs f1, lbl_805AC898@sda21(r2)
/* 801CCBF8 001C9B58 38 7F 00 04 */ addi r3, r31, 4
/* 801CCBFC 001C9B5C 80 87 00 10 */ lwz r4, 0x10(r7)
/* 801CCC00 001C9B60 38 E0 00 00 */ li r7, 0
/* 801CCC04 001C9B64 48 00 00 A5 */ bl SetAnim__11CGSFreeLookFR9CAnimDataiiiR13CStateManagerf
/* 801CCC08 001C9B68 90 7F 00 54 */ stw r3, 0x54(r31)
/* 801CCC0C 001C9B6C 48 00 00 0C */ b lbl_801CCC18
lbl_801CCC10:
/* 801CCC10 001C9B70 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 801CCC14 001C9B74 90 1F 00 0C */ stw r0, 0xc(r31)
lbl_801CCC18:
/* 801CCC18 001C9B78 38 00 00 02 */ li r0, 2
/* 801CCC1C 001C9B7C 90 1F 00 50 */ stw r0, 0x50(r31)
/* 801CCC20 001C9B80 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801CCC24 001C9B84 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801CCC28 001C9B88 7C 08 03 A6 */ mtlr r0
/* 801CCC2C 001C9B8C 38 21 00 10 */ addi r1, r1, 0x10
/* 801CCC30 001C9B90 4E 80 00 20 */ blr
.global __ct__14CGunControllerFR10CModelData
__ct__14CGunControllerFR10CModelData:
/* 801CCC34 001C9B94 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801CCC38 001C9B98 7C 08 02 A6 */ mflr r0
/* 801CCC3C 001C9B9C 90 01 00 14 */ stw r0, 0x14(r1)
/* 801CCC40 001C9BA0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801CCC44 001C9BA4 7C 7F 1B 78 */ mr r31, r3
/* 801CCC48 001C9BA8 90 83 00 00 */ stw r4, 0(r3)
/* 801CCC4C 001C9BAC 38 7F 00 04 */ addi r3, r31, 4
/* 801CCC50 001C9BB0 48 00 04 21 */ bl __ct__11CGSFreeLookFv
/* 801CCC54 001C9BB4 38 7F 00 1C */ addi r3, r31, 0x1c
/* 801CCC58 001C9BB8 48 00 08 01 */ bl __ct__12CGSComboFireFv
/* 801CCC5C 001C9BBC 38 7F 00 30 */ addi r3, r31, 0x30
/* 801CCC60 001C9BC0 48 02 48 BD */ bl __ct__9CGSFidgetFv
/* 801CCC64 001C9BC4 38 A0 00 00 */ li r5, 0
/* 801CCC68 001C9BC8 38 00 FF FF */ li r0, -1
/* 801CCC6C 001C9BCC 90 BF 00 50 */ stw r5, 0x50(r31)
/* 801CCC70 001C9BD0 38 80 00 01 */ li r4, 1
/* 801CCC74 001C9BD4 7F E3 FB 78 */ mr r3, r31
/* 801CCC78 001C9BD8 90 1F 00 54 */ stw r0, 0x54(r31)
/* 801CCC7C 001C9BDC 88 1F 00 58 */ lbz r0, 0x58(r31)
/* 801CCC80 001C9BE0 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 801CCC84 001C9BE4 98 1F 00 58 */ stb r0, 0x58(r31)
/* 801CCC88 001C9BE8 88 1F 00 58 */ lbz r0, 0x58(r31)
/* 801CCC8C 001C9BEC 50 A0 36 72 */ rlwimi r0, r5, 6, 0x19, 0x19
/* 801CCC90 001C9BF0 98 1F 00 58 */ stb r0, 0x58(r31)
/* 801CCC94 001C9BF4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801CCC98 001C9BF8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801CCC9C 001C9BFC 7C 08 03 A6 */ mtlr r0
/* 801CCCA0 001C9C00 38 21 00 10 */ addi r1, r1, 0x10
/* 801CCCA4 001C9C04 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AC890
lbl_805AC890:
# ROM: 0x3F9130
.float 1.0
.global lbl_805AC894
lbl_805AC894:
# ROM: 0x3F9134
.float 0.001
.global lbl_805AC898
lbl_805AC898:
# ROM: 0x3F9138
.4byte 0
.4byte 0
.section .rodata
.balign 8
.global lbl_803D1AA8
lbl_803D1AA8:
# ROM: 0x3CEAA8
.asciz "Whole Body"
.balign 4
.4byte 0