summaryrefslogtreecommitdiff
path: root/asm/SDK/VF/pf_str.s
blob: dc41d673fee638dde59e1798e1cb5553fa2cce3e (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
.include "macros.inc"

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

.global VFiPFSTR_SetCodeMode
VFiPFSTR_SetCodeMode:
/* 803052D8 00300F38  90 83 00 0C */	stw r4, 0xc(r3)
/* 803052DC 00300F3C  4E 80 00 20 */	blr

.global VFiPFSTR_GetCodeMode
VFiPFSTR_GetCodeMode:
/* 803052E0 00300F40  80 63 00 0C */	lwz r3, 0xc(r3)
/* 803052E4 00300F44  4E 80 00 20 */	blr

.global VFiPFSTR_SetLocalStr
VFiPFSTR_SetLocalStr:
/* 803052E8 00300F48  80 03 00 0C */	lwz r0, 0xc(r3)
/* 803052EC 00300F4C  28 00 00 01 */	cmplwi r0, 1
/* 803052F0 00300F50  41 82 00 0C */	beq lbl_803052FC
/* 803052F4 00300F54  2C 04 00 00 */	cmpwi r4, 0
/* 803052F8 00300F58  40 82 00 10 */	bne lbl_80305308
lbl_803052FC:
/* 803052FC 00300F5C  80 03 00 00 */	lwz r0, 0(r3)
/* 80305300 00300F60  90 03 00 08 */	stw r0, 8(r3)
/* 80305304 00300F64  4E 80 00 20 */	blr
lbl_80305308:
/* 80305308 00300F68  90 83 00 08 */	stw r4, 8(r3)
/* 8030530C 00300F6C  4E 80 00 20 */	blr

.global VFiPFSTR_GetStrPos
VFiPFSTR_GetStrPos:
/* 80305310 00300F70  28 04 00 01 */	cmplwi r4, 1
/* 80305314 00300F74  40 82 00 0C */	bne lbl_80305320
/* 80305318 00300F78  80 63 00 00 */	lwz r3, 0(r3)
/* 8030531C 00300F7C  4E 80 00 20 */	blr
lbl_80305320:
/* 80305320 00300F80  28 04 00 02 */	cmplwi r4, 2
/* 80305324 00300F84  40 82 00 0C */	bne lbl_80305330
/* 80305328 00300F88  80 63 00 04 */	lwz r3, 4(r3)
/* 8030532C 00300F8C  4E 80 00 20 */	blr
lbl_80305330:
/* 80305330 00300F90  80 63 00 08 */	lwz r3, 8(r3)
/* 80305334 00300F94  4E 80 00 20 */	blr

.global VFiPFSTR_MoveStrPos
VFiPFSTR_MoveStrPos:
/* 80305338 00300F98  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8030533C 00300F9C  7C 08 02 A6 */	mflr r0
/* 80305340 00300FA0  90 01 00 24 */	stw r0, 0x24(r1)
/* 80305344 00300FA4  39 61 00 20 */	addi r11, r1, 0x20
/* 80305348 00300FA8  4B EC 1D DD */	bl _savegpr_26
/* 8030534C 00300FAC  80 03 00 0C */	lwz r0, 0xc(r3)
/* 80305350 00300FB0  7C 7F 1B 78 */	mr r31, r3
/* 80305354 00300FB4  7C 9A 23 78 */	mr r26, r4
/* 80305358 00300FB8  3B 80 00 00 */	li r28, 0
/* 8030535C 00300FBC  28 00 00 01 */	cmplwi r0, 1
/* 80305360 00300FC0  40 82 00 50 */	bne lbl_803053B0
/* 80305364 00300FC4  3F C0 80 58 */	lis r30, lbl_8057F5C8@ha
/* 80305368 00300FC8  83 A3 00 00 */	lwz r29, 0(r3)
/* 8030536C 00300FCC  3B DE F5 C8 */	addi r30, r30, lbl_8057F5C8@l
/* 80305370 00300FD0  48 00 00 34 */	b lbl_803053A4
lbl_80305374:
/* 80305374 00300FD4  88 1D 00 00 */	lbz r0, 0(r29)
/* 80305378 00300FD8  38 80 00 01 */	li r4, 1
/* 8030537C 00300FDC  81 9E 00 30 */	lwz r12, 0x30(r30)
/* 80305380 00300FE0  7C 03 07 74 */	extsb r3, r0
/* 80305384 00300FE4  7D 89 03 A6 */	mtctr r12
/* 80305388 00300FE8  4E 80 04 21 */	bctrl
/* 8030538C 00300FEC  2C 03 00 00 */	cmpwi r3, 0
/* 80305390 00300FF0  41 82 00 0C */	beq lbl_8030539C
/* 80305394 00300FF4  38 1C 00 01 */	addi r0, r28, 1
/* 80305398 00300FF8  7C 1C 07 34 */	extsh r28, r0
lbl_8030539C:
/* 8030539C 00300FFC  3B 9C 00 01 */	addi r28, r28, 1
/* 803053A0 00301000  3B 5A FF FF */	addi r26, r26, -1
lbl_803053A4:
/* 803053A4 00301004  7F 40 07 35 */	extsh. r0, r26
/* 803053A8 00301008  40 82 FF CC */	bne lbl_80305374
/* 803053AC 0030100C  48 00 00 48 */	b lbl_803053F4
lbl_803053B0:
/* 803053B0 00301010  3F C0 80 58 */	lis r30, lbl_8057F5C8@ha
/* 803053B4 00301014  83 63 00 00 */	lwz r27, 0(r3)
/* 803053B8 00301018  3B DE F5 C8 */	addi r30, r30, lbl_8057F5C8@l
/* 803053BC 0030101C  3B A0 00 00 */	li r29, 0
/* 803053C0 00301020  48 00 00 28 */	b lbl_803053E8
lbl_803053C4:
/* 803053C4 00301024  81 9E 00 34 */	lwz r12, 0x34(r30)
/* 803053C8 00301028  7F 63 DB 78 */	mr r3, r27
/* 803053CC 0030102C  7D 89 03 A6 */	mtctr r12
/* 803053D0 00301030  4E 80 04 21 */	bctrl
/* 803053D4 00301034  54 64 08 3C */	slwi r4, r3, 1
/* 803053D8 00301038  7C 60 07 34 */	extsh r0, r3
/* 803053DC 0030103C  7F 7B 22 14 */	add r27, r27, r4
/* 803053E0 00301040  3B BD 00 01 */	addi r29, r29, 1
/* 803053E4 00301044  7F 9C 02 14 */	add r28, r28, r0
lbl_803053E8:
/* 803053E8 00301048  7F A0 07 34 */	extsh r0, r29
/* 803053EC 0030104C  7C 00 D0 00 */	cmpw r0, r26
/* 803053F0 00301050  41 80 FF D4 */	blt lbl_803053C4
lbl_803053F4:
/* 803053F4 00301054  80 7F 00 00 */	lwz r3, 0(r31)
/* 803053F8 00301058  7F 80 07 34 */	extsh r0, r28
/* 803053FC 0030105C  39 61 00 20 */	addi r11, r1, 0x20
/* 80305400 00301060  7C 03 02 14 */	add r0, r3, r0
/* 80305404 00301064  90 1F 00 00 */	stw r0, 0(r31)
/* 80305408 00301068  4B EC 1D 69 */	bl _restgpr_26
/* 8030540C 0030106C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80305410 00301070  7C 08 03 A6 */	mtlr r0
/* 80305414 00301074  38 21 00 20 */	addi r1, r1, 0x20
/* 80305418 00301078  4E 80 00 20 */	blr

.global VFiPFSTR_InitStr
VFiPFSTR_InitStr:
/* 8030541C 0030107C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80305420 00301080  7C 08 02 A6 */	mflr r0
/* 80305424 00301084  2C 03 00 00 */	cmpwi r3, 0
/* 80305428 00301088  90 01 00 24 */	stw r0, 0x24(r1)
/* 8030542C 0030108C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80305430 00301090  7C BF 2B 78 */	mr r31, r5
/* 80305434 00301094  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80305438 00301098  7C 9E 23 78 */	mr r30, r4
/* 8030543C 0030109C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80305440 003010A0  7C 7D 1B 78 */	mr r29, r3
/* 80305444 003010A4  41 82 00 0C */	beq lbl_80305450
/* 80305448 003010A8  2C 04 00 00 */	cmpwi r4, 0
/* 8030544C 003010AC  40 82 00 0C */	bne lbl_80305458
lbl_80305450:
/* 80305450 003010B0  38 60 00 0A */	li r3, 0xa
/* 80305454 003010B4  48 00 00 58 */	b lbl_803054AC
lbl_80305458:
/* 80305458 003010B8  28 05 00 01 */	cmplwi r5, 1
/* 8030545C 003010BC  40 82 00 1C */	bne lbl_80305478
/* 80305460 003010C0  90 83 00 00 */	stw r4, 0(r3)
/* 80305464 003010C4  7F C3 F3 78 */	mr r3, r30
/* 80305468 003010C8  4B FF FC 65 */	bl VFipf_strlen
/* 8030546C 003010CC  7C 1E 1A 14 */	add r0, r30, r3
/* 80305470 003010D0  90 1D 00 04 */	stw r0, 4(r29)
/* 80305474 003010D4  48 00 00 30 */	b lbl_803054A4
lbl_80305478:
/* 80305478 003010D8  28 05 00 02 */	cmplwi r5, 2
/* 8030547C 003010DC  40 82 00 20 */	bne lbl_8030549C
/* 80305480 003010E0  90 83 00 00 */	stw r4, 0(r3)
/* 80305484 003010E4  7F C3 F3 78 */	mr r3, r30
/* 80305488 003010E8  48 00 03 D9 */	bl VFipf_w_strlen
/* 8030548C 003010EC  54 60 08 3C */	slwi r0, r3, 1
/* 80305490 003010F0  7C 1E 02 14 */	add r0, r30, r0
/* 80305494 003010F4  90 1D 00 04 */	stw r0, 4(r29)
/* 80305498 003010F8  48 00 00 0C */	b lbl_803054A4
lbl_8030549C:
/* 8030549C 003010FC  38 60 00 0A */	li r3, 0xa
/* 803054A0 00301100  48 00 00 0C */	b lbl_803054AC
lbl_803054A4:
/* 803054A4 00301104  93 FD 00 0C */	stw r31, 0xc(r29)
/* 803054A8 00301108  38 60 00 00 */	li r3, 0
lbl_803054AC:
/* 803054AC 0030110C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 803054B0 00301110  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 803054B4 00301114  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 803054B8 00301118  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 803054BC 0030111C  7C 08 03 A6 */	mtlr r0
/* 803054C0 00301120  38 21 00 20 */	addi r1, r1, 0x20
/* 803054C4 00301124  4E 80 00 20 */	blr

.global VFiPFSTR_StrLen
VFiPFSTR_StrLen:
/* 803054C8 00301128  80 83 00 00 */	lwz r4, 0(r3)
/* 803054CC 0030112C  80 03 00 04 */	lwz r0, 4(r3)
/* 803054D0 00301130  7C 04 00 50 */	subf r0, r4, r0
/* 803054D4 00301134  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 803054D8 00301138  4E 80 00 20 */	blr

.global VFiPFSTR_StrNumChar
VFiPFSTR_StrNumChar:
/* 803054DC 0030113C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803054E0 00301140  7C 08 02 A6 */	mflr r0
/* 803054E4 00301144  28 04 00 01 */	cmplwi r4, 1
/* 803054E8 00301148  90 01 00 24 */	stw r0, 0x24(r1)
/* 803054EC 0030114C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 803054F0 00301150  93 C1 00 18 */	stw r30, 0x18(r1)
/* 803054F4 00301154  93 A1 00 14 */	stw r29, 0x14(r1)
/* 803054F8 00301158  40 82 00 0C */	bne lbl_80305504
/* 803054FC 0030115C  83 C3 00 00 */	lwz r30, 0(r3)
/* 80305500 00301160  48 00 00 08 */	b lbl_80305508
lbl_80305504:
/* 80305504 00301164  83 C3 00 04 */	lwz r30, 4(r3)
lbl_80305508:
/* 80305508 00301168  80 03 00 0C */	lwz r0, 0xc(r3)
/* 8030550C 0030116C  28 00 00 01 */	cmplwi r0, 1
/* 80305510 00301170  40 82 00 4C */	bne lbl_8030555C
/* 80305514 00301174  3F E0 80 58 */	lis r31, lbl_8057F5C8@ha
/* 80305518 00301178  3B A0 00 00 */	li r29, 0
/* 8030551C 0030117C  3B FF F5 C8 */	addi r31, r31, lbl_8057F5C8@l
/* 80305520 00301180  48 00 00 2C */	b lbl_8030554C
lbl_80305524:
/* 80305524 00301184  81 9F 00 30 */	lwz r12, 0x30(r31)
/* 80305528 00301188  7C 63 07 74 */	extsb r3, r3
/* 8030552C 0030118C  38 80 00 01 */	li r4, 1
/* 80305530 00301190  7D 89 03 A6 */	mtctr r12
/* 80305534 00301194  4E 80 04 21 */	bctrl
/* 80305538 00301198  2C 03 00 00 */	cmpwi r3, 0
/* 8030553C 0030119C  41 82 00 08 */	beq lbl_80305544
/* 80305540 003011A0  3B DE 00 01 */	addi r30, r30, 1
lbl_80305544:
/* 80305544 003011A4  3B DE 00 01 */	addi r30, r30, 1
/* 80305548 003011A8  3B BD 00 01 */	addi r29, r29, 1
lbl_8030554C:
/* 8030554C 003011AC  88 7E 00 00 */	lbz r3, 0(r30)
/* 80305550 003011B0  7C 60 07 75 */	extsb. r0, r3
/* 80305554 003011B4  40 82 FF D0 */	bne lbl_80305524
/* 80305558 003011B8  48 00 00 44 */	b lbl_8030559C
lbl_8030555C:
/* 8030555C 003011BC  3F E0 80 58 */	lis r31, lbl_8057F5C8@ha
/* 80305560 003011C0  3B A0 00 00 */	li r29, 0
/* 80305564 003011C4  3B FF F5 C8 */	addi r31, r31, lbl_8057F5C8@l
/* 80305568 003011C8  48 00 00 1C */	b lbl_80305584
lbl_8030556C:
/* 8030556C 003011CC  81 9F 00 34 */	lwz r12, 0x34(r31)
/* 80305570 003011D0  7F C3 F3 78 */	mr r3, r30
/* 80305574 003011D4  7D 89 03 A6 */	mtctr r12
/* 80305578 003011D8  4E 80 04 21 */	bctrl
/* 8030557C 003011DC  7F DE 1A 14 */	add r30, r30, r3
/* 80305580 003011E0  3B BD 00 01 */	addi r29, r29, 1
lbl_80305584:
/* 80305584 003011E4  88 1E 00 00 */	lbz r0, 0(r30)
/* 80305588 003011E8  7C 00 07 75 */	extsb. r0, r0
/* 8030558C 003011EC  40 82 FF E0 */	bne lbl_8030556C
/* 80305590 003011F0  88 1E 00 01 */	lbz r0, 1(r30)
/* 80305594 003011F4  7C 00 07 75 */	extsb. r0, r0
/* 80305598 003011F8  40 82 FF D4 */	bne lbl_8030556C
lbl_8030559C:
/* 8030559C 003011FC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 803055A0 00301200  7F A3 EB 78 */	mr r3, r29
/* 803055A4 00301204  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 803055A8 00301208  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 803055AC 0030120C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 803055B0 00301210  7C 08 03 A6 */	mtlr r0
/* 803055B4 00301214  38 21 00 20 */	addi r1, r1, 0x20
/* 803055B8 00301218  4E 80 00 20 */	blr

.global VFiPFSTR_StrCmp
VFiPFSTR_StrCmp:
/* 803055BC 0030121C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803055C0 00301220  7C 08 02 A6 */	mflr r0
/* 803055C4 00301224  90 01 00 24 */	stw r0, 0x24(r1)
/* 803055C8 00301228  80 03 00 0C */	lwz r0, 0xc(r3)
/* 803055CC 0030122C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 803055D0 00301230  28 00 00 01 */	cmplwi r0, 1
/* 803055D4 00301234  93 C1 00 18 */	stw r30, 0x18(r1)
/* 803055D8 00301238  93 A1 00 14 */	stw r29, 0x14(r1)
/* 803055DC 0030123C  7C 9D 23 78 */	mr r29, r4
/* 803055E0 00301240  40 82 00 10 */	bne lbl_803055F0
/* 803055E4 00301244  80 63 00 00 */	lwz r3, 0(r3)
/* 803055E8 00301248  4B FF FB 29 */	bl VFipf_strcmp
/* 803055EC 0030124C  48 00 00 58 */	b lbl_80305644
lbl_803055F0:
/* 803055F0 00301250  3F E0 80 58 */	lis r31, lbl_8057F5C8@ha
/* 803055F4 00301254  83 C3 00 00 */	lwz r30, 0(r3)
/* 803055F8 00301258  3B FF F5 C8 */	addi r31, r31, lbl_8057F5C8@l
lbl_803055FC:
/* 803055FC 0030125C  81 9F 00 24 */	lwz r12, 0x24(r31)
/* 80305600 00301260  7F A3 EB 78 */	mr r3, r29
/* 80305604 00301264  38 81 00 08 */	addi r4, r1, 8
/* 80305608 00301268  7D 89 03 A6 */	mtctr r12
/* 8030560C 0030126C  4E 80 04 21 */	bctrl
/* 80305610 00301270  A0 1E 00 00 */	lhz r0, 0(r30)
/* 80305614 00301274  3B BD 00 01 */	addi r29, r29, 1
/* 80305618 00301278  A0 61 00 08 */	lhz r3, 8(r1)
/* 8030561C 0030127C  3B DE 00 02 */	addi r30, r30, 2
/* 80305620 00301280  7C 00 18 40 */	cmplw r0, r3
/* 80305624 00301284  40 82 00 18 */	bne lbl_8030563C
/* 80305628 00301288  A0 1E FF FE */	lhz r0, -2(r30)
/* 8030562C 0030128C  2C 00 00 00 */	cmpwi r0, 0
/* 80305630 00301290  41 82 00 0C */	beq lbl_8030563C
/* 80305634 00301294  2C 03 00 00 */	cmpwi r3, 0
/* 80305638 00301298  40 82 FF C4 */	bne lbl_803055FC
lbl_8030563C:
/* 8030563C 0030129C  A0 1E FF FE */	lhz r0, -2(r30)
/* 80305640 003012A0  7C 63 00 50 */	subf r3, r3, r0
lbl_80305644:
/* 80305644 003012A4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80305648 003012A8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8030564C 003012AC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80305650 003012B0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80305654 003012B4  7C 08 03 A6 */	mtlr r0
/* 80305658 003012B8  38 21 00 20 */	addi r1, r1, 0x20
/* 8030565C 003012BC  4E 80 00 20 */	blr

.global VFiPFSTR_StrNCmp
VFiPFSTR_StrNCmp:
/* 80305660 003012C0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80305664 003012C4  7C 08 02 A6 */	mflr r0
/* 80305668 003012C8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8030566C 003012CC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80305670 003012D0  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80305674 003012D4  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80305678 003012D8  7C FD 3B 78 */	mr r29, r7
/* 8030567C 003012DC  93 81 00 10 */	stw r28, 0x10(r1)
/* 80305680 003012E0  7C 9C 23 78 */	mr r28, r4
/* 80305684 003012E4  80 03 00 0C */	lwz r0, 0xc(r3)
/* 80305688 003012E8  28 00 00 01 */	cmplwi r0, 1
/* 8030568C 003012EC  41 82 00 0C */	beq lbl_80305698
/* 80305690 003012F0  28 05 00 03 */	cmplwi r5, 3
/* 80305694 003012F4  40 82 00 44 */	bne lbl_803056D8
lbl_80305698:
/* 80305698 003012F8  28 05 00 01 */	cmplwi r5, 1
/* 8030569C 003012FC  40 82 00 10 */	bne lbl_803056AC
/* 803056A0 00301300  80 03 00 00 */	lwz r0, 0(r3)
/* 803056A4 00301304  7C 60 32 14 */	add r3, r0, r6
/* 803056A8 00301308  48 00 00 20 */	b lbl_803056C8
lbl_803056AC:
/* 803056AC 0030130C  28 05 00 02 */	cmplwi r5, 2
/* 803056B0 00301310  40 82 00 10 */	bne lbl_803056C0
/* 803056B4 00301314  80 03 00 04 */	lwz r0, 4(r3)
/* 803056B8 00301318  7C 60 32 14 */	add r3, r0, r6
/* 803056BC 0030131C  48 00 00 0C */	b lbl_803056C8
lbl_803056C0:
/* 803056C0 00301320  80 03 00 08 */	lwz r0, 8(r3)
/* 803056C4 00301324  7C 60 32 14 */	add r3, r0, r6
lbl_803056C8:
/* 803056C8 00301328  7F 84 E3 78 */	mr r4, r28
/* 803056CC 0030132C  7F A5 EB 78 */	mr r5, r29
/* 803056D0 00301330  4B FF FA 79 */	bl VFipf_strncmp
/* 803056D4 00301334  48 00 00 84 */	b lbl_80305758
lbl_803056D8:
/* 803056D8 00301338  28 05 00 01 */	cmplwi r5, 1
/* 803056DC 0030133C  40 82 00 14 */	bne lbl_803056F0
/* 803056E0 00301340  80 63 00 00 */	lwz r3, 0(r3)
/* 803056E4 00301344  54 C0 08 3C */	slwi r0, r6, 1
/* 803056E8 00301348  7F C3 02 14 */	add r30, r3, r0
/* 803056EC 0030134C  48 00 00 10 */	b lbl_803056FC
lbl_803056F0:
/* 803056F0 00301350  80 63 00 04 */	lwz r3, 4(r3)
/* 803056F4 00301354  54 C0 08 3C */	slwi r0, r6, 1
/* 803056F8 00301358  7F C3 02 14 */	add r30, r3, r0
lbl_803056FC:
/* 803056FC 0030135C  3F E0 80 58 */	lis r31, lbl_8057F5C8@ha
/* 80305700 00301360  3B FF F5 C8 */	addi r31, r31, lbl_8057F5C8@l
lbl_80305704:
/* 80305704 00301364  81 9F 00 24 */	lwz r12, 0x24(r31)
/* 80305708 00301368  7F 83 E3 78 */	mr r3, r28
/* 8030570C 0030136C  38 81 00 08 */	addi r4, r1, 8
/* 80305710 00301370  7D 89 03 A6 */	mtctr r12
/* 80305714 00301374  4E 80 04 21 */	bctrl
/* 80305718 00301378  A0 1E 00 00 */	lhz r0, 0(r30)
/* 8030571C 0030137C  3B 9C 00 01 */	addi r28, r28, 1
/* 80305720 00301380  A0 61 00 08 */	lhz r3, 8(r1)
/* 80305724 00301384  3B BD FF FF */	addi r29, r29, -1
/* 80305728 00301388  3B DE 00 02 */	addi r30, r30, 2
/* 8030572C 0030138C  7C 00 18 40 */	cmplw r0, r3
/* 80305730 00301390  40 82 00 20 */	bne lbl_80305750
/* 80305734 00301394  57 A0 04 3F */	clrlwi. r0, r29, 0x10
/* 80305738 00301398  41 82 00 18 */	beq lbl_80305750
/* 8030573C 0030139C  A0 1E FF FE */	lhz r0, -2(r30)
/* 80305740 003013A0  2C 00 00 00 */	cmpwi r0, 0
/* 80305744 003013A4  41 82 00 0C */	beq lbl_80305750
/* 80305748 003013A8  2C 03 00 00 */	cmpwi r3, 0
/* 8030574C 003013AC  40 82 FF B8 */	bne lbl_80305704
lbl_80305750:
/* 80305750 003013B0  A0 1E FF FE */	lhz r0, -2(r30)
/* 80305754 003013B4  7C 63 00 50 */	subf r3, r3, r0
lbl_80305758:
/* 80305758 003013B8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8030575C 003013BC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80305760 003013C0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80305764 003013C4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80305768 003013C8  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8030576C 003013CC  7C 08 03 A6 */	mtlr r0
/* 80305770 003013D0  38 21 00 20 */	addi r1, r1, 0x20
/* 80305774 003013D4  4E 80 00 20 */	blr

.global VFiPFSTR_ToUpperNStr
VFiPFSTR_ToUpperNStr:
/* 80305778 003013D8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8030577C 003013DC  7C 08 02 A6 */	mflr r0
/* 80305780 003013E0  90 01 00 24 */	stw r0, 0x24(r1)
/* 80305784 003013E4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80305788 003013E8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8030578C 003013EC  7C BE 2B 78 */	mr r30, r5
/* 80305790 003013F0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80305794 003013F4  7C 9D 23 78 */	mr r29, r4
/* 80305798 003013F8  80 03 00 0C */	lwz r0, 0xc(r3)
/* 8030579C 003013FC  28 00 00 01 */	cmplwi r0, 1
/* 803057A0 00301400  40 82 00 3C */	bne lbl_803057DC
/* 803057A4 00301404  83 E3 00 00 */	lwz r31, 0(r3)
/* 803057A8 00301408  48 00 00 1C */	b lbl_803057C4
lbl_803057AC:
/* 803057AC 0030140C  7C 63 07 74 */	extsb r3, r3
/* 803057B0 00301410  4B FF F6 E5 */	bl VFipf_toupper
/* 803057B4 00301414  98 7E 00 00 */	stb r3, 0(r30)
/* 803057B8 00301418  3B DE 00 01 */	addi r30, r30, 1
/* 803057BC 0030141C  3B FF 00 01 */	addi r31, r31, 1
/* 803057C0 00301420  3B BD FF FF */	addi r29, r29, -1
lbl_803057C4:
/* 803057C4 00301424  57 A0 04 3F */	clrlwi. r0, r29, 0x10
/* 803057C8 00301428  41 82 00 74 */	beq lbl_8030583C
/* 803057CC 0030142C  88 7F 00 00 */	lbz r3, 0(r31)
/* 803057D0 00301430  7C 60 07 75 */	extsb. r0, r3
/* 803057D4 00301434  40 82 FF D8 */	bne lbl_803057AC
/* 803057D8 00301438  48 00 00 64 */	b lbl_8030583C
lbl_803057DC:
/* 803057DC 0030143C  80 83 00 00 */	lwz r4, 0(r3)
/* 803057E0 00301440  48 00 00 40 */	b lbl_80305820
lbl_803057E4:
/* 803057E4 00301444  28 03 00 61 */	cmplwi r3, 0x61
/* 803057E8 00301448  38 00 00 00 */	li r0, 0
/* 803057EC 0030144C  41 80 00 10 */	blt lbl_803057FC
/* 803057F0 00301450  28 03 00 7A */	cmplwi r3, 0x7a
/* 803057F4 00301454  41 81 00 08 */	bgt lbl_803057FC
/* 803057F8 00301458  38 00 00 01 */	li r0, 1
lbl_803057FC:
/* 803057FC 0030145C  2C 00 00 00 */	cmpwi r0, 0
/* 80305800 00301460  41 82 00 08 */	beq lbl_80305808
/* 80305804 00301464  38 63 FF E0 */	addi r3, r3, -32
lbl_80305808:
/* 80305808 00301468  98 7E 00 00 */	stb r3, 0(r30)
/* 8030580C 0030146C  54 60 C6 3E */	rlwinm r0, r3, 0x18, 0x18, 0x1f
/* 80305810 00301470  38 84 00 02 */	addi r4, r4, 2
/* 80305814 00301474  3B BD FF FF */	addi r29, r29, -1
/* 80305818 00301478  98 1E 00 01 */	stb r0, 1(r30)
/* 8030581C 0030147C  3B DE 00 02 */	addi r30, r30, 2
lbl_80305820:
/* 80305820 00301480  57 A0 04 3F */	clrlwi. r0, r29, 0x10
/* 80305824 00301484  41 82 00 10 */	beq lbl_80305834
/* 80305828 00301488  A0 64 00 00 */	lhz r3, 0(r4)
/* 8030582C 0030148C  2C 03 00 00 */	cmpwi r3, 0
/* 80305830 00301490  40 82 FF B4 */	bne lbl_803057E4
lbl_80305834:
/* 80305834 00301494  38 00 00 00 */	li r0, 0
/* 80305838 00301498  98 1E 00 00 */	stb r0, 0(r30)
lbl_8030583C:
/* 8030583C 0030149C  38 00 00 00 */	li r0, 0
/* 80305840 003014A0  98 1E 00 00 */	stb r0, 0(r30)
/* 80305844 003014A4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80305848 003014A8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8030584C 003014AC  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80305850 003014B0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80305854 003014B4  7C 08 03 A6 */	mtlr r0
/* 80305858 003014B8  38 21 00 20 */	addi r1, r1, 0x20
/* 8030585C 003014BC  4E 80 00 20 */	blr