tp/asm/JUtility/JUTDirectPrint.s

557 lines
26 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 802e41e8
.global JUTDirectPrint
JUTDirectPrint:
/* 802E41E8 002E1128 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E41EC 002E112C 7C 08 02 A6 */ mflr r0
/* 802E41F0 002E1130 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E41F4 002E1134 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802E41F8 002E1138 7C 7F 1B 78 */ mr r31, r3
/* 802E41FC 002E113C 38 00 FF FF */ li r0, -1
/* 802E4200 002E1140 90 03 00 18 */ stw r0, 0x18(r3)
/* 802E4204 002E1144 38 80 00 00 */ li r4, 0
/* 802E4208 002E1148 38 A0 00 00 */ li r5, 0
/* 802E420C 002E114C 38 C0 00 00 */ li r6, 0
/* 802E4210 002E1150 48 00 03 5D */ bl JUTDirectPrint_NS_changeFrameBuffer
/* 802E4214 002E1154 7F E3 FB 78 */ mr r3, r31
/* 802E4218 002E1158 38 80 00 FF */ li r4, 0xff
/* 802E421C 002E115C 38 A0 00 FF */ li r5, 0xff
/* 802E4220 002E1160 38 C0 00 FF */ li r6, 0xff
/* 802E4224 002E1164 48 00 05 A5 */ bl JUTDirectPrint_NS_setCharColor_X1_
/* 802E4228 002E1168 7F E3 FB 78 */ mr r3, r31
/* 802E422C 002E116C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802E4230 002E1170 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E4234 002E1174 7C 08 03 A6 */ mtlr r0
/* 802E4238 002E1178 38 21 00 10 */ addi r1, r1, 0x10
/* 802E423C 002E117C 4E 80 00 20 */ blr
.global JUTDirectPrint_NS_start
JUTDirectPrint_NS_start:
/* 802E4240 002E1180 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E4244 002E1184 7C 08 02 A6 */ mflr r0
/* 802E4248 002E1188 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E424C 002E118C 80 0D 8F A8 */ lwz r0, lbl_80451528-_SDA_BASE_(r13)
/* 802E4250 002E1190 28 00 00 00 */ cmplwi r0, 0
/* 802E4254 002E1194 40 82 00 20 */ bne lbl_802E4274
/* 802E4258 002E1198 38 60 00 2C */ li r3, 0x2c
/* 802E425C 002E119C 4B FE A9 F1 */ bl __nw__FUl
/* 802E4260 002E11A0 7C 60 1B 79 */ or. r0, r3, r3
/* 802E4264 002E11A4 41 82 00 0C */ beq lbl_802E4270
/* 802E4268 002E11A8 4B FF FF 81 */ bl JUTDirectPrint
/* 802E426C 002E11AC 7C 60 1B 78 */ mr r0, r3
lbl_802E4270:
/* 802E4270 002E11B0 90 0D 8F A8 */ stw r0, lbl_80451528-_SDA_BASE_(r13)
lbl_802E4274:
/* 802E4274 002E11B4 80 6D 8F A8 */ lwz r3, lbl_80451528-_SDA_BASE_(r13)
/* 802E4278 002E11B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E427C 002E11BC 7C 08 03 A6 */ mtlr r0
/* 802E4280 002E11C0 38 21 00 10 */ addi r1, r1, 0x10
/* 802E4284 002E11C4 4E 80 00 20 */ blr
.global JUTDirectPrint_NS_erase
JUTDirectPrint_NS_erase:
/* 802E4288 002E11C8 80 03 00 00 */ lwz r0, 0(r3)
/* 802E428C 002E11CC 28 00 00 00 */ cmplwi r0, 0
/* 802E4290 002E11D0 4D 82 00 20 */ beqlr
/* 802E4294 002E11D4 A0 03 00 04 */ lhz r0, 4(r3)
/* 802E4298 002E11D8 28 00 01 90 */ cmplwi r0, 0x190
/* 802E429C 002E11DC 40 81 00 0C */ ble lbl_802E42A8
/* 802E42A0 002E11E0 54 84 08 3C */ slwi r4, r4, 1
/* 802E42A4 002E11E4 54 C6 08 3C */ slwi r6, r6, 1
lbl_802E42A8:
/* 802E42A8 002E11E8 A0 03 00 06 */ lhz r0, 6(r3)
/* 802E42AC 002E11EC 28 00 01 2C */ cmplwi r0, 0x12c
/* 802E42B0 002E11F0 40 81 00 0C */ ble lbl_802E42BC
/* 802E42B4 002E11F4 54 A5 08 3C */ slwi r5, r5, 1
/* 802E42B8 002E11F8 54 E7 08 3C */ slwi r7, r7, 1
lbl_802E42BC:
/* 802E42BC 002E11FC 81 03 00 14 */ lwz r8, 0x14(r3)
/* 802E42C0 002E1200 A0 03 00 08 */ lhz r0, 8(r3)
/* 802E42C4 002E1204 7C 00 29 D6 */ mullw r0, r0, r5
/* 802E42C8 002E1208 54 05 08 3C */ slwi r5, r0, 1
/* 802E42CC 002E120C 54 80 08 3C */ slwi r0, r4, 1
/* 802E42D0 002E1210 7C A5 02 14 */ add r5, r5, r0
/* 802E42D4 002E1214 7C A8 2A 14 */ add r5, r8, r5
/* 802E42D8 002E1218 39 00 00 00 */ li r8, 0
/* 802E42DC 002E121C 38 80 10 80 */ li r4, 0x1080
/* 802E42E0 002E1220 48 00 00 30 */ b lbl_802E4310
lbl_802E42E4:
/* 802E42E4 002E1224 7C C9 03 A6 */ mtctr r6
/* 802E42E8 002E1228 2C 06 00 00 */ cmpwi r6, 0
/* 802E42EC 002E122C 40 81 00 10 */ ble lbl_802E42FC
lbl_802E42F0:
/* 802E42F0 002E1230 B0 85 00 00 */ sth r4, 0(r5)
/* 802E42F4 002E1234 38 A5 00 02 */ addi r5, r5, 2
/* 802E42F8 002E1238 42 00 FF F8 */ bdnz lbl_802E42F0
lbl_802E42FC:
/* 802E42FC 002E123C A0 03 00 08 */ lhz r0, 8(r3)
/* 802E4300 002E1240 7C 06 00 50 */ subf r0, r6, r0
/* 802E4304 002E1244 54 00 08 3C */ slwi r0, r0, 1
/* 802E4308 002E1248 7C A5 02 14 */ add r5, r5, r0
/* 802E430C 002E124C 39 08 00 01 */ addi r8, r8, 1
lbl_802E4310:
/* 802E4310 002E1250 7C 08 38 00 */ cmpw r8, r7
/* 802E4314 002E1254 41 80 FF D0 */ blt lbl_802E42E4
/* 802E4318 002E1258 4E 80 00 20 */ blr
.global JUTDirectPrint_NS_drawChar
JUTDirectPrint_NS_drawChar:
/* 802E431C 002E125C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E4320 002E1260 7C 08 02 A6 */ mflr r0
/* 802E4324 002E1264 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E4328 002E1268 39 61 00 20 */ addi r11, r1, 0x20
/* 802E432C 002E126C 48 07 DE A9 */ bl _savegpr_27
/* 802E4330 002E1270 3C E0 80 3D */ lis r7, lbl_803CC6B8@ha
/* 802E4334 002E1274 38 E7 C6 B8 */ addi r7, r7, lbl_803CC6B8@l
/* 802E4338 002E1278 2C 06 00 64 */ cmpwi r6, 0x64
/* 802E433C 002E127C 7C C8 33 78 */ mr r8, r6
/* 802E4340 002E1280 41 80 00 08 */ blt lbl_802E4348
/* 802E4344 002E1284 39 06 FF 9C */ addi r8, r6, -100
lbl_802E4348:
/* 802E4348 002E1288 38 00 00 05 */ li r0, 5
/* 802E434C 002E128C 7D 28 03 D6 */ divw r9, r8, r0
/* 802E4350 002E1290 7C 09 01 D6 */ mullw r0, r9, r0
/* 802E4354 002E1294 7C 00 40 50 */ subf r0, r0, r8
/* 802E4358 002E1298 1D 00 00 06 */ mulli r8, r0, 6
/* 802E435C 002E129C 1C 09 00 07 */ mulli r0, r9, 7
/* 802E4360 002E12A0 2C 06 00 64 */ cmpwi r6, 0x64
/* 802E4364 002E12A4 54 00 10 3A */ slwi r0, r0, 2
/* 802E4368 002E12A8 38 C7 01 80 */ addi r6, r7, 0x180
/* 802E436C 002E12AC 7C C6 02 14 */ add r6, r6, r0
/* 802E4370 002E12B0 40 80 00 0C */ bge lbl_802E437C
/* 802E4374 002E12B4 38 C7 00 80 */ addi r6, r7, 0x80
/* 802E4378 002E12B8 7C C6 02 14 */ add r6, r6, r0
lbl_802E437C:
/* 802E437C 002E12BC 7C C9 33 78 */ mr r9, r6
/* 802E4380 002E12C0 A0 C3 00 04 */ lhz r6, 4(r3)
/* 802E4384 002E12C4 38 00 01 90 */ li r0, 0x190
/* 802E4388 002E12C8 7C 00 30 10 */ subfc r0, r0, r6
/* 802E438C 002E12CC 7C C0 01 10 */ subfe r6, r0, r0
/* 802E4390 002E12D0 38 C6 00 02 */ addi r6, r6, 2
/* 802E4394 002E12D4 A1 43 00 06 */ lhz r10, 6(r3)
/* 802E4398 002E12D8 38 00 01 2C */ li r0, 0x12c
/* 802E439C 002E12DC 7C 00 50 10 */ subfc r0, r0, r10
/* 802E43A0 002E12E0 7D 40 01 10 */ subfe r10, r0, r0
/* 802E43A4 002E12E4 38 0A 00 02 */ addi r0, r10, 2
/* 802E43A8 002E12E8 81 63 00 14 */ lwz r11, 0x14(r3)
/* 802E43AC 002E12EC A1 43 00 08 */ lhz r10, 8(r3)
/* 802E43B0 002E12F0 7C AA 29 D6 */ mullw r5, r10, r5
/* 802E43B4 002E12F4 7C A0 29 D6 */ mullw r5, r0, r5
/* 802E43B8 002E12F8 54 A5 08 3C */ slwi r5, r5, 1
/* 802E43BC 002E12FC 7C 84 31 D6 */ mullw r4, r4, r6
/* 802E43C0 002E1300 54 84 08 3C */ slwi r4, r4, 1
/* 802E43C4 002E1304 7D 45 22 14 */ add r10, r5, r4
/* 802E43C8 002E1308 7D 4B 52 14 */ add r10, r11, r10
/* 802E43CC 002E130C 39 60 00 00 */ li r11, 0
/* 802E43D0 002E1310 1C 86 00 06 */ mulli r4, r6, 6
lbl_802E43D4:
/* 802E43D4 002E1314 80 A9 00 00 */ lwz r5, 0(r9)
/* 802E43D8 002E1318 7C BB 40 30 */ slw r27, r5, r8
/* 802E43DC 002E131C 2C 06 00 01 */ cmpwi r6, 1
/* 802E43E0 002E1320 39 29 00 04 */ addi r9, r9, 4
/* 802E43E4 002E1324 40 82 00 0C */ bne lbl_802E43F0
/* 802E43E8 002E1328 57 65 F8 4C */ rlwinm r5, r27, 0x1f, 1, 6
/* 802E43EC 002E132C 48 00 00 34 */ b lbl_802E4420
lbl_802E43F0:
/* 802E43F0 002E1330 57 65 27 3A */ rlwinm r5, r27, 4, 0x1c, 0x1d
/* 802E43F4 002E1334 3B C7 02 B4 */ addi r30, r7, 0x2b4
/* 802E43F8 002E1338 7C BE 28 2E */ lwzx r5, r30, r5
/* 802E43FC 002E133C 54 BF 40 2E */ slwi r31, r5, 8
/* 802E4400 002E1340 57 65 47 3A */ rlwinm r5, r27, 8, 0x1c, 0x1d
/* 802E4404 002E1344 7D 9E 28 2E */ lwzx r12, r30, r5
/* 802E4408 002E1348 57 65 37 3A */ rlwinm r5, r27, 6, 0x1c, 0x1d
/* 802E440C 002E134C 7C BE 28 2E */ lwzx r5, r30, r5
/* 802E4410 002E1350 54 A5 20 36 */ slwi r5, r5, 4
/* 802E4414 002E1354 7D 85 2B 78 */ or r5, r12, r5
/* 802E4418 002E1358 7F E5 2B 78 */ or r5, r31, r5
/* 802E441C 002E135C 54 A5 98 18 */ slwi r5, r5, 0x13
lbl_802E4420:
/* 802E4420 002E1360 39 84 00 01 */ addi r12, r4, 1
/* 802E4424 002E1364 55 8C F8 7E */ srwi r12, r12, 1
/* 802E4428 002E1368 7D 89 03 A6 */ mtctr r12
/* 802E442C 002E136C 2C 04 00 00 */ cmpwi r4, 0
/* 802E4430 002E1370 40 81 01 04 */ ble lbl_802E4534
lbl_802E4434:
/* 802E4434 002E1374 54 BC 00 43 */ rlwinm. r28, r5, 0, 1, 1
/* 802E4438 002E1378 41 82 00 0C */ beq lbl_802E4444
/* 802E443C 002E137C A3 C3 00 20 */ lhz r30, 0x20(r3)
/* 802E4440 002E1380 48 00 00 08 */ b lbl_802E4448
lbl_802E4444:
/* 802E4444 002E1384 3B C0 00 40 */ li r30, 0x40
lbl_802E4448:
/* 802E4448 002E1388 54 AC 00 01 */ rlwinm. r12, r5, 0, 0, 0
/* 802E444C 002E138C 41 82 00 0C */ beq lbl_802E4458
/* 802E4450 002E1390 A3 A3 00 22 */ lhz r29, 0x22(r3)
/* 802E4454 002E1394 48 00 00 08 */ b lbl_802E445C
lbl_802E4458:
/* 802E4458 002E1398 3B A0 00 20 */ li r29, 0x20
lbl_802E445C:
/* 802E445C 002E139C 54 BB 00 85 */ rlwinm. r27, r5, 0, 2, 2
/* 802E4460 002E13A0 41 82 00 0C */ beq lbl_802E446C
/* 802E4464 002E13A4 A1 83 00 22 */ lhz r12, 0x22(r3)
/* 802E4468 002E13A8 48 00 00 08 */ b lbl_802E4470
lbl_802E446C:
/* 802E446C 002E13AC 39 80 00 20 */ li r12, 0x20
lbl_802E4470:
/* 802E4470 002E13B0 28 1C 00 00 */ cmplwi r28, 0
/* 802E4474 002E13B4 41 82 00 0C */ beq lbl_802E4480
/* 802E4478 002E13B8 A3 E3 00 1C */ lhz r31, 0x1c(r3)
/* 802E447C 002E13BC 48 00 00 08 */ b lbl_802E4484
lbl_802E4480:
/* 802E4480 002E13C0 3B E0 00 00 */ li r31, 0
lbl_802E4484:
/* 802E4484 002E13C4 7D 9E 62 14 */ add r12, r30, r12
/* 802E4488 002E13C8 7D 9D 62 14 */ add r12, r29, r12
/* 802E448C 002E13CC 7F EC 63 78 */ or r12, r31, r12
/* 802E4490 002E13D0 55 9D 04 3E */ clrlwi r29, r12, 0x10
/* 802E4494 002E13D4 B1 8A 00 00 */ sth r12, 0(r10)
/* 802E4498 002E13D8 2C 00 00 01 */ cmpwi r0, 1
/* 802E449C 002E13DC 40 81 00 10 */ ble lbl_802E44AC
/* 802E44A0 002E13E0 A1 83 00 08 */ lhz r12, 8(r3)
/* 802E44A4 002E13E4 55 8C 08 3C */ slwi r12, r12, 1
/* 802E44A8 002E13E8 7F AA 63 2E */ sthx r29, r10, r12
lbl_802E44AC:
/* 802E44AC 002E13EC 28 1B 00 00 */ cmplwi r27, 0
/* 802E44B0 002E13F0 41 82 00 0C */ beq lbl_802E44BC
/* 802E44B4 002E13F4 A3 A3 00 26 */ lhz r29, 0x26(r3)
/* 802E44B8 002E13F8 48 00 00 08 */ b lbl_802E44C0
lbl_802E44BC:
/* 802E44BC 002E13FC 3B A0 00 40 */ li r29, 0x40
lbl_802E44C0:
/* 802E44C0 002E1400 28 1C 00 00 */ cmplwi r28, 0
/* 802E44C4 002E1404 41 82 00 0C */ beq lbl_802E44D0
/* 802E44C8 002E1408 A3 C3 00 28 */ lhz r30, 0x28(r3)
/* 802E44CC 002E140C 48 00 00 08 */ b lbl_802E44D4
lbl_802E44D0:
/* 802E44D0 002E1410 3B C0 00 20 */ li r30, 0x20
lbl_802E44D4:
/* 802E44D4 002E1414 54 AC 00 C7 */ rlwinm. r12, r5, 0, 3, 3
/* 802E44D8 002E1418 41 82 00 0C */ beq lbl_802E44E4
/* 802E44DC 002E141C A1 83 00 28 */ lhz r12, 0x28(r3)
/* 802E44E0 002E1420 48 00 00 08 */ b lbl_802E44E8
lbl_802E44E4:
/* 802E44E4 002E1424 39 80 00 20 */ li r12, 0x20
lbl_802E44E8:
/* 802E44E8 002E1428 28 1B 00 00 */ cmplwi r27, 0
/* 802E44EC 002E142C 41 82 00 0C */ beq lbl_802E44F8
/* 802E44F0 002E1430 A3 E3 00 1C */ lhz r31, 0x1c(r3)
/* 802E44F4 002E1434 48 00 00 08 */ b lbl_802E44FC
lbl_802E44F8:
/* 802E44F8 002E1438 3B E0 00 00 */ li r31, 0
lbl_802E44FC:
/* 802E44FC 002E143C 7D 9D 62 14 */ add r12, r29, r12
/* 802E4500 002E1440 7D 9E 62 14 */ add r12, r30, r12
/* 802E4504 002E1444 7F EC 63 78 */ or r12, r31, r12
/* 802E4508 002E1448 55 9B 04 3E */ clrlwi r27, r12, 0x10
/* 802E450C 002E144C B1 8A 00 02 */ sth r12, 2(r10)
/* 802E4510 002E1450 2C 00 00 01 */ cmpwi r0, 1
/* 802E4514 002E1454 40 81 00 14 */ ble lbl_802E4528
/* 802E4518 002E1458 A1 83 00 08 */ lhz r12, 8(r3)
/* 802E451C 002E145C 55 8C 08 3C */ slwi r12, r12, 1
/* 802E4520 002E1460 39 8C 00 02 */ addi r12, r12, 2
/* 802E4524 002E1464 7F 6A 63 2E */ sthx r27, r10, r12
lbl_802E4528:
/* 802E4528 002E1468 54 A5 10 3A */ slwi r5, r5, 2
/* 802E452C 002E146C 39 4A 00 04 */ addi r10, r10, 4
/* 802E4530 002E1470 42 00 FF 04 */ bdnz lbl_802E4434
lbl_802E4534:
/* 802E4534 002E1474 A0 A3 00 08 */ lhz r5, 8(r3)
/* 802E4538 002E1478 7C A5 01 D6 */ mullw r5, r5, r0
/* 802E453C 002E147C 7C A4 28 50 */ subf r5, r4, r5
/* 802E4540 002E1480 54 A5 08 3C */ slwi r5, r5, 1
/* 802E4544 002E1484 7D 4A 2A 14 */ add r10, r10, r5
/* 802E4548 002E1488 39 6B 00 01 */ addi r11, r11, 1
/* 802E454C 002E148C 2C 0B 00 07 */ cmpwi r11, 7
/* 802E4550 002E1490 41 80 FE 84 */ blt lbl_802E43D4
/* 802E4554 002E1494 39 61 00 20 */ addi r11, r1, 0x20
/* 802E4558 002E1498 48 07 DC C9 */ bl _restgpr_27
/* 802E455C 002E149C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E4560 002E14A0 7C 08 03 A6 */ mtlr r0
/* 802E4564 002E14A4 38 21 00 20 */ addi r1, r1, 0x20
/* 802E4568 002E14A8 4E 80 00 20 */ blr
.global JUTDirectPrint_NS_changeFrameBuffer
JUTDirectPrint_NS_changeFrameBuffer:
/* 802E456C 002E14AC 90 83 00 00 */ stw r4, 0(r3)
/* 802E4570 002E14B0 90 83 00 14 */ stw r4, 0x14(r3)
/* 802E4574 002E14B4 B0 A3 00 04 */ sth r5, 4(r3)
/* 802E4578 002E14B8 B0 C3 00 06 */ sth r6, 6(r3)
/* 802E457C 002E14BC 54 A4 04 3E */ clrlwi r4, r5, 0x10
/* 802E4580 002E14C0 38 04 00 0F */ addi r0, r4, 0xf
/* 802E4584 002E14C4 54 00 04 36 */ rlwinm r0, r0, 0, 0x10, 0x1b
/* 802E4588 002E14C8 B0 03 00 08 */ sth r0, 8(r3)
/* 802E458C 002E14CC A0 83 00 08 */ lhz r4, 8(r3)
/* 802E4590 002E14D0 A0 03 00 06 */ lhz r0, 6(r3)
/* 802E4594 002E14D4 7C 04 01 D6 */ mullw r0, r4, r0
/* 802E4598 002E14D8 54 00 08 3C */ slwi r0, r0, 1
/* 802E459C 002E14DC 90 03 00 0C */ stw r0, 0xc(r3)
/* 802E45A0 002E14E0 4E 80 00 20 */ blr
.global printSub__14JUTDirectPrintFUsUsPCcP16__va_list_structb
printSub__14JUTDirectPrintFUsUsPCcP16__va_list_structb:
/* 802E45A4 002E14E4 94 21 FE D0 */ stwu r1, -0x130(r1)
/* 802E45A8 002E14E8 7C 08 02 A6 */ mflr r0
/* 802E45AC 002E14EC 90 01 01 34 */ stw r0, 0x134(r1)
/* 802E45B0 002E14F0 39 61 01 30 */ addi r11, r1, 0x130
/* 802E45B4 002E14F4 48 07 DC 15 */ bl _savegpr_24
/* 802E45B8 002E14F8 7C 79 1B 78 */ mr r25, r3
/* 802E45BC 002E14FC 7C 9A 23 78 */ mr r26, r4
/* 802E45C0 002E1500 7C BB 2B 78 */ mr r27, r5
/* 802E45C4 002E1504 7D 18 43 78 */ mr r24, r8
/* 802E45C8 002E1508 80 03 00 14 */ lwz r0, 0x14(r3)
/* 802E45CC 002E150C 28 00 00 00 */ cmplwi r0, 0
/* 802E45D0 002E1510 41 82 00 F0 */ beq lbl_802E46C0
/* 802E45D4 002E1514 38 61 00 08 */ addi r3, r1, 8
/* 802E45D8 002E1518 38 80 01 00 */ li r4, 0x100
/* 802E45DC 002E151C 7C C5 33 78 */ mr r5, r6
/* 802E45E0 002E1520 7C E6 3B 78 */ mr r6, r7
/* 802E45E4 002E1524 48 08 20 AD */ bl func_80366690
/* 802E45E8 002E1528 7C 7E 1B 79 */ or. r30, r3, r3
/* 802E45EC 002E152C 7F 5D D3 78 */ mr r29, r26
/* 802E45F0 002E1530 40 81 00 C4 */ ble lbl_802E46B4
/* 802E45F4 002E1534 57 00 06 3F */ clrlwi. r0, r24, 0x18
/* 802E45F8 002E1538 41 82 00 28 */ beq lbl_802E4620
/* 802E45FC 002E153C 7F 23 CB 78 */ mr r3, r25
/* 802E4600 002E1540 57 44 04 3E */ clrlwi r4, r26, 0x10
/* 802E4604 002E1544 38 84 FF FA */ addi r4, r4, -6
/* 802E4608 002E1548 57 65 04 3E */ clrlwi r5, r27, 0x10
/* 802E460C 002E154C 38 A5 FF FD */ addi r5, r5, -3
/* 802E4610 002E1550 38 1E 00 02 */ addi r0, r30, 2
/* 802E4614 002E1554 1C C0 00 06 */ mulli r6, r0, 6
/* 802E4618 002E1558 38 E0 00 0D */ li r7, 0xd
/* 802E461C 002E155C 4B FF FC 6D */ bl JUTDirectPrint_NS_erase
lbl_802E4620:
/* 802E4620 002E1560 3B 81 00 08 */ addi r28, r1, 8
/* 802E4624 002E1564 57 5F 04 3E */ clrlwi r31, r26, 0x10
/* 802E4628 002E1568 3C 60 80 3D */ lis r3, lbl_803CC6B8@ha
/* 802E462C 002E156C 3B 03 C6 B8 */ addi r24, r3, lbl_803CC6B8@l
/* 802E4630 002E1570 48 00 00 7C */ b lbl_802E46AC
lbl_802E4634:
/* 802E4634 002E1574 88 1C 00 00 */ lbz r0, 0(r28)
/* 802E4638 002E1578 54 00 06 7E */ clrlwi r0, r0, 0x19
/* 802E463C 002E157C 7C D8 00 AE */ lbzx r6, r24, r0
/* 802E4640 002E1580 2C 06 00 FE */ cmpwi r6, 0xfe
/* 802E4644 002E1584 40 82 00 10 */ bne lbl_802E4654
/* 802E4648 002E1588 7F BA EB 78 */ mr r26, r29
/* 802E464C 002E158C 3B 7B 00 07 */ addi r27, r27, 7
/* 802E4650 002E1590 48 00 00 54 */ b lbl_802E46A4
lbl_802E4654:
/* 802E4654 002E1594 2C 06 00 FD */ cmpwi r6, 0xfd
/* 802E4658 002E1598 40 82 00 30 */ bne lbl_802E4688
/* 802E465C 002E159C 57 45 04 3E */ clrlwi r5, r26, 0x10
/* 802E4660 002E15A0 7C 7F 28 50 */ subf r3, r31, r5
/* 802E4664 002E15A4 38 83 00 2F */ addi r4, r3, 0x2f
/* 802E4668 002E15A8 38 60 00 30 */ li r3, 0x30
/* 802E466C 002E15AC 7C 04 1B D6 */ divw r0, r4, r3
/* 802E4670 002E15B0 7C 00 19 D6 */ mullw r0, r0, r3
/* 802E4674 002E15B4 7C 60 20 50 */ subf r3, r0, r4
/* 802E4678 002E15B8 38 05 00 30 */ addi r0, r5, 0x30
/* 802E467C 002E15BC 7C 03 00 50 */ subf r0, r3, r0
/* 802E4680 002E15C0 54 1A 04 3E */ clrlwi r26, r0, 0x10
/* 802E4684 002E15C4 48 00 00 20 */ b lbl_802E46A4
lbl_802E4688:
/* 802E4688 002E15C8 2C 06 00 FF */ cmpwi r6, 0xff
/* 802E468C 002E15CC 41 82 00 14 */ beq lbl_802E46A0
/* 802E4690 002E15D0 7F 23 CB 78 */ mr r3, r25
/* 802E4694 002E15D4 57 44 04 3E */ clrlwi r4, r26, 0x10
/* 802E4698 002E15D8 57 65 04 3E */ clrlwi r5, r27, 0x10
/* 802E469C 002E15DC 4B FF FC 81 */ bl JUTDirectPrint_NS_drawChar
lbl_802E46A0:
/* 802E46A0 002E15E0 3B 5A 00 06 */ addi r26, r26, 6
lbl_802E46A4:
/* 802E46A4 002E15E4 3B DE FF FF */ addi r30, r30, -1
/* 802E46A8 002E15E8 3B 9C 00 01 */ addi r28, r28, 1
lbl_802E46AC:
/* 802E46AC 002E15EC 2C 1E 00 00 */ cmpwi r30, 0
/* 802E46B0 002E15F0 41 81 FF 84 */ bgt lbl_802E4634
lbl_802E46B4:
/* 802E46B4 002E15F4 80 79 00 14 */ lwz r3, 0x14(r25)
/* 802E46B8 002E15F8 80 99 00 0C */ lwz r4, 0xc(r25)
/* 802E46BC 002E15FC 48 05 6F 21 */ bl DCStoreRange
lbl_802E46C0:
/* 802E46C0 002E1600 39 61 01 30 */ addi r11, r1, 0x130
/* 802E46C4 002E1604 48 07 DB 51 */ bl _restgpr_24
/* 802E46C8 002E1608 80 01 01 34 */ lwz r0, 0x134(r1)
/* 802E46CC 002E160C 7C 08 03 A6 */ mtlr r0
/* 802E46D0 002E1610 38 21 01 30 */ addi r1, r1, 0x130
/* 802E46D4 002E1614 4E 80 00 20 */ blr
.global JUTDirectPrint_NS_drawString
JUTDirectPrint_NS_drawString:
/* 802E46D8 002E1618 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E46DC 002E161C 7C 08 02 A6 */ mflr r0
/* 802E46E0 002E1620 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E46E4 002E1624 7C C7 33 78 */ mr r7, r6
/* 802E46E8 002E1628 3C C0 80 3A */ lis r6, lbl_8039D9A0@ha
/* 802E46EC 002E162C 38 C6 D9 A0 */ addi r6, r6, lbl_8039D9A0@l
/* 802E46F0 002E1630 4C C6 31 82 */ crclr 6
/* 802E46F4 002E1634 48 00 00 15 */ bl JUTDirectPrint_NS_drawString_f
/* 802E46F8 002E1638 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E46FC 002E163C 7C 08 03 A6 */ mtlr r0
/* 802E4700 002E1640 38 21 00 10 */ addi r1, r1, 0x10
/* 802E4704 002E1644 4E 80 00 20 */ blr
.global JUTDirectPrint_NS_drawString_f
JUTDirectPrint_NS_drawString_f:
/* 802E4708 002E1648 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 802E470C 002E164C 7C 08 02 A6 */ mflr r0
/* 802E4710 002E1650 90 01 00 84 */ stw r0, 0x84(r1)
/* 802E4714 002E1654 40 86 00 24 */ bne cr1, lbl_802E4738
/* 802E4718 002E1658 D8 21 00 28 */ stfd f1, 0x28(r1)
/* 802E471C 002E165C D8 41 00 30 */ stfd f2, 0x30(r1)
/* 802E4720 002E1660 D8 61 00 38 */ stfd f3, 0x38(r1)
/* 802E4724 002E1664 D8 81 00 40 */ stfd f4, 0x40(r1)
/* 802E4728 002E1668 D8 A1 00 48 */ stfd f5, 0x48(r1)
/* 802E472C 002E166C D8 C1 00 50 */ stfd f6, 0x50(r1)
/* 802E4730 002E1670 D8 E1 00 58 */ stfd f7, 0x58(r1)
/* 802E4734 002E1674 D9 01 00 60 */ stfd f8, 0x60(r1)
lbl_802E4738:
/* 802E4738 002E1678 90 61 00 08 */ stw r3, 8(r1)
/* 802E473C 002E167C 90 81 00 0C */ stw r4, 0xc(r1)
/* 802E4740 002E1680 90 A1 00 10 */ stw r5, 0x10(r1)
/* 802E4744 002E1684 90 C1 00 14 */ stw r6, 0x14(r1)
/* 802E4748 002E1688 90 E1 00 18 */ stw r7, 0x18(r1)
/* 802E474C 002E168C 91 01 00 1C */ stw r8, 0x1c(r1)
/* 802E4750 002E1690 91 21 00 20 */ stw r9, 0x20(r1)
/* 802E4754 002E1694 91 41 00 24 */ stw r10, 0x24(r1)
/* 802E4758 002E1698 80 03 00 14 */ lwz r0, 0x14(r3)
/* 802E475C 002E169C 28 00 00 00 */ cmplwi r0, 0
/* 802E4760 002E16A0 41 82 00 28 */ beq lbl_802E4788
/* 802E4764 002E16A4 38 E1 00 68 */ addi r7, r1, 0x68
/* 802E4768 002E16A8 3C 00 04 00 */ lis r0, 0x400
/* 802E476C 002E16AC 90 01 00 68 */ stw r0, 0x68(r1)
/* 802E4770 002E16B0 38 01 00 88 */ addi r0, r1, 0x88
/* 802E4774 002E16B4 90 01 00 6C */ stw r0, 0x6c(r1)
/* 802E4778 002E16B8 38 01 00 08 */ addi r0, r1, 8
/* 802E477C 002E16BC 90 01 00 70 */ stw r0, 0x70(r1)
/* 802E4780 002E16C0 39 00 00 00 */ li r8, 0
/* 802E4784 002E16C4 4B FF FE 21 */ bl printSub__14JUTDirectPrintFUsUsPCcP16__va_list_structb
lbl_802E4788:
/* 802E4788 002E16C8 80 01 00 84 */ lwz r0, 0x84(r1)
/* 802E478C 002E16CC 7C 08 03 A6 */ mtlr r0
/* 802E4790 002E16D0 38 21 00 80 */ addi r1, r1, 0x80
/* 802E4794 002E16D4 4E 80 00 20 */ blr
.global JUTDirectPrint_NS_setCharColor
JUTDirectPrint_NS_setCharColor:
/* 802E4798 002E16D8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E479C 002E16DC 7C 08 02 A6 */ mflr r0
/* 802E47A0 002E16E0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E47A4 002E16E4 7C 86 23 78 */ mr r6, r4
/* 802E47A8 002E16E8 88 84 00 00 */ lbz r4, 0(r4)
/* 802E47AC 002E16EC 88 A6 00 01 */ lbz r5, 1(r6)
/* 802E47B0 002E16F0 88 C6 00 02 */ lbz r6, 2(r6)
/* 802E47B4 002E16F4 48 00 00 15 */ bl JUTDirectPrint_NS_setCharColor_X1_
/* 802E47B8 002E16F8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E47BC 002E16FC 7C 08 03 A6 */ mtlr r0
/* 802E47C0 002E1700 38 21 00 10 */ addi r1, r1, 0x10
/* 802E47C4 002E1704 4E 80 00 20 */ blr
.global JUTDirectPrint_NS_setCharColor_X1_
JUTDirectPrint_NS_setCharColor_X1_:
/* 802E47C8 002E1708 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 802E47CC 002E170C 98 83 00 18 */ stb r4, 0x18(r3)
/* 802E47D0 002E1710 98 A3 00 19 */ stb r5, 0x19(r3)
/* 802E47D4 002E1714 98 C3 00 1A */ stb r6, 0x1a(r3)
/* 802E47D8 002E1718 38 00 00 FF */ li r0, 0xff
/* 802E47DC 002E171C 98 03 00 1B */ stb r0, 0x1b(r3)
/* 802E47E0 002E1720 C8 C2 C6 60 */ lfd f6, lbl_80456060-_SDA2_BASE_(r2)
/* 802E47E4 002E1724 C8 A2 C6 68 */ lfd f5, lbl_80456068-_SDA2_BASE_(r2)
/* 802E47E8 002E1728 54 C0 06 3E */ clrlwi r0, r6, 0x18
/* 802E47EC 002E172C C8 02 C6 B0 */ lfd f0, lbl_804560B0-_SDA2_BASE_(r2)
/* 802E47F0 002E1730 6C 07 80 00 */ xoris r7, r0, 0x8000
/* 802E47F4 002E1734 90 E1 00 0C */ stw r7, 0xc(r1)
/* 802E47F8 002E1738 3C C0 43 30 */ lis r6, 0x4330
/* 802E47FC 002E173C 90 C1 00 08 */ stw r6, 8(r1)
/* 802E4800 002E1740 C8 21 00 08 */ lfd f1, 8(r1)
/* 802E4804 002E1744 FC 21 00 28 */ fsub f1, f1, f0
/* 802E4808 002E1748 FC 85 00 72 */ fmul f4, f5, f1
/* 802E480C 002E174C C8 42 C6 70 */ lfd f2, lbl_80456070-_SDA2_BASE_(r2)
/* 802E4810 002E1750 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 802E4814 002E1754 6C 04 80 00 */ xoris r4, r0, 0x8000
/* 802E4818 002E1758 90 81 00 14 */ stw r4, 0x14(r1)
/* 802E481C 002E175C 90 C1 00 10 */ stw r6, 0x10(r1)
/* 802E4820 002E1760 C8 21 00 10 */ lfd f1, 0x10(r1)
/* 802E4824 002E1764 FC 21 00 28 */ fsub f1, f1, f0
/* 802E4828 002E1768 FC 62 00 72 */ fmul f3, f2, f1
/* 802E482C 002E176C C8 42 C6 78 */ lfd f2, lbl_80456078-_SDA2_BASE_(r2)
/* 802E4830 002E1770 54 A0 06 3E */ clrlwi r0, r5, 0x18
/* 802E4834 002E1774 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 802E4838 002E1778 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802E483C 002E177C 90 C1 00 18 */ stw r6, 0x18(r1)
/* 802E4840 002E1780 C8 21 00 18 */ lfd f1, 0x18(r1)
/* 802E4844 002E1784 FC 21 00 28 */ fsub f1, f1, f0
/* 802E4848 002E1788 FC 22 00 72 */ fmul f1, f2, f1
/* 802E484C 002E178C FC 23 08 28 */ fsub f1, f3, f1
/* 802E4850 002E1790 FC 24 08 2A */ fadd f1, f4, f1
/* 802E4854 002E1794 FC 26 08 2A */ fadd f1, f6, f1
/* 802E4858 002E1798 FC 20 08 1E */ fctiwz f1, f1
/* 802E485C 002E179C D8 21 00 20 */ stfd f1, 0x20(r1)
/* 802E4860 002E17A0 80 A1 00 24 */ lwz r5, 0x24(r1)
/* 802E4864 002E17A4 90 81 00 2C */ stw r4, 0x2c(r1)
/* 802E4868 002E17A8 90 C1 00 28 */ stw r6, 0x28(r1)
/* 802E486C 002E17AC C8 21 00 28 */ lfd f1, 0x28(r1)
/* 802E4870 002E17B0 FC 21 00 28 */ fsub f1, f1, f0
/* 802E4874 002E17B4 FC 65 00 72 */ fmul f3, f5, f1
/* 802E4878 002E17B8 C8 42 C6 80 */ lfd f2, lbl_80456080-_SDA2_BASE_(r2)
/* 802E487C 002E17BC 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E4880 002E17C0 90 C1 00 30 */ stw r6, 0x30(r1)
/* 802E4884 002E17C4 C8 21 00 30 */ lfd f1, 0x30(r1)
/* 802E4888 002E17C8 FC 21 00 28 */ fsub f1, f1, f0
/* 802E488C 002E17CC FC 22 00 72 */ fmul f1, f2, f1
/* 802E4890 002E17D0 FC 63 08 28 */ fsub f3, f3, f1
/* 802E4894 002E17D4 C8 42 C6 88 */ lfd f2, lbl_80456088-_SDA2_BASE_(r2)
/* 802E4898 002E17D8 90 E1 00 3C */ stw r7, 0x3c(r1)
/* 802E489C 002E17DC 90 C1 00 38 */ stw r6, 0x38(r1)
/* 802E48A0 002E17E0 C8 21 00 38 */ lfd f1, 0x38(r1)
/* 802E48A4 002E17E4 FC 21 00 28 */ fsub f1, f1, f0
/* 802E48A8 002E17E8 FC 22 00 72 */ fmul f1, f2, f1
/* 802E48AC 002E17EC FC 23 08 28 */ fsub f1, f3, f1
/* 802E48B0 002E17F0 FC 26 08 2A */ fadd f1, f6, f1
/* 802E48B4 002E17F4 FC 20 08 1E */ fctiwz f1, f1
/* 802E48B8 002E17F8 D8 21 00 40 */ stfd f1, 0x40(r1)
/* 802E48BC 002E17FC 81 01 00 44 */ lwz r8, 0x44(r1)
/* 802E48C0 002E1800 C8 A2 C6 90 */ lfd f5, lbl_80456090-_SDA2_BASE_(r2)
/* 802E48C4 002E1804 C8 42 C6 98 */ lfd f2, lbl_80456098-_SDA2_BASE_(r2)
/* 802E48C8 002E1808 90 E1 00 4C */ stw r7, 0x4c(r1)
/* 802E48CC 002E180C 90 C1 00 48 */ stw r6, 0x48(r1)
/* 802E48D0 002E1810 C8 21 00 48 */ lfd f1, 0x48(r1)
/* 802E48D4 002E1814 FC 21 00 28 */ fsub f1, f1, f0
/* 802E48D8 002E1818 FC 82 00 72 */ fmul f4, f2, f1
/* 802E48DC 002E181C C8 42 C6 A0 */ lfd f2, lbl_804560A0-_SDA2_BASE_(r2)
/* 802E48E0 002E1820 90 81 00 54 */ stw r4, 0x54(r1)
/* 802E48E4 002E1824 90 C1 00 50 */ stw r6, 0x50(r1)
/* 802E48E8 002E1828 C8 21 00 50 */ lfd f1, 0x50(r1)
/* 802E48EC 002E182C FC 21 00 28 */ fsub f1, f1, f0
/* 802E48F0 002E1830 FC 62 00 72 */ fmul f3, f2, f1
/* 802E48F4 002E1834 C8 42 C6 A8 */ lfd f2, lbl_804560A8-_SDA2_BASE_(r2)
/* 802E48F8 002E1838 90 01 00 5C */ stw r0, 0x5c(r1)
/* 802E48FC 002E183C 90 C1 00 58 */ stw r6, 0x58(r1)
/* 802E4900 002E1840 C8 21 00 58 */ lfd f1, 0x58(r1)
/* 802E4904 002E1844 FC 01 00 28 */ fsub f0, f1, f0
/* 802E4908 002E1848 FC 02 00 32 */ fmul f0, f2, f0
/* 802E490C 002E184C FC 03 00 2A */ fadd f0, f3, f0
/* 802E4910 002E1850 FC 04 00 2A */ fadd f0, f4, f0
/* 802E4914 002E1854 FC 05 00 2A */ fadd f0, f5, f0
/* 802E4918 002E1858 FC 00 00 1E */ fctiwz f0, f0
/* 802E491C 002E185C D8 01 00 60 */ stfd f0, 0x60(r1)
/* 802E4920 002E1860 80 01 00 64 */ lwz r0, 0x64(r1)
/* 802E4924 002E1864 54 00 44 2E */ rlwinm r0, r0, 8, 0x10, 0x17
/* 802E4928 002E1868 B0 03 00 1C */ sth r0, 0x1c(r3)
/* 802E492C 002E186C B0 A3 00 1E */ sth r5, 0x1e(r3)
/* 802E4930 002E1870 54 A0 FC 7E */ rlwinm r0, r5, 0x1f, 0x11, 0x1f
/* 802E4934 002E1874 B0 03 00 20 */ sth r0, 0x20(r3)
/* 802E4938 002E1878 54 A0 F4 BE */ rlwinm r0, r5, 0x1e, 0x12, 0x1f
/* 802E493C 002E187C B0 03 00 22 */ sth r0, 0x22(r3)
/* 802E4940 002E1880 B1 03 00 24 */ sth r8, 0x24(r3)
/* 802E4944 002E1884 55 00 FC 7E */ rlwinm r0, r8, 0x1f, 0x11, 0x1f
/* 802E4948 002E1888 B0 03 00 26 */ sth r0, 0x26(r3)
/* 802E494C 002E188C 55 00 F4 BE */ rlwinm r0, r8, 0x1e, 0x12, 0x1f
/* 802E4950 002E1890 B0 03 00 28 */ sth r0, 0x28(r3)
/* 802E4954 002E1894 38 21 00 70 */ addi r1, r1, 0x70
/* 802E4958 002E1898 4E 80 00 20 */ blr