donut-decomp/asm/os/OS_8001a2c0.s

1632 lines
76 KiB
ArmAsm
Raw Normal View History

2022-10-16 16:05:58 +00:00
.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
2022-10-16 16:31:36 +00:00
.global __OSFPRInit
__OSFPRInit:
2022-10-16 16:05:58 +00:00
/* 8001A2C0 00016100 7C 60 00 A6 */ mfmsr r3
/* 8001A2C4 00016104 60 63 20 00 */ ori r3, r3, 0x2000
/* 8001A2C8 00016108 7C 60 01 24 */ mtmsr r3
/* 8001A2CC 0001610C 7C 78 E2 A6 */ mfspr r3, HID2
/* 8001A2D0 00016110 54 63 1F FF */ extrwi. r3, r3, 1, 2
/* 8001A2D4 00016114 41 82 00 8C */ beq lbl_8001A360
2022-10-16 16:31:36 +00:00
/* 8001A2D8 00016118 3C 60 80 56 */ lis r3, ZeroPS@ha
/* 8001A2DC 0001611C 38 63 C7 90 */ addi r3, r3, ZeroPS@l
2022-10-16 16:05:58 +00:00
/* 8001A2E0 00016120 E0 03 00 00 */ psq_l f0, 0x0(r3), 0, qr0
/* 8001A2E4 00016124 10 20 00 90 */ ps_mr f1, f0
/* 8001A2E8 00016128 10 40 00 90 */ ps_mr f2, f0
/* 8001A2EC 0001612C 10 60 00 90 */ ps_mr f3, f0
/* 8001A2F0 00016130 10 80 00 90 */ ps_mr f4, f0
/* 8001A2F4 00016134 10 A0 00 90 */ ps_mr f5, f0
/* 8001A2F8 00016138 10 C0 00 90 */ ps_mr f6, f0
/* 8001A2FC 0001613C 10 E0 00 90 */ ps_mr f7, f0
/* 8001A300 00016140 11 00 00 90 */ ps_mr f8, f0
/* 8001A304 00016144 11 20 00 90 */ ps_mr f9, f0
/* 8001A308 00016148 11 40 00 90 */ ps_mr f10, f0
/* 8001A30C 0001614C 11 60 00 90 */ ps_mr f11, f0
/* 8001A310 00016150 11 80 00 90 */ ps_mr f12, f0
/* 8001A314 00016154 11 A0 00 90 */ ps_mr f13, f0
/* 8001A318 00016158 11 C0 00 90 */ ps_mr f14, f0
/* 8001A31C 0001615C 11 E0 00 90 */ ps_mr f15, f0
/* 8001A320 00016160 12 00 00 90 */ ps_mr f16, f0
/* 8001A324 00016164 12 20 00 90 */ ps_mr f17, f0
/* 8001A328 00016168 12 40 00 90 */ ps_mr f18, f0
/* 8001A32C 0001616C 12 60 00 90 */ ps_mr f19, f0
/* 8001A330 00016170 12 80 00 90 */ ps_mr f20, f0
/* 8001A334 00016174 12 A0 00 90 */ ps_mr f21, f0
/* 8001A338 00016178 12 C0 00 90 */ ps_mr f22, f0
/* 8001A33C 0001617C 12 E0 00 90 */ ps_mr f23, f0
/* 8001A340 00016180 13 00 00 90 */ ps_mr f24, f0
/* 8001A344 00016184 13 20 00 90 */ ps_mr f25, f0
/* 8001A348 00016188 13 40 00 90 */ ps_mr f26, f0
/* 8001A34C 0001618C 13 60 00 90 */ ps_mr f27, f0
/* 8001A350 00016190 13 80 00 90 */ ps_mr f28, f0
/* 8001A354 00016194 13 A0 00 90 */ ps_mr f29, f0
/* 8001A358 00016198 13 C0 00 90 */ ps_mr f30, f0
/* 8001A35C 0001619C 13 E0 00 90 */ ps_mr f31, f0
.global lbl_8001A360
lbl_8001A360:
2022-10-16 16:31:36 +00:00
/* 8001A360 000161A0 C8 0D E3 68 */ lfd f0, ZeroF@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001A364 000161A4 FC 20 00 90 */ fmr f1, f0
/* 8001A368 000161A8 FC 40 00 90 */ fmr f2, f0
/* 8001A36C 000161AC FC 60 00 90 */ fmr f3, f0
/* 8001A370 000161B0 FC 80 00 90 */ fmr f4, f0
/* 8001A374 000161B4 FC A0 00 90 */ fmr f5, f0
/* 8001A378 000161B8 FC C0 00 90 */ fmr f6, f0
/* 8001A37C 000161BC FC E0 00 90 */ fmr f7, f0
/* 8001A380 000161C0 FD 00 00 90 */ fmr f8, f0
/* 8001A384 000161C4 FD 20 00 90 */ fmr f9, f0
/* 8001A388 000161C8 FD 40 00 90 */ fmr f10, f0
/* 8001A38C 000161CC FD 60 00 90 */ fmr f11, f0
/* 8001A390 000161D0 FD 80 00 90 */ fmr f12, f0
/* 8001A394 000161D4 FD A0 00 90 */ fmr f13, f0
/* 8001A398 000161D8 FD C0 00 90 */ fmr f14, f0
/* 8001A39C 000161DC FD E0 00 90 */ fmr f15, f0
/* 8001A3A0 000161E0 FE 00 00 90 */ fmr f16, f0
/* 8001A3A4 000161E4 FE 20 00 90 */ fmr f17, f0
/* 8001A3A8 000161E8 FE 40 00 90 */ fmr f18, f0
/* 8001A3AC 000161EC FE 60 00 90 */ fmr f19, f0
/* 8001A3B0 000161F0 FE 80 00 90 */ fmr f20, f0
/* 8001A3B4 000161F4 FE A0 00 90 */ fmr f21, f0
/* 8001A3B8 000161F8 FE C0 00 90 */ fmr f22, f0
/* 8001A3BC 000161FC FE E0 00 90 */ fmr f23, f0
/* 8001A3C0 00016200 FF 00 00 90 */ fmr f24, f0
/* 8001A3C4 00016204 FF 20 00 90 */ fmr f25, f0
/* 8001A3C8 00016208 FF 40 00 90 */ fmr f26, f0
/* 8001A3CC 0001620C FF 60 00 90 */ fmr f27, f0
/* 8001A3D0 00016210 FF 80 00 90 */ fmr f28, f0
/* 8001A3D4 00016214 FF A0 00 90 */ fmr f29, f0
/* 8001A3D8 00016218 FF C0 00 90 */ fmr f30, f0
/* 8001A3DC 0001621C FF E0 00 90 */ fmr f31, f0
/* 8001A3E0 00016220 FD FE 05 8E */ mtfsf 255, f0
/* 8001A3E4 00016224 4E 80 00 20 */ blr
/* 8001A3E8 00016228 00 00 00 00 */ .4byte 0x00000000
/* 8001A3EC 0001622C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global __OSGetIOSRev
__OSGetIOSRev:
2022-10-16 16:05:58 +00:00
/* 8001A3F0 00016230 3C 80 C0 00 */ lis r4, 0xC0003144@ha
/* 8001A3F4 00016234 81 44 31 44 */ lwz r10, 0xC0003144@l(r4)
/* 8001A3F8 00016238 81 24 31 40 */ lwz r9, 0x3140(r4)
/* 8001A3FC 0001623C 55 40 E7 3E */ extrwi r0, r10, 4, 24
/* 8001A400 00016240 55 46 67 3E */ extrwi r6, r10, 4, 8
/* 8001A404 00016244 1C 80 00 0A */ mulli r4, r0, 0xa
/* 8001A408 00016248 55 27 46 3E */ srwi r7, r9, 24
/* 8001A40C 0001624C 55 40 07 3E */ clrlwi r0, r10, 28
/* 8001A410 00016250 98 E3 00 00 */ stb r7, 0x0(r3)
/* 8001A414 00016254 55 28 86 3E */ extrwi r8, r9, 8, 8
/* 8001A418 00016258 7C 80 22 14 */ add r4, r0, r4
/* 8001A41C 0001625C 38 04 07 D0 */ addi r0, r4, 0x7d0
/* 8001A420 00016260 55 45 A7 3E */ extrwi r5, r10, 4, 16
/* 8001A424 00016264 1C 85 00 0A */ mulli r4, r5, 0xa
/* 8001A428 00016268 99 03 00 01 */ stb r8, 0x1(r3)
/* 8001A42C 0001626C 55 45 C7 3E */ extrwi r5, r10, 4, 20
/* 8001A430 00016270 55 28 C6 3E */ extrwi r8, r9, 8, 16
/* 8001A434 00016274 99 03 00 02 */ stb r8, 0x2(r3)
/* 8001A438 00016278 7C 85 22 14 */ add r4, r5, r4
/* 8001A43C 0001627C 1C C6 00 0A */ mulli r6, r6, 0xa
/* 8001A440 00016280 55 47 87 3E */ extrwi r7, r10, 4, 12
/* 8001A444 00016284 99 23 00 03 */ stb r9, 0x3(r3)
/* 8001A448 00016288 7C C7 32 14 */ add r6, r7, r6
/* 8001A44C 0001628C 98 C3 00 04 */ stb r6, 0x4(r3)
/* 8001A450 00016290 98 83 00 05 */ stb r4, 0x5(r3)
/* 8001A454 00016294 B0 03 00 06 */ sth r0, 0x6(r3)
/* 8001A458 00016298 4E 80 00 20 */ blr
/* 8001A45C 0001629C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global OSGetConsoleType
OSGetConsoleType:
2022-10-16 16:05:58 +00:00
/* 8001A460 000162A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001A464 000162A4 7C 08 02 A6 */ mflr r0
/* 8001A468 000162A8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001A46C 000162AC 93 E1 00 0C */ stw r31, 0xc(r1)
2022-10-16 16:31:36 +00:00
/* 8001A470 000162B0 80 6D E3 90 */ lwz r3, BootInfo_8055C7B0@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001A474 000162B4 2C 03 00 00 */ cmpwi r3, 0x0
/* 8001A478 000162B8 41 82 00 10 */ beq lbl_8001A488
/* 8001A47C 000162BC 80 03 00 2C */ lwz r0, 0x2c(r3)
/* 8001A480 000162C0 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001A484 000162C4 40 82 00 10 */ bne lbl_8001A494
.global lbl_8001A488
lbl_8001A488:
/* 8001A488 000162C8 3C 60 10 00 */ lis r3, 0x1000
/* 8001A48C 000162CC 38 63 00 02 */ addi r3, r3, 0x2
/* 8001A490 000162D0 48 00 02 10 */ b lbl_8001A6A0
.global lbl_8001A494
lbl_8001A494:
/* 8001A494 000162D4 3C 60 80 00 */ lis r3, 0x800030E6@ha
/* 8001A498 000162D8 A0 03 30 E6 */ lhz r0, 0x800030E6@l(r3)
/* 8001A49C 000162DC 83 E3 31 38 */ lwz r31, 0x3138(r3)
/* 8001A4A0 000162E0 54 00 04 21 */ rlwinm. r0, r0, 0, 16, 16
/* 8001A4A4 000162E4 41 82 01 18 */ beq lbl_8001A5BC
/* 8001A4A8 000162E8 A0 03 30 E6 */ lhz r0, 0x30e6(r3)
/* 8001A4AC 000162EC 54 03 04 5E */ rlwinm r3, r0, 0, 17, 15
/* 8001A4B0 000162F0 38 03 FF FE */ addi r0, r3, -0x2
/* 8001A4B4 000162F4 28 00 00 01 */ cmplwi r0, 0x1
/* 8001A4B8 000162F8 40 81 00 24 */ ble lbl_8001A4DC
/* 8001A4BC 000162FC 38 03 FD FF */ addi r0, r3, -0x201
/* 8001A4C0 00016300 28 00 00 01 */ cmplwi r0, 0x1
/* 8001A4C4 00016304 40 81 00 78 */ ble lbl_8001A53C
/* 8001A4C8 00016308 2C 03 02 03 */ cmpwi r3, 0x203
/* 8001A4CC 0001630C 41 82 00 10 */ beq lbl_8001A4DC
/* 8001A4D0 00016310 2C 03 03 00 */ cmpwi r3, 0x300
/* 8001A4D4 00016314 41 82 00 E0 */ beq lbl_8001A5B4
/* 8001A4D8 00016318 48 00 00 E4 */ b lbl_8001A5BC
.global lbl_8001A4DC
lbl_8001A4DC:
/* 8001A4DC 0001631C 2C 1F 00 00 */ cmpwi r31, 0x0
/* 8001A4E0 00016320 41 82 00 28 */ beq lbl_8001A508
/* 8001A4E4 00016324 28 1F 00 01 */ cmplwi r31, 0x1
/* 8001A4E8 00016328 41 82 00 28 */ beq lbl_8001A510
/* 8001A4EC 0001632C 28 1F 00 02 */ cmplwi r31, 0x2
/* 8001A4F0 00016330 41 82 00 28 */ beq lbl_8001A518
/* 8001A4F4 00016334 28 1F 00 10 */ cmplwi r31, 0x10
/* 8001A4F8 00016338 41 82 00 28 */ beq lbl_8001A520
/* 8001A4FC 0001633C 28 1F 00 11 */ cmplwi r31, 0x11
/* 8001A500 00016340 41 82 00 28 */ beq lbl_8001A528
/* 8001A504 00016344 48 00 00 2C */ b lbl_8001A530
.global lbl_8001A508
lbl_8001A508:
/* 8001A508 00016348 38 60 00 10 */ li r3, 0x10
/* 8001A50C 0001634C 48 00 01 94 */ b lbl_8001A6A0
.global lbl_8001A510
lbl_8001A510:
/* 8001A510 00016350 38 60 00 11 */ li r3, 0x11
/* 8001A514 00016354 48 00 01 8C */ b lbl_8001A6A0
.global lbl_8001A518
lbl_8001A518:
/* 8001A518 00016358 38 60 00 12 */ li r3, 0x12
/* 8001A51C 0001635C 48 00 01 84 */ b lbl_8001A6A0
.global lbl_8001A520
lbl_8001A520:
/* 8001A520 00016360 38 60 00 20 */ li r3, 0x20
/* 8001A524 00016364 48 00 01 7C */ b lbl_8001A6A0
.global lbl_8001A528
lbl_8001A528:
/* 8001A528 00016368 38 60 00 21 */ li r3, 0x21
/* 8001A52C 0001636C 48 00 01 74 */ b lbl_8001A6A0
.global lbl_8001A530
lbl_8001A530:
/* 8001A530 00016370 40 81 00 0C */ ble lbl_8001A53C
/* 8001A534 00016374 38 60 00 21 */ li r3, 0x21
/* 8001A538 00016378 48 00 01 68 */ b lbl_8001A6A0
.global lbl_8001A53C
lbl_8001A53C:
/* 8001A53C 0001637C 2C 1F 00 00 */ cmpwi r31, 0x0
/* 8001A540 00016380 41 82 00 28 */ beq lbl_8001A568
/* 8001A544 00016384 28 1F 00 01 */ cmplwi r31, 0x1
/* 8001A548 00016388 41 82 00 2C */ beq lbl_8001A574
/* 8001A54C 0001638C 28 1F 00 02 */ cmplwi r31, 0x2
/* 8001A550 00016390 41 82 00 30 */ beq lbl_8001A580
/* 8001A554 00016394 28 1F 00 10 */ cmplwi r31, 0x10
/* 8001A558 00016398 41 82 00 34 */ beq lbl_8001A58C
/* 8001A55C 0001639C 28 1F 00 11 */ cmplwi r31, 0x11
/* 8001A560 000163A0 41 82 00 38 */ beq lbl_8001A598
/* 8001A564 000163A4 48 00 00 40 */ b lbl_8001A5A4
.global lbl_8001A568
lbl_8001A568:
/* 8001A568 000163A8 3C 60 10 00 */ lis r3, 0x1000
/* 8001A56C 000163AC 38 63 00 10 */ addi r3, r3, 0x10
/* 8001A570 000163B0 48 00 01 30 */ b lbl_8001A6A0
.global lbl_8001A574
lbl_8001A574:
/* 8001A574 000163B4 3C 60 10 00 */ lis r3, 0x1000
/* 8001A578 000163B8 38 63 00 11 */ addi r3, r3, 0x11
/* 8001A57C 000163BC 48 00 01 24 */ b lbl_8001A6A0
.global lbl_8001A580
lbl_8001A580:
/* 8001A580 000163C0 3C 60 10 00 */ lis r3, 0x1000
/* 8001A584 000163C4 38 63 00 12 */ addi r3, r3, 0x12
/* 8001A588 000163C8 48 00 01 18 */ b lbl_8001A6A0
.global lbl_8001A58C
lbl_8001A58C:
/* 8001A58C 000163CC 3C 60 10 00 */ lis r3, 0x1000
/* 8001A590 000163D0 38 63 00 20 */ addi r3, r3, 0x20
/* 8001A594 000163D4 48 00 01 0C */ b lbl_8001A6A0
.global lbl_8001A598
lbl_8001A598:
/* 8001A598 000163D8 3C 60 10 00 */ lis r3, 0x1000
/* 8001A59C 000163DC 38 63 00 21 */ addi r3, r3, 0x21
/* 8001A5A0 000163E0 48 00 01 00 */ b lbl_8001A6A0
.global lbl_8001A5A4
lbl_8001A5A4:
/* 8001A5A4 000163E4 40 81 00 10 */ ble lbl_8001A5B4
/* 8001A5A8 000163E8 3C 60 10 00 */ lis r3, 0x1000
/* 8001A5AC 000163EC 38 63 00 21 */ addi r3, r3, 0x21
/* 8001A5B0 000163F0 48 00 00 F0 */ b lbl_8001A6A0
.global lbl_8001A5B4
lbl_8001A5B4:
/* 8001A5B4 000163F4 38 60 01 00 */ li r3, 0x100
/* 8001A5B8 000163F8 48 00 00 E8 */ b lbl_8001A6A0
.global lbl_8001A5BC
lbl_8001A5BC:
2022-10-16 16:31:36 +00:00
/* 8001A5BC 000163FC 48 00 7D 35 */ bl OSGetPhysicalMem2Size
2022-10-16 16:05:58 +00:00
/* 8001A5C0 00016400 2C 1F 00 00 */ cmpwi r31, 0x0
/* 8001A5C4 00016404 41 82 00 28 */ beq lbl_8001A5EC
/* 8001A5C8 00016408 28 1F 00 01 */ cmplwi r31, 0x1
/* 8001A5CC 0001640C 41 82 00 3C */ beq lbl_8001A608
/* 8001A5D0 00016410 28 1F 00 02 */ cmplwi r31, 0x2
/* 8001A5D4 00016414 41 82 00 50 */ beq lbl_8001A624
/* 8001A5D8 00016418 28 1F 00 10 */ cmplwi r31, 0x10
/* 8001A5DC 0001641C 41 82 00 64 */ beq lbl_8001A640
/* 8001A5E0 00016420 28 1F 00 11 */ cmplwi r31, 0x11
/* 8001A5E4 00016424 41 82 00 78 */ beq lbl_8001A65C
/* 8001A5E8 00016428 48 00 00 90 */ b lbl_8001A678
.global lbl_8001A5EC
lbl_8001A5EC:
/* 8001A5EC 0001642C 3C 03 FC 00 */ addis r0, r3, 0xfc00
/* 8001A5F0 00016430 3C 60 10 00 */ lis r3, 0x1000
/* 8001A5F4 00016434 28 00 00 00 */ cmplwi r0, 0x0
/* 8001A5F8 00016438 38 63 00 10 */ addi r3, r3, 0x10
/* 8001A5FC 0001643C 40 82 00 A4 */ bne lbl_8001A6A0
/* 8001A600 00016440 38 60 00 10 */ li r3, 0x10
/* 8001A604 00016444 48 00 00 9C */ b lbl_8001A6A0
.global lbl_8001A608
lbl_8001A608:
/* 8001A608 00016448 3C 03 FC 00 */ addis r0, r3, 0xfc00
/* 8001A60C 0001644C 3C 60 10 00 */ lis r3, 0x1000
/* 8001A610 00016450 28 00 00 00 */ cmplwi r0, 0x0
/* 8001A614 00016454 38 63 00 11 */ addi r3, r3, 0x11
/* 8001A618 00016458 40 82 00 88 */ bne lbl_8001A6A0
/* 8001A61C 0001645C 38 60 00 11 */ li r3, 0x11
/* 8001A620 00016460 48 00 00 80 */ b lbl_8001A6A0
.global lbl_8001A624
lbl_8001A624:
/* 8001A624 00016464 3C 03 FC 00 */ addis r0, r3, 0xfc00
/* 8001A628 00016468 3C 60 10 00 */ lis r3, 0x1000
/* 8001A62C 0001646C 28 00 00 00 */ cmplwi r0, 0x0
/* 8001A630 00016470 38 63 00 12 */ addi r3, r3, 0x12
/* 8001A634 00016474 40 82 00 6C */ bne lbl_8001A6A0
/* 8001A638 00016478 38 60 00 12 */ li r3, 0x12
/* 8001A63C 0001647C 48 00 00 64 */ b lbl_8001A6A0
.global lbl_8001A640
lbl_8001A640:
/* 8001A640 00016480 3C 03 FC 00 */ addis r0, r3, 0xfc00
/* 8001A644 00016484 3C 60 10 00 */ lis r3, 0x1000
/* 8001A648 00016488 28 00 00 00 */ cmplwi r0, 0x0
/* 8001A64C 0001648C 38 63 00 20 */ addi r3, r3, 0x20
/* 8001A650 00016490 40 82 00 50 */ bne lbl_8001A6A0
/* 8001A654 00016494 38 60 00 20 */ li r3, 0x20
/* 8001A658 00016498 48 00 00 48 */ b lbl_8001A6A0
.global lbl_8001A65C
lbl_8001A65C:
/* 8001A65C 0001649C 3C 03 FC 00 */ addis r0, r3, 0xfc00
/* 8001A660 000164A0 3C 60 10 00 */ lis r3, 0x1000
/* 8001A664 000164A4 28 00 00 00 */ cmplwi r0, 0x0
/* 8001A668 000164A8 38 63 00 21 */ addi r3, r3, 0x21
/* 8001A66C 000164AC 40 82 00 34 */ bne lbl_8001A6A0
/* 8001A670 000164B0 38 60 00 21 */ li r3, 0x21
/* 8001A674 000164B4 48 00 00 2C */ b lbl_8001A6A0
.global lbl_8001A678
lbl_8001A678:
/* 8001A678 000164B8 40 81 00 20 */ ble lbl_8001A698
/* 8001A67C 000164BC 3C 03 FC 00 */ addis r0, r3, 0xfc00
/* 8001A680 000164C0 3C 60 10 00 */ lis r3, 0x1000
/* 8001A684 000164C4 28 00 00 00 */ cmplwi r0, 0x0
/* 8001A688 000164C8 38 63 00 21 */ addi r3, r3, 0x21
/* 8001A68C 000164CC 40 82 00 14 */ bne lbl_8001A6A0
/* 8001A690 000164D0 38 60 00 21 */ li r3, 0x21
/* 8001A694 000164D4 48 00 00 0C */ b lbl_8001A6A0
.global lbl_8001A698
lbl_8001A698:
2022-10-16 16:31:36 +00:00
/* 8001A698 000164D8 80 6D E3 90 */ lwz r3, BootInfo_8055C7B0@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001A69C 000164DC 80 63 00 2C */ lwz r3, 0x2c(r3)
.global lbl_8001A6A0
lbl_8001A6A0:
/* 8001A6A0 000164E0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001A6A4 000164E4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8001A6A8 000164E8 7C 08 03 A6 */ mtlr r0
/* 8001A6AC 000164EC 38 21 00 10 */ addi r1, r1, 0x10
/* 8001A6B0 000164F0 4E 80 00 20 */ blr
/* 8001A6B4 000164F4 00 00 00 00 */ .4byte 0x00000000
/* 8001A6B8 000164F8 00 00 00 00 */ .4byte 0x00000000
/* 8001A6BC 000164FC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global ClearArena
ClearArena:
2022-10-16 16:05:58 +00:00
/* 8001A6C0 00016500 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001A6C4 00016504 7C 08 02 A6 */ mflr r0
/* 8001A6C8 00016508 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001A6CC 0001650C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8001A6D0 00016510 93 C1 00 08 */ stw r30, 0x8(r1)
2022-10-16 16:31:36 +00:00
/* 8001A6D4 00016514 48 00 91 1D */ bl OSGetResetCode
2022-10-16 16:05:58 +00:00
/* 8001A6D8 00016518 54 60 0F FF */ srwi. r0, r3, 31
/* 8001A6DC 0001651C 40 82 00 4C */ bne lbl_8001A728
2022-10-16 16:31:36 +00:00
/* 8001A6E0 00016520 48 00 1C 91 */ bl OSGetMEM1ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001A6E4 00016524 7C 7F 1B 78 */ mr r31, r3
2022-10-16 16:31:36 +00:00
/* 8001A6E8 00016528 48 00 1C A9 */ bl OSGetMEM1ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A6EC 0001652C 7F E3 F8 50 */ subf r31, r3, r31
2022-10-16 16:31:36 +00:00
/* 8001A6F0 00016530 48 00 1C A1 */ bl OSGetMEM1ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A6F4 00016534 3C 00 00 04 */ lis r0, 0x4
/* 8001A6F8 00016538 7C 1F 00 40 */ cmplw r31, r0
/* 8001A6FC 0001653C 40 81 00 10 */ ble lbl_8001A70C
/* 8001A700 00016540 3F DF FF FC */ addis r30, r31, 0xfffc
/* 8001A704 00016544 7F C3 F2 14 */ add r30, r3, r30
/* 8001A708 00016548 48 00 00 08 */ b lbl_8001A710
.global lbl_8001A70C
lbl_8001A70C:
/* 8001A70C 0001654C 7C 7E 1B 78 */ mr r30, r3
.global lbl_8001A710
lbl_8001A710:
/* 8001A710 00016550 7F E4 FB 78 */ mr r4, r31
2022-10-16 16:31:36 +00:00
/* 8001A714 00016554 48 00 23 2D */ bl DCZeroRange
2022-10-16 16:05:58 +00:00
/* 8001A718 00016558 7F C3 F3 78 */ mr r3, r30
/* 8001A71C 0001655C 3C 80 00 04 */ lis r4, 0x4
2022-10-16 16:31:36 +00:00
/* 8001A720 00016560 48 00 22 61 */ bl DCFlushRange
2022-10-16 16:05:58 +00:00
/* 8001A724 00016564 48 00 01 60 */ b lbl_8001A884
.global lbl_8001A728
lbl_8001A728:
2022-10-16 16:31:36 +00:00
/* 8001A728 00016568 3F E0 80 4A */ lis r31, __OSRebootParams@ha
/* 8001A72C 0001656C 3B FF 90 A0 */ addi r31, r31, __OSRebootParams@l
2022-10-16 16:05:58 +00:00
/* 8001A730 00016570 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8001A734 00016574 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001A738 00016578 41 82 00 0C */ beq lbl_8001A744
/* 8001A73C 0001657C 54 00 00 87 */ rlwinm. r0, r0, 0, 2, 3
/* 8001A740 00016580 41 82 00 4C */ beq lbl_8001A78C
.global lbl_8001A744
lbl_8001A744:
2022-10-16 16:31:36 +00:00
/* 8001A744 00016584 48 00 1C 2D */ bl OSGetMEM1ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001A748 00016588 7C 7F 1B 78 */ mr r31, r3
2022-10-16 16:31:36 +00:00
/* 8001A74C 0001658C 48 00 1C 45 */ bl OSGetMEM1ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A750 00016590 7F E3 F8 50 */ subf r31, r3, r31
2022-10-16 16:31:36 +00:00
/* 8001A754 00016594 48 00 1C 3D */ bl OSGetMEM1ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A758 00016598 3C 00 00 04 */ lis r0, 0x4
/* 8001A75C 0001659C 7C 1F 00 40 */ cmplw r31, r0
/* 8001A760 000165A0 40 81 00 10 */ ble lbl_8001A770
/* 8001A764 000165A4 3F DF FF FC */ addis r30, r31, 0xfffc
/* 8001A768 000165A8 7F C3 F2 14 */ add r30, r3, r30
/* 8001A76C 000165AC 48 00 00 08 */ b lbl_8001A774
.global lbl_8001A770
lbl_8001A770:
/* 8001A770 000165B0 7C 7E 1B 78 */ mr r30, r3
.global lbl_8001A774
lbl_8001A774:
/* 8001A774 000165B4 7F E4 FB 78 */ mr r4, r31
2022-10-16 16:31:36 +00:00
/* 8001A778 000165B8 48 00 22 C9 */ bl DCZeroRange
2022-10-16 16:05:58 +00:00
/* 8001A77C 000165BC 7F C3 F3 78 */ mr r3, r30
/* 8001A780 000165C0 3C 80 00 04 */ lis r4, 0x4
2022-10-16 16:31:36 +00:00
/* 8001A784 000165C4 48 00 21 FD */ bl DCFlushRange
2022-10-16 16:05:58 +00:00
/* 8001A788 000165C8 48 00 00 FC */ b lbl_8001A884
.global lbl_8001A78C
lbl_8001A78C:
2022-10-16 16:31:36 +00:00
/* 8001A78C 000165CC 48 00 1C 05 */ bl OSGetMEM1ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A790 000165D0 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8001A794 000165D4 7C 03 00 40 */ cmplw r3, r0
/* 8001A798 000165D8 40 80 00 EC */ bge lbl_8001A884
2022-10-16 16:31:36 +00:00
/* 8001A79C 000165DC 48 00 1B D5 */ bl OSGetMEM1ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001A7A0 000165E0 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8001A7A4 000165E4 7C 03 00 40 */ cmplw r3, r0
/* 8001A7A8 000165E8 41 81 00 4C */ bgt lbl_8001A7F4
2022-10-16 16:31:36 +00:00
/* 8001A7AC 000165EC 48 00 1B C5 */ bl OSGetMEM1ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001A7B0 000165F0 7C 7F 1B 78 */ mr r31, r3
2022-10-16 16:31:36 +00:00
/* 8001A7B4 000165F4 48 00 1B DD */ bl OSGetMEM1ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A7B8 000165F8 7F E3 F8 50 */ subf r31, r3, r31
2022-10-16 16:31:36 +00:00
/* 8001A7BC 000165FC 48 00 1B D5 */ bl OSGetMEM1ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A7C0 00016600 3C 00 00 04 */ lis r0, 0x4
/* 8001A7C4 00016604 7C 1F 00 40 */ cmplw r31, r0
/* 8001A7C8 00016608 40 81 00 10 */ ble lbl_8001A7D8
/* 8001A7CC 0001660C 3F DF FF FC */ addis r30, r31, 0xfffc
/* 8001A7D0 00016610 7F C3 F2 14 */ add r30, r3, r30
/* 8001A7D4 00016614 48 00 00 08 */ b lbl_8001A7DC
.global lbl_8001A7D8
lbl_8001A7D8:
/* 8001A7D8 00016618 7C 7E 1B 78 */ mr r30, r3
.global lbl_8001A7DC
lbl_8001A7DC:
/* 8001A7DC 0001661C 7F E4 FB 78 */ mr r4, r31
2022-10-16 16:31:36 +00:00
/* 8001A7E0 00016620 48 00 22 61 */ bl DCZeroRange
2022-10-16 16:05:58 +00:00
/* 8001A7E4 00016624 7F C3 F3 78 */ mr r3, r30
/* 8001A7E8 00016628 3C 80 00 04 */ lis r4, 0x4
2022-10-16 16:31:36 +00:00
/* 8001A7EC 0001662C 48 00 21 95 */ bl DCFlushRange
2022-10-16 16:05:58 +00:00
/* 8001A7F0 00016630 48 00 00 94 */ b lbl_8001A884
.global lbl_8001A7F4
lbl_8001A7F4:
2022-10-16 16:31:36 +00:00
/* 8001A7F4 00016634 48 00 1B 9D */ bl OSGetMEM1ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A7F8 00016638 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8001A7FC 0001663C 7F E3 00 50 */ subf r31, r3, r0
2022-10-16 16:31:36 +00:00
/* 8001A800 00016640 48 00 1B 91 */ bl OSGetMEM1ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A804 00016644 3C 00 00 04 */ lis r0, 0x4
/* 8001A808 00016648 7C 1F 00 40 */ cmplw r31, r0
/* 8001A80C 0001664C 40 81 00 10 */ ble lbl_8001A81C
/* 8001A810 00016650 3F DF FF FC */ addis r30, r31, 0xfffc
/* 8001A814 00016654 7F C3 F2 14 */ add r30, r3, r30
/* 8001A818 00016658 48 00 00 08 */ b lbl_8001A820
.global lbl_8001A81C
lbl_8001A81C:
/* 8001A81C 0001665C 7C 7E 1B 78 */ mr r30, r3
.global lbl_8001A820
lbl_8001A820:
/* 8001A820 00016660 7F E4 FB 78 */ mr r4, r31
2022-10-16 16:31:36 +00:00
/* 8001A824 00016664 48 00 22 1D */ bl DCZeroRange
2022-10-16 16:05:58 +00:00
/* 8001A828 00016668 7F C3 F3 78 */ mr r3, r30
/* 8001A82C 0001666C 3C 80 00 04 */ lis r4, 0x4
2022-10-16 16:31:36 +00:00
/* 8001A830 00016670 48 00 21 51 */ bl DCFlushRange
/* 8001A834 00016674 3C 60 80 4A */ lis r3, __OSRebootParams@ha
/* 8001A838 00016678 38 63 90 A0 */ addi r3, r3, __OSRebootParams@l
2022-10-16 16:05:58 +00:00
/* 8001A83C 0001667C 83 E3 00 10 */ lwz r31, 0x10(r3)
2022-10-16 16:31:36 +00:00
/* 8001A840 00016680 48 00 1B 31 */ bl OSGetMEM1ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001A844 00016684 7C 03 F8 40 */ cmplw r3, r31
/* 8001A848 00016688 40 81 00 3C */ ble lbl_8001A884
2022-10-16 16:31:36 +00:00
/* 8001A84C 0001668C 48 00 1B 25 */ bl OSGetMEM1ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001A850 00016690 7C 9F 18 50 */ subf r4, r31, r3
/* 8001A854 00016694 3C 00 00 04 */ lis r0, 0x4
/* 8001A858 00016698 7C 04 00 40 */ cmplw r4, r0
/* 8001A85C 0001669C 40 81 00 10 */ ble lbl_8001A86C
/* 8001A860 000166A0 3F C4 FF FC */ addis r30, r4, 0xfffc
/* 8001A864 000166A4 7F DF F2 14 */ add r30, r31, r30
/* 8001A868 000166A8 48 00 00 08 */ b lbl_8001A870
.global lbl_8001A86C
lbl_8001A86C:
/* 8001A86C 000166AC 7F FE FB 78 */ mr r30, r31
.global lbl_8001A870
lbl_8001A870:
/* 8001A870 000166B0 7F E3 FB 78 */ mr r3, r31
2022-10-16 16:31:36 +00:00
/* 8001A874 000166B4 48 00 21 CD */ bl DCZeroRange
2022-10-16 16:05:58 +00:00
/* 8001A878 000166B8 7F C3 F3 78 */ mr r3, r30
/* 8001A87C 000166BC 3C 80 00 04 */ lis r4, 0x4
2022-10-16 16:31:36 +00:00
/* 8001A880 000166C0 48 00 21 01 */ bl DCFlushRange
2022-10-16 16:05:58 +00:00
.global lbl_8001A884
lbl_8001A884:
/* 8001A884 000166C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001A888 000166C8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8001A88C 000166CC 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 8001A890 000166D0 7C 08 03 A6 */ mtlr r0
/* 8001A894 000166D4 38 21 00 10 */ addi r1, r1, 0x10
/* 8001A898 000166D8 4E 80 00 20 */ blr
/* 8001A89C 000166DC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global ClearMEM2Arena
ClearMEM2Arena:
2022-10-16 16:05:58 +00:00
/* 8001A8A0 000166E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001A8A4 000166E4 7C 08 02 A6 */ mflr r0
/* 8001A8A8 000166E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001A8AC 000166EC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8001A8B0 000166F0 93 C1 00 08 */ stw r30, 0x8(r1)
2022-10-16 16:31:36 +00:00
/* 8001A8B4 000166F4 48 00 8F 3D */ bl OSGetResetCode
2022-10-16 16:05:58 +00:00
/* 8001A8B8 000166F8 54 60 0F FF */ srwi. r0, r3, 31
/* 8001A8BC 000166FC 40 82 00 4C */ bne lbl_8001A908
2022-10-16 16:31:36 +00:00
/* 8001A8C0 00016700 48 00 1A C1 */ bl OSGetMEM2ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001A8C4 00016704 7C 7F 1B 78 */ mr r31, r3
2022-10-16 16:31:36 +00:00
/* 8001A8C8 00016708 48 00 1A D9 */ bl OSGetMEM2ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A8CC 0001670C 7F E3 F8 50 */ subf r31, r3, r31
2022-10-16 16:31:36 +00:00
/* 8001A8D0 00016710 48 00 1A D1 */ bl OSGetMEM2ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A8D4 00016714 3C 00 00 04 */ lis r0, 0x4
/* 8001A8D8 00016718 7C 1F 00 40 */ cmplw r31, r0
/* 8001A8DC 0001671C 40 81 00 10 */ ble lbl_8001A8EC
/* 8001A8E0 00016720 3F DF FF FC */ addis r30, r31, 0xfffc
/* 8001A8E4 00016724 7F C3 F2 14 */ add r30, r3, r30
/* 8001A8E8 00016728 48 00 00 08 */ b lbl_8001A8F0
.global lbl_8001A8EC
lbl_8001A8EC:
/* 8001A8EC 0001672C 7C 7E 1B 78 */ mr r30, r3
.global lbl_8001A8F0
lbl_8001A8F0:
/* 8001A8F0 00016730 7F E4 FB 78 */ mr r4, r31
2022-10-16 16:31:36 +00:00
/* 8001A8F4 00016734 48 00 21 4D */ bl DCZeroRange
2022-10-16 16:05:58 +00:00
/* 8001A8F8 00016738 7F C3 F3 78 */ mr r3, r30
/* 8001A8FC 0001673C 3C 80 00 04 */ lis r4, 0x4
2022-10-16 16:31:36 +00:00
/* 8001A900 00016740 48 00 20 81 */ bl DCFlushRange
2022-10-16 16:05:58 +00:00
/* 8001A904 00016744 48 00 01 68 */ b lbl_8001AA6C
.global lbl_8001A908
lbl_8001A908:
2022-10-16 16:31:36 +00:00
/* 8001A908 00016748 3F E0 80 4A */ lis r31, __OSRebootParams@ha
/* 8001A90C 0001674C 3B FF 90 A0 */ addi r31, r31, __OSRebootParams@l
2022-10-16 16:05:58 +00:00
/* 8001A910 00016750 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8001A914 00016754 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001A918 00016758 41 82 00 14 */ beq lbl_8001A92C
/* 8001A91C 0001675C 54 03 00 86 */ rlwinm r3, r0, 0, 2, 3
/* 8001A920 00016760 3C 03 F0 00 */ addis r0, r3, 0xf000
/* 8001A924 00016764 28 00 00 00 */ cmplwi r0, 0x0
/* 8001A928 00016768 41 82 00 4C */ beq lbl_8001A974
.global lbl_8001A92C
lbl_8001A92C:
2022-10-16 16:31:36 +00:00
/* 8001A92C 0001676C 48 00 1A 55 */ bl OSGetMEM2ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001A930 00016770 7C 7F 1B 78 */ mr r31, r3
2022-10-16 16:31:36 +00:00
/* 8001A934 00016774 48 00 1A 6D */ bl OSGetMEM2ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A938 00016778 7F E3 F8 50 */ subf r31, r3, r31
2022-10-16 16:31:36 +00:00
/* 8001A93C 0001677C 48 00 1A 65 */ bl OSGetMEM2ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A940 00016780 3C 00 00 04 */ lis r0, 0x4
/* 8001A944 00016784 7C 1F 00 40 */ cmplw r31, r0
/* 8001A948 00016788 40 81 00 10 */ ble lbl_8001A958
/* 8001A94C 0001678C 3F DF FF FC */ addis r30, r31, 0xfffc
/* 8001A950 00016790 7F C3 F2 14 */ add r30, r3, r30
/* 8001A954 00016794 48 00 00 08 */ b lbl_8001A95C
.global lbl_8001A958
lbl_8001A958:
/* 8001A958 00016798 7C 7E 1B 78 */ mr r30, r3
.global lbl_8001A95C
lbl_8001A95C:
/* 8001A95C 0001679C 7F E4 FB 78 */ mr r4, r31
2022-10-16 16:31:36 +00:00
/* 8001A960 000167A0 48 00 20 E1 */ bl DCZeroRange
2022-10-16 16:05:58 +00:00
/* 8001A964 000167A4 7F C3 F3 78 */ mr r3, r30
/* 8001A968 000167A8 3C 80 00 04 */ lis r4, 0x4
2022-10-16 16:31:36 +00:00
/* 8001A96C 000167AC 48 00 20 15 */ bl DCFlushRange
2022-10-16 16:05:58 +00:00
/* 8001A970 000167B0 48 00 00 FC */ b lbl_8001AA6C
.global lbl_8001A974
lbl_8001A974:
2022-10-16 16:31:36 +00:00
/* 8001A974 000167B4 48 00 1A 2D */ bl OSGetMEM2ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A978 000167B8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8001A97C 000167BC 7C 03 00 40 */ cmplw r3, r0
/* 8001A980 000167C0 40 80 00 EC */ bge lbl_8001AA6C
2022-10-16 16:31:36 +00:00
/* 8001A984 000167C4 48 00 19 FD */ bl OSGetMEM2ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001A988 000167C8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8001A98C 000167CC 7C 03 00 40 */ cmplw r3, r0
/* 8001A990 000167D0 41 81 00 4C */ bgt lbl_8001A9DC
2022-10-16 16:31:36 +00:00
/* 8001A994 000167D4 48 00 19 ED */ bl OSGetMEM2ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001A998 000167D8 7C 7F 1B 78 */ mr r31, r3
2022-10-16 16:31:36 +00:00
/* 8001A99C 000167DC 48 00 1A 05 */ bl OSGetMEM2ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A9A0 000167E0 7F E3 F8 50 */ subf r31, r3, r31
2022-10-16 16:31:36 +00:00
/* 8001A9A4 000167E4 48 00 19 FD */ bl OSGetMEM2ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A9A8 000167E8 3C 00 00 04 */ lis r0, 0x4
/* 8001A9AC 000167EC 7C 1F 00 40 */ cmplw r31, r0
/* 8001A9B0 000167F0 40 81 00 10 */ ble lbl_8001A9C0
/* 8001A9B4 000167F4 3F DF FF FC */ addis r30, r31, 0xfffc
/* 8001A9B8 000167F8 7F C3 F2 14 */ add r30, r3, r30
/* 8001A9BC 000167FC 48 00 00 08 */ b lbl_8001A9C4
.global lbl_8001A9C0
lbl_8001A9C0:
/* 8001A9C0 00016800 7C 7E 1B 78 */ mr r30, r3
.global lbl_8001A9C4
lbl_8001A9C4:
/* 8001A9C4 00016804 7F E4 FB 78 */ mr r4, r31
2022-10-16 16:31:36 +00:00
/* 8001A9C8 00016808 48 00 20 79 */ bl DCZeroRange
2022-10-16 16:05:58 +00:00
/* 8001A9CC 0001680C 7F C3 F3 78 */ mr r3, r30
/* 8001A9D0 00016810 3C 80 00 04 */ lis r4, 0x4
2022-10-16 16:31:36 +00:00
/* 8001A9D4 00016814 48 00 1F AD */ bl DCFlushRange
2022-10-16 16:05:58 +00:00
/* 8001A9D8 00016818 48 00 00 94 */ b lbl_8001AA6C
.global lbl_8001A9DC
lbl_8001A9DC:
2022-10-16 16:31:36 +00:00
/* 8001A9DC 0001681C 48 00 19 C5 */ bl OSGetMEM2ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A9E0 00016820 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8001A9E4 00016824 7F E3 00 50 */ subf r31, r3, r0
2022-10-16 16:31:36 +00:00
/* 8001A9E8 00016828 48 00 19 B9 */ bl OSGetMEM2ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001A9EC 0001682C 3C 00 00 04 */ lis r0, 0x4
/* 8001A9F0 00016830 7C 1F 00 40 */ cmplw r31, r0
/* 8001A9F4 00016834 40 81 00 10 */ ble lbl_8001AA04
/* 8001A9F8 00016838 3F DF FF FC */ addis r30, r31, 0xfffc
/* 8001A9FC 0001683C 7F C3 F2 14 */ add r30, r3, r30
/* 8001AA00 00016840 48 00 00 08 */ b lbl_8001AA08
.global lbl_8001AA04
lbl_8001AA04:
/* 8001AA04 00016844 7C 7E 1B 78 */ mr r30, r3
.global lbl_8001AA08
lbl_8001AA08:
/* 8001AA08 00016848 7F E4 FB 78 */ mr r4, r31
2022-10-16 16:31:36 +00:00
/* 8001AA0C 0001684C 48 00 20 35 */ bl DCZeroRange
2022-10-16 16:05:58 +00:00
/* 8001AA10 00016850 7F C3 F3 78 */ mr r3, r30
/* 8001AA14 00016854 3C 80 00 04 */ lis r4, 0x4
2022-10-16 16:31:36 +00:00
/* 8001AA18 00016858 48 00 1F 69 */ bl DCFlushRange
/* 8001AA1C 0001685C 3C 60 80 4A */ lis r3, __OSRebootParams@ha
/* 8001AA20 00016860 38 63 90 A0 */ addi r3, r3, __OSRebootParams@l
2022-10-16 16:05:58 +00:00
/* 8001AA24 00016864 83 E3 00 10 */ lwz r31, 0x10(r3)
2022-10-16 16:31:36 +00:00
/* 8001AA28 00016868 48 00 19 59 */ bl OSGetMEM2ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001AA2C 0001686C 7C 03 F8 40 */ cmplw r3, r31
/* 8001AA30 00016870 40 81 00 3C */ ble lbl_8001AA6C
2022-10-16 16:31:36 +00:00
/* 8001AA34 00016874 48 00 19 4D */ bl OSGetMEM2ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001AA38 00016878 7C 9F 18 50 */ subf r4, r31, r3
/* 8001AA3C 0001687C 3C 00 00 04 */ lis r0, 0x4
/* 8001AA40 00016880 7C 04 00 40 */ cmplw r4, r0
/* 8001AA44 00016884 40 81 00 10 */ ble lbl_8001AA54
/* 8001AA48 00016888 3F C4 FF FC */ addis r30, r4, 0xfffc
/* 8001AA4C 0001688C 7F DF F2 14 */ add r30, r31, r30
/* 8001AA50 00016890 48 00 00 08 */ b lbl_8001AA58
.global lbl_8001AA54
lbl_8001AA54:
/* 8001AA54 00016894 7F FE FB 78 */ mr r30, r31
.global lbl_8001AA58
lbl_8001AA58:
/* 8001AA58 00016898 7F E3 FB 78 */ mr r3, r31
2022-10-16 16:31:36 +00:00
/* 8001AA5C 0001689C 48 00 1F E5 */ bl DCZeroRange
2022-10-16 16:05:58 +00:00
/* 8001AA60 000168A0 7F C3 F3 78 */ mr r3, r30
/* 8001AA64 000168A4 3C 80 00 04 */ lis r4, 0x4
2022-10-16 16:31:36 +00:00
/* 8001AA68 000168A8 48 00 1F 19 */ bl DCFlushRange
2022-10-16 16:05:58 +00:00
.global lbl_8001AA6C
lbl_8001AA6C:
/* 8001AA6C 000168AC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001AA70 000168B0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8001AA74 000168B4 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 8001AA78 000168B8 7C 08 03 A6 */ mtlr r0
/* 8001AA7C 000168BC 38 21 00 10 */ addi r1, r1, 0x10
/* 8001AA80 000168C0 4E 80 00 20 */ blr
/* 8001AA84 000168C4 00 00 00 00 */ .4byte 0x00000000
/* 8001AA88 000168C8 00 00 00 00 */ .4byte 0x00000000
/* 8001AA8C 000168CC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global InquiryCallback
InquiryCallback:
2022-10-16 16:05:58 +00:00
/* 8001AA90 000168D0 80 04 00 0C */ lwz r0, 0xc(r4)
/* 8001AA94 000168D4 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001AA98 000168D8 41 82 00 08 */ beq lbl_8001AAA0
/* 8001AA9C 000168DC 48 00 00 20 */ b lbl_8001AABC
.global lbl_8001AAA0
lbl_8001AAA0:
2022-10-16 16:31:36 +00:00
/* 8001AAA0 000168E0 3C 80 80 4A */ lis r4, DriveInfo@ha
2022-10-16 16:05:58 +00:00
/* 8001AAA4 000168E4 3C 60 80 00 */ lis r3, 0x800030E6@ha
2022-10-16 16:31:36 +00:00
/* 8001AAA8 000168E8 38 84 90 C0 */ addi r4, r4, DriveInfo@l
2022-10-16 16:05:58 +00:00
/* 8001AAAC 000168EC A0 04 00 02 */ lhz r0, 0x2(r4)
/* 8001AAB0 000168F0 60 00 80 00 */ ori r0, r0, 0x8000
/* 8001AAB4 000168F4 B0 03 30 E6 */ sth r0, 0x800030E6@l(r3)
/* 8001AAB8 000168F8 4E 80 00 20 */ blr
.global lbl_8001AABC
lbl_8001AABC:
/* 8001AABC 000168FC 3C 60 80 00 */ lis r3, 0x800030E6@ha
/* 8001AAC0 00016900 38 00 00 01 */ li r0, 0x1
/* 8001AAC4 00016904 B0 03 30 E6 */ sth r0, 0x800030E6@l(r3)
/* 8001AAC8 00016908 4E 80 00 20 */ blr
/* 8001AACC 0001690C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global ReportOSInfo
ReportOSInfo:
2022-10-16 16:05:58 +00:00
/* 8001AAD0 00016910 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001AAD4 00016914 7C 08 02 A6 */ mflr r0
/* 8001AAD8 00016918 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001AADC 0001691C 93 E1 00 0C */ stw r31, 0xc(r1)
2022-10-16 16:31:36 +00:00
/* 8001AAE0 00016920 3F E0 80 42 */ lis r31, "@1_80421DD8"@ha
/* 8001AAE4 00016924 3B FF 1D D8 */ addi r31, r31, "@1_80421DD8"@l
2022-10-16 16:05:58 +00:00
/* 8001AAE8 00016928 93 C1 00 08 */ stw r30, 0x8(r1)
/* 8001AAEC 0001692C 38 7F 00 48 */ addi r3, r31, 0x48
/* 8001AAF0 00016930 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AAF4 00016934 48 00 2E 9D */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AAF8 00016938 38 7F 00 58 */ addi r3, r31, 0x58
/* 8001AAFC 0001693C 38 9F 00 70 */ addi r4, r31, 0x70
/* 8001AB00 00016940 38 BF 00 7C */ addi r5, r31, 0x7c
/* 8001AB04 00016944 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AB08 00016948 48 00 2E 89 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AB0C 0001694C 38 7F 00 88 */ addi r3, r31, 0x88
/* 8001AB10 00016950 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AB14 00016954 48 00 2E 7D */ bl OSReport
/* 8001AB18 00016958 4B FF F9 49 */ bl OSGetConsoleType
2022-10-16 16:05:58 +00:00
/* 8001AB1C 0001695C 54 64 00 07 */ clrrwi. r4, r3, 28
/* 8001AB20 00016960 41 82 00 20 */ beq lbl_8001AB40
/* 8001AB24 00016964 3C 04 F0 00 */ addis r0, r4, 0xf000
/* 8001AB28 00016968 28 00 00 00 */ cmplwi r0, 0x0
/* 8001AB2C 0001696C 41 82 00 8C */ beq lbl_8001ABB8
/* 8001AB30 00016970 3C 04 E0 00 */ addis r0, r4, 0xe000
/* 8001AB34 00016974 28 00 00 00 */ cmplwi r0, 0x0
/* 8001AB38 00016978 41 82 01 2C */ beq lbl_8001AC64
/* 8001AB3C 0001697C 48 00 01 40 */ b lbl_8001AC7C
.global lbl_8001AB40
lbl_8001AB40:
/* 8001AB40 00016980 28 03 00 11 */ cmplwi r3, 0x11
/* 8001AB44 00016984 41 82 00 20 */ beq lbl_8001AB64
/* 8001AB48 00016988 28 03 00 12 */ cmplwi r3, 0x12
/* 8001AB4C 0001698C 41 82 00 28 */ beq lbl_8001AB74
/* 8001AB50 00016990 28 03 00 20 */ cmplwi r3, 0x20
/* 8001AB54 00016994 41 82 00 30 */ beq lbl_8001AB84
/* 8001AB58 00016998 28 03 01 00 */ cmplwi r3, 0x100
/* 8001AB5C 0001699C 41 82 00 38 */ beq lbl_8001AB94
/* 8001AB60 000169A0 48 00 00 44 */ b lbl_8001ABA4
.global lbl_8001AB64
lbl_8001AB64:
/* 8001AB64 000169A4 38 7F 00 98 */ addi r3, r31, 0x98
/* 8001AB68 000169A8 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AB6C 000169AC 48 00 2E 25 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AB70 000169B0 48 00 01 1C */ b lbl_8001AC8C
.global lbl_8001AB74
lbl_8001AB74:
/* 8001AB74 000169B4 38 7F 00 B0 */ addi r3, r31, 0xb0
/* 8001AB78 000169B8 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AB7C 000169BC 48 00 2E 15 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AB80 000169C0 48 00 01 0C */ b lbl_8001AC8C
.global lbl_8001AB84
lbl_8001AB84:
/* 8001AB84 000169C4 38 7F 00 CC */ addi r3, r31, 0xcc
/* 8001AB88 000169C8 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AB8C 000169CC 48 00 2E 05 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AB90 000169D0 48 00 00 FC */ b lbl_8001AC8C
.global lbl_8001AB94
lbl_8001AB94:
2022-10-16 16:31:36 +00:00
/* 8001AB94 000169D4 38 6D 80 6C */ addi r3, r13, "@1784"@sda21
2022-10-16 16:05:58 +00:00
/* 8001AB98 000169D8 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AB9C 000169DC 48 00 2D F5 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001ABA0 000169E0 48 00 00 EC */ b lbl_8001AC8C
.global lbl_8001ABA4
lbl_8001ABA4:
/* 8001ABA4 000169E4 7C 64 1B 78 */ mr r4, r3
/* 8001ABA8 000169E8 38 7F 00 E8 */ addi r3, r31, 0xe8
/* 8001ABAC 000169EC 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001ABB0 000169F0 48 00 2D E1 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001ABB4 000169F4 48 00 00 D8 */ b lbl_8001AC8C
.global lbl_8001ABB8
lbl_8001ABB8:
/* 8001ABB8 000169F8 3C 03 F0 00 */ addis r0, r3, 0xf000
/* 8001ABBC 000169FC 28 00 00 21 */ cmplwi r0, 0x21
/* 8001ABC0 00016A00 41 82 00 30 */ beq lbl_8001ABF0
/* 8001ABC4 00016A04 28 00 00 20 */ cmplwi r0, 0x20
/* 8001ABC8 00016A08 41 82 00 38 */ beq lbl_8001AC00
/* 8001ABCC 00016A0C 28 00 00 12 */ cmplwi r0, 0x12
/* 8001ABD0 00016A10 41 82 00 40 */ beq lbl_8001AC10
/* 8001ABD4 00016A14 28 00 00 11 */ cmplwi r0, 0x11
/* 8001ABD8 00016A18 41 82 00 48 */ beq lbl_8001AC20
/* 8001ABDC 00016A1C 28 00 00 10 */ cmplwi r0, 0x10
/* 8001ABE0 00016A20 41 82 00 50 */ beq lbl_8001AC30
/* 8001ABE4 00016A24 28 00 00 08 */ cmplwi r0, 0x8
/* 8001ABE8 00016A28 41 82 00 58 */ beq lbl_8001AC40
/* 8001ABEC 00016A2C 48 00 00 64 */ b lbl_8001AC50
.global lbl_8001ABF0
lbl_8001ABF0:
/* 8001ABF0 00016A30 38 7F 00 F4 */ addi r3, r31, 0xf4
/* 8001ABF4 00016A34 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001ABF8 00016A38 48 00 2D 99 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001ABFC 00016A3C 48 00 00 90 */ b lbl_8001AC8C
.global lbl_8001AC00
lbl_8001AC00:
/* 8001AC00 00016A40 38 7F 01 00 */ addi r3, r31, 0x100
/* 8001AC04 00016A44 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AC08 00016A48 48 00 2D 89 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AC0C 00016A4C 48 00 00 80 */ b lbl_8001AC8C
.global lbl_8001AC10
lbl_8001AC10:
/* 8001AC10 00016A50 38 7F 01 0C */ addi r3, r31, 0x10c
/* 8001AC14 00016A54 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AC18 00016A58 48 00 2D 79 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AC1C 00016A5C 48 00 00 70 */ b lbl_8001AC8C
.global lbl_8001AC20
lbl_8001AC20:
/* 8001AC20 00016A60 38 7F 01 18 */ addi r3, r31, 0x118
/* 8001AC24 00016A64 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AC28 00016A68 48 00 2D 69 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AC2C 00016A6C 48 00 00 60 */ b lbl_8001AC8C
.global lbl_8001AC30
lbl_8001AC30:
/* 8001AC30 00016A70 38 7F 01 24 */ addi r3, r31, 0x124
/* 8001AC34 00016A74 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AC38 00016A78 48 00 2D 59 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AC3C 00016A7C 48 00 00 50 */ b lbl_8001AC8C
.global lbl_8001AC40
lbl_8001AC40:
/* 8001AC40 00016A80 38 7F 01 30 */ addi r3, r31, 0x130
/* 8001AC44 00016A84 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AC48 00016A88 48 00 2D 49 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AC4C 00016A8C 48 00 00 40 */ b lbl_8001AC8C
.global lbl_8001AC50
lbl_8001AC50:
/* 8001AC50 00016A90 7C 64 1B 78 */ mr r4, r3
/* 8001AC54 00016A94 38 7F 01 48 */ addi r3, r31, 0x148
/* 8001AC58 00016A98 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AC5C 00016A9C 48 00 2D 35 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AC60 00016AA0 48 00 00 2C */ b lbl_8001AC8C
.global lbl_8001AC64
lbl_8001AC64:
/* 8001AC64 00016AA4 54 64 01 3E */ clrlwi r4, r3, 4
/* 8001AC68 00016AA8 38 7F 01 64 */ addi r3, r31, 0x164
/* 8001AC6C 00016AAC 38 84 FF FD */ addi r4, r4, -0x3
/* 8001AC70 00016AB0 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AC74 00016AB4 48 00 2D 1D */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AC78 00016AB8 48 00 00 14 */ b lbl_8001AC8C
.global lbl_8001AC7C
lbl_8001AC7C:
/* 8001AC7C 00016ABC 7C 64 1B 78 */ mr r4, r3
2022-10-16 16:31:36 +00:00
/* 8001AC80 00016AC0 38 6D 80 74 */ addi r3, r13, "@1794_80556494"@sda21
2022-10-16 16:05:58 +00:00
/* 8001AC84 00016AC4 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AC88 00016AC8 48 00 2D 09 */ bl OSReport
2022-10-16 16:05:58 +00:00
.global lbl_8001AC8C
lbl_8001AC8C:
/* 8001AC8C 00016ACC 3C 80 C0 00 */ lis r4, 0xC0003140@ha
/* 8001AC90 00016AD0 38 7F 01 80 */ addi r3, r31, 0x180
/* 8001AC94 00016AD4 80 04 31 40 */ lwz r0, 0xC0003140@l(r4)
/* 8001AC98 00016AD8 83 C4 31 44 */ lwz r30, 0x3144(r4)
/* 8001AC9C 00016ADC 54 04 86 3E */ extrwi r4, r0, 8, 8
/* 8001ACA0 00016AE0 54 05 C6 3E */ extrwi r5, r0, 8, 16
/* 8001ACA4 00016AE4 54 06 06 3E */ clrlwi r6, r0, 24
/* 8001ACA8 00016AE8 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001ACAC 00016AEC 48 00 2C E5 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001ACB0 00016AF0 57 C3 E7 3E */ extrwi r3, r30, 4, 24
/* 8001ACB4 00016AF4 57 C6 67 3E */ extrwi r6, r30, 4, 8
/* 8001ACB8 00016AF8 1C 83 00 0A */ mulli r4, r3, 0xa
/* 8001ACBC 00016AFC 57 C5 A7 3E */ extrwi r5, r30, 4, 16
/* 8001ACC0 00016B00 57 C0 07 3E */ clrlwi r0, r30, 28
/* 8001ACC4 00016B04 57 C8 87 3E */ extrwi r8, r30, 4, 12
/* 8001ACC8 00016B08 7C 80 22 14 */ add r4, r0, r4
/* 8001ACCC 00016B0C 57 C7 C7 3E */ extrwi r7, r30, 4, 20
/* 8001ACD0 00016B10 1C C6 00 0A */ mulli r6, r6, 0xa
/* 8001ACD4 00016B14 38 7F 01 9C */ addi r3, r31, 0x19c
/* 8001ACD8 00016B18 38 04 07 D0 */ addi r0, r4, 0x7d0
/* 8001ACDC 00016B1C 7C 88 32 14 */ add r4, r8, r6
/* 8001ACE0 00016B20 1C A5 00 0A */ mulli r5, r5, 0xa
/* 8001ACE4 00016B24 54 06 04 3E */ clrlwi r6, r0, 16
/* 8001ACE8 00016B28 54 84 06 3E */ clrlwi r4, r4, 24
/* 8001ACEC 00016B2C 7C 07 2A 14 */ add r0, r7, r5
/* 8001ACF0 00016B30 54 05 06 3E */ clrlwi r5, r0, 24
/* 8001ACF4 00016B34 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001ACF8 00016B38 48 00 2C 99 */ bl OSReport
/* 8001ACFC 00016B3C 48 00 76 15 */ bl OSGetConsoleSimulatedMem2Size
2022-10-16 16:05:58 +00:00
/* 8001AD00 00016B40 7C 7E 1B 78 */ mr r30, r3
2022-10-16 16:31:36 +00:00
/* 8001AD04 00016B44 48 00 75 FD */ bl OSGetConsoleSimulatedMem1Size
2022-10-16 16:05:58 +00:00
/* 8001AD08 00016B48 7C 03 F2 14 */ add r0, r3, r30
/* 8001AD0C 00016B4C 38 7F 01 A8 */ addi r3, r31, 0x1a8
/* 8001AD10 00016B50 54 04 65 3E */ srwi r4, r0, 20
/* 8001AD14 00016B54 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AD18 00016B58 48 00 2C 79 */ bl OSReport
/* 8001AD1C 00016B5C 48 00 16 55 */ bl OSGetMEM1ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001AD20 00016B60 7C 7E 1B 78 */ mr r30, r3
2022-10-16 16:31:36 +00:00
/* 8001AD24 00016B64 48 00 16 6D */ bl OSGetMEM1ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001AD28 00016B68 7C 64 1B 78 */ mr r4, r3
/* 8001AD2C 00016B6C 7F C5 F3 78 */ mr r5, r30
/* 8001AD30 00016B70 38 7F 01 B8 */ addi r3, r31, 0x1b8
/* 8001AD34 00016B74 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AD38 00016B78 48 00 2C 59 */ bl OSReport
/* 8001AD3C 00016B7C 48 00 16 45 */ bl OSGetMEM2ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001AD40 00016B80 7C 7E 1B 78 */ mr r30, r3
2022-10-16 16:31:36 +00:00
/* 8001AD44 00016B84 48 00 16 5D */ bl OSGetMEM2ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001AD48 00016B88 7C 64 1B 78 */ mr r4, r3
/* 8001AD4C 00016B8C 7F C5 F3 78 */ mr r5, r30
/* 8001AD50 00016B90 38 7F 01 D4 */ addi r3, r31, 0x1d4
/* 8001AD54 00016B94 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001AD58 00016B98 48 00 2C 39 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001AD5C 00016B9C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001AD60 00016BA0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8001AD64 00016BA4 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 8001AD68 00016BA8 7C 08 03 A6 */ mtlr r0
/* 8001AD6C 00016BAC 38 21 00 10 */ addi r1, r1, 0x10
/* 8001AD70 00016BB0 4E 80 00 20 */ blr
/* 8001AD74 00016BB4 00 00 00 00 */ .4byte 0x00000000
/* 8001AD78 00016BB8 00 00 00 00 */ .4byte 0x00000000
/* 8001AD7C 00016BBC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global OSInit
OSInit:
2022-10-16 16:05:58 +00:00
/* 8001AD80 00016BC0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8001AD84 00016BC4 7C 08 02 A6 */ mflr r0
/* 8001AD88 00016BC8 3C 60 80 58 */ lis r3, 0x80587000@ha
/* 8001AD8C 00016BCC 90 01 00 34 */ stw r0, 0x34(r1)
/* 8001AD90 00016BD0 38 63 70 00 */ addi r3, r3, 0x80587000@l
/* 8001AD94 00016BD4 93 E1 00 2C */ stw r31, 0x2c(r1)
2022-10-16 16:31:36 +00:00
/* 8001AD98 00016BD8 3F E0 80 42 */ lis r31, "@1_80421DD8"@ha
/* 8001AD9C 00016BDC 3B FF 1D D8 */ addi r31, r31, "@1_80421DD8"@l
2022-10-16 16:05:58 +00:00
/* 8001ADA0 00016BE0 93 C1 00 28 */ stw r30, 0x28(r1)
2022-10-16 16:31:36 +00:00
/* 8001ADA4 00016BE4 3F C0 80 4A */ lis r30, __OSRebootParams@ha
/* 8001ADA8 00016BE8 3B DE 90 A0 */ addi r30, r30, __OSRebootParams@l
2022-10-16 16:05:58 +00:00
/* 8001ADAC 00016BEC 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8001ADB0 00016BF0 93 81 00 20 */ stw r28, 0x20(r1)
/* 8001ADB4 00016BF4 3F 80 81 73 */ lis r28, 0x8173
2022-10-16 16:31:36 +00:00
/* 8001ADB8 00016BF8 80 0D E3 78 */ lwz r0, AreWeInitialized@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001ADBC 00016BFC 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001ADC0 00016C00 38 03 00 1F */ addi r0, r3, 0x1f
/* 8001ADC4 00016C04 54 1D 00 34 */ clrrwi r29, r0, 5
/* 8001ADC8 00016C08 40 82 04 F0 */ bne lbl_8001B2B8
/* 8001ADCC 00016C0C 38 00 00 01 */ li r0, 0x1
2022-10-16 16:31:36 +00:00
/* 8001ADD0 00016C10 90 0D E3 78 */ stw r0, AreWeInitialized@sda21(r13)
/* 8001ADD4 00016C14 48 00 AD 9D */ bl __OSGetSystemTime
2022-10-16 16:05:58 +00:00
/* 8001ADD8 00016C18 90 8D E3 9C */ stw r4, lbl_8055C7BC@sda21(r13)
2022-10-16 16:31:36 +00:00
/* 8001ADDC 00016C1C 90 6D E3 98 */ stw r3, __OSStartTime@sda21(r13)
/* 8001ADE0 00016C20 48 00 6A 41 */ bl OSDisableInterrupts
2022-10-16 16:05:58 +00:00
/* 8001ADE4 00016C24 38 7E 00 00 */ addi r3, r30, 0x0
2022-10-16 16:31:36 +00:00
/* 8001ADE8 00016C28 48 00 36 C9 */ bl __OSGetExecParams
2022-10-16 16:05:58 +00:00
/* 8001ADEC 00016C2C 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 8001ADF0 00016C30 4B FF F3 61 */ bl PPCMtmmcr0
2022-10-16 16:05:58 +00:00
/* 8001ADF4 00016C34 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 8001ADF8 00016C38 4B FF F3 69 */ bl PPCMtmmcr1
2022-10-16 16:05:58 +00:00
/* 8001ADFC 00016C3C 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 8001AE00 00016C40 4B FF F3 71 */ bl PPCMtpmc1
2022-10-16 16:05:58 +00:00
/* 8001AE04 00016C44 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 8001AE08 00016C48 4B FF F3 79 */ bl PPCMtpmc2
2022-10-16 16:05:58 +00:00
/* 8001AE0C 00016C4C 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 8001AE10 00016C50 4B FF F3 81 */ bl PPCMtpmc3
2022-10-16 16:05:58 +00:00
/* 8001AE14 00016C54 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 8001AE18 00016C58 4B FF F3 89 */ bl PPCMtpmc4
2022-10-16 16:05:58 +00:00
/* 8001AE1C 00016C5C 3C 60 83 90 */ lis r3, 0x8390
2022-10-16 16:31:36 +00:00
/* 8001AE20 00016C60 4B FF F4 51 */ bl PPCMthid4
/* 8001AE24 00016C64 4B FF F4 0D */ bl PPCDisableSpeculation
/* 8001AE28 00016C68 4B FF F4 39 */ bl PPCSetFpNonIEEEMode
2022-10-16 16:05:58 +00:00
/* 8001AE2C 00016C6C 38 00 00 00 */ li r0, 0x0
/* 8001AE30 00016C70 3C 80 80 00 */ lis r4, 0x800000F4@ha
2022-10-16 16:31:36 +00:00
/* 8001AE34 00016C74 90 8D E3 90 */ stw r4, BootInfo_8055C7B0@sda21(r13)
/* 8001AE38 00016C78 90 0D E3 8C */ stw r0, BI2DebugFlag@sda21(r13)
/* 8001AE3C 00016C7C 90 0D 81 A8 */ stw r0, __DVDLongFileNameFlag@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001AE40 00016C80 80 A4 00 F4 */ lwz r5, 0x800000F4@l(r4)
/* 8001AE44 00016C84 2C 05 00 00 */ cmpwi r5, 0x0
/* 8001AE48 00016C88 41 82 00 28 */ beq lbl_8001AE70
/* 8001AE4C 00016C8C 38 65 00 0C */ addi r3, r5, 0xc
2022-10-16 16:31:36 +00:00
/* 8001AE50 00016C90 90 6D E3 8C */ stw r3, BI2DebugFlag@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001AE54 00016C94 80 05 00 24 */ lwz r0, 0x24(r5)
2022-10-16 16:31:36 +00:00
/* 8001AE58 00016C98 90 0D E9 48 */ stw r0, __PADSpec@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001AE5C 00016C9C 80 05 00 0C */ lwz r0, 0xc(r5)
/* 8001AE60 00016CA0 98 04 30 E8 */ stb r0, 0x30e8(r4)
2022-10-16 16:31:36 +00:00
/* 8001AE64 00016CA4 80 0D E9 48 */ lwz r0, __PADSpec@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001AE68 00016CA8 98 04 30 E9 */ stb r0, 0x30e9(r4)
/* 8001AE6C 00016CAC 48 00 00 28 */ b lbl_8001AE94
.global lbl_8001AE70
lbl_8001AE70:
/* 8001AE70 00016CB0 80 04 00 34 */ lwz r0, 0x34(r4)
/* 8001AE74 00016CB4 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001AE78 00016CB8 41 82 00 1C */ beq lbl_8001AE94
/* 8001AE7C 00016CBC 88 64 30 E8 */ lbz r3, 0x30e8(r4)
2022-10-16 16:31:36 +00:00
/* 8001AE80 00016CC0 38 0D E3 88 */ addi r0, r13, BI2DebugFlagHolder@sda21
/* 8001AE84 00016CC4 90 6D E3 88 */ stw r3, BI2DebugFlagHolder@sda21(r13)
/* 8001AE88 00016CC8 90 0D E3 8C */ stw r0, BI2DebugFlag@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001AE8C 00016CCC 88 04 30 E9 */ lbz r0, 0x30e9(r4)
2022-10-16 16:31:36 +00:00
/* 8001AE90 00016CD0 90 0D E9 48 */ stw r0, __PADSpec@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_8001AE94
lbl_8001AE94:
/* 8001AE94 00016CD4 38 00 00 01 */ li r0, 0x1
2022-10-16 16:31:36 +00:00
/* 8001AE98 00016CD8 90 0D 81 A8 */ stw r0, __DVDLongFileNameFlag@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001AE9C 00016CDC 3C 80 80 00 */ lis r4, 0x8000310C@ha
/* 8001AEA0 00016CE0 80 64 31 0C */ lwz r3, 0x8000310C@l(r4)
/* 8001AEA4 00016CE4 2C 03 00 00 */ cmpwi r3, 0x0
/* 8001AEA8 00016CE8 40 82 00 60 */ bne lbl_8001AF08
/* 8001AEAC 00016CEC 57 A0 00 87 */ rlwinm. r0, r29, 0, 2, 3
/* 8001AEB0 00016CF0 40 82 00 54 */ bne lbl_8001AF04
2022-10-16 16:31:36 +00:00
/* 8001AEB4 00016CF4 80 6D E3 90 */ lwz r3, BootInfo_8055C7B0@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001AEB8 00016CF8 80 63 00 30 */ lwz r3, 0x30(r3)
/* 8001AEBC 00016CFC 2C 03 00 00 */ cmpwi r3, 0x0
/* 8001AEC0 00016D00 40 82 00 08 */ bne lbl_8001AEC8
/* 8001AEC4 00016D04 7F A3 EB 78 */ mr r3, r29
.global lbl_8001AEC8
lbl_8001AEC8:
2022-10-16 16:31:36 +00:00
/* 8001AEC8 00016D08 80 8D E3 90 */ lwz r4, BootInfo_8055C7B0@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001AECC 00016D0C 80 04 00 30 */ lwz r0, 0x30(r4)
/* 8001AED0 00016D10 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001AED4 00016D14 40 82 00 34 */ bne lbl_8001AF08
2022-10-16 16:31:36 +00:00
/* 8001AED8 00016D18 80 8D E3 8C */ lwz r4, BI2DebugFlag@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001AEDC 00016D1C 2C 04 00 00 */ cmpwi r4, 0x0
/* 8001AEE0 00016D20 41 82 00 28 */ beq lbl_8001AF08
/* 8001AEE4 00016D24 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8001AEE8 00016D28 28 00 00 02 */ cmplwi r0, 0x2
/* 8001AEEC 00016D2C 40 80 00 1C */ bge lbl_8001AF08
/* 8001AEF0 00016D30 3C 60 80 58 */ lis r3, 0x80585000@ha
/* 8001AEF4 00016D34 38 63 50 00 */ addi r3, r3, 0x80585000@l
/* 8001AEF8 00016D38 38 03 00 1F */ addi r0, r3, 0x1f
/* 8001AEFC 00016D3C 54 03 00 34 */ clrrwi r3, r0, 5
/* 8001AF00 00016D40 48 00 00 08 */ b lbl_8001AF08
.global lbl_8001AF04
lbl_8001AF04:
/* 8001AF04 00016D44 38 64 40 00 */ addi r3, r4, 0x4000
.global lbl_8001AF08
lbl_8001AF08:
2022-10-16 16:31:36 +00:00
/* 8001AF08 00016D48 48 00 14 C9 */ bl OSSetMEM1ArenaLo
2022-10-16 16:05:58 +00:00
/* 8001AF0C 00016D4C 3C 60 80 00 */ lis r3, 0x80003110@ha
/* 8001AF10 00016D50 80 63 31 10 */ lwz r3, 0x80003110@l(r3)
/* 8001AF14 00016D54 2C 03 00 00 */ cmpwi r3, 0x0
/* 8001AF18 00016D58 40 82 00 20 */ bne lbl_8001AF38
2022-10-16 16:31:36 +00:00
/* 8001AF1C 00016D5C 80 6D E3 90 */ lwz r3, BootInfo_8055C7B0@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001AF20 00016D60 80 03 00 34 */ lwz r0, 0x34(r3)
/* 8001AF24 00016D64 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001AF28 00016D68 40 82 00 08 */ bne lbl_8001AF30
/* 8001AF2C 00016D6C 48 00 00 08 */ b lbl_8001AF34
.global lbl_8001AF30
lbl_8001AF30:
/* 8001AF30 00016D70 7C 1C 03 78 */ mr r28, r0
.global lbl_8001AF34
lbl_8001AF34:
/* 8001AF34 00016D74 7F 83 E3 78 */ mr r3, r28
.global lbl_8001AF38
lbl_8001AF38:
2022-10-16 16:31:36 +00:00
/* 8001AF38 00016D78 48 00 14 79 */ bl OSSetMEM1ArenaHi
2022-10-16 16:05:58 +00:00
/* 8001AF3C 00016D7C 3C 60 80 00 */ lis r3, 0x80003124@ha
/* 8001AF40 00016D80 80 63 31 24 */ lwz r3, 0x80003124@l(r3)
/* 8001AF44 00016D84 2C 03 00 00 */ cmpwi r3, 0x0
/* 8001AF48 00016D88 41 82 00 64 */ beq lbl_8001AFAC
/* 8001AF4C 00016D8C 57 A4 00 86 */ rlwinm r4, r29, 0, 2, 3
/* 8001AF50 00016D90 3C 04 F0 00 */ addis r0, r4, 0xf000
/* 8001AF54 00016D94 28 00 00 00 */ cmplwi r0, 0x0
/* 8001AF58 00016D98 40 82 00 34 */ bne lbl_8001AF8C
2022-10-16 16:31:36 +00:00
/* 8001AF5C 00016D9C 80 8D E3 8C */ lwz r4, BI2DebugFlag@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001AF60 00016DA0 7F A3 EB 78 */ mr r3, r29
/* 8001AF64 00016DA4 2C 04 00 00 */ cmpwi r4, 0x0
/* 8001AF68 00016DA8 41 82 00 40 */ beq lbl_8001AFA8
/* 8001AF6C 00016DAC 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8001AF70 00016DB0 28 00 00 02 */ cmplwi r0, 0x2
/* 8001AF74 00016DB4 40 80 00 34 */ bge lbl_8001AFA8
/* 8001AF78 00016DB8 3C 60 80 58 */ lis r3, 0x80585000@ha
/* 8001AF7C 00016DBC 38 63 50 00 */ addi r3, r3, 0x80585000@l
/* 8001AF80 00016DC0 38 03 00 1F */ addi r0, r3, 0x1f
/* 8001AF84 00016DC4 54 03 00 34 */ clrrwi r3, r0, 5
/* 8001AF88 00016DC8 48 00 00 20 */ b lbl_8001AFA8
.global lbl_8001AF8C
lbl_8001AF8C:
/* 8001AF8C 00016DCC 3C 80 90 00 */ lis r4, 0x90000800@ha
/* 8001AF90 00016DD0 7C 03 20 40 */ cmplw r3, r4
/* 8001AF94 00016DD4 41 80 00 14 */ blt lbl_8001AFA8
/* 8001AF98 00016DD8 38 04 08 00 */ addi r0, r4, 0x90000800@l
/* 8001AF9C 00016DDC 7C 03 00 40 */ cmplw r3, r0
/* 8001AFA0 00016DE0 40 80 00 08 */ bge lbl_8001AFA8
/* 8001AFA4 00016DE4 7C 03 03 78 */ mr r3, r0
.global lbl_8001AFA8
lbl_8001AFA8:
2022-10-16 16:31:36 +00:00
/* 8001AFA8 00016DE8 48 00 14 39 */ bl OSSetMEM2ArenaLo
2022-10-16 16:05:58 +00:00
.global lbl_8001AFAC
lbl_8001AFAC:
/* 8001AFAC 00016DEC 3C 60 80 00 */ lis r3, 0x80003128@ha
/* 8001AFB0 00016DF0 80 63 31 28 */ lwz r3, 0x80003128@l(r3)
/* 8001AFB4 00016DF4 2C 03 00 00 */ cmpwi r3, 0x0
/* 8001AFB8 00016DF8 41 82 00 08 */ beq lbl_8001AFC0
2022-10-16 16:31:36 +00:00
/* 8001AFBC 00016DFC 48 00 14 05 */ bl OSSetMEM2ArenaHi
2022-10-16 16:05:58 +00:00
.global lbl_8001AFC0
lbl_8001AFC0:
2022-10-16 16:31:36 +00:00
/* 8001AFC0 00016E00 48 00 B2 21 */ bl __OSInitIPCBuffer
/* 8001AFC4 00016E04 48 00 03 1D */ bl OSExceptionInit
/* 8001AFC8 00016E08 48 00 94 79 */ bl __OSInitSystemCall
/* 8001AFCC 00016E0C 48 00 07 D5 */ bl __OSInitAlarm
/* 8001AFD0 00016E10 48 00 70 21 */ bl __OSModuleInit
/* 8001AFD4 00016E14 48 00 68 ED */ bl __OSInterruptInit
/* 8001AFD8 00016E18 48 00 28 49 */ bl __OSContextInit
/* 8001AFDC 00016E1C 48 00 1E C5 */ bl __OSCacheInit
/* 8001AFE0 00016E20 48 00 E7 81 */ bl EXIInit
/* 8001AFE4 00016E24 48 00 FC 9D */ bl SIInit
/* 8001AFE8 00016E28 48 00 89 99 */ bl __OSInitSram
/* 8001AFEC 00016E2C 48 00 94 C5 */ bl __OSThreadInit
/* 8001AFF0 00016E30 48 00 16 A1 */ bl __OSInitAudioSystem
/* 8001AFF4 00016E34 4B FF F2 0D */ bl PPCMfhid2
2022-10-16 16:05:58 +00:00
/* 8001AFF8 00016E38 54 63 00 80 */ rlwinm r3, r3, 0, 2, 0
2022-10-16 16:31:36 +00:00
/* 8001AFFC 00016E3C 4B FF F2 15 */ bl PPCMthid2
/* 8001B000 00016E40 80 0D E3 58 */ lwz r0, __OSInIPL@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B004 00016E44 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B008 00016E48 40 82 00 08 */ bne lbl_8001B010
2022-10-16 16:31:36 +00:00
/* 8001B00C 00016E4C 48 00 7A 85 */ bl __OSInitMemoryProtection
2022-10-16 16:05:58 +00:00
.global lbl_8001B010
lbl_8001B010:
2022-10-16 16:31:36 +00:00
/* 8001B010 00016E50 4B FF FA C1 */ bl ReportOSInfo
/* 8001B014 00016E54 80 8D 80 68 */ lwz r4, __OSVersion@sda21(r13)
/* 8001B018 00016E58 38 6D 80 7C */ addi r3, r13, "@1847_8055649C"@sda21
2022-10-16 16:05:58 +00:00
/* 8001B01C 00016E5C 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001B020 00016E60 48 00 29 71 */ bl OSReport
/* 8001B024 00016E64 80 6D E3 8C */ lwz r3, BI2DebugFlag@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B028 00016E68 2C 03 00 00 */ cmpwi r3, 0x0
/* 8001B02C 00016E6C 41 82 00 14 */ beq lbl_8001B040
/* 8001B030 00016E70 80 03 00 00 */ lwz r0, 0x0(r3)
/* 8001B034 00016E74 28 00 00 02 */ cmplwi r0, 0x2
/* 8001B038 00016E78 41 80 00 08 */ blt lbl_8001B040
2022-10-16 16:31:36 +00:00
/* 8001B03C 00016E7C 4B FF AB 05 */ bl EnableMetroTRKInterrupts
2022-10-16 16:05:58 +00:00
.global lbl_8001B040
lbl_8001B040:
2022-10-16 16:31:36 +00:00
/* 8001B040 00016E80 80 0D E3 5C */ lwz r0, __OSInNandBoot@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B044 00016E84 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B048 00016E88 40 82 00 18 */ bne lbl_8001B060
2022-10-16 16:31:36 +00:00
/* 8001B04C 00016E8C 80 0D E3 CC */ lwz r0, __OSInReboot@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B050 00016E90 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B054 00016E94 40 82 00 0C */ bne lbl_8001B060
2022-10-16 16:31:36 +00:00
/* 8001B058 00016E98 4B FF F6 69 */ bl ClearArena
/* 8001B05C 00016E9C 4B FF F8 45 */ bl ClearMEM2Arena
2022-10-16 16:05:58 +00:00
.global lbl_8001B060
lbl_8001B060:
2022-10-16 16:31:36 +00:00
/* 8001B060 00016EA0 48 00 67 E1 */ bl OSEnableInterrupts
/* 8001B064 00016EA4 48 03 3C 0D */ bl IPCCltInit
/* 8001B068 00016EA8 80 0D E3 5C */ lwz r0, __OSInNandBoot@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B06C 00016EAC 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B070 00016EB0 40 82 00 28 */ bne lbl_8001B098
2022-10-16 16:31:36 +00:00
/* 8001B074 00016EB4 80 0D E3 CC */ lwz r0, __OSInReboot@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B078 00016EB8 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B07C 00016EBC 40 82 00 1C */ bne lbl_8001B098
2022-10-16 16:31:36 +00:00
/* 8001B080 00016EC0 48 00 B3 61 */ bl __OSInitSTM
/* 8001B084 00016EC4 48 03 03 AD */ bl SCInit
2022-10-16 16:05:58 +00:00
.global lbl_8001B088
lbl_8001B088:
2022-10-16 16:31:36 +00:00
/* 8001B088 00016EC8 48 03 04 49 */ bl SCCheckStatus
2022-10-16 16:05:58 +00:00
/* 8001B08C 00016ECC 28 03 00 01 */ cmplwi r3, 0x1
/* 8001B090 00016ED0 41 82 FF F8 */ beq lbl_8001B088
2022-10-16 16:31:36 +00:00
/* 8001B094 00016ED4 48 00 C1 BD */ bl __OSInitNet
2022-10-16 16:05:58 +00:00
.global lbl_8001B098
lbl_8001B098:
2022-10-16 16:31:36 +00:00
/* 8001B098 00016ED8 80 0D E3 58 */ lwz r0, __OSInIPL@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B09C 00016EDC 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B0A0 00016EE0 40 82 01 D4 */ bne lbl_8001B274
/* 8001B0A4 00016EE4 3C 60 80 00 */ lis r3, 0x8000315C@ha
/* 8001B0A8 00016EE8 88 03 31 5C */ lbz r0, 0x8000315C@l(r3)
/* 8001B0AC 00016EEC 2C 00 00 81 */ cmpwi r0, 0x81
/* 8001B0B0 00016EF0 41 82 00 0C */ beq lbl_8001B0BC
/* 8001B0B4 00016EF4 40 80 00 28 */ bge lbl_8001B0DC
/* 8001B0B8 00016EF8 48 00 00 24 */ b lbl_8001B0DC
.global lbl_8001B0BC
lbl_8001B0BC:
/* 8001B0BC 00016EFC 38 7F 01 F0 */ addi r3, r31, 0x1f0
/* 8001B0C0 00016F00 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001B0C4 00016F04 48 00 28 CD */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001B0C8 00016F08 38 BF 02 40 */ addi r5, r31, 0x240
2022-10-16 16:31:36 +00:00
/* 8001B0CC 00016F0C 38 6D 80 80 */ addi r3, r13, "@1849_805564A0"@sda21
2022-10-16 16:05:58 +00:00
/* 8001B0D0 00016F10 38 80 04 88 */ li r4, 0x488
/* 8001B0D4 00016F14 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001B0D8 00016F18 48 16 F7 19 */ bl OSPanic
2022-10-16 16:05:58 +00:00
.global lbl_8001B0DC
lbl_8001B0DC:
/* 8001B0DC 00016F1C 3C 60 80 00 */ lis r3, 0x8000315D@ha
/* 8001B0E0 00016F20 88 03 31 5D */ lbz r0, 0x8000315D@l(r3)
/* 8001B0E4 00016F24 2C 00 00 81 */ cmpwi r0, 0x81
/* 8001B0E8 00016F28 41 82 00 0C */ beq lbl_8001B0F4
/* 8001B0EC 00016F2C 40 80 00 28 */ bge lbl_8001B114
/* 8001B0F0 00016F30 48 00 00 24 */ b lbl_8001B114
.global lbl_8001B0F4
lbl_8001B0F4:
/* 8001B0F4 00016F34 38 7F 02 58 */ addi r3, r31, 0x258
/* 8001B0F8 00016F38 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001B0FC 00016F3C 48 00 28 95 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001B100 00016F40 38 BF 02 40 */ addi r5, r31, 0x240
2022-10-16 16:31:36 +00:00
/* 8001B104 00016F44 38 6D 80 80 */ addi r3, r13, "@1849_805564A0"@sda21
2022-10-16 16:05:58 +00:00
/* 8001B108 00016F48 38 80 04 9A */ li r4, 0x49a
/* 8001B10C 00016F4C 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001B110 00016F50 48 16 F6 E1 */ bl OSPanic
2022-10-16 16:05:58 +00:00
.global lbl_8001B114
lbl_8001B114:
/* 8001B114 00016F54 3C 80 C0 00 */ lis r4, 0xC0003144@ha
/* 8001B118 00016F58 3C 60 80 00 */ lis r3, 0x80003188@ha
/* 8001B11C 00016F5C 81 84 31 44 */ lwz r12, 0xC0003144@l(r4)
/* 8001B120 00016F60 81 64 31 40 */ lwz r11, 0x3140(r4)
/* 8001B124 00016F64 55 80 E7 3E */ extrwi r0, r12, 4, 24
/* 8001B128 00016F68 55 87 67 3E */ extrwi r7, r12, 4, 8
/* 8001B12C 00016F6C 1C A0 00 0A */ mulli r5, r0, 0xa
/* 8001B130 00016F70 80 63 31 88 */ lwz r3, 0x80003188@l(r3)
/* 8001B134 00016F74 55 84 07 3E */ clrlwi r4, r12, 28
2022-10-16 16:31:36 +00:00
/* 8001B138 00016F78 83 82 85 48 */ lwz r28, "@1010"@sda21(r2)
2022-10-16 16:05:58 +00:00
/* 8001B13C 00016F7C 55 68 86 3E */ extrwi r8, r11, 8, 8
/* 8001B140 00016F80 99 01 00 11 */ stb r8, 0x11(r1)
/* 8001B144 00016F84 54 60 84 3E */ srwi r0, r3, 16
/* 8001B148 00016F88 7C 84 2A 14 */ add r4, r4, r5
/* 8001B14C 00016F8C 7C 08 00 40 */ cmplw r8, r0
/* 8001B150 00016F90 55 86 A7 3E */ extrwi r6, r12, 4, 16
/* 8001B154 00016F94 38 04 07 D0 */ addi r0, r4, 0x7d0
/* 8001B158 00016F98 55 88 87 3E */ extrwi r8, r12, 4, 12
/* 8001B15C 00016F9C 55 6A 46 3E */ srwi r10, r11, 24
/* 8001B160 00016FA0 55 69 C6 3E */ extrwi r9, r11, 8, 16
/* 8001B164 00016FA4 99 41 00 10 */ stb r10, 0x10(r1)
/* 8001B168 00016FA8 1C E7 00 0A */ mulli r7, r7, 0xa
/* 8001B16C 00016FAC 55 85 C7 3E */ extrwi r5, r12, 4, 20
2022-10-16 16:31:36 +00:00
/* 8001B170 00016FB0 83 A2 85 4C */ lwz r29, "@1012"@sda21(r2)
2022-10-16 16:05:58 +00:00
/* 8001B174 00016FB4 99 21 00 12 */ stb r9, 0x12(r1)
/* 8001B178 00016FB8 55 6A 02 3E */ clrlwi r10, r11, 8
/* 8001B17C 00016FBC 1C 86 00 0A */ mulli r4, r6, 0xa
/* 8001B180 00016FC0 7C C8 3A 14 */ add r6, r8, r7
/* 8001B184 00016FC4 99 61 00 13 */ stb r11, 0x13(r1)
/* 8001B188 00016FC8 7C 85 22 14 */ add r4, r5, r4
/* 8001B18C 00016FCC 98 C1 00 14 */ stb r6, 0x14(r1)
/* 8001B190 00016FD0 98 81 00 15 */ stb r4, 0x15(r1)
/* 8001B194 00016FD4 B0 01 00 16 */ sth r0, 0x16(r1)
/* 8001B198 00016FD8 40 82 00 10 */ bne lbl_8001B1A8
/* 8001B19C 00016FDC 40 82 00 44 */ bne lbl_8001B1E0
/* 8001B1A0 00016FE0 7C 0A 18 40 */ cmplw r10, r3
/* 8001B1A4 00016FE4 40 80 00 3C */ bge lbl_8001B1E0
.global lbl_8001B1A8
lbl_8001B1A8:
/* 8001B1A8 00016FE8 38 7F 02 B0 */ addi r3, r31, 0x2b0
/* 8001B1AC 00016FEC 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001B1B0 00016FF0 48 00 27 E1 */ bl OSReport
2022-10-16 16:05:58 +00:00
/* 8001B1B4 00016FF4 93 81 00 0C */ stw r28, 0xc(r1)
/* 8001B1B8 00016FF8 38 81 00 0C */ addi r4, r1, 0xc
/* 8001B1BC 00016FFC 38 61 00 08 */ addi r3, r1, 0x8
/* 8001B1C0 00017000 38 BF 03 10 */ addi r5, r31, 0x310
/* 8001B1C4 00017004 93 A1 00 08 */ stw r29, 0x8(r1)
2022-10-16 16:31:36 +00:00
/* 8001B1C8 00017008 48 00 4A E9 */ bl OSFatal
2022-10-16 16:05:58 +00:00
/* 8001B1CC 0001700C 38 BF 02 40 */ addi r5, r31, 0x240
2022-10-16 16:31:36 +00:00
/* 8001B1D0 00017010 38 6D 80 80 */ addi r3, r13, "@1849_805564A0"@sda21
2022-10-16 16:05:58 +00:00
/* 8001B1D4 00017014 38 80 04 DB */ li r4, 0x4db
/* 8001B1D8 00017018 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001B1DC 0001701C 48 16 F6 15 */ bl OSPanic
2022-10-16 16:05:58 +00:00
.global lbl_8001B1E0
lbl_8001B1E0:
2022-10-16 16:31:36 +00:00
/* 8001B1E0 00017020 48 01 F0 31 */ bl DVDInit
/* 8001B1E4 00017024 80 0D E3 60 */ lwz r0, __OSIsGcam@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B1E8 00017028 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B1EC 0001702C 41 82 00 18 */ beq lbl_8001B204
/* 8001B1F0 00017030 3C 80 00 01 */ lis r4, 0x1
/* 8001B1F4 00017034 3C 60 80 00 */ lis r3, 0x800030E6@ha
/* 8001B1F8 00017038 38 04 90 00 */ addi r0, r4, -0x7000
/* 8001B1FC 0001703C B0 03 30 E6 */ sth r0, 0x800030E6@l(r3)
/* 8001B200 00017040 48 00 00 34 */ b lbl_8001B234
.global lbl_8001B204
lbl_8001B204:
/* 8001B204 00017044 3C 60 80 00 */ lis r3, 0x800030E6@ha
/* 8001B208 00017048 A0 03 30 E6 */ lhz r0, 0x800030E6@l(r3)
/* 8001B20C 0001704C 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B210 00017050 40 82 00 24 */ bne lbl_8001B234
/* 8001B214 00017054 38 7E 00 20 */ addi r3, r30, 0x20
/* 8001B218 00017058 38 80 00 20 */ li r4, 0x20
2022-10-16 16:31:36 +00:00
/* 8001B21C 0001705C 48 00 17 35 */ bl DCInvalidateRange
/* 8001B220 00017060 3C A0 80 02 */ lis r5, InquiryCallback@ha
2022-10-16 16:05:58 +00:00
/* 8001B224 00017064 38 7E 00 40 */ addi r3, r30, 0x40
/* 8001B228 00017068 38 9E 00 20 */ addi r4, r30, 0x20
2022-10-16 16:31:36 +00:00
/* 8001B22C 0001706C 38 A5 AA 90 */ addi r5, r5, InquiryCallback@l
/* 8001B230 00017070 48 02 30 61 */ bl DVDInquiryAsync
2022-10-16 16:05:58 +00:00
.global lbl_8001B234
lbl_8001B234:
2022-10-16 16:31:36 +00:00
/* 8001B234 00017074 80 0D E3 58 */ lwz r0, __OSInIPL@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B238 00017078 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B23C 0001707C 41 82 00 0C */ beq lbl_8001B248
/* 8001B240 00017080 38 00 00 40 */ li r0, 0x40
/* 8001B244 00017084 48 00 00 0C */ b lbl_8001B250
.global lbl_8001B248
lbl_8001B248:
/* 8001B248 00017088 3C 60 80 00 */ lis r3, 0x80003184@ha
/* 8001B24C 0001708C 88 03 31 84 */ lbz r0, 0x80003184@l(r3)
.global lbl_8001B250
lbl_8001B250:
/* 8001B250 00017090 28 00 00 80 */ cmplwi r0, 0x80
/* 8001B254 00017094 40 82 00 20 */ bne lbl_8001B274
2022-10-16 16:31:36 +00:00
/* 8001B258 00017098 80 0D E3 CC */ lwz r0, __OSInReboot@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B25C 0001709C 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B260 000170A0 40 82 00 14 */ bne lbl_8001B274
2022-10-16 16:31:36 +00:00
/* 8001B264 000170A4 48 02 4C FD */ bl __DVDCheckDevice
2022-10-16 16:05:58 +00:00
/* 8001B268 000170A8 2C 03 00 00 */ cmpwi r3, 0x0
/* 8001B26C 000170AC 40 82 00 08 */ bne lbl_8001B274
2022-10-16 16:31:36 +00:00
/* 8001B270 000170B0 48 00 83 F1 */ bl OSReturnToMenu
2022-10-16 16:05:58 +00:00
.global lbl_8001B274
lbl_8001B274:
2022-10-16 16:31:36 +00:00
/* 8001B274 000170B4 80 0D E3 58 */ lwz r0, __OSInIPL@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B278 000170B8 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B27C 000170BC 40 82 00 14 */ bne lbl_8001B290
2022-10-16 16:31:36 +00:00
/* 8001B280 000170C0 80 0D E3 5C */ lwz r0, __OSInNandBoot@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B284 000170C4 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B288 000170C8 40 82 00 08 */ bne lbl_8001B290
2022-10-16 16:31:36 +00:00
/* 8001B28C 000170CC 48 00 CD F5 */ bl __OSInitPlayTime
2022-10-16 16:05:58 +00:00
.global lbl_8001B290
lbl_8001B290:
2022-10-16 16:31:36 +00:00
/* 8001B290 000170D0 80 0D E3 58 */ lwz r0, __OSInIPL@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B294 000170D4 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B298 000170D8 40 82 00 20 */ bne lbl_8001B2B8
2022-10-16 16:31:36 +00:00
/* 8001B29C 000170DC 80 0D E3 5C */ lwz r0, __OSInNandBoot@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B2A0 000170E0 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B2A4 000170E4 40 82 00 14 */ bne lbl_8001B2B8
2022-10-16 16:31:36 +00:00
/* 8001B2A8 000170E8 80 0D E3 CC */ lwz r0, __OSInReboot@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B2AC 000170EC 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B2B0 000170F0 40 82 00 08 */ bne lbl_8001B2B8
2022-10-16 16:31:36 +00:00
/* 8001B2B4 000170F4 48 00 BB 2D */ bl __OSStartPlayRecord
2022-10-16 16:05:58 +00:00
.global lbl_8001B2B8
lbl_8001B2B8:
/* 8001B2B8 000170F8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8001B2BC 000170FC 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8001B2C0 00017100 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8001B2C4 00017104 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8001B2C8 00017108 83 81 00 20 */ lwz r28, 0x20(r1)
/* 8001B2CC 0001710C 7C 08 03 A6 */ mtlr r0
/* 8001B2D0 00017110 38 21 00 30 */ addi r1, r1, 0x30
/* 8001B2D4 00017114 4E 80 00 20 */ blr
/* 8001B2D8 00017118 00 00 00 00 */ .4byte 0x00000000
/* 8001B2DC 0001711C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global OSExceptionInit
OSExceptionInit:
2022-10-16 16:05:58 +00:00
/* 8001B2E0 00017120 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8001B2E4 00017124 7C 08 02 A6 */ mflr r0
/* 8001B2E8 00017128 90 01 00 34 */ stw r0, 0x34(r1)
/* 8001B2EC 0001712C 39 61 00 30 */ addi r11, r1, 0x30
/* 8001B2F0 00017130 4B FE C0 39 */ bl lbl_80007328
/* 8001B2F4 00017134 3F 00 80 00 */ lis r24, 0x80000060@ha
2022-10-16 16:31:36 +00:00
/* 8001B2F8 00017138 3F 80 80 02 */ lis r28, OSExceptionVector@ha
2022-10-16 16:05:58 +00:00
/* 8001B2FC 0001713C 80 18 00 60 */ lwz r0, 0x80000060@l(r24)
/* 8001B300 00017140 3C 60 80 02 */ lis r3, lbl_8001B608@ha
/* 8001B304 00017144 3F C0 80 02 */ lis r30, lbl_8001B5D8@ha
/* 8001B308 00017148 87 BE B5 D8 */ lwzu r29, lbl_8001B5D8@l(r30)
/* 8001B30C 0001714C 2C 00 00 00 */ cmpwi r0, 0x0
2022-10-16 16:31:36 +00:00
/* 8001B310 00017150 3B 9C B5 70 */ addi r28, r28, OSExceptionVector@l
2022-10-16 16:05:58 +00:00
/* 8001B314 00017154 38 63 B6 08 */ addi r3, r3, lbl_8001B608@l
/* 8001B318 00017158 7F 7C 18 50 */ subf r27, r28, r3
/* 8001B31C 0001715C 40 82 00 40 */ bne lbl_8001B35C
2022-10-16 16:31:36 +00:00
/* 8001B320 00017160 3C 80 80 02 */ lis r4, __OSDBIntegrator@ha
2022-10-16 16:05:58 +00:00
/* 8001B324 00017164 3C A0 80 02 */ lis r5, lbl_8001B524@ha
2022-10-16 16:31:36 +00:00
/* 8001B328 00017168 38 84 B5 00 */ addi r4, r4, __OSDBIntegrator@l
2022-10-16 16:05:58 +00:00
/* 8001B32C 0001716C 38 78 00 60 */ addi r3, r24, 0x60
/* 8001B330 00017170 38 A5 B5 24 */ addi r5, r5, lbl_8001B524@l
/* 8001B334 00017174 7E E4 28 50 */ subf r23, r4, r5
/* 8001B338 00017178 7E E5 BB 78 */ mr r5, r23
2022-10-16 16:31:36 +00:00
/* 8001B33C 0001717C 4B FE 8C C5 */ bl memcpy
2022-10-16 16:05:58 +00:00
/* 8001B340 00017180 7E E4 BB 78 */ mr r4, r23
/* 8001B344 00017184 38 78 00 60 */ addi r3, r24, 0x60
2022-10-16 16:31:36 +00:00
/* 8001B348 00017188 48 00 16 99 */ bl DCFlushRangeNoSync
2022-10-16 16:05:58 +00:00
/* 8001B34C 0001718C 7C 00 04 AC */ sync
/* 8001B350 00017190 7E E4 BB 78 */ mr r4, r23
/* 8001B354 00017194 38 78 00 60 */ addi r3, r24, 0x60
2022-10-16 16:31:36 +00:00
/* 8001B358 00017198 48 00 17 19 */ bl ICInvalidateRange
2022-10-16 16:05:58 +00:00
.global lbl_8001B35C
lbl_8001B35C:
2022-10-16 16:31:36 +00:00
/* 8001B35C 0001719C 3C 80 80 02 */ lis r4, __OSDBJump@ha
2022-10-16 16:05:58 +00:00
/* 8001B360 000171A0 3C 60 80 02 */ lis r3, lbl_8001B534@ha
2022-10-16 16:31:36 +00:00
/* 8001B364 000171A4 3F 40 80 42 */ lis r26, __OSExceptionLocations@ha
2022-10-16 16:05:58 +00:00
/* 8001B368 000171A8 3B E0 00 00 */ li r31, 0x0
2022-10-16 16:31:36 +00:00
/* 8001B36C 000171AC 38 84 B5 30 */ addi r4, r4, __OSDBJump@l
2022-10-16 16:05:58 +00:00
/* 8001B370 000171B0 38 63 B5 34 */ addi r3, r3, lbl_8001B534@l
/* 8001B374 000171B4 7E E4 18 50 */ subf r23, r4, r3
2022-10-16 16:31:36 +00:00
/* 8001B378 000171B8 3B 5A 21 A8 */ addi r26, r26, __OSExceptionLocations@l
2022-10-16 16:05:58 +00:00
/* 8001B37C 000171BC 3F 20 60 00 */ lis r25, 0x6000
/* 8001B380 000171C0 3F 00 80 02 */ lis r24, lbl_8001B5C8@ha
.global lbl_8001B384
lbl_8001B384:
2022-10-16 16:31:36 +00:00
/* 8001B384 000171C4 80 6D E3 8C */ lwz r3, BI2DebugFlag@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B388 000171C8 2C 03 00 00 */ cmpwi r3, 0x0
/* 8001B38C 000171CC 41 82 00 10 */ beq lbl_8001B39C
/* 8001B390 000171D0 80 03 00 00 */ lwz r0, 0x0(r3)
/* 8001B394 000171D4 28 00 00 02 */ cmplwi r0, 0x2
/* 8001B398 000171D8 40 80 00 AC */ bge lbl_8001B444
.global lbl_8001B39C
lbl_8001B39C:
/* 8001B39C 000171DC 57 E0 06 3E */ clrlwi r0, r31, 24
/* 8001B3A0 000171E0 28 17 00 00 */ cmplwi r23, 0x0
/* 8001B3A4 000171E4 7F A0 03 78 */ or r0, r29, r0
/* 8001B3A8 000171E8 38 77 00 03 */ addi r3, r23, 0x3
/* 8001B3AC 000171EC 90 1E 00 00 */ stw r0, 0x0(r30)
/* 8001B3B0 000171F0 38 98 B5 C8 */ addi r4, r24, lbl_8001B5C8@l
/* 8001B3B4 000171F4 54 63 F0 BE */ srwi r3, r3, 2
/* 8001B3B8 000171F8 40 81 00 54 */ ble lbl_8001B40C
/* 8001B3BC 000171FC 54 60 E8 FF */ srwi. r0, r3, 3
/* 8001B3C0 00017200 7C 09 03 A6 */ mtctr r0
/* 8001B3C4 00017204 41 82 00 34 */ beq lbl_8001B3F8
.global lbl_8001B3C8
lbl_8001B3C8:
/* 8001B3C8 00017208 93 24 00 00 */ stw r25, 0x0(r4)
/* 8001B3CC 0001720C 93 24 00 04 */ stw r25, 0x4(r4)
/* 8001B3D0 00017210 93 24 00 08 */ stw r25, 0x8(r4)
/* 8001B3D4 00017214 93 24 00 0C */ stw r25, 0xc(r4)
/* 8001B3D8 00017218 93 24 00 10 */ stw r25, 0x10(r4)
/* 8001B3DC 0001721C 93 24 00 14 */ stw r25, 0x14(r4)
/* 8001B3E0 00017220 93 24 00 18 */ stw r25, 0x18(r4)
/* 8001B3E4 00017224 93 24 00 1C */ stw r25, 0x1c(r4)
/* 8001B3E8 00017228 38 84 00 20 */ addi r4, r4, 0x20
/* 8001B3EC 0001722C 42 00 FF DC */ bdnz lbl_8001B3C8
/* 8001B3F0 00017230 70 63 00 07 */ andi. r3, r3, 0x7
/* 8001B3F4 00017234 41 82 00 18 */ beq lbl_8001B40C
.global lbl_8001B3F8
lbl_8001B3F8:
/* 8001B3F8 00017238 7C 69 03 A6 */ mtctr r3
/* 8001B3FC 0001723C 60 00 00 00 */ nop
.global lbl_8001B400
lbl_8001B400:
/* 8001B400 00017240 93 24 00 00 */ stw r25, 0x0(r4)
/* 8001B404 00017244 38 84 00 04 */ addi r4, r4, 0x4
/* 8001B408 00017248 42 00 FF F8 */ bdnz lbl_8001B400
.global lbl_8001B40C
lbl_8001B40C:
/* 8001B40C 0001724C 57 E0 15 BA */ rlwinm r0, r31, 2, 22, 29
/* 8001B410 00017250 7F 84 E3 78 */ mr r4, r28
/* 8001B414 00017254 7C 7A 00 2E */ lwzx r3, r26, r0
/* 8001B418 00017258 7F 65 DB 78 */ mr r5, r27
/* 8001B41C 0001725C 3E C3 80 00 */ addis r22, r3, 0x8000
/* 8001B420 00017260 7E C3 B3 78 */ mr r3, r22
2022-10-16 16:31:36 +00:00
/* 8001B424 00017264 4B FE 8B DD */ bl memcpy
2022-10-16 16:05:58 +00:00
/* 8001B428 00017268 7E C3 B3 78 */ mr r3, r22
/* 8001B42C 0001726C 7F 64 DB 78 */ mr r4, r27
2022-10-16 16:31:36 +00:00
/* 8001B430 00017270 48 00 15 B1 */ bl DCFlushRangeNoSync
2022-10-16 16:05:58 +00:00
/* 8001B434 00017274 7C 00 04 AC */ sync
/* 8001B438 00017278 7E C3 B3 78 */ mr r3, r22
/* 8001B43C 0001727C 7F 64 DB 78 */ mr r4, r27
2022-10-16 16:31:36 +00:00
/* 8001B440 00017280 48 00 16 31 */ bl ICInvalidateRange
2022-10-16 16:05:58 +00:00
.global lbl_8001B444
lbl_8001B444:
/* 8001B444 00017284 3B FF 00 01 */ addi r31, r31, 0x1
/* 8001B448 00017288 28 1F 00 0F */ cmplwi r31, 0xf
/* 8001B44C 0001728C 41 80 FF 38 */ blt lbl_8001B384
/* 8001B450 00017290 3C 60 80 00 */ lis r3, 0x80003000@ha
2022-10-16 16:31:36 +00:00
/* 8001B454 00017294 3C 80 80 02 */ lis r4, OSDefaultExceptionHandler@ha
2022-10-16 16:05:58 +00:00
/* 8001B458 00017298 38 63 30 00 */ addi r3, r3, 0x80003000@l
2022-10-16 16:31:36 +00:00
/* 8001B45C 0001729C 90 6D E3 7C */ stw r3, OSExceptionTable@sda21(r13)
/* 8001B460 000172A0 38 84 B6 10 */ addi r4, r4, OSDefaultExceptionHandler@l
2022-10-16 16:05:58 +00:00
/* 8001B464 000172A4 39 61 00 30 */ addi r11, r1, 0x30
/* 8001B468 000172A8 90 83 00 00 */ stw r4, 0x0(r3)
2022-10-16 16:31:36 +00:00
/* 8001B46C 000172AC 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B470 000172B0 90 83 00 04 */ stw r4, 0x4(r3)
2022-10-16 16:31:36 +00:00
/* 8001B474 000172B4 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B478 000172B8 90 83 00 08 */ stw r4, 0x8(r3)
2022-10-16 16:31:36 +00:00
/* 8001B47C 000172BC 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B480 000172C0 90 83 00 0C */ stw r4, 0xc(r3)
2022-10-16 16:31:36 +00:00
/* 8001B484 000172C4 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B488 000172C8 90 83 00 10 */ stw r4, 0x10(r3)
2022-10-16 16:31:36 +00:00
/* 8001B48C 000172CC 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B490 000172D0 90 83 00 14 */ stw r4, 0x14(r3)
2022-10-16 16:31:36 +00:00
/* 8001B494 000172D4 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B498 000172D8 90 83 00 18 */ stw r4, 0x18(r3)
2022-10-16 16:31:36 +00:00
/* 8001B49C 000172DC 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B4A0 000172E0 90 83 00 1C */ stw r4, 0x1c(r3)
2022-10-16 16:31:36 +00:00
/* 8001B4A4 000172E4 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B4A8 000172E8 90 83 00 20 */ stw r4, 0x20(r3)
2022-10-16 16:31:36 +00:00
/* 8001B4AC 000172EC 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B4B0 000172F0 90 83 00 24 */ stw r4, 0x24(r3)
2022-10-16 16:31:36 +00:00
/* 8001B4B4 000172F4 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B4B8 000172F8 90 83 00 28 */ stw r4, 0x28(r3)
2022-10-16 16:31:36 +00:00
/* 8001B4BC 000172FC 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B4C0 00017300 90 83 00 2C */ stw r4, 0x2c(r3)
2022-10-16 16:31:36 +00:00
/* 8001B4C4 00017304 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B4C8 00017308 90 83 00 30 */ stw r4, 0x30(r3)
2022-10-16 16:31:36 +00:00
/* 8001B4CC 0001730C 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B4D0 00017310 90 83 00 34 */ stw r4, 0x34(r3)
2022-10-16 16:31:36 +00:00
/* 8001B4D4 00017314 80 6D E3 7C */ lwz r3, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B4D8 00017318 90 83 00 38 */ stw r4, 0x38(r3)
/* 8001B4DC 0001731C 93 BE 00 00 */ stw r29, 0x0(r30)
/* 8001B4E0 00017320 4B FE BE 95 */ bl lbl_80007374
/* 8001B4E4 00017324 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8001B4E8 00017328 7C 08 03 A6 */ mtlr r0
/* 8001B4EC 0001732C 38 21 00 30 */ addi r1, r1, 0x30
/* 8001B4F0 00017330 4E 80 00 20 */ blr
/* 8001B4F4 00017334 00 00 00 00 */ .4byte 0x00000000
/* 8001B4F8 00017338 00 00 00 00 */ .4byte 0x00000000
/* 8001B4FC 0001733C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global __OSDBIntegrator
__OSDBIntegrator:
2022-10-16 16:05:58 +00:00
/* 8001B500 00017340 38 A0 00 40 */ li r5, 0x40
/* 8001B504 00017344 7C 68 02 A6 */ mflr r3
/* 8001B508 00017348 90 65 00 0C */ stw r3, 0xc(r5)
/* 8001B50C 0001734C 80 65 00 08 */ lwz r3, 0x8(r5)
/* 8001B510 00017350 64 63 80 00 */ oris r3, r3, 0x8000
/* 8001B514 00017354 7C 68 03 A6 */ mtlr r3
/* 8001B518 00017358 38 60 00 30 */ li r3, 0x30
/* 8001B51C 0001735C 7C 60 01 24 */ mtmsr r3
/* 8001B520 00017360 4E 80 00 20 */ blr
.global lbl_8001B524
lbl_8001B524:
/* 8001B524 00017364 00 00 00 00 */ .4byte 0x00000000
/* 8001B528 00017368 00 00 00 00 */ .4byte 0x00000000
/* 8001B52C 0001736C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global __OSDBJump
__OSDBJump:
2022-10-16 16:05:58 +00:00
/* 8001B530 00017370 48 00 00 63 */ bla 0x60
.global lbl_8001B534
lbl_8001B534:
/* 8001B534 00017374 00 00 00 00 */ .4byte 0x00000000
/* 8001B538 00017378 00 00 00 00 */ .4byte 0x00000000
/* 8001B53C 0001737C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global __OSSetExceptionHandler
__OSSetExceptionHandler:
/* 8001B540 00017380 80 AD E3 7C */ lwz r5, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B544 00017384 54 60 15 BA */ rlwinm r0, r3, 2, 22, 29
/* 8001B548 00017388 7C 65 00 2E */ lwzx r3, r5, r0
/* 8001B54C 0001738C 7C 85 01 2E */ stwx r4, r5, r0
/* 8001B550 00017390 4E 80 00 20 */ blr
/* 8001B554 00017394 00 00 00 00 */ .4byte 0x00000000
/* 8001B558 00017398 00 00 00 00 */ .4byte 0x00000000
/* 8001B55C 0001739C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global __OSGetExceptionHandler
__OSGetExceptionHandler:
/* 8001B560 000173A0 80 8D E3 7C */ lwz r4, OSExceptionTable@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B564 000173A4 54 60 15 BA */ rlwinm r0, r3, 2, 22, 29
/* 8001B568 000173A8 7C 64 00 2E */ lwzx r3, r4, r0
/* 8001B56C 000173AC 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global OSExceptionVector
OSExceptionVector:
2022-10-16 16:05:58 +00:00
/* 8001B570 000173B0 7C 90 43 A6 */ mtsprg 0, r4
/* 8001B574 000173B4 80 80 00 C0 */ lwz r4, 0xc0(r0)
/* 8001B578 000173B8 90 64 00 0C */ stw r3, 0xc(r4)
/* 8001B57C 000173BC 7C 70 42 A6 */ mfsprg r3, 0
/* 8001B580 000173C0 90 64 00 10 */ stw r3, 0x10(r4)
/* 8001B584 000173C4 90 A4 00 14 */ stw r5, 0x14(r4)
/* 8001B588 000173C8 A0 64 01 A2 */ lhz r3, 0x1a2(r4)
/* 8001B58C 000173CC 60 63 00 02 */ ori r3, r3, 0x2
/* 8001B590 000173D0 B0 64 01 A2 */ sth r3, 0x1a2(r4)
/* 8001B594 000173D4 7C 60 00 26 */ mfcr r3
/* 8001B598 000173D8 90 64 00 80 */ stw r3, 0x80(r4)
/* 8001B59C 000173DC 7C 68 02 A6 */ mflr r3
/* 8001B5A0 000173E0 90 64 00 84 */ stw r3, 0x84(r4)
/* 8001B5A4 000173E4 7C 69 02 A6 */ mfctr r3
/* 8001B5A8 000173E8 90 64 00 88 */ stw r3, 0x88(r4)
/* 8001B5AC 000173EC 7C 61 02 A6 */ mfxer r3
/* 8001B5B0 000173F0 90 64 00 8C */ stw r3, 0x8c(r4)
/* 8001B5B4 000173F4 7C 7A 02 A6 */ mfsrr0 r3
/* 8001B5B8 000173F8 90 64 01 98 */ stw r3, 0x198(r4)
/* 8001B5BC 000173FC 7C 7B 02 A6 */ mfsrr1 r3
/* 8001B5C0 00017400 90 64 01 9C */ stw r3, 0x19c(r4)
/* 8001B5C4 00017404 7C 65 1B 78 */ mr r5, r3
.global lbl_8001B5C8
lbl_8001B5C8:
/* 8001B5C8 00017408 60 00 00 00 */ nop
/* 8001B5CC 0001740C 7C 60 00 A6 */ mfmsr r3
/* 8001B5D0 00017410 60 63 00 30 */ ori r3, r3, 0x30
/* 8001B5D4 00017414 7C 7B 03 A6 */ mtsrr1 r3
.global lbl_8001B5D8
lbl_8001B5D8:
/* 8001B5D8 00017418 38 60 00 00 */ li r3, 0x0
/* 8001B5DC 0001741C 80 80 00 D4 */ lwz r4, 0xd4(r0)
/* 8001B5E0 00017420 54 A5 07 BD */ rlwinm. r5, r5, 0, 30, 30
/* 8001B5E4 00017424 40 82 00 14 */ bne lbl_8001B5F8
2022-10-16 16:31:36 +00:00
/* 8001B5E8 00017428 3C A0 80 02 */ lis r5, OSDefaultExceptionHandler@ha
/* 8001B5EC 0001742C 38 A5 B6 10 */ addi r5, r5, OSDefaultExceptionHandler@l
2022-10-16 16:05:58 +00:00
/* 8001B5F0 00017430 7C BA 03 A6 */ mtsrr0 r5
/* 8001B5F4 00017434 4C 00 00 64 */ rfi
.global lbl_8001B5F8
lbl_8001B5F8:
/* 8001B5F8 00017438 54 65 15 BA */ rlwinm r5, r3, 2, 22, 29
/* 8001B5FC 0001743C 80 A5 30 00 */ lwz r5, 0x3000(r5)
/* 8001B600 00017440 7C BA 03 A6 */ mtsrr0 r5
/* 8001B604 00017444 4C 00 00 64 */ rfi
.global lbl_8001B608
lbl_8001B608:
/* 8001B608 00017448 60 00 00 00 */ nop
/* 8001B60C 0001744C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global OSDefaultExceptionHandler
OSDefaultExceptionHandler:
2022-10-16 16:05:58 +00:00
/* 8001B610 00017450 90 04 00 00 */ stw r0, 0x0(r4)
/* 8001B614 00017454 90 24 00 04 */ stw r1, 0x4(r4)
/* 8001B618 00017458 90 44 00 08 */ stw r2, 0x8(r4)
/* 8001B61C 0001745C BC C4 00 18 */ stmw r6, 0x18(r4)
/* 8001B620 00017460 7C 11 E2 A6 */ mfspr r0, GQR1
/* 8001B624 00017464 90 04 01 A8 */ stw r0, 0x1a8(r4)
/* 8001B628 00017468 7C 12 E2 A6 */ mfspr r0, GQR2
/* 8001B62C 0001746C 90 04 01 AC */ stw r0, 0x1ac(r4)
/* 8001B630 00017470 7C 13 E2 A6 */ mfspr r0, GQR3
/* 8001B634 00017474 90 04 01 B0 */ stw r0, 0x1b0(r4)
/* 8001B638 00017478 7C 14 E2 A6 */ mfspr r0, GQR4
/* 8001B63C 0001747C 90 04 01 B4 */ stw r0, 0x1b4(r4)
/* 8001B640 00017480 7C 15 E2 A6 */ mfspr r0, GQR5
/* 8001B644 00017484 90 04 01 B8 */ stw r0, 0x1b8(r4)
/* 8001B648 00017488 7C 16 E2 A6 */ mfspr r0, GQR6
/* 8001B64C 0001748C 90 04 01 BC */ stw r0, 0x1bc(r4)
/* 8001B650 00017490 7C 17 E2 A6 */ mfspr r0, GQR7
/* 8001B654 00017494 90 04 01 C0 */ stw r0, 0x1c0(r4)
/* 8001B658 00017498 7C B2 02 A6 */ mfdsisr r5
/* 8001B65C 0001749C 7C D3 02 A6 */ mfdar r6
/* 8001B660 000174A0 94 21 FF F8 */ stwu r1, -0x8(r1)
2022-10-16 16:31:36 +00:00
/* 8001B664 000174A4 48 00 26 4C */ b __OSUnhandledException
2022-10-16 16:05:58 +00:00
/* 8001B668 000174A8 00 00 00 00 */ .4byte 0x00000000
/* 8001B66C 000174AC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global __OSPSInit
__OSPSInit:
2022-10-16 16:05:58 +00:00
/* 8001B670 000174B0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001B674 000174B4 7C 08 02 A6 */ mflr r0
/* 8001B678 000174B8 90 01 00 14 */ stw r0, 0x14(r1)
2022-10-16 16:31:36 +00:00
/* 8001B67C 000174BC 4B FF EB 85 */ bl PPCMfhid2
2022-10-16 16:05:58 +00:00
/* 8001B680 000174C0 64 63 A0 00 */ oris r3, r3, 0xa000
2022-10-16 16:31:36 +00:00
/* 8001B684 000174C4 4B FF EB 8D */ bl PPCMthid2
/* 8001B688 000174C8 48 00 14 29 */ bl ICFlashInvalidate
2022-10-16 16:05:58 +00:00
/* 8001B68C 000174CC 7C 00 04 AC */ sync
/* 8001B690 000174D0 38 60 00 00 */ li r3, 0x0
/* 8001B694 000174D4 7C 70 E3 A6 */ mtspr GQR0, r3
/* 8001B698 000174D8 7C 71 E3 A6 */ mtspr GQR1, r3
/* 8001B69C 000174DC 7C 72 E3 A6 */ mtspr GQR2, r3
/* 8001B6A0 000174E0 7C 73 E3 A6 */ mtspr GQR3, r3
/* 8001B6A4 000174E4 7C 74 E3 A6 */ mtspr GQR4, r3
/* 8001B6A8 000174E8 7C 75 E3 A6 */ mtspr GQR5, r3
/* 8001B6AC 000174EC 7C 76 E3 A6 */ mtspr GQR6, r3
/* 8001B6B0 000174F0 7C 77 E3 A6 */ mtspr GQR7, r3
/* 8001B6B4 000174F4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001B6B8 000174F8 7C 08 03 A6 */ mtlr r0
/* 8001B6BC 000174FC 38 21 00 10 */ addi r1, r1, 0x10
/* 8001B6C0 00017500 4E 80 00 20 */ blr
/* 8001B6C4 00017504 00 00 00 00 */ .4byte 0x00000000
/* 8001B6C8 00017508 00 00 00 00 */ .4byte 0x00000000
/* 8001B6CC 0001750C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global __OSGetDIConfig
__OSGetDIConfig:
2022-10-16 16:05:58 +00:00
/* 8001B6D0 00017510 3C 60 CD 00 */ lis r3, 0xCD006024@ha
/* 8001B6D4 00017514 80 03 60 24 */ lwz r0, 0xCD006024@l(r3)
/* 8001B6D8 00017518 54 03 06 3E */ clrlwi r3, r0, 24
/* 8001B6DC 0001751C 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global OSRegisterVersion
OSRegisterVersion:
2022-10-16 16:05:58 +00:00
/* 8001B6E0 00017520 7C 64 1B 78 */ mr r4, r3
2022-10-16 16:31:36 +00:00
/* 8001B6E4 00017524 38 6D 80 7C */ addi r3, r13, "@1847_8055649C"@sda21
2022-10-16 16:05:58 +00:00
/* 8001B6E8 00017528 4C C6 31 82 */ crclr 4*cr1+eq
2022-10-16 16:31:36 +00:00
/* 8001B6EC 0001752C 48 00 22 A4 */ b OSReport
.global OSGetAppGamename
OSGetAppGamename:
/* 8001B6F0 00017530 80 0D E3 58 */ lwz r0, __OSInIPL@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B6F4 00017534 3C 60 80 00 */ lis r3, 0x80003194@ha
/* 8001B6F8 00017538 38 C3 31 94 */ addi r6, r3, 0x80003194@l
/* 8001B6FC 0001753C 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B700 00017540 41 82 00 0C */ beq lbl_8001B70C
2022-10-16 16:31:36 +00:00
/* 8001B704 00017544 80 CD 80 90 */ lwz r6, AppGameNameForSysMenu@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B708 00017548 48 00 00 38 */ b lbl_8001B740
.global lbl_8001B70C
lbl_8001B70C:
/* 8001B70C 0001754C 88 63 31 94 */ lbz r3, 0x3194(r3)
/* 8001B710 00017550 7C 60 07 74 */ extsb r0, r3
/* 8001B714 00017554 2C 00 00 30 */ cmpwi r0, 0x30
/* 8001B718 00017558 41 80 00 20 */ blt lbl_8001B738
/* 8001B71C 0001755C 2C 00 00 39 */ cmpwi r0, 0x39
/* 8001B720 00017560 40 81 00 0C */ ble lbl_8001B72C
/* 8001B724 00017564 2C 00 00 41 */ cmpwi r0, 0x41
/* 8001B728 00017568 41 80 00 10 */ blt lbl_8001B738
.global lbl_8001B72C
lbl_8001B72C:
/* 8001B72C 0001756C 7C 60 07 74 */ extsb r0, r3
/* 8001B730 00017570 2C 00 00 5A */ cmpwi r0, 0x5a
/* 8001B734 00017574 40 81 00 0C */ ble lbl_8001B740
.global lbl_8001B738
lbl_8001B738:
/* 8001B738 00017578 3C 60 80 00 */ lis r3, 0x80003180@ha
/* 8001B73C 0001757C 38 C3 31 80 */ addi r6, r3, 0x80003180@l
.global lbl_8001B740
lbl_8001B740:
/* 8001B740 00017580 88 06 00 00 */ lbz r0, 0x0(r6)
2022-10-16 16:31:36 +00:00
/* 8001B744 00017584 38 AD E3 80 */ addi r5, r13, GameNameBuffer@sda21
/* 8001B748 00017588 98 0D E3 80 */ stb r0, GameNameBuffer@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B74C 0001758C 38 00 00 00 */ li r0, 0x0
/* 8001B750 00017590 88 66 00 01 */ lbz r3, 0x1(r6)
/* 8001B754 00017594 98 65 00 01 */ stb r3, 0x1(r5)
2022-10-16 16:31:36 +00:00
/* 8001B758 00017598 38 6D E3 80 */ addi r3, r13, GameNameBuffer@sda21
2022-10-16 16:05:58 +00:00
/* 8001B75C 0001759C 88 86 00 02 */ lbz r4, 0x2(r6)
/* 8001B760 000175A0 98 85 00 02 */ stb r4, 0x2(r5)
/* 8001B764 000175A4 88 86 00 03 */ lbz r4, 0x3(r6)
/* 8001B768 000175A8 98 85 00 03 */ stb r4, 0x3(r5)
/* 8001B76C 000175AC 98 05 00 04 */ stb r0, 0x4(r5)
/* 8001B770 000175B0 4E 80 00 20 */ blr
/* 8001B774 000175B4 00 00 00 00 */ .4byte 0x00000000
/* 8001B778 000175B8 00 00 00 00 */ .4byte 0x00000000
/* 8001B77C 000175BC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global OSGetAppType
OSGetAppType:
/* 8001B780 000175C0 80 0D E3 58 */ lwz r0, __OSInIPL@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8001B784 000175C4 2C 00 00 00 */ cmpwi r0, 0x0
/* 8001B788 000175C8 41 82 00 0C */ beq lbl_8001B794
/* 8001B78C 000175CC 38 60 00 40 */ li r3, 0x40
/* 8001B790 000175D0 4E 80 00 20 */ blr
.global lbl_8001B794
lbl_8001B794:
/* 8001B794 000175D4 3C 60 80 00 */ lis r3, 0x80003184@ha
/* 8001B798 000175D8 88 63 31 84 */ lbz r3, 0x80003184@l(r3)
/* 8001B79C 000175DC 4E 80 00 20 */ blr