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
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
.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
|