donut-decomp/asm/si/SIBios.s
2022-10-17 09:05:46 +01:00

1731 lines
80 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global SIBusy
SIBusy:
/* 8002A3C0 00026200 3C 60 80 43 */ lis r3, Si@ha
/* 8002A3C4 00026204 80 83 FB D0 */ lwz r4, Si@l(r3)
/* 8002A3C8 00026208 20 64 FF FF */ subfic r3, r4, -0x1
/* 8002A3CC 0002620C 38 04 00 01 */ addi r0, r4, 0x1
/* 8002A3D0 00026210 7C 60 03 78 */ or r0, r3, r0
/* 8002A3D4 00026214 54 03 0F FE */ srwi r3, r0, 31
/* 8002A3D8 00026218 4E 80 00 20 */ blr
/* 8002A3DC 0002621C 00 00 00 00 */ .4byte 0x00000000
.global SIIsChanBusy
SIIsChanBusy:
/* 8002A3E0 00026220 3C 80 80 4A */ lis r4, Packet@ha
/* 8002A3E4 00026224 54 60 28 34 */ slwi r0, r3, 5
/* 8002A3E8 00026228 38 84 A3 50 */ addi r4, r4, Packet@l
/* 8002A3EC 0002622C 38 A0 00 00 */ li r5, 0x0
/* 8002A3F0 00026230 7C 04 00 2E */ lwzx r0, r4, r0
/* 8002A3F4 00026234 2C 00 FF FF */ cmpwi r0, -0x1
/* 8002A3F8 00026238 40 82 00 14 */ bne lbl_8002A40C
/* 8002A3FC 0002623C 3C 80 80 43 */ lis r4, Si@ha
/* 8002A400 00026240 80 04 FB D0 */ lwz r0, Si@l(r4)
/* 8002A404 00026244 7C 00 18 00 */ cmpw r0, r3
/* 8002A408 00026248 40 82 00 08 */ bne lbl_8002A410
.global lbl_8002A40C
lbl_8002A40C:
/* 8002A40C 0002624C 38 A0 00 01 */ li r5, 0x1
.global lbl_8002A410
lbl_8002A410:
/* 8002A410 00026250 7C A3 2B 78 */ mr r3, r5
/* 8002A414 00026254 4E 80 00 20 */ blr
/* 8002A418 00026258 00 00 00 00 */ .4byte 0x00000000
/* 8002A41C 0002625C 00 00 00 00 */ .4byte 0x00000000
.global CompleteTransfer
CompleteTransfer:
/* 8002A420 00026260 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8002A424 00026264 7C 08 02 A6 */ mflr r0
/* 8002A428 00026268 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002A42C 0002626C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8002A430 00026270 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8002A434 00026274 3F C0 80 43 */ lis r30, Si@ha
/* 8002A438 00026278 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8002A43C 0002627C 3F A0 CD 00 */ lis r29, 0xCD006438@ha
/* 8002A440 00026280 83 FD 64 38 */ lwz r31, 0xCD006438@l(r29)
/* 8002A444 00026284 80 1D 64 34 */ lwz r0, 0x6434(r29)
/* 8002A448 00026288 64 00 80 00 */ oris r0, r0, 0x8000
/* 8002A44C 0002628C 54 00 00 3C */ clrrwi r0, r0, 1
/* 8002A450 00026290 90 1D 64 34 */ stw r0, 0x6434(r29)
/* 8002A454 00026294 80 1E FB D0 */ lwz r0, Si@l(r30)
/* 8002A458 00026298 2C 00 FF FF */ cmpwi r0, -0x1
/* 8002A45C 0002629C 41 82 02 98 */ beq lbl_8002A6F4
/* 8002A460 000262A0 4B FF B7 11 */ bl __OSGetSystemTime
/* 8002A464 000262A4 80 FE FB D0 */ lwz r7, -0x430(r30)
/* 8002A468 000262A8 3C C0 80 4A */ lis r6, XferTime@ha
/* 8002A46C 000262AC 38 BE FB D0 */ addi r5, r30, -0x430
/* 8002A470 000262B0 54 E7 18 38 */ slwi r7, r7, 3
/* 8002A474 000262B4 38 C6 A3 D0 */ addi r6, r6, XferTime@l
/* 8002A478 000262B8 80 05 00 08 */ lwz r0, 0x8(r5)
/* 8002A47C 000262BC 7C C6 3A 14 */ add r6, r6, r7
/* 8002A480 000262C0 90 86 00 04 */ stw r4, 0x4(r6)
/* 8002A484 000262C4 38 E0 00 00 */ li r7, 0x0
/* 8002A488 000262C8 54 08 F0 BF */ srwi. r8, r0, 2
/* 8002A48C 000262CC 80 A5 00 0C */ lwz r5, 0xc(r5)
/* 8002A490 000262D0 90 66 00 00 */ stw r3, 0x0(r6)
/* 8002A494 000262D4 41 82 00 B0 */ beq lbl_8002A544
/* 8002A498 000262D8 28 08 00 08 */ cmplwi r8, 0x8
/* 8002A49C 000262DC 38 68 FF F8 */ addi r3, r8, -0x8
/* 8002A4A0 000262E0 40 81 00 6C */ ble lbl_8002A50C
/* 8002A4A4 000262E4 38 03 00 07 */ addi r0, r3, 0x7
/* 8002A4A8 000262E8 38 9D 64 00 */ addi r4, r29, 0x6400
/* 8002A4AC 000262EC 54 00 E8 FE */ srwi r0, r0, 3
/* 8002A4B0 000262F0 7C 09 03 A6 */ mtctr r0
/* 8002A4B4 000262F4 28 03 00 00 */ cmplwi r3, 0x0
/* 8002A4B8 000262F8 40 81 00 54 */ ble lbl_8002A50C
.global lbl_8002A4BC
lbl_8002A4BC:
/* 8002A4BC 000262FC 80 04 00 80 */ lwz r0, 0x80(r4)
/* 8002A4C0 00026300 38 E7 00 08 */ addi r7, r7, 0x8
/* 8002A4C4 00026304 90 05 00 00 */ stw r0, 0x0(r5)
/* 8002A4C8 00026308 80 04 00 84 */ lwz r0, 0x84(r4)
/* 8002A4CC 0002630C 90 05 00 04 */ stw r0, 0x4(r5)
/* 8002A4D0 00026310 80 04 00 88 */ lwz r0, 0x88(r4)
/* 8002A4D4 00026314 90 05 00 08 */ stw r0, 0x8(r5)
/* 8002A4D8 00026318 80 04 00 8C */ lwz r0, 0x8c(r4)
/* 8002A4DC 0002631C 90 05 00 0C */ stw r0, 0xc(r5)
/* 8002A4E0 00026320 80 04 00 90 */ lwz r0, 0x90(r4)
/* 8002A4E4 00026324 90 05 00 10 */ stw r0, 0x10(r5)
/* 8002A4E8 00026328 80 04 00 94 */ lwz r0, 0x94(r4)
/* 8002A4EC 0002632C 90 05 00 14 */ stw r0, 0x14(r5)
/* 8002A4F0 00026330 80 04 00 98 */ lwz r0, 0x98(r4)
/* 8002A4F4 00026334 90 05 00 18 */ stw r0, 0x18(r5)
/* 8002A4F8 00026338 80 04 00 9C */ lwz r0, 0x9c(r4)
/* 8002A4FC 0002633C 38 84 00 20 */ addi r4, r4, 0x20
/* 8002A500 00026340 90 05 00 1C */ stw r0, 0x1c(r5)
/* 8002A504 00026344 38 A5 00 20 */ addi r5, r5, 0x20
/* 8002A508 00026348 42 00 FF B4 */ bdnz lbl_8002A4BC
.global lbl_8002A50C
lbl_8002A50C:
/* 8002A50C 0002634C 54 E3 10 3A */ slwi r3, r7, 2
/* 8002A510 00026350 3C 00 CD 00 */ lis r0, 0xcd00
/* 8002A514 00026354 7C 60 1A 14 */ add r3, r0, r3
/* 8002A518 00026358 7C 07 40 50 */ subf r0, r7, r8
/* 8002A51C 0002635C 38 63 64 00 */ addi r3, r3, 0x6400
/* 8002A520 00026360 7C 09 03 A6 */ mtctr r0
/* 8002A524 00026364 7C 07 40 40 */ cmplw r7, r8
/* 8002A528 00026368 40 80 00 1C */ bge lbl_8002A544
.global lbl_8002A52C
lbl_8002A52C:
/* 8002A52C 0002636C 80 03 00 80 */ lwz r0, 0x80(r3)
/* 8002A530 00026370 38 E7 00 01 */ addi r7, r7, 0x1
/* 8002A534 00026374 90 05 00 00 */ stw r0, 0x0(r5)
/* 8002A538 00026378 38 A5 00 04 */ addi r5, r5, 0x4
/* 8002A53C 0002637C 38 63 00 04 */ addi r3, r3, 0x4
/* 8002A540 00026380 42 00 FF EC */ bdnz lbl_8002A52C
.global lbl_8002A544
lbl_8002A544:
/* 8002A544 00026384 3C 60 80 43 */ lis r3, Si@ha
/* 8002A548 00026388 38 63 FB D0 */ addi r3, r3, Si@l
/* 8002A54C 0002638C 80 03 00 08 */ lwz r0, 0x8(r3)
/* 8002A550 00026390 54 03 07 BF */ clrlwi. r3, r0, 30
/* 8002A554 00026394 41 82 01 0C */ beq lbl_8002A660
/* 8002A558 00026398 54 E0 10 3A */ slwi r0, r7, 2
/* 8002A55C 0002639C 3C 80 CD 00 */ lis r4, 0xcd00
/* 8002A560 000263A0 7C C4 02 14 */ add r6, r4, r0
/* 8002A564 000263A4 80 06 64 80 */ lwz r0, 0x6480(r6)
/* 8002A568 000263A8 38 80 00 00 */ li r4, 0x0
/* 8002A56C 000263AC 41 82 00 F4 */ beq lbl_8002A660
/* 8002A570 000263B0 28 03 00 08 */ cmplwi r3, 0x8
/* 8002A574 000263B4 38 E3 FF F8 */ addi r7, r3, -0x8
/* 8002A578 000263B8 40 81 00 BC */ ble lbl_8002A634
/* 8002A57C 000263BC 38 C7 00 07 */ addi r6, r7, 0x7
/* 8002A580 000263C0 54 C6 E8 FE */ srwi r6, r6, 3
/* 8002A584 000263C4 7C C9 03 A6 */ mtctr r6
/* 8002A588 000263C8 28 07 00 00 */ cmplwi r7, 0x0
/* 8002A58C 000263CC 40 81 00 A8 */ ble lbl_8002A634
.global lbl_8002A590
lbl_8002A590:
/* 8002A590 000263D0 20 C4 00 03 */ subfic r6, r4, 0x3
/* 8002A594 000263D4 38 E4 00 01 */ addi r7, r4, 0x1
/* 8002A598 000263D8 54 C8 18 38 */ slwi r8, r6, 3
/* 8002A59C 000263DC 7C 09 44 30 */ srw r9, r0, r8
/* 8002A5A0 000263E0 20 E7 00 03 */ subfic r7, r7, 0x3
/* 8002A5A4 000263E4 54 E8 18 38 */ slwi r8, r7, 3
/* 8002A5A8 000263E8 99 25 00 00 */ stb r9, 0x0(r5)
/* 8002A5AC 000263EC 38 E4 00 02 */ addi r7, r4, 0x2
/* 8002A5B0 000263F0 7C C4 00 D0 */ neg r6, r4
/* 8002A5B4 000263F4 7C 09 44 30 */ srw r9, r0, r8
/* 8002A5B8 000263F8 99 25 00 01 */ stb r9, 0x1(r5)
/* 8002A5BC 000263FC 54 C8 18 38 */ slwi r8, r6, 3
/* 8002A5C0 00026400 20 E7 00 03 */ subfic r7, r7, 0x3
/* 8002A5C4 00026404 54 E6 18 38 */ slwi r6, r7, 3
/* 8002A5C8 00026408 7C 09 34 30 */ srw r9, r0, r6
/* 8002A5CC 0002640C 99 25 00 02 */ stb r9, 0x2(r5)
/* 8002A5D0 00026410 38 C4 00 04 */ addi r6, r4, 0x4
/* 8002A5D4 00026414 7C 08 44 30 */ srw r8, r0, r8
/* 8002A5D8 00026418 20 E6 00 03 */ subfic r7, r6, 0x3
/* 8002A5DC 0002641C 99 05 00 03 */ stb r8, 0x3(r5)
/* 8002A5E0 00026420 38 C4 00 05 */ addi r6, r4, 0x5
/* 8002A5E4 00026424 54 E7 18 38 */ slwi r7, r7, 3
/* 8002A5E8 00026428 7C 09 3C 30 */ srw r9, r0, r7
/* 8002A5EC 0002642C 20 C6 00 03 */ subfic r6, r6, 0x3
/* 8002A5F0 00026430 54 C8 18 38 */ slwi r8, r6, 3
/* 8002A5F4 00026434 99 25 00 04 */ stb r9, 0x4(r5)
/* 8002A5F8 00026438 38 C4 00 06 */ addi r6, r4, 0x6
/* 8002A5FC 0002643C 20 E6 00 03 */ subfic r7, r6, 0x3
/* 8002A600 00026440 7C 08 44 30 */ srw r8, r0, r8
/* 8002A604 00026444 38 C4 00 07 */ addi r6, r4, 0x7
/* 8002A608 00026448 99 05 00 05 */ stb r8, 0x5(r5)
/* 8002A60C 0002644C 54 E7 18 38 */ slwi r7, r7, 3
/* 8002A610 00026450 38 84 00 08 */ addi r4, r4, 0x8
/* 8002A614 00026454 20 C6 00 03 */ subfic r6, r6, 0x3
/* 8002A618 00026458 7C 07 3C 30 */ srw r7, r0, r7
/* 8002A61C 0002645C 98 E5 00 06 */ stb r7, 0x6(r5)
/* 8002A620 00026460 54 C6 18 38 */ slwi r6, r6, 3
/* 8002A624 00026464 7C 06 34 30 */ srw r6, r0, r6
/* 8002A628 00026468 98 C5 00 07 */ stb r6, 0x7(r5)
/* 8002A62C 0002646C 38 A5 00 08 */ addi r5, r5, 0x8
/* 8002A630 00026470 42 00 FF 60 */ bdnz lbl_8002A590
.global lbl_8002A634
lbl_8002A634:
/* 8002A634 00026474 7C C4 18 50 */ subf r6, r4, r3
/* 8002A638 00026478 7C C9 03 A6 */ mtctr r6
/* 8002A63C 0002647C 7C 04 18 40 */ cmplw r4, r3
/* 8002A640 00026480 40 80 00 20 */ bge lbl_8002A660
.global lbl_8002A644
lbl_8002A644:
/* 8002A644 00026484 20 64 00 03 */ subfic r3, r4, 0x3
/* 8002A648 00026488 38 84 00 01 */ addi r4, r4, 0x1
/* 8002A64C 0002648C 54 63 18 38 */ slwi r3, r3, 3
/* 8002A650 00026490 7C 03 1C 30 */ srw r3, r0, r3
/* 8002A654 00026494 98 65 00 00 */ stb r3, 0x0(r5)
/* 8002A658 00026498 38 A5 00 01 */ addi r5, r5, 0x1
/* 8002A65C 0002649C 42 00 FF E8 */ bdnz lbl_8002A644
.global lbl_8002A660
lbl_8002A660:
/* 8002A660 000264A0 3C 60 CD 00 */ lis r3, 0xCD006434@ha
/* 8002A664 000264A4 80 03 64 34 */ lwz r0, 0xCD006434@l(r3)
/* 8002A668 000264A8 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
/* 8002A66C 000264AC 41 82 00 54 */ beq lbl_8002A6C0
/* 8002A670 000264B0 3C 60 80 43 */ lis r3, Si@ha
/* 8002A674 000264B4 80 83 FB D0 */ lwz r4, Si@l(r3)
/* 8002A678 000264B8 20 04 00 03 */ subfic r0, r4, 0x3
/* 8002A67C 000264BC 54 00 18 38 */ slwi r0, r0, 3
/* 8002A680 000264C0 7F FF 04 30 */ srw r31, r31, r0
/* 8002A684 000264C4 57 FF 07 3E */ clrlwi r31, r31, 28
/* 8002A688 000264C8 57 E0 07 39 */ rlwinm. r0, r31, 0, 28, 28
/* 8002A68C 000264CC 41 82 00 24 */ beq lbl_8002A6B0
/* 8002A690 000264D0 3C 60 80 43 */ lis r3, Type_8042FBE8@ha
/* 8002A694 000264D4 54 84 10 3A */ slwi r4, r4, 2
/* 8002A698 000264D8 38 63 FB E8 */ addi r3, r3, Type_8042FBE8@l
/* 8002A69C 000264DC 7C 03 20 2E */ lwzx r0, r3, r4
/* 8002A6A0 000264E0 54 00 06 31 */ rlwinm. r0, r0, 0, 24, 24
/* 8002A6A4 000264E4 40 82 00 0C */ bne lbl_8002A6B0
/* 8002A6A8 000264E8 38 00 00 08 */ li r0, 0x8
/* 8002A6AC 000264EC 7C 03 21 2E */ stwx r0, r3, r4
.global lbl_8002A6B0
lbl_8002A6B0:
/* 8002A6B0 000264F0 2C 1F 00 00 */ cmpwi r31, 0x0
/* 8002A6B4 000264F4 40 82 00 34 */ bne lbl_8002A6E8
/* 8002A6B8 000264F8 3B E0 00 04 */ li r31, 0x4
/* 8002A6BC 000264FC 48 00 00 2C */ b lbl_8002A6E8
.global lbl_8002A6C0
lbl_8002A6C0:
/* 8002A6C0 00026500 4B FF B4 B1 */ bl __OSGetSystemTime
/* 8002A6C4 00026504 3C C0 80 43 */ lis r6, Si@ha
/* 8002A6C8 00026508 3C A0 80 4A */ lis r5, TypeTime@ha
/* 8002A6CC 0002650C 80 06 FB D0 */ lwz r0, Si@l(r6)
/* 8002A6D0 00026510 38 A5 A3 F0 */ addi r5, r5, TypeTime@l
/* 8002A6D4 00026514 3B E0 00 00 */ li r31, 0x0
/* 8002A6D8 00026518 54 00 18 38 */ slwi r0, r0, 3
/* 8002A6DC 0002651C 7C A5 02 14 */ add r5, r5, r0
/* 8002A6E0 00026520 90 85 00 04 */ stw r4, 0x4(r5)
/* 8002A6E4 00026524 90 65 00 00 */ stw r3, 0x0(r5)
.global lbl_8002A6E8
lbl_8002A6E8:
/* 8002A6E8 00026528 3C 60 80 43 */ lis r3, Si@ha
/* 8002A6EC 0002652C 38 00 FF FF */ li r0, -0x1
/* 8002A6F0 00026530 90 03 FB D0 */ stw r0, Si@l(r3)
.global lbl_8002A6F4
lbl_8002A6F4:
/* 8002A6F4 00026534 7F E3 FB 78 */ mr r3, r31
/* 8002A6F8 00026538 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8002A6FC 0002653C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8002A700 00026540 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8002A704 00026544 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002A708 00026548 7C 08 03 A6 */ mtlr r0
/* 8002A70C 0002654C 38 21 00 20 */ addi r1, r1, 0x20
/* 8002A710 00026550 4E 80 00 20 */ blr
/* 8002A714 00026554 00 00 00 00 */ .4byte 0x00000000
/* 8002A718 00026558 00 00 00 00 */ .4byte 0x00000000
/* 8002A71C 0002655C 00 00 00 00 */ .4byte 0x00000000
.global SIInterruptHandler
SIInterruptHandler:
/* 8002A720 00026560 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8002A724 00026564 7C 08 02 A6 */ mflr r0
/* 8002A728 00026568 90 01 00 54 */ stw r0, 0x54(r1)
/* 8002A72C 0002656C 39 61 00 50 */ addi r11, r1, 0x50
/* 8002A730 00026570 4B FD CB E5 */ bl lbl_80007314
/* 8002A734 00026574 3C A0 CD 00 */ lis r5, 0xCD006434@ha
/* 8002A738 00026578 3F 60 80 4A */ lis r27, Packet@ha
/* 8002A73C 0002657C 82 A5 64 34 */ lwz r21, 0xCD006434@l(r5)
/* 8002A740 00026580 7C 7E 1B 78 */ mr r30, r3
/* 8002A744 00026584 7C 9F 23 78 */ mr r31, r4
/* 8002A748 00026588 3B 7B A3 50 */ addi r27, r27, Packet@l
/* 8002A74C 0002658C 56 A3 00 02 */ clrrwi r3, r21, 30
/* 8002A750 00026590 3C 03 40 00 */ addis r0, r3, 0x4000
/* 8002A754 00026594 28 00 00 00 */ cmplwi r0, 0x0
/* 8002A758 00026598 40 82 01 A4 */ bne lbl_8002A8FC
/* 8002A75C 0002659C 3E 20 80 43 */ lis r17, Si@ha
/* 8002A760 000265A0 82 D1 FB D0 */ lwz r22, Si@l(r17)
/* 8002A764 000265A4 4B FF FC BD */ bl CompleteTransfer
/* 8002A768 000265A8 38 91 FB D0 */ addi r4, r17, -0x430
/* 8002A76C 000265AC 38 00 00 00 */ li r0, 0x0
/* 8002A770 000265B0 83 04 00 10 */ lwz r24, 0x10(r4)
/* 8002A774 000265B4 7C 77 1B 78 */ mr r23, r3
/* 8002A778 000265B8 7E DC B3 78 */ mr r28, r22
/* 8002A77C 000265BC 3A 3B 00 00 */ addi r17, r27, 0x0
/* 8002A780 000265C0 90 04 00 10 */ stw r0, 0x10(r4)
/* 8002A784 000265C4 3B 40 00 00 */ li r26, 0x0
.global lbl_8002A788
lbl_8002A788:
/* 8002A788 000265C8 3B 9C 00 01 */ addi r28, r28, 0x1
/* 8002A78C 000265CC 57 80 F0 02 */ slwi r0, r28, 30
/* 8002A790 000265D0 57 83 0F FE */ srwi r3, r28, 31
/* 8002A794 000265D4 7C 03 00 50 */ subf r0, r3, r0
/* 8002A798 000265D8 54 00 10 3E */ rotlwi r0, r0, 2
/* 8002A79C 000265DC 7F 80 1A 14 */ add r28, r0, r3
/* 8002A7A0 000265E0 57 80 28 34 */ slwi r0, r28, 5
/* 8002A7A4 000265E4 7F B1 02 14 */ add r29, r17, r0
/* 8002A7A8 000265E8 7C 11 00 2E */ lwzx r0, r17, r0
/* 8002A7AC 000265EC 2C 00 FF FF */ cmpwi r0, -0x1
/* 8002A7B0 000265F0 41 82 00 6C */ beq lbl_8002A81C
/* 8002A7B4 000265F4 4B FF B3 BD */ bl __OSGetSystemTime
/* 8002A7B8 000265F8 80 BD 00 18 */ lwz r5, 0x18(r29)
/* 8002A7BC 000265FC 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8002A7C0 00026600 80 7D 00 1C */ lwz r3, 0x1c(r29)
/* 8002A7C4 00026604 6C A5 80 00 */ xoris r5, r5, 0x8000
/* 8002A7C8 00026608 7C 63 20 10 */ subfc r3, r3, r4
/* 8002A7CC 0002660C 7C A5 01 10 */ subfe r5, r5, r0
/* 8002A7D0 00026610 7C A0 01 10 */ subfe r5, r0, r0
/* 8002A7D4 00026614 7C A5 00 D1 */ neg. r5, r5
/* 8002A7D8 00026618 40 82 00 44 */ bne lbl_8002A81C
/* 8002A7DC 0002661C 80 7D 00 00 */ lwz r3, 0x0(r29)
/* 8002A7E0 00026620 80 9D 00 04 */ lwz r4, 0x4(r29)
/* 8002A7E4 00026624 80 BD 00 08 */ lwz r5, 0x8(r29)
/* 8002A7E8 00026628 80 DD 00 0C */ lwz r6, 0xc(r29)
/* 8002A7EC 0002662C 80 FD 00 10 */ lwz r7, 0x10(r29)
/* 8002A7F0 00026630 81 1D 00 14 */ lwz r8, 0x14(r29)
/* 8002A7F4 00026634 48 00 05 4D */ bl __SITransfer
/* 8002A7F8 00026638 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002A7FC 0002663C 41 82 00 2C */ beq lbl_8002A828
/* 8002A800 00026640 1C 7C 00 30 */ mulli r3, r28, 0x30
/* 8002A804 00026644 38 1B 00 C0 */ addi r0, r27, 0xc0
/* 8002A808 00026648 7C 60 1A 14 */ add r3, r0, r3
/* 8002A80C 0002664C 4B FF 13 55 */ bl OSCancelAlarm
/* 8002A810 00026650 38 00 FF FF */ li r0, -0x1
/* 8002A814 00026654 90 1D 00 00 */ stw r0, 0x0(r29)
/* 8002A818 00026658 48 00 00 10 */ b lbl_8002A828
.global lbl_8002A81C
lbl_8002A81C:
/* 8002A81C 0002665C 3B 5A 00 01 */ addi r26, r26, 0x1
/* 8002A820 00026660 2C 1A 00 04 */ cmpwi r26, 0x4
/* 8002A824 00026664 41 80 FF 64 */ blt lbl_8002A788
.global lbl_8002A828
lbl_8002A828:
/* 8002A828 00026668 2C 18 00 00 */ cmpwi r24, 0x0
/* 8002A82C 0002666C 41 82 00 1C */ beq lbl_8002A848
/* 8002A830 00026670 7F 0C C3 78 */ mr r12, r24
/* 8002A834 00026674 7E C3 B3 78 */ mr r3, r22
/* 8002A838 00026678 7E E4 BB 78 */ mr r4, r23
/* 8002A83C 0002667C 7F E5 FB 78 */ mr r5, r31
/* 8002A840 00026680 7D 89 03 A6 */ mtctr r12
/* 8002A844 00026684 4E 80 04 21 */ bctrl
.global lbl_8002A848
lbl_8002A848:
/* 8002A848 00026688 3C A0 CD 00 */ lis r5, 0xCD006438@ha
/* 8002A84C 0002668C 3C 60 80 43 */ lis r3, Type_8042FBE8@ha
/* 8002A850 00026690 56 C0 18 38 */ slwi r0, r22, 3
/* 8002A854 00026694 3C 80 0F 00 */ lis r4, 0xf00
/* 8002A858 00026698 7C 84 06 30 */ sraw r4, r4, r0
/* 8002A85C 0002669C 80 C5 64 38 */ lwz r6, 0xCD006438@l(r5)
/* 8002A860 000266A0 56 C0 10 3A */ slwi r0, r22, 2
/* 8002A864 000266A4 38 63 FB E8 */ addi r3, r3, Type_8042FBE8@l
/* 8002A868 000266A8 7C C6 20 38 */ and r6, r6, r4
/* 8002A86C 000266AC 90 C5 64 38 */ stw r6, 0x6438(r5)
/* 8002A870 000266B0 7C C3 02 14 */ add r6, r3, r0
/* 8002A874 000266B4 7C 03 00 2E */ lwzx r0, r3, r0
/* 8002A878 000266B8 28 00 00 80 */ cmplwi r0, 0x80
/* 8002A87C 000266BC 40 82 00 80 */ bne lbl_8002A8FC
/* 8002A880 000266C0 56 C0 28 34 */ slwi r0, r22, 5
/* 8002A884 000266C4 38 7B 00 00 */ addi r3, r27, 0x0
/* 8002A888 000266C8 7C 03 00 2E */ lwzx r0, r3, r0
/* 8002A88C 000266CC 38 80 00 00 */ li r4, 0x0
/* 8002A890 000266D0 2C 00 FF FF */ cmpwi r0, -0x1
/* 8002A894 000266D4 40 82 00 14 */ bne lbl_8002A8A8
/* 8002A898 000266D8 3C 60 80 43 */ lis r3, Si@ha
/* 8002A89C 000266DC 80 03 FB D0 */ lwz r0, Si@l(r3)
/* 8002A8A0 000266E0 7C 00 B0 00 */ cmpw r0, r22
/* 8002A8A4 000266E4 40 82 00 08 */ bne lbl_8002A8AC
.global lbl_8002A8A8
lbl_8002A8A8:
/* 8002A8A8 000266E8 38 80 00 01 */ li r4, 0x1
.global lbl_8002A8AC
lbl_8002A8AC:
/* 8002A8AC 000266EC 2C 04 00 00 */ cmpwi r4, 0x0
/* 8002A8B0 000266F0 40 82 00 4C */ bne lbl_8002A8FC
/* 8002A8B4 000266F4 3C 80 80 00 */ lis r4, 0x800000F8@ha
/* 8002A8B8 000266F8 3D 00 80 03 */ lis r8, GetTypeCallback@ha
/* 8002A8BC 000266FC 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
/* 8002A8C0 00026700 3C 60 43 1C */ lis r3, 0x431c
/* 8002A8C4 00026704 38 83 DE 83 */ addi r4, r3, -0x217d
/* 8002A8C8 00026708 39 08 B4 30 */ addi r8, r8, GetTypeCallback@l
/* 8002A8CC 0002670C 54 00 F0 BE */ srwi r0, r0, 2
/* 8002A8D0 00026710 7E C3 B3 78 */ mr r3, r22
/* 8002A8D4 00026714 7C 04 00 16 */ mulhwu r0, r4, r0
/* 8002A8D8 00026718 38 8D E4 C0 */ addi r4, r13, "@LOCAL@SIInterruptHandler__FsP9OSContext@cmdTypeAndStatus"@sda21
/* 8002A8DC 0002671C 38 A0 00 01 */ li r5, 0x1
/* 8002A8E0 00026720 38 E0 00 03 */ li r7, 0x3
/* 8002A8E4 00026724 39 20 00 00 */ li r9, 0x0
/* 8002A8E8 00026728 54 0A 8B FE */ srwi r10, r0, 15
/* 8002A8EC 0002672C 54 00 BA 72 */ rlwinm r0, r0, 23, 9, 25
/* 8002A8F0 00026730 7C 00 52 14 */ add r0, r0, r10
/* 8002A8F4 00026734 54 0A E8 FE */ srwi r10, r0, 3
/* 8002A8F8 00026738 48 00 09 C9 */ bl SITransfer
.global lbl_8002A8FC
lbl_8002A8FC:
/* 8002A8FC 0002673C 56 A3 00 C8 */ rlwinm r3, r21, 0, 3, 4
/* 8002A900 00026740 3C 03 E8 00 */ addis r0, r3, 0xe800
/* 8002A904 00026744 28 00 00 00 */ cmplwi r0, 0x0
/* 8002A908 00026748 40 82 01 EC */ bne lbl_8002AAF4
/* 8002A90C 0002674C 48 00 36 75 */ bl VIGetCurrentLine
/* 8002A910 00026750 3C 80 80 43 */ lis r4, Si@ha
/* 8002A914 00026754 3F 20 80 43 */ lis r25, Type_8042FBE8@ha
/* 8002A918 00026758 38 84 FB D0 */ addi r4, r4, Si@l
/* 8002A91C 0002675C 3F 80 CD 00 */ lis r28, 0xCD006400@ha
/* 8002A920 00026760 80 04 00 04 */ lwz r0, 0x4(r4)
/* 8002A924 00026764 3A 63 00 01 */ addi r19, r3, 0x1
/* 8002A928 00026768 3B 39 FB E8 */ addi r25, r25, Type_8042FBE8@l
/* 8002A92C 0002676C 3B 1C 64 00 */ addi r24, r28, 0xCD006400@l
/* 8002A930 00026770 54 12 85 BE */ extrwi r18, r0, 10, 6
/* 8002A934 00026774 3A FB 01 80 */ addi r23, r27, 0x180
/* 8002A938 00026778 3A DB 01 A0 */ addi r22, r27, 0x1a0
/* 8002A93C 0002677C 3A BB 01 B0 */ addi r21, r27, 0x1b0
/* 8002A940 00026780 3A 80 00 00 */ li r20, 0x0
/* 8002A944 00026784 3B A0 00 08 */ li r29, 0x8
/* 8002A948 00026788 3A 20 00 01 */ li r17, 0x1
.global lbl_8002A94C
lbl_8002A94C:
/* 8002A94C 0002678C 4B FF 6E D5 */ bl OSDisableInterrupts
/* 8002A950 00026790 20 14 00 03 */ subfic r0, r20, 0x3
/* 8002A954 00026794 83 5C 64 38 */ lwz r26, 0x6438(r28)
/* 8002A958 00026798 54 00 18 38 */ slwi r0, r0, 3
/* 8002A95C 0002679C 7F 5A 04 30 */ srw r26, r26, r0
/* 8002A960 000267A0 57 40 07 39 */ rlwinm. r0, r26, 0, 28, 28
/* 8002A964 000267A4 41 82 00 14 */ beq lbl_8002A978
/* 8002A968 000267A8 80 19 00 00 */ lwz r0, 0x0(r25)
/* 8002A96C 000267AC 54 00 06 31 */ rlwinm. r0, r0, 0, 24, 24
/* 8002A970 000267B0 40 82 00 08 */ bne lbl_8002A978
/* 8002A974 000267B4 93 B9 00 00 */ stw r29, 0x0(r25)
.global lbl_8002A978
lbl_8002A978:
/* 8002A978 000267B8 4B FF 6E E9 */ bl OSRestoreInterrupts
/* 8002A97C 000267BC 57 40 06 B5 */ rlwinm. r0, r26, 0, 26, 26
/* 8002A980 000267C0 41 82 00 20 */ beq lbl_8002A9A0
/* 8002A984 000267C4 80 18 00 04 */ lwz r0, 0x4(r24)
/* 8002A988 000267C8 38 60 00 01 */ li r3, 0x1
/* 8002A98C 000267CC 90 17 00 00 */ stw r0, 0x0(r23)
/* 8002A990 000267D0 80 18 00 08 */ lwz r0, 0x8(r24)
/* 8002A994 000267D4 90 17 00 04 */ stw r0, 0x4(r23)
/* 8002A998 000267D8 92 36 00 00 */ stw r17, 0x0(r22)
/* 8002A99C 000267DC 48 00 00 08 */ b lbl_8002A9A4
.global lbl_8002A9A0
lbl_8002A9A0:
/* 8002A9A0 000267E0 38 60 00 00 */ li r3, 0x0
.global lbl_8002A9A4
lbl_8002A9A4:
/* 8002A9A4 000267E4 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002A9A8 000267E8 41 82 00 08 */ beq lbl_8002A9B0
/* 8002A9AC 000267EC 92 75 00 00 */ stw r19, 0x0(r21)
.global lbl_8002A9B0
lbl_8002A9B0:
/* 8002A9B0 000267F0 3A 94 00 01 */ addi r20, r20, 0x1
/* 8002A9B4 000267F4 3B 18 00 0C */ addi r24, r24, 0xc
/* 8002A9B8 000267F8 2C 14 00 04 */ cmpwi r20, 0x4
/* 8002A9BC 000267FC 3A F7 00 08 */ addi r23, r23, 0x8
/* 8002A9C0 00026800 3A D6 00 04 */ addi r22, r22, 0x4
/* 8002A9C4 00026804 3A B5 00 04 */ addi r21, r21, 0x4
/* 8002A9C8 00026808 3B 39 00 04 */ addi r25, r25, 0x4
/* 8002A9CC 0002680C 41 80 FF 80 */ blt lbl_8002A94C
/* 8002A9D0 00026810 3C 80 80 43 */ lis r4, Si@ha
/* 8002A9D4 00026814 3C 60 80 00 */ lis r3, 0x8000
/* 8002A9D8 00026818 38 84 FB D0 */ addi r4, r4, Si@l
/* 8002A9DC 0002681C 38 00 00 18 */ li r0, 0x18
/* 8002A9E0 00026820 80 A4 00 04 */ lwz r5, 0x4(r4)
/* 8002A9E4 00026824 7C 60 04 30 */ srw r0, r3, r0
/* 8002A9E8 00026828 38 9B 01 B0 */ addi r4, r27, 0x1b0
/* 8002A9EC 0002682C 56 46 F8 7E */ srwi r6, r18, 1
/* 8002A9F0 00026830 7C A0 00 39 */ and. r0, r5, r0
/* 8002A9F4 00026834 41 82 00 24 */ beq lbl_8002AA18
/* 8002A9F8 00026838 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8002A9FC 0002683C 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002AA00 00026840 41 82 00 F4 */ beq lbl_8002AAF4
/* 8002AA04 00026844 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8002AA08 00026848 7C 06 02 14 */ add r0, r6, r0
/* 8002AA0C 0002684C 7C 00 98 40 */ cmplw r0, r19
/* 8002AA10 00026850 40 80 00 08 */ bge lbl_8002AA18
/* 8002AA14 00026854 48 00 00 E0 */ b lbl_8002AAF4
.global lbl_8002AA18
lbl_8002AA18:
/* 8002AA18 00026858 38 00 00 19 */ li r0, 0x19
/* 8002AA1C 0002685C 7C 60 04 30 */ srw r0, r3, r0
/* 8002AA20 00026860 7C A0 00 39 */ and. r0, r5, r0
/* 8002AA24 00026864 41 82 00 24 */ beq lbl_8002AA48
/* 8002AA28 00026868 80 04 00 04 */ lwz r0, 0x4(r4)
/* 8002AA2C 0002686C 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002AA30 00026870 41 82 00 C4 */ beq lbl_8002AAF4
/* 8002AA34 00026874 80 04 00 04 */ lwz r0, 0x4(r4)
/* 8002AA38 00026878 7C 06 02 14 */ add r0, r6, r0
/* 8002AA3C 0002687C 7C 00 98 40 */ cmplw r0, r19
/* 8002AA40 00026880 40 80 00 08 */ bge lbl_8002AA48
/* 8002AA44 00026884 48 00 00 B0 */ b lbl_8002AAF4
.global lbl_8002AA48
lbl_8002AA48:
/* 8002AA48 00026888 38 00 00 1A */ li r0, 0x1a
/* 8002AA4C 0002688C 7C 60 04 30 */ srw r0, r3, r0
/* 8002AA50 00026890 7C A0 00 39 */ and. r0, r5, r0
/* 8002AA54 00026894 41 82 00 24 */ beq lbl_8002AA78
/* 8002AA58 00026898 80 04 00 08 */ lwz r0, 0x8(r4)
/* 8002AA5C 0002689C 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002AA60 000268A0 41 82 00 94 */ beq lbl_8002AAF4
/* 8002AA64 000268A4 80 04 00 08 */ lwz r0, 0x8(r4)
/* 8002AA68 000268A8 7C 06 02 14 */ add r0, r6, r0
/* 8002AA6C 000268AC 7C 00 98 40 */ cmplw r0, r19
/* 8002AA70 000268B0 40 80 00 08 */ bge lbl_8002AA78
/* 8002AA74 000268B4 48 00 00 80 */ b lbl_8002AAF4
.global lbl_8002AA78
lbl_8002AA78:
/* 8002AA78 000268B8 38 00 00 1B */ li r0, 0x1b
/* 8002AA7C 000268BC 7C 60 04 30 */ srw r0, r3, r0
/* 8002AA80 000268C0 7C A0 00 39 */ and. r0, r5, r0
/* 8002AA84 000268C4 41 82 00 24 */ beq lbl_8002AAA8
/* 8002AA88 000268C8 80 04 00 0C */ lwz r0, 0xc(r4)
/* 8002AA8C 000268CC 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002AA90 000268D0 41 82 00 64 */ beq lbl_8002AAF4
/* 8002AA94 000268D4 80 04 00 0C */ lwz r0, 0xc(r4)
/* 8002AA98 000268D8 7C 06 02 14 */ add r0, r6, r0
/* 8002AA9C 000268DC 7C 00 98 40 */ cmplw r0, r19
/* 8002AAA0 000268E0 40 80 00 08 */ bge lbl_8002AAA8
/* 8002AAA4 000268E4 48 00 00 50 */ b lbl_8002AAF4
.global lbl_8002AAA8
lbl_8002AAA8:
/* 8002AAA8 000268E8 38 7B 01 B0 */ addi r3, r27, 0x1b0
/* 8002AAAC 000268EC 38 00 00 00 */ li r0, 0x0
/* 8002AAB0 000268F0 90 03 00 00 */ stw r0, 0x0(r3)
/* 8002AAB4 000268F4 3A 3B 01 C0 */ addi r17, r27, 0x1c0
/* 8002AAB8 000268F8 3A 40 00 00 */ li r18, 0x0
/* 8002AABC 000268FC 90 03 00 04 */ stw r0, 0x4(r3)
/* 8002AAC0 00026900 90 03 00 08 */ stw r0, 0x8(r3)
/* 8002AAC4 00026904 90 03 00 0C */ stw r0, 0xc(r3)
.global lbl_8002AAC8
lbl_8002AAC8:
/* 8002AAC8 00026908 81 91 00 00 */ lwz r12, 0x0(r17)
/* 8002AACC 0002690C 2C 0C 00 00 */ cmpwi r12, 0x0
/* 8002AAD0 00026910 41 82 00 14 */ beq lbl_8002AAE4
/* 8002AAD4 00026914 7F C3 F3 78 */ mr r3, r30
/* 8002AAD8 00026918 7F E4 FB 78 */ mr r4, r31
/* 8002AADC 0002691C 7D 89 03 A6 */ mtctr r12
/* 8002AAE0 00026920 4E 80 04 21 */ bctrl
.global lbl_8002AAE4
lbl_8002AAE4:
/* 8002AAE4 00026924 3A 52 00 01 */ addi r18, r18, 0x1
/* 8002AAE8 00026928 3A 31 00 04 */ addi r17, r17, 0x4
/* 8002AAEC 0002692C 2C 12 00 04 */ cmpwi r18, 0x4
/* 8002AAF0 00026930 41 80 FF D8 */ blt lbl_8002AAC8
.global lbl_8002AAF4
lbl_8002AAF4:
/* 8002AAF4 00026934 39 61 00 50 */ addi r11, r1, 0x50
/* 8002AAF8 00026938 4B FD C8 69 */ bl lbl_80007360
/* 8002AAFC 0002693C 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8002AB00 00026940 7C 08 03 A6 */ mtlr r0
/* 8002AB04 00026944 38 21 00 50 */ addi r1, r1, 0x50
/* 8002AB08 00026948 4E 80 00 20 */ blr
/* 8002AB0C 0002694C 00 00 00 00 */ .4byte 0x00000000
.global SIEnablePollingInterrupt
SIEnablePollingInterrupt:
/* 8002AB10 00026950 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002AB14 00026954 7C 08 02 A6 */ mflr r0
/* 8002AB18 00026958 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002AB1C 0002695C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8002AB20 00026960 7C 7F 1B 78 */ mr r31, r3
/* 8002AB24 00026964 4B FF 6C FD */ bl OSDisableInterrupts
/* 8002AB28 00026968 3C 80 CD 00 */ lis r4, 0xCD006434@ha
/* 8002AB2C 0002696C 2C 1F 00 00 */ cmpwi r31, 0x0
/* 8002AB30 00026970 80 A4 64 34 */ lwz r5, 0xCD006434@l(r4)
/* 8002AB34 00026974 54 BF 2F FE */ extrwi r31, r5, 1, 4
/* 8002AB38 00026978 41 82 00 24 */ beq lbl_8002AB5C
/* 8002AB3C 0002697C 3C 80 80 4A */ lis r4, InputBufferVcount@ha
/* 8002AB40 00026980 38 00 00 00 */ li r0, 0x0
/* 8002AB44 00026984 94 04 A5 00 */ stwu r0, InputBufferVcount@l(r4)
/* 8002AB48 00026988 64 A5 08 00 */ oris r5, r5, 0x800
/* 8002AB4C 0002698C 90 04 00 04 */ stw r0, 0x4(r4)
/* 8002AB50 00026990 90 04 00 08 */ stw r0, 0x8(r4)
/* 8002AB54 00026994 90 04 00 0C */ stw r0, 0xc(r4)
/* 8002AB58 00026998 48 00 00 08 */ b lbl_8002AB60
.global lbl_8002AB5C
lbl_8002AB5C:
/* 8002AB5C 0002699C 54 A5 01 46 */ rlwinm r5, r5, 0, 5, 3
.global lbl_8002AB60
lbl_8002AB60:
/* 8002AB60 000269A0 3C 80 CD 00 */ lis r4, 0xCD006434@ha
/* 8002AB64 000269A4 54 A0 00 7C */ rlwinm r0, r5, 0, 1, 30
/* 8002AB68 000269A8 90 04 64 34 */ stw r0, 0xCD006434@l(r4)
/* 8002AB6C 000269AC 4B FF 6C F5 */ bl OSRestoreInterrupts
/* 8002AB70 000269B0 7F E3 FB 78 */ mr r3, r31
/* 8002AB74 000269B4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8002AB78 000269B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002AB7C 000269BC 7C 08 03 A6 */ mtlr r0
/* 8002AB80 000269C0 38 21 00 10 */ addi r1, r1, 0x10
/* 8002AB84 000269C4 4E 80 00 20 */ blr
/* 8002AB88 000269C8 00 00 00 00 */ .4byte 0x00000000
/* 8002AB8C 000269CC 00 00 00 00 */ .4byte 0x00000000
.global SIUnregisterPollingHandler
SIUnregisterPollingHandler:
/* 8002AB90 000269D0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002AB94 000269D4 7C 08 02 A6 */ mflr r0
/* 8002AB98 000269D8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002AB9C 000269DC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8002ABA0 000269E0 93 C1 00 08 */ stw r30, 0x8(r1)
/* 8002ABA4 000269E4 7C 7E 1B 78 */ mr r30, r3
/* 8002ABA8 000269E8 4B FF 6C 79 */ bl OSDisableInterrupts
/* 8002ABAC 000269EC 3C 80 80 4A */ lis r4, RDSTHandler@ha
/* 8002ABB0 000269F0 38 00 00 04 */ li r0, 0x4
/* 8002ABB4 000269F4 7C 7F 1B 78 */ mr r31, r3
/* 8002ABB8 000269F8 38 A0 00 00 */ li r5, 0x0
/* 8002ABBC 000269FC 38 84 A5 10 */ addi r4, r4, RDSTHandler@l
/* 8002ABC0 00026A00 7C 09 03 A6 */ mtctr r0
/* 8002ABC4 00026A04 60 00 00 00 */ nop
.global lbl_8002ABC8
lbl_8002ABC8:
/* 8002ABC8 00026A08 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8002ABCC 00026A0C 7C 00 F0 40 */ cmplw r0, r30
/* 8002ABD0 00026A10 40 82 00 7C */ bne lbl_8002AC4C
/* 8002ABD4 00026A14 3C 60 80 4A */ lis r3, RDSTHandler@ha
/* 8002ABD8 00026A18 54 A0 10 3A */ slwi r0, r5, 2
/* 8002ABDC 00026A1C 38 63 A5 10 */ addi r3, r3, RDSTHandler@l
/* 8002ABE0 00026A20 38 80 00 00 */ li r4, 0x0
/* 8002ABE4 00026A24 7C 83 01 2E */ stwx r4, r3, r0
/* 8002ABE8 00026A28 38 80 00 00 */ li r4, 0x0
/* 8002ABEC 00026A2C 80 03 00 00 */ lwz r0, 0x0(r3)
/* 8002ABF0 00026A30 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002ABF4 00026A34 40 82 00 38 */ bne lbl_8002AC2C
/* 8002ABF8 00026A38 80 03 00 04 */ lwz r0, 0x4(r3)
/* 8002ABFC 00026A3C 38 80 00 01 */ li r4, 0x1
/* 8002AC00 00026A40 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002AC04 00026A44 40 82 00 28 */ bne lbl_8002AC2C
/* 8002AC08 00026A48 80 03 00 08 */ lwz r0, 0x8(r3)
/* 8002AC0C 00026A4C 38 80 00 02 */ li r4, 0x2
/* 8002AC10 00026A50 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002AC14 00026A54 40 82 00 18 */ bne lbl_8002AC2C
/* 8002AC18 00026A58 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8002AC1C 00026A5C 38 80 00 03 */ li r4, 0x3
/* 8002AC20 00026A60 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002AC24 00026A64 40 82 00 08 */ bne lbl_8002AC2C
/* 8002AC28 00026A68 38 80 00 04 */ li r4, 0x4
.global lbl_8002AC2C
lbl_8002AC2C:
/* 8002AC2C 00026A6C 2C 04 00 04 */ cmpwi r4, 0x4
/* 8002AC30 00026A70 40 82 00 0C */ bne lbl_8002AC3C
/* 8002AC34 00026A74 38 60 00 00 */ li r3, 0x0
/* 8002AC38 00026A78 4B FF FE D9 */ bl SIEnablePollingInterrupt
.global lbl_8002AC3C
lbl_8002AC3C:
/* 8002AC3C 00026A7C 7F E3 FB 78 */ mr r3, r31
/* 8002AC40 00026A80 4B FF 6C 21 */ bl OSRestoreInterrupts
/* 8002AC44 00026A84 38 60 00 01 */ li r3, 0x1
/* 8002AC48 00026A88 48 00 00 1C */ b lbl_8002AC64
.global lbl_8002AC4C
lbl_8002AC4C:
/* 8002AC4C 00026A8C 38 84 00 04 */ addi r4, r4, 0x4
/* 8002AC50 00026A90 38 A5 00 01 */ addi r5, r5, 0x1
/* 8002AC54 00026A94 42 00 FF 74 */ bdnz lbl_8002ABC8
/* 8002AC58 00026A98 7F E3 FB 78 */ mr r3, r31
/* 8002AC5C 00026A9C 4B FF 6C 05 */ bl OSRestoreInterrupts
/* 8002AC60 00026AA0 38 60 00 00 */ li r3, 0x0
.global lbl_8002AC64
lbl_8002AC64:
/* 8002AC64 00026AA4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002AC68 00026AA8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8002AC6C 00026AAC 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 8002AC70 00026AB0 7C 08 03 A6 */ mtlr r0
/* 8002AC74 00026AB4 38 21 00 10 */ addi r1, r1, 0x10
/* 8002AC78 00026AB8 4E 80 00 20 */ blr
/* 8002AC7C 00026ABC 00 00 00 00 */ .4byte 0x00000000
.global SIInit
SIInit:
/* 8002AC80 00026AC0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002AC84 00026AC4 7C 08 02 A6 */ mflr r0
/* 8002AC88 00026AC8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002AC8C 00026ACC 80 0D E4 C4 */ lwz r0, "@LOCAL@SIInit__Fv@Initialized"@sda21(r13)
/* 8002AC90 00026AD0 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002AC94 00026AD4 40 82 00 9C */ bne lbl_8002AD30
/* 8002AC98 00026AD8 80 6D 81 00 */ lwz r3, __SIVersion@sda21(r13)
/* 8002AC9C 00026ADC 4B FF 0A 45 */ bl OSRegisterVersion
/* 8002ACA0 00026AE0 3C C0 80 4A */ lis r6, Packet@ha
/* 8002ACA4 00026AE4 3C 80 80 43 */ lis r4, Si@ha
/* 8002ACA8 00026AE8 38 A6 A3 50 */ addi r5, r6, Packet@l
/* 8002ACAC 00026AEC 38 E0 FF FF */ li r7, -0x1
/* 8002ACB0 00026AF0 38 84 FB D0 */ addi r4, r4, Si@l
/* 8002ACB4 00026AF4 38 00 00 00 */ li r0, 0x0
/* 8002ACB8 00026AF8 90 E5 00 60 */ stw r7, 0x60(r5)
/* 8002ACBC 00026AFC 38 60 00 00 */ li r3, 0x0
/* 8002ACC0 00026B00 90 E5 00 40 */ stw r7, 0x40(r5)
/* 8002ACC4 00026B04 90 E5 00 20 */ stw r7, 0x20(r5)
/* 8002ACC8 00026B08 90 E6 A3 50 */ stw r7, -0x5cb0(r6)
/* 8002ACCC 00026B0C 90 04 00 04 */ stw r0, 0x4(r4)
/* 8002ACD0 00026B10 48 00 0C F1 */ bl SISetSamplingRate
/* 8002ACD4 00026B14 3C 60 CD 00 */ lis r3, 0xCD006434@ha
.global lbl_8002ACD8
lbl_8002ACD8:
/* 8002ACD8 00026B18 80 03 64 34 */ lwz r0, 0xCD006434@l(r3)
/* 8002ACDC 00026B1C 54 00 07 FF */ clrlwi. r0, r0, 31
/* 8002ACE0 00026B20 40 82 FF F8 */ bne lbl_8002ACD8
/* 8002ACE4 00026B24 3C 60 CD 00 */ lis r3, 0xCD006434@ha
/* 8002ACE8 00026B28 3C 00 80 00 */ lis r0, 0x8000
/* 8002ACEC 00026B2C 3C 80 80 03 */ lis r4, SIInterruptHandler@ha
/* 8002ACF0 00026B30 90 03 64 34 */ stw r0, 0xCD006434@l(r3)
/* 8002ACF4 00026B34 38 84 A7 20 */ addi r4, r4, SIInterruptHandler@l
/* 8002ACF8 00026B38 38 60 00 14 */ li r3, 0x14
/* 8002ACFC 00026B3C 4B FF 6B 95 */ bl __OSSetInterruptHandler
/* 8002AD00 00026B40 38 60 08 00 */ li r3, 0x800
/* 8002AD04 00026B44 4B FF 6F 6D */ bl __OSUnmaskInterrupts
/* 8002AD08 00026B48 38 60 00 00 */ li r3, 0x0
/* 8002AD0C 00026B4C 48 00 09 E5 */ bl SIGetType
/* 8002AD10 00026B50 38 60 00 01 */ li r3, 0x1
/* 8002AD14 00026B54 48 00 09 DD */ bl SIGetType
/* 8002AD18 00026B58 38 60 00 02 */ li r3, 0x2
/* 8002AD1C 00026B5C 48 00 09 D5 */ bl SIGetType
/* 8002AD20 00026B60 38 60 00 03 */ li r3, 0x3
/* 8002AD24 00026B64 48 00 09 CD */ bl SIGetType
/* 8002AD28 00026B68 38 00 00 01 */ li r0, 0x1
/* 8002AD2C 00026B6C 90 0D E4 C4 */ stw r0, "@LOCAL@SIInit__Fv@Initialized"@sda21(r13)
.global lbl_8002AD30
lbl_8002AD30:
/* 8002AD30 00026B70 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002AD34 00026B74 7C 08 03 A6 */ mtlr r0
/* 8002AD38 00026B78 38 21 00 10 */ addi r1, r1, 0x10
/* 8002AD3C 00026B7C 4E 80 00 20 */ blr
.global __SITransfer
__SITransfer:
/* 8002AD40 00026B80 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8002AD44 00026B84 7C 08 02 A6 */ mflr r0
/* 8002AD48 00026B88 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002AD4C 00026B8C 39 61 00 20 */ addi r11, r1, 0x20
/* 8002AD50 00026B90 4B FD C5 E9 */ bl lbl_80007338
/* 8002AD54 00026B94 7C 7B 1B 78 */ mr r27, r3
/* 8002AD58 00026B98 7C 9C 23 78 */ mr r28, r4
/* 8002AD5C 00026B9C 7C BD 2B 78 */ mr r29, r5
/* 8002AD60 00026BA0 7C DA 33 78 */ mr r26, r6
/* 8002AD64 00026BA4 7C FE 3B 78 */ mr r30, r7
/* 8002AD68 00026BA8 7D 1F 43 78 */ mr r31, r8
/* 8002AD6C 00026BAC 4B FF 6A B5 */ bl OSDisableInterrupts
/* 8002AD70 00026BB0 3D 00 80 43 */ lis r8, Si@ha
/* 8002AD74 00026BB4 80 08 FB D0 */ lwz r0, Si@l(r8)
/* 8002AD78 00026BB8 2C 00 FF FF */ cmpwi r0, -0x1
/* 8002AD7C 00026BBC 41 82 00 10 */ beq lbl_8002AD8C
/* 8002AD80 00026BC0 4B FF 6A E1 */ bl OSRestoreInterrupts
/* 8002AD84 00026BC4 38 60 00 00 */ li r3, 0x0
/* 8002AD88 00026BC8 48 00 01 50 */ b lbl_8002AED8
.global lbl_8002AD8C
lbl_8002AD8C:
/* 8002AD8C 00026BCC 3C E0 CD 00 */ lis r7, 0xCD006438@ha
/* 8002AD90 00026BD0 57 64 18 38 */ slwi r4, r27, 3
/* 8002AD94 00026BD4 3C A0 0F 00 */ lis r5, 0xf00
/* 8002AD98 00026BD8 81 27 64 38 */ lwz r9, 0xCD006438@l(r7)
/* 8002AD9C 00026BDC 7C A5 26 30 */ sraw r5, r5, r4
/* 8002ADA0 00026BE0 38 1D 00 03 */ addi r0, r29, 0x3
/* 8002ADA4 00026BE4 7D 29 28 38 */ and r9, r9, r5
/* 8002ADA8 00026BE8 91 27 64 38 */ stw r9, 0x6438(r7)
/* 8002ADAC 00026BEC 38 C8 FB D0 */ addi r6, r8, -0x430
/* 8002ADB0 00026BF0 54 04 F0 BF */ srwi. r4, r0, 2
/* 8002ADB4 00026BF4 93 68 FB D0 */ stw r27, -0x430(r8)
/* 8002ADB8 00026BF8 38 A0 00 00 */ li r5, 0x0
/* 8002ADBC 00026BFC 93 E6 00 10 */ stw r31, 0x10(r6)
/* 8002ADC0 00026C00 93 C6 00 08 */ stw r30, 0x8(r6)
/* 8002ADC4 00026C04 93 46 00 0C */ stw r26, 0xc(r6)
/* 8002ADC8 00026C08 41 82 00 B4 */ beq lbl_8002AE7C
/* 8002ADCC 00026C0C 28 04 00 08 */ cmplwi r4, 0x8
/* 8002ADD0 00026C10 38 C4 FF F8 */ addi r6, r4, -0x8
/* 8002ADD4 00026C14 40 81 00 70 */ ble lbl_8002AE44
/* 8002ADD8 00026C18 38 06 00 07 */ addi r0, r6, 0x7
/* 8002ADDC 00026C1C 7F 88 E3 78 */ mr r8, r28
/* 8002ADE0 00026C20 54 00 E8 FE */ srwi r0, r0, 3
/* 8002ADE4 00026C24 38 E7 64 00 */ addi r7, r7, 0x6400
/* 8002ADE8 00026C28 7C 09 03 A6 */ mtctr r0
/* 8002ADEC 00026C2C 28 06 00 00 */ cmplwi r6, 0x0
/* 8002ADF0 00026C30 40 81 00 54 */ ble lbl_8002AE44
.global lbl_8002ADF4
lbl_8002ADF4:
/* 8002ADF4 00026C34 80 08 00 00 */ lwz r0, 0x0(r8)
/* 8002ADF8 00026C38 38 A5 00 08 */ addi r5, r5, 0x8
/* 8002ADFC 00026C3C 90 07 00 80 */ stw r0, 0x80(r7)
/* 8002AE00 00026C40 80 08 00 04 */ lwz r0, 0x4(r8)
/* 8002AE04 00026C44 90 07 00 84 */ stw r0, 0x84(r7)
/* 8002AE08 00026C48 80 08 00 08 */ lwz r0, 0x8(r8)
/* 8002AE0C 00026C4C 90 07 00 88 */ stw r0, 0x88(r7)
/* 8002AE10 00026C50 80 08 00 0C */ lwz r0, 0xc(r8)
/* 8002AE14 00026C54 90 07 00 8C */ stw r0, 0x8c(r7)
/* 8002AE18 00026C58 80 08 00 10 */ lwz r0, 0x10(r8)
/* 8002AE1C 00026C5C 90 07 00 90 */ stw r0, 0x90(r7)
/* 8002AE20 00026C60 80 08 00 14 */ lwz r0, 0x14(r8)
/* 8002AE24 00026C64 90 07 00 94 */ stw r0, 0x94(r7)
/* 8002AE28 00026C68 80 08 00 18 */ lwz r0, 0x18(r8)
/* 8002AE2C 00026C6C 90 07 00 98 */ stw r0, 0x98(r7)
/* 8002AE30 00026C70 80 08 00 1C */ lwz r0, 0x1c(r8)
/* 8002AE34 00026C74 39 08 00 20 */ addi r8, r8, 0x20
/* 8002AE38 00026C78 90 07 00 9C */ stw r0, 0x9c(r7)
/* 8002AE3C 00026C7C 38 E7 00 20 */ addi r7, r7, 0x20
/* 8002AE40 00026C80 42 00 FF B4 */ bdnz lbl_8002ADF4
.global lbl_8002AE44
lbl_8002AE44:
/* 8002AE44 00026C84 54 A7 10 3A */ slwi r7, r5, 2
/* 8002AE48 00026C88 3C 00 CD 00 */ lis r0, 0xcd00
/* 8002AE4C 00026C8C 7C C0 3A 14 */ add r6, r0, r7
/* 8002AE50 00026C90 7C 05 20 50 */ subf r0, r5, r4
/* 8002AE54 00026C94 7C FC 3A 14 */ add r7, r28, r7
/* 8002AE58 00026C98 38 C6 64 00 */ addi r6, r6, 0x6400
/* 8002AE5C 00026C9C 7C 09 03 A6 */ mtctr r0
/* 8002AE60 00026CA0 7C 05 20 40 */ cmplw r5, r4
/* 8002AE64 00026CA4 40 80 00 18 */ bge lbl_8002AE7C
.global lbl_8002AE68
lbl_8002AE68:
/* 8002AE68 00026CA8 80 07 00 00 */ lwz r0, 0x0(r7)
/* 8002AE6C 00026CAC 38 E7 00 04 */ addi r7, r7, 0x4
/* 8002AE70 00026CB0 90 06 00 80 */ stw r0, 0x80(r6)
/* 8002AE74 00026CB4 38 C6 00 04 */ addi r6, r6, 0x4
/* 8002AE78 00026CB8 42 00 FF F0 */ bdnz lbl_8002AE68
.global lbl_8002AE7C
lbl_8002AE7C:
/* 8002AE7C 00026CBC 38 9D FF 80 */ addi r4, r29, -0x80
/* 8002AE80 00026CC0 20 1D 00 80 */ subfic r0, r29, 0x80
/* 8002AE84 00026CC4 7C 80 00 F8 */ nor r0, r4, r0
/* 8002AE88 00026CC8 3D 20 CD 00 */ lis r9, 0xCD006434@ha
/* 8002AE8C 00026CCC 7C 05 FE 70 */ srawi r5, r0, 31
/* 8002AE90 00026CD0 7C DF 00 D0 */ neg r6, r31
/* 8002AE94 00026CD4 38 9E FF 80 */ addi r4, r30, -0x80
/* 8002AE98 00026CD8 20 1E 00 80 */ subfic r0, r30, 0x80
/* 8002AE9C 00026CDC 7C 80 00 F8 */ nor r0, r4, r0
/* 8002AEA0 00026CE0 81 09 64 34 */ lwz r8, 0xCD006434@l(r9)
/* 8002AEA4 00026CE4 7C 00 FE 70 */ srawi r0, r0, 31
/* 8002AEA8 00026CE8 7C C7 FB 78 */ or r7, r6, r31
/* 8002AEAC 00026CEC 7F A4 28 78 */ andc r4, r29, r5
/* 8002AEB0 00026CF0 65 06 80 00 */ oris r6, r8, 0x8000
/* 8002AEB4 00026CF4 50 E6 F8 42 */ rlwimi r6, r7, 31, 1, 1
/* 8002AEB8 00026CF8 7F C0 00 78 */ andc r0, r30, r0
/* 8002AEBC 00026CFC 50 86 82 5E */ rlwimi r6, r4, 16, 9, 15
/* 8002AEC0 00026D00 50 06 44 6E */ rlwimi r6, r0, 8, 17, 23
/* 8002AEC4 00026D04 53 66 0F 7C */ rlwimi r6, r27, 1, 29, 30
/* 8002AEC8 00026D08 60 C0 00 01 */ ori r0, r6, 0x1
/* 8002AECC 00026D0C 90 09 64 34 */ stw r0, 0x6434(r9)
/* 8002AED0 00026D10 4B FF 69 91 */ bl OSRestoreInterrupts
/* 8002AED4 00026D14 38 60 00 01 */ li r3, 0x1
.global lbl_8002AED8
lbl_8002AED8:
/* 8002AED8 00026D18 39 61 00 20 */ addi r11, r1, 0x20
/* 8002AEDC 00026D1C 4B FD C4 A9 */ bl lbl_80007384
/* 8002AEE0 00026D20 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002AEE4 00026D24 7C 08 03 A6 */ mtlr r0
/* 8002AEE8 00026D28 38 21 00 20 */ addi r1, r1, 0x20
/* 8002AEEC 00026D2C 4E 80 00 20 */ blr
.global SIGetStatus
SIGetStatus:
/* 8002AEF0 00026D30 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002AEF4 00026D34 7C 08 02 A6 */ mflr r0
/* 8002AEF8 00026D38 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002AEFC 00026D3C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8002AF00 00026D40 93 C1 00 08 */ stw r30, 0x8(r1)
/* 8002AF04 00026D44 7C 7E 1B 78 */ mr r30, r3
/* 8002AF08 00026D48 4B FF 69 19 */ bl OSDisableInterrupts
/* 8002AF0C 00026D4C 3C 80 CD 00 */ lis r4, 0xCD006438@ha
/* 8002AF10 00026D50 20 1E 00 03 */ subfic r0, r30, 0x3
/* 8002AF14 00026D54 83 E4 64 38 */ lwz r31, 0xCD006438@l(r4)
/* 8002AF18 00026D58 54 00 18 38 */ slwi r0, r0, 3
/* 8002AF1C 00026D5C 7F FF 04 30 */ srw r31, r31, r0
/* 8002AF20 00026D60 57 E0 07 39 */ rlwinm. r0, r31, 0, 28, 28
/* 8002AF24 00026D64 41 82 00 24 */ beq lbl_8002AF48
/* 8002AF28 00026D68 3C 80 80 43 */ lis r4, Type_8042FBE8@ha
/* 8002AF2C 00026D6C 57 C5 10 3A */ slwi r5, r30, 2
/* 8002AF30 00026D70 38 84 FB E8 */ addi r4, r4, Type_8042FBE8@l
/* 8002AF34 00026D74 7C 04 28 2E */ lwzx r0, r4, r5
/* 8002AF38 00026D78 54 00 06 31 */ rlwinm. r0, r0, 0, 24, 24
/* 8002AF3C 00026D7C 40 82 00 0C */ bne lbl_8002AF48
/* 8002AF40 00026D80 38 00 00 08 */ li r0, 0x8
/* 8002AF44 00026D84 7C 04 29 2E */ stwx r0, r4, r5
.global lbl_8002AF48
lbl_8002AF48:
/* 8002AF48 00026D88 4B FF 69 19 */ bl OSRestoreInterrupts
/* 8002AF4C 00026D8C 7F E3 FB 78 */ mr r3, r31
/* 8002AF50 00026D90 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8002AF54 00026D94 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 8002AF58 00026D98 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002AF5C 00026D9C 7C 08 03 A6 */ mtlr r0
/* 8002AF60 00026DA0 38 21 00 10 */ addi r1, r1, 0x10
/* 8002AF64 00026DA4 4E 80 00 20 */ blr
/* 8002AF68 00026DA8 00 00 00 00 */ .4byte 0x00000000
/* 8002AF6C 00026DAC 00 00 00 00 */ .4byte 0x00000000
.global SISetCommand
SISetCommand:
/* 8002AF70 00026DB0 1C 63 00 0C */ mulli r3, r3, 0xc
/* 8002AF74 00026DB4 3C 00 CD 00 */ lis r0, 0xcd00
/* 8002AF78 00026DB8 7C 60 1A 14 */ add r3, r0, r3
/* 8002AF7C 00026DBC 90 83 64 00 */ stw r4, 0x6400(r3)
/* 8002AF80 00026DC0 4E 80 00 20 */ blr
/* 8002AF84 00026DC4 00 00 00 00 */ .4byte 0x00000000
/* 8002AF88 00026DC8 00 00 00 00 */ .4byte 0x00000000
/* 8002AF8C 00026DCC 00 00 00 00 */ .4byte 0x00000000
.global SITransferCommands
SITransferCommands:
/* 8002AF90 00026DD0 3C 60 CD 00 */ lis r3, 0xCD006438@ha
/* 8002AF94 00026DD4 3C 00 80 00 */ lis r0, 0x8000
/* 8002AF98 00026DD8 90 03 64 38 */ stw r0, 0xCD006438@l(r3)
/* 8002AF9C 00026DDC 4E 80 00 20 */ blr
.global SISetXY
SISetXY:
/* 8002AFA0 00026DE0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002AFA4 00026DE4 7C 08 02 A6 */ mflr r0
/* 8002AFA8 00026DE8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002AFAC 00026DEC 54 80 40 2E */ slwi r0, r4, 8
/* 8002AFB0 00026DF0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8002AFB4 00026DF4 54 7F 80 1E */ slwi r31, r3, 16
/* 8002AFB8 00026DF8 7F FF 03 78 */ or r31, r31, r0
/* 8002AFBC 00026DFC 4B FF 68 65 */ bl OSDisableInterrupts
/* 8002AFC0 00026E00 3C A0 80 43 */ lis r5, Si@ha
/* 8002AFC4 00026E04 3C 80 CD 00 */ lis r4, 0xCD006430@ha
/* 8002AFC8 00026E08 38 A5 FB D0 */ addi r5, r5, Si@l
/* 8002AFCC 00026E0C 80 05 00 04 */ lwz r0, 0x4(r5)
/* 8002AFD0 00026E10 54 00 06 0A */ rlwinm r0, r0, 0, 24, 5
/* 8002AFD4 00026E14 7C 1F FB 78 */ or r31, r0, r31
/* 8002AFD8 00026E18 93 E5 00 04 */ stw r31, 0x4(r5)
/* 8002AFDC 00026E1C 93 E4 64 30 */ stw r31, 0xCD006430@l(r4)
/* 8002AFE0 00026E20 4B FF 68 81 */ bl OSRestoreInterrupts
/* 8002AFE4 00026E24 7F E3 FB 78 */ mr r3, r31
/* 8002AFE8 00026E28 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8002AFEC 00026E2C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002AFF0 00026E30 7C 08 03 A6 */ mtlr r0
/* 8002AFF4 00026E34 38 21 00 10 */ addi r1, r1, 0x10
/* 8002AFF8 00026E38 4E 80 00 20 */ blr
/* 8002AFFC 00026E3C 00 00 00 00 */ .4byte 0x00000000
.global SIEnablePolling
SIEnablePolling:
/* 8002B000 00026E40 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002B004 00026E44 7C 08 02 A6 */ mflr r0
/* 8002B008 00026E48 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002B00C 00026E4C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002B010 00026E50 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8002B014 00026E54 7C 7F 1B 78 */ mr r31, r3
/* 8002B018 00026E58 40 82 00 14 */ bne lbl_8002B02C
/* 8002B01C 00026E5C 3C 60 80 43 */ lis r3, Si@ha
/* 8002B020 00026E60 38 63 FB D0 */ addi r3, r3, Si@l
/* 8002B024 00026E64 80 63 00 04 */ lwz r3, 0x4(r3)
/* 8002B028 00026E68 48 00 00 4C */ b lbl_8002B074
.global lbl_8002B02C
lbl_8002B02C:
/* 8002B02C 00026E6C 4B FF 67 F5 */ bl OSDisableInterrupts
/* 8002B030 00026E70 57 FF 46 3E */ srwi r31, r31, 24
/* 8002B034 00026E74 3C C0 80 43 */ lis r6, Si@ha
/* 8002B038 00026E78 57 E8 E7 3E */ extrwi r8, r31, 4, 24
/* 8002B03C 00026E7C 3C 80 CD 00 */ lis r4, 0xCD006438@ha
/* 8002B040 00026E80 38 C6 FB D0 */ addi r6, r6, Si@l
/* 8002B044 00026E84 3C 00 80 00 */ lis r0, 0x8000
/* 8002B048 00026E88 65 07 03 FF */ oris r7, r8, 0x3ff
/* 8002B04C 00026E8C 80 A6 00 04 */ lwz r5, 0x4(r6)
/* 8002B050 00026E90 60 E7 FF F0 */ ori r7, r7, 0xfff0
/* 8002B054 00026E94 7F FF 38 38 */ and r31, r31, r7
/* 8002B058 00026E98 7C A5 40 78 */ andc r5, r5, r8
/* 8002B05C 00026E9C 7C BF FB 78 */ or r31, r5, r31
/* 8002B060 00026EA0 93 E6 00 04 */ stw r31, 0x4(r6)
/* 8002B064 00026EA4 90 04 64 38 */ stw r0, 0xCD006438@l(r4)
/* 8002B068 00026EA8 93 E4 64 30 */ stw r31, 0x6430(r4)
/* 8002B06C 00026EAC 4B FF 67 F5 */ bl OSRestoreInterrupts
/* 8002B070 00026EB0 7F E3 FB 78 */ mr r3, r31
.global lbl_8002B074
lbl_8002B074:
/* 8002B074 00026EB4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002B078 00026EB8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8002B07C 00026EBC 7C 08 03 A6 */ mtlr r0
/* 8002B080 00026EC0 38 21 00 10 */ addi r1, r1, 0x10
/* 8002B084 00026EC4 4E 80 00 20 */ blr
/* 8002B088 00026EC8 00 00 00 00 */ .4byte 0x00000000
/* 8002B08C 00026ECC 00 00 00 00 */ .4byte 0x00000000
.global SIDisablePolling
SIDisablePolling:
/* 8002B090 00026ED0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002B094 00026ED4 7C 08 02 A6 */ mflr r0
/* 8002B098 00026ED8 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002B09C 00026EDC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002B0A0 00026EE0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8002B0A4 00026EE4 7C 7F 1B 78 */ mr r31, r3
/* 8002B0A8 00026EE8 40 82 00 14 */ bne lbl_8002B0BC
/* 8002B0AC 00026EEC 3C 60 80 43 */ lis r3, Si@ha
/* 8002B0B0 00026EF0 38 63 FB D0 */ addi r3, r3, Si@l
/* 8002B0B4 00026EF4 80 63 00 04 */ lwz r3, 0x4(r3)
/* 8002B0B8 00026EF8 48 00 00 30 */ b lbl_8002B0E8
.global lbl_8002B0BC
lbl_8002B0BC:
/* 8002B0BC 00026EFC 4B FF 67 65 */ bl OSDisableInterrupts
/* 8002B0C0 00026F00 3C C0 80 43 */ lis r6, Si@ha
/* 8002B0C4 00026F04 57 E0 46 36 */ rlwinm r0, r31, 8, 24, 27
/* 8002B0C8 00026F08 38 C6 FB D0 */ addi r6, r6, Si@l
/* 8002B0CC 00026F0C 3C 80 CD 00 */ lis r4, 0xCD006430@ha
/* 8002B0D0 00026F10 80 A6 00 04 */ lwz r5, 0x4(r6)
/* 8002B0D4 00026F14 7C BF 00 78 */ andc r31, r5, r0
/* 8002B0D8 00026F18 93 E4 64 30 */ stw r31, 0xCD006430@l(r4)
/* 8002B0DC 00026F1C 93 E6 00 04 */ stw r31, 0x4(r6)
/* 8002B0E0 00026F20 4B FF 67 81 */ bl OSRestoreInterrupts
/* 8002B0E4 00026F24 7F E3 FB 78 */ mr r3, r31
.global lbl_8002B0E8
lbl_8002B0E8:
/* 8002B0E8 00026F28 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002B0EC 00026F2C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8002B0F0 00026F30 7C 08 03 A6 */ mtlr r0
/* 8002B0F4 00026F34 38 21 00 10 */ addi r1, r1, 0x10
/* 8002B0F8 00026F38 4E 80 00 20 */ blr
/* 8002B0FC 00026F3C 00 00 00 00 */ .4byte 0x00000000
.global SIGetResponse
SIGetResponse:
/* 8002B100 00026F40 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8002B104 00026F44 7C 08 02 A6 */ mflr r0
/* 8002B108 00026F48 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002B10C 00026F4C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8002B110 00026F50 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8002B114 00026F54 7C 9E 23 78 */ mr r30, r4
/* 8002B118 00026F58 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8002B11C 00026F5C 7C 7D 1B 78 */ mr r29, r3
/* 8002B120 00026F60 93 81 00 10 */ stw r28, 0x10(r1)
/* 8002B124 00026F64 4B FF 66 FD */ bl OSDisableInterrupts
/* 8002B128 00026F68 7C 7F 1B 78 */ mr r31, r3
/* 8002B12C 00026F6C 4B FF 66 F5 */ bl OSDisableInterrupts
/* 8002B130 00026F70 3C 80 CD 00 */ lis r4, 0xCD006438@ha
/* 8002B134 00026F74 20 1D 00 03 */ subfic r0, r29, 0x3
/* 8002B138 00026F78 83 84 64 38 */ lwz r28, 0xCD006438@l(r4)
/* 8002B13C 00026F7C 54 00 18 38 */ slwi r0, r0, 3
/* 8002B140 00026F80 7F 9C 04 30 */ srw r28, r28, r0
/* 8002B144 00026F84 57 80 07 39 */ rlwinm. r0, r28, 0, 28, 28
/* 8002B148 00026F88 41 82 00 24 */ beq lbl_8002B16C
/* 8002B14C 00026F8C 3C 80 80 43 */ lis r4, Type_8042FBE8@ha
/* 8002B150 00026F90 57 A5 10 3A */ slwi r5, r29, 2
/* 8002B154 00026F94 38 84 FB E8 */ addi r4, r4, Type_8042FBE8@l
/* 8002B158 00026F98 7C 04 28 2E */ lwzx r0, r4, r5
/* 8002B15C 00026F9C 54 00 06 31 */ rlwinm. r0, r0, 0, 24, 24
/* 8002B160 00026FA0 40 82 00 0C */ bne lbl_8002B16C
/* 8002B164 00026FA4 38 00 00 08 */ li r0, 0x8
/* 8002B168 00026FA8 7C 04 29 2E */ stwx r0, r4, r5
.global lbl_8002B16C
lbl_8002B16C:
/* 8002B16C 00026FAC 4B FF 66 F5 */ bl OSRestoreInterrupts
/* 8002B170 00026FB0 57 80 06 B5 */ rlwinm. r0, r28, 0, 26, 26
/* 8002B174 00026FB4 41 82 00 44 */ beq lbl_8002B1B8
/* 8002B178 00026FB8 1C BD 00 0C */ mulli r5, r29, 0xc
/* 8002B17C 00026FBC 3C 00 CD 00 */ lis r0, 0xcd00
/* 8002B180 00026FC0 3C 80 80 4A */ lis r4, InputBuffer@ha
/* 8002B184 00026FC4 3C 60 80 4A */ lis r3, InputBufferValid@ha
/* 8002B188 00026FC8 7C C0 2A 14 */ add r6, r0, r5
/* 8002B18C 00026FCC 38 84 A4 D0 */ addi r4, r4, InputBuffer@l
/* 8002B190 00026FD0 57 A5 18 38 */ slwi r5, r29, 3
/* 8002B194 00026FD4 80 06 64 04 */ lwz r0, 0x6404(r6)
/* 8002B198 00026FD8 7C 04 29 2E */ stwx r0, r4, r5
/* 8002B19C 00026FDC 7C A4 2A 14 */ add r5, r4, r5
/* 8002B1A0 00026FE0 57 A0 10 3A */ slwi r0, r29, 2
/* 8002B1A4 00026FE4 38 63 A4 F0 */ addi r3, r3, InputBufferValid@l
/* 8002B1A8 00026FE8 80 C6 64 08 */ lwz r6, 0x6408(r6)
/* 8002B1AC 00026FEC 38 80 00 01 */ li r4, 0x1
/* 8002B1B0 00026FF0 90 C5 00 04 */ stw r6, 0x4(r5)
/* 8002B1B4 00026FF4 7C 83 01 2E */ stwx r4, r3, r0
.global lbl_8002B1B8
lbl_8002B1B8:
/* 8002B1B8 00026FF8 3C 60 80 4A */ lis r3, InputBufferValid@ha
/* 8002B1BC 00026FFC 57 A4 10 3A */ slwi r4, r29, 2
/* 8002B1C0 00027000 38 63 A4 F0 */ addi r3, r3, InputBufferValid@l
/* 8002B1C4 00027004 38 00 00 00 */ li r0, 0x0
/* 8002B1C8 00027008 7F 83 20 2E */ lwzx r28, r3, r4
/* 8002B1CC 0002700C 2C 1C 00 00 */ cmpwi r28, 0x0
/* 8002B1D0 00027010 7C 03 21 2E */ stwx r0, r3, r4
/* 8002B1D4 00027014 41 82 00 24 */ beq lbl_8002B1F8
/* 8002B1D8 00027018 3C 60 80 4A */ lis r3, InputBuffer@ha
/* 8002B1DC 0002701C 57 A4 18 38 */ slwi r4, r29, 3
/* 8002B1E0 00027020 38 63 A4 D0 */ addi r3, r3, InputBuffer@l
/* 8002B1E4 00027024 7C 03 20 2E */ lwzx r0, r3, r4
/* 8002B1E8 00027028 7C 63 22 14 */ add r3, r3, r4
/* 8002B1EC 0002702C 90 1E 00 00 */ stw r0, 0x0(r30)
/* 8002B1F0 00027030 80 03 00 04 */ lwz r0, 0x4(r3)
/* 8002B1F4 00027034 90 1E 00 04 */ stw r0, 0x4(r30)
.global lbl_8002B1F8
lbl_8002B1F8:
/* 8002B1F8 00027038 7F E3 FB 78 */ mr r3, r31
/* 8002B1FC 0002703C 4B FF 66 65 */ bl OSRestoreInterrupts
/* 8002B200 00027040 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8002B204 00027044 7F 83 E3 78 */ mr r3, r28
/* 8002B208 00027048 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8002B20C 0002704C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8002B210 00027050 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8002B214 00027054 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002B218 00027058 7C 08 03 A6 */ mtlr r0
/* 8002B21C 0002705C 38 21 00 20 */ addi r1, r1, 0x20
/* 8002B220 00027060 4E 80 00 20 */ blr
/* 8002B224 00027064 00 00 00 00 */ .4byte 0x00000000
/* 8002B228 00027068 00 00 00 00 */ .4byte 0x00000000
/* 8002B22C 0002706C 00 00 00 00 */ .4byte 0x00000000
.global AlarmHandler
AlarmHandler:
/* 8002B230 00027070 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002B234 00027074 7C 08 02 A6 */ mflr r0
/* 8002B238 00027078 3C C0 80 4A */ lis r6, Alarm@ha
/* 8002B23C 0002707C 3C A0 2A AB */ lis r5, 0x2aab
/* 8002B240 00027080 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002B244 00027084 38 C6 A4 10 */ addi r6, r6, Alarm@l
/* 8002B248 00027088 7C 06 18 50 */ subf r0, r6, r3
/* 8002B24C 0002708C 38 65 AA AB */ addi r3, r5, -0x5555
/* 8002B250 00027090 7C 03 00 96 */ mulhw r0, r3, r0
/* 8002B254 00027094 3C 80 80 4A */ lis r4, Packet@ha
/* 8002B258 00027098 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8002B25C 0002709C 38 84 A3 50 */ addi r4, r4, Packet@l
/* 8002B260 000270A0 7C 00 1E 70 */ srawi r0, r0, 3
/* 8002B264 000270A4 54 03 0F FE */ srwi r3, r0, 31
/* 8002B268 000270A8 7C 00 1A 14 */ add r0, r0, r3
/* 8002B26C 000270AC 54 00 28 34 */ slwi r0, r0, 5
/* 8002B270 000270B0 7C 64 00 2E */ lwzx r3, r4, r0
/* 8002B274 000270B4 7F E4 02 14 */ add r31, r4, r0
/* 8002B278 000270B8 2C 03 FF FF */ cmpwi r3, -0x1
/* 8002B27C 000270BC 41 82 00 2C */ beq lbl_8002B2A8
/* 8002B280 000270C0 80 9F 00 04 */ lwz r4, 0x4(r31)
/* 8002B284 000270C4 80 BF 00 08 */ lwz r5, 0x8(r31)
/* 8002B288 000270C8 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 8002B28C 000270CC 80 FF 00 10 */ lwz r7, 0x10(r31)
/* 8002B290 000270D0 81 1F 00 14 */ lwz r8, 0x14(r31)
/* 8002B294 000270D4 4B FF FA AD */ bl __SITransfer
/* 8002B298 000270D8 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002B29C 000270DC 41 82 00 0C */ beq lbl_8002B2A8
/* 8002B2A0 000270E0 38 00 FF FF */ li r0, -0x1
/* 8002B2A4 000270E4 90 1F 00 00 */ stw r0, 0x0(r31)
.global lbl_8002B2A8
lbl_8002B2A8:
/* 8002B2A8 000270E8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002B2AC 000270EC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8002B2B0 000270F0 7C 08 03 A6 */ mtlr r0
/* 8002B2B4 000270F4 38 21 00 10 */ addi r1, r1, 0x10
/* 8002B2B8 000270F8 4E 80 00 20 */ blr
/* 8002B2BC 000270FC 00 00 00 00 */ .4byte 0x00000000
.global SITransfer
SITransfer:
/* 8002B2C0 00027100 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8002B2C4 00027104 7C 08 02 A6 */ mflr r0
/* 8002B2C8 00027108 90 01 00 44 */ stw r0, 0x44(r1)
/* 8002B2CC 0002710C 39 61 00 40 */ addi r11, r1, 0x40
/* 8002B2D0 00027110 4B FD C0 55 */ bl lbl_80007324
/* 8002B2D4 00027114 3F E0 80 4A */ lis r31, Packet@ha
/* 8002B2D8 00027118 54 6B 28 34 */ slwi r11, r3, 5
/* 8002B2DC 0002711C 3B FF A3 50 */ addi r31, r31, Packet@l
/* 8002B2E0 00027120 7C 75 1B 78 */ mr r21, r3
/* 8002B2E4 00027124 38 1F 00 00 */ addi r0, r31, 0x0
/* 8002B2E8 00027128 7C 96 23 78 */ mr r22, r4
/* 8002B2EC 0002712C 7C B7 2B 78 */ mr r23, r5
/* 8002B2F0 00027130 7C D8 33 78 */ mr r24, r6
/* 8002B2F4 00027134 7C F9 3B 78 */ mr r25, r7
/* 8002B2F8 00027138 7D 1A 43 78 */ mr r26, r8
/* 8002B2FC 0002713C 7D 3B 4B 78 */ mr r27, r9
/* 8002B300 00027140 7D 5C 53 78 */ mr r28, r10
/* 8002B304 00027144 7F A0 5A 14 */ add r29, r0, r11
/* 8002B308 00027148 4B FF 65 19 */ bl OSDisableInterrupts
/* 8002B30C 0002714C 80 1D 00 00 */ lwz r0, 0x0(r29)
/* 8002B310 00027150 7C 7E 1B 78 */ mr r30, r3
/* 8002B314 00027154 2C 00 FF FF */ cmpwi r0, -0x1
/* 8002B318 00027158 40 82 00 14 */ bne lbl_8002B32C
/* 8002B31C 0002715C 3C 60 80 43 */ lis r3, Si@ha
/* 8002B320 00027160 80 03 FB D0 */ lwz r0, Si@l(r3)
/* 8002B324 00027164 7C 00 A8 00 */ cmpw r0, r21
/* 8002B328 00027168 40 82 00 14 */ bne lbl_8002B33C
.global lbl_8002B32C
lbl_8002B32C:
/* 8002B32C 0002716C 7F C3 F3 78 */ mr r3, r30
/* 8002B330 00027170 4B FF 65 31 */ bl OSRestoreInterrupts
/* 8002B334 00027174 38 60 00 00 */ li r3, 0x0
/* 8002B338 00027178 48 00 00 DC */ b lbl_8002B414
.global lbl_8002B33C
lbl_8002B33C:
/* 8002B33C 0002717C 4B FF A8 35 */ bl __OSGetSystemTime
/* 8002B340 00027180 7F 80 DB 79 */ or. r0, r28, r27
/* 8002B344 00027184 7C 68 1B 78 */ mr r8, r3
/* 8002B348 00027188 40 82 00 10 */ bne lbl_8002B358
/* 8002B34C 0002718C 7C 9C 23 78 */ mr r28, r4
/* 8002B350 00027190 7D 1B 43 78 */ mr r27, r8
/* 8002B354 00027194 48 00 00 20 */ b lbl_8002B374
.global lbl_8002B358
lbl_8002B358:
/* 8002B358 00027198 56 A5 18 38 */ slwi r5, r21, 3
/* 8002B35C 0002719C 38 1F 00 80 */ addi r0, r31, 0x80
/* 8002B360 000271A0 7C C0 2A 14 */ add r6, r0, r5
/* 8002B364 000271A4 80 A6 00 04 */ lwz r5, 0x4(r6)
/* 8002B368 000271A8 80 06 00 00 */ lwz r0, 0x0(r6)
/* 8002B36C 000271AC 7F 9C 28 14 */ addc r28, r28, r5
/* 8002B370 000271B0 7F 7B 01 14 */ adde r27, r27, r0
.global lbl_8002B374
lbl_8002B374:
/* 8002B374 000271B4 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8002B378 000271B8 6F 65 80 00 */ xoris r5, r27, 0x8000
/* 8002B37C 000271BC 7C 7C 20 10 */ subfc r3, r28, r4
/* 8002B380 000271C0 7C A5 01 10 */ subfe r5, r5, r0
/* 8002B384 000271C4 7C A0 01 10 */ subfe r5, r0, r0
/* 8002B388 000271C8 7C A5 00 D1 */ neg. r5, r5
/* 8002B38C 000271CC 41 82 00 28 */ beq lbl_8002B3B4
/* 8002B390 000271D0 1C 75 00 30 */ mulli r3, r21, 0x30
/* 8002B394 000271D4 38 1F 00 C0 */ addi r0, r31, 0xc0
/* 8002B398 000271D8 7C C4 E0 10 */ subfc r6, r4, r28
/* 8002B39C 000271DC 3C E0 80 03 */ lis r7, AlarmHandler@ha
/* 8002B3A0 000271E0 7C 60 1A 14 */ add r3, r0, r3
/* 8002B3A4 000271E4 7C A8 D9 10 */ subfe r5, r8, r27
/* 8002B3A8 000271E8 38 E7 B2 30 */ addi r7, r7, AlarmHandler@l
/* 8002B3AC 000271EC 4B FF 06 B5 */ bl OSSetAlarm
/* 8002B3B0 000271F0 48 00 00 38 */ b lbl_8002B3E8
.global lbl_8002B3B4
lbl_8002B3B4:
/* 8002B3B4 000271F4 7E A3 AB 78 */ mr r3, r21
/* 8002B3B8 000271F8 7E C4 B3 78 */ mr r4, r22
/* 8002B3BC 000271FC 7E E5 BB 78 */ mr r5, r23
/* 8002B3C0 00027200 7F 06 C3 78 */ mr r6, r24
/* 8002B3C4 00027204 7F 27 CB 78 */ mr r7, r25
/* 8002B3C8 00027208 7F 48 D3 78 */ mr r8, r26
/* 8002B3CC 0002720C 4B FF F9 75 */ bl __SITransfer
/* 8002B3D0 00027210 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002B3D4 00027214 41 82 00 14 */ beq lbl_8002B3E8
/* 8002B3D8 00027218 7F C3 F3 78 */ mr r3, r30
/* 8002B3DC 0002721C 4B FF 64 85 */ bl OSRestoreInterrupts
/* 8002B3E0 00027220 38 60 00 01 */ li r3, 0x1
/* 8002B3E4 00027224 48 00 00 30 */ b lbl_8002B414
.global lbl_8002B3E8
lbl_8002B3E8:
/* 8002B3E8 00027228 92 BD 00 00 */ stw r21, 0x0(r29)
/* 8002B3EC 0002722C 7F C3 F3 78 */ mr r3, r30
/* 8002B3F0 00027230 92 DD 00 04 */ stw r22, 0x4(r29)
/* 8002B3F4 00027234 92 FD 00 08 */ stw r23, 0x8(r29)
/* 8002B3F8 00027238 93 1D 00 0C */ stw r24, 0xc(r29)
/* 8002B3FC 0002723C 93 3D 00 10 */ stw r25, 0x10(r29)
/* 8002B400 00027240 93 5D 00 14 */ stw r26, 0x14(r29)
/* 8002B404 00027244 93 9D 00 1C */ stw r28, 0x1c(r29)
/* 8002B408 00027248 93 7D 00 18 */ stw r27, 0x18(r29)
/* 8002B40C 0002724C 4B FF 64 55 */ bl OSRestoreInterrupts
/* 8002B410 00027250 38 60 00 01 */ li r3, 0x1
.global lbl_8002B414
lbl_8002B414:
/* 8002B414 00027254 39 61 00 40 */ addi r11, r1, 0x40
/* 8002B418 00027258 4B FD BF 59 */ bl lbl_80007370
/* 8002B41C 0002725C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8002B420 00027260 7C 08 03 A6 */ mtlr r0
/* 8002B424 00027264 38 21 00 40 */ addi r1, r1, 0x40
/* 8002B428 00027268 4E 80 00 20 */ blr
/* 8002B42C 0002726C 00 00 00 00 */ .4byte 0x00000000
.global GetTypeCallback
GetTypeCallback:
/* 8002B430 00027270 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8002B434 00027274 7C 08 02 A6 */ mflr r0
/* 8002B438 00027278 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002B43C 0002727C 39 61 00 20 */ addi r11, r1, 0x20
/* 8002B440 00027280 4B FD BE F9 */ bl lbl_80007338
/* 8002B444 00027284 3F E0 80 43 */ lis r31, Type_8042FBE8@ha
/* 8002B448 00027288 3F C0 80 4A */ lis r30, Packet@ha
/* 8002B44C 0002728C 54 7D 10 3A */ slwi r29, r3, 2
/* 8002B450 00027290 7C 7A 1B 78 */ mr r26, r3
/* 8002B454 00027294 3B FF FB E8 */ addi r31, r31, Type_8042FBE8@l
/* 8002B458 00027298 7C 9B 23 78 */ mr r27, r4
/* 8002B45C 0002729C 7C 1F E8 2E */ lwzx r0, r31, r29
/* 8002B460 000272A0 3B DE A3 50 */ addi r30, r30, Packet@l
/* 8002B464 000272A4 54 00 06 6E */ rlwinm r0, r0, 0, 25, 23
/* 8002B468 000272A8 7C 00 23 78 */ or r0, r0, r4
/* 8002B46C 000272AC 7C 1F E9 2E */ stwx r0, r31, r29
/* 8002B470 000272B0 4B FF A7 01 */ bl __OSGetSystemTime
/* 8002B474 000272B4 57 45 18 38 */ slwi r5, r26, 3
/* 8002B478 000272B8 38 1E 00 A0 */ addi r0, r30, 0xa0
/* 8002B47C 000272BC 7C A0 2A 14 */ add r5, r0, r5
/* 8002B480 000272C0 7F 9F E8 2E */ lwzx r28, r31, r29
/* 8002B484 000272C4 57 60 07 3F */ clrlwi. r0, r27, 28
/* 8002B488 000272C8 90 85 00 04 */ stw r4, 0x4(r5)
/* 8002B48C 000272CC 3C 00 80 00 */ lis r0, 0x8000
/* 8002B490 000272D0 80 8D E4 CC */ lwz r4, __PADFixBits@sda21(r13)
/* 8002B494 000272D4 90 65 00 00 */ stw r3, 0x0(r5)
/* 8002B498 000272D8 7C 06 D4 30 */ srw r6, r0, r26
/* 8002B49C 000272DC 7C 80 30 78 */ andc r0, r4, r6
/* 8002B4A0 000272E0 90 0D E4 CC */ stw r0, __PADFixBits@sda21(r13)
/* 8002B4A4 000272E4 7C 9B 30 38 */ and r27, r4, r6
/* 8002B4A8 000272E8 40 82 00 24 */ bne lbl_8002B4CC
/* 8002B4AC 000272EC 57 83 00 C8 */ rlwinm r3, r28, 0, 3, 4
/* 8002B4B0 000272F0 3C 03 F8 00 */ addis r0, r3, 0xf800
/* 8002B4B4 000272F4 28 00 00 00 */ cmplwi r0, 0x0
/* 8002B4B8 000272F8 40 82 00 14 */ bne lbl_8002B4CC
/* 8002B4BC 000272FC 57 80 00 01 */ clrrwi. r0, r28, 31
/* 8002B4C0 00027300 41 82 00 0C */ beq lbl_8002B4CC
/* 8002B4C4 00027304 57 80 01 4B */ rlwinm. r0, r28, 0, 5, 5
/* 8002B4C8 00027308 41 82 00 5C */ beq lbl_8002B524
.global lbl_8002B4CC
lbl_8002B4CC:
/* 8002B4CC 0002730C 7F 43 D3 78 */ mr r3, r26
/* 8002B4D0 00027310 38 80 00 00 */ li r4, 0x0
/* 8002B4D4 00027314 4B FF 8B 4D */ bl OSSetWirelessID
/* 8002B4D8 00027318 7F 9F E8 2E */ lwzx r28, r31, r29
/* 8002B4DC 0002731C 57 43 20 36 */ slwi r3, r26, 4
/* 8002B4E0 00027320 38 1E 01 E0 */ addi r0, r30, 0x1e0
/* 8002B4E4 00027324 3B A0 00 00 */ li r29, 0x0
/* 8002B4E8 00027328 7F C0 1A 14 */ add r30, r0, r3
/* 8002B4EC 0002732C 3B 60 00 00 */ li r27, 0x0
.global lbl_8002B4F0
lbl_8002B4F0:
/* 8002B4F0 00027330 81 9E 00 00 */ lwz r12, 0x0(r30)
/* 8002B4F4 00027334 2C 0C 00 00 */ cmpwi r12, 0x0
/* 8002B4F8 00027338 41 82 00 18 */ beq lbl_8002B510
/* 8002B4FC 0002733C 7F 43 D3 78 */ mr r3, r26
/* 8002B500 00027340 7F 84 E3 78 */ mr r4, r28
/* 8002B504 00027344 93 7E 00 00 */ stw r27, 0x0(r30)
/* 8002B508 00027348 7D 89 03 A6 */ mtctr r12
/* 8002B50C 0002734C 4E 80 04 21 */ bctrl
.global lbl_8002B510
lbl_8002B510:
/* 8002B510 00027350 3B BD 00 01 */ addi r29, r29, 0x1
/* 8002B514 00027354 3B DE 00 04 */ addi r30, r30, 0x4
/* 8002B518 00027358 2C 1D 00 04 */ cmpwi r29, 0x4
/* 8002B51C 0002735C 41 80 FF D4 */ blt lbl_8002B4F0
/* 8002B520 00027360 48 00 01 AC */ b lbl_8002B6CC
.global lbl_8002B524
lbl_8002B524:
/* 8002B524 00027364 7F 43 D3 78 */ mr r3, r26
/* 8002B528 00027368 4B FF 8A 79 */ bl OSGetWirelessID
/* 8002B52C 0002736C 2C 1B 00 00 */ cmpwi r27, 0x0
/* 8002B530 00027370 54 7B 42 2E */ rlwinm r27, r3, 8, 8, 23
/* 8002B534 00027374 41 82 00 58 */ beq lbl_8002B58C
/* 8002B538 00027378 57 60 02 D7 */ rlwinm. r0, r27, 0, 11, 11
/* 8002B53C 0002737C 41 82 00 50 */ beq lbl_8002B58C
/* 8002B540 00027380 3C 60 00 D0 */ lis r3, 0xd0
/* 8002B544 00027384 38 1E 01 D0 */ addi r0, r30, 0x1d0
/* 8002B548 00027388 38 63 FF 00 */ addi r3, r3, -0x100
/* 8002B54C 0002738C 3D 00 80 03 */ lis r8, GetTypeCallback@ha
/* 8002B550 00027390 7C 80 EA 14 */ add r4, r0, r29
/* 8002B554 00027394 38 00 00 80 */ li r0, 0x80
/* 8002B558 00027398 7F 63 18 38 */ and r3, r27, r3
/* 8002B55C 0002739C 7C 1F E9 2E */ stwx r0, r31, r29
/* 8002B560 000273A0 64 63 4E 10 */ oris r3, r3, 0x4e10
/* 8002B564 000273A4 7C DF EA 14 */ add r6, r31, r29
/* 8002B568 000273A8 90 64 00 00 */ stw r3, 0x0(r4)
/* 8002B56C 000273AC 7F 43 D3 78 */ mr r3, r26
/* 8002B570 000273B0 39 08 B4 30 */ addi r8, r8, GetTypeCallback@l
/* 8002B574 000273B4 38 A0 00 03 */ li r5, 0x3
/* 8002B578 000273B8 38 E0 00 03 */ li r7, 0x3
/* 8002B57C 000273BC 39 40 00 00 */ li r10, 0x0
/* 8002B580 000273C0 39 20 00 00 */ li r9, 0x0
/* 8002B584 000273C4 4B FF FD 3D */ bl SITransfer
/* 8002B588 000273C8 48 00 01 44 */ b lbl_8002B6CC
.global lbl_8002B58C
lbl_8002B58C:
/* 8002B58C 000273CC 57 80 02 D7 */ rlwinm. r0, r28, 0, 11, 11
/* 8002B590 000273D0 41 82 00 7C */ beq lbl_8002B60C
/* 8002B594 000273D4 3C 60 00 D0 */ lis r3, 0xd0
/* 8002B598 000273D8 38 03 FF 00 */ addi r0, r3, -0x100
/* 8002B59C 000273DC 7F 83 00 38 */ and r3, r28, r0
/* 8002B5A0 000273E0 7F 60 00 38 */ and r0, r27, r0
/* 8002B5A4 000273E4 7C 00 18 40 */ cmplw r0, r3
/* 8002B5A8 000273E8 41 82 00 DC */ beq lbl_8002B684
/* 8002B5AC 000273EC 57 60 02 D7 */ rlwinm. r0, r27, 0, 11, 11
/* 8002B5B0 000273F0 40 82 00 14 */ bne lbl_8002B5C4
/* 8002B5B4 000273F4 64 7B 00 10 */ oris r27, r3, 0x10
/* 8002B5B8 000273F8 7F 43 D3 78 */ mr r3, r26
/* 8002B5BC 000273FC 57 64 C4 3E */ extrwi r4, r27, 16, 8
/* 8002B5C0 00027400 4B FF 8A 61 */ bl OSSetWirelessID
.global lbl_8002B5C4
lbl_8002B5C4:
/* 8002B5C4 00027404 3C 60 80 43 */ lis r3, Type_8042FBE8@ha
/* 8002B5C8 00027408 38 1E 01 D0 */ addi r0, r30, 0x1d0
/* 8002B5CC 0002740C 38 63 FB E8 */ addi r3, r3, Type_8042FBE8@l
/* 8002B5D0 00027410 3D 00 80 03 */ lis r8, GetTypeCallback@ha
/* 8002B5D4 00027414 7C 80 EA 14 */ add r4, r0, r29
/* 8002B5D8 00027418 67 65 4E 00 */ oris r5, r27, 0x4e00
/* 8002B5DC 0002741C 7C C3 EA 14 */ add r6, r3, r29
/* 8002B5E0 00027420 38 00 00 80 */ li r0, 0x80
/* 8002B5E4 00027424 90 A4 00 00 */ stw r5, 0x0(r4)
/* 8002B5E8 00027428 7F 43 D3 78 */ mr r3, r26
/* 8002B5EC 0002742C 39 08 B4 30 */ addi r8, r8, GetTypeCallback@l
/* 8002B5F0 00027430 38 A0 00 03 */ li r5, 0x3
/* 8002B5F4 00027434 90 06 00 00 */ stw r0, 0x0(r6)
/* 8002B5F8 00027438 38 E0 00 03 */ li r7, 0x3
/* 8002B5FC 0002743C 39 40 00 00 */ li r10, 0x0
/* 8002B600 00027440 39 20 00 00 */ li r9, 0x0
/* 8002B604 00027444 4B FF FC BD */ bl SITransfer
/* 8002B608 00027448 48 00 00 C4 */ b lbl_8002B6CC
.global lbl_8002B60C
lbl_8002B60C:
/* 8002B60C 0002744C 57 80 00 43 */ rlwinm. r0, r28, 0, 1, 1
/* 8002B610 00027450 41 82 00 68 */ beq lbl_8002B678
/* 8002B614 00027454 3C 80 00 D0 */ lis r4, 0xd0
/* 8002B618 00027458 7F 43 D3 78 */ mr r3, r26
/* 8002B61C 0002745C 38 04 FF 00 */ addi r0, r4, -0x100
/* 8002B620 00027460 7F 9B 00 38 */ and r27, r28, r0
/* 8002B624 00027464 67 7B 00 10 */ oris r27, r27, 0x10
/* 8002B628 00027468 57 64 C4 3E */ extrwi r4, r27, 16, 8
/* 8002B62C 0002746C 4B FF 89 F5 */ bl OSSetWirelessID
/* 8002B630 00027470 3C 60 80 43 */ lis r3, Type_8042FBE8@ha
/* 8002B634 00027474 38 1E 01 D0 */ addi r0, r30, 0x1d0
/* 8002B638 00027478 38 63 FB E8 */ addi r3, r3, Type_8042FBE8@l
/* 8002B63C 0002747C 3D 00 80 03 */ lis r8, GetTypeCallback@ha
/* 8002B640 00027480 7C 80 EA 14 */ add r4, r0, r29
/* 8002B644 00027484 67 65 4E 00 */ oris r5, r27, 0x4e00
/* 8002B648 00027488 7C C3 EA 14 */ add r6, r3, r29
/* 8002B64C 0002748C 38 00 00 80 */ li r0, 0x80
/* 8002B650 00027490 90 A4 00 00 */ stw r5, 0x0(r4)
/* 8002B654 00027494 7F 43 D3 78 */ mr r3, r26
/* 8002B658 00027498 39 08 B4 30 */ addi r8, r8, GetTypeCallback@l
/* 8002B65C 0002749C 38 A0 00 03 */ li r5, 0x3
/* 8002B660 000274A0 90 06 00 00 */ stw r0, 0x0(r6)
/* 8002B664 000274A4 38 E0 00 03 */ li r7, 0x3
/* 8002B668 000274A8 39 40 00 00 */ li r10, 0x0
/* 8002B66C 000274AC 39 20 00 00 */ li r9, 0x0
/* 8002B670 000274B0 4B FF FC 51 */ bl SITransfer
/* 8002B674 000274B4 48 00 00 58 */ b lbl_8002B6CC
.global lbl_8002B678
lbl_8002B678:
/* 8002B678 000274B8 7F 43 D3 78 */ mr r3, r26
/* 8002B67C 000274BC 38 80 00 00 */ li r4, 0x0
/* 8002B680 000274C0 4B FF 89 A1 */ bl OSSetWirelessID
.global lbl_8002B684
lbl_8002B684:
/* 8002B684 000274C4 7F 9F E8 2E */ lwzx r28, r31, r29
/* 8002B688 000274C8 57 43 20 36 */ slwi r3, r26, 4
/* 8002B68C 000274CC 38 1E 01 E0 */ addi r0, r30, 0x1e0
/* 8002B690 000274D0 3B A0 00 00 */ li r29, 0x0
/* 8002B694 000274D4 7F C0 1A 14 */ add r30, r0, r3
/* 8002B698 000274D8 3B 60 00 00 */ li r27, 0x0
.global lbl_8002B69C
lbl_8002B69C:
/* 8002B69C 000274DC 81 9E 00 00 */ lwz r12, 0x0(r30)
/* 8002B6A0 000274E0 2C 0C 00 00 */ cmpwi r12, 0x0
/* 8002B6A4 000274E4 41 82 00 18 */ beq lbl_8002B6BC
/* 8002B6A8 000274E8 7F 43 D3 78 */ mr r3, r26
/* 8002B6AC 000274EC 7F 84 E3 78 */ mr r4, r28
/* 8002B6B0 000274F0 93 7E 00 00 */ stw r27, 0x0(r30)
/* 8002B6B4 000274F4 7D 89 03 A6 */ mtctr r12
/* 8002B6B8 000274F8 4E 80 04 21 */ bctrl
.global lbl_8002B6BC
lbl_8002B6BC:
/* 8002B6BC 000274FC 3B BD 00 01 */ addi r29, r29, 0x1
/* 8002B6C0 00027500 3B DE 00 04 */ addi r30, r30, 0x4
/* 8002B6C4 00027504 2C 1D 00 04 */ cmpwi r29, 0x4
/* 8002B6C8 00027508 41 80 FF D4 */ blt lbl_8002B69C
.global lbl_8002B6CC
lbl_8002B6CC:
/* 8002B6CC 0002750C 39 61 00 20 */ addi r11, r1, 0x20
/* 8002B6D0 00027510 4B FD BC B5 */ bl lbl_80007384
/* 8002B6D4 00027514 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002B6D8 00027518 7C 08 03 A6 */ mtlr r0
/* 8002B6DC 0002751C 38 21 00 20 */ addi r1, r1, 0x20
/* 8002B6E0 00027520 4E 80 00 20 */ blr
/* 8002B6E4 00027524 00 00 00 00 */ .4byte 0x00000000
/* 8002B6E8 00027528 00 00 00 00 */ .4byte 0x00000000
/* 8002B6EC 0002752C 00 00 00 00 */ .4byte 0x00000000
.global SIGetType
SIGetType:
/* 8002B6F0 00027530 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8002B6F4 00027534 7C 08 02 A6 */ mflr r0
/* 8002B6F8 00027538 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002B6FC 0002753C 39 61 00 20 */ addi r11, r1, 0x20
/* 8002B700 00027540 4B FD BC 3D */ bl lbl_8000733C
/* 8002B704 00027544 7C 7B 1B 78 */ mr r27, r3
/* 8002B708 00027548 4B FF 61 19 */ bl OSDisableInterrupts
/* 8002B70C 0002754C 3C A0 80 43 */ lis r5, Type_8042FBE8@ha
/* 8002B710 00027550 3C 80 80 4A */ lis r4, TypeTime@ha
/* 8002B714 00027554 57 66 10 3A */ slwi r6, r27, 2
/* 8002B718 00027558 57 60 18 38 */ slwi r0, r27, 3
/* 8002B71C 0002755C 38 A5 FB E8 */ addi r5, r5, Type_8042FBE8@l
/* 8002B720 00027560 38 84 A3 F0 */ addi r4, r4, TypeTime@l
/* 8002B724 00027564 7F 85 30 2E */ lwzx r28, r5, r6
/* 8002B728 00027568 7F C5 32 14 */ add r30, r5, r6
/* 8002B72C 0002756C 7C 7D 1B 78 */ mr r29, r3
/* 8002B730 00027570 7F E4 02 14 */ add r31, r4, r0
/* 8002B734 00027574 4B FF A4 3D */ bl __OSGetSystemTime
/* 8002B738 00027578 80 DF 00 04 */ lwz r6, 0x4(r31)
/* 8002B73C 0002757C 3C A0 80 43 */ lis r5, Si@ha
/* 8002B740 00027580 80 1F 00 00 */ lwz r0, 0x0(r31)
/* 8002B744 00027584 38 A5 FB D0 */ addi r5, r5, Si@l
/* 8002B748 00027588 7D 06 20 10 */ subfc r8, r6, r4
/* 8002B74C 0002758C 80 85 00 04 */ lwz r4, 0x4(r5)
/* 8002B750 00027590 7C E0 19 10 */ subfe r7, r0, r3
/* 8002B754 00027594 38 60 00 80 */ li r3, 0x80
/* 8002B758 00027598 7C 60 DE 30 */ sraw r0, r3, r27
/* 8002B75C 0002759C 7C 80 00 39 */ and. r0, r4, r0
/* 8002B760 000275A0 41 82 00 34 */ beq lbl_8002B794
/* 8002B764 000275A4 28 1C 00 08 */ cmplwi r28, 0x8
/* 8002B768 000275A8 41 82 00 20 */ beq lbl_8002B788
/* 8002B76C 000275AC 4B FF A4 05 */ bl __OSGetSystemTime
/* 8002B770 000275B0 90 9F 00 04 */ stw r4, 0x4(r31)
/* 8002B774 000275B4 90 7F 00 00 */ stw r3, 0x0(r31)
/* 8002B778 000275B8 7F A3 EB 78 */ mr r3, r29
/* 8002B77C 000275BC 4B FF 60 E5 */ bl OSRestoreInterrupts
/* 8002B780 000275C0 7F 83 E3 78 */ mr r3, r28
/* 8002B784 000275C4 48 00 01 08 */ b lbl_8002B88C
.global lbl_8002B788
lbl_8002B788:
/* 8002B788 000275C8 90 7E 00 00 */ stw r3, 0x0(r30)
/* 8002B78C 000275CC 3B 80 00 80 */ li r28, 0x80
/* 8002B790 000275D0 48 00 00 98 */ b lbl_8002B828
.global lbl_8002B794
lbl_8002B794:
/* 8002B794 000275D4 3C 80 80 00 */ lis r4, 0x800000F8@ha
/* 8002B798 000275D8 3C 60 10 62 */ lis r3, 0x1062
/* 8002B79C 000275DC 80 A4 00 F8 */ lwz r5, 0x800000F8@l(r4)
/* 8002B7A0 000275E0 38 C3 4D D3 */ addi r6, r3, 0x4dd3
/* 8002B7A4 000275E4 38 00 00 00 */ li r0, 0x0
/* 8002B7A8 000275E8 6C E4 80 00 */ xoris r4, r7, 0x8000
/* 8002B7AC 000275EC 54 A3 F0 BE */ srwi r3, r5, 2
/* 8002B7B0 000275F0 7C 66 18 16 */ mulhwu r3, r6, r3
/* 8002B7B4 000275F4 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8002B7B8 000275F8 54 65 D1 BE */ srwi r5, r3, 6
/* 8002B7BC 000275FC 1C 65 00 32 */ mulli r3, r5, 0x32
/* 8002B7C0 00027600 7C 68 18 10 */ subfc r3, r8, r3
/* 8002B7C4 00027604 7C 84 01 10 */ subfe r4, r4, r0
/* 8002B7C8 00027608 7C 80 01 10 */ subfe r4, r0, r0
/* 8002B7CC 0002760C 7C 84 00 D1 */ neg. r4, r4
/* 8002B7D0 00027610 40 82 00 1C */ bne lbl_8002B7EC
/* 8002B7D4 00027614 28 1C 00 08 */ cmplwi r28, 0x8
/* 8002B7D8 00027618 41 82 00 14 */ beq lbl_8002B7EC
/* 8002B7DC 0002761C 7F A3 EB 78 */ mr r3, r29
/* 8002B7E0 00027620 4B FF 60 81 */ bl OSRestoreInterrupts
/* 8002B7E4 00027624 7F 83 E3 78 */ mr r3, r28
/* 8002B7E8 00027628 48 00 00 A4 */ b lbl_8002B88C
.global lbl_8002B7EC
lbl_8002B7EC:
/* 8002B7EC 0002762C 1C 65 00 4B */ mulli r3, r5, 0x4b
/* 8002B7F0 00027630 38 00 00 00 */ li r0, 0x0
/* 8002B7F4 00027634 6C E4 80 00 */ xoris r4, r7, 0x8000
/* 8002B7F8 00027638 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8002B7FC 0002763C 7C 68 18 10 */ subfc r3, r8, r3
/* 8002B800 00027640 7C 84 01 10 */ subfe r4, r4, r0
/* 8002B804 00027644 7C 80 01 10 */ subfe r4, r0, r0
/* 8002B808 00027648 7C 84 00 D1 */ neg. r4, r4
/* 8002B80C 0002764C 40 82 00 10 */ bne lbl_8002B81C
/* 8002B810 00027650 38 00 00 80 */ li r0, 0x80
/* 8002B814 00027654 90 1E 00 00 */ stw r0, 0x0(r30)
/* 8002B818 00027658 48 00 00 10 */ b lbl_8002B828
.global lbl_8002B81C
lbl_8002B81C:
/* 8002B81C 0002765C 38 00 00 80 */ li r0, 0x80
/* 8002B820 00027660 90 1E 00 00 */ stw r0, 0x0(r30)
/* 8002B824 00027664 3B 80 00 80 */ li r28, 0x80
.global lbl_8002B828
lbl_8002B828:
/* 8002B828 00027668 4B FF A3 49 */ bl __OSGetSystemTime
/* 8002B82C 0002766C 90 9F 00 04 */ stw r4, 0x4(r31)
/* 8002B830 00027670 3C 80 43 1C */ lis r4, 0x431c
/* 8002B834 00027674 39 24 DE 83 */ addi r9, r4, -0x217d
/* 8002B838 00027678 3D 00 80 03 */ lis r8, GetTypeCallback@ha
/* 8002B83C 0002767C 90 7F 00 00 */ stw r3, 0x0(r31)
/* 8002B840 00027680 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 8002B844 00027684 7F 63 DB 78 */ mr r3, r27
/* 8002B848 00027688 7F C6 F3 78 */ mr r6, r30
/* 8002B84C 0002768C 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
/* 8002B850 00027690 39 08 B4 30 */ addi r8, r8, GetTypeCallback@l
/* 8002B854 00027694 38 8D E4 C8 */ addi r4, r13, "@LOCAL@SIGetType__Fl@cmdTypeAndStatus"@sda21
/* 8002B858 00027698 38 A0 00 01 */ li r5, 0x1
/* 8002B85C 0002769C 54 00 F0 BE */ srwi r0, r0, 2
/* 8002B860 000276A0 38 E0 00 03 */ li r7, 0x3
/* 8002B864 000276A4 7C 09 00 16 */ mulhwu r0, r9, r0
/* 8002B868 000276A8 39 20 00 00 */ li r9, 0x0
/* 8002B86C 000276AC 54 0A 8B FE */ srwi r10, r0, 15
/* 8002B870 000276B0 54 00 BA 72 */ rlwinm r0, r0, 23, 9, 25
/* 8002B874 000276B4 7C 00 52 14 */ add r0, r0, r10
/* 8002B878 000276B8 54 0A E8 FE */ srwi r10, r0, 3
/* 8002B87C 000276BC 4B FF FA 45 */ bl SITransfer
/* 8002B880 000276C0 7F A3 EB 78 */ mr r3, r29
/* 8002B884 000276C4 4B FF 5F DD */ bl OSRestoreInterrupts
/* 8002B888 000276C8 7F 83 E3 78 */ mr r3, r28
.global lbl_8002B88C
lbl_8002B88C:
/* 8002B88C 000276CC 39 61 00 20 */ addi r11, r1, 0x20
/* 8002B890 000276D0 4B FD BA F9 */ bl lbl_80007388
/* 8002B894 000276D4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002B898 000276D8 7C 08 03 A6 */ mtlr r0
/* 8002B89C 000276DC 38 21 00 20 */ addi r1, r1, 0x20
/* 8002B8A0 000276E0 4E 80 00 20 */ blr
/* 8002B8A4 000276E4 00 00 00 00 */ .4byte 0x00000000
/* 8002B8A8 000276E8 00 00 00 00 */ .4byte 0x00000000
/* 8002B8AC 000276EC 00 00 00 00 */ .4byte 0x00000000
.global SIGetTypeAsync
SIGetTypeAsync:
/* 8002B8B0 000276F0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8002B8B4 000276F4 7C 08 02 A6 */ mflr r0
/* 8002B8B8 000276F8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002B8BC 000276FC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8002B8C0 00027700 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8002B8C4 00027704 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8002B8C8 00027708 7C 9D 23 78 */ mr r29, r4
/* 8002B8CC 0002770C 93 81 00 10 */ stw r28, 0x10(r1)
/* 8002B8D0 00027710 7C 7C 1B 78 */ mr r28, r3
/* 8002B8D4 00027714 4B FF 5F 4D */ bl OSDisableInterrupts
/* 8002B8D8 00027718 7C 7F 1B 78 */ mr r31, r3
/* 8002B8DC 0002771C 7F 83 E3 78 */ mr r3, r28
/* 8002B8E0 00027720 4B FF FE 11 */ bl SIGetType
/* 8002B8E4 00027724 3C 80 80 43 */ lis r4, Type_8042FBE8@ha
/* 8002B8E8 00027728 57 80 10 3A */ slwi r0, r28, 2
/* 8002B8EC 0002772C 38 84 FB E8 */ addi r4, r4, Type_8042FBE8@l
/* 8002B8F0 00027730 7C 7E 1B 78 */ mr r30, r3
/* 8002B8F4 00027734 7C 04 00 2E */ lwzx r0, r4, r0
/* 8002B8F8 00027738 54 00 06 31 */ rlwinm. r0, r0, 0, 24, 24
/* 8002B8FC 0002773C 41 82 00 84 */ beq lbl_8002B980
/* 8002B900 00027740 3C 60 80 4A */ lis r3, TypeCallback@ha
/* 8002B904 00027744 57 80 20 36 */ slwi r0, r28, 4
/* 8002B908 00027748 38 63 A5 30 */ addi r3, r3, TypeCallback@l
/* 8002B90C 0002774C 7C 03 00 6E */ lwzux r0, r3, r0
/* 8002B910 00027750 7C 00 E8 40 */ cmplw r0, r29
/* 8002B914 00027754 41 82 00 80 */ beq lbl_8002B994
/* 8002B918 00027758 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002B91C 0002775C 40 82 00 0C */ bne lbl_8002B928
/* 8002B920 00027760 93 A3 00 00 */ stw r29, 0x0(r3)
/* 8002B924 00027764 48 00 00 70 */ b lbl_8002B994
.global lbl_8002B928
lbl_8002B928:
/* 8002B928 00027768 80 03 00 04 */ lwz r0, 0x4(r3)
/* 8002B92C 0002776C 7C 00 E8 40 */ cmplw r0, r29
/* 8002B930 00027770 41 82 00 64 */ beq lbl_8002B994
/* 8002B934 00027774 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002B938 00027778 40 82 00 0C */ bne lbl_8002B944
/* 8002B93C 0002777C 93 A3 00 04 */ stw r29, 0x4(r3)
/* 8002B940 00027780 48 00 00 54 */ b lbl_8002B994
.global lbl_8002B944
lbl_8002B944:
/* 8002B944 00027784 80 03 00 08 */ lwz r0, 0x8(r3)
/* 8002B948 00027788 7C 00 E8 40 */ cmplw r0, r29
/* 8002B94C 0002778C 41 82 00 48 */ beq lbl_8002B994
/* 8002B950 00027790 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002B954 00027794 40 82 00 0C */ bne lbl_8002B960
/* 8002B958 00027798 93 A3 00 08 */ stw r29, 0x8(r3)
/* 8002B95C 0002779C 48 00 00 38 */ b lbl_8002B994
.global lbl_8002B960
lbl_8002B960:
/* 8002B960 000277A0 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8002B964 000277A4 7C 00 E8 40 */ cmplw r0, r29
/* 8002B968 000277A8 41 82 00 2C */ beq lbl_8002B994
/* 8002B96C 000277AC 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002B970 000277B0 40 82 00 24 */ bne lbl_8002B994
/* 8002B974 000277B4 93 A3 00 0C */ stw r29, 0xc(r3)
/* 8002B978 000277B8 48 00 00 1C */ b lbl_8002B994
/* 8002B97C 000277BC 48 00 00 18 */ b lbl_8002B994
.global lbl_8002B980
lbl_8002B980:
/* 8002B980 000277C0 7F AC EB 78 */ mr r12, r29
/* 8002B984 000277C4 7F 83 E3 78 */ mr r3, r28
/* 8002B988 000277C8 7F C4 F3 78 */ mr r4, r30
/* 8002B98C 000277CC 7D 89 03 A6 */ mtctr r12
/* 8002B990 000277D0 4E 80 04 21 */ bctrl
.global lbl_8002B994
lbl_8002B994:
/* 8002B994 000277D4 7F E3 FB 78 */ mr r3, r31
/* 8002B998 000277D8 4B FF 5E C9 */ bl OSRestoreInterrupts
/* 8002B99C 000277DC 7F C3 F3 78 */ mr r3, r30
/* 8002B9A0 000277E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8002B9A4 000277E4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8002B9A8 000277E8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8002B9AC 000277EC 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8002B9B0 000277F0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002B9B4 000277F4 7C 08 03 A6 */ mtlr r0
/* 8002B9B8 000277F8 38 21 00 20 */ addi r1, r1, 0x20
/* 8002B9BC 000277FC 4E 80 00 20 */ blr
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global "@1_8042FB88"
"@1_8042FB88":
.4byte 0x3C3C2052
.4byte 0x564C5F53
.4byte 0x444B202D
.4byte 0x20534920
.4byte 0x0972656C
.4byte 0x65617365
.4byte 0x20627569
.4byte 0x6C643A20
.4byte 0x41756720
.4byte 0x32332032
.4byte 0x30313020
.4byte 0x31373A33
.4byte 0x333A3138
.4byte 0x20283078
.4byte 0x34333032
.4byte 0x5F313435
.4byte 0x29203E3E
.4byte 0
.global Si
Si:
.4byte 0xFFFFFFFF
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.global Type_8042FBE8
Type_8042FBE8:
.4byte 0x00000008
.4byte 0x00000008
.4byte 0x00000008
.4byte 0x00000008
.include "macros.inc"
.section .bss, "", @nobits # 0x80496700 - 0x80556420 ; 0x000BFD20
.global Packet
Packet:
.skip 0x80
.global XferTime
XferTime:
.skip 0x20
.global TypeTime
TypeTime:
.skip 0x20
.global Alarm
Alarm:
.skip 0xC0
.global InputBuffer
InputBuffer:
.skip 0x20
.global InputBufferValid
InputBufferValid:
.skip 0x10
.global InputBufferVcount
InputBufferVcount:
.skip 0x10
.global RDSTHandler
RDSTHandler:
.skip 0x20
.global TypeCallback
TypeCallback:
.skip 0x40
.include "macros.inc"
.section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0
.global __SIVersion
__SIVersion:
.4byte "@1_8042FB88"
.4byte 0
.include "macros.inc"
.section .sbss, "", @nobits # 0x8055C6E0 - 0x8055DF80 ; 0x000018A0
.global "@LOCAL@SIInterruptHandler__FsP9OSContext@cmdTypeAndStatus"
"@LOCAL@SIInterruptHandler__FsP9OSContext@cmdTypeAndStatus":
.skip 0x4
.global "@LOCAL@SIInit__Fv@Initialized"
"@LOCAL@SIInit__Fv@Initialized":
.skip 0x4
.global "@LOCAL@SIGetType__Fl@cmdTypeAndStatus"
"@LOCAL@SIGetType__Fl@cmdTypeAndStatus":
.skip 0x4
.global __PADFixBits
__PADFixBits:
.skip 0x4