prime/asm/MetroidPrime/CMFGameLoader.s

666 lines
34 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax"
.global Draw__13CMFGameLoaderCFv
Draw__13CMFGameLoaderCFv:
/* 80023A24 00020984 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80023A28 00020988 7C 08 02 A6 */ mflr r0
/* 80023A2C 0002098C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80023A30 00020990 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 80023A34 00020994 48 1A FE E5 */ bl WorldTransitionManager__10CGameStateFv
/* 80023A38 00020998 80 63 00 00 */ lwz r3, 0(r3)
/* 80023A3C 0002099C 80 63 00 00 */ lwz r3, 0(r3)
/* 80023A40 000209A0 48 1E 6D 3D */ bl Draw__18CWorldTransManagerCFv
/* 80023A44 000209A4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80023A48 000209A8 7C 08 03 A6 */ mtlr r0
/* 80023A4C 000209AC 38 21 00 10 */ addi r1, r1, 0x10
/* 80023A50 000209B0 4E 80 00 20 */ blr
.global OnMessage__13CMFGameLoaderFRC20CArchitectureMessageR18CArchitectureQueue
OnMessage__13CMFGameLoaderFRC20CArchitectureMessageR18CArchitectureQueue:
/* 80023A54 000209B4 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 80023A58 000209B8 7C 08 02 A6 */ mflr r0
/* 80023A5C 000209BC 90 01 00 74 */ stw r0, 0x74(r1)
/* 80023A60 000209C0 DB E1 00 60 */ stfd f31, 0x60(r1)
/* 80023A64 000209C4 F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0
/* 80023A68 000209C8 BF 01 00 40 */ stmw r24, 0x40(r1)
/* 80023A6C 000209CC 7C 7D 1B 78 */ mr r29, r3
/* 80023A70 000209D0 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 80023A74 000209D4 7C 98 23 78 */ mr r24, r4
/* 80023A78 000209D8 7C BE 2B 78 */ mr r30, r5
/* 80023A7C 000209DC 48 1A FE 9D */ bl WorldTransitionManager__10CGameStateFv
/* 80023A80 000209E0 80 18 00 04 */ lwz r0, 4(r24)
/* 80023A84 000209E4 7C 7F 1B 78 */ mr r31, r3
/* 80023A88 000209E8 2C 00 00 04 */ cmpwi r0, 4
/* 80023A8C 000209EC 40 82 03 58 */ bne lbl_80023DE4
/* 80023A90 000209F0 7F 03 C3 78 */ mr r3, r24
/* 80023A94 000209F4 48 02 E1 29 */ bl GetParmTimerTick__7MakeMsgFRC20CArchitectureMessage
/* 80023A98 000209F8 88 1D 00 2C */ lbz r0, 0x2c(r29)
/* 80023A9C 000209FC C3 E3 00 04 */ lfs f31, 4(r3)
/* 80023AA0 00020A00 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80023AA4 00020A04 40 82 00 A4 */ bne lbl_80023B48
/* 80023AA8 00020A08 80 1D 00 20 */ lwz r0, 0x20(r29)
/* 80023AAC 00020A0C 2C 00 00 00 */ cmpwi r0, 0
/* 80023AB0 00020A10 40 82 00 20 */ bne lbl_80023AD0
/* 80023AB4 00020A14 7F A3 EB 78 */ mr r3, r29
/* 80023AB8 00020A18 48 00 04 2D */ bl MakeLoadDependancyList__13CMFGameLoaderFv
/* 80023ABC 00020A1C 80 7F 00 00 */ lwz r3, 0(r31)
/* 80023AC0 00020A20 80 63 00 00 */ lwz r3, 0(r3)
/* 80023AC4 00020A24 48 1E 70 B5 */ bl StartTransition__18CWorldTransManagerFv
/* 80023AC8 00020A28 38 60 00 01 */ li r3, 1
/* 80023ACC 00020A2C 48 00 03 FC */ b lbl_80023EC8
lbl_80023AD0:
/* 80023AD0 00020A30 83 3D 00 28 */ lwz r25, 0x28(r29)
/* 80023AD4 00020A34 3B 40 00 00 */ li r26, 0
/* 80023AD8 00020A38 48 00 00 24 */ b lbl_80023AFC
lbl_80023ADC:
/* 80023ADC 00020A3C 7F 23 CB 78 */ mr r3, r25
/* 80023AE0 00020A40 48 31 D2 A5 */ bl Lock__6CTokenFv
/* 80023AE4 00020A44 80 79 00 00 */ lwz r3, 0(r25)
/* 80023AE8 00020A48 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80023AEC 00020A4C 28 00 00 00 */ cmplwi r0, 0
/* 80023AF0 00020A50 40 82 00 08 */ bne lbl_80023AF8
/* 80023AF4 00020A54 3B 5A 00 01 */ addi r26, r26, 1
lbl_80023AF8:
/* 80023AF8 00020A58 3B 39 00 08 */ addi r25, r25, 8
lbl_80023AFC:
/* 80023AFC 00020A5C 80 1D 00 20 */ lwz r0, 0x20(r29)
/* 80023B00 00020A60 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 80023B04 00020A64 54 00 18 38 */ slwi r0, r0, 3
/* 80023B08 00020A68 7C 03 02 14 */ add r0, r3, r0
/* 80023B0C 00020A6C 7C 19 00 40 */ cmplw r25, r0
/* 80023B10 00020A70 40 82 FF CC */ bne lbl_80023ADC
/* 80023B14 00020A74 80 7F 00 00 */ lwz r3, 0(r31)
/* 80023B18 00020A78 FC 20 F8 90 */ fmr f1, f31
/* 80023B1C 00020A7C 80 63 00 00 */ lwz r3, 0(r3)
/* 80023B20 00020A80 48 1E 6F D5 */ bl Update__18CWorldTransManagerFf
/* 80023B24 00020A84 2C 1A 00 00 */ cmpwi r26, 0
/* 80023B28 00020A88 41 82 00 0C */ beq lbl_80023B34
/* 80023B2C 00020A8C 38 60 00 01 */ li r3, 1
/* 80023B30 00020A90 48 00 03 98 */ b lbl_80023EC8
lbl_80023B34:
/* 80023B34 00020A94 88 1D 00 2C */ lbz r0, 0x2c(r29)
/* 80023B38 00020A98 38 60 00 01 */ li r3, 1
/* 80023B3C 00020A9C 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 80023B40 00020AA0 98 1D 00 2C */ stb r0, 0x2c(r29)
/* 80023B44 00020AA4 48 00 00 14 */ b lbl_80023B58
lbl_80023B48:
/* 80023B48 00020AA8 80 7F 00 00 */ lwz r3, 0(r31)
/* 80023B4C 00020AAC FC 20 F8 90 */ fmr f1, f31
/* 80023B50 00020AB0 80 63 00 00 */ lwz r3, 0(r3)
/* 80023B54 00020AB4 48 1E 6F A1 */ bl Update__18CWorldTransManagerFf
lbl_80023B58:
/* 80023B58 00020AB8 80 7D 00 14 */ lwz r3, 0x14(r29)
/* 80023B5C 00020ABC 80 03 00 00 */ lwz r0, 0(r3)
/* 80023B60 00020AC0 28 00 00 00 */ cmplwi r0, 0
/* 80023B64 00020AC4 40 82 00 F0 */ bne lbl_80023C54
/* 80023B68 00020AC8 80 7F 00 00 */ lwz r3, 0(r31)
/* 80023B6C 00020ACC 80 63 00 00 */ lwz r3, 0(r3)
/* 80023B70 00020AD0 48 1E 52 A9 */ bl WaitForModelsAndTextures__18CWorldTransManagerFv
/* 80023B74 00020AD4 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 80023B78 00020AD8 48 1A FE 35 */ bl CurrentWorldState__10CGameStateFv
/* 80023B7C 00020ADC 3C 80 80 3D */ lis r4, lbl_803CCAB8@ha
/* 80023B80 00020AE0 7C 60 1B 78 */ mr r0, r3
/* 80023B84 00020AE4 38 84 CA B8 */ addi r4, r4, lbl_803CCAB8@l
/* 80023B88 00020AE8 38 60 0F 98 */ li r3, 0xf98
/* 80023B8C 00020AEC 7C 18 03 78 */ mr r24, r0
/* 80023B90 00020AF0 38 A0 00 00 */ li r5, 0
/* 80023B94 00020AF4 38 84 00 2A */ addi r4, r4, 0x2a
/* 80023B98 00020AF8 48 00 15 45 */ bl "__nw__27TOneStatic<13CStateManager>FUlPCcPCc"
/* 80023B9C 00020AFC 7C 79 1B 79 */ or. r25, r3, r3
/* 80023BA0 00020B00 41 82 00 50 */ beq lbl_80023BF0
/* 80023BA4 00020B04 7F 03 C3 78 */ mr r3, r24
/* 80023BA8 00020B08 48 1B 11 8D */ bl GetLayerState__11CWorldStateFv
/* 80023BAC 00020B0C 7C 7A 1B 78 */ mr r26, r3
/* 80023BB0 00020B10 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 80023BB4 00020B14 48 1A FD 89 */ bl PlayerState__10CGameStateFv
/* 80023BB8 00020B18 7C 7B 1B 78 */ mr r27, r3
/* 80023BBC 00020B1C 7F 03 C3 78 */ mr r3, r24
/* 80023BC0 00020B20 48 1B 11 C1 */ bl MapWorldInfo__11CWorldStateFv
/* 80023BC4 00020B24 7C 7C 1B 78 */ mr r28, r3
/* 80023BC8 00020B28 7F 03 C3 78 */ mr r3, r24
/* 80023BCC 00020B2C 48 1B 11 BD */ bl Mailbox__11CWorldStateFv
/* 80023BD0 00020B30 7C 64 1B 78 */ mr r4, r3
/* 80023BD4 00020B34 7F 23 CB 78 */ mr r3, r25
/* 80023BD8 00020B38 7F 85 E3 78 */ mr r5, r28
/* 80023BDC 00020B3C 7F 66 DB 78 */ mr r6, r27
/* 80023BE0 00020B40 7F E7 FB 78 */ mr r7, r31
/* 80023BE4 00020B44 7F 48 D3 78 */ mr r8, r26
/* 80023BE8 00020B48 48 02 A5 4D */ bl "__ct__13CStateManagerFRCQ24rstl26ncrc_ptr<14CScriptMailbox>RCQ24rstl25ncrc_ptr<13CMapWorldInfo>RCQ24rstl24ncrc_ptr<12CPlayerState>RCQ24rstl30ncrc_ptr<18CWorldTransManager>"
/* 80023BEC 00020B4C 7C 79 1B 78 */ mr r25, r3
lbl_80023BF0:
/* 80023BF0 00020B50 3C 80 80 3D */ lis r4, lbl_803CCAB8@ha
/* 80023BF4 00020B54 38 60 00 08 */ li r3, 8
/* 80023BF8 00020B58 38 84 CA B8 */ addi r4, r4, lbl_803CCAB8@l
/* 80023BFC 00020B5C 38 A0 00 00 */ li r5, 0
/* 80023C00 00020B60 38 84 00 2A */ addi r4, r4, 0x2a
/* 80023C04 00020B64 48 2F 1C 69 */ bl __nw__FUlPCcPCc
/* 80023C08 00020B68 28 03 00 00 */ cmplwi r3, 0
/* 80023C0C 00020B6C 41 82 00 10 */ beq lbl_80023C1C
/* 80023C10 00020B70 93 23 00 00 */ stw r25, 0(r3)
/* 80023C14 00020B74 38 00 00 01 */ li r0, 1
/* 80023C18 00020B78 90 03 00 04 */ stw r0, 4(r3)
lbl_80023C1C:
/* 80023C1C 00020B7C 90 61 00 2C */ stw r3, 0x2c(r1)
/* 80023C20 00020B80 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 80023C24 00020B84 7C 00 18 40 */ cmplw r0, r3
/* 80023C28 00020B88 41 82 00 24 */ beq lbl_80023C4C
/* 80023C2C 00020B8C 38 7D 00 14 */ addi r3, r29, 0x14
/* 80023C30 00020B90 48 00 14 51 */ bl sub_80025080
/* 80023C34 00020B94 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80023C38 00020B98 90 1D 00 14 */ stw r0, 0x14(r29)
/* 80023C3C 00020B9C 80 9D 00 14 */ lwz r4, 0x14(r29)
/* 80023C40 00020BA0 80 64 00 04 */ lwz r3, 4(r4)
/* 80023C44 00020BA4 38 03 00 01 */ addi r0, r3, 1
/* 80023C48 00020BA8 90 04 00 04 */ stw r0, 4(r4)
lbl_80023C4C:
/* 80023C4C 00020BAC 38 61 00 2C */ addi r3, r1, 0x2c
/* 80023C50 00020BB0 48 00 14 31 */ bl sub_80025080
lbl_80023C54:
/* 80023C54 00020BB4 80 7D 00 14 */ lwz r3, 0x14(r29)
/* 80023C58 00020BB8 80 63 00 00 */ lwz r3, 0(r3)
/* 80023C5C 00020BBC 80 03 0B 3C */ lwz r0, 0xb3c(r3)
/* 80023C60 00020BC0 2C 00 00 02 */ cmpwi r0, 2
/* 80023C64 00020BC4 41 82 00 60 */ beq lbl_80023CC4
/* 80023C68 00020BC8 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 80023C6C 00020BCC 48 1A FD 41 */ bl CurrentWorldState__10CGameStateFv
/* 80023C70 00020BD0 7C 60 1B 78 */ mr r0, r3
/* 80023C74 00020BD4 38 61 00 20 */ addi r3, r1, 0x20
/* 80023C78 00020BD8 7C 18 03 78 */ mr r24, r0
/* 80023C7C 00020BDC 7F 04 C3 78 */ mr r4, r24
/* 80023C80 00020BE0 48 1B 10 D9 */ bl GetCurrentArea__11CWorldStateCFv
/* 80023C84 00020BE4 80 01 00 20 */ lwz r0, 0x20(r1)
/* 80023C88 00020BE8 7F 03 C3 78 */ mr r3, r24
/* 80023C8C 00020BEC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80023C90 00020BF0 80 9D 00 14 */ lwz r4, 0x14(r29)
/* 80023C94 00020BF4 83 24 00 00 */ lwz r25, 0(r4)
/* 80023C98 00020BF8 48 1B 10 AD */ bl GetDesiredAreaAssetId__11CWorldStateCFv
/* 80023C9C 00020BFC 7C 7D 1B 78 */ mr r29, r3
/* 80023CA0 00020C00 7F 03 C3 78 */ mr r3, r24
/* 80023CA4 00020C04 48 1B 10 ED */ bl GetWorldAssetId__11CWorldStateCFv
/* 80023CA8 00020C08 7C 64 1B 78 */ mr r4, r3
/* 80023CAC 00020C0C 7F 23 CB 78 */ mr r3, r25
/* 80023CB0 00020C10 7F A6 EB 78 */ mr r6, r29
/* 80023CB4 00020C14 38 A1 00 24 */ addi r5, r1, 0x24
/* 80023CB8 00020C18 48 02 78 E1 */ bl InitializeState__13CStateManagerFUi7TAreaIdUi
/* 80023CBC 00020C1C 38 60 00 01 */ li r3, 1
/* 80023CC0 00020C20 48 00 02 08 */ b lbl_80023EC8
lbl_80023CC4:
/* 80023CC4 00020C24 80 7D 00 18 */ lwz r3, 0x18(r29)
/* 80023CC8 00020C28 80 03 00 00 */ lwz r0, 0(r3)
/* 80023CCC 00020C2C 28 00 00 00 */ cmplwi r0, 0
/* 80023CD0 00020C30 40 82 00 80 */ bne lbl_80023D50
/* 80023CD4 00020C34 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 80023CD8 00020C38 48 1A FC D5 */ bl CurrentWorldState__10CGameStateFv
/* 80023CDC 00020C3C 38 80 FF FF */ li r4, -1
/* 80023CE0 00020C40 48 1B 10 5D */ bl SetDesiredAreaAssetId__11CWorldStateFUi
/* 80023CE4 00020C44 3C 80 80 3D */ lis r4, lbl_803CCAB8@ha
/* 80023CE8 00020C48 38 60 01 FC */ li r3, 0x1fc
/* 80023CEC 00020C4C 38 84 CA B8 */ addi r4, r4, lbl_803CCAB8@l
/* 80023CF0 00020C50 38 A0 00 00 */ li r5, 0
/* 80023CF4 00020C54 38 84 00 2A */ addi r4, r4, 0x2a
/* 80023CF8 00020C58 48 2F 1B 75 */ bl __nw__FUlPCcPCc
/* 80023CFC 00020C5C 7C 79 1B 79 */ or. r25, r3, r3
/* 80023D00 00020C60 41 82 00 18 */ beq lbl_80023D18
/* 80023D04 00020C64 80 9D 00 14 */ lwz r4, 0x14(r29)
/* 80023D08 00020C68 7F C5 F3 78 */ mr r5, r30
/* 80023D0C 00020C6C 80 84 00 00 */ lwz r4, 0(r4)
/* 80023D10 00020C70 48 0E 63 79 */ bl __ct__17CInGameGuiManagerFRC13CStateManagerR18CArchitectureQueue
/* 80023D14 00020C74 7C 79 1B 78 */ mr r25, r3
lbl_80023D18:
/* 80023D18 00020C78 38 7D 00 18 */ addi r3, r29, 0x18
/* 80023D1C 00020C7C 48 00 13 09 */ bl sub_80025024
/* 80023D20 00020C80 3C 80 80 3D */ lis r4, lbl_803CCAB8@ha
/* 80023D24 00020C84 38 60 00 08 */ li r3, 8
/* 80023D28 00020C88 38 84 CA B8 */ addi r4, r4, lbl_803CCAB8@l
/* 80023D2C 00020C8C 38 A0 00 00 */ li r5, 0
/* 80023D30 00020C90 38 84 00 2A */ addi r4, r4, 0x2a
/* 80023D34 00020C94 48 2F 1B 39 */ bl __nw__FUlPCcPCc
/* 80023D38 00020C98 28 03 00 00 */ cmplwi r3, 0
/* 80023D3C 00020C9C 41 82 00 10 */ beq lbl_80023D4C
/* 80023D40 00020CA0 93 23 00 00 */ stw r25, 0(r3)
/* 80023D44 00020CA4 38 00 00 01 */ li r0, 1
/* 80023D48 00020CA8 90 03 00 04 */ stw r0, 4(r3)
lbl_80023D4C:
/* 80023D4C 00020CAC 90 7D 00 18 */ stw r3, 0x18(r29)
lbl_80023D50:
/* 80023D50 00020CB0 80 7D 00 18 */ lwz r3, 0x18(r29)
/* 80023D54 00020CB4 80 9D 00 14 */ lwz r4, 0x14(r29)
/* 80023D58 00020CB8 80 63 00 00 */ lwz r3, 0(r3)
/* 80023D5C 00020CBC 80 84 00 00 */ lwz r4, 0(r4)
/* 80023D60 00020CC0 48 0E 55 09 */ bl CheckLoadComplete__17CInGameGuiManagerFRC13CStateManager
/* 80023D64 00020CC4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80023D68 00020CC8 40 82 00 0C */ bne lbl_80023D74
/* 80023D6C 00020CCC 38 60 00 01 */ li r3, 1
/* 80023D70 00020CD0 48 00 01 58 */ b lbl_80023EC8
lbl_80023D74:
/* 80023D74 00020CD4 80 1D 00 20 */ lwz r0, 0x20(r29)
/* 80023D78 00020CD8 83 3D 00 28 */ lwz r25, 0x28(r29)
/* 80023D7C 00020CDC 54 00 18 38 */ slwi r0, r0, 3
/* 80023D80 00020CE0 7F D9 02 14 */ add r30, r25, r0
/* 80023D84 00020CE4 93 21 00 0C */ stw r25, 0xc(r1)
/* 80023D88 00020CE8 93 C1 00 14 */ stw r30, 0x14(r1)
/* 80023D8C 00020CEC 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80023D90 00020CF0 93 21 00 08 */ stw r25, 8(r1)
/* 80023D94 00020CF4 48 00 00 14 */ b lbl_80023DA8
lbl_80023D98:
/* 80023D98 00020CF8 7F 23 CB 78 */ mr r3, r25
/* 80023D9C 00020CFC 38 80 FF FF */ li r4, -1
/* 80023DA0 00020D00 48 31 D0 A1 */ bl __dt__6CTokenFv
/* 80023DA4 00020D04 3B 39 00 08 */ addi r25, r25, 8
lbl_80023DA8:
/* 80023DA8 00020D08 7C 19 F0 40 */ cmplw r25, r30
/* 80023DAC 00020D0C 40 82 FF EC */ bne lbl_80023D98
/* 80023DB0 00020D10 38 00 00 00 */ li r0, 0
/* 80023DB4 00020D14 90 1D 00 20 */ stw r0, 0x20(r29)
/* 80023DB8 00020D18 80 7F 00 00 */ lwz r3, 0(r31)
/* 80023DBC 00020D1C 80 63 00 00 */ lwz r3, 0(r3)
/* 80023DC0 00020D20 48 1E 54 99 */ bl StartTextFadeOut__18CWorldTransManagerFv
/* 80023DC4 00020D24 80 9F 00 00 */ lwz r4, 0(r31)
/* 80023DC8 00020D28 38 60 00 01 */ li r3, 1
/* 80023DCC 00020D2C 88 1D 00 2C */ lbz r0, 0x2c(r29)
/* 80023DD0 00020D30 80 84 00 00 */ lwz r4, 0(r4)
/* 80023DD4 00020D34 88 84 00 44 */ lbz r4, 0x44(r4)
/* 80023DD8 00020D38 50 80 FE 72 */ rlwimi r0, r4, 0x1f, 0x19, 0x19
/* 80023DDC 00020D3C 98 1D 00 2C */ stb r0, 0x2c(r29)
/* 80023DE0 00020D40 48 00 00 E8 */ b lbl_80023EC8
lbl_80023DE4:
/* 80023DE4 00020D44 2C 00 00 0B */ cmpwi r0, 0xb
/* 80023DE8 00020D48 40 82 00 DC */ bne lbl_80023EC4
/* 80023DEC 00020D4C 88 1D 00 2C */ lbz r0, 0x2c(r29)
/* 80023DF0 00020D50 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 80023DF4 00020D54 41 82 00 D0 */ beq lbl_80023EC4
/* 80023DF8 00020D58 3C 60 80 3D */ lis r3, lbl_803CCAB8@ha
/* 80023DFC 00020D5C 3B 00 00 00 */ li r24, 0
/* 80023E00 00020D60 38 63 CA B8 */ addi r3, r3, lbl_803CCAB8@l
/* 80023E04 00020D64 3B 20 00 00 */ li r25, 0
/* 80023E08 00020D68 38 83 00 2A */ addi r4, r3, 0x2a
/* 80023E0C 00020D6C 38 60 00 2C */ li r3, 0x2c
/* 80023E10 00020D70 38 A0 00 00 */ li r5, 0
/* 80023E14 00020D74 48 2F 1A 59 */ bl __nw__FUlPCcPCc
/* 80023E18 00020D78 7C 64 1B 79 */ or. r4, r3, r3
/* 80023E1C 00020D7C 41 82 00 48 */ beq lbl_80023E64
/* 80023E20 00020D80 81 1D 00 14 */ lwz r8, 0x14(r29)
/* 80023E24 00020D84 7F C6 F3 78 */ mr r6, r30
/* 80023E28 00020D88 38 81 00 18 */ addi r4, r1, 0x18
/* 80023E2C 00020D8C 38 A1 00 1C */ addi r5, r1, 0x1c
/* 80023E30 00020D90 91 01 00 18 */ stw r8, 0x18(r1)
/* 80023E34 00020D94 3B 20 00 01 */ li r25, 1
/* 80023E38 00020D98 3B 00 00 01 */ li r24, 1
/* 80023E3C 00020D9C 80 E8 00 04 */ lwz r7, 4(r8)
/* 80023E40 00020DA0 38 07 00 01 */ addi r0, r7, 1
/* 80023E44 00020DA4 90 08 00 04 */ stw r0, 4(r8)
/* 80023E48 00020DA8 81 1D 00 18 */ lwz r8, 0x18(r29)
/* 80023E4C 00020DAC 91 01 00 1C */ stw r8, 0x1c(r1)
/* 80023E50 00020DB0 80 E8 00 04 */ lwz r7, 4(r8)
/* 80023E54 00020DB4 38 07 00 01 */ addi r0, r7, 1
/* 80023E58 00020DB8 90 08 00 04 */ stw r0, 4(r8)
/* 80023E5C 00020DBC 48 00 10 E1 */ bl "__ct__7CMFGameFQ24rstl25ncrc_ptr<13CStateManager>Q24rstl29ncrc_ptr<17CInGameGuiManager>R18CArchitectureQueue"
/* 80023E60 00020DC0 7C 64 1B 78 */ mr r4, r3
lbl_80023E64:
/* 80023E64 00020DC4 7F 20 07 75 */ extsb. r0, r25
/* 80023E68 00020DC8 90 81 00 28 */ stw r4, 0x28(r1)
/* 80023E6C 00020DCC 41 82 00 0C */ beq lbl_80023E78
/* 80023E70 00020DD0 38 61 00 18 */ addi r3, r1, 0x18
/* 80023E74 00020DD4 48 00 12 0D */ bl sub_80025080
lbl_80023E78:
/* 80023E78 00020DD8 7F 00 07 75 */ extsb. r0, r24
/* 80023E7C 00020DDC 41 82 00 0C */ beq lbl_80023E88
/* 80023E80 00020DE0 38 61 00 1C */ addi r3, r1, 0x1c
/* 80023E84 00020DE4 48 00 11 A1 */ bl sub_80025024
lbl_80023E88:
/* 80023E88 00020DE8 38 61 00 30 */ addi r3, r1, 0x30
/* 80023E8C 00020DEC 38 E1 00 28 */ addi r7, r1, 0x28
/* 80023E90 00020DF0 38 80 00 00 */ li r4, 0
/* 80023E94 00020DF4 38 AD 81 8C */ addi r5, r13, lbl_805A6D4C@sda21
/* 80023E98 00020DF8 38 CD 81 90 */ addi r6, r13, lbl_805A6D50@sda21
/* 80023E9C 00020DFC 48 02 DE 11 */ bl CreateCreateIOWin__7MakeMsgF14EArchMsgTargetRCiRCiRCP6CIOWin
/* 80023EA0 00020E00 7F C3 F3 78 */ mr r3, r30
/* 80023EA4 00020E04 38 81 00 30 */ addi r4, r1, 0x30
/* 80023EA8 00020E08 4B FE 2E 59 */ bl InsertMsg__18CArchitectureQueueFRC20CArchitectureMessage
/* 80023EAC 00020E0C 34 61 00 38 */ addic. r3, r1, 0x38
/* 80023EB0 00020E10 41 82 00 08 */ beq lbl_80023EB8
/* 80023EB4 00020E14 4B FE 48 59 */ bl sub_8000870c
lbl_80023EB8:
/* 80023EB8 00020E18 48 33 14 BD */ bl EnableTextureTimeout__6CModelFv
/* 80023EBC 00020E1C 38 60 00 02 */ li r3, 2
/* 80023EC0 00020E20 48 00 00 08 */ b lbl_80023EC8
lbl_80023EC4:
/* 80023EC4 00020E24 38 60 00 01 */ li r3, 1
lbl_80023EC8:
/* 80023EC8 00020E28 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0
/* 80023ECC 00020E2C CB E1 00 60 */ lfd f31, 0x60(r1)
/* 80023ED0 00020E30 BB 01 00 40 */ lmw r24, 0x40(r1)
/* 80023ED4 00020E34 80 01 00 74 */ lwz r0, 0x74(r1)
/* 80023ED8 00020E38 7C 08 03 A6 */ mtlr r0
/* 80023EDC 00020E3C 38 21 00 70 */ addi r1, r1, 0x70
/* 80023EE0 00020E40 4E 80 00 20 */ blr
.global MakeLoadDependancyList__13CMFGameLoaderFv
MakeLoadDependancyList__13CMFGameLoaderFv:
/* 80023EE4 00020E44 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80023EE8 00020E48 7C 08 02 A6 */ mflr r0
/* 80023EEC 00020E4C 3C 80 80 3E */ lis r4, lbl_803D9988@ha
/* 80023EF0 00020E50 90 01 00 64 */ stw r0, 0x64(r1)
/* 80023EF4 00020E54 38 04 99 88 */ addi r0, r4, lbl_803D9988@l
/* 80023EF8 00020E58 BF 61 00 4C */ stmw r27, 0x4c(r1)
/* 80023EFC 00020E5C 7C 7E 1B 78 */ mr r30, r3
/* 80023F00 00020E60 3B 60 00 00 */ li r27, 0
/* 80023F04 00020E64 7C 1C 03 78 */ mr r28, r0
/* 80023F08 00020E68 48 00 00 3C */ b lbl_80023F44
lbl_80023F0C:
/* 80023F0C 00020E6C 38 61 00 30 */ addi r3, r1, 0x30
/* 80023F10 00020E70 4B FE 0D A9 */ bl string_l__4rstlFPCc
/* 80023F14 00020E74 80 6D A0 60 */ lwz r3, gpResourceFactory@sda21(r13)
/* 80023F18 00020E78 38 81 00 30 */ addi r4, r1, 0x30
/* 80023F1C 00020E7C 38 63 00 04 */ addi r3, r3, 4
/* 80023F20 00020E80 48 31 74 1D */ bl "GetTagListForFile__10CResLoaderCFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 80023F24 00020E84 7C 7D 1B 78 */ mr r29, r3
/* 80023F28 00020E88 38 61 00 30 */ addi r3, r1, 0x30
/* 80023F2C 00020E8C 48 31 9B B5 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 80023F30 00020E90 28 1D 00 00 */ cmplwi r29, 0
/* 80023F34 00020E94 41 82 00 0C */ beq lbl_80023F40
/* 80023F38 00020E98 80 1D 00 04 */ lwz r0, 4(r29)
/* 80023F3C 00020E9C 7F 7B 02 14 */ add r27, r27, r0
lbl_80023F40:
/* 80023F40 00020EA0 3B 9C 00 04 */ addi r28, r28, 4
lbl_80023F44:
/* 80023F44 00020EA4 80 9C 00 00 */ lwz r4, 0(r28)
/* 80023F48 00020EA8 28 04 00 00 */ cmplwi r4, 0
/* 80023F4C 00020EAC 40 82 FF C0 */ bne lbl_80023F0C
/* 80023F50 00020EB0 7F 64 DB 78 */ mr r4, r27
/* 80023F54 00020EB4 38 7E 00 1C */ addi r3, r30, 0x1c
/* 80023F58 00020EB8 4B FE 4A 05 */ bl "reserve__Q24rstl42vector<6CToken,Q24rstl17rmemory_allocator>Fi"
/* 80023F5C 00020EBC 3C 60 80 3E */ lis r3, lbl_803D9988@ha
/* 80023F60 00020EC0 38 03 99 88 */ addi r0, r3, lbl_803D9988@l
/* 80023F64 00020EC4 7C 1F 03 78 */ mr r31, r0
/* 80023F68 00020EC8 48 00 01 04 */ b lbl_8002406C
lbl_80023F6C:
/* 80023F6C 00020ECC 38 61 00 20 */ addi r3, r1, 0x20
/* 80023F70 00020ED0 4B FE 0D 49 */ bl string_l__4rstlFPCc
/* 80023F74 00020ED4 80 6D A0 60 */ lwz r3, gpResourceFactory@sda21(r13)
/* 80023F78 00020ED8 38 81 00 20 */ addi r4, r1, 0x20
/* 80023F7C 00020EDC 38 63 00 04 */ addi r3, r3, 4
/* 80023F80 00020EE0 48 31 73 BD */ bl "GetTagListForFile__10CResLoaderCFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 80023F84 00020EE4 7C 7D 1B 78 */ mr r29, r3
/* 80023F88 00020EE8 38 61 00 20 */ addi r3, r1, 0x20
/* 80023F8C 00020EEC 48 31 9B 55 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 80023F90 00020EF0 28 1D 00 00 */ cmplwi r29, 0
/* 80023F94 00020EF4 41 82 00 D4 */ beq lbl_80024068
/* 80023F98 00020EF8 83 9D 00 0C */ lwz r28, 0xc(r29)
/* 80023F9C 00020EFC 48 00 00 B4 */ b lbl_80024050
lbl_80023FA0:
/* 80023FA0 00020F00 83 7C 00 00 */ lwz r27, 0(r28)
/* 80023FA4 00020F04 80 6D A0 60 */ lwz r3, gpResourceFactory@sda21(r13)
/* 80023FA8 00020F08 7F 64 DB 78 */ mr r4, r27
/* 80023FAC 00020F0C 38 63 00 04 */ addi r3, r3, 4
/* 80023FB0 00020F10 48 31 7D 1D */ bl GetResourceTypeById__10CResLoaderCFUi
/* 80023FB4 00020F14 90 61 00 18 */ stw r3, 0x18(r1)
/* 80023FB8 00020F18 38 61 00 08 */ addi r3, r1, 8
/* 80023FBC 00020F1C 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 80023FC0 00020F20 38 A1 00 18 */ addi r5, r1, 0x18
/* 80023FC4 00020F24 93 61 00 1C */ stw r27, 0x1c(r1)
/* 80023FC8 00020F28 81 84 00 00 */ lwz r12, 0(r4)
/* 80023FCC 00020F2C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 80023FD0 00020F30 7D 89 03 A6 */ mtctr r12
/* 80023FD4 00020F34 4E 80 04 21 */ bctrl
/* 80023FD8 00020F38 38 61 00 10 */ addi r3, r1, 0x10
/* 80023FDC 00020F3C 38 81 00 08 */ addi r4, r1, 8
/* 80023FE0 00020F40 48 31 CE C9 */ bl __ct__6CTokenFRC6CToken
/* 80023FE4 00020F44 38 61 00 08 */ addi r3, r1, 8
/* 80023FE8 00020F48 38 80 FF FF */ li r4, -1
/* 80023FEC 00020F4C 48 31 CE 55 */ bl __dt__6CTokenFv
/* 80023FF0 00020F50 80 1E 00 20 */ lwz r0, 0x20(r30)
/* 80023FF4 00020F54 80 BE 00 24 */ lwz r5, 0x24(r30)
/* 80023FF8 00020F58 7C 00 28 00 */ cmpw r0, r5
/* 80023FFC 00020F5C 41 80 00 1C */ blt lbl_80024018
/* 80024000 00020F60 2C 05 00 00 */ cmpwi r5, 0
/* 80024004 00020F64 38 7E 00 1C */ addi r3, r30, 0x1c
/* 80024008 00020F68 38 80 00 04 */ li r4, 4
/* 8002400C 00020F6C 41 82 00 08 */ beq lbl_80024014
/* 80024010 00020F70 54 A4 08 3C */ slwi r4, r5, 1
lbl_80024014:
/* 80024014 00020F74 4B FE 49 49 */ bl "reserve__Q24rstl42vector<6CToken,Q24rstl17rmemory_allocator>Fi"
lbl_80024018:
/* 80024018 00020F78 80 1E 00 20 */ lwz r0, 0x20(r30)
/* 8002401C 00020F7C 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80024020 00020F80 54 00 18 38 */ slwi r0, r0, 3
/* 80024024 00020F84 7C 63 02 15 */ add. r3, r3, r0
/* 80024028 00020F88 41 82 00 0C */ beq lbl_80024034
/* 8002402C 00020F8C 38 81 00 10 */ addi r4, r1, 0x10
/* 80024030 00020F90 48 31 CE 79 */ bl __ct__6CTokenFRC6CToken
lbl_80024034:
/* 80024034 00020F94 80 BE 00 20 */ lwz r5, 0x20(r30)
/* 80024038 00020F98 38 61 00 10 */ addi r3, r1, 0x10
/* 8002403C 00020F9C 38 80 FF FF */ li r4, -1
/* 80024040 00020FA0 38 05 00 01 */ addi r0, r5, 1
/* 80024044 00020FA4 90 1E 00 20 */ stw r0, 0x20(r30)
/* 80024048 00020FA8 48 31 CD F9 */ bl __dt__6CTokenFv
/* 8002404C 00020FAC 3B 9C 00 04 */ addi r28, r28, 4
lbl_80024050:
/* 80024050 00020FB0 80 1D 00 04 */ lwz r0, 4(r29)
/* 80024054 00020FB4 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 80024058 00020FB8 54 00 10 3A */ slwi r0, r0, 2
/* 8002405C 00020FBC 7C 03 02 14 */ add r0, r3, r0
/* 80024060 00020FC0 7C 1C 00 40 */ cmplw r28, r0
/* 80024064 00020FC4 40 82 FF 3C */ bne lbl_80023FA0
lbl_80024068:
/* 80024068 00020FC8 3B FF 00 04 */ addi r31, r31, 4
lbl_8002406C:
/* 8002406C 00020FCC 80 9F 00 00 */ lwz r4, 0(r31)
/* 80024070 00020FD0 28 04 00 00 */ cmplwi r4, 0
/* 80024074 00020FD4 40 82 FE F8 */ bne lbl_80023F6C
/* 80024078 00020FD8 BB 61 00 4C */ lmw r27, 0x4c(r1)
/* 8002407C 00020FDC 80 01 00 64 */ lwz r0, 0x64(r1)
/* 80024080 00020FE0 7C 08 03 A6 */ mtlr r0
/* 80024084 00020FE4 38 21 00 60 */ addi r1, r1, 0x60
/* 80024088 00020FE8 4E 80 00 20 */ blr
.global __dt__13CMFGameLoaderFv
__dt__13CMFGameLoaderFv:
/* 8002408C 00020FEC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80024090 00020FF0 7C 08 02 A6 */ mflr r0
/* 80024094 00020FF4 90 01 00 34 */ stw r0, 0x34(r1)
/* 80024098 00020FF8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8002409C 00020FFC 93 C1 00 28 */ stw r30, 0x28(r1)
/* 800240A0 00021000 93 A1 00 24 */ stw r29, 0x24(r1)
/* 800240A4 00021004 7C 9D 23 78 */ mr r29, r4
/* 800240A8 00021008 93 81 00 20 */ stw r28, 0x20(r1)
/* 800240AC 0002100C 7C 7C 1B 79 */ or. r28, r3, r3
/* 800240B0 00021010 41 82 00 C0 */ beq lbl_80024170
/* 800240B4 00021014 3C 80 80 3E */ lis r4, lbl_803D9998@ha
/* 800240B8 00021018 38 60 00 01 */ li r3, 1
/* 800240BC 0002101C 38 04 99 98 */ addi r0, r4, lbl_803D9998@l
/* 800240C0 00021020 90 1C 00 00 */ stw r0, 0(r28)
/* 800240C4 00021024 48 2E 53 E5 */ bl SetIsBeginSceneClearFb__9CGraphicsFb
/* 800240C8 00021028 38 60 00 02 */ li r3, 2
/* 800240CC 0002102C 34 1C 00 1C */ addic. r0, r28, 0x1c
/* 800240D0 00021030 90 6D 9D 48 */ stw r3, lbl_805A8908@sda21(r13)
/* 800240D4 00021034 41 82 00 50 */ beq lbl_80024124
/* 800240D8 00021038 80 1C 00 20 */ lwz r0, 0x20(r28)
/* 800240DC 0002103C 83 DC 00 28 */ lwz r30, 0x28(r28)
/* 800240E0 00021040 54 00 18 38 */ slwi r0, r0, 3
/* 800240E4 00021044 7F FE 02 14 */ add r31, r30, r0
/* 800240E8 00021048 93 C1 00 0C */ stw r30, 0xc(r1)
/* 800240EC 0002104C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800240F0 00021050 93 E1 00 10 */ stw r31, 0x10(r1)
/* 800240F4 00021054 93 C1 00 08 */ stw r30, 8(r1)
/* 800240F8 00021058 48 00 00 14 */ b lbl_8002410C
lbl_800240FC:
/* 800240FC 0002105C 7F C3 F3 78 */ mr r3, r30
/* 80024100 00021060 38 80 FF FF */ li r4, -1
/* 80024104 00021064 48 31 CD 3D */ bl __dt__6CTokenFv
/* 80024108 00021068 3B DE 00 08 */ addi r30, r30, 8
lbl_8002410C:
/* 8002410C 0002106C 7C 1E F8 40 */ cmplw r30, r31
/* 80024110 00021070 40 82 FF EC */ bne lbl_800240FC
/* 80024114 00021074 80 7C 00 28 */ lwz r3, 0x28(r28)
/* 80024118 00021078 28 03 00 00 */ cmplwi r3, 0
/* 8002411C 0002107C 41 82 00 08 */ beq lbl_80024124
/* 80024120 00021080 48 2F 18 11 */ bl Free__7CMemoryFPCv
lbl_80024124:
/* 80024124 00021084 34 1C 00 18 */ addic. r0, r28, 0x18
/* 80024128 00021088 41 82 00 14 */ beq lbl_8002413C
/* 8002412C 0002108C 34 1C 00 18 */ addic. r0, r28, 0x18
/* 80024130 00021090 41 82 00 0C */ beq lbl_8002413C
/* 80024134 00021094 38 7C 00 18 */ addi r3, r28, 0x18
/* 80024138 00021098 48 00 0E ED */ bl sub_80025024
lbl_8002413C:
/* 8002413C 0002109C 34 1C 00 14 */ addic. r0, r28, 0x14
/* 80024140 000210A0 41 82 00 14 */ beq lbl_80024154
/* 80024144 000210A4 34 1C 00 14 */ addic. r0, r28, 0x14
/* 80024148 000210A8 41 82 00 0C */ beq lbl_80024154
/* 8002414C 000210AC 38 7C 00 14 */ addi r3, r28, 0x14
/* 80024150 000210B0 48 00 0F 31 */ bl sub_80025080
lbl_80024154:
/* 80024154 000210B4 7F 83 E3 78 */ mr r3, r28
/* 80024158 000210B8 38 80 00 00 */ li r4, 0
/* 8002415C 000210BC 48 02 EA 49 */ bl __dt__6CIOWinFv
/* 80024160 000210C0 7F A0 07 35 */ extsh. r0, r29
/* 80024164 000210C4 40 81 00 0C */ ble lbl_80024170
/* 80024168 000210C8 7F 83 E3 78 */ mr r3, r28
/* 8002416C 000210CC 48 2F 17 C5 */ bl Free__7CMemoryFPCv
lbl_80024170:
/* 80024170 000210D0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80024174 000210D4 7F 83 E3 78 */ mr r3, r28
/* 80024178 000210D8 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8002417C 000210DC 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80024180 000210E0 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80024184 000210E4 83 81 00 20 */ lwz r28, 0x20(r1)
/* 80024188 000210E8 7C 08 03 A6 */ mtlr r0
/* 8002418C 000210EC 38 21 00 30 */ addi r1, r1, 0x30
/* 80024190 000210F0 4E 80 00 20 */ blr
.global __ct__13CMFGameLoaderFv
__ct__13CMFGameLoaderFv:
/* 80024194 000210F4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80024198 000210F8 7C 08 02 A6 */ mflr r0
/* 8002419C 000210FC 3C 80 80 3D */ lis r4, lbl_803CCAB8@ha
/* 800241A0 00021100 90 01 00 34 */ stw r0, 0x34(r1)
/* 800241A4 00021104 38 84 CA B8 */ addi r4, r4, lbl_803CCAB8@l
/* 800241A8 00021108 38 84 00 31 */ addi r4, r4, 0x31
/* 800241AC 0002110C 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 800241B0 00021110 7C 7F 1B 78 */ mr r31, r3
/* 800241B4 00021114 38 61 00 0C */ addi r3, r1, 0xc
/* 800241B8 00021118 93 C1 00 28 */ stw r30, 0x28(r1)
/* 800241BC 0002111C 4B FE 0A FD */ bl string_l__4rstlFPCc
/* 800241C0 00021120 7F E3 FB 78 */ mr r3, r31
/* 800241C4 00021124 38 81 00 0C */ addi r4, r1, 0xc
/* 800241C8 00021128 48 02 EA 45 */ bl "__ct__6CIOWinFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 800241CC 0002112C 38 61 00 0C */ addi r3, r1, 0xc
/* 800241D0 00021130 48 31 99 11 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 800241D4 00021134 3C 60 80 3E */ lis r3, lbl_803D9998@ha
/* 800241D8 00021138 38 CD A9 28 */ addi r6, r13, lbl_805A94E8@sda21
/* 800241DC 0002113C 38 03 99 98 */ addi r0, r3, lbl_803D9998@l
/* 800241E0 00021140 38 80 00 00 */ li r4, 0
/* 800241E4 00021144 90 1F 00 00 */ stw r0, 0(r31)
/* 800241E8 00021148 38 00 00 01 */ li r0, 1
/* 800241EC 0002114C 90 DF 00 14 */ stw r6, 0x14(r31)
/* 800241F0 00021150 80 BF 00 14 */ lwz r5, 0x14(r31)
/* 800241F4 00021154 80 65 00 04 */ lwz r3, 4(r5)
/* 800241F8 00021158 38 63 00 01 */ addi r3, r3, 1
/* 800241FC 0002115C 90 65 00 04 */ stw r3, 4(r5)
/* 80024200 00021160 90 DF 00 18 */ stw r6, 0x18(r31)
/* 80024204 00021164 80 BF 00 18 */ lwz r5, 0x18(r31)
/* 80024208 00021168 80 65 00 04 */ lwz r3, 4(r5)
/* 8002420C 0002116C 38 63 00 01 */ addi r3, r3, 1
/* 80024210 00021170 90 65 00 04 */ stw r3, 4(r5)
/* 80024214 00021174 90 9F 00 20 */ stw r4, 0x20(r31)
/* 80024218 00021178 90 9F 00 24 */ stw r4, 0x24(r31)
/* 8002421C 0002117C 90 9F 00 28 */ stw r4, 0x28(r31)
/* 80024220 00021180 88 7F 00 2C */ lbz r3, 0x2c(r31)
/* 80024224 00021184 50 83 3E 30 */ rlwimi r3, r4, 7, 0x18, 0x18
/* 80024228 00021188 98 7F 00 2C */ stb r3, 0x2c(r31)
/* 8002422C 0002118C 88 7F 00 2C */ lbz r3, 0x2c(r31)
/* 80024230 00021190 50 83 36 72 */ rlwimi r3, r4, 6, 0x19, 0x19
/* 80024234 00021194 98 7F 00 2C */ stb r3, 0x2c(r31)
/* 80024238 00021198 90 0D 9D 48 */ stw r0, lbl_805A8908@sda21(r13)
/* 8002423C 0002119C 48 33 11 45 */ bl DisableTextureTimeout__6CModelFv
/* 80024240 000211A0 80 6D A0 78 */ lwz r3, gpMain@sda21(r13)
/* 80024244 000211A4 80 03 01 2C */ lwz r0, 0x12c(r3)
/* 80024248 000211A8 2C 00 00 05 */ cmpwi r0, 5
/* 8002424C 000211AC 41 82 00 0C */ beq lbl_80024258
/* 80024250 000211B0 2C 00 00 06 */ cmpwi r0, 6
/* 80024254 000211B4 40 82 00 7C */ bne lbl_800242D0
lbl_80024258:
/* 80024258 000211B8 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 8002425C 000211BC 48 1A F7 75 */ bl CurrentWorldAssetId__10CGameStateCFv
/* 80024260 000211C0 7C 60 1B 78 */ mr r0, r3
/* 80024264 000211C4 80 6D A0 84 */ lwz r3, gpMemoryCard@sda21(r13)
/* 80024268 000211C8 7C 1E 03 78 */ mr r30, r0
/* 8002426C 000211CC 7F C4 F3 78 */ mr r4, r30
/* 80024270 000211D0 48 22 4D 49 */ bl HasSaveWorldMemory__15CMemoryCardSysFi
/* 80024274 000211D4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80024278 000211D8 41 82 00 58 */ beq lbl_800242D0
/* 8002427C 000211DC 80 6D A0 84 */ lwz r3, gpMemoryCard@sda21(r13)
/* 80024280 000211E0 7F C4 F3 78 */ mr r4, r30
/* 80024284 000211E4 48 22 4C 89 */ bl GetSaveWorldMemory__14CMemoryCardSysCFi
/* 80024288 000211E8 7C 7E 1B 78 */ mr r30, r3
/* 8002428C 000211EC 80 63 00 00 */ lwz r3, 0(r3)
/* 80024290 000211F0 3C 03 00 01 */ addis r0, r3, 1
/* 80024294 000211F4 28 00 FF FF */ cmplwi r0, 0xffff
/* 80024298 000211F8 41 82 00 38 */ beq lbl_800242D0
/* 8002429C 000211FC 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 800242A0 00021200 48 1A F6 79 */ bl WorldTransitionManager__10CGameStateFv
/* 800242A4 00021204 80 C3 00 00 */ lwz r6, 0(r3)
/* 800242A8 00021208 3C 60 B7 BC */ lis r3, 0xB7BBD0B4@ha
/* 800242AC 0002120C 80 BE 00 00 */ lwz r5, 0(r30)
/* 800242B0 00021210 38 83 D0 B4 */ addi r4, r3, 0xB7BBD0B4@l
/* 800242B4 00021214 80 66 00 00 */ lwz r3, 0(r6)
/* 800242B8 00021218 38 C0 00 01 */ li r6, 1
/* 800242BC 0002121C C0 22 83 00 */ lfs f1, lbl_805AA020@sda21(r2)
/* 800242C0 00021220 38 E0 00 00 */ li r7, 0
/* 800242C4 00021224 C0 42 83 04 */ lfs f2, lbl_805AA024@sda21(r2)
/* 800242C8 00021228 C0 62 83 08 */ lfs f3, lbl_805AA028@sda21(r2)
/* 800242CC 0002122C 48 1E 53 25 */ bl EnableTransition__18CWorldTransManagerFviibbfff
lbl_800242D0:
/* 800242D0 00021230 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 800242D4 00021234 48 1A F6 FD */ bl CurrentWorldAssetId__10CGameStateCFv
/* 800242D8 00021238 38 8D A0 F8 */ addi r4, r13, lbl_805A8CB8@sda21
/* 800242DC 0002123C 80 04 00 04 */ lwz r0, 4(r4)
/* 800242E0 00021240 7C 03 00 40 */ cmplw r3, r0
/* 800242E4 00021244 40 82 00 7C */ bne lbl_80024360
/* 800242E8 00021248 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 800242EC 0002124C 48 1A F6 9D */ bl GetCurrentWorldState__10CGameStateCFv
/* 800242F0 00021250 7C 64 1B 78 */ mr r4, r3
/* 800242F4 00021254 38 61 00 08 */ addi r3, r1, 8
/* 800242F8 00021258 48 1B 0A 61 */ bl GetCurrentArea__11CWorldStateCFv
/* 800242FC 0002125C 80 01 00 08 */ lwz r0, 8(r1)
/* 80024300 00021260 2C 00 00 00 */ cmpwi r0, 0
/* 80024304 00021264 40 82 00 5C */ bne lbl_80024360
/* 80024308 00021268 80 6D A0 60 */ lwz r3, gpResourceFactory@sda21(r13)
/* 8002430C 0002126C 3C 80 80 3D */ lis r4, lbl_803CCAB8@ha
/* 80024310 00021270 38 84 CA B8 */ addi r4, r4, lbl_803CCAB8@l
/* 80024314 00021274 81 83 00 00 */ lwz r12, 0(r3)
/* 80024318 00021278 38 84 00 3F */ addi r4, r4, 0x3f
/* 8002431C 0002127C 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 80024320 00021280 7D 89 03 A6 */ mtctr r12
/* 80024324 00021284 4E 80 04 21 */ bctrl
/* 80024328 00021288 7C 7E 1B 79 */ or. r30, r3, r3
/* 8002432C 0002128C 41 82 00 34 */ beq lbl_80024360
/* 80024330 00021290 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 80024334 00021294 48 1A F5 E5 */ bl WorldTransitionManager__10CGameStateFv
/* 80024338 00021298 80 63 00 00 */ lwz r3, 0(r3)
/* 8002433C 0002129C 38 80 FF FF */ li r4, -1
/* 80024340 000212A0 80 BE 00 04 */ lwz r5, 4(r30)
/* 80024344 000212A4 38 C0 00 00 */ li r6, 0
/* 80024348 000212A8 80 63 00 00 */ lwz r3, 0(r3)
/* 8002434C 000212AC 38 E0 00 00 */ li r7, 0
/* 80024350 000212B0 C0 22 83 00 */ lfs f1, lbl_805AA020@sda21(r2)
/* 80024354 000212B4 C0 42 83 04 */ lfs f2, lbl_805AA024@sda21(r2)
/* 80024358 000212B8 C0 62 83 08 */ lfs f3, lbl_805AA028@sda21(r2)
/* 8002435C 000212BC 48 1E 52 95 */ bl EnableTransition__18CWorldTransManagerFviibbfff
lbl_80024360:
/* 80024360 000212C0 88 1F 00 2C */ lbz r0, 0x2c(r31)
/* 80024364 000212C4 38 60 00 01 */ li r3, 1
/* 80024368 000212C8 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8002436C 000212CC 7F E3 FB 78 */ mr r3, r31
/* 80024370 000212D0 98 1F 00 2C */ stb r0, 0x2c(r31)
/* 80024374 000212D4 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80024378 000212D8 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8002437C 000212DC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80024380 000212E0 7C 08 03 A6 */ mtlr r0
/* 80024384 000212E4 38 21 00 30 */ addi r1, r1, 0x30
/* 80024388 000212E8 4E 80 00 20 */ blr