donut-decomp/asm/os/OSFont_80020490.s

1506 lines
70 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global GetFontCode
GetFontCode:
/* 80020490 0001C2D0 28 03 00 01 */ cmplwi r3, 0x1
/* 80020494 0001C2D4 40 82 01 10 */ bne lbl_800205A4
/* 80020498 0001C2D8 28 04 00 20 */ cmplwi r4, 0x20
/* 8002049C 0001C2DC 41 80 00 24 */ blt lbl_800204C0
/* 800204A0 0001C2E0 28 04 00 DF */ cmplwi r4, 0xdf
/* 800204A4 0001C2E4 41 81 00 1C */ bgt lbl_800204C0
/* 800204A8 0001C2E8 38 04 FF E0 */ addi r0, r4, -0x20
/* 800204AC 0001C2EC 3C 60 80 42 */ lis r3, HankakuToCode@ha
/* 800204B0 0001C2F0 54 00 08 3C */ slwi r0, r0, 1
/* 800204B4 0001C2F4 38 63 2B E8 */ addi r3, r3, HankakuToCode@l
/* 800204B8 0001C2F8 7C 63 02 2E */ lhzx r3, r3, r0
/* 800204BC 0001C2FC 4E 80 00 20 */ blr
.global lbl_800204C0
lbl_800204C0:
/* 800204C0 0001C300 28 04 88 9E */ cmplwi r4, 0x889e
/* 800204C4 0001C304 40 81 00 68 */ ble lbl_8002052C
/* 800204C8 0001C308 28 04 98 72 */ cmplwi r4, 0x9872
/* 800204CC 0001C30C 41 81 00 60 */ bgt lbl_8002052C
/* 800204D0 0001C310 54 83 C6 3E */ extrwi r3, r4, 8, 16
/* 800204D4 0001C314 54 84 06 3E */ clrlwi r4, r4, 24
/* 800204D8 0001C318 38 63 FF 78 */ addi r3, r3, -0x88
/* 800204DC 0001C31C 38 00 00 00 */ li r0, 0x0
/* 800204E0 0001C320 28 04 00 40 */ cmplwi r4, 0x40
/* 800204E4 0001C324 1C 63 00 BC */ mulli r3, r3, 0xbc
/* 800204E8 0001C328 41 80 00 18 */ blt lbl_80020500
/* 800204EC 0001C32C 28 04 00 FC */ cmplwi r4, 0xfc
/* 800204F0 0001C330 41 81 00 10 */ bgt lbl_80020500
/* 800204F4 0001C334 28 04 00 7F */ cmplwi r4, 0x7f
/* 800204F8 0001C338 41 82 00 08 */ beq lbl_80020500
/* 800204FC 0001C33C 38 00 00 01 */ li r0, 0x1
.global lbl_80020500
lbl_80020500:
/* 80020500 0001C340 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020504 0001C344 40 82 00 0C */ bne lbl_80020510
/* 80020508 0001C348 38 60 00 00 */ li r3, 0x0
/* 8002050C 0001C34C 4E 80 00 20 */ blr
.global lbl_80020510
lbl_80020510:
/* 80020510 0001C350 38 84 FF C0 */ addi r4, r4, -0x40
/* 80020514 0001C354 2C 04 00 40 */ cmpwi r4, 0x40
/* 80020518 0001C358 41 80 00 08 */ blt lbl_80020520
/* 8002051C 0001C35C 38 84 FF FF */ addi r4, r4, -0x1
.global lbl_80020520
lbl_80020520:
/* 80020520 0001C360 7C 63 22 14 */ add r3, r3, r4
/* 80020524 0001C364 38 63 02 BE */ addi r3, r3, 0x2be
/* 80020528 0001C368 4E 80 00 20 */ blr
.global lbl_8002052C
lbl_8002052C:
/* 8002052C 0001C36C 28 04 81 40 */ cmplwi r4, 0x8140
/* 80020530 0001C370 41 80 00 90 */ blt lbl_800205C0
/* 80020534 0001C374 28 04 87 9E */ cmplwi r4, 0x879e
/* 80020538 0001C378 40 80 00 88 */ bge lbl_800205C0
/* 8002053C 0001C37C 54 83 C6 3E */ extrwi r3, r4, 8, 16
/* 80020540 0001C380 54 84 06 3E */ clrlwi r4, r4, 24
/* 80020544 0001C384 38 63 FF 7F */ addi r3, r3, -0x81
/* 80020548 0001C388 38 00 00 00 */ li r0, 0x0
/* 8002054C 0001C38C 28 04 00 40 */ cmplwi r4, 0x40
/* 80020550 0001C390 1C 63 00 BC */ mulli r3, r3, 0xbc
/* 80020554 0001C394 41 80 00 18 */ blt lbl_8002056C
/* 80020558 0001C398 28 04 00 FC */ cmplwi r4, 0xfc
/* 8002055C 0001C39C 41 81 00 10 */ bgt lbl_8002056C
/* 80020560 0001C3A0 28 04 00 7F */ cmplwi r4, 0x7f
/* 80020564 0001C3A4 41 82 00 08 */ beq lbl_8002056C
/* 80020568 0001C3A8 38 00 00 01 */ li r0, 0x1
.global lbl_8002056C
lbl_8002056C:
/* 8002056C 0001C3AC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020570 0001C3B0 40 82 00 0C */ bne lbl_8002057C
/* 80020574 0001C3B4 38 60 00 00 */ li r3, 0x0
/* 80020578 0001C3B8 4E 80 00 20 */ blr
.global lbl_8002057C
lbl_8002057C:
/* 8002057C 0001C3BC 38 84 FF C0 */ addi r4, r4, -0x40
/* 80020580 0001C3C0 2C 04 00 40 */ cmpwi r4, 0x40
/* 80020584 0001C3C4 41 80 00 08 */ blt lbl_8002058C
/* 80020588 0001C3C8 38 84 FF FF */ addi r4, r4, -0x1
.global lbl_8002058C
lbl_8002058C:
/* 8002058C 0001C3CC 7C 03 22 14 */ add r0, r3, r4
/* 80020590 0001C3D0 3C 60 80 42 */ lis r3, Zenkaku2Code@ha
/* 80020594 0001C3D4 54 00 08 3C */ slwi r0, r0, 1
/* 80020598 0001C3D8 38 63 2D 68 */ addi r3, r3, Zenkaku2Code@l
/* 8002059C 0001C3DC 7C 63 02 2E */ lhzx r3, r3, r0
/* 800205A0 0001C3E0 4E 80 00 20 */ blr
.global lbl_800205A4
lbl_800205A4:
/* 800205A4 0001C3E4 3C 64 00 01 */ addis r3, r4, 0x1
/* 800205A8 0001C3E8 38 03 FF DF */ addi r0, r3, -0x21
/* 800205AC 0001C3EC 54 00 04 3E */ clrlwi r0, r0, 16
/* 800205B0 0001C3F0 28 00 00 DE */ cmplwi r0, 0xde
/* 800205B4 0001C3F4 41 81 00 0C */ bgt lbl_800205C0
/* 800205B8 0001C3F8 38 64 FF E0 */ addi r3, r4, -0x20
/* 800205BC 0001C3FC 4E 80 00 20 */ blr
.global lbl_800205C0
lbl_800205C0:
/* 800205C0 0001C400 38 60 00 00 */ li r3, 0x0
/* 800205C4 0001C404 4E 80 00 20 */ blr
/* 800205C8 0001C408 00 00 00 00 */ .4byte 0x00000000
/* 800205CC 0001C40C 00 00 00 00 */ .4byte 0x00000000
.global Decode
Decode:
/* 800205D0 0001C410 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800205D4 0001C414 7C 08 02 A6 */ mflr r0
/* 800205D8 0001C418 90 01 00 24 */ stw r0, 0x24(r1)
/* 800205DC 0001C41C 39 61 00 20 */ addi r11, r1, 0x20
/* 800205E0 0001C420 4B FE 6D 59 */ bl lbl_80007338
/* 800205E4 0001C424 80 A3 00 0C */ lwz r5, 0xc(r3)
/* 800205E8 0001C428 3B C3 00 10 */ addi r30, r3, 0x10
/* 800205EC 0001C42C 80 03 00 04 */ lwz r0, 0x4(r3)
/* 800205F0 0001C430 39 00 00 00 */ li r8, 0x0
/* 800205F4 0001C434 7F A3 2A 14 */ add r29, r3, r5
/* 800205F8 0001C438 81 23 00 08 */ lwz r9, 0x8(r3)
/* 800205FC 0001C43C 39 60 00 00 */ li r11, 0x0
/* 80020600 0001C440 3C A0 80 00 */ lis r5, 0x8000
/* 80020604 0001C444 60 00 00 00 */ nop
.global lbl_80020608
lbl_80020608:
/* 80020608 0001C448 2C 0B 00 00 */ cmpwi r11, 0x0
/* 8002060C 0001C44C 40 82 00 10 */ bne lbl_8002061C
/* 80020610 0001C450 81 9E 00 00 */ lwz r12, 0x0(r30)
/* 80020614 0001C454 39 60 00 20 */ li r11, 0x20
/* 80020618 0001C458 3B DE 00 04 */ addi r30, r30, 0x4
.global lbl_8002061C
lbl_8002061C:
/* 8002061C 0001C45C 55 86 00 01 */ clrrwi. r6, r12, 31
/* 80020620 0001C460 41 82 00 18 */ beq lbl_80020638
/* 80020624 0001C464 88 DD 00 00 */ lbz r6, 0x0(r29)
/* 80020628 0001C468 3B BD 00 01 */ addi r29, r29, 0x1
/* 8002062C 0001C46C 7C C4 41 AE */ stbx r6, r4, r8
/* 80020630 0001C470 39 08 00 01 */ addi r8, r8, 0x1
/* 80020634 0001C474 48 00 01 1C */ b lbl_80020750
.global lbl_80020638
lbl_80020638:
/* 80020638 0001C478 7C E3 4A 14 */ add r7, r3, r9
/* 8002063C 0001C47C 7C C3 48 AE */ lbzx r6, r3, r9
/* 80020640 0001C480 88 E7 00 01 */ lbz r7, 0x1(r7)
/* 80020644 0001C484 39 29 00 02 */ addi r9, r9, 0x2
/* 80020648 0001C488 50 C7 44 2E */ rlwimi r7, r6, 8, 16, 23
/* 8002064C 0001C48C 7C EA 66 71 */ srawi. r10, r7, 12
/* 80020650 0001C490 54 E6 05 3E */ clrlwi r6, r7, 20
/* 80020654 0001C494 7C E6 40 50 */ subf r7, r6, r8
/* 80020658 0001C498 40 82 00 14 */ bne lbl_8002066C
/* 8002065C 0001C49C 88 DD 00 00 */ lbz r6, 0x0(r29)
/* 80020660 0001C4A0 3B BD 00 01 */ addi r29, r29, 0x1
/* 80020664 0001C4A4 39 46 00 12 */ addi r10, r6, 0x12
/* 80020668 0001C4A8 48 00 00 08 */ b lbl_80020670
.global lbl_8002066C
lbl_8002066C:
/* 8002066C 0001C4AC 39 4A 00 02 */ addi r10, r10, 0x2
.global lbl_80020670
lbl_80020670:
/* 80020670 0001C4B0 2C 8A 00 00 */ cmpwi cr1, r10, 0x0
/* 80020674 0001C4B4 38 C0 00 00 */ li r6, 0x0
/* 80020678 0001C4B8 40 85 00 D8 */ ble cr1, lbl_80020750
/* 8002067C 0001C4BC 2C 0A 00 08 */ cmpwi r10, 0x8
/* 80020680 0001C4C0 3B 6A FF F8 */ addi r27, r10, -0x8
/* 80020684 0001C4C4 40 81 00 98 */ ble lbl_8002071C
/* 80020688 0001C4C8 3B 80 00 00 */ li r28, 0x0
/* 8002068C 0001C4CC 41 84 00 14 */ blt cr1, lbl_800206A0
/* 80020690 0001C4D0 3B 45 FF FE */ addi r26, r5, -0x2
/* 80020694 0001C4D4 7C 0A D0 00 */ cmpw r10, r26
/* 80020698 0001C4D8 41 81 00 08 */ bgt lbl_800206A0
/* 8002069C 0001C4DC 3B 80 00 01 */ li r28, 0x1
.global lbl_800206A0
lbl_800206A0:
/* 800206A0 0001C4E0 2C 1C 00 00 */ cmpwi r28, 0x0
/* 800206A4 0001C4E4 41 82 00 78 */ beq lbl_8002071C
/* 800206A8 0001C4E8 3B FB 00 07 */ addi r31, r27, 0x7
/* 800206AC 0001C4EC 7F 84 42 14 */ add r28, r4, r8
/* 800206B0 0001C4F0 57 FF E8 FE */ srwi r31, r31, 3
/* 800206B4 0001C4F4 7F E9 03 A6 */ mtctr r31
/* 800206B8 0001C4F8 2C 1B 00 00 */ cmpwi r27, 0x0
/* 800206BC 0001C4FC 40 81 00 60 */ ble lbl_8002071C
.global lbl_800206C0
lbl_800206C0:
/* 800206C0 0001C500 7F 44 3A 14 */ add r26, r4, r7
/* 800206C4 0001C504 7F 68 22 14 */ add r27, r8, r4
/* 800206C8 0001C508 8B FA FF FF */ lbz r31, -0x1(r26)
/* 800206CC 0001C50C 39 08 00 08 */ addi r8, r8, 0x8
/* 800206D0 0001C510 9B FC 00 00 */ stb r31, 0x0(r28)
/* 800206D4 0001C514 3B 9C 00 08 */ addi r28, r28, 0x8
/* 800206D8 0001C518 38 C6 00 08 */ addi r6, r6, 0x8
/* 800206DC 0001C51C 7F E4 38 AE */ lbzx r31, r4, r7
/* 800206E0 0001C520 38 E7 00 08 */ addi r7, r7, 0x8
/* 800206E4 0001C524 9B FB 00 01 */ stb r31, 0x1(r27)
/* 800206E8 0001C528 8B FA 00 01 */ lbz r31, 0x1(r26)
/* 800206EC 0001C52C 9B FB 00 02 */ stb r31, 0x2(r27)
/* 800206F0 0001C530 8B FA 00 02 */ lbz r31, 0x2(r26)
/* 800206F4 0001C534 9B FB 00 03 */ stb r31, 0x3(r27)
/* 800206F8 0001C538 8B FA 00 03 */ lbz r31, 0x3(r26)
/* 800206FC 0001C53C 9B FB 00 04 */ stb r31, 0x4(r27)
/* 80020700 0001C540 8B FA 00 04 */ lbz r31, 0x4(r26)
/* 80020704 0001C544 9B FB 00 05 */ stb r31, 0x5(r27)
/* 80020708 0001C548 8B FA 00 05 */ lbz r31, 0x5(r26)
/* 8002070C 0001C54C 9B FB 00 06 */ stb r31, 0x6(r27)
/* 80020710 0001C550 8B FA 00 06 */ lbz r31, 0x6(r26)
/* 80020714 0001C554 9B FB 00 07 */ stb r31, 0x7(r27)
/* 80020718 0001C558 42 00 FF A8 */ bdnz lbl_800206C0
.global lbl_8002071C
lbl_8002071C:
/* 8002071C 0001C55C 7F E6 50 50 */ subf r31, r6, r10
/* 80020720 0001C560 7F 84 42 14 */ add r28, r4, r8
/* 80020724 0001C564 7F E9 03 A6 */ mtctr r31
/* 80020728 0001C568 7C 06 50 00 */ cmpw r6, r10
/* 8002072C 0001C56C 40 80 00 24 */ bge lbl_80020750
.global lbl_80020730
lbl_80020730:
/* 80020730 0001C570 7D 44 3A 14 */ add r10, r4, r7
/* 80020734 0001C574 38 E7 00 01 */ addi r7, r7, 0x1
/* 80020738 0001C578 89 4A FF FF */ lbz r10, -0x1(r10)
/* 8002073C 0001C57C 38 C6 00 01 */ addi r6, r6, 0x1
/* 80020740 0001C580 99 5C 00 00 */ stb r10, 0x0(r28)
/* 80020744 0001C584 3B 9C 00 01 */ addi r28, r28, 0x1
/* 80020748 0001C588 39 08 00 01 */ addi r8, r8, 0x1
/* 8002074C 0001C58C 42 00 FF E4 */ bdnz lbl_80020730
.global lbl_80020750
lbl_80020750:
/* 80020750 0001C590 7C 08 00 00 */ cmpw r8, r0
/* 80020754 0001C594 55 8C 08 3C */ slwi r12, r12, 1
/* 80020758 0001C598 39 6B FF FF */ addi r11, r11, -0x1
/* 8002075C 0001C59C 41 80 FE AC */ blt lbl_80020608
/* 80020760 0001C5A0 39 61 00 20 */ addi r11, r1, 0x20
/* 80020764 0001C5A4 4B FE 6C 21 */ bl lbl_80007384
/* 80020768 0001C5A8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002076C 0001C5AC 7C 08 03 A6 */ mtlr r0
/* 80020770 0001C5B0 38 21 00 20 */ addi r1, r1, 0x20
/* 80020774 0001C5B4 4E 80 00 20 */ blr
/* 80020778 0001C5B8 00 00 00 00 */ .4byte 0x00000000
/* 8002077C 0001C5BC 00 00 00 00 */ .4byte 0x00000000
.global OSGetFontEncode
OSGetFontEncode:
/* 80020780 0001C5C0 A0 6D 80 C8 */ lhz r3, FontEncode@sda21(r13)
/* 80020784 0001C5C4 28 03 FF FF */ cmplwi r3, 0xffff
/* 80020788 0001C5C8 4C 82 00 20 */ bnelr
/* 8002078C 0001C5CC 3C 60 80 00 */ lis r3, 0x800000CC@ha
/* 80020790 0001C5D0 80 03 00 CC */ lwz r0, 0x800000CC@l(r3)
/* 80020794 0001C5D4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020798 0001C5D8 40 82 00 18 */ bne lbl_800207B0
/* 8002079C 0001C5DC 3C 60 CC 00 */ lis r3, 0xCC00206E@ha
/* 800207A0 0001C5E0 A0 03 20 6E */ lhz r0, 0xCC00206E@l(r3)
/* 800207A4 0001C5E4 54 00 FF FE */ extrwi r0, r0, 1, 30
/* 800207A8 0001C5E8 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
/* 800207AC 0001C5EC 48 00 00 0C */ b lbl_800207B8
.global lbl_800207B0
lbl_800207B0:
/* 800207B0 0001C5F0 38 00 00 00 */ li r0, 0x0
/* 800207B4 0001C5F4 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
.global lbl_800207B8
lbl_800207B8:
/* 800207B8 0001C5F8 3C 80 80 02 */ lis r4, ParseStringS@ha
/* 800207BC 0001C5FC 54 03 04 3E */ clrlwi r3, r0, 16
/* 800207C0 0001C600 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 800207C4 0001C604 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
/* 800207C8 0001C608 4E 80 00 20 */ blr
/* 800207CC 0001C60C 00 00 00 00 */ .4byte 0x00000000
.global OSSetFontEncode
OSSetFontEncode:
/* 800207D0 0001C610 A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
/* 800207D4 0001C614 28 00 FF FF */ cmplwi r0, 0xffff
/* 800207D8 0001C618 41 82 00 08 */ beq lbl_800207E0
/* 800207DC 0001C61C 48 00 00 40 */ b lbl_8002081C
.global lbl_800207E0
lbl_800207E0:
/* 800207E0 0001C620 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 800207E4 0001C624 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 800207E8 0001C628 2C 00 00 00 */ cmpwi r0, 0x0
/* 800207EC 0001C62C 40 82 00 18 */ bne lbl_80020804
/* 800207F0 0001C630 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 800207F4 0001C634 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 800207F8 0001C638 54 00 FF FE */ extrwi r0, r0, 1, 30
/* 800207FC 0001C63C B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
.global lbl_80020800
lbl_80020800:
/* 80020800 0001C640 48 00 00 0C */ b lbl_8002080C
.global lbl_80020804
lbl_80020804:
/* 80020804 0001C644 38 00 00 00 */ li r0, 0x0
/* 80020808 0001C648 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
.global lbl_8002080C
lbl_8002080C:
/* 8002080C 0001C64C 3C 80 80 02 */ lis r4, ParseStringS@ha
/* 80020810 0001C650 54 00 04 3E */ clrlwi r0, r0, 16
/* 80020814 0001C654 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 80020818 0001C658 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
.global lbl_8002081C
lbl_8002081C:
/* 8002081C 0001C65C 28 83 00 05 */ cmplwi cr1, r3, 0x5
/* 80020820 0001C660 41 85 00 20 */ bgt cr1, lbl_80020840
/* 80020824 0001C664 28 03 00 03 */ cmplwi r3, 0x3
/* 80020828 0001C668 B0 6D 80 C8 */ sth r3, FontEncode@sda21(r13)
/* 8002082C 0001C66C 41 80 00 14 */ blt lbl_80020840
/* 80020830 0001C670 41 85 00 10 */ bgt cr1, lbl_80020840
/* 80020834 0001C674 3C 60 80 02 */ lis r3, ParseStringW@ha
/* 80020838 0001C678 38 63 0D 80 */ addi r3, r3, ParseStringW@l
/* 8002083C 0001C67C 90 6D E3 D8 */ stw r3, ParseString@sda21(r13)
.global lbl_80020840
lbl_80020840:
/* 80020840 0001C680 7C 03 03 78 */ mr r3, r0
/* 80020844 0001C684 4E 80 00 20 */ blr
/* 80020848 0001C688 00 00 00 00 */ .4byte 0x00000000
/* 8002084C 0001C68C 00 00 00 00 */ .4byte 0x00000000
.global ReadFont
ReadFont:
/* 80020850 0001C690 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80020854 0001C694 7C 08 02 A6 */ mflr r0
/* 80020858 0001C698 90 01 00 34 */ stw r0, 0x34(r1)
/* 8002085C 0001C69C 39 61 00 30 */ addi r11, r1, 0x30
/* 80020860 0001C6A0 4B FE 6A D5 */ bl lbl_80007334
/* 80020864 0001C6A4 28 04 00 01 */ cmplwi r4, 0x1
/* 80020868 0001C6A8 7C 7C 1B 78 */ mr r28, r3
/* 8002086C 0001C6AC 7C 9D 23 78 */ mr r29, r4
/* 80020870 0001C6B0 7C BE 2B 78 */ mr r30, r5
/* 80020874 0001C6B4 40 82 00 5C */ bne lbl_800208D0
/* 80020878 0001C6B8 3C 80 00 1B */ lis r4, 0x1b
/* 8002087C 0001C6BC 3C 60 00 05 */ lis r3, 0x5
/* 80020880 0001C6C0 7F 9F E3 78 */ mr r31, r28
/* 80020884 0001C6C4 3B 44 FF 00 */ addi r26, r4, -0x100
/* 80020888 0001C6C8 3B 63 D0 00 */ addi r27, r3, -0x3000
/* 8002088C 0001C6CC 48 00 00 38 */ b lbl_800208C4
.global lbl_80020890
lbl_80020890:
/* 80020890 0001C6D0 2C 1B 01 00 */ cmpwi r27, 0x100
/* 80020894 0001C6D4 3B 20 01 00 */ li r25, 0x100
/* 80020898 0001C6D8 41 81 00 08 */ bgt lbl_800208A0
/* 8002089C 0001C6DC 7F 79 DB 78 */ mr r25, r27
.global lbl_800208A0
lbl_800208A0:
/* 800208A0 0001C6E0 7F 79 D8 50 */ subf r27, r25, r27
.global lbl_800208A4
lbl_800208A4:
/* 800208A4 0001C6E4 7F E3 FB 78 */ mr r3, r31
/* 800208A8 0001C6E8 7F 24 CB 78 */ mr r4, r25
/* 800208AC 0001C6EC 7F 45 D3 78 */ mr r5, r26
/* 800208B0 0001C6F0 48 00 35 C1 */ bl __OSReadROM
/* 800208B4 0001C6F4 2C 03 00 00 */ cmpwi r3, 0x0
/* 800208B8 0001C6F8 41 82 FF EC */ beq lbl_800208A4
/* 800208BC 0001C6FC 7F 5A CA 14 */ add r26, r26, r25
/* 800208C0 0001C700 7F FF CA 14 */ add r31, r31, r25
.global lbl_800208C4
lbl_800208C4:
/* 800208C4 0001C704 2C 1B 00 00 */ cmpwi r27, 0x0
/* 800208C8 0001C708 41 81 FF C8 */ bgt lbl_80020890
/* 800208CC 0001C70C 48 00 00 54 */ b lbl_80020920
.global lbl_800208D0
lbl_800208D0:
/* 800208D0 0001C710 3C 60 00 20 */ lis r3, 0x20
/* 800208D4 0001C714 7F 9A E3 78 */ mr r26, r28
/* 800208D8 0001C718 3B E3 CF 00 */ addi r31, r3, -0x3100
/* 800208DC 0001C71C 3B 60 30 00 */ li r27, 0x3000
/* 800208E0 0001C720 48 00 00 38 */ b lbl_80020918
.global lbl_800208E4
lbl_800208E4:
/* 800208E4 0001C724 2C 1B 01 00 */ cmpwi r27, 0x100
/* 800208E8 0001C728 3B 20 01 00 */ li r25, 0x100
/* 800208EC 0001C72C 41 81 00 08 */ bgt lbl_800208F4
/* 800208F0 0001C730 7F 79 DB 78 */ mr r25, r27
.global lbl_800208F4
lbl_800208F4:
/* 800208F4 0001C734 7F 79 D8 50 */ subf r27, r25, r27
.global lbl_800208F8
lbl_800208F8:
/* 800208F8 0001C738 7F 43 D3 78 */ mr r3, r26
/* 800208FC 0001C73C 7F 24 CB 78 */ mr r4, r25
/* 80020900 0001C740 7F E5 FB 78 */ mr r5, r31
/* 80020904 0001C744 48 00 35 6D */ bl __OSReadROM
/* 80020908 0001C748 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002090C 0001C74C 41 82 FF EC */ beq lbl_800208F8
/* 80020910 0001C750 7F FF CA 14 */ add r31, r31, r25
/* 80020914 0001C754 7F 5A CA 14 */ add r26, r26, r25
.global lbl_80020918
lbl_80020918:
/* 80020918 0001C758 2C 1B 00 00 */ cmpwi r27, 0x0
/* 8002091C 0001C75C 41 81 FF C8 */ bgt lbl_800208E4
.global lbl_80020920
lbl_80020920:
/* 80020920 0001C760 88 1C 00 00 */ lbz r0, 0x0(r28)
/* 80020924 0001C764 28 00 00 59 */ cmplwi r0, 0x59
/* 80020928 0001C768 40 82 00 24 */ bne lbl_8002094C
/* 8002092C 0001C76C 88 1C 00 01 */ lbz r0, 0x1(r28)
/* 80020930 0001C770 28 00 00 61 */ cmplwi r0, 0x61
/* 80020934 0001C774 40 82 00 18 */ bne lbl_8002094C
/* 80020938 0001C778 88 1C 00 02 */ lbz r0, 0x2(r28)
/* 8002093C 0001C77C 28 00 00 79 */ cmplwi r0, 0x79
/* 80020940 0001C780 40 82 00 0C */ bne lbl_8002094C
/* 80020944 0001C784 83 FC 00 04 */ lwz r31, 0x4(r28)
/* 80020948 0001C788 48 00 00 08 */ b lbl_80020950
.global lbl_8002094C
lbl_8002094C:
/* 8002094C 0001C78C 3B E0 00 00 */ li r31, 0x0
.global lbl_80020950
lbl_80020950:
/* 80020950 0001C790 2C 1F 00 00 */ cmpwi r31, 0x0
/* 80020954 0001C794 40 82 00 0C */ bne lbl_80020960
/* 80020958 0001C798 38 60 00 00 */ li r3, 0x0
/* 8002095C 0001C79C 48 00 01 EC */ b lbl_80020B48
.global lbl_80020960
lbl_80020960:
/* 80020960 0001C7A0 7F 83 E3 78 */ mr r3, r28
/* 80020964 0001C7A4 7F C4 F3 78 */ mr r4, r30
/* 80020968 0001C7A8 4B FF FC 69 */ bl Decode
/* 8002096C 0001C7AC 28 1D 00 01 */ cmplwi r29, 0x1
/* 80020970 0001C7B0 40 82 01 D4 */ bne lbl_80020B44
/* 80020974 0001C7B4 80 A2 85 90 */ lwz r5, "@1601_8055E510"@sda21(r2)
/* 80020978 0001C7B8 7F A3 EB 78 */ mr r3, r29
/* 8002097C 0001C7BC 80 02 85 94 */ lwz r0, lbl_8055E514@sda21(r2)
/* 80020980 0001C7C0 38 80 00 54 */ li r4, 0x54
/* 80020984 0001C7C4 90 A1 00 08 */ stw r5, 0x8(r1)
/* 80020988 0001C7C8 90 01 00 0C */ stw r0, 0xc(r1)
/* 8002098C 0001C7CC 4B FF FB 05 */ bl GetFontCode
/* 80020990 0001C7D0 A1 7E 00 1A */ lhz r11, 0x1a(r30)
/* 80020994 0001C7D4 A0 9E 00 1C */ lhz r4, 0x1c(r30)
/* 80020998 0001C7D8 A0 1E 00 1E */ lhz r0, 0x1e(r30)
/* 8002099C 0001C7DC 7D 2B 21 D6 */ mullw r9, r11, r4
/* 800209A0 0001C7E0 80 BE 00 24 */ lwz r5, 0x24(r30)
/* 800209A4 0001C7E4 54 04 10 34 */ extlwi r4, r0, 27, 2
/* 800209A8 0001C7E8 A0 DE 00 12 */ lhz r6, 0x12(r30)
/* 800209AC 0001C7EC 54 00 1F FE */ extrwi r0, r0, 1, 2
/* 800209B0 0001C7F0 A0 FE 00 10 */ lhz r7, 0x10(r30)
/* 800209B4 0001C7F4 7F 23 4B D6 */ divw r25, r3, r9
/* 800209B8 0001C7F8 7C 00 22 14 */ add r0, r0, r4
/* 800209BC 0001C7FC 81 5E 00 14 */ lwz r10, 0x14(r30)
/* 800209C0 0001C800 7C 9E 2A 14 */ add r4, r30, r5
/* 800209C4 0001C804 7C 1C 0E 70 */ srawi r28, r0, 1
/* 800209C8 0001C808 A1 01 00 08 */ lhz r8, 0x8(r1)
/* 800209CC 0001C80C 7C 19 49 D6 */ mullw r0, r25, r9
/* 800209D0 0001C810 A1 21 00 0A */ lhz r9, 0xa(r1)
/* 800209D4 0001C814 7C 60 18 50 */ subf r3, r0, r3
/* 800209D8 0001C818 7C A3 5B D6 */ divw r5, r3, r11
/* 800209DC 0001C81C 7C 05 59 D6 */ mullw r0, r5, r11
/* 800209E0 0001C820 7C A5 31 D6 */ mullw r5, r5, r6
/* 800209E4 0001C824 7F 40 18 50 */ subf r26, r0, r3
/* 800209E8 0001C828 38 C5 00 04 */ addi r6, r5, 0x4
/* 800209EC 0001C82C 7F 5A 39 D6 */ mullw r26, r26, r7
/* 800209F0 0001C830 39 65 00 05 */ addi r11, r5, 0x5
/* 800209F4 0001C834 7C C3 1E 70 */ srawi r3, r6, 3
/* 800209F8 0001C838 54 C0 E8 04 */ slwi r0, r6, 29
/* 800209FC 0001C83C 7D 83 01 94 */ addze r12, r3
/* 80020A00 0001C840 54 C7 0F FE */ srwi r7, r6, 31
/* 80020A04 0001C844 7F B9 51 D6 */ mullw r29, r25, r10
/* 80020A08 0001C848 7F 43 1E 70 */ srawi r3, r26, 3
/* 80020A0C 0001C84C 7C 07 00 50 */ subf r0, r7, r0
/* 80020A10 0001C850 7D 43 01 94 */ addze r10, r3
/* 80020A14 0001C854 54 03 18 3E */ rotlwi r3, r0, 3
/* 80020A18 0001C858 57 40 E8 04 */ slwi r0, r26, 29
/* 80020A1C 0001C85C 57 46 0F FE */ srwi r6, r26, 31
/* 80020A20 0001C860 57 BD F8 7E */ srwi r29, r29, 1
/* 80020A24 0001C864 7D 9C 61 D6 */ mullw r12, r28, r12
/* 80020A28 0001C868 7C E3 3A 14 */ add r7, r3, r7
/* 80020A2C 0001C86C 7C 06 00 50 */ subf r0, r6, r0
/* 80020A30 0001C870 7C 84 EA 14 */ add r4, r4, r29
/* 80020A34 0001C874 54 03 18 3E */ rotlwi r3, r0, 3
/* 80020A38 0001C878 55 40 20 36 */ slwi r0, r10, 4
/* 80020A3C 0001C87C 7C 63 32 14 */ add r3, r3, r6
/* 80020A40 0001C880 7D 84 62 14 */ add r12, r4, r12
/* 80020A44 0001C884 54 EA 08 3C */ slwi r10, r7, 1
/* 80020A48 0001C888 55 66 E8 04 */ slwi r6, r11, 29
/* 80020A4C 0001C88C 7C 63 16 70 */ srawi r3, r3, 2
/* 80020A50 0001C890 7D 8C 02 14 */ add r12, r12, r0
/* 80020A54 0001C894 55 67 0F FE */ srwi r7, r11, 31
/* 80020A58 0001C898 7C C7 30 50 */ subf r6, r7, r6
/* 80020A5C 0001C89C 7C 63 01 94 */ addze r3, r3
/* 80020A60 0001C8A0 7D 8C 52 14 */ add r12, r12, r10
/* 80020A64 0001C8A4 7D 0C 1B 2E */ sthx r8, r12, r3
/* 80020A68 0001C8A8 54 C6 18 3E */ rotlwi r6, r6, 3
/* 80020A6C 0001C8AC 7C C6 3A 14 */ add r6, r6, r7
/* 80020A70 0001C8B0 39 05 00 06 */ addi r8, r5, 0x6
/* 80020A74 0001C8B4 A1 9E 00 1E */ lhz r12, 0x1e(r30)
/* 80020A78 0001C8B8 54 CA 08 3C */ slwi r10, r6, 1
/* 80020A7C 0001C8BC 55 06 E8 04 */ slwi r6, r8, 29
/* 80020A80 0001C8C0 55 07 0F FE */ srwi r7, r8, 31
/* 80020A84 0001C8C4 55 9C 10 34 */ extlwi r28, r12, 27, 2
/* 80020A88 0001C8C8 55 8C 1F FE */ extrwi r12, r12, 1, 2
/* 80020A8C 0001C8CC 7D 8C E2 14 */ add r12, r12, r28
/* 80020A90 0001C8D0 7C C7 30 50 */ subf r6, r7, r6
/* 80020A94 0001C8D4 7D 8C 0E 70 */ srawi r12, r12, 1
/* 80020A98 0001C8D8 7D 6B 1E 70 */ srawi r11, r11, 3
/* 80020A9C 0001C8DC 54 C6 18 3E */ rotlwi r6, r6, 3
/* 80020AA0 0001C8E0 7D 6B 01 94 */ addze r11, r11
/* 80020AA4 0001C8E4 7C C6 3A 14 */ add r6, r6, r7
/* 80020AA8 0001C8E8 7D 6C 59 D6 */ mullw r11, r12, r11
/* 80020AAC 0001C8EC 54 C6 08 3C */ slwi r6, r6, 1
/* 80020AB0 0001C8F0 7C E4 5A 14 */ add r7, r4, r11
/* 80020AB4 0001C8F4 7C E7 02 14 */ add r7, r7, r0
/* 80020AB8 0001C8F8 7C E7 52 14 */ add r7, r7, r10
/* 80020ABC 0001C8FC 7D 27 1B 2E */ sthx r9, r7, r3
/* 80020AC0 0001C900 A0 FE 00 1E */ lhz r7, 0x1e(r30)
/* 80020AC4 0001C904 54 E9 10 34 */ extlwi r9, r7, 27, 2
/* 80020AC8 0001C908 54 E7 1F FE */ extrwi r7, r7, 1, 2
/* 80020ACC 0001C90C 7C E7 4A 14 */ add r7, r7, r9
/* 80020AD0 0001C910 7C E9 0E 70 */ srawi r9, r7, 1
/* 80020AD4 0001C914 7D 07 1E 70 */ srawi r7, r8, 3
/* 80020AD8 0001C918 7C E7 01 94 */ addze r7, r7
/* 80020ADC 0001C91C 7C E9 39 D6 */ mullw r7, r9, r7
/* 80020AE0 0001C920 7C E4 3A 14 */ add r7, r4, r7
/* 80020AE4 0001C924 7C E7 02 14 */ add r7, r7, r0
/* 80020AE8 0001C928 7C E7 32 14 */ add r7, r7, r6
/* 80020AEC 0001C92C A0 C1 00 0C */ lhz r6, 0xc(r1)
/* 80020AF0 0001C930 39 05 00 07 */ addi r8, r5, 0x7
/* 80020AF4 0001C934 7C C7 1B 2E */ sthx r6, r7, r3
/* 80020AF8 0001C938 55 06 E8 04 */ slwi r6, r8, 29
/* 80020AFC 0001C93C 55 07 0F FE */ srwi r7, r8, 31
/* 80020B00 0001C940 A0 A1 00 0E */ lhz r5, 0xe(r1)
/* 80020B04 0001C944 A1 3E 00 1E */ lhz r9, 0x1e(r30)
/* 80020B08 0001C948 7C C7 30 50 */ subf r6, r7, r6
/* 80020B0C 0001C94C 54 C6 18 3E */ rotlwi r6, r6, 3
/* 80020B10 0001C950 55 2A 10 34 */ extlwi r10, r9, 27, 2
/* 80020B14 0001C954 55 29 1F FE */ extrwi r9, r9, 1, 2
/* 80020B18 0001C958 7D 29 52 14 */ add r9, r9, r10
/* 80020B1C 0001C95C 7C C6 3A 14 */ add r6, r6, r7
/* 80020B20 0001C960 7D 29 0E 70 */ srawi r9, r9, 1
/* 80020B24 0001C964 7D 07 1E 70 */ srawi r7, r8, 3
/* 80020B28 0001C968 54 C6 08 3C */ slwi r6, r6, 1
/* 80020B2C 0001C96C 7C E7 01 94 */ addze r7, r7
/* 80020B30 0001C970 7C E9 39 D6 */ mullw r7, r9, r7
/* 80020B34 0001C974 7C 84 3A 14 */ add r4, r4, r7
/* 80020B38 0001C978 7C 84 02 14 */ add r4, r4, r0
/* 80020B3C 0001C97C 7C 84 32 14 */ add r4, r4, r6
/* 80020B40 0001C980 7C A4 1B 2E */ sthx r5, r4, r3
.global lbl_80020B44
lbl_80020B44:
/* 80020B44 0001C984 7F E3 FB 78 */ mr r3, r31
.global lbl_80020B48
lbl_80020B48:
/* 80020B48 0001C988 39 61 00 30 */ addi r11, r1, 0x30
/* 80020B4C 0001C98C 4B FE 68 35 */ bl lbl_80007380
/* 80020B50 0001C990 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80020B54 0001C994 7C 08 03 A6 */ mtlr r0
/* 80020B58 0001C998 38 21 00 30 */ addi r1, r1, 0x30
/* 80020B5C 0001C99C 4E 80 00 20 */ blr
.global OSLoadFont
OSLoadFont:
/* 80020B60 0001C9A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80020B64 0001C9A4 7C 08 02 A6 */ mflr r0
/* 80020B68 0001C9A8 7C 65 1B 78 */ mr r5, r3
/* 80020B6C 0001C9AC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80020B70 0001C9B0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80020B74 0001C9B4 93 C1 00 08 */ stw r30, 0x8(r1)
/* 80020B78 0001C9B8 7C 9E 23 78 */ mr r30, r4
/* 80020B7C 0001C9BC A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
/* 80020B80 0001C9C0 28 00 FF FF */ cmplwi r0, 0xffff
/* 80020B84 0001C9C4 41 82 00 08 */ beq lbl_80020B8C
/* 80020B88 0001C9C8 48 00 00 40 */ b lbl_80020BC8
.global lbl_80020B8C
lbl_80020B8C:
/* 80020B8C 0001C9CC 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 80020B90 0001C9D0 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 80020B94 0001C9D4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020B98 0001C9D8 40 82 00 18 */ bne lbl_80020BB0
/* 80020B9C 0001C9DC 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 80020BA0 0001C9E0 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 80020BA4 0001C9E4 54 00 FF FE */ extrwi r0, r0, 1, 30
/* 80020BA8 0001C9E8 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
/* 80020BAC 0001C9EC 48 00 00 0C */ b lbl_80020BB8
.global lbl_80020BB0
lbl_80020BB0:
/* 80020BB0 0001C9F0 38 00 00 00 */ li r0, 0x0
/* 80020BB4 0001C9F4 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
.global lbl_80020BB8
lbl_80020BB8:
/* 80020BB8 0001C9F8 3C 80 80 02 */ lis r4, ParseStringS@ha
/* 80020BBC 0001C9FC 54 00 04 3E */ clrlwi r0, r0, 16
/* 80020BC0 0001CA00 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 80020BC4 0001CA04 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
.global lbl_80020BC8
lbl_80020BC8:
/* 80020BC8 0001CA08 54 04 04 3E */ clrlwi r4, r0, 16
/* 80020BCC 0001CA0C 38 04 FF FD */ addi r0, r4, -0x3
/* 80020BD0 0001CA10 28 00 00 02 */ cmplwi r0, 0x2
/* 80020BD4 0001CA14 40 81 00 48 */ ble lbl_80020C1C
/* 80020BD8 0001CA18 2C 04 00 00 */ cmpwi r4, 0x0
/* 80020BDC 0001CA1C 41 82 00 10 */ beq lbl_80020BEC
/* 80020BE0 0001CA20 2C 04 00 01 */ cmpwi r4, 0x1
/* 80020BE4 0001CA24 41 82 00 20 */ beq lbl_80020C04
/* 80020BE8 0001CA28 48 00 00 70 */ b lbl_80020C58
.global lbl_80020BEC
lbl_80020BEC:
/* 80020BEC 0001CA2C 90 6D E3 E4 */ stw r3, FontDataAnsi@sda21(r13)
/* 80020BF0 0001CA30 7F C3 F3 78 */ mr r3, r30
/* 80020BF4 0001CA34 38 80 00 00 */ li r4, 0x0
/* 80020BF8 0001CA38 4B FF FC 59 */ bl ReadFont
/* 80020BFC 0001CA3C 7C 7F 1B 78 */ mr r31, r3
/* 80020C00 0001CA40 48 00 00 5C */ b lbl_80020C5C
.global lbl_80020C04
lbl_80020C04:
/* 80020C04 0001CA44 90 6D E3 E0 */ stw r3, FontDataSjis@sda21(r13)
/* 80020C08 0001CA48 7F C3 F3 78 */ mr r3, r30
/* 80020C0C 0001CA4C 38 80 00 01 */ li r4, 0x1
/* 80020C10 0001CA50 4B FF FC 41 */ bl ReadFont
/* 80020C14 0001CA54 7C 7F 1B 78 */ mr r31, r3
/* 80020C18 0001CA58 48 00 00 44 */ b lbl_80020C5C
.global lbl_80020C1C
lbl_80020C1C:
/* 80020C1C 0001CA5C 90 6D E3 E4 */ stw r3, FontDataAnsi@sda21(r13)
/* 80020C20 0001CA60 7F C3 F3 78 */ mr r3, r30
/* 80020C24 0001CA64 38 80 00 00 */ li r4, 0x0
/* 80020C28 0001CA68 4B FF FC 29 */ bl ReadFont
/* 80020C2C 0001CA6C 2C 03 00 00 */ cmpwi r3, 0x0
/* 80020C30 0001CA70 7C 7F 1B 78 */ mr r31, r3
/* 80020C34 0001CA74 41 82 00 28 */ beq lbl_80020C5C
/* 80020C38 0001CA78 80 0D E3 E4 */ lwz r0, FontDataAnsi@sda21(r13)
/* 80020C3C 0001CA7C 38 80 00 01 */ li r4, 0x1
/* 80020C40 0001CA80 7C A0 1A 14 */ add r5, r0, r3
/* 80020C44 0001CA84 90 AD E3 E0 */ stw r5, FontDataSjis@sda21(r13)
/* 80020C48 0001CA88 7F C3 F3 78 */ mr r3, r30
/* 80020C4C 0001CA8C 4B FF FC 05 */ bl ReadFont
/* 80020C50 0001CA90 7F FF 1A 14 */ add r31, r31, r3
/* 80020C54 0001CA94 48 00 00 08 */ b lbl_80020C5C
.global lbl_80020C58
lbl_80020C58:
/* 80020C58 0001CA98 3B E0 00 00 */ li r31, 0x0
.global lbl_80020C5C
lbl_80020C5C:
/* 80020C5C 0001CA9C 7F E3 FB 78 */ mr r3, r31
/* 80020C60 0001CAA0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80020C64 0001CAA4 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 80020C68 0001CAA8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80020C6C 0001CAAC 7C 08 03 A6 */ mtlr r0
/* 80020C70 0001CAB0 38 21 00 10 */ addi r1, r1, 0x10
/* 80020C74 0001CAB4 4E 80 00 20 */ blr
/* 80020C78 0001CAB8 00 00 00 00 */ .4byte 0x00000000
/* 80020C7C 0001CABC 00 00 00 00 */ .4byte 0x00000000
.global ParseStringS
ParseStringS:
/* 80020C80 0001CAC0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80020C84 0001CAC4 7C 08 02 A6 */ mflr r0
/* 80020C88 0001CAC8 2C 03 00 00 */ cmpwi r3, 0x0
/* 80020C8C 0001CACC 38 E0 00 00 */ li r7, 0x0
/* 80020C90 0001CAD0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80020C94 0001CAD4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80020C98 0001CAD8 7C DF 33 78 */ mr r31, r6
/* 80020C9C 0001CADC 93 C1 00 08 */ stw r30, 0x8(r1)
/* 80020CA0 0001CAE0 7C 9E 23 78 */ mr r30, r4
/* 80020CA4 0001CAE4 41 82 00 10 */ beq lbl_80020CB4
/* 80020CA8 0001CAE8 2C 03 00 01 */ cmpwi r3, 0x1
/* 80020CAC 0001CAEC 41 82 00 20 */ beq lbl_80020CCC
/* 80020CB0 0001CAF0 48 00 00 9C */ b lbl_80020D4C
.global lbl_80020CB4
lbl_80020CB4:
/* 80020CB4 0001CAF4 88 E4 00 00 */ lbz r7, 0x0(r4)
/* 80020CB8 0001CAF8 80 CD E3 E4 */ lwz r6, FontDataAnsi@sda21(r13)
/* 80020CBC 0001CAFC 2C 07 00 00 */ cmpwi r7, 0x0
/* 80020CC0 0001CB00 41 82 00 8C */ beq lbl_80020D4C
/* 80020CC4 0001CB04 3B C4 00 01 */ addi r30, r4, 0x1
/* 80020CC8 0001CB08 48 00 00 84 */ b lbl_80020D4C
.global lbl_80020CCC
lbl_80020CCC:
/* 80020CCC 0001CB0C 88 E4 00 00 */ lbz r7, 0x0(r4)
/* 80020CD0 0001CB10 80 CD E3 E0 */ lwz r6, FontDataSjis@sda21(r13)
/* 80020CD4 0001CB14 2C 07 00 00 */ cmpwi r7, 0x0
/* 80020CD8 0001CB18 41 82 00 74 */ beq lbl_80020D4C
/* 80020CDC 0001CB1C 28 07 00 81 */ cmplwi r7, 0x81
/* 80020CE0 0001CB20 3B C4 00 01 */ addi r30, r4, 0x1
/* 80020CE4 0001CB24 38 00 00 00 */ li r0, 0x0
/* 80020CE8 0001CB28 41 80 00 0C */ blt lbl_80020CF4
/* 80020CEC 0001CB2C 28 07 00 9F */ cmplwi r7, 0x9f
/* 80020CF0 0001CB30 40 81 00 14 */ ble lbl_80020D04
.global lbl_80020CF4
lbl_80020CF4:
/* 80020CF4 0001CB34 28 07 00 E0 */ cmplwi r7, 0xe0
/* 80020CF8 0001CB38 41 80 00 10 */ blt lbl_80020D08
/* 80020CFC 0001CB3C 28 07 00 FC */ cmplwi r7, 0xfc
/* 80020D00 0001CB40 41 81 00 08 */ bgt lbl_80020D08
.global lbl_80020D04
lbl_80020D04:
/* 80020D04 0001CB44 38 00 00 01 */ li r0, 0x1
.global lbl_80020D08
lbl_80020D08:
/* 80020D08 0001CB48 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020D0C 0001CB4C 41 82 00 40 */ beq lbl_80020D4C
/* 80020D10 0001CB50 88 9E 00 00 */ lbz r4, 0x0(r30)
/* 80020D14 0001CB54 38 00 00 00 */ li r0, 0x0
/* 80020D18 0001CB58 28 04 00 40 */ cmplwi r4, 0x40
/* 80020D1C 0001CB5C 41 80 00 18 */ blt lbl_80020D34
/* 80020D20 0001CB60 28 04 00 FC */ cmplwi r4, 0xfc
/* 80020D24 0001CB64 41 81 00 10 */ bgt lbl_80020D34
/* 80020D28 0001CB68 28 04 00 7F */ cmplwi r4, 0x7f
/* 80020D2C 0001CB6C 41 82 00 08 */ beq lbl_80020D34
/* 80020D30 0001CB70 38 00 00 01 */ li r0, 0x1
.global lbl_80020D34
lbl_80020D34:
/* 80020D34 0001CB74 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020D38 0001CB78 41 82 00 14 */ beq lbl_80020D4C
/* 80020D3C 0001CB7C 88 1E 00 00 */ lbz r0, 0x0(r30)
/* 80020D40 0001CB80 50 E0 42 2E */ rlwimi r0, r7, 8, 8, 23
/* 80020D44 0001CB84 3B DE 00 01 */ addi r30, r30, 0x1
/* 80020D48 0001CB88 54 07 04 3E */ clrlwi r7, r0, 16
.global lbl_80020D4C
lbl_80020D4C:
/* 80020D4C 0001CB8C 90 C5 00 00 */ stw r6, 0x0(r5)
/* 80020D50 0001CB90 7C E4 3B 78 */ mr r4, r7
/* 80020D54 0001CB94 4B FF F7 3D */ bl GetFontCode
/* 80020D58 0001CB98 90 7F 00 00 */ stw r3, 0x0(r31)
/* 80020D5C 0001CB9C 7F C3 F3 78 */ mr r3, r30
/* 80020D60 0001CBA0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80020D64 0001CBA4 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 80020D68 0001CBA8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80020D6C 0001CBAC 7C 08 03 A6 */ mtlr r0
/* 80020D70 0001CBB0 38 21 00 10 */ addi r1, r1, 0x10
/* 80020D74 0001CBB4 4E 80 00 20 */ blr
/* 80020D78 0001CBB8 00 00 00 00 */ .4byte 0x00000000
/* 80020D7C 0001CBBC 00 00 00 00 */ .4byte 0x00000000
.global ParseStringW
ParseStringW:
/* 80020D80 0001CBC0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80020D84 0001CBC4 7C 08 02 A6 */ mflr r0
/* 80020D88 0001CBC8 90 01 00 34 */ stw r0, 0x34(r1)
/* 80020D8C 0001CBCC 39 61 00 30 */ addi r11, r1, 0x30
/* 80020D90 0001CBD0 4B FE 65 A9 */ bl lbl_80007338
/* 80020D94 0001CBD4 2C 03 00 00 */ cmpwi r3, 0x0
/* 80020D98 0001CBD8 3B C0 00 00 */ li r30, 0x0
/* 80020D9C 0001CBDC 93 C1 00 08 */ stw r30, 0x8(r1)
/* 80020DA0 0001CBE0 7C 7A 1B 78 */ mr r26, r3
/* 80020DA4 0001CBE4 7C 9B 23 78 */ mr r27, r4
/* 80020DA8 0001CBE8 7C BC 2B 78 */ mr r28, r5
/* 80020DAC 0001CBEC 7C DD 33 78 */ mr r29, r6
/* 80020DB0 0001CBF0 41 82 00 28 */ beq lbl_80020DD8
/* 80020DB4 0001CBF4 2C 03 00 01 */ cmpwi r3, 0x1
/* 80020DB8 0001CBF8 41 82 00 38 */ beq lbl_80020DF0
/* 80020DBC 0001CBFC 2C 03 00 03 */ cmpwi r3, 0x3
/* 80020DC0 0001CC00 41 82 00 B4 */ beq lbl_80020E74
/* 80020DC4 0001CC04 2C 03 00 04 */ cmpwi r3, 0x4
/* 80020DC8 0001CC08 41 82 00 C0 */ beq lbl_80020E88
/* 80020DCC 0001CC0C 2C 03 00 05 */ cmpwi r3, 0x5
/* 80020DD0 0001CC10 41 82 00 CC */ beq lbl_80020E9C
/* 80020DD4 0001CC14 48 00 00 DC */ b lbl_80020EB0
.global lbl_80020DD8
lbl_80020DD8:
/* 80020DD8 0001CC18 8B C4 00 00 */ lbz r30, 0x0(r4)
/* 80020DDC 0001CC1C 83 ED E3 E4 */ lwz r31, FontDataAnsi@sda21(r13)
/* 80020DE0 0001CC20 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80020DE4 0001CC24 41 82 00 CC */ beq lbl_80020EB0
/* 80020DE8 0001CC28 3B 64 00 01 */ addi r27, r4, 0x1
/* 80020DEC 0001CC2C 48 00 00 C4 */ b lbl_80020EB0
.global lbl_80020DF0
lbl_80020DF0:
/* 80020DF0 0001CC30 8B C4 00 00 */ lbz r30, 0x0(r4)
/* 80020DF4 0001CC34 83 ED E3 E0 */ lwz r31, FontDataSjis@sda21(r13)
/* 80020DF8 0001CC38 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80020DFC 0001CC3C 41 82 00 B4 */ beq lbl_80020EB0
/* 80020E00 0001CC40 28 1E 00 81 */ cmplwi r30, 0x81
/* 80020E04 0001CC44 3B 64 00 01 */ addi r27, r4, 0x1
/* 80020E08 0001CC48 38 00 00 00 */ li r0, 0x0
/* 80020E0C 0001CC4C 41 80 00 0C */ blt lbl_80020E18
/* 80020E10 0001CC50 28 1E 00 9F */ cmplwi r30, 0x9f
/* 80020E14 0001CC54 40 81 00 14 */ ble lbl_80020E28
.global lbl_80020E18
lbl_80020E18:
/* 80020E18 0001CC58 28 1E 00 E0 */ cmplwi r30, 0xe0
/* 80020E1C 0001CC5C 41 80 00 10 */ blt lbl_80020E2C
/* 80020E20 0001CC60 28 1E 00 FC */ cmplwi r30, 0xfc
/* 80020E24 0001CC64 41 81 00 08 */ bgt lbl_80020E2C
.global lbl_80020E28
lbl_80020E28:
/* 80020E28 0001CC68 38 00 00 01 */ li r0, 0x1
.global lbl_80020E2C
lbl_80020E2C:
/* 80020E2C 0001CC6C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020E30 0001CC70 41 82 00 80 */ beq lbl_80020EB0
/* 80020E34 0001CC74 88 7B 00 00 */ lbz r3, 0x0(r27)
/* 80020E38 0001CC78 38 00 00 00 */ li r0, 0x0
/* 80020E3C 0001CC7C 28 03 00 40 */ cmplwi r3, 0x40
/* 80020E40 0001CC80 41 80 00 18 */ blt lbl_80020E58
/* 80020E44 0001CC84 28 03 00 FC */ cmplwi r3, 0xfc
/* 80020E48 0001CC88 41 81 00 10 */ bgt lbl_80020E58
/* 80020E4C 0001CC8C 28 03 00 7F */ cmplwi r3, 0x7f
/* 80020E50 0001CC90 41 82 00 08 */ beq lbl_80020E58
/* 80020E54 0001CC94 38 00 00 01 */ li r0, 0x1
.global lbl_80020E58
lbl_80020E58:
/* 80020E58 0001CC98 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020E5C 0001CC9C 41 82 00 54 */ beq lbl_80020EB0
/* 80020E60 0001CCA0 88 1B 00 00 */ lbz r0, 0x0(r27)
/* 80020E64 0001CCA4 53 C0 42 2E */ rlwimi r0, r30, 8, 8, 23
/* 80020E68 0001CCA8 3B 7B 00 01 */ addi r27, r27, 0x1
/* 80020E6C 0001CCAC 54 1E 04 3E */ clrlwi r30, r0, 16
/* 80020E70 0001CCB0 48 00 00 40 */ b lbl_80020EB0
.global lbl_80020E74
lbl_80020E74:
/* 80020E74 0001CCB4 7F 63 DB 78 */ mr r3, r27
/* 80020E78 0001CCB8 38 81 00 08 */ addi r4, r1, 0x8
/* 80020E7C 0001CCBC 48 00 50 F5 */ bl OSUTF8to32
/* 80020E80 0001CCC0 7C 7B 1B 78 */ mr r27, r3
/* 80020E84 0001CCC4 48 00 00 2C */ b lbl_80020EB0
.global lbl_80020E88
lbl_80020E88:
/* 80020E88 0001CCC8 7F 63 DB 78 */ mr r3, r27
/* 80020E8C 0001CCCC 38 81 00 08 */ addi r4, r1, 0x8
/* 80020E90 0001CCD0 48 00 52 01 */ bl OSUTF16to32
/* 80020E94 0001CCD4 7C 7B 1B 78 */ mr r27, r3
/* 80020E98 0001CCD8 48 00 00 18 */ b lbl_80020EB0
.global lbl_80020E9C
lbl_80020E9C:
/* 80020E9C 0001CCDC 80 04 00 00 */ lwz r0, 0x0(r4)
/* 80020EA0 0001CCE0 90 01 00 08 */ stw r0, 0x8(r1)
/* 80020EA4 0001CCE4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020EA8 0001CCE8 41 82 00 08 */ beq lbl_80020EB0
/* 80020EAC 0001CCEC 3B 64 00 04 */ addi r27, r4, 0x4
.global lbl_80020EB0
lbl_80020EB0:
/* 80020EB0 0001CCF0 80 61 00 08 */ lwz r3, 0x8(r1)
/* 80020EB4 0001CCF4 2C 03 00 00 */ cmpwi r3, 0x0
/* 80020EB8 0001CCF8 41 82 00 4C */ beq lbl_80020F04
/* 80020EBC 0001CCFC 83 ED E3 E4 */ lwz r31, FontDataAnsi@sda21(r13)
/* 80020EC0 0001CD00 3B 40 00 00 */ li r26, 0x0
/* 80020EC4 0001CD04 48 00 52 3D */ bl OSUTF32toANSI
/* 80020EC8 0001CD08 54 7E 06 3F */ clrlwi. r30, r3, 24
/* 80020ECC 0001CD0C 41 82 00 1C */ beq lbl_80020EE8
/* 80020ED0 0001CD10 80 0D E3 DC */ lwz r0, FixedPitch@sda21(r13)
/* 80020ED4 0001CD14 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020ED8 0001CD18 41 82 00 2C */ beq lbl_80020F04
/* 80020EDC 0001CD1C 80 01 00 08 */ lwz r0, 0x8(r1)
/* 80020EE0 0001CD20 28 00 00 7F */ cmplwi r0, 0x7f
/* 80020EE4 0001CD24 41 81 00 20 */ bgt lbl_80020F04
.global lbl_80020EE8
lbl_80020EE8:
/* 80020EE8 0001CD28 80 61 00 08 */ lwz r3, 0x8(r1)
/* 80020EEC 0001CD2C 48 00 52 95 */ bl OSUTF32toSJIS
/* 80020EF0 0001CD30 54 60 04 3F */ clrlwi. r0, r3, 16
/* 80020EF4 0001CD34 7C 7E 1B 78 */ mr r30, r3
/* 80020EF8 0001CD38 41 82 00 0C */ beq lbl_80020F04
/* 80020EFC 0001CD3C 3B 40 00 01 */ li r26, 0x1
/* 80020F00 0001CD40 83 ED E3 E0 */ lwz r31, FontDataSjis@sda21(r13)
.global lbl_80020F04
lbl_80020F04:
/* 80020F04 0001CD44 93 FC 00 00 */ stw r31, 0x0(r28)
/* 80020F08 0001CD48 7F 43 D3 78 */ mr r3, r26
/* 80020F0C 0001CD4C 57 C4 04 3E */ clrlwi r4, r30, 16
/* 80020F10 0001CD50 4B FF F5 81 */ bl GetFontCode
/* 80020F14 0001CD54 90 7D 00 00 */ stw r3, 0x0(r29)
/* 80020F18 0001CD58 39 61 00 30 */ addi r11, r1, 0x30
/* 80020F1C 0001CD5C 7F 63 DB 78 */ mr r3, r27
/* 80020F20 0001CD60 4B FE 64 65 */ bl lbl_80007384
/* 80020F24 0001CD64 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80020F28 0001CD68 7C 08 03 A6 */ mtlr r0
/* 80020F2C 0001CD6C 38 21 00 30 */ addi r1, r1, 0x30
/* 80020F30 0001CD70 4E 80 00 20 */ blr
/* 80020F34 0001CD74 00 00 00 00 */ .4byte 0x00000000
/* 80020F38 0001CD78 00 00 00 00 */ .4byte 0x00000000
/* 80020F3C 0001CD7C 00 00 00 00 */ .4byte 0x00000000
.global OSGetFontTexel
OSGetFontTexel:
/* 80020F40 0001CD80 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80020F44 0001CD84 7C 08 02 A6 */ mflr r0
/* 80020F48 0001CD88 90 01 00 54 */ stw r0, 0x54(r1)
/* 80020F4C 0001CD8C 39 61 00 50 */ addi r11, r1, 0x50
/* 80020F50 0001CD90 4B FE 63 C5 */ bl lbl_80007314
/* 80020F54 0001CD94 A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
/* 80020F58 0001CD98 7C 9D 23 78 */ mr r29, r4
/* 80020F5C 0001CD9C 7C BE 2B 78 */ mr r30, r5
/* 80020F60 0001CDA0 7C D1 33 78 */ mr r17, r6
/* 80020F64 0001CDA4 28 00 FF FF */ cmplwi r0, 0xffff
/* 80020F68 0001CDA8 7C FF 3B 78 */ mr r31, r7
/* 80020F6C 0001CDAC 41 82 00 08 */ beq lbl_80020F74
/* 80020F70 0001CDB0 48 00 00 40 */ b lbl_80020FB0
.global lbl_80020F74
lbl_80020F74:
/* 80020F74 0001CDB4 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 80020F78 0001CDB8 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 80020F7C 0001CDBC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020F80 0001CDC0 40 82 00 18 */ bne lbl_80020F98
/* 80020F84 0001CDC4 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 80020F88 0001CDC8 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 80020F8C 0001CDCC 54 00 FF FE */ extrwi r0, r0, 1, 30
/* 80020F90 0001CDD0 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
/* 80020F94 0001CDD4 48 00 00 0C */ b lbl_80020FA0
.global lbl_80020F98
lbl_80020F98:
/* 80020F98 0001CDD8 38 00 00 00 */ li r0, 0x0
/* 80020F9C 0001CDDC B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
.global lbl_80020FA0
lbl_80020FA0:
/* 80020FA0 0001CDE0 3C 80 80 02 */ lis r4, ParseStringS@ha
/* 80020FA4 0001CDE4 54 00 04 3E */ clrlwi r0, r0, 16
/* 80020FA8 0001CDE8 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 80020FAC 0001CDEC 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
.global lbl_80020FB0
lbl_80020FB0:
/* 80020FB0 0001CDF0 81 8D E3 D8 */ lwz r12, ParseString@sda21(r13)
/* 80020FB4 0001CDF4 7C 64 1B 78 */ mr r4, r3
/* 80020FB8 0001CDF8 54 03 04 3E */ clrlwi r3, r0, 16
/* 80020FBC 0001CDFC 38 A1 00 0C */ addi r5, r1, 0xc
/* 80020FC0 0001CE00 38 C1 00 08 */ addi r6, r1, 0x8
/* 80020FC4 0001CE04 7D 89 03 A6 */ mtctr r12
/* 80020FC8 0001CE08 4E 80 04 21 */ bctrl
/* 80020FCC 0001CE0C 80 81 00 0C */ lwz r4, 0xc(r1)
/* 80020FD0 0001CE10 56 20 10 3A */ slwi r0, r17, 2
/* 80020FD4 0001CE14 7C 00 1E 70 */ srawi r0, r0, 3
/* 80020FD8 0001CE18 81 61 00 08 */ lwz r11, 0x8(r1)
/* 80020FDC 0001CE1C A1 24 00 1A */ lhz r9, 0x1a(r4)
/* 80020FE0 0001CE20 7C 00 01 94 */ addze r0, r0
/* 80020FE4 0001CE24 A0 A4 00 1C */ lhz r5, 0x1c(r4)
/* 80020FE8 0001CE28 54 08 28 34 */ slwi r8, r0, 5
/* 80020FEC 0001CE2C 80 C4 00 24 */ lwz r6, 0x24(r4)
/* 80020FF0 0001CE30 3A E4 00 2C */ addi r23, r4, 0x2c
/* 80020FF4 0001CE34 7D 49 29 D6 */ mullw r10, r9, r5
/* 80020FF8 0001CE38 80 A4 00 14 */ lwz r5, 0x14(r4)
/* 80020FFC 0001CE3C 7E C4 32 14 */ add r22, r4, r6
/* 80021000 0001CE40 A0 E4 00 12 */ lhz r7, 0x12(r4)
/* 80021004 0001CE44 A0 C4 00 10 */ lhz r6, 0x10(r4)
/* 80021008 0001CE48 3B 00 00 00 */ li r24, 0x0
/* 8002100C 0001CE4C 7D 8B 53 D6 */ divw r12, r11, r10
/* 80021010 0001CE50 7C 0C 51 D6 */ mullw r0, r12, r10
/* 80021014 0001CE54 7D 60 58 50 */ subf r11, r0, r11
/* 80021018 0001CE58 7D 4B 4B D6 */ divw r10, r11, r9
/* 8002101C 0001CE5C 7D 2A 49 D6 */ mullw r9, r10, r9
/* 80021020 0001CE60 7C 0C 29 D6 */ mullw r0, r12, r5
/* 80021024 0001CE64 7F 49 58 50 */ subf r26, r9, r11
/* 80021028 0001CE68 54 00 F8 7E */ srwi r0, r0, 1
/* 8002102C 0001CE6C 7F 6A 39 D6 */ mullw r27, r10, r7
/* 80021030 0001CE70 7E D6 02 14 */ add r22, r22, r0
/* 80021034 0001CE74 7F 5A 31 D6 */ mullw r26, r26, r6
/* 80021038 0001CE78 48 00 01 4C */ b lbl_80021184
.global lbl_8002103C
lbl_8002103C:
/* 8002103C 0001CE7C 7C FB C2 14 */ add r7, r27, r24
/* 80021040 0001CE80 57 00 E8 04 */ slwi r0, r24, 29
/* 80021044 0001CE84 7C E5 1E 70 */ srawi r5, r7, 3
/* 80021048 0001CE88 57 04 0F FE */ srwi r4, r24, 31
/* 8002104C 0001CE8C 7D 25 01 94 */ addze r9, r5
/* 80021050 0001CE90 54 E6 E8 04 */ slwi r6, r7, 29
/* 80021054 0001CE94 7F 05 1E 70 */ srawi r5, r24, 3
/* 80021058 0001CE98 54 E7 0F FE */ srwi r7, r7, 31
/* 8002105C 0001CE9C 7C A5 01 94 */ addze r5, r5
/* 80021060 0001CEA0 7C 04 00 50 */ subf r0, r4, r0
/* 80021064 0001CEA4 7C A5 41 D6 */ mullw r5, r5, r8
/* 80021068 0001CEA8 7C C7 30 50 */ subf r6, r7, r6
/* 8002106C 0001CEAC 54 00 18 3E */ rotlwi r0, r0, 3
/* 80021070 0001CEB0 54 C6 18 3E */ rotlwi r6, r6, 3
/* 80021074 0001CEB4 7C 00 22 14 */ add r0, r0, r4
/* 80021078 0001CEB8 7C 86 3A 14 */ add r4, r6, r7
/* 8002107C 0001CEBC 54 8A 08 3C */ slwi r10, r4, 1
/* 80021080 0001CEC0 7D 7D 2A 14 */ add r11, r29, r5
/* 80021084 0001CEC4 54 0C 10 3A */ slwi r12, r0, 2
/* 80021088 0001CEC8 3B 20 00 00 */ li r25, 0x0
/* 8002108C 0001CECC 48 00 00 E4 */ b lbl_80021170
.global lbl_80021090
lbl_80021090:
/* 80021090 0001CED0 A0 84 00 1E */ lhz r4, 0x1e(r4)
/* 80021094 0001CED4 7F 9E CA 14 */ add r28, r30, r25
/* 80021098 0001CED8 7C BA CA 14 */ add r5, r26, r25
/* 8002109C 0001CEDC 38 00 00 F0 */ li r0, 0xf0
/* 800210A0 0001CEE0 54 86 10 34 */ extlwi r6, r4, 27, 2
/* 800210A4 0001CEE4 54 84 1F FE */ extrwi r4, r4, 1, 2
/* 800210A8 0001CEE8 7C 84 32 14 */ add r4, r4, r6
/* 800210AC 0001CEEC 57 94 E8 04 */ slwi r20, r28, 29
/* 800210B0 0001CEF0 7C 87 0E 70 */ srawi r7, r4, 1
/* 800210B4 0001CEF4 57 93 0F FE */ srwi r19, r28, 31
/* 800210B8 0001CEF8 7C E7 49 D6 */ mullw r7, r7, r9
/* 800210BC 0001CEFC 54 A6 E8 04 */ slwi r6, r5, 29
/* 800210C0 0001CF00 54 A4 0F FE */ srwi r4, r5, 31
/* 800210C4 0001CF04 7C B2 1E 70 */ srawi r18, r5, 3
/* 800210C8 0001CF08 7C C4 30 50 */ subf r6, r4, r6
/* 800210CC 0001CF0C 57 95 07 FE */ clrlwi r21, r28, 31
/* 800210D0 0001CF10 54 D1 18 3E */ rotlwi r17, r6, 3
/* 800210D4 0001CF14 7C D2 01 94 */ addze r6, r18
/* 800210D8 0001CF18 7E 31 22 14 */ add r17, r17, r4
/* 800210DC 0001CF1C 7E 93 A0 50 */ subf r20, r19, r20
/* 800210E0 0001CF20 7E B5 9A 78 */ xor r21, r21, r19
/* 800210E4 0001CF24 54 A5 F0 02 */ slwi r5, r5, 30
/* 800210E8 0001CF28 7E 32 16 70 */ srawi r18, r17, 2
/* 800210EC 0001CF2C 56 94 18 3E */ rotlwi r20, r20, 3
/* 800210F0 0001CF30 7E 24 28 50 */ subf r17, r4, r5
/* 800210F4 0001CF34 7E B3 A8 51 */ subf. r21, r19, r21
/* 800210F8 0001CF38 7C B2 01 94 */ addze r5, r18
/* 800210FC 0001CF3C 7E 94 9A 14 */ add r20, r20, r19
/* 80021100 0001CF40 7F 92 1E 70 */ srawi r18, r28, 3
/* 80021104 0001CF44 56 31 10 3E */ rotlwi r17, r17, 2
/* 80021108 0001CF48 7C F6 3A 14 */ add r7, r22, r7
/* 8002110C 0001CF4C 54 C6 20 36 */ slwi r6, r6, 4
/* 80021110 0001CF50 7C E7 32 14 */ add r7, r7, r6
/* 80021114 0001CF54 7E 72 01 94 */ addze r19, r18
/* 80021118 0001CF58 7C E7 52 14 */ add r7, r7, r10
/* 8002111C 0001CF5C 56 95 0F FE */ srwi r21, r20, 31
/* 80021120 0001CF60 7F 91 22 14 */ add r28, r17, r4
/* 80021124 0001CF64 56 66 28 34 */ slwi r6, r19, 5
/* 80021128 0001CF68 7C 95 A2 14 */ add r4, r21, r20
/* 8002112C 0001CF6C 7C E7 28 AE */ lbzx r7, r7, r5
/* 80021130 0001CF70 7C CB 32 14 */ add r6, r11, r6
/* 80021134 0001CF74 57 95 08 3C */ slwi r21, r28, 1
/* 80021138 0001CF78 7C 84 0E 70 */ srawi r4, r4, 1
/* 8002113C 0001CF7C 20 B5 00 06 */ subfic r5, r21, 0x6
/* 80021140 0001CF80 7C C6 62 14 */ add r6, r6, r12
/* 80021144 0001CF84 7C E5 2E 30 */ sraw r5, r7, r5
/* 80021148 0001CF88 7C E6 20 AE */ lbzx r7, r6, r4
/* 8002114C 0001CF8C 54 A5 07 BE */ clrlwi r5, r5, 30
/* 80021150 0001CF90 7C B7 28 AE */ lbzx r5, r23, r5
/* 80021154 0001CF94 41 82 00 08 */ beq lbl_8002115C
/* 80021158 0001CF98 38 00 00 0F */ li r0, 0xf
.global lbl_8002115C
lbl_8002115C:
/* 8002115C 0001CF9C 7C A0 00 38 */ and r0, r5, r0
/* 80021160 0001CFA0 3B 39 00 01 */ addi r25, r25, 0x1
/* 80021164 0001CFA4 54 00 06 3E */ clrlwi r0, r0, 24
/* 80021168 0001CFA8 7C E0 03 78 */ or r0, r7, r0
/* 8002116C 0001CFAC 7C 06 21 AE */ stbx r0, r6, r4
.global lbl_80021170
lbl_80021170:
/* 80021170 0001CFB0 80 81 00 0C */ lwz r4, 0xc(r1)
/* 80021174 0001CFB4 A0 04 00 10 */ lhz r0, 0x10(r4)
/* 80021178 0001CFB8 7C 19 00 00 */ cmpw r25, r0
/* 8002117C 0001CFBC 41 80 FF 14 */ blt lbl_80021090
/* 80021180 0001CFC0 3B 18 00 01 */ addi r24, r24, 0x1
.global lbl_80021184
lbl_80021184:
/* 80021184 0001CFC4 A0 04 00 12 */ lhz r0, 0x12(r4)
/* 80021188 0001CFC8 7C 18 00 00 */ cmpw r24, r0
/* 8002118C 0001CFCC 41 80 FE B0 */ blt lbl_8002103C
/* 80021190 0001CFD0 2C 1F 00 00 */ cmpwi r31, 0x0
/* 80021194 0001CFD4 41 82 00 1C */ beq lbl_800211B0
/* 80021198 0001CFD8 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 8002119C 0001CFDC 80 81 00 08 */ lwz r4, 0x8(r1)
/* 800211A0 0001CFE0 A0 05 00 22 */ lhz r0, 0x22(r5)
/* 800211A4 0001CFE4 7C 05 02 14 */ add r0, r5, r0
/* 800211A8 0001CFE8 7C 04 00 AE */ lbzx r0, r4, r0
/* 800211AC 0001CFEC 90 1F 00 00 */ stw r0, 0x0(r31)
.global lbl_800211B0
lbl_800211B0:
/* 800211B0 0001CFF0 39 61 00 50 */ addi r11, r1, 0x50
/* 800211B4 0001CFF4 4B FE 61 AD */ bl lbl_80007360
/* 800211B8 0001CFF8 80 01 00 54 */ lwz r0, 0x54(r1)
/* 800211BC 0001CFFC 7C 08 03 A6 */ mtlr r0
/* 800211C0 0001D000 38 21 00 50 */ addi r1, r1, 0x50
/* 800211C4 0001D004 4E 80 00 20 */ blr
/* 800211C8 0001D008 00 00 00 00 */ .4byte 0x00000000
/* 800211CC 0001D00C 00 00 00 00 */ .4byte 0x00000000
.global ExpandFontSheet
ExpandFontSheet:
/* 800211D0 0001D010 A0 03 00 18 */ lhz r0, 0x18(r3)
/* 800211D4 0001D014 38 C3 00 2C */ addi r6, r3, 0x2c
/* 800211D8 0001D018 2C 00 00 00 */ cmpwi r0, 0x0
/* 800211DC 0001D01C 40 82 01 2C */ bne lbl_80021308
/* 800211E0 0001D020 80 E3 00 28 */ lwz r7, 0x28(r3)
/* 800211E4 0001D024 54 E0 0F FE */ srwi r0, r7, 31
/* 800211E8 0001D028 7C 00 3A 14 */ add r0, r0, r7
/* 800211EC 0001D02C 7C 07 0E 70 */ srawi r7, r0, 1
/* 800211F0 0001D030 35 07 FF FF */ addic. r8, r7, -0x1
/* 800211F4 0001D034 7C E4 42 14 */ add r7, r4, r8
/* 800211F8 0001D038 55 09 08 3C */ slwi r9, r8, 1
/* 800211FC 0001D03C 38 88 00 01 */ addi r4, r8, 0x1
/* 80021200 0001D040 41 80 02 30 */ blt lbl_80021430
/* 80021204 0001D044 54 80 F8 7F */ srwi. r0, r4, 1
/* 80021208 0001D048 7C 09 03 A6 */ mtctr r0
/* 8002120C 0001D04C 41 82 00 A4 */ beq lbl_800212B0
.global lbl_80021210
lbl_80021210:
/* 80021210 0001D050 88 07 00 00 */ lbz r0, 0x0(r7)
/* 80021214 0001D054 7D 45 4A 14 */ add r10, r5, r9
/* 80021218 0001D058 54 08 D7 BE */ extrwi r8, r0, 2, 24
/* 8002121C 0001D05C 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 80021220 0001D060 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021224 0001D064 7D 06 40 AE */ lbzx r8, r6, r8
/* 80021228 0001D068 54 00 07 3E */ clrlwi r0, r0, 28
/* 8002122C 0001D06C 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 80021230 0001D070 7C 05 49 AE */ stbx r0, r5, r9
/* 80021234 0001D074 39 29 FF FE */ addi r9, r9, -0x2
/* 80021238 0001D078 88 07 00 00 */ lbz r0, 0x0(r7)
/* 8002123C 0001D07C 54 08 F7 BE */ extrwi r8, r0, 2, 28
/* 80021240 0001D080 54 00 07 BE */ clrlwi r0, r0, 30
/* 80021244 0001D084 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021248 0001D088 7D 06 40 AE */ lbzx r8, r6, r8
/* 8002124C 0001D08C 54 00 07 3E */ clrlwi r0, r0, 28
/* 80021250 0001D090 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 80021254 0001D094 98 0A 00 01 */ stb r0, 0x1(r10)
/* 80021258 0001D098 7D 45 4A 14 */ add r10, r5, r9
/* 8002125C 0001D09C 88 07 FF FF */ lbz r0, -0x1(r7)
/* 80021260 0001D0A0 54 08 D7 BE */ extrwi r8, r0, 2, 24
/* 80021264 0001D0A4 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 80021268 0001D0A8 7C 06 00 AE */ lbzx r0, r6, r0
/* 8002126C 0001D0AC 7D 06 40 AE */ lbzx r8, r6, r8
/* 80021270 0001D0B0 54 00 07 3E */ clrlwi r0, r0, 28
/* 80021274 0001D0B4 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 80021278 0001D0B8 7C 05 49 AE */ stbx r0, r5, r9
/* 8002127C 0001D0BC 39 29 FF FE */ addi r9, r9, -0x2
/* 80021280 0001D0C0 88 07 FF FF */ lbz r0, -0x1(r7)
/* 80021284 0001D0C4 38 E7 FF FE */ addi r7, r7, -0x2
/* 80021288 0001D0C8 54 08 F7 BE */ extrwi r8, r0, 2, 28
/* 8002128C 0001D0CC 54 00 07 BE */ clrlwi r0, r0, 30
/* 80021290 0001D0D0 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021294 0001D0D4 7D 06 40 AE */ lbzx r8, r6, r8
/* 80021298 0001D0D8 54 00 07 3E */ clrlwi r0, r0, 28
/* 8002129C 0001D0DC 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 800212A0 0001D0E0 98 0A 00 01 */ stb r0, 0x1(r10)
/* 800212A4 0001D0E4 42 00 FF 6C */ bdnz lbl_80021210
/* 800212A8 0001D0E8 70 84 00 01 */ andi. r4, r4, 0x1
/* 800212AC 0001D0EC 41 82 01 84 */ beq lbl_80021430
.global lbl_800212B0
lbl_800212B0:
/* 800212B0 0001D0F0 7C 89 03 A6 */ mtctr r4
.global lbl_800212B4
lbl_800212B4:
/* 800212B4 0001D0F4 88 07 00 00 */ lbz r0, 0x0(r7)
/* 800212B8 0001D0F8 7D 45 4A 14 */ add r10, r5, r9
/* 800212BC 0001D0FC 54 08 D7 BE */ extrwi r8, r0, 2, 24
/* 800212C0 0001D100 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 800212C4 0001D104 7C 06 00 AE */ lbzx r0, r6, r0
/* 800212C8 0001D108 7D 06 40 AE */ lbzx r8, r6, r8
/* 800212CC 0001D10C 54 00 07 3E */ clrlwi r0, r0, 28
/* 800212D0 0001D110 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 800212D4 0001D114 7C 05 49 AE */ stbx r0, r5, r9
/* 800212D8 0001D118 39 29 FF FE */ addi r9, r9, -0x2
/* 800212DC 0001D11C 88 07 00 00 */ lbz r0, 0x0(r7)
/* 800212E0 0001D120 38 E7 FF FF */ addi r7, r7, -0x1
/* 800212E4 0001D124 54 08 F7 BE */ extrwi r8, r0, 2, 28
/* 800212E8 0001D128 54 00 07 BE */ clrlwi r0, r0, 30
/* 800212EC 0001D12C 7C 06 00 AE */ lbzx r0, r6, r0
/* 800212F0 0001D130 7D 06 40 AE */ lbzx r8, r6, r8
/* 800212F4 0001D134 54 00 07 3E */ clrlwi r0, r0, 28
/* 800212F8 0001D138 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 800212FC 0001D13C 98 0A 00 01 */ stb r0, 0x1(r10)
/* 80021300 0001D140 42 00 FF B4 */ bdnz lbl_800212B4
/* 80021304 0001D144 48 00 01 2C */ b lbl_80021430
.global lbl_80021308
lbl_80021308:
/* 80021308 0001D148 28 00 00 02 */ cmplwi r0, 0x2
/* 8002130C 0001D14C 40 82 01 24 */ bne lbl_80021430
/* 80021310 0001D150 80 03 00 28 */ lwz r0, 0x28(r3)
/* 80021314 0001D154 7C 00 16 70 */ srawi r0, r0, 2
/* 80021318 0001D158 7C E0 01 94 */ addze r7, r0
/* 8002131C 0001D15C 35 27 FF FF */ addic. r9, r7, -0x1
/* 80021320 0001D160 7C E4 4A 14 */ add r7, r4, r9
/* 80021324 0001D164 55 28 10 3A */ slwi r8, r9, 2
/* 80021328 0001D168 38 89 00 01 */ addi r4, r9, 0x1
/* 8002132C 0001D16C 41 80 01 04 */ blt lbl_80021430
/* 80021330 0001D170 54 80 F8 7F */ srwi. r0, r4, 1
/* 80021334 0001D174 7C 09 03 A6 */ mtctr r0
/* 80021338 0001D178 41 82 00 A4 */ beq lbl_800213DC
.global lbl_8002133C
lbl_8002133C:
/* 8002133C 0001D17C 88 07 00 00 */ lbz r0, 0x0(r7)
/* 80021340 0001D180 7D 25 42 14 */ add r9, r5, r8
/* 80021344 0001D184 54 00 D7 BE */ extrwi r0, r0, 2, 24
/* 80021348 0001D188 7C 06 00 AE */ lbzx r0, r6, r0
/* 8002134C 0001D18C 7C 05 41 AE */ stbx r0, r5, r8
/* 80021350 0001D190 39 08 FF FC */ addi r8, r8, -0x4
/* 80021354 0001D194 88 07 00 00 */ lbz r0, 0x0(r7)
/* 80021358 0001D198 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 8002135C 0001D19C 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021360 0001D1A0 98 09 00 01 */ stb r0, 0x1(r9)
/* 80021364 0001D1A4 88 07 00 00 */ lbz r0, 0x0(r7)
/* 80021368 0001D1A8 54 00 F7 BE */ extrwi r0, r0, 2, 28
/* 8002136C 0001D1AC 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021370 0001D1B0 98 09 00 02 */ stb r0, 0x2(r9)
/* 80021374 0001D1B4 88 07 00 00 */ lbz r0, 0x0(r7)
/* 80021378 0001D1B8 54 00 07 BE */ clrlwi r0, r0, 30
/* 8002137C 0001D1BC 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021380 0001D1C0 98 09 00 03 */ stb r0, 0x3(r9)
/* 80021384 0001D1C4 7D 25 42 14 */ add r9, r5, r8
/* 80021388 0001D1C8 88 07 FF FF */ lbz r0, -0x1(r7)
/* 8002138C 0001D1CC 54 00 D7 BE */ extrwi r0, r0, 2, 24
/* 80021390 0001D1D0 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021394 0001D1D4 7C 05 41 AE */ stbx r0, r5, r8
/* 80021398 0001D1D8 39 08 FF FC */ addi r8, r8, -0x4
/* 8002139C 0001D1DC 88 07 FF FF */ lbz r0, -0x1(r7)
/* 800213A0 0001D1E0 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 800213A4 0001D1E4 7C 06 00 AE */ lbzx r0, r6, r0
/* 800213A8 0001D1E8 98 09 00 01 */ stb r0, 0x1(r9)
/* 800213AC 0001D1EC 88 07 FF FF */ lbz r0, -0x1(r7)
/* 800213B0 0001D1F0 54 00 F7 BE */ extrwi r0, r0, 2, 28
/* 800213B4 0001D1F4 7C 06 00 AE */ lbzx r0, r6, r0
/* 800213B8 0001D1F8 98 09 00 02 */ stb r0, 0x2(r9)
/* 800213BC 0001D1FC 88 07 FF FF */ lbz r0, -0x1(r7)
/* 800213C0 0001D200 38 E7 FF FE */ addi r7, r7, -0x2
/* 800213C4 0001D204 54 00 07 BE */ clrlwi r0, r0, 30
/* 800213C8 0001D208 7C 06 00 AE */ lbzx r0, r6, r0
/* 800213CC 0001D20C 98 09 00 03 */ stb r0, 0x3(r9)
/* 800213D0 0001D210 42 00 FF 6C */ bdnz lbl_8002133C
/* 800213D4 0001D214 70 84 00 01 */ andi. r4, r4, 0x1
/* 800213D8 0001D218 41 82 00 58 */ beq lbl_80021430
.global lbl_800213DC
lbl_800213DC:
/* 800213DC 0001D21C 7C 89 03 A6 */ mtctr r4
.global lbl_800213E0
lbl_800213E0:
/* 800213E0 0001D220 88 07 00 00 */ lbz r0, 0x0(r7)
/* 800213E4 0001D224 7D 25 42 14 */ add r9, r5, r8
/* 800213E8 0001D228 54 00 D7 BE */ extrwi r0, r0, 2, 24
/* 800213EC 0001D22C 7C 06 00 AE */ lbzx r0, r6, r0
/* 800213F0 0001D230 7C 05 41 AE */ stbx r0, r5, r8
/* 800213F4 0001D234 39 08 FF FC */ addi r8, r8, -0x4
/* 800213F8 0001D238 88 07 00 00 */ lbz r0, 0x0(r7)
/* 800213FC 0001D23C 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 80021400 0001D240 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021404 0001D244 98 09 00 01 */ stb r0, 0x1(r9)
/* 80021408 0001D248 88 07 00 00 */ lbz r0, 0x0(r7)
/* 8002140C 0001D24C 54 00 F7 BE */ extrwi r0, r0, 2, 28
/* 80021410 0001D250 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021414 0001D254 98 09 00 02 */ stb r0, 0x2(r9)
/* 80021418 0001D258 88 07 00 00 */ lbz r0, 0x0(r7)
/* 8002141C 0001D25C 38 E7 FF FF */ addi r7, r7, -0x1
/* 80021420 0001D260 54 00 07 BE */ clrlwi r0, r0, 30
/* 80021424 0001D264 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021428 0001D268 98 09 00 03 */ stb r0, 0x3(r9)
/* 8002142C 0001D26C 42 00 FF B4 */ bdnz lbl_800213E0
.global lbl_80021430
lbl_80021430:
/* 80021430 0001D270 80 83 00 28 */ lwz r4, 0x28(r3)
/* 80021434 0001D274 7C A3 2B 78 */ mr r3, r5
/* 80021438 0001D278 4B FF B5 78 */ b DCStoreRange
/* 8002143C 0001D27C 00 00 00 00 */ .4byte 0x00000000
.global OSInitFont
OSInitFont:
/* 80021440 0001D280 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80021444 0001D284 7C 08 02 A6 */ mflr r0
/* 80021448 0001D288 7C 65 1B 78 */ mr r5, r3
/* 8002144C 0001D28C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80021450 0001D290 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80021454 0001D294 A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
/* 80021458 0001D298 28 00 FF FF */ cmplwi r0, 0xffff
/* 8002145C 0001D29C 41 82 00 08 */ beq lbl_80021464
/* 80021460 0001D2A0 48 00 00 40 */ b lbl_800214A0
.global lbl_80021464
lbl_80021464:
/* 80021464 0001D2A4 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 80021468 0001D2A8 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 8002146C 0001D2AC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80021470 0001D2B0 40 82 00 18 */ bne lbl_80021488
/* 80021474 0001D2B4 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 80021478 0001D2B8 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 8002147C 0001D2BC 54 00 FF FE */ extrwi r0, r0, 1, 30
/* 80021480 0001D2C0 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
/* 80021484 0001D2C4 48 00 00 0C */ b lbl_80021490
.global lbl_80021488
lbl_80021488:
/* 80021488 0001D2C8 38 00 00 00 */ li r0, 0x0
/* 8002148C 0001D2CC B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
.global lbl_80021490
lbl_80021490:
/* 80021490 0001D2D0 3C 80 80 02 */ lis r4, ParseStringS@ha
/* 80021494 0001D2D4 54 00 04 3E */ clrlwi r0, r0, 16
/* 80021498 0001D2D8 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 8002149C 0001D2DC 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
.global lbl_800214A0
lbl_800214A0:
/* 800214A0 0001D2E0 54 04 04 3E */ clrlwi r4, r0, 16
/* 800214A4 0001D2E4 38 04 FF FD */ addi r0, r4, -0x3
/* 800214A8 0001D2E8 28 00 00 02 */ cmplwi r0, 0x2
/* 800214AC 0001D2EC 40 81 00 B8 */ ble lbl_80021564
/* 800214B0 0001D2F0 2C 04 00 00 */ cmpwi r4, 0x0
/* 800214B4 0001D2F4 41 82 00 10 */ beq lbl_800214C4
/* 800214B8 0001D2F8 2C 04 00 01 */ cmpwi r4, 0x1
/* 800214BC 0001D2FC 41 82 00 58 */ beq lbl_80021514
/* 800214C0 0001D300 48 00 01 48 */ b lbl_80021608
.global lbl_800214C4
lbl_800214C4:
/* 800214C4 0001D304 90 6D E3 E4 */ stw r3, FontDataAnsi@sda21(r13)
/* 800214C8 0001D308 3C 63 00 02 */ addis r3, r3, 0x2
/* 800214CC 0001D30C 38 80 00 00 */ li r4, 0x0
/* 800214D0 0001D310 38 63 D1 20 */ addi r3, r3, -0x2ee0
/* 800214D4 0001D314 4B FF F3 7D */ bl ReadFont
/* 800214D8 0001D318 2C 03 00 00 */ cmpwi r3, 0x0
/* 800214DC 0001D31C 40 82 00 0C */ bne lbl_800214E8
/* 800214E0 0001D320 38 60 00 00 */ li r3, 0x0
/* 800214E4 0001D324 48 00 01 28 */ b lbl_8002160C
.global lbl_800214E8
lbl_800214E8:
/* 800214E8 0001D328 80 AD E3 E4 */ lwz r5, FontDataAnsi@sda21(r13)
/* 800214EC 0001D32C 80 65 00 24 */ lwz r3, 0x24(r5)
/* 800214F0 0001D330 38 03 00 1F */ addi r0, r3, 0x1f
/* 800214F4 0001D334 7C 85 1A 14 */ add r4, r5, r3
/* 800214F8 0001D338 54 00 00 34 */ clrrwi r0, r0, 5
/* 800214FC 0001D33C 90 05 00 24 */ stw r0, 0x24(r5)
/* 80021500 0001D340 80 6D E3 E4 */ lwz r3, FontDataAnsi@sda21(r13)
/* 80021504 0001D344 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80021508 0001D348 7C A3 02 14 */ add r5, r3, r0
/* 8002150C 0001D34C 4B FF FC C5 */ bl ExpandFontSheet
/* 80021510 0001D350 48 00 00 F8 */ b lbl_80021608
.global lbl_80021514
lbl_80021514:
/* 80021514 0001D354 90 6D E3 E0 */ stw r3, FontDataSjis@sda21(r13)
/* 80021518 0001D358 3C 63 00 0D */ addis r3, r3, 0xd
/* 8002151C 0001D35C 38 80 00 01 */ li r4, 0x1
/* 80021520 0001D360 38 63 3F 00 */ addi r3, r3, 0x3f00
/* 80021524 0001D364 4B FF F3 2D */ bl ReadFont
/* 80021528 0001D368 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002152C 0001D36C 40 82 00 0C */ bne lbl_80021538
/* 80021530 0001D370 38 60 00 00 */ li r3, 0x0
/* 80021534 0001D374 48 00 00 D8 */ b lbl_8002160C
.global lbl_80021538
lbl_80021538:
/* 80021538 0001D378 80 AD E3 E0 */ lwz r5, FontDataSjis@sda21(r13)
/* 8002153C 0001D37C 80 65 00 24 */ lwz r3, 0x24(r5)
/* 80021540 0001D380 38 03 00 1F */ addi r0, r3, 0x1f
/* 80021544 0001D384 7C 85 1A 14 */ add r4, r5, r3
/* 80021548 0001D388 54 00 00 34 */ clrrwi r0, r0, 5
/* 8002154C 0001D38C 90 05 00 24 */ stw r0, 0x24(r5)
/* 80021550 0001D390 80 6D E3 E0 */ lwz r3, FontDataSjis@sda21(r13)
/* 80021554 0001D394 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80021558 0001D398 7C A3 02 14 */ add r5, r3, r0
/* 8002155C 0001D39C 4B FF FC 75 */ bl ExpandFontSheet
/* 80021560 0001D3A0 48 00 00 A8 */ b lbl_80021608
.global lbl_80021564
lbl_80021564:
/* 80021564 0001D3A4 3F E3 00 0F */ addis r31, r3, 0xf
/* 80021568 0001D3A8 90 6D E3 E4 */ stw r3, FontDataAnsi@sda21(r13)
/* 8002156C 0001D3AC 3B FF 40 20 */ addi r31, r31, 0x4020
/* 80021570 0001D3B0 38 80 00 00 */ li r4, 0x0
/* 80021574 0001D3B4 7F E3 FB 78 */ mr r3, r31
/* 80021578 0001D3B8 4B FF F2 D9 */ bl ReadFont
/* 8002157C 0001D3BC 2C 03 00 00 */ cmpwi r3, 0x0
/* 80021580 0001D3C0 40 82 00 0C */ bne lbl_8002158C
/* 80021584 0001D3C4 38 60 00 00 */ li r3, 0x0
/* 80021588 0001D3C8 48 00 00 84 */ b lbl_8002160C
.global lbl_8002158C
lbl_8002158C:
/* 8002158C 0001D3CC 80 AD E3 E4 */ lwz r5, FontDataAnsi@sda21(r13)
/* 80021590 0001D3D0 80 65 00 24 */ lwz r3, 0x24(r5)
/* 80021594 0001D3D4 38 03 00 1F */ addi r0, r3, 0x1f
/* 80021598 0001D3D8 7C 85 1A 14 */ add r4, r5, r3
/* 8002159C 0001D3DC 54 00 00 34 */ clrrwi r0, r0, 5
/* 800215A0 0001D3E0 90 05 00 24 */ stw r0, 0x24(r5)
/* 800215A4 0001D3E4 80 6D E3 E4 */ lwz r3, FontDataAnsi@sda21(r13)
/* 800215A8 0001D3E8 80 03 00 24 */ lwz r0, 0x24(r3)
/* 800215AC 0001D3EC 7C A3 02 14 */ add r5, r3, r0
/* 800215B0 0001D3F0 4B FF FC 21 */ bl ExpandFontSheet
/* 800215B4 0001D3F4 80 AD E3 E4 */ lwz r5, FontDataAnsi@sda21(r13)
/* 800215B8 0001D3F8 7F E3 FB 78 */ mr r3, r31
/* 800215BC 0001D3FC 38 80 00 01 */ li r4, 0x1
/* 800215C0 0001D400 3C A5 00 02 */ addis r5, r5, 0x2
/* 800215C4 0001D404 38 A5 01 20 */ addi r5, r5, 0x120
/* 800215C8 0001D408 90 AD E3 E0 */ stw r5, FontDataSjis@sda21(r13)
/* 800215CC 0001D40C 4B FF F2 85 */ bl ReadFont
/* 800215D0 0001D410 2C 03 00 00 */ cmpwi r3, 0x0
/* 800215D4 0001D414 40 82 00 0C */ bne lbl_800215E0
/* 800215D8 0001D418 38 60 00 00 */ li r3, 0x0
/* 800215DC 0001D41C 48 00 00 30 */ b lbl_8002160C
.global lbl_800215E0
lbl_800215E0:
/* 800215E0 0001D420 80 AD E3 E0 */ lwz r5, FontDataSjis@sda21(r13)
/* 800215E4 0001D424 80 65 00 24 */ lwz r3, 0x24(r5)
/* 800215E8 0001D428 38 03 00 1F */ addi r0, r3, 0x1f
/* 800215EC 0001D42C 7C 85 1A 14 */ add r4, r5, r3
/* 800215F0 0001D430 54 00 00 34 */ clrrwi r0, r0, 5
/* 800215F4 0001D434 90 05 00 24 */ stw r0, 0x24(r5)
/* 800215F8 0001D438 80 6D E3 E0 */ lwz r3, FontDataSjis@sda21(r13)
/* 800215FC 0001D43C 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80021600 0001D440 7C A3 02 14 */ add r5, r3, r0
/* 80021604 0001D444 4B FF FB CD */ bl ExpandFontSheet
.global lbl_80021608
lbl_80021608:
/* 80021608 0001D448 38 60 00 01 */ li r3, 0x1
.global lbl_8002160C
lbl_8002160C:
/* 8002160C 0001D44C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80021610 0001D450 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80021614 0001D454 7C 08 03 A6 */ mtlr r0
/* 80021618 0001D458 38 21 00 10 */ addi r1, r1, 0x10
/* 8002161C 0001D45C 4E 80 00 20 */ blr
.global OSGetFontTexture
OSGetFontTexture:
/* 80021620 0001D460 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80021624 0001D464 7C 08 02 A6 */ mflr r0
/* 80021628 0001D468 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002162C 0001D46C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80021630 0001D470 7C FF 3B 78 */ mr r31, r7
/* 80021634 0001D474 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80021638 0001D478 7C DE 33 78 */ mr r30, r6
/* 8002163C 0001D47C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80021640 0001D480 7C BD 2B 78 */ mr r29, r5
/* 80021644 0001D484 93 81 00 10 */ stw r28, 0x10(r1)
/* 80021648 0001D488 7C 9C 23 78 */ mr r28, r4
/* 8002164C 0001D48C A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
/* 80021650 0001D490 28 00 FF FF */ cmplwi r0, 0xffff
/* 80021654 0001D494 41 82 00 08 */ beq lbl_8002165C
/* 80021658 0001D498 48 00 00 40 */ b lbl_80021698
.global lbl_8002165C
lbl_8002165C:
/* 8002165C 0001D49C 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 80021660 0001D4A0 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 80021664 0001D4A4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80021668 0001D4A8 40 82 00 18 */ bne lbl_80021680
/* 8002166C 0001D4AC 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 80021670 0001D4B0 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 80021674 0001D4B4 54 00 FF FE */ extrwi r0, r0, 1, 30
/* 80021678 0001D4B8 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
/* 8002167C 0001D4BC 48 00 00 0C */ b lbl_80021688
.global lbl_80021680
lbl_80021680:
/* 80021680 0001D4C0 38 00 00 00 */ li r0, 0x0
/* 80021684 0001D4C4 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
.global lbl_80021688
lbl_80021688:
/* 80021688 0001D4C8 3C 80 80 02 */ lis r4, ParseStringS@ha
/* 8002168C 0001D4CC 54 00 04 3E */ clrlwi r0, r0, 16
/* 80021690 0001D4D0 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 80021694 0001D4D4 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
.global lbl_80021698
lbl_80021698:
/* 80021698 0001D4D8 81 8D E3 D8 */ lwz r12, ParseString@sda21(r13)
/* 8002169C 0001D4DC 7C 64 1B 78 */ mr r4, r3
/* 800216A0 0001D4E0 54 03 04 3E */ clrlwi r3, r0, 16
/* 800216A4 0001D4E4 38 A1 00 0C */ addi r5, r1, 0xc
/* 800216A8 0001D4E8 38 C1 00 08 */ addi r6, r1, 0x8
/* 800216AC 0001D4EC 7D 89 03 A6 */ mtctr r12
/* 800216B0 0001D4F0 4E 80 04 21 */ bctrl
/* 800216B4 0001D4F4 80 E1 00 0C */ lwz r7, 0xc(r1)
/* 800216B8 0001D4F8 2C 1F 00 00 */ cmpwi r31, 0x0
/* 800216BC 0001D4FC 80 C1 00 08 */ lwz r6, 0x8(r1)
/* 800216C0 0001D500 A0 A7 00 1A */ lhz r5, 0x1a(r7)
/* 800216C4 0001D504 A0 87 00 1C */ lhz r4, 0x1c(r7)
/* 800216C8 0001D508 80 07 00 24 */ lwz r0, 0x24(r7)
/* 800216CC 0001D50C 7C A5 21 D6 */ mullw r5, r5, r4
/* 800216D0 0001D510 80 87 00 14 */ lwz r4, 0x14(r7)
/* 800216D4 0001D514 7C 07 02 14 */ add r0, r7, r0
/* 800216D8 0001D518 7C C6 2B D6 */ divw r6, r6, r5
/* 800216DC 0001D51C 7C 84 31 D6 */ mullw r4, r4, r6
/* 800216E0 0001D520 7C 04 02 14 */ add r0, r4, r0
/* 800216E4 0001D524 90 1C 00 00 */ stw r0, 0x0(r28)
/* 800216E8 0001D528 81 01 00 0C */ lwz r8, 0xc(r1)
/* 800216EC 0001D52C 80 81 00 08 */ lwz r4, 0x8(r1)
/* 800216F0 0001D530 A0 E8 00 1A */ lhz r7, 0x1a(r8)
/* 800216F4 0001D534 A0 A8 00 1C */ lhz r5, 0x1c(r8)
/* 800216F8 0001D538 7C C6 39 D6 */ mullw r6, r6, r7
/* 800216FC 0001D53C A0 08 00 10 */ lhz r0, 0x10(r8)
/* 80021700 0001D540 7C A6 29 D6 */ mullw r5, r6, r5
/* 80021704 0001D544 7C A5 20 50 */ subf r5, r5, r4
/* 80021708 0001D548 7C C5 3B D6 */ divw r6, r5, r7
/* 8002170C 0001D54C 7C 86 39 D6 */ mullw r4, r6, r7
/* 80021710 0001D550 7C 84 28 50 */ subf r4, r4, r5
/* 80021714 0001D554 7C 04 01 D6 */ mullw r0, r4, r0
/* 80021718 0001D558 90 1D 00 00 */ stw r0, 0x0(r29)
/* 8002171C 0001D55C 80 81 00 0C */ lwz r4, 0xc(r1)
/* 80021720 0001D560 A0 04 00 12 */ lhz r0, 0x12(r4)
/* 80021724 0001D564 7C 06 01 D6 */ mullw r0, r6, r0
/* 80021728 0001D568 90 1E 00 00 */ stw r0, 0x0(r30)
/* 8002172C 0001D56C 41 82 00 1C */ beq lbl_80021748
/* 80021730 0001D570 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 80021734 0001D574 80 81 00 08 */ lwz r4, 0x8(r1)
/* 80021738 0001D578 A0 05 00 22 */ lhz r0, 0x22(r5)
/* 8002173C 0001D57C 7C 05 02 14 */ add r0, r5, r0
/* 80021740 0001D580 7C 04 00 AE */ lbzx r0, r4, r0
/* 80021744 0001D584 90 1F 00 00 */ stw r0, 0x0(r31)
.global lbl_80021748
lbl_80021748:
/* 80021748 0001D588 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002174C 0001D58C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80021750 0001D590 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80021754 0001D594 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80021758 0001D598 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8002175C 0001D59C 7C 08 03 A6 */ mtlr r0
/* 80021760 0001D5A0 38 21 00 20 */ addi r1, r1, 0x20
/* 80021764 0001D5A4 4E 80 00 20 */ blr
/* 80021768 0001D5A8 00 00 00 00 */ .4byte 0x00000000
/* 8002176C 0001D5AC 00 00 00 00 */ .4byte 0x00000000
.global OSGetFontWidth
OSGetFontWidth:
/* 80021770 0001D5B0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80021774 0001D5B4 7C 08 02 A6 */ mflr r0
/* 80021778 0001D5B8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002177C 0001D5BC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80021780 0001D5C0 7C 9F 23 78 */ mr r31, r4
/* 80021784 0001D5C4 A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
/* 80021788 0001D5C8 28 00 FF FF */ cmplwi r0, 0xffff
/* 8002178C 0001D5CC 41 82 00 08 */ beq lbl_80021794
/* 80021790 0001D5D0 48 00 00 40 */ b lbl_800217D0
.global lbl_80021794
lbl_80021794:
/* 80021794 0001D5D4 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 80021798 0001D5D8 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 8002179C 0001D5DC 2C 00 00 00 */ cmpwi r0, 0x0
/* 800217A0 0001D5E0 40 82 00 18 */ bne lbl_800217B8
/* 800217A4 0001D5E4 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 800217A8 0001D5E8 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 800217AC 0001D5EC 54 00 FF FE */ extrwi r0, r0, 1, 30
/* 800217B0 0001D5F0 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
/* 800217B4 0001D5F4 48 00 00 0C */ b lbl_800217C0
.global lbl_800217B8
lbl_800217B8:
/* 800217B8 0001D5F8 38 00 00 00 */ li r0, 0x0
/* 800217BC 0001D5FC B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
.global lbl_800217C0
lbl_800217C0:
/* 800217C0 0001D600 3C 80 80 02 */ lis r4, ParseStringS@ha
/* 800217C4 0001D604 54 00 04 3E */ clrlwi r0, r0, 16
/* 800217C8 0001D608 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 800217CC 0001D60C 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
.global lbl_800217D0
lbl_800217D0:
/* 800217D0 0001D610 81 8D E3 D8 */ lwz r12, ParseString@sda21(r13)
/* 800217D4 0001D614 7C 64 1B 78 */ mr r4, r3
/* 800217D8 0001D618 54 03 04 3E */ clrlwi r3, r0, 16
/* 800217DC 0001D61C 38 A1 00 0C */ addi r5, r1, 0xc
/* 800217E0 0001D620 38 C1 00 08 */ addi r6, r1, 0x8
/* 800217E4 0001D624 7D 89 03 A6 */ mtctr r12
/* 800217E8 0001D628 4E 80 04 21 */ bctrl
/* 800217EC 0001D62C 2C 1F 00 00 */ cmpwi r31, 0x0
/* 800217F0 0001D630 41 82 00 1C */ beq lbl_8002180C
/* 800217F4 0001D634 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 800217F8 0001D638 80 81 00 08 */ lwz r4, 0x8(r1)
/* 800217FC 0001D63C A0 05 00 22 */ lhz r0, 0x22(r5)
/* 80021800 0001D640 7C 05 02 14 */ add r0, r5, r0
/* 80021804 0001D644 7C 04 00 AE */ lbzx r0, r4, r0
/* 80021808 0001D648 90 1F 00 00 */ stw r0, 0x0(r31)
.global lbl_8002180C
lbl_8002180C:
/* 8002180C 0001D64C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80021810 0001D650 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80021814 0001D654 7C 08 03 A6 */ mtlr r0
/* 80021818 0001D658 38 21 00 20 */ addi r1, r1, 0x20
/* 8002181C 0001D65C 4E 80 00 20 */ blr