prime/asm/MetroidPrime/CNESEmulator.s

1431 lines
67 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .data
.balign 8
.global lbl_803EBC50
lbl_803EBC50:
# ROM: 0x3E8C50
.4byte 0x190A1C1C
.4byte 0xFF20181B
.4byte 0x0DFF1915
.4byte 0x0E0A1C0E
.global lbl_803EBC60
lbl_803EBC60:
# ROM: 0x3E8C60
.4byte 0x190A1C1C
.4byte 0xFF20181B
.4byte 0x0D000000
.4byte 0
.section .sbss, "wa"
.balign 8
.global lbl_805A9160
lbl_805A9160:
.skip 0x8
.section .text, "ax"
.global GetPassword__12CNESEmulatorFv
GetPassword__12CNESEmulatorFv:
/* 80293B00 00290A60 38 63 00 21 */ addi r3, r3, 0x21
/* 80293B04 00290A64 4E 80 00 20 */ blr
.global IsGameOver__12CNESEmulatorFv
IsGameOver__12CNESEmulatorFv:
/* 80293B08 00290A68 88 63 00 20 */ lbz r3, 0x20(r3)
/* 80293B0C 00290A6C 4E 80 00 20 */ blr
.global LoadPassword__12CNESEmulatorFPCc
LoadPassword__12CNESEmulatorFPCc:
/* 80293B10 00290A70 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80293B14 00290A74 7C 08 02 A6 */ mflr r0
/* 80293B18 00290A78 38 A0 00 12 */ li r5, 0x12
/* 80293B1C 00290A7C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80293B20 00290A80 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80293B24 00290A84 7C 7F 1B 78 */ mr r31, r3
/* 80293B28 00290A88 38 7F 00 39 */ addi r3, r31, 0x39
/* 80293B2C 00290A8C 4B D6 F9 65 */ bl memcpy
/* 80293B30 00290A90 38 00 00 01 */ li r0, 1
/* 80293B34 00290A94 98 1F 00 38 */ stb r0, 0x38(r31)
/* 80293B38 00290A98 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80293B3C 00290A9C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80293B40 00290AA0 7C 08 03 A6 */ mtlr r0
/* 80293B44 00290AA4 38 21 00 10 */ addi r1, r1, 0x10
/* 80293B48 00290AA8 4E 80 00 20 */ blr
.global GetPasswordEntryState__12CNESEmulatorFv
GetPasswordEntryState__12CNESEmulatorFv:
/* 80293B4C 00290AAC 80 63 00 34 */ lwz r3, 0x34(r3)
/* 80293B50 00290AB0 4E 80 00 20 */ blr
.global Draw__12CNESEmulatorFRC6CColorb
Draw__12CNESEmulatorFRC6CColorb:
/* 80293B54 00290AB4 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80293B58 00290AB8 7C 08 02 A6 */ mflr r0
/* 80293B5C 00290ABC 90 01 00 44 */ stw r0, 0x44(r1)
/* 80293B60 00290AC0 BF 61 00 2C */ stmw r27, 0x2c(r1)
/* 80293B64 00290AC4 7C 7C 1B 78 */ mr r28, r3
/* 80293B68 00290AC8 7C 9F 23 78 */ mr r31, r4
/* 80293B6C 00290ACC 7C BB 2B 78 */ mr r27, r5
/* 80293B70 00290AD0 80 03 00 00 */ lwz r0, 0(r3)
/* 80293B74 00290AD4 28 00 00 00 */ cmplwi r0, 0
/* 80293B78 00290AD8 40 82 02 A0 */ bne lbl_80293E18
/* 80293B7C 00290ADC 38 60 00 02 */ li r3, 2
/* 80293B80 00290AE0 48 0E 4F D9 */ bl GXSetCullMode
/* 80293B84 00290AE4 C0 22 BF 40 */ lfs f1, lbl_805ADC60@sda21(r2)
/* 80293B88 00290AE8 C0 62 BF 44 */ lfs f3, lbl_805ADC64@sda21(r2)
/* 80293B8C 00290AEC FC 40 08 90 */ fmr f2, f1
/* 80293B90 00290AF0 C0 82 BF 48 */ lfs f4, lbl_805ADC68@sda21(r2)
/* 80293B94 00290AF4 C0 A2 BF 4C */ lfs f5, lbl_805ADC6C@sda21(r2)
/* 80293B98 00290AF8 C0 C2 BF 50 */ lfs f6, lbl_805ADC70@sda21(r2)
/* 80293B9C 00290AFC 48 0E 8A AD */ bl GXSetViewport
/* 80293BA0 00290B00 80 8D A5 A0 */ lwz r4, lbl_805A9160@sda21(r13)
/* 80293BA4 00290B04 80 7C 00 08 */ lwz r3, 8(r28)
/* 80293BA8 00290B08 81 84 00 18 */ lwz r12, 0x18(r4)
/* 80293BAC 00290B0C 80 9C 00 0C */ lwz r4, 0xc(r28)
/* 80293BB0 00290B10 7D 89 03 A6 */ mtctr r12
/* 80293BB4 00290B14 4E 80 04 21 */ bctrl
/* 80293BB8 00290B18 80 8D A5 A0 */ lwz r4, lbl_805A9160@sda21(r13)
/* 80293BBC 00290B1C 80 7C 00 08 */ lwz r3, 8(r28)
/* 80293BC0 00290B20 81 84 00 1C */ lwz r12, 0x1c(r4)
/* 80293BC4 00290B24 7D 89 03 A6 */ mtctr r12
/* 80293BC8 00290B28 4E 80 04 21 */ bctrl
/* 80293BCC 00290B2C 38 60 00 00 */ li r3, 0
/* 80293BD0 00290B30 48 0E 8B 6D */ bl GXSetClipMode
/* 80293BD4 00290B34 38 60 00 00 */ li r3, 0
/* 80293BD8 00290B38 38 80 00 09 */ li r4, 9
/* 80293BDC 00290B3C 38 A0 00 01 */ li r5, 1
/* 80293BE0 00290B40 38 C0 00 04 */ li r6, 4
/* 80293BE4 00290B44 38 E0 00 00 */ li r7, 0
/* 80293BE8 00290B48 48 0E 3B A5 */ bl GXSetVtxAttrFmt
/* 80293BEC 00290B4C 38 60 00 00 */ li r3, 0
/* 80293BF0 00290B50 38 80 00 0A */ li r4, 0xa
/* 80293BF4 00290B54 38 A0 00 00 */ li r5, 0
/* 80293BF8 00290B58 38 C0 00 04 */ li r6, 4
/* 80293BFC 00290B5C 38 E0 00 00 */ li r7, 0
/* 80293C00 00290B60 48 0E 3B 8D */ bl GXSetVtxAttrFmt
/* 80293C04 00290B64 38 60 00 00 */ li r3, 0
/* 80293C08 00290B68 38 80 00 0B */ li r4, 0xb
/* 80293C0C 00290B6C 38 A0 00 01 */ li r5, 1
/* 80293C10 00290B70 38 C0 00 05 */ li r6, 5
/* 80293C14 00290B74 38 E0 00 00 */ li r7, 0
/* 80293C18 00290B78 48 0E 3B 75 */ bl GXSetVtxAttrFmt
/* 80293C1C 00290B7C 38 60 00 00 */ li r3, 0
/* 80293C20 00290B80 38 80 00 0D */ li r4, 0xd
/* 80293C24 00290B84 38 A0 00 01 */ li r5, 1
/* 80293C28 00290B88 38 C0 00 04 */ li r6, 4
/* 80293C2C 00290B8C 38 E0 00 00 */ li r7, 0
/* 80293C30 00290B90 48 0E 3B 5D */ bl GXSetVtxAttrFmt
/* 80293C34 00290B94 3B C0 00 01 */ li r30, 1
lbl_80293C38:
/* 80293C38 00290B98 38 9E 00 0D */ addi r4, r30, 0xd
/* 80293C3C 00290B9C 38 60 00 00 */ li r3, 0
/* 80293C40 00290BA0 38 A0 00 01 */ li r5, 1
/* 80293C44 00290BA4 38 C0 00 04 */ li r6, 4
/* 80293C48 00290BA8 38 E0 00 00 */ li r7, 0
/* 80293C4C 00290BAC 48 0E 3B 41 */ bl GXSetVtxAttrFmt
/* 80293C50 00290BB0 3B DE 00 01 */ addi r30, r30, 1
/* 80293C54 00290BB4 2C 1E 00 07 */ cmpwi r30, 7
/* 80293C58 00290BB8 40 81 FF E0 */ ble lbl_80293C38
/* 80293C5C 00290BBC 38 60 00 00 */ li r3, 0
/* 80293C60 00290BC0 38 80 00 03 */ li r4, 3
/* 80293C64 00290BC4 48 0E 77 B5 */ bl GXSetTevOp
/* 80293C68 00290BC8 38 60 00 00 */ li r3, 0
/* 80293C6C 00290BCC 38 80 00 00 */ li r4, 0
/* 80293C70 00290BD0 38 A0 00 00 */ li r5, 0
/* 80293C74 00290BD4 38 C0 00 00 */ li r6, 0
/* 80293C78 00290BD8 48 0E 6C 39 */ bl GXSetTexCoordCylWrap
/* 80293C7C 00290BDC 48 07 44 59 */ bl sub_803080d4
/* 80293C80 00290BE0 38 60 00 00 */ li r3, 0
/* 80293C84 00290BE4 48 07 51 CD */ bl SetNumChans__3CGXFUc
/* 80293C88 00290BE8 38 60 00 01 */ li r3, 1
/* 80293C8C 00290BEC 48 07 51 89 */ bl SetNumTexGens__3CGXFUc
/* 80293C90 00290BF0 38 60 00 01 */ li r3, 1
/* 80293C94 00290BF4 48 07 4F FD */ bl SetNumTevStages__3CGXFUc
/* 80293C98 00290BF8 38 60 00 00 */ li r3, 0
/* 80293C9C 00290BFC 48 07 49 F5 */ bl SetNumIndStages__3CGXFUc
/* 80293CA0 00290C00 38 60 00 00 */ li r3, 0
/* 80293CA4 00290C04 38 80 00 01 */ li r4, 1
/* 80293CA8 00290C08 38 A0 00 04 */ li r5, 4
/* 80293CAC 00290C0C 38 C0 00 3C */ li r6, 0x3c
/* 80293CB0 00290C10 38 E0 00 00 */ li r7, 0
/* 80293CB4 00290C14 39 00 00 7D */ li r8, 0x7d
/* 80293CB8 00290C18 48 07 4A 15 */ bl SetTexCoordGen__3CGXF13_GXTexCoordID13_GXTexGenType12_GXTexGenSrc9_GXTexMtxUc11_GXPTTexMtx
/* 80293CBC 00290C1C 38 60 00 00 */ li r3, 0
/* 80293CC0 00290C20 48 07 4A 85 */ bl SetTevDirect__3CGXF13_GXTevStageID
/* 80293CC4 00290C24 38 60 00 00 */ li r3, 0
/* 80293CC8 00290C28 38 80 00 00 */ li r4, 0
/* 80293CCC 00290C2C 38 A0 00 00 */ li r5, 0
/* 80293CD0 00290C30 38 C0 00 FF */ li r6, 0xff
/* 80293CD4 00290C34 48 07 4C 79 */ bl SetTevOrder__3CGXF13_GXTevStageID13_GXTexCoordID11_GXTexMapID12_GXChannelID
/* 80293CD8 00290C38 38 60 00 07 */ li r3, 7
/* 80293CDC 00290C3C 38 80 00 00 */ li r4, 0
/* 80293CE0 00290C40 38 A0 00 00 */ li r5, 0
/* 80293CE4 00290C44 38 C0 00 07 */ li r6, 7
/* 80293CE8 00290C48 38 E0 00 00 */ li r7, 0
/* 80293CEC 00290C4C 48 07 7D 3D */ bl SetAlphaCompare__9CGraphicsF13ERglAlphaFuncUc11ERglAlphaOp13ERglAlphaFuncUc
/* 80293CF0 00290C50 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80293CF4 00290C54 3C 80 80 5A */ lis r4, skIdentity4f@ha
/* 80293CF8 00290C58 38 84 66 70 */ addi r4, r4, skIdentity4f@l
/* 80293CFC 00290C5C 81 83 00 00 */ lwz r12, 0(r3)
/* 80293D00 00290C60 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 80293D04 00290C64 7D 89 03 A6 */ mtctr r12
/* 80293D08 00290C68 4E 80 04 21 */ bctrl
/* 80293D0C 00290C6C 3C 60 80 5A */ lis r3, skIdentity4f@ha
/* 80293D10 00290C70 38 63 66 70 */ addi r3, r3, skIdentity4f@l
/* 80293D14 00290C74 48 07 8A 39 */ bl SetViewPointMatrix__9CGraphicsFRC12CTransform4f
/* 80293D18 00290C78 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80293D1C 00290C7C 81 83 00 00 */ lwz r12, 0(r3)
/* 80293D20 00290C80 81 8C 00 7C */ lwz r12, 0x7c(r12)
/* 80293D24 00290C84 7D 89 03 A6 */ mtctr r12
/* 80293D28 00290C88 4E 80 04 21 */ bctrl
/* 80293D2C 00290C8C 57 65 06 3E */ clrlwi r5, r27, 0x18
/* 80293D30 00290C90 80 9C 00 04 */ lwz r4, 4(r28)
/* 80293D34 00290C94 7C 05 00 D0 */ neg r0, r5
/* 80293D38 00290C98 38 61 00 08 */ addi r3, r1, 8
/* 80293D3C 00290C9C 7C 00 2B 78 */ or r0, r0, r5
/* 80293D40 00290CA0 38 A0 01 00 */ li r5, 0x100
/* 80293D44 00290CA4 54 1E 0F FE */ srwi r30, r0, 0x1f
/* 80293D48 00290CA8 38 C0 00 E4 */ li r6, 0xe4
/* 80293D4C 00290CAC 38 E0 00 04 */ li r7, 4
/* 80293D50 00290CB0 39 00 00 00 */ li r8, 0
/* 80293D54 00290CB4 39 20 00 00 */ li r9, 0
/* 80293D58 00290CB8 39 40 00 00 */ li r10, 0
/* 80293D5C 00290CBC 48 0E 61 09 */ bl GXInitTexObj
/* 80293D60 00290CC0 C0 22 BF 40 */ lfs f1, lbl_805ADC60@sda21(r2)
/* 80293D64 00290CC4 7F C4 F3 78 */ mr r4, r30
/* 80293D68 00290CC8 7F C5 F3 78 */ mr r5, r30
/* 80293D6C 00290CCC 38 61 00 08 */ addi r3, r1, 8
/* 80293D70 00290CD0 FC 40 08 90 */ fmr f2, f1
/* 80293D74 00290CD4 38 C0 00 00 */ li r6, 0
/* 80293D78 00290CD8 FC 60 08 90 */ fmr f3, f1
/* 80293D7C 00290CDC 38 E0 00 00 */ li r7, 0
/* 80293D80 00290CE0 39 00 00 00 */ li r8, 0
/* 80293D84 00290CE4 48 0E 63 9D */ bl GXInitTexObjLOD
/* 80293D88 00290CE8 38 60 00 00 */ li r3, 0
/* 80293D8C 00290CEC 48 07 A3 BD */ bl InvalidateTexmap__8CTextureF11_GXTexMapID
/* 80293D90 00290CF0 48 0E 6A B1 */ bl GXInvalidateTexAll
/* 80293D94 00290CF4 38 61 00 08 */ addi r3, r1, 8
/* 80293D98 00290CF8 38 80 00 00 */ li r4, 0
/* 80293D9C 00290CFC 48 0E 66 F9 */ bl GXLoadTexObj
/* 80293DA0 00290D00 3C 60 80 3F */ lis r3, lbl_803ED910@ha
/* 80293DA4 00290D04 3C 80 80 5A */ lis r4, lbl_805A5EBC@ha
/* 80293DA8 00290D08 38 A3 D9 10 */ addi r5, r3, lbl_803ED910@l
/* 80293DAC 00290D0C 83 C5 00 00 */ lwz r30, 0(r5)
/* 80293DB0 00290D10 38 60 00 00 */ li r3, 0
/* 80293DB4 00290D14 83 A5 00 04 */ lwz r29, 4(r5)
/* 80293DB8 00290D18 38 84 5E BC */ addi r4, r4, lbl_805A5EBC@l
/* 80293DBC 00290D1C 83 85 00 08 */ lwz r28, 8(r5)
/* 80293DC0 00290D20 83 65 00 0C */ lwz r27, 0xc(r5)
/* 80293DC4 00290D24 48 07 64 F5 */ bl SetTevOp__9CGraphicsF12ERglTevStageRCQ213CTevCombiners8CTevPass
/* 80293DC8 00290D28 80 6D A0 68 */ lwz r3, gpRender@sda21(r13)
/* 80293DCC 00290D2C 38 80 00 00 */ li r4, 0
/* 80293DD0 00290D30 88 03 03 18 */ lbz r0, 0x318(r3)
/* 80293DD4 00290D34 54 03 E7 FE */ rlwinm r3, r0, 0x1c, 0x1f, 0x1f
/* 80293DD8 00290D38 7C 03 00 D0 */ neg r0, r3
/* 80293DDC 00290D3C 7C 00 1B 78 */ or r0, r0, r3
/* 80293DE0 00290D40 54 03 0F FE */ srwi r3, r0, 0x1f
/* 80293DE4 00290D44 48 0E 81 E1 */ bl GXSetPixelFmt
/* 80293DE8 00290D48 7F C3 F3 78 */ mr r3, r30
/* 80293DEC 00290D4C 7F 85 E3 78 */ mr r5, r28
/* 80293DF0 00290D50 7F E7 FB 78 */ mr r7, r31
/* 80293DF4 00290D54 7C 9D DA 14 */ add r4, r29, r27
/* 80293DF8 00290D58 7C DB 00 D0 */ neg r6, r27
/* 80293DFC 00290D5C 48 00 00 31 */ bl sub_80293e2c
/* 80293E00 00290D60 38 60 00 07 */ li r3, 7
/* 80293E04 00290D64 38 80 00 00 */ li r4, 0
/* 80293E08 00290D68 38 A0 00 00 */ li r5, 0
/* 80293E0C 00290D6C 38 C0 00 07 */ li r6, 7
/* 80293E10 00290D70 38 E0 00 00 */ li r7, 0
/* 80293E14 00290D74 48 07 4A 01 */ bl SetAlphaCompare__3CGXF10_GXCompareUc10_GXAlphaOp10_GXCompareUc
lbl_80293E18:
/* 80293E18 00290D78 BB 61 00 2C */ lmw r27, 0x2c(r1)
/* 80293E1C 00290D7C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80293E20 00290D80 7C 08 03 A6 */ mtlr r0
/* 80293E24 00290D84 38 21 00 40 */ addi r1, r1, 0x40
/* 80293E28 00290D88 4E 80 00 20 */ blr
.global sub_80293e2c
sub_80293e2c:
/* 80293E2C 00290D8C 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 80293E30 00290D90 7C 08 02 A6 */ mflr r0
/* 80293E34 00290D94 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 80293E38 00290D98 DB E1 00 B0 */ stfd f31, 0xb0(r1)
/* 80293E3C 00290D9C F3 E1 00 B8 */ psq_st f31, 184(r1), 0, qr0
/* 80293E40 00290DA0 DB C1 00 A0 */ stfd f30, 0xa0(r1)
/* 80293E44 00290DA4 F3 C1 00 A8 */ psq_st f30, 168(r1), 0, qr0
/* 80293E48 00290DA8 BF 21 00 84 */ stmw r25, 0x84(r1)
/* 80293E4C 00290DAC 3D 00 80 3F */ lis r8, lbl_803ED910@ha
/* 80293E50 00290DB0 7C 79 1B 78 */ mr r25, r3
/* 80293E54 00290DB4 39 48 D9 10 */ addi r10, r8, lbl_803ED910@l
/* 80293E58 00290DB8 7C 9A 23 78 */ mr r26, r4
/* 80293E5C 00290DBC 81 2A 00 00 */ lwz r9, 0(r10)
/* 80293E60 00290DC0 7C BB 2B 78 */ mr r27, r5
/* 80293E64 00290DC4 81 0A 00 04 */ lwz r8, 4(r10)
/* 80293E68 00290DC8 7C DC 33 78 */ mr r28, r6
/* 80293E6C 00290DCC 80 AA 00 08 */ lwz r5, 8(r10)
/* 80293E70 00290DD0 7C FD 3B 78 */ mr r29, r7
/* 80293E74 00290DD4 80 8A 00 0C */ lwz r4, 0xc(r10)
/* 80293E78 00290DD8 80 6A 00 10 */ lwz r3, 0x10(r10)
/* 80293E7C 00290DDC 80 0A 00 14 */ lwz r0, 0x14(r10)
/* 80293E80 00290DE0 91 21 00 24 */ stw r9, 0x24(r1)
/* 80293E84 00290DE4 91 01 00 28 */ stw r8, 0x28(r1)
/* 80293E88 00290DE8 90 A1 00 2C */ stw r5, 0x2c(r1)
/* 80293E8C 00290DEC 90 81 00 30 */ stw r4, 0x30(r1)
/* 80293E90 00290DF0 90 61 00 34 */ stw r3, 0x34(r1)
/* 80293E94 00290DF4 90 01 00 38 */ stw r0, 0x38(r1)
/* 80293E98 00290DF8 48 07 5F C5 */ bl GetProjectionState__9CGraphicsFv
/* 80293E9C 00290DFC 88 03 00 00 */ lbz r0, 0(r3)
/* 80293EA0 00290E00 3C C0 43 30 */ lis r6, 0x4330
/* 80293EA4 00290E04 80 A1 00 2C */ lwz r5, 0x2c(r1)
/* 80293EA8 00290E08 98 01 00 08 */ stb r0, 8(r1)
/* 80293EAC 00290E0C 81 01 00 30 */ lwz r8, 0x30(r1)
/* 80293EB0 00290E10 7C 85 00 D0 */ neg r4, r5
/* 80293EB4 00290E14 C0 03 00 04 */ lfs f0, 4(r3)
/* 80293EB8 00290E18 54 80 0F FE */ srwi r0, r4, 0x1f
/* 80293EBC 00290E1C 7C 80 22 14 */ add r4, r0, r4
/* 80293EC0 00290E20 54 A0 0F FE */ srwi r0, r5, 0x1f
/* 80293EC4 00290E24 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 80293EC8 00290E28 7C 87 0E 70 */ srawi r7, r4, 1
/* 80293ECC 00290E2C 7C A0 2A 14 */ add r5, r0, r5
/* 80293ED0 00290E30 55 00 0F FE */ srwi r0, r8, 0x1f
/* 80293ED4 00290E34 C0 03 00 08 */ lfs f0, 8(r3)
/* 80293ED8 00290E38 7C 88 00 D0 */ neg r4, r8
/* 80293EDC 00290E3C 7C BF 0E 70 */ srawi r31, r5, 1
/* 80293EE0 00290E40 7C A0 42 14 */ add r5, r0, r8
/* 80293EE4 00290E44 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80293EE8 00290E48 54 80 0F FE */ srwi r0, r4, 0x1f
/* 80293EEC 00290E4C 7C BE 0E 70 */ srawi r30, r5, 1
/* 80293EF0 00290E50 6C E7 80 00 */ xoris r7, r7, 0x8000
/* 80293EF4 00290E54 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 80293EF8 00290E58 7C 00 22 14 */ add r0, r0, r4
/* 80293EFC 00290E5C 7C 00 0E 70 */ srawi r0, r0, 1
/* 80293F00 00290E60 6F E5 80 00 */ xoris r5, r31, 0x8000
/* 80293F04 00290E64 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80293F08 00290E68 6F C4 80 00 */ xoris r4, r30, 0x8000
/* 80293F0C 00290E6C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80293F10 00290E70 C8 82 BF 60 */ lfd f4, lbl_805ADC80@sda21(r2)
/* 80293F14 00290E74 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 80293F18 00290E78 90 E1 00 44 */ stw r7, 0x44(r1)
/* 80293F1C 00290E7C C0 A2 BF 40 */ lfs f5, lbl_805ADC60@sda21(r2)
/* 80293F20 00290E80 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80293F24 00290E84 C0 C2 BF 54 */ lfs f6, lbl_805ADC74@sda21(r2)
/* 80293F28 00290E88 C0 03 00 14 */ lfs f0, 0x14(r3)
/* 80293F2C 00290E8C 90 C1 00 40 */ stw r6, 0x40(r1)
/* 80293F30 00290E90 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 80293F34 00290E94 C8 01 00 40 */ lfd f0, 0x40(r1)
/* 80293F38 00290E98 C0 E3 00 18 */ lfs f7, 0x18(r3)
/* 80293F3C 00290E9C 90 A1 00 4C */ stw r5, 0x4c(r1)
/* 80293F40 00290EA0 EC 20 20 28 */ fsubs f1, f0, f4
/* 80293F44 00290EA4 90 C1 00 48 */ stw r6, 0x48(r1)
/* 80293F48 00290EA8 C8 01 00 48 */ lfd f0, 0x48(r1)
/* 80293F4C 00290EAC 90 81 00 54 */ stw r4, 0x54(r1)
/* 80293F50 00290EB0 EC 40 20 28 */ fsubs f2, f0, f4
/* 80293F54 00290EB4 90 C1 00 50 */ stw r6, 0x50(r1)
/* 80293F58 00290EB8 C8 01 00 50 */ lfd f0, 0x50(r1)
/* 80293F5C 00290EBC 90 01 00 5C */ stw r0, 0x5c(r1)
/* 80293F60 00290EC0 EC 60 20 28 */ fsubs f3, f0, f4
/* 80293F64 00290EC4 90 C1 00 58 */ stw r6, 0x58(r1)
/* 80293F68 00290EC8 C8 01 00 58 */ lfd f0, 0x58(r1)
/* 80293F6C 00290ECC D0 E1 00 20 */ stfs f7, 0x20(r1)
/* 80293F70 00290ED0 EC 80 20 28 */ fsubs f4, f0, f4
/* 80293F74 00290ED4 48 07 85 E1 */ bl SetOrtho__9CGraphicsFffffff
/* 80293F78 00290ED8 3C 60 80 5A */ lis r3, skIdentity4f@ha
/* 80293F7C 00290EDC 38 63 66 70 */ addi r3, r3, skIdentity4f@l
/* 80293F80 00290EE0 48 07 86 61 */ bl SetModelMatrix__9CGraphicsFRC12CTransform4f
/* 80293F84 00290EE4 7C BF C8 50 */ subf r5, r31, r25
/* 80293F88 00290EE8 3C 80 43 30 */ lis r4, 0x4330
/* 80293F8C 00290EEC 6C A5 80 00 */ xoris r5, r5, 0x8000
/* 80293F90 00290EF0 7C 1E D0 50 */ subf r0, r30, r26
/* 80293F94 00290EF4 90 A1 00 64 */ stw r5, 0x64(r1)
/* 80293F98 00290EF8 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80293F9C 00290EFC 3C 60 80 3D */ lis r3, lbl_803D5B8C@ha
/* 80293FA0 00290F00 C8 22 BF 60 */ lfd f1, lbl_805ADC80@sda21(r2)
/* 80293FA4 00290F04 90 81 00 60 */ stw r4, 0x60(r1)
/* 80293FA8 00290F08 38 63 5B 8C */ addi r3, r3, lbl_803D5B8C@l
/* 80293FAC 00290F0C C8 01 00 60 */ lfd f0, 0x60(r1)
/* 80293FB0 00290F10 90 01 00 6C */ stw r0, 0x6c(r1)
/* 80293FB4 00290F14 EF E0 08 28 */ fsubs f31, f0, f1
/* 80293FB8 00290F18 90 81 00 68 */ stw r4, 0x68(r1)
/* 80293FBC 00290F1C C8 01 00 68 */ lfd f0, 0x68(r1)
/* 80293FC0 00290F20 EF C0 08 28 */ fsubs f30, f0, f1
/* 80293FC4 00290F24 48 07 3E 65 */ bl SetVtxDescv__3CGXFPC14_GXVtxDescList
/* 80293FC8 00290F28 48 07 89 B5 */ bl DisableAllLights__9CGraphicsFv
/* 80293FCC 00290F2C 38 60 00 00 */ li r3, 0
/* 80293FD0 00290F30 38 80 00 0F */ li r4, 0xf
/* 80293FD4 00290F34 38 A0 00 08 */ li r5, 8
/* 80293FD8 00290F38 38 C0 00 0E */ li r6, 0xe
/* 80293FDC 00290F3C 38 E0 00 0F */ li r7, 0xf
/* 80293FE0 00290F40 48 07 4C 0D */ bl SetTevColorIn__3CGXF13_GXTevStageID14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg
/* 80293FE4 00290F44 38 60 00 00 */ li r3, 0
/* 80293FE8 00290F48 38 80 00 07 */ li r4, 7
/* 80293FEC 00290F4C 38 A0 00 07 */ li r5, 7
/* 80293FF0 00290F50 38 C0 00 07 */ li r6, 7
/* 80293FF4 00290F54 38 E0 00 04 */ li r7, 4
/* 80293FF8 00290F58 48 07 4B 9D */ bl SetTevAlphaIn__3CGXF13_GXTevStageID14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg
/* 80293FFC 00290F5C 38 60 00 00 */ li r3, 0
/* 80294000 00290F60 38 80 00 00 */ li r4, 0
/* 80294004 00290F64 38 A0 00 00 */ li r5, 0
/* 80294008 00290F68 38 C0 00 FF */ li r6, 0xff
/* 8029400C 00290F6C 48 07 49 41 */ bl SetTevOrder__3CGXF13_GXTevStageID13_GXTexCoordID11_GXTexMapID12_GXChannelID
/* 80294010 00290F70 38 60 00 00 */ li r3, 0
/* 80294014 00290F74 38 80 00 00 */ li r4, 0
/* 80294018 00290F78 38 A0 00 04 */ li r5, 4
/* 8029401C 00290F7C 38 C0 00 3C */ li r6, 0x3c
/* 80294020 00290F80 38 E0 00 00 */ li r7, 0
/* 80294024 00290F84 39 00 00 7D */ li r8, 0x7d
/* 80294028 00290F88 48 07 46 A5 */ bl SetTexCoordGen__3CGXF13_GXTexCoordID13_GXTexGenType12_GXTexGenSrc9_GXTexMtxUc11_GXPTTexMtx
/* 8029402C 00290F8C 38 60 00 00 */ li r3, 0
/* 80294030 00290F90 48 07 4E 21 */ bl SetNumChans__3CGXFUc
/* 80294034 00290F94 38 60 00 01 */ li r3, 1
/* 80294038 00290F98 48 07 4D DD */ bl SetNumTexGens__3CGXFUc
/* 8029403C 00290F9C 38 60 00 01 */ li r3, 1
/* 80294040 00290FA0 48 07 4C 51 */ bl SetNumTevStages__3CGXFUc
/* 80294044 00290FA4 38 60 00 01 */ li r3, 1
/* 80294048 00290FA8 38 80 00 07 */ li r4, 7
/* 8029404C 00290FAC 38 A0 00 00 */ li r5, 0
/* 80294050 00290FB0 48 07 48 2D */ bl SetZMode__3CGXFb10_GXCompareb
/* 80294054 00290FB4 7F A4 EB 78 */ mr r4, r29
/* 80294058 00290FB8 38 60 00 00 */ li r3, 0
/* 8029405C 00290FBC 48 07 4B E9 */ bl SetTevKColor__3CGXF14_GXTevKColorIDRC8_GXColor
/* 80294060 00290FC0 38 60 00 00 */ li r3, 0
/* 80294064 00290FC4 38 80 00 0C */ li r4, 0xc
/* 80294068 00290FC8 48 07 49 79 */ bl SetTevKColorSel__3CGXF13_GXTevStageID15_GXTevKColorSel
/* 8029406C 00290FCC 38 60 00 00 */ li r3, 0
/* 80294070 00290FD0 48 0E 4A E9 */ bl GXSetCullMode
/* 80294074 00290FD4 38 60 00 98 */ li r3, 0x98
/* 80294078 00290FD8 38 80 00 00 */ li r4, 0
/* 8029407C 00290FDC 38 A0 00 04 */ li r5, 4
/* 80294080 00290FE0 48 07 45 05 */ bl Begin__3CGXF12_GXPrimitive9_GXVtxFmtUs
/* 80294084 00290FE4 3C 60 43 30 */ lis r3, 0x4330
/* 80294088 00290FE8 6F 60 80 00 */ xoris r0, r27, 0x8000
/* 8029408C 00290FEC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80294090 00290FF0 90 01 00 74 */ stw r0, 0x74(r1)
/* 80294094 00290FF4 C0 62 BF 58 */ lfs f3, lbl_805ADC78@sda21(r2)
/* 80294098 00290FF8 6F 80 80 00 */ xoris r0, r28, 0x8000
/* 8029409C 00290FFC D3 E4 80 00 */ stfs f31, 0xCC008000@l(r4)
/* 802940A0 00291000 C8 22 BF 60 */ lfd f1, lbl_805ADC80@sda21(r2)
/* 802940A4 00291004 90 61 00 70 */ stw r3, 0x70(r1)
/* 802940A8 00291008 C0 42 BF 40 */ lfs f2, lbl_805ADC60@sda21(r2)
/* 802940AC 0029100C D0 64 80 00 */ stfs f3, 0xCC008000@l(r4)
/* 802940B0 00291010 C8 01 00 70 */ lfd f0, 0x70(r1)
/* 802940B4 00291014 D3 C4 80 00 */ stfs f30, 0xCC008000@l(r4)
/* 802940B8 00291018 EC 00 08 28 */ fsubs f0, f0, f1
/* 802940BC 0029101C D0 44 80 00 */ stfs f2, 0xCC008000@l(r4)
/* 802940C0 00291020 EC 9F 00 2A */ fadds f4, f31, f0
/* 802940C4 00291024 D0 44 80 00 */ stfs f2, 0xCC008000@l(r4)
/* 802940C8 00291028 90 01 00 7C */ stw r0, 0x7c(r1)
/* 802940CC 0029102C D0 84 80 00 */ stfs f4, 0xCC008000@l(r4)
/* 802940D0 00291030 D0 64 80 00 */ stfs f3, 0xCC008000@l(r4)
/* 802940D4 00291034 D3 C4 80 00 */ stfs f30, 0xCC008000@l(r4)
/* 802940D8 00291038 90 61 00 78 */ stw r3, 0x78(r1)
/* 802940DC 0029103C D0 64 80 00 */ stfs f3, 0xCC008000@l(r4)
/* 802940E0 00291040 C8 01 00 78 */ lfd f0, 0x78(r1)
/* 802940E4 00291044 D0 44 80 00 */ stfs f2, 0xCC008000@l(r4)
/* 802940E8 00291048 EC 00 08 28 */ fsubs f0, f0, f1
/* 802940EC 0029104C D3 E4 80 00 */ stfs f31, 0xCC008000@l(r4)
/* 802940F0 00291050 EC 1E 00 2A */ fadds f0, f30, f0
/* 802940F4 00291054 D0 64 80 00 */ stfs f3, 0xCC008000@l(r4)
/* 802940F8 00291058 D0 04 80 00 */ stfs f0, 0xCC008000@l(r4)
/* 802940FC 0029105C D0 44 80 00 */ stfs f2, 0xCC008000@l(r4)
/* 80294100 00291060 D0 64 80 00 */ stfs f3, 0xCC008000@l(r4)
/* 80294104 00291064 D0 84 80 00 */ stfs f4, 0xCC008000@l(r4)
/* 80294108 00291068 D0 64 80 00 */ stfs f3, 0xCC008000@l(r4)
/* 8029410C 0029106C D0 04 80 00 */ stfs f0, 0xCC008000@l(r4)
/* 80294110 00291070 D0 64 80 00 */ stfs f3, 0xCC008000@l(r4)
/* 80294114 00291074 D0 64 80 00 */ stfs f3, 0xCC008000@l(r4)
/* 80294118 00291078 48 07 44 69 */ bl End__3CGXFv
/* 8029411C 0029107C 38 60 00 01 */ li r3, 1
/* 80294120 00291080 48 0E 4A 39 */ bl GXSetCullMode
/* 80294124 00291084 38 61 00 08 */ addi r3, r1, 8
/* 80294128 00291088 48 07 5C D9 */ bl SetProjectionState__9CGraphicsFRCQ29CGraphics16CProjectionState
/* 8029412C 0029108C E3 E1 00 B8 */ psq_l f31, 184(r1), 0, qr0
/* 80294130 00291090 CB E1 00 B0 */ lfd f31, 0xb0(r1)
/* 80294134 00291094 E3 C1 00 A8 */ psq_l f30, 168(r1), 0, qr0
/* 80294138 00291098 CB C1 00 A0 */ lfd f30, 0xa0(r1)
/* 8029413C 0029109C BB 21 00 84 */ lmw r25, 0x84(r1)
/* 80294140 002910A0 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 80294144 002910A4 7C 08 03 A6 */ mtlr r0
/* 80294148 002910A8 38 21 00 C0 */ addi r1, r1, 0xc0
/* 8029414C 002910AC 4E 80 00 20 */ blr
.global Update__12CNESEmulatorFv
Update__12CNESEmulatorFv:
/* 80294150 002910B0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80294154 002910B4 7C 08 02 A6 */ mflr r0
/* 80294158 002910B8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8029415C 002910BC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80294160 002910C0 7C 7F 1B 78 */ mr r31, r3
/* 80294164 002910C4 80 63 00 00 */ lwz r3, 0(r3)
/* 80294168 002910C8 28 03 00 00 */ cmplwi r3, 0
/* 8029416C 002910CC 41 82 00 FC */ beq lbl_80294268
/* 80294170 002910D0 81 83 00 00 */ lwz r12, 0(r3)
/* 80294174 002910D4 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80294178 002910D8 7D 89 03 A6 */ mtctr r12
/* 8029417C 002910DC 4E 80 04 21 */ bctrl
/* 80294180 002910E0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80294184 002910E4 41 82 01 58 */ beq lbl_802942DC
/* 80294188 002910E8 3C 60 80 3D */ lis r3, lbl_803D5BA4@ha
/* 8029418C 002910EC 3C 80 80 3D */ lis r4, lbl_803D6AA8@ha
/* 80294190 002910F0 38 A3 5B A4 */ addi r5, r3, lbl_803D5BA4@l
/* 80294194 002910F4 38 C4 6A A8 */ addi r6, r4, lbl_803D6AA8@l
/* 80294198 002910F8 38 61 00 08 */ addi r3, r1, 8
/* 8029419C 002910FC 38 80 FF FF */ li r4, -1
/* 802941A0 00291100 48 04 22 35 */ bl __ct__10CCallStackFUiPCcPCc
/* 802941A4 00291104 80 BF 00 10 */ lwz r5, 0x10(r31)
/* 802941A8 00291108 7C 67 1B 78 */ mr r7, r3
/* 802941AC 0029110C 38 80 00 02 */ li r4, 2
/* 802941B0 00291110 38 C0 00 00 */ li r6, 0
/* 802941B4 00291114 80 65 00 20 */ lwz r3, 0x20(r5)
/* 802941B8 00291118 38 A0 00 01 */ li r5, 1
/* 802941BC 0029111C 48 08 17 D9 */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 802941C0 00291120 90 7F 00 14 */ stw r3, 0x14(r31)
/* 802941C4 00291124 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 802941C8 00291128 80 9F 00 14 */ lwz r4, 0x14(r31)
/* 802941CC 0029112C 48 0E DF C5 */ bl OSLink
/* 802941D0 00291130 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 802941D4 00291134 81 83 00 34 */ lwz r12, 0x34(r3)
/* 802941D8 00291138 7D 89 03 A6 */ mtctr r12
/* 802941DC 0029113C 4E 80 04 21 */ bctrl
/* 802941E0 00291140 80 6D A5 A0 */ lwz r3, lbl_805A9160@sda21(r13)
/* 802941E4 00291144 81 83 00 00 */ lwz r12, 0(r3)
/* 802941E8 00291148 7D 89 03 A6 */ mtctr r12
/* 802941EC 0029114C 4E 80 04 21 */ bctrl
/* 802941F0 00291150 80 8D A5 A0 */ lwz r4, lbl_805A9160@sda21(r13)
/* 802941F4 00291154 38 A0 00 00 */ li r5, 0
/* 802941F8 00291158 80 7F 00 08 */ lwz r3, 8(r31)
/* 802941FC 0029115C 81 84 00 0C */ lwz r12, 0xc(r4)
/* 80294200 00291160 80 9F 00 0C */ lwz r4, 0xc(r31)
/* 80294204 00291164 80 DF 00 18 */ lwz r6, 0x18(r31)
/* 80294208 00291168 80 FF 00 1C */ lwz r7, 0x1c(r31)
/* 8029420C 0029116C 7D 89 03 A6 */ mtctr r12
/* 80294210 00291170 4E 80 04 21 */ bctrl
/* 80294214 00291174 80 7F 00 08 */ lwz r3, 8(r31)
/* 80294218 00291178 38 00 00 00 */ li r0, 0
/* 8029421C 0029117C 90 03 00 20 */ stw r0, 0x20(r3)
/* 80294220 00291180 80 7F 00 08 */ lwz r3, 8(r31)
/* 80294224 00291184 90 03 00 28 */ stw r0, 0x28(r3)
/* 80294228 00291188 80 7F 00 08 */ lwz r3, 8(r31)
/* 8029422C 0029118C 90 03 00 24 */ stw r0, 0x24(r3)
/* 80294230 00291190 80 7F 00 08 */ lwz r3, 8(r31)
/* 80294234 00291194 90 03 00 2C */ stw r0, 0x2c(r3)
/* 80294238 00291198 80 7F 00 00 */ lwz r3, 0(r31)
/* 8029423C 0029119C 28 03 00 00 */ cmplwi r3, 0
/* 80294240 002911A0 41 82 00 18 */ beq lbl_80294258
/* 80294244 002911A4 81 83 00 00 */ lwz r12, 0(r3)
/* 80294248 002911A8 38 80 00 01 */ li r4, 1
/* 8029424C 002911AC 81 8C 00 08 */ lwz r12, 8(r12)
/* 80294250 002911B0 7D 89 03 A6 */ mtctr r12
/* 80294254 002911B4 4E 80 04 21 */ bctrl
lbl_80294258:
/* 80294258 002911B8 38 00 00 00 */ li r0, 0
/* 8029425C 002911BC 90 1F 00 00 */ stw r0, 0(r31)
/* 80294260 002911C0 48 00 00 08 */ b lbl_80294268
/* 80294264 002911C4 48 00 00 78 */ b lbl_802942DC
lbl_80294268:
/* 80294268 002911C8 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8029426C 002911CC 38 9F 00 21 */ addi r4, r31, 0x21
/* 80294270 002911D0 38 63 08 00 */ addi r3, r3, 0x800
/* 80294274 002911D4 48 00 07 15 */ bl CheckForGameOver__12CNESEmulatorFPCcPc
/* 80294278 002911D8 98 7F 00 20 */ stb r3, 0x20(r31)
/* 8029427C 002911DC 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 80294280 002911E0 38 63 08 00 */ addi r3, r3, 0x800
/* 80294284 002911E4 48 00 0A 45 */ bl CheckForPasswordEntryScreen__12CNESEmulatorFPCc
/* 80294288 002911E8 90 7F 00 34 */ stw r3, 0x34(r31)
/* 8029428C 002911EC 80 1F 00 34 */ lwz r0, 0x34(r31)
/* 80294290 002911F0 2C 00 00 01 */ cmpwi r0, 1
/* 80294294 002911F4 40 82 00 2C */ bne lbl_802942C0
/* 80294298 002911F8 88 1F 00 38 */ lbz r0, 0x38(r31)
/* 8029429C 002911FC 28 00 00 00 */ cmplwi r0, 0
/* 802942A0 00291200 41 82 00 20 */ beq lbl_802942C0
/* 802942A4 00291204 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 802942A8 00291208 38 BF 00 39 */ addi r5, r31, 0x39
/* 802942AC 0029120C 80 9F 00 1C */ lwz r4, 0x1c(r31)
/* 802942B0 00291210 38 63 08 00 */ addi r3, r3, 0x800
/* 802942B4 00291214 48 00 08 39 */ bl SetPasswordIntoEntryScreen__12CNESEmulatorFPCcPcPCc
/* 802942B8 00291218 38 00 00 00 */ li r0, 0
/* 802942BC 0029121C 98 1F 00 38 */ stb r0, 0x38(r31)
lbl_802942C0:
/* 802942C0 00291220 80 8D A5 A0 */ lwz r4, lbl_805A9160@sda21(r13)
/* 802942C4 00291224 38 A0 00 00 */ li r5, 0
/* 802942C8 00291228 80 7F 00 08 */ lwz r3, 8(r31)
/* 802942CC 0029122C 81 84 00 10 */ lwz r12, 0x10(r4)
/* 802942D0 00291230 80 9F 00 0C */ lwz r4, 0xc(r31)
/* 802942D4 00291234 7D 89 03 A6 */ mtctr r12
/* 802942D8 00291238 4E 80 04 21 */ bctrl
lbl_802942DC:
/* 802942DC 0029123C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802942E0 00291240 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802942E4 00291244 7C 08 03 A6 */ mtlr r0
/* 802942E8 00291248 38 21 00 20 */ addi r1, r1, 0x20
/* 802942EC 0029124C 4E 80 00 20 */ blr
.global ProcessUserInput__12CNESEmulatorFRC11CFinalInputi
ProcessUserInput__12CNESEmulatorFRC11CFinalInputi:
/* 802942F0 00291250 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802942F4 00291254 7C 08 02 A6 */ mflr r0
/* 802942F8 00291258 90 01 00 24 */ stw r0, 0x24(r1)
/* 802942FC 0029125C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80294300 00291260 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80294304 00291264 7C BE 2B 78 */ mr r30, r5
/* 80294308 00291268 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8029430C 0029126C 7C 9D 23 78 */ mr r29, r4
/* 80294310 00291270 93 81 00 10 */ stw r28, 0x10(r1)
/* 80294314 00291274 7C 7C 1B 78 */ mr r28, r3
/* 80294318 00291278 80 03 00 00 */ lwz r0, 0(r3)
/* 8029431C 0029127C 28 00 00 00 */ cmplwi r0, 0
/* 80294320 00291280 40 82 01 E4 */ bne lbl_80294504
/* 80294324 00291284 88 1D 00 2C */ lbz r0, 0x2c(r29)
/* 80294328 00291288 3B E0 00 00 */ li r31, 0
/* 8029432C 0029128C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80294330 00291290 40 82 00 24 */ bne lbl_80294354
/* 80294334 00291294 C0 5D 00 0C */ lfs f2, 0xc(r29)
/* 80294338 00291298 C0 22 BF 40 */ lfs f1, lbl_805ADC60@sda21(r2)
/* 8029433C 0029129C FC 02 08 40 */ fcmpo cr0, f2, f1
/* 80294340 002912A0 40 81 00 08 */ ble lbl_80294348
/* 80294344 002912A4 FC 20 10 90 */ fmr f1, f2
lbl_80294348:
/* 80294348 002912A8 C0 02 BF 88 */ lfs f0, lbl_805ADCA8@sda21(r2)
/* 8029434C 002912AC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80294350 002912B0 40 81 00 0C */ ble lbl_8029435C
lbl_80294354:
/* 80294354 002912B4 83 E2 BF 68 */ lwz r31, lbl_805ADC88@sda21(r2)
/* 80294358 002912B8 48 00 00 30 */ b lbl_80294388
lbl_8029435C:
/* 8029435C 002912BC 88 1D 00 2D */ lbz r0, 0x2d(r29)
/* 80294360 002912C0 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 80294364 002912C4 40 82 00 20 */ bne lbl_80294384
/* 80294368 002912C8 C0 22 BF 40 */ lfs f1, lbl_805ADC60@sda21(r2)
/* 8029436C 002912CC FC 02 08 40 */ fcmpo cr0, f2, f1
/* 80294370 002912D0 40 80 00 08 */ bge lbl_80294378
/* 80294374 002912D4 FC 20 10 50 */ fneg f1, f2
lbl_80294378:
/* 80294378 002912D8 C0 02 BF 88 */ lfs f0, lbl_805ADCA8@sda21(r2)
/* 8029437C 002912DC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80294380 002912E0 40 81 00 08 */ ble lbl_80294388
lbl_80294384:
/* 80294384 002912E4 83 E2 BF 6C */ lwz r31, lbl_805ADC8C@sda21(r2)
lbl_80294388:
/* 80294388 002912E8 88 1D 00 2D */ lbz r0, 0x2d(r29)
/* 8029438C 002912EC 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 80294390 002912F0 40 82 00 24 */ bne lbl_802943B4
/* 80294394 002912F4 C0 5D 00 08 */ lfs f2, 8(r29)
/* 80294398 002912F8 C0 22 BF 40 */ lfs f1, lbl_805ADC60@sda21(r2)
/* 8029439C 002912FC FC 02 08 40 */ fcmpo cr0, f2, f1
/* 802943A0 00291300 40 80 00 08 */ bge lbl_802943A8
/* 802943A4 00291304 FC 20 10 50 */ fneg f1, f2
lbl_802943A8:
/* 802943A8 00291308 C0 02 BF 88 */ lfs f0, lbl_805ADCA8@sda21(r2)
/* 802943AC 0029130C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802943B0 00291310 40 81 00 10 */ ble lbl_802943C0
lbl_802943B4:
/* 802943B4 00291314 80 02 BF 70 */ lwz r0, lbl_805ADC90@sda21(r2)
/* 802943B8 00291318 7F FF 03 78 */ or r31, r31, r0
/* 802943BC 0029131C 48 00 00 38 */ b lbl_802943F4
lbl_802943C0:
/* 802943C0 00291320 88 1D 00 2D */ lbz r0, 0x2d(r29)
/* 802943C4 00291324 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 802943C8 00291328 40 82 00 24 */ bne lbl_802943EC
/* 802943CC 0029132C C0 02 BF 40 */ lfs f0, lbl_805ADC60@sda21(r2)
/* 802943D0 00291330 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 802943D4 00291334 40 81 00 08 */ ble lbl_802943DC
/* 802943D8 00291338 48 00 00 08 */ b lbl_802943E0
lbl_802943DC:
/* 802943DC 0029133C FC 40 00 90 */ fmr f2, f0
lbl_802943E0:
/* 802943E0 00291340 C0 02 BF 88 */ lfs f0, lbl_805ADCA8@sda21(r2)
/* 802943E4 00291344 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 802943E8 00291348 40 81 00 0C */ ble lbl_802943F4
lbl_802943EC:
/* 802943EC 0029134C 80 02 BF 74 */ lwz r0, lbl_805ADC94@sda21(r2)
/* 802943F0 00291350 7F FF 03 78 */ or r31, r31, r0
lbl_802943F4:
/* 802943F4 00291354 7F 83 E3 78 */ mr r3, r28
/* 802943F8 00291358 4B FF F7 55 */ bl GetPasswordEntryState__12CNESEmulatorFv
/* 802943FC 0029135C 2C 03 00 00 */ cmpwi r3, 0
/* 80294400 00291360 40 82 00 10 */ bne lbl_80294410
/* 80294404 00291364 80 1D 00 04 */ lwz r0, 4(r29)
/* 80294408 00291368 2C 00 00 00 */ cmpwi r0, 0
/* 8029440C 0029136C 41 82 00 30 */ beq lbl_8029443C
lbl_80294410:
/* 80294410 00291370 88 1D 00 2C */ lbz r0, 0x2c(r29)
/* 80294414 00291374 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80294418 00291378 41 82 00 0C */ beq lbl_80294424
/* 8029441C 0029137C 80 02 BF 78 */ lwz r0, lbl_805ADC98@sda21(r2)
/* 80294420 00291380 7F FF 03 78 */ or r31, r31, r0
lbl_80294424:
/* 80294424 00291384 88 1D 00 2C */ lbz r0, 0x2c(r29)
/* 80294428 00291388 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8029442C 0029138C 41 82 00 48 */ beq lbl_80294474
/* 80294430 00291390 80 02 BF 7C */ lwz r0, lbl_805ADC9C@sda21(r2)
/* 80294434 00291394 7F FF 03 78 */ or r31, r31, r0
/* 80294438 00291398 48 00 00 3C */ b lbl_80294474
lbl_8029443C:
/* 8029443C 0029139C 88 7D 00 2C */ lbz r3, 0x2c(r29)
/* 80294440 002913A0 54 60 D7 FF */ rlwinm. r0, r3, 0x1a, 0x1f, 0x1f
/* 80294444 002913A4 40 82 00 0C */ bne lbl_80294450
/* 80294448 002913A8 54 60 DF FF */ rlwinm. r0, r3, 0x1b, 0x1f, 0x1f
/* 8029444C 002913AC 41 82 00 0C */ beq lbl_80294458
lbl_80294450:
/* 80294450 002913B0 80 02 BF 78 */ lwz r0, lbl_805ADC98@sda21(r2)
/* 80294454 002913B4 7F FF 03 78 */ or r31, r31, r0
lbl_80294458:
/* 80294458 002913B8 88 7D 00 2C */ lbz r3, 0x2c(r29)
/* 8029445C 002913BC 54 60 CF FF */ rlwinm. r0, r3, 0x19, 0x1f, 0x1f
/* 80294460 002913C0 40 82 00 0C */ bne lbl_8029446C
/* 80294464 002913C4 54 60 E7 FF */ rlwinm. r0, r3, 0x1c, 0x1f, 0x1f
/* 80294468 002913C8 41 82 00 0C */ beq lbl_80294474
lbl_8029446C:
/* 8029446C 002913CC 80 02 BF 7C */ lwz r0, lbl_805ADC9C@sda21(r2)
/* 80294470 002913D0 7F FF 03 78 */ or r31, r31, r0
lbl_80294474:
/* 80294474 002913D4 88 1D 00 2C */ lbz r0, 0x2c(r29)
/* 80294478 002913D8 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 8029447C 002913DC 41 82 00 0C */ beq lbl_80294488
/* 80294480 002913E0 80 02 BF 80 */ lwz r0, lbl_805ADCA0@sda21(r2)
/* 80294484 002913E4 7F FF 03 78 */ or r31, r31, r0
lbl_80294488:
/* 80294488 002913E8 88 1D 00 2D */ lbz r0, 0x2d(r29)
/* 8029448C 002913EC 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 80294490 002913F0 41 82 00 0C */ beq lbl_8029449C
/* 80294494 002913F4 80 02 BF 84 */ lwz r0, lbl_805ADCA4@sda21(r2)
/* 80294498 002913F8 7F FF 03 78 */ or r31, r31, r0
lbl_8029449C:
/* 8029449C 002913FC 2C 1E 00 04 */ cmpwi r30, 4
/* 802944A0 00291400 40 82 00 0C */ bne lbl_802944AC
/* 802944A4 00291404 80 1D 00 04 */ lwz r0, 4(r29)
/* 802944A8 00291408 48 00 00 08 */ b lbl_802944B0
lbl_802944AC:
/* 802944AC 0029140C 7F C0 F3 78 */ mr r0, r30
lbl_802944B0:
/* 802944B0 00291410 2C 00 00 02 */ cmpwi r0, 2
/* 802944B4 00291414 41 82 00 3C */ beq lbl_802944F0
/* 802944B8 00291418 40 80 00 14 */ bge lbl_802944CC
/* 802944BC 0029141C 2C 00 00 00 */ cmpwi r0, 0
/* 802944C0 00291420 41 82 00 18 */ beq lbl_802944D8
/* 802944C4 00291424 40 80 00 20 */ bge lbl_802944E4
/* 802944C8 00291428 48 00 00 3C */ b lbl_80294504
lbl_802944CC:
/* 802944CC 0029142C 2C 00 00 04 */ cmpwi r0, 4
/* 802944D0 00291430 40 80 00 34 */ bge lbl_80294504
/* 802944D4 00291434 48 00 00 28 */ b lbl_802944FC
lbl_802944D8:
/* 802944D8 00291438 80 7C 00 08 */ lwz r3, 8(r28)
/* 802944DC 0029143C 93 E3 00 20 */ stw r31, 0x20(r3)
/* 802944E0 00291440 48 00 00 24 */ b lbl_80294504
lbl_802944E4:
/* 802944E4 00291444 80 7C 00 08 */ lwz r3, 8(r28)
/* 802944E8 00291448 93 E3 00 28 */ stw r31, 0x28(r3)
/* 802944EC 0029144C 48 00 00 18 */ b lbl_80294504
lbl_802944F0:
/* 802944F0 00291450 80 7C 00 08 */ lwz r3, 8(r28)
/* 802944F4 00291454 93 E3 00 24 */ stw r31, 0x24(r3)
/* 802944F8 00291458 48 00 00 0C */ b lbl_80294504
lbl_802944FC:
/* 802944FC 0029145C 80 7C 00 08 */ lwz r3, 8(r28)
/* 80294500 00291460 93 E3 00 2C */ stw r31, 0x2c(r3)
lbl_80294504:
/* 80294504 00291464 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80294508 00291468 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8029450C 0029146C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80294510 00291470 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80294514 00291474 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80294518 00291478 7C 08 03 A6 */ mtlr r0
/* 8029451C 0029147C 38 21 00 20 */ addi r1, r1, 0x20
/* 80294520 00291480 4E 80 00 20 */ blr
.global __dt__12CNESEmulatorFv
__dt__12CNESEmulatorFv:
/* 80294524 00291484 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80294528 00291488 7C 08 02 A6 */ mflr r0
/* 8029452C 0029148C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80294530 00291490 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80294534 00291494 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80294538 00291498 7C 9E 23 78 */ mr r30, r4
/* 8029453C 0029149C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80294540 002914A0 7C 7D 1B 79 */ or. r29, r3, r3
/* 80294544 002914A4 41 82 01 04 */ beq lbl_80294648
/* 80294548 002914A8 80 1D 00 00 */ lwz r0, 0(r29)
/* 8029454C 002914AC 28 00 00 00 */ cmplwi r0, 0
/* 80294550 002914B0 40 82 00 58 */ bne lbl_802945A8
/* 80294554 002914B4 80 6D A5 A0 */ lwz r3, lbl_805A9160@sda21(r13)
/* 80294558 002914B8 81 83 00 08 */ lwz r12, 8(r3)
/* 8029455C 002914BC 7D 89 03 A6 */ mtctr r12
/* 80294560 002914C0 4E 80 04 21 */ bctrl
/* 80294564 002914C4 7C 60 1B 78 */ mr r0, r3
/* 80294568 002914C8 38 80 00 00 */ li r4, 0
/* 8029456C 002914CC 38 A0 00 40 */ li r5, 0x40
/* 80294570 002914D0 38 C0 00 40 */ li r6, 0x40
/* 80294574 002914D4 7C 1F 03 78 */ mr r31, r0
/* 80294578 002914D8 38 E0 00 00 */ li r7, 0
/* 8029457C 002914DC 48 10 A1 A9 */ bl sndStreamMixParameter
/* 80294580 002914E0 7F E3 FB 78 */ mr r3, r31
/* 80294584 002914E4 48 10 BF 9D */ bl sndStreamDeactivate
/* 80294588 002914E8 7F E3 FB 78 */ mr r3, r31
/* 8029458C 002914EC 48 10 B2 69 */ bl sndStreamFree
/* 80294590 002914F0 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 80294594 002914F4 81 83 00 38 */ lwz r12, 0x38(r3)
/* 80294598 002914F8 7D 89 03 A6 */ mtctr r12
/* 8029459C 002914FC 4E 80 04 21 */ bctrl
/* 802945A0 00291500 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 802945A4 00291504 48 0E E0 81 */ bl OSUnlink
lbl_802945A8:
/* 802945A8 00291508 80 7D 00 08 */ lwz r3, 8(r29)
/* 802945AC 0029150C 80 63 00 00 */ lwz r3, 0(r3)
/* 802945B0 00291510 48 08 13 81 */ bl Free__7CMemoryFPCv
/* 802945B4 00291514 80 7D 00 08 */ lwz r3, 8(r29)
/* 802945B8 00291518 80 63 00 0C */ lwz r3, 0xc(r3)
/* 802945BC 0029151C 48 08 13 75 */ bl Free__7CMemoryFPCv
/* 802945C0 00291520 80 7D 00 08 */ lwz r3, 8(r29)
/* 802945C4 00291524 48 08 13 6D */ bl Free__7CMemoryFPCv
/* 802945C8 00291528 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 802945CC 0029152C 48 08 13 65 */ bl Free__7CMemoryFPCv
/* 802945D0 00291530 80 7D 00 18 */ lwz r3, 0x18(r29)
/* 802945D4 00291534 48 08 13 5D */ bl Free__7CMemoryFPCv
/* 802945D8 00291538 80 7D 00 1C */ lwz r3, 0x1c(r29)
/* 802945DC 0029153C 48 08 13 55 */ bl Free__7CMemoryFPCv
/* 802945E0 00291540 80 6D A5 A0 */ lwz r3, lbl_805A9160@sda21(r13)
/* 802945E4 00291544 48 08 13 4D */ bl Free__7CMemoryFPCv
/* 802945E8 00291548 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 802945EC 0029154C 48 08 13 45 */ bl Free__7CMemoryFPCv
/* 802945F0 00291550 80 7D 00 14 */ lwz r3, 0x14(r29)
/* 802945F4 00291554 28 03 00 00 */ cmplwi r3, 0
/* 802945F8 00291558 41 82 00 08 */ beq lbl_80294600
/* 802945FC 0029155C 48 08 13 35 */ bl Free__7CMemoryFPCv
lbl_80294600:
/* 80294600 00291560 34 1D 00 04 */ addic. r0, r29, 4
/* 80294604 00291564 41 82 00 0C */ beq lbl_80294610
/* 80294608 00291568 80 7D 00 04 */ lwz r3, 4(r29)
/* 8029460C 0029156C 48 08 13 25 */ bl Free__7CMemoryFPCv
lbl_80294610:
/* 80294610 00291570 28 1D 00 00 */ cmplwi r29, 0
/* 80294614 00291574 41 82 00 24 */ beq lbl_80294638
/* 80294618 00291578 80 7D 00 00 */ lwz r3, 0(r29)
/* 8029461C 0029157C 28 03 00 00 */ cmplwi r3, 0
/* 80294620 00291580 41 82 00 18 */ beq lbl_80294638
/* 80294624 00291584 81 83 00 00 */ lwz r12, 0(r3)
/* 80294628 00291588 38 80 00 01 */ li r4, 1
/* 8029462C 0029158C 81 8C 00 08 */ lwz r12, 8(r12)
/* 80294630 00291590 7D 89 03 A6 */ mtctr r12
/* 80294634 00291594 4E 80 04 21 */ bctrl
lbl_80294638:
/* 80294638 00291598 7F C0 07 35 */ extsh. r0, r30
/* 8029463C 0029159C 40 81 00 0C */ ble lbl_80294648
/* 80294640 002915A0 7F A3 EB 78 */ mr r3, r29
/* 80294644 002915A4 48 08 12 ED */ bl Free__7CMemoryFPCv
lbl_80294648:
/* 80294648 002915A8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8029464C 002915AC 7F A3 EB 78 */ mr r3, r29
/* 80294650 002915B0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80294654 002915B4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80294658 002915B8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8029465C 002915BC 7C 08 03 A6 */ mtlr r0
/* 80294660 002915C0 38 21 00 20 */ addi r1, r1, 0x20
/* 80294664 002915C4 4E 80 00 20 */ blr
.global __ct__12CNESEmulatorFv
__ct__12CNESEmulatorFv:
/* 80294668 002915C8 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 8029466C 002915CC 7C 08 02 A6 */ mflr r0
/* 80294670 002915D0 3C 80 80 3D */ lis r4, lbl_803D5BA4@ha
/* 80294674 002915D4 90 01 00 94 */ stw r0, 0x94(r1)
/* 80294678 002915D8 38 A4 5B A4 */ addi r5, r4, lbl_803D5BA4@l
/* 8029467C 002915DC 38 00 00 00 */ li r0, 0
/* 80294680 002915E0 38 80 FF FF */ li r4, -1
/* 80294684 002915E4 93 E1 00 8C */ stw r31, 0x8c(r1)
/* 80294688 002915E8 7C 7F 1B 78 */ mr r31, r3
/* 8029468C 002915EC 3C 60 80 3D */ lis r3, lbl_803D6AA8@ha
/* 80294690 002915F0 93 C1 00 88 */ stw r30, 0x88(r1)
/* 80294694 002915F4 38 C3 6A A8 */ addi r6, r3, lbl_803D6AA8@l
/* 80294698 002915F8 38 61 00 48 */ addi r3, r1, 0x48
/* 8029469C 002915FC 90 1F 00 00 */ stw r0, 0(r31)
/* 802946A0 00291600 48 04 1D 35 */ bl __ct__10CCallStackFUiPCcPCc
/* 802946A4 00291604 3C A0 00 02 */ lis r5, 0x0001C800@ha
/* 802946A8 00291608 7C 67 1B 78 */ mr r7, r3
/* 802946AC 0029160C 38 65 C8 00 */ addi r3, r5, 0x0001C800@l
/* 802946B0 00291610 38 80 00 02 */ li r4, 2
/* 802946B4 00291614 38 A0 00 01 */ li r5, 1
/* 802946B8 00291618 38 C0 00 00 */ li r6, 0
/* 802946BC 0029161C 48 08 12 D9 */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 802946C0 00291620 90 7F 00 04 */ stw r3, 4(r31)
/* 802946C4 00291624 38 00 00 00 */ li r0, 0
/* 802946C8 00291628 3C 80 80 3D */ lis r4, lbl_803D5BA4@ha
/* 802946CC 0029162C 3C 60 80 3D */ lis r3, lbl_803D6AA8@ha
/* 802946D0 00291630 90 1F 00 08 */ stw r0, 8(r31)
/* 802946D4 00291634 38 A4 5B A4 */ addi r5, r4, lbl_803D5BA4@l
/* 802946D8 00291638 38 C3 6A A8 */ addi r6, r3, lbl_803D6AA8@l
/* 802946DC 0029163C 38 61 00 40 */ addi r3, r1, 0x40
/* 802946E0 00291640 90 1F 00 0C */ stw r0, 0xc(r31)
/* 802946E4 00291644 38 80 FF FF */ li r4, -1
/* 802946E8 00291648 90 1F 00 10 */ stw r0, 0x10(r31)
/* 802946EC 0029164C 90 1F 00 14 */ stw r0, 0x14(r31)
/* 802946F0 00291650 90 1F 00 18 */ stw r0, 0x18(r31)
/* 802946F4 00291654 90 1F 00 1C */ stw r0, 0x1c(r31)
/* 802946F8 00291658 98 1F 00 20 */ stb r0, 0x20(r31)
/* 802946FC 0029165C 90 1F 00 34 */ stw r0, 0x34(r31)
/* 80294700 00291660 98 1F 00 38 */ stb r0, 0x38(r31)
/* 80294704 00291664 48 04 1C D1 */ bl __ct__10CCallStackFUiPCcPCc
/* 80294708 00291668 7C 67 1B 78 */ mr r7, r3
/* 8029470C 0029166C 38 60 00 20 */ li r3, 0x20
/* 80294710 00291670 38 80 00 02 */ li r4, 2
/* 80294714 00291674 38 A0 00 01 */ li r5, 1
/* 80294718 00291678 38 C0 00 00 */ li r6, 0
/* 8029471C 0029167C 48 08 12 79 */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 80294720 00291680 3C A0 80 3D */ lis r5, lbl_803D5BA4@ha
/* 80294724 00291684 3C 80 80 3D */ lis r4, lbl_803D6AA8@ha
/* 80294728 00291688 90 6D A5 A0 */ stw r3, lbl_805A9160@sda21(r13)
/* 8029472C 0029168C 38 C4 6A A8 */ addi r6, r4, lbl_803D6AA8@l
/* 80294730 00291690 38 A5 5B A4 */ addi r5, r5, lbl_803D5BA4@l
/* 80294734 00291694 38 61 00 38 */ addi r3, r1, 0x38
/* 80294738 00291698 38 80 FF FF */ li r4, -1
/* 8029473C 0029169C 48 04 1C 99 */ bl __ct__10CCallStackFUiPCcPCc
/* 80294740 002916A0 3C A0 00 01 */ lis r5, 0x00008E70@ha
/* 80294744 002916A4 7C 67 1B 78 */ mr r7, r3
/* 80294748 002916A8 38 65 8E 70 */ addi r3, r5, 0x00008E70@l
/* 8029474C 002916AC 38 80 00 02 */ li r4, 2
/* 80294750 002916B0 38 A0 00 01 */ li r5, 1
/* 80294754 002916B4 38 C0 00 00 */ li r6, 0
/* 80294758 002916B8 48 08 12 3D */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 8029475C 002916BC 90 7F 00 08 */ stw r3, 8(r31)
/* 80294760 002916C0 3C 80 80 3D */ lis r4, lbl_803D5BA4@ha
/* 80294764 002916C4 3C 60 80 3D */ lis r3, lbl_803D6AA8@ha
/* 80294768 002916C8 3C 00 00 02 */ lis r0, 2
/* 8029476C 002916CC 80 FF 00 08 */ lwz r7, 8(r31)
/* 80294770 002916D0 38 A4 5B A4 */ addi r5, r4, lbl_803D5BA4@l
/* 80294774 002916D4 38 C3 6A A8 */ addi r6, r3, lbl_803D6AA8@l
/* 80294778 002916D8 38 61 00 30 */ addi r3, r1, 0x30
/* 8029477C 002916DC 90 07 00 48 */ stw r0, 0x48(r7)
/* 80294780 002916E0 38 80 FF FF */ li r4, -1
/* 80294784 002916E4 48 04 1C 51 */ bl __ct__10CCallStackFUiPCcPCc
/* 80294788 002916E8 80 BF 00 08 */ lwz r5, 8(r31)
/* 8029478C 002916EC 7C 67 1B 78 */ mr r7, r3
/* 80294790 002916F0 38 80 00 02 */ li r4, 2
/* 80294794 002916F4 38 C0 00 00 */ li r6, 0
/* 80294798 002916F8 80 65 00 48 */ lwz r3, 0x48(r5)
/* 8029479C 002916FC 38 A0 00 01 */ li r5, 1
/* 802947A0 00291700 48 08 11 F5 */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 802947A4 00291704 80 DF 00 08 */ lwz r6, 8(r31)
/* 802947A8 00291708 3C E0 00 01 */ lis r7, 0x00008000@ha
/* 802947AC 0029170C 3C A0 80 3D */ lis r5, lbl_803D5BA4@ha
/* 802947B0 00291710 3C 80 80 3D */ lis r4, lbl_803D6AA8@ha
/* 802947B4 00291714 90 66 00 00 */ stw r3, 0(r6)
/* 802947B8 00291718 38 C4 6A A8 */ addi r6, r4, lbl_803D6AA8@l
/* 802947BC 0029171C 38 07 80 00 */ addi r0, r7, 0x00008000@l
/* 802947C0 00291720 38 A5 5B A4 */ addi r5, r5, lbl_803D5BA4@l
/* 802947C4 00291724 80 9F 00 08 */ lwz r4, 8(r31)
/* 802947C8 00291728 38 61 00 28 */ addi r3, r1, 0x28
/* 802947CC 0029172C 90 04 00 08 */ stw r0, 8(r4)
/* 802947D0 00291730 38 80 FF FF */ li r4, -1
/* 802947D4 00291734 48 04 1C 01 */ bl __ct__10CCallStackFUiPCcPCc
/* 802947D8 00291738 80 BF 00 08 */ lwz r5, 8(r31)
/* 802947DC 0029173C 7C 67 1B 78 */ mr r7, r3
/* 802947E0 00291740 38 80 00 02 */ li r4, 2
/* 802947E4 00291744 38 C0 00 00 */ li r6, 0
/* 802947E8 00291748 80 65 00 08 */ lwz r3, 8(r5)
/* 802947EC 0029174C 38 A0 00 01 */ li r5, 1
/* 802947F0 00291750 48 08 11 A5 */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 802947F4 00291754 80 FF 00 08 */ lwz r7, 8(r31)
/* 802947F8 00291758 3C A0 80 3D */ lis r5, lbl_803D5BA4@ha
/* 802947FC 0029175C 3C C0 80 3D */ lis r6, lbl_803D6AA8@ha
/* 80294800 00291760 38 80 FF FF */ li r4, -1
/* 80294804 00291764 90 67 00 0C */ stw r3, 0xc(r7)
/* 80294808 00291768 38 A5 5B A4 */ addi r5, r5, lbl_803D5BA4@l
/* 8029480C 0029176C 38 C6 6A A8 */ addi r6, r6, lbl_803D6AA8@l
/* 80294810 00291770 38 61 00 20 */ addi r3, r1, 0x20
/* 80294814 00291774 80 1F 00 04 */ lwz r0, 4(r31)
/* 80294818 00291778 80 FF 00 08 */ lwz r7, 8(r31)
/* 8029481C 0029177C 90 07 00 10 */ stw r0, 0x10(r7)
/* 80294820 00291780 48 04 1B B5 */ bl __ct__10CCallStackFUiPCcPCc
/* 80294824 00291784 7C 67 1B 78 */ mr r7, r3
/* 80294828 00291788 38 60 15 0C */ li r3, 0x150c
/* 8029482C 0029178C 38 80 00 02 */ li r4, 2
/* 80294830 00291790 38 A0 00 01 */ li r5, 1
/* 80294834 00291794 38 C0 00 00 */ li r6, 0
/* 80294838 00291798 48 08 11 5D */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 8029483C 0029179C 3C A0 80 3D */ lis r5, lbl_803D5BA4@ha
/* 80294840 002917A0 3C 80 80 3D */ lis r4, lbl_803D6AA8@ha
/* 80294844 002917A4 90 7F 00 0C */ stw r3, 0xc(r31)
/* 80294848 002917A8 38 C4 6A A8 */ addi r6, r4, lbl_803D6AA8@l
/* 8029484C 002917AC 38 A5 5B A4 */ addi r5, r5, lbl_803D5BA4@l
/* 80294850 002917B0 38 61 00 18 */ addi r3, r1, 0x18
/* 80294854 002917B4 38 80 FF FF */ li r4, -1
/* 80294858 002917B8 48 04 1B 7D */ bl __ct__10CCallStackFUiPCcPCc
/* 8029485C 002917BC 7C 67 1B 78 */ mr r7, r3
/* 80294860 002917C0 38 60 20 00 */ li r3, 0x2000
/* 80294864 002917C4 38 80 00 02 */ li r4, 2
/* 80294868 002917C8 38 A0 00 01 */ li r5, 1
/* 8029486C 002917CC 38 C0 00 00 */ li r6, 0
/* 80294870 002917D0 48 08 11 25 */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 80294874 002917D4 3C A0 80 3D */ lis r5, lbl_803D5BA4@ha
/* 80294878 002917D8 3C 80 80 3D */ lis r4, lbl_803D6AA8@ha
/* 8029487C 002917DC 90 7F 00 18 */ stw r3, 0x18(r31)
/* 80294880 002917E0 38 C4 6A A8 */ addi r6, r4, lbl_803D6AA8@l
/* 80294884 002917E4 38 A5 5B A4 */ addi r5, r5, lbl_803D5BA4@l
/* 80294888 002917E8 38 61 00 10 */ addi r3, r1, 0x10
/* 8029488C 002917EC 38 80 FF FF */ li r4, -1
/* 80294890 002917F0 48 04 1B 45 */ bl __ct__10CCallStackFUiPCcPCc
/* 80294894 002917F4 3C A0 00 01 */ lis r5, 0x00008000@ha
/* 80294898 002917F8 7C 67 1B 78 */ mr r7, r3
/* 8029489C 002917FC 38 65 80 00 */ addi r3, r5, 0x00008000@l
/* 802948A0 00291800 38 80 00 02 */ li r4, 2
/* 802948A4 00291804 38 A0 00 01 */ li r5, 1
/* 802948A8 00291808 38 C0 00 00 */ li r6, 0
/* 802948AC 0029180C 48 08 10 E9 */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 802948B0 00291810 90 7F 00 1C */ stw r3, 0x1c(r31)
/* 802948B4 00291814 3C 60 80 3D */ lis r3, lbl_803D5B80@ha
/* 802948B8 00291818 38 E3 5B 80 */ addi r7, r3, lbl_803D5B80@l
/* 802948BC 0029181C 38 61 00 5C */ addi r3, r1, 0x5c
/* 802948C0 00291820 80 C7 00 00 */ lwz r6, 0(r7)
/* 802948C4 00291824 38 81 00 50 */ addi r4, r1, 0x50
/* 802948C8 00291828 80 A7 00 04 */ lwz r5, 4(r7)
/* 802948CC 0029182C 80 07 00 08 */ lwz r0, 8(r7)
/* 802948D0 00291830 90 C1 00 50 */ stw r6, 0x50(r1)
/* 802948D4 00291834 90 A1 00 54 */ stw r5, 0x54(r1)
/* 802948D8 00291838 90 01 00 58 */ stw r0, 0x58(r1)
/* 802948DC 0029183C 48 0B B3 F5 */ bl __ct__8CDvdFileFPCc
/* 802948E0 00291840 80 C1 00 70 */ lwz r6, 0x70(r1)
/* 802948E4 00291844 3C A0 80 3D */ lis r5, lbl_803D5BA4@ha
/* 802948E8 00291848 3C 80 80 3D */ lis r4, lbl_803D6AA8@ha
/* 802948EC 0029184C 38 61 00 08 */ addi r3, r1, 8
/* 802948F0 00291850 38 06 00 1F */ addi r0, r6, 0x1f
/* 802948F4 00291854 38 A5 5B A4 */ addi r5, r5, lbl_803D5BA4@l
/* 802948F8 00291858 38 C4 6A A8 */ addi r6, r4, lbl_803D6AA8@l
/* 802948FC 0029185C 38 80 FF FF */ li r4, -1
/* 80294900 00291860 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a
/* 80294904 00291864 48 04 1A D1 */ bl __ct__10CCallStackFUiPCcPCc
/* 80294908 00291868 7C 67 1B 78 */ mr r7, r3
/* 8029490C 0029186C 7F C3 F3 78 */ mr r3, r30
/* 80294910 00291870 38 80 00 02 */ li r4, 2
/* 80294914 00291874 38 A0 00 01 */ li r5, 1
/* 80294918 00291878 38 C0 00 00 */ li r6, 0
/* 8029491C 0029187C 48 08 10 79 */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 80294920 00291880 90 7F 00 10 */ stw r3, 0x10(r31)
/* 80294924 00291884 7F C5 F3 78 */ mr r5, r30
/* 80294928 00291888 38 61 00 5C */ addi r3, r1, 0x5c
/* 8029492C 0029188C 80 9F 00 10 */ lwz r4, 0x10(r31)
/* 80294930 00291890 48 0B B2 B9 */ bl SyncRead__8CDvdFileFPvUi
/* 80294934 00291894 80 1F 00 00 */ lwz r0, 0(r31)
/* 80294938 00291898 7C 7E 1B 78 */ mr r30, r3
/* 8029493C 0029189C 28 00 00 00 */ cmplwi r0, 0
/* 80294940 002918A0 41 82 00 1C */ beq lbl_8029495C
/* 80294944 002918A4 7C 03 03 78 */ mr r3, r0
/* 80294948 002918A8 38 80 00 01 */ li r4, 1
/* 8029494C 002918AC 81 83 00 00 */ lwz r12, 0(r3)
/* 80294950 002918B0 81 8C 00 08 */ lwz r12, 8(r12)
/* 80294954 002918B4 7D 89 03 A6 */ mtctr r12
/* 80294958 002918B8 4E 80 04 21 */ bctrl
lbl_8029495C:
/* 8029495C 002918BC 93 DF 00 00 */ stw r30, 0(r31)
/* 80294960 002918C0 38 61 00 5C */ addi r3, r1, 0x5c
/* 80294964 002918C4 38 80 FF FF */ li r4, -1
/* 80294968 002918C8 48 0B B2 A9 */ bl __dt__8CDvdFileFv
/* 8029496C 002918CC 80 01 00 94 */ lwz r0, 0x94(r1)
/* 80294970 002918D0 7F E3 FB 78 */ mr r3, r31
/* 80294974 002918D4 83 E1 00 8C */ lwz r31, 0x8c(r1)
/* 80294978 002918D8 83 C1 00 88 */ lwz r30, 0x88(r1)
/* 8029497C 002918DC 7C 08 03 A6 */ mtlr r0
/* 80294980 002918E0 38 21 00 90 */ addi r1, r1, 0x90
/* 80294984 002918E4 4E 80 00 20 */ blr
.global CheckForGameOver__12CNESEmulatorFPCcPc
CheckForGameOver__12CNESEmulatorFPCcPc:
/* 80294988 002918E8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8029498C 002918EC 7C 08 02 A6 */ mflr r0
/* 80294990 002918F0 3C A0 80 3F */ lis r5, lbl_803EBC60@ha
/* 80294994 002918F4 90 01 00 34 */ stw r0, 0x34(r1)
/* 80294998 002918F8 38 05 BC 60 */ addi r0, r5, lbl_803EBC60@l
/* 8029499C 002918FC 38 A0 00 09 */ li r5, 9
/* 802949A0 00291900 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 802949A4 00291904 7C 9F 23 78 */ mr r31, r4
/* 802949A8 00291908 7C 04 03 78 */ mr r4, r0
/* 802949AC 0029190C 93 C1 00 28 */ stw r30, 0x28(r1)
/* 802949B0 00291910 7C 7E 1B 78 */ mr r30, r3
/* 802949B4 00291914 38 7E 01 4B */ addi r3, r30, 0x14b
/* 802949B8 00291918 48 0F 8E C5 */ bl memcmp
/* 802949BC 0029191C 2C 03 00 00 */ cmpwi r3, 0
/* 802949C0 00291920 41 82 00 0C */ beq lbl_802949CC
/* 802949C4 00291924 38 60 00 00 */ li r3, 0
/* 802949C8 00291928 48 00 01 0C */ b lbl_80294AD4
lbl_802949CC:
/* 802949CC 0029192C 38 00 00 18 */ li r0, 0x18
/* 802949D0 00291930 39 00 00 00 */ li r8, 0
/* 802949D4 00291934 39 20 00 00 */ li r9, 0
/* 802949D8 00291938 38 C0 00 00 */ li r6, 0
/* 802949DC 0029193C 7C 09 03 A6 */ mtctr r0
lbl_802949E0:
/* 802949E0 00291940 38 09 01 A9 */ addi r0, r9, 0x1a9
/* 802949E4 00291944 39 29 00 01 */ addi r9, r9, 1
/* 802949E8 00291948 28 09 00 06 */ cmplwi r9, 6
/* 802949EC 0029194C 7C FE 00 AE */ lbzx r7, r30, r0
/* 802949F0 00291950 41 82 00 0C */ beq lbl_802949FC
/* 802949F4 00291954 28 09 00 46 */ cmplwi r9, 0x46
/* 802949F8 00291958 40 82 00 0C */ bne lbl_80294A04
lbl_802949FC:
/* 802949FC 0029195C 39 29 00 01 */ addi r9, r9, 1
/* 80294A00 00291960 48 00 00 10 */ b lbl_80294A10
lbl_80294A04:
/* 80294A04 00291964 28 09 00 0D */ cmplwi r9, 0xd
/* 80294A08 00291968 40 82 00 08 */ bne lbl_80294A10
/* 80294A0C 0029196C 39 20 00 40 */ li r9, 0x40
lbl_80294A10:
/* 80294A10 00291970 28 07 00 3F */ cmplwi r7, 0x3f
/* 80294A14 00291974 40 81 00 0C */ ble lbl_80294A20
/* 80294A18 00291978 38 60 00 00 */ li r3, 0
/* 80294A1C 0029197C 48 00 00 B8 */ b lbl_80294AD4
lbl_80294A20:
/* 80294A20 00291980 54 C0 07 BE */ clrlwi r0, r6, 0x1e
/* 80294A24 00291984 2C 00 00 02 */ cmpwi r0, 2
/* 80294A28 00291988 41 82 00 54 */ beq lbl_80294A7C
/* 80294A2C 0029198C 40 80 00 14 */ bge lbl_80294A40
/* 80294A30 00291990 2C 00 00 00 */ cmpwi r0, 0
/* 80294A34 00291994 41 82 00 18 */ beq lbl_80294A4C
/* 80294A38 00291998 40 80 00 20 */ bge lbl_80294A58
/* 80294A3C 0029199C 48 00 00 7C */ b lbl_80294AB8
lbl_80294A40:
/* 80294A40 002919A0 2C 00 00 04 */ cmpwi r0, 4
/* 80294A44 002919A4 40 80 00 74 */ bge lbl_80294AB8
/* 80294A48 002919A8 48 00 00 58 */ b lbl_80294AA0
lbl_80294A4C:
/* 80294A4C 002919AC 38 61 00 08 */ addi r3, r1, 8
/* 80294A50 002919B0 7C E3 41 AE */ stbx r7, r3, r8
/* 80294A54 002919B4 48 00 00 64 */ b lbl_80294AB8
lbl_80294A58:
/* 80294A58 002919B8 38 A1 00 08 */ addi r5, r1, 8
/* 80294A5C 002919BC 54 E3 30 32 */ slwi r3, r7, 6
/* 80294A60 002919C0 7C 85 40 AE */ lbzx r4, r5, r8
/* 80294A64 002919C4 54 E0 F6 3E */ rlwinm r0, r7, 0x1e, 0x18, 0x1f
/* 80294A68 002919C8 7C 83 1B 78 */ or r3, r4, r3
/* 80294A6C 002919CC 7C 65 41 AE */ stbx r3, r5, r8
/* 80294A70 002919D0 39 08 00 01 */ addi r8, r8, 1
/* 80294A74 002919D4 7C 05 41 AE */ stbx r0, r5, r8
/* 80294A78 002919D8 48 00 00 40 */ b lbl_80294AB8
lbl_80294A7C:
/* 80294A7C 002919DC 38 A1 00 08 */ addi r5, r1, 8
/* 80294A80 002919E0 54 E3 20 36 */ slwi r3, r7, 4
/* 80294A84 002919E4 7C 85 40 AE */ lbzx r4, r5, r8
/* 80294A88 002919E8 54 E0 E6 3E */ rlwinm r0, r7, 0x1c, 0x18, 0x1f
/* 80294A8C 002919EC 7C 83 1B 78 */ or r3, r4, r3
/* 80294A90 002919F0 7C 65 41 AE */ stbx r3, r5, r8
/* 80294A94 002919F4 39 08 00 01 */ addi r8, r8, 1
/* 80294A98 002919F8 7C 05 41 AE */ stbx r0, r5, r8
/* 80294A9C 002919FC 48 00 00 1C */ b lbl_80294AB8
lbl_80294AA0:
/* 80294AA0 00291A00 38 81 00 08 */ addi r4, r1, 8
/* 80294AA4 00291A04 54 E0 10 3A */ slwi r0, r7, 2
/* 80294AA8 00291A08 7C 64 40 AE */ lbzx r3, r4, r8
/* 80294AAC 00291A0C 7C 60 03 78 */ or r0, r3, r0
/* 80294AB0 00291A10 7C 04 41 AE */ stbx r0, r4, r8
/* 80294AB4 00291A14 39 08 00 01 */ addi r8, r8, 1
lbl_80294AB8:
/* 80294AB8 00291A18 38 C6 00 01 */ addi r6, r6, 1
/* 80294ABC 00291A1C 42 00 FF 24 */ bdnz lbl_802949E0
/* 80294AC0 00291A20 7F E3 FB 78 */ mr r3, r31
/* 80294AC4 00291A24 38 81 00 08 */ addi r4, r1, 8
/* 80294AC8 00291A28 38 A0 00 12 */ li r5, 0x12
/* 80294ACC 00291A2C 4B D6 E9 C5 */ bl memcpy
/* 80294AD0 00291A30 38 60 00 01 */ li r3, 1
lbl_80294AD4:
/* 80294AD4 00291A34 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80294AD8 00291A38 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80294ADC 00291A3C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80294AE0 00291A40 7C 08 03 A6 */ mtlr r0
/* 80294AE4 00291A44 38 21 00 30 */ addi r1, r1, 0x30
/* 80294AE8 00291A48 4E 80 00 20 */ blr
.global SetPasswordIntoEntryScreen__12CNESEmulatorFPCcPcPCc
SetPasswordIntoEntryScreen__12CNESEmulatorFPCcPcPCc:
/* 80294AEC 00291A4C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80294AF0 00291A50 7C 08 02 A6 */ mflr r0
/* 80294AF4 00291A54 90 01 00 24 */ stw r0, 0x24(r1)
/* 80294AF8 00291A58 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80294AFC 00291A5C 7C 9F 23 78 */ mr r31, r4
/* 80294B00 00291A60 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80294B04 00291A64 7C 7E 1B 78 */ mr r30, r3
/* 80294B08 00291A68 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80294B0C 00291A6C 93 81 00 10 */ stw r28, 0x10(r1)
/* 80294B10 00291A70 7C BC 2B 78 */ mr r28, r5
/* 80294B14 00291A74 48 00 01 B5 */ bl CheckForPasswordEntryScreen__12CNESEmulatorFPCc
/* 80294B18 00291A78 2C 03 00 01 */ cmpwi r3, 1
/* 80294B1C 00291A7C 41 82 00 0C */ beq lbl_80294B28
/* 80294B20 00291A80 38 60 00 00 */ li r3, 0
/* 80294B24 00291A84 48 00 01 84 */ b lbl_80294CA8
lbl_80294B28:
/* 80294B28 00291A88 38 00 00 02 */ li r0, 2
/* 80294B2C 00291A8C 7F 83 E3 78 */ mr r3, r28
/* 80294B30 00291A90 38 80 00 00 */ li r4, 0
/* 80294B34 00291A94 7C 09 03 A6 */ mtctr r0
lbl_80294B38:
/* 80294B38 00291A98 88 03 00 00 */ lbz r0, 0(r3)
/* 80294B3C 00291A9C 28 00 00 00 */ cmplwi r0, 0
/* 80294B40 00291AA0 40 82 00 90 */ bne lbl_80294BD0
/* 80294B44 00291AA4 88 03 00 01 */ lbz r0, 1(r3)
/* 80294B48 00291AA8 38 84 00 01 */ addi r4, r4, 1
/* 80294B4C 00291AAC 28 00 00 00 */ cmplwi r0, 0
/* 80294B50 00291AB0 40 82 00 80 */ bne lbl_80294BD0
/* 80294B54 00291AB4 88 03 00 02 */ lbz r0, 2(r3)
/* 80294B58 00291AB8 38 84 00 01 */ addi r4, r4, 1
/* 80294B5C 00291ABC 28 00 00 00 */ cmplwi r0, 0
/* 80294B60 00291AC0 40 82 00 70 */ bne lbl_80294BD0
/* 80294B64 00291AC4 88 03 00 03 */ lbz r0, 3(r3)
/* 80294B68 00291AC8 38 84 00 01 */ addi r4, r4, 1
/* 80294B6C 00291ACC 28 00 00 00 */ cmplwi r0, 0
/* 80294B70 00291AD0 40 82 00 60 */ bne lbl_80294BD0
/* 80294B74 00291AD4 88 03 00 04 */ lbz r0, 4(r3)
/* 80294B78 00291AD8 38 84 00 01 */ addi r4, r4, 1
/* 80294B7C 00291ADC 28 00 00 00 */ cmplwi r0, 0
/* 80294B80 00291AE0 40 82 00 50 */ bne lbl_80294BD0
/* 80294B84 00291AE4 88 03 00 05 */ lbz r0, 5(r3)
/* 80294B88 00291AE8 38 84 00 01 */ addi r4, r4, 1
/* 80294B8C 00291AEC 28 00 00 00 */ cmplwi r0, 0
/* 80294B90 00291AF0 40 82 00 40 */ bne lbl_80294BD0
/* 80294B94 00291AF4 88 03 00 06 */ lbz r0, 6(r3)
/* 80294B98 00291AF8 38 84 00 01 */ addi r4, r4, 1
/* 80294B9C 00291AFC 28 00 00 00 */ cmplwi r0, 0
/* 80294BA0 00291B00 40 82 00 30 */ bne lbl_80294BD0
/* 80294BA4 00291B04 88 03 00 07 */ lbz r0, 7(r3)
/* 80294BA8 00291B08 38 84 00 01 */ addi r4, r4, 1
/* 80294BAC 00291B0C 28 00 00 00 */ cmplwi r0, 0
/* 80294BB0 00291B10 40 82 00 20 */ bne lbl_80294BD0
/* 80294BB4 00291B14 88 03 00 08 */ lbz r0, 8(r3)
/* 80294BB8 00291B18 38 84 00 01 */ addi r4, r4, 1
/* 80294BBC 00291B1C 28 00 00 00 */ cmplwi r0, 0
/* 80294BC0 00291B20 40 82 00 10 */ bne lbl_80294BD0
/* 80294BC4 00291B24 38 84 00 01 */ addi r4, r4, 1
/* 80294BC8 00291B28 38 63 00 09 */ addi r3, r3, 9
/* 80294BCC 00291B2C 42 00 FF 6C */ bdnz lbl_80294B38
lbl_80294BD0:
/* 80294BD0 00291B30 28 04 00 12 */ cmplwi r4, 0x12
/* 80294BD4 00291B34 40 82 00 0C */ bne lbl_80294BE0
/* 80294BD8 00291B38 38 60 00 00 */ li r3, 0
/* 80294BDC 00291B3C 48 00 00 CC */ b lbl_80294CA8
lbl_80294BE0:
/* 80294BE0 00291B40 38 00 00 18 */ li r0, 0x18
/* 80294BE4 00291B44 7F 83 E3 78 */ mr r3, r28
/* 80294BE8 00291B48 38 E0 00 00 */ li r7, 0
/* 80294BEC 00291B4C 38 C0 00 00 */ li r6, 0
/* 80294BF0 00291B50 7C 09 03 A6 */ mtctr r0
lbl_80294BF4:
/* 80294BF4 00291B54 54 C0 07 BE */ clrlwi r0, r6, 0x1e
/* 80294BF8 00291B58 2C 00 00 02 */ cmpwi r0, 2
/* 80294BFC 00291B5C 41 82 00 48 */ beq lbl_80294C44
/* 80294C00 00291B60 40 80 00 14 */ bge lbl_80294C14
/* 80294C04 00291B64 2C 00 00 00 */ cmpwi r0, 0
/* 80294C08 00291B68 41 82 00 18 */ beq lbl_80294C20
/* 80294C0C 00291B6C 40 80 00 20 */ bge lbl_80294C2C
/* 80294C10 00291B70 48 00 00 50 */ b lbl_80294C60
lbl_80294C14:
/* 80294C14 00291B74 2C 00 00 04 */ cmpwi r0, 4
/* 80294C18 00291B78 40 80 00 48 */ bge lbl_80294C60
/* 80294C1C 00291B7C 48 00 00 40 */ b lbl_80294C5C
lbl_80294C20:
/* 80294C20 00291B80 8B A3 00 00 */ lbz r29, 0(r3)
/* 80294C24 00291B84 38 63 00 01 */ addi r3, r3, 1
/* 80294C28 00291B88 48 00 00 38 */ b lbl_80294C60
lbl_80294C2C:
/* 80294C2C 00291B8C 88 03 00 00 */ lbz r0, 0(r3)
/* 80294C30 00291B90 57 A4 D1 BE */ srwi r4, r29, 6
/* 80294C34 00291B94 38 63 00 01 */ addi r3, r3, 1
/* 80294C38 00291B98 54 00 10 3A */ slwi r0, r0, 2
/* 80294C3C 00291B9C 7C 9D 03 78 */ or r29, r4, r0
/* 80294C40 00291BA0 48 00 00 20 */ b lbl_80294C60
lbl_80294C44:
/* 80294C44 00291BA4 88 03 00 00 */ lbz r0, 0(r3)
/* 80294C48 00291BA8 57 A4 D1 BE */ srwi r4, r29, 6
/* 80294C4C 00291BAC 38 63 00 01 */ addi r3, r3, 1
/* 80294C50 00291BB0 54 00 20 36 */ slwi r0, r0, 4
/* 80294C54 00291BB4 7C 9D 03 78 */ or r29, r4, r0
/* 80294C58 00291BB8 48 00 00 08 */ b lbl_80294C60
lbl_80294C5C:
/* 80294C5C 00291BBC 57 BD D1 BE */ srwi r29, r29, 6
lbl_80294C60:
/* 80294C60 00291BC0 57 A5 06 BE */ clrlwi r5, r29, 0x1a
/* 80294C64 00291BC4 38 86 09 9A */ addi r4, r6, 0x99a
/* 80294C68 00291BC8 38 07 01 09 */ addi r0, r7, 0x109
/* 80294C6C 00291BCC 7C BF 21 AE */ stbx r5, r31, r4
/* 80294C70 00291BD0 38 E7 00 01 */ addi r7, r7, 1
/* 80294C74 00291BD4 28 07 00 06 */ cmplwi r7, 6
/* 80294C78 00291BD8 7C BE 01 AE */ stbx r5, r30, r0
/* 80294C7C 00291BDC 41 82 00 0C */ beq lbl_80294C88
/* 80294C80 00291BE0 28 07 00 46 */ cmplwi r7, 0x46
/* 80294C84 00291BE4 40 82 00 0C */ bne lbl_80294C90
lbl_80294C88:
/* 80294C88 00291BE8 38 E7 00 01 */ addi r7, r7, 1
/* 80294C8C 00291BEC 48 00 00 10 */ b lbl_80294C9C
lbl_80294C90:
/* 80294C90 00291BF0 28 07 00 0D */ cmplwi r7, 0xd
/* 80294C94 00291BF4 40 82 00 08 */ bne lbl_80294C9C
/* 80294C98 00291BF8 38 E0 00 40 */ li r7, 0x40
lbl_80294C9C:
/* 80294C9C 00291BFC 38 C6 00 01 */ addi r6, r6, 1
/* 80294CA0 00291C00 42 00 FF 54 */ bdnz lbl_80294BF4
/* 80294CA4 00291C04 38 60 00 01 */ li r3, 1
lbl_80294CA8:
/* 80294CA8 00291C08 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80294CAC 00291C0C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80294CB0 00291C10 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80294CB4 00291C14 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80294CB8 00291C18 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80294CBC 00291C1C 7C 08 03 A6 */ mtlr r0
/* 80294CC0 00291C20 38 21 00 20 */ addi r1, r1, 0x20
/* 80294CC4 00291C24 4E 80 00 20 */ blr
.global CheckForPasswordEntryScreen__12CNESEmulatorFPCc
CheckForPasswordEntryScreen__12CNESEmulatorFPCc:
/* 80294CC8 00291C28 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80294CCC 00291C2C 7C 08 02 A6 */ mflr r0
/* 80294CD0 00291C30 3C 80 80 3F */ lis r4, lbl_803EBC50@ha
/* 80294CD4 00291C34 38 A0 00 10 */ li r5, 0x10
/* 80294CD8 00291C38 90 01 00 14 */ stw r0, 0x14(r1)
/* 80294CDC 00291C3C 38 84 BC 50 */ addi r4, r4, lbl_803EBC50@l
/* 80294CE0 00291C40 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80294CE4 00291C44 7C 7F 1B 78 */ mr r31, r3
/* 80294CE8 00291C48 38 7F 00 88 */ addi r3, r31, 0x88
/* 80294CEC 00291C4C 48 0F 8B 91 */ bl memcmp
/* 80294CF0 00291C50 2C 03 00 00 */ cmpwi r3, 0
/* 80294CF4 00291C54 41 82 00 0C */ beq lbl_80294D00
/* 80294CF8 00291C58 38 60 00 00 */ li r3, 0
/* 80294CFC 00291C5C 48 00 00 40 */ b lbl_80294D3C
lbl_80294D00:
/* 80294D00 00291C60 38 00 00 0D */ li r0, 0xd
/* 80294D04 00291C64 38 80 00 00 */ li r4, 0
/* 80294D08 00291C68 7C 09 03 A6 */ mtctr r0
lbl_80294D0C:
/* 80294D0C 00291C6C 7C 7F 22 14 */ add r3, r31, r4
/* 80294D10 00291C70 88 03 01 09 */ lbz r0, 0x109(r3)
/* 80294D14 00291C74 28 00 00 40 */ cmplwi r0, 0x40
/* 80294D18 00291C78 41 80 00 10 */ blt lbl_80294D28
/* 80294D1C 00291C7C 88 03 01 49 */ lbz r0, 0x149(r3)
/* 80294D20 00291C80 28 00 00 40 */ cmplwi r0, 0x40
/* 80294D24 00291C84 40 80 00 0C */ bge lbl_80294D30
lbl_80294D28:
/* 80294D28 00291C88 38 60 00 02 */ li r3, 2
/* 80294D2C 00291C8C 48 00 00 10 */ b lbl_80294D3C
lbl_80294D30:
/* 80294D30 00291C90 38 84 00 01 */ addi r4, r4, 1
/* 80294D34 00291C94 42 00 FF D8 */ bdnz lbl_80294D0C
/* 80294D38 00291C98 38 60 00 01 */ li r3, 1
lbl_80294D3C:
/* 80294D3C 00291C9C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80294D40 00291CA0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80294D44 00291CA4 7C 08 03 A6 */ mtlr r0
/* 80294D48 00291CA8 38 21 00 10 */ addi r1, r1, 0x10
/* 80294D4C 00291CAC 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805ADC60
lbl_805ADC60:
# ROM: 0x3FA500
.4byte 0
.global lbl_805ADC64
lbl_805ADC64:
# ROM: 0x3FA504
.4byte 0x44200000
.global lbl_805ADC68
lbl_805ADC68:
# ROM: 0x3FA508
.4byte 0x43F00000
.global lbl_805ADC6C
lbl_805ADC6C:
# ROM: 0x3FA50C
.float 0.1
.global lbl_805ADC70
lbl_805ADC70:
# ROM: 0x3FA510
.4byte 0x42C80000
.global lbl_805ADC74
lbl_805ADC74:
# ROM: 0x3FA514
.4byte 0x41200000
.global lbl_805ADC78
lbl_805ADC78:
# ROM: 0x3FA518
.float 1.0
.4byte 0
.global lbl_805ADC80
lbl_805ADC80:
# ROM: 0x3FA520
.double 4.503601774854144E15
.global lbl_805ADC88
lbl_805ADC88:
# ROM: 0x3FA528
.4byte 0x08000000
.global lbl_805ADC8C
lbl_805ADC8C:
# ROM: 0x3FA52C
.4byte 0x04000000
.global lbl_805ADC90
lbl_805ADC90:
# ROM: 0x3FA530
.4byte 0x02000000
.global lbl_805ADC94
lbl_805ADC94:
# ROM: 0x3FA534
.4byte 0x01000000
.global lbl_805ADC98
lbl_805ADC98:
# ROM: 0x3FA538
.4byte 0x80000000
.global lbl_805ADC9C
lbl_805ADC9C:
# ROM: 0x3FA53C
.float 2.0
.global lbl_805ADCA0
lbl_805ADCA0:
# ROM: 0x3FA540
.4byte 0x20000000
.global lbl_805ADCA4
lbl_805ADCA4:
# ROM: 0x3FA544
.4byte 0x10000000
.global lbl_805ADCA8
lbl_805ADCA8:
# ROM: 0x3FA548
.float 0.4
.4byte 0
.section .rodata
.balign 8
.global lbl_803D5B80
lbl_803D5B80:
# ROM: 0x3D2B80
.asciz "NESemuP.rel"
.global lbl_803D5B8C
lbl_803D5B8C:
# ROM: 0x3D2B8C
.4byte 0x00000009
.4byte 0x00000001
.4byte 0x0000000D
.4byte 0x00000001
.4byte 0x000000FF
.4byte 0
.global lbl_803D5BA4
lbl_803D5BA4:
# ROM: 0x3D2BA4
.asciz "??(??)"
.balign 4
.4byte 0