summaryrefslogtreecommitdiff
path: root/asm/code_801DCE6C_asm.s
blob: 85522fc09d86c8d6a35eaf0ebd83cf71ec9e380f (plain)
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
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global func_801DCEB4
func_801DCEB4:
/* 801DCEB4 001D8B14  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DCEB8 001D8B18  7C 08 02 A6 */	mflr r0
/* 801DCEBC 001D8B1C  38 A0 00 0C */	li r5, 0xc
/* 801DCEC0 001D8B20  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DCEC4 001D8B24  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801DCEC8 001D8B28  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801DCECC 001D8B2C  7C 7E 1B 78 */	mr r30, r3
/* 801DCED0 001D8B30  38 61 00 08 */	addi r3, r1, 8
/* 801DCED4 001D8B34  4B E2 71 2D */	bl memcpy
/* 801DCED8 001D8B38  38 00 00 00 */	li r0, 0
/* 801DCEDC 001D8B3C  3B E0 00 00 */	li r31, 0
/* 801DCEE0 001D8B40  98 01 00 14 */	stb r0, 0x14(r1)
lbl_801DCEE4:
/* 801DCEE4 001D8B44  88 1E 00 00 */	lbz r0, 0(r30)
/* 801DCEE8 001D8B48  2C 00 00 00 */	cmpwi r0, 0
/* 801DCEEC 001D8B4C  41 82 00 30 */	beq lbl_801DCF1C
/* 801DCEF0 001D8B50  88 1E 00 01 */	lbz r0, 1(r30)
/* 801DCEF4 001D8B54  2C 00 00 00 */	cmpwi r0, 0
/* 801DCEF8 001D8B58  40 82 00 24 */	bne lbl_801DCF1C
/* 801DCEFC 001D8B5C  7F C3 F3 78 */	mr r3, r30
/* 801DCF00 001D8B60  4B FF FF 6D */	bl func_801DCE6C
/* 801DCF04 001D8B64  38 81 00 08 */	addi r4, r1, 8
/* 801DCF08 001D8B68  4B FF 15 45 */	bl strcmp
/* 801DCF0C 001D8B6C  2C 03 00 00 */	cmpwi r3, 0
/* 801DCF10 001D8B70  40 82 00 0C */	bne lbl_801DCF1C
/* 801DCF14 001D8B74  7F C3 F3 78 */	mr r3, r30
/* 801DCF18 001D8B78  48 00 00 18 */	b lbl_801DCF30
lbl_801DCF1C:
/* 801DCF1C 001D8B7C  3B FF 00 01 */	addi r31, r31, 1
/* 801DCF20 001D8B80  3B DE 01 90 */	addi r30, r30, 0x190
/* 801DCF24 001D8B84  2C 1F 00 08 */	cmpwi r31, 8
/* 801DCF28 001D8B88  41 80 FF BC */	blt lbl_801DCEE4
/* 801DCF2C 001D8B8C  38 60 00 00 */	li r3, 0
lbl_801DCF30:
/* 801DCF30 001D8B90  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DCF34 001D8B94  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801DCF38 001D8B98  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801DCF3C 001D8B9C  7C 08 03 A6 */	mtlr r0
/* 801DCF40 001D8BA0  38 21 00 20 */	addi r1, r1, 0x20
/* 801DCF44 001D8BA4  4E 80 00 20 */	blr

.global func_801DCF48
func_801DCF48:
/* 801DCF48 001D8BA8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DCF4C 001D8BAC  7C 08 02 A6 */	mflr r0
/* 801DCF50 001D8BB0  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DCF54 001D8BB4  4B FF FF 61 */	bl func_801DCEB4
/* 801DCF58 001D8BB8  7C 03 00 D0 */	neg r0, r3
/* 801DCF5C 001D8BBC  7C 00 1B 78 */	or r0, r0, r3
/* 801DCF60 001D8BC0  54 03 0F FE */	srwi r3, r0, 0x1f
/* 801DCF64 001D8BC4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DCF68 001D8BC8  7C 08 03 A6 */	mtlr r0
/* 801DCF6C 001D8BCC  38 21 00 10 */	addi r1, r1, 0x10
/* 801DCF70 001D8BD0  4E 80 00 20 */	blr

