.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global __OSWriteNandbootInfo __OSWriteNandbootInfo: /* 802741B4 0026FE14 94 21 FF 60 */ stwu r1, -0xa0(r1) /* 802741B8 0026FE18 7C 08 02 A6 */ mflr r0 /* 802741BC 0026FE1C 39 03 00 04 */ addi r8, r3, 4 /* 802741C0 0026FE20 38 E0 00 00 */ li r7, 0 /* 802741C4 0026FE24 90 01 00 A4 */ stw r0, 0xa4(r1) /* 802741C8 0026FE28 38 00 00 40 */ li r0, 0x40 /* 802741CC 0026FE2C 93 E1 00 9C */ stw r31, 0x9c(r1) /* 802741D0 0026FE30 7C 7F 1B 78 */ mr r31, r3 /* 802741D4 0026FE34 7C 09 03 A6 */ mtctr r0 lbl_802741D8: /* 802741D8 0026FE38 80 88 00 00 */ lwz r4, 0(r8) /* 802741DC 0026FE3C 80 08 00 04 */ lwz r0, 4(r8) /* 802741E0 0026FE40 7C E7 22 14 */ add r7, r7, r4 /* 802741E4 0026FE44 80 88 00 08 */ lwz r4, 8(r8) /* 802741E8 0026FE48 7C E7 02 14 */ add r7, r7, r0 /* 802741EC 0026FE4C 80 08 00 0C */ lwz r0, 0xc(r8) /* 802741F0 0026FE50 7C E7 22 14 */ add r7, r7, r4 /* 802741F4 0026FE54 80 88 00 10 */ lwz r4, 0x10(r8) /* 802741F8 0026FE58 7C E7 02 14 */ add r7, r7, r0 /* 802741FC 0026FE5C 80 08 00 14 */ lwz r0, 0x14(r8) /* 80274200 0026FE60 7C E7 22 14 */ add r7, r7, r4 /* 80274204 0026FE64 80 88 00 18 */ lwz r4, 0x18(r8) /* 80274208 0026FE68 7C E7 02 14 */ add r7, r7, r0 /* 8027420C 0026FE6C 80 08 00 1C */ lwz r0, 0x1c(r8) /* 80274210 0026FE70 7C E7 22 14 */ add r7, r7, r4 /* 80274214 0026FE74 80 88 00 20 */ lwz r4, 0x20(r8) /* 80274218 0026FE78 7C E7 02 14 */ add r7, r7, r0 /* 8027421C 0026FE7C 80 08 00 24 */ lwz r0, 0x24(r8) /* 80274220 0026FE80 7C E7 22 14 */ add r7, r7, r4 /* 80274224 0026FE84 80 88 00 28 */ lwz r4, 0x28(r8) /* 80274228 0026FE88 7C E7 02 14 */ add r7, r7, r0 /* 8027422C 0026FE8C 80 08 00 2C */ lwz r0, 0x2c(r8) /* 80274230 0026FE90 7C E7 22 14 */ add r7, r7, r4 /* 80274234 0026FE94 80 88 00 30 */ lwz r4, 0x30(r8) /* 80274238 0026FE98 7C E7 02 14 */ add r7, r7, r0 /* 8027423C 0026FE9C 80 08 00 34 */ lwz r0, 0x34(r8) /* 80274240 0026FEA0 7C E7 22 14 */ add r7, r7, r4 /* 80274244 0026FEA4 80 88 00 38 */ lwz r4, 0x38(r8) /* 80274248 0026FEA8 7C E7 02 14 */ add r7, r7, r0 /* 8027424C 0026FEAC 80 08 00 3C */ lwz r0, 0x3c(r8) /* 80274250 0026FEB0 7C E7 22 14 */ add r7, r7, r4 /* 80274254 0026FEB4 39 08 00 40 */ addi r8, r8, 0x40 /* 80274258 0026FEB8 7C E7 02 14 */ add r7, r7, r0 /* 8027425C 0026FEBC 42 00 FF 7C */ bdnz lbl_802741D8 /* 80274260 0026FEC0 80 08 00 00 */ lwz r0, 0(r8) /* 80274264 0026FEC4 3C C0 80 43 */ lis r6, lbl_80433F08@ha /* 80274268 0026FEC8 80 A8 00 04 */ lwz r5, 4(r8) /* 8027426C 0026FECC 38 81 00 08 */ addi r4, r1, 8 /* 80274270 0026FED0 7C E7 02 14 */ add r7, r7, r0 /* 80274274 0026FED4 80 08 00 08 */ lwz r0, 8(r8) /* 80274278 0026FED8 7C E7 2A 14 */ add r7, r7, r5 /* 8027427C 0026FEDC 80 A8 00 0C */ lwz r5, 0xc(r8) /* 80274280 0026FEE0 7C E7 02 14 */ add r7, r7, r0 /* 80274284 0026FEE4 80 08 00 10 */ lwz r0, 0x10(r8) /* 80274288 0026FEE8 7C E7 2A 14 */ add r7, r7, r5 /* 8027428C 0026FEEC 80 A8 00 14 */ lwz r5, 0x14(r8) /* 80274290 0026FEF0 7C E7 02 14 */ add r7, r7, r0 /* 80274294 0026FEF4 80 08 00 18 */ lwz r0, 0x18(r8) /* 80274298 0026FEF8 7C E7 2A 14 */ add r7, r7, r5 /* 8027429C 0026FEFC 38 A0 00 02 */ li r5, 2 /* 802742A0 0026FF00 7C E7 02 14 */ add r7, r7, r0 /* 802742A4 0026FF04 90 E3 00 00 */ stw r7, 0(r3) /* 802742A8 0026FF08 38 66 3F 08 */ addi r3, r6, lbl_80433F08@l /* 802742AC 0026FF0C 48 07 41 E9 */ bl NANDPrivateOpen /* 802742B0 0026FF10 2C 03 00 00 */ cmpwi r3, 0 /* 802742B4 0026FF14 40 82 00 40 */ bne lbl_802742F4 /* 802742B8 0026FF18 7F E4 FB 78 */ mr r4, r31 /* 802742BC 0026FF1C 38 61 00 08 */ addi r3, r1, 8 /* 802742C0 0026FF20 38 A0 10 20 */ li r5, 0x1020 /* 802742C4 0026FF24 48 07 36 DD */ bl NANDWrite /* 802742C8 0026FF28 28 03 10 20 */ cmplwi r3, 0x1020 /* 802742CC 0026FF2C 41 82 00 14 */ beq lbl_802742E0 /* 802742D0 0026FF30 38 61 00 08 */ addi r3, r1, 8 /* 802742D4 0026FF34 48 07 43 B5 */ bl NANDClose /* 802742D8 0026FF38 38 60 00 00 */ li r3, 0 /* 802742DC 0026FF3C 48 00 00 1C */ b lbl_802742F8 lbl_802742E0: /* 802742E0 0026FF40 38 61 00 08 */ addi r3, r1, 8 /* 802742E4 0026FF44 48 07 43 A5 */ bl NANDClose /* 802742E8 0026FF48 7C 60 00 34 */ cntlzw r0, r3 /* 802742EC 0026FF4C 54 03 D9 7E */ srwi r3, r0, 5 /* 802742F0 0026FF50 48 00 00 08 */ b lbl_802742F8 lbl_802742F4: /* 802742F4 0026FF54 38 60 00 00 */ li r3, 0 lbl_802742F8: /* 802742F8 0026FF58 80 01 00 A4 */ lwz r0, 0xa4(r1) /* 802742FC 0026FF5C 83 E1 00 9C */ lwz r31, 0x9c(r1) /* 80274300 0026FF60 7C 08 03 A6 */ mtlr r0 /* 80274304 0026FF64 38 21 00 A0 */ addi r1, r1, 0xa0 /* 80274308 0026FF68 4E 80 00 20 */ blr # Still unsure of label for this function # (not mentioned in BBA map and not found in Brawl) .global func_8027430C func_8027430C: /* 8027430C 0026FF6C 94 21 FF 60 */ stwu r1, -0xa0(r1) /* 80274310 0026FF70 7C 08 02 A6 */ mflr r0 /* 80274314 0026FF74 3C 80 80 43 */ lis r4, lbl_80433F08@ha /* 80274318 0026FF78 38 A0 00 01 */ li r5, 1 /* 8027431C 0026FF7C 90 01 00 A4 */ stw r0, 0xa4(r1) /* 80274320 0026FF80 93 E1 00 9C */ stw r31, 0x9c(r1) /* 80274324 0026FF84 7C 7F 1B 78 */ mr r31, r3 /* 80274328 0026FF88 38 64 3F 08 */ addi r3, r4, lbl_80433F08@l /* 8027432C 0026FF8C 38 81 00 08 */ addi r4, r1, 8 /* 80274330 0026FF90 93 C1 00 98 */ stw r30, 0x98(r1) /* 80274334 0026FF94 48 07 41 61 */ bl NANDPrivateOpen /* 80274338 0026FF98 2C 03 00 00 */ cmpwi r3, 0 /* 8027433C 0026FF9C 40 82 00 40 */ bne lbl_8027437C /* 80274340 0026FFA0 7F E4 FB 78 */ mr r4, r31 /* 80274344 0026FFA4 38 61 00 08 */ addi r3, r1, 8 /* 80274348 0026FFA8 38 A0 10 20 */ li r5, 0x1020 /* 8027434C 0026FFAC 48 07 35 75 */ bl NANDRead /* 80274350 0026FFB0 7C 7E 1B 78 */ mr r30, r3 /* 80274354 0026FFB4 38 61 00 08 */ addi r3, r1, 8 /* 80274358 0026FFB8 48 07 43 31 */ bl NANDClose /* 8027435C 0026FFBC 28 1E 10 20 */ cmplwi r30, 0x1020 /* 80274360 0026FFC0 41 82 00 34 */ beq lbl_80274394 /* 80274364 0026FFC4 7F E3 FB 78 */ mr r3, r31 /* 80274368 0026FFC8 38 80 00 00 */ li r4, 0 /* 8027436C 0026FFCC 38 A0 10 20 */ li r5, 0x1020 /* 80274370 0026FFD0 4B D8 FD 95 */ bl memset /* 80274374 0026FFD4 38 60 00 00 */ li r3, 0 /* 80274378 0026FFD8 48 00 01 14 */ b lbl_8027448C lbl_8027437C: /* 8027437C 0026FFDC 7F E3 FB 78 */ mr r3, r31 /* 80274380 0026FFE0 38 80 00 00 */ li r4, 0 /* 80274384 0026FFE4 38 A0 10 20 */ li r5, 0x1020 /* 80274388 0026FFE8 4B D8 FD 7D */ bl memset /* 8027438C 0026FFEC 38 60 00 00 */ li r3, 0 /* 80274390 0026FFF0 48 00 00 FC */ b lbl_8027448C lbl_80274394: /* 80274394 0026FFF4 38 00 00 40 */ li r0, 0x40 /* 80274398 0026FFF8 38 BF 00 04 */ addi r5, r31, 4 /* 8027439C 0026FFFC 38 80 00 00 */ li r4, 0 /* 802743A0 00270000 7C 09 03 A6 */ mtctr r0 lbl_802743A4: /* 802743A4 00270004 80 65 00 00 */ lwz r3, 0(r5) /* 802743A8 00270008 80 05 00 04 */ lwz r0, 4(r5) /* 802743AC 0027000C 7C 84 1A 14 */ add r4, r4, r3 /* 802743B0 00270010 80 65 00 08 */ lwz r3, 8(r5) /* 802743B4 00270014 7C 84 02 14 */ add r4, r4, r0 /* 802743B8 00270018 80 05 00 0C */ lwz r0, 0xc(r5) /* 802743BC 0027001C 7C 84 1A 14 */ add r4, r4, r3 /* 802743C0 00270020 80 65 00 10 */ lwz r3, 0x10(r5) /* 802743C4 00270024 7C 84 02 14 */ add r4, r4, r0 /* 802743C8 00270028 80 05 00 14 */ lwz r0, 0x14(r5) /* 802743CC 0027002C 7C 84 1A 14 */ add r4, r4, r3 /* 802743D0 00270030 80 65 00 18 */ lwz r3, 0x18(r5) /* 802743D4 00270034 7C 84 02 14 */ add r4, r4, r0 /* 802743D8 00270038 80 05 00 1C */ lwz r0, 0x1c(r5) /* 802743DC 0027003C 7C 84 1A 14 */ add r4, r4, r3 /* 802743E0 00270040 80 65 00 20 */ lwz r3, 0x20(r5) /* 802743E4 00270044 7C 84 02 14 */ add r4, r4, r0 /* 802743E8 00270048 80 05 00 24 */ lwz r0, 0x24(r5) /* 802743EC 0027004C 7C 84 1A 14 */ add r4, r4, r3 /* 802743F0 00270050 80 65 00 28 */ lwz r3, 0x28(r5) /* 802743F4 00270054 7C 84 02 14 */ add r4, r4, r0 /* 802743F8 00270058 80 05 00 2C */ lwz r0, 0x2c(r5) /* 802743FC 0027005C 7C 84 1A 14 */ add r4, r4, r3 /* 80274400 00270060 80 65 00 30 */ lwz r3, 0x30(r5) /* 80274404 00270064 7C 84 02 14 */ add r4, r4, r0 /* 80274408 00270068 80 05 00 34 */ lwz r0, 0x34(r5) /* 8027440C 0027006C 7C 84 1A 14 */ add r4, r4, r3 /* 80274410 00270070 80 65 00 38 */ lwz r3, 0x38(r5) /* 80274414 00270074 7C 84 02 14 */ add r4, r4, r0 /* 80274418 00270078 80 05 00 3C */ lwz r0, 0x3c(r5) /* 8027441C 0027007C 7C 84 1A 14 */ add r4, r4, r3 /* 80274420 00270080 38 A5 00 40 */ addi r5, r5, 0x40 /* 80274424 00270084 7C 84 02 14 */ add r4, r4, r0 /* 80274428 00270088 42 00 FF 7C */ bdnz lbl_802743A4 /* 8027442C 0027008C 80 65 00 00 */ lwz r3, 0(r5) /* 80274430 00270090 80 05 00 04 */ lwz r0, 4(r5) /* 80274434 00270094 7C 84 1A 14 */ add r4, r4, r3 /* 80274438 00270098 80 65 00 08 */ lwz r3, 8(r5) /* 8027443C 0027009C 7C 84 02 14 */ add r4, r4, r0 /* 80274440 002700A0 80 05 00 0C */ lwz r0, 0xc(r5) /* 80274444 002700A4 7C 84 1A 14 */ add r4, r4, r3 /* 80274448 002700A8 80 65 00 10 */ lwz r3, 0x10(r5) /* 8027444C 002700AC 7C 84 02 14 */ add r4, r4, r0 /* 80274450 002700B0 80 05 00 14 */ lwz r0, 0x14(r5) /* 80274454 002700B4 7C 84 1A 14 */ add r4, r4, r3 /* 80274458 002700B8 80 65 00 18 */ lwz r3, 0x18(r5) /* 8027445C 002700BC 7C 84 02 14 */ add r4, r4, r0 /* 80274460 002700C0 80 1F 00 00 */ lwz r0, 0(r31) /* 80274464 002700C4 7C 84 1A 14 */ add r4, r4, r3 /* 80274468 002700C8 7C 00 20 40 */ cmplw r0, r4 /* 8027446C 002700CC 41 82 00 1C */ beq lbl_80274488 /* 80274470 002700D0 7F E3 FB 78 */ mr r3, r31 /* 80274474 002700D4 38 80 00 00 */ li r4, 0 /* 80274478 002700D8 38 A0 10 20 */ li r5, 0x1020 /* 8027447C 002700DC 4B D8 FC 89 */ bl memset /* 80274480 002700E0 38 60 00 00 */ li r3, 0 /* 80274484 002700E4 48 00 00 08 */ b lbl_8027448C lbl_80274488: /* 80274488 002700E8 38 60 00 01 */ li r3, 1 lbl_8027448C: /* 8027448C 002700EC 80 01 00 A4 */ lwz r0, 0xa4(r1) /* 80274490 002700F0 83 E1 00 9C */ lwz r31, 0x9c(r1) /* 80274494 002700F4 83 C1 00 98 */ lwz r30, 0x98(r1) /* 80274498 002700F8 7C 08 03 A6 */ mtlr r0 /* 8027449C 002700FC 38 21 00 A0 */ addi r1, r1, 0xa0 /* 802744A0 00270100 4E 80 00 20 */ blr