From d2e4b9078b23d16b32a297c69525997e074ea942 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 11 Oct 2020 22:33:43 -0400 Subject: split NWC24Download, NWC24FriendList, NWC24Ipc, NWC24Mime, NWC24Schedule, NWC24SecretFList, NWC24Time --- asm/SDK/NCD/ncdsystem.s | 4 +- asm/SDK/NWC24/NWC24Config.s | 6 +- asm/SDK/NWC24/NWC24Download.s | 391 +++++++++ asm/SDK/NWC24/NWC24FriendList.s | 86 ++ asm/SDK/NWC24/NWC24Ipc.s | 122 +++ asm/SDK/NWC24/NWC24Manage.s | 16 +- asm/SDK/NWC24/NWC24Mime.s | 191 +++++ asm/SDK/NWC24/NWC24Schedule.s | 627 +++++++++++++++ asm/SDK/NWC24/NWC24SecretFList.s | 86 ++ asm/SDK/NWC24/NWC24Time.s | 141 ++++ asm/SDK/OS/OSNet.s | 4 +- asm/SDK/SO/SOCommon.s | 8 +- asm/text_9_2.s | 1627 +------------------------------------- obj_files.mk | 7 + 14 files changed, 1673 insertions(+), 1643 deletions(-) create mode 100644 asm/SDK/NWC24/NWC24Download.s create mode 100644 asm/SDK/NWC24/NWC24FriendList.s create mode 100644 asm/SDK/NWC24/NWC24Ipc.s create mode 100644 asm/SDK/NWC24/NWC24Mime.s create mode 100644 asm/SDK/NWC24/NWC24Schedule.s create mode 100644 asm/SDK/NWC24/NWC24SecretFList.s create mode 100644 asm/SDK/NWC24/NWC24Time.s diff --git a/asm/SDK/NCD/ncdsystem.s b/asm/SDK/NCD/ncdsystem.s index f97174b..d1a3a76 100644 --- a/asm/SDK/NCD/ncdsystem.s +++ b/asm/SDK/NCD/ncdsystem.s @@ -18,7 +18,7 @@ NCDSetNwc24Permission: /* 802ED230 002E8E90 48 00 00 88 */ b lbl_802ED2B8 lbl_802ED234: /* 802ED234 002E8E94 48 00 0A 39 */ bl LockRight -/* 802ED238 002E8E98 48 01 6B 59 */ bl func_80303D90 +/* 802ED238 002E8E98 48 01 6B 59 */ bl NWC24iLockSocket /* 802ED23C 002E8E9C 2C 03 00 00 */ cmpwi r3, 0 /* 802ED240 002E8EA0 40 82 00 48 */ bne lbl_802ED288 /* 802ED244 002E8EA4 3F E0 80 44 */ lis r31, lbl_80445AF0@ha @@ -37,7 +37,7 @@ lbl_802ED234: /* 802ED278 002E8ED8 48 00 08 61 */ bl ExecConfigCommand /* 802ED27C 002E8EDC 7C 7E 1B 78 */ mr r30, r3 lbl_802ED280: -/* 802ED280 002E8EE0 48 01 6B 21 */ bl func_80303DA0 +/* 802ED280 002E8EE0 48 01 6B 21 */ bl NWC24iUnlockSocket /* 802ED284 002E8EE4 48 00 00 24 */ b lbl_802ED2A8 lbl_802ED288: /* 802ED288 002E8EE8 2C 03 FF EA */ cmpwi r3, -22 diff --git a/asm/SDK/NWC24/NWC24Config.s b/asm/SDK/NWC24/NWC24Config.s index c01032d..46fedef 100644 --- a/asm/SDK/NWC24/NWC24Config.s +++ b/asm/SDK/NWC24/NWC24Config.s @@ -25,7 +25,7 @@ lbl_80302B8C: /* 80302B9C 002FE7FC 90 1E 00 00 */ stw r0, 0(r30) /* 80302BA0 002FE800 48 00 00 B0 */ b lbl_80302C50 lbl_80302BA4: -/* 80302BA4 002FE804 48 00 0E 51 */ bl func_803039F4 +/* 80302BA4 002FE804 48 00 0E 51 */ bl NWC24SuspendScheduler /* 80302BA8 002FE808 2C 03 00 00 */ cmpwi r3, 0 /* 80302BAC 002FE80C 40 80 00 08 */ bge lbl_80302BB4 /* 80302BB0 002FE810 48 00 00 A4 */ b lbl_80302C54 @@ -51,7 +51,7 @@ lbl_80302BE0: /* 80302BF4 002FE854 7F C3 F3 78 */ mr r3, r30 /* 80302BF8 002FE858 38 81 00 08 */ addi r4, r1, 8 /* 80302BFC 002FE85C 90 1E 00 00 */ stw r0, 0(r30) -/* 80302C00 002FE860 48 00 0F B5 */ bl func_80303BB4 +/* 80302C00 002FE860 48 00 0F B5 */ bl NWC24iRequestGenerateUserId /* 80302C04 002FE864 7C 7F 1B 78 */ mr r31, r3 lbl_80302C08: /* 80302C08 002FE868 38 60 00 00 */ li r3, 0 @@ -68,7 +68,7 @@ lbl_80302C20: /* 80302C2C 002FE88C 41 81 00 08 */ bgt lbl_80302C34 /* 80302C30 002FE890 3B E0 00 00 */ li r31, 0 lbl_80302C34: -/* 80302C34 002FE894 48 00 0E 91 */ bl func_80303AC4 +/* 80302C34 002FE894 48 00 0E 91 */ bl NWC24ResumeScheduler /* 80302C38 002FE898 2C 03 00 00 */ cmpwi r3, 0 /* 80302C3C 002FE89C 40 80 00 14 */ bge lbl_80302C50 /* 80302C40 002FE8A0 2C 1F 00 00 */ cmpwi r31, 0 diff --git a/asm/SDK/NWC24/NWC24Download.s b/asm/SDK/NWC24/NWC24Download.s new file mode 100644 index 0000000..42889c3 --- /dev/null +++ b/asm/SDK/NWC24/NWC24Download.s @@ -0,0 +1,391 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global NWC24iOpenDlTaskList +NWC24iOpenDlTaskList: +/* 803047F0 00300450 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803047F4 00300454 7C 08 02 A6 */ mflr r0 +/* 803047F8 00300458 90 01 00 14 */ stw r0, 0x14(r1) +/* 803047FC 0030045C 48 00 02 B1 */ bl NWC24iLoadDlHeader +/* 80304800 00300460 2C 03 00 00 */ cmpwi r3, 0 +/* 80304804 00300464 41 80 00 28 */ blt lbl_8030482C +/* 80304808 00300468 38 60 00 00 */ li r3, 0 +/* 8030480C 0030046C 4B FF FD DD */ bl NWC24iSynchronizeRtcCounter +/* 80304810 00300470 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304814 00300474 38 80 00 00 */ li r4, 0 +/* 80304818 00300478 38 63 30 00 */ addi r3, r3, 0x3000 +/* 8030481C 0030047C 48 00 00 29 */ bl NWC24iCheckHeaderConsistency +/* 80304820 00300480 2C 03 00 00 */ cmpwi r3, 0 +/* 80304824 00300484 41 80 00 08 */ blt lbl_8030482C +/* 80304828 00300488 38 60 00 00 */ li r3, 0 +lbl_8030482C: +/* 8030482C 0030048C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80304830 00300490 7C 08 03 A6 */ mtlr r0 +/* 80304834 00300494 38 21 00 10 */ addi r1, r1, 0x10 +/* 80304838 00300498 4E 80 00 20 */ blr + +.global NWC24iCloseDlTaskList +NWC24iCloseDlTaskList: +/* 8030483C 0030049C 38 60 00 00 */ li r3, 0 +/* 80304840 003004A0 4E 80 00 20 */ blr + +.global NWC24iCheckHeaderConsistency +NWC24iCheckHeaderConsistency: +/* 80304844 003004A4 94 21 FD 40 */ stwu r1, -0x2c0(r1) +/* 80304848 003004A8 7C 08 02 A6 */ mflr r0 +/* 8030484C 003004AC 90 01 02 C4 */ stw r0, 0x2c4(r1) +/* 80304850 003004B0 39 61 02 C0 */ addi r11, r1, 0x2c0 +/* 80304854 003004B4 4B EC 28 D1 */ bl _savegpr_26 +/* 80304858 003004B8 3B E1 00 A8 */ addi r31, r1, 0xa8 +/* 8030485C 003004BC 7C 7C 1B 78 */ mr r28, r3 +/* 80304860 003004C0 7C 9D 23 78 */ mr r29, r4 +/* 80304864 003004C4 3B C0 00 00 */ li r30, 0 +/* 80304868 003004C8 3F 60 00 01 */ lis r27, 1 +/* 8030486C 003004CC 48 00 02 14 */ b lbl_80304A80 +lbl_80304870: +/* 80304870 003004D0 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304874 003004D4 57 C0 04 3E */ clrlwi r0, r30, 0x10 +/* 80304878 003004D8 A0 C3 30 10 */ lhz r6, 0x3010(r3) +/* 8030487C 003004DC 38 A3 30 00 */ addi r5, r3, 0x3000 +/* 80304880 003004E0 7C 00 30 40 */ cmplw r0, r6 +/* 80304884 003004E4 40 80 00 0C */ bge lbl_80304890 +/* 80304888 003004E8 28 00 FF FF */ cmplwi r0, 0xffff +/* 8030488C 003004EC 40 82 00 0C */ bne lbl_80304898 +lbl_80304890: +/* 80304890 003004F0 38 80 FF FD */ li r4, -3 +/* 80304894 003004F4 48 00 00 20 */ b lbl_803048B4 +lbl_80304898: +/* 80304898 003004F8 57 C0 23 36 */ rlwinm r0, r30, 4, 0xc, 0x1b +/* 8030489C 003004FC 38 80 00 00 */ li r4, 0 +/* 803048A0 00300500 7C 65 02 14 */ add r3, r5, r0 +/* 803048A4 00300504 80 03 00 80 */ lwz r0, 0x80(r3) +/* 803048A8 00300508 2C 00 00 00 */ cmpwi r0, 0 +/* 803048AC 0030050C 40 82 00 08 */ bne lbl_803048B4 +/* 803048B0 00300510 38 80 FF F3 */ li r4, -13 +lbl_803048B4: +/* 803048B4 00300514 2C 04 00 00 */ cmpwi r4, 0 +/* 803048B8 00300518 40 82 01 C4 */ bne lbl_80304A7C +/* 803048BC 0030051C 2C 1D 00 00 */ cmpwi r29, 0 +/* 803048C0 00300520 41 82 01 BC */ beq lbl_80304A7C +/* 803048C4 00300524 57 C0 04 3E */ clrlwi r0, r30, 0x10 +/* 803048C8 00300528 7C 00 30 40 */ cmplw r0, r6 +/* 803048CC 0030052C 40 80 00 0C */ bge lbl_803048D8 +/* 803048D0 00300530 28 00 FF FF */ cmplwi r0, 0xffff +/* 803048D4 00300534 40 82 00 0C */ bne lbl_803048E0 +lbl_803048D8: +/* 803048D8 00300538 38 60 FF FD */ li r3, -3 +/* 803048DC 0030053C 48 00 00 20 */ b lbl_803048FC +lbl_803048E0: +/* 803048E0 00300540 57 C0 23 36 */ rlwinm r0, r30, 4, 0xc, 0x1b +/* 803048E4 00300544 38 60 00 00 */ li r3, 0 +/* 803048E8 00300548 7C 85 02 14 */ add r4, r5, r0 +/* 803048EC 0030054C 80 04 00 80 */ lwz r0, 0x80(r4) +/* 803048F0 00300550 2C 00 00 00 */ cmpwi r0, 0 +/* 803048F4 00300554 40 82 00 08 */ bne lbl_803048FC +/* 803048F8 00300558 38 60 FF F3 */ li r3, -13 +lbl_803048FC: +/* 803048FC 0030055C 2C 03 00 00 */ cmpwi r3, 0 +/* 80304900 00300560 40 80 00 08 */ bge lbl_80304908 +/* 80304904 00300564 48 00 00 78 */ b lbl_8030497C +lbl_80304908: +/* 80304908 00300568 80 8D 8C C0 */ lwz r4, lbl_8063DF80-_SDA_BASE_(r13) +/* 8030490C 0030056C 38 61 00 08 */ addi r3, r1, 8 +/* 80304910 00300570 38 A0 00 0A */ li r5, 0xa +/* 80304914 00300574 4B FF D2 35 */ bl NWC24FOpen +/* 80304918 00300578 2C 03 00 00 */ cmpwi r3, 0 +/* 8030491C 0030057C 40 80 00 08 */ bge lbl_80304924 +/* 80304920 00300580 48 00 00 5C */ b lbl_8030497C +lbl_80304924: +/* 80304924 00300584 57 C4 49 EC */ rlwinm r4, r30, 9, 7, 0x16 +/* 80304928 00300588 38 61 00 08 */ addi r3, r1, 8 +/* 8030492C 0030058C 38 84 08 00 */ addi r4, r4, 0x800 +/* 80304930 00300590 38 A0 00 00 */ li r5, 0 +/* 80304934 00300594 4B FF D6 F9 */ bl NWC24FSeek +/* 80304938 00300598 2C 03 00 00 */ cmpwi r3, 0 +/* 8030493C 0030059C 40 80 00 0C */ bge lbl_80304948 +/* 80304940 003005A0 7C 7A 1B 78 */ mr r26, r3 +/* 80304944 003005A4 48 00 00 24 */ b lbl_80304968 +lbl_80304948: +/* 80304948 003005A8 7F E3 FB 78 */ mr r3, r31 +/* 8030494C 003005AC 38 A1 00 08 */ addi r5, r1, 8 +/* 80304950 003005B0 38 80 02 00 */ li r4, 0x200 +/* 80304954 003005B4 4B FF D8 C5 */ bl NWC24FRead +/* 80304958 003005B8 2C 03 00 00 */ cmpwi r3, 0 +/* 8030495C 003005BC 3B 40 00 00 */ li r26, 0 +/* 80304960 003005C0 40 80 00 08 */ bge lbl_80304968 +/* 80304964 003005C4 7C 7A 1B 78 */ mr r26, r3 +lbl_80304968: +/* 80304968 003005C8 38 61 00 08 */ addi r3, r1, 8 +/* 8030496C 003005CC 4B FF D5 2D */ bl NWC24FClose +/* 80304970 003005D0 2C 1A 00 00 */ cmpwi r26, 0 +/* 80304974 003005D4 41 82 00 08 */ beq lbl_8030497C +/* 80304978 003005D8 7F 43 D3 78 */ mr r3, r26 +lbl_8030497C: +/* 8030497C 003005DC 2C 03 00 00 */ cmpwi r3, 0 +/* 80304980 003005E0 40 80 00 74 */ bge lbl_803049F4 +/* 80304984 003005E4 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304988 003005E8 2C 1F 00 00 */ cmpwi r31, 0 +/* 8030498C 003005EC 38 63 30 00 */ addi r3, r3, 0x3000 +/* 80304990 003005F0 40 82 00 0C */ bne lbl_8030499C +/* 80304994 003005F4 38 00 FF FD */ li r0, -3 +/* 80304998 003005F8 48 00 00 38 */ b lbl_803049D0 +lbl_8030499C: +/* 8030499C 003005FC 2C 03 00 00 */ cmpwi r3, 0 +/* 803049A0 00300600 40 82 00 0C */ bne lbl_803049AC +/* 803049A4 00300604 38 00 FF F7 */ li r0, -9 +/* 803049A8 00300608 48 00 00 28 */ b lbl_803049D0 +lbl_803049AC: +/* 803049AC 0030060C A0 81 00 A8 */ lhz r4, 0xa8(r1) +/* 803049B0 00300610 28 04 FF FF */ cmplwi r4, 0xffff +/* 803049B4 00300614 41 82 00 18 */ beq lbl_803049CC +/* 803049B8 00300618 A0 03 00 10 */ lhz r0, 0x10(r3) +/* 803049BC 0030061C 7C 04 00 40 */ cmplw r4, r0 +/* 803049C0 00300620 41 80 00 0C */ blt lbl_803049CC +/* 803049C4 00300624 38 00 FF FD */ li r0, -3 +/* 803049C8 00300628 48 00 00 08 */ b lbl_803049D0 +lbl_803049CC: +/* 803049CC 0030062C 38 00 00 00 */ li r0, 0 +lbl_803049D0: +/* 803049D0 00300630 2C 00 00 00 */ cmpwi r0, 0 +/* 803049D4 00300634 40 82 00 A8 */ bne lbl_80304A7C +/* 803049D8 00300638 7F E3 FB 78 */ mr r3, r31 +/* 803049DC 0030063C 48 00 01 C1 */ bl DeleteDlTask +/* 803049E0 00300640 2C 03 00 00 */ cmpwi r3, 0 +/* 803049E4 00300644 41 80 00 98 */ blt lbl_80304A7C +/* 803049E8 00300648 38 1B FF FF */ addi r0, r27, -1 +/* 803049EC 0030064C B0 01 00 A8 */ sth r0, 0xa8(r1) +/* 803049F0 00300650 48 00 00 8C */ b lbl_80304A7C +lbl_803049F4: +/* 803049F4 00300654 80 8D AF 90 */ lwz r4, lbl_80640250-_SDA_BASE_(r13) +/* 803049F8 00300658 57 C3 04 3E */ clrlwi r3, r30, 0x10 +/* 803049FC 0030065C 38 84 30 00 */ addi r4, r4, 0x3000 +/* 80304A00 00300660 A0 04 00 12 */ lhz r0, 0x12(r4) +/* 80304A04 00300664 7C 03 00 40 */ cmplw r3, r0 +/* 80304A08 00300668 41 80 00 74 */ blt lbl_80304A7C +/* 80304A0C 0030066C A8 01 00 C0 */ lha r0, 0xc0(r1) +/* 80304A10 00300670 2C 00 00 00 */ cmpwi r0, 0 +/* 80304A14 00300674 40 82 00 68 */ bne lbl_80304A7C +/* 80304A18 00300678 2C 1F 00 00 */ cmpwi r31, 0 +/* 80304A1C 0030067C 40 82 00 0C */ bne lbl_80304A28 +/* 80304A20 00300680 38 00 FF FD */ li r0, -3 +/* 80304A24 00300684 48 00 00 38 */ b lbl_80304A5C +lbl_80304A28: +/* 80304A28 00300688 2C 04 00 00 */ cmpwi r4, 0 +/* 80304A2C 0030068C 40 82 00 0C */ bne lbl_80304A38 +/* 80304A30 00300690 38 00 FF F7 */ li r0, -9 +/* 80304A34 00300694 48 00 00 28 */ b lbl_80304A5C +lbl_80304A38: +/* 80304A38 00300698 A0 61 00 A8 */ lhz r3, 0xa8(r1) +/* 80304A3C 0030069C 28 03 FF FF */ cmplwi r3, 0xffff +/* 80304A40 003006A0 41 82 00 18 */ beq lbl_80304A58 +/* 80304A44 003006A4 A0 04 00 10 */ lhz r0, 0x10(r4) +/* 80304A48 003006A8 7C 03 00 40 */ cmplw r3, r0 +/* 80304A4C 003006AC 41 80 00 0C */ blt lbl_80304A58 +/* 80304A50 003006B0 38 00 FF FD */ li r0, -3 +/* 80304A54 003006B4 48 00 00 08 */ b lbl_80304A5C +lbl_80304A58: +/* 80304A58 003006B8 38 00 00 00 */ li r0, 0 +lbl_80304A5C: +/* 80304A5C 003006BC 2C 00 00 00 */ cmpwi r0, 0 +/* 80304A60 003006C0 40 82 00 1C */ bne lbl_80304A7C +/* 80304A64 003006C4 7F E3 FB 78 */ mr r3, r31 +/* 80304A68 003006C8 48 00 01 35 */ bl DeleteDlTask +/* 80304A6C 003006CC 2C 03 00 00 */ cmpwi r3, 0 +/* 80304A70 003006D0 41 80 00 0C */ blt lbl_80304A7C +/* 80304A74 003006D4 38 1B FF FF */ addi r0, r27, -1 +/* 80304A78 003006D8 B0 01 00 A8 */ sth r0, 0xa8(r1) +lbl_80304A7C: +/* 80304A7C 003006DC 3B DE 00 01 */ addi r30, r30, 1 +lbl_80304A80: +/* 80304A80 003006E0 A0 1C 00 10 */ lhz r0, 0x10(r28) +/* 80304A84 003006E4 57 C3 04 3E */ clrlwi r3, r30, 0x10 +/* 80304A88 003006E8 7C 03 00 40 */ cmplw r3, r0 +/* 80304A8C 003006EC 41 80 FD E4 */ blt lbl_80304870 +/* 80304A90 003006F0 39 61 02 C0 */ addi r11, r1, 0x2c0 +/* 80304A94 003006F4 38 60 00 00 */ li r3, 0 +/* 80304A98 003006F8 4B EC 26 D9 */ bl _restgpr_26 +/* 80304A9C 003006FC 80 01 02 C4 */ lwz r0, 0x2c4(r1) +/* 80304AA0 00300700 7C 08 03 A6 */ mtlr r0 +/* 80304AA4 00300704 38 21 02 C0 */ addi r1, r1, 0x2c0 +/* 80304AA8 00300708 4E 80 00 20 */ blr + +.global NWC24iLoadDlHeader +NWC24iLoadDlHeader: +/* 80304AAC 0030070C 94 21 FF 50 */ stwu r1, -0xb0(r1) +/* 80304AB0 00300710 7C 08 02 A6 */ mflr r0 +/* 80304AB4 00300714 38 A0 00 02 */ li r5, 2 +/* 80304AB8 00300718 90 01 00 B4 */ stw r0, 0xb4(r1) +/* 80304ABC 0030071C 38 61 00 0C */ addi r3, r1, 0xc +/* 80304AC0 00300720 93 E1 00 AC */ stw r31, 0xac(r1) +/* 80304AC4 00300724 3B E0 00 00 */ li r31, 0 +/* 80304AC8 00300728 80 8D 8C C0 */ lwz r4, lbl_8063DF80-_SDA_BASE_(r13) +/* 80304ACC 0030072C 93 E1 00 08 */ stw r31, 8(r1) +/* 80304AD0 00300730 4B FF D0 79 */ bl NWC24FOpen +/* 80304AD4 00300734 2C 03 00 00 */ cmpwi r3, 0 +/* 80304AD8 00300738 40 80 00 08 */ bge lbl_80304AE0 +/* 80304ADC 0030073C 48 00 00 AC */ b lbl_80304B88 +lbl_80304AE0: +/* 80304AE0 00300740 38 61 00 0C */ addi r3, r1, 0xc +/* 80304AE4 00300744 38 80 00 00 */ li r4, 0 +/* 80304AE8 00300748 38 A0 00 00 */ li r5, 0 +/* 80304AEC 0030074C 4B FF D5 41 */ bl NWC24FSeek +/* 80304AF0 00300750 2C 03 00 00 */ cmpwi r3, 0 +/* 80304AF4 00300754 40 80 00 08 */ bge lbl_80304AFC +/* 80304AF8 00300758 48 00 00 28 */ b lbl_80304B20 +lbl_80304AFC: +/* 80304AFC 0030075C 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304B00 00300760 38 A1 00 0C */ addi r5, r1, 0xc +/* 80304B04 00300764 38 80 08 00 */ li r4, 0x800 +/* 80304B08 00300768 38 63 30 00 */ addi r3, r3, 0x3000 +/* 80304B0C 0030076C 4B FF D7 0D */ bl NWC24FRead +/* 80304B10 00300770 2C 03 00 00 */ cmpwi r3, 0 +/* 80304B14 00300774 40 80 00 08 */ bge lbl_80304B1C +/* 80304B18 00300778 7C 7F 1B 78 */ mr r31, r3 +lbl_80304B1C: +/* 80304B1C 0030077C 7F E3 FB 78 */ mr r3, r31 +lbl_80304B20: +/* 80304B20 00300780 2C 03 00 00 */ cmpwi r3, 0 +/* 80304B24 00300784 40 80 00 08 */ bge lbl_80304B2C +/* 80304B28 00300788 48 00 00 60 */ b lbl_80304B88 +lbl_80304B2C: +/* 80304B2C 0030078C 38 61 00 0C */ addi r3, r1, 0xc +/* 80304B30 00300790 38 81 00 08 */ addi r4, r1, 8 +/* 80304B34 00300794 4B FF DA 85 */ bl NWC24FGetLength +/* 80304B38 00300798 2C 03 00 00 */ cmpwi r3, 0 +/* 80304B3C 0030079C 7C 7F 1B 78 */ mr r31, r3 +/* 80304B40 003007A0 41 80 00 34 */ blt lbl_80304B74 +/* 80304B44 003007A4 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304B48 003007A8 A0 83 30 10 */ lhz r4, 0x3010(r3) +/* 80304B4C 003007AC 28 04 00 01 */ cmplwi r4, 1 +/* 80304B50 003007B0 41 80 00 18 */ blt lbl_80304B68 +/* 80304B54 003007B4 A0 03 30 12 */ lhz r0, 0x3012(r3) +/* 80304B58 003007B8 28 00 00 01 */ cmplwi r0, 1 +/* 80304B5C 003007BC 41 80 00 0C */ blt lbl_80304B68 +/* 80304B60 003007C0 7C 04 00 40 */ cmplw r4, r0 +/* 80304B64 003007C4 40 80 00 0C */ bge lbl_80304B70 +lbl_80304B68: +/* 80304B68 003007C8 3B E0 FF F2 */ li r31, -14 +/* 80304B6C 003007CC 48 00 00 08 */ b lbl_80304B74 +lbl_80304B70: +/* 80304B70 003007D0 3B E0 00 00 */ li r31, 0 +lbl_80304B74: +/* 80304B74 003007D4 38 61 00 0C */ addi r3, r1, 0xc +/* 80304B78 003007D8 4B FF D3 21 */ bl NWC24FClose +/* 80304B7C 003007DC 2C 1F 00 00 */ cmpwi r31, 0 +/* 80304B80 003007E0 41 82 00 08 */ beq lbl_80304B88 +/* 80304B84 003007E4 7F E3 FB 78 */ mr r3, r31 +lbl_80304B88: +/* 80304B88 003007E8 80 01 00 B4 */ lwz r0, 0xb4(r1) +/* 80304B8C 003007EC 83 E1 00 AC */ lwz r31, 0xac(r1) +/* 80304B90 003007F0 7C 08 03 A6 */ mtlr r0 +/* 80304B94 003007F4 38 21 00 B0 */ addi r1, r1, 0xb0 +/* 80304B98 003007F8 4E 80 00 20 */ blr + +.global DeleteDlTask +DeleteDlTask: +/* 80304B9C 003007FC 94 21 FF 40 */ stwu r1, -0xc0(r1) +/* 80304BA0 00300800 7C 08 02 A6 */ mflr r0 +/* 80304BA4 00300804 38 A0 00 04 */ li r5, 4 +/* 80304BA8 00300808 90 01 00 C4 */ stw r0, 0xc4(r1) +/* 80304BAC 0030080C 93 E1 00 BC */ stw r31, 0xbc(r1) +/* 80304BB0 00300810 93 C1 00 B8 */ stw r30, 0xb8(r1) +/* 80304BB4 00300814 93 A1 00 B4 */ stw r29, 0xb4(r1) +/* 80304BB8 00300818 7C 7D 1B 78 */ mr r29, r3 +/* 80304BBC 0030081C 38 61 00 08 */ addi r3, r1, 8 +/* 80304BC0 00300820 80 8D 8C C0 */ lwz r4, lbl_8063DF80-_SDA_BASE_(r13) +/* 80304BC4 00300824 4B FF CF 85 */ bl NWC24FOpen +/* 80304BC8 00300828 2C 03 00 00 */ cmpwi r3, 0 +/* 80304BCC 0030082C 40 80 00 08 */ bge lbl_80304BD4 +/* 80304BD0 00300830 48 00 01 30 */ b lbl_80304D00 +lbl_80304BD4: +/* 80304BD4 00300834 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304BD8 00300838 38 80 00 00 */ li r4, 0 +/* 80304BDC 0030083C A3 FD 00 00 */ lhz r31, 0(r29) +/* 80304BE0 00300840 38 A0 02 00 */ li r5, 0x200 +/* 80304BE4 00300844 3B C3 38 00 */ addi r30, r3, 0x3800 +/* 80304BE8 00300848 7F C3 F3 78 */ mr r3, r30 +/* 80304BEC 0030084C 4B CF F5 19 */ bl memset +/* 80304BF0 00300850 38 60 00 FF */ li r3, 0xff +/* 80304BF4 00300854 57 E0 23 36 */ rlwinm r0, r31, 4, 0xc, 0x1b +/* 80304BF8 00300858 98 7E 00 02 */ stb r3, 2(r30) +/* 80304BFC 0030085C 38 80 00 00 */ li r4, 0 +/* 80304C00 00300860 38 A0 00 10 */ li r5, 0x10 +/* 80304C04 00300864 B3 FE 00 00 */ sth r31, 0(r30) +/* 80304C08 00300868 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304C0C 0030086C 7C 63 02 14 */ add r3, r3, r0 +/* 80304C10 00300870 38 63 30 80 */ addi r3, r3, 0x3080 +/* 80304C14 00300874 4B CF F4 F1 */ bl memset +/* 80304C18 00300878 A0 1E 00 00 */ lhz r0, 0(r30) +/* 80304C1C 0030087C 38 61 00 08 */ addi r3, r1, 8 +/* 80304C20 00300880 38 A0 00 00 */ li r5, 0 +/* 80304C24 00300884 54 04 48 2C */ slwi r4, r0, 9 +/* 80304C28 00300888 38 84 08 00 */ addi r4, r4, 0x800 +/* 80304C2C 0030088C 4B FF D4 01 */ bl NWC24FSeek +/* 80304C30 00300890 2C 03 00 00 */ cmpwi r3, 0 +/* 80304C34 00300894 40 80 00 08 */ bge lbl_80304C3C +/* 80304C38 00300898 48 00 00 40 */ b lbl_80304C78 +lbl_80304C3C: +/* 80304C3C 0030089C 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304C40 003008A0 7F C4 F3 78 */ mr r4, r30 +/* 80304C44 003008A4 38 A0 02 00 */ li r5, 0x200 +/* 80304C48 003008A8 38 63 38 00 */ addi r3, r3, 0x3800 +/* 80304C4C 003008AC 4B CF F3 B5 */ bl memcpy +/* 80304C50 003008B0 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304C54 003008B4 38 A1 00 08 */ addi r5, r1, 8 +/* 80304C58 003008B8 38 80 02 00 */ li r4, 0x200 +/* 80304C5C 003008BC 38 63 38 00 */ addi r3, r3, 0x3800 +/* 80304C60 003008C0 4B FF D7 85 */ bl NWC24FWrite +/* 80304C64 003008C4 2C 03 00 00 */ cmpwi r3, 0 +/* 80304C68 003008C8 38 00 00 00 */ li r0, 0 +/* 80304C6C 003008CC 40 80 00 08 */ bge lbl_80304C74 +/* 80304C70 003008D0 7C 60 1B 78 */ mr r0, r3 +lbl_80304C74: +/* 80304C74 003008D4 7C 03 03 78 */ mr r3, r0 +lbl_80304C78: +/* 80304C78 003008D8 2C 03 00 00 */ cmpwi r3, 0 +/* 80304C7C 003008DC 7C 7E 1B 78 */ mr r30, r3 +/* 80304C80 003008E0 41 80 00 6C */ blt lbl_80304CEC +/* 80304C84 003008E4 A0 1D 00 00 */ lhz r0, 0(r29) +/* 80304C88 003008E8 38 80 00 00 */ li r4, 0 +/* 80304C8C 003008EC 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304C90 003008F0 38 A0 00 10 */ li r5, 0x10 +/* 80304C94 003008F4 54 00 20 36 */ slwi r0, r0, 4 +/* 80304C98 003008F8 7C 63 02 14 */ add r3, r3, r0 +/* 80304C9C 003008FC 38 63 30 80 */ addi r3, r3, 0x3080 +/* 80304CA0 00300900 4B CF F4 65 */ bl memset +/* 80304CA4 00300904 38 61 00 08 */ addi r3, r1, 8 +/* 80304CA8 00300908 38 80 00 00 */ li r4, 0 +/* 80304CAC 0030090C 38 A0 00 00 */ li r5, 0 +/* 80304CB0 00300910 4B FF D3 7D */ bl NWC24FSeek +/* 80304CB4 00300914 2C 03 00 00 */ cmpwi r3, 0 +/* 80304CB8 00300918 40 80 00 08 */ bge lbl_80304CC0 +/* 80304CBC 0030091C 48 00 00 2C */ b lbl_80304CE8 +lbl_80304CC0: +/* 80304CC0 00300920 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304CC4 00300924 38 A1 00 08 */ addi r5, r1, 8 +/* 80304CC8 00300928 38 80 08 00 */ li r4, 0x800 +/* 80304CCC 0030092C 38 63 30 00 */ addi r3, r3, 0x3000 +/* 80304CD0 00300930 4B FF D7 15 */ bl NWC24FWrite +/* 80304CD4 00300934 2C 03 00 00 */ cmpwi r3, 0 +/* 80304CD8 00300938 38 00 00 00 */ li r0, 0 +/* 80304CDC 0030093C 40 80 00 08 */ bge lbl_80304CE4 +/* 80304CE0 00300940 7C 60 1B 78 */ mr r0, r3 +lbl_80304CE4: +/* 80304CE4 00300944 7C 03 03 78 */ mr r3, r0 +lbl_80304CE8: +/* 80304CE8 00300948 7C 7E 1B 78 */ mr r30, r3 +lbl_80304CEC: +/* 80304CEC 0030094C 38 61 00 08 */ addi r3, r1, 8 +/* 80304CF0 00300950 4B FF D1 A9 */ bl NWC24FClose +/* 80304CF4 00300954 2C 1E 00 00 */ cmpwi r30, 0 +/* 80304CF8 00300958 41 82 00 08 */ beq lbl_80304D00 +/* 80304CFC 0030095C 7F C3 F3 78 */ mr r3, r30 +lbl_80304D00: +/* 80304D00 00300960 80 01 00 C4 */ lwz r0, 0xc4(r1) +/* 80304D04 00300964 83 E1 00 BC */ lwz r31, 0xbc(r1) +/* 80304D08 00300968 83 C1 00 B8 */ lwz r30, 0xb8(r1) +/* 80304D0C 0030096C 83 A1 00 B4 */ lwz r29, 0xb4(r1) +/* 80304D10 00300970 7C 08 03 A6 */ mtlr r0 +/* 80304D14 00300974 38 21 00 C0 */ addi r1, r1, 0xc0 +/* 80304D18 00300978 4E 80 00 20 */ blr diff --git a/asm/SDK/NWC24/NWC24FriendList.s b/asm/SDK/NWC24/NWC24FriendList.s new file mode 100644 index 0000000..d375ead --- /dev/null +++ b/asm/SDK/NWC24/NWC24FriendList.s @@ -0,0 +1,86 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global NWC24iOpenFriendList +NWC24iOpenFriendList: +/* 80304268 002FFEC8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8030426C 002FFECC 7C 08 02 A6 */ mflr r0 +/* 80304270 002FFED0 38 80 00 00 */ li r4, 0 +/* 80304274 002FFED4 38 A0 03 60 */ li r5, 0x360 +/* 80304278 002FFED8 90 01 00 14 */ stw r0, 0x14(r1) +/* 8030427C 002FFEDC 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 80304280 002FFEE0 38 63 24 00 */ addi r3, r3, 0x2400 +/* 80304284 002FFEE4 90 61 00 08 */ stw r3, 8(r1) +/* 80304288 002FFEE8 4B FF CD 8D */ bl Mail_memset +/* 8030428C 002FFEEC 38 61 00 08 */ addi r3, r1, 8 +/* 80304290 002FFEF0 48 00 00 15 */ bl GetCachedFLHeader +/* 80304294 002FFEF4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80304298 002FFEF8 7C 08 03 A6 */ mtlr r0 +/* 8030429C 002FFEFC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803042A0 002FFF00 4E 80 00 20 */ blr + +.global GetCachedFLHeader +GetCachedFLHeader: +/* 803042A4 002FFF04 94 21 FF 50 */ stwu r1, -0xb0(r1) +/* 803042A8 002FFF08 7C 08 02 A6 */ mflr r0 +/* 803042AC 002FFF0C 90 01 00 B4 */ stw r0, 0xb4(r1) +/* 803042B0 002FFF10 93 E1 00 AC */ stw r31, 0xac(r1) +/* 803042B4 002FFF14 93 C1 00 A8 */ stw r30, 0xa8(r1) +/* 803042B8 002FFF18 7C 7E 1B 78 */ mr r30, r3 +/* 803042BC 002FFF1C 80 8D AF 90 */ lwz r4, lbl_80640250-_SDA_BASE_(r13) +/* 803042C0 002FFF20 38 84 24 00 */ addi r4, r4, 0x2400 +/* 803042C4 002FFF24 90 83 00 00 */ stw r4, 0(r3) +/* 803042C8 002FFF28 80 64 00 00 */ lwz r3, 0(r4) +/* 803042CC 002FFF2C 3C 03 A8 9D */ addis r0, r3, 0xa89d +/* 803042D0 002FFF30 28 00 46 6C */ cmplwi r0, 0x466c +/* 803042D4 002FFF34 41 82 00 94 */ beq lbl_80304368 +/* 803042D8 002FFF38 80 8D 8C B0 */ lwz r4, lbl_8063DF70-_SDA_BASE_(r13) +/* 803042DC 002FFF3C 38 61 00 08 */ addi r3, r1, 8 +/* 803042E0 002FFF40 38 A0 00 02 */ li r5, 2 +/* 803042E4 002FFF44 4B FF D8 65 */ bl NWC24FOpen +/* 803042E8 002FFF48 2C 03 00 00 */ cmpwi r3, 0 +/* 803042EC 002FFF4C 41 82 00 08 */ beq lbl_803042F4 +/* 803042F0 002FFF50 48 00 00 7C */ b lbl_8030436C +lbl_803042F4: +/* 803042F4 002FFF54 38 61 00 08 */ addi r3, r1, 8 +/* 803042F8 002FFF58 38 80 00 00 */ li r4, 0 +/* 803042FC 002FFF5C 38 A0 00 00 */ li r5, 0 +/* 80304300 002FFF60 4B FF DD 2D */ bl NWC24FSeek +/* 80304304 002FFF64 80 7E 00 00 */ lwz r3, 0(r30) +/* 80304308 002FFF68 38 A1 00 08 */ addi r5, r1, 8 +/* 8030430C 002FFF6C 38 80 03 60 */ li r4, 0x360 +/* 80304310 002FFF70 4B FF DF 09 */ bl NWC24FRead +/* 80304314 002FFF74 7C 7F 1B 78 */ mr r31, r3 +/* 80304318 002FFF78 38 61 00 08 */ addi r3, r1, 8 +/* 8030431C 002FFF7C 4B FF DB 7D */ bl NWC24FClose +/* 80304320 002FFF80 2C 1F 00 00 */ cmpwi r31, 0 +/* 80304324 002FFF84 41 82 00 08 */ beq lbl_8030432C +/* 80304328 002FFF88 7F E3 FB 78 */ mr r3, r31 +lbl_8030432C: +/* 8030432C 002FFF8C 2C 03 00 00 */ cmpwi r3, 0 +/* 80304330 002FFF90 41 82 00 08 */ beq lbl_80304338 +/* 80304334 002FFF94 48 00 00 38 */ b lbl_8030436C +lbl_80304338: +/* 80304338 002FFF98 80 9E 00 00 */ lwz r4, 0(r30) +/* 8030433C 002FFF9C 80 64 00 00 */ lwz r3, 0(r4) +/* 80304340 002FFFA0 3C 03 A8 9D */ addis r0, r3, 0xa89d +/* 80304344 002FFFA4 28 00 46 6C */ cmplwi r0, 0x466c +/* 80304348 002FFFA8 41 82 00 0C */ beq lbl_80304354 +/* 8030434C 002FFFAC 38 60 FF F2 */ li r3, -14 +/* 80304350 002FFFB0 48 00 00 1C */ b lbl_8030436C +lbl_80304354: +/* 80304354 002FFFB4 80 04 00 04 */ lwz r0, 4(r4) +/* 80304358 002FFFB8 28 00 00 02 */ cmplwi r0, 2 +/* 8030435C 002FFFBC 41 82 00 0C */ beq lbl_80304368 +/* 80304360 002FFFC0 38 60 FF E5 */ li r3, -27 +/* 80304364 002FFFC4 48 00 00 08 */ b lbl_8030436C +lbl_80304368: +/* 80304368 002FFFC8 38 60 00 00 */ li r3, 0 +lbl_8030436C: +/* 8030436C 002FFFCC 80 01 00 B4 */ lwz r0, 0xb4(r1) +/* 80304370 002FFFD0 83 E1 00 AC */ lwz r31, 0xac(r1) +/* 80304374 002FFFD4 83 C1 00 A8 */ lwz r30, 0xa8(r1) +/* 80304378 002FFFD8 7C 08 03 A6 */ mtlr r0 +/* 8030437C 002FFFDC 38 21 00 B0 */ addi r1, r1, 0xb0 +/* 80304380 002FFFE0 4E 80 00 20 */ blr diff --git a/asm/SDK/NWC24/NWC24Ipc.s b/asm/SDK/NWC24/NWC24Ipc.s new file mode 100644 index 0000000..eb9183c --- /dev/null +++ b/asm/SDK/NWC24/NWC24Ipc.s @@ -0,0 +1,122 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global NWC24iOpenResourceManager +NWC24iOpenResourceManager: +/* 8030467C 003002DC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80304680 003002E0 7C 08 02 A6 */ mflr r0 +/* 80304684 003002E4 2C 05 00 00 */ cmpwi r5, 0 +/* 80304688 003002E8 90 01 00 14 */ stw r0, 0x14(r1) +/* 8030468C 003002EC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80304690 003002F0 7C BF 2B 78 */ mr r31, r5 +/* 80304694 003002F4 40 82 00 0C */ bne lbl_803046A0 +/* 80304698 003002F8 38 60 FF FD */ li r3, -3 +/* 8030469C 003002FC 48 00 00 44 */ b lbl_803046E0 +lbl_803046A0: +/* 803046A0 00300300 7C 83 23 78 */ mr r3, r4 +/* 803046A4 00300304 7C C4 33 78 */ mr r4, r6 +/* 803046A8 00300308 4B F9 EA B1 */ bl IOS_Open +/* 803046AC 0030030C 2C 03 00 00 */ cmpwi r3, 0 +/* 803046B0 00300310 90 7F 00 00 */ stw r3, 0(r31) +/* 803046B4 00300314 40 80 00 28 */ bge lbl_803046DC +/* 803046B8 00300318 2C 03 FF FA */ cmpwi r3, -6 +/* 803046BC 0030031C 40 82 00 0C */ bne lbl_803046C8 +/* 803046C0 00300320 38 60 FF E3 */ li r3, -29 +/* 803046C4 00300324 48 00 00 1C */ b lbl_803046E0 +lbl_803046C8: +/* 803046C8 00300328 2C 03 FF F8 */ cmpwi r3, -8 +/* 803046CC 0030032C 38 60 FF D6 */ li r3, -42 +/* 803046D0 00300330 40 82 00 10 */ bne lbl_803046E0 +/* 803046D4 00300334 38 60 FF E6 */ li r3, -26 +/* 803046D8 00300338 48 00 00 08 */ b lbl_803046E0 +lbl_803046DC: +/* 803046DC 0030033C 38 60 00 00 */ li r3, 0 +lbl_803046E0: +/* 803046E0 00300340 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803046E4 00300344 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803046E8 00300348 7C 08 03 A6 */ mtlr r0 +/* 803046EC 0030034C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803046F0 00300350 4E 80 00 20 */ blr + +.global NWC24iCloseResourceManager +NWC24iCloseResourceManager: +/* 803046F4 00300354 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803046F8 00300358 7C 08 02 A6 */ mflr r0 +/* 803046FC 0030035C 7C 83 23 78 */ mr r3, r4 +/* 80304700 00300360 90 01 00 14 */ stw r0, 0x14(r1) +/* 80304704 00300364 4B F9 EC 35 */ bl IOS_Close +/* 80304708 00300368 2C 03 00 00 */ cmpwi r3, 0 +/* 8030470C 0030036C 38 60 00 00 */ li r3, 0 +/* 80304710 00300370 40 80 00 08 */ bge lbl_80304718 +/* 80304714 00300374 38 60 FF D6 */ li r3, -42 +lbl_80304718: +/* 80304718 00300378 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8030471C 0030037C 7C 08 03 A6 */ mtlr r0 +/* 80304720 00300380 38 21 00 10 */ addi r1, r1, 0x10 +/* 80304724 00300384 4E 80 00 20 */ blr + +.global NWC24iIoctlResourceManager +NWC24iIoctlResourceManager: +/* 80304728 00300388 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8030472C 0030038C 7C 08 02 A6 */ mflr r0 +/* 80304730 00300390 7C 83 23 78 */ mr r3, r4 +/* 80304734 00300394 7C A4 2B 78 */ mr r4, r5 +/* 80304738 00300398 90 01 00 14 */ stw r0, 0x14(r1) +/* 8030473C 0030039C 7C C5 33 78 */ mr r5, r6 +/* 80304740 003003A0 7C E6 3B 78 */ mr r6, r7 +/* 80304744 003003A4 7D 07 43 78 */ mr r7, r8 +/* 80304748 003003A8 7D 28 4B 78 */ mr r8, r9 +/* 8030474C 003003AC 4B F9 F3 A5 */ bl IOS_Ioctl +/* 80304750 003003B0 2C 03 00 00 */ cmpwi r3, 0 +/* 80304754 003003B4 38 60 00 00 */ li r3, 0 +/* 80304758 003003B8 40 80 00 08 */ bge lbl_80304760 +/* 8030475C 003003BC 38 60 FF D6 */ li r3, -42 +lbl_80304760: +/* 80304760 003003C0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80304764 003003C4 7C 08 03 A6 */ mtlr r0 +/* 80304768 003003C8 38 21 00 10 */ addi r1, r1, 0x10 +/* 8030476C 003003CC 4E 80 00 20 */ blr + +.global NWC24iIoctlResourceManagerAsync +NWC24iIoctlResourceManagerAsync: +/* 80304770 003003D0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80304774 003003D4 7C 08 02 A6 */ mflr r0 +/* 80304778 003003D8 7C 83 23 78 */ mr r3, r4 +/* 8030477C 003003DC 7C A4 2B 78 */ mr r4, r5 +/* 80304780 003003E0 90 01 00 14 */ stw r0, 0x14(r1) +/* 80304784 003003E4 3D 60 80 30 */ lis r11, CallbackAsyncIpc@ha +/* 80304788 003003E8 7C C5 33 78 */ mr r5, r6 +/* 8030478C 003003EC 7C E6 3B 78 */ mr r6, r7 +/* 80304790 003003F0 7D 07 43 78 */ mr r7, r8 +/* 80304794 003003F4 7D 28 4B 78 */ mr r8, r9 +/* 80304798 003003F8 39 2B 47 D4 */ addi r9, r11, CallbackAsyncIpc@l +/* 8030479C 003003FC 4B F9 F2 1D */ bl IOS_IoctlAsync +/* 803047A0 00300400 2C 03 00 00 */ cmpwi r3, 0 +/* 803047A4 00300404 40 80 00 0C */ bge lbl_803047B0 +/* 803047A8 00300408 38 60 FF D6 */ li r3, -42 +/* 803047AC 0030040C 48 00 00 10 */ b lbl_803047BC +lbl_803047B0: +/* 803047B0 00300410 38 00 00 01 */ li r0, 1 +/* 803047B4 00300414 38 60 00 00 */ li r3, 0 +/* 803047B8 00300418 90 0D AF C8 */ stw r0, lbl_80640288-_SDA_BASE_(r13) +lbl_803047BC: +/* 803047BC 0030041C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803047C0 00300420 7C 08 03 A6 */ mtlr r0 +/* 803047C4 00300424 38 21 00 10 */ addi r1, r1, 0x10 +/* 803047C8 00300428 4E 80 00 20 */ blr + +.global NWC24iIsAsyncRequestPending +NWC24iIsAsyncRequestPending: +/* 803047CC 0030042C 80 6D AF C8 */ lwz r3, lbl_80640288-_SDA_BASE_(r13) +/* 803047D0 00300430 4E 80 00 20 */ blr + +CallbackAsyncIpc: +/* 803047D4 00300434 2C 04 00 00 */ cmpwi r4, 0 +/* 803047D8 00300438 41 82 00 08 */ beq lbl_803047E0 +/* 803047DC 0030043C 90 64 00 00 */ stw r3, 0(r4) +lbl_803047E0: +/* 803047E0 00300440 38 00 00 00 */ li r0, 0 +/* 803047E4 00300444 38 60 00 00 */ li r3, 0 +/* 803047E8 00300448 90 0D AF C8 */ stw r0, lbl_80640288-_SDA_BASE_(r13) +/* 803047EC 0030044C 4E 80 00 20 */ blr diff --git a/asm/SDK/NWC24/NWC24Manage.s b/asm/SDK/NWC24/NWC24Manage.s index 726ae61..372e88e 100644 --- a/asm/SDK/NWC24/NWC24Manage.s +++ b/asm/SDK/NWC24/NWC24Manage.s @@ -70,7 +70,7 @@ lbl_8030311C: /* 80303124 002FED84 38 60 FF E9 */ li r3, -23 /* 80303128 002FED88 48 00 01 34 */ b lbl_8030325C lbl_8030312C: -/* 8030312C 002FED8C 48 00 0C 85 */ bl func_80303DB0 +/* 8030312C 002FED8C 48 00 0C 85 */ bl NWC24iTrySuspendForOpenLib /* 80303130 002FED90 2C 03 00 00 */ cmpwi r3, 0 /* 80303134 002FED94 40 82 00 F8 */ bne lbl_8030322C /* 80303138 002FED98 80 0D AF A0 */ lwz r0, lbl_80640260-_SDA_BASE_(r13) @@ -86,7 +86,7 @@ lbl_80303154: /* 8030315C 002FEDBC 93 CD AF 90 */ stw r30, lbl_80640250-_SDA_BASE_(r13) /* 80303160 002FEDC0 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e /* 80303164 002FEDC4 90 0D AF 98 */ stw r0, lbl_80640258-_SDA_BASE_(r13) -/* 80303168 002FEDC8 48 00 05 AD */ bl func_80303714 +/* 80303168 002FEDC8 48 00 05 AD */ bl NWC24InitBase64Table /* 8030316C 002FEDCC 3B C0 00 00 */ li r30, 0 /* 80303170 002FEDD0 3B E0 00 00 */ li r31, 0 /* 80303174 002FEDD4 4B FF FA F9 */ bl NWC24iConfigOpen @@ -101,13 +101,13 @@ lbl_80303188: /* 80303194 002FEDF4 7C 7F 1B 78 */ mr r31, r3 /* 80303198 002FEDF8 63 DE 00 04 */ ori r30, r30, 4 lbl_8030319C: -/* 8030319C 002FEDFC 48 00 10 CD */ bl func_80304268 +/* 8030319C 002FEDFC 48 00 10 CD */ bl NWC24iOpenFriendList /* 803031A0 002FEE00 2C 03 00 00 */ cmpwi r3, 0 /* 803031A4 002FEE04 41 82 00 0C */ beq lbl_803031B0 /* 803031A8 002FEE08 7C 7F 1B 78 */ mr r31, r3 /* 803031AC 002FEE0C 63 DE 00 04 */ ori r30, r30, 4 lbl_803031B0: -/* 803031B0 002FEE10 48 00 11 D5 */ bl func_80304384 +/* 803031B0 002FEE10 48 00 11 D5 */ bl NWC24iOpenSecretFriendList /* 803031B4 002FEE14 2C 03 00 00 */ cmpwi r3, 0 /* 803031B8 002FEE18 41 82 00 1C */ beq lbl_803031D4 /* 803031BC 002FEE1C 2C 03 FF EC */ cmpwi r3, -20 @@ -118,7 +118,7 @@ lbl_803031B0: lbl_803031D0: /* 803031D0 002FEE30 7C 1E 03 78 */ mr r30, r0 lbl_803031D4: -/* 803031D4 002FEE34 48 00 16 1D */ bl func_803047F0 +/* 803031D4 002FEE34 48 00 16 1D */ bl NWC24iOpenDlTaskList /* 803031D8 002FEE38 2C 03 00 00 */ cmpwi r3, 0 /* 803031DC 002FEE3C 40 80 00 1C */ bge lbl_803031F8 /* 803031E0 002FEE40 2C 03 FF EC */ cmpwi r3, -20 @@ -137,7 +137,7 @@ lbl_80303204: /* 80303208 002FEE68 41 82 00 18 */ beq lbl_80303220 /* 8030320C 002FEE6C 38 00 00 00 */ li r0, 0 /* 80303210 002FEE70 90 0D AF 90 */ stw r0, lbl_80640250-_SDA_BASE_(r13) -/* 80303214 002FEE74 48 00 0C 7D */ bl func_80303E90 +/* 80303214 002FEE74 48 00 0C 7D */ bl NWC24iResumeForCloseLib /* 80303218 002FEE78 7F E3 FB 78 */ mr r3, r31 /* 8030321C 002FEE7C 48 00 00 10 */ b lbl_8030322C lbl_80303220: @@ -182,12 +182,12 @@ lbl_80303298: /* 803032A0 002FEF00 41 82 00 08 */ beq lbl_803032A8 /* 803032A4 002FEF04 48 00 00 30 */ b lbl_803032D4 lbl_803032A8: -/* 803032A8 002FEF08 48 00 15 95 */ bl func_8030483C +/* 803032A8 002FEF08 48 00 15 95 */ bl NWC24iCloseDlTaskList /* 803032AC 002FEF0C 2C 03 00 00 */ cmpwi r3, 0 /* 803032B0 002FEF10 40 80 00 08 */ bge lbl_803032B8 /* 803032B4 002FEF14 48 00 00 20 */ b lbl_803032D4 lbl_803032B8: -/* 803032B8 002FEF18 48 00 0B D9 */ bl func_80303E90 +/* 803032B8 002FEF18 48 00 0B D9 */ bl NWC24iResumeForCloseLib /* 803032BC 002FEF1C 2C 03 00 00 */ cmpwi r3, 0 /* 803032C0 002FEF20 41 82 00 08 */ beq lbl_803032C8 /* 803032C4 002FEF24 48 00 00 10 */ b lbl_803032D4 diff --git a/asm/SDK/NWC24/NWC24Mime.s b/asm/SDK/NWC24/NWC24Mime.s new file mode 100644 index 0000000..f41dc54 --- /dev/null +++ b/asm/SDK/NWC24/NWC24Mime.s @@ -0,0 +1,191 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global NWC24InitBase64Table +NWC24InitBase64Table: +/* 80303714 002FF374 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80303718 002FF378 7C 08 02 A6 */ mflr r0 +/* 8030371C 002FF37C 90 01 00 34 */ stw r0, 0x34(r1) +/* 80303720 002FF380 39 61 00 30 */ addi r11, r1, 0x30 +/* 80303724 002FF384 4B EC 39 FD */ bl _savegpr_25 +/* 80303728 002FF388 38 00 00 08 */ li r0, 8 +/* 8030372C 002FF38C 38 C0 00 00 */ li r6, 0 +/* 80303730 002FF390 38 80 FF FF */ li r4, -1 +/* 80303734 002FF394 7C 09 03 A6 */ mtctr r0 +lbl_80303738: +/* 80303738 002FF398 7C 83 31 AE */ stbx r4, r3, r6 +/* 8030373C 002FF39C 7C A3 32 14 */ add r5, r3, r6 +/* 80303740 002FF3A0 38 C6 00 08 */ addi r6, r6, 8 +/* 80303744 002FF3A4 98 85 00 01 */ stb r4, 1(r5) +/* 80303748 002FF3A8 98 85 00 02 */ stb r4, 2(r5) +/* 8030374C 002FF3AC 98 85 00 03 */ stb r4, 3(r5) +/* 80303750 002FF3B0 98 85 00 04 */ stb r4, 4(r5) +/* 80303754 002FF3B4 98 85 00 05 */ stb r4, 5(r5) +/* 80303758 002FF3B8 98 85 00 06 */ stb r4, 6(r5) +/* 8030375C 002FF3BC 98 85 00 07 */ stb r4, 7(r5) +/* 80303760 002FF3C0 7C A3 32 14 */ add r5, r3, r6 +/* 80303764 002FF3C4 7C 83 31 AE */ stbx r4, r3, r6 +/* 80303768 002FF3C8 38 C6 00 08 */ addi r6, r6, 8 +/* 8030376C 002FF3CC 98 85 00 01 */ stb r4, 1(r5) +/* 80303770 002FF3D0 98 85 00 02 */ stb r4, 2(r5) +/* 80303774 002FF3D4 98 85 00 03 */ stb r4, 3(r5) +/* 80303778 002FF3D8 98 85 00 04 */ stb r4, 4(r5) +/* 8030377C 002FF3DC 98 85 00 05 */ stb r4, 5(r5) +/* 80303780 002FF3E0 98 85 00 06 */ stb r4, 6(r5) +/* 80303784 002FF3E4 98 85 00 07 */ stb r4, 7(r5) +/* 80303788 002FF3E8 7C A3 32 14 */ add r5, r3, r6 +/* 8030378C 002FF3EC 7C 83 31 AE */ stbx r4, r3, r6 +/* 80303790 002FF3F0 38 C6 00 08 */ addi r6, r6, 8 +/* 80303794 002FF3F4 98 85 00 01 */ stb r4, 1(r5) +/* 80303798 002FF3F8 98 85 00 02 */ stb r4, 2(r5) +/* 8030379C 002FF3FC 98 85 00 03 */ stb r4, 3(r5) +/* 803037A0 002FF400 98 85 00 04 */ stb r4, 4(r5) +/* 803037A4 002FF404 98 85 00 05 */ stb r4, 5(r5) +/* 803037A8 002FF408 98 85 00 06 */ stb r4, 6(r5) +/* 803037AC 002FF40C 98 85 00 07 */ stb r4, 7(r5) +/* 803037B0 002FF410 7C A3 32 14 */ add r5, r3, r6 +/* 803037B4 002FF414 7C 83 31 AE */ stbx r4, r3, r6 +/* 803037B8 002FF418 38 C6 00 08 */ addi r6, r6, 8 +/* 803037BC 002FF41C 98 85 00 01 */ stb r4, 1(r5) +/* 803037C0 002FF420 98 85 00 02 */ stb r4, 2(r5) +/* 803037C4 002FF424 98 85 00 03 */ stb r4, 3(r5) +/* 803037C8 002FF428 98 85 00 04 */ stb r4, 4(r5) +/* 803037CC 002FF42C 98 85 00 05 */ stb r4, 5(r5) +/* 803037D0 002FF430 98 85 00 06 */ stb r4, 6(r5) +/* 803037D4 002FF434 98 85 00 07 */ stb r4, 7(r5) +/* 803037D8 002FF438 42 00 FF 60 */ bdnz lbl_80303738 +/* 803037DC 002FF43C 39 80 00 00 */ li r12, 0 +/* 803037E0 002FF440 39 60 00 01 */ li r11, 1 +/* 803037E4 002FF444 99 83 00 41 */ stb r12, 0x41(r3) +/* 803037E8 002FF448 39 40 00 02 */ li r10, 2 +/* 803037EC 002FF44C 39 20 00 03 */ li r9, 3 +/* 803037F0 002FF450 39 00 00 04 */ li r8, 4 +/* 803037F4 002FF454 99 63 00 42 */ stb r11, 0x42(r3) +/* 803037F8 002FF458 38 E0 00 05 */ li r7, 5 +/* 803037FC 002FF45C 38 C0 00 06 */ li r6, 6 +/* 80303800 002FF460 38 A0 00 07 */ li r5, 7 +/* 80303804 002FF464 99 43 00 43 */ stb r10, 0x43(r3) +/* 80303808 002FF468 39 80 00 08 */ li r12, 8 +/* 8030380C 002FF46C 39 60 00 09 */ li r11, 9 +/* 80303810 002FF470 39 40 00 0A */ li r10, 0xa +/* 80303814 002FF474 99 23 00 44 */ stb r9, 0x44(r3) +/* 80303818 002FF478 39 20 00 0B */ li r9, 0xb +/* 8030381C 002FF47C 38 80 00 18 */ li r4, 0x18 +/* 80303820 002FF480 38 00 00 19 */ li r0, 0x19 +/* 80303824 002FF484 99 03 00 45 */ stb r8, 0x45(r3) +/* 80303828 002FF488 39 00 00 0C */ li r8, 0xc +/* 8030382C 002FF48C 98 E3 00 46 */ stb r7, 0x46(r3) +/* 80303830 002FF490 38 E0 00 0D */ li r7, 0xd +/* 80303834 002FF494 98 C3 00 47 */ stb r6, 0x47(r3) +/* 80303838 002FF498 38 C0 00 0E */ li r6, 0xe +/* 8030383C 002FF49C 98 A3 00 48 */ stb r5, 0x48(r3) +/* 80303840 002FF4A0 38 A0 00 0F */ li r5, 0xf +/* 80303844 002FF4A4 99 83 00 49 */ stb r12, 0x49(r3) +/* 80303848 002FF4A8 39 80 00 10 */ li r12, 0x10 +/* 8030384C 002FF4AC 99 63 00 4A */ stb r11, 0x4a(r3) +/* 80303850 002FF4B0 39 60 00 11 */ li r11, 0x11 +/* 80303854 002FF4B4 99 43 00 4B */ stb r10, 0x4b(r3) +/* 80303858 002FF4B8 39 40 00 12 */ li r10, 0x12 +/* 8030385C 002FF4BC 99 23 00 4C */ stb r9, 0x4c(r3) +/* 80303860 002FF4C0 39 20 00 13 */ li r9, 0x13 +/* 80303864 002FF4C4 99 03 00 4D */ stb r8, 0x4d(r3) +/* 80303868 002FF4C8 39 00 00 14 */ li r8, 0x14 +/* 8030386C 002FF4CC 98 E3 00 4E */ stb r7, 0x4e(r3) +/* 80303870 002FF4D0 38 E0 00 15 */ li r7, 0x15 +/* 80303874 002FF4D4 98 C3 00 4F */ stb r6, 0x4f(r3) +/* 80303878 002FF4D8 38 C0 00 16 */ li r6, 0x16 +/* 8030387C 002FF4DC 98 A3 00 50 */ stb r5, 0x50(r3) +/* 80303880 002FF4E0 38 A0 00 17 */ li r5, 0x17 +/* 80303884 002FF4E4 99 83 00 51 */ stb r12, 0x51(r3) +/* 80303888 002FF4E8 99 63 00 52 */ stb r11, 0x52(r3) +/* 8030388C 002FF4EC 99 43 00 53 */ stb r10, 0x53(r3) +/* 80303890 002FF4F0 99 23 00 54 */ stb r9, 0x54(r3) +/* 80303894 002FF4F4 99 03 00 55 */ stb r8, 0x55(r3) +/* 80303898 002FF4F8 98 E3 00 56 */ stb r7, 0x56(r3) +/* 8030389C 002FF4FC 98 C3 00 57 */ stb r6, 0x57(r3) +/* 803038A0 002FF500 98 A3 00 58 */ stb r5, 0x58(r3) +/* 803038A4 002FF504 98 83 00 59 */ stb r4, 0x59(r3) +/* 803038A8 002FF508 98 03 00 5A */ stb r0, 0x5a(r3) +/* 803038AC 002FF50C 3B 20 00 1A */ li r25, 0x1a +/* 803038B0 002FF510 3B 40 00 1B */ li r26, 0x1b +/* 803038B4 002FF514 9B 23 00 61 */ stb r25, 0x61(r3) +/* 803038B8 002FF518 3B 60 00 1C */ li r27, 0x1c +/* 803038BC 002FF51C 3B 80 00 1D */ li r28, 0x1d +/* 803038C0 002FF520 3B A0 00 1E */ li r29, 0x1e +/* 803038C4 002FF524 9B 43 00 62 */ stb r26, 0x62(r3) +/* 803038C8 002FF528 3B C0 00 1F */ li r30, 0x1f +/* 803038CC 002FF52C 3B E0 00 20 */ li r31, 0x20 +/* 803038D0 002FF530 39 80 00 21 */ li r12, 0x21 +/* 803038D4 002FF534 9B 63 00 63 */ stb r27, 0x63(r3) +/* 803038D8 002FF538 3B 20 00 22 */ li r25, 0x22 +/* 803038DC 002FF53C 3B 40 00 23 */ li r26, 0x23 +/* 803038E0 002FF540 3B 60 00 24 */ li r27, 0x24 +/* 803038E4 002FF544 9B 83 00 64 */ stb r28, 0x64(r3) +/* 803038E8 002FF548 3B 80 00 25 */ li r28, 0x25 +/* 803038EC 002FF54C 39 60 00 32 */ li r11, 0x32 +/* 803038F0 002FF550 39 40 00 33 */ li r10, 0x33 +/* 803038F4 002FF554 9B A3 00 65 */ stb r29, 0x65(r3) +/* 803038F8 002FF558 3B A0 00 26 */ li r29, 0x26 +/* 803038FC 002FF55C 39 20 00 34 */ li r9, 0x34 +/* 80303900 002FF560 39 00 00 35 */ li r8, 0x35 +/* 80303904 002FF564 9B C3 00 66 */ stb r30, 0x66(r3) +/* 80303908 002FF568 3B C0 00 27 */ li r30, 0x27 +/* 8030390C 002FF56C 38 E0 00 36 */ li r7, 0x36 +/* 80303910 002FF570 38 C0 00 37 */ li r6, 0x37 +/* 80303914 002FF574 9B E3 00 67 */ stb r31, 0x67(r3) +/* 80303918 002FF578 3B E0 00 28 */ li r31, 0x28 +/* 8030391C 002FF57C 38 A0 00 38 */ li r5, 0x38 +/* 80303920 002FF580 38 80 00 3E */ li r4, 0x3e +/* 80303924 002FF584 99 83 00 68 */ stb r12, 0x68(r3) +/* 80303928 002FF588 39 80 00 29 */ li r12, 0x29 +/* 8030392C 002FF58C 38 00 00 3F */ li r0, 0x3f +/* 80303930 002FF590 9B 23 00 69 */ stb r25, 0x69(r3) +/* 80303934 002FF594 3B 20 00 2A */ li r25, 0x2a +/* 80303938 002FF598 9B 43 00 6A */ stb r26, 0x6a(r3) +/* 8030393C 002FF59C 3B 40 00 2B */ li r26, 0x2b +/* 80303940 002FF5A0 9B 63 00 6B */ stb r27, 0x6b(r3) +/* 80303944 002FF5A4 3B 60 00 2C */ li r27, 0x2c +/* 80303948 002FF5A8 9B 83 00 6C */ stb r28, 0x6c(r3) +/* 8030394C 002FF5AC 3B 80 00 2D */ li r28, 0x2d +/* 80303950 002FF5B0 9B A3 00 6D */ stb r29, 0x6d(r3) +/* 80303954 002FF5B4 3B A0 00 2E */ li r29, 0x2e +/* 80303958 002FF5B8 9B C3 00 6E */ stb r30, 0x6e(r3) +/* 8030395C 002FF5BC 3B C0 00 2F */ li r30, 0x2f +/* 80303960 002FF5C0 9B E3 00 6F */ stb r31, 0x6f(r3) +/* 80303964 002FF5C4 3B E0 00 30 */ li r31, 0x30 +/* 80303968 002FF5C8 99 83 00 70 */ stb r12, 0x70(r3) +/* 8030396C 002FF5CC 39 80 00 31 */ li r12, 0x31 +/* 80303970 002FF5D0 9B 23 00 71 */ stb r25, 0x71(r3) +/* 80303974 002FF5D4 9B 43 00 72 */ stb r26, 0x72(r3) +/* 80303978 002FF5D8 9B 63 00 73 */ stb r27, 0x73(r3) +/* 8030397C 002FF5DC 9B 83 00 74 */ stb r28, 0x74(r3) +/* 80303980 002FF5E0 9B A3 00 75 */ stb r29, 0x75(r3) +/* 80303984 002FF5E4 9B C3 00 76 */ stb r30, 0x76(r3) +/* 80303988 002FF5E8 9B E3 00 77 */ stb r31, 0x77(r3) +/* 8030398C 002FF5EC 99 83 00 78 */ stb r12, 0x78(r3) +/* 80303990 002FF5F0 99 63 00 79 */ stb r11, 0x79(r3) +/* 80303994 002FF5F4 39 61 00 30 */ addi r11, r1, 0x30 +/* 80303998 002FF5F8 99 43 00 7A */ stb r10, 0x7a(r3) +/* 8030399C 002FF5FC 99 23 00 30 */ stb r9, 0x30(r3) +/* 803039A0 002FF600 39 20 00 39 */ li r9, 0x39 +/* 803039A4 002FF604 99 03 00 31 */ stb r8, 0x31(r3) +/* 803039A8 002FF608 39 00 00 3A */ li r8, 0x3a +/* 803039AC 002FF60C 98 E3 00 32 */ stb r7, 0x32(r3) +/* 803039B0 002FF610 38 E0 00 3B */ li r7, 0x3b +/* 803039B4 002FF614 98 C3 00 33 */ stb r6, 0x33(r3) +/* 803039B8 002FF618 38 C0 00 3C */ li r6, 0x3c +/* 803039BC 002FF61C 98 A3 00 34 */ stb r5, 0x34(r3) +/* 803039C0 002FF620 38 A0 00 3D */ li r5, 0x3d +/* 803039C4 002FF624 99 23 00 35 */ stb r9, 0x35(r3) +/* 803039C8 002FF628 99 03 00 36 */ stb r8, 0x36(r3) +/* 803039CC 002FF62C 98 E3 00 37 */ stb r7, 0x37(r3) +/* 803039D0 002FF630 98 C3 00 38 */ stb r6, 0x38(r3) +/* 803039D4 002FF634 98 A3 00 39 */ stb r5, 0x39(r3) +/* 803039D8 002FF638 98 83 00 2B */ stb r4, 0x2b(r3) +/* 803039DC 002FF63C 98 03 00 2F */ stb r0, 0x2f(r3) +/* 803039E0 002FF640 4B EC 37 8D */ bl _restgpr_25 +/* 803039E4 002FF644 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803039E8 002FF648 7C 08 03 A6 */ mtlr r0 +/* 803039EC 002FF64C 38 21 00 30 */ addi r1, r1, 0x30 +/* 803039F0 002FF650 4E 80 00 20 */ blr diff --git a/asm/SDK/NWC24/NWC24Schedule.s b/asm/SDK/NWC24/NWC24Schedule.s new file mode 100644 index 0000000..2aa8c6e --- /dev/null +++ b/asm/SDK/NWC24/NWC24Schedule.s @@ -0,0 +1,627 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global NWC24SuspendScheduler +NWC24SuspendScheduler: +/* 803039F4 002FF654 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803039F8 002FF658 7C 08 02 A6 */ mflr r0 +/* 803039FC 002FF65C 90 01 00 14 */ stw r0, 0x14(r1) +/* 80303A00 002FF660 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80303A04 002FF664 3F E0 80 58 */ lis r31, lbl_8057E7A0@ha +/* 80303A08 002FF668 3B FF E7 A0 */ addi r31, r31, lbl_8057E7A0@l +/* 80303A0C 002FF66C 93 C1 00 08 */ stw r30, 8(r1) +/* 80303A10 002FF670 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303A14 002FF674 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303A18 002FF678 40 82 00 5C */ bne lbl_80303A74 +/* 80303A1C 002FF67C 4B F6 AD 41 */ bl OSDisableInterrupts +/* 80303A20 002FF680 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303A24 002FF684 7C 7E 1B 78 */ mr r30, r3 +/* 80303A28 002FF688 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303A2C 002FF68C 40 82 00 40 */ bne lbl_80303A6C +/* 80303A30 002FF690 38 7F 00 00 */ addi r3, r31, 0 +/* 80303A34 002FF694 4B F6 BE DD */ bl OSInitMutex +/* 80303A38 002FF698 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303A3C 002FF69C 4B F6 BE D5 */ bl OSInitMutex +/* 80303A40 002FF6A0 38 7F 00 40 */ addi r3, r31, 0x40 +/* 80303A44 002FF6A4 38 80 00 00 */ li r4, 0 +/* 80303A48 002FF6A8 38 A0 00 20 */ li r5, 0x20 +/* 80303A4C 002FF6AC 4B D0 06 B9 */ bl memset +/* 80303A50 002FF6B0 38 7F 00 60 */ addi r3, r31, 0x60 +/* 80303A54 002FF6B4 38 80 00 00 */ li r4, 0 +/* 80303A58 002FF6B8 38 A0 00 20 */ li r5, 0x20 +/* 80303A5C 002FF6BC 4B D0 06 A9 */ bl memset +/* 80303A60 002FF6C0 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303A64 002FF6C4 60 00 00 01 */ ori r0, r0, 1 +/* 80303A68 002FF6C8 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) +lbl_80303A6C: +/* 80303A6C 002FF6CC 7F C3 F3 78 */ mr r3, r30 +/* 80303A70 002FF6D0 4B F6 AD 15 */ bl OSRestoreInterrupts +lbl_80303A74: +/* 80303A74 002FF6D4 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303A78 002FF6D8 4B F6 BE D1 */ bl OSLockMutex +/* 80303A7C 002FF6DC 48 00 04 E1 */ bl ExecSuspendScheduler +/* 80303A80 002FF6E0 2C 03 00 00 */ cmpwi r3, 0 +/* 80303A84 002FF6E4 7C 7E 1B 78 */ mr r30, r3 +/* 80303A88 002FF6E8 41 80 00 18 */ blt lbl_80303AA0 +/* 80303A8C 002FF6EC 80 8D AF B4 */ lwz r4, lbl_80640274-_SDA_BASE_(r13) +/* 80303A90 002FF6F0 80 0D AF B8 */ lwz r0, lbl_80640278-_SDA_BASE_(r13) +/* 80303A94 002FF6F4 38 84 00 01 */ addi r4, r4, 1 +/* 80303A98 002FF6F8 90 8D AF B4 */ stw r4, lbl_80640274-_SDA_BASE_(r13) +/* 80303A9C 002FF6FC 7F C0 18 50 */ subf r30, r0, r3 +lbl_80303AA0: +/* 80303AA0 002FF700 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303AA4 002FF704 4B F6 BF 81 */ bl OSUnlockMutex +/* 80303AA8 002FF708 7F C3 F3 78 */ mr r3, r30 +/* 80303AAC 002FF70C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80303AB0 002FF710 83 C1 00 08 */ lwz r30, 8(r1) +/* 80303AB4 002FF714 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80303AB8 002FF718 7C 08 03 A6 */ mtlr r0 +/* 80303ABC 002FF71C 38 21 00 10 */ addi r1, r1, 0x10 +/* 80303AC0 002FF720 4E 80 00 20 */ blr + +.global NWC24ResumeScheduler +NWC24ResumeScheduler: +/* 80303AC4 002FF724 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80303AC8 002FF728 7C 08 02 A6 */ mflr r0 +/* 80303ACC 002FF72C 90 01 00 14 */ stw r0, 0x14(r1) +/* 80303AD0 002FF730 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80303AD4 002FF734 3F E0 80 58 */ lis r31, lbl_8057E7A0@ha +/* 80303AD8 002FF738 3B FF E7 A0 */ addi r31, r31, lbl_8057E7A0@l +/* 80303ADC 002FF73C 93 C1 00 08 */ stw r30, 8(r1) +/* 80303AE0 002FF740 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303AE4 002FF744 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303AE8 002FF748 40 82 00 5C */ bne lbl_80303B44 +/* 80303AEC 002FF74C 4B F6 AC 71 */ bl OSDisableInterrupts +/* 80303AF0 002FF750 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303AF4 002FF754 7C 7E 1B 78 */ mr r30, r3 +/* 80303AF8 002FF758 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303AFC 002FF75C 40 82 00 40 */ bne lbl_80303B3C +/* 80303B00 002FF760 38 7F 00 00 */ addi r3, r31, 0 +/* 80303B04 002FF764 4B F6 BE 0D */ bl OSInitMutex +/* 80303B08 002FF768 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303B0C 002FF76C 4B F6 BE 05 */ bl OSInitMutex +/* 80303B10 002FF770 38 7F 00 40 */ addi r3, r31, 0x40 +/* 80303B14 002FF774 38 80 00 00 */ li r4, 0 +/* 80303B18 002FF778 38 A0 00 20 */ li r5, 0x20 +/* 80303B1C 002FF77C 4B D0 05 E9 */ bl memset +/* 80303B20 002FF780 38 7F 00 60 */ addi r3, r31, 0x60 +/* 80303B24 002FF784 38 80 00 00 */ li r4, 0 +/* 80303B28 002FF788 38 A0 00 20 */ li r5, 0x20 +/* 80303B2C 002FF78C 4B D0 05 D9 */ bl memset +/* 80303B30 002FF790 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303B34 002FF794 60 00 00 01 */ ori r0, r0, 1 +/* 80303B38 002FF798 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) +lbl_80303B3C: +/* 80303B3C 002FF79C 7F C3 F3 78 */ mr r3, r30 +/* 80303B40 002FF7A0 4B F6 AC 45 */ bl OSRestoreInterrupts +lbl_80303B44: +/* 80303B44 002FF7A4 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303B48 002FF7A8 4B F6 BE 01 */ bl OSLockMutex +/* 80303B4C 002FF7AC 80 0D AF B8 */ lwz r0, lbl_80640278-_SDA_BASE_(r13) +/* 80303B50 002FF7B0 2C 00 00 00 */ cmpwi r0, 0 +/* 80303B54 002FF7B4 40 81 00 18 */ ble lbl_80303B6C +/* 80303B58 002FF7B8 80 0D AF B4 */ lwz r0, lbl_80640274-_SDA_BASE_(r13) +/* 80303B5C 002FF7BC 2C 00 00 00 */ cmpwi r0, 0 +/* 80303B60 002FF7C0 40 82 00 0C */ bne lbl_80303B6C +/* 80303B64 002FF7C4 3B C0 00 00 */ li r30, 0 +/* 80303B68 002FF7C8 48 00 00 28 */ b lbl_80303B90 +lbl_80303B6C: +/* 80303B6C 002FF7CC 48 00 05 8D */ bl ExecResumeScheduler +/* 80303B70 002FF7D0 80 8D AF B4 */ lwz r4, lbl_80640274-_SDA_BASE_(r13) +/* 80303B74 002FF7D4 7C 7E 1B 78 */ mr r30, r3 +/* 80303B78 002FF7D8 2C 04 00 00 */ cmpwi r4, 0 +/* 80303B7C 002FF7DC 40 81 00 14 */ ble lbl_80303B90 +/* 80303B80 002FF7E0 38 84 FF FF */ addi r4, r4, -1 +/* 80303B84 002FF7E4 80 0D AF B8 */ lwz r0, lbl_80640278-_SDA_BASE_(r13) +/* 80303B88 002FF7E8 90 8D AF B4 */ stw r4, lbl_80640274-_SDA_BASE_(r13) +/* 80303B8C 002FF7EC 7F C0 18 50 */ subf r30, r0, r3 +lbl_80303B90: +/* 80303B90 002FF7F0 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303B94 002FF7F4 4B F6 BE 91 */ bl OSUnlockMutex +/* 80303B98 002FF7F8 7F C3 F3 78 */ mr r3, r30 +/* 80303B9C 002FF7FC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80303BA0 002FF800 83 C1 00 08 */ lwz r30, 8(r1) +/* 80303BA4 002FF804 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80303BA8 002FF808 7C 08 03 A6 */ mtlr r0 +/* 80303BAC 002FF80C 38 21 00 10 */ addi r1, r1, 0x10 +/* 80303BB0 002FF810 4E 80 00 20 */ blr + +.global NWC24iRequestGenerateUserId +NWC24iRequestGenerateUserId: +/* 80303BB4 002FF814 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80303BB8 002FF818 7C 08 02 A6 */ mflr r0 +/* 80303BBC 002FF81C 90 01 00 34 */ stw r0, 0x34(r1) +/* 80303BC0 002FF820 39 61 00 30 */ addi r11, r1, 0x30 +/* 80303BC4 002FF824 4B EC 35 65 */ bl _savegpr_27 +/* 80303BC8 002FF828 3F A0 80 58 */ lis r29, lbl_8057E7A0@ha +/* 80303BCC 002FF82C 7C 7B 1B 78 */ mr r27, r3 +/* 80303BD0 002FF830 7C 9F 23 78 */ mr r31, r4 +/* 80303BD4 002FF834 3B BD E7 A0 */ addi r29, r29, lbl_8057E7A0@l +/* 80303BD8 002FF838 4B F6 D7 21 */ bl OSGetCurrentThread +/* 80303BDC 002FF83C 2C 03 00 00 */ cmpwi r3, 0 +/* 80303BE0 002FF840 40 82 00 0C */ bne lbl_80303BEC +/* 80303BE4 002FF844 38 60 FF FF */ li r3, -1 +/* 80303BE8 002FF848 48 00 00 28 */ b lbl_80303C10 +lbl_80303BEC: +/* 80303BEC 002FF84C 4B FF F6 F9 */ bl NWC24IsMsgLibOpened +/* 80303BF0 002FF850 2C 03 00 00 */ cmpwi r3, 0 +/* 80303BF4 002FF854 40 82 00 10 */ bne lbl_80303C04 +/* 80303BF8 002FF858 4B FF F7 01 */ bl NWC24IsMsgLibOpenedByTool +/* 80303BFC 002FF85C 2C 03 00 00 */ cmpwi r3, 0 +/* 80303C00 002FF860 41 82 00 0C */ beq lbl_80303C0C +lbl_80303C04: +/* 80303C04 002FF864 38 60 FF F6 */ li r3, -10 +/* 80303C08 002FF868 48 00 00 08 */ b lbl_80303C10 +lbl_80303C0C: +/* 80303C0C 002FF86C 38 60 00 00 */ li r3, 0 +lbl_80303C10: +/* 80303C10 002FF870 2C 03 00 00 */ cmpwi r3, 0 +/* 80303C14 002FF874 40 80 00 08 */ bge lbl_80303C1C +/* 80303C18 002FF878 48 00 01 40 */ b lbl_80303D58 +lbl_80303C1C: +/* 80303C1C 002FF87C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303C20 002FF880 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303C24 002FF884 40 82 00 5C */ bne lbl_80303C80 +/* 80303C28 002FF888 4B F6 AB 35 */ bl OSDisableInterrupts +/* 80303C2C 002FF88C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303C30 002FF890 7C 7E 1B 78 */ mr r30, r3 +/* 80303C34 002FF894 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303C38 002FF898 40 82 00 40 */ bne lbl_80303C78 +/* 80303C3C 002FF89C 38 7D 00 00 */ addi r3, r29, 0 +/* 80303C40 002FF8A0 4B F6 BC D1 */ bl OSInitMutex +/* 80303C44 002FF8A4 38 7D 00 18 */ addi r3, r29, 0x18 +/* 80303C48 002FF8A8 4B F6 BC C9 */ bl OSInitMutex +/* 80303C4C 002FF8AC 38 7D 00 40 */ addi r3, r29, 0x40 +/* 80303C50 002FF8B0 38 80 00 00 */ li r4, 0 +/* 80303C54 002FF8B4 38 A0 00 20 */ li r5, 0x20 +/* 80303C58 002FF8B8 4B D0 04 AD */ bl memset +/* 80303C5C 002FF8BC 38 7D 00 60 */ addi r3, r29, 0x60 +/* 80303C60 002FF8C0 38 80 00 00 */ li r4, 0 +/* 80303C64 002FF8C4 38 A0 00 20 */ li r5, 0x20 +/* 80303C68 002FF8C8 4B D0 04 9D */ bl memset +/* 80303C6C 002FF8CC 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303C70 002FF8D0 60 00 00 01 */ ori r0, r0, 1 +/* 80303C74 002FF8D4 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) +lbl_80303C78: +/* 80303C78 002FF8D8 7F C3 F3 78 */ mr r3, r30 +/* 80303C7C 002FF8DC 4B F6 AB 09 */ bl OSRestoreInterrupts +lbl_80303C80: +/* 80303C80 002FF8E0 38 7D 00 00 */ addi r3, r29, 0 +/* 80303C84 002FF8E4 4B F6 BC C5 */ bl OSLockMutex +/* 80303C88 002FF8E8 3F C0 80 44 */ lis r30, lbl_804464D4@ha +/* 80303C8C 002FF8EC 3C 80 80 44 */ lis r4, lbl_804464C0@ha +/* 80303C90 002FF8F0 38 7E 64 D4 */ addi r3, r30, lbl_804464D4@l +/* 80303C94 002FF8F4 38 A1 00 08 */ addi r5, r1, 8 +/* 80303C98 002FF8F8 38 84 64 C0 */ addi r4, r4, lbl_804464C0@l +/* 80303C9C 002FF8FC 38 C0 00 00 */ li r6, 0 +/* 80303CA0 002FF900 48 00 09 DD */ bl NWC24iOpenResourceManager +/* 80303CA4 002FF904 2C 03 00 00 */ cmpwi r3, 0 +/* 80303CA8 002FF908 7C 7C 1B 78 */ mr r28, r3 +/* 80303CAC 002FF90C 41 80 00 A0 */ blt lbl_80303D4C +/* 80303CB0 002FF910 80 81 00 08 */ lwz r4, 8(r1) +/* 80303CB4 002FF914 38 7E 64 D4 */ addi r3, r30, 0x64d4 +/* 80303CB8 002FF918 39 1D 00 60 */ addi r8, r29, 0x60 +/* 80303CBC 002FF91C 38 A0 00 0F */ li r5, 0xf +/* 80303CC0 002FF920 38 C0 00 00 */ li r6, 0 +/* 80303CC4 002FF924 38 E0 00 00 */ li r7, 0 +/* 80303CC8 002FF928 39 20 00 20 */ li r9, 0x20 +/* 80303CCC 002FF92C 48 00 0A 5D */ bl NWC24iIoctlResourceManager +/* 80303CD0 002FF930 2C 03 00 00 */ cmpwi r3, 0 +/* 80303CD4 002FF934 7C 7C 1B 78 */ mr r28, r3 +/* 80303CD8 002FF938 41 80 00 58 */ blt lbl_80303D30 +/* 80303CDC 002FF93C 83 9D 00 60 */ lwz r28, 0x60(r29) +/* 80303CE0 002FF940 2C 1C 00 00 */ cmpwi r28, 0 +/* 80303CE4 002FF944 41 82 00 14 */ beq lbl_80303CF8 +/* 80303CE8 002FF948 2C 1C FF DD */ cmpwi r28, -35 +/* 80303CEC 002FF94C 41 82 00 0C */ beq lbl_80303CF8 +/* 80303CF0 002FF950 2C 1C FF DC */ cmpwi r28, -36 +/* 80303CF4 002FF954 40 82 00 3C */ bne lbl_80303D30 +lbl_80303CF8: +/* 80303CF8 002FF958 38 00 00 00 */ li r0, 0 +/* 80303CFC 002FF95C 7C 1B 00 40 */ cmplw r27, r0 +/* 80303D00 002FF960 41 82 00 18 */ beq lbl_80303D18 +/* 80303D04 002FF964 38 7D 00 60 */ addi r3, r29, 0x60 +/* 80303D08 002FF968 80 03 00 04 */ lwz r0, 4(r3) +/* 80303D0C 002FF96C 80 63 00 08 */ lwz r3, 8(r3) +/* 80303D10 002FF970 90 7B 00 04 */ stw r3, 4(r27) +/* 80303D14 002FF974 90 1B 00 00 */ stw r0, 0(r27) +lbl_80303D18: +/* 80303D18 002FF978 38 00 00 00 */ li r0, 0 +/* 80303D1C 002FF97C 7C 1F 00 40 */ cmplw r31, r0 +/* 80303D20 002FF980 41 82 00 10 */ beq lbl_80303D30 +/* 80303D24 002FF984 38 7D 00 60 */ addi r3, r29, 0x60 +/* 80303D28 002FF988 80 03 00 0C */ lwz r0, 0xc(r3) +/* 80303D2C 002FF98C 90 1F 00 00 */ stw r0, 0(r31) +lbl_80303D30: +/* 80303D30 002FF990 3C 60 80 44 */ lis r3, lbl_804464D4@ha +/* 80303D34 002FF994 80 81 00 08 */ lwz r4, 8(r1) +/* 80303D38 002FF998 38 63 64 D4 */ addi r3, r3, lbl_804464D4@l +/* 80303D3C 002FF99C 48 00 09 B9 */ bl NWC24iCloseResourceManager +/* 80303D40 002FF9A0 2C 1C 00 00 */ cmpwi r28, 0 +/* 80303D44 002FF9A4 41 80 00 08 */ blt lbl_80303D4C +/* 80303D48 002FF9A8 7C 7C 1B 78 */ mr r28, r3 +lbl_80303D4C: +/* 80303D4C 002FF9AC 38 7D 00 00 */ addi r3, r29, 0 +/* 80303D50 002FF9B0 4B F6 BC D5 */ bl OSUnlockMutex +/* 80303D54 002FF9B4 7F 83 E3 78 */ mr r3, r28 +lbl_80303D58: +/* 80303D58 002FF9B8 39 61 00 30 */ addi r11, r1, 0x30 +/* 80303D5C 002FF9BC 4B EC 34 19 */ bl _restgpr_27 +/* 80303D60 002FF9C0 80 01 00 34 */ lwz r0, 0x34(r1) +/* 80303D64 002FF9C4 7C 08 03 A6 */ mtlr r0 +/* 80303D68 002FF9C8 38 21 00 30 */ addi r1, r1, 0x30 +/* 80303D6C 002FF9CC 4E 80 00 20 */ blr + +.global NWC24iStartupSocket +NWC24iStartupSocket: +/* 80303D70 002FF9D0 7C 65 1B 78 */ mr r5, r3 +/* 80303D74 002FF9D4 38 60 00 00 */ li r3, 0 +/* 80303D78 002FF9D8 38 80 00 06 */ li r4, 6 +/* 80303D7C 002FF9DC 48 00 03 8C */ b ExecNoParamCommand + +.global NWC24iCleanupSocket +NWC24iCleanupSocket: +/* 80303D80 002FF9E0 7C 65 1B 78 */ mr r5, r3 +/* 80303D84 002FF9E4 38 60 00 00 */ li r3, 0 +/* 80303D88 002FF9E8 38 80 00 07 */ li r4, 7 +/* 80303D8C 002FF9EC 48 00 03 7C */ b ExecNoParamCommand + +.global NWC24iLockSocket +NWC24iLockSocket: +/* 80303D90 002FF9F0 38 60 00 00 */ li r3, 0 +/* 80303D94 002FF9F4 38 80 00 08 */ li r4, 8 +/* 80303D98 002FF9F8 38 A0 00 00 */ li r5, 0 +/* 80303D9C 002FF9FC 48 00 03 6C */ b ExecNoParamCommand + +.global NWC24iUnlockSocket +NWC24iUnlockSocket: +/* 80303DA0 002FFA00 38 60 00 00 */ li r3, 0 +/* 80303DA4 002FFA04 38 80 00 09 */ li r4, 9 +/* 80303DA8 002FFA08 38 A0 00 00 */ li r5, 0 +/* 80303DAC 002FFA0C 48 00 03 5C */ b ExecNoParamCommand + +.global NWC24iTrySuspendForOpenLib +NWC24iTrySuspendForOpenLib: +/* 80303DB0 002FFA10 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80303DB4 002FFA14 7C 08 02 A6 */ mflr r0 +/* 80303DB8 002FFA18 90 01 00 14 */ stw r0, 0x14(r1) +/* 80303DBC 002FFA1C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80303DC0 002FFA20 3F E0 80 58 */ lis r31, lbl_8057E7A0@ha +/* 80303DC4 002FFA24 3B FF E7 A0 */ addi r31, r31, lbl_8057E7A0@l +/* 80303DC8 002FFA28 93 C1 00 08 */ stw r30, 8(r1) +/* 80303DCC 002FFA2C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303DD0 002FFA30 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303DD4 002FFA34 40 82 00 5C */ bne lbl_80303E30 +/* 80303DD8 002FFA38 4B F6 A9 85 */ bl OSDisableInterrupts +/* 80303DDC 002FFA3C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303DE0 002FFA40 7C 7E 1B 78 */ mr r30, r3 +/* 80303DE4 002FFA44 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303DE8 002FFA48 40 82 00 40 */ bne lbl_80303E28 +/* 80303DEC 002FFA4C 38 7F 00 00 */ addi r3, r31, 0 +/* 80303DF0 002FFA50 4B F6 BB 21 */ bl OSInitMutex +/* 80303DF4 002FFA54 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303DF8 002FFA58 4B F6 BB 19 */ bl OSInitMutex +/* 80303DFC 002FFA5C 38 7F 00 40 */ addi r3, r31, 0x40 +/* 80303E00 002FFA60 38 80 00 00 */ li r4, 0 +/* 80303E04 002FFA64 38 A0 00 20 */ li r5, 0x20 +/* 80303E08 002FFA68 4B D0 02 FD */ bl memset +/* 80303E0C 002FFA6C 38 7F 00 60 */ addi r3, r31, 0x60 +/* 80303E10 002FFA70 38 80 00 00 */ li r4, 0 +/* 80303E14 002FFA74 38 A0 00 20 */ li r5, 0x20 +/* 80303E18 002FFA78 4B D0 02 ED */ bl memset +/* 80303E1C 002FFA7C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303E20 002FFA80 60 00 00 01 */ ori r0, r0, 1 +/* 80303E24 002FFA84 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) +lbl_80303E28: +/* 80303E28 002FFA88 7F C3 F3 78 */ mr r3, r30 +/* 80303E2C 002FFA8C 4B F6 A9 59 */ bl OSRestoreInterrupts +lbl_80303E30: +/* 80303E30 002FFA90 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303E34 002FFA94 4B F6 BD 25 */ bl OSTryLockMutex +/* 80303E38 002FFA98 2C 03 00 00 */ cmpwi r3, 0 +/* 80303E3C 002FFA9C 40 82 00 0C */ bne lbl_80303E48 +/* 80303E40 002FFAA0 38 60 FF EA */ li r3, -22 +/* 80303E44 002FFAA4 48 00 00 34 */ b lbl_80303E78 +lbl_80303E48: +/* 80303E48 002FFAA8 38 60 00 00 */ li r3, 0 +/* 80303E4C 002FFAAC 48 00 01 21 */ bl ExecTrySuspendScheduler +/* 80303E50 002FFAB0 2C 03 00 00 */ cmpwi r3, 0 +/* 80303E54 002FFAB4 7C 7E 1B 78 */ mr r30, r3 +/* 80303E58 002FFAB8 41 80 00 14 */ blt lbl_80303E6C +/* 80303E5C 002FFABC 80 6D AF B8 */ lwz r3, lbl_80640278-_SDA_BASE_(r13) +/* 80303E60 002FFAC0 3B C0 00 00 */ li r30, 0 +/* 80303E64 002FFAC4 38 03 00 01 */ addi r0, r3, 1 +/* 80303E68 002FFAC8 90 0D AF B8 */ stw r0, lbl_80640278-_SDA_BASE_(r13) +lbl_80303E6C: +/* 80303E6C 002FFACC 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303E70 002FFAD0 4B F6 BB B5 */ bl OSUnlockMutex +/* 80303E74 002FFAD4 7F C3 F3 78 */ mr r3, r30 +lbl_80303E78: +/* 80303E78 002FFAD8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80303E7C 002FFADC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80303E80 002FFAE0 83 C1 00 08 */ lwz r30, 8(r1) +/* 80303E84 002FFAE4 7C 08 03 A6 */ mtlr r0 +/* 80303E88 002FFAE8 38 21 00 10 */ addi r1, r1, 0x10 +/* 80303E8C 002FFAEC 4E 80 00 20 */ blr + +.global NWC24iResumeForCloseLib +NWC24iResumeForCloseLib: +/* 80303E90 002FFAF0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80303E94 002FFAF4 7C 08 02 A6 */ mflr r0 +/* 80303E98 002FFAF8 90 01 00 14 */ stw r0, 0x14(r1) +/* 80303E9C 002FFAFC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80303EA0 002FFB00 3F E0 80 58 */ lis r31, lbl_8057E7A0@ha +/* 80303EA4 002FFB04 3B FF E7 A0 */ addi r31, r31, lbl_8057E7A0@l +/* 80303EA8 002FFB08 93 C1 00 08 */ stw r30, 8(r1) +/* 80303EAC 002FFB0C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303EB0 002FFB10 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303EB4 002FFB14 40 82 00 5C */ bne lbl_80303F10 +/* 80303EB8 002FFB18 4B F6 A8 A5 */ bl OSDisableInterrupts +/* 80303EBC 002FFB1C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303EC0 002FFB20 7C 7E 1B 78 */ mr r30, r3 +/* 80303EC4 002FFB24 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303EC8 002FFB28 40 82 00 40 */ bne lbl_80303F08 +/* 80303ECC 002FFB2C 38 7F 00 00 */ addi r3, r31, 0 +/* 80303ED0 002FFB30 4B F6 BA 41 */ bl OSInitMutex +/* 80303ED4 002FFB34 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303ED8 002FFB38 4B F6 BA 39 */ bl OSInitMutex +/* 80303EDC 002FFB3C 38 7F 00 40 */ addi r3, r31, 0x40 +/* 80303EE0 002FFB40 38 80 00 00 */ li r4, 0 +/* 80303EE4 002FFB44 38 A0 00 20 */ li r5, 0x20 +/* 80303EE8 002FFB48 4B D0 02 1D */ bl memset +/* 80303EEC 002FFB4C 38 7F 00 60 */ addi r3, r31, 0x60 +/* 80303EF0 002FFB50 38 80 00 00 */ li r4, 0 +/* 80303EF4 002FFB54 38 A0 00 20 */ li r5, 0x20 +/* 80303EF8 002FFB58 4B D0 02 0D */ bl memset +/* 80303EFC 002FFB5C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303F00 002FFB60 60 00 00 01 */ ori r0, r0, 1 +/* 80303F04 002FFB64 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) +lbl_80303F08: +/* 80303F08 002FFB68 7F C3 F3 78 */ mr r3, r30 +/* 80303F0C 002FFB6C 4B F6 A8 79 */ bl OSRestoreInterrupts +lbl_80303F10: +/* 80303F10 002FFB70 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303F14 002FFB74 4B F6 BA 35 */ bl OSLockMutex +/* 80303F18 002FFB78 48 00 01 E1 */ bl ExecResumeScheduler +/* 80303F1C 002FFB7C 2C 03 00 00 */ cmpwi r3, 0 +/* 80303F20 002FFB80 7C 7E 1B 78 */ mr r30, r3 +/* 80303F24 002FFB84 41 80 00 14 */ blt lbl_80303F38 +/* 80303F28 002FFB88 80 6D AF B8 */ lwz r3, lbl_80640278-_SDA_BASE_(r13) +/* 80303F2C 002FFB8C 3B C0 00 00 */ li r30, 0 +/* 80303F30 002FFB90 38 03 FF FF */ addi r0, r3, -1 +/* 80303F34 002FFB94 90 0D AF B8 */ stw r0, lbl_80640278-_SDA_BASE_(r13) +lbl_80303F38: +/* 80303F38 002FFB98 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80303F3C 002FFB9C 4B F6 BA E9 */ bl OSUnlockMutex +/* 80303F40 002FFBA0 7F C3 F3 78 */ mr r3, r30 +/* 80303F44 002FFBA4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80303F48 002FFBA8 83 C1 00 08 */ lwz r30, 8(r1) +/* 80303F4C 002FFBAC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80303F50 002FFBB0 7C 08 03 A6 */ mtlr r0 +/* 80303F54 002FFBB4 38 21 00 10 */ addi r1, r1, 0x10 +/* 80303F58 002FFBB8 4E 80 00 20 */ blr + +.global ExecSuspendScheduler +ExecSuspendScheduler: +/* 80303F5C 002FFBBC 38 60 00 00 */ li r3, 0 +/* 80303F60 002FFBC0 38 80 00 01 */ li r4, 1 +/* 80303F64 002FFBC4 38 A0 00 00 */ li r5, 0 +/* 80303F68 002FFBC8 48 00 01 A0 */ b ExecNoParamCommand + +.global ExecTrySuspendScheduler +ExecTrySuspendScheduler: +/* 80303F6C 002FFBCC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80303F70 002FFBD0 7C 08 02 A6 */ mflr r0 +/* 80303F74 002FFBD4 90 01 00 24 */ stw r0, 0x24(r1) +/* 80303F78 002FFBD8 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 80303F7C 002FFBDC 93 C1 00 18 */ stw r30, 0x18(r1) +/* 80303F80 002FFBE0 3F C0 80 58 */ lis r30, lbl_8057E7A0@ha +/* 80303F84 002FFBE4 3B DE E7 A0 */ addi r30, r30, lbl_8057E7A0@l +/* 80303F88 002FFBE8 93 A1 00 14 */ stw r29, 0x14(r1) +/* 80303F8C 002FFBEC 93 81 00 10 */ stw r28, 0x10(r1) +/* 80303F90 002FFBF0 7C 7C 1B 78 */ mr r28, r3 +/* 80303F94 002FFBF4 4B F6 D3 65 */ bl OSGetCurrentThread +/* 80303F98 002FFBF8 2C 03 00 00 */ cmpwi r3, 0 +/* 80303F9C 002FFBFC 40 82 00 0C */ bne lbl_80303FA8 +/* 80303FA0 002FFC00 38 60 FF FF */ li r3, -1 +/* 80303FA4 002FFC04 48 00 00 28 */ b lbl_80303FCC +lbl_80303FA8: +/* 80303FA8 002FFC08 4B FF F3 3D */ bl NWC24IsMsgLibOpened +/* 80303FAC 002FFC0C 2C 03 00 00 */ cmpwi r3, 0 +/* 80303FB0 002FFC10 40 82 00 10 */ bne lbl_80303FC0 +/* 80303FB4 002FFC14 4B FF F3 45 */ bl NWC24IsMsgLibOpenedByTool +/* 80303FB8 002FFC18 2C 03 00 00 */ cmpwi r3, 0 +/* 80303FBC 002FFC1C 41 82 00 0C */ beq lbl_80303FC8 +lbl_80303FC0: +/* 80303FC0 002FFC20 38 60 FF F6 */ li r3, -10 +/* 80303FC4 002FFC24 48 00 00 08 */ b lbl_80303FCC +lbl_80303FC8: +/* 80303FC8 002FFC28 38 60 00 00 */ li r3, 0 +lbl_80303FCC: +/* 80303FCC 002FFC2C 2C 03 00 00 */ cmpwi r3, 0 +/* 80303FD0 002FFC30 40 80 00 08 */ bge lbl_80303FD8 +/* 80303FD4 002FFC34 48 00 01 04 */ b lbl_803040D8 +lbl_80303FD8: +/* 80303FD8 002FFC38 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303FDC 002FFC3C 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303FE0 002FFC40 40 82 00 5C */ bne lbl_8030403C +/* 80303FE4 002FFC44 4B F6 A7 79 */ bl OSDisableInterrupts +/* 80303FE8 002FFC48 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80303FEC 002FFC4C 7C 7F 1B 78 */ mr r31, r3 +/* 80303FF0 002FFC50 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80303FF4 002FFC54 40 82 00 40 */ bne lbl_80304034 +/* 80303FF8 002FFC58 38 7E 00 00 */ addi r3, r30, 0 +/* 80303FFC 002FFC5C 4B F6 B9 15 */ bl OSInitMutex +/* 80304000 002FFC60 38 7E 00 18 */ addi r3, r30, 0x18 +/* 80304004 002FFC64 4B F6 B9 0D */ bl OSInitMutex +/* 80304008 002FFC68 38 7E 00 40 */ addi r3, r30, 0x40 +/* 8030400C 002FFC6C 38 80 00 00 */ li r4, 0 +/* 80304010 002FFC70 38 A0 00 20 */ li r5, 0x20 +/* 80304014 002FFC74 4B D0 00 F1 */ bl memset +/* 80304018 002FFC78 38 7E 00 60 */ addi r3, r30, 0x60 +/* 8030401C 002FFC7C 38 80 00 00 */ li r4, 0 +/* 80304020 002FFC80 38 A0 00 20 */ li r5, 0x20 +/* 80304024 002FFC84 4B D0 00 E1 */ bl memset +/* 80304028 002FFC88 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 8030402C 002FFC8C 60 00 00 01 */ ori r0, r0, 1 +/* 80304030 002FFC90 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) +lbl_80304034: +/* 80304034 002FFC94 7F E3 FB 78 */ mr r3, r31 +/* 80304038 002FFC98 4B F6 A7 4D */ bl OSRestoreInterrupts +lbl_8030403C: +/* 8030403C 002FFC9C 38 7E 00 00 */ addi r3, r30, 0 +/* 80304040 002FFCA0 4B F6 BB 19 */ bl OSTryLockMutex +/* 80304044 002FFCA4 2C 03 00 00 */ cmpwi r3, 0 +/* 80304048 002FFCA8 40 82 00 0C */ bne lbl_80304054 +/* 8030404C 002FFCAC 38 60 FF EA */ li r3, -22 +/* 80304050 002FFCB0 48 00 00 88 */ b lbl_803040D8 +lbl_80304054: +/* 80304054 002FFCB4 3F E0 80 44 */ lis r31, lbl_804464F0@ha +/* 80304058 002FFCB8 3C 80 80 44 */ lis r4, lbl_804464C0@ha +/* 8030405C 002FFCBC 38 7F 64 F0 */ addi r3, r31, lbl_804464F0@l +/* 80304060 002FFCC0 38 A1 00 08 */ addi r5, r1, 8 +/* 80304064 002FFCC4 38 84 64 C0 */ addi r4, r4, lbl_804464C0@l +/* 80304068 002FFCC8 38 C0 00 00 */ li r6, 0 +/* 8030406C 002FFCCC 48 00 06 11 */ bl NWC24iOpenResourceManager +/* 80304070 002FFCD0 2C 03 00 00 */ cmpwi r3, 0 +/* 80304074 002FFCD4 7C 7D 1B 78 */ mr r29, r3 +/* 80304078 002FFCD8 41 80 00 54 */ blt lbl_803040CC +/* 8030407C 002FFCDC 93 9E 00 40 */ stw r28, 0x40(r30) +/* 80304080 002FFCE0 38 7F 64 F0 */ addi r3, r31, 0x64f0 +/* 80304084 002FFCE4 80 81 00 08 */ lwz r4, 8(r1) +/* 80304088 002FFCE8 38 DE 00 40 */ addi r6, r30, 0x40 +/* 8030408C 002FFCEC 39 1E 00 60 */ addi r8, r30, 0x60 +/* 80304090 002FFCF0 38 A0 00 02 */ li r5, 2 +/* 80304094 002FFCF4 38 E0 00 20 */ li r7, 0x20 +/* 80304098 002FFCF8 39 20 00 20 */ li r9, 0x20 +/* 8030409C 002FFCFC 48 00 06 8D */ bl NWC24iIoctlResourceManager +/* 803040A0 002FFD00 2C 03 00 00 */ cmpwi r3, 0 +/* 803040A4 002FFD04 7C 7D 1B 78 */ mr r29, r3 +/* 803040A8 002FFD08 41 80 00 08 */ blt lbl_803040B0 +/* 803040AC 002FFD0C 83 BE 00 60 */ lwz r29, 0x60(r30) +lbl_803040B0: +/* 803040B0 002FFD10 3C 60 80 44 */ lis r3, lbl_804464F0@ha +/* 803040B4 002FFD14 80 81 00 08 */ lwz r4, 8(r1) +/* 803040B8 002FFD18 38 63 64 F0 */ addi r3, r3, lbl_804464F0@l +/* 803040BC 002FFD1C 48 00 06 39 */ bl NWC24iCloseResourceManager +/* 803040C0 002FFD20 2C 03 00 00 */ cmpwi r3, 0 +/* 803040C4 002FFD24 40 80 00 08 */ bge lbl_803040CC +/* 803040C8 002FFD28 7C 7D 1B 78 */ mr r29, r3 +lbl_803040CC: +/* 803040CC 002FFD2C 38 7E 00 00 */ addi r3, r30, 0 +/* 803040D0 002FFD30 4B F6 B9 55 */ bl OSUnlockMutex +/* 803040D4 002FFD34 7F A3 EB 78 */ mr r3, r29 +lbl_803040D8: +/* 803040D8 002FFD38 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803040DC 002FFD3C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803040E0 002FFD40 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803040E4 002FFD44 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803040E8 002FFD48 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803040EC 002FFD4C 7C 08 03 A6 */ mtlr r0 +/* 803040F0 002FFD50 38 21 00 20 */ addi r1, r1, 0x20 +/* 803040F4 002FFD54 4E 80 00 20 */ blr + +.global ExecResumeScheduler +ExecResumeScheduler: +/* 803040F8 002FFD58 38 60 00 00 */ li r3, 0 +/* 803040FC 002FFD5C 38 80 00 03 */ li r4, 3 +/* 80304100 002FFD60 38 A0 00 00 */ li r5, 0 +/* 80304104 002FFD64 48 00 00 04 */ b ExecNoParamCommand + +ExecNoParamCommand: +/* 80304108 002FFD68 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 8030410C 002FFD6C 7C 08 02 A6 */ mflr r0 +/* 80304110 002FFD70 90 01 00 34 */ stw r0, 0x34(r1) +/* 80304114 002FFD74 39 61 00 30 */ addi r11, r1, 0x30 +/* 80304118 002FFD78 4B EC 30 11 */ bl _savegpr_27 +/* 8030411C 002FFD7C 3F E0 80 58 */ lis r31, lbl_8057E7A0@ha +/* 80304120 002FFD80 7C 7B 1B 78 */ mr r27, r3 +/* 80304124 002FFD84 7C 9C 23 78 */ mr r28, r4 +/* 80304128 002FFD88 7C BD 2B 78 */ mr r29, r5 +/* 8030412C 002FFD8C 3B FF E7 A0 */ addi r31, r31, lbl_8057E7A0@l +/* 80304130 002FFD90 4B F6 D1 C9 */ bl OSGetCurrentThread +/* 80304134 002FFD94 2C 03 00 00 */ cmpwi r3, 0 +/* 80304138 002FFD98 40 82 00 0C */ bne lbl_80304144 +/* 8030413C 002FFD9C 38 60 FF FF */ li r3, -1 +/* 80304140 002FFDA0 48 00 01 10 */ b lbl_80304250 +lbl_80304144: +/* 80304144 002FFDA4 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80304148 002FFDA8 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 8030414C 002FFDAC 40 82 00 5C */ bne lbl_803041A8 +/* 80304150 002FFDB0 4B F6 A6 0D */ bl OSDisableInterrupts +/* 80304154 002FFDB4 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80304158 002FFDB8 7C 7E 1B 78 */ mr r30, r3 +/* 8030415C 002FFDBC 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80304160 002FFDC0 40 82 00 40 */ bne lbl_803041A0 +/* 80304164 002FFDC4 38 7F 00 00 */ addi r3, r31, 0 +/* 80304168 002FFDC8 4B F6 B7 A9 */ bl OSInitMutex +/* 8030416C 002FFDCC 38 7F 00 18 */ addi r3, r31, 0x18 +/* 80304170 002FFDD0 4B F6 B7 A1 */ bl OSInitMutex +/* 80304174 002FFDD4 38 7F 00 40 */ addi r3, r31, 0x40 +/* 80304178 002FFDD8 38 80 00 00 */ li r4, 0 +/* 8030417C 002FFDDC 38 A0 00 20 */ li r5, 0x20 +/* 80304180 002FFDE0 4B CF FF 85 */ bl memset +/* 80304184 002FFDE4 38 7F 00 60 */ addi r3, r31, 0x60 +/* 80304188 002FFDE8 38 80 00 00 */ li r4, 0 +/* 8030418C 002FFDEC 38 A0 00 20 */ li r5, 0x20 +/* 80304190 002FFDF0 4B CF FF 75 */ bl memset +/* 80304194 002FFDF4 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) +/* 80304198 002FFDF8 60 00 00 01 */ ori r0, r0, 1 +/* 8030419C 002FFDFC 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) +lbl_803041A0: +/* 803041A0 002FFE00 7F C3 F3 78 */ mr r3, r30 +/* 803041A4 002FFE04 4B F6 A5 E1 */ bl OSRestoreInterrupts +lbl_803041A8: +/* 803041A8 002FFE08 38 7F 00 00 */ addi r3, r31, 0 +/* 803041AC 002FFE0C 4B F6 B7 9D */ bl OSLockMutex +/* 803041B0 002FFE10 3C 80 80 44 */ lis r4, lbl_804464C0@ha +/* 803041B4 002FFE14 7F 63 DB 78 */ mr r3, r27 +/* 803041B8 002FFE18 38 84 64 C0 */ addi r4, r4, lbl_804464C0@l +/* 803041BC 002FFE1C 38 A1 00 08 */ addi r5, r1, 8 +/* 803041C0 002FFE20 38 C0 00 00 */ li r6, 0 +/* 803041C4 002FFE24 48 00 04 B9 */ bl NWC24iOpenResourceManager +/* 803041C8 002FFE28 2C 03 00 00 */ cmpwi r3, 0 +/* 803041CC 002FFE2C 7C 7E 1B 78 */ mr r30, r3 +/* 803041D0 002FFE30 41 80 00 74 */ blt lbl_80304244 +/* 803041D4 002FFE34 80 81 00 08 */ lwz r4, 8(r1) +/* 803041D8 002FFE38 7F 63 DB 78 */ mr r3, r27 +/* 803041DC 002FFE3C 7F 85 E3 78 */ mr r5, r28 +/* 803041E0 002FFE40 39 1F 00 60 */ addi r8, r31, 0x60 +/* 803041E4 002FFE44 38 C0 00 00 */ li r6, 0 +/* 803041E8 002FFE48 38 E0 00 00 */ li r7, 0 +/* 803041EC 002FFE4C 39 20 00 20 */ li r9, 0x20 +/* 803041F0 002FFE50 48 00 05 39 */ bl NWC24iIoctlResourceManager +/* 803041F4 002FFE54 2C 03 00 00 */ cmpwi r3, 0 +/* 803041F8 002FFE58 7C 7E 1B 78 */ mr r30, r3 +/* 803041FC 002FFE5C 41 80 00 30 */ blt lbl_8030422C +/* 80304200 002FFE60 83 DF 00 60 */ lwz r30, 0x60(r31) +/* 80304204 002FFE64 2C 1E FF FE */ cmpwi r30, -2 +/* 80304208 002FFE68 41 82 00 0C */ beq lbl_80304214 +/* 8030420C 002FFE6C 2C 1E FF DF */ cmpwi r30, -33 +/* 80304210 002FFE70 40 82 00 1C */ bne lbl_8030422C +lbl_80304214: +/* 80304214 002FFE74 38 00 00 00 */ li r0, 0 +/* 80304218 002FFE78 7C 1D 00 40 */ cmplw r29, r0 +/* 8030421C 002FFE7C 41 82 00 10 */ beq lbl_8030422C +/* 80304220 002FFE80 38 7F 00 60 */ addi r3, r31, 0x60 +/* 80304224 002FFE84 80 03 00 04 */ lwz r0, 4(r3) +/* 80304228 002FFE88 90 1D 00 00 */ stw r0, 0(r29) +lbl_8030422C: +/* 8030422C 002FFE8C 80 81 00 08 */ lwz r4, 8(r1) +/* 80304230 002FFE90 7F 63 DB 78 */ mr r3, r27 +/* 80304234 002FFE94 48 00 04 C1 */ bl NWC24iCloseResourceManager +/* 80304238 002FFE98 2C 03 00 00 */ cmpwi r3, 0 +/* 8030423C 002FFE9C 40 80 00 08 */ bge lbl_80304244 +/* 80304240 002FFEA0 7C 7E 1B 78 */ mr r30, r3 +lbl_80304244: +/* 80304244 002FFEA4 38 7F 00 00 */ addi r3, r31, 0 +/* 80304248 002FFEA8 4B F6 B7 DD */ bl OSUnlockMutex +/* 8030424C 002FFEAC 7F C3 F3 78 */ mr r3, r30 +lbl_80304250: +/* 80304250 002FFEB0 39 61 00 30 */ addi r11, r1, 0x30 +/* 80304254 002FFEB4 4B EC 2F 21 */ bl _restgpr_27 +/* 80304258 002FFEB8 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8030425C 002FFEBC 7C 08 03 A6 */ mtlr r0 +/* 80304260 002FFEC0 38 21 00 30 */ addi r1, r1, 0x30 +/* 80304264 002FFEC4 4E 80 00 20 */ blr diff --git a/asm/SDK/NWC24/NWC24SecretFList.s b/asm/SDK/NWC24/NWC24SecretFList.s new file mode 100644 index 0000000..fc31bd4 --- /dev/null +++ b/asm/SDK/NWC24/NWC24SecretFList.s @@ -0,0 +1,86 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global NWC24iOpenSecretFriendList +NWC24iOpenSecretFriendList: +/* 80304384 002FFFE4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80304388 002FFFE8 7C 08 02 A6 */ mflr r0 +/* 8030438C 002FFFEC 38 80 00 00 */ li r4, 0 +/* 80304390 002FFFF0 38 A0 08 00 */ li r5, 0x800 +/* 80304394 002FFFF4 90 01 00 14 */ stw r0, 0x14(r1) +/* 80304398 002FFFF8 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) +/* 8030439C 002FFFFC 38 63 28 00 */ addi r3, r3, 0x2800 +/* 803043A0 00300000 90 61 00 08 */ stw r3, 8(r1) +/* 803043A4 00300004 4B FF CC 71 */ bl Mail_memset +/* 803043A8 00300008 38 61 00 08 */ addi r3, r1, 8 +/* 803043AC 0030000C 48 00 00 15 */ bl GetCachedSecretFLHeader +/* 803043B0 00300010 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803043B4 00300014 7C 08 03 A6 */ mtlr r0 +/* 803043B8 00300018 38 21 00 10 */ addi r1, r1, 0x10 +/* 803043BC 0030001C 4E 80 00 20 */ blr + +.global GetCachedSecretFLHeader +GetCachedSecretFLHeader: +/* 803043C0 00300020 94 21 FF 50 */ stwu r1, -0xb0(r1) +/* 803043C4 00300024 7C 08 02 A6 */ mflr r0 +/* 803043C8 00300028 90 01 00 B4 */ stw r0, 0xb4(r1) +/* 803043CC 0030002C 93 E1 00 AC */ stw r31, 0xac(r1) +/* 803043D0 00300030 93 C1 00 A8 */ stw r30, 0xa8(r1) +/* 803043D4 00300034 7C 7E 1B 78 */ mr r30, r3 +/* 803043D8 00300038 80 8D AF 90 */ lwz r4, lbl_80640250-_SDA_BASE_(r13) +/* 803043DC 0030003C 38 84 28 00 */ addi r4, r4, 0x2800 +/* 803043E0 00300040 90 83 00 00 */ stw r4, 0(r3) +/* 803043E4 00300044 80 64 00 00 */ lwz r3, 0(r4) +/* 803043E8 00300048 3C 03 A8 9D */ addis r0, r3, 0xa89d +/* 803043EC 0030004C 28 00 46 73 */ cmplwi r0, 0x4673 +/* 803043F0 00300050 41 82 00 94 */ beq lbl_80304484 +/* 803043F4 00300054 80 8D 8C B8 */ lwz r4, lbl_8063DF78-_SDA_BASE_(r13) +/* 803043F8 00300058 38 61 00 08 */ addi r3, r1, 8 +/* 803043FC 0030005C 38 A0 00 02 */ li r5, 2 +/* 80304400 00300060 4B FF D7 49 */ bl NWC24FOpen +/* 80304404 00300064 2C 03 00 00 */ cmpwi r3, 0 +/* 80304408 00300068 41 82 00 08 */ beq lbl_80304410 +/* 8030440C 0030006C 48 00 00 7C */ b lbl_80304488 +lbl_80304410: +/* 80304410 00300070 38 61 00 08 */ addi r3, r1, 8 +/* 80304414 00300074 38 80 00 00 */ li r4, 0 +/* 80304418 00300078 38 A0 00 00 */ li r5, 0 +/* 8030441C 0030007C 4B FF DC 11 */ bl NWC24FSeek +/* 80304420 00300080 80 7E 00 00 */ lwz r3, 0(r30) +/* 80304424 00300084 38 A1 00 08 */ addi r5, r1, 8 +/* 80304428 00300088 38 80 08 00 */ li r4, 0x800 +/* 8030442C 0030008C 4B FF DD ED */ bl NWC24FRead +/* 80304430 00300090 7C 7F 1B 78 */ mr r31, r3 +/* 80304434 00300094 38 61 00 08 */ addi r3, r1, 8 +/* 80304438 00300098 4B FF DA 61 */ bl NWC24FClose +/* 8030443C 0030009C 2C 1F 00 00 */ cmpwi r31, 0 +/* 80304440 003000A0 41 82 00 08 */ beq lbl_80304448 +/* 80304444 003000A4 7F E3 FB 78 */ mr r3, r31 +lbl_80304448: +/* 80304448 003000A8 2C 03 00 00 */ cmpwi r3, 0 +/* 8030444C 003000AC 41 82 00 08 */ beq lbl_80304454 +/* 80304450 003000B0 48 00 00 38 */ b lbl_80304488 +lbl_80304454: +/* 80304454 003000B4 80 9E 00 00 */ lwz r4, 0(r30) +/* 80304458 003000B8 80 64 00 00 */ lwz r3, 0(r4) +/* 8030445C 003000BC 3C 03 A8 9D */ addis r0, r3, 0xa89d +/* 80304460 003000C0 28 00 46 73 */ cmplwi r0, 0x4673 +/* 80304464 003000C4 41 82 00 0C */ beq lbl_80304470 +/* 80304468 003000C8 38 60 FF F2 */ li r3, -14 +/* 8030446C 003000CC 48 00 00 1C */ b lbl_80304488 +lbl_80304470: +/* 80304470 003000D0 80 04 00 04 */ lwz r0, 4(r4) +/* 80304474 003000D4 28 00 00 02 */ cmplwi r0, 2 +/* 80304478 003000D8 41 82 00 0C */ beq lbl_80304484 +/* 8030447C 003000DC 38 60 FF E5 */ li r3, -27 +/* 80304480 003000E0 48 00 00 08 */ b lbl_80304488 +lbl_80304484: +/* 80304484 003000E4 38 60 00 00 */ li r3, 0 +lbl_80304488: +/* 80304488 003000E8 80 01 00 B4 */ lwz r0, 0xb4(r1) +/* 8030448C 003000EC 83 E1 00 AC */ lwz r31, 0xac(r1) +/* 80304490 003000F0 83 C1 00 A8 */ lwz r30, 0xa8(r1) +/* 80304494 003000F4 7C 08 03 A6 */ mtlr r0 +/* 80304498 003000F8 38 21 00 B0 */ addi r1, r1, 0xb0 +/* 8030449C 003000FC 4E 80 00 20 */ blr diff --git a/asm/SDK/NWC24/NWC24Time.s b/asm/SDK/NWC24/NWC24Time.s new file mode 100644 index 0000000..3660730 --- /dev/null +++ b/asm/SDK/NWC24/NWC24Time.s @@ -0,0 +1,141 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global NWC24iSetRtcCounter +NWC24iSetRtcCounter: +/* 803044A0 00300100 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803044A4 00300104 7C 08 02 A6 */ mflr r0 +/* 803044A8 00300108 90 01 00 34 */ stw r0, 0x34(r1) +/* 803044AC 0030010C 39 61 00 30 */ addi r11, r1, 0x30 +/* 803044B0 00300110 4B EC 2C 79 */ bl _savegpr_27 +/* 803044B4 00300114 3F C0 80 58 */ lis r30, lbl_8057E920@ha +/* 803044B8 00300118 7C 7B 1B 78 */ mr r27, r3 +/* 803044BC 0030011C 7C 9C 23 78 */ mr r28, r4 +/* 803044C0 00300120 3B DE E9 20 */ addi r30, r30, lbl_8057E920@l +/* 803044C4 00300124 4B F6 CE 35 */ bl OSGetCurrentThread +/* 803044C8 00300128 2C 03 00 00 */ cmpwi r3, 0 +/* 803044CC 0030012C 40 82 00 0C */ bne lbl_803044D8 +/* 803044D0 00300130 38 60 FF FF */ li r3, -1 +/* 803044D4 00300134 48 00 00 08 */ b lbl_803044DC +lbl_803044D8: +/* 803044D8 00300138 38 60 00 00 */ li r3, 0 +lbl_803044DC: +/* 803044DC 0030013C 2C 03 00 00 */ cmpwi r3, 0 +/* 803044E0 00300140 40 80 00 08 */ bge lbl_803044E8 +/* 803044E4 00300144 48 00 00 EC */ b lbl_803045D0 +lbl_803044E8: +/* 803044E8 00300148 80 0D AF C0 */ lwz r0, lbl_80640280-_SDA_BASE_(r13) +/* 803044EC 0030014C 2C 00 00 00 */ cmpwi r0, 0 +/* 803044F0 00300150 40 82 00 50 */ bne lbl_80304540 +/* 803044F4 00300154 4B F6 A2 69 */ bl OSDisableInterrupts +/* 803044F8 00300158 80 0D AF C0 */ lwz r0, lbl_80640280-_SDA_BASE_(r13) +/* 803044FC 0030015C 7C 7F 1B 78 */ mr r31, r3 +/* 80304500 00300160 2C 00 00 00 */ cmpwi r0, 0 +/* 80304504 00300164 40 82 00 34 */ bne lbl_80304538 +/* 80304508 00300168 38 7E 00 80 */ addi r3, r30, 0x80 +/* 8030450C 0030016C 4B F6 B4 05 */ bl OSInitMutex +/* 80304510 00300170 38 7E 00 A0 */ addi r3, r30, 0xa0 +/* 80304514 00300174 38 80 00 00 */ li r4, 0 +/* 80304518 00300178 38 A0 00 20 */ li r5, 0x20 +/* 8030451C 0030017C 4B CF FB E9 */ bl memset +/* 80304520 00300180 38 7E 00 C0 */ addi r3, r30, 0xc0 +/* 80304524 00300184 38 80 00 00 */ li r4, 0 +/* 80304528 00300188 38 A0 00 20 */ li r5, 0x20 +/* 8030452C 0030018C 4B CF FB D9 */ bl memset +/* 80304530 00300190 38 00 00 01 */ li r0, 1 +/* 80304534 00300194 90 0D AF C0 */ stw r0, lbl_80640280-_SDA_BASE_(r13) +lbl_80304538: +/* 80304538 00300198 7F E3 FB 78 */ mr r3, r31 +/* 8030453C 0030019C 4B F6 A2 49 */ bl OSRestoreInterrupts +lbl_80304540: +/* 80304540 003001A0 38 7E 00 80 */ addi r3, r30, 0x80 +/* 80304544 003001A4 4B F6 B4 05 */ bl OSLockMutex +/* 80304548 003001A8 3F E0 80 44 */ lis r31, lbl_8044655C@ha +/* 8030454C 003001AC 3C 80 80 44 */ lis r4, lbl_80446548@ha +/* 80304550 003001B0 38 7F 65 5C */ addi r3, r31, lbl_8044655C@l +/* 80304554 003001B4 38 A1 00 08 */ addi r5, r1, 8 +/* 80304558 003001B8 38 84 65 48 */ addi r4, r4, lbl_80446548@l +/* 8030455C 003001BC 38 C0 00 00 */ li r6, 0 +/* 80304560 003001C0 48 00 01 1D */ bl NWC24iOpenResourceManager +/* 80304564 003001C4 2C 03 00 00 */ cmpwi r3, 0 +/* 80304568 003001C8 7C 7D 1B 78 */ mr r29, r3 +/* 8030456C 003001CC 41 80 00 58 */ blt lbl_803045C4 +/* 80304570 003001D0 38 DE 00 A0 */ addi r6, r30, 0xa0 +/* 80304574 003001D4 93 7E 00 A0 */ stw r27, 0xa0(r30) +/* 80304578 003001D8 80 81 00 08 */ lwz r4, 8(r1) +/* 8030457C 003001DC 38 7F 65 5C */ addi r3, r31, 0x655c +/* 80304580 003001E0 93 86 00 04 */ stw r28, 4(r6) +/* 80304584 003001E4 39 1E 00 C0 */ addi r8, r30, 0xc0 +/* 80304588 003001E8 38 A0 00 17 */ li r5, 0x17 +/* 8030458C 003001EC 38 E0 00 20 */ li r7, 0x20 +/* 80304590 003001F0 39 20 00 20 */ li r9, 0x20 +/* 80304594 003001F4 48 00 01 95 */ bl NWC24iIoctlResourceManager +/* 80304598 003001F8 2C 03 00 00 */ cmpwi r3, 0 +/* 8030459C 003001FC 7C 7D 1B 78 */ mr r29, r3 +/* 803045A0 00300200 41 80 00 08 */ blt lbl_803045A8 +/* 803045A4 00300204 83 BE 00 C0 */ lwz r29, 0xc0(r30) +lbl_803045A8: +/* 803045A8 00300208 3C 60 80 44 */ lis r3, lbl_8044655C@ha +/* 803045AC 0030020C 80 81 00 08 */ lwz r4, 8(r1) +/* 803045B0 00300210 38 63 65 5C */ addi r3, r3, lbl_8044655C@l +/* 803045B4 00300214 48 00 01 41 */ bl NWC24iCloseResourceManager +/* 803045B8 00300218 2C 1D 00 00 */ cmpwi r29, 0 +/* 803045BC 0030021C 41 80 00 08 */ blt lbl_803045C4 +/* 803045C0 00300220 7C 7D 1B 78 */ mr r29, r3 +lbl_803045C4: +/* 803045C4 00300224 38 7E 00 80 */ addi r3, r30, 0x80 +/* 803045C8 00300228 4B F6 B4 5D */ bl OSUnlockMutex +/* 803045CC 0030022C 7F A3 EB 78 */ mr r3, r29 +lbl_803045D0: +/* 803045D0 00300230 39 61 00 30 */ addi r11, r1, 0x30 +/* 803045D4 00300234 4B EC 2B A1 */ bl _restgpr_27 +/* 803045D8 00300238 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803045DC 0030023C 7C 08 03 A6 */ mtlr r0 +/* 803045E0 00300240 38 21 00 30 */ addi r1, r1, 0x30 +/* 803045E4 00300244 4E 80 00 20 */ blr + +.global NWC24iSynchronizeRtcCounter +NWC24iSynchronizeRtcCounter: +/* 803045E8 00300248 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803045EC 0030024C 7C 08 02 A6 */ mflr r0 +/* 803045F0 00300250 90 01 00 14 */ stw r0, 0x14(r1) +/* 803045F4 00300254 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803045F8 00300258 93 C1 00 08 */ stw r30, 8(r1) +/* 803045FC 0030025C 7C 7E 1B 78 */ mr r30, r3 +lbl_80304600: +/* 80304600 00300260 4B FE 63 ED */ bl SCCheckStatus +/* 80304604 00300264 28 03 00 02 */ cmplwi r3, 2 +/* 80304608 00300268 40 82 00 0C */ bne lbl_80304614 +/* 8030460C 0030026C 38 60 FF FF */ li r3, -1 +/* 80304610 00300270 48 00 00 34 */ b lbl_80304644 +lbl_80304614: +/* 80304614 00300274 2C 03 00 00 */ cmpwi r3, 0 +/* 80304618 00300278 40 82 FF E8 */ bne lbl_80304600 +/* 8030461C 0030027C 4B FE 7F A5 */ bl SCGetCounterBias +/* 80304620 00300280 7C 7F 1B 78 */ mr r31, r3 +/* 80304624 00300284 4B F6 E1 95 */ bl OSGetTime +/* 80304628 00300288 3C C0 80 00 */ lis r6, 0x800000F8@ha +/* 8030462C 0030028C 38 A0 00 00 */ li r5, 0 +/* 80304630 00300290 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6) +/* 80304634 00300294 54 06 F0 BE */ srwi r6, r0, 2 +/* 80304638 00300298 4B EC 2C 41 */ bl __div2i +/* 8030463C 0030029C 7F FF 20 10 */ subfc r31, r31, r4 +/* 80304640 003002A0 38 60 00 00 */ li r3, 0 +lbl_80304644: +/* 80304644 003002A4 2C 03 00 00 */ cmpwi r3, 0 +/* 80304648 003002A8 41 82 00 08 */ beq lbl_80304650 +/* 8030464C 003002AC 48 00 00 18 */ b lbl_80304664 +lbl_80304650: +/* 80304650 003002B0 7C 1E 00 D0 */ neg r0, r30 +/* 80304654 003002B4 7F E3 FB 78 */ mr r3, r31 +/* 80304658 003002B8 7C 00 F3 78 */ or r0, r0, r30 +/* 8030465C 003002BC 54 04 0F FE */ srwi r4, r0, 0x1f +/* 80304660 003002C0 4B FF FE 41 */ bl NWC24iSetRtcCounter +lbl_80304664: +/* 80304664 003002C4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80304668 003002C8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8030466C 003002CC 83 C1 00 08 */ lwz r30, 8(r1) +/* 80304670 003002D0 7C 08 03 A6 */ mtlr r0 +/* 80304674 003002D4 38 21 00 10 */ addi r1, r1, 0x10 +/* 80304678 003002D8 4E 80 00 20 */ blr diff --git a/asm/SDK/OS/OSNet.s b/asm/SDK/OS/OSNet.s index 4ceeb0e..8e5ea96 100644 --- a/asm/SDK/OS/OSNet.s +++ b/asm/SDK/OS/OSNet.s @@ -28,7 +28,7 @@ lbl_80274148: /* 80274160 0026FDC0 4C C6 31 82 */ crclr 6 /* 80274164 0026FDC4 4B D9 39 61 */ bl func_80007AC4 lbl_80274168: -/* 80274168 0026FDC8 48 08 F8 8D */ bl func_803039F4 +/* 80274168 0026FDC8 48 08 F8 8D */ bl NWC24SuspendScheduler /* 8027416C 0026FDCC 2C 03 00 00 */ cmpwi r3, 0 /* 80274170 0026FDD0 40 80 00 14 */ bge lbl_80274184 /* 80274174 0026FDD4 7C 64 1B 78 */ mr r4, r3 @@ -36,7 +36,7 @@ lbl_80274168: /* 8027417C 0026FDDC 4C C6 31 82 */ crclr 6 /* 80274180 0026FDE0 4B D9 39 45 */ bl func_80007AC4 lbl_80274184: -/* 80274184 0026FDE4 48 09 04 65 */ bl func_803045E8 +/* 80274184 0026FDE4 48 09 04 65 */ bl NWC24iSynchronizeRtcCounter /* 80274188 0026FDE8 2C 03 00 00 */ cmpwi r3, 0 /* 8027418C 0026FDEC 41 82 00 14 */ beq lbl_802741A0 /* 80274190 0026FDF0 7C 64 1B 78 */ mr r4, r3 diff --git a/asm/SDK/SO/SOCommon.s b/asm/SDK/SO/SOCommon.s index 4335984..6f5e8ee 100644 --- a/asm/SDK/SO/SOCommon.s +++ b/asm/SDK/SO/SOCommon.s @@ -372,7 +372,7 @@ lbl_802F5684: /* 802F5698 002F12F8 6E 3E 80 00 */ xoris r30, r17, 0x8000 lbl_802F569C: /* 802F569C 002F12FC 38 61 00 08 */ addi r3, r1, 8 -/* 802F56A0 002F1300 48 00 E6 D1 */ bl func_80303D70 +/* 802F56A0 002F1300 48 00 E6 D1 */ bl NWC24iStartupSocket /* 802F56A4 002F1304 2C 03 FF E3 */ cmpwi r3, -29 /* 802F56A8 002F1308 7C 7A 1B 78 */ mr r26, r3 /* 802F56AC 002F130C 40 82 00 4C */ bne lbl_802F56F8 @@ -561,7 +561,7 @@ lbl_802F591C: /* 802F5924 002F1584 90 1F 00 08 */ stw r0, 8(r31) /* 802F5928 002F1588 4B F7 8E 5D */ bl OSRestoreInterrupts /* 802F592C 002F158C 38 61 00 08 */ addi r3, r1, 8 -/* 802F5930 002F1590 48 00 E4 51 */ bl func_80303D80 +/* 802F5930 002F1590 48 00 E4 51 */ bl NWC24iCleanupSocket /* 802F5934 002F1594 38 03 00 21 */ addi r0, r3, 0x21 /* 802F5938 002F1598 80 81 00 08 */ lwz r4, 8(r1) /* 802F593C 002F159C 28 00 00 21 */ cmplwi r0, 0x21 @@ -921,7 +921,7 @@ lbl_802F5DE4: /* 802F5DE8 002F1A48 48 00 01 B4 */ b lbl_802F5F9C lbl_802F5DEC: /* 802F5DEC 002F1A4C 90 7B 00 00 */ stw r3, 0(r27) -/* 802F5DF0 002F1A50 48 00 DF A1 */ bl func_80303D90 +/* 802F5DF0 002F1A50 48 00 DF A1 */ bl NWC24iLockSocket /* 802F5DF4 002F1A54 2C 03 00 00 */ cmpwi r3, 0 /* 802F5DF8 002F1A58 40 82 00 D8 */ bne lbl_802F5ED0 /* 802F5DFC 002F1A5C 4B FF 77 29 */ bl NCDGetLinkStatus @@ -1073,7 +1073,7 @@ SOiConcludeTempRm: /* 802F5FF4 002F1C54 93 C1 00 08 */ stw r30, 8(r1) /* 802F5FF8 002F1C58 7C 9E 23 78 */ mr r30, r4 /* 802F5FFC 002F1C5C 40 82 00 84 */ bne lbl_802F6080 -/* 802F6000 002F1C60 48 00 DD A1 */ bl func_80303DA0 +/* 802F6000 002F1C60 48 00 DD A1 */ bl NWC24iUnlockSocket /* 802F6004 002F1C64 2C 03 FF FF */ cmpwi r3, -1 /* 802F6008 002F1C68 41 82 00 28 */ beq lbl_802F6030 /* 802F600C 002F1C6C 40 80 00 10 */ bge lbl_802F601C diff --git a/asm/text_9_2.s b/asm/text_9_2.s index 236c956..f2fbd03 100644 --- a/asm/text_9_2.s +++ b/asm/text_9_2.s @@ -2,1627 +2,6 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60 -.global func_80303714 -func_80303714: -/* 80303714 002FF374 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80303718 002FF378 7C 08 02 A6 */ mflr r0 -/* 8030371C 002FF37C 90 01 00 34 */ stw r0, 0x34(r1) -/* 80303720 002FF380 39 61 00 30 */ addi r11, r1, 0x30 -/* 80303724 002FF384 4B EC 39 FD */ bl _savegpr_25 -/* 80303728 002FF388 38 00 00 08 */ li r0, 8 -/* 8030372C 002FF38C 38 C0 00 00 */ li r6, 0 -/* 80303730 002FF390 38 80 FF FF */ li r4, -1 -/* 80303734 002FF394 7C 09 03 A6 */ mtctr r0 -lbl_80303738: -/* 80303738 002FF398 7C 83 31 AE */ stbx r4, r3, r6 -/* 8030373C 002FF39C 7C A3 32 14 */ add r5, r3, r6 -/* 80303740 002FF3A0 38 C6 00 08 */ addi r6, r6, 8 -/* 80303744 002FF3A4 98 85 00 01 */ stb r4, 1(r5) -/* 80303748 002FF3A8 98 85 00 02 */ stb r4, 2(r5) -/* 8030374C 002FF3AC 98 85 00 03 */ stb r4, 3(r5) -/* 80303750 002FF3B0 98 85 00 04 */ stb r4, 4(r5) -/* 80303754 002FF3B4 98 85 00 05 */ stb r4, 5(r5) -/* 80303758 002FF3B8 98 85 00 06 */ stb r4, 6(r5) -/* 8030375C 002FF3BC 98 85 00 07 */ stb r4, 7(r5) -/* 80303760 002FF3C0 7C A3 32 14 */ add r5, r3, r6 -/* 80303764 002FF3C4 7C 83 31 AE */ stbx r4, r3, r6 -/* 80303768 002FF3C8 38 C6 00 08 */ addi r6, r6, 8 -/* 8030376C 002FF3CC 98 85 00 01 */ stb r4, 1(r5) -/* 80303770 002FF3D0 98 85 00 02 */ stb r4, 2(r5) -/* 80303774 002FF3D4 98 85 00 03 */ stb r4, 3(r5) -/* 80303778 002FF3D8 98 85 00 04 */ stb r4, 4(r5) -/* 8030377C 002FF3DC 98 85 00 05 */ stb r4, 5(r5) -/* 80303780 002FF3E0 98 85 00 06 */ stb r4, 6(r5) -/* 80303784 002FF3E4 98 85 00 07 */ stb r4, 7(r5) -/* 80303788 002FF3E8 7C A3 32 14 */ add r5, r3, r6 -/* 8030378C 002FF3EC 7C 83 31 AE */ stbx r4, r3, r6 -/* 80303790 002FF3F0 38 C6 00 08 */ addi r6, r6, 8 -/* 80303794 002FF3F4 98 85 00 01 */ stb r4, 1(r5) -/* 80303798 002FF3F8 98 85 00 02 */ stb r4, 2(r5) -/* 8030379C 002FF3FC 98 85 00 03 */ stb r4, 3(r5) -/* 803037A0 002FF400 98 85 00 04 */ stb r4, 4(r5) -/* 803037A4 002FF404 98 85 00 05 */ stb r4, 5(r5) -/* 803037A8 002FF408 98 85 00 06 */ stb r4, 6(r5) -/* 803037AC 002FF40C 98 85 00 07 */ stb r4, 7(r5) -/* 803037B0 002FF410 7C A3 32 14 */ add r5, r3, r6 -/* 803037B4 002FF414 7C 83 31 AE */ stbx r4, r3, r6 -/* 803037B8 002FF418 38 C6 00 08 */ addi r6, r6, 8 -/* 803037BC 002FF41C 98 85 00 01 */ stb r4, 1(r5) -/* 803037C0 002FF420 98 85 00 02 */ stb r4, 2(r5) -/* 803037C4 002FF424 98 85 00 03 */ stb r4, 3(r5) -/* 803037C8 002FF428 98 85 00 04 */ stb r4, 4(r5) -/* 803037CC 002FF42C 98 85 00 05 */ stb r4, 5(r5) -/* 803037D0 002FF430 98 85 00 06 */ stb r4, 6(r5) -/* 803037D4 002FF434 98 85 00 07 */ stb r4, 7(r5) -/* 803037D8 002FF438 42 00 FF 60 */ bdnz lbl_80303738 -/* 803037DC 002FF43C 39 80 00 00 */ li r12, 0 -/* 803037E0 002FF440 39 60 00 01 */ li r11, 1 -/* 803037E4 002FF444 99 83 00 41 */ stb r12, 0x41(r3) -/* 803037E8 002FF448 39 40 00 02 */ li r10, 2 -/* 803037EC 002FF44C 39 20 00 03 */ li r9, 3 -/* 803037F0 002FF450 39 00 00 04 */ li r8, 4 -/* 803037F4 002FF454 99 63 00 42 */ stb r11, 0x42(r3) -/* 803037F8 002FF458 38 E0 00 05 */ li r7, 5 -/* 803037FC 002FF45C 38 C0 00 06 */ li r6, 6 -/* 80303800 002FF460 38 A0 00 07 */ li r5, 7 -/* 80303804 002FF464 99 43 00 43 */ stb r10, 0x43(r3) -/* 80303808 002FF468 39 80 00 08 */ li r12, 8 -/* 8030380C 002FF46C 39 60 00 09 */ li r11, 9 -/* 80303810 002FF470 39 40 00 0A */ li r10, 0xa -/* 80303814 002FF474 99 23 00 44 */ stb r9, 0x44(r3) -/* 80303818 002FF478 39 20 00 0B */ li r9, 0xb -/* 8030381C 002FF47C 38 80 00 18 */ li r4, 0x18 -/* 80303820 002FF480 38 00 00 19 */ li r0, 0x19 -/* 80303824 002FF484 99 03 00 45 */ stb r8, 0x45(r3) -/* 80303828 002FF488 39 00 00 0C */ li r8, 0xc -/* 8030382C 002FF48C 98 E3 00 46 */ stb r7, 0x46(r3) -/* 80303830 002FF490 38 E0 00 0D */ li r7, 0xd -/* 80303834 002FF494 98 C3 00 47 */ stb r6, 0x47(r3) -/* 80303838 002FF498 38 C0 00 0E */ li r6, 0xe -/* 8030383C 002FF49C 98 A3 00 48 */ stb r5, 0x48(r3) -/* 80303840 002FF4A0 38 A0 00 0F */ li r5, 0xf -/* 80303844 002FF4A4 99 83 00 49 */ stb r12, 0x49(r3) -/* 80303848 002FF4A8 39 80 00 10 */ li r12, 0x10 -/* 8030384C 002FF4AC 99 63 00 4A */ stb r11, 0x4a(r3) -/* 80303850 002FF4B0 39 60 00 11 */ li r11, 0x11 -/* 80303854 002FF4B4 99 43 00 4B */ stb r10, 0x4b(r3) -/* 80303858 002FF4B8 39 40 00 12 */ li r10, 0x12 -/* 8030385C 002FF4BC 99 23 00 4C */ stb r9, 0x4c(r3) -/* 80303860 002FF4C0 39 20 00 13 */ li r9, 0x13 -/* 80303864 002FF4C4 99 03 00 4D */ stb r8, 0x4d(r3) -/* 80303868 002FF4C8 39 00 00 14 */ li r8, 0x14 -/* 8030386C 002FF4CC 98 E3 00 4E */ stb r7, 0x4e(r3) -/* 80303870 002FF4D0 38 E0 00 15 */ li r7, 0x15 -/* 80303874 002FF4D4 98 C3 00 4F */ stb r6, 0x4f(r3) -/* 80303878 002FF4D8 38 C0 00 16 */ li r6, 0x16 -/* 8030387C 002FF4DC 98 A3 00 50 */ stb r5, 0x50(r3) -/* 80303880 002FF4E0 38 A0 00 17 */ li r5, 0x17 -/* 80303884 002FF4E4 99 83 00 51 */ stb r12, 0x51(r3) -/* 80303888 002FF4E8 99 63 00 52 */ stb r11, 0x52(r3) -/* 8030388C 002FF4EC 99 43 00 53 */ stb r10, 0x53(r3) -/* 80303890 002FF4F0 99 23 00 54 */ stb r9, 0x54(r3) -/* 80303894 002FF4F4 99 03 00 55 */ stb r8, 0x55(r3) -/* 80303898 002FF4F8 98 E3 00 56 */ stb r7, 0x56(r3) -/* 8030389C 002FF4FC 98 C3 00 57 */ stb r6, 0x57(r3) -/* 803038A0 002FF500 98 A3 00 58 */ stb r5, 0x58(r3) -/* 803038A4 002FF504 98 83 00 59 */ stb r4, 0x59(r3) -/* 803038A8 002FF508 98 03 00 5A */ stb r0, 0x5a(r3) -/* 803038AC 002FF50C 3B 20 00 1A */ li r25, 0x1a -/* 803038B0 002FF510 3B 40 00 1B */ li r26, 0x1b -/* 803038B4 002FF514 9B 23 00 61 */ stb r25, 0x61(r3) -/* 803038B8 002FF518 3B 60 00 1C */ li r27, 0x1c -/* 803038BC 002FF51C 3B 80 00 1D */ li r28, 0x1d -/* 803038C0 002FF520 3B A0 00 1E */ li r29, 0x1e -/* 803038C4 002FF524 9B 43 00 62 */ stb r26, 0x62(r3) -/* 803038C8 002FF528 3B C0 00 1F */ li r30, 0x1f -/* 803038CC 002FF52C 3B E0 00 20 */ li r31, 0x20 -/* 803038D0 002FF530 39 80 00 21 */ li r12, 0x21 -/* 803038D4 002FF534 9B 63 00 63 */ stb r27, 0x63(r3) -/* 803038D8 002FF538 3B 20 00 22 */ li r25, 0x22 -/* 803038DC 002FF53C 3B 40 00 23 */ li r26, 0x23 -/* 803038E0 002FF540 3B 60 00 24 */ li r27, 0x24 -/* 803038E4 002FF544 9B 83 00 64 */ stb r28, 0x64(r3) -/* 803038E8 002FF548 3B 80 00 25 */ li r28, 0x25 -/* 803038EC 002FF54C 39 60 00 32 */ li r11, 0x32 -/* 803038F0 002FF550 39 40 00 33 */ li r10, 0x33 -/* 803038F4 002FF554 9B A3 00 65 */ stb r29, 0x65(r3) -/* 803038F8 002FF558 3B A0 00 26 */ li r29, 0x26 -/* 803038FC 002FF55C 39 20 00 34 */ li r9, 0x34 -/* 80303900 002FF560 39 00 00 35 */ li r8, 0x35 -/* 80303904 002FF564 9B C3 00 66 */ stb r30, 0x66(r3) -/* 80303908 002FF568 3B C0 00 27 */ li r30, 0x27 -/* 8030390C 002FF56C 38 E0 00 36 */ li r7, 0x36 -/* 80303910 002FF570 38 C0 00 37 */ li r6, 0x37 -/* 80303914 002FF574 9B E3 00 67 */ stb r31, 0x67(r3) -/* 80303918 002FF578 3B E0 00 28 */ li r31, 0x28 -/* 8030391C 002FF57C 38 A0 00 38 */ li r5, 0x38 -/* 80303920 002FF580 38 80 00 3E */ li r4, 0x3e -/* 80303924 002FF584 99 83 00 68 */ stb r12, 0x68(r3) -/* 80303928 002FF588 39 80 00 29 */ li r12, 0x29 -/* 8030392C 002FF58C 38 00 00 3F */ li r0, 0x3f -/* 80303930 002FF590 9B 23 00 69 */ stb r25, 0x69(r3) -/* 80303934 002FF594 3B 20 00 2A */ li r25, 0x2a -/* 80303938 002FF598 9B 43 00 6A */ stb r26, 0x6a(r3) -/* 8030393C 002FF59C 3B 40 00 2B */ li r26, 0x2b -/* 80303940 002FF5A0 9B 63 00 6B */ stb r27, 0x6b(r3) -/* 80303944 002FF5A4 3B 60 00 2C */ li r27, 0x2c -/* 80303948 002FF5A8 9B 83 00 6C */ stb r28, 0x6c(r3) -/* 8030394C 002FF5AC 3B 80 00 2D */ li r28, 0x2d -/* 80303950 002FF5B0 9B A3 00 6D */ stb r29, 0x6d(r3) -/* 80303954 002FF5B4 3B A0 00 2E */ li r29, 0x2e -/* 80303958 002FF5B8 9B C3 00 6E */ stb r30, 0x6e(r3) -/* 8030395C 002FF5BC 3B C0 00 2F */ li r30, 0x2f -/* 80303960 002FF5C0 9B E3 00 6F */ stb r31, 0x6f(r3) -/* 80303964 002FF5C4 3B E0 00 30 */ li r31, 0x30 -/* 80303968 002FF5C8 99 83 00 70 */ stb r12, 0x70(r3) -/* 8030396C 002FF5CC 39 80 00 31 */ li r12, 0x31 -/* 80303970 002FF5D0 9B 23 00 71 */ stb r25, 0x71(r3) -/* 80303974 002FF5D4 9B 43 00 72 */ stb r26, 0x72(r3) -/* 80303978 002FF5D8 9B 63 00 73 */ stb r27, 0x73(r3) -/* 8030397C 002FF5DC 9B 83 00 74 */ stb r28, 0x74(r3) -/* 80303980 002FF5E0 9B A3 00 75 */ stb r29, 0x75(r3) -/* 80303984 002FF5E4 9B C3 00 76 */ stb r30, 0x76(r3) -/* 80303988 002FF5E8 9B E3 00 77 */ stb r31, 0x77(r3) -/* 8030398C 002FF5EC 99 83 00 78 */ stb r12, 0x78(r3) -/* 80303990 002FF5F0 99 63 00 79 */ stb r11, 0x79(r3) -/* 80303994 002FF5F4 39 61 00 30 */ addi r11, r1, 0x30 -/* 80303998 002FF5F8 99 43 00 7A */ stb r10, 0x7a(r3) -/* 8030399C 002FF5FC 99 23 00 30 */ stb r9, 0x30(r3) -/* 803039A0 002FF600 39 20 00 39 */ li r9, 0x39 -/* 803039A4 002FF604 99 03 00 31 */ stb r8, 0x31(r3) -/* 803039A8 002FF608 39 00 00 3A */ li r8, 0x3a -/* 803039AC 002FF60C 98 E3 00 32 */ stb r7, 0x32(r3) -/* 803039B0 002FF610 38 E0 00 3B */ li r7, 0x3b -/* 803039B4 002FF614 98 C3 00 33 */ stb r6, 0x33(r3) -/* 803039B8 002FF618 38 C0 00 3C */ li r6, 0x3c -/* 803039BC 002FF61C 98 A3 00 34 */ stb r5, 0x34(r3) -/* 803039C0 002FF620 38 A0 00 3D */ li r5, 0x3d -/* 803039C4 002FF624 99 23 00 35 */ stb r9, 0x35(r3) -/* 803039C8 002FF628 99 03 00 36 */ stb r8, 0x36(r3) -/* 803039CC 002FF62C 98 E3 00 37 */ stb r7, 0x37(r3) -/* 803039D0 002FF630 98 C3 00 38 */ stb r6, 0x38(r3) -/* 803039D4 002FF634 98 A3 00 39 */ stb r5, 0x39(r3) -/* 803039D8 002FF638 98 83 00 2B */ stb r4, 0x2b(r3) -/* 803039DC 002FF63C 98 03 00 2F */ stb r0, 0x2f(r3) -/* 803039E0 002FF640 4B EC 37 8D */ bl _restgpr_25 -/* 803039E4 002FF644 80 01 00 34 */ lwz r0, 0x34(r1) -/* 803039E8 002FF648 7C 08 03 A6 */ mtlr r0 -/* 803039EC 002FF64C 38 21 00 30 */ addi r1, r1, 0x30 -/* 803039F0 002FF650 4E 80 00 20 */ blr - -.global func_803039F4 -func_803039F4: -/* 803039F4 002FF654 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803039F8 002FF658 7C 08 02 A6 */ mflr r0 -/* 803039FC 002FF65C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80303A00 002FF660 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80303A04 002FF664 3F E0 80 58 */ lis r31, lbl_8057E7A0@ha -/* 80303A08 002FF668 3B FF E7 A0 */ addi r31, r31, lbl_8057E7A0@l -/* 80303A0C 002FF66C 93 C1 00 08 */ stw r30, 8(r1) -/* 80303A10 002FF670 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303A14 002FF674 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303A18 002FF678 40 82 00 5C */ bne lbl_80303A74 -/* 80303A1C 002FF67C 4B F6 AD 41 */ bl OSDisableInterrupts -/* 80303A20 002FF680 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303A24 002FF684 7C 7E 1B 78 */ mr r30, r3 -/* 80303A28 002FF688 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303A2C 002FF68C 40 82 00 40 */ bne lbl_80303A6C -/* 80303A30 002FF690 38 7F 00 00 */ addi r3, r31, 0 -/* 80303A34 002FF694 4B F6 BE DD */ bl OSInitMutex -/* 80303A38 002FF698 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303A3C 002FF69C 4B F6 BE D5 */ bl OSInitMutex -/* 80303A40 002FF6A0 38 7F 00 40 */ addi r3, r31, 0x40 -/* 80303A44 002FF6A4 38 80 00 00 */ li r4, 0 -/* 80303A48 002FF6A8 38 A0 00 20 */ li r5, 0x20 -/* 80303A4C 002FF6AC 4B D0 06 B9 */ bl memset -/* 80303A50 002FF6B0 38 7F 00 60 */ addi r3, r31, 0x60 -/* 80303A54 002FF6B4 38 80 00 00 */ li r4, 0 -/* 80303A58 002FF6B8 38 A0 00 20 */ li r5, 0x20 -/* 80303A5C 002FF6BC 4B D0 06 A9 */ bl memset -/* 80303A60 002FF6C0 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303A64 002FF6C4 60 00 00 01 */ ori r0, r0, 1 -/* 80303A68 002FF6C8 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) -lbl_80303A6C: -/* 80303A6C 002FF6CC 7F C3 F3 78 */ mr r3, r30 -/* 80303A70 002FF6D0 4B F6 AD 15 */ bl OSRestoreInterrupts -lbl_80303A74: -/* 80303A74 002FF6D4 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303A78 002FF6D8 4B F6 BE D1 */ bl OSLockMutex -/* 80303A7C 002FF6DC 48 00 04 E1 */ bl func_80303F5C -/* 80303A80 002FF6E0 2C 03 00 00 */ cmpwi r3, 0 -/* 80303A84 002FF6E4 7C 7E 1B 78 */ mr r30, r3 -/* 80303A88 002FF6E8 41 80 00 18 */ blt lbl_80303AA0 -/* 80303A8C 002FF6EC 80 8D AF B4 */ lwz r4, lbl_80640274-_SDA_BASE_(r13) -/* 80303A90 002FF6F0 80 0D AF B8 */ lwz r0, lbl_80640278-_SDA_BASE_(r13) -/* 80303A94 002FF6F4 38 84 00 01 */ addi r4, r4, 1 -/* 80303A98 002FF6F8 90 8D AF B4 */ stw r4, lbl_80640274-_SDA_BASE_(r13) -/* 80303A9C 002FF6FC 7F C0 18 50 */ subf r30, r0, r3 -lbl_80303AA0: -/* 80303AA0 002FF700 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303AA4 002FF704 4B F6 BF 81 */ bl OSUnlockMutex -/* 80303AA8 002FF708 7F C3 F3 78 */ mr r3, r30 -/* 80303AAC 002FF70C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80303AB0 002FF710 83 C1 00 08 */ lwz r30, 8(r1) -/* 80303AB4 002FF714 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80303AB8 002FF718 7C 08 03 A6 */ mtlr r0 -/* 80303ABC 002FF71C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80303AC0 002FF720 4E 80 00 20 */ blr - -.global func_80303AC4 -func_80303AC4: -/* 80303AC4 002FF724 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80303AC8 002FF728 7C 08 02 A6 */ mflr r0 -/* 80303ACC 002FF72C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80303AD0 002FF730 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80303AD4 002FF734 3F E0 80 58 */ lis r31, lbl_8057E7A0@ha -/* 80303AD8 002FF738 3B FF E7 A0 */ addi r31, r31, lbl_8057E7A0@l -/* 80303ADC 002FF73C 93 C1 00 08 */ stw r30, 8(r1) -/* 80303AE0 002FF740 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303AE4 002FF744 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303AE8 002FF748 40 82 00 5C */ bne lbl_80303B44 -/* 80303AEC 002FF74C 4B F6 AC 71 */ bl OSDisableInterrupts -/* 80303AF0 002FF750 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303AF4 002FF754 7C 7E 1B 78 */ mr r30, r3 -/* 80303AF8 002FF758 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303AFC 002FF75C 40 82 00 40 */ bne lbl_80303B3C -/* 80303B00 002FF760 38 7F 00 00 */ addi r3, r31, 0 -/* 80303B04 002FF764 4B F6 BE 0D */ bl OSInitMutex -/* 80303B08 002FF768 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303B0C 002FF76C 4B F6 BE 05 */ bl OSInitMutex -/* 80303B10 002FF770 38 7F 00 40 */ addi r3, r31, 0x40 -/* 80303B14 002FF774 38 80 00 00 */ li r4, 0 -/* 80303B18 002FF778 38 A0 00 20 */ li r5, 0x20 -/* 80303B1C 002FF77C 4B D0 05 E9 */ bl memset -/* 80303B20 002FF780 38 7F 00 60 */ addi r3, r31, 0x60 -/* 80303B24 002FF784 38 80 00 00 */ li r4, 0 -/* 80303B28 002FF788 38 A0 00 20 */ li r5, 0x20 -/* 80303B2C 002FF78C 4B D0 05 D9 */ bl memset -/* 80303B30 002FF790 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303B34 002FF794 60 00 00 01 */ ori r0, r0, 1 -/* 80303B38 002FF798 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) -lbl_80303B3C: -/* 80303B3C 002FF79C 7F C3 F3 78 */ mr r3, r30 -/* 80303B40 002FF7A0 4B F6 AC 45 */ bl OSRestoreInterrupts -lbl_80303B44: -/* 80303B44 002FF7A4 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303B48 002FF7A8 4B F6 BE 01 */ bl OSLockMutex -/* 80303B4C 002FF7AC 80 0D AF B8 */ lwz r0, lbl_80640278-_SDA_BASE_(r13) -/* 80303B50 002FF7B0 2C 00 00 00 */ cmpwi r0, 0 -/* 80303B54 002FF7B4 40 81 00 18 */ ble lbl_80303B6C -/* 80303B58 002FF7B8 80 0D AF B4 */ lwz r0, lbl_80640274-_SDA_BASE_(r13) -/* 80303B5C 002FF7BC 2C 00 00 00 */ cmpwi r0, 0 -/* 80303B60 002FF7C0 40 82 00 0C */ bne lbl_80303B6C -/* 80303B64 002FF7C4 3B C0 00 00 */ li r30, 0 -/* 80303B68 002FF7C8 48 00 00 28 */ b lbl_80303B90 -lbl_80303B6C: -/* 80303B6C 002FF7CC 48 00 05 8D */ bl func_803040F8 -/* 80303B70 002FF7D0 80 8D AF B4 */ lwz r4, lbl_80640274-_SDA_BASE_(r13) -/* 80303B74 002FF7D4 7C 7E 1B 78 */ mr r30, r3 -/* 80303B78 002FF7D8 2C 04 00 00 */ cmpwi r4, 0 -/* 80303B7C 002FF7DC 40 81 00 14 */ ble lbl_80303B90 -/* 80303B80 002FF7E0 38 84 FF FF */ addi r4, r4, -1 -/* 80303B84 002FF7E4 80 0D AF B8 */ lwz r0, lbl_80640278-_SDA_BASE_(r13) -/* 80303B88 002FF7E8 90 8D AF B4 */ stw r4, lbl_80640274-_SDA_BASE_(r13) -/* 80303B8C 002FF7EC 7F C0 18 50 */ subf r30, r0, r3 -lbl_80303B90: -/* 80303B90 002FF7F0 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303B94 002FF7F4 4B F6 BE 91 */ bl OSUnlockMutex -/* 80303B98 002FF7F8 7F C3 F3 78 */ mr r3, r30 -/* 80303B9C 002FF7FC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80303BA0 002FF800 83 C1 00 08 */ lwz r30, 8(r1) -/* 80303BA4 002FF804 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80303BA8 002FF808 7C 08 03 A6 */ mtlr r0 -/* 80303BAC 002FF80C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80303BB0 002FF810 4E 80 00 20 */ blr - -.global func_80303BB4 -func_80303BB4: -/* 80303BB4 002FF814 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80303BB8 002FF818 7C 08 02 A6 */ mflr r0 -/* 80303BBC 002FF81C 90 01 00 34 */ stw r0, 0x34(r1) -/* 80303BC0 002FF820 39 61 00 30 */ addi r11, r1, 0x30 -/* 80303BC4 002FF824 4B EC 35 65 */ bl _savegpr_27 -/* 80303BC8 002FF828 3F A0 80 58 */ lis r29, lbl_8057E7A0@ha -/* 80303BCC 002FF82C 7C 7B 1B 78 */ mr r27, r3 -/* 80303BD0 002FF830 7C 9F 23 78 */ mr r31, r4 -/* 80303BD4 002FF834 3B BD E7 A0 */ addi r29, r29, lbl_8057E7A0@l -/* 80303BD8 002FF838 4B F6 D7 21 */ bl OSGetCurrentThread -/* 80303BDC 002FF83C 2C 03 00 00 */ cmpwi r3, 0 -/* 80303BE0 002FF840 40 82 00 0C */ bne lbl_80303BEC -/* 80303BE4 002FF844 38 60 FF FF */ li r3, -1 -/* 80303BE8 002FF848 48 00 00 28 */ b lbl_80303C10 -lbl_80303BEC: -/* 80303BEC 002FF84C 4B FF F6 F9 */ bl NWC24IsMsgLibOpened -/* 80303BF0 002FF850 2C 03 00 00 */ cmpwi r3, 0 -/* 80303BF4 002FF854 40 82 00 10 */ bne lbl_80303C04 -/* 80303BF8 002FF858 4B FF F7 01 */ bl NWC24IsMsgLibOpenedByTool -/* 80303BFC 002FF85C 2C 03 00 00 */ cmpwi r3, 0 -/* 80303C00 002FF860 41 82 00 0C */ beq lbl_80303C0C -lbl_80303C04: -/* 80303C04 002FF864 38 60 FF F6 */ li r3, -10 -/* 80303C08 002FF868 48 00 00 08 */ b lbl_80303C10 -lbl_80303C0C: -/* 80303C0C 002FF86C 38 60 00 00 */ li r3, 0 -lbl_80303C10: -/* 80303C10 002FF870 2C 03 00 00 */ cmpwi r3, 0 -/* 80303C14 002FF874 40 80 00 08 */ bge lbl_80303C1C -/* 80303C18 002FF878 48 00 01 40 */ b lbl_80303D58 -lbl_80303C1C: -/* 80303C1C 002FF87C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303C20 002FF880 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303C24 002FF884 40 82 00 5C */ bne lbl_80303C80 -/* 80303C28 002FF888 4B F6 AB 35 */ bl OSDisableInterrupts -/* 80303C2C 002FF88C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303C30 002FF890 7C 7E 1B 78 */ mr r30, r3 -/* 80303C34 002FF894 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303C38 002FF898 40 82 00 40 */ bne lbl_80303C78 -/* 80303C3C 002FF89C 38 7D 00 00 */ addi r3, r29, 0 -/* 80303C40 002FF8A0 4B F6 BC D1 */ bl OSInitMutex -/* 80303C44 002FF8A4 38 7D 00 18 */ addi r3, r29, 0x18 -/* 80303C48 002FF8A8 4B F6 BC C9 */ bl OSInitMutex -/* 80303C4C 002FF8AC 38 7D 00 40 */ addi r3, r29, 0x40 -/* 80303C50 002FF8B0 38 80 00 00 */ li r4, 0 -/* 80303C54 002FF8B4 38 A0 00 20 */ li r5, 0x20 -/* 80303C58 002FF8B8 4B D0 04 AD */ bl memset -/* 80303C5C 002FF8BC 38 7D 00 60 */ addi r3, r29, 0x60 -/* 80303C60 002FF8C0 38 80 00 00 */ li r4, 0 -/* 80303C64 002FF8C4 38 A0 00 20 */ li r5, 0x20 -/* 80303C68 002FF8C8 4B D0 04 9D */ bl memset -/* 80303C6C 002FF8CC 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303C70 002FF8D0 60 00 00 01 */ ori r0, r0, 1 -/* 80303C74 002FF8D4 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) -lbl_80303C78: -/* 80303C78 002FF8D8 7F C3 F3 78 */ mr r3, r30 -/* 80303C7C 002FF8DC 4B F6 AB 09 */ bl OSRestoreInterrupts -lbl_80303C80: -/* 80303C80 002FF8E0 38 7D 00 00 */ addi r3, r29, 0 -/* 80303C84 002FF8E4 4B F6 BC C5 */ bl OSLockMutex -/* 80303C88 002FF8E8 3F C0 80 44 */ lis r30, lbl_804464D4@ha -/* 80303C8C 002FF8EC 3C 80 80 44 */ lis r4, lbl_804464C0@ha -/* 80303C90 002FF8F0 38 7E 64 D4 */ addi r3, r30, lbl_804464D4@l -/* 80303C94 002FF8F4 38 A1 00 08 */ addi r5, r1, 8 -/* 80303C98 002FF8F8 38 84 64 C0 */ addi r4, r4, lbl_804464C0@l -/* 80303C9C 002FF8FC 38 C0 00 00 */ li r6, 0 -/* 80303CA0 002FF900 48 00 09 DD */ bl func_8030467C -/* 80303CA4 002FF904 2C 03 00 00 */ cmpwi r3, 0 -/* 80303CA8 002FF908 7C 7C 1B 78 */ mr r28, r3 -/* 80303CAC 002FF90C 41 80 00 A0 */ blt lbl_80303D4C -/* 80303CB0 002FF910 80 81 00 08 */ lwz r4, 8(r1) -/* 80303CB4 002FF914 38 7E 64 D4 */ addi r3, r30, 0x64d4 -/* 80303CB8 002FF918 39 1D 00 60 */ addi r8, r29, 0x60 -/* 80303CBC 002FF91C 38 A0 00 0F */ li r5, 0xf -/* 80303CC0 002FF920 38 C0 00 00 */ li r6, 0 -/* 80303CC4 002FF924 38 E0 00 00 */ li r7, 0 -/* 80303CC8 002FF928 39 20 00 20 */ li r9, 0x20 -/* 80303CCC 002FF92C 48 00 0A 5D */ bl func_80304728 -/* 80303CD0 002FF930 2C 03 00 00 */ cmpwi r3, 0 -/* 80303CD4 002FF934 7C 7C 1B 78 */ mr r28, r3 -/* 80303CD8 002FF938 41 80 00 58 */ blt lbl_80303D30 -/* 80303CDC 002FF93C 83 9D 00 60 */ lwz r28, 0x60(r29) -/* 80303CE0 002FF940 2C 1C 00 00 */ cmpwi r28, 0 -/* 80303CE4 002FF944 41 82 00 14 */ beq lbl_80303CF8 -/* 80303CE8 002FF948 2C 1C FF DD */ cmpwi r28, -35 -/* 80303CEC 002FF94C 41 82 00 0C */ beq lbl_80303CF8 -/* 80303CF0 002FF950 2C 1C FF DC */ cmpwi r28, -36 -/* 80303CF4 002FF954 40 82 00 3C */ bne lbl_80303D30 -lbl_80303CF8: -/* 80303CF8 002FF958 38 00 00 00 */ li r0, 0 -/* 80303CFC 002FF95C 7C 1B 00 40 */ cmplw r27, r0 -/* 80303D00 002FF960 41 82 00 18 */ beq lbl_80303D18 -/* 80303D04 002FF964 38 7D 00 60 */ addi r3, r29, 0x60 -/* 80303D08 002FF968 80 03 00 04 */ lwz r0, 4(r3) -/* 80303D0C 002FF96C 80 63 00 08 */ lwz r3, 8(r3) -/* 80303D10 002FF970 90 7B 00 04 */ stw r3, 4(r27) -/* 80303D14 002FF974 90 1B 00 00 */ stw r0, 0(r27) -lbl_80303D18: -/* 80303D18 002FF978 38 00 00 00 */ li r0, 0 -/* 80303D1C 002FF97C 7C 1F 00 40 */ cmplw r31, r0 -/* 80303D20 002FF980 41 82 00 10 */ beq lbl_80303D30 -/* 80303D24 002FF984 38 7D 00 60 */ addi r3, r29, 0x60 -/* 80303D28 002FF988 80 03 00 0C */ lwz r0, 0xc(r3) -/* 80303D2C 002FF98C 90 1F 00 00 */ stw r0, 0(r31) -lbl_80303D30: -/* 80303D30 002FF990 3C 60 80 44 */ lis r3, lbl_804464D4@ha -/* 80303D34 002FF994 80 81 00 08 */ lwz r4, 8(r1) -/* 80303D38 002FF998 38 63 64 D4 */ addi r3, r3, lbl_804464D4@l -/* 80303D3C 002FF99C 48 00 09 B9 */ bl func_803046F4 -/* 80303D40 002FF9A0 2C 1C 00 00 */ cmpwi r28, 0 -/* 80303D44 002FF9A4 41 80 00 08 */ blt lbl_80303D4C -/* 80303D48 002FF9A8 7C 7C 1B 78 */ mr r28, r3 -lbl_80303D4C: -/* 80303D4C 002FF9AC 38 7D 00 00 */ addi r3, r29, 0 -/* 80303D50 002FF9B0 4B F6 BC D5 */ bl OSUnlockMutex -/* 80303D54 002FF9B4 7F 83 E3 78 */ mr r3, r28 -lbl_80303D58: -/* 80303D58 002FF9B8 39 61 00 30 */ addi r11, r1, 0x30 -/* 80303D5C 002FF9BC 4B EC 34 19 */ bl _restgpr_27 -/* 80303D60 002FF9C0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80303D64 002FF9C4 7C 08 03 A6 */ mtlr r0 -/* 80303D68 002FF9C8 38 21 00 30 */ addi r1, r1, 0x30 -/* 80303D6C 002FF9CC 4E 80 00 20 */ blr - -.global func_80303D70 -func_80303D70: -/* 80303D70 002FF9D0 7C 65 1B 78 */ mr r5, r3 -/* 80303D74 002FF9D4 38 60 00 00 */ li r3, 0 -/* 80303D78 002FF9D8 38 80 00 06 */ li r4, 6 -/* 80303D7C 002FF9DC 48 00 03 8C */ b lbl_80304108 - -.global func_80303D80 -func_80303D80: -/* 80303D80 002FF9E0 7C 65 1B 78 */ mr r5, r3 -/* 80303D84 002FF9E4 38 60 00 00 */ li r3, 0 -/* 80303D88 002FF9E8 38 80 00 07 */ li r4, 7 -/* 80303D8C 002FF9EC 48 00 03 7C */ b lbl_80304108 - -.global func_80303D90 -func_80303D90: -/* 80303D90 002FF9F0 38 60 00 00 */ li r3, 0 -/* 80303D94 002FF9F4 38 80 00 08 */ li r4, 8 -/* 80303D98 002FF9F8 38 A0 00 00 */ li r5, 0 -/* 80303D9C 002FF9FC 48 00 03 6C */ b lbl_80304108 - -.global func_80303DA0 -func_80303DA0: -/* 80303DA0 002FFA00 38 60 00 00 */ li r3, 0 -/* 80303DA4 002FFA04 38 80 00 09 */ li r4, 9 -/* 80303DA8 002FFA08 38 A0 00 00 */ li r5, 0 -/* 80303DAC 002FFA0C 48 00 03 5C */ b lbl_80304108 - -.global func_80303DB0 -func_80303DB0: -/* 80303DB0 002FFA10 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80303DB4 002FFA14 7C 08 02 A6 */ mflr r0 -/* 80303DB8 002FFA18 90 01 00 14 */ stw r0, 0x14(r1) -/* 80303DBC 002FFA1C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80303DC0 002FFA20 3F E0 80 58 */ lis r31, lbl_8057E7A0@ha -/* 80303DC4 002FFA24 3B FF E7 A0 */ addi r31, r31, lbl_8057E7A0@l -/* 80303DC8 002FFA28 93 C1 00 08 */ stw r30, 8(r1) -/* 80303DCC 002FFA2C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303DD0 002FFA30 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303DD4 002FFA34 40 82 00 5C */ bne lbl_80303E30 -/* 80303DD8 002FFA38 4B F6 A9 85 */ bl OSDisableInterrupts -/* 80303DDC 002FFA3C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303DE0 002FFA40 7C 7E 1B 78 */ mr r30, r3 -/* 80303DE4 002FFA44 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303DE8 002FFA48 40 82 00 40 */ bne lbl_80303E28 -/* 80303DEC 002FFA4C 38 7F 00 00 */ addi r3, r31, 0 -/* 80303DF0 002FFA50 4B F6 BB 21 */ bl OSInitMutex -/* 80303DF4 002FFA54 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303DF8 002FFA58 4B F6 BB 19 */ bl OSInitMutex -/* 80303DFC 002FFA5C 38 7F 00 40 */ addi r3, r31, 0x40 -/* 80303E00 002FFA60 38 80 00 00 */ li r4, 0 -/* 80303E04 002FFA64 38 A0 00 20 */ li r5, 0x20 -/* 80303E08 002FFA68 4B D0 02 FD */ bl memset -/* 80303E0C 002FFA6C 38 7F 00 60 */ addi r3, r31, 0x60 -/* 80303E10 002FFA70 38 80 00 00 */ li r4, 0 -/* 80303E14 002FFA74 38 A0 00 20 */ li r5, 0x20 -/* 80303E18 002FFA78 4B D0 02 ED */ bl memset -/* 80303E1C 002FFA7C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303E20 002FFA80 60 00 00 01 */ ori r0, r0, 1 -/* 80303E24 002FFA84 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) -lbl_80303E28: -/* 80303E28 002FFA88 7F C3 F3 78 */ mr r3, r30 -/* 80303E2C 002FFA8C 4B F6 A9 59 */ bl OSRestoreInterrupts -lbl_80303E30: -/* 80303E30 002FFA90 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303E34 002FFA94 4B F6 BD 25 */ bl OSTryLockMutex -/* 80303E38 002FFA98 2C 03 00 00 */ cmpwi r3, 0 -/* 80303E3C 002FFA9C 40 82 00 0C */ bne lbl_80303E48 -/* 80303E40 002FFAA0 38 60 FF EA */ li r3, -22 -/* 80303E44 002FFAA4 48 00 00 34 */ b lbl_80303E78 -lbl_80303E48: -/* 80303E48 002FFAA8 38 60 00 00 */ li r3, 0 -/* 80303E4C 002FFAAC 48 00 01 21 */ bl func_80303F6C -/* 80303E50 002FFAB0 2C 03 00 00 */ cmpwi r3, 0 -/* 80303E54 002FFAB4 7C 7E 1B 78 */ mr r30, r3 -/* 80303E58 002FFAB8 41 80 00 14 */ blt lbl_80303E6C -/* 80303E5C 002FFABC 80 6D AF B8 */ lwz r3, lbl_80640278-_SDA_BASE_(r13) -/* 80303E60 002FFAC0 3B C0 00 00 */ li r30, 0 -/* 80303E64 002FFAC4 38 03 00 01 */ addi r0, r3, 1 -/* 80303E68 002FFAC8 90 0D AF B8 */ stw r0, lbl_80640278-_SDA_BASE_(r13) -lbl_80303E6C: -/* 80303E6C 002FFACC 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303E70 002FFAD0 4B F6 BB B5 */ bl OSUnlockMutex -/* 80303E74 002FFAD4 7F C3 F3 78 */ mr r3, r30 -lbl_80303E78: -/* 80303E78 002FFAD8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80303E7C 002FFADC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80303E80 002FFAE0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80303E84 002FFAE4 7C 08 03 A6 */ mtlr r0 -/* 80303E88 002FFAE8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80303E8C 002FFAEC 4E 80 00 20 */ blr - -.global func_80303E90 -func_80303E90: -/* 80303E90 002FFAF0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80303E94 002FFAF4 7C 08 02 A6 */ mflr r0 -/* 80303E98 002FFAF8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80303E9C 002FFAFC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80303EA0 002FFB00 3F E0 80 58 */ lis r31, lbl_8057E7A0@ha -/* 80303EA4 002FFB04 3B FF E7 A0 */ addi r31, r31, lbl_8057E7A0@l -/* 80303EA8 002FFB08 93 C1 00 08 */ stw r30, 8(r1) -/* 80303EAC 002FFB0C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303EB0 002FFB10 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303EB4 002FFB14 40 82 00 5C */ bne lbl_80303F10 -/* 80303EB8 002FFB18 4B F6 A8 A5 */ bl OSDisableInterrupts -/* 80303EBC 002FFB1C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303EC0 002FFB20 7C 7E 1B 78 */ mr r30, r3 -/* 80303EC4 002FFB24 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303EC8 002FFB28 40 82 00 40 */ bne lbl_80303F08 -/* 80303ECC 002FFB2C 38 7F 00 00 */ addi r3, r31, 0 -/* 80303ED0 002FFB30 4B F6 BA 41 */ bl OSInitMutex -/* 80303ED4 002FFB34 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303ED8 002FFB38 4B F6 BA 39 */ bl OSInitMutex -/* 80303EDC 002FFB3C 38 7F 00 40 */ addi r3, r31, 0x40 -/* 80303EE0 002FFB40 38 80 00 00 */ li r4, 0 -/* 80303EE4 002FFB44 38 A0 00 20 */ li r5, 0x20 -/* 80303EE8 002FFB48 4B D0 02 1D */ bl memset -/* 80303EEC 002FFB4C 38 7F 00 60 */ addi r3, r31, 0x60 -/* 80303EF0 002FFB50 38 80 00 00 */ li r4, 0 -/* 80303EF4 002FFB54 38 A0 00 20 */ li r5, 0x20 -/* 80303EF8 002FFB58 4B D0 02 0D */ bl memset -/* 80303EFC 002FFB5C 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303F00 002FFB60 60 00 00 01 */ ori r0, r0, 1 -/* 80303F04 002FFB64 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) -lbl_80303F08: -/* 80303F08 002FFB68 7F C3 F3 78 */ mr r3, r30 -/* 80303F0C 002FFB6C 4B F6 A8 79 */ bl OSRestoreInterrupts -lbl_80303F10: -/* 80303F10 002FFB70 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303F14 002FFB74 4B F6 BA 35 */ bl OSLockMutex -/* 80303F18 002FFB78 48 00 01 E1 */ bl func_803040F8 -/* 80303F1C 002FFB7C 2C 03 00 00 */ cmpwi r3, 0 -/* 80303F20 002FFB80 7C 7E 1B 78 */ mr r30, r3 -/* 80303F24 002FFB84 41 80 00 14 */ blt lbl_80303F38 -/* 80303F28 002FFB88 80 6D AF B8 */ lwz r3, lbl_80640278-_SDA_BASE_(r13) -/* 80303F2C 002FFB8C 3B C0 00 00 */ li r30, 0 -/* 80303F30 002FFB90 38 03 FF FF */ addi r0, r3, -1 -/* 80303F34 002FFB94 90 0D AF B8 */ stw r0, lbl_80640278-_SDA_BASE_(r13) -lbl_80303F38: -/* 80303F38 002FFB98 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80303F3C 002FFB9C 4B F6 BA E9 */ bl OSUnlockMutex -/* 80303F40 002FFBA0 7F C3 F3 78 */ mr r3, r30 -/* 80303F44 002FFBA4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80303F48 002FFBA8 83 C1 00 08 */ lwz r30, 8(r1) -/* 80303F4C 002FFBAC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80303F50 002FFBB0 7C 08 03 A6 */ mtlr r0 -/* 80303F54 002FFBB4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80303F58 002FFBB8 4E 80 00 20 */ blr - -.global func_80303F5C -func_80303F5C: -/* 80303F5C 002FFBBC 38 60 00 00 */ li r3, 0 -/* 80303F60 002FFBC0 38 80 00 01 */ li r4, 1 -/* 80303F64 002FFBC4 38 A0 00 00 */ li r5, 0 -/* 80303F68 002FFBC8 48 00 01 A0 */ b lbl_80304108 - -.global func_80303F6C -func_80303F6C: -/* 80303F6C 002FFBCC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80303F70 002FFBD0 7C 08 02 A6 */ mflr r0 -/* 80303F74 002FFBD4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80303F78 002FFBD8 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80303F7C 002FFBDC 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80303F80 002FFBE0 3F C0 80 58 */ lis r30, lbl_8057E7A0@ha -/* 80303F84 002FFBE4 3B DE E7 A0 */ addi r30, r30, lbl_8057E7A0@l -/* 80303F88 002FFBE8 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80303F8C 002FFBEC 93 81 00 10 */ stw r28, 0x10(r1) -/* 80303F90 002FFBF0 7C 7C 1B 78 */ mr r28, r3 -/* 80303F94 002FFBF4 4B F6 D3 65 */ bl OSGetCurrentThread -/* 80303F98 002FFBF8 2C 03 00 00 */ cmpwi r3, 0 -/* 80303F9C 002FFBFC 40 82 00 0C */ bne lbl_80303FA8 -/* 80303FA0 002FFC00 38 60 FF FF */ li r3, -1 -/* 80303FA4 002FFC04 48 00 00 28 */ b lbl_80303FCC -lbl_80303FA8: -/* 80303FA8 002FFC08 4B FF F3 3D */ bl NWC24IsMsgLibOpened -/* 80303FAC 002FFC0C 2C 03 00 00 */ cmpwi r3, 0 -/* 80303FB0 002FFC10 40 82 00 10 */ bne lbl_80303FC0 -/* 80303FB4 002FFC14 4B FF F3 45 */ bl NWC24IsMsgLibOpenedByTool -/* 80303FB8 002FFC18 2C 03 00 00 */ cmpwi r3, 0 -/* 80303FBC 002FFC1C 41 82 00 0C */ beq lbl_80303FC8 -lbl_80303FC0: -/* 80303FC0 002FFC20 38 60 FF F6 */ li r3, -10 -/* 80303FC4 002FFC24 48 00 00 08 */ b lbl_80303FCC -lbl_80303FC8: -/* 80303FC8 002FFC28 38 60 00 00 */ li r3, 0 -lbl_80303FCC: -/* 80303FCC 002FFC2C 2C 03 00 00 */ cmpwi r3, 0 -/* 80303FD0 002FFC30 40 80 00 08 */ bge lbl_80303FD8 -/* 80303FD4 002FFC34 48 00 01 04 */ b lbl_803040D8 -lbl_80303FD8: -/* 80303FD8 002FFC38 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303FDC 002FFC3C 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303FE0 002FFC40 40 82 00 5C */ bne lbl_8030403C -/* 80303FE4 002FFC44 4B F6 A7 79 */ bl OSDisableInterrupts -/* 80303FE8 002FFC48 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80303FEC 002FFC4C 7C 7F 1B 78 */ mr r31, r3 -/* 80303FF0 002FFC50 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80303FF4 002FFC54 40 82 00 40 */ bne lbl_80304034 -/* 80303FF8 002FFC58 38 7E 00 00 */ addi r3, r30, 0 -/* 80303FFC 002FFC5C 4B F6 B9 15 */ bl OSInitMutex -/* 80304000 002FFC60 38 7E 00 18 */ addi r3, r30, 0x18 -/* 80304004 002FFC64 4B F6 B9 0D */ bl OSInitMutex -/* 80304008 002FFC68 38 7E 00 40 */ addi r3, r30, 0x40 -/* 8030400C 002FFC6C 38 80 00 00 */ li r4, 0 -/* 80304010 002FFC70 38 A0 00 20 */ li r5, 0x20 -/* 80304014 002FFC74 4B D0 00 F1 */ bl memset -/* 80304018 002FFC78 38 7E 00 60 */ addi r3, r30, 0x60 -/* 8030401C 002FFC7C 38 80 00 00 */ li r4, 0 -/* 80304020 002FFC80 38 A0 00 20 */ li r5, 0x20 -/* 80304024 002FFC84 4B D0 00 E1 */ bl memset -/* 80304028 002FFC88 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 8030402C 002FFC8C 60 00 00 01 */ ori r0, r0, 1 -/* 80304030 002FFC90 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) -lbl_80304034: -/* 80304034 002FFC94 7F E3 FB 78 */ mr r3, r31 -/* 80304038 002FFC98 4B F6 A7 4D */ bl OSRestoreInterrupts -lbl_8030403C: -/* 8030403C 002FFC9C 38 7E 00 00 */ addi r3, r30, 0 -/* 80304040 002FFCA0 4B F6 BB 19 */ bl OSTryLockMutex -/* 80304044 002FFCA4 2C 03 00 00 */ cmpwi r3, 0 -/* 80304048 002FFCA8 40 82 00 0C */ bne lbl_80304054 -/* 8030404C 002FFCAC 38 60 FF EA */ li r3, -22 -/* 80304050 002FFCB0 48 00 00 88 */ b lbl_803040D8 -lbl_80304054: -/* 80304054 002FFCB4 3F E0 80 44 */ lis r31, lbl_804464F0@ha -/* 80304058 002FFCB8 3C 80 80 44 */ lis r4, lbl_804464C0@ha -/* 8030405C 002FFCBC 38 7F 64 F0 */ addi r3, r31, lbl_804464F0@l -/* 80304060 002FFCC0 38 A1 00 08 */ addi r5, r1, 8 -/* 80304064 002FFCC4 38 84 64 C0 */ addi r4, r4, lbl_804464C0@l -/* 80304068 002FFCC8 38 C0 00 00 */ li r6, 0 -/* 8030406C 002FFCCC 48 00 06 11 */ bl func_8030467C -/* 80304070 002FFCD0 2C 03 00 00 */ cmpwi r3, 0 -/* 80304074 002FFCD4 7C 7D 1B 78 */ mr r29, r3 -/* 80304078 002FFCD8 41 80 00 54 */ blt lbl_803040CC -/* 8030407C 002FFCDC 93 9E 00 40 */ stw r28, 0x40(r30) -/* 80304080 002FFCE0 38 7F 64 F0 */ addi r3, r31, 0x64f0 -/* 80304084 002FFCE4 80 81 00 08 */ lwz r4, 8(r1) -/* 80304088 002FFCE8 38 DE 00 40 */ addi r6, r30, 0x40 -/* 8030408C 002FFCEC 39 1E 00 60 */ addi r8, r30, 0x60 -/* 80304090 002FFCF0 38 A0 00 02 */ li r5, 2 -/* 80304094 002FFCF4 38 E0 00 20 */ li r7, 0x20 -/* 80304098 002FFCF8 39 20 00 20 */ li r9, 0x20 -/* 8030409C 002FFCFC 48 00 06 8D */ bl func_80304728 -/* 803040A0 002FFD00 2C 03 00 00 */ cmpwi r3, 0 -/* 803040A4 002FFD04 7C 7D 1B 78 */ mr r29, r3 -/* 803040A8 002FFD08 41 80 00 08 */ blt lbl_803040B0 -/* 803040AC 002FFD0C 83 BE 00 60 */ lwz r29, 0x60(r30) -lbl_803040B0: -/* 803040B0 002FFD10 3C 60 80 44 */ lis r3, lbl_804464F0@ha -/* 803040B4 002FFD14 80 81 00 08 */ lwz r4, 8(r1) -/* 803040B8 002FFD18 38 63 64 F0 */ addi r3, r3, lbl_804464F0@l -/* 803040BC 002FFD1C 48 00 06 39 */ bl func_803046F4 -/* 803040C0 002FFD20 2C 03 00 00 */ cmpwi r3, 0 -/* 803040C4 002FFD24 40 80 00 08 */ bge lbl_803040CC -/* 803040C8 002FFD28 7C 7D 1B 78 */ mr r29, r3 -lbl_803040CC: -/* 803040CC 002FFD2C 38 7E 00 00 */ addi r3, r30, 0 -/* 803040D0 002FFD30 4B F6 B9 55 */ bl OSUnlockMutex -/* 803040D4 002FFD34 7F A3 EB 78 */ mr r3, r29 -lbl_803040D8: -/* 803040D8 002FFD38 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803040DC 002FFD3C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 803040E0 002FFD40 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 803040E4 002FFD44 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 803040E8 002FFD48 83 81 00 10 */ lwz r28, 0x10(r1) -/* 803040EC 002FFD4C 7C 08 03 A6 */ mtlr r0 -/* 803040F0 002FFD50 38 21 00 20 */ addi r1, r1, 0x20 -/* 803040F4 002FFD54 4E 80 00 20 */ blr - -.global func_803040F8 -func_803040F8: -/* 803040F8 002FFD58 38 60 00 00 */ li r3, 0 -/* 803040FC 002FFD5C 38 80 00 03 */ li r4, 3 -/* 80304100 002FFD60 38 A0 00 00 */ li r5, 0 -/* 80304104 002FFD64 48 00 00 04 */ b lbl_80304108 -lbl_80304108: -/* 80304108 002FFD68 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8030410C 002FFD6C 7C 08 02 A6 */ mflr r0 -/* 80304110 002FFD70 90 01 00 34 */ stw r0, 0x34(r1) -/* 80304114 002FFD74 39 61 00 30 */ addi r11, r1, 0x30 -/* 80304118 002FFD78 4B EC 30 11 */ bl _savegpr_27 -/* 8030411C 002FFD7C 3F E0 80 58 */ lis r31, lbl_8057E7A0@ha -/* 80304120 002FFD80 7C 7B 1B 78 */ mr r27, r3 -/* 80304124 002FFD84 7C 9C 23 78 */ mr r28, r4 -/* 80304128 002FFD88 7C BD 2B 78 */ mr r29, r5 -/* 8030412C 002FFD8C 3B FF E7 A0 */ addi r31, r31, lbl_8057E7A0@l -/* 80304130 002FFD90 4B F6 D1 C9 */ bl OSGetCurrentThread -/* 80304134 002FFD94 2C 03 00 00 */ cmpwi r3, 0 -/* 80304138 002FFD98 40 82 00 0C */ bne lbl_80304144 -/* 8030413C 002FFD9C 38 60 FF FF */ li r3, -1 -/* 80304140 002FFDA0 48 00 01 10 */ b lbl_80304250 -lbl_80304144: -/* 80304144 002FFDA4 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80304148 002FFDA8 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 8030414C 002FFDAC 40 82 00 5C */ bne lbl_803041A8 -/* 80304150 002FFDB0 4B F6 A6 0D */ bl OSDisableInterrupts -/* 80304154 002FFDB4 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80304158 002FFDB8 7C 7E 1B 78 */ mr r30, r3 -/* 8030415C 002FFDBC 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80304160 002FFDC0 40 82 00 40 */ bne lbl_803041A0 -/* 80304164 002FFDC4 38 7F 00 00 */ addi r3, r31, 0 -/* 80304168 002FFDC8 4B F6 B7 A9 */ bl OSInitMutex -/* 8030416C 002FFDCC 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80304170 002FFDD0 4B F6 B7 A1 */ bl OSInitMutex -/* 80304174 002FFDD4 38 7F 00 40 */ addi r3, r31, 0x40 -/* 80304178 002FFDD8 38 80 00 00 */ li r4, 0 -/* 8030417C 002FFDDC 38 A0 00 20 */ li r5, 0x20 -/* 80304180 002FFDE0 4B CF FF 85 */ bl memset -/* 80304184 002FFDE4 38 7F 00 60 */ addi r3, r31, 0x60 -/* 80304188 002FFDE8 38 80 00 00 */ li r4, 0 -/* 8030418C 002FFDEC 38 A0 00 20 */ li r5, 0x20 -/* 80304190 002FFDF0 4B CF FF 75 */ bl memset -/* 80304194 002FFDF4 80 0D AF B0 */ lwz r0, lbl_80640270-_SDA_BASE_(r13) -/* 80304198 002FFDF8 60 00 00 01 */ ori r0, r0, 1 -/* 8030419C 002FFDFC 90 0D AF B0 */ stw r0, lbl_80640270-_SDA_BASE_(r13) -lbl_803041A0: -/* 803041A0 002FFE00 7F C3 F3 78 */ mr r3, r30 -/* 803041A4 002FFE04 4B F6 A5 E1 */ bl OSRestoreInterrupts -lbl_803041A8: -/* 803041A8 002FFE08 38 7F 00 00 */ addi r3, r31, 0 -/* 803041AC 002FFE0C 4B F6 B7 9D */ bl OSLockMutex -/* 803041B0 002FFE10 3C 80 80 44 */ lis r4, lbl_804464C0@ha -/* 803041B4 002FFE14 7F 63 DB 78 */ mr r3, r27 -/* 803041B8 002FFE18 38 84 64 C0 */ addi r4, r4, lbl_804464C0@l -/* 803041BC 002FFE1C 38 A1 00 08 */ addi r5, r1, 8 -/* 803041C0 002FFE20 38 C0 00 00 */ li r6, 0 -/* 803041C4 002FFE24 48 00 04 B9 */ bl func_8030467C -/* 803041C8 002FFE28 2C 03 00 00 */ cmpwi r3, 0 -/* 803041CC 002FFE2C 7C 7E 1B 78 */ mr r30, r3 -/* 803041D0 002FFE30 41 80 00 74 */ blt lbl_80304244 -/* 803041D4 002FFE34 80 81 00 08 */ lwz r4, 8(r1) -/* 803041D8 002FFE38 7F 63 DB 78 */ mr r3, r27 -/* 803041DC 002FFE3C 7F 85 E3 78 */ mr r5, r28 -/* 803041E0 002FFE40 39 1F 00 60 */ addi r8, r31, 0x60 -/* 803041E4 002FFE44 38 C0 00 00 */ li r6, 0 -/* 803041E8 002FFE48 38 E0 00 00 */ li r7, 0 -/* 803041EC 002FFE4C 39 20 00 20 */ li r9, 0x20 -/* 803041F0 002FFE50 48 00 05 39 */ bl func_80304728 -/* 803041F4 002FFE54 2C 03 00 00 */ cmpwi r3, 0 -/* 803041F8 002FFE58 7C 7E 1B 78 */ mr r30, r3 -/* 803041FC 002FFE5C 41 80 00 30 */ blt lbl_8030422C -/* 80304200 002FFE60 83 DF 00 60 */ lwz r30, 0x60(r31) -/* 80304204 002FFE64 2C 1E FF FE */ cmpwi r30, -2 -/* 80304208 002FFE68 41 82 00 0C */ beq lbl_80304214 -/* 8030420C 002FFE6C 2C 1E FF DF */ cmpwi r30, -33 -/* 80304210 002FFE70 40 82 00 1C */ bne lbl_8030422C -lbl_80304214: -/* 80304214 002FFE74 38 00 00 00 */ li r0, 0 -/* 80304218 002FFE78 7C 1D 00 40 */ cmplw r29, r0 -/* 8030421C 002FFE7C 41 82 00 10 */ beq lbl_8030422C -/* 80304220 002FFE80 38 7F 00 60 */ addi r3, r31, 0x60 -/* 80304224 002FFE84 80 03 00 04 */ lwz r0, 4(r3) -/* 80304228 002FFE88 90 1D 00 00 */ stw r0, 0(r29) -lbl_8030422C: -/* 8030422C 002FFE8C 80 81 00 08 */ lwz r4, 8(r1) -/* 80304230 002FFE90 7F 63 DB 78 */ mr r3, r27 -/* 80304234 002FFE94 48 00 04 C1 */ bl func_803046F4 -/* 80304238 002FFE98 2C 03 00 00 */ cmpwi r3, 0 -/* 8030423C 002FFE9C 40 80 00 08 */ bge lbl_80304244 -/* 80304240 002FFEA0 7C 7E 1B 78 */ mr r30, r3 -lbl_80304244: -/* 80304244 002FFEA4 38 7F 00 00 */ addi r3, r31, 0 -/* 80304248 002FFEA8 4B F6 B7 DD */ bl OSUnlockMutex -/* 8030424C 002FFEAC 7F C3 F3 78 */ mr r3, r30 -lbl_80304250: -/* 80304250 002FFEB0 39 61 00 30 */ addi r11, r1, 0x30 -/* 80304254 002FFEB4 4B EC 2F 21 */ bl _restgpr_27 -/* 80304258 002FFEB8 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8030425C 002FFEBC 7C 08 03 A6 */ mtlr r0 -/* 80304260 002FFEC0 38 21 00 30 */ addi r1, r1, 0x30 -/* 80304264 002FFEC4 4E 80 00 20 */ blr - -.global func_80304268 -func_80304268: -/* 80304268 002FFEC8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8030426C 002FFECC 7C 08 02 A6 */ mflr r0 -/* 80304270 002FFED0 38 80 00 00 */ li r4, 0 -/* 80304274 002FFED4 38 A0 03 60 */ li r5, 0x360 -/* 80304278 002FFED8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8030427C 002FFEDC 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304280 002FFEE0 38 63 24 00 */ addi r3, r3, 0x2400 -/* 80304284 002FFEE4 90 61 00 08 */ stw r3, 8(r1) -/* 80304288 002FFEE8 4B FF CD 8D */ bl Mail_memset -/* 8030428C 002FFEEC 38 61 00 08 */ addi r3, r1, 8 -/* 80304290 002FFEF0 48 00 00 15 */ bl func_803042A4 -/* 80304294 002FFEF4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80304298 002FFEF8 7C 08 03 A6 */ mtlr r0 -/* 8030429C 002FFEFC 38 21 00 10 */ addi r1, r1, 0x10 -/* 803042A0 002FFF00 4E 80 00 20 */ blr - -.global func_803042A4 -func_803042A4: -/* 803042A4 002FFF04 94 21 FF 50 */ stwu r1, -0xb0(r1) -/* 803042A8 002FFF08 7C 08 02 A6 */ mflr r0 -/* 803042AC 002FFF0C 90 01 00 B4 */ stw r0, 0xb4(r1) -/* 803042B0 002FFF10 93 E1 00 AC */ stw r31, 0xac(r1) -/* 803042B4 002FFF14 93 C1 00 A8 */ stw r30, 0xa8(r1) -/* 803042B8 002FFF18 7C 7E 1B 78 */ mr r30, r3 -/* 803042BC 002FFF1C 80 8D AF 90 */ lwz r4, lbl_80640250-_SDA_BASE_(r13) -/* 803042C0 002FFF20 38 84 24 00 */ addi r4, r4, 0x2400 -/* 803042C4 002FFF24 90 83 00 00 */ stw r4, 0(r3) -/* 803042C8 002FFF28 80 64 00 00 */ lwz r3, 0(r4) -/* 803042CC 002FFF2C 3C 03 A8 9D */ addis r0, r3, 0xa89d -/* 803042D0 002FFF30 28 00 46 6C */ cmplwi r0, 0x466c -/* 803042D4 002FFF34 41 82 00 94 */ beq lbl_80304368 -/* 803042D8 002FFF38 80 8D 8C B0 */ lwz r4, lbl_8063DF70-_SDA_BASE_(r13) -/* 803042DC 002FFF3C 38 61 00 08 */ addi r3, r1, 8 -/* 803042E0 002FFF40 38 A0 00 02 */ li r5, 2 -/* 803042E4 002FFF44 4B FF D8 65 */ bl NWC24FOpen -/* 803042E8 002FFF48 2C 03 00 00 */ cmpwi r3, 0 -/* 803042EC 002FFF4C 41 82 00 08 */ beq lbl_803042F4 -/* 803042F0 002FFF50 48 00 00 7C */ b lbl_8030436C -lbl_803042F4: -/* 803042F4 002FFF54 38 61 00 08 */ addi r3, r1, 8 -/* 803042F8 002FFF58 38 80 00 00 */ li r4, 0 -/* 803042FC 002FFF5C 38 A0 00 00 */ li r5, 0 -/* 80304300 002FFF60 4B FF DD 2D */ bl NWC24FSeek -/* 80304304 002FFF64 80 7E 00 00 */ lwz r3, 0(r30) -/* 80304308 002FFF68 38 A1 00 08 */ addi r5, r1, 8 -/* 8030430C 002FFF6C 38 80 03 60 */ li r4, 0x360 -/* 80304310 002FFF70 4B FF DF 09 */ bl NWC24FRead -/* 80304314 002FFF74 7C 7F 1B 78 */ mr r31, r3 -/* 80304318 002FFF78 38 61 00 08 */ addi r3, r1, 8 -/* 8030431C 002FFF7C 4B FF DB 7D */ bl NWC24FClose -/* 80304320 002FFF80 2C 1F 00 00 */ cmpwi r31, 0 -/* 80304324 002FFF84 41 82 00 08 */ beq lbl_8030432C -/* 80304328 002FFF88 7F E3 FB 78 */ mr r3, r31 -lbl_8030432C: -/* 8030432C 002FFF8C 2C 03 00 00 */ cmpwi r3, 0 -/* 80304330 002FFF90 41 82 00 08 */ beq lbl_80304338 -/* 80304334 002FFF94 48 00 00 38 */ b lbl_8030436C -lbl_80304338: -/* 80304338 002FFF98 80 9E 00 00 */ lwz r4, 0(r30) -/* 8030433C 002FFF9C 80 64 00 00 */ lwz r3, 0(r4) -/* 80304340 002FFFA0 3C 03 A8 9D */ addis r0, r3, 0xa89d -/* 80304344 002FFFA4 28 00 46 6C */ cmplwi r0, 0x466c -/* 80304348 002FFFA8 41 82 00 0C */ beq lbl_80304354 -/* 8030434C 002FFFAC 38 60 FF F2 */ li r3, -14 -/* 80304350 002FFFB0 48 00 00 1C */ b lbl_8030436C -lbl_80304354: -/* 80304354 002FFFB4 80 04 00 04 */ lwz r0, 4(r4) -/* 80304358 002FFFB8 28 00 00 02 */ cmplwi r0, 2 -/* 8030435C 002FFFBC 41 82 00 0C */ beq lbl_80304368 -/* 80304360 002FFFC0 38 60 FF E5 */ li r3, -27 -/* 80304364 002FFFC4 48 00 00 08 */ b lbl_8030436C -lbl_80304368: -/* 80304368 002FFFC8 38 60 00 00 */ li r3, 0 -lbl_8030436C: -/* 8030436C 002FFFCC 80 01 00 B4 */ lwz r0, 0xb4(r1) -/* 80304370 002FFFD0 83 E1 00 AC */ lwz r31, 0xac(r1) -/* 80304374 002FFFD4 83 C1 00 A8 */ lwz r30, 0xa8(r1) -/* 80304378 002FFFD8 7C 08 03 A6 */ mtlr r0 -/* 8030437C 002FFFDC 38 21 00 B0 */ addi r1, r1, 0xb0 -/* 80304380 002FFFE0 4E 80 00 20 */ blr - -.global func_80304384 -func_80304384: -/* 80304384 002FFFE4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80304388 002FFFE8 7C 08 02 A6 */ mflr r0 -/* 8030438C 002FFFEC 38 80 00 00 */ li r4, 0 -/* 80304390 002FFFF0 38 A0 08 00 */ li r5, 0x800 -/* 80304394 002FFFF4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80304398 002FFFF8 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 8030439C 002FFFFC 38 63 28 00 */ addi r3, r3, 0x2800 -/* 803043A0 00300000 90 61 00 08 */ stw r3, 8(r1) -/* 803043A4 00300004 4B FF CC 71 */ bl Mail_memset -/* 803043A8 00300008 38 61 00 08 */ addi r3, r1, 8 -/* 803043AC 0030000C 48 00 00 15 */ bl func_803043C0 -/* 803043B0 00300010 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803043B4 00300014 7C 08 03 A6 */ mtlr r0 -/* 803043B8 00300018 38 21 00 10 */ addi r1, r1, 0x10 -/* 803043BC 0030001C 4E 80 00 20 */ blr - -.global func_803043C0 -func_803043C0: -/* 803043C0 00300020 94 21 FF 50 */ stwu r1, -0xb0(r1) -/* 803043C4 00300024 7C 08 02 A6 */ mflr r0 -/* 803043C8 00300028 90 01 00 B4 */ stw r0, 0xb4(r1) -/* 803043CC 0030002C 93 E1 00 AC */ stw r31, 0xac(r1) -/* 803043D0 00300030 93 C1 00 A8 */ stw r30, 0xa8(r1) -/* 803043D4 00300034 7C 7E 1B 78 */ mr r30, r3 -/* 803043D8 00300038 80 8D AF 90 */ lwz r4, lbl_80640250-_SDA_BASE_(r13) -/* 803043DC 0030003C 38 84 28 00 */ addi r4, r4, 0x2800 -/* 803043E0 00300040 90 83 00 00 */ stw r4, 0(r3) -/* 803043E4 00300044 80 64 00 00 */ lwz r3, 0(r4) -/* 803043E8 00300048 3C 03 A8 9D */ addis r0, r3, 0xa89d -/* 803043EC 0030004C 28 00 46 73 */ cmplwi r0, 0x4673 -/* 803043F0 00300050 41 82 00 94 */ beq lbl_80304484 -/* 803043F4 00300054 80 8D 8C B8 */ lwz r4, lbl_8063DF78-_SDA_BASE_(r13) -/* 803043F8 00300058 38 61 00 08 */ addi r3, r1, 8 -/* 803043FC 0030005C 38 A0 00 02 */ li r5, 2 -/* 80304400 00300060 4B FF D7 49 */ bl NWC24FOpen -/* 80304404 00300064 2C 03 00 00 */ cmpwi r3, 0 -/* 80304408 00300068 41 82 00 08 */ beq lbl_80304410 -/* 8030440C 0030006C 48 00 00 7C */ b lbl_80304488 -lbl_80304410: -/* 80304410 00300070 38 61 00 08 */ addi r3, r1, 8 -/* 80304414 00300074 38 80 00 00 */ li r4, 0 -/* 80304418 00300078 38 A0 00 00 */ li r5, 0 -/* 8030441C 0030007C 4B FF DC 11 */ bl NWC24FSeek -/* 80304420 00300080 80 7E 00 00 */ lwz r3, 0(r30) -/* 80304424 00300084 38 A1 00 08 */ addi r5, r1, 8 -/* 80304428 00300088 38 80 08 00 */ li r4, 0x800 -/* 8030442C 0030008C 4B FF DD ED */ bl NWC24FRead -/* 80304430 00300090 7C 7F 1B 78 */ mr r31, r3 -/* 80304434 00300094 38 61 00 08 */ addi r3, r1, 8 -/* 80304438 00300098 4B FF DA 61 */ bl NWC24FClose -/* 8030443C 0030009C 2C 1F 00 00 */ cmpwi r31, 0 -/* 80304440 003000A0 41 82 00 08 */ beq lbl_80304448 -/* 80304444 003000A4 7F E3 FB 78 */ mr r3, r31 -lbl_80304448: -/* 80304448 003000A8 2C 03 00 00 */ cmpwi r3, 0 -/* 8030444C 003000AC 41 82 00 08 */ beq lbl_80304454 -/* 80304450 003000B0 48 00 00 38 */ b lbl_80304488 -lbl_80304454: -/* 80304454 003000B4 80 9E 00 00 */ lwz r4, 0(r30) -/* 80304458 003000B8 80 64 00 00 */ lwz r3, 0(r4) -/* 8030445C 003000BC 3C 03 A8 9D */ addis r0, r3, 0xa89d -/* 80304460 003000C0 28 00 46 73 */ cmplwi r0, 0x4673 -/* 80304464 003000C4 41 82 00 0C */ beq lbl_80304470 -/* 80304468 003000C8 38 60 FF F2 */ li r3, -14 -/* 8030446C 003000CC 48 00 00 1C */ b lbl_80304488 -lbl_80304470: -/* 80304470 003000D0 80 04 00 04 */ lwz r0, 4(r4) -/* 80304474 003000D4 28 00 00 02 */ cmplwi r0, 2 -/* 80304478 003000D8 41 82 00 0C */ beq lbl_80304484 -/* 8030447C 003000DC 38 60 FF E5 */ li r3, -27 -/* 80304480 003000E0 48 00 00 08 */ b lbl_80304488 -lbl_80304484: -/* 80304484 003000E4 38 60 00 00 */ li r3, 0 -lbl_80304488: -/* 80304488 003000E8 80 01 00 B4 */ lwz r0, 0xb4(r1) -/* 8030448C 003000EC 83 E1 00 AC */ lwz r31, 0xac(r1) -/* 80304490 003000F0 83 C1 00 A8 */ lwz r30, 0xa8(r1) -/* 80304494 003000F4 7C 08 03 A6 */ mtlr r0 -/* 80304498 003000F8 38 21 00 B0 */ addi r1, r1, 0xb0 -/* 8030449C 003000FC 4E 80 00 20 */ blr - -.global func_803044A0 -func_803044A0: -/* 803044A0 00300100 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 803044A4 00300104 7C 08 02 A6 */ mflr r0 -/* 803044A8 00300108 90 01 00 34 */ stw r0, 0x34(r1) -/* 803044AC 0030010C 39 61 00 30 */ addi r11, r1, 0x30 -/* 803044B0 00300110 4B EC 2C 79 */ bl _savegpr_27 -/* 803044B4 00300114 3F C0 80 58 */ lis r30, lbl_8057E920@ha -/* 803044B8 00300118 7C 7B 1B 78 */ mr r27, r3 -/* 803044BC 0030011C 7C 9C 23 78 */ mr r28, r4 -/* 803044C0 00300120 3B DE E9 20 */ addi r30, r30, lbl_8057E920@l -/* 803044C4 00300124 4B F6 CE 35 */ bl OSGetCurrentThread -/* 803044C8 00300128 2C 03 00 00 */ cmpwi r3, 0 -/* 803044CC 0030012C 40 82 00 0C */ bne lbl_803044D8 -/* 803044D0 00300130 38 60 FF FF */ li r3, -1 -/* 803044D4 00300134 48 00 00 08 */ b lbl_803044DC -lbl_803044D8: -/* 803044D8 00300138 38 60 00 00 */ li r3, 0 -lbl_803044DC: -/* 803044DC 0030013C 2C 03 00 00 */ cmpwi r3, 0 -/* 803044E0 00300140 40 80 00 08 */ bge lbl_803044E8 -/* 803044E4 00300144 48 00 00 EC */ b lbl_803045D0 -lbl_803044E8: -/* 803044E8 00300148 80 0D AF C0 */ lwz r0, lbl_80640280-_SDA_BASE_(r13) -/* 803044EC 0030014C 2C 00 00 00 */ cmpwi r0, 0 -/* 803044F0 00300150 40 82 00 50 */ bne lbl_80304540 -/* 803044F4 00300154 4B F6 A2 69 */ bl OSDisableInterrupts -/* 803044F8 00300158 80 0D AF C0 */ lwz r0, lbl_80640280-_SDA_BASE_(r13) -/* 803044FC 0030015C 7C 7F 1B 78 */ mr r31, r3 -/* 80304500 00300160 2C 00 00 00 */ cmpwi r0, 0 -/* 80304504 00300164 40 82 00 34 */ bne lbl_80304538 -/* 80304508 00300168 38 7E 00 80 */ addi r3, r30, 0x80 -/* 8030450C 0030016C 4B F6 B4 05 */ bl OSInitMutex -/* 80304510 00300170 38 7E 00 A0 */ addi r3, r30, 0xa0 -/* 80304514 00300174 38 80 00 00 */ li r4, 0 -/* 80304518 00300178 38 A0 00 20 */ li r5, 0x20 -/* 8030451C 0030017C 4B CF FB E9 */ bl memset -/* 80304520 00300180 38 7E 00 C0 */ addi r3, r30, 0xc0 -/* 80304524 00300184 38 80 00 00 */ li r4, 0 -/* 80304528 00300188 38 A0 00 20 */ li r5, 0x20 -/* 8030452C 0030018C 4B CF FB D9 */ bl memset -/* 80304530 00300190 38 00 00 01 */ li r0, 1 -/* 80304534 00300194 90 0D AF C0 */ stw r0, lbl_80640280-_SDA_BASE_(r13) -lbl_80304538: -/* 80304538 00300198 7F E3 FB 78 */ mr r3, r31 -/* 8030453C 0030019C 4B F6 A2 49 */ bl OSRestoreInterrupts -lbl_80304540: -/* 80304540 003001A0 38 7E 00 80 */ addi r3, r30, 0x80 -/* 80304544 003001A4 4B F6 B4 05 */ bl OSLockMutex -/* 80304548 003001A8 3F E0 80 44 */ lis r31, lbl_8044655C@ha -/* 8030454C 003001AC 3C 80 80 44 */ lis r4, lbl_80446548@ha -/* 80304550 003001B0 38 7F 65 5C */ addi r3, r31, lbl_8044655C@l -/* 80304554 003001B4 38 A1 00 08 */ addi r5, r1, 8 -/* 80304558 003001B8 38 84 65 48 */ addi r4, r4, lbl_80446548@l -/* 8030455C 003001BC 38 C0 00 00 */ li r6, 0 -/* 80304560 003001C0 48 00 01 1D */ bl func_8030467C -/* 80304564 003001C4 2C 03 00 00 */ cmpwi r3, 0 -/* 80304568 003001C8 7C 7D 1B 78 */ mr r29, r3 -/* 8030456C 003001CC 41 80 00 58 */ blt lbl_803045C4 -/* 80304570 003001D0 38 DE 00 A0 */ addi r6, r30, 0xa0 -/* 80304574 003001D4 93 7E 00 A0 */ stw r27, 0xa0(r30) -/* 80304578 003001D8 80 81 00 08 */ lwz r4, 8(r1) -/* 8030457C 003001DC 38 7F 65 5C */ addi r3, r31, 0x655c -/* 80304580 003001E0 93 86 00 04 */ stw r28, 4(r6) -/* 80304584 003001E4 39 1E 00 C0 */ addi r8, r30, 0xc0 -/* 80304588 003001E8 38 A0 00 17 */ li r5, 0x17 -/* 8030458C 003001EC 38 E0 00 20 */ li r7, 0x20 -/* 80304590 003001F0 39 20 00 20 */ li r9, 0x20 -/* 80304594 003001F4 48 00 01 95 */ bl func_80304728 -/* 80304598 003001F8 2C 03 00 00 */ cmpwi r3, 0 -/* 8030459C 003001FC 7C 7D 1B 78 */ mr r29, r3 -/* 803045A0 00300200 41 80 00 08 */ blt lbl_803045A8 -/* 803045A4 00300204 83 BE 00 C0 */ lwz r29, 0xc0(r30) -lbl_803045A8: -/* 803045A8 00300208 3C 60 80 44 */ lis r3, lbl_8044655C@ha -/* 803045AC 0030020C 80 81 00 08 */ lwz r4, 8(r1) -/* 803045B0 00300210 38 63 65 5C */ addi r3, r3, lbl_8044655C@l -/* 803045B4 00300214 48 00 01 41 */ bl func_803046F4 -/* 803045B8 00300218 2C 1D 00 00 */ cmpwi r29, 0 -/* 803045BC 0030021C 41 80 00 08 */ blt lbl_803045C4 -/* 803045C0 00300220 7C 7D 1B 78 */ mr r29, r3 -lbl_803045C4: -/* 803045C4 00300224 38 7E 00 80 */ addi r3, r30, 0x80 -/* 803045C8 00300228 4B F6 B4 5D */ bl OSUnlockMutex -/* 803045CC 0030022C 7F A3 EB 78 */ mr r3, r29 -lbl_803045D0: -/* 803045D0 00300230 39 61 00 30 */ addi r11, r1, 0x30 -/* 803045D4 00300234 4B EC 2B A1 */ bl _restgpr_27 -/* 803045D8 00300238 80 01 00 34 */ lwz r0, 0x34(r1) -/* 803045DC 0030023C 7C 08 03 A6 */ mtlr r0 -/* 803045E0 00300240 38 21 00 30 */ addi r1, r1, 0x30 -/* 803045E4 00300244 4E 80 00 20 */ blr - -.global func_803045E8 -func_803045E8: -/* 803045E8 00300248 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803045EC 0030024C 7C 08 02 A6 */ mflr r0 -/* 803045F0 00300250 90 01 00 14 */ stw r0, 0x14(r1) -/* 803045F4 00300254 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803045F8 00300258 93 C1 00 08 */ stw r30, 8(r1) -/* 803045FC 0030025C 7C 7E 1B 78 */ mr r30, r3 -lbl_80304600: -/* 80304600 00300260 4B FE 63 ED */ bl SCCheckStatus -/* 80304604 00300264 28 03 00 02 */ cmplwi r3, 2 -/* 80304608 00300268 40 82 00 0C */ bne lbl_80304614 -/* 8030460C 0030026C 38 60 FF FF */ li r3, -1 -/* 80304610 00300270 48 00 00 34 */ b lbl_80304644 -lbl_80304614: -/* 80304614 00300274 2C 03 00 00 */ cmpwi r3, 0 -/* 80304618 00300278 40 82 FF E8 */ bne lbl_80304600 -/* 8030461C 0030027C 4B FE 7F A5 */ bl SCGetCounterBias -/* 80304620 00300280 7C 7F 1B 78 */ mr r31, r3 -/* 80304624 00300284 4B F6 E1 95 */ bl OSGetTime -/* 80304628 00300288 3C C0 80 00 */ lis r6, 0x800000F8@ha -/* 8030462C 0030028C 38 A0 00 00 */ li r5, 0 -/* 80304630 00300290 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6) -/* 80304634 00300294 54 06 F0 BE */ srwi r6, r0, 2 -/* 80304638 00300298 4B EC 2C 41 */ bl __div2i -/* 8030463C 0030029C 7F FF 20 10 */ subfc r31, r31, r4 -/* 80304640 003002A0 38 60 00 00 */ li r3, 0 -lbl_80304644: -/* 80304644 003002A4 2C 03 00 00 */ cmpwi r3, 0 -/* 80304648 003002A8 41 82 00 08 */ beq lbl_80304650 -/* 8030464C 003002AC 48 00 00 18 */ b lbl_80304664 -lbl_80304650: -/* 80304650 003002B0 7C 1E 00 D0 */ neg r0, r30 -/* 80304654 003002B4 7F E3 FB 78 */ mr r3, r31 -/* 80304658 003002B8 7C 00 F3 78 */ or r0, r0, r30 -/* 8030465C 003002BC 54 04 0F FE */ srwi r4, r0, 0x1f -/* 80304660 003002C0 4B FF FE 41 */ bl func_803044A0 -lbl_80304664: -/* 80304664 003002C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80304668 003002C8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8030466C 003002CC 83 C1 00 08 */ lwz r30, 8(r1) -/* 80304670 003002D0 7C 08 03 A6 */ mtlr r0 -/* 80304674 003002D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80304678 003002D8 4E 80 00 20 */ blr - -.global func_8030467C -func_8030467C: -/* 8030467C 003002DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80304680 003002E0 7C 08 02 A6 */ mflr r0 -/* 80304684 003002E4 2C 05 00 00 */ cmpwi r5, 0 -/* 80304688 003002E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8030468C 003002EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80304690 003002F0 7C BF 2B 78 */ mr r31, r5 -/* 80304694 003002F4 40 82 00 0C */ bne lbl_803046A0 -/* 80304698 003002F8 38 60 FF FD */ li r3, -3 -/* 8030469C 003002FC 48 00 00 44 */ b lbl_803046E0 -lbl_803046A0: -/* 803046A0 00300300 7C 83 23 78 */ mr r3, r4 -/* 803046A4 00300304 7C C4 33 78 */ mr r4, r6 -/* 803046A8 00300308 4B F9 EA B1 */ bl IOS_Open -/* 803046AC 0030030C 2C 03 00 00 */ cmpwi r3, 0 -/* 803046B0 00300310 90 7F 00 00 */ stw r3, 0(r31) -/* 803046B4 00300314 40 80 00 28 */ bge lbl_803046DC -/* 803046B8 00300318 2C 03 FF FA */ cmpwi r3, -6 -/* 803046BC 0030031C 40 82 00 0C */ bne lbl_803046C8 -/* 803046C0 00300320 38 60 FF E3 */ li r3, -29 -/* 803046C4 00300324 48 00 00 1C */ b lbl_803046E0 -lbl_803046C8: -/* 803046C8 00300328 2C 03 FF F8 */ cmpwi r3, -8 -/* 803046CC 0030032C 38 60 FF D6 */ li r3, -42 -/* 803046D0 00300330 40 82 00 10 */ bne lbl_803046E0 -/* 803046D4 00300334 38 60 FF E6 */ li r3, -26 -/* 803046D8 00300338 48 00 00 08 */ b lbl_803046E0 -lbl_803046DC: -/* 803046DC 0030033C 38 60 00 00 */ li r3, 0 -lbl_803046E0: -/* 803046E0 00300340 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803046E4 00300344 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 803046E8 00300348 7C 08 03 A6 */ mtlr r0 -/* 803046EC 0030034C 38 21 00 10 */ addi r1, r1, 0x10 -/* 803046F0 00300350 4E 80 00 20 */ blr - -.global func_803046F4 -func_803046F4: -/* 803046F4 00300354 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803046F8 00300358 7C 08 02 A6 */ mflr r0 -/* 803046FC 0030035C 7C 83 23 78 */ mr r3, r4 -/* 80304700 00300360 90 01 00 14 */ stw r0, 0x14(r1) -/* 80304704 00300364 4B F9 EC 35 */ bl IOS_Close -/* 80304708 00300368 2C 03 00 00 */ cmpwi r3, 0 -/* 8030470C 0030036C 38 60 00 00 */ li r3, 0 -/* 80304710 00300370 40 80 00 08 */ bge lbl_80304718 -/* 80304714 00300374 38 60 FF D6 */ li r3, -42 -lbl_80304718: -/* 80304718 00300378 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8030471C 0030037C 7C 08 03 A6 */ mtlr r0 -/* 80304720 00300380 38 21 00 10 */ addi r1, r1, 0x10 -/* 80304724 00300384 4E 80 00 20 */ blr - -.global func_80304728 -func_80304728: -/* 80304728 00300388 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8030472C 0030038C 7C 08 02 A6 */ mflr r0 -/* 80304730 00300390 7C 83 23 78 */ mr r3, r4 -/* 80304734 00300394 7C A4 2B 78 */ mr r4, r5 -/* 80304738 00300398 90 01 00 14 */ stw r0, 0x14(r1) -/* 8030473C 0030039C 7C C5 33 78 */ mr r5, r6 -/* 80304740 003003A0 7C E6 3B 78 */ mr r6, r7 -/* 80304744 003003A4 7D 07 43 78 */ mr r7, r8 -/* 80304748 003003A8 7D 28 4B 78 */ mr r8, r9 -/* 8030474C 003003AC 4B F9 F3 A5 */ bl IOS_Ioctl -/* 80304750 003003B0 2C 03 00 00 */ cmpwi r3, 0 -/* 80304754 003003B4 38 60 00 00 */ li r3, 0 -/* 80304758 003003B8 40 80 00 08 */ bge lbl_80304760 -/* 8030475C 003003BC 38 60 FF D6 */ li r3, -42 -lbl_80304760: -/* 80304760 003003C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80304764 003003C4 7C 08 03 A6 */ mtlr r0 -/* 80304768 003003C8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8030476C 003003CC 4E 80 00 20 */ blr - -.global func_80304770 -func_80304770: -/* 80304770 003003D0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80304774 003003D4 7C 08 02 A6 */ mflr r0 -/* 80304778 003003D8 7C 83 23 78 */ mr r3, r4 -/* 8030477C 003003DC 7C A4 2B 78 */ mr r4, r5 -/* 80304780 003003E0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80304784 003003E4 3D 60 80 30 */ lis r11, lbl_803047D4@ha -/* 80304788 003003E8 7C C5 33 78 */ mr r5, r6 -/* 8030478C 003003EC 7C E6 3B 78 */ mr r6, r7 -/* 80304790 003003F0 7D 07 43 78 */ mr r7, r8 -/* 80304794 003003F4 7D 28 4B 78 */ mr r8, r9 -/* 80304798 003003F8 39 2B 47 D4 */ addi r9, r11, lbl_803047D4@l -/* 8030479C 003003FC 4B F9 F2 1D */ bl IOS_IoctlAsync -/* 803047A0 00300400 2C 03 00 00 */ cmpwi r3, 0 -/* 803047A4 00300404 40 80 00 0C */ bge lbl_803047B0 -/* 803047A8 00300408 38 60 FF D6 */ li r3, -42 -/* 803047AC 0030040C 48 00 00 10 */ b lbl_803047BC -lbl_803047B0: -/* 803047B0 00300410 38 00 00 01 */ li r0, 1 -/* 803047B4 00300414 38 60 00 00 */ li r3, 0 -/* 803047B8 00300418 90 0D AF C8 */ stw r0, lbl_80640288-_SDA_BASE_(r13) -lbl_803047BC: -/* 803047BC 0030041C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803047C0 00300420 7C 08 03 A6 */ mtlr r0 -/* 803047C4 00300424 38 21 00 10 */ addi r1, r1, 0x10 -/* 803047C8 00300428 4E 80 00 20 */ blr - -.global func_803047CC -func_803047CC: -/* 803047CC 0030042C 80 6D AF C8 */ lwz r3, lbl_80640288-_SDA_BASE_(r13) -/* 803047D0 00300430 4E 80 00 20 */ blr -lbl_803047D4: -/* 803047D4 00300434 2C 04 00 00 */ cmpwi r4, 0 -/* 803047D8 00300438 41 82 00 08 */ beq lbl_803047E0 -/* 803047DC 0030043C 90 64 00 00 */ stw r3, 0(r4) -lbl_803047E0: -/* 803047E0 00300440 38 00 00 00 */ li r0, 0 -/* 803047E4 00300444 38 60 00 00 */ li r3, 0 -/* 803047E8 00300448 90 0D AF C8 */ stw r0, lbl_80640288-_SDA_BASE_(r13) -/* 803047EC 0030044C 4E 80 00 20 */ blr - -.global func_803047F0 -func_803047F0: -/* 803047F0 00300450 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803047F4 00300454 7C 08 02 A6 */ mflr r0 -/* 803047F8 00300458 90 01 00 14 */ stw r0, 0x14(r1) -/* 803047FC 0030045C 48 00 02 B1 */ bl func_80304AAC -/* 80304800 00300460 2C 03 00 00 */ cmpwi r3, 0 -/* 80304804 00300464 41 80 00 28 */ blt lbl_8030482C -/* 80304808 00300468 38 60 00 00 */ li r3, 0 -/* 8030480C 0030046C 4B FF FD DD */ bl func_803045E8 -/* 80304810 00300470 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304814 00300474 38 80 00 00 */ li r4, 0 -/* 80304818 00300478 38 63 30 00 */ addi r3, r3, 0x3000 -/* 8030481C 0030047C 48 00 00 29 */ bl func_80304844 -/* 80304820 00300480 2C 03 00 00 */ cmpwi r3, 0 -/* 80304824 00300484 41 80 00 08 */ blt lbl_8030482C -/* 80304828 00300488 38 60 00 00 */ li r3, 0 -lbl_8030482C: -/* 8030482C 0030048C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80304830 00300490 7C 08 03 A6 */ mtlr r0 -/* 80304834 00300494 38 21 00 10 */ addi r1, r1, 0x10 -/* 80304838 00300498 4E 80 00 20 */ blr - -.global func_8030483C -func_8030483C: -/* 8030483C 0030049C 38 60 00 00 */ li r3, 0 -/* 80304840 003004A0 4E 80 00 20 */ blr - -.global func_80304844 -func_80304844: -/* 80304844 003004A4 94 21 FD 40 */ stwu r1, -0x2c0(r1) -/* 80304848 003004A8 7C 08 02 A6 */ mflr r0 -/* 8030484C 003004AC 90 01 02 C4 */ stw r0, 0x2c4(r1) -/* 80304850 003004B0 39 61 02 C0 */ addi r11, r1, 0x2c0 -/* 80304854 003004B4 4B EC 28 D1 */ bl _savegpr_26 -/* 80304858 003004B8 3B E1 00 A8 */ addi r31, r1, 0xa8 -/* 8030485C 003004BC 7C 7C 1B 78 */ mr r28, r3 -/* 80304860 003004C0 7C 9D 23 78 */ mr r29, r4 -/* 80304864 003004C4 3B C0 00 00 */ li r30, 0 -/* 80304868 003004C8 3F 60 00 01 */ lis r27, 1 -/* 8030486C 003004CC 48 00 02 14 */ b lbl_80304A80 -lbl_80304870: -/* 80304870 003004D0 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304874 003004D4 57 C0 04 3E */ clrlwi r0, r30, 0x10 -/* 80304878 003004D8 A0 C3 30 10 */ lhz r6, 0x3010(r3) -/* 8030487C 003004DC 38 A3 30 00 */ addi r5, r3, 0x3000 -/* 80304880 003004E0 7C 00 30 40 */ cmplw r0, r6 -/* 80304884 003004E4 40 80 00 0C */ bge lbl_80304890 -/* 80304888 003004E8 28 00 FF FF */ cmplwi r0, 0xffff -/* 8030488C 003004EC 40 82 00 0C */ bne lbl_80304898 -lbl_80304890: -/* 80304890 003004F0 38 80 FF FD */ li r4, -3 -/* 80304894 003004F4 48 00 00 20 */ b lbl_803048B4 -lbl_80304898: -/* 80304898 003004F8 57 C0 23 36 */ rlwinm r0, r30, 4, 0xc, 0x1b -/* 8030489C 003004FC 38 80 00 00 */ li r4, 0 -/* 803048A0 00300500 7C 65 02 14 */ add r3, r5, r0 -/* 803048A4 00300504 80 03 00 80 */ lwz r0, 0x80(r3) -/* 803048A8 00300508 2C 00 00 00 */ cmpwi r0, 0 -/* 803048AC 0030050C 40 82 00 08 */ bne lbl_803048B4 -/* 803048B0 00300510 38 80 FF F3 */ li r4, -13 -lbl_803048B4: -/* 803048B4 00300514 2C 04 00 00 */ cmpwi r4, 0 -/* 803048B8 00300518 40 82 01 C4 */ bne lbl_80304A7C -/* 803048BC 0030051C 2C 1D 00 00 */ cmpwi r29, 0 -/* 803048C0 00300520 41 82 01 BC */ beq lbl_80304A7C -/* 803048C4 00300524 57 C0 04 3E */ clrlwi r0, r30, 0x10 -/* 803048C8 00300528 7C 00 30 40 */ cmplw r0, r6 -/* 803048CC 0030052C 40 80 00 0C */ bge lbl_803048D8 -/* 803048D0 00300530 28 00 FF FF */ cmplwi r0, 0xffff -/* 803048D4 00300534 40 82 00 0C */ bne lbl_803048E0 -lbl_803048D8: -/* 803048D8 00300538 38 60 FF FD */ li r3, -3 -/* 803048DC 0030053C 48 00 00 20 */ b lbl_803048FC -lbl_803048E0: -/* 803048E0 00300540 57 C0 23 36 */ rlwinm r0, r30, 4, 0xc, 0x1b -/* 803048E4 00300544 38 60 00 00 */ li r3, 0 -/* 803048E8 00300548 7C 85 02 14 */ add r4, r5, r0 -/* 803048EC 0030054C 80 04 00 80 */ lwz r0, 0x80(r4) -/* 803048F0 00300550 2C 00 00 00 */ cmpwi r0, 0 -/* 803048F4 00300554 40 82 00 08 */ bne lbl_803048FC -/* 803048F8 00300558 38 60 FF F3 */ li r3, -13 -lbl_803048FC: -/* 803048FC 0030055C 2C 03 00 00 */ cmpwi r3, 0 -/* 80304900 00300560 40 80 00 08 */ bge lbl_80304908 -/* 80304904 00300564 48 00 00 78 */ b lbl_8030497C -lbl_80304908: -/* 80304908 00300568 80 8D 8C C0 */ lwz r4, lbl_8063DF80-_SDA_BASE_(r13) -/* 8030490C 0030056C 38 61 00 08 */ addi r3, r1, 8 -/* 80304910 00300570 38 A0 00 0A */ li r5, 0xa -/* 80304914 00300574 4B FF D2 35 */ bl NWC24FOpen -/* 80304918 00300578 2C 03 00 00 */ cmpwi r3, 0 -/* 8030491C 0030057C 40 80 00 08 */ bge lbl_80304924 -/* 80304920 00300580 48 00 00 5C */ b lbl_8030497C -lbl_80304924: -/* 80304924 00300584 57 C4 49 EC */ rlwinm r4, r30, 9, 7, 0x16 -/* 80304928 00300588 38 61 00 08 */ addi r3, r1, 8 -/* 8030492C 0030058C 38 84 08 00 */ addi r4, r4, 0x800 -/* 80304930 00300590 38 A0 00 00 */ li r5, 0 -/* 80304934 00300594 4B FF D6 F9 */ bl NWC24FSeek -/* 80304938 00300598 2C 03 00 00 */ cmpwi r3, 0 -/* 8030493C 0030059C 40 80 00 0C */ bge lbl_80304948 -/* 80304940 003005A0 7C 7A 1B 78 */ mr r26, r3 -/* 80304944 003005A4 48 00 00 24 */ b lbl_80304968 -lbl_80304948: -/* 80304948 003005A8 7F E3 FB 78 */ mr r3, r31 -/* 8030494C 003005AC 38 A1 00 08 */ addi r5, r1, 8 -/* 80304950 003005B0 38 80 02 00 */ li r4, 0x200 -/* 80304954 003005B4 4B FF D8 C5 */ bl NWC24FRead -/* 80304958 003005B8 2C 03 00 00 */ cmpwi r3, 0 -/* 8030495C 003005BC 3B 40 00 00 */ li r26, 0 -/* 80304960 003005C0 40 80 00 08 */ bge lbl_80304968 -/* 80304964 003005C4 7C 7A 1B 78 */ mr r26, r3 -lbl_80304968: -/* 80304968 003005C8 38 61 00 08 */ addi r3, r1, 8 -/* 8030496C 003005CC 4B FF D5 2D */ bl NWC24FClose -/* 80304970 003005D0 2C 1A 00 00 */ cmpwi r26, 0 -/* 80304974 003005D4 41 82 00 08 */ beq lbl_8030497C -/* 80304978 003005D8 7F 43 D3 78 */ mr r3, r26 -lbl_8030497C: -/* 8030497C 003005DC 2C 03 00 00 */ cmpwi r3, 0 -/* 80304980 003005E0 40 80 00 74 */ bge lbl_803049F4 -/* 80304984 003005E4 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304988 003005E8 2C 1F 00 00 */ cmpwi r31, 0 -/* 8030498C 003005EC 38 63 30 00 */ addi r3, r3, 0x3000 -/* 80304990 003005F0 40 82 00 0C */ bne lbl_8030499C -/* 80304994 003005F4 38 00 FF FD */ li r0, -3 -/* 80304998 003005F8 48 00 00 38 */ b lbl_803049D0 -lbl_8030499C: -/* 8030499C 003005FC 2C 03 00 00 */ cmpwi r3, 0 -/* 803049A0 00300600 40 82 00 0C */ bne lbl_803049AC -/* 803049A4 00300604 38 00 FF F7 */ li r0, -9 -/* 803049A8 00300608 48 00 00 28 */ b lbl_803049D0 -lbl_803049AC: -/* 803049AC 0030060C A0 81 00 A8 */ lhz r4, 0xa8(r1) -/* 803049B0 00300610 28 04 FF FF */ cmplwi r4, 0xffff -/* 803049B4 00300614 41 82 00 18 */ beq lbl_803049CC -/* 803049B8 00300618 A0 03 00 10 */ lhz r0, 0x10(r3) -/* 803049BC 0030061C 7C 04 00 40 */ cmplw r4, r0 -/* 803049C0 00300620 41 80 00 0C */ blt lbl_803049CC -/* 803049C4 00300624 38 00 FF FD */ li r0, -3 -/* 803049C8 00300628 48 00 00 08 */ b lbl_803049D0 -lbl_803049CC: -/* 803049CC 0030062C 38 00 00 00 */ li r0, 0 -lbl_803049D0: -/* 803049D0 00300630 2C 00 00 00 */ cmpwi r0, 0 -/* 803049D4 00300634 40 82 00 A8 */ bne lbl_80304A7C -/* 803049D8 00300638 7F E3 FB 78 */ mr r3, r31 -/* 803049DC 0030063C 48 00 01 C1 */ bl func_80304B9C -/* 803049E0 00300640 2C 03 00 00 */ cmpwi r3, 0 -/* 803049E4 00300644 41 80 00 98 */ blt lbl_80304A7C -/* 803049E8 00300648 38 1B FF FF */ addi r0, r27, -1 -/* 803049EC 0030064C B0 01 00 A8 */ sth r0, 0xa8(r1) -/* 803049F0 00300650 48 00 00 8C */ b lbl_80304A7C -lbl_803049F4: -/* 803049F4 00300654 80 8D AF 90 */ lwz r4, lbl_80640250-_SDA_BASE_(r13) -/* 803049F8 00300658 57 C3 04 3E */ clrlwi r3, r30, 0x10 -/* 803049FC 0030065C 38 84 30 00 */ addi r4, r4, 0x3000 -/* 80304A00 00300660 A0 04 00 12 */ lhz r0, 0x12(r4) -/* 80304A04 00300664 7C 03 00 40 */ cmplw r3, r0 -/* 80304A08 00300668 41 80 00 74 */ blt lbl_80304A7C -/* 80304A0C 0030066C A8 01 00 C0 */ lha r0, 0xc0(r1) -/* 80304A10 00300670 2C 00 00 00 */ cmpwi r0, 0 -/* 80304A14 00300674 40 82 00 68 */ bne lbl_80304A7C -/* 80304A18 00300678 2C 1F 00 00 */ cmpwi r31, 0 -/* 80304A1C 0030067C 40 82 00 0C */ bne lbl_80304A28 -/* 80304A20 00300680 38 00 FF FD */ li r0, -3 -/* 80304A24 00300684 48 00 00 38 */ b lbl_80304A5C -lbl_80304A28: -/* 80304A28 00300688 2C 04 00 00 */ cmpwi r4, 0 -/* 80304A2C 0030068C 40 82 00 0C */ bne lbl_80304A38 -/* 80304A30 00300690 38 00 FF F7 */ li r0, -9 -/* 80304A34 00300694 48 00 00 28 */ b lbl_80304A5C -lbl_80304A38: -/* 80304A38 00300698 A0 61 00 A8 */ lhz r3, 0xa8(r1) -/* 80304A3C 0030069C 28 03 FF FF */ cmplwi r3, 0xffff -/* 80304A40 003006A0 41 82 00 18 */ beq lbl_80304A58 -/* 80304A44 003006A4 A0 04 00 10 */ lhz r0, 0x10(r4) -/* 80304A48 003006A8 7C 03 00 40 */ cmplw r3, r0 -/* 80304A4C 003006AC 41 80 00 0C */ blt lbl_80304A58 -/* 80304A50 003006B0 38 00 FF FD */ li r0, -3 -/* 80304A54 003006B4 48 00 00 08 */ b lbl_80304A5C -lbl_80304A58: -/* 80304A58 003006B8 38 00 00 00 */ li r0, 0 -lbl_80304A5C: -/* 80304A5C 003006BC 2C 00 00 00 */ cmpwi r0, 0 -/* 80304A60 003006C0 40 82 00 1C */ bne lbl_80304A7C -/* 80304A64 003006C4 7F E3 FB 78 */ mr r3, r31 -/* 80304A68 003006C8 48 00 01 35 */ bl func_80304B9C -/* 80304A6C 003006CC 2C 03 00 00 */ cmpwi r3, 0 -/* 80304A70 003006D0 41 80 00 0C */ blt lbl_80304A7C -/* 80304A74 003006D4 38 1B FF FF */ addi r0, r27, -1 -/* 80304A78 003006D8 B0 01 00 A8 */ sth r0, 0xa8(r1) -lbl_80304A7C: -/* 80304A7C 003006DC 3B DE 00 01 */ addi r30, r30, 1 -lbl_80304A80: -/* 80304A80 003006E0 A0 1C 00 10 */ lhz r0, 0x10(r28) -/* 80304A84 003006E4 57 C3 04 3E */ clrlwi r3, r30, 0x10 -/* 80304A88 003006E8 7C 03 00 40 */ cmplw r3, r0 -/* 80304A8C 003006EC 41 80 FD E4 */ blt lbl_80304870 -/* 80304A90 003006F0 39 61 02 C0 */ addi r11, r1, 0x2c0 -/* 80304A94 003006F4 38 60 00 00 */ li r3, 0 -/* 80304A98 003006F8 4B EC 26 D9 */ bl _restgpr_26 -/* 80304A9C 003006FC 80 01 02 C4 */ lwz r0, 0x2c4(r1) -/* 80304AA0 00300700 7C 08 03 A6 */ mtlr r0 -/* 80304AA4 00300704 38 21 02 C0 */ addi r1, r1, 0x2c0 -/* 80304AA8 00300708 4E 80 00 20 */ blr - -.global func_80304AAC -func_80304AAC: -/* 80304AAC 0030070C 94 21 FF 50 */ stwu r1, -0xb0(r1) -/* 80304AB0 00300710 7C 08 02 A6 */ mflr r0 -/* 80304AB4 00300714 38 A0 00 02 */ li r5, 2 -/* 80304AB8 00300718 90 01 00 B4 */ stw r0, 0xb4(r1) -/* 80304ABC 0030071C 38 61 00 0C */ addi r3, r1, 0xc -/* 80304AC0 00300720 93 E1 00 AC */ stw r31, 0xac(r1) -/* 80304AC4 00300724 3B E0 00 00 */ li r31, 0 -/* 80304AC8 00300728 80 8D 8C C0 */ lwz r4, lbl_8063DF80-_SDA_BASE_(r13) -/* 80304ACC 0030072C 93 E1 00 08 */ stw r31, 8(r1) -/* 80304AD0 00300730 4B FF D0 79 */ bl NWC24FOpen -/* 80304AD4 00300734 2C 03 00 00 */ cmpwi r3, 0 -/* 80304AD8 00300738 40 80 00 08 */ bge lbl_80304AE0 -/* 80304ADC 0030073C 48 00 00 AC */ b lbl_80304B88 -lbl_80304AE0: -/* 80304AE0 00300740 38 61 00 0C */ addi r3, r1, 0xc -/* 80304AE4 00300744 38 80 00 00 */ li r4, 0 -/* 80304AE8 00300748 38 A0 00 00 */ li r5, 0 -/* 80304AEC 0030074C 4B FF D5 41 */ bl NWC24FSeek -/* 80304AF0 00300750 2C 03 00 00 */ cmpwi r3, 0 -/* 80304AF4 00300754 40 80 00 08 */ bge lbl_80304AFC -/* 80304AF8 00300758 48 00 00 28 */ b lbl_80304B20 -lbl_80304AFC: -/* 80304AFC 0030075C 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304B00 00300760 38 A1 00 0C */ addi r5, r1, 0xc -/* 80304B04 00300764 38 80 08 00 */ li r4, 0x800 -/* 80304B08 00300768 38 63 30 00 */ addi r3, r3, 0x3000 -/* 80304B0C 0030076C 4B FF D7 0D */ bl NWC24FRead -/* 80304B10 00300770 2C 03 00 00 */ cmpwi r3, 0 -/* 80304B14 00300774 40 80 00 08 */ bge lbl_80304B1C -/* 80304B18 00300778 7C 7F 1B 78 */ mr r31, r3 -lbl_80304B1C: -/* 80304B1C 0030077C 7F E3 FB 78 */ mr r3, r31 -lbl_80304B20: -/* 80304B20 00300780 2C 03 00 00 */ cmpwi r3, 0 -/* 80304B24 00300784 40 80 00 08 */ bge lbl_80304B2C -/* 80304B28 00300788 48 00 00 60 */ b lbl_80304B88 -lbl_80304B2C: -/* 80304B2C 0030078C 38 61 00 0C */ addi r3, r1, 0xc -/* 80304B30 00300790 38 81 00 08 */ addi r4, r1, 8 -/* 80304B34 00300794 4B FF DA 85 */ bl NWC24FGetLength -/* 80304B38 00300798 2C 03 00 00 */ cmpwi r3, 0 -/* 80304B3C 0030079C 7C 7F 1B 78 */ mr r31, r3 -/* 80304B40 003007A0 41 80 00 34 */ blt lbl_80304B74 -/* 80304B44 003007A4 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304B48 003007A8 A0 83 30 10 */ lhz r4, 0x3010(r3) -/* 80304B4C 003007AC 28 04 00 01 */ cmplwi r4, 1 -/* 80304B50 003007B0 41 80 00 18 */ blt lbl_80304B68 -/* 80304B54 003007B4 A0 03 30 12 */ lhz r0, 0x3012(r3) -/* 80304B58 003007B8 28 00 00 01 */ cmplwi r0, 1 -/* 80304B5C 003007BC 41 80 00 0C */ blt lbl_80304B68 -/* 80304B60 003007C0 7C 04 00 40 */ cmplw r4, r0 -/* 80304B64 003007C4 40 80 00 0C */ bge lbl_80304B70 -lbl_80304B68: -/* 80304B68 003007C8 3B E0 FF F2 */ li r31, -14 -/* 80304B6C 003007CC 48 00 00 08 */ b lbl_80304B74 -lbl_80304B70: -/* 80304B70 003007D0 3B E0 00 00 */ li r31, 0 -lbl_80304B74: -/* 80304B74 003007D4 38 61 00 0C */ addi r3, r1, 0xc -/* 80304B78 003007D8 4B FF D3 21 */ bl NWC24FClose -/* 80304B7C 003007DC 2C 1F 00 00 */ cmpwi r31, 0 -/* 80304B80 003007E0 41 82 00 08 */ beq lbl_80304B88 -/* 80304B84 003007E4 7F E3 FB 78 */ mr r3, r31 -lbl_80304B88: -/* 80304B88 003007E8 80 01 00 B4 */ lwz r0, 0xb4(r1) -/* 80304B8C 003007EC 83 E1 00 AC */ lwz r31, 0xac(r1) -/* 80304B90 003007F0 7C 08 03 A6 */ mtlr r0 -/* 80304B94 003007F4 38 21 00 B0 */ addi r1, r1, 0xb0 -/* 80304B98 003007F8 4E 80 00 20 */ blr - -.global func_80304B9C -func_80304B9C: -/* 80304B9C 003007FC 94 21 FF 40 */ stwu r1, -0xc0(r1) -/* 80304BA0 00300800 7C 08 02 A6 */ mflr r0 -/* 80304BA4 00300804 38 A0 00 04 */ li r5, 4 -/* 80304BA8 00300808 90 01 00 C4 */ stw r0, 0xc4(r1) -/* 80304BAC 0030080C 93 E1 00 BC */ stw r31, 0xbc(r1) -/* 80304BB0 00300810 93 C1 00 B8 */ stw r30, 0xb8(r1) -/* 80304BB4 00300814 93 A1 00 B4 */ stw r29, 0xb4(r1) -/* 80304BB8 00300818 7C 7D 1B 78 */ mr r29, r3 -/* 80304BBC 0030081C 38 61 00 08 */ addi r3, r1, 8 -/* 80304BC0 00300820 80 8D 8C C0 */ lwz r4, lbl_8063DF80-_SDA_BASE_(r13) -/* 80304BC4 00300824 4B FF CF 85 */ bl NWC24FOpen -/* 80304BC8 00300828 2C 03 00 00 */ cmpwi r3, 0 -/* 80304BCC 0030082C 40 80 00 08 */ bge lbl_80304BD4 -/* 80304BD0 00300830 48 00 01 30 */ b lbl_80304D00 -lbl_80304BD4: -/* 80304BD4 00300834 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304BD8 00300838 38 80 00 00 */ li r4, 0 -/* 80304BDC 0030083C A3 FD 00 00 */ lhz r31, 0(r29) -/* 80304BE0 00300840 38 A0 02 00 */ li r5, 0x200 -/* 80304BE4 00300844 3B C3 38 00 */ addi r30, r3, 0x3800 -/* 80304BE8 00300848 7F C3 F3 78 */ mr r3, r30 -/* 80304BEC 0030084C 4B CF F5 19 */ bl memset -/* 80304BF0 00300850 38 60 00 FF */ li r3, 0xff -/* 80304BF4 00300854 57 E0 23 36 */ rlwinm r0, r31, 4, 0xc, 0x1b -/* 80304BF8 00300858 98 7E 00 02 */ stb r3, 2(r30) -/* 80304BFC 0030085C 38 80 00 00 */ li r4, 0 -/* 80304C00 00300860 38 A0 00 10 */ li r5, 0x10 -/* 80304C04 00300864 B3 FE 00 00 */ sth r31, 0(r30) -/* 80304C08 00300868 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304C0C 0030086C 7C 63 02 14 */ add r3, r3, r0 -/* 80304C10 00300870 38 63 30 80 */ addi r3, r3, 0x3080 -/* 80304C14 00300874 4B CF F4 F1 */ bl memset -/* 80304C18 00300878 A0 1E 00 00 */ lhz r0, 0(r30) -/* 80304C1C 0030087C 38 61 00 08 */ addi r3, r1, 8 -/* 80304C20 00300880 38 A0 00 00 */ li r5, 0 -/* 80304C24 00300884 54 04 48 2C */ slwi r4, r0, 9 -/* 80304C28 00300888 38 84 08 00 */ addi r4, r4, 0x800 -/* 80304C2C 0030088C 4B FF D4 01 */ bl NWC24FSeek -/* 80304C30 00300890 2C 03 00 00 */ cmpwi r3, 0 -/* 80304C34 00300894 40 80 00 08 */ bge lbl_80304C3C -/* 80304C38 00300898 48 00 00 40 */ b lbl_80304C78 -lbl_80304C3C: -/* 80304C3C 0030089C 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304C40 003008A0 7F C4 F3 78 */ mr r4, r30 -/* 80304C44 003008A4 38 A0 02 00 */ li r5, 0x200 -/* 80304C48 003008A8 38 63 38 00 */ addi r3, r3, 0x3800 -/* 80304C4C 003008AC 4B CF F3 B5 */ bl memcpy -/* 80304C50 003008B0 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304C54 003008B4 38 A1 00 08 */ addi r5, r1, 8 -/* 80304C58 003008B8 38 80 02 00 */ li r4, 0x200 -/* 80304C5C 003008BC 38 63 38 00 */ addi r3, r3, 0x3800 -/* 80304C60 003008C0 4B FF D7 85 */ bl NWC24FWrite -/* 80304C64 003008C4 2C 03 00 00 */ cmpwi r3, 0 -/* 80304C68 003008C8 38 00 00 00 */ li r0, 0 -/* 80304C6C 003008CC 40 80 00 08 */ bge lbl_80304C74 -/* 80304C70 003008D0 7C 60 1B 78 */ mr r0, r3 -lbl_80304C74: -/* 80304C74 003008D4 7C 03 03 78 */ mr r3, r0 -lbl_80304C78: -/* 80304C78 003008D8 2C 03 00 00 */ cmpwi r3, 0 -/* 80304C7C 003008DC 7C 7E 1B 78 */ mr r30, r3 -/* 80304C80 003008E0 41 80 00 6C */ blt lbl_80304CEC -/* 80304C84 003008E4 A0 1D 00 00 */ lhz r0, 0(r29) -/* 80304C88 003008E8 38 80 00 00 */ li r4, 0 -/* 80304C8C 003008EC 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304C90 003008F0 38 A0 00 10 */ li r5, 0x10 -/* 80304C94 003008F4 54 00 20 36 */ slwi r0, r0, 4 -/* 80304C98 003008F8 7C 63 02 14 */ add r3, r3, r0 -/* 80304C9C 003008FC 38 63 30 80 */ addi r3, r3, 0x3080 -/* 80304CA0 00300900 4B CF F4 65 */ bl memset -/* 80304CA4 00300904 38 61 00 08 */ addi r3, r1, 8 -/* 80304CA8 00300908 38 80 00 00 */ li r4, 0 -/* 80304CAC 0030090C 38 A0 00 00 */ li r5, 0 -/* 80304CB0 00300910 4B FF D3 7D */ bl NWC24FSeek -/* 80304CB4 00300914 2C 03 00 00 */ cmpwi r3, 0 -/* 80304CB8 00300918 40 80 00 08 */ bge lbl_80304CC0 -/* 80304CBC 0030091C 48 00 00 2C */ b lbl_80304CE8 -lbl_80304CC0: -/* 80304CC0 00300920 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) -/* 80304CC4 00300924 38 A1 00 08 */ addi r5, r1, 8 -/* 80304CC8 00300928 38 80 08 00 */ li r4, 0x800 -/* 80304CCC 0030092C 38 63 30 00 */ addi r3, r3, 0x3000 -/* 80304CD0 00300930 4B FF D7 15 */ bl NWC24FWrite -/* 80304CD4 00300934 2C 03 00 00 */ cmpwi r3, 0 -/* 80304CD8 00300938 38 00 00 00 */ li r0, 0 -/* 80304CDC 0030093C 40 80 00 08 */ bge lbl_80304CE4 -/* 80304CE0 00300940 7C 60 1B 78 */ mr r0, r3 -lbl_80304CE4: -/* 80304CE4 00300944 7C 03 03 78 */ mr r3, r0 -lbl_80304CE8: -/* 80304CE8 00300948 7C 7E 1B 78 */ mr r30, r3 -lbl_80304CEC: -/* 80304CEC 0030094C 38 61 00 08 */ addi r3, r1, 8 -/* 80304CF0 00300950 4B FF D1 A9 */ bl NWC24FClose -/* 80304CF4 00300954 2C 1E 00 00 */ cmpwi r30, 0 -/* 80304CF8 00300958 41 82 00 08 */ beq lbl_80304D00 -/* 80304CFC 0030095C 7F C3 F3 78 */ mr r3, r30 -lbl_80304D00: -/* 80304D00 00300960 80 01 00 C4 */ lwz r0, 0xc4(r1) -/* 80304D04 00300964 83 E1 00 BC */ lwz r31, 0xbc(r1) -/* 80304D08 00300968 83 C1 00 B8 */ lwz r30, 0xb8(r1) -/* 80304D0C 0030096C 83 A1 00 B4 */ lwz r29, 0xb4(r1) -/* 80304D10 00300970 7C 08 03 A6 */ mtlr r0 -/* 80304D14 00300974 38 21 00 C0 */ addi r1, r1, 0xc0 -/* 80304D18 00300978 4E 80 00 20 */ blr - .global func_80304D1C func_80304D1C: /* 80304D1C 0030097C 94 21 FF E0 */ stwu r1, -0x20(r1) @@ -1648,7 +27,7 @@ func_80304D1C: /* 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 func_8030467C +/* 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 @@ -1682,7 +61,7 @@ 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 func_803047CC +/* 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 @@ -1718,7 +97,7 @@ lbl_80304E3C: /* 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 func_80304770 +/* 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 diff --git a/obj_files.mk b/obj_files.mk index 229d8ec..e4326db 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -356,6 +356,13 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/SDK/NWC24/NWC24Config.o \ $(BUILD_DIR)/asm/SDK/NWC24/NWC24Manage.o \ $(BUILD_DIR)/asm/SDK/NWC24/NWC24MBoxCtrl.o \ + $(BUILD_DIR)/asm/SDK/NWC24/NWC24Mime.o \ + $(BUILD_DIR)/asm/SDK/NWC24/NWC24Schedule.o \ + $(BUILD_DIR)/asm/SDK/NWC24/NWC24FriendList.o \ + $(BUILD_DIR)/asm/SDK/NWC24/NWC24SecretFList.o \ + $(BUILD_DIR)/asm/SDK/NWC24/NWC24Time.o \ + $(BUILD_DIR)/asm/SDK/NWC24/NWC24Ipc.o \ + $(BUILD_DIR)/asm/SDK/NWC24/NWC24Download.o \ $(BUILD_DIR)/asm/text_9_2.o \ $(BUILD_DIR)/asm/SDK/VF/pf_clib.o \ $(BUILD_DIR)/asm/SDK/VF/pf_code.o \ -- cgit v1.2.3