.global func_801DCF74
func_801DCF74:
/* 801DCF74 001D8BD4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DCF78 001D8BD8  7C 08 02 A6 */	mflr r0
/* 801DCF7C 001D8BDC  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DCF80 001D8BE0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DCF84 001D8BE4  93 C1 00 08 */	stw r30, 8(r1)
/* 801DCF88 001D8BE8  7C BE 2B 78 */	mr r30, r5
/* 801DCF8C 001D8BEC  4B FF FF 29 */	bl func_801DCEB4
/* 801DCF90 001D8BF0  2C 03 00 00 */	cmpwi r3, 0
/* 801DCF94 001D8BF4  7C 7F 1B 78 */	mr r31, r3
/* 801DCF98 001D8BF8  41 82 00 30 */	beq lbl_801DCFC8
/* 801DCF9C 001D8BFC  4B FF FE D9 */	bl func_801DCE74
/* 801DCFA0 001D8C00  38 9F 00 48 */	addi r4, r31, 0x48
/* 801DCFA4 001D8C04  38 A0 00 01 */	li r5, 1
/* 801DCFA8 001D8C08  48 10 B4 61 */	bl NANDOpen
/* 801DCFAC 001D8C0C  2C 03 00 00 */	cmpwi r3, 0
/* 801DCFB0 001D8C10  40 82 00 18 */	bne lbl_801DCFC8
/* 801DCFB4 001D8C14  38 00 00 01 */	li r0, 1
/* 801DCFB8 001D8C18  93 FE 00 40 */	stw r31, 0x40(r30)
/* 801DCFBC 001D8C1C  38 60 00 01 */	li r3, 1
/* 801DCFC0 001D8C20  98 1E 00 01 */	stb r0, 1(r30)
/* 801DCFC4 001D8C24  48 00 00 08 */	b lbl_801DCFCC
lbl_801DCFC8:
/* 801DCFC8 001D8C28  38 60 00 00 */	li r3, 0
lbl_801DCFCC:
/* 801DCFCC 001D8C2C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DCFD0 001D8C30  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DCFD4 001D8C34  83 C1 00 08 */	lwz r30, 8(r1)
/* 801DCFD8 001D8C38  7C 08 03 A6 */	mtlr r0
/* 801DCFDC 001D8C3C  38 21 00 10 */	addi r1, r1, 0x10
/* 801DCFE0 001D8C40  4E 80 00 20 */	blr

.global func_801DCFE4
func_801DCFE4:
/* 801DCFE4 001D8C44  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DCFE8 001D8C48  7C 08 02 A6 */	mflr r0
/* 801DCFEC 001D8C4C  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DCFF0 001D8C50  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DCFF4 001D8C54  7C 9F 23 78 */	mr r31, r4
/* 801DCFF8 001D8C58  88 04 00 01 */	lbz r0, 1(r4)
/* 801DCFFC 001D8C5C  2C 00 00 00 */	cmpwi r0, 0
/* 801DD000 001D8C60  40 82 00 0C */	bne lbl_801DD00C
/* 801DD004 001D8C64  38 60 00 00 */	li r3, 0
/* 801DD008 001D8C68  48 00 00 20 */	b lbl_801DD028
lbl_801DD00C:
/* 801DD00C 001D8C6C  80 64 00 40 */	lwz r3, 0x40(r4)
/* 801DD010 001D8C70  38 63 00 48 */	addi r3, r3, 0x48
/* 801DD014 001D8C74  48 10 B6 75 */	bl NANDClose
/* 801DD018 001D8C78  38 00 00 00 */	li r0, 0
/* 801DD01C 001D8C7C  38 60 00 01 */	li r3, 1
/* 801DD020 001D8C80  98 1F 00 01 */	stb r0, 1(r31)
/* 801DD024 001D8C84  90 1F 00 40 */	stw r0, 0x40(r31)
lbl_801DD028:
/* 801DD028 001D8C88  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DD02C 001D8C8C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DD030 001D8C90  7C 08 03 A6 */	mtlr r0
/* 801DD034 001D8C94  38 21 00 10 */	addi r1, r1, 0x10
/* 801DD038 001D8C98  4E 80 00 20 */	blr

.global func_801DD03C
func_801DD03C:
/* 801DD03C 001D8C9C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DD040 001D8CA0  7C 08 02 A6 */	mflr r0
/* 801DD044 001D8CA4  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DD048 001D8CA8  88 04 00 01 */	lbz r0, 1(r4)
/* 801DD04C 001D8CAC  2C 00 00 00 */	cmpwi r0, 0
/* 801DD050 001D8CB0  40 82 00 0C */	bne lbl_801DD05C
/* 801DD054 001D8CB4  38 60 00 00 */	li r3, 0
/* 801DD058 001D8CB8  48 00 00 1C */	b lbl_801DD074
lbl_801DD05C:
/* 801DD05C 001D8CBC  80 64 00 40 */	lwz r3, 0x40(r4)
/* 801DD060 001D8CC0  7C A4 2B 78 */	mr r4, r5
/* 801DD064 001D8CC4  38 63 00 48 */	addi r3, r3, 0x48
/* 801DD068 001D8CC8  48 10 AE 65 */	bl NANDGetLength
/* 801DD06C 001D8CCC  7C 60 00 34 */	cntlzw r0, r3
/* 801DD070 001D8CD0  54 03 D9 7E */	srwi r3, r0, 5
lbl_801DD074:
/* 801DD074 001D8CD4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DD078 001D8CD8  7C 08 03 A6 */	mtlr r0
/* 801DD07C 001D8CDC  38 21 00 10 */	addi r1, r1, 0x10
/* 801DD080 001D8CE0  4E 80 00 20 */	blr

