summaryrefslogtreecommitdiff
path: root/asm/SDK/OS/OSFont.s
blob: 519a7709927d071337fc72093170125218d40627 (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
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
.include "macros.inc"

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

.global GetFontCode
GetFontCode:
/* 8026DA94 002696F4  28 03 00 01 */	cmplwi r3, 1
/* 8026DA98 002696F8  40 82 01 10 */	bne lbl_8026DBA8
/* 8026DA9C 002696FC  28 04 00 20 */	cmplwi r4, 0x20
/* 8026DAA0 00269700  41 80 00 24 */	blt lbl_8026DAC4
/* 8026DAA4 00269704  28 04 00 DF */	cmplwi r4, 0xdf
/* 8026DAA8 00269708  41 81 00 1C */	bgt lbl_8026DAC4
/* 8026DAAC 0026970C  38 04 FF E0 */	addi r0, r4, -32
/* 8026DAB0 00269710  3C 60 80 42 */	lis r3, lbl_804271C8@ha
/* 8026DAB4 00269714  54 00 08 3C */	slwi r0, r0, 1
/* 8026DAB8 00269718  38 63 71 C8 */	addi r3, r3, lbl_804271C8@l
/* 8026DABC 0026971C  7C 63 02 2E */	lhzx r3, r3, r0
/* 8026DAC0 00269720  4E 80 00 20 */	blr
lbl_8026DAC4:
/* 8026DAC4 00269724  28 04 88 9E */	cmplwi r4, 0x889e
/* 8026DAC8 00269728  40 81 00 68 */	ble lbl_8026DB30
/* 8026DACC 0026972C  28 04 98 72 */	cmplwi r4, 0x9872
/* 8026DAD0 00269730  41 81 00 60 */	bgt lbl_8026DB30
/* 8026DAD4 00269734  54 83 C6 3E */	rlwinm r3, r4, 0x18, 0x18, 0x1f
/* 8026DAD8 00269738  54 84 06 3E */	clrlwi r4, r4, 0x18
/* 8026DADC 0026973C  38 63 FF 78 */	addi r3, r3, -136
/* 8026DAE0 00269740  38 00 00 00 */	li r0, 0
/* 8026DAE4 00269744  28 04 00 40 */	cmplwi r4, 0x40
/* 8026DAE8 00269748  1C 63 00 BC */	mulli r3, r3, 0xbc
/* 8026DAEC 0026974C  41 80 00 18 */	blt lbl_8026DB04
/* 8026DAF0 00269750  28 04 00 FC */	cmplwi r4, 0xfc
/* 8026DAF4 00269754  41 81 00 10 */	bgt lbl_8026DB04
/* 8026DAF8 00269758  28 04 00 7F */	cmplwi r4, 0x7f
/* 8026DAFC 0026975C  41 82 00 08 */	beq lbl_8026DB04
/* 8026DB00 00269760  38 00 00 01 */	li r0, 1
lbl_8026DB04:
/* 8026DB04 00269764  2C 00 00 00 */	cmpwi r0, 0
/* 8026DB08 00269768  40 82 00 0C */	bne lbl_8026DB14
/* 8026DB0C 0026976C  38 60 00 00 */	li r3, 0
/* 8026DB10 00269770  4E 80 00 20 */	blr
lbl_8026DB14:
/* 8026DB14 00269774  38 84 FF C0 */	addi r4, r4, -64
/* 8026DB18 00269778  2C 04 00 40 */	cmpwi r4, 0x40
/* 8026DB1C 0026977C  41 80 00 08 */	blt lbl_8026DB24
/* 8026DB20 00269780  38 84 FF FF */	addi r4, r4, -1
lbl_8026DB24:
/* 8026DB24 00269784  7C 63 22 14 */	add r3, r3, r4
/* 8026DB28 00269788  38 63 02 BE */	addi r3, r3, 0x2be
/* 8026DB2C 0026978C  4E 80 00 20 */	blr
lbl_8026DB30:
/* 8026DB30 00269790  28 04 81 40 */	cmplwi r4, 0x8140
/* 8026DB34 00269794  41 80 00 8C */	blt lbl_8026DBC0
/* 8026DB38 00269798  28 04 87 9E */	cmplwi r4, 0x879e
/* 8026DB3C 0026979C  40 80 00 84 */	bge lbl_8026DBC0
/* 8026DB40 002697A0  54 83 C6 3E */	rlwinm r3, r4, 0x18, 0x18, 0x1f
/* 8026DB44 002697A4  54 84 06 3E */	clrlwi r4, r4, 0x18
/* 8026DB48 002697A8  38 63 FF 7F */	addi r3, r3, -129
/* 8026DB4C 002697AC  38 00 00 00 */	li r0, 0
/* 8026DB50 002697B0  28 04 00 40 */	cmplwi r4, 0x40
/* 8026DB54 002697B4  1C 63 00 BC */	mulli r3, r3, 0xbc
/* 8026DB58 002697B8  41 80 00 18 */	blt lbl_8026DB70
/* 8026DB5C 002697BC  28 04 00 FC */	cmplwi r4, 0xfc
/* 8026DB60 002697C0  41 81 00 10 */	bgt lbl_8026DB70
/* 8026DB64 002697C4  28 04 00 7F */	cmplwi r4, 0x7f
/* 8026DB68 002697C8  41 82 00 08 */	beq lbl_8026DB70
/* 8026DB6C 002697CC  38 00 00 01 */	li r0, 1
lbl_8026DB70:
/* 8026DB70 002697D0  2C 00 00 00 */	cmpwi r0, 0
/* 8026DB74 002697D4  40 82 00 0C */	bne lbl_8026DB80
/* 8026DB78 002697D8  38 60 00 00 */	li r3, 0
/* 8026DB7C 002697DC  4E 80 00 20 */	blr
lbl_8026DB80:
/* 8026DB80 002697E0  38 84 FF C0 */	addi r4, r4, -64
/* 8026DB84 002697E4  2C 04 00 40 */	cmpwi r4, 0x40
/* 8026DB88 002697E8  41 80 00 08 */	blt lbl_8026DB90
/* 8026DB8C 002697EC  38 84 FF FF */	addi r4, r4, -1
lbl_8026DB90:
/* 8026DB90 002697F0  7C 03 22 14 */	add r0, r3, r4
/* 8026DB94 002697F4  3C 60 80 42 */	lis r3, lbl_80427348@ha
/* 8026DB98 002697F8  54 00 08 3C */	slwi r0, r0, 1
/* 8026DB9C 002697FC  38 63 73 48 */	addi r3, r3, lbl_80427348@l
/* 8026DBA0 00269800  7C 63 02 2E */	lhzx r3, r3, r0
/* 8026DBA4 00269804  4E 80 00 20 */	blr
lbl_8026DBA8:
/* 8026DBA8 00269808  28 04 00 20 */	cmplwi r4, 0x20
/* 8026DBAC 0026980C  40 81 00 14 */	ble lbl_8026DBC0
/* 8026DBB0 00269810  28 04 00 FF */	cmplwi r4, 0xff
/* 8026DBB4 00269814  41 81 00 0C */	bgt lbl_8026DBC0
/* 8026DBB8 00269818  38 64 FF E0 */	addi r3, r4, -32
/* 8026DBBC 0026981C  4E 80 00 20 */	blr
lbl_8026DBC0:
/* 8026DBC0 00269820  38 60 00 00 */	li r3, 0
/* 8026DBC4 00269824  4E 80 00 20 */	blr

.global Decode
Decode:
/* 8026DBC8 00269828  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8026DBCC 0026982C  7C 08 02 A6 */	mflr r0
/* 8026DBD0 00269830  90 01 00 24 */	stw r0, 0x24(r1)
/* 8026DBD4 00269834  39 61 00 20 */	addi r11, r1, 0x20
/* 8026DBD8 00269838  4B F5 95 4D */	bl _savegpr_26
/* 8026DBDC 0026983C  80 A3 00 0C */	lwz r5, 0xc(r3)
/* 8026DBE0 00269840  3B C3 00 10 */	addi r30, r3, 0x10
/* 8026DBE4 00269844  80 03 00 04 */	lwz r0, 4(r3)
/* 8026DBE8 00269848  39 00 00 00 */	li r8, 0
/* 8026DBEC 0026984C  7F A3 2A 14 */	add r29, r3, r5
/* 8026DBF0 00269850  81 23 00 08 */	lwz r9, 8(r3)
/* 8026DBF4 00269854  39 60 00 00 */	li r11, 0
/* 8026DBF8 00269858  3C A0 80 00 */	lis r5, 0x8000
lbl_8026DBFC:
/* 8026DBFC 0026985C  2C 0B 00 00 */	cmpwi r11, 0
/* 8026DC00 00269860  40 82 00 10 */	bne lbl_8026DC10
/* 8026DC04 00269864  81 9E 00 00 */	lwz r12, 0(r30)
/* 8026DC08 00269868  39 60 00 20 */	li r11, 0x20
/* 8026DC0C 0026986C  3B DE 00 04 */	addi r30, r30, 4
lbl_8026DC10:
/* 8026DC10 00269870  55 86 00 01 */	rlwinm. r6, r12, 0, 0, 0
/* 8026DC14 00269874  41 82 00 18 */	beq lbl_8026DC2C
/* 8026DC18 00269878  88 DD 00 00 */	lbz r6, 0(r29)
/* 8026DC1C 0026987C  3B BD 00 01 */	addi r29, r29, 1
/* 8026DC20 00269880  7C C4 41 AE */	stbx r6, r4, r8
/* 8026DC24 00269884  39 08 00 01 */	addi r8, r8, 1
/* 8026DC28 00269888  48 00 01 1C */	b lbl_8026DD44
lbl_8026DC2C:
/* 8026DC2C 0026988C  7C E3 4A 14 */	add r7, r3, r9
/* 8026DC30 00269890  7C C3 48 AE */	lbzx r6, r3, r9
/* 8026DC34 00269894  88 E7 00 01 */	lbz r7, 1(r7)
/* 8026DC38 00269898  39 29 00 02 */	addi r9, r9, 2
/* 8026DC3C 0026989C  50 C7 44 2E */	rlwimi r7, r6, 8, 0x10, 0x17
/* 8026DC40 002698A0  7C EA 66 71 */	srawi. r10, r7, 0xc
/* 8026DC44 002698A4  54 E6 05 3E */	clrlwi r6, r7, 0x14
/* 8026DC48 002698A8  7C E6 40 50 */	subf r7, r6, r8
/* 8026DC4C 002698AC  40 82 00 14 */	bne lbl_8026DC60
/* 8026DC50 002698B0  88 DD 00 00 */	lbz r6, 0(r29)
/* 8026DC54 002698B4  3B BD 00 01 */	addi r29, r29, 1
/* 8026DC58 002698B8  39 46 00 12 */	addi r10, r6, 0x12
/* 8026DC5C 002698BC  48 00 00 08 */	b lbl_8026DC64
lbl_8026DC60:
/* 8026DC60 002698C0  39 4A 00 02 */	addi r10, r10, 2
lbl_8026DC64:
/* 8026DC64 002698C4  2C 8A 00 00 */	cmpwi cr1, r10, 0
/* 8026DC68 002698C8  38 C0 00 00 */	li r6, 0
/* 8026DC6C 002698CC  40 85 00 D8 */	ble cr1, lbl_8026DD44
/* 8026DC70 002698D0  2C 0A 00 08 */	cmpwi r10, 8
/* 8026DC74 002698D4  3B 6A FF F8 */	addi r27, r10, -8
/* 8026DC78 002698D8  40 81 00 98 */	ble lbl_8026DD10
/* 8026DC7C 002698DC  3B 80 00 00 */	li r28, 0
/* 8026DC80 002698E0  41 84 00 14 */	blt cr1, lbl_8026DC94
/* 8026DC84 002698E4  3B 45 FF FE */	addi r26, r5, -2
/* 8026DC88 002698E8  7C 0A D0 00 */	cmpw r10, r26
/* 8026DC8C 002698EC  41 81 00 08 */	bgt lbl_8026DC94
/* 8026DC90 002698F0  3B 80 00 01 */	li r28, 1
lbl_8026DC94:
/* 8026DC94 002698F4  2C 1C 00 00 */	cmpwi r28, 0
/* 8026DC98 002698F8  41 82 00 78 */	beq lbl_8026DD10
/* 8026DC9C 002698FC  3B FB 00 07 */	addi r31, r27, 7
/* 8026DCA0 00269900  7F 84 42 14 */	add r28, r4, r8
/* 8026DCA4 00269904  57 FF E8 FE */	srwi r31, r31, 3
/* 8026DCA8 00269908  7F E9 03 A6 */	mtctr r31
/* 8026DCAC 0026990C  2C 1B 00 00 */	cmpwi r27, 0
/* 8026DCB0 00269910  40 81 00 60 */	ble lbl_8026DD10
lbl_8026DCB4:
/* 8026DCB4 00269914  7F 44 3A 14 */	add r26, r4, r7
/* 8026DCB8 00269918  7F 68 22 14 */	add r27, r8, r4
/* 8026DCBC 0026991C  8B FA FF FF */	lbz r31, -1(r26)
/* 8026DCC0 00269920  39 08 00 08 */	addi r8, r8, 8
/* 8026DCC4 00269924  38 C6 00 08 */	addi r6, r6, 8
/* 8026DCC8 00269928  9B FC 00 00 */	stb r31, 0(r28)
/* 8026DCCC 0026992C  3B 9C 00 08 */	addi r28, r28, 8
/* 8026DCD0 00269930  7F E4 38 AE */	lbzx r31, r4, r7
/* 8026DCD4 00269934  38 E7 00 08 */	addi r7, r7, 8
/* 8026DCD8 00269938  9B FB 00 01 */	stb r31, 1(r27)
/* 8026DCDC 0026993C  8B FA 00 01 */	lbz r31, 1(r26)
/* 8026DCE0 00269940  9B FB 00 02 */	stb r31, 2(r27)
/* 8026DCE4 00269944  8B FA 00 02 */	lbz r31, 2(r26)
/* 8026DCE8 00269948  9B FB 00 03 */	stb r31, 3(r27)
/* 8026DCEC 0026994C  8B FA 00 03 */	lbz r31, 3(r26)
/* 8026DCF0 00269950  9B FB 00 04 */	stb r31, 4(r27)
/* 8026DCF4 00269954  8B FA 00 04 */	lbz r31, 4(r26)
/* 8026DCF8 00269958  9B FB 00 05 */	stb r31, 5(r27)
/* 8026DCFC 0026995C  8B FA 00 05 */	lbz r31, 5(r26)
/* 8026DD00 00269960  9B FB 00 06 */	stb r31, 6(r27)
/* 8026DD04 00269964  8B FA 00 06 */	lbz r31, 6(r26)
/* 8026DD08 00269968  9B FB 00 07 */	stb r31, 7(r27)
/* 8026DD0C 0026996C  42 00 FF A8 */	bdnz lbl_8026DCB4
lbl_8026DD10:
/* 8026DD10 00269970  7F E6 50 50 */	subf r31, r6, r10
/* 8026DD14 00269974  7F 84 42 14 */	add r28, r4, r8
/* 8026DD18 00269978  7F E9 03 A6 */	mtctr r31
/* 8026DD1C 0026997C  7C 06 50 00 */	cmpw r6, r10
/* 8026DD20 00269980  40 80 00 24 */	bge lbl_8026DD44
lbl_8026DD24:
/* 8026DD24 00269984  7D 44 3A 14 */	add r10, r4, r7
/* 8026DD28 00269988  38 C6 00 01 */	addi r6, r6, 1
/* 8026DD2C 0026998C  89 4A FF FF */	lbz r10, -1(r10)
/* 8026DD30 00269990  39 08 00 01 */	addi r8, r8, 1
/* 8026DD34 00269994  38 E7 00 01 */	addi r7, r7, 1
/* 8026DD38 00269998  99 5C 00 00 */	stb r10, 0(r28)
/* 8026DD3C 0026999C  3B 9C 00 01 */	addi r28, r28, 1
/* 8026DD40 002699A0  42 00 FF E4 */	bdnz lbl_8026DD24
lbl_8026DD44:
/* 8026DD44 002699A4  7C 08 00 00 */	cmpw r8, r0
/* 8026DD48 002699A8  55 8C 08 3C */	slwi r12, r12, 1
/* 8026DD4C 002699AC  39 6B FF FF */	addi r11, r11, -1
/* 8026DD50 002699B0  41 80 FE AC */	blt lbl_8026DBFC
/* 8026DD54 002699B4  39 61 00 20 */	addi r11, r1, 0x20
/* 8026DD58 002699B8  4B F5 94 19 */	bl _restgpr_26
/* 8026DD5C 002699BC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8026DD60 002699C0  7C 08 03 A6 */	mtlr r0
/* 8026DD64 002699C4  38 21 00 20 */	addi r1, r1, 0x20
/* 8026DD68 002699C8  4E 80 00 20 */	blr

.global OSSetFontEncode
OSSetFontEncode:
/* 8026DD6C 002699CC  A0 0D 87 D8 */	lhz r0, lbl_8063DA98-_SDA_BASE_(r13)
/* 8026DD70 002699D0  28 00 FF FF */	cmplwi r0, 0xffff
/* 8026DD74 002699D4  41 82 00 08 */	beq lbl_8026DD7C
/* 8026DD78 002699D8  48 00 00 48 */	b lbl_8026DDC0
lbl_8026DD7C:
/* 8026DD7C 002699DC  3C 80 80 00 */	lis r4, 0x800000CC@ha
/* 8026DD80 002699E0  80 04 00 CC */	lwz r0, 0x800000CC@l(r4)
/* 8026DD84 002699E4  2C 00 00 00 */	cmpwi r0, 0
/* 8026DD88 002699E8  41 82 00 0C */	beq lbl_8026DD94
/* 8026DD8C 002699EC  41 80 00 1C */	blt lbl_8026DDA8
/* 8026DD90 002699F0  48 00 00 18 */	b lbl_8026DDA8
lbl_8026DD94:
/* 8026DD94 002699F4  3C 80 CC 00 */	lis r4, 0xCC00206E@ha
/* 8026DD98 002699F8  A0 04 20 6E */	lhz r0, 0xCC00206E@l(r4)
/* 8026DD9C 002699FC  54 00 FF FE */	rlwinm r0, r0, 0x1f, 0x1f, 0x1f
/* 8026DDA0 00269A00  B0 0D 87 D8 */	sth r0, lbl_8063DA98-_SDA_BASE_(r13)
/* 8026DDA4 00269A04  48 00 00 0C */	b lbl_8026DDB0
lbl_8026DDA8:
/* 8026DDA8 00269A08  38 00 00 00 */	li r0, 0
/* 8026DDAC 00269A0C  B0 0D 87 D8 */	sth r0, lbl_8063DA98-_SDA_BASE_(r13)
lbl_8026DDB0:
/* 8026DDB0 00269A10  3C 80 80 27 */	lis r4, ParseStringS@ha
/* 8026DDB4 00269A14  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 8026DDB8 00269A18  38 84 E2 14 */	addi r4, r4, ParseStringS@l
/* 8026DDBC 00269A1C  90 8D A7 E8 */	stw r4, lbl_8063FAA8-_SDA_BASE_(r13)
lbl_8026DDC0:
/* 8026DDC0 00269A20  28 83 00 05 */	cmplwi cr1, r3, 5
/* 8026DDC4 00269A24  41 85 00 20 */	bgt cr1, lbl_8026DDE4
/* 8026DDC8 00269A28  28 03 00 03 */	cmplwi r3, 3
/* 8026DDCC 00269A2C  B0 6D 87 D8 */	sth r3, lbl_8063DA98-_SDA_BASE_(r13)
/* 8026DDD0 00269A30  41 80 00 14 */	blt lbl_8026DDE4
/* 8026DDD4 00269A34  41 85 00 10 */	bgt cr1, lbl_8026DDE4
/* 8026DDD8 00269A38  3C 60 80 27 */	lis r3, ParseStringW@ha
/* 8026DDDC 00269A3C  38 63 E3 10 */	addi r3, r3, ParseStringW@l
/* 8026DDE0 00269A40  90 6D A7 E8 */	stw r3, lbl_8063FAA8-_SDA_BASE_(r13)
lbl_8026DDE4:
/* 8026DDE4 00269A44  7C 03 03 78 */	mr r3, r0
/* 8026DDE8 00269A48  4E 80 00 20 */	blr

.global ReadFont
ReadFont:
/* 8026DDEC 00269A4C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8026DDF0 00269A50  7C 08 02 A6 */	mflr r0
/* 8026DDF4 00269A54  90 01 00 34 */	stw r0, 0x34(r1)
/* 8026DDF8 00269A58  39 61 00 30 */	addi r11, r1, 0x30
/* 8026DDFC 00269A5C  4B F5 93 25 */	bl _savegpr_25
/* 8026DE00 00269A60  28 04 00 01 */	cmplwi r4, 1
/* 8026DE04 00269A64  7C 7C 1B 78 */	mr r28, r3
/* 8026DE08 00269A68  7C 9D 23 78 */	mr r29, r4
/* 8026DE0C 00269A6C  7C BA 2B 78 */	mr r26, r5
/* 8026DE10 00269A70  40 82 00 5C */	bne lbl_8026DE6C
/* 8026DE14 00269A74  3C 80 00 1B */	lis r4, 0x001AFF00@ha
/* 8026DE18 00269A78  3C 60 00 05 */	lis r3, 0x0004D000@ha
/* 8026DE1C 00269A7C  7F 9B E3 78 */	mr r27, r28
/* 8026DE20 00269A80  3B E4 FF 00 */	addi r31, r4, 0x001AFF00@l
/* 8026DE24 00269A84  3B C3 D0 00 */	addi r30, r3, 0x0004D000@l
/* 8026DE28 00269A88  48 00 00 38 */	b lbl_8026DE60
lbl_8026DE2C:
/* 8026DE2C 00269A8C  2C 1E 01 00 */	cmpwi r30, 0x100
/* 8026DE30 00269A90  3B 20 01 00 */	li r25, 0x100
/* 8026DE34 00269A94  41 81 00 08 */	bgt lbl_8026DE3C
/* 8026DE38 00269A98  7F D9 F3 78 */	mr r25, r30
lbl_8026DE3C:
/* 8026DE3C 00269A9C  7F D9 F0 50 */	subf r30, r25, r30
lbl_8026DE40:
/* 8026DE40 00269AA0  7F 63 DB 78 */	mr r3, r27
/* 8026DE44 00269AA4  7F 24 CB 78 */	mr r4, r25
/* 8026DE48 00269AA8  7F E5 FB 78 */	mr r5, r31
/* 8026DE4C 00269AAC  48 00 2B B9 */	bl __OSReadROM
/* 8026DE50 00269AB0  2C 03 00 00 */	cmpwi r3, 0
/* 8026DE54 00269AB4  41 82 FF EC */	beq lbl_8026DE40
/* 8026DE58 00269AB8  7F FF CA 14 */	add r31, r31, r25
/* 8026DE5C 00269ABC  7F 7B CA 14 */	add r27, r27, r25
lbl_8026DE60:
/* 8026DE60 00269AC0  2C 1E 00 00 */	cmpwi r30, 0
/* 8026DE64 00269AC4  41 81 FF C8 */	bgt lbl_8026DE2C
/* 8026DE68 00269AC8  48 00 00 54 */	b lbl_8026DEBC
lbl_8026DE6C:
/* 8026DE6C 00269ACC  3C 60 00 20 */	lis r3, 0x001FCF00@ha
/* 8026DE70 00269AD0  7F 9B E3 78 */	mr r27, r28
/* 8026DE74 00269AD4  3B E3 CF 00 */	addi r31, r3, 0x001FCF00@l
/* 8026DE78 00269AD8  3B C0 30 00 */	li r30, 0x3000
/* 8026DE7C 00269ADC  48 00 00 38 */	b lbl_8026DEB4
lbl_8026DE80:
/* 8026DE80 00269AE0  2C 1E 01 00 */	cmpwi r30, 0x100
/* 8026DE84 00269AE4  3B 20 01 00 */	li r25, 0x100
/* 8026DE88 00269AE8  41 81 00 08 */	bgt lbl_8026DE90
/* 8026DE8C 00269AEC  7F D9 F3 78 */	mr r25, r30
lbl_8026DE90:
/* 8026DE90 00269AF0  7F D9 F0 50 */	subf r30, r25, r30
lbl_8026DE94:
/* 8026DE94 00269AF4  7F 63 DB 78 */	mr r3, r27
/* 8026DE98 00269AF8  7F 24 CB 78 */	mr r4, r25
/* 8026DE9C 00269AFC  7F E5 FB 78 */	mr r5, r31
/* 8026DEA0 00269B00  48 00 2B 65 */	bl __OSReadROM
/* 8026DEA4 00269B04  2C 03 00 00 */	cmpwi r3, 0
/* 8026DEA8 00269B08  41 82 FF EC */	beq lbl_8026DE94
/* 8026DEAC 00269B0C  7F FF CA 14 */	add r31, r31, r25
/* 8026DEB0 00269B10  7F 7B CA 14 */	add r27, r27, r25
lbl_8026DEB4:
/* 8026DEB4 00269B14  2C 1E 00 00 */	cmpwi r30, 0
/* 8026DEB8 00269B18  41 81 FF C8 */	bgt lbl_8026DE80
lbl_8026DEBC:
/* 8026DEBC 00269B1C  88 1C 00 00 */	lbz r0, 0(r28)
/* 8026DEC0 00269B20  28 00 00 59 */	cmplwi r0, 0x59
/* 8026DEC4 00269B24  40 82 00 24 */	bne lbl_8026DEE8
/* 8026DEC8 00269B28  88 1C 00 01 */	lbz r0, 1(r28)
/* 8026DECC 00269B2C  28 00 00 61 */	cmplwi r0, 0x61
/* 8026DED0 00269B30  40 82 00 18 */	bne lbl_8026DEE8
/* 8026DED4 00269B34  88 1C 00 02 */	lbz r0, 2(r28)
/* 8026DED8 00269B38  28 00 00 79 */	cmplwi r0, 0x79
/* 8026DEDC 00269B3C  40 82 00 0C */	bne lbl_8026DEE8
/* 8026DEE0 00269B40  83 7C 00 04 */	lwz r27, 4(r28)
/* 8026DEE4 00269B44  48 00 00 08 */	b lbl_8026DEEC
lbl_8026DEE8:
/* 8026DEE8 00269B48  3B 60 00 00 */	li r27, 0
lbl_8026DEEC:
/* 8026DEEC 00269B4C  2C 1B 00 00 */	cmpwi r27, 0
/* 8026DEF0 00269B50  40 82 00 0C */	bne lbl_8026DEFC
/* 8026DEF4 00269B54  38 60 00 00 */	li r3, 0
/* 8026DEF8 00269B58  48 00 01 DC */	b lbl_8026E0D4
lbl_8026DEFC:
/* 8026DEFC 00269B5C  7F 83 E3 78 */	mr r3, r28
/* 8026DF00 00269B60  7F 44 D3 78 */	mr r4, r26
/* 8026DF04 00269B64  4B FF FC C5 */	bl Decode
/* 8026DF08 00269B68  28 1D 00 01 */	cmplwi r29, 1
/* 8026DF0C 00269B6C  40 82 01 C4 */	bne lbl_8026E0D0
/* 8026DF10 00269B70  7F A3 EB 78 */	mr r3, r29
/* 8026DF14 00269B74  A3 82 A0 60 */	lhz r28, lbl_80642660-_SDA2_BASE_(r2)
/* 8026DF18 00269B78  A3 A2 A0 62 */	lhz r29, lbl_80642662-_SDA2_BASE_(r2)
/* 8026DF1C 00269B7C  38 80 00 54 */	li r4, 0x54
/* 8026DF20 00269B80  A3 C2 A0 64 */	lhz r30, lbl_80642664-_SDA2_BASE_(r2)
/* 8026DF24 00269B84  A3 E2 A0 66 */	lhz r31, lbl_80642666-_SDA2_BASE_(r2)
/* 8026DF28 00269B88  4B FF FB 6D */	bl GetFontCode
/* 8026DF2C 00269B8C  A1 3A 00 1A */	lhz r9, 0x1a(r26)
/* 8026DF30 00269B90  A0 9A 00 1C */	lhz r4, 0x1c(r26)
/* 8026DF34 00269B94  A0 1A 00 1E */	lhz r0, 0x1e(r26)
/* 8026DF38 00269B98  7D 49 21 D6 */	mullw r10, r9, r4
/* 8026DF3C 00269B9C  80 BA 00 24 */	lwz r5, 0x24(r26)
/* 8026DF40 00269BA0  54 04 10 34 */	rlwinm r4, r0, 2, 0, 0x1a
/* 8026DF44 00269BA4  A0 DA 00 12 */	lhz r6, 0x12(r26)
/* 8026DF48 00269BA8  54 00 1F FE */	rlwinm r0, r0, 3, 0x1f, 0x1f
/* 8026DF4C 00269BAC  A0 FA 00 10 */	lhz r7, 0x10(r26)
/* 8026DF50 00269BB0  7D 83 53 D6 */	divw r12, r3, r10
/* 8026DF54 00269BB4  7C 00 22 14 */	add r0, r0, r4
/* 8026DF58 00269BB8  7C 9A 2A 14 */	add r4, r26, r5
/* 8026DF5C 00269BBC  81 1A 00 14 */	lwz r8, 0x14(r26)
/* 8026DF60 00269BC0  7C 0B 0E 70 */	srawi r11, r0, 1
/* 8026DF64 00269BC4  7C 0C 51 D6 */	mullw r0, r12, r10
/* 8026DF68 00269BC8  7C 60 18 50 */	subf r3, r0, r3
/* 8026DF6C 00269BCC  7C A3 4B D6 */	divw r5, r3, r9
/* 8026DF70 00269BD0  7C 05 49 D6 */	mullw r0, r5, r9
/* 8026DF74 00269BD4  7C A5 31 D6 */	mullw r5, r5, r6
/* 8026DF78 00269BD8  7F 20 18 50 */	subf r25, r0, r3
/* 8026DF7C 00269BDC  38 C5 00 04 */	addi r6, r5, 4
/* 8026DF80 00269BE0  7F 39 39 D6 */	mullw r25, r25, r7
/* 8026DF84 00269BE4  39 45 00 05 */	addi r10, r5, 5
/* 8026DF88 00269BE8  7C C3 1E 70 */	srawi r3, r6, 3
/* 8026DF8C 00269BEC  54 C0 E8 04 */	slwi r0, r6, 0x1d
/* 8026DF90 00269BF0  7D 23 01 94 */	addze r9, r3
/* 8026DF94 00269BF4  54 C7 0F FE */	srwi r7, r6, 0x1f
/* 8026DF98 00269BF8  7D 8C 41 D6 */	mullw r12, r12, r8
/* 8026DF9C 00269BFC  7F 23 1E 70 */	srawi r3, r25, 3
/* 8026DFA0 00269C00  7C 07 00 50 */	subf r0, r7, r0
/* 8026DFA4 00269C04  7D 03 01 94 */	addze r8, r3
/* 8026DFA8 00269C08  54 03 18 3E */	rotlwi r3, r0, 3
/* 8026DFAC 00269C0C  57 20 E8 04 */	slwi r0, r25, 0x1d
/* 8026DFB0 00269C10  57 26 0F FE */	srwi r6, r25, 0x1f
/* 8026DFB4 00269C14  55 8C F8 7E */	srwi r12, r12, 1
/* 8026DFB8 00269C18  7D 2B 49 D6 */	mullw r9, r11, r9
/* 8026DFBC 00269C1C  7C E3 3A 14 */	add r7, r3, r7
/* 8026DFC0 00269C20  7C 06 00 50 */	subf r0, r6, r0
/* 8026DFC4 00269C24  7C 84 62 14 */	add r4, r4, r12
/* 8026DFC8 00269C28  54 03 18 3E */	rotlwi r3, r0, 3
/* 8026DFCC 00269C2C  55 00 20 36 */	slwi r0, r8, 4
/* 8026DFD0 00269C30  7C 63 32 14 */	add r3, r3, r6
/* 8026DFD4 00269C34  7D 24 4A 14 */	add r9, r4, r9
/* 8026DFD8 00269C38  54 E8 08 3C */	slwi r8, r7, 1
/* 8026DFDC 00269C3C  55 46 E8 04 */	slwi r6, r10, 0x1d
/* 8026DFE0 00269C40  7C 63 16 70 */	srawi r3, r3, 2
/* 8026DFE4 00269C44  7D 29 02 14 */	add r9, r9, r0
/* 8026DFE8 00269C48  7D 29 42 14 */	add r9, r9, r8
/* 8026DFEC 00269C4C  55 47 0F FE */	srwi r7, r10, 0x1f
/* 8026DFF0 00269C50  7C 63 01 94 */	addze r3, r3
/* 8026DFF4 00269C54  39 05 00 06 */	addi r8, r5, 6
/* 8026DFF8 00269C58  7F 89 1B 2E */	sthx r28, r9, r3
/* 8026DFFC 00269C5C  7C C7 30 50 */	subf r6, r7, r6
/* 8026E000 00269C60  54 C6 18 3E */	rotlwi r6, r6, 3
/* 8026E004 00269C64  7C C6 3A 14 */	add r6, r6, r7
/* 8026E008 00269C68  A1 7A 00 1E */	lhz r11, 0x1e(r26)
/* 8026E00C 00269C6C  54 C9 08 3C */	slwi r9, r6, 1
/* 8026E010 00269C70  55 07 0F FE */	srwi r7, r8, 0x1f
/* 8026E014 00269C74  55 6C 10 34 */	rlwinm r12, r11, 2, 0, 0x1a
/* 8026E018 00269C78  55 6B 1F FE */	rlwinm r11, r11, 3, 0x1f, 0x1f
/* 8026E01C 00269C7C  7D 6B 62 14 */	add r11, r11, r12
/* 8026E020 00269C80  55 06 E8 04 */	slwi r6, r8, 0x1d
/* 8026E024 00269C84  7D 6B 0E 70 */	srawi r11, r11, 1
/* 8026E028 00269C88  7D 4A 1E 70 */	srawi r10, r10, 3
/* 8026E02C 00269C8C  7C C7 30 50 */	subf r6, r7, r6
/* 8026E030 00269C90  7D 4A 01 94 */	addze r10, r10
/* 8026E034 00269C94  54 C6 18 3E */	rotlwi r6, r6, 3
/* 8026E038 00269C98  7C C6 3A 14 */	add r6, r6, r7
/* 8026E03C 00269C9C  7D 4B 51 D6 */	mullw r10, r11, r10
/* 8026E040 00269CA0  54 C6 08 3C */	slwi r6, r6, 1
/* 8026E044 00269CA4  7C E4 52 14 */	add r7, r4, r10
/* 8026E048 00269CA8  7C E7 02 14 */	add r7, r7, r0
/* 8026E04C 00269CAC  7C E7 4A 14 */	add r7, r7, r9
/* 8026E050 00269CB0  7F A7 1B 2E */	sthx r29, r7, r3
/* 8026E054 00269CB4  A0 FA 00 1E */	lhz r7, 0x1e(r26)
/* 8026E058 00269CB8  54 E9 10 34 */	rlwinm r9, r7, 2, 0, 0x1a
/* 8026E05C 00269CBC  54 E7 1F FE */	rlwinm r7, r7, 3, 0x1f, 0x1f
/* 8026E060 00269CC0  7C E7 4A 14 */	add r7, r7, r9
/* 8026E064 00269CC4  7C E9 0E 70 */	srawi r9, r7, 1
/* 8026E068 00269CC8  7D 07 1E 70 */	srawi r7, r8, 3
/* 8026E06C 00269CCC  7C E7 01 94 */	addze r7, r7
/* 8026E070 00269CD0  7C E9 39 D6 */	mullw r7, r9, r7
/* 8026E074 00269CD4  7C E4 3A 14 */	add r7, r4, r7
/* 8026E078 00269CD8  7C E7 02 14 */	add r7, r7, r0
/* 8026E07C 00269CDC  7C E7 32 14 */	add r7, r7, r6
/* 8026E080 00269CE0  7F C7 1B 2E */	sthx r30, r7, r3
/* 8026E084 00269CE4  38 E5 00 07 */	addi r7, r5, 7
/* 8026E088 00269CE8  54 E5 E8 04 */	slwi r5, r7, 0x1d
/* 8026E08C 00269CEC  A1 1A 00 1E */	lhz r8, 0x1e(r26)
/* 8026E090 00269CF0  54 E6 0F FE */	srwi r6, r7, 0x1f
/* 8026E094 00269CF4  7C A6 28 50 */	subf r5, r6, r5
/* 8026E098 00269CF8  55 09 10 34 */	rlwinm r9, r8, 2, 0, 0x1a
/* 8026E09C 00269CFC  55 08 1F FE */	rlwinm r8, r8, 3, 0x1f, 0x1f
/* 8026E0A0 00269D00  7D 08 4A 14 */	add r8, r8, r9
/* 8026E0A4 00269D04  54 A5 18 3E */	rotlwi r5, r5, 3
/* 8026E0A8 00269D08  7D 08 0E 70 */	srawi r8, r8, 1
/* 8026E0AC 00269D0C  7C E7 1E 70 */	srawi r7, r7, 3
/* 8026E0B0 00269D10  7C A5 32 14 */	add r5, r5, r6
/* 8026E0B4 00269D14  7C C7 01 94 */	addze r6, r7
/* 8026E0B8 00269D18  7C C8 31 D6 */	mullw r6, r8, r6
/* 8026E0BC 00269D1C  54 A5 08 3C */	slwi r5, r5, 1
/* 8026E0C0 00269D20  7C 84 32 14 */	add r4, r4, r6
/* 8026E0C4 00269D24  7C 84 02 14 */	add r4, r4, r0
/* 8026E0C8 00269D28  7C 84 2A 14 */	add r4, r4, r5
/* 8026E0CC 00269D2C  7F E4 1B 2E */	sthx r31, r4, r3
lbl_8026E0D0:
/* 8026E0D0 00269D30  7F 63 DB 78 */	mr r3, r27
lbl_8026E0D4:
/* 8026E0D4 00269D34  39 61 00 30 */	addi r11, r1, 0x30
/* 8026E0D8 00269D38  4B F5 90 95 */	bl _restgpr_25
/* 8026E0DC 00269D3C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8026E0E0 00269D40  7C 08 03 A6 */	mtlr r0
/* 8026E0E4 00269D44  38 21 00 30 */	addi r1, r1, 0x30
/* 8026E0E8 00269D48  4E 80 00 20 */	blr

.global OSLoadFont
OSLoadFont:
/* 8026E0EC 00269D4C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8026E0F0 00269D50  7C 08 02 A6 */	mflr r0
/* 8026E0F4 00269D54  7C 65 1B 78 */	mr r5, r3
/* 8026E0F8 00269D58  90 01 00 14 */	stw r0, 0x14(r1)
/* 8026E0FC 00269D5C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8026E100 00269D60  93 C1 00 08 */	stw r30, 8(r1)
/* 8026E104 00269D64  7C 9E 23 78 */	mr r30, r4
/* 8026E108 00269D68  A0 0D 87 D8 */	lhz r0, lbl_8063DA98-_SDA_BASE_(r13)
/* 8026E10C 00269D6C  28 00 FF FF */	cmplwi r0, 0xffff
/* 8026E110 00269D70  41 82 00 08 */	beq lbl_8026E118
/* 8026E114 00269D74  48 00 00 48 */	b lbl_8026E15C
lbl_8026E118:
/* 8026E118 00269D78  3C 80 80 00 */	lis r4, 0x800000CC@ha
/* 8026E11C 00269D7C  80 04 00 CC */	lwz r0, 0x800000CC@l(r4)
/* 8026E120 00269D80  2C 00 00 00 */	cmpwi r0, 0
/* 8026E124 00269D84  41 82 00 0C */	beq lbl_8026E130
/* 8026E128 00269D88  41 80 00 1C */	blt lbl_8026E144
/* 8026E12C 00269D8C  48 00 00 18 */	b lbl_8026E144
lbl_8026E130:
/* 8026E130 00269D90  3C 80 CC 00 */	lis r4, 0xCC00206E@ha
/* 8026E134 00269D94  A0 04 20 6E */	lhz r0, 0xCC00206E@l(r4)
/* 8026E138 00269D98  54 00 FF FE */	rlwinm r0, r0, 0x1f, 0x1f, 0x1f
/* 8026E13C 00269D9C  B0 0D 87 D8 */	sth r0, lbl_8063DA98-_SDA_BASE_(r13)
/* 8026E140 00269DA0  48 00 00 0C */	b lbl_8026E14C
lbl_8026E144:
/* 8026E144 00269DA4  38 00 00 00 */	li r0, 0
/* 8026E148 00269DA8  B0 0D 87 D8 */	sth r0, lbl_8063DA98-_SDA_BASE_(r13)
lbl_8026E14C:
/* 8026E14C 00269DAC  3C 80 80 27 */	lis r4, ParseStringS@ha
/* 8026E150 00269DB0  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 8026E154 00269DB4  38 84 E2 14 */	addi r4, r4, ParseStringS@l
/* 8026E158 00269DB8  90 8D A7 E8 */	stw r4, lbl_8063FAA8-_SDA_BASE_(r13)
lbl_8026E15C:
/* 8026E15C 00269DBC  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 8026E160 00269DC0  2C 00 00 02 */	cmpwi r0, 2
/* 8026E164 00269DC4  41 82 00 90 */	beq lbl_8026E1F4
/* 8026E168 00269DC8  40 80 00 14 */	bge lbl_8026E17C
/* 8026E16C 00269DCC  2C 00 00 00 */	cmpwi r0, 0
/* 8026E170 00269DD0  41 82 00 18 */	beq lbl_8026E188
/* 8026E174 00269DD4  40 80 00 2C */	bge lbl_8026E1A0
/* 8026E178 00269DD8  48 00 00 7C */	b lbl_8026E1F4
lbl_8026E17C:
/* 8026E17C 00269DDC  2C 00 00 06 */	cmpwi r0, 6
/* 8026E180 00269DE0  40 80 00 74 */	bge lbl_8026E1F4
/* 8026E184 00269DE4  48 00 00 34 */	b lbl_8026E1B8
lbl_8026E188:
/* 8026E188 00269DE8  90 6D A7 F4 */	stw r3, lbl_8063FAB4-_SDA_BASE_(r13)
/* 8026E18C 00269DEC  7F C3 F3 78 */	mr r3, r30
/* 8026E190 00269DF0  38 80 00 00 */	li r4, 0
/* 8026E194 00269DF4  4B FF FC 59 */	bl ReadFont
/* 8026E198 00269DF8  7C 7F 1B 78 */	mr r31, r3
/* 8026E19C 00269DFC  48 00 00 5C */	b lbl_8026E1F8
lbl_8026E1A0:
/* 8026E1A0 00269E00  90 6D A7 F0 */	stw r3, lbl_8063FAB0-_SDA_BASE_(r13)
/* 8026E1A4 00269E04  7F C3 F3 78 */	mr r3, r30
/* 8026E1A8 00269E08  38 80 00 01 */	li r4, 1
/* 8026E1AC 00269E0C  4B FF FC 41 */	bl ReadFont
/* 8026E1B0 00269E10  7C 7F 1B 78 */	mr r31, r3
/* 8026E1B4 00269E14  48 00 00 44 */	b lbl_8026E1F8
lbl_8026E1B8:
/* 8026E1B8 00269E18  90 6D A7 F4 */	stw r3, lbl_8063FAB4-_SDA_BASE_(r13)
/* 8026E1BC 00269E1C  7F C3 F3 78 */	mr r3, r30
/* 8026E1C0 00269E20  38 80 00 00 */	li r4, 0
/* 8026E1C4 00269E24  4B FF FC 29 */	bl ReadFont
/* 8026E1C8 00269E28  2C 03 00 00 */	cmpwi r3, 0
/* 8026E1CC 00269E2C  7C 7F 1B 78 */	mr r31, r3
/* 8026E1D0 00269E30  41 82 00 28 */	beq lbl_8026E1F8
/* 8026E1D4 00269E34  80 0D A7 F4 */	lwz r0, lbl_8063FAB4-_SDA_BASE_(r13)
/* 8026E1D8 00269E38  38 80 00 01 */	li r4, 1
/* 8026E1DC 00269E3C  7C A0 1A 14 */	add r5, r0, r3
/* 8026E1E0 00269E40  7F C3 F3 78 */	mr r3, r30
/* 8026E1E4 00269E44  90 AD A7 F0 */	stw r5, lbl_8063FAB0-_SDA_BASE_(r13)
/* 8026E1E8 00269E48  4B FF FC 05 */	bl ReadFont
/* 8026E1EC 00269E4C  7F FF 1A 14 */	add r31, r31, r3
/* 8026E1F0 00269E50  48 00 00 08 */	b lbl_8026E1F8
lbl_8026E1F4:
/* 8026E1F4 00269E54  3B E0 00 00 */	li r31, 0
lbl_8026E1F8:
/* 8026E1F8 00269E58  7F E3 FB 78 */	mr r3, r31
/* 8026E1FC 00269E5C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8026E200 00269E60  83 C1 00 08 */	lwz r30, 8(r1)
/* 8026E204 00269E64  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8026E208 00269E68  7C 08 03 A6 */	mtlr r0
/* 8026E20C 00269E6C  38 21 00 10 */	addi r1, r1, 0x10
/* 8026E210 00269E70  4E 80 00 20 */	blr

.global ParseStringS
ParseStringS:
/* 8026E214 00269E74  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8026E218 00269E78  7C 08 02 A6 */	mflr r0
/* 8026E21C 00269E7C  2C 03 00 01 */	cmpwi r3, 1
/* 8026E220 00269E80  38 E0 00 00 */	li r7, 0
/* 8026E224 00269E84  90 01 00 14 */	stw r0, 0x14(r1)
/* 8026E228 00269E88  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8026E22C 00269E8C  7C DF 33 78 */	mr r31, r6
/* 8026E230 00269E90  93 C1 00 08 */	stw r30, 8(r1)
/* 8026E234 00269E94  7C 9E 23 78 */	mr r30, r4
/* 8026E238 00269E98  41 82 00 2C */	beq lbl_8026E264
/* 8026E23C 00269E9C  40 80 00 A8 */	bge lbl_8026E2E4
/* 8026E240 00269EA0  2C 03 00 00 */	cmpwi r3, 0
/* 8026E244 00269EA4  40 80 00 08 */	bge lbl_8026E24C
/* 8026E248 00269EA8  48 00 00 9C */	b lbl_8026E2E4
lbl_8026E24C:
/* 8026E24C 00269EAC  88 E4 00 00 */	lbz r7, 0(r4)
/* 8026E250 00269EB0  80 CD A7 F4 */	lwz r6, lbl_8063FAB4-_SDA_BASE_(r13)
/* 8026E254 00269EB4  2C 07 00 00 */	cmpwi r7, 0
/* 8026E258 00269EB8  41 82 00 8C */	beq lbl_8026E2E4
/* 8026E25C 00269EBC  3B C4 00 01 */	addi r30, r4, 1
/* 8026E260 00269EC0  48 00 00 84 */	b lbl_8026E2E4
lbl_8026E264:
/* 8026E264 00269EC4  88 E4 00 00 */	lbz r7, 0(r4)
/* 8026E268 00269EC8  80 CD A7 F0 */	lwz r6, lbl_8063FAB0-_SDA_BASE_(r13)
/* 8026E26C 00269ECC  2C 07 00 00 */	cmpwi r7, 0
/* 8026E270 00269ED0  41 82 00 74 */	beq lbl_8026E2E4
/* 8026E274 00269ED4  28 07 00 81 */	cmplwi r7, 0x81
/* 8026E278 00269ED8  3B C4 00 01 */	addi r30, r4, 1
/* 8026E27C 00269EDC  38 00 00 00 */	li r0, 0
/* 8026E280 00269EE0  41 80 00 0C */	blt lbl_8026E28C
/* 8026E284 00269EE4  28 07 00 9F */	cmplwi r7, 0x9f
/* 8026E288 00269EE8  40 81 00 14 */	ble lbl_8026E29C
lbl_8026E28C:
/* 8026E28C 00269EEC  28 07 00 E0 */	cmplwi r7, 0xe0
/* 8026E290 00269EF0  41 80 00 10 */	blt lbl_8026E2A0
/* 8026E294 00269EF4  28 07 00 FC */	cmplwi r7, 0xfc
/* 8026E298 00269EF8  41 81 00 08 */	bgt lbl_8026E2A0
lbl_8026E29C:
/* 8026E29C 00269EFC  38 00 00 01 */	li r0, 1
lbl_8026E2A0:
/* 8026E2A0 00269F00  2C 00 00 00 */	cmpwi r0, 0
/* 8026E2A4 00269F04  41 82 00 40 */	beq lbl_8026E2E4
/* 8026E2A8 00269F08  88 9E 00 00 */	lbz r4, 0(r30)
/* 8026E2AC 00269F0C  38 00 00 00 */	li r0, 0
/* 8026E2B0 00269F10  28 04 00 40 */	cmplwi r4, 0x40
/* 8026E2B4 00269F14  41 80 00 18 */	blt lbl_8026E2CC
/* 8026E2B8 00269F18  28 04 00 FC */	cmplwi r4, 0xfc
/* 8026E2BC 00269F1C  41 81 00 10 */	bgt lbl_8026E2CC
/* 8026E2C0 00269F20  28 04 00 7F */	cmplwi r4, 0x7f
/* 8026E2C4 00269F24  41 82 00 08 */	beq lbl_8026E2CC
/* 8026E2C8 00269F28  38 00 00 01 */	li r0, 1
lbl_8026E2CC:
/* 8026E2CC 00269F2C  2C 00 00 00 */	cmpwi r0, 0
/* 8026E2D0 00269F30  41 82 00 14 */	beq lbl_8026E2E4
/* 8026E2D4 00269F34  88 1E 00 00 */	lbz r0, 0(r30)
/* 8026E2D8 00269F38  50 E0 42 2E */	rlwimi r0, r7, 8, 8, 0x17
/* 8026E2DC 00269F3C  3B DE 00 01 */	addi r30, r30, 1
/* 8026E2E0 00269F40  54 07 04 3E */	clrlwi r7, r0, 0x10
lbl_8026E2E4:
/* 8026E2E4 00269F44  90 C5 00 00 */	stw r6, 0(r5)
/* 8026E2E8 00269F48  7C E4 3B 78 */	mr r4, r7
/* 8026E2EC 00269F4C  4B FF F7 A9 */	bl GetFontCode
/* 8026E2F0 00269F50  90 7F 00 00 */	stw r3, 0(r31)
/* 8026E2F4 00269F54  7F C3 F3 78 */	mr r3, r30
/* 8026E2F8 00269F58  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8026E2FC 00269F5C  83 C1 00 08 */	lwz r30, 8(r1)
/* 8026E300 00269F60  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8026E304 00269F64  7C 08 03 A6 */	mtlr r0
/* 8026E308 00269F68  38 21 00 10 */	addi r1, r1, 0x10
/* 8026E30C 00269F6C  4E 80 00 20 */	blr

.global ParseStringW
ParseStringW:
/* 8026E310 00269F70  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8026E314 00269F74  7C 08 02 A6 */	mflr r0
/* 8026E318 00269F78  90 01 00 34 */	stw r0, 0x34(r1)
/* 8026E31C 00269F7C  39 61 00 30 */	addi r11, r1, 0x30
/* 8026E320 00269F80  4B F5 8E 05 */	bl _savegpr_26
/* 8026E324 00269F84  3B C0 00 00 */	li r30, 0
/* 8026E328 00269F88  2C 03 00 03 */	cmpwi r3, 3
/* 8026E32C 00269F8C  93 C1 00 08 */	stw r30, 8(r1)
/* 8026E330 00269F90  7C 7A 1B 78 */	mr r26, r3
/* 8026E334 00269F94  7C 9B 23 78 */	mr r27, r4
/* 8026E338 00269F98  7C BC 2B 78 */	mr r28, r5
/* 8026E33C 00269F9C  7C DD 33 78 */	mr r29, r6
/* 8026E340 00269FA0  41 82 00 CC */	beq lbl_8026E40C
/* 8026E344 00269FA4  40 80 00 1C */	bge lbl_8026E360
/* 8026E348 00269FA8  2C 03 00 01 */	cmpwi r3, 1
/* 8026E34C 00269FAC  41 82 00 3C */	beq lbl_8026E388
/* 8026E350 00269FB0  40 80 00 F8 */	bge lbl_8026E448
/* 8026E354 00269FB4  2C 03 00 00 */	cmpwi r3, 0
/* 8026E358 00269FB8  40 80 00 18 */	bge lbl_8026E370
/* 8026E35C 00269FBC  48 00 00 EC */	b lbl_8026E448
lbl_8026E360:
/* 8026E360 00269FC0  2C 03 00 05 */	cmpwi r3, 5
/* 8026E364 00269FC4  41 82 00 D0 */	beq lbl_8026E434
/* 8026E368 00269FC8  40 80 00 E0 */	bge lbl_8026E448
/* 8026E36C 00269FCC  48 00 00 B4 */	b lbl_8026E420
lbl_8026E370:
/* 8026E370 00269FD0  8B C4 00 00 */	lbz r30, 0(r4)
/* 8026E374 00269FD4  83 ED A7 F4 */	lwz r31, lbl_8063FAB4-_SDA_BASE_(r13)
/* 8026E378 00269FD8  2C 1E 00 00 */	cmpwi r30, 0
/* 8026E37C 00269FDC  41 82 00 CC */	beq lbl_8026E448
/* 8026E380 00269FE0  3B 64 00 01 */	addi r27, r4, 1
/* 8026E384 00269FE4  48 00 00 C4 */	b lbl_8026E448
lbl_8026E388:
/* 8026E388 00269FE8  8B C4 00 00 */	lbz r30, 0(r4)
/* 8026E38C 00269FEC  83 ED A7 F0 */	lwz r31, lbl_8063FAB0-_SDA_BASE_(r13)
/* 8026E390 00269FF0  2C 1E 00 00 */	cmpwi r30, 0
/* 8026E394 00269FF4  41 82 00 B4 */	beq lbl_8026E448
/* 8026E398 00269FF8  28 1E 00 81 */	cmplwi r30, 0x81
/* 8026E39C 00269FFC  3B 64 00 01 */	addi r27, r4, 1
/* 8026E3A0 0026A000  38 00 00 00 */	li r0, 0
/* 8026E3A4 0026A004  41 80 00 0C */	blt lbl_8026E3B0
/* 8026E3A8 0026A008  28 1E 00 9F */	cmplwi r30, 0x9f
/* 8026E3AC 0026A00C  40 81 00 14 */	ble lbl_8026E3C0
lbl_8026E3B0:
/* 8026E3B0 0026A010  28 1E 00 E0 */	cmplwi r30, 0xe0
/* 8026E3B4 0026A014  41 80 00 10 */	blt lbl_8026E3C4
/* 8026E3B8 0026A018  28 1E 00 FC */	cmplwi r30, 0xfc
/* 8026E3BC 0026A01C  41 81 00 08 */	bgt lbl_8026E3C4
lbl_8026E3C0:
/* 8026E3C0 0026A020  38 00 00 01 */	li r0, 1
lbl_8026E3C4:
/* 8026E3C4 0026A024  2C 00 00 00 */	cmpwi r0, 0
/* 8026E3C8 0026A028  41 82 00 80 */	beq lbl_8026E448
/* 8026E3CC 0026A02C  88 7B 00 00 */	lbz r3, 0(r27)
/* 8026E3D0 0026A030  38 00 00 00 */	li r0, 0
/* 8026E3D4 0026A034  28 03 00 40 */	cmplwi r3, 0x40
/* 8026E3D8 0026A038  41 80 00 18 */	blt lbl_8026E3F0
/* 8026E3DC 0026A03C  28 03 00 FC */	cmplwi r3, 0xfc
/* 8026E3E0 0026A040  41 81 00 10 */	bgt lbl_8026E3F0
/* 8026E3E4 0026A044  28 03 00 7F */	cmplwi r3, 0x7f
/* 8026E3E8 0026A048  41 82 00 08 */	beq lbl_8026E3F0
/* 8026E3EC 0026A04C  38 00 00 01 */	li r0, 1
lbl_8026E3F0:
/* 8026E3F0 0026A050  2C 00 00 00 */	cmpwi r0, 0
/* 8026E3F4 0026A054  41 82 00 54 */	beq lbl_8026E448
/* 8026E3F8 0026A058  88 1B 00 00 */	lbz r0, 0(r27)
/* 8026E3FC 0026A05C  53 C0 42 2E */	rlwimi r0, r30, 8, 8, 0x17
/* 8026E400 0026A060  3B 7B 00 01 */	addi r27, r27, 1
/* 8026E404 0026A064  54 1E 04 3E */	clrlwi r30, r0, 0x10
/* 8026E408 0026A068  48 00 00 40 */	b lbl_8026E448
lbl_8026E40C:
/* 8026E40C 0026A06C  7F 63 DB 78 */	mr r3, r27
/* 8026E410 0026A070  38 81 00 08 */	addi r4, r1, 8
/* 8026E414 0026A074  48 00 4A 59 */	bl OSUTF8to32
/* 8026E418 0026A078  7C 7B 1B 78 */	mr r27, r3
/* 8026E41C 0026A07C  48 00 00 2C */	b lbl_8026E448
lbl_8026E420:
/* 8026E420 0026A080  7F 63 DB 78 */	mr r3, r27
/* 8026E424 0026A084  38 81 00 08 */	addi r4, r1, 8
/* 8026E428 0026A088  48 00 4B 55 */	bl OSUTF16to32
/* 8026E42C 0026A08C  7C 7B 1B 78 */	mr r27, r3
/* 8026E430 0026A090  48 00 00 18 */	b lbl_8026E448
lbl_8026E434:
/* 8026E434 0026A094  80 04 00 00 */	lwz r0, 0(r4)
/* 8026E438 0026A098  2C 00 00 00 */	cmpwi r0, 0
/* 8026E43C 0026A09C  90 01 00 08 */	stw r0, 8(r1)
/* 8026E440 0026A0A0  41 82 00 08 */	beq lbl_8026E448
/* 8026E444 0026A0A4  3B 64 00 04 */	addi r27, r4, 4
lbl_8026E448:
/* 8026E448 0026A0A8  80 61 00 08 */	lwz r3, 8(r1)
/* 8026E44C 0026A0AC  2C 03 00 00 */	cmpwi r3, 0
/* 8026E450 0026A0B0  41 82 00 4C */	beq lbl_8026E49C
/* 8026E454 0026A0B4  83 ED A7 F4 */	lwz r31, lbl_8063FAB4-_SDA_BASE_(r13)
/* 8026E458 0026A0B8  3B 40 00 00 */	li r26, 0
/* 8026E45C 0026A0BC  48 00 4B 91 */	bl OSUTF32toANSI
/* 8026E460 0026A0C0  54 7E 06 3F */	clrlwi. r30, r3, 0x18
/* 8026E464 0026A0C4  41 82 00 1C */	beq lbl_8026E480
/* 8026E468 0026A0C8  80 0D A7 EC */	lwz r0, lbl_8063FAAC-_SDA_BASE_(r13)
/* 8026E46C 0026A0CC  2C 00 00 00 */	cmpwi r0, 0
/* 8026E470 0026A0D0  41 82 00 2C */	beq lbl_8026E49C
/* 8026E474 0026A0D4  80 01 00 08 */	lwz r0, 8(r1)
/* 8026E478 0026A0D8  28 00 00 7F */	cmplwi r0, 0x7f
/* 8026E47C 0026A0DC  41 81 00 20 */	bgt lbl_8026E49C
lbl_8026E480:
/* 8026E480 0026A0E0  80 61 00 08 */	lwz r3, 8(r1)
/* 8026E484 0026A0E4  48 00 4B E1 */	bl OSUTF32toSJIS
/* 8026E488 0026A0E8  54 60 04 3F */	clrlwi. r0, r3, 0x10
/* 8026E48C 0026A0EC  7C 7E 1B 78 */	mr r30, r3
/* 8026E490 0026A0F0  41 82 00 0C */	beq lbl_8026E49C
/* 8026E494 0026A0F4  3B 40 00 01 */	li r26, 1
/* 8026E498 0026A0F8  83 ED A7 F0 */	lwz r31, lbl_8063FAB0-_SDA_BASE_(r13)
lbl_8026E49C:
/* 8026E49C 0026A0FC  93 FC 00 00 */	stw r31, 0(r28)
/* 8026E4A0 0026A100  7F 43 D3 78 */	mr r3, r26
/* 8026E4A4 0026A104  57 C4 04 3E */	clrlwi r4, r30, 0x10
/* 8026E4A8 0026A108  4B FF F5 ED */	bl GetFontCode
/* 8026E4AC 0026A10C  90 7D 00 00 */	stw r3, 0(r29)
/* 8026E4B0 0026A110  39 61 00 30 */	addi r11, r1, 0x30
/* 8026E4B4 0026A114  7F 63 DB 78 */	mr r3, r27
/* 8026E4B8 0026A118  4B F5 8C B9 */	bl _restgpr_26
/* 8026E4BC 0026A11C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8026E4C0 0026A120  7C 08 03 A6 */	mtlr r0
/* 8026E4C4 0026A124  38 21 00 30 */	addi r1, r1, 0x30
/* 8026E4C8 0026A128  4E 80 00 20 */	blr

.global OSGetFontTexel
OSGetFontTexel:
/* 8026E4CC 0026A12C  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 8026E4D0 0026A130  7C 08 02 A6 */	mflr r0
/* 8026E4D4 0026A134  90 01 00 54 */	stw r0, 0x54(r1)
/* 8026E4D8 0026A138  39 61 00 50 */	addi r11, r1, 0x50
/* 8026E4DC 0026A13C  4B F5 8C 25 */	bl _savegpr_17
/* 8026E4E0 0026A140  A0 0D 87 D8 */	lhz r0, lbl_8063DA98-_SDA_BASE_(r13)
/* 8026E4E4 0026A144  7C 9D 23 78 */	mr r29, r4
/* 8026E4E8 0026A148  7C BE 2B 78 */	mr r30, r5
/* 8026E4EC 0026A14C  7C D1 33 78 */	mr r17, r6
/* 8026E4F0 0026A150  28 00 FF FF */	cmplwi r0, 0xffff
/* 8026E4F4 0026A154  7C FF 3B 78 */	mr r31, r7
/* 8026E4F8 0026A158  41 82 00 08 */	beq lbl_8026E500
/* 8026E4FC 0026A15C  48 00 00 48 */	b lbl_8026E544
lbl_8026E500:
/* 8026E500 0026A160  3C 80 80 00 */	lis r4, 0x800000CC@ha
/* 8026E504 0026A164  80 04 00 CC */	lwz r0, 0x800000CC@l(r4)
/* 8026E508 0026A168  2C 00 00 00 */	cmpwi r0, 0
/* 8026E50C 0026A16C  41 82 00 0C */	beq lbl_8026E518
/* 8026E510 0026A170  41 80 00 1C */	blt lbl_8026E52C
/* 8026E514 0026A174  48 00 00 18 */	b lbl_8026E52C
lbl_8026E518:
/* 8026E518 0026A178  3C 80 CC 00 */	lis r4, 0xCC00206E@ha
/* 8026E51C 0026A17C  A0 04 20 6E */	lhz r0, 0xCC00206E@l(r4)
/* 8026E520 0026A180  54 00 FF FE */	rlwinm r0, r0, 0x1f, 0x1f, 0x1f
/* 8026E524 0026A184  B0 0D 87 D8 */	sth r0, lbl_8063DA98-_SDA_BASE_(r13)
/* 8026E528 0026A188  48 00 00 0C */	b lbl_8026E534
lbl_8026E52C:
/* 8026E52C 0026A18C  38 00 00 00 */	li r0, 0
/* 8026E530 0026A190  B0 0D 87 D8 */	sth r0, lbl_8063DA98-_SDA_BASE_(r13)
lbl_8026E534:
/* 8026E534 0026A194  3C 80 80 27 */	lis r4, ParseStringS@ha
/* 8026E538 0026A198  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 8026E53C 0026A19C  38 84 E2 14 */	addi r4, r4, ParseStringS@l
/* 8026E540 0026A1A0  90 8D A7 E8 */	stw r4, lbl_8063FAA8-_SDA_BASE_(r13)
lbl_8026E544:
/* 8026E544 0026A1A4  81 8D A7 E8 */	lwz r12, lbl_8063FAA8-_SDA_BASE_(r13)
/* 8026E548 0026A1A8  7C 64 1B 78 */	mr r4, r3
/* 8026E54C 0026A1AC  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 8026E550 0026A1B0  38 A1 00 0C */	addi r5, r1, 0xc
/* 8026E554 0026A1B4  38 C1 00 08 */	addi r6, r1, 8
/* 8026E558 0026A1B8  7D 89 03 A6 */	mtctr r12
/* 8026E55C 0026A1BC  4E 80 04 21 */	bctrl
/* 8026E560 0026A1C0  80 81 00 0C */	lwz r4, 0xc(r1)
/* 8026E564 0026A1C4  56 20 10 3A */	slwi r0, r17, 2
/* 8026E568 0026A1C8  7C 00 1E 70 */	srawi r0, r0, 3
/* 8026E56C 0026A1CC  81 61 00 08 */	lwz r11, 8(r1)
/* 8026E570 0026A1D0  A1 24 00 1A */	lhz r9, 0x1a(r4)
/* 8026E574 0026A1D4  7C 00 01 94 */	addze r0, r0
/* 8026E578 0026A1D8  A0 A4 00 1C */	lhz r5, 0x1c(r4)
/* 8026E57C 0026A1DC  54 08 28 34 */	slwi r8, r0, 5
/* 8026E580 0026A1E0  80 C4 00 24 */	lwz r6, 0x24(r4)
/* 8026E584 0026A1E4  3A E4 00 2C */	addi r23, r4, 0x2c
/* 8026E588 0026A1E8  7D 49 29 D6 */	mullw r10, r9, r5
/* 8026E58C 0026A1EC  80 A4 00 14 */	lwz r5, 0x14(r4)
/* 8026E590 0026A1F0  7E C4 32 14 */	add r22, r4, r6
/* 8026E594 0026A1F4  A0 E4 00 12 */	lhz r7, 0x12(r4)
/* 8026E598 0026A1F8  A0 C4 00 10 */	lhz r6, 0x10(r4)
/* 8026E59C 0026A1FC  3B 00 00 00 */	li r24, 0
/* 8026E5A0 0026A200  7D 8B 53 D6 */	divw r12, r11, r10
/* 8026E5A4 0026A204  7C 0C 51 D6 */	mullw r0, r12, r10
/* 8026E5A8 0026A208  7D 60 58 50 */	subf r11, r0, r11
/* 8026E5AC 0026A20C  7D 4B 4B D6 */	divw r10, r11, r9
/* 8026E5B0 0026A210  7D 2A 49 D6 */	mullw r9, r10, r9
/* 8026E5B4 0026A214  7C 0C 29 D6 */	mullw r0, r12, r5
/* 8026E5B8 0026A218  7F 49 58 50 */	subf r26, r9, r11
/* 8026E5BC 0026A21C  54 00 F8 7E */	srwi r0, r0, 1
/* 8026E5C0 0026A220  7F 6A 39 D6 */	mullw r27, r10, r7
/* 8026E5C4 0026A224  7E D6 02 14 */	add r22, r22, r0
/* 8026E5C8 0026A228  7F 5A 31 D6 */	mullw r26, r26, r6
/* 8026E5CC 0026A22C  48 00 01 4C */	b lbl_8026E718
lbl_8026E5D0:
/* 8026E5D0 0026A230  7C FB C2 14 */	add r7, r27, r24
/* 8026E5D4 0026A234  57 00 E8 04 */	slwi r0, r24, 0x1d
/* 8026E5D8 0026A238  7C E5 1E 70 */	srawi r5, r7, 3
/* 8026E5DC 0026A23C  57 04 0F FE */	srwi r4, r24, 0x1f
/* 8026E5E0 0026A240  7D 25 01 94 */	addze r9, r5
/* 8026E5E4 0026A244  54 E6 E8 04 */	slwi r6, r7, 0x1d
/* 8026E5E8 0026A248  7F 05 1E 70 */	srawi r5, r24, 3
/* 8026E5EC 0026A24C  54 E7 0F FE */	srwi r7, r7, 0x1f
/* 8026E5F0 0026A250  7C A5 01 94 */	addze r5, r5
/* 8026E5F4 0026A254  7C 04 00 50 */	subf r0, r4, r0
/* 8026E5F8 0026A258  7C A5 41 D6 */	mullw r5, r5, r8
/* 8026E5FC 0026A25C  7C C7 30 50 */	subf r6, r7, r6
/* 8026E600 0026A260  54 00 18 3E */	rotlwi r0, r0, 3
/* 8026E604 0026A264  54 C6 18 3E */	rotlwi r6, r6, 3
/* 8026E608 0026A268  7C 00 22 14 */	add r0, r0, r4
/* 8026E60C 0026A26C  7C 86 3A 14 */	add r4, r6, r7
/* 8026E610 0026A270  54 8A 08 3C */	slwi r10, r4, 1
/* 8026E614 0026A274  7D 7D 2A 14 */	add r11, r29, r5
/* 8026E618 0026A278  54 0C 10 3A */	slwi r12, r0, 2
/* 8026E61C 0026A27C  3B 20 00 00 */	li r25, 0
/* 8026E620 0026A280  48 00 00 E4 */	b lbl_8026E704
lbl_8026E624:
/* 8026E624 0026A284  A0 84 00 1E */	lhz r4, 0x1e(r4)
/* 8026E628 0026A288  7F 9E CA 14 */	add r28, r30, r25
/* 8026E62C 0026A28C  7C BA CA 14 */	add r5, r26, r25
/* 8026E630 0026A290  38 00 00 F0 */	li r0, 0xf0
/* 8026E634 0026A294  54 86 10 34 */	rlwinm r6, r4, 2, 0, 0x1a
/* 8026E638 0026A298  54 84 1F FE */	rlwinm r4, r4, 3, 0x1f, 0x1f
/* 8026E63C 0026A29C  7C 84 32 14 */	add r4, r4, r6
/* 8026E640 0026A2A0  57 94 E8 04 */	slwi r20, r28, 0x1d
/* 8026E644 0026A2A4  7C 87 0E 70 */	srawi r7, r4, 1
/* 8026E648 0026A2A8  57 93 0F FE */	srwi r19, r28, 0x1f
/* 8026E64C 0026A2AC  7C E7 49 D6 */	mullw r7, r7, r9
/* 8026E650 0026A2B0  54 A6 E8 04 */	slwi r6, r5, 0x1d
/* 8026E654 0026A2B4  54 A4 0F FE */	srwi r4, r5, 0x1f
/* 8026E658 0026A2B8  7C B2 1E 70 */	srawi r18, r5, 3
/* 8026E65C 0026A2BC  7C C4 30 50 */	subf r6, r4, r6
/* 8026E660 0026A2C0  57 95 07 FE */	clrlwi r21, r28, 0x1f
/* 8026E664 0026A2C4  54 D1 18 3E */	rotlwi r17, r6, 3
/* 8026E668 0026A2C8  7C D2 01 94 */	addze r6, r18
/* 8026E66C 0026A2CC  7E 31 22 14 */	add r17, r17, r4
/* 8026E670 0026A2D0  7E 93 A0 50 */	subf r20, r19, r20
/* 8026E674 0026A2D4  7E B5 9A 78 */	xor r21, r21, r19
/* 8026E678 0026A2D8  54 A5 F0 02 */	slwi r5, r5, 0x1e
/* 8026E67C 0026A2DC  7E 32 16 70 */	srawi r18, r17, 2
/* 8026E680 0026A2E0  56 94 18 3E */	rotlwi r20, r20, 3
/* 8026E684 0026A2E4  7E 24 28 50 */	subf r17, r4, r5
/* 8026E688 0026A2E8  7E B3 A8 51 */	subf. r21, r19, r21
/* 8026E68C 0026A2EC  7C B2 01 94 */	addze r5, r18
/* 8026E690 0026A2F0  7E 94 9A 14 */	add r20, r20, r19
/* 8026E694 0026A2F4  7F 92 1E 70 */	srawi r18, r28, 3
/* 8026E698 0026A2F8  56 31 10 3E */	rotlwi r17, r17, 2
/* 8026E69C 0026A2FC  7C F6 3A 14 */	add r7, r22, r7
/* 8026E6A0 0026A300  54 C6 20 36 */	slwi r6, r6, 4
/* 8026E6A4 0026A304  7C E7 32 14 */	add r7, r7, r6
/* 8026E6A8 0026A308  7E 72 01 94 */	addze r19, r18
/* 8026E6AC 0026A30C  7C E7 52 14 */	add r7, r7, r10
/* 8026E6B0 0026A310  56 95 0F FE */	srwi r21, r20, 0x1f
/* 8026E6B4 0026A314  7F 91 22 14 */	add r28, r17, r4
/* 8026E6B8 0026A318  56 66 28 34 */	slwi r6, r19, 5
/* 8026E6BC 0026A31C  7C 95 A2 14 */	add r4, r21, r20
/* 8026E6C0 0026A320  7C E7 28 AE */	lbzx r7, r7, r5
/* 8026E6C4 0026A324  7C CB 32 14 */	add r6, r11, r6
/* 8026E6C8 0026A328  57 95 08 3C */	slwi r21, r28, 1
/* 8026E6CC 0026A32C  7C 84 0E 70 */	srawi r4, r4, 1
/* 8026E6D0 0026A330  20 B5 00 06 */	subfic r5, r21, 6
/* 8026E6D4 0026A334  7C C6 62 14 */	add r6, r6, r12
/* 8026E6D8 0026A338  7C E5 2E 30 */	sraw r5, r7, r5
/* 8026E6DC 0026A33C  7C E6 20 AE */	lbzx r7, r6, r4
/* 8026E6E0 0026A340  54 A5 07 BE */	clrlwi r5, r5, 0x1e
/* 8026E6E4 0026A344  7C B7 28 AE */	lbzx r5, r23, r5
/* 8026E6E8 0026A348  41 82 00 08 */	beq lbl_8026E6F0
/* 8026E6EC 0026A34C  38 00 00 0F */	li r0, 0xf
lbl_8026E6F0:
/* 8026E6F0 0026A350  7C A0 00 38 */	and r0, r5, r0
/* 8026E6F4 0026A354  3B 39 00 01 */	addi r25, r25, 1
/* 8026E6F8 0026A358  54 00 06 3E */	clrlwi r0, r0, 0x18
/* 8026E6FC 0026A35C  7C E0 03 78 */	or r0, r7, r0
/* 8026E700 0026A360  7C 06 21 AE */	stbx r0, r6, r4
lbl_8026E704:
/* 8026E704 0026A364  80 81 00 0C */	lwz r4, 0xc(r1)
/* 8026E708 0026A368  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 8026E70C 0026A36C  7C 19 00 00 */	cmpw r25, r0
/* 8026E710 0026A370  41 80 FF 14 */	blt lbl_8026E624
/* 8026E714 0026A374  3B 18 00 01 */	addi r24, r24, 1
lbl_8026E718:
/* 8026E718 0026A378  A0 04 00 12 */	lhz r0, 0x12(r4)
/* 8026E71C 0026A37C  7C 18 00 00 */	cmpw r24, r0
/* 8026E720 0026A380  41 80 FE B0 */	blt lbl_8026E5D0
/* 8026E724 0026A384  2C 1F 00 00 */	cmpwi r31, 0
/* 8026E728 0026A388  41 82 00 1C */	beq lbl_8026E744
/* 8026E72C 0026A38C  80 A1 00 0C */	lwz r5, 0xc(r1)
/* 8026E730 0026A390  80 81 00 08 */	lwz r4, 8(r1)
/* 8026E734 0026A394  A0 05 00 22 */	lhz r0, 0x22(r5)
/* 8026E738 0026A398  7C 05 02 14 */	add r0, r5, r0
/* 8026E73C 0026A39C  7C 04 00 AE */	lbzx r0, r4, r0
/* 8026E740 0026A3A0  90 1F 00 00 */	stw r0, 0(r31)
lbl_8026E744:
/* 8026E744 0026A3A4  39 61 00 50 */	addi r11, r1, 0x50
/* 8026E748 0026A3A8  4B F5 8A 05 */	bl _restgpr_17
/* 8026E74C 0026A3AC  80 01 00 54 */	lwz r0, 0x54(r1)
/* 8026E750 0026A3B0  7C 08 03 A6 */	mtlr r0
/* 8026E754 0026A3B4  38 21 00 50 */	addi r1, r1, 0x50
/* 8026E758 0026A3B8  4E 80 00 20 */	blr