.include "macros.inc" .section .data, "wa" .global lbl_803F2398 lbl_803F2398: .incbin "baserom.dol", 0x3EF398, 0x10 .section .text, "ax" # 0x80003640 - 0x803CB1C0 .global UpdateOrigin UpdateOrigin: /* 80385AFC 00382A5C 7C 08 02 A6 */ mflr r0 /* 80385B00 00382A60 3C A0 80 54 */ lis r5, lbl_80542000@ha /* 80385B04 00382A64 90 01 00 04 */ stw r0, 4(r1) /* 80385B08 00382A68 1C C3 00 0C */ mulli r6, r3, 0xc /* 80385B0C 00382A6C 94 21 FF E8 */ stwu r1, -0x18(r1) /* 80385B10 00382A70 38 A5 20 00 */ addi r5, r5, lbl_80542000@l /* 80385B14 00382A74 93 E1 00 14 */ stw r31, 0x14(r1) /* 80385B18 00382A78 7F E5 32 14 */ add r31, r5, r6 /* 80385B1C 00382A7C 80 0D 9F A4 */ lwz r0, lbl_805A8B64@sda21(r13) /* 80385B20 00382A80 54 04 05 6E */ rlwinm r4, r0, 0, 0x15, 0x17 /* 80385B24 00382A84 2C 04 04 00 */ cmpwi r4, 0x400 /* 80385B28 00382A88 3C 00 80 00 */ lis r0, 0x8000 /* 80385B2C 00382A8C 7C 00 1C 30 */ srw r0, r0, r3 /* 80385B30 00382A90 41 82 00 F4 */ beq lbl_80385C24 /* 80385B34 00382A94 40 80 00 34 */ bge lbl_80385B68 /* 80385B38 00382A98 2C 04 02 00 */ cmpwi r4, 0x200 /* 80385B3C 00382A9C 41 82 00 B8 */ beq lbl_80385BF4 /* 80385B40 00382AA0 40 80 00 1C */ bge lbl_80385B5C /* 80385B44 00382AA4 2C 04 01 00 */ cmpwi r4, 0x100 /* 80385B48 00382AA8 41 82 00 78 */ beq lbl_80385BC0 /* 80385B4C 00382AAC 40 80 00 D8 */ bge lbl_80385C24 /* 80385B50 00382AB0 2C 04 00 00 */ cmpwi r4, 0 /* 80385B54 00382AB4 41 82 00 38 */ beq lbl_80385B8C /* 80385B58 00382AB8 48 00 00 CC */ b lbl_80385C24 lbl_80385B5C: /* 80385B5C 00382ABC 2C 04 03 00 */ cmpwi r4, 0x300 /* 80385B60 00382AC0 41 82 00 C4 */ beq lbl_80385C24 /* 80385B64 00382AC4 48 00 00 C0 */ b lbl_80385C24 lbl_80385B68: /* 80385B68 00382AC8 2C 04 06 00 */ cmpwi r4, 0x600 /* 80385B6C 00382ACC 41 82 00 20 */ beq lbl_80385B8C /* 80385B70 00382AD0 40 80 00 10 */ bge lbl_80385B80 /* 80385B74 00382AD4 2C 04 05 00 */ cmpwi r4, 0x500 /* 80385B78 00382AD8 41 82 00 14 */ beq lbl_80385B8C /* 80385B7C 00382ADC 48 00 00 A8 */ b lbl_80385C24 lbl_80385B80: /* 80385B80 00382AE0 2C 04 07 00 */ cmpwi r4, 0x700 /* 80385B84 00382AE4 41 82 00 08 */ beq lbl_80385B8C /* 80385B88 00382AE8 48 00 00 9C */ b lbl_80385C24 lbl_80385B8C: /* 80385B8C 00382AEC 88 9F 00 06 */ lbz r4, 6(r31) /* 80385B90 00382AF0 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385B94 00382AF4 98 9F 00 06 */ stb r4, 6(r31) /* 80385B98 00382AF8 88 9F 00 07 */ lbz r4, 7(r31) /* 80385B9C 00382AFC 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385BA0 00382B00 98 9F 00 07 */ stb r4, 7(r31) /* 80385BA4 00382B04 88 9F 00 08 */ lbz r4, 8(r31) /* 80385BA8 00382B08 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385BAC 00382B0C 98 9F 00 08 */ stb r4, 8(r31) /* 80385BB0 00382B10 88 9F 00 09 */ lbz r4, 9(r31) /* 80385BB4 00382B14 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385BB8 00382B18 98 9F 00 09 */ stb r4, 9(r31) /* 80385BBC 00382B1C 48 00 00 68 */ b lbl_80385C24 lbl_80385BC0: /* 80385BC0 00382B20 88 9F 00 04 */ lbz r4, 4(r31) /* 80385BC4 00382B24 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385BC8 00382B28 98 9F 00 04 */ stb r4, 4(r31) /* 80385BCC 00382B2C 88 9F 00 05 */ lbz r4, 5(r31) /* 80385BD0 00382B30 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385BD4 00382B34 98 9F 00 05 */ stb r4, 5(r31) /* 80385BD8 00382B38 88 9F 00 08 */ lbz r4, 8(r31) /* 80385BDC 00382B3C 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385BE0 00382B40 98 9F 00 08 */ stb r4, 8(r31) /* 80385BE4 00382B44 88 9F 00 09 */ lbz r4, 9(r31) /* 80385BE8 00382B48 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385BEC 00382B4C 98 9F 00 09 */ stb r4, 9(r31) /* 80385BF0 00382B50 48 00 00 34 */ b lbl_80385C24 lbl_80385BF4: /* 80385BF4 00382B54 88 9F 00 04 */ lbz r4, 4(r31) /* 80385BF8 00382B58 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385BFC 00382B5C 98 9F 00 04 */ stb r4, 4(r31) /* 80385C00 00382B60 88 9F 00 05 */ lbz r4, 5(r31) /* 80385C04 00382B64 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385C08 00382B68 98 9F 00 05 */ stb r4, 5(r31) /* 80385C0C 00382B6C 88 9F 00 06 */ lbz r4, 6(r31) /* 80385C10 00382B70 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385C14 00382B74 98 9F 00 06 */ stb r4, 6(r31) /* 80385C18 00382B78 88 9F 00 07 */ lbz r4, 7(r31) /* 80385C1C 00382B7C 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b /* 80385C20 00382B80 98 9F 00 07 */ stb r4, 7(r31) lbl_80385C24: /* 80385C24 00382B84 88 9F 00 02 */ lbz r4, 2(r31) /* 80385C28 00382B88 38 84 FF 80 */ addi r4, r4, -128 /* 80385C2C 00382B8C 98 9F 00 02 */ stb r4, 2(r31) /* 80385C30 00382B90 88 9F 00 03 */ lbz r4, 3(r31) /* 80385C34 00382B94 38 84 FF 80 */ addi r4, r4, -128 /* 80385C38 00382B98 98 9F 00 03 */ stb r4, 3(r31) /* 80385C3C 00382B9C 88 9F 00 04 */ lbz r4, 4(r31) /* 80385C40 00382BA0 38 84 FF 80 */ addi r4, r4, -128 /* 80385C44 00382BA4 98 9F 00 04 */ stb r4, 4(r31) /* 80385C48 00382BA8 88 9F 00 05 */ lbz r4, 5(r31) /* 80385C4C 00382BAC 38 84 FF 80 */ addi r4, r4, -128 /* 80385C50 00382BB0 98 9F 00 05 */ stb r4, 5(r31) /* 80385C54 00382BB4 80 8D 9F A0 */ lwz r4, lbl_805A8B60@sda21(r13) /* 80385C58 00382BB8 7C 80 00 39 */ and. r0, r4, r0 /* 80385C5C 00382BBC 41 82 00 30 */ beq lbl_80385C8C /* 80385C60 00382BC0 88 1F 00 02 */ lbz r0, 2(r31) /* 80385C64 00382BC4 7C 00 07 74 */ extsb r0, r0 /* 80385C68 00382BC8 2C 00 00 40 */ cmpwi r0, 0x40 /* 80385C6C 00382BCC 40 81 00 20 */ ble lbl_80385C8C /* 80385C70 00382BD0 48 03 9E 2D */ bl SIGetType /* 80385C74 00382BD4 54 63 00 1E */ rlwinm r3, r3, 0, 0, 0xf /* 80385C78 00382BD8 3C 03 F7 00 */ addis r0, r3, 0xf700 /* 80385C7C 00382BDC 28 00 00 00 */ cmplwi r0, 0 /* 80385C80 00382BE0 40 82 00 0C */ bne lbl_80385C8C /* 80385C84 00382BE4 38 00 00 00 */ li r0, 0 /* 80385C88 00382BE8 98 1F 00 02 */ stb r0, 2(r31) lbl_80385C8C: /* 80385C8C 00382BEC 80 01 00 1C */ lwz r0, 0x1c(r1) /* 80385C90 00382BF0 83 E1 00 14 */ lwz r31, 0x14(r1) /* 80385C94 00382BF4 38 21 00 18 */ addi r1, r1, 0x18 /* 80385C98 00382BF8 7C 08 03 A6 */ mtlr r0 /* 80385C9C 00382BFC 4E 80 00 20 */ blr .global PADOriginCallback PADOriginCallback: /* 80385CA0 00382C00 7C 08 02 A6 */ mflr r0 /* 80385CA4 00382C04 90 01 00 04 */ stw r0, 4(r1) /* 80385CA8 00382C08 54 80 07 3F */ clrlwi. r0, r4, 0x1c /* 80385CAC 00382C0C 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80385CB0 00382C10 93 E1 00 2C */ stw r31, 0x2c(r1) /* 80385CB4 00382C14 40 82 00 48 */ bne lbl_80385CFC /* 80385CB8 00382C18 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80385CBC 00382C1C 4B FF FE 41 */ bl UpdateOrigin /* 80385CC0 00382C20 83 ED 9F 9C */ lwz r31, lbl_805A8B5C@sda21(r13) /* 80385CC4 00382C24 3C 00 80 00 */ lis r0, 0x8000 /* 80385CC8 00382C28 80 6D AD 74 */ lwz r3, lbl_805A9934@sda21(r13) /* 80385CCC 00382C2C 38 81 00 1C */ addi r4, r1, 0x1c /* 80385CD0 00382C30 7C 00 FC 30 */ srw r0, r0, r31 /* 80385CD4 00382C34 7C 60 03 78 */ or r0, r3, r0 /* 80385CD8 00382C38 90 0D AD 74 */ stw r0, lbl_805A9934@sda21(r13) /* 80385CDC 00382C3C 7F E3 FB 78 */ mr r3, r31 /* 80385CE0 00382C40 48 03 98 69 */ bl SIGetResponse /* 80385CE4 00382C44 80 0D 9F A4 */ lwz r0, lbl_805A8B64@sda21(r13) /* 80385CE8 00382C48 38 7F 00 00 */ addi r3, r31, 0 /* 80385CEC 00382C4C 64 04 00 40 */ oris r4, r0, 0x40 /* 80385CF0 00382C50 48 03 95 ED */ bl SISetCommand /* 80385CF4 00382C54 80 6D AD 74 */ lwz r3, lbl_805A9934@sda21(r13) /* 80385CF8 00382C58 48 03 96 75 */ bl SIEnablePolling lbl_80385CFC: /* 80385CFC 00382C5C 80 AD AD 78 */ lwz r5, lbl_805A9938@sda21(r13) /* 80385D00 00382C60 7C A0 00 34 */ cntlzw r0, r5 /* 80385D04 00382C64 90 0D 9F 9C */ stw r0, lbl_805A8B5C@sda21(r13) /* 80385D08 00382C68 80 8D 9F 9C */ lwz r4, lbl_805A8B5C@sda21(r13) /* 80385D0C 00382C6C 2C 04 00 20 */ cmpwi r4, 0x20 /* 80385D10 00382C70 41 82 00 40 */ beq lbl_80385D50 /* 80385D14 00382C74 3C 00 80 00 */ lis r0, 0x8000 /* 80385D18 00382C78 7C 00 24 30 */ srw r0, r0, r4 /* 80385D1C 00382C7C 7C A0 00 78 */ andc r0, r5, r0 /* 80385D20 00382C80 1C 84 00 0C */ mulli r4, r4, 0xc /* 80385D24 00382C84 90 0D AD 78 */ stw r0, lbl_805A9938@sda21(r13) /* 80385D28 00382C88 3C 60 80 54 */ lis r3, lbl_80542000@ha /* 80385D2C 00382C8C 38 03 20 00 */ addi r0, r3, lbl_80542000@l /* 80385D30 00382C90 7C 60 22 14 */ add r3, r0, r4 /* 80385D34 00382C94 38 80 00 00 */ li r4, 0 /* 80385D38 00382C98 38 A0 00 0C */ li r5, 0xc /* 80385D3C 00382C9C 4B C7 D6 6D */ bl memset /* 80385D40 00382CA0 3C 80 80 38 */ lis r4, PADTypeAndStatusCallback@ha /* 80385D44 00382CA4 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80385D48 00382CA8 38 84 5E FC */ addi r4, r4, PADTypeAndStatusCallback@l /* 80385D4C 00382CAC 48 03 9F 15 */ bl SIGetTypeAsync lbl_80385D50: /* 80385D50 00382CB0 80 01 00 34 */ lwz r0, 0x34(r1) /* 80385D54 00382CB4 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 80385D58 00382CB8 38 21 00 30 */ addi r1, r1, 0x30 /* 80385D5C 00382CBC 7C 08 03 A6 */ mtlr r0 /* 80385D60 00382CC0 4E 80 00 20 */ blr .global sub_80385d64 sub_80385d64: /* 80385D64 00382CC4 7C 08 02 A6 */ mflr r0 /* 80385D68 00382CC8 90 01 00 04 */ stw r0, 4(r1) /* 80385D6C 00382CCC 3C 00 80 00 */ lis r0, 0x8000 /* 80385D70 00382CD0 94 21 FF D8 */ stwu r1, -0x28(r1) /* 80385D74 00382CD4 93 E1 00 24 */ stw r31, 0x24(r1) /* 80385D78 00382CD8 3B E4 00 00 */ addi r31, r4, 0 /* 80385D7C 00382CDC 93 C1 00 20 */ stw r30, 0x20(r1) /* 80385D80 00382CE0 93 A1 00 1C */ stw r29, 0x1c(r1) /* 80385D84 00382CE4 7C 7D 1B 78 */ mr r29, r3 /* 80385D88 00382CE8 7C 1E EC 30 */ srw r30, r0, r29 /* 80385D8C 00382CEC 80 6D AD 74 */ lwz r3, lbl_805A9934@sda21(r13) /* 80385D90 00382CF0 7C 60 F0 39 */ and. r0, r3, r30 /* 80385D94 00382CF4 41 82 00 74 */ beq lbl_80385E08 /* 80385D98 00382CF8 57 E0 07 3F */ clrlwi. r0, r31, 0x1c /* 80385D9C 00382CFC 40 82 00 0C */ bne lbl_80385DA8 /* 80385DA0 00382D00 7F A3 EB 78 */ mr r3, r29 /* 80385DA4 00382D04 4B FF FD 59 */ bl UpdateOrigin lbl_80385DA8: /* 80385DA8 00382D08 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c /* 80385DAC 00382D0C 41 82 00 5C */ beq lbl_80385E08 /* 80385DB0 00382D10 4B FF B8 B1 */ bl OSDisableInterrupts /* 80385DB4 00382D14 3B E3 00 00 */ addi r31, r3, 0 /* 80385DB8 00382D18 38 7E 00 00 */ addi r3, r30, 0 /* 80385DBC 00382D1C 48 03 96 4D */ bl SIDisablePolling /* 80385DC0 00382D20 80 CD AD 74 */ lwz r6, lbl_805A9934@sda21(r13) /* 80385DC4 00382D24 7F C8 F0 F8 */ nor r8, r30, r30 /* 80385DC8 00382D28 80 AD AD 80 */ lwz r5, lbl_805A9940@sda21(r13) /* 80385DCC 00382D2C 7F A3 EB 78 */ mr r3, r29 /* 80385DD0 00382D30 80 8D AD 84 */ lwz r4, lbl_805A9944@sda21(r13) /* 80385DD4 00382D34 80 0D AD 88 */ lwz r0, lbl_805A9948@sda21(r13) /* 80385DD8 00382D38 7C C7 40 38 */ and r7, r6, r8 /* 80385DDC 00382D3C 7C A6 40 38 */ and r6, r5, r8 /* 80385DE0 00382D40 90 ED AD 74 */ stw r7, lbl_805A9934@sda21(r13) /* 80385DE4 00382D44 7C 85 40 38 */ and r5, r4, r8 /* 80385DE8 00382D48 7C 00 40 38 */ and r0, r0, r8 /* 80385DEC 00382D4C 90 CD AD 80 */ stw r6, lbl_805A9940@sda21(r13) /* 80385DF0 00382D50 38 80 00 00 */ li r4, 0 /* 80385DF4 00382D54 90 AD AD 84 */ stw r5, lbl_805A9944@sda21(r13) /* 80385DF8 00382D58 90 0D AD 88 */ stw r0, lbl_805A9948@sda21(r13) /* 80385DFC 00382D5C 4B FF E5 3D */ bl OSSetWirelessID /* 80385E00 00382D60 7F E3 FB 78 */ mr r3, r31 /* 80385E04 00382D64 4B FF B8 85 */ bl OSRestoreInterrupts lbl_80385E08: /* 80385E08 00382D68 80 01 00 2C */ lwz r0, 0x2c(r1) /* 80385E0C 00382D6C 83 E1 00 24 */ lwz r31, 0x24(r1) /* 80385E10 00382D70 83 C1 00 20 */ lwz r30, 0x20(r1) /* 80385E14 00382D74 83 A1 00 1C */ lwz r29, 0x1c(r1) /* 80385E18 00382D78 38 21 00 28 */ addi r1, r1, 0x28 /* 80385E1C 00382D7C 7C 08 03 A6 */ mtlr r0 /* 80385E20 00382D80 4E 80 00 20 */ blr .global PADProbeCallback PADProbeCallback: /* 80385E24 00382D84 7C 08 02 A6 */ mflr r0 /* 80385E28 00382D88 90 01 00 04 */ stw r0, 4(r1) /* 80385E2C 00382D8C 54 80 07 3F */ clrlwi. r0, r4, 0x1c /* 80385E30 00382D90 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80385E34 00382D94 93 E1 00 2C */ stw r31, 0x2c(r1) /* 80385E38 00382D98 93 C1 00 28 */ stw r30, 0x28(r1) /* 80385E3C 00382D9C 40 82 00 54 */ bne lbl_80385E90 /* 80385E40 00382DA0 83 CD 9F 9C */ lwz r30, lbl_805A8B5C@sda21(r13) /* 80385E44 00382DA4 3F E0 80 00 */ lis r31, 0x8000 /* 80385E48 00382DA8 80 6D AD 74 */ lwz r3, lbl_805A9934@sda21(r13) /* 80385E4C 00382DAC 38 81 00 1C */ addi r4, r1, 0x1c /* 80385E50 00382DB0 7F E0 F4 30 */ srw r0, r31, r30 /* 80385E54 00382DB4 7C 60 03 78 */ or r0, r3, r0 /* 80385E58 00382DB8 90 0D AD 74 */ stw r0, lbl_805A9934@sda21(r13) /* 80385E5C 00382DBC 7F C3 F3 78 */ mr r3, r30 /* 80385E60 00382DC0 48 03 96 E9 */ bl SIGetResponse /* 80385E64 00382DC4 80 0D 9F A4 */ lwz r0, lbl_805A8B64@sda21(r13) /* 80385E68 00382DC8 38 7E 00 00 */ addi r3, r30, 0 /* 80385E6C 00382DCC 64 04 00 40 */ oris r4, r0, 0x40 /* 80385E70 00382DD0 48 03 94 6D */ bl SISetCommand /* 80385E74 00382DD4 80 6D AD 74 */ lwz r3, lbl_805A9934@sda21(r13) /* 80385E78 00382DD8 48 03 94 F5 */ bl SIEnablePolling /* 80385E7C 00382DDC 80 0D 9F 9C */ lwz r0, lbl_805A8B5C@sda21(r13) /* 80385E80 00382DE0 80 6D AD 80 */ lwz r3, lbl_805A9940@sda21(r13) /* 80385E84 00382DE4 7F E0 04 30 */ srw r0, r31, r0 /* 80385E88 00382DE8 7C 60 03 78 */ or r0, r3, r0 /* 80385E8C 00382DEC 90 0D AD 80 */ stw r0, lbl_805A9940@sda21(r13) lbl_80385E90: /* 80385E90 00382DF0 80 AD AD 78 */ lwz r5, lbl_805A9938@sda21(r13) /* 80385E94 00382DF4 7C A0 00 34 */ cntlzw r0, r5 /* 80385E98 00382DF8 90 0D 9F 9C */ stw r0, lbl_805A8B5C@sda21(r13) /* 80385E9C 00382DFC 80 8D 9F 9C */ lwz r4, lbl_805A8B5C@sda21(r13) /* 80385EA0 00382E00 2C 04 00 20 */ cmpwi r4, 0x20 /* 80385EA4 00382E04 41 82 00 40 */ beq lbl_80385EE4 /* 80385EA8 00382E08 3C 00 80 00 */ lis r0, 0x8000 /* 80385EAC 00382E0C 7C 00 24 30 */ srw r0, r0, r4 /* 80385EB0 00382E10 7C A0 00 78 */ andc r0, r5, r0 /* 80385EB4 00382E14 1C 84 00 0C */ mulli r4, r4, 0xc /* 80385EB8 00382E18 90 0D AD 78 */ stw r0, lbl_805A9938@sda21(r13) /* 80385EBC 00382E1C 3C 60 80 54 */ lis r3, lbl_80542000@ha /* 80385EC0 00382E20 38 03 20 00 */ addi r0, r3, lbl_80542000@l /* 80385EC4 00382E24 7C 60 22 14 */ add r3, r0, r4 /* 80385EC8 00382E28 38 80 00 00 */ li r4, 0 /* 80385ECC 00382E2C 38 A0 00 0C */ li r5, 0xc /* 80385ED0 00382E30 4B C7 D4 D9 */ bl memset /* 80385ED4 00382E34 3C 80 80 38 */ lis r4, PADTypeAndStatusCallback@ha /* 80385ED8 00382E38 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80385EDC 00382E3C 38 84 5E FC */ addi r4, r4, PADTypeAndStatusCallback@l /* 80385EE0 00382E40 48 03 9D 81 */ bl SIGetTypeAsync lbl_80385EE4: /* 80385EE4 00382E44 80 01 00 34 */ lwz r0, 0x34(r1) /* 80385EE8 00382E48 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 80385EEC 00382E4C 83 C1 00 28 */ lwz r30, 0x28(r1) /* 80385EF0 00382E50 38 21 00 30 */ addi r1, r1, 0x30 /* 80385EF4 00382E54 7C 08 03 A6 */ mtlr r0 /* 80385EF8 00382E58 4E 80 00 20 */ blr .global PADTypeAndStatusCallback PADTypeAndStatusCallback: /* 80385EFC 00382E5C 7C 08 02 A6 */ mflr r0 /* 80385F00 00382E60 3C C0 80 54 */ lis r6, lbl_80541FF0@ha /* 80385F04 00382E64 90 01 00 04 */ stw r0, 4(r1) /* 80385F08 00382E68 54 80 07 3F */ clrlwi. r0, r4, 0x1c /* 80385F0C 00382E6C 94 21 FF C0 */ stwu r1, -0x40(r1) /* 80385F10 00382E70 93 E1 00 3C */ stw r31, 0x3c(r1) /* 80385F14 00382E74 3F E0 80 00 */ lis r31, 0x8000 /* 80385F18 00382E78 93 C1 00 38 */ stw r30, 0x38(r1) /* 80385F1C 00382E7C 3B C6 1F F0 */ addi r30, r6, lbl_80541FF0@l /* 80385F20 00382E80 93 A1 00 34 */ stw r29, 0x34(r1) /* 80385F24 00382E84 93 81 00 30 */ stw r28, 0x30(r1) /* 80385F28 00382E88 83 AD 9F 9C */ lwz r29, lbl_805A8B5C@sda21(r13) /* 80385F2C 00382E8C 80 AD AD 7C */ lwz r5, lbl_805A993C@sda21(r13) /* 80385F30 00382E90 7F FC EC 30 */ srw r28, r31, r29 /* 80385F34 00382E94 7C A3 E0 78 */ andc r3, r5, r28 /* 80385F38 00382E98 90 6D AD 7C */ stw r3, lbl_805A993C@sda21(r13) /* 80385F3C 00382E9C 7C A5 E0 38 */ and r5, r5, r28 /* 80385F40 00382EA0 38 60 00 01 */ li r3, 1 /* 80385F44 00382EA4 41 82 00 54 */ beq lbl_80385F98 /* 80385F48 00382EA8 80 8D AD 78 */ lwz r4, lbl_805A9938@sda21(r13) /* 80385F4C 00382EAC 7C 80 00 34 */ cntlzw r0, r4 /* 80385F50 00382EB0 90 0D 9F 9C */ stw r0, lbl_805A8B5C@sda21(r13) /* 80385F54 00382EB4 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80385F58 00382EB8 2C 03 00 20 */ cmpwi r3, 0x20 /* 80385F5C 00382EBC 41 82 02 AC */ beq lbl_80386208 /* 80385F60 00382EC0 1C 03 00 0C */ mulli r0, r3, 0xc /* 80385F64 00382EC4 7F E3 1C 30 */ srw r3, r31, r3 /* 80385F68 00382EC8 7C 84 18 78 */ andc r4, r4, r3 /* 80385F6C 00382ECC 7C 7E 02 14 */ add r3, r30, r0 /* 80385F70 00382ED0 90 8D AD 78 */ stw r4, lbl_805A9938@sda21(r13) /* 80385F74 00382ED4 38 80 00 00 */ li r4, 0 /* 80385F78 00382ED8 38 A0 00 0C */ li r5, 0xc /* 80385F7C 00382EDC 38 63 00 10 */ addi r3, r3, 0x10 /* 80385F80 00382EE0 4B C7 D4 29 */ bl memset /* 80385F84 00382EE4 3C 80 80 38 */ lis r4, PADTypeAndStatusCallback@ha /* 80385F88 00382EE8 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80385F8C 00382EEC 38 84 5E FC */ addi r4, r4, PADTypeAndStatusCallback@l /* 80385F90 00382EF0 48 03 9C D1 */ bl SIGetTypeAsync /* 80385F94 00382EF4 48 00 02 74 */ b lbl_80386208 lbl_80385F98: /* 80385F98 00382EF8 54 86 00 2E */ rlwinm r6, r4, 0, 0, 0x17 /* 80385F9C 00382EFC 54 84 00 C8 */ rlwinm r4, r4, 0, 3, 4 /* 80385FA0 00382F00 3C 04 F8 00 */ addis r0, r4, 0xf800 /* 80385FA4 00382F04 57 A4 10 3A */ slwi r4, r29, 2 /* 80385FA8 00382F08 28 00 00 00 */ cmplwi r0, 0 /* 80385FAC 00382F0C 7C DE 21 2E */ stwx r6, r30, r4 /* 80385FB0 00382F10 40 82 00 0C */ bne lbl_80385FBC /* 80385FB4 00382F14 54 C0 01 CF */ rlwinm. r0, r6, 0, 7, 7 /* 80385FB8 00382F18 40 82 00 58 */ bne lbl_80386010 lbl_80385FBC: /* 80385FBC 00382F1C 80 AD AD 78 */ lwz r5, lbl_805A9938@sda21(r13) /* 80385FC0 00382F20 7C A0 00 34 */ cntlzw r0, r5 /* 80385FC4 00382F24 90 0D 9F 9C */ stw r0, lbl_805A8B5C@sda21(r13) /* 80385FC8 00382F28 80 8D 9F 9C */ lwz r4, lbl_805A8B5C@sda21(r13) /* 80385FCC 00382F2C 2C 04 00 20 */ cmpwi r4, 0x20 /* 80385FD0 00382F30 41 82 02 38 */ beq lbl_80386208 /* 80385FD4 00382F34 3C 60 80 00 */ lis r3, 0x8000 /* 80385FD8 00382F38 1C 04 00 0C */ mulli r0, r4, 0xc /* 80385FDC 00382F3C 7C 63 24 30 */ srw r3, r3, r4 /* 80385FE0 00382F40 7C A4 18 78 */ andc r4, r5, r3 /* 80385FE4 00382F44 7C 7E 02 14 */ add r3, r30, r0 /* 80385FE8 00382F48 90 8D AD 78 */ stw r4, lbl_805A9938@sda21(r13) /* 80385FEC 00382F4C 38 80 00 00 */ li r4, 0 /* 80385FF0 00382F50 38 A0 00 0C */ li r5, 0xc /* 80385FF4 00382F54 38 63 00 10 */ addi r3, r3, 0x10 /* 80385FF8 00382F58 4B C7 D3 B1 */ bl memset /* 80385FFC 00382F5C 3C 80 80 38 */ lis r4, PADTypeAndStatusCallback@ha /* 80386000 00382F60 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80386004 00382F64 38 84 5E FC */ addi r4, r4, PADTypeAndStatusCallback@l /* 80386008 00382F68 48 03 9C 59 */ bl SIGetTypeAsync /* 8038600C 00382F6C 48 00 01 FC */ b lbl_80386208 lbl_80386010: /* 80386010 00382F70 80 0D 9F A8 */ lwz r0, lbl_805A8B68@sda21(r13) /* 80386014 00382F74 28 00 00 02 */ cmplwi r0, 2 /* 80386018 00382F78 40 80 00 84 */ bge lbl_8038609C /* 8038601C 00382F7C 80 0D AD 74 */ lwz r0, lbl_805A9934@sda21(r13) /* 80386020 00382F80 38 7D 00 00 */ addi r3, r29, 0 /* 80386024 00382F84 38 81 00 1C */ addi r4, r1, 0x1c /* 80386028 00382F88 7C 00 E3 78 */ or r0, r0, r28 /* 8038602C 00382F8C 90 0D AD 74 */ stw r0, lbl_805A9934@sda21(r13) /* 80386030 00382F90 48 03 95 19 */ bl SIGetResponse /* 80386034 00382F94 80 0D 9F A4 */ lwz r0, lbl_805A8B64@sda21(r13) /* 80386038 00382F98 38 7D 00 00 */ addi r3, r29, 0 /* 8038603C 00382F9C 64 04 00 40 */ oris r4, r0, 0x40 /* 80386040 00382FA0 48 03 92 9D */ bl SISetCommand /* 80386044 00382FA4 80 6D AD 74 */ lwz r3, lbl_805A9934@sda21(r13) /* 80386048 00382FA8 48 03 93 25 */ bl SIEnablePolling /* 8038604C 00382FAC 80 8D AD 78 */ lwz r4, lbl_805A9938@sda21(r13) /* 80386050 00382FB0 7C 80 00 34 */ cntlzw r0, r4 /* 80386054 00382FB4 90 0D 9F 9C */ stw r0, lbl_805A8B5C@sda21(r13) /* 80386058 00382FB8 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 8038605C 00382FBC 2C 03 00 20 */ cmpwi r3, 0x20 /* 80386060 00382FC0 41 82 01 A8 */ beq lbl_80386208 /* 80386064 00382FC4 1C 03 00 0C */ mulli r0, r3, 0xc /* 80386068 00382FC8 7F E3 1C 30 */ srw r3, r31, r3 /* 8038606C 00382FCC 7C 84 18 78 */ andc r4, r4, r3 /* 80386070 00382FD0 7C 7E 02 14 */ add r3, r30, r0 /* 80386074 00382FD4 90 8D AD 78 */ stw r4, lbl_805A9938@sda21(r13) /* 80386078 00382FD8 38 80 00 00 */ li r4, 0 /* 8038607C 00382FDC 38 A0 00 0C */ li r5, 0xc /* 80386080 00382FE0 38 63 00 10 */ addi r3, r3, 0x10 /* 80386084 00382FE4 4B C7 D3 25 */ bl memset /* 80386088 00382FE8 3C 80 80 38 */ lis r4, PADTypeAndStatusCallback@ha /* 8038608C 00382FEC 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80386090 00382FF0 38 84 5E FC */ addi r4, r4, PADTypeAndStatusCallback@l /* 80386094 00382FF4 48 03 9B CD */ bl SIGetTypeAsync /* 80386098 00382FF8 48 00 01 70 */ b lbl_80386208 lbl_8038609C: /* 8038609C 00382FFC 54 C0 00 01 */ rlwinm. r0, r6, 0, 0, 0 /* 803860A0 00383000 41 82 00 0C */ beq lbl_803860AC /* 803860A4 00383004 54 C0 01 4B */ rlwinm. r0, r6, 0, 5, 5 /* 803860A8 00383008 41 82 00 74 */ beq lbl_8038611C lbl_803860AC: /* 803860AC 0038300C 28 05 00 00 */ cmplwi r5, 0 /* 803860B0 00383010 41 82 00 38 */ beq lbl_803860E8 /* 803860B4 00383014 1C 1D 00 0C */ mulli r0, r29, 0xc /* 803860B8 00383018 3C 60 80 38 */ lis r3, PADOriginCallback@ha /* 803860BC 0038301C 7C DE 02 14 */ add r6, r30, r0 /* 803860C0 00383020 39 03 5C A0 */ addi r8, r3, PADOriginCallback@l /* 803860C4 00383024 38 7D 00 00 */ addi r3, r29, 0 /* 803860C8 00383028 38 8D 9F B4 */ addi r4, r13, lbl_805A8B74@sda21 /* 803860CC 0038302C 38 A0 00 03 */ li r5, 3 /* 803860D0 00383030 38 E0 00 0A */ li r7, 0xa /* 803860D4 00383034 39 40 00 00 */ li r10, 0 /* 803860D8 00383038 39 20 00 00 */ li r9, 0 /* 803860DC 0038303C 38 C6 00 10 */ addi r6, r6, 0x10 /* 803860E0 00383040 48 03 95 B9 */ bl SITransfer /* 803860E4 00383044 48 00 00 C0 */ b lbl_803861A4 lbl_803860E8: /* 803860E8 00383048 1C 1D 00 0C */ mulli r0, r29, 0xc /* 803860EC 0038304C 3C 60 80 38 */ lis r3, PADOriginCallback@ha /* 803860F0 00383050 7C DE 02 14 */ add r6, r30, r0 /* 803860F4 00383054 39 03 5C A0 */ addi r8, r3, PADOriginCallback@l /* 803860F8 00383058 38 7D 00 00 */ addi r3, r29, 0 /* 803860FC 0038305C 38 8D 9F B0 */ addi r4, r13, lbl_805A8B70@sda21 /* 80386100 00383060 38 A0 00 01 */ li r5, 1 /* 80386104 00383064 38 E0 00 0A */ li r7, 0xa /* 80386108 00383068 39 40 00 00 */ li r10, 0 /* 8038610C 0038306C 39 20 00 00 */ li r9, 0 /* 80386110 00383070 38 C6 00 10 */ addi r6, r6, 0x10 /* 80386114 00383074 48 03 95 85 */ bl SITransfer /* 80386118 00383078 48 00 00 8C */ b lbl_803861A4 lbl_8038611C: /* 8038611C 0038307C 54 C0 02 D7 */ rlwinm. r0, r6, 0, 0xb, 0xb /* 80386120 00383080 41 82 00 84 */ beq lbl_803861A4 /* 80386124 00383084 54 C0 03 19 */ rlwinm. r0, r6, 0, 0xc, 0xc /* 80386128 00383088 40 82 00 7C */ bne lbl_803861A4 /* 8038612C 0038308C 54 C0 03 5B */ rlwinm. r0, r6, 0, 0xd, 0xd /* 80386130 00383090 40 82 00 74 */ bne lbl_803861A4 /* 80386134 00383094 54 C0 00 43 */ rlwinm. r0, r6, 0, 1, 1 /* 80386138 00383098 41 82 00 38 */ beq lbl_80386170 /* 8038613C 0038309C 1C 1D 00 0C */ mulli r0, r29, 0xc /* 80386140 003830A0 3C 60 80 38 */ lis r3, PADOriginCallback@ha /* 80386144 003830A4 7C DE 02 14 */ add r6, r30, r0 /* 80386148 003830A8 39 03 5C A0 */ addi r8, r3, PADOriginCallback@l /* 8038614C 003830AC 38 7D 00 00 */ addi r3, r29, 0 /* 80386150 003830B0 38 8D 9F B0 */ addi r4, r13, lbl_805A8B70@sda21 /* 80386154 003830B4 38 A0 00 01 */ li r5, 1 /* 80386158 003830B8 38 E0 00 0A */ li r7, 0xa /* 8038615C 003830BC 39 40 00 00 */ li r10, 0 /* 80386160 003830C0 39 20 00 00 */ li r9, 0 /* 80386164 003830C4 38 C6 00 10 */ addi r6, r6, 0x10 /* 80386168 003830C8 48 03 95 31 */ bl SITransfer /* 8038616C 003830CC 48 00 00 38 */ b lbl_803861A4 lbl_80386170: /* 80386170 003830D0 1C 1D 00 0C */ mulli r0, r29, 0xc /* 80386174 003830D4 3C 60 80 38 */ lis r3, PADProbeCallback@ha /* 80386178 003830D8 7C 9E 22 14 */ add r4, r30, r4 /* 8038617C 003830DC 7C DE 02 14 */ add r6, r30, r0 /* 80386180 003830E0 39 03 5E 24 */ addi r8, r3, PADProbeCallback@l /* 80386184 003830E4 38 7D 00 00 */ addi r3, r29, 0 /* 80386188 003830E8 38 A0 00 03 */ li r5, 3 /* 8038618C 003830EC 38 E0 00 08 */ li r7, 8 /* 80386190 003830F0 39 40 00 00 */ li r10, 0 /* 80386194 003830F4 39 20 00 00 */ li r9, 0 /* 80386198 003830F8 38 84 00 40 */ addi r4, r4, 0x40 /* 8038619C 003830FC 38 C6 00 10 */ addi r6, r6, 0x10 /* 803861A0 00383100 48 03 94 F9 */ bl SITransfer lbl_803861A4: /* 803861A4 00383104 2C 03 00 00 */ cmpwi r3, 0 /* 803861A8 00383108 40 82 00 60 */ bne lbl_80386208 /* 803861AC 0038310C 80 AD AD 78 */ lwz r5, lbl_805A9938@sda21(r13) /* 803861B0 00383110 80 6D AD 88 */ lwz r3, lbl_805A9948@sda21(r13) /* 803861B4 00383114 7C A0 00 34 */ cntlzw r0, r5 /* 803861B8 00383118 90 0D 9F 9C */ stw r0, lbl_805A8B5C@sda21(r13) /* 803861BC 0038311C 7C 60 E3 78 */ or r0, r3, r28 /* 803861C0 00383120 80 8D 9F 9C */ lwz r4, lbl_805A8B5C@sda21(r13) /* 803861C4 00383124 90 0D AD 88 */ stw r0, lbl_805A9948@sda21(r13) /* 803861C8 00383128 2C 04 00 20 */ cmpwi r4, 0x20 /* 803861CC 0038312C 41 82 00 3C */ beq lbl_80386208 /* 803861D0 00383130 3C 60 80 00 */ lis r3, 0x8000 /* 803861D4 00383134 1C 04 00 0C */ mulli r0, r4, 0xc /* 803861D8 00383138 7C 63 24 30 */ srw r3, r3, r4 /* 803861DC 0038313C 7C A4 18 78 */ andc r4, r5, r3 /* 803861E0 00383140 7C 7E 02 14 */ add r3, r30, r0 /* 803861E4 00383144 90 8D AD 78 */ stw r4, lbl_805A9938@sda21(r13) /* 803861E8 00383148 38 80 00 00 */ li r4, 0 /* 803861EC 0038314C 38 A0 00 0C */ li r5, 0xc /* 803861F0 00383150 38 63 00 10 */ addi r3, r3, 0x10 /* 803861F4 00383154 4B C7 D1 B5 */ bl memset /* 803861F8 00383158 3C 80 80 38 */ lis r4, PADTypeAndStatusCallback@ha /* 803861FC 0038315C 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80386200 00383160 38 84 5E FC */ addi r4, r4, PADTypeAndStatusCallback@l /* 80386204 00383164 48 03 9A 5D */ bl SIGetTypeAsync lbl_80386208: /* 80386208 00383168 80 01 00 44 */ lwz r0, 0x44(r1) /* 8038620C 0038316C 83 E1 00 3C */ lwz r31, 0x3c(r1) /* 80386210 00383170 83 C1 00 38 */ lwz r30, 0x38(r1) /* 80386214 00383174 83 A1 00 34 */ lwz r29, 0x34(r1) /* 80386218 00383178 83 81 00 30 */ lwz r28, 0x30(r1) /* 8038621C 0038317C 38 21 00 40 */ addi r1, r1, 0x40 /* 80386220 00383180 7C 08 03 A6 */ mtlr r0 /* 80386224 00383184 4E 80 00 20 */ blr .global sub_80386228 sub_80386228: /* 80386228 00383188 7C 08 02 A6 */ mflr r0 /* 8038622C 0038318C 90 01 00 04 */ stw r0, 4(r1) /* 80386230 00383190 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80386234 00383194 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80386238 00383198 7C 7F 1B 78 */ mr r31, r3 /* 8038623C 0038319C 3C 60 80 00 */ lis r3, 0x8000 /* 80386240 003831A0 93 C1 00 18 */ stw r30, 0x18(r1) /* 80386244 003831A4 93 A1 00 14 */ stw r29, 0x14(r1) /* 80386248 003831A8 7C 7D FC 30 */ srw r29, r3, r31 /* 8038624C 003831AC 80 0D AD 74 */ lwz r0, lbl_805A9934@sda21(r13) /* 80386250 003831B0 7C 00 E8 39 */ and. r0, r0, r29 /* 80386254 003831B4 41 82 00 EC */ beq lbl_80386340 /* 80386258 003831B8 80 AD AD 80 */ lwz r5, lbl_805A9940@sda21(r13) /* 8038625C 003831BC 7F A6 E8 F8 */ nor r6, r29, r29 /* 80386260 003831C0 80 6D AD 84 */ lwz r3, lbl_805A9944@sda21(r13) /* 80386264 003831C4 54 80 07 3F */ clrlwi. r0, r4, 0x1c /* 80386268 003831C8 7C A5 30 38 */ and r5, r5, r6 /* 8038626C 003831CC 7C 63 30 38 */ and r3, r3, r6 /* 80386270 003831D0 90 AD AD 80 */ stw r5, lbl_805A9940@sda21(r13) /* 80386274 003831D4 90 6D AD 84 */ stw r3, lbl_805A9944@sda21(r13) /* 80386278 003831D8 54 83 00 2E */ rlwinm r3, r4, 0, 0, 0x17 /* 8038627C 003831DC 40 82 00 6C */ bne lbl_803862E8 /* 80386280 003831E0 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0 /* 80386284 003831E4 41 82 00 64 */ beq lbl_803862E8 /* 80386288 003831E8 54 60 02 D7 */ rlwinm. r0, r3, 0, 0xb, 0xb /* 8038628C 003831EC 41 82 00 5C */ beq lbl_803862E8 /* 80386290 003831F0 54 60 00 43 */ rlwinm. r0, r3, 0, 1, 1 /* 80386294 003831F4 41 82 00 54 */ beq lbl_803862E8 /* 80386298 003831F8 54 60 01 4B */ rlwinm. r0, r3, 0, 5, 5 /* 8038629C 003831FC 40 82 00 4C */ bne lbl_803862E8 /* 803862A0 00383200 54 60 03 19 */ rlwinm. r0, r3, 0, 0xc, 0xc /* 803862A4 00383204 40 82 00 44 */ bne lbl_803862E8 /* 803862A8 00383208 54 60 03 5B */ rlwinm. r0, r3, 0, 0xd, 0xd /* 803862AC 0038320C 40 82 00 3C */ bne lbl_803862E8 /* 803862B0 00383210 1C 9F 00 0C */ mulli r4, r31, 0xc /* 803862B4 00383214 3C 60 80 54 */ lis r3, lbl_80542000@ha /* 803862B8 00383218 38 03 20 00 */ addi r0, r3, lbl_80542000@l /* 803862BC 0038321C 3C 60 80 38 */ lis r3, sub_80385d64@ha /* 803862C0 00383220 7C C0 22 14 */ add r6, r0, r4 /* 803862C4 00383224 39 03 5D 64 */ addi r8, r3, sub_80385d64@l /* 803862C8 00383228 38 7F 00 00 */ addi r3, r31, 0 /* 803862CC 0038322C 38 8D 9F B0 */ addi r4, r13, lbl_805A8B70@sda21 /* 803862D0 00383230 38 A0 00 01 */ li r5, 1 /* 803862D4 00383234 38 E0 00 0A */ li r7, 0xa /* 803862D8 00383238 39 40 00 00 */ li r10, 0 /* 803862DC 0038323C 39 20 00 00 */ li r9, 0 /* 803862E0 00383240 48 03 93 B9 */ bl SITransfer /* 803862E4 00383244 48 00 00 5C */ b lbl_80386340 lbl_803862E8: /* 803862E8 00383248 4B FF B3 79 */ bl OSDisableInterrupts /* 803862EC 0038324C 3B C3 00 00 */ addi r30, r3, 0 /* 803862F0 00383250 38 7D 00 00 */ addi r3, r29, 0 /* 803862F4 00383254 48 03 91 15 */ bl SIDisablePolling /* 803862F8 00383258 80 CD AD 74 */ lwz r6, lbl_805A9934@sda21(r13) /* 803862FC 0038325C 7F A8 E8 F8 */ nor r8, r29, r29 /* 80386300 00383260 80 AD AD 80 */ lwz r5, lbl_805A9940@sda21(r13) /* 80386304 00383264 7F E3 FB 78 */ mr r3, r31 /* 80386308 00383268 80 8D AD 84 */ lwz r4, lbl_805A9944@sda21(r13) /* 8038630C 0038326C 80 0D AD 88 */ lwz r0, lbl_805A9948@sda21(r13) /* 80386310 00383270 7C C7 40 38 */ and r7, r6, r8 /* 80386314 00383274 7C A6 40 38 */ and r6, r5, r8 /* 80386318 00383278 90 ED AD 74 */ stw r7, lbl_805A9934@sda21(r13) /* 8038631C 0038327C 7C 85 40 38 */ and r5, r4, r8 /* 80386320 00383280 7C 00 40 38 */ and r0, r0, r8 /* 80386324 00383284 90 CD AD 80 */ stw r6, lbl_805A9940@sda21(r13) /* 80386328 00383288 38 80 00 00 */ li r4, 0 /* 8038632C 0038328C 90 AD AD 84 */ stw r5, lbl_805A9944@sda21(r13) /* 80386330 00383290 90 0D AD 88 */ stw r0, lbl_805A9948@sda21(r13) /* 80386334 00383294 4B FF E0 05 */ bl OSSetWirelessID /* 80386338 00383298 7F C3 F3 78 */ mr r3, r30 /* 8038633C 0038329C 4B FF B3 4D */ bl OSRestoreInterrupts lbl_80386340: /* 80386340 003832A0 80 01 00 24 */ lwz r0, 0x24(r1) /* 80386344 003832A4 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80386348 003832A8 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8038634C 003832AC 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80386350 003832B0 38 21 00 20 */ addi r1, r1, 0x20 /* 80386354 003832B4 7C 08 03 A6 */ mtlr r0 /* 80386358 003832B8 4E 80 00 20 */ blr .global PADReset PADReset: /* 8038635C 003832BC 7C 08 02 A6 */ mflr r0 /* 80386360 003832C0 90 01 00 04 */ stw r0, 4(r1) /* 80386364 003832C4 94 21 FF E8 */ stwu r1, -0x18(r1) /* 80386368 003832C8 93 E1 00 14 */ stw r31, 0x14(r1) /* 8038636C 003832CC 93 C1 00 10 */ stw r30, 0x10(r1) /* 80386370 003832D0 7C 7E 1B 78 */ mr r30, r3 /* 80386374 003832D4 4B FF B2 ED */ bl OSDisableInterrupts /* 80386378 003832D8 80 8D AD 88 */ lwz r4, lbl_805A9948@sda21(r13) /* 8038637C 003832DC 38 E0 00 00 */ li r7, 0 /* 80386380 003832E0 80 AD AD 80 */ lwz r5, lbl_805A9940@sda21(r13) /* 80386384 003832E4 3B E3 00 00 */ addi r31, r3, 0 /* 80386388 003832E8 80 0D AD 84 */ lwz r0, lbl_805A9944@sda21(r13) /* 8038638C 003832EC 7F DE 23 78 */ or r30, r30, r4 /* 80386390 003832F0 80 8D AD 78 */ lwz r4, lbl_805A9938@sda21(r13) /* 80386394 003832F4 7C A5 03 78 */ or r5, r5, r0 /* 80386398 003832F8 80 0D 9F A8 */ lwz r0, lbl_805A8B68@sda21(r13) /* 8038639C 003832FC 7F DE 28 78 */ andc r30, r30, r5 /* 803863A0 00383300 80 AD AD 74 */ lwz r5, lbl_805A9934@sda21(r13) /* 803863A4 00383304 7C 86 F3 78 */ or r6, r4, r30 /* 803863A8 00383308 90 ED AD 88 */ stw r7, lbl_805A9948@sda21(r13) /* 803863AC 0038330C 7C A4 F0 78 */ andc r4, r5, r30 /* 803863B0 00383310 90 CD AD 78 */ stw r6, lbl_805A9938@sda21(r13) /* 803863B4 00383314 28 00 00 04 */ cmplwi r0, 4 /* 803863B8 00383318 80 0D AD 78 */ lwz r0, lbl_805A9938@sda21(r13) /* 803863BC 0038331C 90 8D AD 74 */ stw r4, lbl_805A9934@sda21(r13) /* 803863C0 00383320 7C 03 28 38 */ and r3, r0, r5 /* 803863C4 00383324 40 82 00 10 */ bne lbl_803863D4 /* 803863C8 00383328 80 0D AD 7C */ lwz r0, lbl_805A993C@sda21(r13) /* 803863CC 0038332C 7C 00 F3 78 */ or r0, r0, r30 /* 803863D0 00383330 90 0D AD 7C */ stw r0, lbl_805A993C@sda21(r13) lbl_803863D4: /* 803863D4 00383334 48 03 90 35 */ bl SIDisablePolling /* 803863D8 00383338 80 0D 9F 9C */ lwz r0, lbl_805A8B5C@sda21(r13) /* 803863DC 0038333C 2C 00 00 20 */ cmpwi r0, 0x20 /* 803863E0 00383340 40 82 00 58 */ bne lbl_80386438 /* 803863E4 00383344 80 AD AD 78 */ lwz r5, lbl_805A9938@sda21(r13) /* 803863E8 00383348 7C A0 00 34 */ cntlzw r0, r5 /* 803863EC 0038334C 90 0D 9F 9C */ stw r0, lbl_805A8B5C@sda21(r13) /* 803863F0 00383350 80 8D 9F 9C */ lwz r4, lbl_805A8B5C@sda21(r13) /* 803863F4 00383354 2C 04 00 20 */ cmpwi r4, 0x20 /* 803863F8 00383358 41 82 00 40 */ beq lbl_80386438 /* 803863FC 0038335C 3C 00 80 00 */ lis r0, 0x8000 /* 80386400 00383360 7C 00 24 30 */ srw r0, r0, r4 /* 80386404 00383364 7C A0 00 78 */ andc r0, r5, r0 /* 80386408 00383368 1C 84 00 0C */ mulli r4, r4, 0xc /* 8038640C 0038336C 90 0D AD 78 */ stw r0, lbl_805A9938@sda21(r13) /* 80386410 00383370 3C 60 80 54 */ lis r3, lbl_80542000@ha /* 80386414 00383374 38 03 20 00 */ addi r0, r3, lbl_80542000@l /* 80386418 00383378 7C 60 22 14 */ add r3, r0, r4 /* 8038641C 0038337C 38 80 00 00 */ li r4, 0 /* 80386420 00383380 38 A0 00 0C */ li r5, 0xc /* 80386424 00383384 4B C7 CF 85 */ bl memset /* 80386428 00383388 3C 80 80 38 */ lis r4, PADTypeAndStatusCallback@ha /* 8038642C 0038338C 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80386430 00383390 38 84 5E FC */ addi r4, r4, PADTypeAndStatusCallback@l /* 80386434 00383394 48 03 98 2D */ bl SIGetTypeAsync lbl_80386438: /* 80386438 00383398 7F E3 FB 78 */ mr r3, r31 /* 8038643C 0038339C 4B FF B2 4D */ bl OSRestoreInterrupts /* 80386440 003833A0 80 01 00 1C */ lwz r0, 0x1c(r1) /* 80386444 003833A4 38 60 00 01 */ li r3, 1 /* 80386448 003833A8 83 E1 00 14 */ lwz r31, 0x14(r1) /* 8038644C 003833AC 83 C1 00 10 */ lwz r30, 0x10(r1) /* 80386450 003833B0 38 21 00 18 */ addi r1, r1, 0x18 /* 80386454 003833B4 7C 08 03 A6 */ mtlr r0 /* 80386458 003833B8 4E 80 00 20 */ blr .global sub_8038645c sub_8038645c: /* 8038645C 003833BC 7C 08 02 A6 */ mflr r0 /* 80386460 003833C0 90 01 00 04 */ stw r0, 4(r1) /* 80386464 003833C4 94 21 FF E8 */ stwu r1, -0x18(r1) /* 80386468 003833C8 93 E1 00 14 */ stw r31, 0x14(r1) /* 8038646C 003833CC 93 C1 00 10 */ stw r30, 0x10(r1) /* 80386470 003833D0 7C 7E 1B 78 */ mr r30, r3 /* 80386474 003833D4 4B FF B1 ED */ bl OSDisableInterrupts /* 80386478 003833D8 80 CD AD 88 */ lwz r6, lbl_805A9948@sda21(r13) /* 8038647C 003833DC 38 E0 00 00 */ li r7, 0 /* 80386480 003833E0 80 AD AD 80 */ lwz r5, lbl_805A9940@sda21(r13) /* 80386484 003833E4 3C 80 80 00 */ lis r4, 0x800030E3@ha /* 80386488 003833E8 80 0D AD 84 */ lwz r0, lbl_805A9944@sda21(r13) /* 8038648C 003833EC 7F DE 33 78 */ or r30, r30, r6 /* 80386490 003833F0 80 CD AD 78 */ lwz r6, lbl_805A9938@sda21(r13) /* 80386494 003833F4 7C A5 03 78 */ or r5, r5, r0 /* 80386498 003833F8 88 04 30 E3 */ lbz r0, 0x800030E3@l(r4) /* 8038649C 003833FC 7F DE 28 78 */ andc r30, r30, r5 /* 803864A0 00383400 80 AD AD 74 */ lwz r5, lbl_805A9934@sda21(r13) /* 803864A4 00383404 7C C4 F3 78 */ or r4, r6, r30 /* 803864A8 00383408 90 ED AD 88 */ stw r7, lbl_805A9948@sda21(r13) /* 803864AC 0038340C 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19 /* 803864B0 00383410 90 8D AD 78 */ stw r4, lbl_805A9938@sda21(r13) /* 803864B4 00383414 7C A4 F0 78 */ andc r4, r5, r30 /* 803864B8 00383418 3B E3 00 00 */ addi r31, r3, 0 /* 803864BC 0038341C 80 CD AD 78 */ lwz r6, lbl_805A9938@sda21(r13) /* 803864C0 00383420 90 8D AD 74 */ stw r4, lbl_805A9934@sda21(r13) /* 803864C4 00383424 7C C3 28 38 */ and r3, r6, r5 /* 803864C8 00383428 40 82 00 10 */ bne lbl_803864D8 /* 803864CC 0038342C 80 0D AD 7C */ lwz r0, lbl_805A993C@sda21(r13) /* 803864D0 00383430 7C 00 F3 78 */ or r0, r0, r30 /* 803864D4 00383434 90 0D AD 7C */ stw r0, lbl_805A993C@sda21(r13) lbl_803864D8: /* 803864D8 00383438 48 03 8F 31 */ bl SIDisablePolling /* 803864DC 0038343C 80 0D 9F 9C */ lwz r0, lbl_805A8B5C@sda21(r13) /* 803864E0 00383440 2C 00 00 20 */ cmpwi r0, 0x20 /* 803864E4 00383444 40 82 00 58 */ bne lbl_8038653C /* 803864E8 00383448 80 AD AD 78 */ lwz r5, lbl_805A9938@sda21(r13) /* 803864EC 0038344C 7C A0 00 34 */ cntlzw r0, r5 /* 803864F0 00383450 90 0D 9F 9C */ stw r0, lbl_805A8B5C@sda21(r13) /* 803864F4 00383454 80 8D 9F 9C */ lwz r4, lbl_805A8B5C@sda21(r13) /* 803864F8 00383458 2C 04 00 20 */ cmpwi r4, 0x20 /* 803864FC 0038345C 41 82 00 40 */ beq lbl_8038653C /* 80386500 00383460 3C 00 80 00 */ lis r0, 0x8000 /* 80386504 00383464 7C 00 24 30 */ srw r0, r0, r4 /* 80386508 00383468 7C A0 00 78 */ andc r0, r5, r0 /* 8038650C 0038346C 1C 84 00 0C */ mulli r4, r4, 0xc /* 80386510 00383470 90 0D AD 78 */ stw r0, lbl_805A9938@sda21(r13) /* 80386514 00383474 3C 60 80 54 */ lis r3, lbl_80542000@ha /* 80386518 00383478 38 03 20 00 */ addi r0, r3, lbl_80542000@l /* 8038651C 0038347C 7C 60 22 14 */ add r3, r0, r4 /* 80386520 00383480 38 80 00 00 */ li r4, 0 /* 80386524 00383484 38 A0 00 0C */ li r5, 0xc /* 80386528 00383488 4B C7 CE 81 */ bl memset /* 8038652C 0038348C 3C 80 80 38 */ lis r4, PADTypeAndStatusCallback@ha /* 80386530 00383490 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80386534 00383494 38 84 5E FC */ addi r4, r4, PADTypeAndStatusCallback@l /* 80386538 00383498 48 03 97 29 */ bl SIGetTypeAsync lbl_8038653C: /* 8038653C 0038349C 7F E3 FB 78 */ mr r3, r31 /* 80386540 003834A0 4B FF B1 49 */ bl OSRestoreInterrupts /* 80386544 003834A4 80 01 00 1C */ lwz r0, 0x1c(r1) /* 80386548 003834A8 38 60 00 01 */ li r3, 1 /* 8038654C 003834AC 83 E1 00 14 */ lwz r31, 0x14(r1) /* 80386550 003834B0 83 C1 00 10 */ lwz r30, 0x10(r1) /* 80386554 003834B4 38 21 00 18 */ addi r1, r1, 0x18 /* 80386558 003834B8 7C 08 03 A6 */ mtlr r0 /* 8038655C 003834BC 4E 80 00 20 */ blr .global PADInit PADInit: /* 80386560 003834C0 7C 08 02 A6 */ mflr r0 /* 80386564 003834C4 3C 60 80 54 */ lis r3, lbl_80541FF0@ha /* 80386568 003834C8 90 01 00 04 */ stw r0, 4(r1) /* 8038656C 003834CC 94 21 FF C8 */ stwu r1, -0x38(r1) /* 80386570 003834D0 BF 21 00 1C */ stmw r25, 0x1c(r1) /* 80386574 003834D4 3B E3 1F F0 */ addi r31, r3, lbl_80541FF0@l /* 80386578 003834D8 80 0D AD 70 */ lwz r0, lbl_805A9930@sda21(r13) /* 8038657C 003834DC 2C 00 00 00 */ cmpwi r0, 0 /* 80386580 003834E0 41 82 00 0C */ beq lbl_8038658C /* 80386584 003834E4 38 60 00 01 */ li r3, 1 /* 80386588 003834E8 48 00 01 DC */ b lbl_80386764 lbl_8038658C: /* 8038658C 003834EC 80 6D 9F 98 */ lwz r3, lbl_805A8B58@sda21(r13) /* 80386590 003834F0 4B FF 7A A9 */ bl OSRegisterVersion /* 80386594 003834F4 80 6D AD 94 */ lwz r3, lbl_805A9954@sda21(r13) /* 80386598 003834F8 28 03 00 00 */ cmplwi r3, 0 /* 8038659C 003834FC 41 82 00 08 */ beq lbl_803865A4 /* 803865A0 00383500 48 00 06 E1 */ bl PADSetSpec lbl_803865A4: /* 803865A4 00383504 80 0D B0 18 */ lwz r0, lbl_805A9BD8@sda21(r13) /* 803865A8 00383508 38 60 00 01 */ li r3, 1 /* 803865AC 0038350C 90 6D AD 70 */ stw r3, lbl_805A9930@sda21(r13) /* 803865B0 00383510 28 00 00 00 */ cmplwi r0, 0 /* 803865B4 00383514 41 82 00 8C */ beq lbl_80386640 /* 803865B8 00383518 4B FF ED F1 */ bl OSGetTime /* 803865BC 0038351C 3B 24 00 00 */ addi r25, r4, 0 /* 803865C0 00383520 3B 43 00 00 */ addi r26, r3, 0 /* 803865C4 00383524 38 A0 00 10 */ li r5, 0x10 /* 803865C8 00383528 48 00 39 75 */ bl __shr2i /* 803865CC 0038352C 3C A0 00 01 */ lis r5, 0x0000FFFF@ha /* 803865D0 00383530 3B 65 FF FF */ addi r27, r5, 0x0000FFFF@l /* 803865D4 00383534 3B 80 00 00 */ li r28, 0 /* 803865D8 00383538 7C 86 D8 38 */ and r6, r4, r27 /* 803865DC 0038353C 7F 24 D8 38 */ and r4, r25, r27 /* 803865E0 00383540 7C 65 E0 38 */ and r5, r3, r28 /* 803865E4 00383544 7F 40 E0 38 */ and r0, r26, r28 /* 803865E8 00383548 7F A4 30 14 */ addc r29, r4, r6 /* 803865EC 0038354C 38 7A 00 00 */ addi r3, r26, 0 /* 803865F0 00383550 38 99 00 00 */ addi r4, r25, 0 /* 803865F4 00383554 7F C0 29 14 */ adde r30, r0, r5 /* 803865F8 00383558 38 A0 00 20 */ li r5, 0x20 /* 803865FC 0038355C 48 00 39 41 */ bl __shr2i /* 80386600 00383560 7C 84 D8 38 */ and r4, r4, r27 /* 80386604 00383564 7C 60 E0 38 */ and r0, r3, r28 /* 80386608 00383568 7F A4 E8 14 */ addc r29, r4, r29 /* 8038660C 0038356C 38 7A 00 00 */ addi r3, r26, 0 /* 80386610 00383570 38 99 00 00 */ addi r4, r25, 0 /* 80386614 00383574 7F C0 F1 14 */ adde r30, r0, r30 /* 80386618 00383578 38 A0 00 30 */ li r5, 0x30 /* 8038661C 0038357C 48 00 39 21 */ bl __shr2i /* 80386620 00383580 7C 80 D8 38 */ and r0, r4, r27 /* 80386624 00383584 7C A0 E8 14 */ addc r5, r0, r29 /* 80386628 00383588 3C 00 F0 00 */ lis r0, 0xf000 /* 8038662C 0038358C 38 80 3F FF */ li r4, 0x3fff /* 80386630 00383590 90 0D AD 7C */ stw r0, lbl_805A993C@sda21(r13) /* 80386634 00383594 7C A0 20 38 */ and r0, r5, r4 /* 80386638 00383598 3C 60 80 00 */ lis r3, 0x800030E0@ha /* 8038663C 0038359C B0 03 30 E0 */ sth r0, 0x800030E0@l(r3) lbl_80386640: /* 80386640 003835A0 3C 60 80 00 */ lis r3, 0x800030E0@ha /* 80386644 003835A4 A0 03 30 E0 */ lhz r0, 0x800030E0@l(r3) /* 80386648 003835A8 54 00 42 AE */ rlwinm r0, r0, 8, 0xa, 0x17 /* 8038664C 003835AC 64 00 4D 00 */ oris r0, r0, 0x4d00 /* 80386650 003835B0 90 1F 00 40 */ stw r0, 0x40(r31) /* 80386654 003835B4 A0 03 30 E0 */ lhz r0, 0x30e0(r3) /* 80386658 003835B8 54 00 42 AE */ rlwinm r0, r0, 8, 0xa, 0x17 /* 8038665C 003835BC 64 00 4D 40 */ oris r0, r0, 0x4d40 /* 80386660 003835C0 90 1F 00 44 */ stw r0, 0x44(r31) /* 80386664 003835C4 A0 03 30 E0 */ lhz r0, 0x30e0(r3) /* 80386668 003835C8 54 00 42 AE */ rlwinm r0, r0, 8, 0xa, 0x17 /* 8038666C 003835CC 64 00 4D 80 */ oris r0, r0, 0x4d80 /* 80386670 003835D0 90 1F 00 48 */ stw r0, 0x48(r31) /* 80386674 003835D4 A0 03 30 E0 */ lhz r0, 0x30e0(r3) /* 80386678 003835D8 54 00 42 AE */ rlwinm r0, r0, 8, 0xa, 0x17 /* 8038667C 003835DC 64 00 4D C0 */ oris r0, r0, 0x4dc0 /* 80386680 003835E0 90 1F 00 4C */ stw r0, 0x4c(r31) /* 80386684 003835E4 48 03 99 6D */ bl SIRefreshSamplingRate /* 80386688 003835E8 3C 60 80 3F */ lis r3, lbl_803F2398@ha /* 8038668C 003835EC 38 63 23 98 */ addi r3, r3, lbl_803F2398@l /* 80386690 003835F0 4B FF C9 9D */ bl OSRegisterResetFunction /* 80386694 003835F4 3F 80 F0 00 */ lis r28, 0xf000 /* 80386698 003835F8 4B FF AF C9 */ bl OSDisableInterrupts /* 8038669C 003835FC 80 8D AD 88 */ lwz r4, lbl_805A9948@sda21(r13) /* 803866A0 00383600 38 E0 00 00 */ li r7, 0 /* 803866A4 00383604 80 AD AD 80 */ lwz r5, lbl_805A9940@sda21(r13) /* 803866A8 00383608 3B 63 00 00 */ addi r27, r3, 0 /* 803866AC 0038360C 80 0D AD 84 */ lwz r0, lbl_805A9944@sda21(r13) /* 803866B0 00383610 7F 9C 23 78 */ or r28, r28, r4 /* 803866B4 00383614 80 8D AD 78 */ lwz r4, lbl_805A9938@sda21(r13) /* 803866B8 00383618 7C A5 03 78 */ or r5, r5, r0 /* 803866BC 0038361C 80 0D 9F A8 */ lwz r0, lbl_805A8B68@sda21(r13) /* 803866C0 00383620 7F 9C 28 78 */ andc r28, r28, r5 /* 803866C4 00383624 80 AD AD 74 */ lwz r5, lbl_805A9934@sda21(r13) /* 803866C8 00383628 7C 86 E3 78 */ or r6, r4, r28 /* 803866CC 0038362C 90 ED AD 88 */ stw r7, lbl_805A9948@sda21(r13) /* 803866D0 00383630 7C A4 E0 78 */ andc r4, r5, r28 /* 803866D4 00383634 90 CD AD 78 */ stw r6, lbl_805A9938@sda21(r13) /* 803866D8 00383638 28 00 00 04 */ cmplwi r0, 4 /* 803866DC 0038363C 80 0D AD 78 */ lwz r0, lbl_805A9938@sda21(r13) /* 803866E0 00383640 90 8D AD 74 */ stw r4, lbl_805A9934@sda21(r13) /* 803866E4 00383644 7C 03 28 38 */ and r3, r0, r5 /* 803866E8 00383648 40 82 00 10 */ bne lbl_803866F8 /* 803866EC 0038364C 80 0D AD 7C */ lwz r0, lbl_805A993C@sda21(r13) /* 803866F0 00383650 7C 00 E3 78 */ or r0, r0, r28 /* 803866F4 00383654 90 0D AD 7C */ stw r0, lbl_805A993C@sda21(r13) lbl_803866F8: /* 803866F8 00383658 48 03 8D 11 */ bl SIDisablePolling /* 803866FC 0038365C 80 0D 9F 9C */ lwz r0, lbl_805A8B5C@sda21(r13) /* 80386700 00383660 2C 00 00 20 */ cmpwi r0, 0x20 /* 80386704 00383664 40 82 00 54 */ bne lbl_80386758 /* 80386708 00383668 80 AD AD 78 */ lwz r5, lbl_805A9938@sda21(r13) /* 8038670C 0038366C 7C A0 00 34 */ cntlzw r0, r5 /* 80386710 00383670 90 0D 9F 9C */ stw r0, lbl_805A8B5C@sda21(r13) /* 80386714 00383674 80 8D 9F 9C */ lwz r4, lbl_805A8B5C@sda21(r13) /* 80386718 00383678 2C 04 00 20 */ cmpwi r4, 0x20 /* 8038671C 0038367C 41 82 00 3C */ beq lbl_80386758 /* 80386720 00383680 3C 60 80 00 */ lis r3, 0x8000 /* 80386724 00383684 1C 04 00 0C */ mulli r0, r4, 0xc /* 80386728 00383688 7C 63 24 30 */ srw r3, r3, r4 /* 8038672C 0038368C 7C A4 18 78 */ andc r4, r5, r3 /* 80386730 00383690 7C 7F 02 14 */ add r3, r31, r0 /* 80386734 00383694 90 8D AD 78 */ stw r4, lbl_805A9938@sda21(r13) /* 80386738 00383698 38 80 00 00 */ li r4, 0 /* 8038673C 0038369C 38 A0 00 0C */ li r5, 0xc /* 80386740 003836A0 38 63 00 10 */ addi r3, r3, 0x10 /* 80386744 003836A4 4B C7 CC 65 */ bl memset /* 80386748 003836A8 3C 80 80 38 */ lis r4, PADTypeAndStatusCallback@ha /* 8038674C 003836AC 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80386750 003836B0 38 84 5E FC */ addi r4, r4, PADTypeAndStatusCallback@l /* 80386754 003836B4 48 03 95 0D */ bl SIGetTypeAsync lbl_80386758: /* 80386758 003836B8 7F 63 DB 78 */ mr r3, r27 /* 8038675C 003836BC 4B FF AF 2D */ bl OSRestoreInterrupts /* 80386760 003836C0 38 60 00 01 */ li r3, 1 lbl_80386764: /* 80386764 003836C4 BB 21 00 1C */ lmw r25, 0x1c(r1) /* 80386768 003836C8 80 01 00 3C */ lwz r0, 0x3c(r1) /* 8038676C 003836CC 38 21 00 38 */ addi r1, r1, 0x38 /* 80386770 003836D0 7C 08 03 A6 */ mtlr r0 /* 80386774 003836D4 4E 80 00 20 */ blr .global PADRead PADRead: /* 80386778 003836D8 7C 08 02 A6 */ mflr r0 /* 8038677C 003836DC 90 01 00 04 */ stw r0, 4(r1) /* 80386780 003836E0 94 21 FF B0 */ stwu r1, -0x50(r1) /* 80386784 003836E4 BE 81 00 20 */ stmw r20, 0x20(r1) /* 80386788 003836E8 7C 7F 1B 78 */ mr r31, r3 /* 8038678C 003836EC 4B FF AE D5 */ bl OSDisableInterrupts /* 80386790 003836F0 3A A0 00 00 */ li r21, 0 /* 80386794 003836F4 1C 15 00 0C */ mulli r0, r21, 0xc /* 80386798 003836F8 3C 80 80 54 */ lis r4, lbl_80542000@ha /* 8038679C 003836FC 3B 44 20 00 */ addi r26, r4, lbl_80542000@l /* 803867A0 00383700 3C 80 80 38 */ lis r4, sub_80385d64@ha /* 803867A4 00383704 3C A0 80 38 */ lis r5, sub_80386228@ha /* 803867A8 00383708 3C C0 80 38 */ lis r6, PADTypeAndStatusCallback@ha /* 803867AC 0038370C 7F 1A 02 14 */ add r24, r26, r0 /* 803867B0 00383710 3A C3 00 00 */ addi r22, r3, 0 /* 803867B4 00383714 3B C4 5D 64 */ addi r30, r4, sub_80385d64@l /* 803867B8 00383718 3B A5 62 28 */ addi r29, r5, sub_80386228@l /* 803867BC 0038371C 3B 86 5E FC */ addi r28, r6, PADTypeAndStatusCallback@l /* 803867C0 00383720 3A 80 00 00 */ li r20, 0 /* 803867C4 00383724 3F 60 80 00 */ lis r27, 0x8000 lbl_803867C8: /* 803867C8 00383728 80 0D AD 88 */ lwz r0, lbl_805A9948@sda21(r13) /* 803867CC 0038372C 7F 77 AC 30 */ srw r23, r27, r21 /* 803867D0 00383730 7C 00 B8 39 */ and. r0, r0, r23 /* 803867D4 00383734 41 82 00 D8 */ beq lbl_803868AC /* 803867D8 00383738 4B FF AE 89 */ bl OSDisableInterrupts /* 803867DC 0038373C 80 8D AD 80 */ lwz r4, lbl_805A9940@sda21(r13) /* 803867E0 00383740 38 C0 00 00 */ li r6, 0 /* 803867E4 00383744 80 0D AD 84 */ lwz r0, lbl_805A9944@sda21(r13) /* 803867E8 00383748 7C 79 1B 78 */ mr r25, r3 /* 803867EC 0038374C 80 AD AD 88 */ lwz r5, lbl_805A9948@sda21(r13) /* 803867F0 00383750 7C 84 03 78 */ or r4, r4, r0 /* 803867F4 00383754 80 0D AD 78 */ lwz r0, lbl_805A9938@sda21(r13) /* 803867F8 00383758 7C A7 20 78 */ andc r7, r5, r4 /* 803867FC 0038375C 80 AD AD 74 */ lwz r5, lbl_805A9934@sda21(r13) /* 80386800 00383760 7C 04 3B 78 */ or r4, r0, r7 /* 80386804 00383764 80 0D 9F A8 */ lwz r0, lbl_805A8B68@sda21(r13) /* 80386808 00383768 90 8D AD 78 */ stw r4, lbl_805A9938@sda21(r13) /* 8038680C 0038376C 7C A4 38 78 */ andc r4, r5, r7 /* 80386810 00383770 28 00 00 04 */ cmplwi r0, 4 /* 80386814 00383774 80 0D AD 78 */ lwz r0, lbl_805A9938@sda21(r13) /* 80386818 00383778 90 CD AD 88 */ stw r6, lbl_805A9948@sda21(r13) /* 8038681C 0038377C 7C 03 28 38 */ and r3, r0, r5 /* 80386820 00383780 90 8D AD 74 */ stw r4, lbl_805A9934@sda21(r13) /* 80386824 00383784 40 82 00 10 */ bne lbl_80386834 /* 80386828 00383788 80 0D AD 7C */ lwz r0, lbl_805A993C@sda21(r13) /* 8038682C 0038378C 7C 00 3B 78 */ or r0, r0, r7 /* 80386830 00383790 90 0D AD 7C */ stw r0, lbl_805A993C@sda21(r13) lbl_80386834: /* 80386834 00383794 48 03 8B D5 */ bl SIDisablePolling /* 80386838 00383798 80 0D 9F 9C */ lwz r0, lbl_805A8B5C@sda21(r13) /* 8038683C 0038379C 2C 00 00 20 */ cmpwi r0, 0x20 /* 80386840 003837A0 40 82 00 48 */ bne lbl_80386888 /* 80386844 003837A4 80 8D AD 78 */ lwz r4, lbl_805A9938@sda21(r13) /* 80386848 003837A8 7C 80 00 34 */ cntlzw r0, r4 /* 8038684C 003837AC 90 0D 9F 9C */ stw r0, lbl_805A8B5C@sda21(r13) /* 80386850 003837B0 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80386854 003837B4 2C 03 00 20 */ cmpwi r3, 0x20 /* 80386858 003837B8 41 82 00 30 */ beq lbl_80386888 /* 8038685C 003837BC 1C 03 00 0C */ mulli r0, r3, 0xc /* 80386860 003837C0 7F 63 1C 30 */ srw r3, r27, r3 /* 80386864 003837C4 7C 84 18 78 */ andc r4, r4, r3 /* 80386868 003837C8 90 8D AD 78 */ stw r4, lbl_805A9938@sda21(r13) /* 8038686C 003837CC 7C 7A 02 14 */ add r3, r26, r0 /* 80386870 003837D0 38 80 00 00 */ li r4, 0 /* 80386874 003837D4 38 A0 00 0C */ li r5, 0xc /* 80386878 003837D8 4B C7 CB 31 */ bl memset /* 8038687C 003837DC 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80386880 003837E0 7F 84 E3 78 */ mr r4, r28 /* 80386884 003837E4 48 03 93 DD */ bl SIGetTypeAsync lbl_80386888: /* 80386888 003837E8 7F 23 CB 78 */ mr r3, r25 /* 8038688C 003837EC 4B FF AD FD */ bl OSRestoreInterrupts /* 80386890 003837F0 38 00 FF FE */ li r0, -2 /* 80386894 003837F4 98 1F 00 0A */ stb r0, 0xa(r31) /* 80386898 003837F8 38 7F 00 00 */ addi r3, r31, 0 /* 8038689C 003837FC 38 80 00 00 */ li r4, 0 /* 803868A0 00383800 38 A0 00 0A */ li r5, 0xa /* 803868A4 00383804 4B C7 CB 05 */ bl memset /* 803868A8 00383808 48 00 02 48 */ b lbl_80386AF0 lbl_803868AC: /* 803868AC 0038380C 80 0D AD 78 */ lwz r0, lbl_805A9938@sda21(r13) /* 803868B0 00383810 7C 00 B8 39 */ and. r0, r0, r23 /* 803868B4 00383814 40 82 00 10 */ bne lbl_803868C4 /* 803868B8 00383818 80 0D 9F 9C */ lwz r0, lbl_805A8B5C@sda21(r13) /* 803868BC 0038381C 7C 00 A8 00 */ cmpw r0, r21 /* 803868C0 00383820 40 82 00 20 */ bne lbl_803868E0 lbl_803868C4: /* 803868C4 00383824 38 00 FF FE */ li r0, -2 /* 803868C8 00383828 98 1F 00 0A */ stb r0, 0xa(r31) /* 803868CC 0038382C 38 7F 00 00 */ addi r3, r31, 0 /* 803868D0 00383830 38 80 00 00 */ li r4, 0 /* 803868D4 00383834 38 A0 00 0A */ li r5, 0xa /* 803868D8 00383838 4B C7 CA D1 */ bl memset /* 803868DC 0038383C 48 00 02 14 */ b lbl_80386AF0 lbl_803868E0: /* 803868E0 00383840 80 0D AD 74 */ lwz r0, lbl_805A9934@sda21(r13) /* 803868E4 00383844 7C 00 B8 39 */ and. r0, r0, r23 /* 803868E8 00383848 40 82 00 20 */ bne lbl_80386908 /* 803868EC 0038384C 38 00 FF FF */ li r0, -1 /* 803868F0 00383850 98 1F 00 0A */ stb r0, 0xa(r31) /* 803868F4 00383854 38 7F 00 00 */ addi r3, r31, 0 /* 803868F8 00383858 38 80 00 00 */ li r4, 0 /* 803868FC 0038385C 38 A0 00 0A */ li r5, 0xa /* 80386900 00383860 4B C7 CA A9 */ bl memset /* 80386904 00383864 48 00 01 EC */ b lbl_80386AF0 lbl_80386908: /* 80386908 00383868 7E A3 AB 78 */ mr r3, r21 /* 8038690C 0038386C 48 03 7D C1 */ bl SIIsChanBusy /* 80386910 00383870 2C 03 00 00 */ cmpwi r3, 0 /* 80386914 00383874 41 82 00 20 */ beq lbl_80386934 /* 80386918 00383878 38 00 FF FD */ li r0, -3 /* 8038691C 0038387C 98 1F 00 0A */ stb r0, 0xa(r31) /* 80386920 00383880 38 7F 00 00 */ addi r3, r31, 0 /* 80386924 00383884 38 80 00 00 */ li r4, 0 /* 80386928 00383888 38 A0 00 0A */ li r5, 0xa /* 8038692C 0038388C 4B C7 CA 7D */ bl memset /* 80386930 00383890 48 00 01 C0 */ b lbl_80386AF0 lbl_80386934: /* 80386934 00383894 7E A3 AB 78 */ mr r3, r21 /* 80386938 00383898 48 03 89 29 */ bl SIGetStatus /* 8038693C 0038389C 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c /* 80386940 003838A0 41 82 00 CC */ beq lbl_80386A0C /* 80386944 003838A4 38 75 00 00 */ addi r3, r21, 0 /* 80386948 003838A8 38 81 00 14 */ addi r4, r1, 0x14 /* 8038694C 003838AC 48 03 8B FD */ bl SIGetResponse /* 80386950 003838B0 80 0D AD 80 */ lwz r0, lbl_805A9940@sda21(r13) /* 80386954 003838B4 7C 00 B8 39 */ and. r0, r0, r23 /* 80386958 003838B8 41 82 00 40 */ beq lbl_80386998 /* 8038695C 003838BC 38 00 00 00 */ li r0, 0 /* 80386960 003838C0 98 1F 00 0A */ stb r0, 0xa(r31) /* 80386964 003838C4 38 7F 00 00 */ addi r3, r31, 0 /* 80386968 003838C8 38 80 00 00 */ li r4, 0 /* 8038696C 003838CC 38 A0 00 0A */ li r5, 0xa /* 80386970 003838D0 4B C7 CA 39 */ bl memset /* 80386974 003838D4 80 6D AD 84 */ lwz r3, lbl_805A9944@sda21(r13) /* 80386978 003838D8 7C 60 B8 39 */ and. r0, r3, r23 /* 8038697C 003838DC 40 82 01 74 */ bne lbl_80386AF0 /* 80386980 003838E0 7C 60 BB 78 */ or r0, r3, r23 /* 80386984 003838E4 90 0D AD 84 */ stw r0, lbl_805A9944@sda21(r13) /* 80386988 003838E8 38 75 00 00 */ addi r3, r21, 0 /* 8038698C 003838EC 38 9D 00 00 */ addi r4, r29, 0 /* 80386990 003838F0 48 03 92 D1 */ bl SIGetTypeAsync /* 80386994 003838F4 48 00 01 5C */ b lbl_80386AF0 lbl_80386998: /* 80386998 003838F8 4B FF AC C9 */ bl OSDisableInterrupts /* 8038699C 003838FC 3B 23 00 00 */ addi r25, r3, 0 /* 803869A0 00383900 38 77 00 00 */ addi r3, r23, 0 /* 803869A4 00383904 48 03 8A 65 */ bl SIDisablePolling /* 803869A8 00383908 80 CD AD 74 */ lwz r6, lbl_805A9934@sda21(r13) /* 803869AC 0038390C 7E E8 B8 F8 */ nor r8, r23, r23 /* 803869B0 00383910 80 AD AD 80 */ lwz r5, lbl_805A9940@sda21(r13) /* 803869B4 00383914 7E A3 AB 78 */ mr r3, r21 /* 803869B8 00383918 80 8D AD 84 */ lwz r4, lbl_805A9944@sda21(r13) /* 803869BC 0038391C 80 0D AD 88 */ lwz r0, lbl_805A9948@sda21(r13) /* 803869C0 00383920 7C C7 40 38 */ and r7, r6, r8 /* 803869C4 00383924 7C A6 40 38 */ and r6, r5, r8 /* 803869C8 00383928 90 ED AD 74 */ stw r7, lbl_805A9934@sda21(r13) /* 803869CC 0038392C 7C 85 40 38 */ and r5, r4, r8 /* 803869D0 00383930 7C 00 40 38 */ and r0, r0, r8 /* 803869D4 00383934 90 CD AD 80 */ stw r6, lbl_805A9940@sda21(r13) /* 803869D8 00383938 38 80 00 00 */ li r4, 0 /* 803869DC 0038393C 90 AD AD 84 */ stw r5, lbl_805A9944@sda21(r13) /* 803869E0 00383940 90 0D AD 88 */ stw r0, lbl_805A9948@sda21(r13) /* 803869E4 00383944 4B FF D9 55 */ bl OSSetWirelessID /* 803869E8 00383948 7F 23 CB 78 */ mr r3, r25 /* 803869EC 0038394C 4B FF AC 9D */ bl OSRestoreInterrupts /* 803869F0 00383950 38 00 FF FF */ li r0, -1 /* 803869F4 00383954 98 1F 00 0A */ stb r0, 0xa(r31) /* 803869F8 00383958 38 7F 00 00 */ addi r3, r31, 0 /* 803869FC 0038395C 38 80 00 00 */ li r4, 0 /* 80386A00 00383960 38 A0 00 0A */ li r5, 0xa /* 80386A04 00383964 4B C7 C9 A5 */ bl memset /* 80386A08 00383968 48 00 00 E8 */ b lbl_80386AF0 lbl_80386A0C: /* 80386A0C 0038396C 7E A3 AB 78 */ mr r3, r21 /* 80386A10 00383970 48 03 90 8D */ bl SIGetType /* 80386A14 00383974 54 60 00 85 */ rlwinm. r0, r3, 0, 2, 2 /* 80386A18 00383978 40 82 00 08 */ bne lbl_80386A20 /* 80386A1C 0038397C 7E 94 BB 78 */ or r20, r20, r23 lbl_80386A20: /* 80386A20 00383980 38 75 00 00 */ addi r3, r21, 0 /* 80386A24 00383984 38 81 00 14 */ addi r4, r1, 0x14 /* 80386A28 00383988 48 03 8B 21 */ bl SIGetResponse /* 80386A2C 0038398C 2C 03 00 00 */ cmpwi r3, 0 /* 80386A30 00383990 40 82 00 20 */ bne lbl_80386A50 /* 80386A34 00383994 38 00 FF FD */ li r0, -3 /* 80386A38 00383998 98 1F 00 0A */ stb r0, 0xa(r31) /* 80386A3C 0038399C 38 7F 00 00 */ addi r3, r31, 0 /* 80386A40 003839A0 38 80 00 00 */ li r4, 0 /* 80386A44 003839A4 38 A0 00 0A */ li r5, 0xa /* 80386A48 003839A8 4B C7 C9 61 */ bl memset /* 80386A4C 003839AC 48 00 00 A4 */ b lbl_80386AF0 lbl_80386A50: /* 80386A50 003839B0 80 01 00 14 */ lwz r0, 0x14(r1) /* 80386A54 003839B4 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0 /* 80386A58 003839B8 41 82 00 20 */ beq lbl_80386A78 /* 80386A5C 003839BC 38 00 FF FD */ li r0, -3 /* 80386A60 003839C0 98 1F 00 0A */ stb r0, 0xa(r31) /* 80386A64 003839C4 38 7F 00 00 */ addi r3, r31, 0 /* 80386A68 003839C8 38 80 00 00 */ li r4, 0 /* 80386A6C 003839CC 38 A0 00 0A */ li r5, 0xa /* 80386A70 003839D0 4B C7 C9 39 */ bl memset /* 80386A74 003839D4 48 00 00 7C */ b lbl_80386AF0 lbl_80386A78: /* 80386A78 003839D8 81 8D 9F AC */ lwz r12, lbl_805A8B6C@sda21(r13) /* 80386A7C 003839DC 38 75 00 00 */ addi r3, r21, 0 /* 80386A80 003839E0 38 9F 00 00 */ addi r4, r31, 0 /* 80386A84 003839E4 7D 88 03 A6 */ mtlr r12 /* 80386A88 003839E8 38 A1 00 14 */ addi r5, r1, 0x14 /* 80386A8C 003839EC 4E 80 00 21 */ blrl /* 80386A90 003839F0 A0 1F 00 00 */ lhz r0, 0(r31) /* 80386A94 003839F4 54 00 04 A5 */ rlwinm. r0, r0, 0, 0x12, 0x12 /* 80386A98 003839F8 41 82 00 44 */ beq lbl_80386ADC /* 80386A9C 003839FC 38 00 FF FD */ li r0, -3 /* 80386AA0 00383A00 98 1F 00 0A */ stb r0, 0xa(r31) /* 80386AA4 00383A04 38 7F 00 00 */ addi r3, r31, 0 /* 80386AA8 00383A08 38 80 00 00 */ li r4, 0 /* 80386AAC 00383A0C 38 A0 00 0A */ li r5, 0xa /* 80386AB0 00383A10 4B C7 C8 F9 */ bl memset /* 80386AB4 00383A14 38 75 00 00 */ addi r3, r21, 0 /* 80386AB8 00383A18 38 D8 00 00 */ addi r6, r24, 0 /* 80386ABC 00383A1C 39 1E 00 00 */ addi r8, r30, 0 /* 80386AC0 00383A20 38 8D 9F B0 */ addi r4, r13, lbl_805A8B70@sda21 /* 80386AC4 00383A24 38 A0 00 01 */ li r5, 1 /* 80386AC8 00383A28 38 E0 00 0A */ li r7, 0xa /* 80386ACC 00383A2C 39 40 00 00 */ li r10, 0 /* 80386AD0 00383A30 39 20 00 00 */ li r9, 0 /* 80386AD4 00383A34 48 03 8B C5 */ bl SITransfer /* 80386AD8 00383A38 48 00 00 18 */ b lbl_80386AF0 lbl_80386ADC: /* 80386ADC 00383A3C 38 00 00 00 */ li r0, 0 /* 80386AE0 00383A40 98 1F 00 0A */ stb r0, 0xa(r31) /* 80386AE4 00383A44 A0 1F 00 00 */ lhz r0, 0(r31) /* 80386AE8 00383A48 54 00 06 6E */ rlwinm r0, r0, 0, 0x19, 0x17 /* 80386AEC 00383A4C B0 1F 00 00 */ sth r0, 0(r31) lbl_80386AF0: /* 80386AF0 00383A50 3A B5 00 01 */ addi r21, r21, 1 /* 80386AF4 00383A54 2C 15 00 04 */ cmpwi r21, 4 /* 80386AF8 00383A58 3B 18 00 0C */ addi r24, r24, 0xc /* 80386AFC 00383A5C 3B FF 00 0C */ addi r31, r31, 0xc /* 80386B00 00383A60 41 80 FC C8 */ blt lbl_803867C8 /* 80386B04 00383A64 7E C3 B3 78 */ mr r3, r22 /* 80386B08 00383A68 4B FF AB 81 */ bl OSRestoreInterrupts /* 80386B0C 00383A6C 7E 83 A3 78 */ mr r3, r20 /* 80386B10 00383A70 BA 81 00 20 */ lmw r20, 0x20(r1) /* 80386B14 00383A74 80 01 00 54 */ lwz r0, 0x54(r1) /* 80386B18 00383A78 38 21 00 50 */ addi r1, r1, 0x50 /* 80386B1C 00383A7C 7C 08 03 A6 */ mtlr r0 /* 80386B20 00383A80 4E 80 00 20 */ blr .global PADControlAllMotors PADControlAllMotors: /* 80386B24 00383A84 7C 08 02 A6 */ mflr r0 /* 80386B28 00383A88 90 01 00 04 */ stw r0, 4(r1) /* 80386B2C 00383A8C 94 21 FF D8 */ stwu r1, -0x28(r1) /* 80386B30 00383A90 BF 61 00 14 */ stmw r27, 0x14(r1) /* 80386B34 00383A94 7C 7B 1B 78 */ mr r27, r3 /* 80386B38 00383A98 4B FF AB 29 */ bl OSDisableInterrupts /* 80386B3C 00383A9C 3B C3 00 00 */ addi r30, r3, 0 /* 80386B40 00383AA0 3B 80 00 00 */ li r28, 0 /* 80386B44 00383AA4 3B A0 00 00 */ li r29, 0 /* 80386B48 00383AA8 3F E0 80 00 */ lis r31, 0x8000 lbl_80386B4C: /* 80386B4C 00383AAC 80 6D AD 74 */ lwz r3, lbl_805A9934@sda21(r13) /* 80386B50 00383AB0 7F E0 EC 30 */ srw r0, r31, r29 /* 80386B54 00383AB4 7C 60 00 39 */ and. r0, r3, r0 /* 80386B58 00383AB8 41 82 00 4C */ beq lbl_80386BA4 /* 80386B5C 00383ABC 7F A3 EB 78 */ mr r3, r29 /* 80386B60 00383AC0 48 03 8F 3D */ bl SIGetType /* 80386B64 00383AC4 54 60 00 85 */ rlwinm. r0, r3, 0, 2, 2 /* 80386B68 00383AC8 40 82 00 3C */ bne lbl_80386BA4 /* 80386B6C 00383ACC 80 0D 9F A8 */ lwz r0, lbl_805A8B68@sda21(r13) /* 80386B70 00383AD0 80 7B 00 00 */ lwz r3, 0(r27) /* 80386B74 00383AD4 28 00 00 02 */ cmplwi r0, 2 /* 80386B78 00383AD8 40 80 00 10 */ bge lbl_80386B88 /* 80386B7C 00383ADC 28 03 00 02 */ cmplwi r3, 2 /* 80386B80 00383AE0 40 82 00 08 */ bne lbl_80386B88 /* 80386B84 00383AE4 38 60 00 00 */ li r3, 0 lbl_80386B88: /* 80386B88 00383AE8 80 8D 9F A4 */ lwz r4, lbl_805A8B64@sda21(r13) /* 80386B8C 00383AEC 54 60 07 BE */ clrlwi r0, r3, 0x1e /* 80386B90 00383AF0 38 7D 00 00 */ addi r3, r29, 0 /* 80386B94 00383AF4 64 84 00 40 */ oris r4, r4, 0x40 /* 80386B98 00383AF8 7C 84 03 78 */ or r4, r4, r0 /* 80386B9C 00383AFC 48 03 87 41 */ bl SISetCommand /* 80386BA0 00383B00 3B 80 00 01 */ li r28, 1 lbl_80386BA4: /* 80386BA4 00383B04 3B BD 00 01 */ addi r29, r29, 1 /* 80386BA8 00383B08 2C 1D 00 04 */ cmpwi r29, 4 /* 80386BAC 00383B0C 3B 7B 00 04 */ addi r27, r27, 4 /* 80386BB0 00383B10 41 80 FF 9C */ blt lbl_80386B4C /* 80386BB4 00383B14 2C 1C 00 00 */ cmpwi r28, 0 /* 80386BB8 00383B18 41 82 00 08 */ beq lbl_80386BC0 /* 80386BBC 00383B1C 48 03 87 35 */ bl SITransferCommands lbl_80386BC0: /* 80386BC0 00383B20 7F C3 F3 78 */ mr r3, r30 /* 80386BC4 00383B24 4B FF AA C5 */ bl OSRestoreInterrupts /* 80386BC8 00383B28 BB 61 00 14 */ lmw r27, 0x14(r1) /* 80386BCC 00383B2C 80 01 00 2C */ lwz r0, 0x2c(r1) /* 80386BD0 00383B30 38 21 00 28 */ addi r1, r1, 0x28 /* 80386BD4 00383B34 7C 08 03 A6 */ mtlr r0 /* 80386BD8 00383B38 4E 80 00 20 */ blr .global sub_80386bdc sub_80386bdc: /* 80386BDC 00383B3C 7C 08 02 A6 */ mflr r0 /* 80386BE0 00383B40 90 01 00 04 */ stw r0, 4(r1) /* 80386BE4 00383B44 94 21 FF D8 */ stwu r1, -0x28(r1) /* 80386BE8 00383B48 93 E1 00 24 */ stw r31, 0x24(r1) /* 80386BEC 00383B4C 93 C1 00 20 */ stw r30, 0x20(r1) /* 80386BF0 00383B50 3B C4 00 00 */ addi r30, r4, 0 /* 80386BF4 00383B54 93 A1 00 1C */ stw r29, 0x1c(r1) /* 80386BF8 00383B58 3B A3 00 00 */ addi r29, r3, 0 /* 80386BFC 00383B5C 4B FF AA 65 */ bl OSDisableInterrupts /* 80386C00 00383B60 3C 00 80 00 */ lis r0, 0x8000 /* 80386C04 00383B64 80 8D AD 74 */ lwz r4, lbl_805A9934@sda21(r13) /* 80386C08 00383B68 7C 00 EC 30 */ srw r0, r0, r29 /* 80386C0C 00383B6C 7C 80 00 39 */ and. r0, r4, r0 /* 80386C10 00383B70 3B E3 00 00 */ addi r31, r3, 0 /* 80386C14 00383B74 41 82 00 48 */ beq lbl_80386C5C /* 80386C18 00383B78 7F A3 EB 78 */ mr r3, r29 /* 80386C1C 00383B7C 48 03 8E 81 */ bl SIGetType /* 80386C20 00383B80 54 60 00 85 */ rlwinm. r0, r3, 0, 2, 2 /* 80386C24 00383B84 40 82 00 38 */ bne lbl_80386C5C /* 80386C28 00383B88 80 0D 9F A8 */ lwz r0, lbl_805A8B68@sda21(r13) /* 80386C2C 00383B8C 28 00 00 02 */ cmplwi r0, 2 /* 80386C30 00383B90 40 80 00 10 */ bge lbl_80386C40 /* 80386C34 00383B94 28 1E 00 02 */ cmplwi r30, 2 /* 80386C38 00383B98 40 82 00 08 */ bne lbl_80386C40 /* 80386C3C 00383B9C 3B C0 00 00 */ li r30, 0 lbl_80386C40: /* 80386C40 00383BA0 80 8D 9F A4 */ lwz r4, lbl_805A8B64@sda21(r13) /* 80386C44 00383BA4 57 C0 07 BE */ clrlwi r0, r30, 0x1e /* 80386C48 00383BA8 38 7D 00 00 */ addi r3, r29, 0 /* 80386C4C 00383BAC 64 84 00 40 */ oris r4, r4, 0x40 /* 80386C50 00383BB0 7C 84 03 78 */ or r4, r4, r0 /* 80386C54 00383BB4 48 03 86 89 */ bl SISetCommand /* 80386C58 00383BB8 48 03 86 99 */ bl SITransferCommands lbl_80386C5C: /* 80386C5C 00383BBC 7F E3 FB 78 */ mr r3, r31 /* 80386C60 00383BC0 4B FF AA 29 */ bl OSRestoreInterrupts /* 80386C64 00383BC4 80 01 00 2C */ lwz r0, 0x2c(r1) /* 80386C68 00383BC8 83 E1 00 24 */ lwz r31, 0x24(r1) /* 80386C6C 00383BCC 83 C1 00 20 */ lwz r30, 0x20(r1) /* 80386C70 00383BD0 83 A1 00 1C */ lwz r29, 0x1c(r1) /* 80386C74 00383BD4 38 21 00 28 */ addi r1, r1, 0x28 /* 80386C78 00383BD8 7C 08 03 A6 */ mtlr r0 /* 80386C7C 00383BDC 4E 80 00 20 */ blr .global PADSetSpec PADSetSpec: /* 80386C80 00383BE0 38 00 00 00 */ li r0, 0 /* 80386C84 00383BE4 2C 03 00 01 */ cmpwi r3, 1 /* 80386C88 00383BE8 90 0D AD 94 */ stw r0, lbl_805A9954@sda21(r13) /* 80386C8C 00383BEC 41 82 00 30 */ beq lbl_80386CBC /* 80386C90 00383BF0 40 80 00 10 */ bge lbl_80386CA0 /* 80386C94 00383BF4 2C 03 00 00 */ cmpwi r3, 0 /* 80386C98 00383BF8 40 80 00 14 */ bge lbl_80386CAC /* 80386C9C 00383BFC 48 00 00 3C */ b lbl_80386CD8 lbl_80386CA0: /* 80386CA0 00383C00 2C 03 00 06 */ cmpwi r3, 6 /* 80386CA4 00383C04 40 80 00 34 */ bge lbl_80386CD8 /* 80386CA8 00383C08 48 00 00 24 */ b lbl_80386CCC lbl_80386CAC: /* 80386CAC 00383C0C 3C 80 80 38 */ lis r4, sub_80386ce0@ha /* 80386CB0 00383C10 38 04 6C E0 */ addi r0, r4, sub_80386ce0@l /* 80386CB4 00383C14 90 0D 9F AC */ stw r0, lbl_805A8B6C@sda21(r13) /* 80386CB8 00383C18 48 00 00 20 */ b lbl_80386CD8 lbl_80386CBC: /* 80386CBC 00383C1C 3C 80 80 38 */ lis r4, SPEC0_MakeStatus@ha /* 80386CC0 00383C20 38 04 6E 54 */ addi r0, r4, SPEC0_MakeStatus@l /* 80386CC4 00383C24 90 0D 9F AC */ stw r0, lbl_805A8B6C@sda21(r13) /* 80386CC8 00383C28 48 00 00 10 */ b lbl_80386CD8 lbl_80386CCC: /* 80386CCC 00383C2C 3C 80 80 38 */ lis r4, sub_80386fc8@ha /* 80386CD0 00383C30 38 04 6F C8 */ addi r0, r4, sub_80386fc8@l /* 80386CD4 00383C34 90 0D 9F AC */ stw r0, lbl_805A8B6C@sda21(r13) lbl_80386CD8: /* 80386CD8 00383C38 90 6D 9F A8 */ stw r3, lbl_805A8B68@sda21(r13) /* 80386CDC 00383C3C 4E 80 00 20 */ blr .global sub_80386ce0 sub_80386ce0: /* 80386CE0 00383C40 38 60 00 00 */ li r3, 0 /* 80386CE4 00383C44 B0 64 00 00 */ sth r3, 0(r4) /* 80386CE8 00383C48 80 05 00 00 */ lwz r0, 0(r5) /* 80386CEC 00383C4C 54 00 87 39 */ rlwinm. r0, r0, 0x10, 0x1c, 0x1c /* 80386CF0 00383C50 41 82 00 08 */ beq lbl_80386CF8 /* 80386CF4 00383C54 38 60 01 00 */ li r3, 0x100 lbl_80386CF8: /* 80386CF8 00383C58 A0 04 00 00 */ lhz r0, 0(r4) /* 80386CFC 00383C5C 7C 00 1B 78 */ or r0, r0, r3 /* 80386D00 00383C60 B0 04 00 00 */ sth r0, 0(r4) /* 80386D04 00383C64 80 05 00 00 */ lwz r0, 0(r5) /* 80386D08 00383C68 54 00 86 B5 */ rlwinm. r0, r0, 0x10, 0x1a, 0x1a /* 80386D0C 00383C6C 41 82 00 0C */ beq lbl_80386D18 /* 80386D10 00383C70 38 60 02 00 */ li r3, 0x200 /* 80386D14 00383C74 48 00 00 08 */ b lbl_80386D1C lbl_80386D18: /* 80386D18 00383C78 38 60 00 00 */ li r3, 0 lbl_80386D1C: /* 80386D1C 00383C7C A0 04 00 00 */ lhz r0, 0(r4) /* 80386D20 00383C80 7C 00 1B 78 */ or r0, r0, r3 /* 80386D24 00383C84 B0 04 00 00 */ sth r0, 0(r4) /* 80386D28 00383C88 80 05 00 00 */ lwz r0, 0(r5) /* 80386D2C 00383C8C 54 00 85 EF */ rlwinm. r0, r0, 0x10, 0x17, 0x17 /* 80386D30 00383C90 41 82 00 0C */ beq lbl_80386D3C /* 80386D34 00383C94 38 60 04 00 */ li r3, 0x400 /* 80386D38 00383C98 48 00 00 08 */ b lbl_80386D40 lbl_80386D3C: /* 80386D3C 00383C9C 38 60 00 00 */ li r3, 0 lbl_80386D40: /* 80386D40 00383CA0 A0 04 00 00 */ lhz r0, 0(r4) /* 80386D44 00383CA4 7C 00 1B 78 */ or r0, r0, r3 /* 80386D48 00383CA8 B0 04 00 00 */ sth r0, 0(r4) /* 80386D4C 00383CAC 80 05 00 00 */ lwz r0, 0(r5) /* 80386D50 00383CB0 54 00 87 FF */ rlwinm. r0, r0, 0x10, 0x1f, 0x1f /* 80386D54 00383CB4 41 82 00 0C */ beq lbl_80386D60 /* 80386D58 00383CB8 38 60 08 00 */ li r3, 0x800 /* 80386D5C 00383CBC 48 00 00 08 */ b lbl_80386D64 lbl_80386D60: /* 80386D60 00383CC0 38 60 00 00 */ li r3, 0 lbl_80386D64: /* 80386D64 00383CC4 A0 04 00 00 */ lhz r0, 0(r4) /* 80386D68 00383CC8 7C 00 1B 78 */ or r0, r0, r3 /* 80386D6C 00383CCC B0 04 00 00 */ sth r0, 0(r4) /* 80386D70 00383CD0 80 05 00 00 */ lwz r0, 0(r5) /* 80386D74 00383CD4 54 00 86 F7 */ rlwinm. r0, r0, 0x10, 0x1b, 0x1b /* 80386D78 00383CD8 41 82 00 0C */ beq lbl_80386D84 /* 80386D7C 00383CDC 38 C0 10 00 */ li r6, 0x1000 /* 80386D80 00383CE0 48 00 00 08 */ b lbl_80386D88 lbl_80386D84: /* 80386D84 00383CE4 38 C0 00 00 */ li r6, 0 lbl_80386D88: /* 80386D88 00383CE8 A0 64 00 00 */ lhz r3, 0(r4) /* 80386D8C 00383CEC 38 00 00 00 */ li r0, 0 /* 80386D90 00383CF0 7C 63 33 78 */ or r3, r3, r6 /* 80386D94 00383CF4 B0 64 00 00 */ sth r3, 0(r4) /* 80386D98 00383CF8 80 65 00 04 */ lwz r3, 4(r5) /* 80386D9C 00383CFC 54 63 84 3E */ srwi r3, r3, 0x10 /* 80386DA0 00383D00 7C 63 07 74 */ extsb r3, r3 /* 80386DA4 00383D04 98 64 00 02 */ stb r3, 2(r4) /* 80386DA8 00383D08 80 65 00 04 */ lwz r3, 4(r5) /* 80386DAC 00383D0C 54 63 46 3E */ srwi r3, r3, 0x18 /* 80386DB0 00383D10 7C 63 07 74 */ extsb r3, r3 /* 80386DB4 00383D14 98 64 00 03 */ stb r3, 3(r4) /* 80386DB8 00383D18 80 65 00 04 */ lwz r3, 4(r5) /* 80386DBC 00383D1C 7C 63 07 74 */ extsb r3, r3 /* 80386DC0 00383D20 98 64 00 04 */ stb r3, 4(r4) /* 80386DC4 00383D24 80 65 00 04 */ lwz r3, 4(r5) /* 80386DC8 00383D28 54 63 C2 3E */ srwi r3, r3, 8 /* 80386DCC 00383D2C 7C 63 07 74 */ extsb r3, r3 /* 80386DD0 00383D30 98 64 00 05 */ stb r3, 5(r4) /* 80386DD4 00383D34 80 65 00 00 */ lwz r3, 0(r5) /* 80386DD8 00383D38 54 63 C6 3E */ rlwinm r3, r3, 0x18, 0x18, 0x1f /* 80386DDC 00383D3C 98 64 00 06 */ stb r3, 6(r4) /* 80386DE0 00383D40 80 65 00 00 */ lwz r3, 0(r5) /* 80386DE4 00383D44 98 64 00 07 */ stb r3, 7(r4) /* 80386DE8 00383D48 98 04 00 08 */ stb r0, 8(r4) /* 80386DEC 00383D4C 98 04 00 09 */ stb r0, 9(r4) /* 80386DF0 00383D50 88 04 00 06 */ lbz r0, 6(r4) /* 80386DF4 00383D54 28 00 00 AA */ cmplwi r0, 0xaa /* 80386DF8 00383D58 41 80 00 10 */ blt lbl_80386E08 /* 80386DFC 00383D5C A0 04 00 00 */ lhz r0, 0(r4) /* 80386E00 00383D60 60 00 00 40 */ ori r0, r0, 0x40 /* 80386E04 00383D64 B0 04 00 00 */ sth r0, 0(r4) lbl_80386E08: /* 80386E08 00383D68 88 04 00 07 */ lbz r0, 7(r4) /* 80386E0C 00383D6C 28 00 00 AA */ cmplwi r0, 0xaa /* 80386E10 00383D70 41 80 00 10 */ blt lbl_80386E20 /* 80386E14 00383D74 A0 04 00 00 */ lhz r0, 0(r4) /* 80386E18 00383D78 60 00 00 20 */ ori r0, r0, 0x20 /* 80386E1C 00383D7C B0 04 00 00 */ sth r0, 0(r4) lbl_80386E20: /* 80386E20 00383D80 88 64 00 02 */ lbz r3, 2(r4) /* 80386E24 00383D84 38 03 FF 80 */ addi r0, r3, -128 /* 80386E28 00383D88 98 04 00 02 */ stb r0, 2(r4) /* 80386E2C 00383D8C 88 64 00 03 */ lbz r3, 3(r4) /* 80386E30 00383D90 38 03 FF 80 */ addi r0, r3, -128 /* 80386E34 00383D94 98 04 00 03 */ stb r0, 3(r4) /* 80386E38 00383D98 88 64 00 04 */ lbz r3, 4(r4) /* 80386E3C 00383D9C 38 03 FF 80 */ addi r0, r3, -128 /* 80386E40 00383DA0 98 04 00 04 */ stb r0, 4(r4) /* 80386E44 00383DA4 88 64 00 05 */ lbz r3, 5(r4) /* 80386E48 00383DA8 38 03 FF 80 */ addi r0, r3, -128 /* 80386E4C 00383DAC 98 04 00 05 */ stb r0, 5(r4) /* 80386E50 00383DB0 4E 80 00 20 */ blr .global SPEC0_MakeStatus SPEC0_MakeStatus: /* 80386E54 00383DB4 38 60 00 00 */ li r3, 0 /* 80386E58 00383DB8 B0 64 00 00 */ sth r3, 0(r4) /* 80386E5C 00383DBC 80 05 00 00 */ lwz r0, 0(r5) /* 80386E60 00383DC0 54 00 86 31 */ rlwinm. r0, r0, 0x10, 0x18, 0x18 /* 80386E64 00383DC4 41 82 00 08 */ beq lbl_80386E6C /* 80386E68 00383DC8 38 60 01 00 */ li r3, 0x100 lbl_80386E6C: /* 80386E6C 00383DCC A0 04 00 00 */ lhz r0, 0(r4) /* 80386E70 00383DD0 7C 00 1B 78 */ or r0, r0, r3 /* 80386E74 00383DD4 B0 04 00 00 */ sth r0, 0(r4) /* 80386E78 00383DD8 80 05 00 00 */ lwz r0, 0(r5) /* 80386E7C 00383DDC 54 00 85 EF */ rlwinm. r0, r0, 0x10, 0x17, 0x17 /* 80386E80 00383DE0 41 82 00 0C */ beq lbl_80386E8C /* 80386E84 00383DE4 38 60 02 00 */ li r3, 0x200 /* 80386E88 00383DE8 48 00 00 08 */ b lbl_80386E90 lbl_80386E8C: /* 80386E8C 00383DEC 38 60 00 00 */ li r3, 0 lbl_80386E90: /* 80386E90 00383DF0 A0 04 00 00 */ lhz r0, 0(r4) /* 80386E94 00383DF4 7C 00 1B 78 */ or r0, r0, r3 /* 80386E98 00383DF8 B0 04 00 00 */ sth r0, 0(r4) /* 80386E9C 00383DFC 80 05 00 00 */ lwz r0, 0(r5) /* 80386EA0 00383E00 54 00 86 B5 */ rlwinm. r0, r0, 0x10, 0x1a, 0x1a /* 80386EA4 00383E04 41 82 00 0C */ beq lbl_80386EB0 /* 80386EA8 00383E08 38 60 04 00 */ li r3, 0x400 /* 80386EAC 00383E0C 48 00 00 08 */ b lbl_80386EB4 lbl_80386EB0: /* 80386EB0 00383E10 38 60 00 00 */ li r3, 0 lbl_80386EB4: /* 80386EB4 00383E14 A0 04 00 00 */ lhz r0, 0(r4) /* 80386EB8 00383E18 7C 00 1B 78 */ or r0, r0, r3 /* 80386EBC 00383E1C B0 04 00 00 */ sth r0, 0(r4) /* 80386EC0 00383E20 80 05 00 00 */ lwz r0, 0(r5) /* 80386EC4 00383E24 54 00 86 F7 */ rlwinm. r0, r0, 0x10, 0x1b, 0x1b /* 80386EC8 00383E28 41 82 00 0C */ beq lbl_80386ED4 /* 80386ECC 00383E2C 38 60 08 00 */ li r3, 0x800 /* 80386ED0 00383E30 48 00 00 08 */ b lbl_80386ED8 lbl_80386ED4: /* 80386ED4 00383E34 38 60 00 00 */ li r3, 0 lbl_80386ED8: /* 80386ED8 00383E38 A0 04 00 00 */ lhz r0, 0(r4) /* 80386EDC 00383E3C 7C 00 1B 78 */ or r0, r0, r3 /* 80386EE0 00383E40 B0 04 00 00 */ sth r0, 0(r4) /* 80386EE4 00383E44 80 05 00 00 */ lwz r0, 0(r5) /* 80386EE8 00383E48 54 00 85 AD */ rlwinm. r0, r0, 0x10, 0x16, 0x16 /* 80386EEC 00383E4C 41 82 00 0C */ beq lbl_80386EF8 /* 80386EF0 00383E50 38 C0 10 00 */ li r6, 0x1000 /* 80386EF4 00383E54 48 00 00 08 */ b lbl_80386EFC lbl_80386EF8: /* 80386EF8 00383E58 38 C0 00 00 */ li r6, 0 lbl_80386EFC: /* 80386EFC 00383E5C A0 64 00 00 */ lhz r3, 0(r4) /* 80386F00 00383E60 38 00 00 00 */ li r0, 0 /* 80386F04 00383E64 7C 63 33 78 */ or r3, r3, r6 /* 80386F08 00383E68 B0 64 00 00 */ sth r3, 0(r4) /* 80386F0C 00383E6C 80 65 00 04 */ lwz r3, 4(r5) /* 80386F10 00383E70 54 63 84 3E */ srwi r3, r3, 0x10 /* 80386F14 00383E74 7C 63 07 74 */ extsb r3, r3 /* 80386F18 00383E78 98 64 00 02 */ stb r3, 2(r4) /* 80386F1C 00383E7C 80 65 00 04 */ lwz r3, 4(r5) /* 80386F20 00383E80 54 63 46 3E */ srwi r3, r3, 0x18 /* 80386F24 00383E84 7C 63 07 74 */ extsb r3, r3 /* 80386F28 00383E88 98 64 00 03 */ stb r3, 3(r4) /* 80386F2C 00383E8C 80 65 00 04 */ lwz r3, 4(r5) /* 80386F30 00383E90 7C 63 07 74 */ extsb r3, r3 /* 80386F34 00383E94 98 64 00 04 */ stb r3, 4(r4) /* 80386F38 00383E98 80 65 00 04 */ lwz r3, 4(r5) /* 80386F3C 00383E9C 54 63 C2 3E */ srwi r3, r3, 8 /* 80386F40 00383EA0 7C 63 07 74 */ extsb r3, r3 /* 80386F44 00383EA4 98 64 00 05 */ stb r3, 5(r4) /* 80386F48 00383EA8 80 65 00 00 */ lwz r3, 0(r5) /* 80386F4C 00383EAC 54 63 C6 3E */ rlwinm r3, r3, 0x18, 0x18, 0x1f /* 80386F50 00383EB0 98 64 00 06 */ stb r3, 6(r4) /* 80386F54 00383EB4 80 65 00 00 */ lwz r3, 0(r5) /* 80386F58 00383EB8 98 64 00 07 */ stb r3, 7(r4) /* 80386F5C 00383EBC 98 04 00 08 */ stb r0, 8(r4) /* 80386F60 00383EC0 98 04 00 09 */ stb r0, 9(r4) /* 80386F64 00383EC4 88 04 00 06 */ lbz r0, 6(r4) /* 80386F68 00383EC8 28 00 00 AA */ cmplwi r0, 0xaa /* 80386F6C 00383ECC 41 80 00 10 */ blt lbl_80386F7C /* 80386F70 00383ED0 A0 04 00 00 */ lhz r0, 0(r4) /* 80386F74 00383ED4 60 00 00 40 */ ori r0, r0, 0x40 /* 80386F78 00383ED8 B0 04 00 00 */ sth r0, 0(r4) lbl_80386F7C: /* 80386F7C 00383EDC 88 04 00 07 */ lbz r0, 7(r4) /* 80386F80 00383EE0 28 00 00 AA */ cmplwi r0, 0xaa /* 80386F84 00383EE4 41 80 00 10 */ blt lbl_80386F94 /* 80386F88 00383EE8 A0 04 00 00 */ lhz r0, 0(r4) /* 80386F8C 00383EEC 60 00 00 20 */ ori r0, r0, 0x20 /* 80386F90 00383EF0 B0 04 00 00 */ sth r0, 0(r4) lbl_80386F94: /* 80386F94 00383EF4 88 64 00 02 */ lbz r3, 2(r4) /* 80386F98 00383EF8 38 03 FF 80 */ addi r0, r3, -128 /* 80386F9C 00383EFC 98 04 00 02 */ stb r0, 2(r4) /* 80386FA0 00383F00 88 64 00 03 */ lbz r3, 3(r4) /* 80386FA4 00383F04 38 03 FF 80 */ addi r0, r3, -128 /* 80386FA8 00383F08 98 04 00 03 */ stb r0, 3(r4) /* 80386FAC 00383F0C 88 64 00 04 */ lbz r3, 4(r4) /* 80386FB0 00383F10 38 03 FF 80 */ addi r0, r3, -128 /* 80386FB4 00383F14 98 04 00 04 */ stb r0, 4(r4) /* 80386FB8 00383F18 88 64 00 05 */ lbz r3, 5(r4) /* 80386FBC 00383F1C 38 03 FF 80 */ addi r0, r3, -128 /* 80386FC0 00383F20 98 04 00 05 */ stb r0, 5(r4) /* 80386FC4 00383F24 4E 80 00 20 */ blr .global sub_80386fc8 sub_80386fc8: /* 80386FC8 00383F28 80 05 00 00 */ lwz r0, 0(r5) /* 80386FCC 00383F2C 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f /* 80386FD0 00383F30 B0 04 00 00 */ sth r0, 0(r4) /* 80386FD4 00383F34 80 05 00 00 */ lwz r0, 0(r5) /* 80386FD8 00383F38 54 00 C2 3E */ srwi r0, r0, 8 /* 80386FDC 00383F3C 7C 00 07 74 */ extsb r0, r0 /* 80386FE0 00383F40 98 04 00 02 */ stb r0, 2(r4) /* 80386FE4 00383F44 80 05 00 00 */ lwz r0, 0(r5) /* 80386FE8 00383F48 7C 00 07 74 */ extsb r0, r0 /* 80386FEC 00383F4C 98 04 00 03 */ stb r0, 3(r4) /* 80386FF0 00383F50 80 0D 9F A4 */ lwz r0, lbl_805A8B64@sda21(r13) /* 80386FF4 00383F54 54 00 05 6E */ rlwinm r0, r0, 0, 0x15, 0x17 /* 80386FF8 00383F58 2C 00 04 00 */ cmpwi r0, 0x400 /* 80386FFC 00383F5C 41 82 01 98 */ beq lbl_80387194 /* 80387000 00383F60 40 80 00 34 */ bge lbl_80387034 /* 80387004 00383F64 2C 00 02 00 */ cmpwi r0, 0x200 /* 80387008 00383F68 41 82 00 F8 */ beq lbl_80387100 /* 8038700C 00383F6C 40 80 00 1C */ bge lbl_80387028 /* 80387010 00383F70 2C 00 01 00 */ cmpwi r0, 0x100 /* 80387014 00383F74 41 82 00 98 */ beq lbl_803870AC /* 80387018 00383F78 40 80 01 BC */ bge lbl_803871D4 /* 8038701C 00383F7C 2C 00 00 00 */ cmpwi r0, 0 /* 80387020 00383F80 41 82 00 38 */ beq lbl_80387058 /* 80387024 00383F84 48 00 01 B0 */ b lbl_803871D4 lbl_80387028: /* 80387028 00383F88 2C 00 03 00 */ cmpwi r0, 0x300 /* 8038702C 00383F8C 41 82 01 24 */ beq lbl_80387150 /* 80387030 00383F90 48 00 01 A4 */ b lbl_803871D4 lbl_80387034: /* 80387034 00383F94 2C 00 06 00 */ cmpwi r0, 0x600 /* 80387038 00383F98 41 82 00 20 */ beq lbl_80387058 /* 8038703C 00383F9C 40 80 00 10 */ bge lbl_8038704C /* 80387040 00383FA0 2C 00 05 00 */ cmpwi r0, 0x500 /* 80387044 00383FA4 41 82 00 14 */ beq lbl_80387058 /* 80387048 00383FA8 48 00 01 8C */ b lbl_803871D4 lbl_8038704C: /* 8038704C 00383FAC 2C 00 07 00 */ cmpwi r0, 0x700 /* 80387050 00383FB0 41 82 00 08 */ beq lbl_80387058 /* 80387054 00383FB4 48 00 01 80 */ b lbl_803871D4 lbl_80387058: /* 80387058 00383FB8 80 05 00 04 */ lwz r0, 4(r5) /* 8038705C 00383FBC 54 00 46 3E */ srwi r0, r0, 0x18 /* 80387060 00383FC0 7C 00 07 74 */ extsb r0, r0 /* 80387064 00383FC4 98 04 00 04 */ stb r0, 4(r4) /* 80387068 00383FC8 80 05 00 04 */ lwz r0, 4(r5) /* 8038706C 00383FCC 54 00 84 3E */ srwi r0, r0, 0x10 /* 80387070 00383FD0 7C 00 07 74 */ extsb r0, r0 /* 80387074 00383FD4 98 04 00 05 */ stb r0, 5(r4) /* 80387078 00383FD8 80 05 00 04 */ lwz r0, 4(r5) /* 8038707C 00383FDC 54 00 C6 36 */ rlwinm r0, r0, 0x18, 0x18, 0x1b /* 80387080 00383FE0 98 04 00 06 */ stb r0, 6(r4) /* 80387084 00383FE4 80 05 00 04 */ lwz r0, 4(r5) /* 80387088 00383FE8 54 00 E6 36 */ rlwinm r0, r0, 0x1c, 0x18, 0x1b /* 8038708C 00383FEC 98 04 00 07 */ stb r0, 7(r4) /* 80387090 00383FF0 80 05 00 04 */ lwz r0, 4(r5) /* 80387094 00383FF4 54 00 06 36 */ rlwinm r0, r0, 0, 0x18, 0x1b /* 80387098 00383FF8 98 04 00 08 */ stb r0, 8(r4) /* 8038709C 00383FFC 80 05 00 04 */ lwz r0, 4(r5) /* 803870A0 00384000 54 00 26 36 */ rlwinm r0, r0, 4, 0x18, 0x1b /* 803870A4 00384004 98 04 00 09 */ stb r0, 9(r4) /* 803870A8 00384008 48 00 01 2C */ b lbl_803871D4 lbl_803870AC: /* 803870AC 0038400C 80 05 00 04 */ lwz r0, 4(r5) /* 803870B0 00384010 54 00 46 36 */ rlwinm r0, r0, 8, 0x18, 0x1b /* 803870B4 00384014 7C 00 07 74 */ extsb r0, r0 /* 803870B8 00384018 98 04 00 04 */ stb r0, 4(r4) /* 803870BC 0038401C 80 05 00 04 */ lwz r0, 4(r5) /* 803870C0 00384020 54 00 66 36 */ rlwinm r0, r0, 0xc, 0x18, 0x1b /* 803870C4 00384024 7C 00 07 74 */ extsb r0, r0 /* 803870C8 00384028 98 04 00 05 */ stb r0, 5(r4) /* 803870CC 0038402C 80 05 00 04 */ lwz r0, 4(r5) /* 803870D0 00384030 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f /* 803870D4 00384034 98 04 00 06 */ stb r0, 6(r4) /* 803870D8 00384038 80 05 00 04 */ lwz r0, 4(r5) /* 803870DC 0038403C 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f /* 803870E0 00384040 98 04 00 07 */ stb r0, 7(r4) /* 803870E4 00384044 80 05 00 04 */ lwz r0, 4(r5) /* 803870E8 00384048 54 00 06 36 */ rlwinm r0, r0, 0, 0x18, 0x1b /* 803870EC 0038404C 98 04 00 08 */ stb r0, 8(r4) /* 803870F0 00384050 80 05 00 04 */ lwz r0, 4(r5) /* 803870F4 00384054 54 00 26 36 */ rlwinm r0, r0, 4, 0x18, 0x1b /* 803870F8 00384058 98 04 00 09 */ stb r0, 9(r4) /* 803870FC 0038405C 48 00 00 D8 */ b lbl_803871D4 lbl_80387100: /* 80387100 00384060 80 05 00 04 */ lwz r0, 4(r5) /* 80387104 00384064 54 00 46 36 */ rlwinm r0, r0, 8, 0x18, 0x1b /* 80387108 00384068 7C 00 07 74 */ extsb r0, r0 /* 8038710C 0038406C 98 04 00 04 */ stb r0, 4(r4) /* 80387110 00384070 80 05 00 04 */ lwz r0, 4(r5) /* 80387114 00384074 54 00 66 36 */ rlwinm r0, r0, 0xc, 0x18, 0x1b /* 80387118 00384078 7C 00 07 74 */ extsb r0, r0 /* 8038711C 0038407C 98 04 00 05 */ stb r0, 5(r4) /* 80387120 00384080 80 05 00 04 */ lwz r0, 4(r5) /* 80387124 00384084 54 00 86 36 */ rlwinm r0, r0, 0x10, 0x18, 0x1b /* 80387128 00384088 98 04 00 06 */ stb r0, 6(r4) /* 8038712C 0038408C 80 05 00 04 */ lwz r0, 4(r5) /* 80387130 00384090 54 00 A6 36 */ rlwinm r0, r0, 0x14, 0x18, 0x1b /* 80387134 00384094 98 04 00 07 */ stb r0, 7(r4) /* 80387138 00384098 80 05 00 04 */ lwz r0, 4(r5) /* 8038713C 0038409C 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f /* 80387140 003840A0 98 04 00 08 */ stb r0, 8(r4) /* 80387144 003840A4 80 05 00 04 */ lwz r0, 4(r5) /* 80387148 003840A8 98 04 00 09 */ stb r0, 9(r4) /* 8038714C 003840AC 48 00 00 88 */ b lbl_803871D4 lbl_80387150: /* 80387150 003840B0 80 C5 00 04 */ lwz r6, 4(r5) /* 80387154 003840B4 38 00 00 00 */ li r0, 0 /* 80387158 003840B8 54 C6 46 3E */ srwi r6, r6, 0x18 /* 8038715C 003840BC 7C C6 07 74 */ extsb r6, r6 /* 80387160 003840C0 98 C4 00 04 */ stb r6, 4(r4) /* 80387164 003840C4 80 C5 00 04 */ lwz r6, 4(r5) /* 80387168 003840C8 54 C6 84 3E */ srwi r6, r6, 0x10 /* 8038716C 003840CC 7C C6 07 74 */ extsb r6, r6 /* 80387170 003840D0 98 C4 00 05 */ stb r6, 5(r4) /* 80387174 003840D4 80 C5 00 04 */ lwz r6, 4(r5) /* 80387178 003840D8 54 C6 C6 3E */ rlwinm r6, r6, 0x18, 0x18, 0x1f /* 8038717C 003840DC 98 C4 00 06 */ stb r6, 6(r4) /* 80387180 003840E0 80 A5 00 04 */ lwz r5, 4(r5) /* 80387184 003840E4 98 A4 00 07 */ stb r5, 7(r4) /* 80387188 003840E8 98 04 00 08 */ stb r0, 8(r4) /* 8038718C 003840EC 98 04 00 09 */ stb r0, 9(r4) /* 80387190 003840F0 48 00 00 44 */ b lbl_803871D4 lbl_80387194: /* 80387194 003840F4 80 C5 00 04 */ lwz r6, 4(r5) /* 80387198 003840F8 38 00 00 00 */ li r0, 0 /* 8038719C 003840FC 54 C6 46 3E */ srwi r6, r6, 0x18 /* 803871A0 00384100 7C C6 07 74 */ extsb r6, r6 /* 803871A4 00384104 98 C4 00 04 */ stb r6, 4(r4) /* 803871A8 00384108 80 C5 00 04 */ lwz r6, 4(r5) /* 803871AC 0038410C 54 C6 84 3E */ srwi r6, r6, 0x10 /* 803871B0 00384110 7C C6 07 74 */ extsb r6, r6 /* 803871B4 00384114 98 C4 00 05 */ stb r6, 5(r4) /* 803871B8 00384118 98 04 00 06 */ stb r0, 6(r4) /* 803871BC 0038411C 98 04 00 07 */ stb r0, 7(r4) /* 803871C0 00384120 80 05 00 04 */ lwz r0, 4(r5) /* 803871C4 00384124 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f /* 803871C8 00384128 98 04 00 08 */ stb r0, 8(r4) /* 803871CC 0038412C 80 05 00 04 */ lwz r0, 4(r5) /* 803871D0 00384130 98 04 00 09 */ stb r0, 9(r4) lbl_803871D4: /* 803871D4 00384134 88 C4 00 02 */ lbz r6, 2(r4) /* 803871D8 00384138 3C A0 80 54 */ lis r5, lbl_80542000@ha /* 803871DC 0038413C 1C 63 00 0C */ mulli r3, r3, 0xc /* 803871E0 00384140 38 06 FF 80 */ addi r0, r6, -128 /* 803871E4 00384144 98 04 00 02 */ stb r0, 2(r4) /* 803871E8 00384148 38 05 20 00 */ addi r0, r5, lbl_80542000@l /* 803871EC 0038414C 7C 60 1A 14 */ add r3, r0, r3 /* 803871F0 00384150 88 A4 00 03 */ lbz r5, 3(r4) /* 803871F4 00384154 38 05 FF 80 */ addi r0, r5, -128 /* 803871F8 00384158 98 04 00 03 */ stb r0, 3(r4) /* 803871FC 0038415C 88 A4 00 04 */ lbz r5, 4(r4) /* 80387200 00384160 38 05 FF 80 */ addi r0, r5, -128 /* 80387204 00384164 98 04 00 04 */ stb r0, 4(r4) /* 80387208 00384168 88 A4 00 05 */ lbz r5, 5(r4) /* 8038720C 0038416C 38 05 FF 80 */ addi r0, r5, -128 /* 80387210 00384170 98 04 00 05 */ stb r0, 5(r4) /* 80387214 00384174 88 E3 00 02 */ lbz r7, 2(r3) /* 80387218 00384178 88 C4 00 02 */ lbz r6, 2(r4) /* 8038721C 0038417C 7C E0 07 75 */ extsb. r0, r7 /* 80387220 00384180 40 81 00 24 */ ble lbl_80387244 /* 80387224 00384184 7C E5 07 74 */ extsb r5, r7 /* 80387228 00384188 38 05 FF 80 */ addi r0, r5, -128 /* 8038722C 0038418C 7C 05 07 74 */ extsb r5, r0 /* 80387230 00384190 7C C0 07 74 */ extsb r0, r6 /* 80387234 00384194 7C 00 28 00 */ cmpw r0, r5 /* 80387238 00384198 40 80 00 30 */ bge lbl_80387268 /* 8038723C 0038419C 7C A6 2B 78 */ mr r6, r5 /* 80387240 003841A0 48 00 00 28 */ b lbl_80387268 lbl_80387244: /* 80387244 003841A4 7C E0 07 75 */ extsb. r0, r7 /* 80387248 003841A8 40 80 00 20 */ bge lbl_80387268 /* 8038724C 003841AC 7C E5 07 74 */ extsb r5, r7 /* 80387250 003841B0 38 05 00 7F */ addi r0, r5, 0x7f /* 80387254 003841B4 7C 05 07 74 */ extsb r5, r0 /* 80387258 003841B8 7C C0 07 74 */ extsb r0, r6 /* 8038725C 003841BC 7C 05 00 00 */ cmpw r5, r0 /* 80387260 003841C0 40 80 00 08 */ bge lbl_80387268 /* 80387264 003841C4 7C A6 2B 78 */ mr r6, r5 lbl_80387268: /* 80387268 003841C8 7C C7 30 50 */ subf r6, r7, r6 /* 8038726C 003841CC 98 C4 00 02 */ stb r6, 2(r4) /* 80387270 003841D0 88 E3 00 03 */ lbz r7, 3(r3) /* 80387274 003841D4 88 C4 00 03 */ lbz r6, 3(r4) /* 80387278 003841D8 7C E0 07 75 */ extsb. r0, r7 /* 8038727C 003841DC 40 81 00 24 */ ble lbl_803872A0 /* 80387280 003841E0 7C E5 07 74 */ extsb r5, r7 /* 80387284 003841E4 38 05 FF 80 */ addi r0, r5, -128 /* 80387288 003841E8 7C 05 07 74 */ extsb r5, r0 /* 8038728C 003841EC 7C C0 07 74 */ extsb r0, r6 /* 80387290 003841F0 7C 00 28 00 */ cmpw r0, r5 /* 80387294 003841F4 40 80 00 30 */ bge lbl_803872C4 /* 80387298 003841F8 7C A6 2B 78 */ mr r6, r5 /* 8038729C 003841FC 48 00 00 28 */ b lbl_803872C4 lbl_803872A0: /* 803872A0 00384200 7C E0 07 75 */ extsb. r0, r7 /* 803872A4 00384204 40 80 00 20 */ bge lbl_803872C4 /* 803872A8 00384208 7C E5 07 74 */ extsb r5, r7 /* 803872AC 0038420C 38 05 00 7F */ addi r0, r5, 0x7f /* 803872B0 00384210 7C 05 07 74 */ extsb r5, r0 /* 803872B4 00384214 7C C0 07 74 */ extsb r0, r6 /* 803872B8 00384218 7C 05 00 00 */ cmpw r5, r0 /* 803872BC 0038421C 40 80 00 08 */ bge lbl_803872C4 /* 803872C0 00384220 7C A6 2B 78 */ mr r6, r5 lbl_803872C4: /* 803872C4 00384224 7C C7 30 50 */ subf r6, r7, r6 /* 803872C8 00384228 98 C4 00 03 */ stb r6, 3(r4) /* 803872CC 0038422C 88 E3 00 04 */ lbz r7, 4(r3) /* 803872D0 00384230 88 C4 00 04 */ lbz r6, 4(r4) /* 803872D4 00384234 7C E0 07 75 */ extsb. r0, r7 /* 803872D8 00384238 40 81 00 24 */ ble lbl_803872FC /* 803872DC 0038423C 7C E5 07 74 */ extsb r5, r7 /* 803872E0 00384240 38 05 FF 80 */ addi r0, r5, -128 /* 803872E4 00384244 7C 05 07 74 */ extsb r5, r0 /* 803872E8 00384248 7C C0 07 74 */ extsb r0, r6 /* 803872EC 0038424C 7C 00 28 00 */ cmpw r0, r5 /* 803872F0 00384250 40 80 00 30 */ bge lbl_80387320 /* 803872F4 00384254 7C A6 2B 78 */ mr r6, r5 /* 803872F8 00384258 48 00 00 28 */ b lbl_80387320 lbl_803872FC: /* 803872FC 0038425C 7C E0 07 75 */ extsb. r0, r7 /* 80387300 00384260 40 80 00 20 */ bge lbl_80387320 /* 80387304 00384264 7C E5 07 74 */ extsb r5, r7 /* 80387308 00384268 38 05 00 7F */ addi r0, r5, 0x7f /* 8038730C 0038426C 7C 05 07 74 */ extsb r5, r0 /* 80387310 00384270 7C C0 07 74 */ extsb r0, r6 /* 80387314 00384274 7C 05 00 00 */ cmpw r5, r0 /* 80387318 00384278 40 80 00 08 */ bge lbl_80387320 /* 8038731C 0038427C 7C A6 2B 78 */ mr r6, r5 lbl_80387320: /* 80387320 00384280 7C C7 30 50 */ subf r6, r7, r6 /* 80387324 00384284 98 C4 00 04 */ stb r6, 4(r4) /* 80387328 00384288 88 E3 00 05 */ lbz r7, 5(r3) /* 8038732C 0038428C 88 C4 00 05 */ lbz r6, 5(r4) /* 80387330 00384290 7C E0 07 75 */ extsb. r0, r7 /* 80387334 00384294 40 81 00 24 */ ble lbl_80387358 /* 80387338 00384298 7C E5 07 74 */ extsb r5, r7 /* 8038733C 0038429C 38 05 FF 80 */ addi r0, r5, -128 /* 80387340 003842A0 7C 05 07 74 */ extsb r5, r0 /* 80387344 003842A4 7C C0 07 74 */ extsb r0, r6 /* 80387348 003842A8 7C 00 28 00 */ cmpw r0, r5 /* 8038734C 003842AC 40 80 00 30 */ bge lbl_8038737C /* 80387350 003842B0 7C A6 2B 78 */ mr r6, r5 /* 80387354 003842B4 48 00 00 28 */ b lbl_8038737C lbl_80387358: /* 80387358 003842B8 7C E0 07 75 */ extsb. r0, r7 /* 8038735C 003842BC 40 80 00 20 */ bge lbl_8038737C /* 80387360 003842C0 7C E5 07 74 */ extsb r5, r7 /* 80387364 003842C4 38 05 00 7F */ addi r0, r5, 0x7f /* 80387368 003842C8 7C 05 07 74 */ extsb r5, r0 /* 8038736C 003842CC 7C C0 07 74 */ extsb r0, r6 /* 80387370 003842D0 7C 05 00 00 */ cmpw r5, r0 /* 80387374 003842D4 40 80 00 08 */ bge lbl_8038737C /* 80387378 003842D8 7C A6 2B 78 */ mr r6, r5 lbl_8038737C: /* 8038737C 003842DC 7C C7 30 50 */ subf r6, r7, r6 /* 80387380 003842E0 98 C4 00 05 */ stb r6, 5(r4) /* 80387384 003842E4 88 03 00 06 */ lbz r0, 6(r3) /* 80387388 003842E8 88 A4 00 06 */ lbz r5, 6(r4) /* 8038738C 003842EC 7C 05 00 40 */ cmplw r5, r0 /* 80387390 003842F0 40 80 00 08 */ bge lbl_80387398 /* 80387394 003842F4 7C 05 03 78 */ mr r5, r0 lbl_80387398: /* 80387398 003842F8 7C A0 28 50 */ subf r5, r0, r5 /* 8038739C 003842FC 98 A4 00 06 */ stb r5, 6(r4) /* 803873A0 00384300 88 03 00 07 */ lbz r0, 7(r3) /* 803873A4 00384304 88 64 00 07 */ lbz r3, 7(r4) /* 803873A8 00384308 7C 03 00 40 */ cmplw r3, r0 /* 803873AC 0038430C 40 80 00 08 */ bge lbl_803873B4 /* 803873B0 00384310 7C 03 03 78 */ mr r3, r0 lbl_803873B4: /* 803873B4 00384314 7C 60 18 50 */ subf r3, r0, r3 /* 803873B8 00384318 98 64 00 07 */ stb r3, 7(r4) /* 803873BC 0038431C 4E 80 00 20 */ blr OnReset: /* 803873C0 00384320 7C 08 02 A6 */ mflr r0 /* 803873C4 00384324 90 01 00 04 */ stw r0, 4(r1) /* 803873C8 00384328 94 21 FF D8 */ stwu r1, -0x28(r1) /* 803873CC 0038432C 93 E1 00 24 */ stw r31, 0x24(r1) /* 803873D0 00384330 93 C1 00 20 */ stw r30, 0x20(r1) /* 803873D4 00384334 3B C3 00 00 */ addi r30, r3, 0 /* 803873D8 00384338 80 0D AD 8C */ lwz r0, lbl_805A994C@sda21(r13) /* 803873DC 0038433C 28 00 00 00 */ cmplwi r0, 0 /* 803873E0 00384340 41 82 00 0C */ beq lbl_803873EC /* 803873E4 00384344 38 60 00 00 */ li r3, 0 /* 803873E8 00384348 48 00 01 CD */ bl PADSetSamplingCallback lbl_803873EC: /* 803873EC 0038434C 2C 1E 00 00 */ cmpwi r30, 0 /* 803873F0 00384350 40 82 01 40 */ bne lbl_80387530 /* 803873F4 00384354 80 0D AD 78 */ lwz r0, lbl_805A9938@sda21(r13) /* 803873F8 00384358 3B C0 00 00 */ li r30, 0 /* 803873FC 0038435C 38 7E 00 00 */ addi r3, r30, 0 /* 80387400 00384360 28 00 00 00 */ cmplwi r0, 0 /* 80387404 00384364 40 82 00 14 */ bne lbl_80387418 /* 80387408 00384368 80 0D 9F 9C */ lwz r0, lbl_805A8B5C@sda21(r13) /* 8038740C 0038436C 2C 00 00 20 */ cmpwi r0, 0x20 /* 80387410 00384370 40 82 00 08 */ bne lbl_80387418 /* 80387414 00384374 38 60 00 01 */ li r3, 1 lbl_80387418: /* 80387418 00384378 2C 03 00 00 */ cmpwi r3, 0 /* 8038741C 0038437C 41 82 00 14 */ beq lbl_80387430 /* 80387420 00384380 48 03 72 8D */ bl SIBusy /* 80387424 00384384 2C 03 00 00 */ cmpwi r3, 0 /* 80387428 00384388 40 82 00 08 */ bne lbl_80387430 /* 8038742C 0038438C 3B C0 00 01 */ li r30, 1 lbl_80387430: /* 80387430 00384390 80 0D AD 90 */ lwz r0, lbl_805A9950@sda21(r13) /* 80387434 00384394 2C 00 00 00 */ cmpwi r0, 0 /* 80387438 00384398 40 82 00 F0 */ bne lbl_80387528 /* 8038743C 0038439C 2C 1E 00 00 */ cmpwi r30, 0 /* 80387440 003843A0 41 82 00 E8 */ beq lbl_80387528 /* 80387444 003843A4 3F C0 F0 00 */ lis r30, 0xf000 /* 80387448 003843A8 4B FF A2 19 */ bl OSDisableInterrupts /* 8038744C 003843AC 80 CD AD 88 */ lwz r6, lbl_805A9948@sda21(r13) /* 80387450 003843B0 38 E0 00 00 */ li r7, 0 /* 80387454 003843B4 80 AD AD 80 */ lwz r5, lbl_805A9940@sda21(r13) /* 80387458 003843B8 3C 80 80 00 */ lis r4, 0x800030E3@ha /* 8038745C 003843BC 80 0D AD 84 */ lwz r0, lbl_805A9944@sda21(r13) /* 80387460 003843C0 7F DE 33 78 */ or r30, r30, r6 /* 80387464 003843C4 80 CD AD 78 */ lwz r6, lbl_805A9938@sda21(r13) /* 80387468 003843C8 7C A5 03 78 */ or r5, r5, r0 /* 8038746C 003843CC 88 04 30 E3 */ lbz r0, 0x800030E3@l(r4) /* 80387470 003843D0 7F DE 28 78 */ andc r30, r30, r5 /* 80387474 003843D4 80 AD AD 74 */ lwz r5, lbl_805A9934@sda21(r13) /* 80387478 003843D8 7C C4 F3 78 */ or r4, r6, r30 /* 8038747C 003843DC 90 ED AD 88 */ stw r7, lbl_805A9948@sda21(r13) /* 80387480 003843E0 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19 /* 80387484 003843E4 90 8D AD 78 */ stw r4, lbl_805A9938@sda21(r13) /* 80387488 003843E8 7C A4 F0 78 */ andc r4, r5, r30 /* 8038748C 003843EC 3B E3 00 00 */ addi r31, r3, 0 /* 80387490 003843F0 80 CD AD 78 */ lwz r6, lbl_805A9938@sda21(r13) /* 80387494 003843F4 90 8D AD 74 */ stw r4, lbl_805A9934@sda21(r13) /* 80387498 003843F8 7C C3 28 38 */ and r3, r6, r5 /* 8038749C 003843FC 40 82 00 10 */ bne lbl_803874AC /* 803874A0 00384400 80 0D AD 7C */ lwz r0, lbl_805A993C@sda21(r13) /* 803874A4 00384404 7C 00 F3 78 */ or r0, r0, r30 /* 803874A8 00384408 90 0D AD 7C */ stw r0, lbl_805A993C@sda21(r13) lbl_803874AC: /* 803874AC 0038440C 48 03 7F 5D */ bl SIDisablePolling /* 803874B0 00384410 80 0D 9F 9C */ lwz r0, lbl_805A8B5C@sda21(r13) /* 803874B4 00384414 2C 00 00 20 */ cmpwi r0, 0x20 /* 803874B8 00384418 40 82 00 58 */ bne lbl_80387510 /* 803874BC 0038441C 80 AD AD 78 */ lwz r5, lbl_805A9938@sda21(r13) /* 803874C0 00384420 7C A0 00 34 */ cntlzw r0, r5 /* 803874C4 00384424 90 0D 9F 9C */ stw r0, lbl_805A8B5C@sda21(r13) /* 803874C8 00384428 80 8D 9F 9C */ lwz r4, lbl_805A8B5C@sda21(r13) /* 803874CC 0038442C 2C 04 00 20 */ cmpwi r4, 0x20 /* 803874D0 00384430 41 82 00 40 */ beq lbl_80387510 /* 803874D4 00384434 3C 00 80 00 */ lis r0, 0x8000 /* 803874D8 00384438 7C 00 24 30 */ srw r0, r0, r4 /* 803874DC 0038443C 7C A0 00 78 */ andc r0, r5, r0 /* 803874E0 00384440 1C 84 00 0C */ mulli r4, r4, 0xc /* 803874E4 00384444 90 0D AD 78 */ stw r0, lbl_805A9938@sda21(r13) /* 803874E8 00384448 3C 60 80 54 */ lis r3, lbl_80542000@ha /* 803874EC 0038444C 38 03 20 00 */ addi r0, r3, lbl_80542000@l /* 803874F0 00384450 7C 60 22 14 */ add r3, r0, r4 /* 803874F4 00384454 38 80 00 00 */ li r4, 0 /* 803874F8 00384458 38 A0 00 0C */ li r5, 0xc /* 803874FC 0038445C 4B C7 BE AD */ bl memset /* 80387500 00384460 3C 80 80 38 */ lis r4, PADTypeAndStatusCallback@ha /* 80387504 00384464 80 6D 9F 9C */ lwz r3, lbl_805A8B5C@sda21(r13) /* 80387508 00384468 38 84 5E FC */ addi r4, r4, PADTypeAndStatusCallback@l /* 8038750C 0038446C 48 03 87 55 */ bl SIGetTypeAsync lbl_80387510: /* 80387510 00384470 7F E3 FB 78 */ mr r3, r31 /* 80387514 00384474 4B FF A1 75 */ bl OSRestoreInterrupts /* 80387518 00384478 38 00 00 01 */ li r0, 1 /* 8038751C 0038447C 90 0D AD 90 */ stw r0, lbl_805A9950@sda21(r13) /* 80387520 00384480 38 60 00 00 */ li r3, 0 /* 80387524 00384484 48 00 00 18 */ b lbl_8038753C lbl_80387528: /* 80387528 00384488 7F C3 F3 78 */ mr r3, r30 /* 8038752C 0038448C 48 00 00 10 */ b lbl_8038753C lbl_80387530: /* 80387530 00384490 38 00 00 00 */ li r0, 0 /* 80387534 00384494 90 0D AD 90 */ stw r0, lbl_805A9950@sda21(r13) /* 80387538 00384498 38 60 00 01 */ li r3, 1 lbl_8038753C: /* 8038753C 0038449C 80 01 00 2C */ lwz r0, 0x2c(r1) /* 80387540 003844A0 83 E1 00 24 */ lwz r31, 0x24(r1) /* 80387544 003844A4 83 C1 00 20 */ lwz r30, 0x20(r1) /* 80387548 003844A8 38 21 00 28 */ addi r1, r1, 0x28 /* 8038754C 003844AC 7C 08 03 A6 */ mtlr r0 /* 80387550 003844B0 4E 80 00 20 */ blr .global SamplingHandler SamplingHandler: /* 80387554 003844B4 7C 08 02 A6 */ mflr r0 /* 80387558 003844B8 90 01 00 04 */ stw r0, 4(r1) /* 8038755C 003844BC 94 21 FD 20 */ stwu r1, -0x2e0(r1) /* 80387560 003844C0 93 E1 02 DC */ stw r31, 0x2dc(r1) /* 80387564 003844C4 3B E4 00 00 */ addi r31, r4, 0 /* 80387568 003844C8 80 0D AD 8C */ lwz r0, lbl_805A994C@sda21(r13) /* 8038756C 003844CC 28 00 00 00 */ cmplwi r0, 0 /* 80387570 003844D0 41 82 00 30 */ beq lbl_803875A0 /* 80387574 003844D4 38 61 00 10 */ addi r3, r1, 0x10 /* 80387578 003844D8 4B FF 80 9D */ bl OSClearContext /* 8038757C 003844DC 38 61 00 10 */ addi r3, r1, 0x10 /* 80387580 003844E0 4B FF 7E 9D */ bl OSSetCurrentContext /* 80387584 003844E4 81 8D AD 8C */ lwz r12, lbl_805A994C@sda21(r13) /* 80387588 003844E8 7D 88 03 A6 */ mtlr r12 /* 8038758C 003844EC 4E 80 00 21 */ blrl /* 80387590 003844F0 38 61 00 10 */ addi r3, r1, 0x10 /* 80387594 003844F4 4B FF 80 81 */ bl OSClearContext /* 80387598 003844F8 7F E3 FB 78 */ mr r3, r31 /* 8038759C 003844FC 4B FF 7E 81 */ bl OSSetCurrentContext lbl_803875A0: /* 803875A0 00384500 80 01 02 E4 */ lwz r0, 0x2e4(r1) /* 803875A4 00384504 83 E1 02 DC */ lwz r31, 0x2dc(r1) /* 803875A8 00384508 38 21 02 E0 */ addi r1, r1, 0x2e0 /* 803875AC 0038450C 7C 08 03 A6 */ mtlr r0 /* 803875B0 00384510 4E 80 00 20 */ blr .global PADSetSamplingCallback PADSetSamplingCallback: /* 803875B4 00384514 7C 08 02 A6 */ mflr r0 /* 803875B8 00384518 28 03 00 00 */ cmplwi r3, 0 /* 803875BC 0038451C 90 01 00 04 */ stw r0, 4(r1) /* 803875C0 00384520 94 21 FF E8 */ stwu r1, -0x18(r1) /* 803875C4 00384524 93 E1 00 14 */ stw r31, 0x14(r1) /* 803875C8 00384528 83 ED AD 8C */ lwz r31, lbl_805A994C@sda21(r13) /* 803875CC 0038452C 90 6D AD 8C */ stw r3, lbl_805A994C@sda21(r13) /* 803875D0 00384530 41 82 00 14 */ beq lbl_803875E4 /* 803875D4 00384534 3C 60 80 38 */ lis r3, SamplingHandler@ha /* 803875D8 00384538 38 63 75 54 */ addi r3, r3, SamplingHandler@l /* 803875DC 0038453C 48 03 78 05 */ bl SIRegisterPollingHandler /* 803875E0 00384540 48 00 00 10 */ b lbl_803875F0 lbl_803875E4: /* 803875E4 00384544 3C 60 80 38 */ lis r3, SamplingHandler@ha /* 803875E8 00384548 38 63 75 54 */ addi r3, r3, SamplingHandler@l /* 803875EC 0038454C 48 03 78 C1 */ bl SIUnregisterPollingHandler lbl_803875F0: /* 803875F0 00384550 7F E3 FB 78 */ mr r3, r31 /* 803875F4 00384554 80 01 00 1C */ lwz r0, 0x1c(r1) /* 803875F8 00384558 83 E1 00 14 */ lwz r31, 0x14(r1) /* 803875FC 0038455C 38 21 00 18 */ addi r1, r1, 0x18 /* 80387600 00384560 7C 08 03 A6 */ mtlr r0 /* 80387604 00384564 4E 80 00 20 */ blr .global __PADDisableRecalibration __PADDisableRecalibration: /* 80387608 00384568 7C 08 02 A6 */ mflr r0 /* 8038760C 0038456C 90 01 00 04 */ stw r0, 4(r1) /* 80387610 00384570 94 21 FF E8 */ stwu r1, -0x18(r1) /* 80387614 00384574 93 E1 00 14 */ stw r31, 0x14(r1) /* 80387618 00384578 93 C1 00 10 */ stw r30, 0x10(r1) /* 8038761C 0038457C 7C 7E 1B 78 */ mr r30, r3 /* 80387620 00384580 4B FF A0 41 */ bl OSDisableInterrupts /* 80387624 00384584 3C 80 80 00 */ lis r4, 0x800030E3@ha /* 80387628 00384588 88 04 30 E3 */ lbz r0, 0x800030E3@l(r4) /* 8038762C 0038458C 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19 /* 80387630 00384590 41 82 00 0C */ beq lbl_8038763C /* 80387634 00384594 3B E0 00 01 */ li r31, 1 /* 80387638 00384598 48 00 00 08 */ b lbl_80387640 lbl_8038763C: /* 8038763C 0038459C 3B E0 00 00 */ li r31, 0 lbl_80387640: /* 80387640 003845A0 3C 80 80 00 */ lis r4, 0x800030E3@ha /* 80387644 003845A4 88 04 30 E3 */ lbz r0, 0x800030E3@l(r4) /* 80387648 003845A8 70 00 00 BF */ andi. r0, r0, 0xbf /* 8038764C 003845AC 2C 1E 00 00 */ cmpwi r30, 0 /* 80387650 003845B0 98 04 30 E3 */ stb r0, 0x30e3(r4) /* 80387654 003845B4 41 82 00 10 */ beq lbl_80387664 /* 80387658 003845B8 88 04 30 E3 */ lbz r0, 0x30e3(r4) /* 8038765C 003845BC 60 00 00 40 */ ori r0, r0, 0x40 /* 80387660 003845C0 98 04 30 E3 */ stb r0, 0x30e3(r4) lbl_80387664: /* 80387664 003845C4 4B FF A0 25 */ bl OSRestoreInterrupts /* 80387668 003845C8 7F E3 FB 78 */ mr r3, r31 /* 8038766C 003845CC 80 01 00 1C */ lwz r0, 0x1c(r1) /* 80387670 003845D0 83 E1 00 14 */ lwz r31, 0x14(r1) /* 80387674 003845D4 83 C1 00 10 */ lwz r30, 0x10(r1) /* 80387678 003845D8 38 21 00 18 */ addi r1, r1, 0x18 /* 8038767C 003845DC 7C 08 03 A6 */ mtlr r0 /* 80387680 003845E0 4E 80 00 20 */ blr