.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global NWC24iOpenMBox NWC24iOpenMBox: /* 803033AC 002FF00C 94 21 FE B0 */ stwu r1, -0x150(r1) /* 803033B0 002FF010 7C 08 02 A6 */ mflr r0 /* 803033B4 002FF014 38 80 00 00 */ li r4, 0 /* 803033B8 002FF018 38 A0 00 80 */ li r5, 0x80 /* 803033BC 002FF01C 90 01 01 54 */ stw r0, 0x154(r1) /* 803033C0 002FF020 93 E1 01 4C */ stw r31, 0x14c(r1) /* 803033C4 002FF024 93 C1 01 48 */ stw r30, 0x148(r1) /* 803033C8 002FF028 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) /* 803033CC 002FF02C 3B C3 08 00 */ addi r30, r3, 0x800 /* 803033D0 002FF030 38 63 11 00 */ addi r3, r3, 0x1100 /* 803033D4 002FF034 4B FF DC 41 */ bl Mail_memset /* 803033D8 002FF038 38 81 00 08 */ addi r4, r1, 8 /* 803033DC 002FF03C 38 60 00 00 */ li r3, 0 /* 803033E0 002FF040 48 00 01 61 */ bl GetCachedMBCHeader /* 803033E4 002FF044 2C 03 00 00 */ cmpwi r3, 0 /* 803033E8 002FF048 41 82 00 08 */ beq lbl_803033F0 /* 803033EC 002FF04C 48 00 01 3C */ b lbl_80303528 lbl_803033F0: /* 803033F0 002FF050 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) /* 803033F4 002FF054 38 80 00 00 */ li r4, 0 /* 803033F8 002FF058 38 A0 00 80 */ li r5, 0x80 /* 803033FC 002FF05C 38 63 11 80 */ addi r3, r3, 0x1180 /* 80303400 002FF060 4B FF DC 15 */ bl Mail_memset /* 80303404 002FF064 38 81 00 08 */ addi r4, r1, 8 /* 80303408 002FF068 38 60 00 01 */ li r3, 1 /* 8030340C 002FF06C 48 00 01 35 */ bl GetCachedMBCHeader /* 80303410 002FF070 2C 03 00 00 */ cmpwi r3, 0 /* 80303414 002FF074 41 82 00 08 */ beq lbl_8030341C /* 80303418 002FF078 48 00 01 10 */ b lbl_80303528 lbl_8030341C: /* 8030341C 002FF07C 4B FF FA DD */ bl NWC24GetMBoxDir /* 80303420 002FF080 7C 7F 1B 78 */ mr r31, r3 /* 80303424 002FF084 38 80 00 40 */ li r4, 0x40 /* 80303428 002FF088 4B FF DB BD */ bl STD_strnlen /* 8030342C 002FF08C 38 03 00 0E */ addi r0, r3, 0xe /* 80303430 002FF090 2C 00 01 00 */ cmpwi r0, 0x100 /* 80303434 002FF094 40 81 00 0C */ ble lbl_80303440 /* 80303438 002FF098 38 60 FF F5 */ li r3, -11 /* 8030343C 002FF09C 48 00 00 24 */ b lbl_80303460 lbl_80303440: /* 80303440 002FF0A0 3C C0 80 44 */ lis r6, lbl_804464A0@ha /* 80303444 002FF0A4 7F C3 F3 78 */ mr r3, r30 /* 80303448 002FF0A8 7F E5 FB 78 */ mr r5, r31 /* 8030344C 002FF0AC 38 8D 8C A8 */ addi r4, r13, lbl_8063DF68-_SDA_BASE_ /* 80303450 002FF0B0 38 C6 64 A0 */ addi r6, r6, lbl_804464A0@l /* 80303454 002FF0B4 4C C6 31 82 */ crclr 6 /* 80303458 002FF0B8 4B FF E1 A5 */ bl Mail_sprintf /* 8030345C 002FF0BC 38 60 00 00 */ li r3, 0 lbl_80303460: /* 80303460 002FF0C0 2C 03 00 00 */ cmpwi r3, 0 /* 80303464 002FF0C4 41 82 00 08 */ beq lbl_8030346C /* 80303468 002FF0C8 48 00 00 C0 */ b lbl_80303528 lbl_8030346C: /* 8030346C 002FF0CC 7F C4 F3 78 */ mr r4, r30 /* 80303470 002FF0D0 38 61 00 A8 */ addi r3, r1, 0xa8 /* 80303474 002FF0D4 38 A0 00 02 */ li r5, 2 /* 80303478 002FF0D8 4B FF E6 D1 */ bl NWC24FOpen /* 8030347C 002FF0DC 2C 03 00 00 */ cmpwi r3, 0 /* 80303480 002FF0E0 40 82 00 0C */ bne lbl_8030348C /* 80303484 002FF0E4 38 61 00 A8 */ addi r3, r1, 0xa8 /* 80303488 002FF0E8 4B FF EA 11 */ bl NWC24FClose lbl_8030348C: /* 8030348C 002FF0EC 2C 03 00 00 */ cmpwi r3, 0 /* 80303490 002FF0F0 41 82 00 08 */ beq lbl_80303498 /* 80303494 002FF0F4 48 00 00 94 */ b lbl_80303528 lbl_80303498: /* 80303498 002FF0F8 4B FF FA 61 */ bl NWC24GetMBoxDir /* 8030349C 002FF0FC 7C 7F 1B 78 */ mr r31, r3 /* 803034A0 002FF100 38 80 00 40 */ li r4, 0x40 /* 803034A4 002FF104 4B FF DB 41 */ bl STD_strnlen /* 803034A8 002FF108 38 03 00 0E */ addi r0, r3, 0xe /* 803034AC 002FF10C 2C 00 01 00 */ cmpwi r0, 0x100 /* 803034B0 002FF110 40 81 00 0C */ ble lbl_803034BC /* 803034B4 002FF114 38 60 FF F5 */ li r3, -11 /* 803034B8 002FF118 48 00 00 24 */ b lbl_803034DC lbl_803034BC: /* 803034BC 002FF11C 3C C0 80 44 */ lis r6, lbl_804464B0@ha /* 803034C0 002FF120 7F C3 F3 78 */ mr r3, r30 /* 803034C4 002FF124 7F E5 FB 78 */ mr r5, r31 /* 803034C8 002FF128 38 8D 8C A8 */ addi r4, r13, lbl_8063DF68-_SDA_BASE_ /* 803034CC 002FF12C 38 C6 64 B0 */ addi r6, r6, lbl_804464B0@l /* 803034D0 002FF130 4C C6 31 82 */ crclr 6 /* 803034D4 002FF134 4B FF E1 29 */ bl Mail_sprintf /* 803034D8 002FF138 38 60 00 00 */ li r3, 0 lbl_803034DC: /* 803034DC 002FF13C 2C 03 00 00 */ cmpwi r3, 0 /* 803034E0 002FF140 41 82 00 08 */ beq lbl_803034E8 /* 803034E4 002FF144 48 00 00 44 */ b lbl_80303528 lbl_803034E8: /* 803034E8 002FF148 7F C4 F3 78 */ mr r4, r30 /* 803034EC 002FF14C 38 61 00 0C */ addi r3, r1, 0xc /* 803034F0 002FF150 38 A0 00 02 */ li r5, 2 /* 803034F4 002FF154 4B FF E6 55 */ bl NWC24FOpen /* 803034F8 002FF158 2C 03 00 00 */ cmpwi r3, 0 /* 803034FC 002FF15C 40 82 00 0C */ bne lbl_80303508 /* 80303500 002FF160 38 61 00 0C */ addi r3, r1, 0xc /* 80303504 002FF164 4B FF E9 95 */ bl NWC24FClose lbl_80303508: /* 80303508 002FF168 2C 03 00 00 */ cmpwi r3, 0 /* 8030350C 002FF16C 41 82 00 08 */ beq lbl_80303514 /* 80303510 002FF170 48 00 00 18 */ b lbl_80303528 lbl_80303514: /* 80303514 002FF174 38 00 00 00 */ li r0, 0 /* 80303518 002FF178 38 8D AF A8 */ addi r4, r13, lbl_80640268-_SDA_BASE_ /* 8030351C 002FF17C 90 0D AF A8 */ stw r0, lbl_80640268-_SDA_BASE_(r13) /* 80303520 002FF180 38 60 00 00 */ li r3, 0 /* 80303524 002FF184 90 04 00 04 */ stw r0, 4(r4) lbl_80303528: /* 80303528 002FF188 80 01 01 54 */ lwz r0, 0x154(r1) /* 8030352C 002FF18C 83 E1 01 4C */ lwz r31, 0x14c(r1) /* 80303530 002FF190 83 C1 01 48 */ lwz r30, 0x148(r1) /* 80303534 002FF194 7C 08 03 A6 */ mtlr r0 /* 80303538 002FF198 38 21 01 50 */ addi r1, r1, 0x150 /* 8030353C 002FF19C 4E 80 00 20 */ blr .global GetCachedMBCHeader GetCachedMBCHeader: /* 80303540 002FF1A0 94 21 FF 40 */ stwu r1, -0xc0(r1) /* 80303544 002FF1A4 7C 08 02 A6 */ mflr r0 /* 80303548 002FF1A8 2C 03 00 00 */ cmpwi r3, 0 /* 8030354C 002FF1AC 90 01 00 C4 */ stw r0, 0xc4(r1) /* 80303550 002FF1B0 93 E1 00 BC */ stw r31, 0xbc(r1) /* 80303554 002FF1B4 3B E0 00 00 */ li r31, 0 /* 80303558 002FF1B8 93 C1 00 B8 */ stw r30, 0xb8(r1) /* 8030355C 002FF1BC 93 A1 00 B4 */ stw r29, 0xb4(r1) /* 80303560 002FF1C0 7C 9D 23 78 */ mr r29, r4 /* 80303564 002FF1C4 93 81 00 B0 */ stw r28, 0xb0(r1) /* 80303568 002FF1C8 7C 7C 1B 78 */ mr r28, r3 /* 8030356C 002FF1CC 40 82 00 14 */ bne lbl_80303580 /* 80303570 002FF1D0 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) /* 80303574 002FF1D4 38 03 11 00 */ addi r0, r3, 0x1100 /* 80303578 002FF1D8 90 04 00 00 */ stw r0, 0(r4) /* 8030357C 002FF1DC 48 00 00 2C */ b lbl_803035A8 lbl_80303580: /* 80303580 002FF1E0 2C 03 00 01 */ cmpwi r3, 1 /* 80303584 002FF1E4 40 82 00 14 */ bne lbl_80303598 /* 80303588 002FF1E8 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) /* 8030358C 002FF1EC 38 03 11 80 */ addi r0, r3, 0x1180 /* 80303590 002FF1F0 90 04 00 00 */ stw r0, 0(r4) /* 80303594 002FF1F4 48 00 00 14 */ b lbl_803035A8 lbl_80303598: /* 80303598 002FF1F8 38 00 00 00 */ li r0, 0 /* 8030359C 002FF1FC 38 60 FF FD */ li r3, -3 /* 803035A0 002FF200 90 04 00 00 */ stw r0, 0(r4) /* 803035A4 002FF204 48 00 01 50 */ b lbl_803036F4 lbl_803035A8: /* 803035A8 002FF208 80 64 00 00 */ lwz r3, 0(r4) /* 803035AC 002FF20C 80 63 00 00 */ lwz r3, 0(r3) /* 803035B0 002FF210 3C 03 A8 9D */ addis r0, r3, 0xa89d /* 803035B4 002FF214 28 00 54 66 */ cmplwi r0, 0x5466 /* 803035B8 002FF218 41 82 01 24 */ beq lbl_803036DC /* 803035BC 002FF21C 80 6D AF 90 */ lwz r3, lbl_80640250-_SDA_BASE_(r13) /* 803035C0 002FF220 3B C3 08 00 */ addi r30, r3, 0x800 /* 803035C4 002FF224 4B FF F9 35 */ bl NWC24GetMBoxDir /* 803035C8 002FF228 7C 7F 1B 78 */ mr r31, r3 /* 803035CC 002FF22C 38 80 00 40 */ li r4, 0x40 /* 803035D0 002FF230 4B FF DA 15 */ bl STD_strnlen /* 803035D4 002FF234 38 03 00 0E */ addi r0, r3, 0xe /* 803035D8 002FF238 2C 00 01 00 */ cmpwi r0, 0x100 /* 803035DC 002FF23C 40 81 00 0C */ ble lbl_803035E8 /* 803035E0 002FF240 38 60 FF F5 */ li r3, -11 /* 803035E4 002FF244 48 00 00 68 */ b lbl_8030364C lbl_803035E8: /* 803035E8 002FF248 2C 1C 00 01 */ cmpwi r28, 1 /* 803035EC 002FF24C 41 82 00 34 */ beq lbl_80303620 /* 803035F0 002FF250 40 80 00 50 */ bge lbl_80303640 /* 803035F4 002FF254 2C 1C 00 00 */ cmpwi r28, 0 /* 803035F8 002FF258 40 80 00 08 */ bge lbl_80303600 /* 803035FC 002FF25C 48 00 00 44 */ b lbl_80303640 lbl_80303600: /* 80303600 002FF260 3C C0 80 44 */ lis r6, lbl_80446480@ha /* 80303604 002FF264 7F C3 F3 78 */ mr r3, r30 /* 80303608 002FF268 7F E5 FB 78 */ mr r5, r31 /* 8030360C 002FF26C 38 8D 8C A8 */ addi r4, r13, lbl_8063DF68-_SDA_BASE_ /* 80303610 002FF270 38 C6 64 80 */ addi r6, r6, lbl_80446480@l /* 80303614 002FF274 4C C6 31 82 */ crclr 6 /* 80303618 002FF278 4B FF DF E5 */ bl Mail_sprintf /* 8030361C 002FF27C 48 00 00 2C */ b lbl_80303648 lbl_80303620: /* 80303620 002FF280 3C C0 80 44 */ lis r6, lbl_80446490@ha /* 80303624 002FF284 7F C3 F3 78 */ mr r3, r30 /* 80303628 002FF288 7F E5 FB 78 */ mr r5, r31 /* 8030362C 002FF28C 38 8D 8C A8 */ addi r4, r13, lbl_8063DF68-_SDA_BASE_ /* 80303630 002FF290 38 C6 64 90 */ addi r6, r6, lbl_80446490@l /* 80303634 002FF294 4C C6 31 82 */ crclr 6 /* 80303638 002FF298 4B FF DF C5 */ bl Mail_sprintf /* 8030363C 002FF29C 48 00 00 0C */ b lbl_80303648 lbl_80303640: /* 80303640 002FF2A0 38 60 FF FD */ li r3, -3 /* 80303644 002FF2A4 48 00 00 08 */ b lbl_8030364C lbl_80303648: /* 80303648 002FF2A8 38 60 00 00 */ li r3, 0 lbl_8030364C: /* 8030364C 002FF2AC 2C 03 00 00 */ cmpwi r3, 0 /* 80303650 002FF2B0 41 82 00 08 */ beq lbl_80303658 /* 80303654 002FF2B4 48 00 00 A0 */ b lbl_803036F4 lbl_80303658: /* 80303658 002FF2B8 7F C4 F3 78 */ mr r4, r30 /* 8030365C 002FF2BC 38 61 00 08 */ addi r3, r1, 8 /* 80303660 002FF2C0 38 A0 00 02 */ li r5, 2 /* 80303664 002FF2C4 4B FF E4 E5 */ bl NWC24FOpen /* 80303668 002FF2C8 2C 03 00 00 */ cmpwi r3, 0 /* 8030366C 002FF2CC 41 82 00 08 */ beq lbl_80303674 /* 80303670 002FF2D0 48 00 00 84 */ b lbl_803036F4 lbl_80303674: /* 80303674 002FF2D4 83 FD 00 00 */ lwz r31, 0(r29) /* 80303678 002FF2D8 38 61 00 08 */ addi r3, r1, 8 /* 8030367C 002FF2DC 38 80 00 00 */ li r4, 0 /* 80303680 002FF2E0 38 A0 00 00 */ li r5, 0 /* 80303684 002FF2E4 4B FF E9 A9 */ bl NWC24FSeek /* 80303688 002FF2E8 7F E3 FB 78 */ mr r3, r31 /* 8030368C 002FF2EC 38 A1 00 08 */ addi r5, r1, 8 /* 80303690 002FF2F0 38 80 00 80 */ li r4, 0x80 /* 80303694 002FF2F4 4B FF EB 85 */ bl NWC24FRead /* 80303698 002FF2F8 2C 03 00 00 */ cmpwi r3, 0 /* 8030369C 002FF2FC 41 82 00 0C */ beq lbl_803036A8 /* 803036A0 002FF300 7C 7F 1B 78 */ mr r31, r3 /* 803036A4 002FF304 48 00 00 1C */ b lbl_803036C0 lbl_803036A8: /* 803036A8 002FF308 80 7F 00 00 */ lwz r3, 0(r31) /* 803036AC 002FF30C 3B E0 00 00 */ li r31, 0 /* 803036B0 002FF310 3C 03 A8 9D */ addis r0, r3, 0xa89d /* 803036B4 002FF314 28 00 54 66 */ cmplwi r0, 0x5466 /* 803036B8 002FF318 41 82 00 08 */ beq lbl_803036C0 /* 803036BC 002FF31C 3B E0 FF F2 */ li r31, -14 lbl_803036C0: /* 803036C0 002FF320 38 61 00 08 */ addi r3, r1, 8 /* 803036C4 002FF324 4B FF E7 D5 */ bl NWC24FClose /* 803036C8 002FF328 2C 1F 00 00 */ cmpwi r31, 0 /* 803036CC 002FF32C 40 82 00 10 */ bne lbl_803036DC /* 803036D0 002FF330 2C 03 00 00 */ cmpwi r3, 0 /* 803036D4 002FF334 41 82 00 08 */ beq lbl_803036DC /* 803036D8 002FF338 7C 7F 1B 78 */ mr r31, r3 lbl_803036DC: /* 803036DC 002FF33C 80 7D 00 00 */ lwz r3, 0(r29) /* 803036E0 002FF340 80 03 00 04 */ lwz r0, 4(r3) /* 803036E4 002FF344 28 00 00 04 */ cmplwi r0, 4 /* 803036E8 002FF348 41 82 00 08 */ beq lbl_803036F0 /* 803036EC 002FF34C 3B E0 FF E5 */ li r31, -27 lbl_803036F0: /* 803036F0 002FF350 7F E3 FB 78 */ mr r3, r31 lbl_803036F4: /* 803036F4 002FF354 80 01 00 C4 */ lwz r0, 0xc4(r1) /* 803036F8 002FF358 83 E1 00 BC */ lwz r31, 0xbc(r1) /* 803036FC 002FF35C 83 C1 00 B8 */ lwz r30, 0xb8(r1) /* 80303700 002FF360 83 A1 00 B4 */ lwz r29, 0xb4(r1) /* 80303704 002FF364 83 81 00 B0 */ lwz r28, 0xb0(r1) /* 80303708 002FF368 7C 08 03 A6 */ mtlr r0 /* 8030370C 002FF36C 38 21 00 C0 */ addi r1, r1, 0xc0 /* 80303710 002FF370 4E 80 00 20 */ blr