.global func_801DD084
func_801DD084:
/* 801DD084 001D8CE4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DD088 001D8CE8  7C 08 02 A6 */	mflr r0
/* 801DD08C 001D8CEC  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DD090 001D8CF0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801DD094 001D8CF4  7C DF 33 78 */	mr r31, r6
/* 801DD098 001D8CF8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801DD09C 001D8CFC  7C BE 2B 78 */	mr r30, r5
/* 801DD0A0 001D8D00  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801DD0A4 001D8D04  7C 9D 23 78 */	mr r29, r4
/* 801DD0A8 001D8D08  88 04 00 01 */	lbz r0, 1(r4)
/* 801DD0AC 001D8D0C  2C 00 00 00 */	cmpwi r0, 0
/* 801DD0B0 001D8D10  40 82 00 0C */	bne lbl_801DD0BC
/* 801DD0B4 001D8D14  38 60 FF FF */	li r3, -1
/* 801DD0B8 001D8D18  48 00 00 3C */	b lbl_801DD0F4
lbl_801DD0BC:
/* 801DD0BC 001D8D1C  80 64 00 40 */	lwz r3, 0x40(r4)
/* 801DD0C0 001D8D20  7C E4 3B 78 */	mr r4, r7
/* 801DD0C4 001D8D24  38 A0 00 00 */	li r5, 0
/* 801DD0C8 001D8D28  38 63 00 48 */	addi r3, r3, 0x48
/* 801DD0CC 001D8D2C  48 10 A9 B5 */	bl NANDSeek
/* 801DD0D0 001D8D30  2C 03 00 00 */	cmpwi r3, 0
/* 801DD0D4 001D8D34  41 80 00 0C */	blt lbl_801DD0E0
/* 801DD0D8 001D8D38  38 60 FF FF */	li r3, -1
/* 801DD0DC 001D8D3C  48 00 00 18 */	b lbl_801DD0F4
lbl_801DD0E0:
/* 801DD0E0 001D8D40  80 7D 00 40 */	lwz r3, 0x40(r29)
/* 801DD0E4 001D8D44  7F C4 F3 78 */	mr r4, r30
/* 801DD0E8 001D8D48  7F E5 FB 78 */	mr r5, r31
/* 801DD0EC 001D8D4C  38 63 00 48 */	addi r3, r3, 0x48
/* 801DD0F0 001D8D50  48 10 A7 D1 */	bl NANDRead
lbl_801DD0F4:
/* 801DD0F4 001D8D54  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DD0F8 001D8D58  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801DD0FC 001D8D5C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801DD100 001D8D60  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801DD104 001D8D64  7C 08 03 A6 */	mtlr r0
/* 801DD108 001D8D68  38 21 00 20 */	addi r1, r1, 0x20
/* 801DD10C 001D8D6C  4E 80 00 20 */	blr
lbl_801DD110:
/* 801DD110 001D8D70  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DD114 001D8D74  7C 08 02 A6 */	mflr r0
/* 801DD118 001D8D78  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DD11C 001D8D7C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DD120 001D8D80  93 C1 00 08 */	stw r30, 8(r1)
/* 801DD124 001D8D84  7C 7E 1B 78 */	mr r30, r3
/* 801DD128 001D8D88  7C 83 23 78 */	mr r3, r4
/* 801DD12C 001D8D8C  48 10 B1 C1 */	bl NANDGetUserData
/* 801DD130 001D8D90  7C 7F 1B 78 */	mr r31, r3
/* 801DD134 001D8D94  4B FF FD 11 */	bl func_801DCE44
/* 801DD138 001D8D98  2C 03 00 00 */	cmpwi r3, 0
/* 801DD13C 001D8D9C  40 82 00 20 */	bne lbl_801DD15C
/* 801DD140 001D8DA0  81 9F 00 44 */	lwz r12, 0x44(r31)
/* 801DD144 001D8DA4  2C 0C 00 00 */	cmpwi r12, 0
/* 801DD148 001D8DA8  41 82 00 14 */	beq lbl_801DD15C
/* 801DD14C 001D8DAC  7F C3 F3 78 */	mr r3, r30
/* 801DD150 001D8DB0  7F E4 FB 78 */	mr r4, r31
/* 801DD154 001D8DB4  7D 89 03 A6 */	mtctr r12
/* 801DD158 001D8DB8  4E 80 04 21 */	bctrl
lbl_801DD15C:
/* 801DD15C 001D8DBC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DD160 001D8DC0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DD164 001D8DC4  83 C1 00 08 */	lwz r30, 8(r1)
/* 801DD168 001D8DC8  7C 08 03 A6 */	mtlr r0
/* 801DD16C 001D8DCC  38 21 00 10 */	addi r1, r1, 0x10
/* 801DD170 001D8DD0  4E 80 00 20 */	blr
lbl_801DD174:
/* 801DD174 001D8DD4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DD178 001D8DD8  7C 08 02 A6 */	mflr r0
/* 801DD17C 001D8DDC  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DD180 001D8DE0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801DD184 001D8DE4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801DD188 001D8DE8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801DD18C 001D8DEC  7C 7D 1B 78 */	mr r29, r3
/* 801DD190 001D8DF0  7C 83 23 78 */	mr r3, r4
/* 801DD194 001D8DF4  48 10 B1 59 */	bl NANDGetUserData
/* 801DD198 001D8DF8  83 C3 00 40 */	lwz r30, 0x40(r3)
/* 801DD19C 001D8DFC  7C 7F 1B 78 */	mr r31, r3
/* 801DD1A0 001D8E00  4B FF FC A5 */	bl func_801DCE44
/* 801DD1A4 001D8E04  2C 03 00 00 */	cmpwi r3, 0
/* 801DD1A8 001D8E08  40 82 00 5C */	bne lbl_801DD204
/* 801DD1AC 001D8E0C  2C 1D 00 00 */	cmpwi r29, 0
/* 801DD1B0 001D8E10  40 80 00 1C */	bge lbl_801DD1CC
/* 801DD1B4 001D8E14  81 9F 00 44 */	lwz r12, 0x44(r31)
/* 801DD1B8 001D8E18  7F E4 FB 78 */	mr r4, r31
/* 801DD1BC 001D8E1C  38 60 FF FF */	li r3, -1
/* 801DD1C0 001D8E20  7D 89 03 A6 */	mtctr r12
/* 801DD1C4 001D8E24  4E 80 04 21 */	bctrl
/* 801DD1C8 001D8E28  48 00 00 3C */	b lbl_801DD204
lbl_801DD1CC:
/* 801DD1CC 001D8E2C  3C C0 80 1E */	lis r6, lbl_801DD110@ha
/* 801DD1D0 001D8E30  80 9F 00 48 */	lwz r4, 0x48(r31)
/* 801DD1D4 001D8E34  80 BF 00 4C */	lwz r5, 0x4c(r31)
/* 801DD1D8 001D8E38  38 7E 00 48 */	addi r3, r30, 0x48
/* 801DD1DC 001D8E3C  38 C6 D1 10 */	addi r6, r6, lbl_801DD110@l
/* 801DD1E0 001D8E40  38 FE 00 D4 */	addi r7, r30, 0xd4
/* 801DD1E4 001D8E44  48 10 A7 45 */	bl NANDReadAsync
/* 801DD1E8 001D8E48  2C 03 00 00 */	cmpwi r3, 0
/* 801DD1EC 001D8E4C  41 82 00 18 */	beq lbl_801DD204
/* 801DD1F0 001D8E50  81 9F 00 44 */	lwz r12, 0x44(r31)
/* 801DD1F4 001D8E54  7F E4 FB 78 */	mr r4, r31
/* 801DD1F8 001D8E58  38 60 FF FF */	li r3, -1
/* 801DD1FC 001D8E5C  7D 89 03 A6 */	mtctr r12
/* 801DD200 001D8E60  4E 80 04 21 */	bctrl
lbl_801DD204:
/* 801DD204 001D8E64  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DD208 001D8E68  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801DD20C 001D8E6C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801DD210 001D8E70  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801DD214 001D8E74  7C 08 03 A6 */	mtlr r0
/* 801DD218 001D8E78  38 21 00 20 */	addi r1, r1, 0x20
/* 801DD21C 001D8E7C  4E 80 00 20 */	blr

