donut-decomp/asm/exi/EXIBios.s
2022-10-17 09:04:36 +01:00

1925 lines
89 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global SetExiInterruptMask
SetExiInterruptMask:
/* 800285F0 00024430 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800285F4 00024434 7C 08 02 A6 */ mflr r0
/* 800285F8 00024438 90 01 00 14 */ stw r0, 0x14(r1)
/* 800285FC 0002443C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80028600 00024440 7C 9F 23 78 */ mr r31, r4
/* 80028604 00024444 3C A0 80 4A */ lis r5, Ecb@ha
/* 80028608 00024448 38 A5 A2 90 */ addi r5, r5, Ecb@l
/* 8002860C 0002444C 2C 03 00 00 */ cmpwi r3, 0x0
/* 80028610 00024450 41 82 00 18 */ beq lbl_80028628
/* 80028614 00024454 2C 03 00 01 */ cmpwi r3, 0x1
/* 80028618 00024458 41 82 00 4C */ beq lbl_80028664
/* 8002861C 0002445C 2C 03 00 02 */ cmpwi r3, 0x2
/* 80028620 00024460 41 82 00 74 */ beq lbl_80028694
/* 80028624 00024464 48 00 00 A0 */ b lbl_800286C4
.global lbl_80028628
lbl_80028628:
/* 80028628 00024468 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8002862C 0002446C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80028630 00024470 40 82 00 10 */ bne lbl_80028640
/* 80028634 00024474 80 05 00 80 */ lwz r0, 0x80(r5)
/* 80028638 00024478 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002863C 0002447C 41 82 00 10 */ beq lbl_8002864C
.global lbl_80028640
lbl_80028640:
/* 80028640 00024480 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80028644 00024484 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
/* 80028648 00024488 41 82 00 10 */ beq lbl_80028658
.global lbl_8002864C
lbl_8002864C:
/* 8002864C 0002448C 3C 60 00 41 */ lis r3, 0x41
/* 80028650 00024490 4B FF 95 A1 */ bl __OSMaskInterrupts
/* 80028654 00024494 48 00 00 70 */ b lbl_800286C4
.global lbl_80028658
lbl_80028658:
/* 80028658 00024498 3C 60 00 41 */ lis r3, 0x41
/* 8002865C 0002449C 4B FF 96 15 */ bl __OSUnmaskInterrupts
/* 80028660 000244A0 48 00 00 64 */ b lbl_800286C4
.global lbl_80028664
lbl_80028664:
/* 80028664 000244A4 80 04 00 00 */ lwz r0, 0x0(r4)
/* 80028668 000244A8 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002866C 000244AC 41 82 00 10 */ beq lbl_8002867C
/* 80028670 000244B0 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80028674 000244B4 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
/* 80028678 000244B8 41 82 00 10 */ beq lbl_80028688
.global lbl_8002867C
lbl_8002867C:
/* 8002867C 000244BC 3C 60 00 08 */ lis r3, 0x8
/* 80028680 000244C0 4B FF 95 71 */ bl __OSMaskInterrupts
/* 80028684 000244C4 48 00 00 40 */ b lbl_800286C4
.global lbl_80028688
lbl_80028688:
/* 80028688 000244C8 3C 60 00 08 */ lis r3, 0x8
/* 8002868C 000244CC 4B FF 95 E5 */ bl __OSUnmaskInterrupts
/* 80028690 000244D0 48 00 00 34 */ b lbl_800286C4
.global lbl_80028694
lbl_80028694:
/* 80028694 000244D4 38 60 00 19 */ li r3, 0x19
/* 80028698 000244D8 4B FF 92 19 */ bl __OSGetInterruptHandler
/* 8002869C 000244DC 2C 03 00 00 */ cmpwi r3, 0x0
/* 800286A0 000244E0 41 82 00 10 */ beq lbl_800286B0
/* 800286A4 000244E4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 800286A8 000244E8 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
/* 800286AC 000244EC 41 82 00 10 */ beq lbl_800286BC
.global lbl_800286B0
lbl_800286B0:
/* 800286B0 000244F0 38 60 00 40 */ li r3, 0x40
/* 800286B4 000244F4 4B FF 95 3D */ bl __OSMaskInterrupts
/* 800286B8 000244F8 48 00 00 0C */ b lbl_800286C4
.global lbl_800286BC
lbl_800286BC:
/* 800286BC 000244FC 38 60 00 40 */ li r3, 0x40
/* 800286C0 00024500 4B FF 95 B1 */ bl __OSUnmaskInterrupts
.global lbl_800286C4
lbl_800286C4:
/* 800286C4 00024504 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800286C8 00024508 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800286CC 0002450C 7C 08 03 A6 */ mtlr r0
/* 800286D0 00024510 38 21 00 10 */ addi r1, r1, 0x10
/* 800286D4 00024514 4E 80 00 20 */ blr
/* 800286D8 00024518 00 00 00 00 */ .4byte 0x00000000
/* 800286DC 0002451C 00 00 00 00 */ .4byte 0x00000000
.global EXIImm
EXIImm:
/* 800286E0 00024520 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 800286E4 00024524 7C 08 02 A6 */ mflr r0
/* 800286E8 00024528 90 01 00 34 */ stw r0, 0x34(r1)
/* 800286EC 0002452C 39 61 00 30 */ addi r11, r1, 0x30
/* 800286F0 00024530 4B FD EC 45 */ bl lbl_80007334
/* 800286F4 00024534 7C 7A 1B 78 */ mr r26, r3
/* 800286F8 00024538 7C 9B 23 78 */ mr r27, r4
/* 800286FC 0002453C 7C BC 2B 78 */ mr r28, r5
/* 80028700 00024540 7C DD 33 78 */ mr r29, r6
/* 80028704 00024544 7C F9 3B 78 */ mr r25, r7
/* 80028708 00024548 54 60 30 32 */ slwi r0, r3, 6
/* 8002870C 0002454C 3C 60 80 4A */ lis r3, Ecb@ha
/* 80028710 00024550 38 63 A2 90 */ addi r3, r3, Ecb@l
/* 80028714 00024554 7F E3 02 14 */ add r31, r3, r0
/* 80028718 00024558 4B FF 91 09 */ bl OSDisableInterrupts
/* 8002871C 0002455C 7C 7E 1B 78 */ mr r30, r3
/* 80028720 00024560 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028724 00024564 54 00 07 BF */ clrlwi. r0, r0, 30
/* 80028728 00024568 40 82 00 10 */ bne lbl_80028738
/* 8002872C 0002456C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028730 00024570 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
/* 80028734 00024574 40 82 00 14 */ bne lbl_80028748
.global lbl_80028738
lbl_80028738:
/* 80028738 00024578 7F C3 F3 78 */ mr r3, r30
/* 8002873C 0002457C 4B FF 91 25 */ bl OSRestoreInterrupts
/* 80028740 00024580 38 60 00 00 */ li r3, 0x0
/* 80028744 00024584 48 00 02 00 */ b lbl_80028944
.global lbl_80028748
lbl_80028748:
/* 80028748 00024588 93 3F 00 04 */ stw r25, 0x4(r31)
/* 8002874C 0002458C 2C 19 00 00 */ cmpwi r25, 0x0
/* 80028750 00024590 41 82 00 34 */ beq lbl_80028784
/* 80028754 00024594 1C 7A 00 14 */ mulli r3, r26, 0x14
/* 80028758 00024598 3C 00 CD 00 */ lis r0, 0xcd00
/* 8002875C 0002459C 7C 60 1A 14 */ add r3, r0, r3
/* 80028760 000245A0 80 03 68 00 */ lwz r0, 0x6800(r3)
/* 80028764 000245A4 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 80028768 000245A8 60 00 00 08 */ ori r0, r0, 0x8
/* 8002876C 000245AC 90 03 68 00 */ stw r0, 0x6800(r3)
/* 80028770 000245B0 3C 60 00 20 */ lis r3, 0x20
/* 80028774 000245B4 57 40 10 3A */ slwi r0, r26, 2
/* 80028778 000245B8 7C 1A 00 50 */ subf r0, r26, r0
/* 8002877C 000245BC 7C 63 04 30 */ srw r3, r3, r0
/* 80028780 000245C0 4B FF 94 F1 */ bl __OSUnmaskInterrupts
.global lbl_80028784
lbl_80028784:
/* 80028784 000245C4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028788 000245C8 60 00 00 02 */ ori r0, r0, 0x2
/* 8002878C 000245CC 90 1F 00 0C */ stw r0, 0xc(r31)
/* 80028790 000245D0 2C 1D 00 00 */ cmpwi r29, 0x0
/* 80028794 000245D4 41 82 01 64 */ beq lbl_800288F8
/* 80028798 000245D8 38 00 00 00 */ li r0, 0x0
/* 8002879C 000245DC 38 80 00 00 */ li r4, 0x0
/* 800287A0 000245E0 2C 9C 00 00 */ cmpwi cr1, r28, 0x0
/* 800287A4 000245E4 40 85 01 44 */ ble cr1, lbl_800288E8
/* 800287A8 000245E8 38 DC FF F8 */ addi r6, r28, -0x8
/* 800287AC 000245EC 2C 1C 00 08 */ cmpwi r28, 0x8
/* 800287B0 000245F0 40 81 01 04 */ ble lbl_800288B4
/* 800287B4 000245F4 38 A0 00 00 */ li r5, 0x0
/* 800287B8 000245F8 41 84 00 18 */ blt cr1, lbl_800287D0
/* 800287BC 000245FC 3C 60 80 00 */ lis r3, 0x8000
/* 800287C0 00024600 38 63 FF FE */ addi r3, r3, -0x2
/* 800287C4 00024604 7C 1C 18 00 */ cmpw r28, r3
/* 800287C8 00024608 41 81 00 08 */ bgt lbl_800287D0
/* 800287CC 0002460C 38 A0 00 01 */ li r5, 0x1
.global lbl_800287D0
lbl_800287D0:
/* 800287D0 00024610 2C 05 00 00 */ cmpwi r5, 0x0
/* 800287D4 00024614 41 82 00 E0 */ beq lbl_800288B4
/* 800287D8 00024618 7F 63 DB 78 */ mr r3, r27
/* 800287DC 0002461C 38 A6 00 07 */ addi r5, r6, 0x7
/* 800287E0 00024620 54 A5 E8 FE */ srwi r5, r5, 3
/* 800287E4 00024624 7C A9 03 A6 */ mtctr r5
/* 800287E8 00024628 2C 06 00 00 */ cmpwi r6, 0x0
/* 800287EC 0002462C 40 81 00 C8 */ ble lbl_800288B4
.global lbl_800287F0
lbl_800287F0:
/* 800287F0 00024630 88 C3 00 00 */ lbz r6, 0x0(r3)
/* 800287F4 00024634 20 A4 00 03 */ subfic r5, r4, 0x3
/* 800287F8 00024638 54 A5 18 38 */ slwi r5, r5, 3
/* 800287FC 0002463C 7C C5 28 30 */ slw r5, r6, r5
/* 80028800 00024640 7C 00 2B 78 */ or r0, r0, r5
/* 80028804 00024644 88 C3 00 01 */ lbz r6, 0x1(r3)
/* 80028808 00024648 38 A4 00 01 */ addi r5, r4, 0x1
/* 8002880C 0002464C 20 A5 00 03 */ subfic r5, r5, 0x3
/* 80028810 00024650 54 A5 18 38 */ slwi r5, r5, 3
/* 80028814 00024654 7C C5 28 30 */ slw r5, r6, r5
/* 80028818 00024658 7C 00 2B 78 */ or r0, r0, r5
/* 8002881C 0002465C 88 C3 00 02 */ lbz r6, 0x2(r3)
/* 80028820 00024660 38 A4 00 02 */ addi r5, r4, 0x2
/* 80028824 00024664 20 A5 00 03 */ subfic r5, r5, 0x3
/* 80028828 00024668 54 A5 18 38 */ slwi r5, r5, 3
/* 8002882C 0002466C 7C C5 28 30 */ slw r5, r6, r5
/* 80028830 00024670 7C 00 2B 78 */ or r0, r0, r5
/* 80028834 00024674 88 C3 00 03 */ lbz r6, 0x3(r3)
/* 80028838 00024678 7C A4 00 D0 */ neg r5, r4
/* 8002883C 0002467C 54 A5 18 38 */ slwi r5, r5, 3
/* 80028840 00024680 7C C5 28 30 */ slw r5, r6, r5
/* 80028844 00024684 7C 00 2B 78 */ or r0, r0, r5
/* 80028848 00024688 88 C3 00 04 */ lbz r6, 0x4(r3)
/* 8002884C 0002468C 38 A4 00 04 */ addi r5, r4, 0x4
/* 80028850 00024690 20 A5 00 03 */ subfic r5, r5, 0x3
/* 80028854 00024694 54 A5 18 38 */ slwi r5, r5, 3
/* 80028858 00024698 7C C5 28 30 */ slw r5, r6, r5
/* 8002885C 0002469C 7C 00 2B 78 */ or r0, r0, r5
/* 80028860 000246A0 88 C3 00 05 */ lbz r6, 0x5(r3)
/* 80028864 000246A4 38 A4 00 05 */ addi r5, r4, 0x5
/* 80028868 000246A8 20 A5 00 03 */ subfic r5, r5, 0x3
/* 8002886C 000246AC 54 A5 18 38 */ slwi r5, r5, 3
/* 80028870 000246B0 7C C5 28 30 */ slw r5, r6, r5
/* 80028874 000246B4 7C 00 2B 78 */ or r0, r0, r5
/* 80028878 000246B8 88 C3 00 06 */ lbz r6, 0x6(r3)
/* 8002887C 000246BC 38 A4 00 06 */ addi r5, r4, 0x6
/* 80028880 000246C0 20 A5 00 03 */ subfic r5, r5, 0x3
/* 80028884 000246C4 54 A5 18 38 */ slwi r5, r5, 3
/* 80028888 000246C8 7C C5 28 30 */ slw r5, r6, r5
/* 8002888C 000246CC 7C 00 2B 78 */ or r0, r0, r5
/* 80028890 000246D0 88 C3 00 07 */ lbz r6, 0x7(r3)
/* 80028894 000246D4 38 A4 00 07 */ addi r5, r4, 0x7
/* 80028898 000246D8 20 A5 00 03 */ subfic r5, r5, 0x3
/* 8002889C 000246DC 54 A5 18 38 */ slwi r5, r5, 3
/* 800288A0 000246E0 7C C5 28 30 */ slw r5, r6, r5
/* 800288A4 000246E4 7C 00 2B 78 */ or r0, r0, r5
/* 800288A8 000246E8 38 63 00 08 */ addi r3, r3, 0x8
/* 800288AC 000246EC 38 84 00 08 */ addi r4, r4, 0x8
/* 800288B0 000246F0 42 00 FF 40 */ bdnz lbl_800287F0
.global lbl_800288B4
lbl_800288B4:
/* 800288B4 000246F4 7C DB 22 14 */ add r6, r27, r4
/* 800288B8 000246F8 7C 64 E0 50 */ subf r3, r4, r28
/* 800288BC 000246FC 7C 69 03 A6 */ mtctr r3
/* 800288C0 00024700 7C 04 E0 00 */ cmpw r4, r28
/* 800288C4 00024704 40 80 00 24 */ bge lbl_800288E8
.global lbl_800288C8
lbl_800288C8:
/* 800288C8 00024708 88 A6 00 00 */ lbz r5, 0x0(r6)
/* 800288CC 0002470C 20 64 00 03 */ subfic r3, r4, 0x3
/* 800288D0 00024710 54 63 18 38 */ slwi r3, r3, 3
/* 800288D4 00024714 7C A3 18 30 */ slw r3, r5, r3
/* 800288D8 00024718 7C 00 1B 78 */ or r0, r0, r3
/* 800288DC 0002471C 38 C6 00 01 */ addi r6, r6, 0x1
/* 800288E0 00024720 38 84 00 01 */ addi r4, r4, 0x1
/* 800288E4 00024724 42 00 FF E4 */ bdnz lbl_800288C8
.global lbl_800288E8
lbl_800288E8:
/* 800288E8 00024728 3C 80 CD 00 */ lis r4, 0xcd00
/* 800288EC 0002472C 1C 7A 00 14 */ mulli r3, r26, 0x14
/* 800288F0 00024730 7C 64 1A 14 */ add r3, r4, r3
/* 800288F4 00024734 90 03 68 10 */ stw r0, 0x6810(r3)
.global lbl_800288F8
lbl_800288F8:
/* 800288F8 00024738 93 7F 00 14 */ stw r27, 0x14(r31)
/* 800288FC 0002473C 38 7D FF FF */ addi r3, r29, -0x1
/* 80028900 00024740 20 1D 00 01 */ subfic r0, r29, 0x1
/* 80028904 00024744 7C 60 03 78 */ or r0, r3, r0
/* 80028908 00024748 7C 00 FE 70 */ srawi r0, r0, 31
/* 8002890C 0002474C 7F 80 00 38 */ and r0, r28, r0
/* 80028910 00024750 90 1F 00 10 */ stw r0, 0x10(r31)
/* 80028914 00024754 57 A0 10 3A */ slwi r0, r29, 2
/* 80028918 00024758 60 03 00 01 */ ori r3, r0, 0x1
/* 8002891C 0002475C 38 1C FF FF */ addi r0, r28, -0x1
/* 80028920 00024760 54 00 20 36 */ slwi r0, r0, 4
/* 80028924 00024764 7C 64 03 78 */ or r4, r3, r0
/* 80028928 00024768 3C 60 CD 00 */ lis r3, 0xcd00
/* 8002892C 0002476C 1C 1A 00 14 */ mulli r0, r26, 0x14
/* 80028930 00024770 7C 63 02 14 */ add r3, r3, r0
/* 80028934 00024774 90 83 68 0C */ stw r4, 0x680c(r3)
/* 80028938 00024778 7F C3 F3 78 */ mr r3, r30
/* 8002893C 0002477C 4B FF 8F 25 */ bl OSRestoreInterrupts
/* 80028940 00024780 38 60 00 01 */ li r3, 0x1
.global lbl_80028944
lbl_80028944:
/* 80028944 00024784 39 61 00 30 */ addi r11, r1, 0x30
/* 80028948 00024788 4B FD EA 39 */ bl lbl_80007380
/* 8002894C 0002478C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80028950 00024790 7C 08 03 A6 */ mtlr r0
/* 80028954 00024794 38 21 00 30 */ addi r1, r1, 0x30
/* 80028958 00024798 4E 80 00 20 */ blr
/* 8002895C 0002479C 00 00 00 00 */ .4byte 0x00000000
.global EXIImmEx
EXIImmEx:
/* 80028960 000247A0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80028964 000247A4 7C 08 02 A6 */ mflr r0
/* 80028968 000247A8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002896C 000247AC 39 61 00 20 */ addi r11, r1, 0x20
/* 80028970 000247B0 4B FD E9 CD */ bl lbl_8000733C
/* 80028974 000247B4 7C 7B 1B 78 */ mr r27, r3
/* 80028978 000247B8 7C 9C 23 78 */ mr r28, r4
/* 8002897C 000247BC 7C BD 2B 78 */ mr r29, r5
/* 80028980 000247C0 7C DE 33 78 */ mr r30, r6
/* 80028984 000247C4 48 00 00 5C */ b lbl_800289E0
.global lbl_80028988
lbl_80028988:
/* 80028988 000247C8 2C 1D 00 04 */ cmpwi r29, 0x4
/* 8002898C 000247CC 3B E0 00 04 */ li r31, 0x4
/* 80028990 000247D0 40 80 00 08 */ bge lbl_80028998
/* 80028994 000247D4 7F BF EB 78 */ mr r31, r29
.global lbl_80028998
lbl_80028998:
/* 80028998 000247D8 7F 63 DB 78 */ mr r3, r27
/* 8002899C 000247DC 7F 84 E3 78 */ mr r4, r28
/* 800289A0 000247E0 7F E5 FB 78 */ mr r5, r31
/* 800289A4 000247E4 7F C6 F3 78 */ mr r6, r30
/* 800289A8 000247E8 38 E0 00 00 */ li r7, 0x0
/* 800289AC 000247EC 4B FF FD 35 */ bl EXIImm
/* 800289B0 000247F0 2C 03 00 00 */ cmpwi r3, 0x0
/* 800289B4 000247F4 40 82 00 0C */ bne lbl_800289C0
/* 800289B8 000247F8 38 60 00 00 */ li r3, 0x0
/* 800289BC 000247FC 48 00 00 30 */ b lbl_800289EC
.global lbl_800289C0
lbl_800289C0:
/* 800289C0 00024800 7F 63 DB 78 */ mr r3, r27
/* 800289C4 00024804 48 00 01 4D */ bl EXISync
/* 800289C8 00024808 2C 03 00 00 */ cmpwi r3, 0x0
/* 800289CC 0002480C 40 82 00 0C */ bne lbl_800289D8
/* 800289D0 00024810 38 60 00 00 */ li r3, 0x0
/* 800289D4 00024814 48 00 00 18 */ b lbl_800289EC
.global lbl_800289D8
lbl_800289D8:
/* 800289D8 00024818 7F 9C FA 14 */ add r28, r28, r31
/* 800289DC 0002481C 7F BF E8 50 */ subf r29, r31, r29
.global lbl_800289E0
lbl_800289E0:
/* 800289E0 00024820 2C 1D 00 00 */ cmpwi r29, 0x0
/* 800289E4 00024824 40 82 FF A4 */ bne lbl_80028988
/* 800289E8 00024828 38 60 00 01 */ li r3, 0x1
.global lbl_800289EC
lbl_800289EC:
/* 800289EC 0002482C 39 61 00 20 */ addi r11, r1, 0x20
/* 800289F0 00024830 4B FD E9 99 */ bl lbl_80007388
/* 800289F4 00024834 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800289F8 00024838 7C 08 03 A6 */ mtlr r0
/* 800289FC 0002483C 38 21 00 20 */ addi r1, r1, 0x20
/* 80028A00 00024840 4E 80 00 20 */ blr
/* 80028A04 00024844 00 00 00 00 */ .4byte 0x00000000
/* 80028A08 00024848 00 00 00 00 */ .4byte 0x00000000
/* 80028A0C 0002484C 00 00 00 00 */ .4byte 0x00000000
.global EXIDma
EXIDma:
/* 80028A10 00024850 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80028A14 00024854 7C 08 02 A6 */ mflr r0
/* 80028A18 00024858 90 01 00 34 */ stw r0, 0x34(r1)
/* 80028A1C 0002485C 39 61 00 30 */ addi r11, r1, 0x30
/* 80028A20 00024860 4B FD E9 15 */ bl lbl_80007334
/* 80028A24 00024864 7C 7A 1B 78 */ mr r26, r3
/* 80028A28 00024868 7C 9B 23 78 */ mr r27, r4
/* 80028A2C 0002486C 7C BC 2B 78 */ mr r28, r5
/* 80028A30 00024870 7C DD 33 78 */ mr r29, r6
/* 80028A34 00024874 7C F9 3B 78 */ mr r25, r7
/* 80028A38 00024878 54 60 30 32 */ slwi r0, r3, 6
/* 80028A3C 0002487C 3C 60 80 4A */ lis r3, Ecb@ha
/* 80028A40 00024880 38 63 A2 90 */ addi r3, r3, Ecb@l
/* 80028A44 00024884 7F E3 02 14 */ add r31, r3, r0
/* 80028A48 00024888 4B FF 8D D9 */ bl OSDisableInterrupts
/* 80028A4C 0002488C 7C 7E 1B 78 */ mr r30, r3
/* 80028A50 00024890 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028A54 00024894 54 00 07 BF */ clrlwi. r0, r0, 30
/* 80028A58 00024898 40 82 00 10 */ bne lbl_80028A68
/* 80028A5C 0002489C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028A60 000248A0 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
/* 80028A64 000248A4 40 82 00 14 */ bne lbl_80028A78
.global lbl_80028A68
lbl_80028A68:
/* 80028A68 000248A8 7F C3 F3 78 */ mr r3, r30
/* 80028A6C 000248AC 4B FF 8D F5 */ bl OSRestoreInterrupts
/* 80028A70 000248B0 38 60 00 00 */ li r3, 0x0
/* 80028A74 000248B4 48 00 00 7C */ b lbl_80028AF0
.global lbl_80028A78
lbl_80028A78:
/* 80028A78 000248B8 93 3F 00 04 */ stw r25, 0x4(r31)
/* 80028A7C 000248BC 2C 19 00 00 */ cmpwi r25, 0x0
/* 80028A80 000248C0 41 82 00 34 */ beq lbl_80028AB4
/* 80028A84 000248C4 1C 7A 00 14 */ mulli r3, r26, 0x14
/* 80028A88 000248C8 3C 00 CD 00 */ lis r0, 0xcd00
/* 80028A8C 000248CC 7C 60 1A 14 */ add r3, r0, r3
/* 80028A90 000248D0 80 03 68 00 */ lwz r0, 0x6800(r3)
/* 80028A94 000248D4 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 80028A98 000248D8 60 00 00 08 */ ori r0, r0, 0x8
/* 80028A9C 000248DC 90 03 68 00 */ stw r0, 0x6800(r3)
/* 80028AA0 000248E0 3C 60 00 20 */ lis r3, 0x20
/* 80028AA4 000248E4 57 40 10 3A */ slwi r0, r26, 2
/* 80028AA8 000248E8 7C 1A 00 50 */ subf r0, r26, r0
/* 80028AAC 000248EC 7C 63 04 30 */ srw r3, r3, r0
/* 80028AB0 000248F0 4B FF 91 C1 */ bl __OSUnmaskInterrupts
.global lbl_80028AB4
lbl_80028AB4:
/* 80028AB4 000248F4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028AB8 000248F8 60 00 00 01 */ ori r0, r0, 0x1
/* 80028ABC 000248FC 90 1F 00 0C */ stw r0, 0xc(r31)
/* 80028AC0 00024900 1C 7A 00 14 */ mulli r3, r26, 0x14
/* 80028AC4 00024904 57 64 00 34 */ clrrwi r4, r27, 5
/* 80028AC8 00024908 3C 00 CD 00 */ lis r0, 0xcd00
/* 80028ACC 0002490C 7C 60 1A 14 */ add r3, r0, r3
/* 80028AD0 00024910 90 83 68 04 */ stw r4, 0x6804(r3)
/* 80028AD4 00024914 93 83 68 08 */ stw r28, 0x6808(r3)
/* 80028AD8 00024918 57 A0 10 3A */ slwi r0, r29, 2
/* 80028ADC 0002491C 60 00 00 03 */ ori r0, r0, 0x3
/* 80028AE0 00024920 90 03 68 0C */ stw r0, 0x680c(r3)
/* 80028AE4 00024924 7F C3 F3 78 */ mr r3, r30
/* 80028AE8 00024928 4B FF 8D 79 */ bl OSRestoreInterrupts
/* 80028AEC 0002492C 38 60 00 01 */ li r3, 0x1
.global lbl_80028AF0
lbl_80028AF0:
/* 80028AF0 00024930 39 61 00 30 */ addi r11, r1, 0x30
/* 80028AF4 00024934 4B FD E8 8D */ bl lbl_80007380
/* 80028AF8 00024938 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80028AFC 0002493C 7C 08 03 A6 */ mtlr r0
/* 80028B00 00024940 38 21 00 30 */ addi r1, r1, 0x30
/* 80028B04 00024944 4E 80 00 20 */ blr
/* 80028B08 00024948 00 00 00 00 */ .4byte 0x00000000
/* 80028B0C 0002494C 00 00 00 00 */ .4byte 0x00000000
.global EXISync
EXISync:
/* 80028B10 00024950 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80028B14 00024954 7C 08 02 A6 */ mflr r0
/* 80028B18 00024958 90 01 00 24 */ stw r0, 0x24(r1)
/* 80028B1C 0002495C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80028B20 00024960 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80028B24 00024964 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80028B28 00024968 93 81 00 10 */ stw r28, 0x10(r1)
/* 80028B2C 0002496C 54 60 30 32 */ slwi r0, r3, 6
/* 80028B30 00024970 3C 80 80 4A */ lis r4, Ecb@ha
/* 80028B34 00024974 38 84 A2 90 */ addi r4, r4, Ecb@l
/* 80028B38 00024978 7F E4 02 14 */ add r31, r4, r0
/* 80028B3C 0002497C 3B A0 00 00 */ li r29, 0x0
/* 80028B40 00024980 1F C3 00 14 */ mulli r30, r3, 0x14
/* 80028B44 00024984 3C 00 CD 00 */ lis r0, 0xcd00
/* 80028B48 00024988 7C 60 F2 14 */ add r3, r0, r30
/* 80028B4C 0002498C 48 00 02 10 */ b lbl_80028D5C
.global lbl_80028B50
lbl_80028B50:
/* 80028B50 00024990 80 03 68 0C */ lwz r0, 0x680c(r3)
/* 80028B54 00024994 54 00 07 FF */ clrlwi. r0, r0, 31
/* 80028B58 00024998 40 82 02 04 */ bne lbl_80028D5C
/* 80028B5C 0002499C 4B FF 8C C5 */ bl OSDisableInterrupts
/* 80028B60 000249A0 7C 7C 1B 78 */ mr r28, r3
/* 80028B64 000249A4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028B68 000249A8 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
/* 80028B6C 000249AC 41 82 01 E4 */ beq lbl_80028D50
/* 80028B70 000249B0 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028B74 000249B4 54 00 07 BF */ clrlwi. r0, r0, 30
/* 80028B78 000249B8 41 82 01 54 */ beq lbl_80028CCC
/* 80028B7C 000249BC 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028B80 000249C0 54 00 07 BD */ rlwinm. r0, r0, 0, 30, 30
/* 80028B84 000249C4 41 82 01 3C */ beq lbl_80028CC0
/* 80028B88 000249C8 80 BF 00 10 */ lwz r5, 0x10(r31)
/* 80028B8C 000249CC 2C 85 00 00 */ cmpwi cr1, r5, 0x0
/* 80028B90 000249D0 41 86 01 30 */ beq cr1, lbl_80028CC0
/* 80028B94 000249D4 80 9F 00 14 */ lwz r4, 0x14(r31)
/* 80028B98 000249D8 3C 00 CD 00 */ lis r0, 0xcd00
/* 80028B9C 000249DC 7C 60 F2 14 */ add r3, r0, r30
/* 80028BA0 000249E0 80 03 68 10 */ lwz r0, 0x6810(r3)
/* 80028BA4 000249E4 38 60 00 00 */ li r3, 0x0
/* 80028BA8 000249E8 40 85 01 18 */ ble cr1, lbl_80028CC0
/* 80028BAC 000249EC 38 E5 FF F8 */ addi r7, r5, -0x8
/* 80028BB0 000249F0 2C 05 00 08 */ cmpwi r5, 0x8
/* 80028BB4 000249F4 40 81 00 E0 */ ble lbl_80028C94
/* 80028BB8 000249F8 39 00 00 00 */ li r8, 0x0
/* 80028BBC 000249FC 41 84 00 18 */ blt cr1, lbl_80028BD4
/* 80028BC0 00024A00 3C C0 80 00 */ lis r6, 0x8000
/* 80028BC4 00024A04 38 C6 FF FE */ addi r6, r6, -0x2
/* 80028BC8 00024A08 7C 05 30 00 */ cmpw r5, r6
/* 80028BCC 00024A0C 41 81 00 08 */ bgt lbl_80028BD4
/* 80028BD0 00024A10 39 00 00 01 */ li r8, 0x1
.global lbl_80028BD4
lbl_80028BD4:
/* 80028BD4 00024A14 2C 08 00 00 */ cmpwi r8, 0x0
/* 80028BD8 00024A18 41 82 00 BC */ beq lbl_80028C94
/* 80028BDC 00024A1C 38 C7 00 07 */ addi r6, r7, 0x7
/* 80028BE0 00024A20 54 C6 E8 FE */ srwi r6, r6, 3
/* 80028BE4 00024A24 7C C9 03 A6 */ mtctr r6
/* 80028BE8 00024A28 2C 07 00 00 */ cmpwi r7, 0x0
/* 80028BEC 00024A2C 40 81 00 A8 */ ble lbl_80028C94
.global lbl_80028BF0
lbl_80028BF0:
/* 80028BF0 00024A30 20 C3 00 03 */ subfic r6, r3, 0x3
/* 80028BF4 00024A34 54 C6 18 38 */ slwi r6, r6, 3
/* 80028BF8 00024A38 7C 06 34 30 */ srw r6, r0, r6
/* 80028BFC 00024A3C 98 C4 00 00 */ stb r6, 0x0(r4)
/* 80028C00 00024A40 38 C3 00 01 */ addi r6, r3, 0x1
/* 80028C04 00024A44 20 C6 00 03 */ subfic r6, r6, 0x3
/* 80028C08 00024A48 54 C6 18 38 */ slwi r6, r6, 3
/* 80028C0C 00024A4C 7C 06 34 30 */ srw r6, r0, r6
/* 80028C10 00024A50 98 C4 00 01 */ stb r6, 0x1(r4)
/* 80028C14 00024A54 38 C3 00 02 */ addi r6, r3, 0x2
/* 80028C18 00024A58 20 C6 00 03 */ subfic r6, r6, 0x3
/* 80028C1C 00024A5C 54 C6 18 38 */ slwi r6, r6, 3
/* 80028C20 00024A60 7C 06 34 30 */ srw r6, r0, r6
/* 80028C24 00024A64 98 C4 00 02 */ stb r6, 0x2(r4)
/* 80028C28 00024A68 7C C3 00 D0 */ neg r6, r3
/* 80028C2C 00024A6C 54 C6 18 38 */ slwi r6, r6, 3
/* 80028C30 00024A70 7C 06 34 30 */ srw r6, r0, r6
/* 80028C34 00024A74 98 C4 00 03 */ stb r6, 0x3(r4)
/* 80028C38 00024A78 38 C3 00 04 */ addi r6, r3, 0x4
/* 80028C3C 00024A7C 20 C6 00 03 */ subfic r6, r6, 0x3
/* 80028C40 00024A80 54 C6 18 38 */ slwi r6, r6, 3
/* 80028C44 00024A84 7C 06 34 30 */ srw r6, r0, r6
/* 80028C48 00024A88 98 C4 00 04 */ stb r6, 0x4(r4)
/* 80028C4C 00024A8C 38 C3 00 05 */ addi r6, r3, 0x5
/* 80028C50 00024A90 20 C6 00 03 */ subfic r6, r6, 0x3
/* 80028C54 00024A94 54 C6 18 38 */ slwi r6, r6, 3
/* 80028C58 00024A98 7C 06 34 30 */ srw r6, r0, r6
/* 80028C5C 00024A9C 98 C4 00 05 */ stb r6, 0x5(r4)
/* 80028C60 00024AA0 38 C3 00 06 */ addi r6, r3, 0x6
/* 80028C64 00024AA4 20 C6 00 03 */ subfic r6, r6, 0x3
/* 80028C68 00024AA8 54 C6 18 38 */ slwi r6, r6, 3
/* 80028C6C 00024AAC 7C 06 34 30 */ srw r6, r0, r6
/* 80028C70 00024AB0 98 C4 00 06 */ stb r6, 0x6(r4)
/* 80028C74 00024AB4 38 C3 00 07 */ addi r6, r3, 0x7
/* 80028C78 00024AB8 20 C6 00 03 */ subfic r6, r6, 0x3
/* 80028C7C 00024ABC 54 C6 18 38 */ slwi r6, r6, 3
/* 80028C80 00024AC0 7C 06 34 30 */ srw r6, r0, r6
/* 80028C84 00024AC4 98 C4 00 07 */ stb r6, 0x7(r4)
/* 80028C88 00024AC8 38 84 00 08 */ addi r4, r4, 0x8
/* 80028C8C 00024ACC 38 63 00 08 */ addi r3, r3, 0x8
/* 80028C90 00024AD0 42 00 FF 60 */ bdnz lbl_80028BF0
.global lbl_80028C94
lbl_80028C94:
/* 80028C94 00024AD4 7C C3 28 50 */ subf r6, r3, r5
/* 80028C98 00024AD8 7C C9 03 A6 */ mtctr r6
/* 80028C9C 00024ADC 7C 03 28 00 */ cmpw r3, r5
/* 80028CA0 00024AE0 40 80 00 20 */ bge lbl_80028CC0
.global lbl_80028CA4
lbl_80028CA4:
/* 80028CA4 00024AE4 20 A3 00 03 */ subfic r5, r3, 0x3
/* 80028CA8 00024AE8 54 A5 18 38 */ slwi r5, r5, 3
/* 80028CAC 00024AEC 7C 05 2C 30 */ srw r5, r0, r5
/* 80028CB0 00024AF0 98 A4 00 00 */ stb r5, 0x0(r4)
/* 80028CB4 00024AF4 38 84 00 01 */ addi r4, r4, 0x1
/* 80028CB8 00024AF8 38 63 00 01 */ addi r3, r3, 0x1
/* 80028CBC 00024AFC 42 00 FF E8 */ bdnz lbl_80028CA4
.global lbl_80028CC0
lbl_80028CC0:
/* 80028CC0 00024B00 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028CC4 00024B04 54 00 00 3A */ clrrwi r0, r0, 2
/* 80028CC8 00024B08 90 1F 00 0C */ stw r0, 0xc(r31)
.global lbl_80028CCC
lbl_80028CCC:
/* 80028CCC 00024B0C 4B FF 2A 05 */ bl __OSGetDIConfig
/* 80028CD0 00024B10 28 03 00 FF */ cmplwi r3, 0xff
/* 80028CD4 00024B14 40 82 00 78 */ bne lbl_80028D4C
/* 80028CD8 00024B18 4B FF 17 89 */ bl OSGetConsoleType
/* 80028CDC 00024B1C 54 63 00 06 */ clrrwi r3, r3, 28
/* 80028CE0 00024B20 3C 03 E0 00 */ addis r0, r3, 0xe000
/* 80028CE4 00024B24 28 00 00 00 */ cmplwi r0, 0x0
/* 80028CE8 00024B28 41 82 00 64 */ beq lbl_80028D4C
/* 80028CEC 00024B2C 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 80028CF0 00024B30 2C 00 00 04 */ cmpwi r0, 0x4
/* 80028CF4 00024B34 40 82 00 58 */ bne lbl_80028D4C
/* 80028CF8 00024B38 3C 00 CD 00 */ lis r0, 0xcd00
/* 80028CFC 00024B3C 7C 80 F2 14 */ add r4, r0, r30
/* 80028D00 00024B40 80 04 68 00 */ lwz r0, 0x6800(r4)
/* 80028D04 00024B44 54 00 06 77 */ rlwinm. r0, r0, 0, 25, 27
/* 80028D08 00024B48 40 82 00 44 */ bne lbl_80028D4C
/* 80028D0C 00024B4C 80 64 68 10 */ lwz r3, 0x6810(r4)
/* 80028D10 00024B50 3C 03 FE FF */ addis r0, r3, 0xfeff
/* 80028D14 00024B54 28 00 00 00 */ cmplwi r0, 0x0
/* 80028D18 00024B58 41 82 00 24 */ beq lbl_80028D3C
/* 80028D1C 00024B5C 80 64 68 10 */ lwz r3, 0x6810(r4)
/* 80028D20 00024B60 3C 03 FA F9 */ addis r0, r3, 0xfaf9
/* 80028D24 00024B64 28 00 00 00 */ cmplwi r0, 0x0
/* 80028D28 00024B68 41 82 00 14 */ beq lbl_80028D3C
/* 80028D2C 00024B6C 80 64 68 10 */ lwz r3, 0x6810(r4)
/* 80028D30 00024B70 3C 03 FB DE */ addis r0, r3, 0xfbde
/* 80028D34 00024B74 28 00 00 01 */ cmplwi r0, 0x1
/* 80028D38 00024B78 40 82 00 14 */ bne lbl_80028D4C
.global lbl_80028D3C
lbl_80028D3C:
/* 80028D3C 00024B7C 3C 60 80 00 */ lis r3, 0x800030E6@ha
/* 80028D40 00024B80 A0 03 30 E6 */ lhz r0, 0x800030E6@l(r3)
/* 80028D44 00024B84 28 00 82 00 */ cmplwi r0, 0x8200
/* 80028D48 00024B88 40 82 00 08 */ bne lbl_80028D50
.global lbl_80028D4C
lbl_80028D4C:
/* 80028D4C 00024B8C 3B A0 00 01 */ li r29, 0x1
.global lbl_80028D50
lbl_80028D50:
/* 80028D50 00024B90 7F 83 E3 78 */ mr r3, r28
/* 80028D54 00024B94 4B FF 8B 0D */ bl OSRestoreInterrupts
/* 80028D58 00024B98 48 00 00 10 */ b lbl_80028D68
.global lbl_80028D5C
lbl_80028D5C:
/* 80028D5C 00024B9C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028D60 00024BA0 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
/* 80028D64 00024BA4 40 82 FD EC */ bne lbl_80028B50
.global lbl_80028D68
lbl_80028D68:
/* 80028D68 00024BA8 7F A3 EB 78 */ mr r3, r29
/* 80028D6C 00024BAC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80028D70 00024BB0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80028D74 00024BB4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80028D78 00024BB8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80028D7C 00024BBC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80028D80 00024BC0 7C 08 03 A6 */ mtlr r0
/* 80028D84 00024BC4 38 21 00 20 */ addi r1, r1, 0x20
/* 80028D88 00024BC8 4E 80 00 20 */ blr
/* 80028D8C 00024BCC 00 00 00 00 */ .4byte 0x00000000
.global EXISetExiCallback
EXISetExiCallback:
/* 80028D90 00024BD0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80028D94 00024BD4 7C 08 02 A6 */ mflr r0
/* 80028D98 00024BD8 90 01 00 24 */ stw r0, 0x24(r1)
/* 80028D9C 00024BDC 39 61 00 20 */ addi r11, r1, 0x20
/* 80028DA0 00024BE0 4B FD E5 99 */ bl lbl_80007338
/* 80028DA4 00024BE4 7C 7A 1B 78 */ mr r26, r3
/* 80028DA8 00024BE8 7C 9B 23 78 */ mr r27, r4
/* 80028DAC 00024BEC 54 60 30 32 */ slwi r0, r3, 6
/* 80028DB0 00024BF0 3F E0 80 4A */ lis r31, Ecb@ha
/* 80028DB4 00024BF4 3B FF A2 90 */ addi r31, r31, Ecb@l
/* 80028DB8 00024BF8 7F DF 02 14 */ add r30, r31, r0
/* 80028DBC 00024BFC 4B FF 8A 65 */ bl OSDisableInterrupts
/* 80028DC0 00024C00 7C 7C 1B 78 */ mr r28, r3
/* 80028DC4 00024C04 83 BE 00 00 */ lwz r29, 0x0(r30)
/* 80028DC8 00024C08 93 7E 00 00 */ stw r27, 0x0(r30)
/* 80028DCC 00024C0C 2C 1A 00 02 */ cmpwi r26, 0x2
/* 80028DD0 00024C10 41 82 00 14 */ beq lbl_80028DE4
/* 80028DD4 00024C14 7F 43 D3 78 */ mr r3, r26
/* 80028DD8 00024C18 7F C4 F3 78 */ mr r4, r30
/* 80028DDC 00024C1C 4B FF F8 15 */ bl SetExiInterruptMask
/* 80028DE0 00024C20 48 00 00 10 */ b lbl_80028DF0
.global lbl_80028DE4
lbl_80028DE4:
/* 80028DE4 00024C24 38 60 00 00 */ li r3, 0x0
/* 80028DE8 00024C28 7F E4 FB 78 */ mr r4, r31
/* 80028DEC 00024C2C 4B FF F8 05 */ bl SetExiInterruptMask
.global lbl_80028DF0
lbl_80028DF0:
/* 80028DF0 00024C30 7F 83 E3 78 */ mr r3, r28
/* 80028DF4 00024C34 4B FF 8A 6D */ bl OSRestoreInterrupts
/* 80028DF8 00024C38 7F A3 EB 78 */ mr r3, r29
/* 80028DFC 00024C3C 39 61 00 20 */ addi r11, r1, 0x20
/* 80028E00 00024C40 4B FD E5 85 */ bl lbl_80007384
/* 80028E04 00024C44 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80028E08 00024C48 7C 08 03 A6 */ mtlr r0
/* 80028E0C 00024C4C 38 21 00 20 */ addi r1, r1, 0x20
/* 80028E10 00024C50 4E 80 00 20 */ blr
/* 80028E14 00024C54 00 00 00 00 */ .4byte 0x00000000
/* 80028E18 00024C58 00 00 00 00 */ .4byte 0x00000000
/* 80028E1C 00024C5C 00 00 00 00 */ .4byte 0x00000000
.global __EXIProbe
__EXIProbe:
/* 80028E20 00024C60 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80028E24 00024C64 7C 08 02 A6 */ mflr r0
/* 80028E28 00024C68 90 01 00 24 */ stw r0, 0x24(r1)
/* 80028E2C 00024C6C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80028E30 00024C70 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80028E34 00024C74 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80028E38 00024C78 93 81 00 10 */ stw r28, 0x10(r1)
/* 80028E3C 00024C7C 7C 7C 1B 78 */ mr r28, r3
/* 80028E40 00024C80 54 60 30 32 */ slwi r0, r3, 6
/* 80028E44 00024C84 3C 80 80 4A */ lis r4, Ecb@ha
/* 80028E48 00024C88 38 84 A2 90 */ addi r4, r4, Ecb@l
/* 80028E4C 00024C8C 7F E4 02 14 */ add r31, r4, r0
/* 80028E50 00024C90 2C 03 00 02 */ cmpwi r3, 0x2
/* 80028E54 00024C94 40 82 00 0C */ bne lbl_80028E60
/* 80028E58 00024C98 38 60 00 01 */ li r3, 0x1
/* 80028E5C 00024C9C 48 00 01 24 */ b lbl_80028F80
.global lbl_80028E60
lbl_80028E60:
/* 80028E60 00024CA0 3B A0 00 01 */ li r29, 0x1
/* 80028E64 00024CA4 4B FF 89 BD */ bl OSDisableInterrupts
/* 80028E68 00024CA8 7C 7E 1B 78 */ mr r30, r3
/* 80028E6C 00024CAC 1C 7C 00 14 */ mulli r3, r28, 0x14
/* 80028E70 00024CB0 3C 00 CD 00 */ lis r0, 0xcd00
/* 80028E74 00024CB4 7C 60 1A 14 */ add r3, r0, r3
/* 80028E78 00024CB8 80 A3 68 00 */ lwz r5, 0x6800(r3)
/* 80028E7C 00024CBC 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80028E80 00024CC0 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
/* 80028E84 00024CC4 40 82 00 C4 */ bne lbl_80028F48
/* 80028E88 00024CC8 54 A0 05 29 */ rlwinm. r0, r5, 0, 20, 20
/* 80028E8C 00024CCC 41 82 00 2C */ beq lbl_80028EB8
/* 80028E90 00024CD0 80 03 68 00 */ lwz r0, 0x6800(r3)
/* 80028E94 00024CD4 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 80028E98 00024CD8 60 00 08 00 */ ori r0, r0, 0x800
/* 80028E9C 00024CDC 90 03 68 00 */ stw r0, 0x6800(r3)
/* 80028EA0 00024CE0 38 80 00 00 */ li r4, 0x0
/* 80028EA4 00024CE4 90 9F 00 20 */ stw r4, 0x20(r31)
/* 80028EA8 00024CE8 57 83 10 3A */ slwi r3, r28, 2
/* 80028EAC 00024CEC 3C 00 80 00 */ lis r0, 0x8000
/* 80028EB0 00024CF0 7C 60 1A 14 */ add r3, r0, r3
/* 80028EB4 00024CF4 90 83 30 C0 */ stw r4, 0x30c0(r3)
.global lbl_80028EB8
lbl_80028EB8:
/* 80028EB8 00024CF8 54 A0 04 E7 */ rlwinm. r0, r5, 0, 19, 19
/* 80028EBC 00024CFC 41 82 00 6C */ beq lbl_80028F28
/* 80028EC0 00024D00 4B FF CC 81 */ bl OSGetTime
/* 80028EC4 00024D04 3F E0 80 00 */ lis r31, 0x800000F8@ha
/* 80028EC8 00024D08 80 1F 00 F8 */ lwz r0, 0x800000F8@l(r31)
/* 80028ECC 00024D0C 54 00 F0 BE */ srwi r0, r0, 2
/* 80028ED0 00024D10 3C A0 10 62 */ lis r5, 0x1062
/* 80028ED4 00024D14 38 A5 4D D3 */ addi r5, r5, 0x4dd3
/* 80028ED8 00024D18 7C 05 00 16 */ mulhwu r0, r5, r0
/* 80028EDC 00024D1C 54 06 D1 BE */ srwi r6, r0, 6
/* 80028EE0 00024D20 38 A0 00 00 */ li r5, 0x0
/* 80028EE4 00024D24 4B FD E5 A9 */ bl __div2i
/* 80028EE8 00024D28 38 C0 00 64 */ li r6, 0x64
/* 80028EEC 00024D2C 38 A0 00 00 */ li r5, 0x0
/* 80028EF0 00024D30 4B FD E5 9D */ bl __div2i
/* 80028EF4 00024D34 38 84 00 01 */ addi r4, r4, 0x1
/* 80028EF8 00024D38 57 80 10 3A */ slwi r0, r28, 2
/* 80028EFC 00024D3C 7C 7F 02 14 */ add r3, r31, r0
/* 80028F00 00024D40 80 03 30 C0 */ lwz r0, 0x30c0(r3)
/* 80028F04 00024D44 2C 00 00 00 */ cmpwi r0, 0x0
/* 80028F08 00024D48 40 82 00 08 */ bne lbl_80028F10
/* 80028F0C 00024D4C 90 83 30 C0 */ stw r4, 0x30c0(r3)
.global lbl_80028F10
lbl_80028F10:
/* 80028F10 00024D50 80 03 30 C0 */ lwz r0, 0x30c0(r3)
/* 80028F14 00024D54 7C 00 20 50 */ subf r0, r0, r4
/* 80028F18 00024D58 2C 00 00 03 */ cmpwi r0, 0x3
/* 80028F1C 00024D5C 40 80 00 58 */ bge lbl_80028F74
/* 80028F20 00024D60 3B A0 00 00 */ li r29, 0x0
/* 80028F24 00024D64 48 00 00 50 */ b lbl_80028F74
.global lbl_80028F28
lbl_80028F28:
/* 80028F28 00024D68 38 80 00 00 */ li r4, 0x0
/* 80028F2C 00024D6C 90 9F 00 20 */ stw r4, 0x20(r31)
/* 80028F30 00024D70 57 83 10 3A */ slwi r3, r28, 2
/* 80028F34 00024D74 3C 00 80 00 */ lis r0, 0x8000
/* 80028F38 00024D78 7C 60 1A 14 */ add r3, r0, r3
/* 80028F3C 00024D7C 90 83 30 C0 */ stw r4, 0x30c0(r3)
/* 80028F40 00024D80 3B A0 00 00 */ li r29, 0x0
/* 80028F44 00024D84 48 00 00 30 */ b lbl_80028F74
.global lbl_80028F48
lbl_80028F48:
/* 80028F48 00024D88 54 A0 04 E7 */ rlwinm. r0, r5, 0, 19, 19
/* 80028F4C 00024D8C 41 82 00 0C */ beq lbl_80028F58
/* 80028F50 00024D90 54 A0 05 29 */ rlwinm. r0, r5, 0, 20, 20
/* 80028F54 00024D94 41 82 00 20 */ beq lbl_80028F74
.global lbl_80028F58
lbl_80028F58:
/* 80028F58 00024D98 38 80 00 00 */ li r4, 0x0
/* 80028F5C 00024D9C 90 9F 00 20 */ stw r4, 0x20(r31)
/* 80028F60 00024DA0 57 83 10 3A */ slwi r3, r28, 2
/* 80028F64 00024DA4 3C 00 80 00 */ lis r0, 0x8000
/* 80028F68 00024DA8 7C 60 1A 14 */ add r3, r0, r3
/* 80028F6C 00024DAC 90 83 30 C0 */ stw r4, 0x30c0(r3)
/* 80028F70 00024DB0 3B A0 00 00 */ li r29, 0x0
.global lbl_80028F74
lbl_80028F74:
/* 80028F74 00024DB4 7F C3 F3 78 */ mr r3, r30
/* 80028F78 00024DB8 4B FF 88 E9 */ bl OSRestoreInterrupts
/* 80028F7C 00024DBC 7F A3 EB 78 */ mr r3, r29
.global lbl_80028F80
lbl_80028F80:
/* 80028F80 00024DC0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80028F84 00024DC4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80028F88 00024DC8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80028F8C 00024DCC 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80028F90 00024DD0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80028F94 00024DD4 7C 08 03 A6 */ mtlr r0
/* 80028F98 00024DD8 38 21 00 20 */ addi r1, r1, 0x20
/* 80028F9C 00024DDC 4E 80 00 20 */ blr
.global EXIAttach
EXIAttach:
/* 80028FA0 00024DE0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80028FA4 00024DE4 7C 08 02 A6 */ mflr r0
/* 80028FA8 00024DE8 90 01 00 34 */ stw r0, 0x34(r1)
/* 80028FAC 00024DEC 39 61 00 30 */ addi r11, r1, 0x30
/* 80028FB0 00024DF0 4B FD E3 8D */ bl lbl_8000733C
/* 80028FB4 00024DF4 7C 7D 1B 78 */ mr r29, r3
/* 80028FB8 00024DF8 7C 9B 23 78 */ mr r27, r4
/* 80028FBC 00024DFC 54 60 30 32 */ slwi r0, r3, 6
/* 80028FC0 00024E00 3C 80 80 4A */ lis r4, Ecb@ha
/* 80028FC4 00024E04 38 84 A2 90 */ addi r4, r4, Ecb@l
/* 80028FC8 00024E08 7F E4 02 14 */ add r31, r4, r0
/* 80028FCC 00024E0C 4B FF FE 55 */ bl __EXIProbe
/* 80028FD0 00024E10 2C 03 00 00 */ cmpwi r3, 0x0
/* 80028FD4 00024E14 41 82 00 20 */ beq lbl_80028FF4
/* 80028FD8 00024E18 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 80028FDC 00024E1C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80028FE0 00024E20 40 82 00 14 */ bne lbl_80028FF4
/* 80028FE4 00024E24 7F A3 EB 78 */ mr r3, r29
/* 80028FE8 00024E28 38 80 00 00 */ li r4, 0x0
/* 80028FEC 00024E2C 38 A1 00 08 */ addi r5, r1, 0x8
/* 80028FF0 00024E30 48 00 0B 51 */ bl EXIGetID
.global lbl_80028FF4
lbl_80028FF4:
/* 80028FF4 00024E34 4B FF 88 2D */ bl OSDisableInterrupts
/* 80028FF8 00024E38 7C 7E 1B 78 */ mr r30, r3
/* 80028FFC 00024E3C 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 80029000 00024E40 2C 00 00 00 */ cmpwi r0, 0x0
/* 80029004 00024E44 40 82 00 10 */ bne lbl_80029014
/* 80029008 00024E48 4B FF 88 59 */ bl OSRestoreInterrupts
/* 8002900C 00024E4C 38 60 00 00 */ li r3, 0x0
/* 80029010 00024E50 48 00 00 90 */ b lbl_800290A0
.global lbl_80029014
lbl_80029014:
/* 80029014 00024E54 4B FF 88 0D */ bl OSDisableInterrupts
/* 80029018 00024E58 7C 7C 1B 78 */ mr r28, r3
/* 8002901C 00024E5C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80029020 00024E60 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
/* 80029024 00024E64 40 82 00 14 */ bne lbl_80029038
/* 80029028 00024E68 7F A3 EB 78 */ mr r3, r29
/* 8002902C 00024E6C 4B FF FD F5 */ bl __EXIProbe
/* 80029030 00024E70 2C 03 00 00 */ cmpwi r3, 0x0
/* 80029034 00024E74 40 82 00 14 */ bne lbl_80029048
.global lbl_80029038
lbl_80029038:
/* 80029038 00024E78 7F 83 E3 78 */ mr r3, r28
/* 8002903C 00024E7C 4B FF 88 25 */ bl OSRestoreInterrupts
/* 80029040 00024E80 3B A0 00 00 */ li r29, 0x0
/* 80029044 00024E84 48 00 00 50 */ b lbl_80029094
.global lbl_80029048
lbl_80029048:
/* 80029048 00024E88 1C 7D 00 14 */ mulli r3, r29, 0x14
/* 8002904C 00024E8C 3C 00 CD 00 */ lis r0, 0xcd00
/* 80029050 00024E90 7C 60 1A 14 */ add r3, r0, r3
/* 80029054 00024E94 80 03 68 00 */ lwz r0, 0x6800(r3)
/* 80029058 00024E98 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 8002905C 00024E9C 60 00 00 02 */ ori r0, r0, 0x2
/* 80029060 00024EA0 90 03 68 00 */ stw r0, 0x6800(r3)
/* 80029064 00024EA4 93 7F 00 08 */ stw r27, 0x8(r31)
/* 80029068 00024EA8 3C 60 00 10 */ lis r3, 0x10
/* 8002906C 00024EAC 57 A0 10 3A */ slwi r0, r29, 2
/* 80029070 00024EB0 7C 1D 00 50 */ subf r0, r29, r0
/* 80029074 00024EB4 7C 63 04 30 */ srw r3, r3, r0
/* 80029078 00024EB8 4B FF 8B F9 */ bl __OSUnmaskInterrupts
/* 8002907C 00024EBC 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80029080 00024EC0 60 00 00 08 */ ori r0, r0, 0x8
/* 80029084 00024EC4 90 1F 00 0C */ stw r0, 0xc(r31)
/* 80029088 00024EC8 7F 83 E3 78 */ mr r3, r28
/* 8002908C 00024ECC 4B FF 87 D5 */ bl OSRestoreInterrupts
/* 80029090 00024ED0 3B A0 00 01 */ li r29, 0x1
.global lbl_80029094
lbl_80029094:
/* 80029094 00024ED4 7F C3 F3 78 */ mr r3, r30
/* 80029098 00024ED8 4B FF 87 C9 */ bl OSRestoreInterrupts
/* 8002909C 00024EDC 7F A3 EB 78 */ mr r3, r29
.global lbl_800290A0
lbl_800290A0:
/* 800290A0 00024EE0 39 61 00 30 */ addi r11, r1, 0x30
/* 800290A4 00024EE4 4B FD E2 E5 */ bl lbl_80007388
/* 800290A8 00024EE8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800290AC 00024EEC 7C 08 03 A6 */ mtlr r0
/* 800290B0 00024EF0 38 21 00 30 */ addi r1, r1, 0x30
/* 800290B4 00024EF4 4E 80 00 20 */ blr
/* 800290B8 00024EF8 00 00 00 00 */ .4byte 0x00000000
/* 800290BC 00024EFC 00 00 00 00 */ .4byte 0x00000000
.global EXIDetach
EXIDetach:
/* 800290C0 00024F00 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800290C4 00024F04 7C 08 02 A6 */ mflr r0
/* 800290C8 00024F08 90 01 00 24 */ stw r0, 0x24(r1)
/* 800290CC 00024F0C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800290D0 00024F10 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800290D4 00024F14 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800290D8 00024F18 7C 7D 1B 78 */ mr r29, r3
/* 800290DC 00024F1C 54 60 30 32 */ slwi r0, r3, 6
/* 800290E0 00024F20 3C 60 80 4A */ lis r3, Ecb@ha
/* 800290E4 00024F24 38 63 A2 90 */ addi r3, r3, Ecb@l
/* 800290E8 00024F28 7F E3 02 14 */ add r31, r3, r0
/* 800290EC 00024F2C 4B FF 87 35 */ bl OSDisableInterrupts
/* 800290F0 00024F30 7C 7E 1B 78 */ mr r30, r3
/* 800290F4 00024F34 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 800290F8 00024F38 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
/* 800290FC 00024F3C 40 82 00 10 */ bne lbl_8002910C
/* 80029100 00024F40 4B FF 87 61 */ bl OSRestoreInterrupts
/* 80029104 00024F44 38 60 00 01 */ li r3, 0x1
/* 80029108 00024F48 48 00 00 54 */ b lbl_8002915C
.global lbl_8002910C
lbl_8002910C:
/* 8002910C 00024F4C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80029110 00024F50 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
/* 80029114 00024F54 41 82 00 1C */ beq lbl_80029130
/* 80029118 00024F58 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 8002911C 00024F5C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80029120 00024F60 40 82 00 10 */ bne lbl_80029130
/* 80029124 00024F64 4B FF 87 3D */ bl OSRestoreInterrupts
/* 80029128 00024F68 38 60 00 00 */ li r3, 0x0
/* 8002912C 00024F6C 48 00 00 30 */ b lbl_8002915C
.global lbl_80029130
lbl_80029130:
/* 80029130 00024F70 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80029134 00024F74 54 00 07 76 */ rlwinm r0, r0, 0, 29, 27
/* 80029138 00024F78 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8002913C 00024F7C 3C 60 00 50 */ lis r3, 0x50
/* 80029140 00024F80 57 A0 10 3A */ slwi r0, r29, 2
/* 80029144 00024F84 7C 1D 00 50 */ subf r0, r29, r0
/* 80029148 00024F88 7C 63 04 30 */ srw r3, r3, r0
/* 8002914C 00024F8C 4B FF 8A A5 */ bl __OSMaskInterrupts
/* 80029150 00024F90 7F C3 F3 78 */ mr r3, r30
/* 80029154 00024F94 4B FF 87 0D */ bl OSRestoreInterrupts
/* 80029158 00024F98 38 60 00 01 */ li r3, 0x1
.global lbl_8002915C
lbl_8002915C:
/* 8002915C 00024F9C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80029160 00024FA0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80029164 00024FA4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80029168 00024FA8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002916C 00024FAC 7C 08 03 A6 */ mtlr r0
/* 80029170 00024FB0 38 21 00 20 */ addi r1, r1, 0x20
/* 80029174 00024FB4 4E 80 00 20 */ blr
/* 80029178 00024FB8 00 00 00 00 */ .4byte 0x00000000
/* 8002917C 00024FBC 00 00 00 00 */ .4byte 0x00000000
.global EXISelect
EXISelect:
/* 80029180 00024FC0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80029184 00024FC4 7C 08 02 A6 */ mflr r0
/* 80029188 00024FC8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002918C 00024FCC 39 61 00 20 */ addi r11, r1, 0x20
/* 80029190 00024FD0 4B FD E1 AD */ bl lbl_8000733C
/* 80029194 00024FD4 7C 7B 1B 78 */ mr r27, r3
/* 80029198 00024FD8 7C 9C 23 78 */ mr r28, r4
/* 8002919C 00024FDC 7C BD 2B 78 */ mr r29, r5
/* 800291A0 00024FE0 54 60 30 32 */ slwi r0, r3, 6
/* 800291A4 00024FE4 3C 60 80 4A */ lis r3, Ecb@ha
/* 800291A8 00024FE8 38 63 A2 90 */ addi r3, r3, Ecb@l
/* 800291AC 00024FEC 7F E3 02 14 */ add r31, r3, r0
/* 800291B0 00024FF0 4B FF 86 71 */ bl OSDisableInterrupts
/* 800291B4 00024FF4 7C 7E 1B 78 */ mr r30, r3
/* 800291B8 00024FF8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 800291BC 00024FFC 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
/* 800291C0 00025000 40 82 00 48 */ bne lbl_80029208
/* 800291C4 00025004 2C 1B 00 02 */ cmpwi r27, 0x2
/* 800291C8 00025008 41 82 00 50 */ beq lbl_80029218
/* 800291CC 0002500C 2C 1C 00 00 */ cmpwi r28, 0x0
/* 800291D0 00025010 40 82 00 20 */ bne lbl_800291F0
/* 800291D4 00025014 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 800291D8 00025018 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
/* 800291DC 0002501C 40 82 00 14 */ bne lbl_800291F0
/* 800291E0 00025020 7F 63 DB 78 */ mr r3, r27
/* 800291E4 00025024 4B FF FC 3D */ bl __EXIProbe
/* 800291E8 00025028 2C 03 00 00 */ cmpwi r3, 0x0
/* 800291EC 0002502C 41 82 00 1C */ beq lbl_80029208
.global lbl_800291F0
lbl_800291F0:
/* 800291F0 00025030 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 800291F4 00025034 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
/* 800291F8 00025038 41 82 00 10 */ beq lbl_80029208
/* 800291FC 0002503C 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 80029200 00025040 7C 00 E0 40 */ cmplw r0, r28
/* 80029204 00025044 41 82 00 14 */ beq lbl_80029218
.global lbl_80029208
lbl_80029208:
/* 80029208 00025048 7F C3 F3 78 */ mr r3, r30
/* 8002920C 0002504C 4B FF 86 55 */ bl OSRestoreInterrupts
/* 80029210 00025050 38 60 00 00 */ li r3, 0x0
/* 80029214 00025054 48 00 00 80 */ b lbl_80029294
.global lbl_80029218
lbl_80029218:
/* 80029218 00025058 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8002921C 0002505C 60 00 00 04 */ ori r0, r0, 0x4
/* 80029220 00025060 90 1F 00 0C */ stw r0, 0xc(r31)
/* 80029224 00025064 1C 7B 00 14 */ mulli r3, r27, 0x14
/* 80029228 00025068 3C 00 CD 00 */ lis r0, 0xcd00
/* 8002922C 0002506C 7C 80 1A 14 */ add r4, r0, r3
/* 80029230 00025070 80 64 68 00 */ lwz r3, 0x6800(r4)
/* 80029234 00025074 70 63 04 05 */ andi. r3, r3, 0x405
/* 80029238 00025078 57 A0 20 36 */ slwi r0, r29, 4
/* 8002923C 0002507C 7C 63 03 78 */ or r3, r3, r0
/* 80029240 00025080 38 00 00 01 */ li r0, 0x1
/* 80029244 00025084 7C 00 E0 30 */ slw r0, r0, r28
/* 80029248 00025088 54 00 38 30 */ slwi r0, r0, 7
/* 8002924C 0002508C 7C 63 03 78 */ or r3, r3, r0
/* 80029250 00025090 90 64 68 00 */ stw r3, 0x6800(r4)
/* 80029254 00025094 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80029258 00025098 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
/* 8002925C 0002509C 41 82 00 2C */ beq lbl_80029288
/* 80029260 000250A0 2C 1B 00 00 */ cmpwi r27, 0x0
/* 80029264 000250A4 41 82 00 10 */ beq lbl_80029274
/* 80029268 000250A8 2C 1B 00 01 */ cmpwi r27, 0x1
/* 8002926C 000250AC 41 82 00 14 */ beq lbl_80029280
/* 80029270 000250B0 48 00 00 18 */ b lbl_80029288
.global lbl_80029274
lbl_80029274:
/* 80029274 000250B4 3C 60 00 10 */ lis r3, 0x10
/* 80029278 000250B8 4B FF 89 79 */ bl __OSMaskInterrupts
/* 8002927C 000250BC 48 00 00 0C */ b lbl_80029288
.global lbl_80029280
lbl_80029280:
/* 80029280 000250C0 3C 60 00 02 */ lis r3, 0x2
/* 80029284 000250C4 4B FF 89 6D */ bl __OSMaskInterrupts
.global lbl_80029288
lbl_80029288:
/* 80029288 000250C8 7F C3 F3 78 */ mr r3, r30
/* 8002928C 000250CC 4B FF 85 D5 */ bl OSRestoreInterrupts
/* 80029290 000250D0 38 60 00 01 */ li r3, 0x1
.global lbl_80029294
lbl_80029294:
/* 80029294 000250D4 39 61 00 20 */ addi r11, r1, 0x20
/* 80029298 000250D8 4B FD E0 F1 */ bl lbl_80007388
/* 8002929C 000250DC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800292A0 000250E0 7C 08 03 A6 */ mtlr r0
/* 800292A4 000250E4 38 21 00 20 */ addi r1, r1, 0x20
/* 800292A8 000250E8 4E 80 00 20 */ blr
/* 800292AC 000250EC 00 00 00 00 */ .4byte 0x00000000
.global EXIDeselect
EXIDeselect:
/* 800292B0 000250F0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800292B4 000250F4 7C 08 02 A6 */ mflr r0
/* 800292B8 000250F8 90 01 00 24 */ stw r0, 0x24(r1)
/* 800292BC 000250FC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800292C0 00025100 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800292C4 00025104 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800292C8 00025108 93 81 00 10 */ stw r28, 0x10(r1)
/* 800292CC 0002510C 7C 7C 1B 78 */ mr r28, r3
/* 800292D0 00025110 54 60 30 32 */ slwi r0, r3, 6
/* 800292D4 00025114 3C 60 80 4A */ lis r3, Ecb@ha
/* 800292D8 00025118 38 63 A2 90 */ addi r3, r3, Ecb@l
/* 800292DC 0002511C 7F E3 02 14 */ add r31, r3, r0
/* 800292E0 00025120 4B FF 85 41 */ bl OSDisableInterrupts
/* 800292E4 00025124 7C 7D 1B 78 */ mr r29, r3
/* 800292E8 00025128 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 800292EC 0002512C 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
/* 800292F0 00025130 40 82 00 10 */ bne lbl_80029300
/* 800292F4 00025134 4B FF 85 6D */ bl OSRestoreInterrupts
/* 800292F8 00025138 38 60 00 00 */ li r3, 0x0
/* 800292FC 0002513C 48 00 00 90 */ b lbl_8002938C
.global lbl_80029300
lbl_80029300:
/* 80029300 00025140 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80029304 00025144 54 00 07 B8 */ rlwinm r0, r0, 0, 30, 28
/* 80029308 00025148 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8002930C 0002514C 1C 7C 00 14 */ mulli r3, r28, 0x14
/* 80029310 00025150 3C 00 CD 00 */ lis r0, 0xcd00
/* 80029314 00025154 7C 60 1A 14 */ add r3, r0, r3
/* 80029318 00025158 83 C3 68 00 */ lwz r30, 0x6800(r3)
/* 8002931C 0002515C 73 C0 04 05 */ andi. r0, r30, 0x405
/* 80029320 00025160 90 03 68 00 */ stw r0, 0x6800(r3)
/* 80029324 00025164 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80029328 00025168 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
/* 8002932C 0002516C 41 82 00 2C */ beq lbl_80029358
/* 80029330 00025170 2C 1C 00 00 */ cmpwi r28, 0x0
/* 80029334 00025174 41 82 00 10 */ beq lbl_80029344
/* 80029338 00025178 2C 1C 00 01 */ cmpwi r28, 0x1
/* 8002933C 0002517C 41 82 00 14 */ beq lbl_80029350
/* 80029340 00025180 48 00 00 18 */ b lbl_80029358
.global lbl_80029344
lbl_80029344:
/* 80029344 00025184 3C 60 00 10 */ lis r3, 0x10
/* 80029348 00025188 4B FF 89 29 */ bl __OSUnmaskInterrupts
/* 8002934C 0002518C 48 00 00 0C */ b lbl_80029358
.global lbl_80029350
lbl_80029350:
/* 80029350 00025190 3C 60 00 02 */ lis r3, 0x2
/* 80029354 00025194 4B FF 89 1D */ bl __OSUnmaskInterrupts
.global lbl_80029358
lbl_80029358:
/* 80029358 00025198 7F A3 EB 78 */ mr r3, r29
/* 8002935C 0002519C 4B FF 85 05 */ bl OSRestoreInterrupts
/* 80029360 000251A0 2C 1C 00 02 */ cmpwi r28, 0x2
/* 80029364 000251A4 41 82 00 24 */ beq lbl_80029388
/* 80029368 000251A8 57 C0 06 31 */ rlwinm. r0, r30, 0, 24, 24
/* 8002936C 000251AC 41 82 00 1C */ beq lbl_80029388
/* 80029370 000251B0 7F 83 E3 78 */ mr r3, r28
/* 80029374 000251B4 4B FF FA AD */ bl __EXIProbe
/* 80029378 000251B8 7C 03 00 D0 */ neg r0, r3
/* 8002937C 000251BC 7C 00 1B 78 */ or r0, r0, r3
/* 80029380 000251C0 54 03 0F FE */ srwi r3, r0, 31
/* 80029384 000251C4 48 00 00 08 */ b lbl_8002938C
.global lbl_80029388
lbl_80029388:
/* 80029388 000251C8 38 60 00 01 */ li r3, 0x1
.global lbl_8002938C
lbl_8002938C:
/* 8002938C 000251CC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80029390 000251D0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80029394 000251D4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80029398 000251D8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8002939C 000251DC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800293A0 000251E0 7C 08 03 A6 */ mtlr r0
/* 800293A4 000251E4 38 21 00 20 */ addi r1, r1, 0x20
/* 800293A8 000251E8 4E 80 00 20 */ blr
/* 800293AC 000251EC 00 00 00 00 */ .4byte 0x00000000
.global EXIIntrruptHandler
EXIIntrruptHandler:
/* 800293B0 000251F0 94 21 FD 20 */ stwu r1, -0x2e0(r1)
/* 800293B4 000251F4 7C 08 02 A6 */ mflr r0
/* 800293B8 000251F8 90 01 02 E4 */ stw r0, 0x2e4(r1)
/* 800293BC 000251FC 93 E1 02 DC */ stw r31, 0x2dc(r1)
/* 800293C0 00025200 93 C1 02 D8 */ stw r30, 0x2d8(r1)
/* 800293C4 00025204 93 A1 02 D4 */ stw r29, 0x2d4(r1)
/* 800293C8 00025208 7C 9D 23 78 */ mr r29, r4
/* 800293CC 0002520C 38 03 FF F7 */ addi r0, r3, -0x9
/* 800293D0 00025210 3C 60 55 55 */ lis r3, 0x5555
/* 800293D4 00025214 38 63 55 56 */ addi r3, r3, 0x5556
/* 800293D8 00025218 7C 63 00 96 */ mulhw r3, r3, r0
/* 800293DC 0002521C 54 60 0F FE */ srwi r0, r3, 31
/* 800293E0 00025220 7F E3 02 14 */ add r31, r3, r0
/* 800293E4 00025224 1C 7F 00 14 */ mulli r3, r31, 0x14
/* 800293E8 00025228 3C 00 CD 00 */ lis r0, 0xcd00
/* 800293EC 0002522C 7C 60 1A 14 */ add r3, r0, r3
/* 800293F0 00025230 80 03 68 00 */ lwz r0, 0x6800(r3)
/* 800293F4 00025234 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 800293F8 00025238 60 00 00 02 */ ori r0, r0, 0x2
/* 800293FC 0002523C 90 03 68 00 */ stw r0, 0x6800(r3)
/* 80029400 00025240 57 E0 30 32 */ slwi r0, r31, 6
/* 80029404 00025244 3C 60 80 4A */ lis r3, Ecb@ha
/* 80029408 00025248 38 63 A2 90 */ addi r3, r3, Ecb@l
/* 8002940C 0002524C 7F C3 00 2E */ lwzx r30, r3, r0
/* 80029410 00025250 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80029414 00025254 41 82 00 38 */ beq lbl_8002944C
/* 80029418 00025258 38 61 00 08 */ addi r3, r1, 0x8
/* 8002941C 0002525C 4B FF 40 25 */ bl OSClearContext
/* 80029420 00025260 38 61 00 08 */ addi r3, r1, 0x8
/* 80029424 00025264 4B FF 3D DD */ bl OSSetCurrentContext
/* 80029428 00025268 7F E3 FB 78 */ mr r3, r31
/* 8002942C 0002526C 7F A4 EB 78 */ mr r4, r29
/* 80029430 00025270 7F CC F3 78 */ mr r12, r30
/* 80029434 00025274 7D 89 03 A6 */ mtctr r12
/* 80029438 00025278 4E 80 04 21 */ bctrl
/* 8002943C 0002527C 38 61 00 08 */ addi r3, r1, 0x8
/* 80029440 00025280 4B FF 40 01 */ bl OSClearContext
/* 80029444 00025284 7F A3 EB 78 */ mr r3, r29
/* 80029448 00025288 4B FF 3D B9 */ bl OSSetCurrentContext
.global lbl_8002944C
lbl_8002944C:
/* 8002944C 0002528C 83 E1 02 DC */ lwz r31, 0x2dc(r1)
/* 80029450 00025290 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
/* 80029454 00025294 83 A1 02 D4 */ lwz r29, 0x2d4(r1)
/* 80029458 00025298 80 01 02 E4 */ lwz r0, 0x2e4(r1)
/* 8002945C 0002529C 7C 08 03 A6 */ mtlr r0
/* 80029460 000252A0 38 21 02 E0 */ addi r1, r1, 0x2e0
/* 80029464 000252A4 4E 80 00 20 */ blr
/* 80029468 000252A8 00 00 00 00 */ .4byte 0x00000000
/* 8002946C 000252AC 00 00 00 00 */ .4byte 0x00000000
.global TCIntrruptHandler
TCIntrruptHandler:
/* 80029470 000252B0 94 21 FD 10 */ stwu r1, -0x2f0(r1)
/* 80029474 000252B4 7C 08 02 A6 */ mflr r0
/* 80029478 000252B8 90 01 02 F4 */ stw r0, 0x2f4(r1)
/* 8002947C 000252BC 39 61 02 F0 */ addi r11, r1, 0x2f0
/* 80029480 000252C0 4B FD DE BD */ bl lbl_8000733C
/* 80029484 000252C4 7C 9B 23 78 */ mr r27, r4
/* 80029488 000252C8 38 03 FF F6 */ addi r0, r3, -0xa
/* 8002948C 000252CC 3C 80 55 55 */ lis r4, 0x5555
/* 80029490 000252D0 38 84 55 56 */ addi r4, r4, 0x5556
/* 80029494 000252D4 7C 84 00 96 */ mulhw r4, r4, r0
/* 80029498 000252D8 54 80 0F FE */ srwi r0, r4, 31
/* 8002949C 000252DC 7F A4 02 14 */ add r29, r4, r0
/* 800294A0 000252E0 57 A0 30 32 */ slwi r0, r29, 6
/* 800294A4 000252E4 3C 80 80 4A */ lis r4, Ecb@ha
/* 800294A8 000252E8 38 84 A2 90 */ addi r4, r4, Ecb@l
/* 800294AC 000252EC 7F C4 02 14 */ add r30, r4, r0
/* 800294B0 000252F0 3F E0 80 00 */ lis r31, 0x8000
/* 800294B4 000252F4 7F E3 1C 30 */ srw r3, r31, r3
/* 800294B8 000252F8 4B FF 87 39 */ bl __OSMaskInterrupts
/* 800294BC 000252FC 1C 7D 00 14 */ mulli r3, r29, 0x14
/* 800294C0 00025300 3C 00 CD 00 */ lis r0, 0xcd00
/* 800294C4 00025304 7C 60 1A 14 */ add r3, r0, r3
/* 800294C8 00025308 80 03 68 00 */ lwz r0, 0x6800(r3)
/* 800294CC 0002530C 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 800294D0 00025310 60 00 00 08 */ ori r0, r0, 0x8
/* 800294D4 00025314 90 03 68 00 */ stw r0, 0x6800(r3)
/* 800294D8 00025318 83 9E 00 04 */ lwz r28, 0x4(r30)
/* 800294DC 0002531C 2C 1C 00 00 */ cmpwi r28, 0x0
/* 800294E0 00025320 41 82 01 90 */ beq lbl_80029670
/* 800294E4 00025324 38 00 00 00 */ li r0, 0x0
/* 800294E8 00025328 90 1E 00 04 */ stw r0, 0x4(r30)
/* 800294EC 0002532C 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 800294F0 00025330 54 00 07 BF */ clrlwi. r0, r0, 30
/* 800294F4 00025334 41 82 01 48 */ beq lbl_8002963C
/* 800294F8 00025338 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 800294FC 0002533C 54 00 07 BD */ rlwinm. r0, r0, 0, 30, 30
/* 80029500 00025340 41 82 01 30 */ beq lbl_80029630
/* 80029504 00025344 80 BE 00 10 */ lwz r5, 0x10(r30)
/* 80029508 00025348 2C 85 00 00 */ cmpwi cr1, r5, 0x0
/* 8002950C 0002534C 41 86 01 24 */ beq cr1, lbl_80029630
/* 80029510 00025350 80 9E 00 14 */ lwz r4, 0x14(r30)
/* 80029514 00025354 80 03 68 10 */ lwz r0, 0x6810(r3)
/* 80029518 00025358 38 60 00 00 */ li r3, 0x0
/* 8002951C 0002535C 40 85 01 14 */ ble cr1, lbl_80029630
/* 80029520 00025360 38 E5 FF F8 */ addi r7, r5, -0x8
/* 80029524 00025364 2C 05 00 08 */ cmpwi r5, 0x8
/* 80029528 00025368 40 81 00 DC */ ble lbl_80029604
/* 8002952C 0002536C 39 00 00 00 */ li r8, 0x0
/* 80029530 00025370 41 84 00 14 */ blt cr1, lbl_80029544
/* 80029534 00025374 38 DF FF FE */ addi r6, r31, -0x2
/* 80029538 00025378 7C 05 30 00 */ cmpw r5, r6
/* 8002953C 0002537C 41 81 00 08 */ bgt lbl_80029544
/* 80029540 00025380 39 00 00 01 */ li r8, 0x1
.global lbl_80029544
lbl_80029544:
/* 80029544 00025384 2C 08 00 00 */ cmpwi r8, 0x0
/* 80029548 00025388 41 82 00 BC */ beq lbl_80029604
/* 8002954C 0002538C 38 C7 00 07 */ addi r6, r7, 0x7
/* 80029550 00025390 54 C6 E8 FE */ srwi r6, r6, 3
/* 80029554 00025394 7C C9 03 A6 */ mtctr r6
/* 80029558 00025398 2C 07 00 00 */ cmpwi r7, 0x0
/* 8002955C 0002539C 40 81 00 A8 */ ble lbl_80029604
.global lbl_80029560
lbl_80029560:
/* 80029560 000253A0 20 C3 00 03 */ subfic r6, r3, 0x3
/* 80029564 000253A4 54 C6 18 38 */ slwi r6, r6, 3
/* 80029568 000253A8 7C 06 34 30 */ srw r6, r0, r6
/* 8002956C 000253AC 98 C4 00 00 */ stb r6, 0x0(r4)
/* 80029570 000253B0 38 C3 00 01 */ addi r6, r3, 0x1
/* 80029574 000253B4 20 C6 00 03 */ subfic r6, r6, 0x3
/* 80029578 000253B8 54 C6 18 38 */ slwi r6, r6, 3
/* 8002957C 000253BC 7C 06 34 30 */ srw r6, r0, r6
/* 80029580 000253C0 98 C4 00 01 */ stb r6, 0x1(r4)
/* 80029584 000253C4 38 C3 00 02 */ addi r6, r3, 0x2
/* 80029588 000253C8 20 C6 00 03 */ subfic r6, r6, 0x3
/* 8002958C 000253CC 54 C6 18 38 */ slwi r6, r6, 3
/* 80029590 000253D0 7C 06 34 30 */ srw r6, r0, r6
/* 80029594 000253D4 98 C4 00 02 */ stb r6, 0x2(r4)
/* 80029598 000253D8 7C C3 00 D0 */ neg r6, r3
/* 8002959C 000253DC 54 C6 18 38 */ slwi r6, r6, 3
/* 800295A0 000253E0 7C 06 34 30 */ srw r6, r0, r6
/* 800295A4 000253E4 98 C4 00 03 */ stb r6, 0x3(r4)
/* 800295A8 000253E8 38 C3 00 04 */ addi r6, r3, 0x4
/* 800295AC 000253EC 20 C6 00 03 */ subfic r6, r6, 0x3
/* 800295B0 000253F0 54 C6 18 38 */ slwi r6, r6, 3
/* 800295B4 000253F4 7C 06 34 30 */ srw r6, r0, r6
/* 800295B8 000253F8 98 C4 00 04 */ stb r6, 0x4(r4)
/* 800295BC 000253FC 38 C3 00 05 */ addi r6, r3, 0x5
/* 800295C0 00025400 20 C6 00 03 */ subfic r6, r6, 0x3
/* 800295C4 00025404 54 C6 18 38 */ slwi r6, r6, 3
/* 800295C8 00025408 7C 06 34 30 */ srw r6, r0, r6
/* 800295CC 0002540C 98 C4 00 05 */ stb r6, 0x5(r4)
/* 800295D0 00025410 38 C3 00 06 */ addi r6, r3, 0x6
/* 800295D4 00025414 20 C6 00 03 */ subfic r6, r6, 0x3
/* 800295D8 00025418 54 C6 18 38 */ slwi r6, r6, 3
/* 800295DC 0002541C 7C 06 34 30 */ srw r6, r0, r6
/* 800295E0 00025420 98 C4 00 06 */ stb r6, 0x6(r4)
/* 800295E4 00025424 38 C3 00 07 */ addi r6, r3, 0x7
/* 800295E8 00025428 20 C6 00 03 */ subfic r6, r6, 0x3
/* 800295EC 0002542C 54 C6 18 38 */ slwi r6, r6, 3
/* 800295F0 00025430 7C 06 34 30 */ srw r6, r0, r6
/* 800295F4 00025434 98 C4 00 07 */ stb r6, 0x7(r4)
/* 800295F8 00025438 38 84 00 08 */ addi r4, r4, 0x8
/* 800295FC 0002543C 38 63 00 08 */ addi r3, r3, 0x8
/* 80029600 00025440 42 00 FF 60 */ bdnz lbl_80029560
.global lbl_80029604
lbl_80029604:
/* 80029604 00025444 7C C3 28 50 */ subf r6, r3, r5
/* 80029608 00025448 7C C9 03 A6 */ mtctr r6
/* 8002960C 0002544C 7C 03 28 00 */ cmpw r3, r5
/* 80029610 00025450 40 80 00 20 */ bge lbl_80029630
.global lbl_80029614
lbl_80029614:
/* 80029614 00025454 20 A3 00 03 */ subfic r5, r3, 0x3
/* 80029618 00025458 54 A5 18 38 */ slwi r5, r5, 3
/* 8002961C 0002545C 7C 05 2C 30 */ srw r5, r0, r5
/* 80029620 00025460 98 A4 00 00 */ stb r5, 0x0(r4)
/* 80029624 00025464 38 84 00 01 */ addi r4, r4, 0x1
/* 80029628 00025468 38 63 00 01 */ addi r3, r3, 0x1
/* 8002962C 0002546C 42 00 FF E8 */ bdnz lbl_80029614
.global lbl_80029630
lbl_80029630:
/* 80029630 00025470 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 80029634 00025474 54 00 00 3A */ clrrwi r0, r0, 2
/* 80029638 00025478 90 1E 00 0C */ stw r0, 0xc(r30)
.global lbl_8002963C
lbl_8002963C:
/* 8002963C 0002547C 38 61 00 08 */ addi r3, r1, 0x8
/* 80029640 00025480 4B FF 3E 01 */ bl OSClearContext
/* 80029644 00025484 38 61 00 08 */ addi r3, r1, 0x8
/* 80029648 00025488 4B FF 3B B9 */ bl OSSetCurrentContext
/* 8002964C 0002548C 7F A3 EB 78 */ mr r3, r29
/* 80029650 00025490 7F 64 DB 78 */ mr r4, r27
/* 80029654 00025494 7F 8C E3 78 */ mr r12, r28
/* 80029658 00025498 7D 89 03 A6 */ mtctr r12
/* 8002965C 0002549C 4E 80 04 21 */ bctrl
/* 80029660 000254A0 38 61 00 08 */ addi r3, r1, 0x8
/* 80029664 000254A4 4B FF 3D DD */ bl OSClearContext
/* 80029668 000254A8 7F 63 DB 78 */ mr r3, r27
/* 8002966C 000254AC 4B FF 3B 95 */ bl OSSetCurrentContext
.global lbl_80029670
lbl_80029670:
/* 80029670 000254B0 39 61 02 F0 */ addi r11, r1, 0x2f0
/* 80029674 000254B4 4B FD DD 15 */ bl lbl_80007388
/* 80029678 000254B8 80 01 02 F4 */ lwz r0, 0x2f4(r1)
/* 8002967C 000254BC 7C 08 03 A6 */ mtlr r0
/* 80029680 000254C0 38 21 02 F0 */ addi r1, r1, 0x2f0
/* 80029684 000254C4 4E 80 00 20 */ blr
/* 80029688 000254C8 00 00 00 00 */ .4byte 0x00000000
/* 8002968C 000254CC 00 00 00 00 */ .4byte 0x00000000
.global EXTIntrruptHandler
EXTIntrruptHandler:
/* 80029690 000254D0 94 21 FD 20 */ stwu r1, -0x2e0(r1)
/* 80029694 000254D4 7C 08 02 A6 */ mflr r0
/* 80029698 000254D8 90 01 02 E4 */ stw r0, 0x2e4(r1)
/* 8002969C 000254DC 93 E1 02 DC */ stw r31, 0x2dc(r1)
/* 800296A0 000254E0 93 C1 02 D8 */ stw r30, 0x2d8(r1)
/* 800296A4 000254E4 93 A1 02 D4 */ stw r29, 0x2d4(r1)
/* 800296A8 000254E8 93 81 02 D0 */ stw r28, 0x2d0(r1)
/* 800296AC 000254EC 7C 9C 23 78 */ mr r28, r4
/* 800296B0 000254F0 38 03 FF F5 */ addi r0, r3, -0xb
/* 800296B4 000254F4 3C 60 55 55 */ lis r3, 0x5555
/* 800296B8 000254F8 38 63 55 56 */ addi r3, r3, 0x5556
/* 800296BC 000254FC 7C 63 00 96 */ mulhw r3, r3, r0
/* 800296C0 00025500 54 60 0F FE */ srwi r0, r3, 31
/* 800296C4 00025504 7F E3 02 14 */ add r31, r3, r0
/* 800296C8 00025508 3C 60 00 50 */ lis r3, 0x50
/* 800296CC 0002550C 57 E0 10 3A */ slwi r0, r31, 2
/* 800296D0 00025510 7C 1F 00 50 */ subf r0, r31, r0
/* 800296D4 00025514 7C 63 04 30 */ srw r3, r3, r0
/* 800296D8 00025518 4B FF 85 19 */ bl __OSMaskInterrupts
/* 800296DC 0002551C 57 E0 30 32 */ slwi r0, r31, 6
/* 800296E0 00025520 3C 60 80 4A */ lis r3, Ecb@ha
/* 800296E4 00025524 38 63 A2 90 */ addi r3, r3, Ecb@l
/* 800296E8 00025528 7F C3 02 14 */ add r30, r3, r0
/* 800296EC 0002552C 83 BE 00 08 */ lwz r29, 0x8(r30)
/* 800296F0 00025530 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 800296F4 00025534 54 00 07 76 */ rlwinm r0, r0, 0, 29, 27
/* 800296F8 00025538 90 1E 00 0C */ stw r0, 0xc(r30)
/* 800296FC 0002553C 2C 1D 00 00 */ cmpwi r29, 0x0
/* 80029700 00025540 41 82 00 40 */ beq lbl_80029740
/* 80029704 00025544 38 61 00 08 */ addi r3, r1, 0x8
/* 80029708 00025548 4B FF 3D 39 */ bl OSClearContext
/* 8002970C 0002554C 38 61 00 08 */ addi r3, r1, 0x8
/* 80029710 00025550 4B FF 3A F1 */ bl OSSetCurrentContext
/* 80029714 00025554 38 00 00 00 */ li r0, 0x0
/* 80029718 00025558 90 1E 00 08 */ stw r0, 0x8(r30)
/* 8002971C 0002555C 7F E3 FB 78 */ mr r3, r31
/* 80029720 00025560 7F 84 E3 78 */ mr r4, r28
/* 80029724 00025564 7F AC EB 78 */ mr r12, r29
/* 80029728 00025568 7D 89 03 A6 */ mtctr r12
/* 8002972C 0002556C 4E 80 04 21 */ bctrl
/* 80029730 00025570 38 61 00 08 */ addi r3, r1, 0x8
/* 80029734 00025574 4B FF 3D 0D */ bl OSClearContext
/* 80029738 00025578 7F 83 E3 78 */ mr r3, r28
/* 8002973C 0002557C 4B FF 3A C5 */ bl OSSetCurrentContext
.global lbl_80029740
lbl_80029740:
/* 80029740 00025580 83 E1 02 DC */ lwz r31, 0x2dc(r1)
/* 80029744 00025584 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
/* 80029748 00025588 83 A1 02 D4 */ lwz r29, 0x2d4(r1)
/* 8002974C 0002558C 83 81 02 D0 */ lwz r28, 0x2d0(r1)
/* 80029750 00025590 80 01 02 E4 */ lwz r0, 0x2e4(r1)
/* 80029754 00025594 7C 08 03 A6 */ mtlr r0
/* 80029758 00025598 38 21 02 E0 */ addi r1, r1, 0x2e0
/* 8002975C 0002559C 4E 80 00 20 */ blr
.global EXIInit
EXIInit:
/* 80029760 000255A0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80029764 000255A4 7C 08 02 A6 */ mflr r0
/* 80029768 000255A8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002976C 000255AC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80029770 000255B0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80029774 000255B4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80029778 000255B8 93 81 00 10 */ stw r28, 0x10(r1)
/* 8002977C 000255BC 3C 60 CD 00 */ lis r3, 0xCD00680C@ha
.global lbl_80029780
lbl_80029780:
/* 80029780 000255C0 80 03 68 0C */ lwz r0, 0xCD00680C@l(r3)
/* 80029784 000255C4 54 00 07 FE */ clrlwi r0, r0, 31
/* 80029788 000255C8 28 00 00 01 */ cmplwi r0, 0x1
/* 8002978C 000255CC 41 82 FF F4 */ beq lbl_80029780
/* 80029790 000255D0 80 03 68 20 */ lwz r0, 0x6820(r3)
/* 80029794 000255D4 54 00 07 FE */ clrlwi r0, r0, 31
/* 80029798 000255D8 28 00 00 01 */ cmplwi r0, 0x1
/* 8002979C 000255DC 41 82 FF E4 */ beq lbl_80029780
/* 800297A0 000255E0 80 03 68 34 */ lwz r0, 0x6834(r3)
/* 800297A4 000255E4 54 00 07 FE */ clrlwi r0, r0, 31
/* 800297A8 000255E8 28 00 00 01 */ cmplwi r0, 0x1
/* 800297AC 000255EC 41 82 FF D4 */ beq lbl_80029780
/* 800297B0 000255F0 3C 60 00 80 */ lis r3, 0x80
/* 800297B4 000255F4 38 63 80 00 */ addi r3, r3, -0x8000
/* 800297B8 000255F8 4B FF 84 39 */ bl __OSMaskInterrupts
/* 800297BC 000255FC 3B 80 00 00 */ li r28, 0x0
/* 800297C0 00025600 3C 60 CD 00 */ lis r3, 0xCD006800@ha
/* 800297C4 00025604 93 83 68 00 */ stw r28, 0xCD006800@l(r3)
/* 800297C8 00025608 93 83 68 14 */ stw r28, 0x6814(r3)
/* 800297CC 0002560C 93 83 68 28 */ stw r28, 0x6828(r3)
/* 800297D0 00025610 38 00 20 00 */ li r0, 0x2000
/* 800297D4 00025614 90 03 68 00 */ stw r0, 0x6800(r3)
/* 800297D8 00025618 38 60 00 09 */ li r3, 0x9
/* 800297DC 0002561C 3F A0 80 03 */ lis r29, EXIIntrruptHandler@ha
/* 800297E0 00025620 38 9D 93 B0 */ addi r4, r29, EXIIntrruptHandler@l
/* 800297E4 00025624 4B FF 80 AD */ bl __OSSetInterruptHandler
/* 800297E8 00025628 38 60 00 0A */ li r3, 0xa
/* 800297EC 0002562C 3F C0 80 03 */ lis r30, TCIntrruptHandler@ha
/* 800297F0 00025630 38 9E 94 70 */ addi r4, r30, TCIntrruptHandler@l
/* 800297F4 00025634 4B FF 80 9D */ bl __OSSetInterruptHandler
/* 800297F8 00025638 38 60 00 0B */ li r3, 0xb
/* 800297FC 0002563C 3F E0 80 03 */ lis r31, EXTIntrruptHandler@ha
/* 80029800 00025640 38 9F 96 90 */ addi r4, r31, EXTIntrruptHandler@l
/* 80029804 00025644 4B FF 80 8D */ bl __OSSetInterruptHandler
/* 80029808 00025648 38 60 00 0C */ li r3, 0xc
/* 8002980C 0002564C 38 9D 93 B0 */ addi r4, r29, -0x6c50
/* 80029810 00025650 4B FF 80 81 */ bl __OSSetInterruptHandler
/* 80029814 00025654 38 60 00 0D */ li r3, 0xd
/* 80029818 00025658 38 9E 94 70 */ addi r4, r30, -0x6b90
/* 8002981C 0002565C 4B FF 80 75 */ bl __OSSetInterruptHandler
/* 80029820 00025660 38 60 00 0E */ li r3, 0xe
/* 80029824 00025664 38 9F 96 90 */ addi r4, r31, -0x6970
/* 80029828 00025668 4B FF 80 69 */ bl __OSSetInterruptHandler
/* 8002982C 0002566C 38 60 00 0F */ li r3, 0xf
/* 80029830 00025670 38 9D 93 B0 */ addi r4, r29, -0x6c50
/* 80029834 00025674 4B FF 80 5D */ bl __OSSetInterruptHandler
/* 80029838 00025678 38 60 00 10 */ li r3, 0x10
/* 8002983C 0002567C 38 9E 94 70 */ addi r4, r30, -0x6b90
/* 80029840 00025680 4B FF 80 51 */ bl __OSSetInterruptHandler
/* 80029844 00025684 38 60 00 00 */ li r3, 0x0
/* 80029848 00025688 38 80 00 02 */ li r4, 0x2
/* 8002984C 0002568C 38 AD E4 A8 */ addi r5, r13, IDSerialPort1@sda21
/* 80029850 00025690 48 00 02 F1 */ bl EXIGetID
/* 80029854 00025694 80 0D E3 58 */ lwz r0, __OSInIPL@sda21(r13)
/* 80029858 00025698 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002985C 0002569C 41 82 00 34 */ beq lbl_80029890
/* 80029860 000256A0 3C 60 80 00 */ lis r3, 0x800030C4@ha
/* 80029864 000256A4 93 83 30 C4 */ stw r28, 0x800030C4@l(r3)
/* 80029868 000256A8 93 83 30 C0 */ stw r28, 0x30c0(r3)
/* 8002986C 000256AC 3C 60 80 4A */ lis r3, Ecb@ha
/* 80029870 000256B0 38 63 A2 90 */ addi r3, r3, Ecb@l
/* 80029874 000256B4 93 83 00 60 */ stw r28, 0x60(r3)
/* 80029878 000256B8 93 83 00 20 */ stw r28, 0x20(r3)
/* 8002987C 000256BC 38 60 00 00 */ li r3, 0x0
/* 80029880 000256C0 4B FF F5 A1 */ bl __EXIProbe
/* 80029884 000256C4 38 60 00 01 */ li r3, 0x1
/* 80029888 000256C8 4B FF F5 99 */ bl __EXIProbe
/* 8002988C 000256CC 48 00 00 70 */ b lbl_800298FC
.global lbl_80029890
lbl_80029890:
/* 80029890 000256D0 38 60 00 00 */ li r3, 0x0
/* 80029894 000256D4 38 80 00 00 */ li r4, 0x0
/* 80029898 000256D8 38 A1 00 08 */ addi r5, r1, 0x8
/* 8002989C 000256DC 48 00 02 A5 */ bl EXIGetID
/* 800298A0 000256E0 2C 03 00 00 */ cmpwi r3, 0x0
/* 800298A4 000256E4 41 82 00 24 */ beq lbl_800298C8
/* 800298A8 000256E8 80 61 00 08 */ lwz r3, 0x8(r1)
/* 800298AC 000256EC 3C 03 F8 FF */ addis r0, r3, 0xf8ff
/* 800298B0 000256F0 28 00 00 00 */ cmplwi r0, 0x0
/* 800298B4 000256F4 40 82 00 14 */ bne lbl_800298C8
/* 800298B8 000256F8 38 60 00 01 */ li r3, 0x1
/* 800298BC 000256FC 38 80 00 00 */ li r4, 0x0
/* 800298C0 00025700 48 00 07 B1 */ bl __OSEnableBarnacle
/* 800298C4 00025704 48 00 00 38 */ b lbl_800298FC
.global lbl_800298C8
lbl_800298C8:
/* 800298C8 00025708 38 60 00 01 */ li r3, 0x1
/* 800298CC 0002570C 38 80 00 00 */ li r4, 0x0
/* 800298D0 00025710 38 A1 00 08 */ addi r5, r1, 0x8
/* 800298D4 00025714 48 00 02 6D */ bl EXIGetID
/* 800298D8 00025718 2C 03 00 00 */ cmpwi r3, 0x0
/* 800298DC 0002571C 41 82 00 20 */ beq lbl_800298FC
/* 800298E0 00025720 80 61 00 08 */ lwz r3, 0x8(r1)
/* 800298E4 00025724 3C 03 F8 FF */ addis r0, r3, 0xf8ff
/* 800298E8 00025728 28 00 00 00 */ cmplwi r0, 0x0
/* 800298EC 0002572C 40 82 00 10 */ bne lbl_800298FC
/* 800298F0 00025730 38 60 00 00 */ li r3, 0x0
/* 800298F4 00025734 38 80 00 02 */ li r4, 0x2
/* 800298F8 00025738 48 00 07 79 */ bl __OSEnableBarnacle
.global lbl_800298FC
lbl_800298FC:
/* 800298FC 0002573C 80 6D 80 F8 */ lwz r3, __EXIVersion@sda21(r13)
/* 80029900 00025740 4B FF 1D E1 */ bl OSRegisterVersion
/* 80029904 00025744 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80029908 00025748 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8002990C 0002574C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80029910 00025750 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80029914 00025754 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80029918 00025758 7C 08 03 A6 */ mtlr r0
/* 8002991C 0002575C 38 21 00 20 */ addi r1, r1, 0x20
/* 80029920 00025760 4E 80 00 20 */ blr
/* 80029924 00025764 00 00 00 00 */ .4byte 0x00000000
/* 80029928 00025768 00 00 00 00 */ .4byte 0x00000000
/* 8002992C 0002576C 00 00 00 00 */ .4byte 0x00000000
.global EXILock
EXILock:
/* 80029930 00025770 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80029934 00025774 7C 08 02 A6 */ mflr r0
/* 80029938 00025778 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002993C 0002577C 39 61 00 20 */ addi r11, r1, 0x20
/* 80029940 00025780 4B FD D9 FD */ bl lbl_8000733C
/* 80029944 00025784 7C 7B 1B 78 */ mr r27, r3
/* 80029948 00025788 7C 9F 23 78 */ mr r31, r4
/* 8002994C 0002578C 7C BC 2B 78 */ mr r28, r5
/* 80029950 00025790 54 60 30 32 */ slwi r0, r3, 6
/* 80029954 00025794 3C 60 80 4A */ lis r3, Ecb@ha
/* 80029958 00025798 38 63 A2 90 */ addi r3, r3, Ecb@l
/* 8002995C 0002579C 7F C3 02 14 */ add r30, r3, r0
/* 80029960 000257A0 4B FF 7E C1 */ bl OSDisableInterrupts
/* 80029964 000257A4 7C 7D 1B 78 */ mr r29, r3
/* 80029968 000257A8 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 8002996C 000257AC 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
/* 80029970 000257B0 41 82 00 7C */ beq lbl_800299EC
/* 80029974 000257B4 2C 1C 00 00 */ cmpwi r28, 0x0
/* 80029978 000257B8 41 82 00 64 */ beq lbl_800299DC
/* 8002997C 000257BC 7F C3 F3 78 */ mr r3, r30
/* 80029980 000257C0 80 9E 00 24 */ lwz r4, 0x24(r30)
/* 80029984 000257C4 7C 89 03 A6 */ mtctr r4
/* 80029988 000257C8 2C 04 00 00 */ cmpwi r4, 0x0
/* 8002998C 000257CC 40 81 00 28 */ ble lbl_800299B4
.global lbl_80029990
lbl_80029990:
/* 80029990 000257D0 80 03 00 28 */ lwz r0, 0x28(r3)
/* 80029994 000257D4 7C 1F 00 40 */ cmplw r31, r0
/* 80029998 000257D8 40 82 00 14 */ bne lbl_800299AC
/* 8002999C 000257DC 7F A3 EB 78 */ mr r3, r29
/* 800299A0 000257E0 4B FF 7E C1 */ bl OSRestoreInterrupts
/* 800299A4 000257E4 38 60 00 00 */ li r3, 0x0
/* 800299A8 000257E8 48 00 00 6C */ b lbl_80029A14
.global lbl_800299AC
lbl_800299AC:
/* 800299AC 000257EC 38 63 00 08 */ addi r3, r3, 0x8
/* 800299B0 000257F0 42 00 FF E0 */ bdnz lbl_80029990
.global lbl_800299B4
lbl_800299B4:
/* 800299B4 000257F4 54 80 18 38 */ slwi r0, r4, 3
/* 800299B8 000257F8 7C 7E 02 14 */ add r3, r30, r0
/* 800299BC 000257FC 93 83 00 2C */ stw r28, 0x2c(r3)
/* 800299C0 00025800 80 1E 00 24 */ lwz r0, 0x24(r30)
/* 800299C4 00025804 54 00 18 38 */ slwi r0, r0, 3
/* 800299C8 00025808 7C 7E 02 14 */ add r3, r30, r0
/* 800299CC 0002580C 93 E3 00 28 */ stw r31, 0x28(r3)
/* 800299D0 00025810 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 800299D4 00025814 38 03 00 01 */ addi r0, r3, 0x1
/* 800299D8 00025818 90 1E 00 24 */ stw r0, 0x24(r30)
.global lbl_800299DC
lbl_800299DC:
/* 800299DC 0002581C 7F A3 EB 78 */ mr r3, r29
/* 800299E0 00025820 4B FF 7E 81 */ bl OSRestoreInterrupts
/* 800299E4 00025824 38 60 00 00 */ li r3, 0x0
/* 800299E8 00025828 48 00 00 2C */ b lbl_80029A14
.global lbl_800299EC
lbl_800299EC:
/* 800299EC 0002582C 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 800299F0 00025830 60 00 00 10 */ ori r0, r0, 0x10
/* 800299F4 00025834 90 1E 00 0C */ stw r0, 0xc(r30)
/* 800299F8 00025838 93 FE 00 18 */ stw r31, 0x18(r30)
/* 800299FC 0002583C 7F 63 DB 78 */ mr r3, r27
/* 80029A00 00025840 7F C4 F3 78 */ mr r4, r30
/* 80029A04 00025844 4B FF EB ED */ bl SetExiInterruptMask
/* 80029A08 00025848 7F A3 EB 78 */ mr r3, r29
/* 80029A0C 0002584C 4B FF 7E 55 */ bl OSRestoreInterrupts
/* 80029A10 00025850 38 60 00 01 */ li r3, 0x1
.global lbl_80029A14
lbl_80029A14:
/* 80029A14 00025854 39 61 00 20 */ addi r11, r1, 0x20
/* 80029A18 00025858 4B FD D9 71 */ bl lbl_80007388
/* 80029A1C 0002585C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80029A20 00025860 7C 08 03 A6 */ mtlr r0
/* 80029A24 00025864 38 21 00 20 */ addi r1, r1, 0x20
/* 80029A28 00025868 4E 80 00 20 */ blr
/* 80029A2C 0002586C 00 00 00 00 */ .4byte 0x00000000
.global EXIUnlock
EXIUnlock:
/* 80029A30 00025870 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80029A34 00025874 7C 08 02 A6 */ mflr r0
/* 80029A38 00025878 90 01 00 24 */ stw r0, 0x24(r1)
/* 80029A3C 0002587C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80029A40 00025880 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80029A44 00025884 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80029A48 00025888 93 81 00 10 */ stw r28, 0x10(r1)
/* 80029A4C 0002588C 7C 7C 1B 78 */ mr r28, r3
/* 80029A50 00025890 54 60 30 32 */ slwi r0, r3, 6
/* 80029A54 00025894 3C 60 80 4A */ lis r3, Ecb@ha
/* 80029A58 00025898 38 63 A2 90 */ addi r3, r3, Ecb@l
/* 80029A5C 0002589C 7F E3 02 14 */ add r31, r3, r0
/* 80029A60 000258A0 4B FF 7D C1 */ bl OSDisableInterrupts
/* 80029A64 000258A4 7C 7E 1B 78 */ mr r30, r3
/* 80029A68 000258A8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80029A6C 000258AC 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
/* 80029A70 000258B0 40 82 00 10 */ bne lbl_80029A80
/* 80029A74 000258B4 4B FF 7D ED */ bl OSRestoreInterrupts
/* 80029A78 000258B8 38 60 00 00 */ li r3, 0x0
/* 80029A7C 000258BC 48 00 00 6C */ b lbl_80029AE8
.global lbl_80029A80
lbl_80029A80:
/* 80029A80 000258C0 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80029A84 000258C4 54 00 07 34 */ rlwinm r0, r0, 0, 28, 26
/* 80029A88 000258C8 90 1F 00 0C */ stw r0, 0xc(r31)
/* 80029A8C 000258CC 7F 83 E3 78 */ mr r3, r28
/* 80029A90 000258D0 7F E4 FB 78 */ mr r4, r31
/* 80029A94 000258D4 4B FF EB 5D */ bl SetExiInterruptMask
/* 80029A98 000258D8 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 80029A9C 000258DC 2C 03 00 00 */ cmpwi r3, 0x0
/* 80029AA0 000258E0 40 81 00 3C */ ble lbl_80029ADC
/* 80029AA4 000258E4 83 BF 00 2C */ lwz r29, 0x2c(r31)
/* 80029AA8 000258E8 34 03 FF FF */ addic. r0, r3, -0x1
/* 80029AAC 000258EC 90 1F 00 24 */ stw r0, 0x24(r31)
/* 80029AB0 000258F0 40 81 00 18 */ ble lbl_80029AC8
/* 80029AB4 000258F4 38 7F 00 28 */ addi r3, r31, 0x28
/* 80029AB8 000258F8 38 9F 00 30 */ addi r4, r31, 0x30
/* 80029ABC 000258FC 80 1F 00 24 */ lwz r0, 0x24(r31)
/* 80029AC0 00025900 54 05 18 38 */ slwi r5, r0, 3
/* 80029AC4 00025904 4B FE 12 89 */ bl memmove
.global lbl_80029AC8
lbl_80029AC8:
/* 80029AC8 00025908 7F 83 E3 78 */ mr r3, r28
/* 80029ACC 0002590C 38 80 00 00 */ li r4, 0x0
/* 80029AD0 00025910 7F AC EB 78 */ mr r12, r29
/* 80029AD4 00025914 7D 89 03 A6 */ mtctr r12
/* 80029AD8 00025918 4E 80 04 21 */ bctrl
.global lbl_80029ADC
lbl_80029ADC:
/* 80029ADC 0002591C 7F C3 F3 78 */ mr r3, r30
/* 80029AE0 00025920 4B FF 7D 81 */ bl OSRestoreInterrupts
/* 80029AE4 00025924 38 60 00 01 */ li r3, 0x1
.global lbl_80029AE8
lbl_80029AE8:
/* 80029AE8 00025928 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80029AEC 0002592C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80029AF0 00025930 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80029AF4 00025934 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80029AF8 00025938 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80029AFC 0002593C 7C 08 03 A6 */ mtlr r0
/* 80029B00 00025940 38 21 00 20 */ addi r1, r1, 0x20
/* 80029B04 00025944 4E 80 00 20 */ blr
/* 80029B08 00025948 00 00 00 00 */ .4byte 0x00000000
/* 80029B0C 0002594C 00 00 00 00 */ .4byte 0x00000000
.global UnlockedHandler
UnlockedHandler:
/* 80029B10 00025950 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80029B14 00025954 7C 08 02 A6 */ mflr r0
/* 80029B18 00025958 90 01 00 14 */ stw r0, 0x14(r1)
/* 80029B1C 0002595C 38 80 00 00 */ li r4, 0x0
/* 80029B20 00025960 38 A1 00 08 */ addi r5, r1, 0x8
/* 80029B24 00025964 48 00 00 1D */ bl EXIGetID
/* 80029B28 00025968 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80029B2C 0002596C 7C 08 03 A6 */ mtlr r0
/* 80029B30 00025970 38 21 00 10 */ addi r1, r1, 0x10
/* 80029B34 00025974 4E 80 00 20 */ blr
/* 80029B38 00025978 00 00 00 00 */ .4byte 0x00000000
/* 80029B3C 0002597C 00 00 00 00 */ .4byte 0x00000000
.global EXIGetID
EXIGetID:
/* 80029B40 00025980 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80029B44 00025984 7C 08 02 A6 */ mflr r0
/* 80029B48 00025988 90 01 00 44 */ stw r0, 0x44(r1)
/* 80029B4C 0002598C 39 61 00 40 */ addi r11, r1, 0x40
/* 80029B50 00025990 4B FD D7 DD */ bl lbl_8000732C
/* 80029B54 00025994 7C 79 1B 78 */ mr r25, r3
/* 80029B58 00025998 7C 9A 23 78 */ mr r26, r4
/* 80029B5C 0002599C 7C BB 2B 78 */ mr r27, r5
/* 80029B60 000259A0 54 60 30 32 */ slwi r0, r3, 6
/* 80029B64 000259A4 3C C0 80 4A */ lis r6, Ecb@ha
/* 80029B68 000259A8 38 C6 A2 90 */ addi r6, r6, Ecb@l
/* 80029B6C 000259AC 7F A6 02 14 */ add r29, r6, r0
/* 80029B70 000259B0 2C 03 00 00 */ cmpwi r3, 0x0
/* 80029B74 000259B4 40 82 00 24 */ bne lbl_80029B98
/* 80029B78 000259B8 28 04 00 02 */ cmplwi r4, 0x2
/* 80029B7C 000259BC 40 82 00 1C */ bne lbl_80029B98
/* 80029B80 000259C0 80 0D E4 A8 */ lwz r0, IDSerialPort1@sda21(r13)
/* 80029B84 000259C4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80029B88 000259C8 41 82 00 10 */ beq lbl_80029B98
/* 80029B8C 000259CC 90 05 00 00 */ stw r0, 0x0(r5)
/* 80029B90 000259D0 38 60 00 01 */ li r3, 0x1
/* 80029B94 000259D4 48 00 03 3C */ b lbl_80029ED0
.global lbl_80029B98
lbl_80029B98:
/* 80029B98 000259D8 2C 03 00 02 */ cmpwi r3, 0x2
/* 80029B9C 000259DC 40 80 00 E8 */ bge lbl_80029C84
/* 80029BA0 000259E0 2C 04 00 00 */ cmpwi r4, 0x0
/* 80029BA4 000259E4 40 82 00 E0 */ bne lbl_80029C84
/* 80029BA8 000259E8 7F 23 CB 78 */ mr r3, r25
/* 80029BAC 000259EC 4B FF F2 75 */ bl __EXIProbe
/* 80029BB0 000259F0 2C 03 00 00 */ cmpwi r3, 0x0
/* 80029BB4 000259F4 40 82 00 0C */ bne lbl_80029BC0
/* 80029BB8 000259F8 38 60 00 00 */ li r3, 0x0
/* 80029BBC 000259FC 48 00 03 14 */ b lbl_80029ED0
.global lbl_80029BC0
lbl_80029BC0:
/* 80029BC0 00025A00 57 23 10 3A */ slwi r3, r25, 2
/* 80029BC4 00025A04 3C 00 80 00 */ lis r0, 0x8000
/* 80029BC8 00025A08 7F E0 1A 14 */ add r31, r0, r3
/* 80029BCC 00025A0C 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 80029BD0 00025A10 80 1F 30 C0 */ lwz r0, 0x30c0(r31)
/* 80029BD4 00025A14 7C 03 00 00 */ cmpw r3, r0
/* 80029BD8 00025A18 40 82 00 14 */ bne lbl_80029BEC
/* 80029BDC 00025A1C 80 1D 00 1C */ lwz r0, 0x1c(r29)
/* 80029BE0 00025A20 90 1B 00 00 */ stw r0, 0x0(r27)
/* 80029BE4 00025A24 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 80029BE8 00025A28 48 00 02 E8 */ b lbl_80029ED0
.global lbl_80029BEC
lbl_80029BEC:
/* 80029BEC 00025A2C 4B FF 7C 35 */ bl OSDisableInterrupts
/* 80029BF0 00025A30 7C 7E 1B 78 */ mr r30, r3
/* 80029BF4 00025A34 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 80029BF8 00025A38 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
/* 80029BFC 00025A3C 40 82 00 14 */ bne lbl_80029C10
/* 80029C00 00025A40 7F 23 CB 78 */ mr r3, r25
/* 80029C04 00025A44 4B FF F2 1D */ bl __EXIProbe
/* 80029C08 00025A48 2C 03 00 00 */ cmpwi r3, 0x0
/* 80029C0C 00025A4C 40 82 00 14 */ bne lbl_80029C20
.global lbl_80029C10
lbl_80029C10:
/* 80029C10 00025A50 7F C3 F3 78 */ mr r3, r30
/* 80029C14 00025A54 4B FF 7C 4D */ bl OSRestoreInterrupts
/* 80029C18 00025A58 38 00 00 00 */ li r0, 0x0
/* 80029C1C 00025A5C 48 00 00 54 */ b lbl_80029C70
.global lbl_80029C20
lbl_80029C20:
/* 80029C20 00025A60 1C 79 00 14 */ mulli r3, r25, 0x14
/* 80029C24 00025A64 3C 00 CD 00 */ lis r0, 0xcd00
/* 80029C28 00025A68 7C 60 1A 14 */ add r3, r0, r3
/* 80029C2C 00025A6C 80 03 68 00 */ lwz r0, 0x6800(r3)
/* 80029C30 00025A70 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 80029C34 00025A74 60 00 00 02 */ ori r0, r0, 0x2
/* 80029C38 00025A78 90 03 68 00 */ stw r0, 0x6800(r3)
/* 80029C3C 00025A7C 38 00 00 00 */ li r0, 0x0
/* 80029C40 00025A80 90 1D 00 08 */ stw r0, 0x8(r29)
/* 80029C44 00025A84 3C 60 00 10 */ lis r3, 0x10
/* 80029C48 00025A88 57 20 10 3A */ slwi r0, r25, 2
/* 80029C4C 00025A8C 7C 19 00 50 */ subf r0, r25, r0
/* 80029C50 00025A90 7C 63 04 30 */ srw r3, r3, r0
/* 80029C54 00025A94 4B FF 80 1D */ bl __OSUnmaskInterrupts
/* 80029C58 00025A98 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 80029C5C 00025A9C 60 00 00 08 */ ori r0, r0, 0x8
/* 80029C60 00025AA0 90 1D 00 0C */ stw r0, 0xc(r29)
/* 80029C64 00025AA4 7F C3 F3 78 */ mr r3, r30
/* 80029C68 00025AA8 4B FF 7B F9 */ bl OSRestoreInterrupts
/* 80029C6C 00025AAC 38 00 00 01 */ li r0, 0x1
.global lbl_80029C70
lbl_80029C70:
/* 80029C70 00025AB0 2C 00 00 00 */ cmpwi r0, 0x0
/* 80029C74 00025AB4 40 82 00 0C */ bne lbl_80029C80
/* 80029C78 00025AB8 38 60 00 00 */ li r3, 0x0
/* 80029C7C 00025ABC 48 00 02 54 */ b lbl_80029ED0
.global lbl_80029C80
lbl_80029C80:
/* 80029C80 00025AC0 83 FF 30 C0 */ lwz r31, 0x30c0(r31)
.global lbl_80029C84
lbl_80029C84:
/* 80029C84 00025AC4 4B FF 7B 9D */ bl OSDisableInterrupts
/* 80029C88 00025AC8 7C 7C 1B 78 */ mr r28, r3
/* 80029C8C 00025ACC 7F 23 CB 78 */ mr r3, r25
/* 80029C90 00025AD0 7F 44 D3 78 */ mr r4, r26
/* 80029C94 00025AD4 38 00 00 00 */ li r0, 0x0
/* 80029C98 00025AD8 2C 19 00 02 */ cmpwi r25, 0x2
/* 80029C9C 00025ADC 40 80 00 10 */ bge lbl_80029CAC
/* 80029CA0 00025AE0 2C 1A 00 00 */ cmpwi r26, 0x0
/* 80029CA4 00025AE4 40 82 00 08 */ bne lbl_80029CAC
/* 80029CA8 00025AE8 38 00 00 01 */ li r0, 0x1
.global lbl_80029CAC
lbl_80029CAC:
/* 80029CAC 00025AEC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80029CB0 00025AF0 38 A0 00 00 */ li r5, 0x0
/* 80029CB4 00025AF4 41 82 00 0C */ beq lbl_80029CC0
/* 80029CB8 00025AF8 3C A0 80 03 */ lis r5, UnlockedHandler@ha
/* 80029CBC 00025AFC 38 A5 9B 10 */ addi r5, r5, UnlockedHandler@l
.global lbl_80029CC0
lbl_80029CC0:
/* 80029CC0 00025B00 4B FF FC 71 */ bl EXILock
/* 80029CC4 00025B04 7C 60 00 34 */ cntlzw r0, r3
/* 80029CC8 00025B08 54 1E D9 7F */ srwi. r30, r0, 5
/* 80029CCC 00025B0C 40 82 01 2C */ bne lbl_80029DF8
/* 80029CD0 00025B10 7F 23 CB 78 */ mr r3, r25
/* 80029CD4 00025B14 7F 44 D3 78 */ mr r4, r26
/* 80029CD8 00025B18 38 A0 00 00 */ li r5, 0x0
/* 80029CDC 00025B1C 4B FF F4 A5 */ bl EXISelect
/* 80029CE0 00025B20 7C 60 00 34 */ cntlzw r0, r3
/* 80029CE4 00025B24 54 1E D9 7F */ srwi. r30, r0, 5
/* 80029CE8 00025B28 40 82 00 90 */ bne lbl_80029D78
/* 80029CEC 00025B2C 38 00 00 00 */ li r0, 0x0
/* 80029CF0 00025B30 90 01 00 08 */ stw r0, 0x8(r1)
/* 80029CF4 00025B34 7F 23 CB 78 */ mr r3, r25
/* 80029CF8 00025B38 38 81 00 08 */ addi r4, r1, 0x8
/* 80029CFC 00025B3C 38 A0 00 02 */ li r5, 0x2
/* 80029D00 00025B40 38 C0 00 01 */ li r6, 0x1
/* 80029D04 00025B44 38 E0 00 00 */ li r7, 0x0
/* 80029D08 00025B48 4B FF E9 D9 */ bl EXIImm
/* 80029D0C 00025B4C 7C 60 00 34 */ cntlzw r0, r3
/* 80029D10 00025B50 54 00 D9 7E */ srwi r0, r0, 5
/* 80029D14 00025B54 7F DE 03 78 */ or r30, r30, r0
/* 80029D18 00025B58 7F 23 CB 78 */ mr r3, r25
/* 80029D1C 00025B5C 4B FF ED F5 */ bl EXISync
/* 80029D20 00025B60 7C 60 00 34 */ cntlzw r0, r3
/* 80029D24 00025B64 54 00 D9 7E */ srwi r0, r0, 5
/* 80029D28 00025B68 7F DE 03 78 */ or r30, r30, r0
/* 80029D2C 00025B6C 7F 23 CB 78 */ mr r3, r25
/* 80029D30 00025B70 7F 64 DB 78 */ mr r4, r27
/* 80029D34 00025B74 38 A0 00 04 */ li r5, 0x4
/* 80029D38 00025B78 38 C0 00 00 */ li r6, 0x0
/* 80029D3C 00025B7C 38 E0 00 00 */ li r7, 0x0
/* 80029D40 00025B80 4B FF E9 A1 */ bl EXIImm
/* 80029D44 00025B84 7C 60 00 34 */ cntlzw r0, r3
/* 80029D48 00025B88 54 00 D9 7E */ srwi r0, r0, 5
/* 80029D4C 00025B8C 7F DE 03 78 */ or r30, r30, r0
/* 80029D50 00025B90 7F 23 CB 78 */ mr r3, r25
/* 80029D54 00025B94 4B FF ED BD */ bl EXISync
/* 80029D58 00025B98 7C 60 00 34 */ cntlzw r0, r3
/* 80029D5C 00025B9C 54 00 D9 7E */ srwi r0, r0, 5
/* 80029D60 00025BA0 7F DE 03 78 */ or r30, r30, r0
/* 80029D64 00025BA4 7F 23 CB 78 */ mr r3, r25
/* 80029D68 00025BA8 4B FF F5 49 */ bl EXIDeselect
/* 80029D6C 00025BAC 7C 60 00 34 */ cntlzw r0, r3
/* 80029D70 00025BB0 54 00 D9 7E */ srwi r0, r0, 5
/* 80029D74 00025BB4 7F DE 03 78 */ or r30, r30, r0
.global lbl_80029D78
lbl_80029D78:
/* 80029D78 00025BB8 4B FF 7A A9 */ bl OSDisableInterrupts
/* 80029D7C 00025BBC 7C 77 1B 78 */ mr r23, r3
/* 80029D80 00025BC0 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 80029D84 00025BC4 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
/* 80029D88 00025BC8 40 82 00 0C */ bne lbl_80029D94
/* 80029D8C 00025BCC 4B FF 7A D5 */ bl OSRestoreInterrupts
/* 80029D90 00025BD0 48 00 00 68 */ b lbl_80029DF8
.global lbl_80029D94
lbl_80029D94:
/* 80029D94 00025BD4 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 80029D98 00025BD8 54 00 07 34 */ rlwinm r0, r0, 0, 28, 26
/* 80029D9C 00025BDC 90 1D 00 0C */ stw r0, 0xc(r29)
/* 80029DA0 00025BE0 7F 23 CB 78 */ mr r3, r25
/* 80029DA4 00025BE4 7F A4 EB 78 */ mr r4, r29
/* 80029DA8 00025BE8 4B FF E8 49 */ bl SetExiInterruptMask
/* 80029DAC 00025BEC 80 7D 00 24 */ lwz r3, 0x24(r29)
/* 80029DB0 00025BF0 2C 03 00 00 */ cmpwi r3, 0x0
/* 80029DB4 00025BF4 40 81 00 3C */ ble lbl_80029DF0
/* 80029DB8 00025BF8 83 1D 00 2C */ lwz r24, 0x2c(r29)
/* 80029DBC 00025BFC 34 03 FF FF */ addic. r0, r3, -0x1
/* 80029DC0 00025C00 90 1D 00 24 */ stw r0, 0x24(r29)
/* 80029DC4 00025C04 40 81 00 18 */ ble lbl_80029DDC
/* 80029DC8 00025C08 38 7D 00 28 */ addi r3, r29, 0x28
/* 80029DCC 00025C0C 38 9D 00 30 */ addi r4, r29, 0x30
/* 80029DD0 00025C10 80 1D 00 24 */ lwz r0, 0x24(r29)
/* 80029DD4 00025C14 54 05 18 38 */ slwi r5, r0, 3
/* 80029DD8 00025C18 4B FE 0F 75 */ bl memmove
.global lbl_80029DDC
lbl_80029DDC:
/* 80029DDC 00025C1C 7F 23 CB 78 */ mr r3, r25
/* 80029DE0 00025C20 38 80 00 00 */ li r4, 0x0
/* 80029DE4 00025C24 7F 0C C3 78 */ mr r12, r24
/* 80029DE8 00025C28 7D 89 03 A6 */ mtctr r12
/* 80029DEC 00025C2C 4E 80 04 21 */ bctrl
.global lbl_80029DF0
lbl_80029DF0:
/* 80029DF0 00025C30 7E E3 BB 78 */ mr r3, r23
/* 80029DF4 00025C34 4B FF 7A 6D */ bl OSRestoreInterrupts
.global lbl_80029DF8
lbl_80029DF8:
/* 80029DF8 00025C38 7F 83 E3 78 */ mr r3, r28
/* 80029DFC 00025C3C 4B FF 7A 65 */ bl OSRestoreInterrupts
/* 80029E00 00025C40 2C 19 00 02 */ cmpwi r25, 0x2
/* 80029E04 00025C44 40 80 00 C4 */ bge lbl_80029EC8
/* 80029E08 00025C48 2C 1A 00 00 */ cmpwi r26, 0x0
/* 80029E0C 00025C4C 40 82 00 BC */ bne lbl_80029EC8
/* 80029E10 00025C50 4B FF 7A 11 */ bl OSDisableInterrupts
/* 80029E14 00025C54 7C 77 1B 78 */ mr r23, r3
/* 80029E18 00025C58 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 80029E1C 00025C5C 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
/* 80029E20 00025C60 40 82 00 0C */ bne lbl_80029E2C
/* 80029E24 00025C64 4B FF 7A 3D */ bl OSRestoreInterrupts
/* 80029E28 00025C68 48 00 00 4C */ b lbl_80029E74
.global lbl_80029E2C
lbl_80029E2C:
/* 80029E2C 00025C6C 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 80029E30 00025C70 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
/* 80029E34 00025C74 41 82 00 18 */ beq lbl_80029E4C
/* 80029E38 00025C78 80 1D 00 18 */ lwz r0, 0x18(r29)
/* 80029E3C 00025C7C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80029E40 00025C80 40 82 00 0C */ bne lbl_80029E4C
/* 80029E44 00025C84 4B FF 7A 1D */ bl OSRestoreInterrupts
/* 80029E48 00025C88 48 00 00 2C */ b lbl_80029E74
.global lbl_80029E4C
lbl_80029E4C:
/* 80029E4C 00025C8C 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 80029E50 00025C90 54 00 07 76 */ rlwinm r0, r0, 0, 29, 27
/* 80029E54 00025C94 90 1D 00 0C */ stw r0, 0xc(r29)
/* 80029E58 00025C98 3C 60 00 50 */ lis r3, 0x50
/* 80029E5C 00025C9C 57 20 10 3A */ slwi r0, r25, 2
/* 80029E60 00025CA0 7C 19 00 50 */ subf r0, r25, r0
/* 80029E64 00025CA4 7C 63 04 30 */ srw r3, r3, r0
/* 80029E68 00025CA8 4B FF 7D 89 */ bl __OSMaskInterrupts
/* 80029E6C 00025CAC 7E E3 BB 78 */ mr r3, r23
/* 80029E70 00025CB0 4B FF 79 F1 */ bl OSRestoreInterrupts
.global lbl_80029E74
lbl_80029E74:
/* 80029E74 00025CB4 4B FF 79 AD */ bl OSDisableInterrupts
/* 80029E78 00025CB8 57 24 10 3A */ slwi r4, r25, 2
/* 80029E7C 00025CBC 3C 00 80 00 */ lis r0, 0x8000
/* 80029E80 00025CC0 7C 80 22 14 */ add r4, r0, r4
/* 80029E84 00025CC4 80 04 30 C0 */ lwz r0, 0x30c0(r4)
/* 80029E88 00025CC8 7C 9F 00 50 */ subf r4, r31, r0
/* 80029E8C 00025CCC 7C 00 F8 50 */ subf r0, r0, r31
/* 80029E90 00025CD0 7C 80 03 78 */ or r0, r4, r0
/* 80029E94 00025CD4 54 00 0F FE */ srwi r0, r0, 31
/* 80029E98 00025CD8 7F DE 03 79 */ or. r30, r30, r0
/* 80029E9C 00025CDC 40 82 00 10 */ bne lbl_80029EAC
/* 80029EA0 00025CE0 80 1B 00 00 */ lwz r0, 0x0(r27)
/* 80029EA4 00025CE4 90 1D 00 1C */ stw r0, 0x1c(r29)
/* 80029EA8 00025CE8 93 FD 00 20 */ stw r31, 0x20(r29)
.global lbl_80029EAC
lbl_80029EAC:
/* 80029EAC 00025CEC 4B FF 79 B5 */ bl OSRestoreInterrupts
/* 80029EB0 00025CF0 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80029EB4 00025CF4 41 82 00 0C */ beq lbl_80029EC0
/* 80029EB8 00025CF8 38 60 00 00 */ li r3, 0x0
/* 80029EBC 00025CFC 48 00 00 14 */ b lbl_80029ED0
.global lbl_80029EC0
lbl_80029EC0:
/* 80029EC0 00025D00 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 80029EC4 00025D04 48 00 00 0C */ b lbl_80029ED0
.global lbl_80029EC8
lbl_80029EC8:
/* 80029EC8 00025D08 7F C0 00 34 */ cntlzw r0, r30
/* 80029ECC 00025D0C 54 03 D9 7E */ srwi r3, r0, 5
.global lbl_80029ED0
lbl_80029ED0:
/* 80029ED0 00025D10 39 61 00 40 */ addi r11, r1, 0x40
/* 80029ED4 00025D14 4B FD D4 A5 */ bl lbl_80007378
/* 80029ED8 00025D18 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80029EDC 00025D1C 7C 08 03 A6 */ mtlr r0
/* 80029EE0 00025D20 38 21 00 40 */ addi r1, r1, 0x40
/* 80029EE4 00025D24 4E 80 00 20 */ blr
/* 80029EE8 00025D28 00 00 00 00 */ .4byte 0x00000000
/* 80029EEC 00025D2C 00 00 00 00 */ .4byte 0x00000000
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global "@1_8042FB40"
"@1_8042FB40":
.4byte 0x3C3C2052
.4byte 0x564C5F53
.4byte 0x444B202D
.4byte 0x20455849
.4byte 0x20097265
.4byte 0x6C656173
.4byte 0x65206275
.4byte 0x696C643A
.4byte 0x20417567
.4byte 0x20323320
.4byte 0x32303130
.4byte 0x2031373A
.4byte 0x33303A30
.4byte 0x38202830
.4byte 0x78343330
.4byte 0x325F3134
.4byte 0x3529203E
.4byte 0x3E000000
.include "macros.inc"
.section .bss, "", @nobits # 0x80496700 - 0x80556420 ; 0x000BFD20
.global Ecb
Ecb:
.skip 0xC0
.include "macros.inc"
.section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0
.global __EXIVersion
__EXIVersion:
.4byte "@1_8042FB40"
.4byte 0
.include "macros.inc"
.section .sbss, "", @nobits # 0x8055C6E0 - 0x8055DF80 ; 0x000018A0
.global IDSerialPort1
IDSerialPort1:
.skip 0x8