.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global NWC24iPrepareShutdown NWC24iPrepareShutdown: /* 80304D1C 0030097C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80304D20 00300980 7C 08 02 A6 */ mflr r0 /* 80304D24 00300984 90 01 00 24 */ stw r0, 0x24(r1) /* 80304D28 00300988 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80304D2C 0030098C 3B E0 00 00 */ li r31, 0 /* 80304D30 00300990 4B FF E3 25 */ bl NWC24iRegister /* 80304D34 00300994 3C A0 80 30 */ lis r5, NWC24Shutdown@ha /* 80304D38 00300998 3C 80 80 58 */ lis r4, lbl_8057EA00@ha /* 80304D3C 0030099C 38 A5 4D C4 */ addi r5, r5, NWC24Shutdown@l /* 80304D40 003009A0 38 00 00 6E */ li r0, 0x6e /* 80304D44 003009A4 38 64 EA 00 */ addi r3, r4, lbl_8057EA00@l /* 80304D48 003009A8 90 A4 EA 00 */ stw r5, -0x1600(r4) /* 80304D4C 003009AC 90 03 00 04 */ stw r0, 4(r3) /* 80304D50 003009B0 4B F6 AF 41 */ bl OSRegisterShutdownFunction /* 80304D54 003009B4 80 0D 8C C8 */ lwz r0, lbl_8063DF88-_SDA_BASE_(r13) /* 80304D58 003009B8 2C 00 00 00 */ cmpwi r0, 0 /* 80304D5C 003009BC 40 80 00 24 */ bge lbl_80304D80 /* 80304D60 003009C0 3C 60 80 44 */ lis r3, lbl_80446590@ha /* 80304D64 003009C4 3C 80 80 44 */ lis r4, lbl_804465A8@ha /* 80304D68 003009C8 38 63 65 90 */ addi r3, r3, lbl_80446590@l /* 80304D6C 003009CC 38 AD 8C C8 */ addi r5, r13, lbl_8063DF88-_SDA_BASE_ /* 80304D70 003009D0 38 84 65 A8 */ addi r4, r4, lbl_804465A8@l /* 80304D74 003009D4 38 C0 00 01 */ li r6, 1 /* 80304D78 003009D8 4B FF F9 05 */ bl NWC24iOpenResourceManager /* 80304D7C 003009DC 7C 7F 1B 78 */ mr r31, r3 lbl_80304D80: /* 80304D80 003009E0 38 00 00 05 */ li r0, 5 /* 80304D84 003009E4 90 0D AF D0 */ stw r0, lbl_80640290-_SDA_BASE_(r13) lbl_80304D88: /* 80304D88 003009E8 4B FE 5C 65 */ bl SCCheckStatus /* 80304D8C 003009EC 28 03 00 02 */ cmplwi r3, 2 /* 80304D90 003009F0 41 82 00 1C */ beq lbl_80304DAC /* 80304D94 003009F4 28 03 00 01 */ cmplwi r3, 1 /* 80304D98 003009F8 41 82 FF F0 */ beq lbl_80304D88 /* 80304D9C 003009FC 38 61 00 08 */ addi r3, r1, 8 /* 80304DA0 00300A00 4B FE 76 9D */ bl SCGetIdleMode /* 80304DA4 00300A04 88 61 00 09 */ lbz r3, 9(r1) /* 80304DA8 00300A08 4B F6 E8 45 */ bl __OSSetIdleLEDMode lbl_80304DAC: /* 80304DAC 00300A0C 7F E3 FB 78 */ mr r3, r31 /* 80304DB0 00300A10 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80304DB4 00300A14 80 01 00 24 */ lwz r0, 0x24(r1) /* 80304DB8 00300A18 7C 08 03 A6 */ mtlr r0 /* 80304DBC 00300A1C 38 21 00 20 */ addi r1, r1, 0x20 /* 80304DC0 00300A20 4E 80 00 20 */ blr NWC24Shutdown: /* 80304DC4 00300A24 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80304DC8 00300A28 7C 08 02 A6 */ mflr r0 /* 80304DCC 00300A2C 2C 03 00 00 */ cmpwi r3, 0 /* 80304DD0 00300A30 90 01 00 14 */ stw r0, 0x14(r1) /* 80304DD4 00300A34 41 82 00 0C */ beq lbl_80304DE0 /* 80304DD8 00300A38 38 60 00 01 */ li r3, 1 /* 80304DDC 00300A3C 48 00 00 A8 */ b lbl_80304E84 lbl_80304DE0: /* 80304DE0 00300A40 80 0D AF D4 */ lwz r0, lbl_80640294-_SDA_BASE_(r13) /* 80304DE4 00300A44 2C 00 00 00 */ cmpwi r0, 0 /* 80304DE8 00300A48 41 82 00 54 */ beq lbl_80304E3C /* 80304DEC 00300A4C 4B FF F9 E1 */ bl NWC24iIsAsyncRequestPending /* 80304DF0 00300A50 2C 03 00 00 */ cmpwi r3, 0 /* 80304DF4 00300A54 41 82 00 0C */ beq lbl_80304E00 /* 80304DF8 00300A58 38 60 00 00 */ li r3, 0 /* 80304DFC 00300A5C 48 00 00 88 */ b lbl_80304E84 lbl_80304E00: /* 80304E00 00300A60 80 0D AF D8 */ lwz r0, lbl_80640298-_SDA_BASE_(r13) /* 80304E04 00300A64 2C 00 00 00 */ cmpwi r0, 0 /* 80304E08 00300A68 41 80 00 0C */ blt lbl_80304E14 /* 80304E0C 00300A6C 38 60 00 01 */ li r3, 1 /* 80304E10 00300A70 48 00 00 74 */ b lbl_80304E84 lbl_80304E14: /* 80304E14 00300A74 80 6D AF D0 */ lwz r3, lbl_80640290-_SDA_BASE_(r13) /* 80304E18 00300A78 2C 03 00 00 */ cmpwi r3, 0 /* 80304E1C 00300A7C 40 81 00 18 */ ble lbl_80304E34 /* 80304E20 00300A80 38 03 FF FF */ addi r0, r3, -1 /* 80304E24 00300A84 38 60 00 00 */ li r3, 0 /* 80304E28 00300A88 90 6D AF D4 */ stw r3, lbl_80640294-_SDA_BASE_(r13) /* 80304E2C 00300A8C 90 0D AF D0 */ stw r0, lbl_80640290-_SDA_BASE_(r13) /* 80304E30 00300A90 48 00 00 50 */ b lbl_80304E80 lbl_80304E34: /* 80304E34 00300A94 38 60 00 01 */ li r3, 1 /* 80304E38 00300A98 48 00 00 4C */ b lbl_80304E84 lbl_80304E3C: /* 80304E3C 00300A9C 3C A0 80 58 */ lis r5, lbl_8057EA20@ha /* 80304E40 00300AA0 3C 60 80 44 */ lis r3, lbl_804465BC@ha /* 80304E44 00300AA4 90 85 EA 20 */ stw r4, lbl_8057EA20@l(r5) /* 80304E48 00300AA8 3D 00 80 58 */ lis r8, lbl_8057EA40@ha /* 80304E4C 00300AAC 38 C5 EA 20 */ addi r6, r5, -5600 /* 80304E50 00300AB0 80 8D 8C C8 */ lwz r4, lbl_8063DF88-_SDA_BASE_(r13) /* 80304E54 00300AB4 38 63 65 BC */ addi r3, r3, lbl_804465BC@l /* 80304E58 00300AB8 39 08 EA 40 */ addi r8, r8, lbl_8057EA40@l /* 80304E5C 00300ABC 38 A0 00 28 */ li r5, 0x28 /* 80304E60 00300AC0 38 E0 00 20 */ li r7, 0x20 /* 80304E64 00300AC4 39 20 00 20 */ li r9, 0x20 /* 80304E68 00300AC8 39 4D AF D8 */ addi r10, r13, lbl_80640298-_SDA_BASE_ /* 80304E6C 00300ACC 4B FF F9 05 */ bl NWC24iIoctlResourceManagerAsync /* 80304E70 00300AD0 2C 03 00 00 */ cmpwi r3, 0 /* 80304E74 00300AD4 41 80 00 0C */ blt lbl_80304E80 /* 80304E78 00300AD8 38 00 00 01 */ li r0, 1 /* 80304E7C 00300ADC 90 0D AF D4 */ stw r0, lbl_80640294-_SDA_BASE_(r13) lbl_80304E80: /* 80304E80 00300AE0 38 60 00 00 */ li r3, 0 lbl_80304E84: /* 80304E84 00300AE4 80 01 00 14 */ lwz r0, 0x14(r1) /* 80304E88 00300AE8 7C 08 03 A6 */ mtlr r0 /* 80304E8C 00300AEC 38 21 00 10 */ addi r1, r1, 0x10 /* 80304E90 00300AF0 4E 80 00 20 */ blr