.global func_801DD220
func_801DD220:
/* 801DD220 001D8E80  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DD224 001D8E84  7C 08 02 A6 */	mflr r0
/* 801DD228 001D8E88  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DD22C 001D8E8C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DD230 001D8E90  93 C1 00 08 */	stw r30, 8(r1)
/* 801DD234 001D8E94  7C FE 3B 78 */	mr r30, r7
/* 801DD238 001D8E98  88 04 00 01 */	lbz r0, 1(r4)
/* 801DD23C 001D8E9C  2C 00 00 00 */	cmpwi r0, 0
/* 801DD240 001D8EA0  40 82 00 0C */	bne lbl_801DD24C
/* 801DD244 001D8EA4  38 60 00 00 */	li r3, 0
/* 801DD248 001D8EA8  48 00 00 34 */	b lbl_801DD27C
lbl_801DD24C:
/* 801DD24C 001D8EAC  83 E4 00 40 */	lwz r31, 0x40(r4)
/* 801DD250 001D8EB0  38 7F 00 D4 */	addi r3, r31, 0xd4
/* 801DD254 001D8EB4  48 10 B0 91 */	bl NANDSetUserData
/* 801DD258 001D8EB8  3C C0 80 1E */	lis r6, lbl_801DD174@ha
/* 801DD25C 001D8EBC  7F C4 F3 78 */	mr r4, r30
/* 801DD260 001D8EC0  38 7F 00 48 */	addi r3, r31, 0x48
/* 801DD264 001D8EC4  38 FF 00 D4 */	addi r7, r31, 0xd4
/* 801DD268 001D8EC8  38 C6 D1 74 */	addi r6, r6, lbl_801DD174@l
/* 801DD26C 001D8ECC  38 A0 00 00 */	li r5, 0
/* 801DD270 001D8ED0  48 10 A8 B1 */	bl NANDSeekAsync
/* 801DD274 001D8ED4  7C 60 00 34 */	cntlzw r0, r3
/* 801DD278 001D8ED8  54 03 D9 7E */	srwi r3, r0, 5
lbl_801DD27C:
/* 801DD27C 001D8EDC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DD280 001D8EE0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DD284 001D8EE4  83 C1 00 08 */	lwz r30, 8(r1)
/* 801DD288 001D8EE8  7C 08 03 A6 */	mtlr r0
/* 801DD28C 001D8EEC  38 21 00 10 */	addi r1, r1, 0x10
/* 801DD290 001D8EF0  4E 80 00 20 */	blr

