prime/asm/Dolphin/si/SIBios.s

1823 lines
85 KiB
ArmAsm

.include "macros.inc"
.section .bss
.global Packet
Packet:
.skip 0x80
.global lbl_80569D18
lbl_80569D18:
.skip 0xA0
.global lbl_80569DB8
lbl_80569DB8:
.skip 0x20
.global lbl_80569DD8
lbl_80569DD8:
.skip 0x20
.global lbl_80569DF8
lbl_80569DF8:
.skip 0x40
.global lbl_80569E38
lbl_80569E38:
.skip 0x60
.section .data, "wa"
.global lbl_803F6EA0
lbl_803F6EA0:
.asciz "<< Dolphin SDK - SI\trelease build: Sep 5 2002 05:33:08 (0x2301) >>"
.balign 4
.global Si
Si:
.incbin "baserom.dol", 0x3F3EE4, 0x14
.global Type
Type:
.incbin "baserom.dol", 0x3F3EF8, 0xC0
.section .sdata, "wa"
.global __SIVersion
__SIVersion:
.4byte lbl_803F6EA0
.skip 4
.section .sbss, "wa"
.balign 4
.global lbl_805A9BD0
lbl_805A9BD0:
.skip 0x4
.global lbl_805A9BD4
lbl_805A9BD4:
.skip 0x4
.global lbl_805A9BD8
lbl_805A9BD8:
.skip 0x8
.global lbl_805A9BE0
lbl_805A9BE0:
.skip 0x8
.global lbl_805A9BE8
lbl_805A9BE8:
.skip 0x4
.global lbl_805A9BEC
lbl_805A9BEC:
.skip 0x4
.global lbl_805A9BF0
lbl_805A9BF0:
.skip 0x4
.global lbl_805A9BF4
lbl_805A9BF4:
.skip 0xC
.section .text, "ax"
.global SIBusy
SIBusy:
/* 803BE6AC 003BB60C 3C 60 80 3F */ lis r3, Si@ha
/* 803BE6B0 003BB610 80 03 6E E4 */ lwz r0, Si@l(r3)
/* 803BE6B4 003BB614 2C 00 FF FF */ cmpwi r0, -1
/* 803BE6B8 003BB618 41 82 00 0C */ beq lbl_803BE6C4
/* 803BE6BC 003BB61C 38 60 00 01 */ li r3, 1
/* 803BE6C0 003BB620 4E 80 00 20 */ blr
lbl_803BE6C4:
/* 803BE6C4 003BB624 38 60 00 00 */ li r3, 0
/* 803BE6C8 003BB628 4E 80 00 20 */ blr
.global SIIsChanBusy
SIIsChanBusy:
/* 803BE6CC 003BB62C 3C 80 80 57 */ lis r4, Packet@ha
/* 803BE6D0 003BB630 54 65 28 34 */ slwi r5, r3, 5
/* 803BE6D4 003BB634 38 04 9C 98 */ addi r0, r4, Packet@l
/* 803BE6D8 003BB638 7C 80 2A 14 */ add r4, r0, r5
/* 803BE6DC 003BB63C 80 04 00 00 */ lwz r0, 0(r4)
/* 803BE6E0 003BB640 38 A0 00 01 */ li r5, 1
/* 803BE6E4 003BB644 2C 00 FF FF */ cmpwi r0, -1
/* 803BE6E8 003BB648 40 82 00 18 */ bne lbl_803BE700
/* 803BE6EC 003BB64C 3C 80 80 3F */ lis r4, Si@ha
/* 803BE6F0 003BB650 80 04 6E E4 */ lwz r0, Si@l(r4)
/* 803BE6F4 003BB654 7C 00 18 00 */ cmpw r0, r3
/* 803BE6F8 003BB658 41 82 00 08 */ beq lbl_803BE700
/* 803BE6FC 003BB65C 38 A0 00 00 */ li r5, 0
lbl_803BE700:
/* 803BE700 003BB660 7C A3 2B 78 */ mr r3, r5
/* 803BE704 003BB664 4E 80 00 20 */ blr
.global CompleteTransfer
CompleteTransfer:
/* 803BE708 003BB668 7C 08 02 A6 */ mflr r0
/* 803BE70C 003BB66C 3C 60 CC 00 */ lis r3, 0xCC006400@ha
/* 803BE710 003BB670 90 01 00 04 */ stw r0, 4(r1)
/* 803BE714 003BB674 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803BE718 003BB678 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803BE71C 003BB67C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803BE720 003BB680 3B C3 64 00 */ addi r30, r3, 0xCC006400@l
/* 803BE724 003BB684 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803BE728 003BB688 3B BE 00 34 */ addi r29, r30, 0x34
/* 803BE72C 003BB68C 93 81 00 10 */ stw r28, 0x10(r1)
/* 803BE730 003BB690 80 03 64 34 */ lwz r0, 0x6434(r3)
/* 803BE734 003BB694 83 83 64 38 */ lwz r28, 0x6438(r3)
/* 803BE738 003BB698 3C 60 80 3F */ lis r3, lbl_803F6EA0@ha
/* 803BE73C 003BB69C 64 00 80 00 */ oris r0, r0, 0x8000
/* 803BE740 003BB6A0 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 803BE744 003BB6A4 90 1E 00 34 */ stw r0, 0x34(r30)
/* 803BE748 003BB6A8 3B E3 6E A0 */ addi r31, r3, lbl_803F6EA0@l
/* 803BE74C 003BB6AC 80 1F 00 44 */ lwz r0, 0x44(r31)
/* 803BE750 003BB6B0 2C 00 FF FF */ cmpwi r0, -1
/* 803BE754 003BB6B4 41 82 02 74 */ beq lbl_803BE9C8
/* 803BE758 003BB6B8 4B FC 6C 71 */ bl __OSGetSystemTime
/* 803BE75C 003BB6BC 80 DF 00 44 */ lwz r6, 0x44(r31)
/* 803BE760 003BB6C0 3C A0 80 57 */ lis r5, lbl_80569DD8@ha
/* 803BE764 003BB6C4 38 05 9D D8 */ addi r0, r5, lbl_80569DD8@l
/* 803BE768 003BB6C8 54 C5 18 38 */ slwi r5, r6, 3
/* 803BE76C 003BB6CC 7C A0 2A 14 */ add r5, r0, r5
/* 803BE770 003BB6D0 90 85 00 04 */ stw r4, 4(r5)
/* 803BE774 003BB6D4 38 DF 00 4C */ addi r6, r31, 0x4c
/* 803BE778 003BB6D8 38 80 00 00 */ li r4, 0
/* 803BE77C 003BB6DC 90 65 00 00 */ stw r3, 0(r5)
/* 803BE780 003BB6E0 80 1F 00 4C */ lwz r0, 0x4c(r31)
/* 803BE784 003BB6E4 80 BF 00 50 */ lwz r5, 0x50(r31)
/* 803BE788 003BB6E8 54 07 F0 BE */ srwi r7, r0, 2
/* 803BE78C 003BB6EC 28 07 00 00 */ cmplwi r7, 0
/* 803BE790 003BB6F0 40 81 00 A0 */ ble lbl_803BE830
/* 803BE794 003BB6F4 28 07 00 08 */ cmplwi r7, 8
/* 803BE798 003BB6F8 38 67 FF F8 */ addi r3, r7, -8
/* 803BE79C 003BB6FC 40 81 02 34 */ ble lbl_803BE9D0
/* 803BE7A0 003BB700 38 03 00 07 */ addi r0, r3, 7
/* 803BE7A4 003BB704 54 00 E8 FE */ srwi r0, r0, 3
/* 803BE7A8 003BB708 28 03 00 00 */ cmplwi r3, 0
/* 803BE7AC 003BB70C 7C 09 03 A6 */ mtctr r0
/* 803BE7B0 003BB710 40 81 02 20 */ ble lbl_803BE9D0
lbl_803BE7B4:
/* 803BE7B4 003BB714 80 1E 00 80 */ lwz r0, 0x80(r30)
/* 803BE7B8 003BB718 38 84 00 08 */ addi r4, r4, 8
/* 803BE7BC 003BB71C 90 05 00 00 */ stw r0, 0(r5)
/* 803BE7C0 003BB720 80 1E 00 84 */ lwz r0, 0x84(r30)
/* 803BE7C4 003BB724 90 05 00 04 */ stw r0, 4(r5)
/* 803BE7C8 003BB728 80 1E 00 88 */ lwz r0, 0x88(r30)
/* 803BE7CC 003BB72C 90 05 00 08 */ stw r0, 8(r5)
/* 803BE7D0 003BB730 80 1E 00 8C */ lwz r0, 0x8c(r30)
/* 803BE7D4 003BB734 90 05 00 0C */ stw r0, 0xc(r5)
/* 803BE7D8 003BB738 80 1E 00 90 */ lwz r0, 0x90(r30)
/* 803BE7DC 003BB73C 90 05 00 10 */ stw r0, 0x10(r5)
/* 803BE7E0 003BB740 80 1E 00 94 */ lwz r0, 0x94(r30)
/* 803BE7E4 003BB744 90 05 00 14 */ stw r0, 0x14(r5)
/* 803BE7E8 003BB748 80 1E 00 98 */ lwz r0, 0x98(r30)
/* 803BE7EC 003BB74C 90 05 00 18 */ stw r0, 0x18(r5)
/* 803BE7F0 003BB750 80 1E 00 9C */ lwz r0, 0x9c(r30)
/* 803BE7F4 003BB754 3B DE 00 20 */ addi r30, r30, 0x20
/* 803BE7F8 003BB758 90 05 00 1C */ stw r0, 0x1c(r5)
/* 803BE7FC 003BB75C 38 A5 00 20 */ addi r5, r5, 0x20
/* 803BE800 003BB760 42 00 FF B4 */ bdnz lbl_803BE7B4
/* 803BE804 003BB764 48 00 01 CC */ b lbl_803BE9D0
lbl_803BE808:
/* 803BE808 003BB768 7C 04 38 50 */ subf r0, r4, r7
/* 803BE80C 003BB76C 7C 04 38 40 */ cmplw r4, r7
/* 803BE810 003BB770 7C 09 03 A6 */ mtctr r0
/* 803BE814 003BB774 40 80 00 1C */ bge lbl_803BE830
lbl_803BE818:
/* 803BE818 003BB778 80 03 00 80 */ lwz r0, 0x80(r3)
/* 803BE81C 003BB77C 38 63 00 04 */ addi r3, r3, 4
/* 803BE820 003BB780 38 84 00 01 */ addi r4, r4, 1
/* 803BE824 003BB784 90 05 00 00 */ stw r0, 0(r5)
/* 803BE828 003BB788 38 A5 00 04 */ addi r5, r5, 4
/* 803BE82C 003BB78C 42 00 FF EC */ bdnz lbl_803BE818
lbl_803BE830:
/* 803BE830 003BB790 80 06 00 00 */ lwz r0, 0(r6)
/* 803BE834 003BB794 54 03 07 BF */ clrlwi. r3, r0, 0x1e
/* 803BE838 003BB798 41 82 01 10 */ beq lbl_803BE948
/* 803BE83C 003BB79C 3C C0 CC 00 */ lis r6, 0xCC006400@ha
/* 803BE840 003BB7A0 38 C6 64 00 */ addi r6, r6, 0xCC006400@l
/* 803BE844 003BB7A4 54 80 10 3A */ slwi r0, r4, 2
/* 803BE848 003BB7A8 7C 86 02 14 */ add r4, r6, r0
/* 803BE84C 003BB7AC 80 C4 00 80 */ lwz r6, 0x80(r4)
/* 803BE850 003BB7B0 38 80 00 00 */ li r4, 0
/* 803BE854 003BB7B4 40 81 00 F4 */ ble lbl_803BE948
/* 803BE858 003BB7B8 28 03 00 08 */ cmplwi r3, 8
/* 803BE85C 003BB7BC 38 E3 FF F8 */ addi r7, r3, -8
/* 803BE860 003BB7C0 40 81 00 BC */ ble lbl_803BE91C
/* 803BE864 003BB7C4 38 07 00 07 */ addi r0, r7, 7
/* 803BE868 003BB7C8 54 00 E8 FE */ srwi r0, r0, 3
/* 803BE86C 003BB7CC 28 07 00 00 */ cmplwi r7, 0
/* 803BE870 003BB7D0 7C 09 03 A6 */ mtctr r0
/* 803BE874 003BB7D4 40 81 00 A8 */ ble lbl_803BE91C
lbl_803BE878:
/* 803BE878 003BB7D8 20 04 00 03 */ subfic r0, r4, 3
/* 803BE87C 003BB7DC 54 07 18 38 */ slwi r7, r0, 3
/* 803BE880 003BB7E0 38 04 00 01 */ addi r0, r4, 1
/* 803BE884 003BB7E4 7C C7 3C 30 */ srw r7, r6, r7
/* 803BE888 003BB7E8 20 00 00 03 */ subfic r0, r0, 3
/* 803BE88C 003BB7EC 98 E5 00 00 */ stb r7, 0(r5)
/* 803BE890 003BB7F0 54 00 18 38 */ slwi r0, r0, 3
/* 803BE894 003BB7F4 38 E4 00 02 */ addi r7, r4, 2
/* 803BE898 003BB7F8 7C C0 04 30 */ srw r0, r6, r0
/* 803BE89C 003BB7FC 20 E7 00 03 */ subfic r7, r7, 3
/* 803BE8A0 003BB800 98 05 00 01 */ stb r0, 1(r5)
/* 803BE8A4 003BB804 54 E7 18 38 */ slwi r7, r7, 3
/* 803BE8A8 003BB808 7C CC 3C 30 */ srw r12, r6, r7
/* 803BE8AC 003BB80C 7C E4 00 D0 */ neg r7, r4
/* 803BE8B0 003BB810 99 85 00 02 */ stb r12, 2(r5)
/* 803BE8B4 003BB814 54 E8 18 38 */ slwi r8, r7, 3
/* 803BE8B8 003BB818 38 E4 00 04 */ addi r7, r4, 4
/* 803BE8BC 003BB81C 7C CB 44 30 */ srw r11, r6, r8
/* 803BE8C0 003BB820 20 E7 00 03 */ subfic r7, r7, 3
/* 803BE8C4 003BB824 99 65 00 03 */ stb r11, 3(r5)
/* 803BE8C8 003BB828 54 E8 18 38 */ slwi r8, r7, 3
/* 803BE8CC 003BB82C 38 E4 00 05 */ addi r7, r4, 5
/* 803BE8D0 003BB830 7C CA 44 30 */ srw r10, r6, r8
/* 803BE8D4 003BB834 20 E7 00 03 */ subfic r7, r7, 3
/* 803BE8D8 003BB838 99 45 00 04 */ stb r10, 4(r5)
/* 803BE8DC 003BB83C 54 E8 18 38 */ slwi r8, r7, 3
/* 803BE8E0 003BB840 7C C9 44 30 */ srw r9, r6, r8
/* 803BE8E4 003BB844 38 E4 00 06 */ addi r7, r4, 6
/* 803BE8E8 003BB848 99 25 00 05 */ stb r9, 5(r5)
/* 803BE8EC 003BB84C 21 07 00 03 */ subfic r8, r7, 3
/* 803BE8F0 003BB850 38 E4 00 07 */ addi r7, r4, 7
/* 803BE8F4 003BB854 55 08 18 38 */ slwi r8, r8, 3
/* 803BE8F8 003BB858 7C C8 44 30 */ srw r8, r6, r8
/* 803BE8FC 003BB85C 20 E7 00 03 */ subfic r7, r7, 3
/* 803BE900 003BB860 99 05 00 06 */ stb r8, 6(r5)
/* 803BE904 003BB864 54 E7 18 38 */ slwi r7, r7, 3
/* 803BE908 003BB868 7C C7 3C 30 */ srw r7, r6, r7
/* 803BE90C 003BB86C 98 E5 00 07 */ stb r7, 7(r5)
/* 803BE910 003BB870 38 A5 00 08 */ addi r5, r5, 8
/* 803BE914 003BB874 38 84 00 08 */ addi r4, r4, 8
/* 803BE918 003BB878 42 00 FF 60 */ bdnz lbl_803BE878
lbl_803BE91C:
/* 803BE91C 003BB87C 7C 04 18 50 */ subf r0, r4, r3
/* 803BE920 003BB880 7C 04 18 40 */ cmplw r4, r3
/* 803BE924 003BB884 7C 09 03 A6 */ mtctr r0
/* 803BE928 003BB888 40 80 00 20 */ bge lbl_803BE948
lbl_803BE92C:
/* 803BE92C 003BB88C 20 04 00 03 */ subfic r0, r4, 3
/* 803BE930 003BB890 54 00 18 38 */ slwi r0, r0, 3
/* 803BE934 003BB894 7C C0 04 30 */ srw r0, r6, r0
/* 803BE938 003BB898 98 05 00 00 */ stb r0, 0(r5)
/* 803BE93C 003BB89C 38 A5 00 01 */ addi r5, r5, 1
/* 803BE940 003BB8A0 38 84 00 01 */ addi r4, r4, 1
/* 803BE944 003BB8A4 42 00 FF E8 */ bdnz lbl_803BE92C
lbl_803BE948:
/* 803BE948 003BB8A8 80 1D 00 00 */ lwz r0, 0(r29)
/* 803BE94C 003BB8AC 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
/* 803BE950 003BB8B0 41 82 00 4C */ beq lbl_803BE99C
/* 803BE954 003BB8B4 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 803BE958 003BB8B8 20 03 00 03 */ subfic r0, r3, 3
/* 803BE95C 003BB8BC 54 00 18 38 */ slwi r0, r0, 3
/* 803BE960 003BB8C0 7F 9C 04 30 */ srw r28, r28, r0
/* 803BE964 003BB8C4 57 9C 07 3E */ clrlwi r28, r28, 0x1c
/* 803BE968 003BB8C8 57 80 07 39 */ rlwinm. r0, r28, 0, 0x1c, 0x1c
/* 803BE96C 003BB8CC 41 82 00 20 */ beq lbl_803BE98C
/* 803BE970 003BB8D0 54 60 10 3A */ slwi r0, r3, 2
/* 803BE974 003BB8D4 7C 7F 02 14 */ add r3, r31, r0
/* 803BE978 003BB8D8 84 03 00 58 */ lwzu r0, 0x58(r3)
/* 803BE97C 003BB8DC 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 803BE980 003BB8E0 40 82 00 0C */ bne lbl_803BE98C
/* 803BE984 003BB8E4 38 00 00 08 */ li r0, 8
/* 803BE988 003BB8E8 90 03 00 00 */ stw r0, 0(r3)
lbl_803BE98C:
/* 803BE98C 003BB8EC 28 1C 00 00 */ cmplwi r28, 0
/* 803BE990 003BB8F0 40 82 00 30 */ bne lbl_803BE9C0
/* 803BE994 003BB8F4 3B 80 00 04 */ li r28, 4
/* 803BE998 003BB8F8 48 00 00 28 */ b lbl_803BE9C0
lbl_803BE99C:
/* 803BE99C 003BB8FC 4B FC 6A 2D */ bl __OSGetSystemTime
/* 803BE9A0 003BB900 80 DF 00 44 */ lwz r6, 0x44(r31)
/* 803BE9A4 003BB904 3C A0 80 57 */ lis r5, lbl_80569DB8@ha
/* 803BE9A8 003BB908 38 05 9D B8 */ addi r0, r5, lbl_80569DB8@l
/* 803BE9AC 003BB90C 54 C5 18 38 */ slwi r5, r6, 3
/* 803BE9B0 003BB910 7C A0 2A 14 */ add r5, r0, r5
/* 803BE9B4 003BB914 90 85 00 04 */ stw r4, 4(r5)
/* 803BE9B8 003BB918 3B 80 00 00 */ li r28, 0
/* 803BE9BC 003BB91C 90 65 00 00 */ stw r3, 0(r5)
lbl_803BE9C0:
/* 803BE9C0 003BB920 38 00 FF FF */ li r0, -1
/* 803BE9C4 003BB924 90 1F 00 44 */ stw r0, 0x44(r31)
lbl_803BE9C8:
/* 803BE9C8 003BB928 7F 83 E3 78 */ mr r3, r28
/* 803BE9CC 003BB92C 48 00 00 18 */ b lbl_803BE9E4
lbl_803BE9D0:
/* 803BE9D0 003BB930 3C 60 CC 00 */ lis r3, 0xCC006400@ha
/* 803BE9D4 003BB934 54 80 10 3A */ slwi r0, r4, 2
/* 803BE9D8 003BB938 38 63 64 00 */ addi r3, r3, 0xCC006400@l
/* 803BE9DC 003BB93C 7C 63 02 14 */ add r3, r3, r0
/* 803BE9E0 003BB940 4B FF FE 28 */ b lbl_803BE808
lbl_803BE9E4:
/* 803BE9E4 003BB944 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803BE9E8 003BB948 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803BE9EC 003BB94C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803BE9F0 003BB950 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803BE9F4 003BB954 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803BE9F8 003BB958 38 21 00 20 */ addi r1, r1, 0x20
/* 803BE9FC 003BB95C 7C 08 03 A6 */ mtlr r0
/* 803BEA00 003BB960 4E 80 00 20 */ blr
.global SIInterruptHandler
SIInterruptHandler:
/* 803BEA04 003BB964 7C 08 02 A6 */ mflr r0
/* 803BEA08 003BB968 3C A0 CC 00 */ lis r5, 0xCC006434@ha
/* 803BEA0C 003BB96C 90 01 00 04 */ stw r0, 4(r1)
/* 803BEA10 003BB970 3C E0 80 57 */ lis r7, Packet@ha
/* 803BEA14 003BB974 3C C0 80 3F */ lis r6, lbl_803F6EA0@ha
/* 803BEA18 003BB978 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 803BEA1C 003BB97C BE A1 00 1C */ stmw r21, 0x1c(r1)
/* 803BEA20 003BB980 3B C3 00 00 */ addi r30, r3, 0
/* 803BEA24 003BB984 3B E4 00 00 */ addi r31, r4, 0
/* 803BEA28 003BB988 3B 87 9C 98 */ addi r28, r7, Packet@l
/* 803BEA2C 003BB98C 3B A6 6E A0 */ addi r29, r6, lbl_803F6EA0@l
/* 803BEA30 003BB990 83 05 64 34 */ lwz r24, 0xCC006434@l(r5)
/* 803BEA34 003BB994 57 05 00 02 */ rlwinm r5, r24, 0, 0, 1
/* 803BEA38 003BB998 3C 05 40 00 */ addis r0, r5, 0x4000
/* 803BEA3C 003BB99C 28 00 00 00 */ cmplwi r0, 0
/* 803BEA40 003BB9A0 40 82 01 84 */ bne lbl_803BEBC4
/* 803BEA44 003BB9A4 82 FD 00 44 */ lwz r23, 0x44(r29)
/* 803BEA48 003BB9A8 4B FF FC C1 */ bl CompleteTransfer
/* 803BEA4C 003BB9AC 82 BD 00 54 */ lwz r21, 0x54(r29)
/* 803BEA50 003BB9B0 3B 60 00 00 */ li r27, 0
/* 803BEA54 003BB9B4 3A C3 00 00 */ addi r22, r3, 0
/* 803BEA58 003BB9B8 93 7D 00 54 */ stw r27, 0x54(r29)
/* 803BEA5C 003BB9BC 3B 57 00 00 */ addi r26, r23, 0
lbl_803BEA60:
/* 803BEA60 003BB9C0 3B 5A 00 01 */ addi r26, r26, 1
/* 803BEA64 003BB9C4 7F 40 16 70 */ srawi r0, r26, 2
/* 803BEA68 003BB9C8 7C 00 01 94 */ addze r0, r0
/* 803BEA6C 003BB9CC 54 00 10 3A */ slwi r0, r0, 2
/* 803BEA70 003BB9D0 7C 00 D0 10 */ subfc r0, r0, r26
/* 803BEA74 003BB9D4 7C 1A 03 78 */ mr r26, r0
/* 803BEA78 003BB9D8 54 00 28 34 */ slwi r0, r0, 5
/* 803BEA7C 003BB9DC 7F 3C 02 14 */ add r25, r28, r0
/* 803BEA80 003BB9E0 80 19 00 00 */ lwz r0, 0(r25)
/* 803BEA84 003BB9E4 2C 00 FF FF */ cmpwi r0, -1
/* 803BEA88 003BB9E8 41 82 00 6C */ beq lbl_803BEAF4
/* 803BEA8C 003BB9EC 4B FC 69 3D */ bl __OSGetSystemTime
/* 803BEA90 003BB9F0 80 19 00 18 */ lwz r0, 0x18(r25)
/* 803BEA94 003BB9F4 6C 65 80 00 */ xoris r5, r3, 0x8000
/* 803BEA98 003BB9F8 80 D9 00 1C */ lwz r6, 0x1c(r25)
/* 803BEA9C 003BB9FC 6C 03 80 00 */ xoris r3, r0, 0x8000
/* 803BEAA0 003BBA00 7C 06 20 10 */ subfc r0, r6, r4
/* 803BEAA4 003BBA04 7C 63 29 10 */ subfe r3, r3, r5
/* 803BEAA8 003BBA08 7C 65 29 10 */ subfe r3, r5, r5
/* 803BEAAC 003BBA0C 7C 63 00 D1 */ neg. r3, r3
/* 803BEAB0 003BBA10 40 82 00 44 */ bne lbl_803BEAF4
/* 803BEAB4 003BBA14 80 79 00 00 */ lwz r3, 0(r25)
/* 803BEAB8 003BBA18 80 99 00 04 */ lwz r4, 4(r25)
/* 803BEABC 003BBA1C 80 B9 00 08 */ lwz r5, 8(r25)
/* 803BEAC0 003BBA20 80 D9 00 0C */ lwz r6, 0xc(r25)
/* 803BEAC4 003BBA24 80 F9 00 10 */ lwz r7, 0x10(r25)
/* 803BEAC8 003BBA28 81 19 00 14 */ lwz r8, 0x14(r25)
/* 803BEACC 003BBA2C 48 00 05 89 */ bl __SITransfer
/* 803BEAD0 003BBA30 2C 03 00 00 */ cmpwi r3, 0
/* 803BEAD4 003BBA34 41 82 00 2C */ beq lbl_803BEB00
/* 803BEAD8 003BBA38 1C 1A 00 28 */ mulli r0, r26, 0x28
/* 803BEADC 003BBA3C 7C 7C 02 14 */ add r3, r28, r0
/* 803BEAE0 003BBA40 38 63 00 80 */ addi r3, r3, 0x80
/* 803BEAE4 003BBA44 4B FB F9 11 */ bl OSCancelAlarm
/* 803BEAE8 003BBA48 38 00 FF FF */ li r0, -1
/* 803BEAEC 003BBA4C 90 19 00 00 */ stw r0, 0(r25)
/* 803BEAF0 003BBA50 48 00 00 10 */ b lbl_803BEB00
lbl_803BEAF4:
/* 803BEAF4 003BBA54 3B 7B 00 01 */ addi r27, r27, 1
/* 803BEAF8 003BBA58 2C 1B 00 04 */ cmpwi r27, 4
/* 803BEAFC 003BBA5C 41 80 FF 64 */ blt lbl_803BEA60
lbl_803BEB00:
/* 803BEB00 003BBA60 28 15 00 00 */ cmplwi r21, 0
/* 803BEB04 003BBA64 41 82 00 1C */ beq lbl_803BEB20
/* 803BEB08 003BBA68 39 95 00 00 */ addi r12, r21, 0
/* 803BEB0C 003BBA6C 7D 88 03 A6 */ mtlr r12
/* 803BEB10 003BBA70 38 77 00 00 */ addi r3, r23, 0
/* 803BEB14 003BBA74 38 96 00 00 */ addi r4, r22, 0
/* 803BEB18 003BBA78 38 BF 00 00 */ addi r5, r31, 0
/* 803BEB1C 003BBA7C 4E 80 00 21 */ blrl
lbl_803BEB20:
/* 803BEB20 003BBA80 3C 60 CC 00 */ lis r3, 0xCC006400@ha
/* 803BEB24 003BBA84 38 83 64 00 */ addi r4, r3, 0xCC006400@l
/* 803BEB28 003BBA88 80 A3 64 38 */ lwz r5, 0x6438(r3)
/* 803BEB2C 003BBA8C 56 E0 18 38 */ slwi r0, r23, 3
/* 803BEB30 003BBA90 3C 60 0F 00 */ lis r3, 0xf00
/* 803BEB34 003BBA94 7C 60 06 30 */ sraw r0, r3, r0
/* 803BEB38 003BBA98 7C A5 00 38 */ and r5, r5, r0
/* 803BEB3C 003BBA9C 56 E0 10 3A */ slwi r0, r23, 2
/* 803BEB40 003BBAA0 90 A4 00 38 */ stw r5, 0x38(r4)
/* 803BEB44 003BBAA4 7C DD 02 14 */ add r6, r29, r0
/* 803BEB48 003BBAA8 84 06 00 58 */ lwzu r0, 0x58(r6)
/* 803BEB4C 003BBAAC 28 00 00 80 */ cmplwi r0, 0x80
/* 803BEB50 003BBAB0 40 82 00 74 */ bne lbl_803BEBC4
/* 803BEB54 003BBAB4 56 E0 28 34 */ slwi r0, r23, 5
/* 803BEB58 003BBAB8 7C 1C 00 2E */ lwzx r0, r28, r0
/* 803BEB5C 003BBABC 38 60 00 01 */ li r3, 1
/* 803BEB60 003BBAC0 2C 00 FF FF */ cmpwi r0, -1
/* 803BEB64 003BBAC4 40 82 00 14 */ bne lbl_803BEB78
/* 803BEB68 003BBAC8 80 1D 00 44 */ lwz r0, 0x44(r29)
/* 803BEB6C 003BBACC 7C 00 B8 00 */ cmpw r0, r23
/* 803BEB70 003BBAD0 41 82 00 08 */ beq lbl_803BEB78
/* 803BEB74 003BBAD4 38 60 00 00 */ li r3, 0
lbl_803BEB78:
/* 803BEB78 003BBAD8 2C 03 00 00 */ cmpwi r3, 0
/* 803BEB7C 003BBADC 40 82 00 48 */ bne lbl_803BEBC4
/* 803BEB80 003BBAE0 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 803BEB84 003BBAE4 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
/* 803BEB88 003BBAE8 3C 60 43 1C */ lis r3, 0x431BDE83@ha
/* 803BEB8C 003BBAEC 3C 80 80 3C */ lis r4, GetTypeCallback@ha
/* 803BEB90 003BBAF0 54 00 F0 BE */ srwi r0, r0, 2
/* 803BEB94 003BBAF4 38 63 DE 83 */ addi r3, r3, 0x431BDE83@l
/* 803BEB98 003BBAF8 7C 03 00 16 */ mulhwu r0, r3, r0
/* 803BEB9C 003BBAFC 54 00 8B FE */ srwi r0, r0, 0xf
/* 803BEBA0 003BBB00 1C 00 00 41 */ mulli r0, r0, 0x41
/* 803BEBA4 003BBB04 39 04 F8 04 */ addi r8, r4, GetTypeCallback@l
/* 803BEBA8 003BBB08 54 0A E8 FE */ srwi r10, r0, 3
/* 803BEBAC 003BBB0C 38 77 00 00 */ addi r3, r23, 0
/* 803BEBB0 003BBB10 38 8D B0 10 */ addi r4, r13, lbl_805A9BD0@sda21
/* 803BEBB4 003BBB14 38 A0 00 01 */ li r5, 1
/* 803BEBB8 003BBB18 38 E0 00 03 */ li r7, 3
/* 803BEBBC 003BBB1C 39 20 00 00 */ li r9, 0
/* 803BEBC0 003BBB20 48 00 0A D9 */ bl SITransfer
lbl_803BEBC4:
/* 803BEBC4 003BBB24 57 03 00 C8 */ rlwinm r3, r24, 0, 3, 4
/* 803BEBC8 003BBB28 3C 03 E8 00 */ addis r0, r3, 0xe800
/* 803BEBCC 003BBB2C 28 00 00 00 */ cmplwi r0, 0
/* 803BEBD0 003BBB30 40 82 01 64 */ bne lbl_803BED34
/* 803BEBD4 003BBB34 4B FC A8 6D */ bl VIGetCurrentLine
/* 803BEBD8 003BBB38 80 1D 00 48 */ lwz r0, 0x48(r29)
/* 803BEBDC 003BBB3C 3A FC 01 E0 */ addi r23, r28, 0x1e0
/* 803BEBE0 003BBB40 3B 1D 00 48 */ addi r24, r29, 0x48
/* 803BEBE4 003BBB44 3A D7 00 00 */ addi r22, r23, 0
/* 803BEBE8 003BBB48 3A A3 00 01 */ addi r21, r3, 1
/* 803BEBEC 003BBB4C 54 1A 85 BE */ rlwinm r26, r0, 0x10, 0x16, 0x1f
/* 803BEBF0 003BBB50 3B 20 00 00 */ li r25, 0
lbl_803BEBF4:
/* 803BEBF4 003BBB54 7F 23 CB 78 */ mr r3, r25
/* 803BEBF8 003BBB58 48 00 08 7D */ bl SIGetResponseRaw
/* 803BEBFC 003BBB5C 2C 03 00 00 */ cmpwi r3, 0
/* 803BEC00 003BBB60 41 82 00 08 */ beq lbl_803BEC08
/* 803BEC04 003BBB64 92 B6 00 00 */ stw r21, 0(r22)
lbl_803BEC08:
/* 803BEC08 003BBB68 3B 39 00 01 */ addi r25, r25, 1
/* 803BEC0C 003BBB6C 2C 19 00 04 */ cmpwi r25, 4
/* 803BEC10 003BBB70 3A D6 00 04 */ addi r22, r22, 4
/* 803BEC14 003BBB74 41 80 FF E0 */ blt lbl_803BEBF4
/* 803BEC18 003BBB78 80 B8 00 00 */ lwz r5, 0(r24)
/* 803BEC1C 003BBB7C 3C 60 80 00 */ lis r3, 0x8000
/* 803BEC20 003BBB80 38 00 00 18 */ li r0, 0x18
/* 803BEC24 003BBB84 7C 60 04 30 */ srw r0, r3, r0
/* 803BEC28 003BBB88 7C A0 00 39 */ and. r0, r5, r0
/* 803BEC2C 003BBB8C 57 46 F8 7E */ srwi r6, r26, 1
/* 803BEC30 003BBB90 41 82 00 24 */ beq lbl_803BEC54
/* 803BEC34 003BBB94 80 17 00 00 */ lwz r0, 0(r23)
/* 803BEC38 003BBB98 28 00 00 00 */ cmplwi r0, 0
/* 803BEC3C 003BBB9C 41 82 00 F8 */ beq lbl_803BED34
/* 803BEC40 003BBBA0 80 17 00 00 */ lwz r0, 0(r23)
/* 803BEC44 003BBBA4 7C 06 02 14 */ add r0, r6, r0
/* 803BEC48 003BBBA8 7C 00 A8 40 */ cmplw r0, r21
/* 803BEC4C 003BBBAC 40 80 00 08 */ bge lbl_803BEC54
/* 803BEC50 003BBBB0 48 00 00 E4 */ b lbl_803BED34
lbl_803BEC54:
/* 803BEC54 003BBBB4 38 00 00 19 */ li r0, 0x19
/* 803BEC58 003BBBB8 7C 60 04 30 */ srw r0, r3, r0
/* 803BEC5C 003BBBBC 7C A0 00 39 */ and. r0, r5, r0
/* 803BEC60 003BBBC0 38 97 00 04 */ addi r4, r23, 4
/* 803BEC64 003BBBC4 41 82 00 24 */ beq lbl_803BEC88
/* 803BEC68 003BBBC8 80 04 00 00 */ lwz r0, 0(r4)
/* 803BEC6C 003BBBCC 28 00 00 00 */ cmplwi r0, 0
/* 803BEC70 003BBBD0 41 82 00 C4 */ beq lbl_803BED34
/* 803BEC74 003BBBD4 80 04 00 00 */ lwz r0, 0(r4)
/* 803BEC78 003BBBD8 7C 06 02 14 */ add r0, r6, r0
/* 803BEC7C 003BBBDC 7C 00 A8 40 */ cmplw r0, r21
/* 803BEC80 003BBBE0 40 80 00 08 */ bge lbl_803BEC88
/* 803BEC84 003BBBE4 48 00 00 B0 */ b lbl_803BED34
lbl_803BEC88:
/* 803BEC88 003BBBE8 38 00 00 1A */ li r0, 0x1a
/* 803BEC8C 003BBBEC 7C 60 04 30 */ srw r0, r3, r0
/* 803BEC90 003BBBF0 7C A0 00 39 */ and. r0, r5, r0
/* 803BEC94 003BBBF4 38 84 00 04 */ addi r4, r4, 4
/* 803BEC98 003BBBF8 41 82 00 24 */ beq lbl_803BECBC
/* 803BEC9C 003BBBFC 80 04 00 00 */ lwz r0, 0(r4)
/* 803BECA0 003BBC00 28 00 00 00 */ cmplwi r0, 0
/* 803BECA4 003BBC04 41 82 00 90 */ beq lbl_803BED34
/* 803BECA8 003BBC08 80 04 00 00 */ lwz r0, 0(r4)
/* 803BECAC 003BBC0C 7C 06 02 14 */ add r0, r6, r0
/* 803BECB0 003BBC10 7C 00 A8 40 */ cmplw r0, r21
/* 803BECB4 003BBC14 40 80 00 08 */ bge lbl_803BECBC
/* 803BECB8 003BBC18 48 00 00 7C */ b lbl_803BED34
lbl_803BECBC:
/* 803BECBC 003BBC1C 38 00 00 1B */ li r0, 0x1b
/* 803BECC0 003BBC20 7C 60 04 30 */ srw r0, r3, r0
/* 803BECC4 003BBC24 7C A0 00 39 */ and. r0, r5, r0
/* 803BECC8 003BBC28 38 84 00 04 */ addi r4, r4, 4
/* 803BECCC 003BBC2C 41 82 00 24 */ beq lbl_803BECF0
/* 803BECD0 003BBC30 80 04 00 00 */ lwz r0, 0(r4)
/* 803BECD4 003BBC34 28 00 00 00 */ cmplwi r0, 0
/* 803BECD8 003BBC38 41 82 00 5C */ beq lbl_803BED34
/* 803BECDC 003BBC3C 80 04 00 00 */ lwz r0, 0(r4)
/* 803BECE0 003BBC40 7C 06 02 14 */ add r0, r6, r0
/* 803BECE4 003BBC44 7C 00 A8 40 */ cmplw r0, r21
/* 803BECE8 003BBC48 40 80 00 08 */ bge lbl_803BECF0
/* 803BECEC 003BBC4C 48 00 00 48 */ b lbl_803BED34
lbl_803BECF0:
/* 803BECF0 003BBC50 3A C0 00 00 */ li r22, 0
/* 803BECF4 003BBC54 92 D7 00 00 */ stw r22, 0(r23)
/* 803BECF8 003BBC58 3A BC 01 A0 */ addi r21, r28, 0x1a0
/* 803BECFC 003BBC5C 92 DC 01 E4 */ stw r22, 0x1e4(r28)
/* 803BED00 003BBC60 92 DC 01 E8 */ stw r22, 0x1e8(r28)
/* 803BED04 003BBC64 92 DC 01 EC */ stw r22, 0x1ec(r28)
lbl_803BED08:
/* 803BED08 003BBC68 81 95 00 00 */ lwz r12, 0(r21)
/* 803BED0C 003BBC6C 28 0C 00 00 */ cmplwi r12, 0
/* 803BED10 003BBC70 41 82 00 14 */ beq lbl_803BED24
/* 803BED14 003BBC74 7D 88 03 A6 */ mtlr r12
/* 803BED18 003BBC78 38 7E 00 00 */ addi r3, r30, 0
/* 803BED1C 003BBC7C 38 9F 00 00 */ addi r4, r31, 0
/* 803BED20 003BBC80 4E 80 00 21 */ blrl
lbl_803BED24:
/* 803BED24 003BBC84 3A D6 00 01 */ addi r22, r22, 1
/* 803BED28 003BBC88 2C 16 00 04 */ cmpwi r22, 4
/* 803BED2C 003BBC8C 3A B5 00 04 */ addi r21, r21, 4
/* 803BED30 003BBC90 41 80 FF D8 */ blt lbl_803BED08
lbl_803BED34:
/* 803BED34 003BBC94 BA A1 00 1C */ lmw r21, 0x1c(r1)
/* 803BED38 003BBC98 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 803BED3C 003BBC9C 38 21 00 48 */ addi r1, r1, 0x48
/* 803BED40 003BBCA0 7C 08 03 A6 */ mtlr r0
/* 803BED44 003BBCA4 4E 80 00 20 */ blr
.global SIEnablePollingInterrupt
SIEnablePollingInterrupt:
/* 803BED48 003BBCA8 7C 08 02 A6 */ mflr r0
/* 803BED4C 003BBCAC 3C 80 80 57 */ lis r4, Packet@ha
/* 803BED50 003BBCB0 90 01 00 04 */ stw r0, 4(r1)
/* 803BED54 003BBCB4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803BED58 003BBCB8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 803BED5C 003BBCBC 3B E4 9C 98 */ addi r31, r4, Packet@l
/* 803BED60 003BBCC0 93 C1 00 28 */ stw r30, 0x28(r1)
/* 803BED64 003BBCC4 93 A1 00 24 */ stw r29, 0x24(r1)
/* 803BED68 003BBCC8 3B A3 00 00 */ addi r29, r3, 0
/* 803BED6C 003BBCCC 4B FC 28 F5 */ bl OSDisableInterrupts
/* 803BED70 003BBCD0 3C 80 CC 00 */ lis r4, 0xcc00
/* 803BED74 003BBCD4 84 A4 64 34 */ lwzu r5, 0x6434(r4)
/* 803BED78 003BBCD8 54 A0 01 09 */ rlwinm. r0, r5, 0, 4, 4
/* 803BED7C 003BBCDC 41 82 00 0C */ beq lbl_803BED88
/* 803BED80 003BBCE0 3B C0 00 01 */ li r30, 1
/* 803BED84 003BBCE4 48 00 00 08 */ b lbl_803BED8C
lbl_803BED88:
/* 803BED88 003BBCE8 3B C0 00 00 */ li r30, 0
lbl_803BED8C:
/* 803BED8C 003BBCEC 2C 1D 00 00 */ cmpwi r29, 0
/* 803BED90 003BBCF0 41 82 00 20 */ beq lbl_803BEDB0
/* 803BED94 003BBCF4 38 00 00 00 */ li r0, 0
/* 803BED98 003BBCF8 90 1F 01 E0 */ stw r0, 0x1e0(r31)
/* 803BED9C 003BBCFC 64 A5 08 00 */ oris r5, r5, 0x800
/* 803BEDA0 003BBD00 90 1F 01 E4 */ stw r0, 0x1e4(r31)
/* 803BEDA4 003BBD04 90 1F 01 E8 */ stw r0, 0x1e8(r31)
/* 803BEDA8 003BBD08 90 1F 01 EC */ stw r0, 0x1ec(r31)
/* 803BEDAC 003BBD0C 48 00 00 08 */ b lbl_803BEDB4
lbl_803BEDB0:
/* 803BEDB0 003BBD10 54 A5 01 46 */ rlwinm r5, r5, 0, 5, 3
lbl_803BEDB4:
/* 803BEDB4 003BBD14 54 A5 00 7C */ rlwinm r5, r5, 0, 1, 0x1e
/* 803BEDB8 003BBD18 90 A4 00 00 */ stw r5, 0(r4)
/* 803BEDBC 003BBD1C 4B FC 28 CD */ bl OSRestoreInterrupts
/* 803BEDC0 003BBD20 7F C3 F3 78 */ mr r3, r30
/* 803BEDC4 003BBD24 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803BEDC8 003BBD28 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803BEDCC 003BBD2C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 803BEDD0 003BBD30 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 803BEDD4 003BBD34 38 21 00 30 */ addi r1, r1, 0x30
/* 803BEDD8 003BBD38 7C 08 03 A6 */ mtlr r0
/* 803BEDDC 003BBD3C 4E 80 00 20 */ blr
.global SIRegisterPollingHandler
SIRegisterPollingHandler:
/* 803BEDE0 003BBD40 7C 08 02 A6 */ mflr r0
/* 803BEDE4 003BBD44 90 01 00 04 */ stw r0, 4(r1)
/* 803BEDE8 003BBD48 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803BEDEC 003BBD4C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803BEDF0 003BBD50 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803BEDF4 003BBD54 7C 7E 1B 78 */ mr r30, r3
/* 803BEDF8 003BBD58 4B FC 28 69 */ bl OSDisableInterrupts
/* 803BEDFC 003BBD5C 3C 80 80 57 */ lis r4, lbl_80569E38@ha
/* 803BEE00 003BBD60 38 00 00 04 */ li r0, 4
/* 803BEE04 003BBD64 38 84 9E 38 */ addi r4, r4, lbl_80569E38@l
/* 803BEE08 003BBD68 7C 09 03 A6 */ mtctr r0
/* 803BEE0C 003BBD6C 3B E3 00 00 */ addi r31, r3, 0
/* 803BEE10 003BBD70 38 64 00 00 */ addi r3, r4, 0
lbl_803BEE14:
/* 803BEE14 003BBD74 80 03 00 00 */ lwz r0, 0(r3)
/* 803BEE18 003BBD78 7C 00 F0 40 */ cmplw r0, r30
/* 803BEE1C 003BBD7C 40 82 00 14 */ bne lbl_803BEE30
/* 803BEE20 003BBD80 7F E3 FB 78 */ mr r3, r31
/* 803BEE24 003BBD84 4B FC 28 65 */ bl OSRestoreInterrupts
/* 803BEE28 003BBD88 38 60 00 01 */ li r3, 1
/* 803BEE2C 003BBD8C 48 00 00 68 */ b lbl_803BEE94
lbl_803BEE30:
/* 803BEE30 003BBD90 38 63 00 04 */ addi r3, r3, 4
/* 803BEE34 003BBD94 42 00 FF E0 */ bdnz lbl_803BEE14
/* 803BEE38 003BBD98 38 00 00 04 */ li r0, 4
/* 803BEE3C 003BBD9C 7C 09 03 A6 */ mtctr r0
/* 803BEE40 003BBDA0 38 A0 00 00 */ li r5, 0
lbl_803BEE44:
/* 803BEE44 003BBDA4 80 04 00 00 */ lwz r0, 0(r4)
/* 803BEE48 003BBDA8 28 00 00 00 */ cmplwi r0, 0
/* 803BEE4C 003BBDAC 40 82 00 30 */ bne lbl_803BEE7C
/* 803BEE50 003BBDB0 3C 60 80 57 */ lis r3, lbl_80569E38@ha
/* 803BEE54 003BBDB4 54 A4 10 3A */ slwi r4, r5, 2
/* 803BEE58 003BBDB8 38 03 9E 38 */ addi r0, r3, lbl_80569E38@l
/* 803BEE5C 003BBDBC 7C 60 22 14 */ add r3, r0, r4
/* 803BEE60 003BBDC0 93 C3 00 00 */ stw r30, 0(r3)
/* 803BEE64 003BBDC4 38 60 00 01 */ li r3, 1
/* 803BEE68 003BBDC8 4B FF FE E1 */ bl SIEnablePollingInterrupt
/* 803BEE6C 003BBDCC 7F E3 FB 78 */ mr r3, r31
/* 803BEE70 003BBDD0 4B FC 28 19 */ bl OSRestoreInterrupts
/* 803BEE74 003BBDD4 38 60 00 01 */ li r3, 1
/* 803BEE78 003BBDD8 48 00 00 1C */ b lbl_803BEE94
lbl_803BEE7C:
/* 803BEE7C 003BBDDC 38 84 00 04 */ addi r4, r4, 4
/* 803BEE80 003BBDE0 38 A5 00 01 */ addi r5, r5, 1
/* 803BEE84 003BBDE4 42 00 FF C0 */ bdnz lbl_803BEE44
/* 803BEE88 003BBDE8 7F E3 FB 78 */ mr r3, r31
/* 803BEE8C 003BBDEC 4B FC 27 FD */ bl OSRestoreInterrupts
/* 803BEE90 003BBDF0 38 60 00 00 */ li r3, 0
lbl_803BEE94:
/* 803BEE94 003BBDF4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803BEE98 003BBDF8 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803BEE9C 003BBDFC 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803BEEA0 003BBE00 38 21 00 18 */ addi r1, r1, 0x18
/* 803BEEA4 003BBE04 7C 08 03 A6 */ mtlr r0
/* 803BEEA8 003BBE08 4E 80 00 20 */ blr
.global SIUnregisterPollingHandler
SIUnregisterPollingHandler:
/* 803BEEAC 003BBE0C 7C 08 02 A6 */ mflr r0
/* 803BEEB0 003BBE10 90 01 00 04 */ stw r0, 4(r1)
/* 803BEEB4 003BBE14 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803BEEB8 003BBE18 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803BEEBC 003BBE1C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803BEEC0 003BBE20 7C 7E 1B 78 */ mr r30, r3
/* 803BEEC4 003BBE24 4B FC 27 9D */ bl OSDisableInterrupts
/* 803BEEC8 003BBE28 3C 80 80 57 */ lis r4, lbl_80569E38@ha
/* 803BEECC 003BBE2C 38 00 00 04 */ li r0, 4
/* 803BEED0 003BBE30 38 A4 9E 38 */ addi r5, r4, lbl_80569E38@l
/* 803BEED4 003BBE34 7C 09 03 A6 */ mtctr r0
/* 803BEED8 003BBE38 3B E3 00 00 */ addi r31, r3, 0
/* 803BEEDC 003BBE3C 38 65 00 00 */ addi r3, r5, 0
/* 803BEEE0 003BBE40 38 80 00 00 */ li r4, 0
lbl_803BEEE4:
/* 803BEEE4 003BBE44 80 03 00 00 */ lwz r0, 0(r3)
/* 803BEEE8 003BBE48 7C 00 F0 40 */ cmplw r0, r30
/* 803BEEEC 003BBE4C 40 82 00 84 */ bne lbl_803BEF70
/* 803BEEF0 003BBE50 3C 60 80 57 */ lis r3, lbl_80569E38@ha
/* 803BEEF4 003BBE54 54 84 10 3A */ slwi r4, r4, 2
/* 803BEEF8 003BBE58 38 03 9E 38 */ addi r0, r3, lbl_80569E38@l
/* 803BEEFC 003BBE5C 7C 60 22 14 */ add r3, r0, r4
/* 803BEF00 003BBE60 38 00 00 00 */ li r0, 0
/* 803BEF04 003BBE64 90 03 00 00 */ stw r0, 0(r3)
/* 803BEF08 003BBE68 38 80 00 00 */ li r4, 0
/* 803BEF0C 003BBE6C 80 05 00 00 */ lwz r0, 0(r5)
/* 803BEF10 003BBE70 28 00 00 00 */ cmplwi r0, 0
/* 803BEF14 003BBE74 40 82 00 3C */ bne lbl_803BEF50
/* 803BEF18 003BBE78 38 65 00 04 */ addi r3, r5, 4
/* 803BEF1C 003BBE7C 80 05 00 04 */ lwz r0, 4(r5)
/* 803BEF20 003BBE80 38 80 00 01 */ li r4, 1
/* 803BEF24 003BBE84 28 00 00 00 */ cmplwi r0, 0
/* 803BEF28 003BBE88 40 82 00 28 */ bne lbl_803BEF50
/* 803BEF2C 003BBE8C 84 03 00 04 */ lwzu r0, 4(r3)
/* 803BEF30 003BBE90 38 80 00 02 */ li r4, 2
/* 803BEF34 003BBE94 28 00 00 00 */ cmplwi r0, 0
/* 803BEF38 003BBE98 40 82 00 18 */ bne lbl_803BEF50
/* 803BEF3C 003BBE9C 80 03 00 04 */ lwz r0, 4(r3)
/* 803BEF40 003BBEA0 38 80 00 03 */ li r4, 3
/* 803BEF44 003BBEA4 28 00 00 00 */ cmplwi r0, 0
/* 803BEF48 003BBEA8 40 82 00 08 */ bne lbl_803BEF50
/* 803BEF4C 003BBEAC 38 80 00 04 */ li r4, 4
lbl_803BEF50:
/* 803BEF50 003BBEB0 2C 04 00 04 */ cmpwi r4, 4
/* 803BEF54 003BBEB4 40 82 00 0C */ bne lbl_803BEF60
/* 803BEF58 003BBEB8 38 60 00 00 */ li r3, 0
/* 803BEF5C 003BBEBC 4B FF FD ED */ bl SIEnablePollingInterrupt
lbl_803BEF60:
/* 803BEF60 003BBEC0 7F E3 FB 78 */ mr r3, r31
/* 803BEF64 003BBEC4 4B FC 27 25 */ bl OSRestoreInterrupts
/* 803BEF68 003BBEC8 38 60 00 01 */ li r3, 1
/* 803BEF6C 003BBECC 48 00 00 1C */ b lbl_803BEF88
lbl_803BEF70:
/* 803BEF70 003BBED0 38 63 00 04 */ addi r3, r3, 4
/* 803BEF74 003BBED4 38 84 00 01 */ addi r4, r4, 1
/* 803BEF78 003BBED8 42 00 FF 6C */ bdnz lbl_803BEEE4
/* 803BEF7C 003BBEDC 7F E3 FB 78 */ mr r3, r31
/* 803BEF80 003BBEE0 4B FC 27 09 */ bl OSRestoreInterrupts
/* 803BEF84 003BBEE4 38 60 00 00 */ li r3, 0
lbl_803BEF88:
/* 803BEF88 003BBEE8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803BEF8C 003BBEEC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803BEF90 003BBEF0 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803BEF94 003BBEF4 38 21 00 18 */ addi r1, r1, 0x18
/* 803BEF98 003BBEF8 7C 08 03 A6 */ mtlr r0
/* 803BEF9C 003BBEFC 4E 80 00 20 */ blr
.global SIInit
SIInit:
/* 803BEFA0 003BBF00 7C 08 02 A6 */ mflr r0
/* 803BEFA4 003BBF04 3C 80 80 57 */ lis r4, Packet@ha
/* 803BEFA8 003BBF08 90 01 00 04 */ stw r0, 4(r1)
/* 803BEFAC 003BBF0C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803BEFB0 003BBF10 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803BEFB4 003BBF14 3B E4 9C 98 */ addi r31, r4, Packet@l
/* 803BEFB8 003BBF18 80 6D A0 48 */ lwz r3, __SIVersion@sda21(r13)
/* 803BEFBC 003BBF1C 4B FB F0 7D */ bl OSRegisterVersion
/* 803BEFC0 003BBF20 38 A0 FF FF */ li r5, -1
/* 803BEFC4 003BBF24 90 BF 00 60 */ stw r5, 0x60(r31)
/* 803BEFC8 003BBF28 3C 60 80 3F */ lis r3, Si@ha
/* 803BEFCC 003BBF2C 38 83 6E E4 */ addi r4, r3, Si@l
/* 803BEFD0 003BBF30 90 BF 00 40 */ stw r5, 0x40(r31)
/* 803BEFD4 003BBF34 38 00 00 00 */ li r0, 0
/* 803BEFD8 003BBF38 38 60 00 00 */ li r3, 0
/* 803BEFDC 003BBF3C 90 BF 00 20 */ stw r5, 0x20(r31)
/* 803BEFE0 003BBF40 90 BF 00 00 */ stw r5, 0(r31)
/* 803BEFE4 003BBF44 90 04 00 04 */ stw r0, 4(r4)
/* 803BEFE8 003BBF48 48 00 0F 25 */ bl SISetSamplingRate
/* 803BEFEC 003BBF4C 3C 60 CC 00 */ lis r3, 0xCC006400@ha
lbl_803BEFF0:
/* 803BEFF0 003BBF50 38 83 64 00 */ addi r4, r3, 0xCC006400@l
/* 803BEFF4 003BBF54 84 04 00 34 */ lwzu r0, 0x34(r4)
/* 803BEFF8 003BBF58 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803BEFFC 003BBF5C 40 82 FF F4 */ bne lbl_803BEFF0
/* 803BF000 003BBF60 3C 00 80 00 */ lis r0, 0x8000
/* 803BF004 003BBF64 3C 60 80 3C */ lis r3, SIInterruptHandler@ha
/* 803BF008 003BBF68 90 04 00 00 */ stw r0, 0(r4)
/* 803BF00C 003BBF6C 38 83 EA 04 */ addi r4, r3, SIInterruptHandler@l
/* 803BF010 003BBF70 38 60 00 14 */ li r3, 0x14
/* 803BF014 003BBF74 4B FC 26 99 */ bl __OSSetInterruptHandler
/* 803BF018 003BBF78 38 60 08 00 */ li r3, 0x800
/* 803BF01C 003BBF7C 4B FC 2A 95 */ bl __OSUnmaskInterrupts
/* 803BF020 003BBF80 38 60 00 00 */ li r3, 0
/* 803BF024 003BBF84 48 00 0A 79 */ bl SIGetType
/* 803BF028 003BBF88 38 60 00 01 */ li r3, 1
/* 803BF02C 003BBF8C 48 00 0A 71 */ bl SIGetType
/* 803BF030 003BBF90 38 60 00 02 */ li r3, 2
/* 803BF034 003BBF94 48 00 0A 69 */ bl SIGetType
/* 803BF038 003BBF98 38 60 00 03 */ li r3, 3
/* 803BF03C 003BBF9C 48 00 0A 61 */ bl SIGetType
/* 803BF040 003BBFA0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803BF044 003BBFA4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803BF048 003BBFA8 38 21 00 10 */ addi r1, r1, 0x10
/* 803BF04C 003BBFAC 7C 08 03 A6 */ mtlr r0
/* 803BF050 003BBFB0 4E 80 00 20 */ blr
.global __SITransfer
__SITransfer:
/* 803BF054 003BBFB4 7C 08 02 A6 */ mflr r0
/* 803BF058 003BBFB8 3D 20 80 3F */ lis r9, lbl_803F6EA0@ha
/* 803BF05C 003BBFBC 90 01 00 04 */ stw r0, 4(r1)
/* 803BF060 003BBFC0 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 803BF064 003BBFC4 BF 21 00 2C */ stmw r25, 0x2c(r1)
/* 803BF068 003BBFC8 3B 43 00 00 */ addi r26, r3, 0
/* 803BF06C 003BBFCC 3B 64 00 00 */ addi r27, r4, 0
/* 803BF070 003BBFD0 3B 85 00 00 */ addi r28, r5, 0
/* 803BF074 003BBFD4 3B A6 00 00 */ addi r29, r6, 0
/* 803BF078 003BBFD8 3B C7 00 00 */ addi r30, r7, 0
/* 803BF07C 003BBFDC 3B E8 00 00 */ addi r31, r8, 0
/* 803BF080 003BBFE0 3B 29 6E A0 */ addi r25, r9, lbl_803F6EA0@l
/* 803BF084 003BBFE4 4B FC 25 DD */ bl OSDisableInterrupts
/* 803BF088 003BBFE8 80 19 00 44 */ lwz r0, 0x44(r25)
/* 803BF08C 003BBFEC 2C 00 FF FF */ cmpwi r0, -1
/* 803BF090 003BBFF0 41 82 00 10 */ beq lbl_803BF0A0
/* 803BF094 003BBFF4 4B FC 25 F5 */ bl OSRestoreInterrupts
/* 803BF098 003BBFF8 38 60 00 00 */ li r3, 0
/* 803BF09C 003BBFFC 48 00 01 B0 */ b lbl_803BF24C
lbl_803BF0A0:
/* 803BF0A0 003BC000 3C C0 CC 00 */ lis r6, 0xCC006438@ha
/* 803BF0A4 003BC004 57 40 18 38 */ slwi r0, r26, 3
/* 803BF0A8 003BC008 80 E6 64 38 */ lwz r7, 0xCC006438@l(r6)
/* 803BF0AC 003BC00C 3C 80 0F 00 */ lis r4, 0xf00
/* 803BF0B0 003BC010 7C 80 06 30 */ sraw r0, r4, r0
/* 803BF0B4 003BC014 7C E7 00 38 */ and r7, r7, r0
/* 803BF0B8 003BC018 90 E6 64 38 */ stw r7, 0x6438(r6)
/* 803BF0BC 003BC01C 38 1C 00 03 */ addi r0, r28, 3
/* 803BF0C0 003BC020 54 04 F0 BE */ srwi r4, r0, 2
/* 803BF0C4 003BC024 93 59 00 44 */ stw r26, 0x44(r25)
/* 803BF0C8 003BC028 28 04 00 00 */ cmplwi r4, 0
/* 803BF0CC 003BC02C 38 A0 00 00 */ li r5, 0
/* 803BF0D0 003BC030 93 F9 00 54 */ stw r31, 0x54(r25)
/* 803BF0D4 003BC034 93 D9 00 4C */ stw r30, 0x4c(r25)
/* 803BF0D8 003BC038 93 B9 00 50 */ stw r29, 0x50(r25)
/* 803BF0DC 003BC03C 40 81 00 A4 */ ble lbl_803BF180
/* 803BF0E0 003BC040 28 04 00 08 */ cmplwi r4, 8
/* 803BF0E4 003BC044 38 E4 FF F8 */ addi r7, r4, -8
/* 803BF0E8 003BC048 40 81 01 4C */ ble lbl_803BF234
/* 803BF0EC 003BC04C 38 07 00 07 */ addi r0, r7, 7
/* 803BF0F0 003BC050 54 00 E8 FE */ srwi r0, r0, 3
/* 803BF0F4 003BC054 28 07 00 00 */ cmplwi r7, 0
/* 803BF0F8 003BC058 7C 09 03 A6 */ mtctr r0
/* 803BF0FC 003BC05C 38 FB 00 00 */ addi r7, r27, 0
/* 803BF100 003BC060 38 C6 64 00 */ addi r6, r6, 0x6400
/* 803BF104 003BC064 40 81 01 30 */ ble lbl_803BF234
lbl_803BF108:
/* 803BF108 003BC068 80 07 00 00 */ lwz r0, 0(r7)
/* 803BF10C 003BC06C 38 A5 00 08 */ addi r5, r5, 8
/* 803BF110 003BC070 90 06 00 80 */ stw r0, 0x80(r6)
/* 803BF114 003BC074 80 07 00 04 */ lwz r0, 4(r7)
/* 803BF118 003BC078 90 06 00 84 */ stw r0, 0x84(r6)
/* 803BF11C 003BC07C 80 07 00 08 */ lwz r0, 8(r7)
/* 803BF120 003BC080 90 06 00 88 */ stw r0, 0x88(r6)
/* 803BF124 003BC084 80 07 00 0C */ lwz r0, 0xc(r7)
/* 803BF128 003BC088 90 06 00 8C */ stw r0, 0x8c(r6)
/* 803BF12C 003BC08C 80 07 00 10 */ lwz r0, 0x10(r7)
/* 803BF130 003BC090 90 06 00 90 */ stw r0, 0x90(r6)
/* 803BF134 003BC094 80 07 00 14 */ lwz r0, 0x14(r7)
/* 803BF138 003BC098 90 06 00 94 */ stw r0, 0x94(r6)
/* 803BF13C 003BC09C 80 07 00 18 */ lwz r0, 0x18(r7)
/* 803BF140 003BC0A0 90 06 00 98 */ stw r0, 0x98(r6)
/* 803BF144 003BC0A4 80 07 00 1C */ lwz r0, 0x1c(r7)
/* 803BF148 003BC0A8 38 E7 00 20 */ addi r7, r7, 0x20
/* 803BF14C 003BC0AC 90 06 00 9C */ stw r0, 0x9c(r6)
/* 803BF150 003BC0B0 38 C6 00 20 */ addi r6, r6, 0x20
/* 803BF154 003BC0B4 42 00 FF B4 */ bdnz lbl_803BF108
/* 803BF158 003BC0B8 48 00 00 DC */ b lbl_803BF234
lbl_803BF15C:
/* 803BF15C 003BC0BC 7C 05 20 50 */ subf r0, r5, r4
/* 803BF160 003BC0C0 7C 05 20 40 */ cmplw r5, r4
/* 803BF164 003BC0C4 7C 09 03 A6 */ mtctr r0
/* 803BF168 003BC0C8 40 80 00 18 */ bge lbl_803BF180
lbl_803BF16C:
/* 803BF16C 003BC0CC 80 06 00 00 */ lwz r0, 0(r6)
/* 803BF170 003BC0D0 38 C6 00 04 */ addi r6, r6, 4
/* 803BF174 003BC0D4 90 07 00 80 */ stw r0, 0x80(r7)
/* 803BF178 003BC0D8 38 E7 00 04 */ addi r7, r7, 4
/* 803BF17C 003BC0DC 42 00 FF F0 */ bdnz lbl_803BF16C
lbl_803BF180:
/* 803BF180 003BC0E0 3C 80 CC 00 */ lis r4, 0xCC006400@ha
/* 803BF184 003BC0E4 38 C4 64 00 */ addi r6, r4, 0xCC006400@l
/* 803BF188 003BC0E8 84 06 00 34 */ lwzu r0, 0x34(r6)
/* 803BF18C 003BC0EC 38 80 00 01 */ li r4, 1
/* 803BF190 003BC0F0 90 01 00 24 */ stw r0, 0x24(r1)
/* 803BF194 003BC0F4 28 1F 00 00 */ cmplwi r31, 0
/* 803BF198 003BC0F8 88 01 00 24 */ lbz r0, 0x24(r1)
/* 803BF19C 003BC0FC 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 803BF1A0 003BC100 98 01 00 24 */ stb r0, 0x24(r1)
/* 803BF1A4 003BC104 41 82 00 08 */ beq lbl_803BF1AC
/* 803BF1A8 003BC108 48 00 00 08 */ b lbl_803BF1B0
lbl_803BF1AC:
/* 803BF1AC 003BC10C 38 80 00 00 */ li r4, 0
lbl_803BF1B0:
/* 803BF1B0 003BC110 88 01 00 24 */ lbz r0, 0x24(r1)
/* 803BF1B4 003BC114 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 803BF1B8 003BC118 28 1C 00 80 */ cmplwi r28, 0x80
/* 803BF1BC 003BC11C 98 01 00 24 */ stb r0, 0x24(r1)
/* 803BF1C0 003BC120 40 82 00 0C */ bne lbl_803BF1CC
/* 803BF1C4 003BC124 38 00 00 00 */ li r0, 0
/* 803BF1C8 003BC128 48 00 00 08 */ b lbl_803BF1D0
lbl_803BF1CC:
/* 803BF1CC 003BC12C 7F 80 E3 78 */ mr r0, r28
lbl_803BF1D0:
/* 803BF1D0 003BC130 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 803BF1D4 003BC134 88 01 00 25 */ lbz r0, 0x25(r1)
/* 803BF1D8 003BC138 50 80 06 7E */ rlwimi r0, r4, 0, 0x19, 0x1f
/* 803BF1DC 003BC13C 28 1E 00 80 */ cmplwi r30, 0x80
/* 803BF1E0 003BC140 98 01 00 25 */ stb r0, 0x25(r1)
/* 803BF1E4 003BC144 40 82 00 0C */ bne lbl_803BF1F0
/* 803BF1E8 003BC148 38 00 00 00 */ li r0, 0
/* 803BF1EC 003BC14C 48 00 00 08 */ b lbl_803BF1F4
lbl_803BF1F0:
/* 803BF1F0 003BC150 7F C0 F3 78 */ mr r0, r30
lbl_803BF1F4:
/* 803BF1F4 003BC154 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 803BF1F8 003BC158 88 01 00 26 */ lbz r0, 0x26(r1)
/* 803BF1FC 003BC15C 50 80 06 7E */ rlwimi r0, r4, 0, 0x19, 0x1f
/* 803BF200 003BC160 98 01 00 26 */ stb r0, 0x26(r1)
/* 803BF204 003BC164 38 80 00 01 */ li r4, 1
/* 803BF208 003BC168 88 01 00 27 */ lbz r0, 0x27(r1)
/* 803BF20C 003BC16C 53 40 0F 7C */ rlwimi r0, r26, 1, 0x1d, 0x1e
/* 803BF210 003BC170 98 01 00 27 */ stb r0, 0x27(r1)
/* 803BF214 003BC174 88 01 00 27 */ lbz r0, 0x27(r1)
/* 803BF218 003BC178 50 80 07 FE */ rlwimi r0, r4, 0, 0x1f, 0x1f
/* 803BF21C 003BC17C 98 01 00 27 */ stb r0, 0x27(r1)
/* 803BF220 003BC180 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803BF224 003BC184 90 06 00 00 */ stw r0, 0(r6)
/* 803BF228 003BC188 4B FC 24 61 */ bl OSRestoreInterrupts
/* 803BF22C 003BC18C 38 60 00 01 */ li r3, 1
/* 803BF230 003BC190 48 00 00 1C */ b lbl_803BF24C
lbl_803BF234:
/* 803BF234 003BC194 3C C0 CC 00 */ lis r6, 0xCC006400@ha
/* 803BF238 003BC198 54 A0 10 3A */ slwi r0, r5, 2
/* 803BF23C 003BC19C 38 E6 64 00 */ addi r7, r6, 0xCC006400@l
/* 803BF240 003BC1A0 7C DB 02 14 */ add r6, r27, r0
/* 803BF244 003BC1A4 7C E7 02 14 */ add r7, r7, r0
/* 803BF248 003BC1A8 4B FF FF 14 */ b lbl_803BF15C
lbl_803BF24C:
/* 803BF24C 003BC1AC BB 21 00 2C */ lmw r25, 0x2c(r1)
/* 803BF250 003BC1B0 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 803BF254 003BC1B4 38 21 00 48 */ addi r1, r1, 0x48
/* 803BF258 003BC1B8 7C 08 03 A6 */ mtlr r0
/* 803BF25C 003BC1BC 4E 80 00 20 */ blr
.global SIGetStatus
SIGetStatus:
/* 803BF260 003BC1C0 7C 08 02 A6 */ mflr r0
/* 803BF264 003BC1C4 90 01 00 04 */ stw r0, 4(r1)
/* 803BF268 003BC1C8 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803BF26C 003BC1CC 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803BF270 003BC1D0 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803BF274 003BC1D4 7C 7E 1B 78 */ mr r30, r3
/* 803BF278 003BC1D8 4B FC 23 E9 */ bl OSDisableInterrupts
/* 803BF27C 003BC1DC 3C 80 CC 00 */ lis r4, 0xCC006438@ha
/* 803BF280 003BC1E0 20 1E 00 03 */ subfic r0, r30, 3
/* 803BF284 003BC1E4 83 E4 64 38 */ lwz r31, 0xCC006438@l(r4)
/* 803BF288 003BC1E8 54 00 18 38 */ slwi r0, r0, 3
/* 803BF28C 003BC1EC 7F FF 04 30 */ srw r31, r31, r0
/* 803BF290 003BC1F0 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c
/* 803BF294 003BC1F4 41 82 00 28 */ beq lbl_803BF2BC
/* 803BF298 003BC1F8 3C 80 80 3F */ lis r4, Type@ha
/* 803BF29C 003BC1FC 57 C5 10 3A */ slwi r5, r30, 2
/* 803BF2A0 003BC200 38 04 6E F8 */ addi r0, r4, Type@l
/* 803BF2A4 003BC204 7C 80 2A 14 */ add r4, r0, r5
/* 803BF2A8 003BC208 80 04 00 00 */ lwz r0, 0(r4)
/* 803BF2AC 003BC20C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 803BF2B0 003BC210 40 82 00 0C */ bne lbl_803BF2BC
/* 803BF2B4 003BC214 38 00 00 08 */ li r0, 8
/* 803BF2B8 003BC218 90 04 00 00 */ stw r0, 0(r4)
lbl_803BF2BC:
/* 803BF2BC 003BC21C 4B FC 23 CD */ bl OSRestoreInterrupts
/* 803BF2C0 003BC220 7F E3 FB 78 */ mr r3, r31
/* 803BF2C4 003BC224 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803BF2C8 003BC228 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803BF2CC 003BC22C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803BF2D0 003BC230 38 21 00 18 */ addi r1, r1, 0x18
/* 803BF2D4 003BC234 7C 08 03 A6 */ mtlr r0
/* 803BF2D8 003BC238 4E 80 00 20 */ blr
.global SISetCommand
SISetCommand:
/* 803BF2DC 003BC23C 1C 03 00 0C */ mulli r0, r3, 0xc
/* 803BF2E0 003BC240 3C 60 CC 00 */ lis r3, 0xCC006400@ha
/* 803BF2E4 003BC244 38 63 64 00 */ addi r3, r3, 0xCC006400@l
/* 803BF2E8 003BC248 7C 83 01 2E */ stwx r4, r3, r0
/* 803BF2EC 003BC24C 4E 80 00 20 */ blr
.global SITransferCommands
SITransferCommands:
/* 803BF2F0 003BC250 3C 60 CC 00 */ lis r3, 0xCC006438@ha
/* 803BF2F4 003BC254 3C 00 80 00 */ lis r0, 0x8000
/* 803BF2F8 003BC258 90 03 64 38 */ stw r0, 0xCC006438@l(r3)
/* 803BF2FC 003BC25C 4E 80 00 20 */ blr
.global SISetXY
SISetXY:
/* 803BF300 003BC260 7C 08 02 A6 */ mflr r0
/* 803BF304 003BC264 90 01 00 04 */ stw r0, 4(r1)
/* 803BF308 003BC268 54 80 40 2E */ slwi r0, r4, 8
/* 803BF30C 003BC26C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803BF310 003BC270 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803BF314 003BC274 54 7F 80 1E */ slwi r31, r3, 0x10
/* 803BF318 003BC278 7F FF 03 78 */ or r31, r31, r0
/* 803BF31C 003BC27C 4B FC 23 45 */ bl OSDisableInterrupts
/* 803BF320 003BC280 3C 80 80 3F */ lis r4, Si@ha
/* 803BF324 003BC284 38 84 6E E4 */ addi r4, r4, Si@l
/* 803BF328 003BC288 80 04 00 04 */ lwz r0, 4(r4)
/* 803BF32C 003BC28C 38 A4 00 04 */ addi r5, r4, 4
/* 803BF330 003BC290 3C 80 CC 00 */ lis r4, 0xCC006430@ha
/* 803BF334 003BC294 54 00 06 0A */ rlwinm r0, r0, 0, 0x18, 5
/* 803BF338 003BC298 90 05 00 00 */ stw r0, 0(r5)
/* 803BF33C 003BC29C 80 05 00 00 */ lwz r0, 0(r5)
/* 803BF340 003BC2A0 7C 00 FB 78 */ or r0, r0, r31
/* 803BF344 003BC2A4 90 05 00 00 */ stw r0, 0(r5)
/* 803BF348 003BC2A8 83 E5 00 00 */ lwz r31, 0(r5)
/* 803BF34C 003BC2AC 93 E4 64 30 */ stw r31, 0xCC006430@l(r4)
/* 803BF350 003BC2B0 4B FC 23 39 */ bl OSRestoreInterrupts
/* 803BF354 003BC2B4 7F E3 FB 78 */ mr r3, r31
/* 803BF358 003BC2B8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803BF35C 003BC2BC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803BF360 003BC2C0 38 21 00 18 */ addi r1, r1, 0x18
/* 803BF364 003BC2C4 7C 08 03 A6 */ mtlr r0
/* 803BF368 003BC2C8 4E 80 00 20 */ blr
.global SIEnablePolling
SIEnablePolling:
/* 803BF36C 003BC2CC 7C 08 02 A6 */ mflr r0
/* 803BF370 003BC2D0 90 01 00 04 */ stw r0, 4(r1)
/* 803BF374 003BC2D4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803BF378 003BC2D8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803BF37C 003BC2DC 7C 7F 1B 79 */ or. r31, r3, r3
/* 803BF380 003BC2E0 40 82 00 14 */ bne lbl_803BF394
/* 803BF384 003BC2E4 3C 60 80 3F */ lis r3, Si@ha
/* 803BF388 003BC2E8 38 63 6E E4 */ addi r3, r3, Si@l
/* 803BF38C 003BC2EC 80 63 00 04 */ lwz r3, 4(r3)
/* 803BF390 003BC2F0 48 00 00 64 */ b lbl_803BF3F4
lbl_803BF394:
/* 803BF394 003BC2F4 4B FC 22 CD */ bl OSDisableInterrupts
/* 803BF398 003BC2F8 3C 80 80 3F */ lis r4, Si@ha
/* 803BF39C 003BC2FC 38 84 6E E4 */ addi r4, r4, Si@l
/* 803BF3A0 003BC300 57 FF 46 3E */ srwi r31, r31, 0x18
/* 803BF3A4 003BC304 80 04 00 04 */ lwz r0, 4(r4)
/* 803BF3A8 003BC308 38 A4 00 04 */ addi r5, r4, 4
/* 803BF3AC 003BC30C 57 E4 E7 3E */ rlwinm r4, r31, 0x1c, 0x1c, 0x1f
/* 803BF3B0 003BC310 7C 00 20 78 */ andc r0, r0, r4
/* 803BF3B4 003BC314 90 05 00 00 */ stw r0, 0(r5)
/* 803BF3B8 003BC318 64 80 03 FF */ oris r0, r4, 0x3ff
/* 803BF3BC 003BC31C 60 00 FF F0 */ ori r0, r0, 0xfff0
/* 803BF3C0 003BC320 7F FF 00 38 */ and r31, r31, r0
/* 803BF3C4 003BC324 80 05 00 00 */ lwz r0, 0(r5)
/* 803BF3C8 003BC328 57 FF 06 0A */ rlwinm r31, r31, 0, 0x18, 5
/* 803BF3CC 003BC32C 7C 00 FB 78 */ or r0, r0, r31
/* 803BF3D0 003BC330 90 05 00 00 */ stw r0, 0(r5)
/* 803BF3D4 003BC334 3C 80 CC 00 */ lis r4, 0xCC006400@ha
/* 803BF3D8 003BC338 38 84 64 00 */ addi r4, r4, 0xCC006400@l
/* 803BF3DC 003BC33C 83 E5 00 00 */ lwz r31, 0(r5)
/* 803BF3E0 003BC340 3C 00 80 00 */ lis r0, 0x8000
/* 803BF3E4 003BC344 90 04 00 38 */ stw r0, 0x38(r4)
/* 803BF3E8 003BC348 93 E4 00 30 */ stw r31, 0x30(r4)
/* 803BF3EC 003BC34C 4B FC 22 9D */ bl OSRestoreInterrupts
/* 803BF3F0 003BC350 7F E3 FB 78 */ mr r3, r31
lbl_803BF3F4:
/* 803BF3F4 003BC354 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803BF3F8 003BC358 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803BF3FC 003BC35C 38 21 00 18 */ addi r1, r1, 0x18
/* 803BF400 003BC360 7C 08 03 A6 */ mtlr r0
/* 803BF404 003BC364 4E 80 00 20 */ blr
.global SIDisablePolling
SIDisablePolling:
/* 803BF408 003BC368 7C 08 02 A6 */ mflr r0
/* 803BF40C 003BC36C 90 01 00 04 */ stw r0, 4(r1)
/* 803BF410 003BC370 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803BF414 003BC374 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803BF418 003BC378 7C 7F 1B 79 */ or. r31, r3, r3
/* 803BF41C 003BC37C 40 82 00 14 */ bne lbl_803BF430
/* 803BF420 003BC380 3C 60 80 3F */ lis r3, Si@ha
/* 803BF424 003BC384 38 63 6E E4 */ addi r3, r3, Si@l
/* 803BF428 003BC388 80 63 00 04 */ lwz r3, 4(r3)
/* 803BF42C 003BC38C 48 00 00 34 */ b lbl_803BF460
lbl_803BF430:
/* 803BF430 003BC390 4B FC 22 31 */ bl OSDisableInterrupts
/* 803BF434 003BC394 3C 80 80 3F */ lis r4, Si@ha
/* 803BF438 003BC398 38 84 6E E4 */ addi r4, r4, Si@l
/* 803BF43C 003BC39C 80 04 00 04 */ lwz r0, 4(r4)
/* 803BF440 003BC3A0 57 FF 46 36 */ rlwinm r31, r31, 8, 0x18, 0x1b
/* 803BF444 003BC3A4 38 A4 00 04 */ addi r5, r4, 4
/* 803BF448 003BC3A8 3C 80 CC 00 */ lis r4, 0xCC006430@ha
/* 803BF44C 003BC3AC 7C 1F F8 78 */ andc r31, r0, r31
/* 803BF450 003BC3B0 93 E4 64 30 */ stw r31, 0xCC006430@l(r4)
/* 803BF454 003BC3B4 93 E5 00 00 */ stw r31, 0(r5)
/* 803BF458 003BC3B8 4B FC 22 31 */ bl OSRestoreInterrupts
/* 803BF45C 003BC3BC 7F E3 FB 78 */ mr r3, r31
lbl_803BF460:
/* 803BF460 003BC3C0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803BF464 003BC3C4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803BF468 003BC3C8 38 21 00 18 */ addi r1, r1, 0x18
/* 803BF46C 003BC3CC 7C 08 03 A6 */ mtlr r0
/* 803BF470 003BC3D0 4E 80 00 20 */ blr
.global SIGetResponseRaw
SIGetResponseRaw:
/* 803BF474 003BC3D4 7C 08 02 A6 */ mflr r0
/* 803BF478 003BC3D8 3C 80 80 57 */ lis r4, Packet@ha
/* 803BF47C 003BC3DC 90 01 00 04 */ stw r0, 4(r1)
/* 803BF480 003BC3E0 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 803BF484 003BC3E4 93 E1 00 24 */ stw r31, 0x24(r1)
/* 803BF488 003BC3E8 3B E4 9C 98 */ addi r31, r4, Packet@l
/* 803BF48C 003BC3EC 93 C1 00 20 */ stw r30, 0x20(r1)
/* 803BF490 003BC3F0 3B C3 00 00 */ addi r30, r3, 0
/* 803BF494 003BC3F4 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 803BF498 003BC3F8 4B FC 21 C9 */ bl OSDisableInterrupts
/* 803BF49C 003BC3FC 3C 80 CC 00 */ lis r4, 0xCC006438@ha
/* 803BF4A0 003BC400 20 1E 00 03 */ subfic r0, r30, 3
/* 803BF4A4 003BC404 83 A4 64 38 */ lwz r29, 0xCC006438@l(r4)
/* 803BF4A8 003BC408 54 00 18 38 */ slwi r0, r0, 3
/* 803BF4AC 003BC40C 7F BD 04 30 */ srw r29, r29, r0
/* 803BF4B0 003BC410 57 A0 07 39 */ rlwinm. r0, r29, 0, 0x1c, 0x1c
/* 803BF4B4 003BC414 41 82 00 28 */ beq lbl_803BF4DC
/* 803BF4B8 003BC418 3C 80 80 3F */ lis r4, Type@ha
/* 803BF4BC 003BC41C 57 C5 10 3A */ slwi r5, r30, 2
/* 803BF4C0 003BC420 38 04 6E F8 */ addi r0, r4, Type@l
/* 803BF4C4 003BC424 7C 80 2A 14 */ add r4, r0, r5
/* 803BF4C8 003BC428 80 04 00 00 */ lwz r0, 0(r4)
/* 803BF4CC 003BC42C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 803BF4D0 003BC430 40 82 00 0C */ bne lbl_803BF4DC
/* 803BF4D4 003BC434 38 00 00 08 */ li r0, 8
/* 803BF4D8 003BC438 90 04 00 00 */ stw r0, 0(r4)
lbl_803BF4DC:
/* 803BF4DC 003BC43C 4B FC 21 AD */ bl OSRestoreInterrupts
/* 803BF4E0 003BC440 57 A0 06 B5 */ rlwinm. r0, r29, 0, 0x1a, 0x1a
/* 803BF4E4 003BC444 41 82 00 44 */ beq lbl_803BF528
/* 803BF4E8 003BC448 1C 9E 00 0C */ mulli r4, r30, 0xc
/* 803BF4EC 003BC44C 3C 60 CC 00 */ lis r3, 0xCC006400@ha
/* 803BF4F0 003BC450 38 03 64 00 */ addi r0, r3, 0xCC006400@l
/* 803BF4F4 003BC454 7C 60 22 14 */ add r3, r0, r4
/* 803BF4F8 003BC458 57 C4 18 38 */ slwi r4, r30, 3
/* 803BF4FC 003BC45C 80 03 00 04 */ lwz r0, 4(r3)
/* 803BF500 003BC460 7C DF 22 14 */ add r6, r31, r4
/* 803BF504 003BC464 90 06 01 C0 */ stw r0, 0x1c0(r6)
/* 803BF508 003BC468 57 C0 10 3A */ slwi r0, r30, 2
/* 803BF50C 003BC46C 7C 9F 02 14 */ add r4, r31, r0
/* 803BF510 003BC470 80 A3 00 08 */ lwz r5, 8(r3)
/* 803BF514 003BC474 38 00 00 01 */ li r0, 1
/* 803BF518 003BC478 38 60 00 01 */ li r3, 1
/* 803BF51C 003BC47C 90 A6 01 C4 */ stw r5, 0x1c4(r6)
/* 803BF520 003BC480 90 04 01 B0 */ stw r0, 0x1b0(r4)
/* 803BF524 003BC484 48 00 00 08 */ b lbl_803BF52C
lbl_803BF528:
/* 803BF528 003BC488 38 60 00 00 */ li r3, 0
lbl_803BF52C:
/* 803BF52C 003BC48C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803BF530 003BC490 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 803BF534 003BC494 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 803BF538 003BC498 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 803BF53C 003BC49C 38 21 00 28 */ addi r1, r1, 0x28
/* 803BF540 003BC4A0 7C 08 03 A6 */ mtlr r0
/* 803BF544 003BC4A4 4E 80 00 20 */ blr
.global SIGetResponse
SIGetResponse:
/* 803BF548 003BC4A8 7C 08 02 A6 */ mflr r0
/* 803BF54C 003BC4AC 3C A0 80 57 */ lis r5, Packet@ha
/* 803BF550 003BC4B0 90 01 00 04 */ stw r0, 4(r1)
/* 803BF554 003BC4B4 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 803BF558 003BC4B8 BF 61 00 14 */ stmw r27, 0x14(r1)
/* 803BF55C 003BC4BC 3B A3 00 00 */ addi r29, r3, 0
/* 803BF560 003BC4C0 3B C4 00 00 */ addi r30, r4, 0
/* 803BF564 003BC4C4 3B 85 9C 98 */ addi r28, r5, Packet@l
/* 803BF568 003BC4C8 4B FC 20 F9 */ bl OSDisableInterrupts
/* 803BF56C 003BC4CC 3B E3 00 00 */ addi r31, r3, 0
/* 803BF570 003BC4D0 38 7D 00 00 */ addi r3, r29, 0
/* 803BF574 003BC4D4 4B FF FC ED */ bl SIGetStatus
/* 803BF578 003BC4D8 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a
/* 803BF57C 003BC4DC 41 82 00 3C */ beq lbl_803BF5B8
/* 803BF580 003BC4E0 1C 9D 00 0C */ mulli r4, r29, 0xc
/* 803BF584 003BC4E4 3C 60 CC 00 */ lis r3, 0xCC006400@ha
/* 803BF588 003BC4E8 38 03 64 00 */ addi r0, r3, 0xCC006400@l
/* 803BF58C 003BC4EC 7C 80 22 14 */ add r4, r0, r4
/* 803BF590 003BC4F0 57 A3 18 38 */ slwi r3, r29, 3
/* 803BF594 003BC4F4 80 04 00 04 */ lwz r0, 4(r4)
/* 803BF598 003BC4F8 7C BC 1A 14 */ add r5, r28, r3
/* 803BF59C 003BC4FC 90 05 01 C0 */ stw r0, 0x1c0(r5)
/* 803BF5A0 003BC500 57 A0 10 3A */ slwi r0, r29, 2
/* 803BF5A4 003BC504 7C 7C 02 14 */ add r3, r28, r0
/* 803BF5A8 003BC508 80 84 00 08 */ lwz r4, 8(r4)
/* 803BF5AC 003BC50C 38 00 00 01 */ li r0, 1
/* 803BF5B0 003BC510 90 85 01 C4 */ stw r4, 0x1c4(r5)
/* 803BF5B4 003BC514 90 03 01 B0 */ stw r0, 0x1b0(r3)
lbl_803BF5B8:
/* 803BF5B8 003BC518 57 A0 10 3A */ slwi r0, r29, 2
/* 803BF5BC 003BC51C 7C 7C 02 14 */ add r3, r28, r0
/* 803BF5C0 003BC520 83 63 01 B0 */ lwz r27, 0x1b0(r3)
/* 803BF5C4 003BC524 38 00 00 00 */ li r0, 0
/* 803BF5C8 003BC528 2C 1B 00 00 */ cmpwi r27, 0
/* 803BF5CC 003BC52C 90 03 01 B0 */ stw r0, 0x1b0(r3)
/* 803BF5D0 003BC530 41 82 00 1C */ beq lbl_803BF5EC
/* 803BF5D4 003BC534 57 A0 18 38 */ slwi r0, r29, 3
/* 803BF5D8 003BC538 7C 7C 02 14 */ add r3, r28, r0
/* 803BF5DC 003BC53C 80 03 01 C0 */ lwz r0, 0x1c0(r3)
/* 803BF5E0 003BC540 90 1E 00 00 */ stw r0, 0(r30)
/* 803BF5E4 003BC544 80 03 01 C4 */ lwz r0, 0x1c4(r3)
/* 803BF5E8 003BC548 90 1E 00 04 */ stw r0, 4(r30)
lbl_803BF5EC:
/* 803BF5EC 003BC54C 7F E3 FB 78 */ mr r3, r31
/* 803BF5F0 003BC550 4B FC 20 99 */ bl OSRestoreInterrupts
/* 803BF5F4 003BC554 7F 63 DB 78 */ mr r3, r27
/* 803BF5F8 003BC558 BB 61 00 14 */ lmw r27, 0x14(r1)
/* 803BF5FC 003BC55C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803BF600 003BC560 38 21 00 28 */ addi r1, r1, 0x28
/* 803BF604 003BC564 7C 08 03 A6 */ mtlr r0
/* 803BF608 003BC568 4E 80 00 20 */ blr
AlarmHandler:
/* 803BF60C 003BC56C 7C 08 02 A6 */ mflr r0
/* 803BF610 003BC570 3C 80 80 57 */ lis r4, lbl_80569D18@ha
/* 803BF614 003BC574 90 01 00 04 */ stw r0, 4(r1)
/* 803BF618 003BC578 38 04 9D 18 */ addi r0, r4, lbl_80569D18@l
/* 803BF61C 003BC57C 3C 80 66 66 */ lis r4, 0x66666667@ha
/* 803BF620 003BC580 7C 00 18 50 */ subf r0, r0, r3
/* 803BF624 003BC584 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803BF628 003BC588 38 64 66 67 */ addi r3, r4, 0x66666667@l
/* 803BF62C 003BC58C 7C 03 00 96 */ mulhw r0, r3, r0
/* 803BF630 003BC590 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803BF634 003BC594 7C 00 26 70 */ srawi r0, r0, 4
/* 803BF638 003BC598 54 03 0F FE */ srwi r3, r0, 0x1f
/* 803BF63C 003BC59C 7C 00 1A 14 */ add r0, r0, r3
/* 803BF640 003BC5A0 3C 60 80 57 */ lis r3, Packet@ha
/* 803BF644 003BC5A4 54 04 28 34 */ slwi r4, r0, 5
/* 803BF648 003BC5A8 38 03 9C 98 */ addi r0, r3, Packet@l
/* 803BF64C 003BC5AC 7F E0 22 14 */ add r31, r0, r4
/* 803BF650 003BC5B0 80 7F 00 00 */ lwz r3, 0(r31)
/* 803BF654 003BC5B4 2C 03 FF FF */ cmpwi r3, -1
/* 803BF658 003BC5B8 41 82 00 2C */ beq lbl_803BF684
/* 803BF65C 003BC5BC 80 9F 00 04 */ lwz r4, 4(r31)
/* 803BF660 003BC5C0 80 BF 00 08 */ lwz r5, 8(r31)
/* 803BF664 003BC5C4 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 803BF668 003BC5C8 80 FF 00 10 */ lwz r7, 0x10(r31)
/* 803BF66C 003BC5CC 81 1F 00 14 */ lwz r8, 0x14(r31)
/* 803BF670 003BC5D0 4B FF F9 E5 */ bl __SITransfer
/* 803BF674 003BC5D4 2C 03 00 00 */ cmpwi r3, 0
/* 803BF678 003BC5D8 41 82 00 0C */ beq lbl_803BF684
/* 803BF67C 003BC5DC 38 00 FF FF */ li r0, -1
/* 803BF680 003BC5E0 90 1F 00 00 */ stw r0, 0(r31)
lbl_803BF684:
/* 803BF684 003BC5E4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803BF688 003BC5E8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803BF68C 003BC5EC 38 21 00 20 */ addi r1, r1, 0x20
/* 803BF690 003BC5F0 7C 08 03 A6 */ mtlr r0
/* 803BF694 003BC5F4 4E 80 00 20 */ blr
.global SITransfer
SITransfer:
/* 803BF698 003BC5F8 7C 08 02 A6 */ mflr r0
/* 803BF69C 003BC5FC 90 01 00 04 */ stw r0, 4(r1)
/* 803BF6A0 003BC600 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 803BF6A4 003BC604 BE 61 00 2C */ stmw r19, 0x2c(r1)
/* 803BF6A8 003BC608 3B 03 00 00 */ addi r24, r3, 0
/* 803BF6AC 003BC60C 3C 60 80 57 */ lis r3, Packet@ha
/* 803BF6B0 003BC610 3A E3 9C 98 */ addi r23, r3, Packet@l
/* 803BF6B4 003BC614 57 00 28 34 */ slwi r0, r24, 5
/* 803BF6B8 003BC618 3B 24 00 00 */ addi r25, r4, 0
/* 803BF6BC 003BC61C 3B 45 00 00 */ addi r26, r5, 0
/* 803BF6C0 003BC620 3B 66 00 00 */ addi r27, r6, 0
/* 803BF6C4 003BC624 3B 87 00 00 */ addi r28, r7, 0
/* 803BF6C8 003BC628 3B A8 00 00 */ addi r29, r8, 0
/* 803BF6CC 003BC62C 3B E9 00 00 */ addi r31, r9, 0
/* 803BF6D0 003BC630 3B CA 00 00 */ addi r30, r10, 0
/* 803BF6D4 003BC634 7E D7 02 14 */ add r22, r23, r0
/* 803BF6D8 003BC638 4B FC 1F 89 */ bl OSDisableInterrupts
/* 803BF6DC 003BC63C 80 16 00 00 */ lwz r0, 0(r22)
/* 803BF6E0 003BC640 3A A3 00 00 */ addi r21, r3, 0
/* 803BF6E4 003BC644 2C 00 FF FF */ cmpwi r0, -1
/* 803BF6E8 003BC648 40 82 00 14 */ bne lbl_803BF6FC
/* 803BF6EC 003BC64C 3C 60 80 3F */ lis r3, Si@ha
/* 803BF6F0 003BC650 80 03 6E E4 */ lwz r0, Si@l(r3)
/* 803BF6F4 003BC654 7C 00 C0 00 */ cmpw r0, r24
/* 803BF6F8 003BC658 40 82 00 14 */ bne lbl_803BF70C
lbl_803BF6FC:
/* 803BF6FC 003BC65C 7E A3 AB 78 */ mr r3, r21
/* 803BF700 003BC660 4B FC 1F 89 */ bl OSRestoreInterrupts
/* 803BF704 003BC664 38 60 00 00 */ li r3, 0
/* 803BF708 003BC668 48 00 00 E8 */ b lbl_803BF7F0
lbl_803BF70C:
/* 803BF70C 003BC66C 4B FC 5C BD */ bl __OSGetSystemTime
/* 803BF710 003BC670 38 00 00 00 */ li r0, 0
/* 803BF714 003BC674 7F C5 02 78 */ xor r5, r30, r0
/* 803BF718 003BC678 7F E0 02 78 */ xor r0, r31, r0
/* 803BF71C 003BC67C 7C A0 03 79 */ or. r0, r5, r0
/* 803BF720 003BC680 40 82 00 10 */ bne lbl_803BF730
/* 803BF724 003BC684 3A 64 00 00 */ addi r19, r4, 0
/* 803BF728 003BC688 3A 83 00 00 */ addi r20, r3, 0
/* 803BF72C 003BC68C 48 00 00 1C */ b lbl_803BF748
lbl_803BF730:
/* 803BF730 003BC690 57 00 18 38 */ slwi r0, r24, 3
/* 803BF734 003BC694 7C D7 02 14 */ add r6, r23, r0
/* 803BF738 003BC698 80 A6 01 44 */ lwz r5, 0x144(r6)
/* 803BF73C 003BC69C 80 06 01 40 */ lwz r0, 0x140(r6)
/* 803BF740 003BC6A0 7E 7E 28 14 */ addc r19, r30, r5
/* 803BF744 003BC6A4 7E 9F 01 14 */ adde r20, r31, r0
lbl_803BF748:
/* 803BF748 003BC6A8 6C 66 80 00 */ xoris r6, r3, 0x8000
/* 803BF74C 003BC6AC 6E 85 80 00 */ xoris r5, r20, 0x8000
/* 803BF750 003BC6B0 7C 13 20 10 */ subfc r0, r19, r4
/* 803BF754 003BC6B4 7C A5 31 10 */ subfe r5, r5, r6
/* 803BF758 003BC6B8 7C A6 31 10 */ subfe r5, r6, r6
/* 803BF75C 003BC6BC 7C A5 00 D1 */ neg. r5, r5
/* 803BF760 003BC6C0 41 82 00 30 */ beq lbl_803BF790
/* 803BF764 003BC6C4 1C 18 00 28 */ mulli r0, r24, 0x28
/* 803BF768 003BC6C8 7F C4 98 10 */ subfc r30, r4, r19
/* 803BF76C 003BC6CC 7F E3 A1 10 */ subfe r31, r3, r20
/* 803BF770 003BC6D0 3C 80 80 3C */ lis r4, AlarmHandler@ha
/* 803BF774 003BC6D4 7C 77 02 14 */ add r3, r23, r0
/* 803BF778 003BC6D8 38 E4 F6 0C */ addi r7, r4, AlarmHandler@l
/* 803BF77C 003BC6DC 38 DE 00 00 */ addi r6, r30, 0
/* 803BF780 003BC6E0 38 BF 00 00 */ addi r5, r31, 0
/* 803BF784 003BC6E4 38 63 00 80 */ addi r3, r3, 0x80
/* 803BF788 003BC6E8 4B FB EB 89 */ bl OSSetAlarm
/* 803BF78C 003BC6EC 48 00 00 38 */ b lbl_803BF7C4
lbl_803BF790:
/* 803BF790 003BC6F0 38 78 00 00 */ addi r3, r24, 0
/* 803BF794 003BC6F4 38 99 00 00 */ addi r4, r25, 0
/* 803BF798 003BC6F8 38 BA 00 00 */ addi r5, r26, 0
/* 803BF79C 003BC6FC 38 DB 00 00 */ addi r6, r27, 0
/* 803BF7A0 003BC700 38 FC 00 00 */ addi r7, r28, 0
/* 803BF7A4 003BC704 39 1D 00 00 */ addi r8, r29, 0
/* 803BF7A8 003BC708 4B FF F8 AD */ bl __SITransfer
/* 803BF7AC 003BC70C 2C 03 00 00 */ cmpwi r3, 0
/* 803BF7B0 003BC710 41 82 00 14 */ beq lbl_803BF7C4
/* 803BF7B4 003BC714 7E A3 AB 78 */ mr r3, r21
/* 803BF7B8 003BC718 4B FC 1E D1 */ bl OSRestoreInterrupts
/* 803BF7BC 003BC71C 38 60 00 01 */ li r3, 1
/* 803BF7C0 003BC720 48 00 00 30 */ b lbl_803BF7F0
lbl_803BF7C4:
/* 803BF7C4 003BC724 93 16 00 00 */ stw r24, 0(r22)
/* 803BF7C8 003BC728 7E A3 AB 78 */ mr r3, r21
/* 803BF7CC 003BC72C 93 36 00 04 */ stw r25, 4(r22)
/* 803BF7D0 003BC730 93 56 00 08 */ stw r26, 8(r22)
/* 803BF7D4 003BC734 93 76 00 0C */ stw r27, 0xc(r22)
/* 803BF7D8 003BC738 93 96 00 10 */ stw r28, 0x10(r22)
/* 803BF7DC 003BC73C 93 B6 00 14 */ stw r29, 0x14(r22)
/* 803BF7E0 003BC740 92 76 00 1C */ stw r19, 0x1c(r22)
/* 803BF7E4 003BC744 92 96 00 18 */ stw r20, 0x18(r22)
/* 803BF7E8 003BC748 4B FC 1E A1 */ bl OSRestoreInterrupts
/* 803BF7EC 003BC74C 38 60 00 01 */ li r3, 1
lbl_803BF7F0:
/* 803BF7F0 003BC750 BA 61 00 2C */ lmw r19, 0x2c(r1)
/* 803BF7F4 003BC754 80 01 00 64 */ lwz r0, 0x64(r1)
/* 803BF7F8 003BC758 38 21 00 60 */ addi r1, r1, 0x60
/* 803BF7FC 003BC75C 7C 08 03 A6 */ mtlr r0
/* 803BF800 003BC760 4E 80 00 20 */ blr
.global GetTypeCallback
GetTypeCallback:
/* 803BF804 003BC764 7C 08 02 A6 */ mflr r0
/* 803BF808 003BC768 90 01 00 04 */ stw r0, 4(r1)
/* 803BF80C 003BC76C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803BF810 003BC770 BF 41 00 18 */ stmw r26, 0x18(r1)
/* 803BF814 003BC774 3B 63 00 00 */ addi r27, r3, 0
/* 803BF818 003BC778 3C 60 80 3F */ lis r3, Type@ha
/* 803BF81C 003BC77C 38 03 6E F8 */ addi r0, r3, Type@l
/* 803BF820 003BC780 57 7D 10 3A */ slwi r29, r27, 2
/* 803BF824 003BC784 7F C0 EA 14 */ add r30, r0, r29
/* 803BF828 003BC788 3C 60 80 57 */ lis r3, Packet@ha
/* 803BF82C 003BC78C 3B 44 00 00 */ addi r26, r4, 0
/* 803BF830 003BC790 3B E3 9C 98 */ addi r31, r3, Packet@l
/* 803BF834 003BC794 80 1E 00 00 */ lwz r0, 0(r30)
/* 803BF838 003BC798 54 00 06 6E */ rlwinm r0, r0, 0, 0x19, 0x17
/* 803BF83C 003BC79C 90 1E 00 00 */ stw r0, 0(r30)
/* 803BF840 003BC7A0 80 1E 00 00 */ lwz r0, 0(r30)
/* 803BF844 003BC7A4 7C 00 D3 78 */ or r0, r0, r26
/* 803BF848 003BC7A8 90 1E 00 00 */ stw r0, 0(r30)
/* 803BF84C 003BC7AC 4B FC 5B 7D */ bl __OSGetSystemTime
/* 803BF850 003BC7B0 57 60 18 38 */ slwi r0, r27, 3
/* 803BF854 003BC7B4 7C BF 02 14 */ add r5, r31, r0
/* 803BF858 003BC7B8 90 85 01 24 */ stw r4, 0x124(r5)
/* 803BF85C 003BC7BC 3C 80 80 00 */ lis r4, 0x8000
/* 803BF860 003BC7C0 57 40 07 3F */ clrlwi. r0, r26, 0x1c
/* 803BF864 003BC7C4 90 65 01 20 */ stw r3, 0x120(r5)
/* 803BF868 003BC7C8 7C 84 DC 30 */ srw r4, r4, r27
/* 803BF86C 003BC7CC 80 6D B0 18 */ lwz r3, lbl_805A9BD8@sda21(r13)
/* 803BF870 003BC7D0 83 9E 00 00 */ lwz r28, 0(r30)
/* 803BF874 003BC7D4 7C 60 20 78 */ andc r0, r3, r4
/* 803BF878 003BC7D8 90 0D B0 18 */ stw r0, lbl_805A9BD8@sda21(r13)
/* 803BF87C 003BC7DC 7C 7A 20 38 */ and r26, r3, r4
/* 803BF880 003BC7E0 40 82 00 24 */ bne lbl_803BF8A4
/* 803BF884 003BC7E4 57 83 00 C8 */ rlwinm r3, r28, 0, 3, 4
/* 803BF888 003BC7E8 3C 03 F8 00 */ addis r0, r3, 0xf800
/* 803BF88C 003BC7EC 28 00 00 00 */ cmplwi r0, 0
/* 803BF890 003BC7F0 40 82 00 14 */ bne lbl_803BF8A4
/* 803BF894 003BC7F4 57 80 00 01 */ rlwinm. r0, r28, 0, 0, 0
/* 803BF898 003BC7F8 41 82 00 0C */ beq lbl_803BF8A4
/* 803BF89C 003BC7FC 57 80 01 4B */ rlwinm. r0, r28, 0, 5, 5
/* 803BF8A0 003BC800 41 82 00 5C */ beq lbl_803BF8FC
lbl_803BF8A4:
/* 803BF8A4 003BC804 38 7B 00 00 */ addi r3, r27, 0
/* 803BF8A8 003BC808 38 80 00 00 */ li r4, 0
/* 803BF8AC 003BC80C 4B FC 4A 8D */ bl OSSetWirelessID
/* 803BF8B0 003BC810 57 60 20 36 */ slwi r0, r27, 4
/* 803BF8B4 003BC814 83 DE 00 00 */ lwz r30, 0(r30)
/* 803BF8B8 003BC818 7F FF 02 14 */ add r31, r31, r0
/* 803BF8BC 003BC81C 3B A0 00 00 */ li r29, 0
/* 803BF8C0 003BC820 3B 9D 00 00 */ addi r28, r29, 0
/* 803BF8C4 003BC824 3B FF 01 60 */ addi r31, r31, 0x160
lbl_803BF8C8:
/* 803BF8C8 003BC828 81 9F 00 00 */ lwz r12, 0(r31)
/* 803BF8CC 003BC82C 28 0C 00 00 */ cmplwi r12, 0
/* 803BF8D0 003BC830 41 82 00 18 */ beq lbl_803BF8E8
/* 803BF8D4 003BC834 93 9F 00 00 */ stw r28, 0(r31)
/* 803BF8D8 003BC838 7D 88 03 A6 */ mtlr r12
/* 803BF8DC 003BC83C 38 7B 00 00 */ addi r3, r27, 0
/* 803BF8E0 003BC840 38 9E 00 00 */ addi r4, r30, 0
/* 803BF8E4 003BC844 4E 80 00 21 */ blrl
lbl_803BF8E8:
/* 803BF8E8 003BC848 3B BD 00 01 */ addi r29, r29, 1
/* 803BF8EC 003BC84C 2C 1D 00 04 */ cmpwi r29, 4
/* 803BF8F0 003BC850 3B FF 00 04 */ addi r31, r31, 4
/* 803BF8F4 003BC854 41 80 FF D4 */ blt lbl_803BF8C8
/* 803BF8F8 003BC858 48 00 01 90 */ b lbl_803BFA88
lbl_803BF8FC:
/* 803BF8FC 003BC85C 7F 63 DB 78 */ mr r3, r27
/* 803BF900 003BC860 4B FC 49 B5 */ bl OSGetWirelessID
/* 803BF904 003BC864 2C 1A 00 00 */ cmpwi r26, 0
/* 803BF908 003BC868 54 7A 42 2E */ rlwinm r26, r3, 8, 8, 0x17
/* 803BF90C 003BC86C 41 82 00 54 */ beq lbl_803BF960
/* 803BF910 003BC870 57 40 02 D7 */ rlwinm. r0, r26, 0, 0xb, 0xb
/* 803BF914 003BC874 41 82 00 4C */ beq lbl_803BF960
/* 803BF918 003BC878 3C 60 00 D0 */ lis r3, 0x00CFFF00@ha
/* 803BF91C 003BC87C 38 03 FF 00 */ addi r0, r3, 0x00CFFF00@l
/* 803BF920 003BC880 7F 40 00 38 */ and r0, r26, r0
/* 803BF924 003BC884 64 00 4E 10 */ oris r0, r0, 0x4e10
/* 803BF928 003BC888 7C 9F EA 14 */ add r4, r31, r29
/* 803BF92C 003BC88C 94 04 01 F0 */ stwu r0, 0x1f0(r4)
/* 803BF930 003BC890 38 00 00 80 */ li r0, 0x80
/* 803BF934 003BC894 3C 60 80 3C */ lis r3, GetTypeCallback@ha
/* 803BF938 003BC898 90 1E 00 00 */ stw r0, 0(r30)
/* 803BF93C 003BC89C 39 03 F8 04 */ addi r8, r3, GetTypeCallback@l
/* 803BF940 003BC8A0 38 7B 00 00 */ addi r3, r27, 0
/* 803BF944 003BC8A4 38 DE 00 00 */ addi r6, r30, 0
/* 803BF948 003BC8A8 38 A0 00 03 */ li r5, 3
/* 803BF94C 003BC8AC 38 E0 00 03 */ li r7, 3
/* 803BF950 003BC8B0 39 40 00 00 */ li r10, 0
/* 803BF954 003BC8B4 39 20 00 00 */ li r9, 0
/* 803BF958 003BC8B8 4B FF FD 41 */ bl SITransfer
/* 803BF95C 003BC8BC 48 00 01 2C */ b lbl_803BFA88
lbl_803BF960:
/* 803BF960 003BC8C0 57 80 02 D7 */ rlwinm. r0, r28, 0, 0xb, 0xb
/* 803BF964 003BC8C4 41 82 00 70 */ beq lbl_803BF9D4
/* 803BF968 003BC8C8 3C 60 00 D0 */ lis r3, 0x00CFFF00@ha
/* 803BF96C 003BC8CC 38 63 FF 00 */ addi r3, r3, 0x00CFFF00@l
/* 803BF970 003BC8D0 7F 40 18 38 */ and r0, r26, r3
/* 803BF974 003BC8D4 7F 83 18 38 */ and r3, r28, r3
/* 803BF978 003BC8D8 7C 00 18 40 */ cmplw r0, r3
/* 803BF97C 003BC8DC 41 82 00 C4 */ beq lbl_803BFA40
/* 803BF980 003BC8E0 57 40 02 D7 */ rlwinm. r0, r26, 0, 0xb, 0xb
/* 803BF984 003BC8E4 40 82 00 14 */ bne lbl_803BF998
/* 803BF988 003BC8E8 64 7A 00 10 */ oris r26, r3, 0x10
/* 803BF98C 003BC8EC 38 7B 00 00 */ addi r3, r27, 0
/* 803BF990 003BC8F0 57 44 C4 3E */ rlwinm r4, r26, 0x18, 0x10, 0x1f
/* 803BF994 003BC8F4 4B FC 49 A5 */ bl OSSetWirelessID
lbl_803BF998:
/* 803BF998 003BC8F8 67 40 4E 00 */ oris r0, r26, 0x4e00
/* 803BF99C 003BC8FC 7C 9F EA 14 */ add r4, r31, r29
/* 803BF9A0 003BC900 94 04 01 F0 */ stwu r0, 0x1f0(r4)
/* 803BF9A4 003BC904 38 00 00 80 */ li r0, 0x80
/* 803BF9A8 003BC908 3C 60 80 3C */ lis r3, GetTypeCallback@ha
/* 803BF9AC 003BC90C 90 1E 00 00 */ stw r0, 0(r30)
/* 803BF9B0 003BC910 39 03 F8 04 */ addi r8, r3, GetTypeCallback@l
/* 803BF9B4 003BC914 38 7B 00 00 */ addi r3, r27, 0
/* 803BF9B8 003BC918 38 DE 00 00 */ addi r6, r30, 0
/* 803BF9BC 003BC91C 38 A0 00 03 */ li r5, 3
/* 803BF9C0 003BC920 38 E0 00 03 */ li r7, 3
/* 803BF9C4 003BC924 39 40 00 00 */ li r10, 0
/* 803BF9C8 003BC928 39 20 00 00 */ li r9, 0
/* 803BF9CC 003BC92C 4B FF FC CD */ bl SITransfer
/* 803BF9D0 003BC930 48 00 00 B8 */ b lbl_803BFA88
lbl_803BF9D4:
/* 803BF9D4 003BC934 57 80 00 43 */ rlwinm. r0, r28, 0, 1, 1
/* 803BF9D8 003BC938 41 82 00 5C */ beq lbl_803BFA34
/* 803BF9DC 003BC93C 3C 60 00 D0 */ lis r3, 0x00CFFF00@ha
/* 803BF9E0 003BC940 38 03 FF 00 */ addi r0, r3, 0x00CFFF00@l
/* 803BF9E4 003BC944 7F 9C 00 38 */ and r28, r28, r0
/* 803BF9E8 003BC948 67 9C 00 10 */ oris r28, r28, 0x10
/* 803BF9EC 003BC94C 38 7B 00 00 */ addi r3, r27, 0
/* 803BF9F0 003BC950 57 84 C4 3E */ rlwinm r4, r28, 0x18, 0x10, 0x1f
/* 803BF9F4 003BC954 4B FC 49 45 */ bl OSSetWirelessID
/* 803BF9F8 003BC958 67 80 4E 00 */ oris r0, r28, 0x4e00
/* 803BF9FC 003BC95C 7C 9F EA 14 */ add r4, r31, r29
/* 803BFA00 003BC960 94 04 01 F0 */ stwu r0, 0x1f0(r4)
/* 803BFA04 003BC964 38 00 00 80 */ li r0, 0x80
/* 803BFA08 003BC968 3C 60 80 3C */ lis r3, GetTypeCallback@ha
/* 803BFA0C 003BC96C 90 1E 00 00 */ stw r0, 0(r30)
/* 803BFA10 003BC970 39 03 F8 04 */ addi r8, r3, GetTypeCallback@l
/* 803BFA14 003BC974 38 7B 00 00 */ addi r3, r27, 0
/* 803BFA18 003BC978 38 DE 00 00 */ addi r6, r30, 0
/* 803BFA1C 003BC97C 38 A0 00 03 */ li r5, 3
/* 803BFA20 003BC980 38 E0 00 03 */ li r7, 3
/* 803BFA24 003BC984 39 40 00 00 */ li r10, 0
/* 803BFA28 003BC988 39 20 00 00 */ li r9, 0
/* 803BFA2C 003BC98C 4B FF FC 6D */ bl SITransfer
/* 803BFA30 003BC990 48 00 00 58 */ b lbl_803BFA88
lbl_803BFA34:
/* 803BFA34 003BC994 38 7B 00 00 */ addi r3, r27, 0
/* 803BFA38 003BC998 38 80 00 00 */ li r4, 0
/* 803BFA3C 003BC99C 4B FC 48 FD */ bl OSSetWirelessID
lbl_803BFA40:
/* 803BFA40 003BC9A0 57 60 20 36 */ slwi r0, r27, 4
/* 803BFA44 003BC9A4 83 DE 00 00 */ lwz r30, 0(r30)
/* 803BFA48 003BC9A8 7F FF 02 14 */ add r31, r31, r0
/* 803BFA4C 003BC9AC 3B A0 00 00 */ li r29, 0
/* 803BFA50 003BC9B0 3B 9D 00 00 */ addi r28, r29, 0
/* 803BFA54 003BC9B4 3B FF 01 60 */ addi r31, r31, 0x160
lbl_803BFA58:
/* 803BFA58 003BC9B8 81 9F 00 00 */ lwz r12, 0(r31)
/* 803BFA5C 003BC9BC 28 0C 00 00 */ cmplwi r12, 0
/* 803BFA60 003BC9C0 41 82 00 18 */ beq lbl_803BFA78
/* 803BFA64 003BC9C4 93 9F 00 00 */ stw r28, 0(r31)
/* 803BFA68 003BC9C8 7D 88 03 A6 */ mtlr r12
/* 803BFA6C 003BC9CC 38 7B 00 00 */ addi r3, r27, 0
/* 803BFA70 003BC9D0 38 9E 00 00 */ addi r4, r30, 0
/* 803BFA74 003BC9D4 4E 80 00 21 */ blrl
lbl_803BFA78:
/* 803BFA78 003BC9D8 3B BD 00 01 */ addi r29, r29, 1
/* 803BFA7C 003BC9DC 2C 1D 00 04 */ cmpwi r29, 4
/* 803BFA80 003BC9E0 3B FF 00 04 */ addi r31, r31, 4
/* 803BFA84 003BC9E4 41 80 FF D4 */ blt lbl_803BFA58
lbl_803BFA88:
/* 803BFA88 003BC9E8 BB 41 00 18 */ lmw r26, 0x18(r1)
/* 803BFA8C 003BC9EC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803BFA90 003BC9F0 38 21 00 30 */ addi r1, r1, 0x30
/* 803BFA94 003BC9F4 7C 08 03 A6 */ mtlr r0
/* 803BFA98 003BC9F8 4E 80 00 20 */ blr
.global SIGetType
SIGetType:
/* 803BFA9C 003BC9FC 7C 08 02 A6 */ mflr r0
/* 803BFAA0 003BCA00 90 01 00 04 */ stw r0, 4(r1)
/* 803BFAA4 003BCA04 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 803BFAA8 003BCA08 BF 61 00 14 */ stmw r27, 0x14(r1)
/* 803BFAAC 003BCA0C 7C 7B 1B 78 */ mr r27, r3
/* 803BFAB0 003BCA10 4B FC 1B B1 */ bl OSDisableInterrupts
/* 803BFAB4 003BCA14 3C 80 80 3F */ lis r4, Type@ha
/* 803BFAB8 003BCA18 57 65 10 3A */ slwi r5, r27, 2
/* 803BFABC 003BCA1C 38 04 6E F8 */ addi r0, r4, Type@l
/* 803BFAC0 003BCA20 7F C0 2A 14 */ add r30, r0, r5
/* 803BFAC4 003BCA24 83 9E 00 00 */ lwz r28, 0(r30)
/* 803BFAC8 003BCA28 7C 7D 1B 78 */ mr r29, r3
/* 803BFACC 003BCA2C 4B FC 58 FD */ bl __OSGetSystemTime
/* 803BFAD0 003BCA30 3C A0 80 57 */ lis r5, lbl_80569DB8@ha
/* 803BFAD4 003BCA34 57 66 18 38 */ slwi r6, r27, 3
/* 803BFAD8 003BCA38 38 05 9D B8 */ addi r0, r5, lbl_80569DB8@l
/* 803BFADC 003BCA3C 7F E0 32 14 */ add r31, r0, r6
/* 803BFAE0 003BCA40 80 DF 00 04 */ lwz r6, 4(r31)
/* 803BFAE4 003BCA44 3C A0 80 3F */ lis r5, Si@ha
/* 803BFAE8 003BCA48 38 A5 6E E4 */ addi r5, r5, Si@l
/* 803BFAEC 003BCA4C 80 1F 00 00 */ lwz r0, 0(r31)
/* 803BFAF0 003BCA50 7C 86 20 10 */ subfc r4, r6, r4
/* 803BFAF4 003BCA54 7C 00 19 10 */ subfe r0, r0, r3
/* 803BFAF8 003BCA58 80 C5 00 04 */ lwz r6, 4(r5)
/* 803BFAFC 003BCA5C 38 A0 00 80 */ li r5, 0x80
/* 803BFB00 003BCA60 7C A3 DE 30 */ sraw r3, r5, r27
/* 803BFB04 003BCA64 7C C3 18 39 */ and. r3, r6, r3
/* 803BFB08 003BCA68 41 82 00 34 */ beq lbl_803BFB3C
/* 803BFB0C 003BCA6C 28 1C 00 08 */ cmplwi r28, 8
/* 803BFB10 003BCA70 41 82 00 20 */ beq lbl_803BFB30
/* 803BFB14 003BCA74 4B FC 58 B5 */ bl __OSGetSystemTime
/* 803BFB18 003BCA78 90 9F 00 04 */ stw r4, 4(r31)
/* 803BFB1C 003BCA7C 90 7F 00 00 */ stw r3, 0(r31)
/* 803BFB20 003BCA80 7F A3 EB 78 */ mr r3, r29
/* 803BFB24 003BCA84 4B FC 1B 65 */ bl OSRestoreInterrupts
/* 803BFB28 003BCA88 7F 83 E3 78 */ mr r3, r28
/* 803BFB2C 003BCA8C 48 00 01 20 */ b lbl_803BFC4C
lbl_803BFB30:
/* 803BFB30 003BCA90 90 BE 00 00 */ stw r5, 0(r30)
/* 803BFB34 003BCA94 3B 80 00 80 */ li r28, 0x80
/* 803BFB38 003BCA98 48 00 00 B4 */ b lbl_803BFBEC
lbl_803BFB3C:
/* 803BFB3C 003BCA9C 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 803BFB40 003BCAA0 80 C3 00 F8 */ lwz r6, 0x800000F8@l(r3)
/* 803BFB44 003BCAA4 3C A0 10 62 */ lis r5, 0x10624DD3@ha
/* 803BFB48 003BCAA8 38 A5 4D D3 */ addi r5, r5, 0x10624DD3@l
/* 803BFB4C 003BCAAC 54 C6 F0 BE */ srwi r6, r6, 2
/* 803BFB50 003BCAB0 7C A5 30 16 */ mulhwu r5, r5, r6
/* 803BFB54 003BCAB4 54 A5 D1 BE */ srwi r5, r5, 6
/* 803BFB58 003BCAB8 1C E5 00 32 */ mulli r7, r5, 0x32
/* 803BFB5C 003BCABC 38 60 00 00 */ li r3, 0
/* 803BFB60 003BCAC0 6C 66 80 00 */ xoris r6, r3, 0x8000
/* 803BFB64 003BCAC4 6C 05 80 00 */ xoris r5, r0, 0x8000
/* 803BFB68 003BCAC8 7C 64 38 10 */ subfc r3, r4, r7
/* 803BFB6C 003BCACC 7C A5 31 10 */ subfe r5, r5, r6
/* 803BFB70 003BCAD0 7C A6 31 10 */ subfe r5, r6, r6
/* 803BFB74 003BCAD4 7C A5 00 D1 */ neg. r5, r5
/* 803BFB78 003BCAD8 40 82 00 1C */ bne lbl_803BFB94
/* 803BFB7C 003BCADC 28 1C 00 08 */ cmplwi r28, 8
/* 803BFB80 003BCAE0 41 82 00 14 */ beq lbl_803BFB94
/* 803BFB84 003BCAE4 7F A3 EB 78 */ mr r3, r29
/* 803BFB88 003BCAE8 4B FC 1B 01 */ bl OSRestoreInterrupts
/* 803BFB8C 003BCAEC 7F 83 E3 78 */ mr r3, r28
/* 803BFB90 003BCAF0 48 00 00 BC */ b lbl_803BFC4C
lbl_803BFB94:
/* 803BFB94 003BCAF4 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 803BFB98 003BCAF8 80 C3 00 F8 */ lwz r6, 0x800000F8@l(r3)
/* 803BFB9C 003BCAFC 3C A0 10 62 */ lis r5, 0x10624DD3@ha
/* 803BFBA0 003BCB00 38 A5 4D D3 */ addi r5, r5, 0x10624DD3@l
/* 803BFBA4 003BCB04 54 C6 F0 BE */ srwi r6, r6, 2
/* 803BFBA8 003BCB08 7C A5 30 16 */ mulhwu r5, r5, r6
/* 803BFBAC 003BCB0C 54 A5 D1 BE */ srwi r5, r5, 6
/* 803BFBB0 003BCB10 1C C5 00 4B */ mulli r6, r5, 0x4b
/* 803BFBB4 003BCB14 38 60 00 00 */ li r3, 0
/* 803BFBB8 003BCB18 6C 65 80 00 */ xoris r5, r3, 0x8000
/* 803BFBBC 003BCB1C 6C 03 80 00 */ xoris r3, r0, 0x8000
/* 803BFBC0 003BCB20 7C 04 30 10 */ subfc r0, r4, r6
/* 803BFBC4 003BCB24 7C 63 29 10 */ subfe r3, r3, r5
/* 803BFBC8 003BCB28 7C 65 29 10 */ subfe r3, r5, r5
/* 803BFBCC 003BCB2C 7C 63 00 D1 */ neg. r3, r3
/* 803BFBD0 003BCB30 40 82 00 10 */ bne lbl_803BFBE0
/* 803BFBD4 003BCB34 38 00 00 80 */ li r0, 0x80
/* 803BFBD8 003BCB38 90 1E 00 00 */ stw r0, 0(r30)
/* 803BFBDC 003BCB3C 48 00 00 10 */ b lbl_803BFBEC
lbl_803BFBE0:
/* 803BFBE0 003BCB40 38 00 00 80 */ li r0, 0x80
/* 803BFBE4 003BCB44 90 1E 00 00 */ stw r0, 0(r30)
/* 803BFBE8 003BCB48 3B 80 00 80 */ li r28, 0x80
lbl_803BFBEC:
/* 803BFBEC 003BCB4C 4B FC 57 DD */ bl __OSGetSystemTime
/* 803BFBF0 003BCB50 90 9F 00 04 */ stw r4, 4(r31)
/* 803BFBF4 003BCB54 3C 80 43 1C */ lis r4, 0x431BDE83@ha
/* 803BFBF8 003BCB58 3C A0 80 3C */ lis r5, GetTypeCallback@ha
/* 803BFBFC 003BCB5C 90 7F 00 00 */ stw r3, 0(r31)
/* 803BFC00 003BCB60 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 803BFC04 003BCB64 39 05 F8 04 */ addi r8, r5, GetTypeCallback@l
/* 803BFC08 003BCB68 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
/* 803BFC0C 003BCB6C 38 84 DE 83 */ addi r4, r4, 0x431BDE83@l
/* 803BFC10 003BCB70 38 7B 00 00 */ addi r3, r27, 0
/* 803BFC14 003BCB74 54 00 F0 BE */ srwi r0, r0, 2
/* 803BFC18 003BCB78 7C 04 00 16 */ mulhwu r0, r4, r0
/* 803BFC1C 003BCB7C 54 00 8B FE */ srwi r0, r0, 0xf
/* 803BFC20 003BCB80 1C 00 00 41 */ mulli r0, r0, 0x41
/* 803BFC24 003BCB84 54 0A E8 FE */ srwi r10, r0, 3
/* 803BFC28 003BCB88 38 DE 00 00 */ addi r6, r30, 0
/* 803BFC2C 003BCB8C 38 8D B0 14 */ addi r4, r13, lbl_805A9BD4@sda21
/* 803BFC30 003BCB90 38 A0 00 01 */ li r5, 1
/* 803BFC34 003BCB94 38 E0 00 03 */ li r7, 3
/* 803BFC38 003BCB98 39 20 00 00 */ li r9, 0
/* 803BFC3C 003BCB9C 4B FF FA 5D */ bl SITransfer
/* 803BFC40 003BCBA0 7F A3 EB 78 */ mr r3, r29
/* 803BFC44 003BCBA4 4B FC 1A 45 */ bl OSRestoreInterrupts
/* 803BFC48 003BCBA8 7F 83 E3 78 */ mr r3, r28
lbl_803BFC4C:
/* 803BFC4C 003BCBAC BB 61 00 14 */ lmw r27, 0x14(r1)
/* 803BFC50 003BCBB0 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803BFC54 003BCBB4 38 21 00 28 */ addi r1, r1, 0x28
/* 803BFC58 003BCBB8 7C 08 03 A6 */ mtlr r0
/* 803BFC5C 003BCBBC 4E 80 00 20 */ blr
.global SIGetTypeAsync
SIGetTypeAsync:
/* 803BFC60 003BCBC0 7C 08 02 A6 */ mflr r0
/* 803BFC64 003BCBC4 90 01 00 04 */ stw r0, 4(r1)
/* 803BFC68 003BCBC8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803BFC6C 003BCBCC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803BFC70 003BCBD0 3B E4 00 00 */ addi r31, r4, 0
/* 803BFC74 003BCBD4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803BFC78 003BCBD8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803BFC7C 003BCBDC 93 81 00 10 */ stw r28, 0x10(r1)
/* 803BFC80 003BCBE0 3B 83 00 00 */ addi r28, r3, 0
/* 803BFC84 003BCBE4 4B FC 19 DD */ bl OSDisableInterrupts
/* 803BFC88 003BCBE8 3B C3 00 00 */ addi r30, r3, 0
/* 803BFC8C 003BCBEC 38 7C 00 00 */ addi r3, r28, 0
/* 803BFC90 003BCBF0 4B FF FE 0D */ bl SIGetType
/* 803BFC94 003BCBF4 3C 80 80 3F */ lis r4, Type@ha
/* 803BFC98 003BCBF8 57 85 10 3A */ slwi r5, r28, 2
/* 803BFC9C 003BCBFC 38 04 6E F8 */ addi r0, r4, Type@l
/* 803BFCA0 003BCC00 7C 80 2A 14 */ add r4, r0, r5
/* 803BFCA4 003BCC04 80 04 00 00 */ lwz r0, 0(r4)
/* 803BFCA8 003BCC08 3B A3 00 00 */ addi r29, r3, 0
/* 803BFCAC 003BCC0C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 803BFCB0 003BCC10 41 82 00 AC */ beq lbl_803BFD5C
/* 803BFCB4 003BCC14 3C 60 80 57 */ lis r3, lbl_80569DF8@ha
/* 803BFCB8 003BCC18 57 84 20 36 */ slwi r4, r28, 4
/* 803BFCBC 003BCC1C 38 03 9D F8 */ addi r0, r3, lbl_80569DF8@l
/* 803BFCC0 003BCC20 7C 80 22 14 */ add r4, r0, r4
/* 803BFCC4 003BCC24 80 04 00 00 */ lwz r0, 0(r4)
/* 803BFCC8 003BCC28 38 A0 00 00 */ li r5, 0
/* 803BFCCC 003BCC2C 7C 00 F8 40 */ cmplw r0, r31
/* 803BFCD0 003BCC30 41 82 00 A0 */ beq lbl_803BFD70
/* 803BFCD4 003BCC34 28 00 00 00 */ cmplwi r0, 0
/* 803BFCD8 003BCC38 40 82 00 10 */ bne lbl_803BFCE8
/* 803BFCDC 003BCC3C 54 A0 10 3A */ slwi r0, r5, 2
/* 803BFCE0 003BCC40 7F E4 01 2E */ stwx r31, r4, r0
/* 803BFCE4 003BCC44 48 00 00 8C */ b lbl_803BFD70
lbl_803BFCE8:
/* 803BFCE8 003BCC48 38 64 00 04 */ addi r3, r4, 4
/* 803BFCEC 003BCC4C 80 04 00 04 */ lwz r0, 4(r4)
/* 803BFCF0 003BCC50 38 A0 00 01 */ li r5, 1
/* 803BFCF4 003BCC54 7C 00 F8 40 */ cmplw r0, r31
/* 803BFCF8 003BCC58 41 82 00 78 */ beq lbl_803BFD70
/* 803BFCFC 003BCC5C 28 00 00 00 */ cmplwi r0, 0
/* 803BFD00 003BCC60 40 82 00 10 */ bne lbl_803BFD10
/* 803BFD04 003BCC64 54 A0 10 3A */ slwi r0, r5, 2
/* 803BFD08 003BCC68 7F E4 01 2E */ stwx r31, r4, r0
/* 803BFD0C 003BCC6C 48 00 00 64 */ b lbl_803BFD70
lbl_803BFD10:
/* 803BFD10 003BCC70 84 03 00 04 */ lwzu r0, 4(r3)
/* 803BFD14 003BCC74 38 A0 00 02 */ li r5, 2
/* 803BFD18 003BCC78 7C 00 F8 40 */ cmplw r0, r31
/* 803BFD1C 003BCC7C 41 82 00 54 */ beq lbl_803BFD70
/* 803BFD20 003BCC80 28 00 00 00 */ cmplwi r0, 0
/* 803BFD24 003BCC84 40 82 00 10 */ bne lbl_803BFD34
/* 803BFD28 003BCC88 54 A0 10 3A */ slwi r0, r5, 2
/* 803BFD2C 003BCC8C 7F E4 01 2E */ stwx r31, r4, r0
/* 803BFD30 003BCC90 48 00 00 40 */ b lbl_803BFD70
lbl_803BFD34:
/* 803BFD34 003BCC94 80 03 00 04 */ lwz r0, 4(r3)
/* 803BFD38 003BCC98 38 A0 00 03 */ li r5, 3
/* 803BFD3C 003BCC9C 7C 00 F8 40 */ cmplw r0, r31
/* 803BFD40 003BCCA0 41 82 00 30 */ beq lbl_803BFD70
/* 803BFD44 003BCCA4 28 00 00 00 */ cmplwi r0, 0
/* 803BFD48 003BCCA8 40 82 00 28 */ bne lbl_803BFD70
/* 803BFD4C 003BCCAC 54 A0 10 3A */ slwi r0, r5, 2
/* 803BFD50 003BCCB0 7F E4 01 2E */ stwx r31, r4, r0
/* 803BFD54 003BCCB4 48 00 00 1C */ b lbl_803BFD70
/* 803BFD58 003BCCB8 48 00 00 18 */ b lbl_803BFD70
lbl_803BFD5C:
/* 803BFD5C 003BCCBC 39 9F 00 00 */ addi r12, r31, 0
/* 803BFD60 003BCCC0 7D 88 03 A6 */ mtlr r12
/* 803BFD64 003BCCC4 38 7C 00 00 */ addi r3, r28, 0
/* 803BFD68 003BCCC8 38 9D 00 00 */ addi r4, r29, 0
/* 803BFD6C 003BCCCC 4E 80 00 21 */ blrl
lbl_803BFD70:
/* 803BFD70 003BCCD0 7F C3 F3 78 */ mr r3, r30
/* 803BFD74 003BCCD4 4B FC 19 15 */ bl OSRestoreInterrupts
/* 803BFD78 003BCCD8 7F A3 EB 78 */ mr r3, r29
/* 803BFD7C 003BCCDC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803BFD80 003BCCE0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803BFD84 003BCCE4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803BFD88 003BCCE8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803BFD8C 003BCCEC 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803BFD90 003BCCF0 38 21 00 20 */ addi r1, r1, 0x20
/* 803BFD94 003BCCF4 7C 08 03 A6 */ mtlr r0
/* 803BFD98 003BCCF8 4E 80 00 20 */ blr
.global SIDecodeType
SIDecodeType:
/* 803BFD9C 003BCCFC 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c
/* 803BFDA0 003BCD00 54 64 06 3E */ clrlwi r4, r3, 0x18
/* 803BFDA4 003BCD04 54 65 00 2E */ rlwinm r5, r3, 0, 0, 0x17
/* 803BFDA8 003BCD08 41 82 00 0C */ beq lbl_803BFDB4
/* 803BFDAC 003BCD0C 38 60 00 08 */ li r3, 8
/* 803BFDB0 003BCD10 4E 80 00 20 */ blr
lbl_803BFDB4:
/* 803BFDB4 003BCD14 70 80 00 47 */ andi. r0, r4, 0x47
/* 803BFDB8 003BCD18 41 82 00 0C */ beq lbl_803BFDC4
/* 803BFDBC 003BCD1C 38 60 00 40 */ li r3, 0x40
/* 803BFDC0 003BCD20 4E 80 00 20 */ blr
lbl_803BFDC4:
/* 803BFDC4 003BCD24 28 04 00 00 */ cmplwi r4, 0
/* 803BFDC8 003BCD28 41 82 00 0C */ beq lbl_803BFDD4
/* 803BFDCC 003BCD2C 38 60 00 80 */ li r3, 0x80
/* 803BFDD0 003BCD30 4E 80 00 20 */ blr
lbl_803BFDD4:
/* 803BFDD4 003BCD34 54 A3 00 C9 */ rlwinm. r3, r5, 0, 3, 4
/* 803BFDD8 003BCD38 40 82 00 64 */ bne lbl_803BFE3C
/* 803BFDDC 003BCD3C 54 A3 00 1E */ rlwinm r3, r5, 0, 0, 0xf
/* 803BFDE0 003BCD40 3C 00 00 04 */ lis r0, 4
/* 803BFDE4 003BCD44 7C 03 00 00 */ cmpw r3, r0
/* 803BFDE8 003BCD48 4D 82 00 20 */ beqlr
/* 803BFDEC 003BCD4C 40 80 00 24 */ bge lbl_803BFE10
/* 803BFDF0 003BCD50 3C 00 00 02 */ lis r0, 2
/* 803BFDF4 003BCD54 7C 03 00 00 */ cmpw r3, r0
/* 803BFDF8 003BCD58 4D 82 00 20 */ beqlr
/* 803BFDFC 003BCD5C 40 80 00 38 */ bge lbl_803BFE34
/* 803BFE00 003BCD60 3C 00 00 01 */ lis r0, 1
/* 803BFE04 003BCD64 7C 03 00 00 */ cmpw r3, r0
/* 803BFE08 003BCD68 4D 82 00 20 */ beqlr
/* 803BFE0C 003BCD6C 48 00 00 28 */ b lbl_803BFE34
lbl_803BFE10:
/* 803BFE10 003BCD70 3C 00 05 00 */ lis r0, 0x500
/* 803BFE14 003BCD74 7C 03 00 00 */ cmpw r3, r0
/* 803BFE18 003BCD78 4D 82 00 20 */ beqlr
/* 803BFE1C 003BCD7C 40 80 00 18 */ bge lbl_803BFE34
/* 803BFE20 003BCD80 3C 00 02 00 */ lis r0, 0x200
/* 803BFE24 003BCD84 7C 03 00 00 */ cmpw r3, r0
/* 803BFE28 003BCD88 4D 82 00 20 */ beqlr
/* 803BFE2C 003BCD8C 48 00 00 08 */ b lbl_803BFE34
.global sub_803bfe30
sub_803bfe30:
/* 803BFE30 003BCD90 4E 80 00 20 */ blr
lbl_803BFE34:
/* 803BFE34 003BCD94 38 60 00 40 */ li r3, 0x40
/* 803BFE38 003BCD98 4E 80 00 20 */ blr
lbl_803BFE3C:
/* 803BFE3C 003BCD9C 3C 03 F8 00 */ addis r0, r3, 0xf800
/* 803BFE40 003BCDA0 28 00 00 00 */ cmplwi r0, 0
/* 803BFE44 003BCDA4 41 82 00 0C */ beq lbl_803BFE50
/* 803BFE48 003BCDA8 38 60 00 40 */ li r3, 0x40
/* 803BFE4C 003BCDAC 4E 80 00 20 */ blr
lbl_803BFE50:
/* 803BFE50 003BCDB0 54 A3 00 1E */ rlwinm r3, r5, 0, 0, 0xf
/* 803BFE54 003BCDB4 3C 00 09 00 */ lis r0, 0x900
/* 803BFE58 003BCDB8 7C 03 00 00 */ cmpw r3, r0
/* 803BFE5C 003BCDBC 4D 82 00 20 */ beqlr
/* 803BFE60 003BCDC0 40 80 00 18 */ bge lbl_803BFE78
/* 803BFE64 003BCDC4 3C 00 08 00 */ lis r0, 0x800
/* 803BFE68 003BCDC8 7C 03 00 00 */ cmpw r3, r0
/* 803BFE6C 003BCDCC 4D 82 00 20 */ beqlr
/* 803BFE70 003BCDD0 48 00 00 08 */ b lbl_803BFE78
.global sub_803bfe74
sub_803bfe74:
/* 803BFE74 003BCDD4 4E 80 00 20 */ blr
lbl_803BFE78:
/* 803BFE78 003BCDD8 54 A3 00 14 */ rlwinm r3, r5, 0, 0, 0xa
/* 803BFE7C 003BCDDC 3C 03 F7 E0 */ addis r0, r3, 0xf7e0
/* 803BFE80 003BCDE0 28 00 00 00 */ cmplwi r0, 0
/* 803BFE84 003BCDE4 40 82 00 0C */ bne lbl_803BFE90
/* 803BFE88 003BCDE8 3C 60 08 20 */ lis r3, 0x820
/* 803BFE8C 003BCDEC 4E 80 00 20 */ blr
lbl_803BFE90:
/* 803BFE90 003BCDF0 54 A0 00 01 */ rlwinm. r0, r5, 0, 0, 0
/* 803BFE94 003BCDF4 41 82 00 34 */ beq lbl_803BFEC8
/* 803BFE98 003BCDF8 54 A0 01 4B */ rlwinm. r0, r5, 0, 5, 5
/* 803BFE9C 003BCDFC 40 82 00 2C */ bne lbl_803BFEC8
/* 803BFEA0 003BCE00 74 A3 8B 10 */ andis. r3, r5, 0x8b10
/* 803BFEA4 003BCE04 3C 03 74 F0 */ addis r0, r3, 0x74f0
/* 803BFEA8 003BCE08 28 00 00 00 */ cmplwi r0, 0
/* 803BFEAC 003BCE0C 40 82 00 0C */ bne lbl_803BFEB8
/* 803BFEB0 003BCE10 3C 60 8B 10 */ lis r3, 0x8b10
/* 803BFEB4 003BCE14 4E 80 00 20 */ blr
lbl_803BFEB8:
/* 803BFEB8 003BCE18 54 A0 01 8D */ rlwinm. r0, r5, 0, 6, 6
/* 803BFEBC 003BCE1C 40 82 00 0C */ bne lbl_803BFEC8
/* 803BFEC0 003BCE20 3C 60 88 00 */ lis r3, 0x8800
/* 803BFEC4 003BCE24 4E 80 00 20 */ blr
lbl_803BFEC8:
/* 803BFEC8 003BCE28 74 A3 09 00 */ andis. r3, r5, 0x900
/* 803BFECC 003BCE2C 3C 03 F7 00 */ addis r0, r3, 0xf700
/* 803BFED0 003BCE30 28 00 00 00 */ cmplwi r0, 0
/* 803BFED4 003BCE34 40 82 00 0C */ bne lbl_803BFEE0
/* 803BFED8 003BCE38 3C 60 09 00 */ lis r3, 0x900
/* 803BFEDC 003BCE3C 4E 80 00 20 */ blr
lbl_803BFEE0:
/* 803BFEE0 003BCE40 38 60 00 40 */ li r3, 0x40
/* 803BFEE4 003BCE44 4E 80 00 20 */ blr
.global SIProbe
SIProbe:
/* 803BFEE8 003BCE48 7C 08 02 A6 */ mflr r0
/* 803BFEEC 003BCE4C 90 01 00 04 */ stw r0, 4(r1)
/* 803BFEF0 003BCE50 94 21 FF F8 */ stwu r1, -8(r1)
/* 803BFEF4 003BCE54 4B FF FB A9 */ bl SIGetType
/* 803BFEF8 003BCE58 4B FF FE A5 */ bl SIDecodeType
/* 803BFEFC 003BCE5C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 803BFF00 003BCE60 38 21 00 08 */ addi r1, r1, 8
/* 803BFF04 003BCE64 7C 08 03 A6 */ mtlr r0
/* 803BFF08 003BCE68 4E 80 00 20 */ blr