prime/asm/MetroidPrime/ScriptObjects/CScriptPickupGenerator.s

975 lines
46 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .data
.balign 8
.global lbl_803E3618
lbl_803E3618:
# ROM: 0x3E0618
.4byte 0
.4byte 0
.4byte __dt__22CScriptPickupGeneratorFv
.4byte Accept__22CScriptPickupGeneratorFR8IVisitor
.4byte PreThink__7CEntityFfR13CStateManager
.4byte Think__7CEntityFfR13CStateManager
.4byte AcceptScriptMsg__22CScriptPickupGeneratorF20EScriptObjectMessage9TUniqueIdR13CStateManager
.4byte SetActive__7CEntityFb
.section .sdata
.balign 8
.global lbl_805A78A0
lbl_805A78A0:
# ROM: 0x3F5240
.4byte 0x00000001
.4byte 0
.section .text, "ax"
.global Accept__22CScriptPickupGeneratorFR8IVisitor
Accept__22CScriptPickupGeneratorFR8IVisitor:
/* 8015DE88 0015ADE8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8015DE8C 0015ADEC 7C 08 02 A6 */ mflr r0
/* 8015DE90 0015ADF0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8015DE94 0015ADF4 7C 60 1B 78 */ mr r0, r3
/* 8015DE98 0015ADF8 7C 83 23 78 */ mr r3, r4
/* 8015DE9C 0015ADFC 81 84 00 00 */ lwz r12, 0(r4)
/* 8015DEA0 0015AE00 7C 04 03 78 */ mr r4, r0
/* 8015DEA4 0015AE04 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8015DEA8 0015AE08 7D 89 03 A6 */ mtctr r12
/* 8015DEAC 0015AE0C 4E 80 04 21 */ bctrl
/* 8015DEB0 0015AE10 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8015DEB4 0015AE14 7C 08 03 A6 */ mtlr r0
/* 8015DEB8 0015AE18 38 21 00 10 */ addi r1, r1, 0x10
/* 8015DEBC 0015AE1C 4E 80 00 20 */ blr
.global AcceptScriptMsg__22CScriptPickupGeneratorF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__22CScriptPickupGeneratorF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 8015DEC0 0015AE20 94 21 FF 30 */ stwu r1, -0xd0(r1)
/* 8015DEC4 0015AE24 7C 08 02 A6 */ mflr r0
/* 8015DEC8 0015AE28 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 8015DECC 0015AE2C BF 61 00 BC */ stmw r27, 0xbc(r1)
/* 8015DED0 0015AE30 7C 9D 23 78 */ mr r29, r4
/* 8015DED4 0015AE34 2C 1D 00 0D */ cmpwi r29, 0xd
/* 8015DED8 0015AE38 7C 7C 1B 78 */ mr r28, r3
/* 8015DEDC 0015AE3C 7C BE 2B 78 */ mr r30, r5
/* 8015DEE0 0015AE40 7C DF 33 78 */ mr r31, r6
/* 8015DEE4 0015AE44 41 82 00 08 */ beq lbl_8015DEEC
/* 8015DEE8 0015AE48 48 00 03 08 */ b lbl_8015E1F0
lbl_8015DEEC:
/* 8015DEEC 0015AE4C 88 1C 00 30 */ lbz r0, 0x30(r28)
/* 8015DEF0 0015AE50 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8015DEF4 0015AE54 41 82 02 FC */ beq lbl_8015E1F0
/* 8015DEF8 0015AE58 C0 22 9F 28 */ lfs f1, lbl_805ABC48@sda21(r2)
/* 8015DEFC 0015AE5C C0 1C 00 40 */ lfs f0, 0x40(r28)
/* 8015DF00 0015AE60 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 8015DF04 0015AE64 41 82 02 EC */ beq lbl_8015E1F0
/* 8015DF08 0015AE68 C0 5C 00 44 */ lfs f2, 0x44(r28)
/* 8015DF0C 0015AE6C C0 22 9F 2C */ lfs f1, lbl_805ABC4C@sda21(r2)
/* 8015DF10 0015AE70 C0 02 9F 30 */ lfs f0, lbl_805ABC50@sda21(r2)
/* 8015DF14 0015AE74 EC 22 08 28 */ fsubs f1, f2, f1
/* 8015DF18 0015AE78 D0 3C 00 44 */ stfs f1, 0x44(r28)
/* 8015DF1C 0015AE7C C0 3C 00 44 */ lfs f1, 0x44(r28)
/* 8015DF20 0015AE80 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8015DF24 0015AE84 40 80 00 0C */ bge lbl_8015DF30
/* 8015DF28 0015AE88 48 00 02 F9 */ bl ResetDelayTimer__22CScriptPickupGeneratorFv
/* 8015DF2C 0015AE8C 48 00 02 C4 */ b lbl_8015E1F0
lbl_8015DF30:
/* 8015DF30 0015AE90 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8015DF34 0015AE94 38 E0 00 00 */ li r7, 0
/* 8015DF38 0015AE98 90 E1 00 94 */ stw r7, 0x94(r1)
/* 8015DF3C 0015AE9C 7F E4 FB 78 */ mr r4, r31
/* 8015DF40 0015AEA0 38 A1 00 10 */ addi r5, r1, 0x10
/* 8015DF44 0015AEA4 38 C1 00 90 */ addi r6, r1, 0x90
/* 8015DF48 0015AEA8 90 E1 00 98 */ stw r7, 0x98(r1)
/* 8015DF4C 0015AEAC 90 E1 00 9C */ stw r7, 0x9c(r1)
/* 8015DF50 0015AEB0 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8015DF54 0015AEB4 48 00 07 F5 */ bl "GetGeneratorIds__22CScriptPickupGeneratorFR13CStateManager9TUniqueIdRQ24rstl18vector<9TUniqueId>"
/* 8015DF58 0015AEB8 38 00 00 00 */ li r0, 0
/* 8015DF5C 0015AEBC 7F 83 E3 78 */ mr r3, r28
/* 8015DF60 0015AEC0 90 01 00 84 */ stw r0, 0x84(r1)
/* 8015DF64 0015AEC4 7F E4 FB 78 */ mr r4, r31
/* 8015DF68 0015AEC8 38 A1 00 80 */ addi r5, r1, 0x80
/* 8015DF6C 0015AECC 90 01 00 88 */ stw r0, 0x88(r1)
/* 8015DF70 0015AED0 90 01 00 8C */ stw r0, 0x8c(r1)
/* 8015DF74 0015AED4 48 00 04 E9 */ bl "GetPickupTemplates__22CScriptPickupGeneratorFR13CStateManagerRQ24rstl35vector<Q24rstl18pair<f,9TEditorId>>"
/* 8015DF78 0015AED8 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8015DF7C 0015AEDC 2C 00 00 00 */ cmpwi r0, 0
/* 8015DF80 0015AEE0 40 82 00 84 */ bne lbl_8015E004
/* 8015DF84 0015AEE4 80 61 00 8C */ lwz r3, 0x8c(r1)
/* 8015DF88 0015AEE8 54 00 18 38 */ slwi r0, r0, 3
/* 8015DF8C 0015AEEC 7C 03 02 14 */ add r0, r3, r0
/* 8015DF90 0015AEF0 90 61 00 68 */ stw r3, 0x68(r1)
/* 8015DF94 0015AEF4 7C 64 1B 78 */ mr r4, r3
/* 8015DF98 0015AEF8 90 01 00 70 */ stw r0, 0x70(r1)
/* 8015DF9C 0015AEFC 90 01 00 6C */ stw r0, 0x6c(r1)
/* 8015DFA0 0015AF00 90 61 00 64 */ stw r3, 0x64(r1)
/* 8015DFA4 0015AF04 48 00 00 08 */ b lbl_8015DFAC
lbl_8015DFA8:
/* 8015DFA8 0015AF08 38 84 00 08 */ addi r4, r4, 8
lbl_8015DFAC:
/* 8015DFAC 0015AF0C 7C 04 00 40 */ cmplw r4, r0
/* 8015DFB0 0015AF10 40 82 FF F8 */ bne lbl_8015DFA8
/* 8015DFB4 0015AF14 28 03 00 00 */ cmplwi r3, 0
/* 8015DFB8 0015AF18 41 82 00 08 */ beq lbl_8015DFC0
/* 8015DFBC 0015AF1C 48 1B 79 75 */ bl Free__7CMemoryFPCv
lbl_8015DFC0:
/* 8015DFC0 0015AF20 80 01 00 94 */ lwz r0, 0x94(r1)
/* 8015DFC4 0015AF24 80 61 00 9C */ lwz r3, 0x9c(r1)
/* 8015DFC8 0015AF28 54 00 08 3C */ slwi r0, r0, 1
/* 8015DFCC 0015AF2C 7C 03 02 14 */ add r0, r3, r0
/* 8015DFD0 0015AF30 90 61 00 58 */ stw r3, 0x58(r1)
/* 8015DFD4 0015AF34 7C 64 1B 78 */ mr r4, r3
/* 8015DFD8 0015AF38 90 01 00 60 */ stw r0, 0x60(r1)
/* 8015DFDC 0015AF3C 90 01 00 5C */ stw r0, 0x5c(r1)
/* 8015DFE0 0015AF40 90 61 00 54 */ stw r3, 0x54(r1)
/* 8015DFE4 0015AF44 48 00 00 08 */ b lbl_8015DFEC
lbl_8015DFE8:
/* 8015DFE8 0015AF48 38 84 00 02 */ addi r4, r4, 2
lbl_8015DFEC:
/* 8015DFEC 0015AF4C 7C 04 00 40 */ cmplw r4, r0
/* 8015DFF0 0015AF50 40 82 FF F8 */ bne lbl_8015DFE8
/* 8015DFF4 0015AF54 28 03 00 00 */ cmplwi r3, 0
/* 8015DFF8 0015AF58 41 82 01 F8 */ beq lbl_8015E1F0
/* 8015DFFC 0015AF5C 48 1B 79 35 */ bl Free__7CMemoryFPCv
/* 8015E000 0015AF60 48 00 01 F0 */ b lbl_8015E1F0
lbl_8015E004:
/* 8015E004 0015AF64 FC 40 08 90 */ fmr f2, f1
/* 8015E008 0015AF68 80 7F 09 00 */ lwz r3, 0x900(r31)
/* 8015E00C 0015AF6C C0 22 9F 34 */ lfs f1, lbl_805ABC54@sda21(r2)
/* 8015E010 0015AF70 3B 60 00 00 */ li r27, 0
/* 8015E014 0015AF74 48 1B 45 31 */ bl Range__9CRandom16Fff
/* 8015E018 0015AF78 80 81 00 8C */ lwz r4, 0x8c(r1)
/* 8015E01C 0015AF7C 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8015E020 0015AF80 7C 83 23 78 */ mr r3, r4
/* 8015E024 0015AF84 C0 42 9F 34 */ lfs f2, lbl_805ABC54@sda21(r2)
/* 8015E028 0015AF88 7C 09 03 A6 */ mtctr r0
/* 8015E02C 0015AF8C 2C 00 00 00 */ cmpwi r0, 0
/* 8015E030 0015AF90 40 81 00 34 */ ble lbl_8015E064
lbl_8015E034:
/* 8015E034 0015AF94 FC 01 10 40 */ fcmpo cr0, f1, f2
/* 8015E038 0015AF98 C0 63 00 00 */ lfs f3, 0(r3)
/* 8015E03C 0015AF9C 4C 41 13 82 */ cror 2, 1, 2
/* 8015E040 0015AFA0 40 82 00 14 */ bne lbl_8015E054
/* 8015E044 0015AFA4 EC 02 18 2A */ fadds f0, f2, f3
/* 8015E048 0015AFA8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8015E04C 0015AFAC 4C 40 13 82 */ cror 2, 0, 2
/* 8015E050 0015AFB0 41 82 00 14 */ beq lbl_8015E064
lbl_8015E054:
/* 8015E054 0015AFB4 EC 42 18 2A */ fadds f2, f2, f3
/* 8015E058 0015AFB8 38 63 00 08 */ addi r3, r3, 8
/* 8015E05C 0015AFBC 3B 7B 00 01 */ addi r27, r27, 1
/* 8015E060 0015AFC0 42 00 FF D4 */ bdnz lbl_8015E034
lbl_8015E064:
/* 8015E064 0015AFC4 7C 1B 00 00 */ cmpw r27, r0
/* 8015E068 0015AFC8 40 82 00 84 */ bne lbl_8015E0EC
/* 8015E06C 0015AFCC 54 00 18 38 */ slwi r0, r0, 3
/* 8015E070 0015AFD0 90 81 00 48 */ stw r4, 0x48(r1)
/* 8015E074 0015AFD4 7C 04 02 14 */ add r0, r4, r0
/* 8015E078 0015AFD8 7C 83 23 78 */ mr r3, r4
/* 8015E07C 0015AFDC 90 01 00 50 */ stw r0, 0x50(r1)
/* 8015E080 0015AFE0 90 01 00 4C */ stw r0, 0x4c(r1)
/* 8015E084 0015AFE4 90 81 00 44 */ stw r4, 0x44(r1)
/* 8015E088 0015AFE8 48 00 00 08 */ b lbl_8015E090
lbl_8015E08C:
/* 8015E08C 0015AFEC 38 63 00 08 */ addi r3, r3, 8
lbl_8015E090:
/* 8015E090 0015AFF0 7C 03 00 40 */ cmplw r3, r0
/* 8015E094 0015AFF4 40 82 FF F8 */ bne lbl_8015E08C
/* 8015E098 0015AFF8 28 04 00 00 */ cmplwi r4, 0
/* 8015E09C 0015AFFC 41 82 00 0C */ beq lbl_8015E0A8
/* 8015E0A0 0015B000 7C 83 23 78 */ mr r3, r4
/* 8015E0A4 0015B004 48 1B 78 8D */ bl Free__7CMemoryFPCv
lbl_8015E0A8:
/* 8015E0A8 0015B008 80 01 00 94 */ lwz r0, 0x94(r1)
/* 8015E0AC 0015B00C 80 61 00 9C */ lwz r3, 0x9c(r1)
/* 8015E0B0 0015B010 54 00 08 3C */ slwi r0, r0, 1
/* 8015E0B4 0015B014 7C 03 02 14 */ add r0, r3, r0
/* 8015E0B8 0015B018 90 61 00 38 */ stw r3, 0x38(r1)
/* 8015E0BC 0015B01C 7C 64 1B 78 */ mr r4, r3
/* 8015E0C0 0015B020 90 01 00 40 */ stw r0, 0x40(r1)
/* 8015E0C4 0015B024 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8015E0C8 0015B028 90 61 00 34 */ stw r3, 0x34(r1)
/* 8015E0CC 0015B02C 48 00 00 08 */ b lbl_8015E0D4
lbl_8015E0D0:
/* 8015E0D0 0015B030 38 84 00 02 */ addi r4, r4, 2
lbl_8015E0D4:
/* 8015E0D4 0015B034 7C 04 00 40 */ cmplw r4, r0
/* 8015E0D8 0015B038 40 82 FF F8 */ bne lbl_8015E0D0
/* 8015E0DC 0015B03C 28 03 00 00 */ cmplwi r3, 0
/* 8015E0E0 0015B040 41 82 01 10 */ beq lbl_8015E1F0
/* 8015E0E4 0015B044 48 1B 78 4D */ bl Free__7CMemoryFPCv
/* 8015E0E8 0015B048 48 00 01 08 */ b lbl_8015E1F0
lbl_8015E0EC:
/* 8015E0EC 0015B04C 57 60 18 38 */ slwi r0, r27, 3
/* 8015E0F0 0015B050 80 7F 09 00 */ lwz r3, 0x900(r31)
/* 8015E0F4 0015B054 7C 84 02 14 */ add r4, r4, r0
/* 8015E0F8 0015B058 C0 04 00 00 */ lfs f0, 0(r4)
/* 8015E0FC 0015B05C 80 04 00 04 */ lwz r0, 4(r4)
/* 8015E100 0015B060 D0 01 00 78 */ stfs f0, 0x78(r1)
/* 8015E104 0015B064 90 01 00 7C */ stw r0, 0x7c(r1)
/* 8015E108 0015B068 48 1B 43 D5 */ bl Float__9CRandom16Fv
/* 8015E10C 0015B06C 80 81 00 94 */ lwz r4, 0x94(r1)
/* 8015E110 0015B070 3C 00 43 30 */ lis r0, 0x4330
/* 8015E114 0015B074 90 01 00 A0 */ stw r0, 0xa0(r1)
/* 8015E118 0015B078 7F 83 E3 78 */ mr r3, r28
/* 8015E11C 0015B07C 6C 80 80 00 */ xoris r0, r4, 0x8000
/* 8015E120 0015B080 C8 62 9F 40 */ lfd f3, lbl_805ABC60@sda21(r2)
/* 8015E124 0015B084 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 8015E128 0015B088 7F E4 FB 78 */ mr r4, r31
/* 8015E12C 0015B08C C0 02 9F 38 */ lfs f0, lbl_805ABC58@sda21(r2)
/* 8015E130 0015B090 38 A1 00 74 */ addi r5, r1, 0x74
/* 8015E134 0015B094 C8 41 00 A0 */ lfd f2, 0xa0(r1)
/* 8015E138 0015B098 38 C1 00 0C */ addi r6, r1, 0xc
/* 8015E13C 0015B09C 81 01 00 9C */ lwz r8, 0x9c(r1)
/* 8015E140 0015B0A0 EC 42 18 28 */ fsubs f2, f2, f3
/* 8015E144 0015B0A4 80 01 00 7C */ lwz r0, 0x7c(r1)
/* 8015E148 0015B0A8 EC 21 00 B2 */ fmuls f1, f1, f2
/* 8015E14C 0015B0AC EC 00 00 72 */ fmuls f0, f0, f1
/* 8015E150 0015B0B0 FC 00 00 1E */ fctiwz f0, f0
/* 8015E154 0015B0B4 D8 01 00 A8 */ stfd f0, 0xa8(r1)
/* 8015E158 0015B0B8 80 E1 00 AC */ lwz r7, 0xac(r1)
/* 8015E15C 0015B0BC 54 E7 08 3C */ slwi r7, r7, 1
/* 8015E160 0015B0C0 7C E8 3A 2E */ lhzx r7, r8, r7
/* 8015E164 0015B0C4 B0 E1 00 0C */ sth r7, 0xc(r1)
/* 8015E168 0015B0C8 90 01 00 74 */ stw r0, 0x74(r1)
/* 8015E16C 0015B0CC 48 00 00 E9 */ bl GeneratePickup__22CScriptPickupGeneratorFR13CStateManager9TUniqueId9TEditorId
/* 8015E170 0015B0D0 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8015E174 0015B0D4 80 61 00 8C */ lwz r3, 0x8c(r1)
/* 8015E178 0015B0D8 54 00 18 38 */ slwi r0, r0, 3
/* 8015E17C 0015B0DC 7C 03 02 14 */ add r0, r3, r0
/* 8015E180 0015B0E0 90 61 00 28 */ stw r3, 0x28(r1)
/* 8015E184 0015B0E4 7C 64 1B 78 */ mr r4, r3
/* 8015E188 0015B0E8 90 01 00 30 */ stw r0, 0x30(r1)
/* 8015E18C 0015B0EC 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8015E190 0015B0F0 90 61 00 24 */ stw r3, 0x24(r1)
/* 8015E194 0015B0F4 48 00 00 08 */ b lbl_8015E19C
lbl_8015E198:
/* 8015E198 0015B0F8 38 84 00 08 */ addi r4, r4, 8
lbl_8015E19C:
/* 8015E19C 0015B0FC 7C 04 00 40 */ cmplw r4, r0
/* 8015E1A0 0015B100 40 82 FF F8 */ bne lbl_8015E198
/* 8015E1A4 0015B104 28 03 00 00 */ cmplwi r3, 0
/* 8015E1A8 0015B108 41 82 00 08 */ beq lbl_8015E1B0
/* 8015E1AC 0015B10C 48 1B 77 85 */ bl Free__7CMemoryFPCv
lbl_8015E1B0:
/* 8015E1B0 0015B110 80 01 00 94 */ lwz r0, 0x94(r1)
/* 8015E1B4 0015B114 80 61 00 9C */ lwz r3, 0x9c(r1)
/* 8015E1B8 0015B118 54 00 08 3C */ slwi r0, r0, 1
/* 8015E1BC 0015B11C 7C 03 02 14 */ add r0, r3, r0
/* 8015E1C0 0015B120 90 61 00 18 */ stw r3, 0x18(r1)
/* 8015E1C4 0015B124 7C 64 1B 78 */ mr r4, r3
/* 8015E1C8 0015B128 90 01 00 20 */ stw r0, 0x20(r1)
/* 8015E1CC 0015B12C 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8015E1D0 0015B130 90 61 00 14 */ stw r3, 0x14(r1)
/* 8015E1D4 0015B134 48 00 00 08 */ b lbl_8015E1DC
lbl_8015E1D8:
/* 8015E1D8 0015B138 38 84 00 02 */ addi r4, r4, 2
lbl_8015E1DC:
/* 8015E1DC 0015B13C 7C 04 00 40 */ cmplw r4, r0
/* 8015E1E0 0015B140 40 82 FF F8 */ bne lbl_8015E1D8
/* 8015E1E4 0015B144 28 03 00 00 */ cmplwi r3, 0
/* 8015E1E8 0015B148 41 82 00 08 */ beq lbl_8015E1F0
/* 8015E1EC 0015B14C 48 1B 77 45 */ bl Free__7CMemoryFPCv
lbl_8015E1F0:
/* 8015E1F0 0015B150 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8015E1F4 0015B154 7F 83 E3 78 */ mr r3, r28
/* 8015E1F8 0015B158 7F A4 EB 78 */ mr r4, r29
/* 8015E1FC 0015B15C 7F E6 FB 78 */ mr r6, r31
/* 8015E200 0015B160 B0 01 00 08 */ sth r0, 8(r1)
/* 8015E204 0015B164 38 A1 00 08 */ addi r5, r1, 8
/* 8015E208 0015B168 4B EF 2F 55 */ bl AcceptScriptMsg__7CEntityF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 8015E20C 0015B16C BB 61 00 BC */ lmw r27, 0xbc(r1)
/* 8015E210 0015B170 80 01 00 D4 */ lwz r0, 0xd4(r1)
/* 8015E214 0015B174 7C 08 03 A6 */ mtlr r0
/* 8015E218 0015B178 38 21 00 D0 */ addi r1, r1, 0xd0
/* 8015E21C 0015B17C 4E 80 00 20 */ blr
.global ResetDelayTimer__22CScriptPickupGeneratorFv
ResetDelayTimer__22CScriptPickupGeneratorFv:
/* 8015E220 0015B180 C0 43 00 40 */ lfs f2, 0x40(r3)
/* 8015E224 0015B184 C0 02 9F 34 */ lfs f0, lbl_805ABC54@sda21(r2)
/* 8015E228 0015B188 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8015E22C 0015B18C 40 81 00 1C */ ble lbl_8015E248
/* 8015E230 0015B190 C0 02 9F 28 */ lfs f0, lbl_805ABC48@sda21(r2)
/* 8015E234 0015B194 C0 23 00 44 */ lfs f1, 0x44(r3)
/* 8015E238 0015B198 EC 00 10 24 */ fdivs f0, f0, f2
/* 8015E23C 0015B19C EC 01 00 2A */ fadds f0, f1, f0
/* 8015E240 0015B1A0 D0 03 00 44 */ stfs f0, 0x44(r3)
/* 8015E244 0015B1A4 4E 80 00 20 */ blr
lbl_8015E248:
/* 8015E248 0015B1A8 C0 02 9F 48 */ lfs f0, lbl_805ABC68@sda21(r2)
/* 8015E24C 0015B1AC D0 03 00 44 */ stfs f0, 0x44(r3)
/* 8015E250 0015B1B0 4E 80 00 20 */ blr
.global GeneratePickup__22CScriptPickupGeneratorFR13CStateManager9TUniqueId9TEditorId
GeneratePickup__22CScriptPickupGeneratorFR13CStateManager9TUniqueId9TEditorId:
/* 8015E254 0015B1B4 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8015E258 0015B1B8 7C 08 02 A6 */ mflr r0
/* 8015E25C 0015B1BC 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 8015E260 0015B1C0 BF 21 00 84 */ stmw r25, 0x84(r1)
/* 8015E264 0015B1C4 7C 7E 1B 78 */ mr r30, r3
/* 8015E268 0015B1C8 7C BA 2B 78 */ mr r26, r5
/* 8015E26C 0015B1CC 7C 9F 23 78 */ mr r31, r4
/* 8015E270 0015B1D0 7C D9 33 78 */ mr r25, r6
/* 8015E274 0015B1D4 38 61 00 1C */ addi r3, r1, 0x1c
/* 8015E278 0015B1D8 80 05 00 00 */ lwz r0, 0(r5)
/* 8015E27C 0015B1DC 38 A1 00 28 */ addi r5, r1, 0x28
/* 8015E280 0015B1E0 90 01 00 28 */ stw r0, 0x28(r1)
/* 8015E284 0015B1E4 4B EE 9C 99 */ bl GetIdForScript__13CStateManagerCF9TEditorId
/* 8015E288 0015B1E8 A0 01 00 1C */ lhz r0, 0x1c(r1)
/* 8015E28C 0015B1EC 7F E3 FB 78 */ mr r3, r31
/* 8015E290 0015B1F0 38 81 00 18 */ addi r4, r1, 0x18
/* 8015E294 0015B1F4 B0 01 00 24 */ sth r0, 0x24(r1)
/* 8015E298 0015B1F8 B0 01 00 18 */ sth r0, 0x18(r1)
/* 8015E29C 0015B1FC 4B EE E2 D9 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8015E2A0 0015B200 A0 19 00 00 */ lhz r0, 0(r25)
/* 8015E2A4 0015B204 7C 7D 1B 78 */ mr r29, r3
/* 8015E2A8 0015B208 7F E3 FB 78 */ mr r3, r31
/* 8015E2AC 0015B20C 38 81 00 14 */ addi r4, r1, 0x14
/* 8015E2B0 0015B210 B0 01 00 14 */ sth r0, 0x14(r1)
/* 8015E2B4 0015B214 4B EE E2 C1 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8015E2B8 0015B218 28 1D 00 00 */ cmplwi r29, 0
/* 8015E2BC 0015B21C 7C 7C 1B 78 */ mr r28, r3
/* 8015E2C0 0015B220 41 82 01 88 */ beq lbl_8015E448
/* 8015E2C4 0015B224 28 1C 00 00 */ cmplwi r28, 0
/* 8015E2C8 0015B228 41 82 01 80 */ beq lbl_8015E448
/* 8015E2CC 0015B22C 88 DF 0F 94 */ lbz r6, 0xf94(r31)
/* 8015E2D0 0015B230 38 60 00 01 */ li r3, 1
/* 8015E2D4 0015B234 88 1F 0F 94 */ lbz r0, 0xf94(r31)
/* 8015E2D8 0015B238 50 60 2E B4 */ rlwimi r0, r3, 5, 0x1a, 0x1a
/* 8015E2DC 0015B23C 7F E4 FB 78 */ mr r4, r31
/* 8015E2E0 0015B240 7F 45 D3 78 */ mr r5, r26
/* 8015E2E4 0015B244 98 1F 0F 94 */ stb r0, 0xf94(r31)
/* 8015E2E8 0015B248 54 DD DF FE */ rlwinm r29, r6, 0x1b, 0x1f, 0x1f
/* 8015E2EC 0015B24C 38 61 00 4C */ addi r3, r1, 0x4c
/* 8015E2F0 0015B250 4B EE 9F F9 */ bl GenerateObject__13CStateManagerF9TEditorId
/* 8015E2F4 0015B254 A0 81 00 50 */ lhz r4, 0x50(r1)
/* 8015E2F8 0015B258 88 1F 0F 94 */ lbz r0, 0xf94(r31)
/* 8015E2FC 0015B25C 53 A0 2E B4 */ rlwimi r0, r29, 5, 0x1a, 0x1a
/* 8015E300 0015B260 54 83 04 3E */ clrlwi r3, r4, 0x10
/* 8015E304 0015B264 B0 81 00 20 */ sth r4, 0x20(r1)
/* 8015E308 0015B268 98 1F 0F 94 */ stb r0, 0xf94(r31)
/* 8015E30C 0015B26C A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8015E310 0015B270 7C 03 00 40 */ cmplw r3, r0
/* 8015E314 0015B274 41 82 01 34 */ beq lbl_8015E448
/* 8015E318 0015B278 B0 81 00 10 */ sth r4, 0x10(r1)
/* 8015E31C 0015B27C 7F E3 FB 78 */ mr r3, r31
/* 8015E320 0015B280 38 81 00 10 */ addi r4, r1, 0x10
/* 8015E324 0015B284 4B EE E2 51 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8015E328 0015B288 7C 60 1B 78 */ mr r0, r3
/* 8015E32C 0015B28C 38 61 00 44 */ addi r3, r1, 0x44
/* 8015E330 0015B290 7C 1B 03 78 */ mr r27, r0
/* 8015E334 0015B294 7F 64 DB 78 */ mr r4, r27
/* 8015E338 0015B298 4B F5 19 59 */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 8015E33C 0015B29C 83 43 00 04 */ lwz r26, 4(r3)
/* 8015E340 0015B2A0 7F 64 DB 78 */ mr r4, r27
/* 8015E344 0015B2A4 38 61 00 3C */ addi r3, r1, 0x3c
/* 8015E348 0015B2A8 4B F4 AE 45 */ bl "__ct__27TCastToPtr<13CScriptPickup>FP7CEntity"
/* 8015E34C 0015B2AC 83 A3 00 04 */ lwz r29, 4(r3)
/* 8015E350 0015B2B0 7F 84 E3 78 */ mr r4, r28
/* 8015E354 0015B2B4 38 61 00 34 */ addi r3, r1, 0x34
/* 8015E358 0015B2B8 4B F5 19 39 */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 8015E35C 0015B2BC 83 23 00 04 */ lwz r25, 4(r3)
/* 8015E360 0015B2C0 7F 84 E3 78 */ mr r4, r28
/* 8015E364 0015B2C4 38 61 00 2C */ addi r3, r1, 0x2c
/* 8015E368 0015B2C8 4B F4 78 A9 */ bl "__ct__31TCastToPtr<17CWallCrawlerSwarm>FP7CEntity"
/* 8015E36C 0015B2CC 28 1A 00 00 */ cmplwi r26, 0
/* 8015E370 0015B2D0 80 A3 00 04 */ lwz r5, 4(r3)
/* 8015E374 0015B2D4 41 82 00 58 */ beq lbl_8015E3CC
/* 8015E378 0015B2D8 28 05 00 00 */ cmplwi r5, 0
/* 8015E37C 0015B2DC 41 82 00 50 */ beq lbl_8015E3CC
/* 8015E380 0015B2E0 C0 A5 01 30 */ lfs f5, 0x130(r5)
/* 8015E384 0015B2E4 7F 43 D3 78 */ mr r3, r26
/* 8015E388 0015B2E8 C0 85 01 34 */ lfs f4, 0x134(r5)
/* 8015E38C 0015B2EC 38 81 00 6C */ addi r4, r1, 0x6c
/* 8015E390 0015B2F0 C0 65 01 38 */ lfs f3, 0x138(r5)
/* 8015E394 0015B2F4 C0 5E 00 38 */ lfs f2, 0x38(r30)
/* 8015E398 0015B2F8 C0 3E 00 3C */ lfs f1, 0x3c(r30)
/* 8015E39C 0015B2FC C0 1E 00 34 */ lfs f0, 0x34(r30)
/* 8015E3A0 0015B300 EC 44 10 2A */ fadds f2, f4, f2
/* 8015E3A4 0015B304 EC 23 08 2A */ fadds f1, f3, f1
/* 8015E3A8 0015B308 D0 A1 00 60 */ stfs f5, 0x60(r1)
/* 8015E3AC 0015B30C EC 05 00 2A */ fadds f0, f5, f0
/* 8015E3B0 0015B310 D0 81 00 64 */ stfs f4, 0x64(r1)
/* 8015E3B4 0015B314 D0 61 00 68 */ stfs f3, 0x68(r1)
/* 8015E3B8 0015B318 D0 01 00 6C */ stfs f0, 0x6c(r1)
/* 8015E3BC 0015B31C D0 41 00 70 */ stfs f2, 0x70(r1)
/* 8015E3C0 0015B320 D0 21 00 74 */ stfs f1, 0x74(r1)
/* 8015E3C4 0015B324 4B EF 4A C9 */ bl SetTranslation__6CActorFRC9CVector3f
/* 8015E3C8 0015B328 48 00 00 50 */ b lbl_8015E418
lbl_8015E3CC:
/* 8015E3CC 0015B32C 28 1A 00 00 */ cmplwi r26, 0
/* 8015E3D0 0015B330 41 82 00 48 */ beq lbl_8015E418
/* 8015E3D4 0015B334 28 19 00 00 */ cmplwi r25, 0
/* 8015E3D8 0015B338 41 82 00 40 */ beq lbl_8015E418
/* 8015E3DC 0015B33C C0 39 00 50 */ lfs f1, 0x50(r25)
/* 8015E3E0 0015B340 7F 43 D3 78 */ mr r3, r26
/* 8015E3E4 0015B344 C0 1E 00 38 */ lfs f0, 0x38(r30)
/* 8015E3E8 0015B348 38 81 00 54 */ addi r4, r1, 0x54
/* 8015E3EC 0015B34C C0 79 00 60 */ lfs f3, 0x60(r25)
/* 8015E3F0 0015B350 C0 5E 00 3C */ lfs f2, 0x3c(r30)
/* 8015E3F4 0015B354 EC 81 00 2A */ fadds f4, f1, f0
/* 8015E3F8 0015B358 C0 39 00 40 */ lfs f1, 0x40(r25)
/* 8015E3FC 0015B35C C0 1E 00 34 */ lfs f0, 0x34(r30)
/* 8015E400 0015B360 EC 43 10 2A */ fadds f2, f3, f2
/* 8015E404 0015B364 D0 81 00 58 */ stfs f4, 0x58(r1)
/* 8015E408 0015B368 EC 01 00 2A */ fadds f0, f1, f0
/* 8015E40C 0015B36C D0 41 00 5C */ stfs f2, 0x5c(r1)
/* 8015E410 0015B370 D0 01 00 54 */ stfs f0, 0x54(r1)
/* 8015E414 0015B374 4B EF 4A 79 */ bl SetTranslation__6CActorFRC9CVector3f
lbl_8015E418:
/* 8015E418 0015B378 28 1D 00 00 */ cmplwi r29, 0
/* 8015E41C 0015B37C 41 82 00 0C */ beq lbl_8015E428
/* 8015E420 0015B380 7F A3 EB 78 */ mr r3, r29
/* 8015E424 0015B384 4B F6 41 CD */ bl SetSpawned__13CScriptPickupFv
lbl_8015E428:
/* 8015E428 0015B388 A0 1E 00 08 */ lhz r0, 8(r30)
/* 8015E42C 0015B38C 7F E3 FB 78 */ mr r3, r31
/* 8015E430 0015B390 7F 64 DB 78 */ mr r4, r27
/* 8015E434 0015B394 38 A1 00 0C */ addi r5, r1, 0xc
/* 8015E438 0015B398 B0 01 00 08 */ sth r0, 8(r1)
/* 8015E43C 0015B39C 38 C0 00 01 */ li r6, 1
/* 8015E440 0015B3A0 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8015E444 0015B3A4 4B EE 5A 8D */ bl SendScriptMsg__13CStateManagerFP7CEntity9TUniqueId20EScriptObjectMessage
lbl_8015E448:
/* 8015E448 0015B3A8 BB 21 00 84 */ lmw r25, 0x84(r1)
/* 8015E44C 0015B3AC 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 8015E450 0015B3B0 7C 08 03 A6 */ mtlr r0
/* 8015E454 0015B3B4 38 21 00 A0 */ addi r1, r1, 0xa0
/* 8015E458 0015B3B8 4E 80 00 20 */ blr
.global "GetPickupTemplates__22CScriptPickupGeneratorFR13CStateManagerRQ24rstl35vector<Q24rstl18pair<f,9TEditorId>>"
"GetPickupTemplates__22CScriptPickupGeneratorFR13CStateManagerRQ24rstl35vector<Q24rstl18pair<f,9TEditorId>>":
/* 8015E45C 0015B3BC 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8015E460 0015B3C0 7C 08 02 A6 */ mflr r0
/* 8015E464 0015B3C4 90 01 00 84 */ stw r0, 0x84(r1)
/* 8015E468 0015B3C8 DB E1 00 70 */ stfd f31, 0x70(r1)
/* 8015E46C 0015B3CC F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0
/* 8015E470 0015B3D0 DB C1 00 60 */ stfd f30, 0x60(r1)
/* 8015E474 0015B3D4 F3 C1 00 68 */ psq_st f30, 104(r1), 0, qr0
/* 8015E478 0015B3D8 DB A1 00 50 */ stfd f29, 0x50(r1)
/* 8015E47C 0015B3DC F3 A1 00 58 */ psq_st f29, 88(r1), 0, qr0
/* 8015E480 0015B3E0 DB 81 00 40 */ stfd f28, 0x40(r1)
/* 8015E484 0015B3E4 F3 81 00 48 */ psq_st f28, 72(r1), 0, qr0
/* 8015E488 0015B3E8 BF 01 00 20 */ stmw r24, 0x20(r1)
/* 8015E48C 0015B3EC 7C 9C 23 78 */ mr r28, r4
/* 8015E490 0015B3F0 7C 7B 1B 78 */ mr r27, r3
/* 8015E494 0015B3F4 80 84 08 B8 */ lwz r4, 0x8b8(r4)
/* 8015E498 0015B3F8 7C BD 2B 78 */ mr r29, r5
/* 8015E49C 0015B3FC C3 A2 9F 34 */ lfs f29, lbl_805ABC54@sda21(r2)
/* 8015E4A0 0015B400 7F A3 EB 78 */ mr r3, r29
/* 8015E4A4 0015B404 83 E4 00 00 */ lwz r31, 0(r4)
/* 8015E4A8 0015B408 80 9B 00 24 */ lwz r4, 0x24(r27)
/* 8015E4AC 0015B40C 48 00 05 31 */ bl sub_8015e9dc
/* 8015E4B0 0015B410 83 DB 00 2C */ lwz r30, 0x2c(r27)
/* 8015E4B4 0015B414 48 00 02 44 */ b lbl_8015E6F8
lbl_8015E4B8:
/* 8015E4B8 0015B418 80 1E 00 00 */ lwz r0, 0(r30)
/* 8015E4BC 0015B41C 2C 00 00 09 */ cmpwi r0, 9
/* 8015E4C0 0015B420 40 82 02 34 */ bne lbl_8015E6F4
/* 8015E4C4 0015B424 80 1E 00 04 */ lwz r0, 4(r30)
/* 8015E4C8 0015B428 2C 00 00 01 */ cmpwi r0, 1
/* 8015E4CC 0015B42C 40 82 02 28 */ bne lbl_8015E6F4
/* 8015E4D0 0015B430 80 1E 00 08 */ lwz r0, 8(r30)
/* 8015E4D4 0015B434 7F 84 E3 78 */ mr r4, r28
/* 8015E4D8 0015B438 38 61 00 0C */ addi r3, r1, 0xc
/* 8015E4DC 0015B43C 38 A1 00 14 */ addi r5, r1, 0x14
/* 8015E4E0 0015B440 90 01 00 14 */ stw r0, 0x14(r1)
/* 8015E4E4 0015B444 4B EE 9A 39 */ bl GetIdForScript__13CStateManagerCF9TEditorId
/* 8015E4E8 0015B448 A0 61 00 0C */ lhz r3, 0xc(r1)
/* 8015E4EC 0015B44C A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8015E4F0 0015B450 B0 61 00 10 */ sth r3, 0x10(r1)
/* 8015E4F4 0015B454 7C 03 00 40 */ cmplw r3, r0
/* 8015E4F8 0015B458 41 82 01 FC */ beq lbl_8015E6F4
/* 8015E4FC 0015B45C B0 61 00 08 */ sth r3, 8(r1)
/* 8015E500 0015B460 7F 83 E3 78 */ mr r3, r28
/* 8015E504 0015B464 38 81 00 08 */ addi r4, r1, 8
/* 8015E508 0015B468 4B EE E0 9D */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8015E50C 0015B46C 7C 64 1B 78 */ mr r4, r3
/* 8015E510 0015B470 38 61 00 18 */ addi r3, r1, 0x18
/* 8015E514 0015B474 4B F4 AC 79 */ bl "__ct__27TCastToPtr<13CScriptPickup>FP7CEntity"
/* 8015E518 0015B478 83 23 00 04 */ lwz r25, 4(r3)
/* 8015E51C 0015B47C 28 19 00 00 */ cmplwi r25, 0
/* 8015E520 0015B480 41 82 01 D4 */ beq lbl_8015E6F4
/* 8015E524 0015B484 7F 23 CB 78 */ mr r3, r25
/* 8015E528 0015B488 4B F6 40 E5 */ bl GetItem__13CScriptPickupCFv
/* 8015E52C 0015B48C 7C 7A 1B 78 */ mr r26, r3
/* 8015E530 0015B490 7F 23 CB 78 */ mr r3, r25
/* 8015E534 0015B494 4B F6 40 D1 */ bl GetPossibility__13CScriptPickupCFv
/* 8015E538 0015B498 FF E0 08 90 */ fmr f31, f1
/* 8015E53C 0015B49C 2C 1A 00 07 */ cmpwi r26, 7
/* 8015E540 0015B4A0 C3 82 9F 2C */ lfs f28, lbl_805ABC4C@sda21(r2)
/* 8015E544 0015B4A4 3B 20 00 00 */ li r25, 0
/* 8015E548 0015B4A8 3B 00 00 00 */ li r24, 0
/* 8015E54C 0015B4AC 41 82 00 68 */ beq lbl_8015E5B4
/* 8015E550 0015B4B0 40 80 00 10 */ bge lbl_8015E560
/* 8015E554 0015B4B4 2C 1A 00 04 */ cmpwi r26, 4
/* 8015E558 0015B4B8 41 82 00 14 */ beq lbl_8015E56C
/* 8015E55C 0015B4BC 48 00 01 00 */ b lbl_8015E65C
lbl_8015E560:
/* 8015E560 0015B4C0 2C 1A 00 1A */ cmpwi r26, 0x1a
/* 8015E564 0015B4C4 41 82 00 CC */ beq lbl_8015E630
/* 8015E568 0015B4C8 48 00 00 F4 */ b lbl_8015E65C
lbl_8015E56C:
/* 8015E56C 0015B4CC 7F E3 FB 78 */ mr r3, r31
/* 8015E570 0015B4D0 38 80 00 04 */ li r4, 4
/* 8015E574 0015B4D4 4B F3 35 4D */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8015E578 0015B4D8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8015E57C 0015B4DC 41 82 00 E4 */ beq lbl_8015E660
/* 8015E580 0015B4E0 7F E3 FB 78 */ mr r3, r31
/* 8015E584 0015B4E4 38 80 00 04 */ li r4, 4
/* 8015E588 0015B4E8 4B F3 35 6D */ bl GetItemCapacity__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8015E58C 0015B4EC 7C 7A 1B 78 */ mr r26, r3
/* 8015E590 0015B4F0 7F E3 FB 78 */ mr r3, r31
/* 8015E594 0015B4F4 38 80 00 04 */ li r4, 4
/* 8015E598 0015B4F8 4B F3 35 85 */ bl GetItemAmount__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8015E59C 0015B4FC 7C 03 D0 00 */ cmpw r3, r26
/* 8015E5A0 0015B500 40 80 00 0C */ bge lbl_8015E5AC
/* 8015E5A4 0015B504 3B 20 00 01 */ li r25, 1
/* 8015E5A8 0015B508 48 00 00 B8 */ b lbl_8015E660
lbl_8015E5AC:
/* 8015E5AC 0015B50C 3B 00 00 01 */ li r24, 1
/* 8015E5B0 0015B510 48 00 00 B0 */ b lbl_8015E660
lbl_8015E5B4:
/* 8015E5B4 0015B514 7F E3 FB 78 */ mr r3, r31
/* 8015E5B8 0015B518 38 80 00 07 */ li r4, 7
/* 8015E5BC 0015B51C 4B F3 35 05 */ bl HasPowerUp__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8015E5C0 0015B520 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8015E5C4 0015B524 41 82 00 9C */ beq lbl_8015E660
/* 8015E5C8 0015B528 7F E3 FB 78 */ mr r3, r31
/* 8015E5CC 0015B52C 38 80 00 07 */ li r4, 7
/* 8015E5D0 0015B530 4B F3 35 25 */ bl GetItemCapacity__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8015E5D4 0015B534 7C 7A 1B 78 */ mr r26, r3
/* 8015E5D8 0015B538 7F E3 FB 78 */ mr r3, r31
/* 8015E5DC 0015B53C 38 80 00 07 */ li r4, 7
/* 8015E5E0 0015B540 4B F3 35 3D */ bl GetItemAmount__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8015E5E4 0015B544 7C 03 D0 00 */ cmpw r3, r26
/* 8015E5E8 0015B548 40 80 00 40 */ bge lbl_8015E628
/* 8015E5EC 0015B54C 7F E3 FB 78 */ mr r3, r31
/* 8015E5F0 0015B550 3B 20 00 01 */ li r25, 1
/* 8015E5F4 0015B554 38 80 00 07 */ li r4, 7
/* 8015E5F8 0015B558 4B F3 35 25 */ bl GetItemAmount__12CPlayerStateCFQ212CPlayerState9EItemType
/* 8015E5FC 0015B55C 2C 03 00 02 */ cmpwi r3, 2
/* 8015E600 0015B560 40 80 00 60 */ bge lbl_8015E660
/* 8015E604 0015B564 C0 02 9F 4C */ lfs f0, lbl_805ABC6C@sda21(r2)
/* 8015E608 0015B568 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8015E60C 0015B56C 4C 41 13 82 */ cror 2, 1, 2
/* 8015E610 0015B570 40 82 00 50 */ bne lbl_8015E660
/* 8015E614 0015B574 C0 02 9F 50 */ lfs f0, lbl_805ABC70@sda21(r2)
/* 8015E618 0015B578 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8015E61C 0015B57C 40 80 00 44 */ bge lbl_8015E660
/* 8015E620 0015B580 C3 82 9F 54 */ lfs f28, lbl_805ABC74@sda21(r2)
/* 8015E624 0015B584 48 00 00 3C */ b lbl_8015E660
lbl_8015E628:
/* 8015E628 0015B588 3B 00 00 01 */ li r24, 1
/* 8015E62C 0015B58C 48 00 00 34 */ b lbl_8015E660
lbl_8015E630:
/* 8015E630 0015B590 34 7F 00 0C */ addic. r3, r31, 0xc
/* 8015E634 0015B594 41 82 00 20 */ beq lbl_8015E654
/* 8015E638 0015B598 C3 C3 00 00 */ lfs f30, 0(r3)
/* 8015E63C 0015B59C 7F E3 FB 78 */ mr r3, r31
/* 8015E640 0015B5A0 4B F3 36 F1 */ bl CalculateHealth__12CPlayerStateFUi
/* 8015E644 0015B5A4 FC 1E 08 40 */ fcmpo cr0, f30, f1
/* 8015E648 0015B5A8 40 80 00 0C */ bge lbl_8015E654
/* 8015E64C 0015B5AC 3B 20 00 01 */ li r25, 1
/* 8015E650 0015B5B0 48 00 00 10 */ b lbl_8015E660
lbl_8015E654:
/* 8015E654 0015B5B4 3B 00 00 01 */ li r24, 1
/* 8015E658 0015B5B8 48 00 00 08 */ b lbl_8015E660
lbl_8015E65C:
/* 8015E65C 0015B5BC 3B 20 00 01 */ li r25, 1
lbl_8015E660:
/* 8015E660 0015B5C0 80 7C 09 00 */ lwz r3, 0x900(r28)
/* 8015E664 0015B5C4 48 1B 3E 79 */ bl Float__9CRandom16Fv
/* 8015E668 0015B5C8 C0 02 9F 58 */ lfs f0, lbl_805ABC78@sda21(r2)
/* 8015E66C 0015B5CC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8015E670 0015B5D0 7C 60 00 26 */ mfcr r3
/* 8015E674 0015B5D4 57 20 06 3F */ clrlwi. r0, r25, 0x18
/* 8015E678 0015B5D8 54 63 0F FE */ srwi r3, r3, 0x1f
/* 8015E67C 0015B5DC 40 82 00 14 */ bne lbl_8015E690
/* 8015E680 0015B5E0 57 00 06 3F */ clrlwi. r0, r24, 0x18
/* 8015E684 0015B5E4 41 82 00 70 */ beq lbl_8015E6F4
/* 8015E688 0015B5E8 28 03 00 00 */ cmplwi r3, 0
/* 8015E68C 0015B5EC 41 82 00 68 */ beq lbl_8015E6F4
lbl_8015E690:
/* 8015E690 0015B5F0 C0 02 9F 34 */ lfs f0, lbl_805ABC54@sda21(r2)
/* 8015E694 0015B5F4 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8015E698 0015B5F8 40 81 00 5C */ ble lbl_8015E6F4
/* 8015E69C 0015B5FC 80 1D 00 04 */ lwz r0, 4(r29)
/* 8015E6A0 0015B600 EF BF EF 3A */ fmadds f29, f31, f28, f29
/* 8015E6A4 0015B604 80 BD 00 08 */ lwz r5, 8(r29)
/* 8015E6A8 0015B608 83 5E 00 08 */ lwz r26, 8(r30)
/* 8015E6AC 0015B60C 7C 00 28 00 */ cmpw r0, r5
/* 8015E6B0 0015B610 41 80 00 1C */ blt lbl_8015E6CC
/* 8015E6B4 0015B614 2C 05 00 00 */ cmpwi r5, 0
/* 8015E6B8 0015B618 7F A3 EB 78 */ mr r3, r29
/* 8015E6BC 0015B61C 38 80 00 04 */ li r4, 4
/* 8015E6C0 0015B620 41 82 00 08 */ beq lbl_8015E6C8
/* 8015E6C4 0015B624 54 A4 08 3C */ slwi r4, r5, 1
lbl_8015E6C8:
/* 8015E6C8 0015B628 48 00 03 15 */ bl sub_8015e9dc
lbl_8015E6CC:
/* 8015E6CC 0015B62C 80 1D 00 04 */ lwz r0, 4(r29)
/* 8015E6D0 0015B630 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 8015E6D4 0015B634 54 00 18 38 */ slwi r0, r0, 3
/* 8015E6D8 0015B638 7C 63 02 15 */ add. r3, r3, r0
/* 8015E6DC 0015B63C 41 82 00 0C */ beq lbl_8015E6E8
/* 8015E6E0 0015B640 D3 E3 00 00 */ stfs f31, 0(r3)
/* 8015E6E4 0015B644 93 43 00 04 */ stw r26, 4(r3)
lbl_8015E6E8:
/* 8015E6E8 0015B648 80 7D 00 04 */ lwz r3, 4(r29)
/* 8015E6EC 0015B64C 38 03 00 01 */ addi r0, r3, 1
/* 8015E6F0 0015B650 90 1D 00 04 */ stw r0, 4(r29)
lbl_8015E6F4:
/* 8015E6F4 0015B654 3B DE 00 0C */ addi r30, r30, 0xc
lbl_8015E6F8:
/* 8015E6F8 0015B658 80 1B 00 24 */ lwz r0, 0x24(r27)
/* 8015E6FC 0015B65C 80 7B 00 2C */ lwz r3, 0x2c(r27)
/* 8015E700 0015B660 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8015E704 0015B664 7C 03 02 14 */ add r0, r3, r0
/* 8015E708 0015B668 7C 1E 00 40 */ cmplw r30, r0
/* 8015E70C 0015B66C 40 82 FD AC */ bne lbl_8015E4B8
/* 8015E710 0015B670 FC 20 E8 90 */ fmr f1, f29
/* 8015E714 0015B674 E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0
/* 8015E718 0015B678 CB E1 00 70 */ lfd f31, 0x70(r1)
/* 8015E71C 0015B67C E3 C1 00 68 */ psq_l f30, 104(r1), 0, qr0
/* 8015E720 0015B680 CB C1 00 60 */ lfd f30, 0x60(r1)
/* 8015E724 0015B684 E3 A1 00 58 */ psq_l f29, 88(r1), 0, qr0
/* 8015E728 0015B688 CB A1 00 50 */ lfd f29, 0x50(r1)
/* 8015E72C 0015B68C E3 81 00 48 */ psq_l f28, 72(r1), 0, qr0
/* 8015E730 0015B690 CB 81 00 40 */ lfd f28, 0x40(r1)
/* 8015E734 0015B694 BB 01 00 20 */ lmw r24, 0x20(r1)
/* 8015E738 0015B698 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8015E73C 0015B69C 7C 08 03 A6 */ mtlr r0
/* 8015E740 0015B6A0 38 21 00 80 */ addi r1, r1, 0x80
/* 8015E744 0015B6A4 4E 80 00 20 */ blr
.global "GetGeneratorIds__22CScriptPickupGeneratorFR13CStateManager9TUniqueIdRQ24rstl18vector<9TUniqueId>"
"GetGeneratorIds__22CScriptPickupGeneratorFR13CStateManager9TUniqueIdRQ24rstl18vector<9TUniqueId>":
/* 8015E748 0015B6A8 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8015E74C 0015B6AC 7C 08 02 A6 */ mflr r0
/* 8015E750 0015B6B0 90 01 00 44 */ stw r0, 0x44(r1)
/* 8015E754 0015B6B4 BF 61 00 2C */ stmw r27, 0x2c(r1)
/* 8015E758 0015B6B8 7C 7B 1B 78 */ mr r27, r3
/* 8015E75C 0015B6BC 7C 9C 23 78 */ mr r28, r4
/* 8015E760 0015B6C0 7C BD 2B 78 */ mr r29, r5
/* 8015E764 0015B6C4 7C DE 33 78 */ mr r30, r6
/* 8015E768 0015B6C8 80 63 00 24 */ lwz r3, 0x24(r3)
/* 8015E76C 0015B6CC 80 0D 8C E0 */ lwz r0, lbl_805A78A0@sda21(r13)
/* 8015E770 0015B6D0 90 61 00 18 */ stw r3, 0x18(r1)
/* 8015E774 0015B6D4 7C 00 18 00 */ cmpw r0, r3
/* 8015E778 0015B6D8 38 6D 8C E0 */ addi r3, r13, lbl_805A78A0@sda21
/* 8015E77C 0015B6DC 40 80 00 08 */ bge lbl_8015E784
/* 8015E780 0015B6E0 38 61 00 18 */ addi r3, r1, 0x18
lbl_8015E784:
/* 8015E784 0015B6E4 80 83 00 00 */ lwz r4, 0(r3)
/* 8015E788 0015B6E8 7F C3 F3 78 */ mr r3, r30
/* 8015E78C 0015B6EC 4B EA DC 7D */ bl "reserve__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>Fi"
/* 8015E790 0015B6F0 83 FB 00 2C */ lwz r31, 0x2c(r27)
/* 8015E794 0015B6F4 48 00 00 C0 */ b lbl_8015E854
lbl_8015E798:
/* 8015E798 0015B6F8 80 1F 00 00 */ lwz r0, 0(r31)
/* 8015E79C 0015B6FC 2C 00 00 09 */ cmpwi r0, 9
/* 8015E7A0 0015B700 40 82 00 B0 */ bne lbl_8015E850
/* 8015E7A4 0015B704 80 1F 00 04 */ lwz r0, 4(r31)
/* 8015E7A8 0015B708 2C 00 00 06 */ cmpwi r0, 6
/* 8015E7AC 0015B70C 40 82 00 A4 */ bne lbl_8015E850
/* 8015E7B0 0015B710 80 1F 00 08 */ lwz r0, 8(r31)
/* 8015E7B4 0015B714 7F 84 E3 78 */ mr r4, r28
/* 8015E7B8 0015B718 38 61 00 0C */ addi r3, r1, 0xc
/* 8015E7BC 0015B71C 38 A1 00 14 */ addi r5, r1, 0x14
/* 8015E7C0 0015B720 90 01 00 14 */ stw r0, 0x14(r1)
/* 8015E7C4 0015B724 4B EE 97 59 */ bl GetIdForScript__13CStateManagerCF9TEditorId
/* 8015E7C8 0015B728 A0 61 00 0C */ lhz r3, 0xc(r1)
/* 8015E7CC 0015B72C A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8015E7D0 0015B730 B0 61 00 10 */ sth r3, 0x10(r1)
/* 8015E7D4 0015B734 7C 03 00 40 */ cmplw r3, r0
/* 8015E7D8 0015B738 41 82 00 78 */ beq lbl_8015E850
/* 8015E7DC 0015B73C B0 61 00 08 */ sth r3, 8(r1)
/* 8015E7E0 0015B740 7F 83 E3 78 */ mr r3, r28
/* 8015E7E4 0015B744 38 81 00 08 */ addi r4, r1, 8
/* 8015E7E8 0015B748 4B EE DD BD */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8015E7EC 0015B74C 28 03 00 00 */ cmplwi r3, 0
/* 8015E7F0 0015B750 41 82 00 60 */ beq lbl_8015E850
/* 8015E7F4 0015B754 88 03 00 30 */ lbz r0, 0x30(r3)
/* 8015E7F8 0015B758 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8015E7FC 0015B75C 41 82 00 54 */ beq lbl_8015E850
/* 8015E800 0015B760 80 1E 00 04 */ lwz r0, 4(r30)
/* 8015E804 0015B764 80 BE 00 08 */ lwz r5, 8(r30)
/* 8015E808 0015B768 7C 00 28 00 */ cmpw r0, r5
/* 8015E80C 0015B76C 41 80 00 1C */ blt lbl_8015E828
/* 8015E810 0015B770 2C 05 00 00 */ cmpwi r5, 0
/* 8015E814 0015B774 7F C3 F3 78 */ mr r3, r30
/* 8015E818 0015B778 38 80 00 04 */ li r4, 4
/* 8015E81C 0015B77C 41 82 00 08 */ beq lbl_8015E824
/* 8015E820 0015B780 54 A4 08 3C */ slwi r4, r5, 1
lbl_8015E824:
/* 8015E824 0015B784 4B EA DB E5 */ bl "reserve__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>Fi"
lbl_8015E828:
/* 8015E828 0015B788 80 1E 00 04 */ lwz r0, 4(r30)
/* 8015E82C 0015B78C 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 8015E830 0015B790 54 00 08 3C */ slwi r0, r0, 1
/* 8015E834 0015B794 7C 63 02 15 */ add. r3, r3, r0
/* 8015E838 0015B798 41 82 00 0C */ beq lbl_8015E844
/* 8015E83C 0015B79C A0 01 00 10 */ lhz r0, 0x10(r1)
/* 8015E840 0015B7A0 B0 03 00 00 */ sth r0, 0(r3)
lbl_8015E844:
/* 8015E844 0015B7A4 80 7E 00 04 */ lwz r3, 4(r30)
/* 8015E848 0015B7A8 38 03 00 01 */ addi r0, r3, 1
/* 8015E84C 0015B7AC 90 1E 00 04 */ stw r0, 4(r30)
lbl_8015E850:
/* 8015E850 0015B7B0 3B FF 00 0C */ addi r31, r31, 0xc
lbl_8015E854:
/* 8015E854 0015B7B4 80 1B 00 24 */ lwz r0, 0x24(r27)
/* 8015E858 0015B7B8 80 7B 00 2C */ lwz r3, 0x2c(r27)
/* 8015E85C 0015B7BC 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8015E860 0015B7C0 7C 03 02 14 */ add r0, r3, r0
/* 8015E864 0015B7C4 7C 1F 00 40 */ cmplw r31, r0
/* 8015E868 0015B7C8 40 82 FF 30 */ bne lbl_8015E798
/* 8015E86C 0015B7CC 80 1E 00 04 */ lwz r0, 4(r30)
/* 8015E870 0015B7D0 2C 00 00 00 */ cmpwi r0, 0
/* 8015E874 0015B7D4 40 82 00 50 */ bne lbl_8015E8C4
/* 8015E878 0015B7D8 80 BE 00 08 */ lwz r5, 8(r30)
/* 8015E87C 0015B7DC 7C 00 28 00 */ cmpw r0, r5
/* 8015E880 0015B7E0 41 80 00 1C */ blt lbl_8015E89C
/* 8015E884 0015B7E4 2C 05 00 00 */ cmpwi r5, 0
/* 8015E888 0015B7E8 7F C3 F3 78 */ mr r3, r30
/* 8015E88C 0015B7EC 38 80 00 04 */ li r4, 4
/* 8015E890 0015B7F0 41 82 00 08 */ beq lbl_8015E898
/* 8015E894 0015B7F4 54 A4 08 3C */ slwi r4, r5, 1
lbl_8015E898:
/* 8015E898 0015B7F8 4B EA DB 71 */ bl "reserve__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>Fi"
lbl_8015E89C:
/* 8015E89C 0015B7FC 80 1E 00 04 */ lwz r0, 4(r30)
/* 8015E8A0 0015B800 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 8015E8A4 0015B804 54 00 08 3C */ slwi r0, r0, 1
/* 8015E8A8 0015B808 7C 63 02 15 */ add. r3, r3, r0
/* 8015E8AC 0015B80C 41 82 00 0C */ beq lbl_8015E8B8
/* 8015E8B0 0015B810 A0 1D 00 00 */ lhz r0, 0(r29)
/* 8015E8B4 0015B814 B0 03 00 00 */ sth r0, 0(r3)
lbl_8015E8B8:
/* 8015E8B8 0015B818 80 7E 00 04 */ lwz r3, 4(r30)
/* 8015E8BC 0015B81C 38 03 00 01 */ addi r0, r3, 1
/* 8015E8C0 0015B820 90 1E 00 04 */ stw r0, 4(r30)
lbl_8015E8C4:
/* 8015E8C4 0015B824 BB 61 00 2C */ lmw r27, 0x2c(r1)
/* 8015E8C8 0015B828 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8015E8CC 0015B82C 7C 08 03 A6 */ mtlr r0
/* 8015E8D0 0015B830 38 21 00 40 */ addi r1, r1, 0x40
/* 8015E8D4 0015B834 4E 80 00 20 */ blr
.global __dt__22CScriptPickupGeneratorFv
__dt__22CScriptPickupGeneratorFv:
/* 8015E8D8 0015B838 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8015E8DC 0015B83C 7C 08 02 A6 */ mflr r0
/* 8015E8E0 0015B840 90 01 00 14 */ stw r0, 0x14(r1)
/* 8015E8E4 0015B844 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8015E8E8 0015B848 7C 9F 23 78 */ mr r31, r4
/* 8015E8EC 0015B84C 93 C1 00 08 */ stw r30, 8(r1)
/* 8015E8F0 0015B850 7C 7E 1B 79 */ or. r30, r3, r3
/* 8015E8F4 0015B854 41 82 00 28 */ beq lbl_8015E91C
/* 8015E8F8 0015B858 3C A0 80 3E */ lis r5, lbl_803E3618@ha
/* 8015E8FC 0015B85C 38 80 00 00 */ li r4, 0
/* 8015E900 0015B860 38 05 36 18 */ addi r0, r5, lbl_803E3618@l
/* 8015E904 0015B864 90 1E 00 00 */ stw r0, 0(r30)
/* 8015E908 0015B868 4B EF 29 6D */ bl __dt__7CEntityFv
/* 8015E90C 0015B86C 7F E0 07 35 */ extsh. r0, r31
/* 8015E910 0015B870 40 81 00 0C */ ble lbl_8015E91C
/* 8015E914 0015B874 7F C3 F3 78 */ mr r3, r30
/* 8015E918 0015B878 48 1B 70 19 */ bl Free__7CMemoryFPCv
lbl_8015E91C:
/* 8015E91C 0015B87C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8015E920 0015B880 7F C3 F3 78 */ mr r3, r30
/* 8015E924 0015B884 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8015E928 0015B888 83 C1 00 08 */ lwz r30, 8(r1)
/* 8015E92C 0015B88C 7C 08 03 A6 */ mtlr r0
/* 8015E930 0015B890 38 21 00 10 */ addi r1, r1, 0x10
/* 8015E934 0015B894 4E 80 00 20 */ blr
.global "__ct__22CScriptPickupGeneratorF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC9CVector3ffb"
"__ct__22CScriptPickupGeneratorF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC9CVector3ffb":
/* 8015E938 0015B898 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8015E93C 0015B89C 7C 08 02 A6 */ mflr r0
/* 8015E940 0015B8A0 90 01 00 34 */ stw r0, 0x34(r1)
/* 8015E944 0015B8A4 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 8015E948 0015B8A8 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 8015E94C 0015B8AC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8015E950 0015B8B0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8015E954 0015B8B4 A0 04 00 00 */ lhz r0, 0(r4)
/* 8015E958 0015B8B8 7C A4 2B 78 */ mr r4, r5
/* 8015E95C 0015B8BC FF E0 08 90 */ fmr f31, f1
/* 8015E960 0015B8C0 7C FF 3B 78 */ mr r31, r7
/* 8015E964 0015B8C4 B0 01 00 08 */ sth r0, 8(r1)
/* 8015E968 0015B8C8 7C C5 33 78 */ mr r5, r6
/* 8015E96C 0015B8CC 7C 87 23 78 */ mr r7, r4
/* 8015E970 0015B8D0 7C 7E 1B 78 */ mr r30, r3
/* 8015E974 0015B8D4 7D 06 43 78 */ mr r6, r8
/* 8015E978 0015B8D8 38 81 00 08 */ addi r4, r1, 8
/* 8015E97C 0015B8DC 4B EF 29 A9 */ bl "__ct__7CEntityF9TUniqueIdRC11CEntityInfobRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8015E980 0015B8E0 3C 60 80 3E */ lis r3, lbl_803E3618@ha
/* 8015E984 0015B8E4 C0 02 9F 34 */ lfs f0, lbl_805ABC54@sda21(r2)
/* 8015E988 0015B8E8 38 03 36 18 */ addi r0, r3, lbl_803E3618@l
/* 8015E98C 0015B8EC 7F C3 F3 78 */ mr r3, r30
/* 8015E990 0015B8F0 90 1E 00 00 */ stw r0, 0(r30)
/* 8015E994 0015B8F4 C0 3F 00 00 */ lfs f1, 0(r31)
/* 8015E998 0015B8F8 D0 3E 00 34 */ stfs f1, 0x34(r30)
/* 8015E99C 0015B8FC C0 3F 00 04 */ lfs f1, 4(r31)
/* 8015E9A0 0015B900 D0 3E 00 38 */ stfs f1, 0x38(r30)
/* 8015E9A4 0015B904 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8015E9A8 0015B908 D0 3E 00 3C */ stfs f1, 0x3c(r30)
/* 8015E9AC 0015B90C D3 FE 00 40 */ stfs f31, 0x40(r30)
/* 8015E9B0 0015B910 D0 1E 00 44 */ stfs f0, 0x44(r30)
/* 8015E9B4 0015B914 4B FF F8 6D */ bl ResetDelayTimer__22CScriptPickupGeneratorFv
/* 8015E9B8 0015B918 7F C3 F3 78 */ mr r3, r30
/* 8015E9BC 0015B91C E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 8015E9C0 0015B920 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8015E9C4 0015B924 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 8015E9C8 0015B928 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8015E9CC 0015B92C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8015E9D0 0015B930 7C 08 03 A6 */ mtlr r0
/* 8015E9D4 0015B934 38 21 00 30 */ addi r1, r1, 0x30
/* 8015E9D8 0015B938 4E 80 00 20 */ blr
.global sub_8015e9dc
sub_8015e9dc:
/* 8015E9DC 0015B93C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8015E9E0 0015B940 7C 08 02 A6 */ mflr r0
/* 8015E9E4 0015B944 90 01 00 34 */ stw r0, 0x34(r1)
/* 8015E9E8 0015B948 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8015E9EC 0015B94C 7C 9F 23 78 */ mr r31, r4
/* 8015E9F0 0015B950 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8015E9F4 0015B954 7C 7E 1B 78 */ mr r30, r3
/* 8015E9F8 0015B958 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8015E9FC 0015B95C 80 03 00 08 */ lwz r0, 8(r3)
/* 8015EA00 0015B960 7C 1F 00 00 */ cmpw r31, r0
/* 8015EA04 0015B964 40 81 00 B0 */ ble lbl_8015EAB4
/* 8015EA08 0015B968 57 E3 18 39 */ rlwinm. r3, r31, 3, 0, 0x1c
/* 8015EA0C 0015B96C 40 82 00 0C */ bne lbl_8015EA18
/* 8015EA10 0015B970 3B A0 00 00 */ li r29, 0
/* 8015EA14 0015B974 48 00 00 18 */ b lbl_8015EA2C
lbl_8015EA18:
/* 8015EA18 0015B978 3C 80 80 3D */ lis r4, lbl_803D0390@ha
/* 8015EA1C 0015B97C 38 A0 00 00 */ li r5, 0
/* 8015EA20 0015B980 38 84 03 90 */ addi r4, r4, lbl_803D0390@l
/* 8015EA24 0015B984 48 1B 6D F5 */ bl __nwa__FUlPCcPCc
/* 8015EA28 0015B988 7C 7D 1B 78 */ mr r29, r3
lbl_8015EA2C:
/* 8015EA2C 0015B98C 80 1E 00 04 */ lwz r0, 4(r30)
/* 8015EA30 0015B990 7F A4 EB 78 */ mr r4, r29
/* 8015EA34 0015B994 80 BE 00 0C */ lwz r5, 0xc(r30)
/* 8015EA38 0015B998 54 00 18 38 */ slwi r0, r0, 3
/* 8015EA3C 0015B99C 7C 65 02 14 */ add r3, r5, r0
/* 8015EA40 0015B9A0 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8015EA44 0015B9A4 90 61 00 08 */ stw r3, 8(r1)
/* 8015EA48 0015B9A8 90 61 00 0C */ stw r3, 0xc(r1)
/* 8015EA4C 0015B9AC 90 A1 00 14 */ stw r5, 0x14(r1)
/* 8015EA50 0015B9B0 48 00 00 24 */ b lbl_8015EA74
lbl_8015EA54:
/* 8015EA54 0015B9B4 28 04 00 00 */ cmplwi r4, 0
/* 8015EA58 0015B9B8 41 82 00 14 */ beq lbl_8015EA6C
/* 8015EA5C 0015B9BC C0 05 00 00 */ lfs f0, 0(r5)
/* 8015EA60 0015B9C0 D0 04 00 00 */ stfs f0, 0(r4)
/* 8015EA64 0015B9C4 80 05 00 04 */ lwz r0, 4(r5)
/* 8015EA68 0015B9C8 90 04 00 04 */ stw r0, 4(r4)
lbl_8015EA6C:
/* 8015EA6C 0015B9CC 38 84 00 08 */ addi r4, r4, 8
/* 8015EA70 0015B9D0 38 A5 00 08 */ addi r5, r5, 8
lbl_8015EA74:
/* 8015EA74 0015B9D4 7C 05 18 40 */ cmplw r5, r3
/* 8015EA78 0015B9D8 40 82 FF DC */ bne lbl_8015EA54
/* 8015EA7C 0015B9DC 80 1E 00 04 */ lwz r0, 4(r30)
/* 8015EA80 0015B9E0 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 8015EA84 0015B9E4 54 00 18 38 */ slwi r0, r0, 3
/* 8015EA88 0015B9E8 7C 64 1B 78 */ mr r4, r3
/* 8015EA8C 0015B9EC 7C 03 02 14 */ add r0, r3, r0
/* 8015EA90 0015B9F0 48 00 00 08 */ b lbl_8015EA98
lbl_8015EA94:
/* 8015EA94 0015B9F4 38 84 00 08 */ addi r4, r4, 8
lbl_8015EA98:
/* 8015EA98 0015B9F8 7C 04 00 40 */ cmplw r4, r0
/* 8015EA9C 0015B9FC 40 82 FF F8 */ bne lbl_8015EA94
/* 8015EAA0 0015BA00 28 03 00 00 */ cmplwi r3, 0
/* 8015EAA4 0015BA04 41 82 00 08 */ beq lbl_8015EAAC
/* 8015EAA8 0015BA08 48 1B 6E 89 */ bl Free__7CMemoryFPCv
lbl_8015EAAC:
/* 8015EAAC 0015BA0C 93 BE 00 0C */ stw r29, 0xc(r30)
/* 8015EAB0 0015BA10 93 FE 00 08 */ stw r31, 8(r30)
lbl_8015EAB4:
/* 8015EAB4 0015BA14 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8015EAB8 0015BA18 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8015EABC 0015BA1C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8015EAC0 0015BA20 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8015EAC4 0015BA24 7C 08 03 A6 */ mtlr r0
/* 8015EAC8 0015BA28 38 21 00 30 */ addi r1, r1, 0x30
/* 8015EACC 0015BA2C 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805ABC48
lbl_805ABC48:
# ROM: 0x3F84E8
.4byte 0x42C80000
.global lbl_805ABC4C
lbl_805ABC4C:
# ROM: 0x3F84EC
.float 1.0
.global lbl_805ABC50
lbl_805ABC50:
# ROM: 0x3F84F0
.4byte 0x3727C5AC
.global lbl_805ABC54
lbl_805ABC54:
# ROM: 0x3F84F4
.4byte 0
.global lbl_805ABC58
lbl_805ABC58:
# ROM: 0x3F84F8
.4byte 0x3F7D70A4
.4byte 0
.global lbl_805ABC60
lbl_805ABC60:
# ROM: 0x3F8500
.double 4.503601774854144E15
.global lbl_805ABC68
lbl_805ABC68:
# ROM: 0x3F8508
.4byte 0x7F7FFFFF
.global lbl_805ABC6C
lbl_805ABC6C:
# ROM: 0x3F850C
.4byte 0x41200000
.global lbl_805ABC70
lbl_805ABC70:
# ROM: 0x3F8510
.4byte 0x41C80000
.global lbl_805ABC74
lbl_805ABC74:
# ROM: 0x3F8514
.float 2.0
.global lbl_805ABC78
lbl_805ABC78:
# ROM: 0x3F8518
.float 0.3
.4byte 0
.section .rodata
.balign 8
.global lbl_803D0390
lbl_803D0390:
# ROM: 0x3CD390
.asciz "??(??)"
.balign 4