1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
|
.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
|