prime/asm/MetroidPrime/Weapons/WeaponTypes.s

786 lines
41 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax"
.global get_current_suit__12NWeaponTypesFRC13CStateManager
get_current_suit__12NWeaponTypesFRC13CStateManager:
/* 8028A9CC 0028792C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028A9D0 00287930 7C 08 02 A6 */ mflr r0
/* 8028A9D4 00287934 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028A9D8 00287938 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8028A9DC 0028793C 80 63 08 B8 */ lwz r3, 0x8b8(r3)
/* 8028A9E0 00287940 83 E3 00 00 */ lwz r31, 0(r3)
/* 8028A9E4 00287944 7F E3 FB 78 */ mr r3, r31
/* 8028A9E8 00287948 4B E0 6A F5 */ bl GetCurrentSuit__12CPlayerStateCFv
/* 8028A9EC 0028794C 2C 03 00 00 */ cmpwi r3, 0
/* 8028A9F0 00287950 41 80 00 0C */ blt lbl_8028A9FC
/* 8028A9F4 00287954 2C 03 00 05 */ cmpwi r3, 5
/* 8028A9F8 00287958 40 81 00 08 */ ble lbl_8028AA00
lbl_8028A9FC:
/* 8028A9FC 0028795C 38 60 00 00 */ li r3, 0
lbl_8028AA00:
/* 8028AA00 00287960 2C 03 00 04 */ cmpwi r3, 4
/* 8028AA04 00287964 40 82 00 0C */ bne lbl_8028AA10
/* 8028AA08 00287968 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 8028AA0C 0028796C 7C 63 02 14 */ add r3, r3, r0
lbl_8028AA10:
/* 8028AA10 00287970 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028AA14 00287974 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8028AA18 00287978 7C 08 03 A6 */ mtlr r0
/* 8028AA1C 0028797C 38 21 00 10 */ addi r1, r1, 0x10
/* 8028AA20 00287980 4E 80 00 20 */ blr
.global GetShotDamageInfo__10CGunWeaponCFRC10SShotParamR13CStateManager
GetShotDamageInfo__10CGunWeaponCFRC10SShotParamR13CStateManager:
/* 8028AA24 00287984 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8028AA28 00287988 7C 08 02 A6 */ mflr r0
/* 8028AA2C 0028798C 90 01 00 34 */ stw r0, 0x34(r1)
/* 8028AA30 00287990 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8028AA34 00287994 7C 7F 1B 78 */ mr r31, r3
/* 8028AA38 00287998 80 CD A0 80 */ lwz r6, gpGameState@sda21(r13)
/* 8028AA3C 0028799C 80 A4 00 00 */ lwz r5, 0(r4)
/* 8028AA40 002879A0 88 06 02 28 */ lbz r0, 0x228(r6)
/* 8028AA44 002879A4 88 64 00 04 */ lbz r3, 4(r4)
/* 8028AA48 002879A8 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8028AA4C 002879AC C0 64 00 08 */ lfs f3, 8(r4)
/* 8028AA50 002879B0 C0 44 00 0C */ lfs f2, 0xc(r4)
/* 8028AA54 002879B4 C0 24 00 10 */ lfs f1, 0x10(r4)
/* 8028AA58 002879B8 C0 04 00 14 */ lfs f0, 0x14(r4)
/* 8028AA5C 002879BC 88 04 00 18 */ lbz r0, 0x18(r4)
/* 8028AA60 002879C0 90 A1 00 08 */ stw r5, 8(r1)
/* 8028AA64 002879C4 98 61 00 0C */ stb r3, 0xc(r1)
/* 8028AA68 002879C8 D0 61 00 10 */ stfs f3, 0x10(r1)
/* 8028AA6C 002879CC D0 41 00 14 */ stfs f2, 0x14(r1)
/* 8028AA70 002879D0 D0 21 00 18 */ stfs f1, 0x18(r1)
/* 8028AA74 002879D4 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8028AA78 002879D8 98 01 00 20 */ stb r0, 0x20(r1)
/* 8028AA7C 002879DC 41 82 00 30 */ beq lbl_8028AAAC
/* 8028AA80 002879E0 7C C3 33 78 */ mr r3, r6
/* 8028AA84 002879E4 4B F4 8E 29 */ bl GetHardModeWeaponMultiplier__10CGameStateCFv
/* 8028AA88 002879E8 C0 61 00 10 */ lfs f3, 0x10(r1)
/* 8028AA8C 002879EC C0 41 00 14 */ lfs f2, 0x14(r1)
/* 8028AA90 002879F0 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8028AA94 002879F4 EC 61 00 F2 */ fmuls f3, f1, f3
/* 8028AA98 002879F8 EC 41 00 B2 */ fmuls f2, f1, f2
/* 8028AA9C 002879FC EC 01 00 32 */ fmuls f0, f1, f0
/* 8028AAA0 00287A00 D0 61 00 10 */ stfs f3, 0x10(r1)
/* 8028AAA4 00287A04 D0 41 00 14 */ stfs f2, 0x14(r1)
/* 8028AAA8 00287A08 D0 01 00 1C */ stfs f0, 0x1c(r1)
lbl_8028AAAC:
/* 8028AAAC 00287A0C 80 61 00 08 */ lwz r3, 8(r1)
/* 8028AAB0 00287A10 88 01 00 0C */ lbz r0, 0xc(r1)
/* 8028AAB4 00287A14 90 7F 00 00 */ stw r3, 0(r31)
/* 8028AAB8 00287A18 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8028AABC 00287A1C 98 1F 00 04 */ stb r0, 4(r31)
/* 8028AAC0 00287A20 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8028AAC4 00287A24 D0 3F 00 08 */ stfs f1, 8(r31)
/* 8028AAC8 00287A28 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8028AACC 00287A2C D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8028AAD0 00287A30 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8028AAD4 00287A34 D0 3F 00 10 */ stfs f1, 0x10(r31)
/* 8028AAD8 00287A38 88 01 00 20 */ lbz r0, 0x20(r1)
/* 8028AADC 00287A3C D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8028AAE0 00287A40 98 1F 00 18 */ stb r0, 0x18(r31)
/* 8028AAE4 00287A44 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8028AAE8 00287A48 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8028AAEC 00287A4C 7C 08 03 A6 */ mtlr r0
/* 8028AAF0 00287A50 38 21 00 30 */ addi r1, r1, 0x30
/* 8028AAF4 00287A54 4E 80 00 20 */ blr
.global play_sfx__12NWeaponTypesFUsbbs
play_sfx__12NWeaponTypesFUsbbs:
/* 8028AAF8 00287A58 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8028AAFC 00287A5C 7C 08 02 A6 */ mflr r0
/* 8028AB00 00287A60 7C C9 33 78 */ mr r9, r6
/* 8028AB04 00287A64 7C E6 3B 78 */ mr r6, r7
/* 8028AB08 00287A68 90 01 00 24 */ stw r0, 0x24(r1)
/* 8028AB0C 00287A6C 38 E0 00 01 */ li r7, 1
/* 8028AB10 00287A70 A9 02 C5 F8 */ lha r8, kMaxPriority__11CSfxManager@sda21(r2)
/* 8028AB14 00287A74 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8028AB18 00287A78 7C BF 2B 78 */ mr r31, r5
/* 8028AB1C 00287A7C 81 42 C6 00 */ lwz r10, kAllAreas__11CSfxManager@sda21(r2)
/* 8028AB20 00287A80 38 A0 00 7F */ li r5, 0x7f
/* 8028AB24 00287A84 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8028AB28 00287A88 7C 7E 1B 78 */ mr r30, r3
/* 8028AB2C 00287A8C 38 61 00 10 */ addi r3, r1, 0x10
/* 8028AB30 00287A90 48 05 F2 45 */ bl SfxStart__11CSfxManagerFUsssbsbi
/* 8028AB34 00287A94 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8028AB38 00287A98 38 61 00 0C */ addi r3, r1, 0xc
/* 8028AB3C 00287A9C 38 80 00 00 */ li r4, 0
/* 8028AB40 00287AA0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028AB44 00287AA4 90 01 00 0C */ stw r0, 0xc(r1)
/* 8028AB48 00287AA8 48 05 F0 2D */ bl SfxSpan__11CSfxManagerF10CSfxHandleUc
/* 8028AB4C 00287AAC 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 8028AB50 00287AB0 41 82 00 18 */ beq lbl_8028AB68
/* 8028AB54 00287AB4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028AB58 00287AB8 38 61 00 08 */ addi r3, r1, 8
/* 8028AB5C 00287ABC 38 80 00 00 */ li r4, 0
/* 8028AB60 00287AC0 90 01 00 08 */ stw r0, 8(r1)
/* 8028AB64 00287AC4 48 05 E3 49 */ bl PitchBend__11CSfxManagerF10CSfxHandlei
lbl_8028AB68:
/* 8028AB68 00287AC8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028AB6C 00287ACC 90 1E 00 00 */ stw r0, 0(r30)
/* 8028AB70 00287AD0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8028AB74 00287AD4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8028AB78 00287AD8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8028AB7C 00287ADC 7C 08 03 A6 */ mtlr r0
/* 8028AB80 00287AE0 38 21 00 20 */ addi r1, r1, 0x20
/* 8028AB84 00287AE4 4E 80 00 20 */ blr
.global "do_sound_event__12NWeaponTypesFRQ24rstl21pair<Us,10CSfxHandle>RibUifUiffUcUcRC9CVector3fRC9CVector3f7TAreaIdR13CStateManager"
"do_sound_event__12NWeaponTypesFRQ24rstl21pair<Us,10CSfxHandle>RibUifUiffUcUcRC9CVector3fRC9CVector3f7TAreaIdR13CStateManager":
/* 8028AB88 00287AE8 94 21 FF 20 */ stwu r1, -0xe0(r1)
/* 8028AB8C 00287AEC 7C 08 02 A6 */ mflr r0
/* 8028AB90 00287AF0 90 01 00 E4 */ stw r0, 0xe4(r1)
/* 8028AB94 00287AF4 DB E1 00 D0 */ stfd f31, 0xd0(r1)
/* 8028AB98 00287AF8 F3 E1 00 D8 */ psq_st f31, 216(r1), 0, qr0
/* 8028AB9C 00287AFC DB C1 00 C0 */ stfd f30, 0xc0(r1)
/* 8028ABA0 00287B00 F3 C1 00 C8 */ psq_st f30, 200(r1), 0, qr0
/* 8028ABA4 00287B04 DB A1 00 B0 */ stfd f29, 0xb0(r1)
/* 8028ABA8 00287B08 F3 A1 00 B8 */ psq_st f29, 184(r1), 0, qr0
/* 8028ABAC 00287B0C BE 21 00 74 */ stmw r17, 0x74(r1)
/* 8028ABB0 00287B10 C0 8A 00 00 */ lfs f4, 0(r10)
/* 8028ABB4 00287B14 FF C0 18 90 */ fmr f30, f3
/* 8028ABB8 00287B18 C0 0A 00 04 */ lfs f0, 4(r10)
/* 8028ABBC 00287B1C FF E0 08 90 */ fmr f31, f1
/* 8028ABC0 00287B20 EC 64 01 32 */ fmuls f3, f4, f4
/* 8028ABC4 00287B24 C0 8A 00 08 */ lfs f4, 8(r10)
/* 8028ABC8 00287B28 EC 20 00 32 */ fmuls f1, f0, f0
/* 8028ABCC 00287B2C EC 84 01 32 */ fmuls f4, f4, f4
/* 8028ABD0 00287B30 82 E1 00 E8 */ lwz r23, 0xe8(r1)
/* 8028ABD4 00287B34 EC 1E 07 B2 */ fmuls f0, f30, f30
/* 8028ABD8 00287B38 EC 23 08 2A */ fadds f1, f3, f1
/* 8028ABDC 00287B3C 83 01 00 EC */ lwz r24, 0xec(r1)
/* 8028ABE0 00287B40 FF A0 10 90 */ fmr f29, f2
/* 8028ABE4 00287B44 83 21 00 F0 */ lwz r25, 0xf0(r1)
/* 8028ABE8 00287B48 7C 71 1B 78 */ mr r17, r3
/* 8028ABEC 00287B4C EC 24 08 2A */ fadds f1, f4, f1
/* 8028ABF0 00287B50 7C 92 23 78 */ mr r18, r4
/* 8028ABF4 00287B54 7C B3 2B 78 */ mr r19, r5
/* 8028ABF8 00287B58 7C DA 33 78 */ mr r26, r6
/* 8028ABFC 00287B5C 7C F4 3B 78 */ mr r20, r7
/* 8028AC00 00287B60 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8028AC04 00287B64 7D 15 43 78 */ mr r21, r8
/* 8028AC08 00287B68 7D 36 4B 78 */ mr r22, r9
/* 8028AC0C 00287B6C 40 80 02 84 */ bge lbl_8028AE90
/* 8028AC10 00287B70 57 43 04 3E */ clrlwi r3, r26, 0x10
/* 8028AC14 00287B74 48 05 DD 9D */ bl TranslateSFXID__11CSfxManagerFUs
/* 8028AC18 00287B78 56 80 07 39 */ rlwinm. r0, r20, 0, 0x1c, 0x1c
/* 8028AC1C 00287B7C 7C 7D 1B 78 */ mr r29, r3
/* 8028AC20 00287B80 56 80 CF FE */ rlwinm r0, r20, 0x19, 0x1f, 0x1f
/* 8028AC24 00287B84 57 5C 0F FE */ srwi r28, r26, 0x1f
/* 8028AC28 00287B88 57 5B 17 FE */ rlwinm r27, r26, 2, 0x1f, 0x1f
/* 8028AC2C 00287B8C 38 A0 00 01 */ li r5, 1
/* 8028AC30 00287B90 68 1A 00 01 */ xori r26, r0, 1
/* 8028AC34 00287B94 41 82 00 08 */ beq lbl_8028AC3C
/* 8028AC38 00287B98 60 A5 00 08 */ ori r5, r5, 8
lbl_8028AC3C:
/* 8028AC3C 00287B9C C0 62 BE 68 */ lfs f3, lbl_805ADB88@sda21(r2)
/* 8028AC40 00287BA0 38 80 00 00 */ li r4, 0
/* 8028AC44 00287BA4 88 02 CC 41 */ lbz r0, lbl_805AE961@sda21(r2)
/* 8028AC48 00287BA8 3C 60 80 5A */ lis r3, sUpVector__9CVector3f@ha
/* 8028AC4C 00287BAC D0 61 00 40 */ stfs f3, 0x40(r1)
/* 8028AC50 00287BB0 3B E1 00 4C */ addi r31, r1, 0x4c
/* 8028AC54 00287BB4 C4 43 66 F4 */ lfsu f2, sUpVector__9CVector3f@l(r3)
/* 8028AC58 00287BB8 57 BE 04 3E */ clrlwi r30, r29, 0x10
/* 8028AC5C 00287BBC D0 61 00 44 */ stfs f3, 0x44(r1)
/* 8028AC60 00287BC0 C0 23 00 04 */ lfs f1, 4(r3)
/* 8028AC64 00287BC4 D0 61 00 48 */ stfs f3, 0x48(r1)
/* 8028AC68 00287BC8 C0 03 00 08 */ lfs f0, 8(r3)
/* 8028AC6C 00287BCC D0 61 00 4C */ stfs f3, 0x4c(r1)
/* 8028AC70 00287BD0 D0 61 00 50 */ stfs f3, 0x50(r1)
/* 8028AC74 00287BD4 D0 61 00 54 */ stfs f3, 0x54(r1)
/* 8028AC78 00287BD8 D3 C1 00 58 */ stfs f30, 0x58(r1)
/* 8028AC7C 00287BDC D3 A1 00 5C */ stfs f29, 0x5c(r1)
/* 8028AC80 00287BE0 90 A1 00 60 */ stw r5, 0x60(r1)
/* 8028AC84 00287BE4 B0 81 00 64 */ sth r4, 0x64(r1)
/* 8028AC88 00287BE8 9A C1 00 66 */ stb r22, 0x66(r1)
/* 8028AC8C 00287BEC 9A A1 00 67 */ stb r21, 0x67(r1)
/* 8028AC90 00287BF0 98 81 00 68 */ stb r4, 0x68(r1)
/* 8028AC94 00287BF4 98 01 00 69 */ stb r0, 0x69(r1)
/* 8028AC98 00287BF8 C0 77 00 00 */ lfs f3, 0(r23)
/* 8028AC9C 00287BFC D0 61 00 40 */ stfs f3, 0x40(r1)
/* 8028ACA0 00287C00 C0 77 00 04 */ lfs f3, 4(r23)
/* 8028ACA4 00287C04 D0 61 00 44 */ stfs f3, 0x44(r1)
/* 8028ACA8 00287C08 C0 77 00 08 */ lfs f3, 8(r23)
/* 8028ACAC 00287C0C D0 61 00 48 */ stfs f3, 0x48(r1)
/* 8028ACB0 00287C10 D0 41 00 4C */ stfs f2, 0x4c(r1)
/* 8028ACB4 00287C14 D0 21 00 50 */ stfs f1, 0x50(r1)
/* 8028ACB8 00287C18 D0 01 00 54 */ stfs f0, 0x54(r1)
/* 8028ACBC 00287C1C B3 A1 00 64 */ sth r29, 0x64(r1)
/* 8028ACC0 00287C20 80 79 09 00 */ lwz r3, 0x900(r25)
/* 8028ACC4 00287C24 48 08 78 19 */ bl Float__9CRandom16Fv
/* 8028ACC8 00287C28 FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 8028ACCC 00287C2C 4C 40 13 82 */ cror 2, 0, 2
/* 8028ACD0 00287C30 40 82 01 C0 */ bne lbl_8028AE90
/* 8028ACD4 00287C34 28 1C 00 00 */ cmplwi r28, 0
/* 8028ACD8 00287C38 41 82 01 40 */ beq lbl_8028AE18
/* 8028ACDC 00287C3C 80 91 00 04 */ lwz r4, 4(r17)
/* 8028ACE0 00287C40 A0 11 00 00 */ lhz r0, 0(r17)
/* 8028ACE4 00287C44 28 04 00 00 */ cmplwi r4, 0
/* 8028ACE8 00287C48 90 81 00 3C */ stw r4, 0x3c(r1)
/* 8028ACEC 00287C4C 40 82 00 94 */ bne lbl_8028AD80
/* 8028ACF0 00287C50 28 1B 00 00 */ cmplwi r27, 0
/* 8028ACF4 00287C54 41 82 00 34 */ beq lbl_8028AD28
/* 8028ACF8 00287C58 A9 02 C5 FA */ lha r8, kMedPriority__11CSfxManager@sda21(r2)
/* 8028ACFC 00287C5C 7F A4 EB 78 */ mr r4, r29
/* 8028AD00 00287C60 7F 0A C3 78 */ mr r10, r24
/* 8028AD04 00287C64 38 61 00 2C */ addi r3, r1, 0x2c
/* 8028AD08 00287C68 38 A0 00 7F */ li r5, 0x7f
/* 8028AD0C 00287C6C 38 C0 00 40 */ li r6, 0x40
/* 8028AD10 00287C70 38 E0 00 01 */ li r7, 1
/* 8028AD14 00287C74 39 20 00 01 */ li r9, 1
/* 8028AD18 00287C78 48 05 F0 5D */ bl SfxStart__11CSfxManagerFUsssbsbi
/* 8028AD1C 00287C7C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8028AD20 00287C80 90 01 00 38 */ stw r0, 0x38(r1)
/* 8028AD24 00287C84 48 00 00 28 */ b lbl_8028AD4C
lbl_8028AD28:
/* 8028AD28 00287C88 A8 C2 C5 FA */ lha r6, kMedPriority__11CSfxManager@sda21(r2)
/* 8028AD2C 00287C8C 7F 08 C3 78 */ mr r8, r24
/* 8028AD30 00287C90 38 61 00 28 */ addi r3, r1, 0x28
/* 8028AD34 00287C94 38 81 00 40 */ addi r4, r1, 0x40
/* 8028AD38 00287C98 57 45 06 3E */ clrlwi r5, r26, 0x18
/* 8028AD3C 00287C9C 38 E0 00 01 */ li r7, 1
/* 8028AD40 00287CA0 48 05 F2 A1 */ bl AddEmitter__11CSfxManagerFRQ29CAudioSys18C3DEmitterParmDatabsbi
/* 8028AD44 00287CA4 80 01 00 28 */ lwz r0, 0x28(r1)
/* 8028AD48 00287CA8 90 01 00 38 */ stw r0, 0x38(r1)
lbl_8028AD4C:
/* 8028AD4C 00287CAC 80 61 00 38 */ lwz r3, 0x38(r1)
/* 8028AD50 00287CB0 28 03 00 00 */ cmplwi r3, 0
/* 8028AD54 00287CB4 41 82 01 3C */ beq lbl_8028AE90
/* 8028AD58 00287CB8 B3 D1 00 00 */ sth r30, 0(r17)
/* 8028AD5C 00287CBC 56 60 06 3F */ clrlwi. r0, r19, 0x18
/* 8028AD60 00287CC0 90 71 00 04 */ stw r3, 4(r17)
/* 8028AD64 00287CC4 41 82 01 2C */ beq lbl_8028AE90
/* 8028AD68 00287CC8 80 01 00 38 */ lwz r0, 0x38(r1)
/* 8028AD6C 00287CCC 38 61 00 24 */ addi r3, r1, 0x24
/* 8028AD70 00287CD0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8028AD74 00287CD4 80 92 00 00 */ lwz r4, 0(r18)
/* 8028AD78 00287CD8 48 05 E1 35 */ bl PitchBend__11CSfxManagerF10CSfxHandlei
/* 8028AD7C 00287CDC 48 00 01 14 */ b lbl_8028AE90
lbl_8028AD80:
/* 8028AD80 00287CE0 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 8028AD84 00287CE4 7F C0 F3 78 */ mr r0, r30
/* 8028AD88 00287CE8 7C 03 00 40 */ cmplw r3, r0
/* 8028AD8C 00287CEC 40 82 00 20 */ bne lbl_8028ADAC
/* 8028AD90 00287CF0 90 81 00 20 */ stw r4, 0x20(r1)
/* 8028AD94 00287CF4 7F E5 FB 78 */ mr r5, r31
/* 8028AD98 00287CF8 7E C6 B3 78 */ mr r6, r22
/* 8028AD9C 00287CFC 38 61 00 20 */ addi r3, r1, 0x20
/* 8028ADA0 00287D00 38 81 00 40 */ addi r4, r1, 0x40
/* 8028ADA4 00287D04 48 05 F1 0D */ bl UpdateEmitter__11CSfxManagerF10CSfxHandleRC9CVector3fRC9CVector3fUc
/* 8028ADA8 00287D08 48 00 00 E8 */ b lbl_8028AE90
lbl_8028ADAC:
/* 8028ADAC 00287D0C 56 80 07 7B */ rlwinm. r0, r20, 0, 0x1d, 0x1d
/* 8028ADB0 00287D10 41 82 00 E0 */ beq lbl_8028AE90
/* 8028ADB4 00287D14 90 81 00 1C */ stw r4, 0x1c(r1)
/* 8028ADB8 00287D18 38 61 00 1C */ addi r3, r1, 0x1c
/* 8028ADBC 00287D1C 48 05 F0 C9 */ bl RemoveEmitter__11CSfxManagerF10CSfxHandle
/* 8028ADC0 00287D20 A8 C2 C5 FA */ lha r6, kMedPriority__11CSfxManager@sda21(r2)
/* 8028ADC4 00287D24 7F 08 C3 78 */ mr r8, r24
/* 8028ADC8 00287D28 38 61 00 18 */ addi r3, r1, 0x18
/* 8028ADCC 00287D2C 38 81 00 40 */ addi r4, r1, 0x40
/* 8028ADD0 00287D30 57 45 06 3E */ clrlwi r5, r26, 0x18
/* 8028ADD4 00287D34 38 E0 00 01 */ li r7, 1
/* 8028ADD8 00287D38 48 05 F2 09 */ bl AddEmitter__11CSfxManagerFRQ29CAudioSys18C3DEmitterParmDatabsbi
/* 8028ADDC 00287D3C 80 61 00 18 */ lwz r3, 0x18(r1)
/* 8028ADE0 00287D40 28 03 00 00 */ cmplwi r3, 0
/* 8028ADE4 00287D44 90 61 00 34 */ stw r3, 0x34(r1)
/* 8028ADE8 00287D48 41 82 00 A8 */ beq lbl_8028AE90
/* 8028ADEC 00287D4C B3 D1 00 00 */ sth r30, 0(r17)
/* 8028ADF0 00287D50 56 60 06 3F */ clrlwi. r0, r19, 0x18
/* 8028ADF4 00287D54 90 71 00 04 */ stw r3, 4(r17)
/* 8028ADF8 00287D58 41 82 00 98 */ beq lbl_8028AE90
/* 8028ADFC 00287D5C 28 03 00 00 */ cmplwi r3, 0
/* 8028AE00 00287D60 41 82 00 90 */ beq lbl_8028AE90
/* 8028AE04 00287D64 90 61 00 14 */ stw r3, 0x14(r1)
/* 8028AE08 00287D68 38 61 00 14 */ addi r3, r1, 0x14
/* 8028AE0C 00287D6C 80 92 00 00 */ lwz r4, 0(r18)
/* 8028AE10 00287D70 48 05 E0 9D */ bl PitchBend__11CSfxManagerF10CSfxHandlei
/* 8028AE14 00287D74 48 00 00 7C */ b lbl_8028AE90
lbl_8028AE18:
/* 8028AE18 00287D78 28 1B 00 00 */ cmplwi r27, 0
/* 8028AE1C 00287D7C 41 82 00 34 */ beq lbl_8028AE50
/* 8028AE20 00287D80 A9 02 C5 FA */ lha r8, kMedPriority__11CSfxManager@sda21(r2)
/* 8028AE24 00287D84 7F A4 EB 78 */ mr r4, r29
/* 8028AE28 00287D88 7F 0A C3 78 */ mr r10, r24
/* 8028AE2C 00287D8C 38 61 00 10 */ addi r3, r1, 0x10
/* 8028AE30 00287D90 57 47 06 3E */ clrlwi r7, r26, 0x18
/* 8028AE34 00287D94 38 A0 00 7F */ li r5, 0x7f
/* 8028AE38 00287D98 38 C0 00 40 */ li r6, 0x40
/* 8028AE3C 00287D9C 39 20 00 00 */ li r9, 0
/* 8028AE40 00287DA0 48 05 EF 35 */ bl SfxStart__11CSfxManagerFUsssbsbi
/* 8028AE44 00287DA4 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8028AE48 00287DA8 90 01 00 30 */ stw r0, 0x30(r1)
/* 8028AE4C 00287DAC 48 00 00 28 */ b lbl_8028AE74
lbl_8028AE50:
/* 8028AE50 00287DB0 A8 C2 C5 FA */ lha r6, kMedPriority__11CSfxManager@sda21(r2)
/* 8028AE54 00287DB4 7F 08 C3 78 */ mr r8, r24
/* 8028AE58 00287DB8 38 61 00 0C */ addi r3, r1, 0xc
/* 8028AE5C 00287DBC 38 81 00 40 */ addi r4, r1, 0x40
/* 8028AE60 00287DC0 57 45 06 3E */ clrlwi r5, r26, 0x18
/* 8028AE64 00287DC4 38 E0 00 00 */ li r7, 0
/* 8028AE68 00287DC8 48 05 F1 79 */ bl AddEmitter__11CSfxManagerFRQ29CAudioSys18C3DEmitterParmDatabsbi
/* 8028AE6C 00287DCC 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8028AE70 00287DD0 90 01 00 30 */ stw r0, 0x30(r1)
lbl_8028AE74:
/* 8028AE74 00287DD4 56 60 06 3F */ clrlwi. r0, r19, 0x18
/* 8028AE78 00287DD8 41 82 00 18 */ beq lbl_8028AE90
/* 8028AE7C 00287DDC 80 01 00 30 */ lwz r0, 0x30(r1)
/* 8028AE80 00287DE0 38 61 00 08 */ addi r3, r1, 8
/* 8028AE84 00287DE4 90 01 00 08 */ stw r0, 8(r1)
/* 8028AE88 00287DE8 80 92 00 00 */ lwz r4, 0(r18)
/* 8028AE8C 00287DEC 48 05 E0 21 */ bl PitchBend__11CSfxManagerF10CSfxHandlei
lbl_8028AE90:
/* 8028AE90 00287DF0 E3 E1 00 D8 */ psq_l f31, 216(r1), 0, qr0
/* 8028AE94 00287DF4 CB E1 00 D0 */ lfd f31, 0xd0(r1)
/* 8028AE98 00287DF8 E3 C1 00 C8 */ psq_l f30, 200(r1), 0, qr0
/* 8028AE9C 00287DFC CB C1 00 C0 */ lfd f30, 0xc0(r1)
/* 8028AEA0 00287E00 E3 A1 00 B8 */ psq_l f29, 184(r1), 0, qr0
/* 8028AEA4 00287E04 CB A1 00 B0 */ lfd f29, 0xb0(r1)
/* 8028AEA8 00287E08 BA 21 00 74 */ lmw r17, 0x74(r1)
/* 8028AEAC 00287E0C 80 01 00 E4 */ lwz r0, 0xe4(r1)
/* 8028AEB0 00287E10 7C 08 03 A6 */ mtlr r0
/* 8028AEB4 00287E14 38 21 00 E0 */ addi r1, r1, 0xe0
/* 8028AEB8 00287E18 4E 80 00 20 */ blr
.global "primitive_set_to_token_vector__12NWeaponTypesFRC9CAnimDataRCQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>RQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>b"
"primitive_set_to_token_vector__12NWeaponTypesFRC9CAnimDataRCQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>RQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>b":
/* 8028AEBC 00287E1C 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8028AEC0 00287E20 7C 08 02 A6 */ mflr r0
/* 8028AEC4 00287E24 90 01 00 84 */ stw r0, 0x84(r1)
/* 8028AEC8 00287E28 BF 01 00 60 */ stmw r24, 0x60(r1)
/* 8028AECC 00287E2C 7C 9B 23 78 */ mr r27, r4
/* 8028AED0 00287E30 7C 7F 1B 78 */ mr r31, r3
/* 8028AED4 00287E34 7C B8 2B 78 */ mr r24, r5
/* 8028AED8 00287E38 7C D9 33 78 */ mr r25, r6
/* 8028AEDC 00287E3C 3B 9B 00 08 */ addi r28, r27, 8
/* 8028AEE0 00287E40 3B 40 00 00 */ li r26, 0
/* 8028AEE4 00287E44 83 A4 00 08 */ lwz r29, 8(r4)
/* 8028AEE8 00287E48 48 00 00 2C */ b lbl_8028AF14
lbl_8028AEEC:
/* 8028AEEC 00287E4C 80 9D 00 10 */ lwz r4, 0x10(r29)
/* 8028AEF0 00287E50 7F E3 FB 78 */ mr r3, r31
/* 8028AEF4 00287E54 4B D9 E5 99 */ bl GetEventResourceIdForAnimResourceId__9CAnimDataCFi
/* 8028AEF8 00287E58 2C 03 FF FF */ cmpwi r3, -1
/* 8028AEFC 00287E5C 41 82 00 08 */ beq lbl_8028AF04
/* 8028AF00 00287E60 3B 5A 00 01 */ addi r26, r26, 1
lbl_8028AF04:
/* 8028AF04 00287E64 7F 83 E3 78 */ mr r3, r28
/* 8028AF08 00287E68 7F A4 EB 78 */ mr r4, r29
/* 8028AF0C 00287E6C 48 0B 16 D5 */ bl rbtree_traverse_forward__4rstlFPCvPv
/* 8028AF10 00287E70 7C 7D 1B 78 */ mr r29, r3
lbl_8028AF14:
/* 8028AF14 00287E74 28 1D 00 00 */ cmplwi r29, 0
/* 8028AF18 00287E78 38 00 00 00 */ li r0, 0
/* 8028AF1C 00287E7C 40 82 00 0C */ bne lbl_8028AF28
/* 8028AF20 00287E80 7C 1C E0 40 */ cmplw r28, r28
/* 8028AF24 00287E84 41 82 00 08 */ beq lbl_8028AF2C
lbl_8028AF28:
/* 8028AF28 00287E88 38 00 00 01 */ li r0, 1
lbl_8028AF2C:
/* 8028AF2C 00287E8C 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 8028AF30 00287E90 40 82 FF BC */ bne lbl_8028AEEC
/* 8028AF34 00287E94 38 00 00 00 */ li r0, 0
/* 8028AF38 00287E98 7F 03 C3 78 */ mr r3, r24
/* 8028AF3C 00287E9C 90 01 00 4C */ stw r0, 0x4c(r1)
/* 8028AF40 00287EA0 38 81 00 48 */ addi r4, r1, 0x48
/* 8028AF44 00287EA4 90 01 00 50 */ stw r0, 0x50(r1)
/* 8028AF48 00287EA8 90 01 00 54 */ stw r0, 0x54(r1)
/* 8028AF4C 00287EAC 4B D7 B8 B9 */ bl "__as__Q24rstl42vector<6CToken,Q24rstl17rmemory_allocator>FRCQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>"
/* 8028AF50 00287EB0 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 8028AF54 00287EB4 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 8028AF58 00287EB8 54 00 18 38 */ slwi r0, r0, 3
/* 8028AF5C 00287EBC 7F 9D 02 14 */ add r28, r29, r0
/* 8028AF60 00287EC0 93 A1 00 0C */ stw r29, 0xc(r1)
/* 8028AF64 00287EC4 93 81 00 14 */ stw r28, 0x14(r1)
/* 8028AF68 00287EC8 93 81 00 10 */ stw r28, 0x10(r1)
/* 8028AF6C 00287ECC 93 A1 00 08 */ stw r29, 8(r1)
/* 8028AF70 00287ED0 48 00 00 14 */ b lbl_8028AF84
lbl_8028AF74:
/* 8028AF74 00287ED4 7F A3 EB 78 */ mr r3, r29
/* 8028AF78 00287ED8 38 80 FF FF */ li r4, -1
/* 8028AF7C 00287EDC 48 0B 5E C5 */ bl __dt__6CTokenFv
/* 8028AF80 00287EE0 3B BD 00 08 */ addi r29, r29, 8
lbl_8028AF84:
/* 8028AF84 00287EE4 7C 1D E0 40 */ cmplw r29, r28
/* 8028AF88 00287EE8 40 82 FF EC */ bne lbl_8028AF74
/* 8028AF8C 00287EEC 80 61 00 54 */ lwz r3, 0x54(r1)
/* 8028AF90 00287EF0 28 03 00 00 */ cmplwi r3, 0
/* 8028AF94 00287EF4 41 82 00 08 */ beq lbl_8028AF9C
/* 8028AF98 00287EF8 48 08 A9 99 */ bl Free__7CMemoryFPCv
lbl_8028AF9C:
/* 8028AF9C 00287EFC 80 1B 00 04 */ lwz r0, 4(r27)
/* 8028AFA0 00287F00 7F 03 C3 78 */ mr r3, r24
/* 8028AFA4 00287F04 7C 9A 02 14 */ add r4, r26, r0
/* 8028AFA8 00287F08 4B D7 D9 B5 */ bl "reserve__Q24rstl42vector<6CToken,Q24rstl17rmemory_allocator>Fi"
/* 8028AFAC 00287F0C 3C 60 41 4E */ lis r3, 0x414E494D@ha
/* 8028AFB0 00287F10 87 5B 00 08 */ lwzu r26, 8(r27)
/* 8028AFB4 00287F14 57 3E 06 3E */ clrlwi r30, r25, 0x18
/* 8028AFB8 00287F18 3B A3 49 4D */ addi r29, r3, 0x414E494D@l
/* 8028AFBC 00287F1C 48 00 01 84 */ b lbl_8028B140
lbl_8028AFC0:
/* 8028AFC0 00287F20 83 9A 00 10 */ lwz r28, 0x10(r26)
/* 8028AFC4 00287F24 7F E3 FB 78 */ mr r3, r31
/* 8028AFC8 00287F28 7F 84 E3 78 */ mr r4, r28
/* 8028AFCC 00287F2C 4B D9 E4 C1 */ bl GetEventResourceIdForAnimResourceId__9CAnimDataCFi
/* 8028AFD0 00287F30 2C 03 FF FF */ cmpwi r3, -1
/* 8028AFD4 00287F34 41 82 00 B4 */ beq lbl_8028B088
/* 8028AFD8 00287F38 3C 80 45 56 */ lis r4, 0x45564E54@ha
/* 8028AFDC 00287F3C 90 61 00 34 */ stw r3, 0x34(r1)
/* 8028AFE0 00287F40 38 04 4E 54 */ addi r0, r4, 0x45564E54@l
/* 8028AFE4 00287F44 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8028AFE8 00287F48 90 01 00 30 */ stw r0, 0x30(r1)
/* 8028AFEC 00287F4C 38 61 00 28 */ addi r3, r1, 0x28
/* 8028AFF0 00287F50 38 A1 00 30 */ addi r5, r1, 0x30
/* 8028AFF4 00287F54 81 84 00 00 */ lwz r12, 0(r4)
/* 8028AFF8 00287F58 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8028AFFC 00287F5C 7D 89 03 A6 */ mtctr r12
/* 8028B000 00287F60 4E 80 04 21 */ bctrl
/* 8028B004 00287F64 38 61 00 40 */ addi r3, r1, 0x40
/* 8028B008 00287F68 38 81 00 28 */ addi r4, r1, 0x28
/* 8028B00C 00287F6C 48 0B 5E 9D */ bl __ct__6CTokenFRC6CToken
/* 8028B010 00287F70 38 61 00 28 */ addi r3, r1, 0x28
/* 8028B014 00287F74 38 80 FF FF */ li r4, -1
/* 8028B018 00287F78 48 0B 5E 29 */ bl __dt__6CTokenFv
/* 8028B01C 00287F7C 57 20 06 3F */ clrlwi. r0, r25, 0x18
/* 8028B020 00287F80 41 82 00 0C */ beq lbl_8028B02C
/* 8028B024 00287F84 38 61 00 40 */ addi r3, r1, 0x40
/* 8028B028 00287F88 48 0B 5D 5D */ bl Lock__6CTokenFv
lbl_8028B02C:
/* 8028B02C 00287F8C 80 18 00 04 */ lwz r0, 4(r24)
/* 8028B030 00287F90 80 B8 00 08 */ lwz r5, 8(r24)
/* 8028B034 00287F94 7C 00 28 00 */ cmpw r0, r5
/* 8028B038 00287F98 41 80 00 1C */ blt lbl_8028B054
/* 8028B03C 00287F9C 2C 05 00 00 */ cmpwi r5, 0
/* 8028B040 00287FA0 7F 03 C3 78 */ mr r3, r24
/* 8028B044 00287FA4 38 80 00 04 */ li r4, 4
/* 8028B048 00287FA8 41 82 00 08 */ beq lbl_8028B050
/* 8028B04C 00287FAC 54 A4 08 3C */ slwi r4, r5, 1
lbl_8028B050:
/* 8028B050 00287FB0 4B D7 D9 0D */ bl "reserve__Q24rstl42vector<6CToken,Q24rstl17rmemory_allocator>Fi"
lbl_8028B054:
/* 8028B054 00287FB4 80 18 00 04 */ lwz r0, 4(r24)
/* 8028B058 00287FB8 80 78 00 0C */ lwz r3, 0xc(r24)
/* 8028B05C 00287FBC 54 00 18 38 */ slwi r0, r0, 3
/* 8028B060 00287FC0 7C 63 02 15 */ add. r3, r3, r0
/* 8028B064 00287FC4 41 82 00 0C */ beq lbl_8028B070
/* 8028B068 00287FC8 38 81 00 40 */ addi r4, r1, 0x40
/* 8028B06C 00287FCC 48 0B 5E 3D */ bl __ct__6CTokenFRC6CToken
lbl_8028B070:
/* 8028B070 00287FD0 80 B8 00 04 */ lwz r5, 4(r24)
/* 8028B074 00287FD4 38 61 00 40 */ addi r3, r1, 0x40
/* 8028B078 00287FD8 38 80 FF FF */ li r4, -1
/* 8028B07C 00287FDC 38 05 00 01 */ addi r0, r5, 1
/* 8028B080 00287FE0 90 18 00 04 */ stw r0, 4(r24)
/* 8028B084 00287FE4 48 0B 5D BD */ bl __dt__6CTokenFv
lbl_8028B088:
/* 8028B088 00287FE8 93 A1 00 20 */ stw r29, 0x20(r1)
/* 8028B08C 00287FEC 38 61 00 18 */ addi r3, r1, 0x18
/* 8028B090 00287FF0 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8028B094 00287FF4 38 A1 00 20 */ addi r5, r1, 0x20
/* 8028B098 00287FF8 93 81 00 24 */ stw r28, 0x24(r1)
/* 8028B09C 00287FFC 81 84 00 00 */ lwz r12, 0(r4)
/* 8028B0A0 00288000 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8028B0A4 00288004 7D 89 03 A6 */ mtctr r12
/* 8028B0A8 00288008 4E 80 04 21 */ bctrl
/* 8028B0AC 0028800C 38 61 00 38 */ addi r3, r1, 0x38
/* 8028B0B0 00288010 38 81 00 18 */ addi r4, r1, 0x18
/* 8028B0B4 00288014 48 0B 5D F5 */ bl __ct__6CTokenFRC6CToken
/* 8028B0B8 00288018 38 61 00 18 */ addi r3, r1, 0x18
/* 8028B0BC 0028801C 38 80 FF FF */ li r4, -1
/* 8028B0C0 00288020 48 0B 5D 81 */ bl __dt__6CTokenFv
/* 8028B0C4 00288024 28 1E 00 00 */ cmplwi r30, 0
/* 8028B0C8 00288028 41 82 00 0C */ beq lbl_8028B0D4
/* 8028B0CC 0028802C 38 61 00 38 */ addi r3, r1, 0x38
/* 8028B0D0 00288030 48 0B 5C B5 */ bl Lock__6CTokenFv
lbl_8028B0D4:
/* 8028B0D4 00288034 80 18 00 04 */ lwz r0, 4(r24)
/* 8028B0D8 00288038 80 B8 00 08 */ lwz r5, 8(r24)
/* 8028B0DC 0028803C 7C 00 28 00 */ cmpw r0, r5
/* 8028B0E0 00288040 41 80 00 1C */ blt lbl_8028B0FC
/* 8028B0E4 00288044 2C 05 00 00 */ cmpwi r5, 0
/* 8028B0E8 00288048 7F 03 C3 78 */ mr r3, r24
/* 8028B0EC 0028804C 38 80 00 04 */ li r4, 4
/* 8028B0F0 00288050 41 82 00 08 */ beq lbl_8028B0F8
/* 8028B0F4 00288054 54 A4 08 3C */ slwi r4, r5, 1
lbl_8028B0F8:
/* 8028B0F8 00288058 4B D7 D8 65 */ bl "reserve__Q24rstl42vector<6CToken,Q24rstl17rmemory_allocator>Fi"
lbl_8028B0FC:
/* 8028B0FC 0028805C 80 18 00 04 */ lwz r0, 4(r24)
/* 8028B100 00288060 80 78 00 0C */ lwz r3, 0xc(r24)
/* 8028B104 00288064 54 00 18 38 */ slwi r0, r0, 3
/* 8028B108 00288068 7C 63 02 15 */ add. r3, r3, r0
/* 8028B10C 0028806C 41 82 00 0C */ beq lbl_8028B118
/* 8028B110 00288070 38 81 00 38 */ addi r4, r1, 0x38
/* 8028B114 00288074 48 0B 5D 95 */ bl __ct__6CTokenFRC6CToken
lbl_8028B118:
/* 8028B118 00288078 80 B8 00 04 */ lwz r5, 4(r24)
/* 8028B11C 0028807C 38 61 00 38 */ addi r3, r1, 0x38
/* 8028B120 00288080 38 80 FF FF */ li r4, -1
/* 8028B124 00288084 38 05 00 01 */ addi r0, r5, 1
/* 8028B128 00288088 90 18 00 04 */ stw r0, 4(r24)
/* 8028B12C 0028808C 48 0B 5D 15 */ bl __dt__6CTokenFv
/* 8028B130 00288090 7F 63 DB 78 */ mr r3, r27
/* 8028B134 00288094 7F 44 D3 78 */ mr r4, r26
/* 8028B138 00288098 48 0B 14 A9 */ bl rbtree_traverse_forward__4rstlFPCvPv
/* 8028B13C 0028809C 7C 7A 1B 78 */ mr r26, r3
lbl_8028B140:
/* 8028B140 002880A0 28 1A 00 00 */ cmplwi r26, 0
/* 8028B144 002880A4 38 00 00 00 */ li r0, 0
/* 8028B148 002880A8 40 82 00 0C */ bne lbl_8028B154
/* 8028B14C 002880AC 7C 1B D8 40 */ cmplw r27, r27
/* 8028B150 002880B0 41 82 00 08 */ beq lbl_8028B158
lbl_8028B154:
/* 8028B154 002880B4 38 00 00 01 */ li r0, 1
lbl_8028B158:
/* 8028B158 002880B8 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 8028B15C 002880BC 40 82 FE 64 */ bne lbl_8028AFC0
/* 8028B160 002880C0 BB 01 00 60 */ lmw r24, 0x60(r1)
/* 8028B164 002880C4 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8028B168 002880C8 7C 08 03 A6 */ mtlr r0
/* 8028B16C 002880CC 38 21 00 80 */ addi r1, r1, 0x80
/* 8028B170 002880D0 4E 80 00 20 */ blr
.global "unlock_tokens__12NWeaponTypesFRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>"
"unlock_tokens__12NWeaponTypesFRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>":
/* 8028B174 002880D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028B178 002880D8 7C 08 02 A6 */ mflr r0
/* 8028B17C 002880DC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028B180 002880E0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8028B184 002880E4 93 C1 00 08 */ stw r30, 8(r1)
/* 8028B188 002880E8 7C 7E 1B 78 */ mr r30, r3
/* 8028B18C 002880EC 83 E3 00 0C */ lwz r31, 0xc(r3)
/* 8028B190 002880F0 48 00 00 10 */ b lbl_8028B1A0
lbl_8028B194:
/* 8028B194 002880F4 7F E3 FB 78 */ mr r3, r31
/* 8028B198 002880F8 48 0B 5B A9 */ bl Unlock__6CTokenFv
/* 8028B19C 002880FC 3B FF 00 08 */ addi r31, r31, 8
lbl_8028B1A0:
/* 8028B1A0 00288100 80 1E 00 04 */ lwz r0, 4(r30)
/* 8028B1A4 00288104 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 8028B1A8 00288108 54 00 18 38 */ slwi r0, r0, 3
/* 8028B1AC 0028810C 7C 03 02 14 */ add r0, r3, r0
/* 8028B1B0 00288110 7C 1F 00 40 */ cmplw r31, r0
/* 8028B1B4 00288114 40 82 FF E0 */ bne lbl_8028B194
/* 8028B1B8 00288118 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028B1BC 0028811C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8028B1C0 00288120 83 C1 00 08 */ lwz r30, 8(r1)
/* 8028B1C4 00288124 7C 08 03 A6 */ mtlr r0
/* 8028B1C8 00288128 38 21 00 10 */ addi r1, r1, 0x10
/* 8028B1CC 0028812C 4E 80 00 20 */ blr
.global "lock_tokens__12NWeaponTypesFRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>"
"lock_tokens__12NWeaponTypesFRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>":
/* 8028B1D0 00288130 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028B1D4 00288134 7C 08 02 A6 */ mflr r0
/* 8028B1D8 00288138 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028B1DC 0028813C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8028B1E0 00288140 93 C1 00 08 */ stw r30, 8(r1)
/* 8028B1E4 00288144 7C 7E 1B 78 */ mr r30, r3
/* 8028B1E8 00288148 83 E3 00 0C */ lwz r31, 0xc(r3)
/* 8028B1EC 0028814C 48 00 00 10 */ b lbl_8028B1FC
lbl_8028B1F0:
/* 8028B1F0 00288150 7F E3 FB 78 */ mr r3, r31
/* 8028B1F4 00288154 48 0B 5B 91 */ bl Lock__6CTokenFv
/* 8028B1F8 00288158 3B FF 00 08 */ addi r31, r31, 8
lbl_8028B1FC:
/* 8028B1FC 0028815C 80 1E 00 04 */ lwz r0, 4(r30)
/* 8028B200 00288160 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 8028B204 00288164 54 00 18 38 */ slwi r0, r0, 3
/* 8028B208 00288168 7C 03 02 14 */ add r0, r3, r0
/* 8028B20C 0028816C 7C 1F 00 40 */ cmplw r31, r0
/* 8028B210 00288170 40 82 FF E0 */ bne lbl_8028B1F0
/* 8028B214 00288174 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028B218 00288178 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8028B21C 0028817C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8028B220 00288180 7C 08 03 A6 */ mtlr r0
/* 8028B224 00288184 38 21 00 10 */ addi r1, r1, 0x10
/* 8028B228 00288188 4E 80 00 20 */ blr
.global "are_tokens_ready__12NWeaponTypesFRCQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>"
"are_tokens_ready__12NWeaponTypesFRCQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>":
/* 8028B22C 0028818C 80 03 00 04 */ lwz r0, 4(r3)
/* 8028B230 00288190 80 A3 00 0C */ lwz r5, 0xc(r3)
/* 8028B234 00288194 54 00 18 38 */ slwi r0, r0, 3
/* 8028B238 00288198 7C 85 02 14 */ add r4, r5, r0
/* 8028B23C 0028819C 48 00 00 20 */ b lbl_8028B25C
lbl_8028B240:
/* 8028B240 002881A0 80 65 00 00 */ lwz r3, 0(r5)
/* 8028B244 002881A4 80 03 00 10 */ lwz r0, 0x10(r3)
/* 8028B248 002881A8 28 00 00 00 */ cmplwi r0, 0
/* 8028B24C 002881AC 40 82 00 0C */ bne lbl_8028B258
/* 8028B250 002881B0 38 60 00 00 */ li r3, 0
/* 8028B254 002881B4 4E 80 00 20 */ blr
lbl_8028B258:
/* 8028B258 002881B8 38 A5 00 08 */ addi r5, r5, 8
lbl_8028B25C:
/* 8028B25C 002881BC 7C 05 20 40 */ cmplw r5, r4
/* 8028B260 002881C0 40 82 FF E0 */ bne lbl_8028B240
/* 8028B264 002881C4 38 60 00 01 */ li r3, 1
/* 8028B268 002881C8 4E 80 00 20 */ blr
.global "get_token_vector__12NWeaponTypesFRC9CAnimDataiiRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>b"
"get_token_vector__12NWeaponTypesFRC9CAnimDataiiRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>b":
/* 8028B26C 002881CC 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8028B270 002881D0 7C 08 02 A6 */ mflr r0
/* 8028B274 002881D4 90 01 00 84 */ stw r0, 0x84(r1)
/* 8028B278 002881D8 DB E1 00 70 */ stfd f31, 0x70(r1)
/* 8028B27C 002881DC F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0
/* 8028B280 002881E0 BF 01 00 50 */ stmw r24, 0x50(r1)
/* 8028B284 002881E4 89 01 00 08 */ lbz r8, 8(r1)
/* 8028B288 002881E8 3B A0 00 00 */ li r29, 0
/* 8028B28C 002881EC 88 01 00 0C */ lbz r0, 0xc(r1)
/* 8028B290 002881F0 7C 78 1B 78 */ mr r24, r3
/* 8028B294 002881F4 99 01 00 10 */ stb r8, 0x10(r1)
/* 8028B298 002881F8 7C B9 2B 78 */ mr r25, r5
/* 8028B29C 002881FC C3 E2 BE 6C */ lfs f31, lbl_805ADB8C@sda21(r2)
/* 8028B2A0 00288200 7C DA 33 78 */ mr r26, r6
/* 8028B2A4 00288204 98 01 00 11 */ stb r0, 0x11(r1)
/* 8028B2A8 00288208 7C FB 3B 78 */ mr r27, r7
/* 8028B2AC 0028820C 7C 9C 23 78 */ mr r28, r4
/* 8028B2B0 00288210 3B E0 00 01 */ li r31, 1
/* 8028B2B4 00288214 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8028B2B8 00288218 3B C0 FF FF */ li r30, -1
/* 8028B2BC 0028821C 93 A1 00 18 */ stw r29, 0x18(r1)
/* 8028B2C0 00288220 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8028B2C4 00288224 93 A1 00 20 */ stw r29, 0x20(r1)
/* 8028B2C8 00288228 48 00 00 40 */ b lbl_8028B308
lbl_8028B2CC:
/* 8028B2CC 0028822C 93 81 00 24 */ stw r28, 0x24(r1)
/* 8028B2D0 00288230 7F 03 C3 78 */ mr r3, r24
/* 8028B2D4 00288234 38 81 00 24 */ addi r4, r1, 0x24
/* 8028B2D8 00288238 38 A1 00 10 */ addi r5, r1, 0x10
/* 8028B2DC 0028823C 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8028B2E0 00288240 D3 E1 00 2C */ stfs f31, 0x2c(r1)
/* 8028B2E4 00288244 9B E1 00 30 */ stb r31, 0x30(r1)
/* 8028B2E8 00288248 93 A1 00 34 */ stw r29, 0x34(r1)
/* 8028B2EC 0028824C 93 A1 00 38 */ stw r29, 0x38(r1)
/* 8028B2F0 00288250 9B A1 00 3C */ stb r29, 0x3c(r1)
/* 8028B2F4 00288254 93 A1 00 40 */ stw r29, 0x40(r1)
/* 8028B2F8 00288258 93 A1 00 44 */ stw r29, 0x44(r1)
/* 8028B2FC 0028825C 93 A1 00 48 */ stw r29, 0x48(r1)
/* 8028B300 00288260 4B DA 19 79 */ bl "GetAnimationPrimitives__9CAnimDataCFRC18CAnimPlaybackParmsRQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>"
/* 8028B304 00288264 3B 9C 00 01 */ addi r28, r28, 1
lbl_8028B308:
/* 8028B308 00288268 7C 1C C8 00 */ cmpw r28, r25
/* 8028B30C 0028826C 41 80 FF C0 */ blt lbl_8028B2CC
/* 8028B310 00288270 7F 03 C3 78 */ mr r3, r24
/* 8028B314 00288274 7F 45 D3 78 */ mr r5, r26
/* 8028B318 00288278 38 81 00 10 */ addi r4, r1, 0x10
/* 8028B31C 0028827C 57 66 06 3E */ clrlwi r6, r27, 0x18
/* 8028B320 00288280 4B FF FB 9D */ bl "primitive_set_to_token_vector__12NWeaponTypesFRC9CAnimDataRCQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>RQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>b"
/* 8028B324 00288284 80 81 00 20 */ lwz r4, 0x20(r1)
/* 8028B328 00288288 28 04 00 00 */ cmplwi r4, 0
/* 8028B32C 0028828C 41 82 00 0C */ beq lbl_8028B338
/* 8028B330 00288290 38 61 00 10 */ addi r3, r1, 0x10
/* 8028B334 00288294 4B DA 5F 75 */ 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_8028B338:
/* 8028B338 00288298 38 00 00 00 */ li r0, 0
/* 8028B33C 0028829C 90 01 00 20 */ stw r0, 0x20(r1)
/* 8028B340 002882A0 90 01 00 18 */ stw r0, 0x18(r1)
/* 8028B344 002882A4 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8028B348 002882A8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028B34C 002882AC E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0
/* 8028B350 002882B0 CB E1 00 70 */ lfd f31, 0x70(r1)
/* 8028B354 002882B4 BB 01 00 50 */ lmw r24, 0x50(r1)
/* 8028B358 002882B8 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8028B35C 002882BC 7C 08 03 A6 */ mtlr r0
/* 8028B360 002882C0 38 21 00 80 */ addi r1, r1, 0x80
/* 8028B364 002882C4 4E 80 00 20 */ blr
.global "get_token_vector__12NWeaponTypesFR9CAnimDataiRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>b"
"get_token_vector__12NWeaponTypesFR9CAnimDataiRQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>b":
/* 8028B368 002882C8 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 8028B36C 002882CC 7C 08 02 A6 */ mflr r0
/* 8028B370 002882D0 C0 02 BE 6C */ lfs f0, lbl_805ADB8C@sda21(r2)
/* 8028B374 002882D4 39 00 00 00 */ li r8, 0
/* 8028B378 002882D8 90 01 00 64 */ stw r0, 0x64(r1)
/* 8028B37C 002882DC 38 E0 FF FF */ li r7, -1
/* 8028B380 002882E0 89 41 00 08 */ lbz r10, 8(r1)
/* 8028B384 002882E4 38 00 00 01 */ li r0, 1
/* 8028B388 002882E8 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 8028B38C 002882EC 7C DF 33 78 */ mr r31, r6
/* 8028B390 002882F0 89 21 00 0C */ lbz r9, 0xc(r1)
/* 8028B394 002882F4 93 C1 00 58 */ stw r30, 0x58(r1)
/* 8028B398 002882F8 7C BE 2B 78 */ mr r30, r5
/* 8028B39C 002882FC 38 A1 00 10 */ addi r5, r1, 0x10
/* 8028B3A0 00288300 93 A1 00 54 */ stw r29, 0x54(r1)
/* 8028B3A4 00288304 7C 7D 1B 78 */ mr r29, r3
/* 8028B3A8 00288308 90 81 00 24 */ stw r4, 0x24(r1)
/* 8028B3AC 0028830C 38 81 00 24 */ addi r4, r1, 0x24
/* 8028B3B0 00288310 99 41 00 10 */ stb r10, 0x10(r1)
/* 8028B3B4 00288314 99 21 00 11 */ stb r9, 0x11(r1)
/* 8028B3B8 00288318 91 01 00 14 */ stw r8, 0x14(r1)
/* 8028B3BC 0028831C 91 01 00 18 */ stw r8, 0x18(r1)
/* 8028B3C0 00288320 91 01 00 1C */ stw r8, 0x1c(r1)
/* 8028B3C4 00288324 91 01 00 20 */ stw r8, 0x20(r1)
/* 8028B3C8 00288328 90 E1 00 28 */ stw r7, 0x28(r1)
/* 8028B3CC 0028832C D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8028B3D0 00288330 98 01 00 30 */ stb r0, 0x30(r1)
/* 8028B3D4 00288334 91 01 00 34 */ stw r8, 0x34(r1)
/* 8028B3D8 00288338 91 01 00 38 */ stw r8, 0x38(r1)
/* 8028B3DC 0028833C 99 01 00 3C */ stb r8, 0x3c(r1)
/* 8028B3E0 00288340 91 01 00 40 */ stw r8, 0x40(r1)
/* 8028B3E4 00288344 91 01 00 44 */ stw r8, 0x44(r1)
/* 8028B3E8 00288348 91 01 00 48 */ stw r8, 0x48(r1)
/* 8028B3EC 0028834C 4B DA 18 8D */ bl "GetAnimationPrimitives__9CAnimDataCFRC18CAnimPlaybackParmsRQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>"
/* 8028B3F0 00288350 7F A3 EB 78 */ mr r3, r29
/* 8028B3F4 00288354 7F C5 F3 78 */ mr r5, r30
/* 8028B3F8 00288358 38 81 00 10 */ addi r4, r1, 0x10
/* 8028B3FC 0028835C 57 E6 06 3E */ clrlwi r6, r31, 0x18
/* 8028B400 00288360 4B FF FA BD */ bl "primitive_set_to_token_vector__12NWeaponTypesFRC9CAnimDataRCQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>RQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>b"
/* 8028B404 00288364 80 81 00 20 */ lwz r4, 0x20(r1)
/* 8028B408 00288368 28 04 00 00 */ cmplwi r4, 0
/* 8028B40C 0028836C 41 82 00 0C */ beq lbl_8028B418
/* 8028B410 00288370 38 61 00 10 */ addi r3, r1, 0x10
/* 8028B414 00288374 4B DA 5E 95 */ 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_8028B418:
/* 8028B418 00288378 38 00 00 00 */ li r0, 0
/* 8028B41C 0028837C 90 01 00 20 */ stw r0, 0x20(r1)
/* 8028B420 00288380 90 01 00 18 */ stw r0, 0x18(r1)
/* 8028B424 00288384 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8028B428 00288388 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028B42C 0028838C 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 8028B430 00288390 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 8028B434 00288394 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 8028B438 00288398 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8028B43C 0028839C 7C 08 03 A6 */ mtlr r0
/* 8028B440 002883A0 38 21 00 60 */ addi r1, r1, 0x60
/* 8028B444 002883A4 4E 80 00 20 */ blr
.global get_asset_id_from_name__12NWeaponTypesFPCc
get_asset_id_from_name__12NWeaponTypesFPCc:
/* 8028B448 002883A8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028B44C 002883AC 7C 08 02 A6 */ mflr r0
/* 8028B450 002883B0 7C 64 1B 78 */ mr r4, r3
/* 8028B454 002883B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028B458 002883B8 80 6D A0 60 */ lwz r3, gpResourceFactory@sda21(r13)
/* 8028B45C 002883BC 81 83 00 00 */ lwz r12, 0(r3)
/* 8028B460 002883C0 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 8028B464 002883C4 7D 89 03 A6 */ mtctr r12
/* 8028B468 002883C8 4E 80 04 21 */ bctrl
/* 8028B46C 002883CC 28 03 00 00 */ cmplwi r3, 0
/* 8028B470 002883D0 41 82 00 0C */ beq lbl_8028B47C
/* 8028B474 002883D4 80 63 00 04 */ lwz r3, 4(r3)
/* 8028B478 002883D8 48 00 00 08 */ b lbl_8028B480
lbl_8028B47C:
/* 8028B47C 002883DC 38 60 FF FF */ li r3, -1
lbl_8028B480:
/* 8028B480 002883E0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028B484 002883E4 7C 08 03 A6 */ mtlr r0
/* 8028B488 002883E8 38 21 00 10 */ addi r1, r1, 0x10
/* 8028B48C 002883EC 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805ADB88
lbl_805ADB88:
# ROM: 0x3FA428
.4byte 0
.global lbl_805ADB8C
lbl_805ADB8C:
# ROM: 0x3FA42C
.float 1.0