prime/asm/Dolphin/exi/EXIBios.s

1809 lines
86 KiB
ArmAsm

.include "macros.inc"
.section .bss
.global lbl_80569E98
lbl_80569E98:
.skip 0xC8
.section .sdata, "wa"
.global lbl_805A8C10
lbl_805A8C10:
# ROM: 0x3F65B0
.4byte 0x803F7050
.4byte 0
.section .text, "ax"
.global SetExiInterruptMask
SetExiInterruptMask:
/* 803C0014 003BCF74 7C 08 02 A6 */ mflr r0
/* 803C0018 003BCF78 90 01 00 04 */ stw r0, 4(r1)
/* 803C001C 003BCF7C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803C0020 003BCF80 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803C0024 003BCF84 3B E4 00 00 */ addi r31, r4, 0
/* 803C0028 003BCF88 3C 80 80 57 */ lis r4, lbl_80569E98@ha
/* 803C002C 003BCF8C 38 84 9E 98 */ addi r4, r4, lbl_80569E98@l
/* 803C0030 003BCF90 38 84 00 80 */ addi r4, r4, 0x80
/* 803C0034 003BCF94 2C 03 00 01 */ cmpwi r3, 1
/* 803C0038 003BCF98 41 82 00 5C */ beq lbl_803C0094
/* 803C003C 003BCF9C 40 80 00 10 */ bge lbl_803C004C
/* 803C0040 003BCFA0 2C 03 00 00 */ cmpwi r3, 0
/* 803C0044 003BCFA4 40 80 00 14 */ bge lbl_803C0058
/* 803C0048 003BCFA8 48 00 00 AC */ b lbl_803C00F4
lbl_803C004C:
/* 803C004C 003BCFAC 2C 03 00 03 */ cmpwi r3, 3
/* 803C0050 003BCFB0 40 80 00 A4 */ bge lbl_803C00F4
/* 803C0054 003BCFB4 48 00 00 70 */ b lbl_803C00C4
lbl_803C0058:
/* 803C0058 003BCFB8 80 1F 00 00 */ lwz r0, 0(r31)
/* 803C005C 003BCFBC 28 00 00 00 */ cmplwi r0, 0
/* 803C0060 003BCFC0 40 82 00 10 */ bne lbl_803C0070
/* 803C0064 003BCFC4 80 04 00 00 */ lwz r0, 0(r4)
/* 803C0068 003BCFC8 28 00 00 00 */ cmplwi r0, 0
/* 803C006C 003BCFCC 41 82 00 10 */ beq lbl_803C007C
lbl_803C0070:
/* 803C0070 003BCFD0 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0074 003BCFD4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803C0078 003BCFD8 41 82 00 10 */ beq lbl_803C0088
lbl_803C007C:
/* 803C007C 003BCFDC 3C 60 00 41 */ lis r3, 0x41
/* 803C0080 003BCFE0 4B FC 19 A9 */ bl __OSMaskInterrupts
/* 803C0084 003BCFE4 48 00 00 70 */ b lbl_803C00F4
lbl_803C0088:
/* 803C0088 003BCFE8 3C 60 00 41 */ lis r3, 0x41
/* 803C008C 003BCFEC 4B FC 1A 25 */ bl __OSUnmaskInterrupts
/* 803C0090 003BCFF0 48 00 00 64 */ b lbl_803C00F4
lbl_803C0094:
/* 803C0094 003BCFF4 80 1F 00 00 */ lwz r0, 0(r31)
/* 803C0098 003BCFF8 28 00 00 00 */ cmplwi r0, 0
/* 803C009C 003BCFFC 41 82 00 10 */ beq lbl_803C00AC
/* 803C00A0 003BD000 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C00A4 003BD004 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803C00A8 003BD008 41 82 00 10 */ beq lbl_803C00B8
lbl_803C00AC:
/* 803C00AC 003BD00C 3C 60 00 08 */ lis r3, 8
/* 803C00B0 003BD010 4B FC 19 79 */ bl __OSMaskInterrupts
/* 803C00B4 003BD014 48 00 00 40 */ b lbl_803C00F4
lbl_803C00B8:
/* 803C00B8 003BD018 3C 60 00 08 */ lis r3, 8
/* 803C00BC 003BD01C 4B FC 19 F5 */ bl __OSUnmaskInterrupts
/* 803C00C0 003BD020 48 00 00 34 */ b lbl_803C00F4
lbl_803C00C4:
/* 803C00C4 003BD024 38 60 00 19 */ li r3, 0x19
/* 803C00C8 003BD028 4B FC 16 01 */ bl __OSGetInterruptHandler
/* 803C00CC 003BD02C 28 03 00 00 */ cmplwi r3, 0
/* 803C00D0 003BD030 41 82 00 10 */ beq lbl_803C00E0
/* 803C00D4 003BD034 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C00D8 003BD038 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803C00DC 003BD03C 41 82 00 10 */ beq lbl_803C00EC
lbl_803C00E0:
/* 803C00E0 003BD040 38 60 00 40 */ li r3, 0x40
/* 803C00E4 003BD044 4B FC 19 45 */ bl __OSMaskInterrupts
/* 803C00E8 003BD048 48 00 00 0C */ b lbl_803C00F4
lbl_803C00EC:
/* 803C00EC 003BD04C 38 60 00 40 */ li r3, 0x40
/* 803C00F0 003BD050 4B FC 19 C1 */ bl __OSUnmaskInterrupts
lbl_803C00F4:
/* 803C00F4 003BD054 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803C00F8 003BD058 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803C00FC 003BD05C 38 21 00 18 */ addi r1, r1, 0x18
/* 803C0100 003BD060 7C 08 03 A6 */ mtlr r0
/* 803C0104 003BD064 4E 80 00 20 */ blr
.global EXIImm
EXIImm:
/* 803C0108 003BD068 7C 08 02 A6 */ mflr r0
/* 803C010C 003BD06C 90 01 00 04 */ stw r0, 4(r1)
/* 803C0110 003BD070 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803C0114 003BD074 BF 21 00 24 */ stmw r25, 0x24(r1)
/* 803C0118 003BD078 3B 43 00 00 */ addi r26, r3, 0
/* 803C011C 003BD07C 3B 64 00 00 */ addi r27, r4, 0
/* 803C0120 003BD080 3B 85 00 00 */ addi r28, r5, 0
/* 803C0124 003BD084 3B A6 00 00 */ addi r29, r6, 0
/* 803C0128 003BD088 3B 27 00 00 */ addi r25, r7, 0
/* 803C012C 003BD08C 54 64 30 32 */ slwi r4, r3, 6
/* 803C0130 003BD090 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0134 003BD094 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C0138 003BD098 7F E0 22 14 */ add r31, r0, r4
/* 803C013C 003BD09C 4B FC 15 25 */ bl OSDisableInterrupts
/* 803C0140 003BD0A0 7C 7E 1B 78 */ mr r30, r3
/* 803C0144 003BD0A4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0148 003BD0A8 54 00 07 BF */ clrlwi. r0, r0, 0x1e
/* 803C014C 003BD0AC 40 82 00 10 */ bne lbl_803C015C
/* 803C0150 003BD0B0 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0154 003BD0B4 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 803C0158 003BD0B8 40 82 00 14 */ bne lbl_803C016C
lbl_803C015C:
/* 803C015C 003BD0BC 7F C3 F3 78 */ mr r3, r30
/* 803C0160 003BD0C0 4B FC 15 29 */ bl OSRestoreInterrupts
/* 803C0164 003BD0C4 38 60 00 00 */ li r3, 0
/* 803C0168 003BD0C8 48 00 01 E8 */ b lbl_803C0350
lbl_803C016C:
/* 803C016C 003BD0CC 93 3F 00 04 */ stw r25, 4(r31)
/* 803C0170 003BD0D0 80 1F 00 04 */ lwz r0, 4(r31)
/* 803C0174 003BD0D4 28 00 00 00 */ cmplwi r0, 0
/* 803C0178 003BD0D8 41 82 00 28 */ beq lbl_803C01A0
/* 803C017C 003BD0DC 38 7A 00 00 */ addi r3, r26, 0
/* 803C0180 003BD0E0 38 80 00 00 */ li r4, 0
/* 803C0184 003BD0E4 38 A0 00 01 */ li r5, 1
/* 803C0188 003BD0E8 38 C0 00 00 */ li r6, 0
/* 803C018C 003BD0EC 48 00 05 9D */ bl EXIClearInterrupts
/* 803C0190 003BD0F0 3C 60 00 20 */ lis r3, 0x20
/* 803C0194 003BD0F4 1C 1A 00 03 */ mulli r0, r26, 3
/* 803C0198 003BD0F8 7C 63 04 30 */ srw r3, r3, r0
/* 803C019C 003BD0FC 4B FC 19 15 */ bl __OSUnmaskInterrupts
lbl_803C01A0:
/* 803C01A0 003BD100 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C01A4 003BD104 60 00 00 02 */ ori r0, r0, 2
/* 803C01A8 003BD108 90 1F 00 0C */ stw r0, 0xc(r31)
/* 803C01AC 003BD10C 28 1D 00 00 */ cmplwi r29, 0
/* 803C01B0 003BD110 41 82 01 44 */ beq lbl_803C02F4
/* 803C01B4 003BD114 38 00 00 00 */ li r0, 0
/* 803C01B8 003BD118 38 80 00 00 */ li r4, 0
/* 803C01BC 003BD11C 7C 04 E0 00 */ cmpw r4, r28
/* 803C01C0 003BD120 40 80 01 20 */ bge lbl_803C02E0
/* 803C01C4 003BD124 38 DC FF F8 */ addi r6, r28, -8
/* 803C01C8 003BD128 2C 1C 00 08 */ cmpwi r28, 8
/* 803C01CC 003BD12C 40 81 01 7C */ ble lbl_803C0348
/* 803C01D0 003BD130 38 7B 00 00 */ addi r3, r27, 0
/* 803C01D4 003BD134 38 A6 00 07 */ addi r5, r6, 7
/* 803C01D8 003BD138 54 A5 E8 FE */ srwi r5, r5, 3
/* 803C01DC 003BD13C 7C A9 03 A6 */ mtctr r5
/* 803C01E0 003BD140 2C 06 00 00 */ cmpwi r6, 0
/* 803C01E4 003BD144 40 81 01 64 */ ble lbl_803C0348
lbl_803C01E8:
/* 803C01E8 003BD148 88 C3 00 00 */ lbz r6, 0(r3)
/* 803C01EC 003BD14C 20 A4 00 03 */ subfic r5, r4, 3
/* 803C01F0 003BD150 54 A5 18 38 */ slwi r5, r5, 3
/* 803C01F4 003BD154 7C C5 28 30 */ slw r5, r6, r5
/* 803C01F8 003BD158 7C 00 2B 78 */ or r0, r0, r5
/* 803C01FC 003BD15C 88 C3 00 01 */ lbz r6, 1(r3)
/* 803C0200 003BD160 38 A4 00 01 */ addi r5, r4, 1
/* 803C0204 003BD164 20 A5 00 03 */ subfic r5, r5, 3
/* 803C0208 003BD168 54 A5 18 38 */ slwi r5, r5, 3
/* 803C020C 003BD16C 7C C5 28 30 */ slw r5, r6, r5
/* 803C0210 003BD170 7C 00 2B 78 */ or r0, r0, r5
/* 803C0214 003BD174 88 C3 00 02 */ lbz r6, 2(r3)
/* 803C0218 003BD178 38 A4 00 02 */ addi r5, r4, 2
/* 803C021C 003BD17C 20 A5 00 03 */ subfic r5, r5, 3
/* 803C0220 003BD180 54 A5 18 38 */ slwi r5, r5, 3
/* 803C0224 003BD184 7C C5 28 30 */ slw r5, r6, r5
/* 803C0228 003BD188 7C 00 2B 78 */ or r0, r0, r5
/* 803C022C 003BD18C 88 C3 00 03 */ lbz r6, 3(r3)
/* 803C0230 003BD190 7C A4 00 D0 */ neg r5, r4
/* 803C0234 003BD194 54 A5 18 38 */ slwi r5, r5, 3
/* 803C0238 003BD198 7C C5 28 30 */ slw r5, r6, r5
/* 803C023C 003BD19C 7C 00 2B 78 */ or r0, r0, r5
/* 803C0240 003BD1A0 88 C3 00 04 */ lbz r6, 4(r3)
/* 803C0244 003BD1A4 38 A4 00 04 */ addi r5, r4, 4
/* 803C0248 003BD1A8 20 A5 00 03 */ subfic r5, r5, 3
/* 803C024C 003BD1AC 54 A5 18 38 */ slwi r5, r5, 3
/* 803C0250 003BD1B0 7C C5 28 30 */ slw r5, r6, r5
/* 803C0254 003BD1B4 7C 00 2B 78 */ or r0, r0, r5
/* 803C0258 003BD1B8 88 C3 00 05 */ lbz r6, 5(r3)
/* 803C025C 003BD1BC 38 A4 00 05 */ addi r5, r4, 5
/* 803C0260 003BD1C0 20 A5 00 03 */ subfic r5, r5, 3
/* 803C0264 003BD1C4 54 A5 18 38 */ slwi r5, r5, 3
/* 803C0268 003BD1C8 7C C5 28 30 */ slw r5, r6, r5
/* 803C026C 003BD1CC 7C 00 2B 78 */ or r0, r0, r5
/* 803C0270 003BD1D0 88 C3 00 06 */ lbz r6, 6(r3)
/* 803C0274 003BD1D4 38 A4 00 06 */ addi r5, r4, 6
/* 803C0278 003BD1D8 20 A5 00 03 */ subfic r5, r5, 3
/* 803C027C 003BD1DC 54 A5 18 38 */ slwi r5, r5, 3
/* 803C0280 003BD1E0 7C C5 28 30 */ slw r5, r6, r5
/* 803C0284 003BD1E4 7C 00 2B 78 */ or r0, r0, r5
/* 803C0288 003BD1E8 88 C3 00 07 */ lbz r6, 7(r3)
/* 803C028C 003BD1EC 38 A4 00 07 */ addi r5, r4, 7
/* 803C0290 003BD1F0 20 A5 00 03 */ subfic r5, r5, 3
/* 803C0294 003BD1F4 54 A5 18 38 */ slwi r5, r5, 3
/* 803C0298 003BD1F8 7C C5 28 30 */ slw r5, r6, r5
/* 803C029C 003BD1FC 7C 00 2B 78 */ or r0, r0, r5
/* 803C02A0 003BD200 38 63 00 08 */ addi r3, r3, 8
/* 803C02A4 003BD204 38 84 00 08 */ addi r4, r4, 8
/* 803C02A8 003BD208 42 00 FF 40 */ bdnz lbl_803C01E8
/* 803C02AC 003BD20C 48 00 00 9C */ b lbl_803C0348
lbl_803C02B0:
/* 803C02B0 003BD210 7C 64 E0 50 */ subf r3, r4, r28
/* 803C02B4 003BD214 7C 69 03 A6 */ mtctr r3
/* 803C02B8 003BD218 7C 04 E0 00 */ cmpw r4, r28
/* 803C02BC 003BD21C 40 80 00 24 */ bge lbl_803C02E0
lbl_803C02C0:
/* 803C02C0 003BD220 88 A6 00 00 */ lbz r5, 0(r6)
/* 803C02C4 003BD224 20 64 00 03 */ subfic r3, r4, 3
/* 803C02C8 003BD228 54 63 18 38 */ slwi r3, r3, 3
/* 803C02CC 003BD22C 7C A3 18 30 */ slw r3, r5, r3
/* 803C02D0 003BD230 7C 00 1B 78 */ or r0, r0, r3
/* 803C02D4 003BD234 38 C6 00 01 */ addi r6, r6, 1
/* 803C02D8 003BD238 38 84 00 01 */ addi r4, r4, 1
/* 803C02DC 003BD23C 42 00 FF E4 */ bdnz lbl_803C02C0
lbl_803C02E0:
/* 803C02E0 003BD240 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 803C02E4 003BD244 38 83 68 00 */ addi r4, r3, 0xCC006800@l
/* 803C02E8 003BD248 1C 7A 00 14 */ mulli r3, r26, 0x14
/* 803C02EC 003BD24C 7C 64 1A 14 */ add r3, r4, r3
/* 803C02F0 003BD250 90 03 00 10 */ stw r0, 0x10(r3)
lbl_803C02F4:
/* 803C02F4 003BD254 93 7F 00 14 */ stw r27, 0x14(r31)
/* 803C02F8 003BD258 28 1D 00 01 */ cmplwi r29, 1
/* 803C02FC 003BD25C 41 82 00 0C */ beq lbl_803C0308
/* 803C0300 003BD260 7F 80 E3 78 */ mr r0, r28
/* 803C0304 003BD264 48 00 00 08 */ b lbl_803C030C
lbl_803C0308:
/* 803C0308 003BD268 38 00 00 00 */ li r0, 0
lbl_803C030C:
/* 803C030C 003BD26C 90 1F 00 10 */ stw r0, 0x10(r31)
/* 803C0310 003BD270 57 A0 10 3A */ slwi r0, r29, 2
/* 803C0314 003BD274 60 03 00 01 */ ori r3, r0, 1
/* 803C0318 003BD278 38 1C FF FF */ addi r0, r28, -1
/* 803C031C 003BD27C 54 00 20 36 */ slwi r0, r0, 4
/* 803C0320 003BD280 7C 64 03 78 */ or r4, r3, r0
/* 803C0324 003BD284 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 803C0328 003BD288 38 63 68 00 */ addi r3, r3, 0xCC006800@l
/* 803C032C 003BD28C 1C 1A 00 14 */ mulli r0, r26, 0x14
/* 803C0330 003BD290 7C 63 02 14 */ add r3, r3, r0
/* 803C0334 003BD294 90 83 00 0C */ stw r4, 0xc(r3)
/* 803C0338 003BD298 7F C3 F3 78 */ mr r3, r30
/* 803C033C 003BD29C 4B FC 13 4D */ bl OSRestoreInterrupts
/* 803C0340 003BD2A0 38 60 00 01 */ li r3, 1
/* 803C0344 003BD2A4 48 00 00 0C */ b lbl_803C0350
lbl_803C0348:
/* 803C0348 003BD2A8 7C DB 22 14 */ add r6, r27, r4
/* 803C034C 003BD2AC 4B FF FF 64 */ b lbl_803C02B0
lbl_803C0350:
/* 803C0350 003BD2B0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 803C0354 003BD2B4 BB 21 00 24 */ lmw r25, 0x24(r1)
/* 803C0358 003BD2B8 38 21 00 40 */ addi r1, r1, 0x40
/* 803C035C 003BD2BC 7C 08 03 A6 */ mtlr r0
/* 803C0360 003BD2C0 4E 80 00 20 */ blr
.global EXIImmEx
EXIImmEx:
/* 803C0364 003BD2C4 7C 08 02 A6 */ mflr r0
/* 803C0368 003BD2C8 90 01 00 04 */ stw r0, 4(r1)
/* 803C036C 003BD2CC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803C0370 003BD2D0 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 803C0374 003BD2D4 3B 63 00 00 */ addi r27, r3, 0
/* 803C0378 003BD2D8 3B 84 00 00 */ addi r28, r4, 0
/* 803C037C 003BD2DC 3B A5 00 00 */ addi r29, r5, 0
/* 803C0380 003BD2E0 3B C6 00 00 */ addi r30, r6, 0
/* 803C0384 003BD2E4 48 00 00 60 */ b lbl_803C03E4
lbl_803C0388:
/* 803C0388 003BD2E8 2C 1D 00 04 */ cmpwi r29, 4
/* 803C038C 003BD2EC 40 80 00 0C */ bge lbl_803C0398
/* 803C0390 003BD2F0 7F BF EB 78 */ mr r31, r29
/* 803C0394 003BD2F4 48 00 00 08 */ b lbl_803C039C
lbl_803C0398:
/* 803C0398 003BD2F8 3B E0 00 04 */ li r31, 4
lbl_803C039C:
/* 803C039C 003BD2FC 38 BF 00 00 */ addi r5, r31, 0
/* 803C03A0 003BD300 38 7B 00 00 */ addi r3, r27, 0
/* 803C03A4 003BD304 38 9C 00 00 */ addi r4, r28, 0
/* 803C03A8 003BD308 38 DE 00 00 */ addi r6, r30, 0
/* 803C03AC 003BD30C 38 E0 00 00 */ li r7, 0
/* 803C03B0 003BD310 4B FF FD 59 */ bl EXIImm
/* 803C03B4 003BD314 2C 03 00 00 */ cmpwi r3, 0
/* 803C03B8 003BD318 40 82 00 0C */ bne lbl_803C03C4
/* 803C03BC 003BD31C 38 60 00 00 */ li r3, 0
/* 803C03C0 003BD320 48 00 00 30 */ b lbl_803C03F0
lbl_803C03C4:
/* 803C03C4 003BD324 7F 63 DB 78 */ mr r3, r27
/* 803C03C8 003BD328 48 00 01 29 */ bl sub_803c04f0
/* 803C03CC 003BD32C 2C 03 00 00 */ cmpwi r3, 0
/* 803C03D0 003BD330 40 82 00 0C */ bne lbl_803C03DC
/* 803C03D4 003BD334 38 60 00 00 */ li r3, 0
/* 803C03D8 003BD338 48 00 00 18 */ b lbl_803C03F0
lbl_803C03DC:
/* 803C03DC 003BD33C 7F 9C FA 14 */ add r28, r28, r31
/* 803C03E0 003BD340 7F BF E8 50 */ subf r29, r31, r29
lbl_803C03E4:
/* 803C03E4 003BD344 2C 1D 00 00 */ cmpwi r29, 0
/* 803C03E8 003BD348 40 82 FF A0 */ bne lbl_803C0388
/* 803C03EC 003BD34C 38 60 00 01 */ li r3, 1
lbl_803C03F0:
/* 803C03F0 003BD350 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803C03F4 003BD354 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 803C03F8 003BD358 38 21 00 30 */ addi r1, r1, 0x30
/* 803C03FC 003BD35C 7C 08 03 A6 */ mtlr r0
/* 803C0400 003BD360 4E 80 00 20 */ blr
.global EXIDma
EXIDma:
/* 803C0404 003BD364 7C 08 02 A6 */ mflr r0
/* 803C0408 003BD368 90 01 00 04 */ stw r0, 4(r1)
/* 803C040C 003BD36C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803C0410 003BD370 BF 21 00 24 */ stmw r25, 0x24(r1)
/* 803C0414 003BD374 3B 63 00 00 */ addi r27, r3, 0
/* 803C0418 003BD378 3B 84 00 00 */ addi r28, r4, 0
/* 803C041C 003BD37C 3B A5 00 00 */ addi r29, r5, 0
/* 803C0420 003BD380 3B C6 00 00 */ addi r30, r6, 0
/* 803C0424 003BD384 3B 27 00 00 */ addi r25, r7, 0
/* 803C0428 003BD388 54 64 30 32 */ slwi r4, r3, 6
/* 803C042C 003BD38C 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0430 003BD390 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C0434 003BD394 7F 40 22 14 */ add r26, r0, r4
/* 803C0438 003BD398 4B FC 12 29 */ bl OSDisableInterrupts
/* 803C043C 003BD39C 7C 7F 1B 78 */ mr r31, r3
/* 803C0440 003BD3A0 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 803C0444 003BD3A4 54 00 07 BF */ clrlwi. r0, r0, 0x1e
/* 803C0448 003BD3A8 40 82 00 10 */ bne lbl_803C0458
/* 803C044C 003BD3AC 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 803C0450 003BD3B0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 803C0454 003BD3B4 40 82 00 14 */ bne lbl_803C0468
lbl_803C0458:
/* 803C0458 003BD3B8 7F E3 FB 78 */ mr r3, r31
/* 803C045C 003BD3BC 4B FC 12 2D */ bl OSRestoreInterrupts
/* 803C0460 003BD3C0 38 60 00 00 */ li r3, 0
/* 803C0464 003BD3C4 48 00 00 78 */ b lbl_803C04DC
lbl_803C0468:
/* 803C0468 003BD3C8 93 3A 00 04 */ stw r25, 4(r26)
/* 803C046C 003BD3CC 80 1A 00 04 */ lwz r0, 4(r26)
/* 803C0470 003BD3D0 28 00 00 00 */ cmplwi r0, 0
/* 803C0474 003BD3D4 41 82 00 28 */ beq lbl_803C049C
/* 803C0478 003BD3D8 38 7B 00 00 */ addi r3, r27, 0
/* 803C047C 003BD3DC 38 80 00 00 */ li r4, 0
/* 803C0480 003BD3E0 38 A0 00 01 */ li r5, 1
/* 803C0484 003BD3E4 38 C0 00 00 */ li r6, 0
/* 803C0488 003BD3E8 48 00 02 A1 */ bl EXIClearInterrupts
/* 803C048C 003BD3EC 3C 60 00 20 */ lis r3, 0x20
/* 803C0490 003BD3F0 1C 1B 00 03 */ mulli r0, r27, 3
/* 803C0494 003BD3F4 7C 63 04 30 */ srw r3, r3, r0
/* 803C0498 003BD3F8 4B FC 16 19 */ bl __OSUnmaskInterrupts
lbl_803C049C:
/* 803C049C 003BD3FC 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 803C04A0 003BD400 60 00 00 01 */ ori r0, r0, 1
/* 803C04A4 003BD404 90 1A 00 0C */ stw r0, 0xc(r26)
/* 803C04A8 003BD408 57 84 01 B4 */ rlwinm r4, r28, 0, 6, 0x1a
/* 803C04AC 003BD40C 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 803C04B0 003BD410 38 03 68 00 */ addi r0, r3, 0xCC006800@l
/* 803C04B4 003BD414 1C 7B 00 14 */ mulli r3, r27, 0x14
/* 803C04B8 003BD418 7C 60 1A 14 */ add r3, r0, r3
/* 803C04BC 003BD41C 90 83 00 04 */ stw r4, 4(r3)
/* 803C04C0 003BD420 93 A3 00 08 */ stw r29, 8(r3)
/* 803C04C4 003BD424 57 C0 10 3A */ slwi r0, r30, 2
/* 803C04C8 003BD428 60 00 00 03 */ ori r0, r0, 3
/* 803C04CC 003BD42C 90 03 00 0C */ stw r0, 0xc(r3)
/* 803C04D0 003BD430 7F E3 FB 78 */ mr r3, r31
/* 803C04D4 003BD434 4B FC 11 B5 */ bl OSRestoreInterrupts
/* 803C04D8 003BD438 38 60 00 01 */ li r3, 1
lbl_803C04DC:
/* 803C04DC 003BD43C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 803C04E0 003BD440 BB 21 00 24 */ lmw r25, 0x24(r1)
/* 803C04E4 003BD444 38 21 00 40 */ addi r1, r1, 0x40
/* 803C04E8 003BD448 7C 08 03 A6 */ mtlr r0
/* 803C04EC 003BD44C 4E 80 00 20 */ blr
.global sub_803c04f0
sub_803c04f0:
/* 803C04F0 003BD450 7C 08 02 A6 */ mflr r0
/* 803C04F4 003BD454 90 01 00 04 */ stw r0, 4(r1)
/* 803C04F8 003BD458 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803C04FC 003BD45C BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 803C0500 003BD460 54 65 30 32 */ slwi r5, r3, 6
/* 803C0504 003BD464 3C 80 80 57 */ lis r4, lbl_80569E98@ha
/* 803C0508 003BD468 38 04 9E 98 */ addi r0, r4, lbl_80569E98@l
/* 803C050C 003BD46C 7F E0 2A 14 */ add r31, r0, r5
/* 803C0510 003BD470 3B 80 00 00 */ li r28, 0
/* 803C0514 003BD474 1F C3 00 14 */ mulli r30, r3, 0x14
/* 803C0518 003BD478 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 803C051C 003BD47C 3B A3 68 00 */ addi r29, r3, 0xCC006800@l
/* 803C0520 003BD480 7F BD F2 14 */ add r29, r29, r30
/* 803C0524 003BD484 48 00 01 E0 */ b lbl_803C0704
lbl_803C0528:
/* 803C0528 003BD488 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 803C052C 003BD48C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803C0530 003BD490 40 82 01 D4 */ bne lbl_803C0704
/* 803C0534 003BD494 4B FC 11 2D */ bl OSDisableInterrupts
/* 803C0538 003BD498 7C 7B 1B 78 */ mr r27, r3
/* 803C053C 003BD49C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0540 003BD4A0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 803C0544 003BD4A4 41 82 01 B4 */ beq lbl_803C06F8
/* 803C0548 003BD4A8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C054C 003BD4AC 54 00 07 BF */ clrlwi. r0, r0, 0x1e
/* 803C0550 003BD4B0 41 82 01 34 */ beq lbl_803C0684
/* 803C0554 003BD4B4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0558 003BD4B8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 803C055C 003BD4BC 41 82 01 1C */ beq lbl_803C0678
/* 803C0560 003BD4C0 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 803C0564 003BD4C4 2C 03 00 00 */ cmpwi r3, 0
/* 803C0568 003BD4C8 41 82 01 10 */ beq lbl_803C0678
/* 803C056C 003BD4CC 80 BF 00 14 */ lwz r5, 0x14(r31)
/* 803C0570 003BD4D0 3C 80 CC 00 */ lis r4, 0xCC006800@ha
/* 803C0574 003BD4D4 38 04 68 00 */ addi r0, r4, 0xCC006800@l
/* 803C0578 003BD4D8 7C 80 F2 14 */ add r4, r0, r30
/* 803C057C 003BD4DC 80 04 00 10 */ lwz r0, 0x10(r4)
/* 803C0580 003BD4E0 38 80 00 00 */ li r4, 0
/* 803C0584 003BD4E4 40 81 00 F4 */ ble lbl_803C0678
/* 803C0588 003BD4E8 38 E3 FF F8 */ addi r7, r3, -8
/* 803C058C 003BD4EC 2C 03 00 08 */ cmpwi r3, 8
/* 803C0590 003BD4F0 40 81 00 BC */ ble lbl_803C064C
/* 803C0594 003BD4F4 38 C7 00 07 */ addi r6, r7, 7
/* 803C0598 003BD4F8 54 C6 E8 FE */ srwi r6, r6, 3
/* 803C059C 003BD4FC 7C C9 03 A6 */ mtctr r6
/* 803C05A0 003BD500 2C 07 00 00 */ cmpwi r7, 0
/* 803C05A4 003BD504 40 81 00 A8 */ ble lbl_803C064C
lbl_803C05A8:
/* 803C05A8 003BD508 20 C4 00 03 */ subfic r6, r4, 3
/* 803C05AC 003BD50C 54 C6 18 38 */ slwi r6, r6, 3
/* 803C05B0 003BD510 7C 06 34 30 */ srw r6, r0, r6
/* 803C05B4 003BD514 98 C5 00 00 */ stb r6, 0(r5)
/* 803C05B8 003BD518 38 C4 00 01 */ addi r6, r4, 1
/* 803C05BC 003BD51C 20 C6 00 03 */ subfic r6, r6, 3
/* 803C05C0 003BD520 54 C6 18 38 */ slwi r6, r6, 3
/* 803C05C4 003BD524 7C 06 34 30 */ srw r6, r0, r6
/* 803C05C8 003BD528 98 C5 00 01 */ stb r6, 1(r5)
/* 803C05CC 003BD52C 38 C4 00 02 */ addi r6, r4, 2
/* 803C05D0 003BD530 20 C6 00 03 */ subfic r6, r6, 3
/* 803C05D4 003BD534 54 C6 18 38 */ slwi r6, r6, 3
/* 803C05D8 003BD538 7C 06 34 30 */ srw r6, r0, r6
/* 803C05DC 003BD53C 98 C5 00 02 */ stb r6, 2(r5)
/* 803C05E0 003BD540 7C C4 00 D0 */ neg r6, r4
/* 803C05E4 003BD544 54 C6 18 38 */ slwi r6, r6, 3
/* 803C05E8 003BD548 7C 06 34 30 */ srw r6, r0, r6
/* 803C05EC 003BD54C 98 C5 00 03 */ stb r6, 3(r5)
/* 803C05F0 003BD550 38 C4 00 04 */ addi r6, r4, 4
/* 803C05F4 003BD554 20 C6 00 03 */ subfic r6, r6, 3
/* 803C05F8 003BD558 54 C6 18 38 */ slwi r6, r6, 3
/* 803C05FC 003BD55C 7C 06 34 30 */ srw r6, r0, r6
/* 803C0600 003BD560 98 C5 00 04 */ stb r6, 4(r5)
/* 803C0604 003BD564 38 C4 00 05 */ addi r6, r4, 5
/* 803C0608 003BD568 20 C6 00 03 */ subfic r6, r6, 3
/* 803C060C 003BD56C 54 C6 18 38 */ slwi r6, r6, 3
/* 803C0610 003BD570 7C 06 34 30 */ srw r6, r0, r6
/* 803C0614 003BD574 98 C5 00 05 */ stb r6, 5(r5)
/* 803C0618 003BD578 38 C4 00 06 */ addi r6, r4, 6
/* 803C061C 003BD57C 20 C6 00 03 */ subfic r6, r6, 3
/* 803C0620 003BD580 54 C6 18 38 */ slwi r6, r6, 3
/* 803C0624 003BD584 7C 06 34 30 */ srw r6, r0, r6
/* 803C0628 003BD588 98 C5 00 06 */ stb r6, 6(r5)
/* 803C062C 003BD58C 38 C4 00 07 */ addi r6, r4, 7
/* 803C0630 003BD590 20 C6 00 03 */ subfic r6, r6, 3
/* 803C0634 003BD594 54 C6 18 38 */ slwi r6, r6, 3
/* 803C0638 003BD598 7C 06 34 30 */ srw r6, r0, r6
/* 803C063C 003BD59C 98 C5 00 07 */ stb r6, 7(r5)
/* 803C0640 003BD5A0 38 A5 00 08 */ addi r5, r5, 8
/* 803C0644 003BD5A4 38 84 00 08 */ addi r4, r4, 8
/* 803C0648 003BD5A8 42 00 FF 60 */ bdnz lbl_803C05A8
lbl_803C064C:
/* 803C064C 003BD5AC 7C C4 18 50 */ subf r6, r4, r3
/* 803C0650 003BD5B0 7C C9 03 A6 */ mtctr r6
/* 803C0654 003BD5B4 7C 04 18 00 */ cmpw r4, r3
/* 803C0658 003BD5B8 40 80 00 20 */ bge lbl_803C0678
lbl_803C065C:
/* 803C065C 003BD5BC 20 64 00 03 */ subfic r3, r4, 3
/* 803C0660 003BD5C0 54 63 18 38 */ slwi r3, r3, 3
/* 803C0664 003BD5C4 7C 03 1C 30 */ srw r3, r0, r3
/* 803C0668 003BD5C8 98 65 00 00 */ stb r3, 0(r5)
/* 803C066C 003BD5CC 38 A5 00 01 */ addi r5, r5, 1
/* 803C0670 003BD5D0 38 84 00 01 */ addi r4, r4, 1
/* 803C0674 003BD5D4 42 00 FF E8 */ bdnz lbl_803C065C
lbl_803C0678:
/* 803C0678 003BD5D8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C067C 003BD5DC 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
/* 803C0680 003BD5E0 90 1F 00 0C */ stw r0, 0xc(r31)
lbl_803C0684:
/* 803C0684 003BD5E4 4B FB D9 A1 */ bl __OSGetDIConfig
/* 803C0688 003BD5E8 28 03 00 FF */ cmplwi r3, 0xff
/* 803C068C 003BD5EC 40 82 00 68 */ bne lbl_803C06F4
/* 803C0690 003BD5F0 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 803C0694 003BD5F4 2C 00 00 04 */ cmpwi r0, 4
/* 803C0698 003BD5F8 40 82 00 5C */ bne lbl_803C06F4
/* 803C069C 003BD5FC 80 1D 00 00 */ lwz r0, 0(r29)
/* 803C06A0 003BD600 54 00 06 77 */ rlwinm. r0, r0, 0, 0x19, 0x1b
/* 803C06A4 003BD604 40 82 00 50 */ bne lbl_803C06F4
/* 803C06A8 003BD608 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 803C06AC 003BD60C 38 03 68 00 */ addi r0, r3, 0xCC006800@l
/* 803C06B0 003BD610 7C 80 F2 14 */ add r4, r0, r30
/* 803C06B4 003BD614 84 64 00 10 */ lwzu r3, 0x10(r4)
/* 803C06B8 003BD618 3C 03 FE FF */ addis r0, r3, 0xfeff
/* 803C06BC 003BD61C 28 00 00 00 */ cmplwi r0, 0
/* 803C06C0 003BD620 41 82 00 24 */ beq lbl_803C06E4
/* 803C06C4 003BD624 80 64 00 00 */ lwz r3, 0(r4)
/* 803C06C8 003BD628 3C 03 FA F9 */ addis r0, r3, 0xfaf9
/* 803C06CC 003BD62C 28 00 00 00 */ cmplwi r0, 0
/* 803C06D0 003BD630 41 82 00 14 */ beq lbl_803C06E4
/* 803C06D4 003BD634 80 64 00 00 */ lwz r3, 0(r4)
/* 803C06D8 003BD638 3C 03 FB DE */ addis r0, r3, 0xfbde
/* 803C06DC 003BD63C 28 00 00 01 */ cmplwi r0, 1
/* 803C06E0 003BD640 40 82 00 14 */ bne lbl_803C06F4
lbl_803C06E4:
/* 803C06E4 003BD644 3C 60 80 00 */ lis r3, 0x800030E6@ha
/* 803C06E8 003BD648 A0 03 30 E6 */ lhz r0, 0x800030E6@l(r3)
/* 803C06EC 003BD64C 28 00 82 00 */ cmplwi r0, 0x8200
/* 803C06F0 003BD650 40 82 00 08 */ bne lbl_803C06F8
lbl_803C06F4:
/* 803C06F4 003BD654 3B 80 00 01 */ li r28, 1
lbl_803C06F8:
/* 803C06F8 003BD658 7F 63 DB 78 */ mr r3, r27
/* 803C06FC 003BD65C 4B FC 0F 8D */ bl OSRestoreInterrupts
/* 803C0700 003BD660 48 00 00 10 */ b lbl_803C0710
lbl_803C0704:
/* 803C0704 003BD664 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0708 003BD668 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 803C070C 003BD66C 40 82 FE 1C */ bne lbl_803C0528
lbl_803C0710:
/* 803C0710 003BD670 7F 83 E3 78 */ mr r3, r28
/* 803C0714 003BD674 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803C0718 003BD678 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 803C071C 003BD67C 38 21 00 30 */ addi r1, r1, 0x30
/* 803C0720 003BD680 7C 08 03 A6 */ mtlr r0
/* 803C0724 003BD684 4E 80 00 20 */ blr
.global EXIClearInterrupts
EXIClearInterrupts:
/* 803C0728 003BD688 1C 03 00 14 */ mulli r0, r3, 0x14
/* 803C072C 003BD68C 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 803C0730 003BD690 38 E3 68 00 */ addi r7, r3, 0xCC006800@l
/* 803C0734 003BD694 7C E7 02 14 */ add r7, r7, r0
/* 803C0738 003BD698 80 07 00 00 */ lwz r0, 0(r7)
/* 803C073C 003BD69C 7C 03 03 78 */ mr r3, r0
/* 803C0740 003BD6A0 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 803C0744 003BD6A4 2C 04 00 00 */ cmpwi r4, 0
/* 803C0748 003BD6A8 41 82 00 08 */ beq lbl_803C0750
/* 803C074C 003BD6AC 60 00 00 02 */ ori r0, r0, 2
lbl_803C0750:
/* 803C0750 003BD6B0 2C 05 00 00 */ cmpwi r5, 0
/* 803C0754 003BD6B4 41 82 00 08 */ beq lbl_803C075C
/* 803C0758 003BD6B8 60 00 00 08 */ ori r0, r0, 8
lbl_803C075C:
/* 803C075C 003BD6BC 2C 06 00 00 */ cmpwi r6, 0
/* 803C0760 003BD6C0 41 82 00 08 */ beq lbl_803C0768
/* 803C0764 003BD6C4 60 00 08 00 */ ori r0, r0, 0x800
lbl_803C0768:
/* 803C0768 003BD6C8 90 07 00 00 */ stw r0, 0(r7)
/* 803C076C 003BD6CC 4E 80 00 20 */ blr
.global EXISetExiCallback
EXISetExiCallback:
/* 803C0770 003BD6D0 7C 08 02 A6 */ mflr r0
/* 803C0774 003BD6D4 90 01 00 04 */ stw r0, 4(r1)
/* 803C0778 003BD6D8 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 803C077C 003BD6DC BF 41 00 10 */ stmw r26, 0x10(r1)
/* 803C0780 003BD6E0 3B 43 00 00 */ addi r26, r3, 0
/* 803C0784 003BD6E4 3B 64 00 00 */ addi r27, r4, 0
/* 803C0788 003BD6E8 54 60 30 32 */ slwi r0, r3, 6
/* 803C078C 003BD6EC 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0790 003BD6F0 3B E3 9E 98 */ addi r31, r3, lbl_80569E98@l
/* 803C0794 003BD6F4 7F DF 02 14 */ add r30, r31, r0
/* 803C0798 003BD6F8 4B FC 0E C9 */ bl OSDisableInterrupts
/* 803C079C 003BD6FC 7C 7C 1B 78 */ mr r28, r3
/* 803C07A0 003BD700 83 BE 00 00 */ lwz r29, 0(r30)
/* 803C07A4 003BD704 93 7E 00 00 */ stw r27, 0(r30)
/* 803C07A8 003BD708 2C 1A 00 02 */ cmpwi r26, 2
/* 803C07AC 003BD70C 41 82 00 14 */ beq lbl_803C07C0
/* 803C07B0 003BD710 38 7A 00 00 */ addi r3, r26, 0
/* 803C07B4 003BD714 38 9E 00 00 */ addi r4, r30, 0
/* 803C07B8 003BD718 4B FF F8 5D */ bl SetExiInterruptMask
/* 803C07BC 003BD71C 48 00 00 10 */ b lbl_803C07CC
lbl_803C07C0:
/* 803C07C0 003BD720 38 60 00 00 */ li r3, 0
/* 803C07C4 003BD724 38 9F 00 00 */ addi r4, r31, 0
/* 803C07C8 003BD728 4B FF F8 4D */ bl SetExiInterruptMask
lbl_803C07CC:
/* 803C07CC 003BD72C 7F 83 E3 78 */ mr r3, r28
/* 803C07D0 003BD730 4B FC 0E B9 */ bl OSRestoreInterrupts
/* 803C07D4 003BD734 7F A3 EB 78 */ mr r3, r29
/* 803C07D8 003BD738 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803C07DC 003BD73C BB 41 00 10 */ lmw r26, 0x10(r1)
/* 803C07E0 003BD740 38 21 00 28 */ addi r1, r1, 0x28
/* 803C07E4 003BD744 7C 08 03 A6 */ mtlr r0
/* 803C07E8 003BD748 4E 80 00 20 */ blr
.global __EXIProbe
__EXIProbe:
/* 803C07EC 003BD74C 7C 08 02 A6 */ mflr r0
/* 803C07F0 003BD750 90 01 00 04 */ stw r0, 4(r1)
/* 803C07F4 003BD754 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 803C07F8 003BD758 BF 61 00 14 */ stmw r27, 0x14(r1)
/* 803C07FC 003BD75C 3B 83 00 00 */ addi r28, r3, 0
/* 803C0800 003BD760 54 64 30 32 */ slwi r4, r3, 6
/* 803C0804 003BD764 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0808 003BD768 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C080C 003BD76C 7F E0 22 14 */ add r31, r0, r4
/* 803C0810 003BD770 2C 1C 00 02 */ cmpwi r28, 2
/* 803C0814 003BD774 40 82 00 0C */ bne lbl_803C0820
/* 803C0818 003BD778 38 60 00 01 */ li r3, 1
/* 803C081C 003BD77C 48 00 01 30 */ b lbl_803C094C
lbl_803C0820:
/* 803C0820 003BD780 3B A0 00 01 */ li r29, 1
/* 803C0824 003BD784 4B FC 0E 3D */ bl OSDisableInterrupts
/* 803C0828 003BD788 3B C3 00 00 */ addi r30, r3, 0
/* 803C082C 003BD78C 1C 1C 00 14 */ mulli r0, r28, 0x14
/* 803C0830 003BD790 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 803C0834 003BD794 38 63 68 00 */ addi r3, r3, 0xCC006800@l
/* 803C0838 003BD798 7C 63 02 14 */ add r3, r3, r0
/* 803C083C 003BD79C 80 A3 00 00 */ lwz r5, 0(r3)
/* 803C0840 003BD7A0 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0844 003BD7A4 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803C0848 003BD7A8 40 82 00 CC */ bne lbl_803C0914
/* 803C084C 003BD7AC 54 A0 05 29 */ rlwinm. r0, r5, 0, 0x14, 0x14
/* 803C0850 003BD7B0 41 82 00 2C */ beq lbl_803C087C
/* 803C0854 003BD7B4 80 03 00 00 */ lwz r0, 0(r3)
/* 803C0858 003BD7B8 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 803C085C 003BD7BC 60 00 08 00 */ ori r0, r0, 0x800
/* 803C0860 003BD7C0 90 03 00 00 */ stw r0, 0(r3)
/* 803C0864 003BD7C4 38 80 00 00 */ li r4, 0
/* 803C0868 003BD7C8 90 9F 00 20 */ stw r4, 0x20(r31)
/* 803C086C 003BD7CC 57 80 10 3A */ slwi r0, r28, 2
/* 803C0870 003BD7D0 3C 60 80 00 */ lis r3, 0x800030C0@ha
/* 803C0874 003BD7D4 38 63 30 C0 */ addi r3, r3, 0x800030C0@l
/* 803C0878 003BD7D8 7C 83 01 2E */ stwx r4, r3, r0
lbl_803C087C:
/* 803C087C 003BD7DC 54 A0 04 E7 */ rlwinm. r0, r5, 0, 0x13, 0x13
/* 803C0880 003BD7E0 41 82 00 74 */ beq lbl_803C08F4
/* 803C0884 003BD7E4 3F E0 80 00 */ lis r31, 0x800000F8@ha
/* 803C0888 003BD7E8 80 1F 00 F8 */ lwz r0, 0x800000F8@l(r31)
/* 803C088C 003BD7EC 54 00 F0 BE */ srwi r0, r0, 2
/* 803C0890 003BD7F0 3C 60 10 62 */ lis r3, 0x10624DD3@ha
/* 803C0894 003BD7F4 38 63 4D D3 */ addi r3, r3, 0x10624DD3@l
/* 803C0898 003BD7F8 7C 03 00 16 */ mulhwu r0, r3, r0
/* 803C089C 003BD7FC 54 1B D1 BE */ srwi r27, r0, 6
/* 803C08A0 003BD800 4B FC 4B 09 */ bl OSGetTime
/* 803C08A4 003BD804 38 A0 00 00 */ li r5, 0
/* 803C08A8 003BD808 38 DB 00 00 */ addi r6, r27, 0
/* 803C08AC 003BD80C 4B FC 93 21 */ bl __div2i
/* 803C08B0 003BD810 38 A0 00 00 */ li r5, 0
/* 803C08B4 003BD814 38 C0 00 64 */ li r6, 0x64
/* 803C08B8 003BD818 4B FC 93 15 */ bl __div2i
/* 803C08BC 003BD81C 38 84 00 01 */ addi r4, r4, 1
/* 803C08C0 003BD820 57 80 10 3A */ slwi r0, r28, 2
/* 803C08C4 003BD824 38 7F 30 C0 */ addi r3, r31, 0x30c0
/* 803C08C8 003BD828 7C 63 02 14 */ add r3, r3, r0
/* 803C08CC 003BD82C 80 03 00 00 */ lwz r0, 0(r3)
/* 803C08D0 003BD830 2C 00 00 00 */ cmpwi r0, 0
/* 803C08D4 003BD834 40 82 00 08 */ bne lbl_803C08DC
/* 803C08D8 003BD838 90 83 00 00 */ stw r4, 0(r3)
lbl_803C08DC:
/* 803C08DC 003BD83C 80 03 00 00 */ lwz r0, 0(r3)
/* 803C08E0 003BD840 7C 00 20 50 */ subf r0, r0, r4
/* 803C08E4 003BD844 2C 00 00 03 */ cmpwi r0, 3
/* 803C08E8 003BD848 40 80 00 58 */ bge lbl_803C0940
/* 803C08EC 003BD84C 3B A0 00 00 */ li r29, 0
/* 803C08F0 003BD850 48 00 00 50 */ b lbl_803C0940
lbl_803C08F4:
/* 803C08F4 003BD854 38 80 00 00 */ li r4, 0
/* 803C08F8 003BD858 90 9F 00 20 */ stw r4, 0x20(r31)
/* 803C08FC 003BD85C 57 80 10 3A */ slwi r0, r28, 2
/* 803C0900 003BD860 3C 60 80 00 */ lis r3, 0x800030C0@ha
/* 803C0904 003BD864 38 63 30 C0 */ addi r3, r3, 0x800030C0@l
/* 803C0908 003BD868 7C 83 01 2E */ stwx r4, r3, r0
/* 803C090C 003BD86C 3B A0 00 00 */ li r29, 0
/* 803C0910 003BD870 48 00 00 30 */ b lbl_803C0940
lbl_803C0914:
/* 803C0914 003BD874 54 A0 04 E7 */ rlwinm. r0, r5, 0, 0x13, 0x13
/* 803C0918 003BD878 41 82 00 0C */ beq lbl_803C0924
/* 803C091C 003BD87C 54 A0 05 29 */ rlwinm. r0, r5, 0, 0x14, 0x14
/* 803C0920 003BD880 41 82 00 20 */ beq lbl_803C0940
lbl_803C0924:
/* 803C0924 003BD884 38 80 00 00 */ li r4, 0
/* 803C0928 003BD888 90 9F 00 20 */ stw r4, 0x20(r31)
/* 803C092C 003BD88C 57 80 10 3A */ slwi r0, r28, 2
/* 803C0930 003BD890 3C 60 80 00 */ lis r3, 0x800030C0@ha
/* 803C0934 003BD894 38 63 30 C0 */ addi r3, r3, 0x800030C0@l
/* 803C0938 003BD898 7C 83 01 2E */ stwx r4, r3, r0
/* 803C093C 003BD89C 3B A0 00 00 */ li r29, 0
lbl_803C0940:
/* 803C0940 003BD8A0 7F C3 F3 78 */ mr r3, r30
/* 803C0944 003BD8A4 4B FC 0D 45 */ bl OSRestoreInterrupts
/* 803C0948 003BD8A8 7F A3 EB 78 */ mr r3, r29
lbl_803C094C:
/* 803C094C 003BD8AC 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803C0950 003BD8B0 BB 61 00 14 */ lmw r27, 0x14(r1)
/* 803C0954 003BD8B4 38 21 00 28 */ addi r1, r1, 0x28
/* 803C0958 003BD8B8 7C 08 03 A6 */ mtlr r0
/* 803C095C 003BD8BC 4E 80 00 20 */ blr
.global EXIProbe
EXIProbe:
/* 803C0960 003BD8C0 7C 08 02 A6 */ mflr r0
/* 803C0964 003BD8C4 90 01 00 04 */ stw r0, 4(r1)
/* 803C0968 003BD8C8 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803C096C 003BD8CC 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803C0970 003BD8D0 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803C0974 003BD8D4 3B C3 00 00 */ addi r30, r3, 0
/* 803C0978 003BD8D8 54 64 30 32 */ slwi r4, r3, 6
/* 803C097C 003BD8DC 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0980 003BD8E0 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C0984 003BD8E4 7F E0 22 14 */ add r31, r0, r4
/* 803C0988 003BD8E8 38 7E 00 00 */ addi r3, r30, 0
/* 803C098C 003BD8EC 4B FF FE 61 */ bl __EXIProbe
/* 803C0990 003BD8F0 2C 03 00 00 */ cmpwi r3, 0
/* 803C0994 003BD8F4 41 82 00 34 */ beq lbl_803C09C8
/* 803C0998 003BD8F8 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 803C099C 003BD8FC 2C 00 00 00 */ cmpwi r0, 0
/* 803C09A0 003BD900 40 82 00 28 */ bne lbl_803C09C8
/* 803C09A4 003BD904 38 7E 00 00 */ addi r3, r30, 0
/* 803C09A8 003BD908 38 80 00 00 */ li r4, 0
/* 803C09AC 003BD90C 38 A1 00 0C */ addi r5, r1, 0xc
/* 803C09B0 003BD910 48 00 0B C5 */ bl EXIGetID
/* 803C09B4 003BD914 2C 03 00 00 */ cmpwi r3, 0
/* 803C09B8 003BD918 41 82 00 0C */ beq lbl_803C09C4
/* 803C09BC 003BD91C 38 60 00 01 */ li r3, 1
/* 803C09C0 003BD920 48 00 00 08 */ b lbl_803C09C8
lbl_803C09C4:
/* 803C09C4 003BD924 38 60 00 00 */ li r3, 0
lbl_803C09C8:
/* 803C09C8 003BD928 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803C09CC 003BD92C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803C09D0 003BD930 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803C09D4 003BD934 38 21 00 18 */ addi r1, r1, 0x18
/* 803C09D8 003BD938 7C 08 03 A6 */ mtlr r0
/* 803C09DC 003BD93C 4E 80 00 20 */ blr
.global EXIProbeEx
EXIProbeEx:
/* 803C09E0 003BD940 7C 08 02 A6 */ mflr r0
/* 803C09E4 003BD944 90 01 00 04 */ stw r0, 4(r1)
/* 803C09E8 003BD948 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803C09EC 003BD94C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803C09F0 003BD950 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803C09F4 003BD954 3B C3 00 00 */ addi r30, r3, 0
/* 803C09F8 003BD958 54 64 30 32 */ slwi r4, r3, 6
/* 803C09FC 003BD95C 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0A00 003BD960 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C0A04 003BD964 7F E0 22 14 */ add r31, r0, r4
/* 803C0A08 003BD968 38 7E 00 00 */ addi r3, r30, 0
/* 803C0A0C 003BD96C 4B FF FD E1 */ bl __EXIProbe
/* 803C0A10 003BD970 2C 03 00 00 */ cmpwi r3, 0
/* 803C0A14 003BD974 41 82 00 34 */ beq lbl_803C0A48
/* 803C0A18 003BD978 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 803C0A1C 003BD97C 2C 00 00 00 */ cmpwi r0, 0
/* 803C0A20 003BD980 40 82 00 28 */ bne lbl_803C0A48
/* 803C0A24 003BD984 38 7E 00 00 */ addi r3, r30, 0
/* 803C0A28 003BD988 38 80 00 00 */ li r4, 0
/* 803C0A2C 003BD98C 38 A1 00 0C */ addi r5, r1, 0xc
/* 803C0A30 003BD990 48 00 0B 45 */ bl EXIGetID
/* 803C0A34 003BD994 2C 03 00 00 */ cmpwi r3, 0
/* 803C0A38 003BD998 41 82 00 0C */ beq lbl_803C0A44
/* 803C0A3C 003BD99C 38 60 00 01 */ li r3, 1
/* 803C0A40 003BD9A0 48 00 00 08 */ b lbl_803C0A48
lbl_803C0A44:
/* 803C0A44 003BD9A4 38 60 00 00 */ li r3, 0
lbl_803C0A48:
/* 803C0A48 003BD9A8 2C 03 00 00 */ cmpwi r3, 0
/* 803C0A4C 003BD9AC 41 82 00 0C */ beq lbl_803C0A58
/* 803C0A50 003BD9B0 38 60 00 01 */ li r3, 1
/* 803C0A54 003BD9B4 48 00 00 28 */ b lbl_803C0A7C
lbl_803C0A58:
/* 803C0A58 003BD9B8 57 C0 10 3A */ slwi r0, r30, 2
/* 803C0A5C 003BD9BC 3C 60 80 00 */ lis r3, 0x800030C0@ha
/* 803C0A60 003BD9C0 38 63 30 C0 */ addi r3, r3, 0x800030C0@l
/* 803C0A64 003BD9C4 7C 03 00 2E */ lwzx r0, r3, r0
/* 803C0A68 003BD9C8 2C 00 00 00 */ cmpwi r0, 0
/* 803C0A6C 003BD9CC 41 82 00 0C */ beq lbl_803C0A78
/* 803C0A70 003BD9D0 38 60 00 00 */ li r3, 0
/* 803C0A74 003BD9D4 48 00 00 08 */ b lbl_803C0A7C
lbl_803C0A78:
/* 803C0A78 003BD9D8 38 60 FF FF */ li r3, -1
lbl_803C0A7C:
/* 803C0A7C 003BD9DC 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803C0A80 003BD9E0 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803C0A84 003BD9E4 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803C0A88 003BD9E8 38 21 00 18 */ addi r1, r1, 0x18
/* 803C0A8C 003BD9EC 7C 08 03 A6 */ mtlr r0
/* 803C0A90 003BD9F0 4E 80 00 20 */ blr
.global EXIAttach
EXIAttach:
/* 803C0A94 003BD9F4 7C 08 02 A6 */ mflr r0
/* 803C0A98 003BD9F8 90 01 00 04 */ stw r0, 4(r1)
/* 803C0A9C 003BD9FC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803C0AA0 003BDA00 BF 61 00 2C */ stmw r27, 0x2c(r1)
/* 803C0AA4 003BDA04 3B 63 00 00 */ addi r27, r3, 0
/* 803C0AA8 003BDA08 3B 84 00 00 */ addi r28, r4, 0
/* 803C0AAC 003BDA0C 54 64 30 32 */ slwi r4, r3, 6
/* 803C0AB0 003BDA10 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0AB4 003BDA14 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C0AB8 003BDA18 7F C0 22 14 */ add r30, r0, r4
/* 803C0ABC 003BDA1C 38 7B 00 00 */ addi r3, r27, 0
/* 803C0AC0 003BDA20 4B FF FD 2D */ bl __EXIProbe
/* 803C0AC4 003BDA24 2C 03 00 00 */ cmpwi r3, 0
/* 803C0AC8 003BDA28 41 82 00 20 */ beq lbl_803C0AE8
/* 803C0ACC 003BDA2C 80 1E 00 20 */ lwz r0, 0x20(r30)
/* 803C0AD0 003BDA30 2C 00 00 00 */ cmpwi r0, 0
/* 803C0AD4 003BDA34 40 82 00 14 */ bne lbl_803C0AE8
/* 803C0AD8 003BDA38 38 7B 00 00 */ addi r3, r27, 0
/* 803C0ADC 003BDA3C 38 80 00 00 */ li r4, 0
/* 803C0AE0 003BDA40 38 A1 00 1C */ addi r5, r1, 0x1c
/* 803C0AE4 003BDA44 48 00 0A 91 */ bl EXIGetID
lbl_803C0AE8:
/* 803C0AE8 003BDA48 4B FC 0B 79 */ bl OSDisableInterrupts
/* 803C0AEC 003BDA4C 7C 7D 1B 78 */ mr r29, r3
/* 803C0AF0 003BDA50 80 1E 00 20 */ lwz r0, 0x20(r30)
/* 803C0AF4 003BDA54 2C 00 00 00 */ cmpwi r0, 0
/* 803C0AF8 003BDA58 40 82 00 14 */ bne lbl_803C0B0C
/* 803C0AFC 003BDA5C 7F A3 EB 78 */ mr r3, r29
/* 803C0B00 003BDA60 4B FC 0B 89 */ bl OSRestoreInterrupts
/* 803C0B04 003BDA64 38 60 00 00 */ li r3, 0
/* 803C0B08 003BDA68 48 00 00 84 */ b lbl_803C0B8C
lbl_803C0B0C:
/* 803C0B0C 003BDA6C 4B FC 0B 55 */ bl OSDisableInterrupts
/* 803C0B10 003BDA70 7C 7F 1B 78 */ mr r31, r3
/* 803C0B14 003BDA74 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803C0B18 003BDA78 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803C0B1C 003BDA7C 40 82 00 14 */ bne lbl_803C0B30
/* 803C0B20 003BDA80 7F 63 DB 78 */ mr r3, r27
/* 803C0B24 003BDA84 4B FF FC C9 */ bl __EXIProbe
/* 803C0B28 003BDA88 2C 03 00 00 */ cmpwi r3, 0
/* 803C0B2C 003BDA8C 40 82 00 14 */ bne lbl_803C0B40
lbl_803C0B30:
/* 803C0B30 003BDA90 7F E3 FB 78 */ mr r3, r31
/* 803C0B34 003BDA94 4B FC 0B 55 */ bl OSRestoreInterrupts
/* 803C0B38 003BDA98 3B E0 00 00 */ li r31, 0
/* 803C0B3C 003BDA9C 48 00 00 44 */ b lbl_803C0B80
lbl_803C0B40:
/* 803C0B40 003BDAA0 38 7B 00 00 */ addi r3, r27, 0
/* 803C0B44 003BDAA4 38 80 00 01 */ li r4, 1
/* 803C0B48 003BDAA8 38 A0 00 00 */ li r5, 0
/* 803C0B4C 003BDAAC 38 C0 00 00 */ li r6, 0
/* 803C0B50 003BDAB0 4B FF FB D9 */ bl EXIClearInterrupts
/* 803C0B54 003BDAB4 93 9E 00 08 */ stw r28, 8(r30)
/* 803C0B58 003BDAB8 3C 60 00 10 */ lis r3, 0x10
/* 803C0B5C 003BDABC 1C 1B 00 03 */ mulli r0, r27, 3
/* 803C0B60 003BDAC0 7C 63 04 30 */ srw r3, r3, r0
/* 803C0B64 003BDAC4 4B FC 0F 4D */ bl __OSUnmaskInterrupts
/* 803C0B68 003BDAC8 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803C0B6C 003BDACC 60 00 00 08 */ ori r0, r0, 8
/* 803C0B70 003BDAD0 90 1E 00 0C */ stw r0, 0xc(r30)
/* 803C0B74 003BDAD4 7F E3 FB 78 */ mr r3, r31
/* 803C0B78 003BDAD8 4B FC 0B 11 */ bl OSRestoreInterrupts
/* 803C0B7C 003BDADC 3B E0 00 01 */ li r31, 1
lbl_803C0B80:
/* 803C0B80 003BDAE0 7F A3 EB 78 */ mr r3, r29
/* 803C0B84 003BDAE4 4B FC 0B 05 */ bl OSRestoreInterrupts
/* 803C0B88 003BDAE8 7F E3 FB 78 */ mr r3, r31
lbl_803C0B8C:
/* 803C0B8C 003BDAEC 80 01 00 44 */ lwz r0, 0x44(r1)
/* 803C0B90 003BDAF0 BB 61 00 2C */ lmw r27, 0x2c(r1)
/* 803C0B94 003BDAF4 38 21 00 40 */ addi r1, r1, 0x40
/* 803C0B98 003BDAF8 7C 08 03 A6 */ mtlr r0
/* 803C0B9C 003BDAFC 4E 80 00 20 */ blr
.global EXIDetach
EXIDetach:
/* 803C0BA0 003BDB00 7C 08 02 A6 */ mflr r0
/* 803C0BA4 003BDB04 90 01 00 04 */ stw r0, 4(r1)
/* 803C0BA8 003BDB08 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803C0BAC 003BDB0C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803C0BB0 003BDB10 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803C0BB4 003BDB14 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803C0BB8 003BDB18 3B A3 00 00 */ addi r29, r3, 0
/* 803C0BBC 003BDB1C 54 64 30 32 */ slwi r4, r3, 6
/* 803C0BC0 003BDB20 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0BC4 003BDB24 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C0BC8 003BDB28 7F E0 22 14 */ add r31, r0, r4
/* 803C0BCC 003BDB2C 4B FC 0A 95 */ bl OSDisableInterrupts
/* 803C0BD0 003BDB30 7C 7E 1B 78 */ mr r30, r3
/* 803C0BD4 003BDB34 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0BD8 003BDB38 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803C0BDC 003BDB3C 40 82 00 14 */ bne lbl_803C0BF0
/* 803C0BE0 003BDB40 7F C3 F3 78 */ mr r3, r30
/* 803C0BE4 003BDB44 4B FC 0A A5 */ bl OSRestoreInterrupts
/* 803C0BE8 003BDB48 38 60 00 01 */ li r3, 1
/* 803C0BEC 003BDB4C 48 00 00 54 */ b lbl_803C0C40
lbl_803C0BF0:
/* 803C0BF0 003BDB50 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0BF4 003BDB54 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803C0BF8 003BDB58 41 82 00 20 */ beq lbl_803C0C18
/* 803C0BFC 003BDB5C 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 803C0C00 003BDB60 28 00 00 00 */ cmplwi r0, 0
/* 803C0C04 003BDB64 40 82 00 14 */ bne lbl_803C0C18
/* 803C0C08 003BDB68 7F C3 F3 78 */ mr r3, r30
/* 803C0C0C 003BDB6C 4B FC 0A 7D */ bl OSRestoreInterrupts
/* 803C0C10 003BDB70 38 60 00 00 */ li r3, 0
/* 803C0C14 003BDB74 48 00 00 2C */ b lbl_803C0C40
lbl_803C0C18:
/* 803C0C18 003BDB78 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0C1C 003BDB7C 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 803C0C20 003BDB80 90 1F 00 0C */ stw r0, 0xc(r31)
/* 803C0C24 003BDB84 3C 60 00 50 */ lis r3, 0x50
/* 803C0C28 003BDB88 1C 1D 00 03 */ mulli r0, r29, 3
/* 803C0C2C 003BDB8C 7C 63 04 30 */ srw r3, r3, r0
/* 803C0C30 003BDB90 4B FC 0D F9 */ bl __OSMaskInterrupts
/* 803C0C34 003BDB94 7F C3 F3 78 */ mr r3, r30
/* 803C0C38 003BDB98 4B FC 0A 51 */ bl OSRestoreInterrupts
/* 803C0C3C 003BDB9C 38 60 00 01 */ li r3, 1
lbl_803C0C40:
/* 803C0C40 003BDBA0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803C0C44 003BDBA4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803C0C48 003BDBA8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803C0C4C 003BDBAC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803C0C50 003BDBB0 38 21 00 20 */ addi r1, r1, 0x20
/* 803C0C54 003BDBB4 7C 08 03 A6 */ mtlr r0
/* 803C0C58 003BDBB8 4E 80 00 20 */ blr
.global EXISelect
EXISelect:
/* 803C0C5C 003BDBBC 7C 08 02 A6 */ mflr r0
/* 803C0C60 003BDBC0 90 01 00 04 */ stw r0, 4(r1)
/* 803C0C64 003BDBC4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803C0C68 003BDBC8 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 803C0C6C 003BDBCC 3B 63 00 00 */ addi r27, r3, 0
/* 803C0C70 003BDBD0 3B 84 00 00 */ addi r28, r4, 0
/* 803C0C74 003BDBD4 3B A5 00 00 */ addi r29, r5, 0
/* 803C0C78 003BDBD8 54 64 30 32 */ slwi r4, r3, 6
/* 803C0C7C 003BDBDC 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0C80 003BDBE0 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C0C84 003BDBE4 7F E0 22 14 */ add r31, r0, r4
/* 803C0C88 003BDBE8 4B FC 09 D9 */ bl OSDisableInterrupts
/* 803C0C8C 003BDBEC 7C 7E 1B 78 */ mr r30, r3
/* 803C0C90 003BDBF0 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0C94 003BDBF4 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 803C0C98 003BDBF8 40 82 00 48 */ bne lbl_803C0CE0
/* 803C0C9C 003BDBFC 2C 1B 00 02 */ cmpwi r27, 2
/* 803C0CA0 003BDC00 41 82 00 50 */ beq lbl_803C0CF0
/* 803C0CA4 003BDC04 28 1C 00 00 */ cmplwi r28, 0
/* 803C0CA8 003BDC08 40 82 00 20 */ bne lbl_803C0CC8
/* 803C0CAC 003BDC0C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0CB0 003BDC10 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803C0CB4 003BDC14 40 82 00 14 */ bne lbl_803C0CC8
/* 803C0CB8 003BDC18 7F 63 DB 78 */ mr r3, r27
/* 803C0CBC 003BDC1C 4B FF FB 31 */ bl __EXIProbe
/* 803C0CC0 003BDC20 2C 03 00 00 */ cmpwi r3, 0
/* 803C0CC4 003BDC24 41 82 00 1C */ beq lbl_803C0CE0
lbl_803C0CC8:
/* 803C0CC8 003BDC28 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0CCC 003BDC2C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803C0CD0 003BDC30 41 82 00 10 */ beq lbl_803C0CE0
/* 803C0CD4 003BDC34 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 803C0CD8 003BDC38 7C 00 E0 40 */ cmplw r0, r28
/* 803C0CDC 003BDC3C 41 82 00 14 */ beq lbl_803C0CF0
lbl_803C0CE0:
/* 803C0CE0 003BDC40 7F C3 F3 78 */ mr r3, r30
/* 803C0CE4 003BDC44 4B FC 09 A5 */ bl OSRestoreInterrupts
/* 803C0CE8 003BDC48 38 60 00 00 */ li r3, 0
/* 803C0CEC 003BDC4C 48 00 00 88 */ b lbl_803C0D74
lbl_803C0CF0:
/* 803C0CF0 003BDC50 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0CF4 003BDC54 60 00 00 04 */ ori r0, r0, 4
/* 803C0CF8 003BDC58 90 1F 00 0C */ stw r0, 0xc(r31)
/* 803C0CFC 003BDC5C 1C 1B 00 14 */ mulli r0, r27, 0x14
/* 803C0D00 003BDC60 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 803C0D04 003BDC64 38 83 68 00 */ addi r4, r3, 0xCC006800@l
/* 803C0D08 003BDC68 7C 84 02 14 */ add r4, r4, r0
/* 803C0D0C 003BDC6C 80 A4 00 00 */ lwz r5, 0(r4)
/* 803C0D10 003BDC70 70 A5 04 05 */ andi. r5, r5, 0x405
/* 803C0D14 003BDC74 38 00 00 01 */ li r0, 1
/* 803C0D18 003BDC78 7C 00 E0 30 */ slw r0, r0, r28
/* 803C0D1C 003BDC7C 54 03 38 30 */ slwi r3, r0, 7
/* 803C0D20 003BDC80 57 A0 20 36 */ slwi r0, r29, 4
/* 803C0D24 003BDC84 7C 60 03 78 */ or r0, r3, r0
/* 803C0D28 003BDC88 7C A5 03 78 */ or r5, r5, r0
/* 803C0D2C 003BDC8C 90 A4 00 00 */ stw r5, 0(r4)
/* 803C0D30 003BDC90 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0D34 003BDC94 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803C0D38 003BDC98 41 82 00 30 */ beq lbl_803C0D68
/* 803C0D3C 003BDC9C 2C 1B 00 01 */ cmpwi r27, 1
/* 803C0D40 003BDCA0 41 82 00 20 */ beq lbl_803C0D60
/* 803C0D44 003BDCA4 40 80 00 24 */ bge lbl_803C0D68
/* 803C0D48 003BDCA8 2C 1B 00 00 */ cmpwi r27, 0
/* 803C0D4C 003BDCAC 40 80 00 08 */ bge lbl_803C0D54
/* 803C0D50 003BDCB0 48 00 00 18 */ b lbl_803C0D68
lbl_803C0D54:
/* 803C0D54 003BDCB4 3C 60 00 10 */ lis r3, 0x10
/* 803C0D58 003BDCB8 4B FC 0C D1 */ bl __OSMaskInterrupts
/* 803C0D5C 003BDCBC 48 00 00 0C */ b lbl_803C0D68
lbl_803C0D60:
/* 803C0D60 003BDCC0 3C 60 00 02 */ lis r3, 2
/* 803C0D64 003BDCC4 4B FC 0C C5 */ bl __OSMaskInterrupts
lbl_803C0D68:
/* 803C0D68 003BDCC8 7F C3 F3 78 */ mr r3, r30
/* 803C0D6C 003BDCCC 4B FC 09 1D */ bl OSRestoreInterrupts
/* 803C0D70 003BDCD0 38 60 00 01 */ li r3, 1
lbl_803C0D74:
/* 803C0D74 003BDCD4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803C0D78 003BDCD8 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 803C0D7C 003BDCDC 38 21 00 30 */ addi r1, r1, 0x30
/* 803C0D80 003BDCE0 7C 08 03 A6 */ mtlr r0
/* 803C0D84 003BDCE4 4E 80 00 20 */ blr
.global EXIDeselect
EXIDeselect:
/* 803C0D88 003BDCE8 7C 08 02 A6 */ mflr r0
/* 803C0D8C 003BDCEC 90 01 00 04 */ stw r0, 4(r1)
/* 803C0D90 003BDCF0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803C0D94 003BDCF4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803C0D98 003BDCF8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803C0D9C 003BDCFC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803C0DA0 003BDD00 93 81 00 10 */ stw r28, 0x10(r1)
/* 803C0DA4 003BDD04 3B E3 00 00 */ addi r31, r3, 0
/* 803C0DA8 003BDD08 54 64 30 32 */ slwi r4, r3, 6
/* 803C0DAC 003BDD0C 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0DB0 003BDD10 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C0DB4 003BDD14 7F C0 22 14 */ add r30, r0, r4
/* 803C0DB8 003BDD18 4B FC 08 A9 */ bl OSDisableInterrupts
/* 803C0DBC 003BDD1C 7C 7C 1B 78 */ mr r28, r3
/* 803C0DC0 003BDD20 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803C0DC4 003BDD24 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 803C0DC8 003BDD28 40 82 00 14 */ bne lbl_803C0DDC
/* 803C0DCC 003BDD2C 7F 83 E3 78 */ mr r3, r28
/* 803C0DD0 003BDD30 4B FC 08 B9 */ bl OSRestoreInterrupts
/* 803C0DD4 003BDD34 38 60 00 00 */ li r3, 0
/* 803C0DD8 003BDD38 48 00 00 A0 */ b lbl_803C0E78
lbl_803C0DDC:
/* 803C0DDC 003BDD3C 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803C0DE0 003BDD40 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 803C0DE4 003BDD44 90 1E 00 0C */ stw r0, 0xc(r30)
/* 803C0DE8 003BDD48 1C 1F 00 14 */ mulli r0, r31, 0x14
/* 803C0DEC 003BDD4C 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 803C0DF0 003BDD50 38 63 68 00 */ addi r3, r3, 0xCC006800@l
/* 803C0DF4 003BDD54 7C 63 02 14 */ add r3, r3, r0
/* 803C0DF8 003BDD58 83 A3 00 00 */ lwz r29, 0(r3)
/* 803C0DFC 003BDD5C 73 A0 04 05 */ andi. r0, r29, 0x405
/* 803C0E00 003BDD60 90 03 00 00 */ stw r0, 0(r3)
/* 803C0E04 003BDD64 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803C0E08 003BDD68 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803C0E0C 003BDD6C 41 82 00 30 */ beq lbl_803C0E3C
/* 803C0E10 003BDD70 2C 1F 00 01 */ cmpwi r31, 1
/* 803C0E14 003BDD74 41 82 00 20 */ beq lbl_803C0E34
/* 803C0E18 003BDD78 40 80 00 24 */ bge lbl_803C0E3C
/* 803C0E1C 003BDD7C 2C 1F 00 00 */ cmpwi r31, 0
/* 803C0E20 003BDD80 40 80 00 08 */ bge lbl_803C0E28
/* 803C0E24 003BDD84 48 00 00 18 */ b lbl_803C0E3C
lbl_803C0E28:
/* 803C0E28 003BDD88 3C 60 00 10 */ lis r3, 0x10
/* 803C0E2C 003BDD8C 4B FC 0C 85 */ bl __OSUnmaskInterrupts
/* 803C0E30 003BDD90 48 00 00 0C */ b lbl_803C0E3C
lbl_803C0E34:
/* 803C0E34 003BDD94 3C 60 00 02 */ lis r3, 2
/* 803C0E38 003BDD98 4B FC 0C 79 */ bl __OSUnmaskInterrupts
lbl_803C0E3C:
/* 803C0E3C 003BDD9C 7F 83 E3 78 */ mr r3, r28
/* 803C0E40 003BDDA0 4B FC 08 49 */ bl OSRestoreInterrupts
/* 803C0E44 003BDDA4 2C 1F 00 02 */ cmpwi r31, 2
/* 803C0E48 003BDDA8 41 82 00 2C */ beq lbl_803C0E74
/* 803C0E4C 003BDDAC 57 A0 06 31 */ rlwinm. r0, r29, 0, 0x18, 0x18
/* 803C0E50 003BDDB0 41 82 00 24 */ beq lbl_803C0E74
/* 803C0E54 003BDDB4 7F E3 FB 78 */ mr r3, r31
/* 803C0E58 003BDDB8 4B FF F9 95 */ bl __EXIProbe
/* 803C0E5C 003BDDBC 2C 03 00 00 */ cmpwi r3, 0
/* 803C0E60 003BDDC0 41 82 00 0C */ beq lbl_803C0E6C
/* 803C0E64 003BDDC4 38 60 00 01 */ li r3, 1
/* 803C0E68 003BDDC8 48 00 00 10 */ b lbl_803C0E78
lbl_803C0E6C:
/* 803C0E6C 003BDDCC 38 60 00 00 */ li r3, 0
/* 803C0E70 003BDDD0 48 00 00 08 */ b lbl_803C0E78
lbl_803C0E74:
/* 803C0E74 003BDDD4 38 60 00 01 */ li r3, 1
lbl_803C0E78:
/* 803C0E78 003BDDD8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803C0E7C 003BDDDC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803C0E80 003BDDE0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803C0E84 003BDDE4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803C0E88 003BDDE8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803C0E8C 003BDDEC 38 21 00 20 */ addi r1, r1, 0x20
/* 803C0E90 003BDDF0 7C 08 03 A6 */ mtlr r0
/* 803C0E94 003BDDF4 4E 80 00 20 */ blr
.global EXIIntrruptHandler
EXIIntrruptHandler:
/* 803C0E98 003BDDF8 7C 08 02 A6 */ mflr r0
/* 803C0E9C 003BDDFC 90 01 00 04 */ stw r0, 4(r1)
/* 803C0EA0 003BDE00 94 21 FD 08 */ stwu r1, -0x2f8(r1)
/* 803C0EA4 003BDE04 93 E1 02 F4 */ stw r31, 0x2f4(r1)
/* 803C0EA8 003BDE08 93 C1 02 F0 */ stw r30, 0x2f0(r1)
/* 803C0EAC 003BDE0C 93 A1 02 EC */ stw r29, 0x2ec(r1)
/* 803C0EB0 003BDE10 3B E4 00 00 */ addi r31, r4, 0
/* 803C0EB4 003BDE14 7C 63 07 34 */ extsh r3, r3
/* 803C0EB8 003BDE18 38 03 FF F7 */ addi r0, r3, -9
/* 803C0EBC 003BDE1C 3C 60 55 55 */ lis r3, 0x55555556@ha
/* 803C0EC0 003BDE20 38 63 55 56 */ addi r3, r3, 0x55555556@l
/* 803C0EC4 003BDE24 7C 63 00 96 */ mulhw r3, r3, r0
/* 803C0EC8 003BDE28 54 60 0F FE */ srwi r0, r3, 0x1f
/* 803C0ECC 003BDE2C 7F C3 02 14 */ add r30, r3, r0
/* 803C0ED0 003BDE30 1C 1E 00 14 */ mulli r0, r30, 0x14
/* 803C0ED4 003BDE34 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 803C0ED8 003BDE38 38 63 68 00 */ addi r3, r3, 0xCC006800@l
/* 803C0EDC 003BDE3C 7C 63 02 14 */ add r3, r3, r0
/* 803C0EE0 003BDE40 80 03 00 00 */ lwz r0, 0(r3)
/* 803C0EE4 003BDE44 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 803C0EE8 003BDE48 60 00 00 02 */ ori r0, r0, 2
/* 803C0EEC 003BDE4C 90 03 00 00 */ stw r0, 0(r3)
/* 803C0EF0 003BDE50 57 C4 30 32 */ slwi r4, r30, 6
/* 803C0EF4 003BDE54 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0EF8 003BDE58 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C0EFC 003BDE5C 7C 60 22 14 */ add r3, r0, r4
/* 803C0F00 003BDE60 80 03 00 00 */ lwz r0, 0(r3)
/* 803C0F04 003BDE64 7C 1D 03 78 */ mr r29, r0
/* 803C0F08 003BDE68 28 00 00 00 */ cmplwi r0, 0
/* 803C0F0C 003BDE6C 41 82 00 38 */ beq lbl_803C0F44
/* 803C0F10 003BDE70 38 61 00 18 */ addi r3, r1, 0x18
/* 803C0F14 003BDE74 4B FB E7 01 */ bl OSClearContext
/* 803C0F18 003BDE78 38 61 00 18 */ addi r3, r1, 0x18
/* 803C0F1C 003BDE7C 4B FB E5 01 */ bl OSSetCurrentContext
/* 803C0F20 003BDE80 38 7E 00 00 */ addi r3, r30, 0
/* 803C0F24 003BDE84 38 9F 00 00 */ addi r4, r31, 0
/* 803C0F28 003BDE88 39 9D 00 00 */ addi r12, r29, 0
/* 803C0F2C 003BDE8C 7D 88 03 A6 */ mtlr r12
/* 803C0F30 003BDE90 4E 80 00 21 */ blrl
/* 803C0F34 003BDE94 38 61 00 18 */ addi r3, r1, 0x18
/* 803C0F38 003BDE98 4B FB E6 DD */ bl OSClearContext
/* 803C0F3C 003BDE9C 7F E3 FB 78 */ mr r3, r31
/* 803C0F40 003BDEA0 4B FB E4 DD */ bl OSSetCurrentContext
lbl_803C0F44:
/* 803C0F44 003BDEA4 80 01 02 FC */ lwz r0, 0x2fc(r1)
/* 803C0F48 003BDEA8 83 E1 02 F4 */ lwz r31, 0x2f4(r1)
/* 803C0F4C 003BDEAC 83 C1 02 F0 */ lwz r30, 0x2f0(r1)
/* 803C0F50 003BDEB0 83 A1 02 EC */ lwz r29, 0x2ec(r1)
/* 803C0F54 003BDEB4 38 21 02 F8 */ addi r1, r1, 0x2f8
/* 803C0F58 003BDEB8 7C 08 03 A6 */ mtlr r0
/* 803C0F5C 003BDEBC 4E 80 00 20 */ blr
.global TCIntrruptHandler
TCIntrruptHandler:
/* 803C0F60 003BDEC0 7C 08 02 A6 */ mflr r0
/* 803C0F64 003BDEC4 90 01 00 04 */ stw r0, 4(r1)
/* 803C0F68 003BDEC8 94 21 FD 08 */ stwu r1, -0x2f8(r1)
/* 803C0F6C 003BDECC 93 E1 02 F4 */ stw r31, 0x2f4(r1)
/* 803C0F70 003BDED0 93 C1 02 F0 */ stw r30, 0x2f0(r1)
/* 803C0F74 003BDED4 93 A1 02 EC */ stw r29, 0x2ec(r1)
/* 803C0F78 003BDED8 93 81 02 E8 */ stw r28, 0x2e8(r1)
/* 803C0F7C 003BDEDC 3B 84 00 00 */ addi r28, r4, 0
/* 803C0F80 003BDEE0 7C 65 07 34 */ extsh r5, r3
/* 803C0F84 003BDEE4 38 05 FF F6 */ addi r0, r5, -10
/* 803C0F88 003BDEE8 3C 60 55 55 */ lis r3, 0x55555556@ha
/* 803C0F8C 003BDEEC 38 63 55 56 */ addi r3, r3, 0x55555556@l
/* 803C0F90 003BDEF0 7C 63 00 96 */ mulhw r3, r3, r0
/* 803C0F94 003BDEF4 54 60 0F FE */ srwi r0, r3, 0x1f
/* 803C0F98 003BDEF8 7F C3 02 14 */ add r30, r3, r0
/* 803C0F9C 003BDEFC 57 C4 30 32 */ slwi r4, r30, 6
/* 803C0FA0 003BDF00 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C0FA4 003BDF04 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C0FA8 003BDF08 7F E0 22 14 */ add r31, r0, r4
/* 803C0FAC 003BDF0C 3C 00 80 00 */ lis r0, 0x8000
/* 803C0FB0 003BDF10 7C 03 2C 30 */ srw r3, r0, r5
/* 803C0FB4 003BDF14 4B FC 0A 75 */ bl __OSMaskInterrupts
/* 803C0FB8 003BDF18 1C FE 00 14 */ mulli r7, r30, 0x14
/* 803C0FBC 003BDF1C 3C C0 CC 00 */ lis r6, 0xCC006800@ha
/* 803C0FC0 003BDF20 38 66 68 00 */ addi r3, r6, 0xCC006800@l
/* 803C0FC4 003BDF24 7C 63 3A 14 */ add r3, r3, r7
/* 803C0FC8 003BDF28 80 03 00 00 */ lwz r0, 0(r3)
/* 803C0FCC 003BDF2C 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 803C0FD0 003BDF30 60 00 00 08 */ ori r0, r0, 8
/* 803C0FD4 003BDF34 90 03 00 00 */ stw r0, 0(r3)
/* 803C0FD8 003BDF38 80 1F 00 04 */ lwz r0, 4(r31)
/* 803C0FDC 003BDF3C 7C 1D 03 78 */ mr r29, r0
/* 803C0FE0 003BDF40 28 00 00 00 */ cmplwi r0, 0
/* 803C0FE4 003BDF44 41 82 01 74 */ beq lbl_803C1158
/* 803C0FE8 003BDF48 38 80 00 00 */ li r4, 0
/* 803C0FEC 003BDF4C 90 9F 00 04 */ stw r4, 4(r31)
/* 803C0FF0 003BDF50 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C0FF4 003BDF54 54 00 07 BF */ clrlwi. r0, r0, 0x1e
/* 803C0FF8 003BDF58 41 82 01 2C */ beq lbl_803C1124
/* 803C0FFC 003BDF5C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C1000 003BDF60 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 803C1004 003BDF64 41 82 01 14 */ beq lbl_803C1118
/* 803C1008 003BDF68 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 803C100C 003BDF6C 2C 03 00 00 */ cmpwi r3, 0
/* 803C1010 003BDF70 41 82 01 08 */ beq lbl_803C1118
/* 803C1014 003BDF74 80 BF 00 14 */ lwz r5, 0x14(r31)
/* 803C1018 003BDF78 38 06 68 00 */ addi r0, r6, 0x6800
/* 803C101C 003BDF7C 7C C0 3A 14 */ add r6, r0, r7
/* 803C1020 003BDF80 80 06 00 10 */ lwz r0, 0x10(r6)
/* 803C1024 003BDF84 40 81 00 F4 */ ble lbl_803C1118
/* 803C1028 003BDF88 38 E3 FF F8 */ addi r7, r3, -8
/* 803C102C 003BDF8C 2C 03 00 08 */ cmpwi r3, 8
/* 803C1030 003BDF90 40 81 00 BC */ ble lbl_803C10EC
/* 803C1034 003BDF94 38 C7 00 07 */ addi r6, r7, 7
/* 803C1038 003BDF98 54 C6 E8 FE */ srwi r6, r6, 3
/* 803C103C 003BDF9C 7C C9 03 A6 */ mtctr r6
/* 803C1040 003BDFA0 2C 07 00 00 */ cmpwi r7, 0
/* 803C1044 003BDFA4 40 81 00 A8 */ ble lbl_803C10EC
lbl_803C1048:
/* 803C1048 003BDFA8 20 C4 00 03 */ subfic r6, r4, 3
/* 803C104C 003BDFAC 54 C6 18 38 */ slwi r6, r6, 3
/* 803C1050 003BDFB0 7C 06 34 30 */ srw r6, r0, r6
/* 803C1054 003BDFB4 98 C5 00 00 */ stb r6, 0(r5)
/* 803C1058 003BDFB8 38 C4 00 01 */ addi r6, r4, 1
/* 803C105C 003BDFBC 20 C6 00 03 */ subfic r6, r6, 3
/* 803C1060 003BDFC0 54 C6 18 38 */ slwi r6, r6, 3
/* 803C1064 003BDFC4 7C 06 34 30 */ srw r6, r0, r6
/* 803C1068 003BDFC8 98 C5 00 01 */ stb r6, 1(r5)
/* 803C106C 003BDFCC 38 C4 00 02 */ addi r6, r4, 2
/* 803C1070 003BDFD0 20 C6 00 03 */ subfic r6, r6, 3
/* 803C1074 003BDFD4 54 C6 18 38 */ slwi r6, r6, 3
/* 803C1078 003BDFD8 7C 06 34 30 */ srw r6, r0, r6
/* 803C107C 003BDFDC 98 C5 00 02 */ stb r6, 2(r5)
/* 803C1080 003BDFE0 7C C4 00 D0 */ neg r6, r4
/* 803C1084 003BDFE4 54 C6 18 38 */ slwi r6, r6, 3
/* 803C1088 003BDFE8 7C 06 34 30 */ srw r6, r0, r6
/* 803C108C 003BDFEC 98 C5 00 03 */ stb r6, 3(r5)
/* 803C1090 003BDFF0 38 C4 00 04 */ addi r6, r4, 4
/* 803C1094 003BDFF4 20 C6 00 03 */ subfic r6, r6, 3
/* 803C1098 003BDFF8 54 C6 18 38 */ slwi r6, r6, 3
/* 803C109C 003BDFFC 7C 06 34 30 */ srw r6, r0, r6
/* 803C10A0 003BE000 98 C5 00 04 */ stb r6, 4(r5)
/* 803C10A4 003BE004 38 C4 00 05 */ addi r6, r4, 5
/* 803C10A8 003BE008 20 C6 00 03 */ subfic r6, r6, 3
/* 803C10AC 003BE00C 54 C6 18 38 */ slwi r6, r6, 3
/* 803C10B0 003BE010 7C 06 34 30 */ srw r6, r0, r6
/* 803C10B4 003BE014 98 C5 00 05 */ stb r6, 5(r5)
/* 803C10B8 003BE018 38 C4 00 06 */ addi r6, r4, 6
/* 803C10BC 003BE01C 20 C6 00 03 */ subfic r6, r6, 3
/* 803C10C0 003BE020 54 C6 18 38 */ slwi r6, r6, 3
/* 803C10C4 003BE024 7C 06 34 30 */ srw r6, r0, r6
/* 803C10C8 003BE028 98 C5 00 06 */ stb r6, 6(r5)
/* 803C10CC 003BE02C 38 C4 00 07 */ addi r6, r4, 7
/* 803C10D0 003BE030 20 C6 00 03 */ subfic r6, r6, 3
/* 803C10D4 003BE034 54 C6 18 38 */ slwi r6, r6, 3
/* 803C10D8 003BE038 7C 06 34 30 */ srw r6, r0, r6
/* 803C10DC 003BE03C 98 C5 00 07 */ stb r6, 7(r5)
/* 803C10E0 003BE040 38 A5 00 08 */ addi r5, r5, 8
/* 803C10E4 003BE044 38 84 00 08 */ addi r4, r4, 8
/* 803C10E8 003BE048 42 00 FF 60 */ bdnz lbl_803C1048
lbl_803C10EC:
/* 803C10EC 003BE04C 7C C4 18 50 */ subf r6, r4, r3
/* 803C10F0 003BE050 7C C9 03 A6 */ mtctr r6
/* 803C10F4 003BE054 7C 04 18 00 */ cmpw r4, r3
/* 803C10F8 003BE058 40 80 00 20 */ bge lbl_803C1118
lbl_803C10FC:
/* 803C10FC 003BE05C 20 64 00 03 */ subfic r3, r4, 3
/* 803C1100 003BE060 54 63 18 38 */ slwi r3, r3, 3
/* 803C1104 003BE064 7C 03 1C 30 */ srw r3, r0, r3
/* 803C1108 003BE068 98 65 00 00 */ stb r3, 0(r5)
/* 803C110C 003BE06C 38 A5 00 01 */ addi r5, r5, 1
/* 803C1110 003BE070 38 84 00 01 */ addi r4, r4, 1
/* 803C1114 003BE074 42 00 FF E8 */ bdnz lbl_803C10FC
lbl_803C1118:
/* 803C1118 003BE078 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C111C 003BE07C 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
/* 803C1120 003BE080 90 1F 00 0C */ stw r0, 0xc(r31)
lbl_803C1124:
/* 803C1124 003BE084 38 61 00 20 */ addi r3, r1, 0x20
/* 803C1128 003BE088 4B FB E4 ED */ bl OSClearContext
/* 803C112C 003BE08C 38 61 00 20 */ addi r3, r1, 0x20
/* 803C1130 003BE090 4B FB E2 ED */ bl OSSetCurrentContext
/* 803C1134 003BE094 38 7E 00 00 */ addi r3, r30, 0
/* 803C1138 003BE098 38 9C 00 00 */ addi r4, r28, 0
/* 803C113C 003BE09C 39 9D 00 00 */ addi r12, r29, 0
/* 803C1140 003BE0A0 7D 88 03 A6 */ mtlr r12
/* 803C1144 003BE0A4 4E 80 00 21 */ blrl
/* 803C1148 003BE0A8 38 61 00 20 */ addi r3, r1, 0x20
/* 803C114C 003BE0AC 4B FB E4 C9 */ bl OSClearContext
/* 803C1150 003BE0B0 7F 83 E3 78 */ mr r3, r28
/* 803C1154 003BE0B4 4B FB E2 C9 */ bl OSSetCurrentContext
lbl_803C1158:
/* 803C1158 003BE0B8 80 01 02 FC */ lwz r0, 0x2fc(r1)
/* 803C115C 003BE0BC 83 E1 02 F4 */ lwz r31, 0x2f4(r1)
/* 803C1160 003BE0C0 83 C1 02 F0 */ lwz r30, 0x2f0(r1)
/* 803C1164 003BE0C4 83 A1 02 EC */ lwz r29, 0x2ec(r1)
/* 803C1168 003BE0C8 83 81 02 E8 */ lwz r28, 0x2e8(r1)
/* 803C116C 003BE0CC 38 21 02 F8 */ addi r1, r1, 0x2f8
/* 803C1170 003BE0D0 7C 08 03 A6 */ mtlr r0
/* 803C1174 003BE0D4 4E 80 00 20 */ blr
.global EXTIntrruptHandler
EXTIntrruptHandler:
/* 803C1178 003BE0D8 7C 08 02 A6 */ mflr r0
/* 803C117C 003BE0DC 90 01 00 04 */ stw r0, 4(r1)
/* 803C1180 003BE0E0 94 21 FD 18 */ stwu r1, -0x2e8(r1)
/* 803C1184 003BE0E4 93 E1 02 E4 */ stw r31, 0x2e4(r1)
/* 803C1188 003BE0E8 93 C1 02 E0 */ stw r30, 0x2e0(r1)
/* 803C118C 003BE0EC 93 A1 02 DC */ stw r29, 0x2dc(r1)
/* 803C1190 003BE0F0 93 81 02 D8 */ stw r28, 0x2d8(r1)
/* 803C1194 003BE0F4 3B E4 00 00 */ addi r31, r4, 0
/* 803C1198 003BE0F8 7C 63 07 34 */ extsh r3, r3
/* 803C119C 003BE0FC 38 03 FF F5 */ addi r0, r3, -11
/* 803C11A0 003BE100 3C 60 55 55 */ lis r3, 0x55555556@ha
/* 803C11A4 003BE104 38 63 55 56 */ addi r3, r3, 0x55555556@l
/* 803C11A8 003BE108 7C 63 00 96 */ mulhw r3, r3, r0
/* 803C11AC 003BE10C 54 60 0F FE */ srwi r0, r3, 0x1f
/* 803C11B0 003BE110 7F C3 02 14 */ add r30, r3, r0
/* 803C11B4 003BE114 3C 60 00 50 */ lis r3, 0x50
/* 803C11B8 003BE118 1C 1E 00 03 */ mulli r0, r30, 3
/* 803C11BC 003BE11C 7C 63 04 30 */ srw r3, r3, r0
/* 803C11C0 003BE120 4B FC 08 69 */ bl __OSMaskInterrupts
/* 803C11C4 003BE124 57 C4 30 32 */ slwi r4, r30, 6
/* 803C11C8 003BE128 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C11CC 003BE12C 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C11D0 003BE130 7F A0 22 14 */ add r29, r0, r4
/* 803C11D4 003BE134 83 9D 00 08 */ lwz r28, 8(r29)
/* 803C11D8 003BE138 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 803C11DC 003BE13C 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 803C11E0 003BE140 90 1D 00 0C */ stw r0, 0xc(r29)
/* 803C11E4 003BE144 28 1C 00 00 */ cmplwi r28, 0
/* 803C11E8 003BE148 41 82 00 40 */ beq lbl_803C1228
/* 803C11EC 003BE14C 38 61 00 10 */ addi r3, r1, 0x10
/* 803C11F0 003BE150 4B FB E4 25 */ bl OSClearContext
/* 803C11F4 003BE154 38 61 00 10 */ addi r3, r1, 0x10
/* 803C11F8 003BE158 4B FB E2 25 */ bl OSSetCurrentContext
/* 803C11FC 003BE15C 38 00 00 00 */ li r0, 0
/* 803C1200 003BE160 90 1D 00 08 */ stw r0, 8(r29)
/* 803C1204 003BE164 38 7E 00 00 */ addi r3, r30, 0
/* 803C1208 003BE168 38 9F 00 00 */ addi r4, r31, 0
/* 803C120C 003BE16C 39 9C 00 00 */ addi r12, r28, 0
/* 803C1210 003BE170 7D 88 03 A6 */ mtlr r12
/* 803C1214 003BE174 4E 80 00 21 */ blrl
/* 803C1218 003BE178 38 61 00 10 */ addi r3, r1, 0x10
/* 803C121C 003BE17C 4B FB E3 F9 */ bl OSClearContext
/* 803C1220 003BE180 7F E3 FB 78 */ mr r3, r31
/* 803C1224 003BE184 4B FB E1 F9 */ bl OSSetCurrentContext
lbl_803C1228:
/* 803C1228 003BE188 80 01 02 EC */ lwz r0, 0x2ec(r1)
/* 803C122C 003BE18C 83 E1 02 E4 */ lwz r31, 0x2e4(r1)
/* 803C1230 003BE190 83 C1 02 E0 */ lwz r30, 0x2e0(r1)
/* 803C1234 003BE194 83 A1 02 DC */ lwz r29, 0x2dc(r1)
/* 803C1238 003BE198 83 81 02 D8 */ lwz r28, 0x2d8(r1)
/* 803C123C 003BE19C 38 21 02 E8 */ addi r1, r1, 0x2e8
/* 803C1240 003BE1A0 7C 08 03 A6 */ mtlr r0
/* 803C1244 003BE1A4 4E 80 00 20 */ blr
.global EXIInit
EXIInit:
/* 803C1248 003BE1A8 7C 08 02 A6 */ mflr r0
/* 803C124C 003BE1AC 90 01 00 04 */ stw r0, 4(r1)
/* 803C1250 003BE1B0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803C1254 003BE1B4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803C1258 003BE1B8 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803C125C 003BE1BC 93 A1 00 0C */ stw r29, 0xc(r1)
/* 803C1260 003BE1C0 93 81 00 08 */ stw r28, 8(r1)
/* 803C1264 003BE1C4 80 6D A0 50 */ lwz r3, lbl_805A8C10@sda21(r13)
/* 803C1268 003BE1C8 4B FB CD D1 */ bl OSRegisterVersion
/* 803C126C 003BE1CC 3C 60 00 80 */ lis r3, 0x007F8000@ha
/* 803C1270 003BE1D0 38 63 80 00 */ addi r3, r3, 0x007F8000@l
/* 803C1274 003BE1D4 4B FC 07 B5 */ bl __OSMaskInterrupts
/* 803C1278 003BE1D8 3B E0 00 00 */ li r31, 0
/* 803C127C 003BE1DC 3C 80 CC 00 */ lis r4, 0xCC006800@ha
/* 803C1280 003BE1E0 93 E4 68 00 */ stw r31, 0xCC006800@l(r4)
/* 803C1284 003BE1E4 93 E4 68 14 */ stw r31, 0x6814(r4)
/* 803C1288 003BE1E8 93 E4 68 28 */ stw r31, 0x6828(r4)
/* 803C128C 003BE1EC 38 00 20 00 */ li r0, 0x2000
/* 803C1290 003BE1F0 90 04 68 00 */ stw r0, 0x6800(r4)
/* 803C1294 003BE1F4 38 60 00 09 */ li r3, 9
/* 803C1298 003BE1F8 3C 80 80 3C */ lis r4, EXIIntrruptHandler@ha
/* 803C129C 003BE1FC 3B 84 0E 98 */ addi r28, r4, EXIIntrruptHandler@l
/* 803C12A0 003BE200 38 9C 00 00 */ addi r4, r28, 0
/* 803C12A4 003BE204 4B FC 04 09 */ bl __OSSetInterruptHandler
/* 803C12A8 003BE208 38 60 00 0A */ li r3, 0xa
/* 803C12AC 003BE20C 3C 80 80 3C */ lis r4, TCIntrruptHandler@ha
/* 803C12B0 003BE210 3B A4 0F 60 */ addi r29, r4, TCIntrruptHandler@l
/* 803C12B4 003BE214 38 9D 00 00 */ addi r4, r29, 0
/* 803C12B8 003BE218 4B FC 03 F5 */ bl __OSSetInterruptHandler
/* 803C12BC 003BE21C 38 60 00 0B */ li r3, 0xb
/* 803C12C0 003BE220 3C 80 80 3C */ lis r4, EXTIntrruptHandler@ha
/* 803C12C4 003BE224 3B C4 11 78 */ addi r30, r4, EXTIntrruptHandler@l
/* 803C12C8 003BE228 38 9E 00 00 */ addi r4, r30, 0
/* 803C12CC 003BE22C 4B FC 03 E1 */ bl __OSSetInterruptHandler
/* 803C12D0 003BE230 38 60 00 0C */ li r3, 0xc
/* 803C12D4 003BE234 38 9C 00 00 */ addi r4, r28, 0
/* 803C12D8 003BE238 4B FC 03 D5 */ bl __OSSetInterruptHandler
/* 803C12DC 003BE23C 38 60 00 0D */ li r3, 0xd
/* 803C12E0 003BE240 38 9D 00 00 */ addi r4, r29, 0
/* 803C12E4 003BE244 4B FC 03 C9 */ bl __OSSetInterruptHandler
/* 803C12E8 003BE248 38 60 00 0E */ li r3, 0xe
/* 803C12EC 003BE24C 38 9E 00 00 */ addi r4, r30, 0
/* 803C12F0 003BE250 4B FC 03 BD */ bl __OSSetInterruptHandler
/* 803C12F4 003BE254 38 60 00 0F */ li r3, 0xf
/* 803C12F8 003BE258 38 9C 00 00 */ addi r4, r28, 0
/* 803C12FC 003BE25C 4B FC 03 B1 */ bl __OSSetInterruptHandler
/* 803C1300 003BE260 38 60 00 10 */ li r3, 0x10
/* 803C1304 003BE264 38 9D 00 00 */ addi r4, r29, 0
/* 803C1308 003BE268 4B FC 03 A5 */ bl __OSSetInterruptHandler
/* 803C130C 003BE26C 4B FB C4 11 */ bl OSGetConsoleType
/* 803C1310 003BE270 54 60 00 C7 */ rlwinm. r0, r3, 0, 3, 3
/* 803C1314 003BE274 41 82 00 30 */ beq lbl_803C1344
/* 803C1318 003BE278 3C 80 80 00 */ lis r4, 0x800030C4@ha
/* 803C131C 003BE27C 93 E4 30 C4 */ stw r31, 0x800030C4@l(r4)
/* 803C1320 003BE280 93 E4 30 C0 */ stw r31, 0x30c0(r4)
/* 803C1324 003BE284 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C1328 003BE288 38 63 9E 98 */ addi r3, r3, lbl_80569E98@l
/* 803C132C 003BE28C 93 E3 00 60 */ stw r31, 0x60(r3)
/* 803C1330 003BE290 93 E3 00 20 */ stw r31, 0x20(r3)
/* 803C1334 003BE294 38 60 00 00 */ li r3, 0
/* 803C1338 003BE298 4B FF F4 B5 */ bl __EXIProbe
/* 803C133C 003BE29C 38 60 00 01 */ li r3, 1
/* 803C1340 003BE2A0 4B FF F4 AD */ bl __EXIProbe
lbl_803C1344:
/* 803C1344 003BE2A4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803C1348 003BE2A8 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803C134C 003BE2AC 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803C1350 003BE2B0 83 A1 00 0C */ lwz r29, 0xc(r1)
/* 803C1354 003BE2B4 83 81 00 08 */ lwz r28, 8(r1)
/* 803C1358 003BE2B8 38 21 00 18 */ addi r1, r1, 0x18
/* 803C135C 003BE2BC 7C 08 03 A6 */ mtlr r0
/* 803C1360 003BE2C0 4E 80 00 20 */ blr
.global EXILock
EXILock:
/* 803C1364 003BE2C4 7C 08 02 A6 */ mflr r0
/* 803C1368 003BE2C8 90 01 00 04 */ stw r0, 4(r1)
/* 803C136C 003BE2CC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803C1370 003BE2D0 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 803C1374 003BE2D4 3B 63 00 00 */ addi r27, r3, 0
/* 803C1378 003BE2D8 3B E4 00 00 */ addi r31, r4, 0
/* 803C137C 003BE2DC 3B 85 00 00 */ addi r28, r5, 0
/* 803C1380 003BE2E0 54 64 30 32 */ slwi r4, r3, 6
/* 803C1384 003BE2E4 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C1388 003BE2E8 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C138C 003BE2EC 7F C0 22 14 */ add r30, r0, r4
/* 803C1390 003BE2F0 4B FC 02 D1 */ bl OSDisableInterrupts
/* 803C1394 003BE2F4 7C 7D 1B 78 */ mr r29, r3
/* 803C1398 003BE2F8 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803C139C 003BE2FC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803C13A0 003BE300 41 82 00 7C */ beq lbl_803C141C
/* 803C13A4 003BE304 28 1C 00 00 */ cmplwi r28, 0
/* 803C13A8 003BE308 41 82 00 64 */ beq lbl_803C140C
/* 803C13AC 003BE30C 7F C3 F3 78 */ mr r3, r30
/* 803C13B0 003BE310 80 9E 00 24 */ lwz r4, 0x24(r30)
/* 803C13B4 003BE314 7C 89 03 A6 */ mtctr r4
/* 803C13B8 003BE318 2C 04 00 00 */ cmpwi r4, 0
/* 803C13BC 003BE31C 40 81 00 28 */ ble lbl_803C13E4
lbl_803C13C0:
/* 803C13C0 003BE320 80 03 00 28 */ lwz r0, 0x28(r3)
/* 803C13C4 003BE324 7C 00 F8 40 */ cmplw r0, r31
/* 803C13C8 003BE328 40 82 00 14 */ bne lbl_803C13DC
/* 803C13CC 003BE32C 7F A3 EB 78 */ mr r3, r29
/* 803C13D0 003BE330 4B FC 02 B9 */ bl OSRestoreInterrupts
/* 803C13D4 003BE334 38 60 00 00 */ li r3, 0
/* 803C13D8 003BE338 48 00 00 6C */ b lbl_803C1444
lbl_803C13DC:
/* 803C13DC 003BE33C 38 63 00 08 */ addi r3, r3, 8
/* 803C13E0 003BE340 42 00 FF E0 */ bdnz lbl_803C13C0
lbl_803C13E4:
/* 803C13E4 003BE344 54 80 18 38 */ slwi r0, r4, 3
/* 803C13E8 003BE348 7C 7E 02 14 */ add r3, r30, r0
/* 803C13EC 003BE34C 93 83 00 2C */ stw r28, 0x2c(r3)
/* 803C13F0 003BE350 80 1E 00 24 */ lwz r0, 0x24(r30)
/* 803C13F4 003BE354 54 00 18 38 */ slwi r0, r0, 3
/* 803C13F8 003BE358 7C 7E 02 14 */ add r3, r30, r0
/* 803C13FC 003BE35C 93 E3 00 28 */ stw r31, 0x28(r3)
/* 803C1400 003BE360 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 803C1404 003BE364 38 03 00 01 */ addi r0, r3, 1
/* 803C1408 003BE368 90 1E 00 24 */ stw r0, 0x24(r30)
lbl_803C140C:
/* 803C140C 003BE36C 7F A3 EB 78 */ mr r3, r29
/* 803C1410 003BE370 4B FC 02 79 */ bl OSRestoreInterrupts
/* 803C1414 003BE374 38 60 00 00 */ li r3, 0
/* 803C1418 003BE378 48 00 00 2C */ b lbl_803C1444
lbl_803C141C:
/* 803C141C 003BE37C 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803C1420 003BE380 60 00 00 10 */ ori r0, r0, 0x10
/* 803C1424 003BE384 90 1E 00 0C */ stw r0, 0xc(r30)
/* 803C1428 003BE388 93 FE 00 18 */ stw r31, 0x18(r30)
/* 803C142C 003BE38C 38 7B 00 00 */ addi r3, r27, 0
/* 803C1430 003BE390 38 9E 00 00 */ addi r4, r30, 0
/* 803C1434 003BE394 4B FF EB E1 */ bl SetExiInterruptMask
/* 803C1438 003BE398 7F A3 EB 78 */ mr r3, r29
/* 803C143C 003BE39C 4B FC 02 4D */ bl OSRestoreInterrupts
/* 803C1440 003BE3A0 38 60 00 01 */ li r3, 1
lbl_803C1444:
/* 803C1444 003BE3A4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803C1448 003BE3A8 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 803C144C 003BE3AC 38 21 00 30 */ addi r1, r1, 0x30
/* 803C1450 003BE3B0 7C 08 03 A6 */ mtlr r0
/* 803C1454 003BE3B4 4E 80 00 20 */ blr
.global EXIUnlock
EXIUnlock:
/* 803C1458 003BE3B8 7C 08 02 A6 */ mflr r0
/* 803C145C 003BE3BC 90 01 00 04 */ stw r0, 4(r1)
/* 803C1460 003BE3C0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803C1464 003BE3C4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803C1468 003BE3C8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803C146C 003BE3CC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803C1470 003BE3D0 93 81 00 10 */ stw r28, 0x10(r1)
/* 803C1474 003BE3D4 3B 83 00 00 */ addi r28, r3, 0
/* 803C1478 003BE3D8 54 64 30 32 */ slwi r4, r3, 6
/* 803C147C 003BE3DC 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C1480 003BE3E0 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C1484 003BE3E4 7F E0 22 14 */ add r31, r0, r4
/* 803C1488 003BE3E8 4B FC 01 D9 */ bl OSDisableInterrupts
/* 803C148C 003BE3EC 7C 7E 1B 78 */ mr r30, r3
/* 803C1490 003BE3F0 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C1494 003BE3F4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803C1498 003BE3F8 40 82 00 14 */ bne lbl_803C14AC
/* 803C149C 003BE3FC 7F C3 F3 78 */ mr r3, r30
/* 803C14A0 003BE400 4B FC 01 E9 */ bl OSRestoreInterrupts
/* 803C14A4 003BE404 38 60 00 00 */ li r3, 0
/* 803C14A8 003BE408 48 00 00 6C */ b lbl_803C1514
lbl_803C14AC:
/* 803C14AC 003BE40C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C14B0 003BE410 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
/* 803C14B4 003BE414 90 1F 00 0C */ stw r0, 0xc(r31)
/* 803C14B8 003BE418 38 7C 00 00 */ addi r3, r28, 0
/* 803C14BC 003BE41C 38 9F 00 00 */ addi r4, r31, 0
/* 803C14C0 003BE420 4B FF EB 55 */ bl SetExiInterruptMask
/* 803C14C4 003BE424 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 803C14C8 003BE428 2C 03 00 00 */ cmpwi r3, 0
/* 803C14CC 003BE42C 40 81 00 3C */ ble lbl_803C1508
/* 803C14D0 003BE430 83 BF 00 2C */ lwz r29, 0x2c(r31)
/* 803C14D4 003BE434 34 03 FF FF */ addic. r0, r3, -1
/* 803C14D8 003BE438 90 1F 00 24 */ stw r0, 0x24(r31)
/* 803C14DC 003BE43C 40 81 00 18 */ ble lbl_803C14F4
/* 803C14E0 003BE440 38 7F 00 28 */ addi r3, r31, 0x28
/* 803C14E4 003BE444 38 9F 00 30 */ addi r4, r31, 0x30
/* 803C14E8 003BE448 80 1F 00 24 */ lwz r0, 0x24(r31)
/* 803C14EC 003BE44C 54 05 18 38 */ slwi r5, r0, 3
/* 803C14F0 003BE450 4B FC C4 31 */ bl memmove
lbl_803C14F4:
/* 803C14F4 003BE454 38 7C 00 00 */ addi r3, r28, 0
/* 803C14F8 003BE458 38 80 00 00 */ li r4, 0
/* 803C14FC 003BE45C 39 9D 00 00 */ addi r12, r29, 0
/* 803C1500 003BE460 7D 88 03 A6 */ mtlr r12
/* 803C1504 003BE464 4E 80 00 21 */ blrl
lbl_803C1508:
/* 803C1508 003BE468 7F C3 F3 78 */ mr r3, r30
/* 803C150C 003BE46C 4B FC 01 7D */ bl OSRestoreInterrupts
/* 803C1510 003BE470 38 60 00 01 */ li r3, 1
lbl_803C1514:
/* 803C1514 003BE474 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803C1518 003BE478 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803C151C 003BE47C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803C1520 003BE480 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803C1524 003BE484 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803C1528 003BE488 38 21 00 20 */ addi r1, r1, 0x20
/* 803C152C 003BE48C 7C 08 03 A6 */ mtlr r0
/* 803C1530 003BE490 4E 80 00 20 */ blr
.global EXIGetState
EXIGetState:
/* 803C1534 003BE494 54 64 30 32 */ slwi r4, r3, 6
/* 803C1538 003BE498 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C153C 003BE49C 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C1540 003BE4A0 7C 60 22 14 */ add r3, r0, r4
/* 803C1544 003BE4A4 80 63 00 0C */ lwz r3, 0xc(r3)
/* 803C1548 003BE4A8 4E 80 00 20 */ blr
.global UnlockedHandler
UnlockedHandler:
/* 803C154C 003BE4AC 7C 08 02 A6 */ mflr r0
/* 803C1550 003BE4B0 90 01 00 04 */ stw r0, 4(r1)
/* 803C1554 003BE4B4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803C1558 003BE4B8 38 80 00 00 */ li r4, 0
/* 803C155C 003BE4BC 38 A1 00 10 */ addi r5, r1, 0x10
/* 803C1560 003BE4C0 48 00 00 15 */ bl EXIGetID
/* 803C1564 003BE4C4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803C1568 003BE4C8 38 21 00 18 */ addi r1, r1, 0x18
/* 803C156C 003BE4CC 7C 08 03 A6 */ mtlr r0
/* 803C1570 003BE4D0 4E 80 00 20 */ blr
.global EXIGetID
EXIGetID:
/* 803C1574 003BE4D4 7C 08 02 A6 */ mflr r0
/* 803C1578 003BE4D8 90 01 00 04 */ stw r0, 4(r1)
/* 803C157C 003BE4DC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803C1580 003BE4E0 BF 01 00 20 */ stmw r24, 0x20(r1)
/* 803C1584 003BE4E4 3B 43 00 00 */ addi r26, r3, 0
/* 803C1588 003BE4E8 3B 64 00 00 */ addi r27, r4, 0
/* 803C158C 003BE4EC 3B 85 00 00 */ addi r28, r5, 0
/* 803C1590 003BE4F0 54 64 30 32 */ slwi r4, r3, 6
/* 803C1594 003BE4F4 3C 60 80 57 */ lis r3, lbl_80569E98@ha
/* 803C1598 003BE4F8 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l
/* 803C159C 003BE4FC 7F E0 22 14 */ add r31, r0, r4
/* 803C15A0 003BE500 2C 1A 00 02 */ cmpwi r26, 2
/* 803C15A4 003BE504 40 80 00 E0 */ bge lbl_803C1684
/* 803C15A8 003BE508 28 1B 00 00 */ cmplwi r27, 0
/* 803C15AC 003BE50C 40 82 00 D8 */ bne lbl_803C1684
/* 803C15B0 003BE510 7F 43 D3 78 */ mr r3, r26
/* 803C15B4 003BE514 4B FF F2 39 */ bl __EXIProbe
/* 803C15B8 003BE518 2C 03 00 00 */ cmpwi r3, 0
/* 803C15BC 003BE51C 40 82 00 0C */ bne lbl_803C15C8
/* 803C15C0 003BE520 38 60 00 00 */ li r3, 0
/* 803C15C4 003BE524 48 00 03 18 */ b lbl_803C18DC
lbl_803C15C8:
/* 803C15C8 003BE528 80 9F 00 20 */ lwz r4, 0x20(r31)
/* 803C15CC 003BE52C 57 40 10 3A */ slwi r0, r26, 2
/* 803C15D0 003BE530 3C 60 80 00 */ lis r3, 0x800030C0@ha
/* 803C15D4 003BE534 3B C3 30 C0 */ addi r30, r3, 0x800030C0@l
/* 803C15D8 003BE538 7F DE 02 14 */ add r30, r30, r0
/* 803C15DC 003BE53C 80 1E 00 00 */ lwz r0, 0(r30)
/* 803C15E0 003BE540 7C 04 00 00 */ cmpw r4, r0
/* 803C15E4 003BE544 40 82 00 14 */ bne lbl_803C15F8
/* 803C15E8 003BE548 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 803C15EC 003BE54C 90 1C 00 00 */ stw r0, 0(r28)
/* 803C15F0 003BE550 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 803C15F4 003BE554 48 00 02 E8 */ b lbl_803C18DC
lbl_803C15F8:
/* 803C15F8 003BE558 4B FC 00 69 */ bl OSDisableInterrupts
/* 803C15FC 003BE55C 7C 7D 1B 78 */ mr r29, r3
/* 803C1600 003BE560 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C1604 003BE564 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803C1608 003BE568 40 82 00 14 */ bne lbl_803C161C
/* 803C160C 003BE56C 7F 43 D3 78 */ mr r3, r26
/* 803C1610 003BE570 4B FF F1 DD */ bl __EXIProbe
/* 803C1614 003BE574 2C 03 00 00 */ cmpwi r3, 0
/* 803C1618 003BE578 40 82 00 14 */ bne lbl_803C162C
lbl_803C161C:
/* 803C161C 003BE57C 7F A3 EB 78 */ mr r3, r29
/* 803C1620 003BE580 4B FC 00 69 */ bl OSRestoreInterrupts
/* 803C1624 003BE584 38 00 00 00 */ li r0, 0
/* 803C1628 003BE588 48 00 00 48 */ b lbl_803C1670
lbl_803C162C:
/* 803C162C 003BE58C 38 7A 00 00 */ addi r3, r26, 0
/* 803C1630 003BE590 38 80 00 01 */ li r4, 1
/* 803C1634 003BE594 38 A0 00 00 */ li r5, 0
/* 803C1638 003BE598 38 C0 00 00 */ li r6, 0
/* 803C163C 003BE59C 4B FF F0 ED */ bl EXIClearInterrupts
/* 803C1640 003BE5A0 38 00 00 00 */ li r0, 0
/* 803C1644 003BE5A4 90 1F 00 08 */ stw r0, 8(r31)
/* 803C1648 003BE5A8 3C 60 00 10 */ lis r3, 0x10
/* 803C164C 003BE5AC 1C 1A 00 03 */ mulli r0, r26, 3
/* 803C1650 003BE5B0 7C 63 04 30 */ srw r3, r3, r0
/* 803C1654 003BE5B4 4B FC 04 5D */ bl __OSUnmaskInterrupts
/* 803C1658 003BE5B8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C165C 003BE5BC 60 00 00 08 */ ori r0, r0, 8
/* 803C1660 003BE5C0 90 1F 00 0C */ stw r0, 0xc(r31)
/* 803C1664 003BE5C4 7F A3 EB 78 */ mr r3, r29
/* 803C1668 003BE5C8 4B FC 00 21 */ bl OSRestoreInterrupts
/* 803C166C 003BE5CC 38 00 00 01 */ li r0, 1
lbl_803C1670:
/* 803C1670 003BE5D0 2C 00 00 00 */ cmpwi r0, 0
/* 803C1674 003BE5D4 40 82 00 0C */ bne lbl_803C1680
/* 803C1678 003BE5D8 38 60 00 00 */ li r3, 0
/* 803C167C 003BE5DC 48 00 02 60 */ b lbl_803C18DC
lbl_803C1680:
/* 803C1680 003BE5E0 83 BE 00 00 */ lwz r29, 0(r30)
lbl_803C1684:
/* 803C1684 003BE5E4 38 00 00 00 */ li r0, 0
/* 803C1688 003BE5E8 2C 1A 00 02 */ cmpwi r26, 2
/* 803C168C 003BE5EC 40 80 00 10 */ bge lbl_803C169C
/* 803C1690 003BE5F0 28 1B 00 00 */ cmplwi r27, 0
/* 803C1694 003BE5F4 40 82 00 08 */ bne lbl_803C169C
/* 803C1698 003BE5F8 38 00 00 01 */ li r0, 1
lbl_803C169C:
/* 803C169C 003BE5FC 2C 00 00 00 */ cmpwi r0, 0
/* 803C16A0 003BE600 41 82 00 10 */ beq lbl_803C16B0
/* 803C16A4 003BE604 3C 60 80 3C */ lis r3, UnlockedHandler@ha
/* 803C16A8 003BE608 38 A3 15 4C */ addi r5, r3, UnlockedHandler@l
/* 803C16AC 003BE60C 48 00 00 08 */ b lbl_803C16B4
lbl_803C16B0:
/* 803C16B0 003BE610 38 A0 00 00 */ li r5, 0
lbl_803C16B4:
/* 803C16B4 003BE614 38 7A 00 00 */ addi r3, r26, 0
/* 803C16B8 003BE618 38 9B 00 00 */ addi r4, r27, 0
/* 803C16BC 003BE61C 4B FF FC A9 */ bl EXILock
/* 803C16C0 003BE620 7C 60 00 34 */ cntlzw r0, r3
/* 803C16C4 003BE624 54 00 D9 7E */ srwi r0, r0, 5
/* 803C16C8 003BE628 7C 1E 03 79 */ or. r30, r0, r0
/* 803C16CC 003BE62C 40 82 01 34 */ bne lbl_803C1800
/* 803C16D0 003BE630 38 7A 00 00 */ addi r3, r26, 0
/* 803C16D4 003BE634 38 9B 00 00 */ addi r4, r27, 0
/* 803C16D8 003BE638 38 A0 00 00 */ li r5, 0
/* 803C16DC 003BE63C 4B FF F5 81 */ bl EXISelect
/* 803C16E0 003BE640 7C 60 00 34 */ cntlzw r0, r3
/* 803C16E4 003BE644 54 00 D9 7E */ srwi r0, r0, 5
/* 803C16E8 003BE648 7C 1E 03 79 */ or. r30, r0, r0
/* 803C16EC 003BE64C 40 82 00 90 */ bne lbl_803C177C
/* 803C16F0 003BE650 38 00 00 00 */ li r0, 0
/* 803C16F4 003BE654 90 01 00 1C */ stw r0, 0x1c(r1)
/* 803C16F8 003BE658 38 7A 00 00 */ addi r3, r26, 0
/* 803C16FC 003BE65C 38 81 00 1C */ addi r4, r1, 0x1c
/* 803C1700 003BE660 38 A0 00 02 */ li r5, 2
/* 803C1704 003BE664 38 C0 00 01 */ li r6, 1
/* 803C1708 003BE668 38 E0 00 00 */ li r7, 0
/* 803C170C 003BE66C 4B FF E9 FD */ bl EXIImm
/* 803C1710 003BE670 7C 60 00 34 */ cntlzw r0, r3
/* 803C1714 003BE674 54 00 D9 7E */ srwi r0, r0, 5
/* 803C1718 003BE678 7F DE 03 78 */ or r30, r30, r0
/* 803C171C 003BE67C 38 7A 00 00 */ addi r3, r26, 0
/* 803C1720 003BE680 4B FF ED D1 */ bl sub_803c04f0
/* 803C1724 003BE684 7C 60 00 34 */ cntlzw r0, r3
/* 803C1728 003BE688 54 00 D9 7E */ srwi r0, r0, 5
/* 803C172C 003BE68C 7F DE 03 78 */ or r30, r30, r0
/* 803C1730 003BE690 38 7A 00 00 */ addi r3, r26, 0
/* 803C1734 003BE694 38 9C 00 00 */ addi r4, r28, 0
/* 803C1738 003BE698 38 A0 00 04 */ li r5, 4
/* 803C173C 003BE69C 38 C0 00 00 */ li r6, 0
/* 803C1740 003BE6A0 38 E0 00 00 */ li r7, 0
/* 803C1744 003BE6A4 4B FF E9 C5 */ bl EXIImm
/* 803C1748 003BE6A8 7C 60 00 34 */ cntlzw r0, r3
/* 803C174C 003BE6AC 54 00 D9 7E */ srwi r0, r0, 5
/* 803C1750 003BE6B0 7F DE 03 78 */ or r30, r30, r0
/* 803C1754 003BE6B4 38 7A 00 00 */ addi r3, r26, 0
/* 803C1758 003BE6B8 4B FF ED 99 */ bl sub_803c04f0
/* 803C175C 003BE6BC 7C 60 00 34 */ cntlzw r0, r3
/* 803C1760 003BE6C0 54 00 D9 7E */ srwi r0, r0, 5
/* 803C1764 003BE6C4 7F DE 03 78 */ or r30, r30, r0
/* 803C1768 003BE6C8 38 7A 00 00 */ addi r3, r26, 0
/* 803C176C 003BE6CC 4B FF F6 1D */ bl EXIDeselect
/* 803C1770 003BE6D0 7C 60 00 34 */ cntlzw r0, r3
/* 803C1774 003BE6D4 54 00 D9 7E */ srwi r0, r0, 5
/* 803C1778 003BE6D8 7F DE 03 78 */ or r30, r30, r0
lbl_803C177C:
/* 803C177C 003BE6DC 4B FB FE E5 */ bl OSDisableInterrupts
/* 803C1780 003BE6E0 7C 78 1B 78 */ mr r24, r3
/* 803C1784 003BE6E4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C1788 003BE6E8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803C178C 003BE6EC 40 82 00 10 */ bne lbl_803C179C
/* 803C1790 003BE6F0 7F 03 C3 78 */ mr r3, r24
/* 803C1794 003BE6F4 4B FB FE F5 */ bl OSRestoreInterrupts
/* 803C1798 003BE6F8 48 00 00 68 */ b lbl_803C1800
lbl_803C179C:
/* 803C179C 003BE6FC 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C17A0 003BE700 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
/* 803C17A4 003BE704 90 1F 00 0C */ stw r0, 0xc(r31)
/* 803C17A8 003BE708 38 7A 00 00 */ addi r3, r26, 0
/* 803C17AC 003BE70C 38 9F 00 00 */ addi r4, r31, 0
/* 803C17B0 003BE710 4B FF E8 65 */ bl SetExiInterruptMask
/* 803C17B4 003BE714 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 803C17B8 003BE718 2C 03 00 00 */ cmpwi r3, 0
/* 803C17BC 003BE71C 40 81 00 3C */ ble lbl_803C17F8
/* 803C17C0 003BE720 83 3F 00 2C */ lwz r25, 0x2c(r31)
/* 803C17C4 003BE724 34 03 FF FF */ addic. r0, r3, -1
/* 803C17C8 003BE728 90 1F 00 24 */ stw r0, 0x24(r31)
/* 803C17CC 003BE72C 40 81 00 18 */ ble lbl_803C17E4
/* 803C17D0 003BE730 38 7F 00 28 */ addi r3, r31, 0x28
/* 803C17D4 003BE734 38 9F 00 30 */ addi r4, r31, 0x30
/* 803C17D8 003BE738 80 1F 00 24 */ lwz r0, 0x24(r31)
/* 803C17DC 003BE73C 54 05 18 38 */ slwi r5, r0, 3
/* 803C17E0 003BE740 4B FC C1 41 */ bl memmove
lbl_803C17E4:
/* 803C17E4 003BE744 38 7A 00 00 */ addi r3, r26, 0
/* 803C17E8 003BE748 38 80 00 00 */ li r4, 0
/* 803C17EC 003BE74C 39 99 00 00 */ addi r12, r25, 0
/* 803C17F0 003BE750 7D 88 03 A6 */ mtlr r12
/* 803C17F4 003BE754 4E 80 00 21 */ blrl
lbl_803C17F8:
/* 803C17F8 003BE758 7F 03 C3 78 */ mr r3, r24
/* 803C17FC 003BE75C 4B FB FE 8D */ bl OSRestoreInterrupts
lbl_803C1800:
/* 803C1800 003BE760 2C 1A 00 02 */ cmpwi r26, 2
/* 803C1804 003BE764 40 80 00 C4 */ bge lbl_803C18C8
/* 803C1808 003BE768 28 1B 00 00 */ cmplwi r27, 0
/* 803C180C 003BE76C 40 82 00 BC */ bne lbl_803C18C8
/* 803C1810 003BE770 4B FB FE 51 */ bl OSDisableInterrupts
/* 803C1814 003BE774 7C 78 1B 78 */ mr r24, r3
/* 803C1818 003BE778 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C181C 003BE77C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803C1820 003BE780 40 82 00 10 */ bne lbl_803C1830
/* 803C1824 003BE784 7F 03 C3 78 */ mr r3, r24
/* 803C1828 003BE788 4B FB FE 61 */ bl OSRestoreInterrupts
/* 803C182C 003BE78C 48 00 00 4C */ b lbl_803C1878
lbl_803C1830:
/* 803C1830 003BE790 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C1834 003BE794 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803C1838 003BE798 41 82 00 1C */ beq lbl_803C1854
/* 803C183C 003BE79C 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 803C1840 003BE7A0 28 00 00 00 */ cmplwi r0, 0
/* 803C1844 003BE7A4 40 82 00 10 */ bne lbl_803C1854
/* 803C1848 003BE7A8 7F 03 C3 78 */ mr r3, r24
/* 803C184C 003BE7AC 4B FB FE 3D */ bl OSRestoreInterrupts
/* 803C1850 003BE7B0 48 00 00 28 */ b lbl_803C1878
lbl_803C1854:
/* 803C1854 003BE7B4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803C1858 003BE7B8 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 803C185C 003BE7BC 90 1F 00 0C */ stw r0, 0xc(r31)
/* 803C1860 003BE7C0 3C 60 00 50 */ lis r3, 0x50
/* 803C1864 003BE7C4 1C 1A 00 03 */ mulli r0, r26, 3
/* 803C1868 003BE7C8 7C 63 04 30 */ srw r3, r3, r0
/* 803C186C 003BE7CC 4B FC 01 BD */ bl __OSMaskInterrupts
/* 803C1870 003BE7D0 7F 03 C3 78 */ mr r3, r24
/* 803C1874 003BE7D4 4B FB FE 15 */ bl OSRestoreInterrupts
lbl_803C1878:
/* 803C1878 003BE7D8 4B FB FD E9 */ bl OSDisableInterrupts
/* 803C187C 003BE7DC 57 40 10 3A */ slwi r0, r26, 2
/* 803C1880 003BE7E0 3C 80 80 00 */ lis r4, 0x800030C0@ha
/* 803C1884 003BE7E4 38 84 30 C0 */ addi r4, r4, 0x800030C0@l
/* 803C1888 003BE7E8 7C 04 00 2E */ lwzx r0, r4, r0
/* 803C188C 003BE7EC 7C 9D 00 50 */ subf r4, r29, r0
/* 803C1890 003BE7F0 30 04 FF FF */ addic r0, r4, -1
/* 803C1894 003BE7F4 7C 00 21 10 */ subfe r0, r0, r4
/* 803C1898 003BE7F8 7F DE 03 79 */ or. r30, r30, r0
/* 803C189C 003BE7FC 40 82 00 10 */ bne lbl_803C18AC
/* 803C18A0 003BE800 80 1C 00 00 */ lwz r0, 0(r28)
/* 803C18A4 003BE804 90 1F 00 1C */ stw r0, 0x1c(r31)
/* 803C18A8 003BE808 93 BF 00 20 */ stw r29, 0x20(r31)
lbl_803C18AC:
/* 803C18AC 003BE80C 4B FB FD DD */ bl OSRestoreInterrupts
/* 803C18B0 003BE810 2C 1E 00 00 */ cmpwi r30, 0
/* 803C18B4 003BE814 41 82 00 0C */ beq lbl_803C18C0
/* 803C18B8 003BE818 38 60 00 00 */ li r3, 0
/* 803C18BC 003BE81C 48 00 00 20 */ b lbl_803C18DC
lbl_803C18C0:
/* 803C18C0 003BE820 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 803C18C4 003BE824 48 00 00 18 */ b lbl_803C18DC
lbl_803C18C8:
/* 803C18C8 003BE828 2C 1E 00 00 */ cmpwi r30, 0
/* 803C18CC 003BE82C 41 82 00 0C */ beq lbl_803C18D8
/* 803C18D0 003BE830 38 60 00 00 */ li r3, 0
/* 803C18D4 003BE834 48 00 00 08 */ b lbl_803C18DC
lbl_803C18D8:
/* 803C18D8 003BE838 38 60 00 01 */ li r3, 1
lbl_803C18DC:
/* 803C18DC 003BE83C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 803C18E0 003BE840 BB 01 00 20 */ lmw r24, 0x20(r1)
/* 803C18E4 003BE844 38 21 00 40 */ addi r1, r1, 0x40
/* 803C18E8 003BE848 7C 08 03 A6 */ mtlr r0
/* 803C18EC 003BE84C 4E 80 00 20 */ blr