.global lbl_801DD294
lbl_801DD294:
/* 801DD294 001D8EF4  94 21 FF 40 */	stwu r1, -0xc0(r1)
/* 801DD298 001D8EF8  7C 08 02 A6 */	mflr r0
/* 801DD29C 001D8EFC  90 01 00 C4 */	stw r0, 0xc4(r1)
/* 801DD2A0 001D8F00  39 61 00 C0 */	addi r11, r1, 0xc0
/* 801DD2A4 001D8F04  4B FE 9E 79 */	bl _savegpr_24
/* 801DD2A8 001D8F08  7C 78 1B 78 */	mr r24, r3
/* 801DD2AC 001D8F0C  7C 99 23 78 */	mr r25, r4
/* 801DD2B0 001D8F10  4B FF FC 05 */	bl func_801DCEB4
/* 801DD2B4 001D8F14  2C 03 00 00 */	cmpwi r3, 0
/* 801DD2B8 001D8F18  41 82 00 0C */	beq lbl_801DD2C4
/* 801DD2BC 001D8F1C  38 60 00 01 */	li r3, 1
/* 801DD2C0 001D8F20  48 00 02 D0 */	b lbl_801DD590
lbl_801DD2C4:
/* 801DD2C4 001D8F24  88 18 00 00 */	lbz r0, 0(r24)
/* 801DD2C8 001D8F28  38 80 00 00 */	li r4, 0
/* 801DD2CC 001D8F2C  2C 00 00 00 */	cmpwi r0, 0
/* 801DD2D0 001D8F30  40 82 00 10 */	bne lbl_801DD2E0
/* 801DD2D4 001D8F34  1C 04 01 90 */	mulli r0, r4, 0x190
/* 801DD2D8 001D8F38  7F B8 02 14 */	add r29, r24, r0
/* 801DD2DC 001D8F3C  48 00 00 E0 */	b lbl_801DD3BC
lbl_801DD2E0:
/* 801DD2E0 001D8F40  88 18 01 90 */	lbz r0, 0x190(r24)
/* 801DD2E4 001D8F44  38 78 01 90 */	addi r3, r24, 0x190
/* 801DD2E8 001D8F48  38 80 00 01 */	li r4, 1
/* 801DD2EC 001D8F4C  2C 00 00 00 */	cmpwi r0, 0
/* 801DD2F0 001D8F50  40 82 00 10 */	bne lbl_801DD300
/* 801DD2F4 001D8F54  1C 04 01 90 */	mulli r0, r4, 0x190
/* 801DD2F8 001D8F58  7F B8 02 14 */	add r29, r24, r0
/* 801DD2FC 001D8F5C  48 00 00 C0 */	b lbl_801DD3BC
lbl_801DD300:
/* 801DD300 001D8F60  88 03 01 90 */	lbz r0, 0x190(r3)
/* 801DD304 001D8F64  38 80 00 02 */	li r4, 2
/* 801DD308 001D8F68  38 63 01 90 */	addi r3, r3, 0x190
/* 801DD30C 001D8F6C  2C 00 00 00 */	cmpwi r0, 0
/* 801DD310 001D8F70  40 82 00 10 */	bne lbl_801DD320
/* 801DD314 001D8F74  1C 04 01 90 */	mulli r0, r4, 0x190
/* 801DD318 001D8F78  7F B8 02 14 */	add r29, r24, r0
/* 801DD31C 001D8F7C  48 00 00 A0 */	b lbl_801DD3BC
lbl_801DD320:
/* 801DD320 001D8F80  88 03 01 90 */	lbz r0, 0x190(r3)
/* 801DD324 001D8F84  38 80 00 03 */	li r4, 3
/* 801DD328 001D8F88  38 63 01 90 */	addi r3, r3, 0x190
/* 801DD32C 001D8F8C  2C 00 00 00 */	cmpwi r0, 0
/* 801DD330 001D8F90  40 82 00 10 */	bne lbl_801DD340
/* 801DD334 001D8F94  1C 04 01 90 */	mulli r0, r4, 0x190
/* 801DD338 001D8F98  7F B8 02 14 */	add r29, r24, r0
/* 801DD33C 001D8F9C  48 00 00 80 */	b lbl_801DD3BC
lbl_801DD340:
/* 801DD340 001D8FA0  88 03 01 90 */	lbz r0, 0x190(r3)
/* 801DD344 001D8FA4  38 80 00 04 */	li r4, 4
/* 801DD348 001D8FA8  38 63 01 90 */	addi r3, r3, 0x190
/* 801DD34C 001D8FAC  2C 00 00 00 */	cmpwi r0, 0
/* 801DD350 001D8FB0  40 82 00 10 */	bne lbl_801DD360
/* 801DD354 001D8FB4  1C 04 01 90 */	mulli r0, r4, 0x190
/* 801DD358 001D8FB8  7F B8 02 14 */	add r29, r24, r0
/* 801DD35C 001D8FBC  48 00 00 60 */	b lbl_801DD3BC
lbl_801DD360:
/* 801DD360 001D8FC0  88 03 01 90 */	lbz r0, 0x190(r3)
/* 801DD364 001D8FC4  38 80 00 05 */	li r4, 5
/* 801DD368 001D8FC8  38 63 01 90 */	addi r3, r3, 0x190
/* 801DD36C 001D8FCC  2C 00 00 00 */	cmpwi r0, 0
/* 801DD370 001D8FD0  40 82 00 10 */	bne lbl_801DD380
/* 801DD374 001D8FD4  1C 04 01 90 */	mulli r0, r4, 0x190
/* 801DD378 001D8FD8  7F B8 02 14 */	add r29, r24, r0
/* 801DD37C 001D8FDC  48 00 00 40 */	b lbl_801DD3BC
lbl_801DD380:
/* 801DD380 001D8FE0  88 03 01 90 */	lbz r0, 0x190(r3)
/* 801DD384 001D8FE4  38 80 00 06 */	li r4, 6
/* 801DD388 001D8FE8  38 63 01 90 */	addi r3, r3, 0x190
/* 801DD38C 001D8FEC  2C 00 00 00 */	cmpwi r0, 0
/* 801DD390 001D8FF0  40 82 00 10 */	bne lbl_801DD3A0
/* 801DD394 001D8FF4  1C 04 01 90 */	mulli r0, r4, 0x190
/* 801DD398 001D8FF8  7F B8 02 14 */	add r29, r24, r0
/* 801DD39C 001D8FFC  48 00 00 20 */	b lbl_801DD3BC
lbl_801DD3A0:
/* 801DD3A0 001D9000  88 03 01 90 */	lbz r0, 0x190(r3)
/* 801DD3A4 001D9004  38 80 00 07 */	li r4, 7
/* 801DD3A8 001D9008  3B A3 01 90 */	addi r29, r3, 0x190
/* 801DD3AC 001D900C  2C 00 00 00 */	cmpwi r0, 0
/* 801DD3B0 001D9010  40 82 00 0C */	bne lbl_801DD3BC
/* 801DD3B4 001D9014  1C 04 01 90 */	mulli r0, r4, 0x190
/* 801DD3B8 001D9018  7F B8 02 14 */	add r29, r24, r0
lbl_801DD3BC:
/* 801DD3BC 001D901C  2C 1D 00 00 */	cmpwi r29, 0
/* 801DD3C0 001D9020  40 82 00 0C */	bne lbl_801DD3CC
/* 801DD3C4 001D9024  38 60 00 00 */	li r3, 0
/* 801DD3C8 001D9028  48 00 01 C8 */	b lbl_801DD590
lbl_801DD3CC:
/* 801DD3CC 001D902C  7F 23 CB 78 */	mr r3, r25
/* 801DD3D0 001D9030  4B FF EF B1 */	bl func_801DC380
/* 801DD3D4 001D9034  2C 03 00 00 */	cmpwi r3, 0
/* 801DD3D8 001D9038  40 82 00 0C */	bne lbl_801DD3E4
/* 801DD3DC 001D903C  38 60 00 00 */	li r3, 0
/* 801DD3E0 001D9040  48 00 01 B0 */	b lbl_801DD590
lbl_801DD3E4:
/* 801DD3E4 001D9044  7F 23 CB 78 */	mr r3, r25
/* 801DD3E8 001D9048  4B FF EE E9 */	bl func_801DC2D0
/* 801DD3EC 001D904C  2C 03 00 00 */	cmpwi r3, 0
/* 801DD3F0 001D9050  7C 7C 1B 78 */	mr r28, r3
/* 801DD3F4 001D9054  40 82 00 0C */	bne lbl_801DD400
/* 801DD3F8 001D9058  38 60 00 00 */	li r3, 0
/* 801DD3FC 001D905C  48 00 01 94 */	b lbl_801DD590
lbl_801DD400:
/* 801DD400 001D9060  4B FF F3 61 */	bl func_801DC760
/* 801DD404 001D9064  38 03 00 1F */	addi r0, r3, 0x1f
/* 801DD408 001D9068  54 18 00 35 */	rlwinm. r24, r0, 0, 0, 0x1a
/* 801DD40C 001D906C  40 82 00 0C */	bne lbl_801DD418
/* 801DD410 001D9070  38 60 00 00 */	li r3, 0
/* 801DD414 001D9074  48 00 01 7C */	b lbl_801DD590
lbl_801DD418:
/* 801DD418 001D9078  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 801DD41C 001D907C  3C 80 00 20 */	lis r4, 0x20
/* 801DD420 001D9080  4B FF D8 75 */	bl func_801DAC94
/* 801DD424 001D9084  2C 03 00 00 */	cmpwi r3, 0
/* 801DD428 001D9088  7C 7B 1B 78 */	mr r27, r3
/* 801DD42C 001D908C  40 82 00 0C */	bne lbl_801DD438
/* 801DD430 001D9090  38 60 00 00 */	li r3, 0
/* 801DD434 001D9094  48 00 01 5C */	b lbl_801DD590
lbl_801DD438:
/* 801DD438 001D9098  38 00 00 01 */	li r0, 1
/* 801DD43C 001D909C  38 7D 00 02 */	addi r3, r29, 2
/* 801DD440 001D90A0  98 1D 00 00 */	stb r0, 0(r29)
/* 801DD444 001D90A4  38 8D 84 38 */	addi r4, r13, lbl_8063D6F8-_SDA_BASE_
/* 801DD448 001D90A8  98 1D 00 01 */	stb r0, 1(r29)
/* 801DD44C 001D90AC  4B FF 0E 85 */	bl strcpy
/* 801DD450 001D90B0  7F 24 CB 78 */	mr r4, r25
/* 801DD454 001D90B4  38 7D 00 02 */	addi r3, r29, 2
/* 801DD458 001D90B8  38 A0 00 0C */	li r5, 0xc
/* 801DD45C 001D90BC  4B FF 0F A5 */	bl strncat
/* 801DD460 001D90C0  38 7D 00 02 */	addi r3, r29, 2
/* 801DD464 001D90C4  3B 40 00 00 */	li r26, 0
/* 801DD468 001D90C8  38 80 00 30 */	li r4, 0x30
/* 801DD46C 001D90CC  38 A0 00 00 */	li r5, 0
/* 801DD470 001D90D0  48 10 A1 09 */	bl NANDCreate
/* 801DD474 001D90D4  2C 03 00 00 */	cmpwi r3, 0
/* 801DD478 001D90D8  41 82 00 0C */	beq lbl_801DD484
/* 801DD47C 001D90DC  2C 03 FF FA */	cmpwi r3, -6
/* 801DD480 001D90E0  40 82 00 D0 */	bne lbl_801DD550
lbl_801DD484:
/* 801DD484 001D90E4  38 7D 00 02 */	addi r3, r29, 2
/* 801DD488 001D90E8  38 81 00 08 */	addi r4, r1, 8
/* 801DD48C 001D90EC  38 A0 00 03 */	li r5, 3
/* 801DD490 001D90F0  48 10 AF 79 */	bl NANDOpen
/* 801DD494 001D90F4  2C 03 00 00 */	cmpwi r3, 0
/* 801DD498 001D90F8  40 82 00 B8 */	bne lbl_801DD550
/* 801DD49C 001D90FC  3B 20 00 00 */	li r25, 0
/* 801DD4A0 001D9100  3F E0 00 20 */	lis r31, 0x20
lbl_801DD4A4:
/* 801DD4A4 001D9104  7C 18 F8 40 */	cmplw r24, r31
/* 801DD4A8 001D9108  3F C0 00 20 */	lis r30, 0x20
/* 801DD4AC 001D910C  40 80 00 08 */	bge lbl_801DD4B4
/* 801DD4B0 001D9110  7F 1E C3 78 */	mr r30, r24
lbl_801DD4B4:
/* 801DD4B4 001D9114  7F 83 E3 78 */	mr r3, r28
/* 801DD4B8 001D9118  7F 64 DB 78 */	mr r4, r27
/* 801DD4BC 001D911C  7F C5 F3 78 */	mr r5, r30
/* 801DD4C0 001D9120  7F 26 CB 78 */	mr r6, r25
/* 801DD4C4 001D9124  38 E0 00 02 */	li r7, 2
/* 801DD4C8 001D9128  4B FF F1 35 */	bl func_801DC5FC
/* 801DD4CC 001D912C  2C 03 00 00 */	cmpwi r3, 0
/* 801DD4D0 001D9130  40 80 00 34 */	bge lbl_801DD504
/* 801DD4D4 001D9134  2C 03 FF FF */	cmpwi r3, -1
/* 801DD4D8 001D9138  40 82 00 10 */	bne lbl_801DD4E8
lbl_801DD4DC:
/* 801DD4DC 001D913C  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 801DD4E0 001D9140  48 04 70 A9 */	bl func_80224588
/* 801DD4E4 001D9144  4B FF FF F8 */	b lbl_801DD4DC
lbl_801DD4E8:
/* 801DD4E8 001D9148  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 801DD4EC 001D914C  7F 64 DB 78 */	mr r4, r27
/* 801DD4F0 001D9150  4B FF D8 59 */	bl func_801DAD48
/* 801DD4F4 001D9154  7F 83 E3 78 */	mr r3, r28
/* 801DD4F8 001D9158  4B FF F1 CD */	bl func_801DC6C4
/* 801DD4FC 001D915C  38 60 00 00 */	li r3, 0
/* 801DD500 001D9160  48 00 00 90 */	b lbl_801DD590
lbl_801DD504:
/* 801DD504 001D9164  7F 64 DB 78 */	mr r4, r27
/* 801DD508 001D9168  7F C5 F3 78 */	mr r5, r30
/* 801DD50C 001D916C  38 61 00 08 */	addi r3, r1, 8
/* 801DD510 001D9170  48 10 A4 91 */	bl NANDWrite
/* 801DD514 001D9174  7C 03 F0 00 */	cmpw r3, r30
/* 801DD518 001D9178  41 82 00 10 */	beq lbl_801DD528
/* 801DD51C 001D917C  38 61 00 08 */	addi r3, r1, 8
/* 801DD520 001D9180  48 10 B1 69 */	bl NANDClose
/* 801DD524 001D9184  48 00 00 10 */	b lbl_801DD534
lbl_801DD528:
/* 801DD528 001D9188  7F 1E C0 51 */	subf. r24, r30, r24
/* 801DD52C 001D918C  7F 39 F2 14 */	add r25, r25, r30
/* 801DD530 001D9190  40 82 FF 74 */	bne lbl_801DD4A4
lbl_801DD534:
/* 801DD534 001D9194  38 61 00 08 */	addi r3, r1, 8
/* 801DD538 001D9198  48 10 B1 51 */	bl NANDClose
/* 801DD53C 001D919C  2C 03 00 00 */	cmpwi r3, 0
/* 801DD540 001D91A0  40 82 00 10 */	bne lbl_801DD550
/* 801DD544 001D91A4  38 00 00 00 */	li r0, 0
/* 801DD548 001D91A8  3B 40 00 01 */	li r26, 1
/* 801DD54C 001D91AC  98 1D 00 01 */	stb r0, 1(r29)
lbl_801DD550:
/* 801DD550 001D91B0  2C 1B 00 00 */	cmpwi r27, 0
/* 801DD554 001D91B4  41 82 00 10 */	beq lbl_801DD564
/* 801DD558 001D91B8  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 801DD55C 001D91BC  7F 64 DB 78 */	mr r4, r27
/* 801DD560 001D91C0  4B FF D7 E9 */	bl func_801DAD48
lbl_801DD564:
/* 801DD564 001D91C4  7F 83 E3 78 */	mr r3, r28
/* 801DD568 001D91C8  4B FF F1 5D */	bl func_801DC6C4
/* 801DD56C 001D91CC  2C 1A 00 00 */	cmpwi r26, 0
/* 801DD570 001D91D0  41 82 00 14 */	beq lbl_801DD584
/* 801DD574 001D91D4  38 00 00 00 */	li r0, 0
/* 801DD578 001D91D8  38 60 00 01 */	li r3, 1
/* 801DD57C 001D91DC  98 1D 00 01 */	stb r0, 1(r29)
/* 801DD580 001D91E0  48 00 00 10 */	b lbl_801DD590
lbl_801DD584:
/* 801DD584 001D91E4  38 00 00 00 */	li r0, 0
/* 801DD588 001D91E8  38 60 00 01 */	li r3, 1
/* 801DD58C 001D91EC  98 1D 00 00 */	stb r0, 0(r29)
lbl_801DD590:
/* 801DD590 001D91F0  39 61 00 C0 */	addi r11, r1, 0xc0
/* 801DD594 001D91F4  4B FE 9B D5 */	bl _restgpr_24
/* 801DD598 001D91F8  80 01 00 C4 */	lwz r0, 0xc4(r1)
/* 801DD59C 001D91FC  7C 08 03 A6 */	mtlr r0
/* 801DD5A0 001D9200  38 21 00 C0 */	addi r1, r1, 0xc0
/* 801DD5A4 001D9204  4E 80 00 20 */	blr

.global func_801DD5A8
func_801DD5A8:
/* 801DD5A8 001D9208  38 A0 00 01 */	li r5, 1
/* 801DD5AC 001D920C  38 6D A0 80 */	addi r3, r13, lbl_8063F340-_SDA_BASE_
/* 801DD5B0 001D9210  38 80 00 04 */	li r4, 4
/* 801DD5B4 001D9214  38 00 00 00 */	li r0, 0
/* 801DD5B8 001D9218  98 AD A0 80 */	stb r5, lbl_8063F340-_SDA_BASE_(r13)
/* 801DD5BC 001D921C  B0 83 00 02 */	sth r4, 2(r3)
/* 801DD5C0 001D9220  98 03 00 04 */	stb r0, 4(r3)
/* 801DD5C4 001D9224  4E 80 00 20 */	blr