.include "macros.inc" .section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860 .global UpdateOrigin UpdateOrigin: /* 800524C0 0004E300 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800524C4 0004E304 7C 08 02 A6 */ mflr r0 /* 800524C8 0004E308 3C 80 80 4C */ lis r4, Origin@ha /* 800524CC 0004E30C 3C C0 80 00 */ lis r6, 0x8000 /* 800524D0 0004E310 90 01 00 14 */ stw r0, 0x14(r1) /* 800524D4 0004E314 1C A3 00 0C */ mulli r5, r3, 0xc /* 800524D8 0004E318 38 84 19 60 */ addi r4, r4, Origin@l /* 800524DC 0004E31C 93 E1 00 0C */ stw r31, 0xc(r1) /* 800524E0 0004E320 7F E4 2A 14 */ add r31, r4, r5 /* 800524E4 0004E324 80 0D 83 AC */ lwz r0, AnalogMode@sda21(r13) /* 800524E8 0004E328 54 07 05 6F */ rlwinm. r7, r0, 0, 21, 23 /* 800524EC 0004E32C 7C C0 1C 30 */ srw r0, r6, r3 /* 800524F0 0004E330 41 82 00 30 */ beq lbl_80052520 /* 800524F4 0004E334 28 07 05 00 */ cmplwi r7, 0x500 /* 800524F8 0004E338 41 82 00 28 */ beq lbl_80052520 /* 800524FC 0004E33C 28 07 06 00 */ cmplwi r7, 0x600 /* 80052500 0004E340 41 82 00 20 */ beq lbl_80052520 /* 80052504 0004E344 28 07 07 00 */ cmplwi r7, 0x700 /* 80052508 0004E348 41 82 00 18 */ beq lbl_80052520 /* 8005250C 0004E34C 28 07 01 00 */ cmplwi r7, 0x100 /* 80052510 0004E350 41 82 00 44 */ beq lbl_80052554 /* 80052514 0004E354 28 07 02 00 */ cmplwi r7, 0x200 /* 80052518 0004E358 41 82 00 70 */ beq lbl_80052588 /* 8005251C 0004E35C 48 00 00 9C */ b lbl_800525B8 .global lbl_80052520 lbl_80052520: /* 80052520 0004E360 88 9F 00 06 */ lbz r4, 0x6(r31) /* 80052524 0004E364 54 84 06 36 */ rlwinm r4, r4, 0, 24, 27 /* 80052528 0004E368 98 9F 00 06 */ stb r4, 0x6(r31) /* 8005252C 0004E36C 88 9F 00 07 */ lbz r4, 0x7(r31) /* 80052530 0004E370 54 84 06 36 */ rlwinm r4, r4, 0, 24, 27 /* 80052534 0004E374 98 9F 00 07 */ stb r4, 0x7(r31) /* 80052538 0004E378 88 9F 00 08 */ lbz r4, 0x8(r31) /* 8005253C 0004E37C 54 84 06 36 */ rlwinm r4, r4, 0, 24, 27 /* 80052540 0004E380 98 9F 00 08 */ stb r4, 0x8(r31) /* 80052544 0004E384 88 9F 00 09 */ lbz r4, 0x9(r31) /* 80052548 0004E388 54 84 06 36 */ rlwinm r4, r4, 0, 24, 27 /* 8005254C 0004E38C 98 9F 00 09 */ stb r4, 0x9(r31) /* 80052550 0004E390 48 00 00 68 */ b lbl_800525B8 .global lbl_80052554 lbl_80052554: /* 80052554 0004E394 88 9F 00 04 */ lbz r4, 0x4(r31) /* 80052558 0004E398 54 84 00 36 */ clrrwi r4, r4, 4 /* 8005255C 0004E39C 98 9F 00 04 */ stb r4, 0x4(r31) /* 80052560 0004E3A0 88 9F 00 05 */ lbz r4, 0x5(r31) /* 80052564 0004E3A4 54 84 00 36 */ clrrwi r4, r4, 4 /* 80052568 0004E3A8 98 9F 00 05 */ stb r4, 0x5(r31) /* 8005256C 0004E3AC 88 9F 00 08 */ lbz r4, 0x8(r31) /* 80052570 0004E3B0 54 84 06 36 */ rlwinm r4, r4, 0, 24, 27 /* 80052574 0004E3B4 98 9F 00 08 */ stb r4, 0x8(r31) /* 80052578 0004E3B8 88 9F 00 09 */ lbz r4, 0x9(r31) /* 8005257C 0004E3BC 54 84 06 36 */ rlwinm r4, r4, 0, 24, 27 /* 80052580 0004E3C0 98 9F 00 09 */ stb r4, 0x9(r31) /* 80052584 0004E3C4 48 00 00 34 */ b lbl_800525B8 .global lbl_80052588 lbl_80052588: /* 80052588 0004E3C8 88 9F 00 04 */ lbz r4, 0x4(r31) /* 8005258C 0004E3CC 54 84 00 36 */ clrrwi r4, r4, 4 /* 80052590 0004E3D0 98 9F 00 04 */ stb r4, 0x4(r31) /* 80052594 0004E3D4 88 9F 00 05 */ lbz r4, 0x5(r31) /* 80052598 0004E3D8 54 84 00 36 */ clrrwi r4, r4, 4 /* 8005259C 0004E3DC 98 9F 00 05 */ stb r4, 0x5(r31) /* 800525A0 0004E3E0 88 9F 00 06 */ lbz r4, 0x6(r31) /* 800525A4 0004E3E4 54 84 06 36 */ rlwinm r4, r4, 0, 24, 27 /* 800525A8 0004E3E8 98 9F 00 06 */ stb r4, 0x6(r31) /* 800525AC 0004E3EC 88 9F 00 07 */ lbz r4, 0x7(r31) /* 800525B0 0004E3F0 54 84 06 36 */ rlwinm r4, r4, 0, 24, 27 /* 800525B4 0004E3F4 98 9F 00 07 */ stb r4, 0x7(r31) .global lbl_800525B8 lbl_800525B8: /* 800525B8 0004E3F8 88 BF 00 02 */ lbz r5, 0x2(r31) /* 800525BC 0004E3FC 80 8D 83 A8 */ lwz r4, XPatchBits@sda21(r13) /* 800525C0 0004E400 38 A5 FF 80 */ addi r5, r5, -0x80 /* 800525C4 0004E404 98 BF 00 02 */ stb r5, 0x2(r31) /* 800525C8 0004E408 7C 80 00 39 */ and. r0, r4, r0 /* 800525CC 0004E40C 88 9F 00 03 */ lbz r4, 0x3(r31) /* 800525D0 0004E410 38 04 FF 80 */ addi r0, r4, -0x80 /* 800525D4 0004E414 98 1F 00 03 */ stb r0, 0x3(r31) /* 800525D8 0004E418 88 9F 00 04 */ lbz r4, 0x4(r31) /* 800525DC 0004E41C 38 04 FF 80 */ addi r0, r4, -0x80 /* 800525E0 0004E420 98 1F 00 04 */ stb r0, 0x4(r31) /* 800525E4 0004E424 88 9F 00 05 */ lbz r4, 0x5(r31) /* 800525E8 0004E428 38 04 FF 80 */ addi r0, r4, -0x80 /* 800525EC 0004E42C 98 1F 00 05 */ stb r0, 0x5(r31) /* 800525F0 0004E430 41 82 00 30 */ beq lbl_80052620 /* 800525F4 0004E434 88 1F 00 02 */ lbz r0, 0x2(r31) /* 800525F8 0004E438 7C 00 07 74 */ extsb r0, r0 /* 800525FC 0004E43C 2C 00 00 40 */ cmpwi r0, 0x40 /* 80052600 0004E440 40 81 00 20 */ ble lbl_80052620 /* 80052604 0004E444 4B FD 90 ED */ bl SIGetType /* 80052608 0004E448 54 63 00 1E */ clrrwi r3, r3, 16 /* 8005260C 0004E44C 3C 03 F7 00 */ addis r0, r3, 0xf700 /* 80052610 0004E450 28 00 00 00 */ cmplwi r0, 0x0 /* 80052614 0004E454 40 82 00 0C */ bne lbl_80052620 /* 80052618 0004E458 38 00 00 00 */ li r0, 0x0 /* 8005261C 0004E45C 98 1F 00 02 */ stb r0, 0x2(r31) .global lbl_80052620 lbl_80052620: /* 80052620 0004E460 80 01 00 14 */ lwz r0, 0x14(r1) /* 80052624 0004E464 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80052628 0004E468 7C 08 03 A6 */ mtlr r0 /* 8005262C 0004E46C 38 21 00 10 */ addi r1, r1, 0x10 /* 80052630 0004E470 4E 80 00 20 */ blr /* 80052634 0004E474 00 00 00 00 */ .4byte 0x00000000 /* 80052638 0004E478 00 00 00 00 */ .4byte 0x00000000 /* 8005263C 0004E47C 00 00 00 00 */ .4byte 0x00000000 .global PADOriginCallback PADOriginCallback: /* 80052640 0004E480 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80052644 0004E484 7C 08 02 A6 */ mflr r0 /* 80052648 0004E488 90 01 00 24 */ stw r0, 0x24(r1) /* 8005264C 0004E48C 54 80 07 3F */ clrlwi. r0, r4, 28 /* 80052650 0004E490 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80052654 0004E494 40 82 00 48 */ bne lbl_8005269C /* 80052658 0004E498 80 6D 83 A4 */ lwz r3, ResettingChan@sda21(r13) /* 8005265C 0004E49C 4B FF FE 65 */ bl UpdateOrigin /* 80052660 0004E4A0 83 ED 83 A4 */ lwz r31, ResettingChan@sda21(r13) /* 80052664 0004E4A4 3C 00 80 00 */ lis r0, 0x8000 /* 80052668 0004E4A8 80 AD E9 64 */ lwz r5, EnabledBits@sda21(r13) /* 8005266C 0004E4AC 38 81 00 08 */ addi r4, r1, 0x8 /* 80052670 0004E4B0 7C 00 FC 30 */ srw r0, r0, r31 /* 80052674 0004E4B4 7F E3 FB 78 */ mr r3, r31 /* 80052678 0004E4B8 7C A0 03 78 */ or r0, r5, r0 /* 8005267C 0004E4BC 90 0D E9 64 */ stw r0, EnabledBits@sda21(r13) /* 80052680 0004E4C0 4B FD 8A 81 */ bl SIGetResponse /* 80052684 0004E4C4 80 0D 83 AC */ lwz r0, AnalogMode@sda21(r13) /* 80052688 0004E4C8 7F E3 FB 78 */ mr r3, r31 /* 8005268C 0004E4CC 64 04 00 40 */ oris r4, r0, 0x40 /* 80052690 0004E4D0 4B FD 88 E1 */ bl SISetCommand /* 80052694 0004E4D4 80 6D E9 64 */ lwz r3, EnabledBits@sda21(r13) /* 80052698 0004E4D8 4B FD 89 69 */ bl SIEnablePolling .global lbl_8005269C lbl_8005269C: /* 8005269C 0004E4DC 80 CD E9 60 */ lwz r6, ResettingBits@sda21(r13) /* 800526A0 0004E4E0 7C C5 00 34 */ cntlzw r5, r6 /* 800526A4 0004E4E4 90 AD 83 A4 */ stw r5, ResettingChan@sda21(r13) /* 800526A8 0004E4E8 2C 05 00 20 */ cmpwi r5, 0x20 /* 800526AC 0004E4EC 41 82 00 40 */ beq lbl_800526EC /* 800526B0 0004E4F0 3C 00 80 00 */ lis r0, 0x8000 /* 800526B4 0004E4F4 3C 60 80 4C */ lis r3, Origin@ha /* 800526B8 0004E4F8 7C 00 2C 30 */ srw r0, r0, r5 /* 800526BC 0004E4FC 38 80 00 00 */ li r4, 0x0 /* 800526C0 0004E500 7C C0 00 78 */ andc r0, r6, r0 /* 800526C4 0004E504 90 0D E9 60 */ stw r0, ResettingBits@sda21(r13) /* 800526C8 0004E508 1C 05 00 0C */ mulli r0, r5, 0xc /* 800526CC 0004E50C 38 63 19 60 */ addi r3, r3, Origin@l /* 800526D0 0004E510 38 A0 00 0C */ li r5, 0xc /* 800526D4 0004E514 7C 63 02 14 */ add r3, r3, r0 /* 800526D8 0004E518 4B FB 1C 79 */ bl memset /* 800526DC 0004E51C 3C 80 80 05 */ lis r4, PADTypeAndStatusCallback@ha /* 800526E0 0004E520 80 6D 83 A4 */ lwz r3, ResettingChan@sda21(r13) /* 800526E4 0004E524 38 84 28 B0 */ addi r4, r4, PADTypeAndStatusCallback@l /* 800526E8 0004E528 4B FD 91 C9 */ bl SIGetTypeAsync .global lbl_800526EC lbl_800526EC: /* 800526EC 0004E52C 80 01 00 24 */ lwz r0, 0x24(r1) /* 800526F0 0004E530 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 800526F4 0004E534 7C 08 03 A6 */ mtlr r0 /* 800526F8 0004E538 38 21 00 20 */ addi r1, r1, 0x20 /* 800526FC 0004E53C 4E 80 00 20 */ blr .global PADOriginUpdateCallback PADOriginUpdateCallback: /* 80052700 0004E540 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80052704 0004E544 7C 08 02 A6 */ mflr r0 /* 80052708 0004E548 3C A0 80 00 */ lis r5, 0x8000 /* 8005270C 0004E54C 90 01 00 24 */ stw r0, 0x24(r1) /* 80052710 0004E550 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80052714 0004E554 7C 9F 23 78 */ mr r31, r4 /* 80052718 0004E558 93 C1 00 18 */ stw r30, 0x18(r1) /* 8005271C 0004E55C 7C BE 1C 30 */ srw r30, r5, r3 /* 80052720 0004E560 93 A1 00 14 */ stw r29, 0x14(r1) /* 80052724 0004E564 7C 7D 1B 78 */ mr r29, r3 /* 80052728 0004E568 80 0D E9 64 */ lwz r0, EnabledBits@sda21(r13) /* 8005272C 0004E56C 7C 00 F0 39 */ and. r0, r0, r30 /* 80052730 0004E570 41 82 00 7C */ beq lbl_800527AC /* 80052734 0004E574 54 80 07 3F */ clrlwi. r0, r4, 28 /* 80052738 0004E578 40 82 00 08 */ bne lbl_80052740 /* 8005273C 0004E57C 4B FF FD 85 */ bl UpdateOrigin .global lbl_80052740 lbl_80052740: /* 80052740 0004E580 57 E0 07 39 */ rlwinm. r0, r31, 0, 28, 28 /* 80052744 0004E584 41 82 00 68 */ beq lbl_800527AC /* 80052748 0004E588 4B FC F0 D9 */ bl OSDisableInterrupts /* 8005274C 0004E58C 7C 7F 1B 78 */ mr r31, r3 /* 80052750 0004E590 7F C3 F3 78 */ mr r3, r30 /* 80052754 0004E594 4B FD 89 3D */ bl SIDisablePolling /* 80052758 0004E598 80 8D E9 64 */ lwz r4, EnabledBits@sda21(r13) /* 8005275C 0004E59C 7F C9 F0 F8 */ nor r9, r30, r30 /* 80052760 0004E5A0 80 0D E9 58 */ lwz r0, WaitingBits@sda21(r13) /* 80052764 0004E5A4 7F A3 EB 78 */ mr r3, r29 /* 80052768 0004E5A8 7C 88 48 38 */ and r8, r4, r9 /* 8005276C 0004E5AC 80 AD E9 54 */ lwz r5, CheckingBits@sda21(r13) /* 80052770 0004E5B0 7C 07 48 38 */ and r7, r0, r9 /* 80052774 0004E5B4 80 0D E9 4C */ lwz r0, BarrelBits@sda21(r13) /* 80052778 0004E5B8 7C A6 48 38 */ and r6, r5, r9 /* 8005277C 0004E5BC 80 8D E9 50 */ lwz r4, PendingBits@sda21(r13) /* 80052780 0004E5C0 7C 00 48 38 */ and r0, r0, r9 /* 80052784 0004E5C4 91 0D E9 64 */ stw r8, EnabledBits@sda21(r13) /* 80052788 0004E5C8 7C 85 48 38 */ and r5, r4, r9 /* 8005278C 0004E5CC 38 80 00 00 */ li r4, 0x0 /* 80052790 0004E5D0 90 ED E9 58 */ stw r7, WaitingBits@sda21(r13) /* 80052794 0004E5D4 90 CD E9 54 */ stw r6, CheckingBits@sda21(r13) /* 80052798 0004E5D8 90 AD E9 50 */ stw r5, PendingBits@sda21(r13) /* 8005279C 0004E5DC 90 0D E9 4C */ stw r0, BarrelBits@sda21(r13) /* 800527A0 0004E5E0 4B FD 18 81 */ bl OSSetWirelessID /* 800527A4 0004E5E4 7F E3 FB 78 */ mr r3, r31 /* 800527A8 0004E5E8 4B FC F0 B9 */ bl OSRestoreInterrupts .global lbl_800527AC lbl_800527AC: /* 800527AC 0004E5EC 80 01 00 24 */ lwz r0, 0x24(r1) /* 800527B0 0004E5F0 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 800527B4 0004E5F4 83 C1 00 18 */ lwz r30, 0x18(r1) /* 800527B8 0004E5F8 83 A1 00 14 */ lwz r29, 0x14(r1) /* 800527BC 0004E5FC 7C 08 03 A6 */ mtlr r0 /* 800527C0 0004E600 38 21 00 20 */ addi r1, r1, 0x20 /* 800527C4 0004E604 4E 80 00 20 */ blr /* 800527C8 0004E608 00 00 00 00 */ .4byte 0x00000000 /* 800527CC 0004E60C 00 00 00 00 */ .4byte 0x00000000 .global PADProbeCallback PADProbeCallback: /* 800527D0 0004E610 94 21 FF E0 */ stwu r1, -0x20(r1) /* 800527D4 0004E614 7C 08 02 A6 */ mflr r0 /* 800527D8 0004E618 90 01 00 24 */ stw r0, 0x24(r1) /* 800527DC 0004E61C 54 80 07 3F */ clrlwi. r0, r4, 28 /* 800527E0 0004E620 93 E1 00 1C */ stw r31, 0x1c(r1) /* 800527E4 0004E624 93 C1 00 18 */ stw r30, 0x18(r1) /* 800527E8 0004E628 40 82 00 54 */ bne lbl_8005283C /* 800527EC 0004E62C 83 CD 83 A4 */ lwz r30, ResettingChan@sda21(r13) /* 800527F0 0004E630 3F E0 80 00 */ lis r31, 0x8000 /* 800527F4 0004E634 80 AD E9 64 */ lwz r5, EnabledBits@sda21(r13) /* 800527F8 0004E638 38 81 00 08 */ addi r4, r1, 0x8 /* 800527FC 0004E63C 7F E0 F4 30 */ srw r0, r31, r30 /* 80052800 0004E640 7F C3 F3 78 */ mr r3, r30 /* 80052804 0004E644 7C A0 03 78 */ or r0, r5, r0 /* 80052808 0004E648 90 0D E9 64 */ stw r0, EnabledBits@sda21(r13) /* 8005280C 0004E64C 4B FD 88 F5 */ bl SIGetResponse /* 80052810 0004E650 80 0D 83 AC */ lwz r0, AnalogMode@sda21(r13) /* 80052814 0004E654 7F C3 F3 78 */ mr r3, r30 /* 80052818 0004E658 64 04 00 40 */ oris r4, r0, 0x40 /* 8005281C 0004E65C 4B FD 87 55 */ bl SISetCommand /* 80052820 0004E660 80 6D E9 64 */ lwz r3, EnabledBits@sda21(r13) /* 80052824 0004E664 4B FD 87 DD */ bl SIEnablePolling /* 80052828 0004E668 80 0D 83 A4 */ lwz r0, ResettingChan@sda21(r13) /* 8005282C 0004E66C 80 6D E9 58 */ lwz r3, WaitingBits@sda21(r13) /* 80052830 0004E670 7F E0 04 30 */ srw r0, r31, r0 /* 80052834 0004E674 7C 60 03 78 */ or r0, r3, r0 /* 80052838 0004E678 90 0D E9 58 */ stw r0, WaitingBits@sda21(r13) .global lbl_8005283C lbl_8005283C: /* 8005283C 0004E67C 80 CD E9 60 */ lwz r6, ResettingBits@sda21(r13) /* 80052840 0004E680 7C C5 00 34 */ cntlzw r5, r6 /* 80052844 0004E684 90 AD 83 A4 */ stw r5, ResettingChan@sda21(r13) /* 80052848 0004E688 2C 05 00 20 */ cmpwi r5, 0x20 /* 8005284C 0004E68C 41 82 00 40 */ beq lbl_8005288C /* 80052850 0004E690 3C 00 80 00 */ lis r0, 0x8000 /* 80052854 0004E694 3C 60 80 4C */ lis r3, Origin@ha /* 80052858 0004E698 7C 00 2C 30 */ srw r0, r0, r5 /* 8005285C 0004E69C 38 80 00 00 */ li r4, 0x0 /* 80052860 0004E6A0 7C C0 00 78 */ andc r0, r6, r0 /* 80052864 0004E6A4 90 0D E9 60 */ stw r0, ResettingBits@sda21(r13) /* 80052868 0004E6A8 1C 05 00 0C */ mulli r0, r5, 0xc /* 8005286C 0004E6AC 38 63 19 60 */ addi r3, r3, Origin@l /* 80052870 0004E6B0 38 A0 00 0C */ li r5, 0xc /* 80052874 0004E6B4 7C 63 02 14 */ add r3, r3, r0 /* 80052878 0004E6B8 4B FB 1A D9 */ bl memset /* 8005287C 0004E6BC 3C 80 80 05 */ lis r4, PADTypeAndStatusCallback@ha /* 80052880 0004E6C0 80 6D 83 A4 */ lwz r3, ResettingChan@sda21(r13) /* 80052884 0004E6C4 38 84 28 B0 */ addi r4, r4, PADTypeAndStatusCallback@l /* 80052888 0004E6C8 4B FD 90 29 */ bl SIGetTypeAsync .global lbl_8005288C lbl_8005288C: /* 8005288C 0004E6CC 80 01 00 24 */ lwz r0, 0x24(r1) /* 80052890 0004E6D0 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80052894 0004E6D4 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80052898 0004E6D8 7C 08 03 A6 */ mtlr r0 /* 8005289C 0004E6DC 38 21 00 20 */ addi r1, r1, 0x20 /* 800528A0 0004E6E0 4E 80 00 20 */ blr /* 800528A4 0004E6E4 00 00 00 00 */ .4byte 0x00000000 /* 800528A8 0004E6E8 00 00 00 00 */ .4byte 0x00000000 /* 800528AC 0004E6EC 00 00 00 00 */ .4byte 0x00000000 .global PADTypeAndStatusCallback PADTypeAndStatusCallback: /* 800528B0 0004E6F0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 800528B4 0004E6F4 7C 08 02 A6 */ mflr r0 /* 800528B8 0004E6F8 90 01 00 24 */ stw r0, 0x24(r1) /* 800528BC 0004E6FC 54 80 07 3F */ clrlwi. r0, r4, 28 /* 800528C0 0004E700 93 E1 00 1C */ stw r31, 0x1c(r1) /* 800528C4 0004E704 3F E0 80 00 */ lis r31, 0x8000 /* 800528C8 0004E708 93 C1 00 18 */ stw r30, 0x18(r1) /* 800528CC 0004E70C 3F C0 80 4C */ lis r30, Origin@ha /* 800528D0 0004E710 3B DE 19 60 */ addi r30, r30, Origin@l /* 800528D4 0004E714 93 A1 00 14 */ stw r29, 0x14(r1) /* 800528D8 0004E718 93 81 00 10 */ stw r28, 0x10(r1) /* 800528DC 0004E71C 83 8D 83 A4 */ lwz r28, ResettingChan@sda21(r13) /* 800528E0 0004E720 80 6D E9 5C */ lwz r3, RecalibrateBits@sda21(r13) /* 800528E4 0004E724 7F FD E4 30 */ srw r29, r31, r28 /* 800528E8 0004E728 7C 60 E8 78 */ andc r0, r3, r29 /* 800528EC 0004E72C 90 0D E9 5C */ stw r0, RecalibrateBits@sda21(r13) /* 800528F0 0004E730 7C 67 E8 38 */ and r7, r3, r29 /* 800528F4 0004E734 38 60 00 01 */ li r3, 0x1 /* 800528F8 0004E738 41 82 00 50 */ beq lbl_80052948 /* 800528FC 0004E73C 80 AD E9 60 */ lwz r5, ResettingBits@sda21(r13) /* 80052900 0004E740 7C A0 00 34 */ cntlzw r0, r5 /* 80052904 0004E744 90 0D 83 A4 */ stw r0, ResettingChan@sda21(r13) /* 80052908 0004E748 2C 00 00 20 */ cmpwi r0, 0x20 /* 8005290C 0004E74C 41 82 02 A4 */ beq lbl_80052BB0 /* 80052910 0004E750 1C 60 00 0C */ mulli r3, r0, 0xc /* 80052914 0004E754 7F E4 04 30 */ srw r4, r31, r0 /* 80052918 0004E758 38 1E 00 00 */ addi r0, r30, 0x0 /* 8005291C 0004E75C 7C A4 20 78 */ andc r4, r5, r4 /* 80052920 0004E760 90 8D E9 60 */ stw r4, ResettingBits@sda21(r13) /* 80052924 0004E764 7C 60 1A 14 */ add r3, r0, r3 /* 80052928 0004E768 38 80 00 00 */ li r4, 0x0 /* 8005292C 0004E76C 38 A0 00 0C */ li r5, 0xc /* 80052930 0004E770 4B FB 1A 21 */ bl memset /* 80052934 0004E774 3C 80 80 05 */ lis r4, PADTypeAndStatusCallback@ha /* 80052938 0004E778 80 6D 83 A4 */ lwz r3, ResettingChan@sda21(r13) /* 8005293C 0004E77C 38 84 28 B0 */ addi r4, r4, PADTypeAndStatusCallback@l /* 80052940 0004E780 4B FD 8F 71 */ bl SIGetTypeAsync /* 80052944 0004E784 48 00 02 6C */ b lbl_80052BB0 .global lbl_80052948 lbl_80052948: /* 80052948 0004E788 54 85 00 C8 */ rlwinm r5, r4, 0, 3, 4 /* 8005294C 0004E78C 57 86 10 3A */ slwi r6, r28, 2 /* 80052950 0004E790 3C 05 F8 00 */ addis r0, r5, 0xf800 /* 80052954 0004E794 54 84 00 2E */ clrrwi r4, r4, 8 /* 80052958 0004E798 38 BE 00 30 */ addi r5, r30, 0x30 /* 8005295C 0004E79C 28 00 00 00 */ cmplwi r0, 0x0 /* 80052960 0004E7A0 7C 85 31 2E */ stwx r4, r5, r6 /* 80052964 0004E7A4 40 82 00 0C */ bne lbl_80052970 /* 80052968 0004E7A8 54 80 01 CF */ rlwinm. r0, r4, 0, 7, 7 /* 8005296C 0004E7AC 40 82 00 54 */ bne lbl_800529C0 .global lbl_80052970 lbl_80052970: /* 80052970 0004E7B0 80 ED E9 60 */ lwz r7, ResettingBits@sda21(r13) /* 80052974 0004E7B4 7C E6 00 34 */ cntlzw r6, r7 /* 80052978 0004E7B8 90 CD 83 A4 */ stw r6, ResettingChan@sda21(r13) /* 8005297C 0004E7BC 2C 06 00 20 */ cmpwi r6, 0x20 /* 80052980 0004E7C0 41 82 02 30 */ beq lbl_80052BB0 /* 80052984 0004E7C4 3C A0 80 00 */ lis r5, 0x8000 /* 80052988 0004E7C8 38 1E 00 00 */ addi r0, r30, 0x0 /* 8005298C 0004E7CC 1C 66 00 0C */ mulli r3, r6, 0xc /* 80052990 0004E7D0 38 80 00 00 */ li r4, 0x0 /* 80052994 0004E7D4 7C A6 34 30 */ srw r6, r5, r6 /* 80052998 0004E7D8 38 A0 00 0C */ li r5, 0xc /* 8005299C 0004E7DC 7C E6 30 78 */ andc r6, r7, r6 /* 800529A0 0004E7E0 90 CD E9 60 */ stw r6, ResettingBits@sda21(r13) /* 800529A4 0004E7E4 7C 60 1A 14 */ add r3, r0, r3 /* 800529A8 0004E7E8 4B FB 19 A9 */ bl memset /* 800529AC 0004E7EC 3C 80 80 05 */ lis r4, PADTypeAndStatusCallback@ha /* 800529B0 0004E7F0 80 6D 83 A4 */ lwz r3, ResettingChan@sda21(r13) /* 800529B4 0004E7F4 38 84 28 B0 */ addi r4, r4, PADTypeAndStatusCallback@l /* 800529B8 0004E7F8 4B FD 8E F9 */ bl SIGetTypeAsync /* 800529BC 0004E7FC 48 00 01 F4 */ b lbl_80052BB0 .global lbl_800529C0 lbl_800529C0: /* 800529C0 0004E800 80 0D 83 B0 */ lwz r0, Spec@sda21(r13) /* 800529C4 0004E804 28 00 00 02 */ cmplwi r0, 0x2 /* 800529C8 0004E808 40 80 00 80 */ bge lbl_80052A48 /* 800529CC 0004E80C 80 0D E9 64 */ lwz r0, EnabledBits@sda21(r13) /* 800529D0 0004E810 7F 83 E3 78 */ mr r3, r28 /* 800529D4 0004E814 38 81 00 08 */ addi r4, r1, 0x8 /* 800529D8 0004E818 7C 00 EB 78 */ or r0, r0, r29 /* 800529DC 0004E81C 90 0D E9 64 */ stw r0, EnabledBits@sda21(r13) /* 800529E0 0004E820 4B FD 87 21 */ bl SIGetResponse /* 800529E4 0004E824 80 0D 83 AC */ lwz r0, AnalogMode@sda21(r13) /* 800529E8 0004E828 7F 83 E3 78 */ mr r3, r28 /* 800529EC 0004E82C 64 04 00 40 */ oris r4, r0, 0x40 /* 800529F0 0004E830 4B FD 85 81 */ bl SISetCommand /* 800529F4 0004E834 80 6D E9 64 */ lwz r3, EnabledBits@sda21(r13) /* 800529F8 0004E838 4B FD 86 09 */ bl SIEnablePolling /* 800529FC 0004E83C 80 AD E9 60 */ lwz r5, ResettingBits@sda21(r13) /* 80052A00 0004E840 7C A0 00 34 */ cntlzw r0, r5 /* 80052A04 0004E844 90 0D 83 A4 */ stw r0, ResettingChan@sda21(r13) /* 80052A08 0004E848 2C 00 00 20 */ cmpwi r0, 0x20 /* 80052A0C 0004E84C 41 82 01 A4 */ beq lbl_80052BB0 /* 80052A10 0004E850 1C 60 00 0C */ mulli r3, r0, 0xc /* 80052A14 0004E854 7F E4 04 30 */ srw r4, r31, r0 /* 80052A18 0004E858 38 1E 00 00 */ addi r0, r30, 0x0 /* 80052A1C 0004E85C 7C A4 20 78 */ andc r4, r5, r4 /* 80052A20 0004E860 90 8D E9 60 */ stw r4, ResettingBits@sda21(r13) /* 80052A24 0004E864 7C 60 1A 14 */ add r3, r0, r3 /* 80052A28 0004E868 38 80 00 00 */ li r4, 0x0 /* 80052A2C 0004E86C 38 A0 00 0C */ li r5, 0xc /* 80052A30 0004E870 4B FB 19 21 */ bl memset /* 80052A34 0004E874 3C 80 80 05 */ lis r4, PADTypeAndStatusCallback@ha /* 80052A38 0004E878 80 6D 83 A4 */ lwz r3, ResettingChan@sda21(r13) /* 80052A3C 0004E87C 38 84 28 B0 */ addi r4, r4, PADTypeAndStatusCallback@l /* 80052A40 0004E880 4B FD 8E 71 */ bl SIGetTypeAsync /* 80052A44 0004E884 48 00 01 6C */ b lbl_80052BB0 .global lbl_80052A48 lbl_80052A48: /* 80052A48 0004E888 54 80 00 01 */ clrrwi. r0, r4, 31 /* 80052A4C 0004E88C 41 82 00 0C */ beq lbl_80052A58 /* 80052A50 0004E890 54 80 01 4B */ rlwinm. r0, r4, 0, 5, 5 /* 80052A54 0004E894 41 82 00 74 */ beq lbl_80052AC8 .global lbl_80052A58 lbl_80052A58: /* 80052A58 0004E898 2C 07 00 00 */ cmpwi r7, 0x0 /* 80052A5C 0004E89C 41 82 00 38 */ beq lbl_80052A94 /* 80052A60 0004E8A0 80 6D 83 A4 */ lwz r3, ResettingChan@sda21(r13) /* 80052A64 0004E8A4 3D 00 80 05 */ lis r8, PADOriginCallback@ha /* 80052A68 0004E8A8 38 1E 00 00 */ addi r0, r30, 0x0 /* 80052A6C 0004E8AC 38 8D 83 BC */ addi r4, r13, CmdCalibrate@sda21 /* 80052A70 0004E8B0 1C C3 00 0C */ mulli r6, r3, 0xc /* 80052A74 0004E8B4 39 08 26 40 */ addi r8, r8, PADOriginCallback@l /* 80052A78 0004E8B8 38 A0 00 03 */ li r5, 0x3 /* 80052A7C 0004E8BC 38 E0 00 0A */ li r7, 0xa /* 80052A80 0004E8C0 7C C0 32 14 */ add r6, r0, r6 /* 80052A84 0004E8C4 39 40 00 00 */ li r10, 0x0 /* 80052A88 0004E8C8 39 20 00 00 */ li r9, 0x0 /* 80052A8C 0004E8CC 4B FD 88 35 */ bl SITransfer /* 80052A90 0004E8D0 48 00 00 C0 */ b lbl_80052B50 .global lbl_80052A94 lbl_80052A94: /* 80052A94 0004E8D4 80 6D 83 A4 */ lwz r3, ResettingChan@sda21(r13) /* 80052A98 0004E8D8 3D 00 80 05 */ lis r8, PADOriginCallback@ha /* 80052A9C 0004E8DC 38 1E 00 00 */ addi r0, r30, 0x0 /* 80052AA0 0004E8E0 38 8D 83 B8 */ addi r4, r13, CmdReadOrigin@sda21 /* 80052AA4 0004E8E4 1C C3 00 0C */ mulli r6, r3, 0xc /* 80052AA8 0004E8E8 39 08 26 40 */ addi r8, r8, PADOriginCallback@l /* 80052AAC 0004E8EC 38 A0 00 01 */ li r5, 0x1 /* 80052AB0 0004E8F0 38 E0 00 0A */ li r7, 0xa /* 80052AB4 0004E8F4 7C C0 32 14 */ add r6, r0, r6 /* 80052AB8 0004E8F8 39 40 00 00 */ li r10, 0x0 /* 80052ABC 0004E8FC 39 20 00 00 */ li r9, 0x0 /* 80052AC0 0004E900 4B FD 88 01 */ bl SITransfer /* 80052AC4 0004E904 48 00 00 8C */ b lbl_80052B50 .global lbl_80052AC8 lbl_80052AC8: /* 80052AC8 0004E908 54 80 02 D7 */ rlwinm. r0, r4, 0, 11, 11 /* 80052ACC 0004E90C 41 82 00 84 */ beq lbl_80052B50 /* 80052AD0 0004E910 54 80 03 19 */ rlwinm. r0, r4, 0, 12, 12 /* 80052AD4 0004E914 40 82 00 7C */ bne lbl_80052B50 /* 80052AD8 0004E918 54 80 03 5B */ rlwinm. r0, r4, 0, 13, 13 /* 80052ADC 0004E91C 40 82 00 74 */ bne lbl_80052B50 /* 80052AE0 0004E920 54 80 00 43 */ rlwinm. r0, r4, 0, 1, 1 /* 80052AE4 0004E924 41 82 00 38 */ beq lbl_80052B1C /* 80052AE8 0004E928 1C 9C 00 0C */ mulli r4, r28, 0xc /* 80052AEC 0004E92C 38 1E 00 00 */ addi r0, r30, 0x0 /* 80052AF0 0004E930 3D 00 80 05 */ lis r8, PADOriginCallback@ha /* 80052AF4 0004E934 7F 83 E3 78 */ mr r3, r28 /* 80052AF8 0004E938 7C C0 22 14 */ add r6, r0, r4 /* 80052AFC 0004E93C 39 08 26 40 */ addi r8, r8, PADOriginCallback@l /* 80052B00 0004E940 38 8D 83 B8 */ addi r4, r13, CmdReadOrigin@sda21 /* 80052B04 0004E944 38 A0 00 01 */ li r5, 0x1 /* 80052B08 0004E948 38 E0 00 0A */ li r7, 0xa /* 80052B0C 0004E94C 39 40 00 00 */ li r10, 0x0 /* 80052B10 0004E950 39 20 00 00 */ li r9, 0x0 /* 80052B14 0004E954 4B FD 87 AD */ bl SITransfer /* 80052B18 0004E958 48 00 00 38 */ b lbl_80052B50 .global lbl_80052B1C lbl_80052B1C: /* 80052B1C 0004E95C 1C BC 00 0C */ mulli r5, r28, 0xc /* 80052B20 0004E960 38 9E 00 40 */ addi r4, r30, 0x40 /* 80052B24 0004E964 3D 00 80 05 */ lis r8, PADProbeCallback@ha /* 80052B28 0004E968 38 1E 00 00 */ addi r0, r30, 0x0 /* 80052B2C 0004E96C 7C 84 32 14 */ add r4, r4, r6 /* 80052B30 0004E970 7F 83 E3 78 */ mr r3, r28 /* 80052B34 0004E974 7C C0 2A 14 */ add r6, r0, r5 /* 80052B38 0004E978 39 08 27 D0 */ addi r8, r8, PADProbeCallback@l /* 80052B3C 0004E97C 38 A0 00 03 */ li r5, 0x3 /* 80052B40 0004E980 38 E0 00 08 */ li r7, 0x8 /* 80052B44 0004E984 39 40 00 00 */ li r10, 0x0 /* 80052B48 0004E988 39 20 00 00 */ li r9, 0x0 /* 80052B4C 0004E98C 4B FD 87 75 */ bl SITransfer .global lbl_80052B50 lbl_80052B50: /* 80052B50 0004E990 2C 03 00 00 */ cmpwi r3, 0x0 /* 80052B54 0004E994 40 82 00 5C */ bne lbl_80052BB0 /* 80052B58 0004E998 80 ED E9 60 */ lwz r7, ResettingBits@sda21(r13) /* 80052B5C 0004E99C 80 0D E9 50 */ lwz r0, PendingBits@sda21(r13) /* 80052B60 0004E9A0 7C E6 00 34 */ cntlzw r6, r7 /* 80052B64 0004E9A4 90 CD 83 A4 */ stw r6, ResettingChan@sda21(r13) /* 80052B68 0004E9A8 2C 06 00 20 */ cmpwi r6, 0x20 /* 80052B6C 0004E9AC 7C 00 EB 78 */ or r0, r0, r29 /* 80052B70 0004E9B0 90 0D E9 50 */ stw r0, PendingBits@sda21(r13) /* 80052B74 0004E9B4 41 82 00 3C */ beq lbl_80052BB0 /* 80052B78 0004E9B8 3C A0 80 00 */ lis r5, 0x8000 /* 80052B7C 0004E9BC 38 1E 00 00 */ addi r0, r30, 0x0 /* 80052B80 0004E9C0 1C 66 00 0C */ mulli r3, r6, 0xc /* 80052B84 0004E9C4 38 80 00 00 */ li r4, 0x0 /* 80052B88 0004E9C8 7C A6 34 30 */ srw r6, r5, r6 /* 80052B8C 0004E9CC 38 A0 00 0C */ li r5, 0xc /* 80052B90 0004E9D0 7C E6 30 78 */ andc r6, r7, r6 /* 80052B94 0004E9D4 90 CD E9 60 */ stw r6, ResettingBits@sda21(r13) /* 80052B98 0004E9D8 7C 60 1A 14 */ add r3, r0, r3 /* 80052B9C 0004E9DC 4B FB 17 B5 */ bl memset /* 80052BA0 0004E9E0 3C 80 80 05 */ lis r4, PADTypeAndStatusCallback@ha /* 80052BA4 0004E9E4 80 6D 83 A4 */ lwz r3, ResettingChan@sda21(r13) /* 80052BA8 0004E9E8 38 84 28 B0 */ addi r4, r4, PADTypeAndStatusCallback@l /* 80052BAC 0004E9EC 4B FD 8D 05 */ bl SIGetTypeAsync .global lbl_80052BB0 lbl_80052BB0: /* 80052BB0 0004E9F0 80 01 00 24 */ lwz r0, 0x24(r1) /* 80052BB4 0004E9F4 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80052BB8 0004E9F8 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80052BBC 0004E9FC 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80052BC0 0004EA00 83 81 00 10 */ lwz r28, 0x10(r1) /* 80052BC4 0004EA04 7C 08 03 A6 */ mtlr r0 /* 80052BC8 0004EA08 38 21 00 20 */ addi r1, r1, 0x20 /* 80052BCC 0004EA0C 4E 80 00 20 */ blr .global PADReceiveCheckCallback PADReceiveCheckCallback: /* 80052BD0 0004EA10 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80052BD4 0004EA14 7C 08 02 A6 */ mflr r0 /* 80052BD8 0004EA18 3C A0 80 00 */ lis r5, 0x8000 /* 80052BDC 0004EA1C 90 01 00 24 */ stw r0, 0x24(r1) /* 80052BE0 0004EA20 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80052BE4 0004EA24 7C BF 1C 30 */ srw r31, r5, r3 /* 80052BE8 0004EA28 93 C1 00 18 */ stw r30, 0x18(r1) /* 80052BEC 0004EA2C 7C 7E 1B 78 */ mr r30, r3 /* 80052BF0 0004EA30 93 A1 00 14 */ stw r29, 0x14(r1) /* 80052BF4 0004EA34 80 0D E9 64 */ lwz r0, EnabledBits@sda21(r13) /* 80052BF8 0004EA38 7C 00 F8 39 */ and. r0, r0, r31 /* 80052BFC 0004EA3C 41 82 00 F4 */ beq lbl_80052CF0 /* 80052C00 0004EA40 54 80 07 3F */ clrlwi. r0, r4, 28 /* 80052C04 0004EA44 80 AD E9 58 */ lwz r5, WaitingBits@sda21(r13) /* 80052C08 0004EA48 80 0D E9 54 */ lwz r0, CheckingBits@sda21(r13) /* 80052C0C 0004EA4C 7F E6 F8 F8 */ nor r6, r31, r31 /* 80052C10 0004EA50 7C A5 30 38 */ and r5, r5, r6 /* 80052C14 0004EA54 90 AD E9 58 */ stw r5, WaitingBits@sda21(r13) /* 80052C18 0004EA58 7C 00 30 38 */ and r0, r0, r6 /* 80052C1C 0004EA5C 54 84 00 2E */ clrrwi r4, r4, 8 /* 80052C20 0004EA60 90 0D E9 54 */ stw r0, CheckingBits@sda21(r13) /* 80052C24 0004EA64 40 82 00 68 */ bne lbl_80052C8C /* 80052C28 0004EA68 54 80 00 01 */ clrrwi. r0, r4, 31 /* 80052C2C 0004EA6C 41 82 00 60 */ beq lbl_80052C8C /* 80052C30 0004EA70 54 80 02 D7 */ rlwinm. r0, r4, 0, 11, 11 /* 80052C34 0004EA74 41 82 00 58 */ beq lbl_80052C8C /* 80052C38 0004EA78 54 80 00 43 */ rlwinm. r0, r4, 0, 1, 1 /* 80052C3C 0004EA7C 41 82 00 50 */ beq lbl_80052C8C /* 80052C40 0004EA80 54 80 01 4B */ rlwinm. r0, r4, 0, 5, 5 /* 80052C44 0004EA84 40 82 00 48 */ bne lbl_80052C8C /* 80052C48 0004EA88 54 80 03 19 */ rlwinm. r0, r4, 0, 12, 12 /* 80052C4C 0004EA8C 40 82 00 40 */ bne lbl_80052C8C /* 80052C50 0004EA90 54 80 03 5B */ rlwinm. r0, r4, 0, 13, 13 /* 80052C54 0004EA94 40 82 00 38 */ bne lbl_80052C8C /* 80052C58 0004EA98 1C 03 00 0C */ mulli r0, r3, 0xc /* 80052C5C 0004EA9C 3C 80 80 4C */ lis r4, Origin@ha /* 80052C60 0004EAA0 3D 00 80 05 */ lis r8, PADOriginUpdateCallback@ha /* 80052C64 0004EAA4 38 84 19 60 */ addi r4, r4, Origin@l /* 80052C68 0004EAA8 7C C4 02 14 */ add r6, r4, r0 /* 80052C6C 0004EAAC 39 08 27 00 */ addi r8, r8, PADOriginUpdateCallback@l /* 80052C70 0004EAB0 38 8D 83 B8 */ addi r4, r13, CmdReadOrigin@sda21 /* 80052C74 0004EAB4 38 A0 00 01 */ li r5, 0x1 /* 80052C78 0004EAB8 38 E0 00 0A */ li r7, 0xa /* 80052C7C 0004EABC 39 40 00 00 */ li r10, 0x0 /* 80052C80 0004EAC0 39 20 00 00 */ li r9, 0x0 /* 80052C84 0004EAC4 4B FD 86 3D */ bl SITransfer /* 80052C88 0004EAC8 48 00 00 68 */ b lbl_80052CF0 .global lbl_80052C8C lbl_80052C8C: /* 80052C8C 0004EACC 4B FC EB 95 */ bl OSDisableInterrupts /* 80052C90 0004EAD0 7C 7D 1B 78 */ mr r29, r3 /* 80052C94 0004EAD4 7F E3 FB 78 */ mr r3, r31 /* 80052C98 0004EAD8 4B FD 83 F9 */ bl SIDisablePolling /* 80052C9C 0004EADC 80 8D E9 64 */ lwz r4, EnabledBits@sda21(r13) /* 80052CA0 0004EAE0 7F E9 F8 F8 */ nor r9, r31, r31 /* 80052CA4 0004EAE4 80 0D E9 58 */ lwz r0, WaitingBits@sda21(r13) /* 80052CA8 0004EAE8 7F C3 F3 78 */ mr r3, r30 /* 80052CAC 0004EAEC 7C 88 48 38 */ and r8, r4, r9 /* 80052CB0 0004EAF0 80 AD E9 54 */ lwz r5, CheckingBits@sda21(r13) /* 80052CB4 0004EAF4 7C 07 48 38 */ and r7, r0, r9 /* 80052CB8 0004EAF8 80 0D E9 4C */ lwz r0, BarrelBits@sda21(r13) /* 80052CBC 0004EAFC 7C A6 48 38 */ and r6, r5, r9 /* 80052CC0 0004EB00 80 8D E9 50 */ lwz r4, PendingBits@sda21(r13) /* 80052CC4 0004EB04 7C 00 48 38 */ and r0, r0, r9 /* 80052CC8 0004EB08 91 0D E9 64 */ stw r8, EnabledBits@sda21(r13) /* 80052CCC 0004EB0C 7C 85 48 38 */ and r5, r4, r9 /* 80052CD0 0004EB10 38 80 00 00 */ li r4, 0x0 /* 80052CD4 0004EB14 90 ED E9 58 */ stw r7, WaitingBits@sda21(r13) /* 80052CD8 0004EB18 90 CD E9 54 */ stw r6, CheckingBits@sda21(r13) /* 80052CDC 0004EB1C 90 AD E9 50 */ stw r5, PendingBits@sda21(r13) /* 80052CE0 0004EB20 90 0D E9 4C */ stw r0, BarrelBits@sda21(r13) /* 80052CE4 0004EB24 4B FD 13 3D */ bl OSSetWirelessID /* 80052CE8 0004EB28 7F A3 EB 78 */ mr r3, r29 /* 80052CEC 0004EB2C 4B FC EB 75 */ bl OSRestoreInterrupts .global lbl_80052CF0 lbl_80052CF0: /* 80052CF0 0004EB30 80 01 00 24 */ lwz r0, 0x24(r1) /* 80052CF4 0004EB34 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80052CF8 0004EB38 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80052CFC 0004EB3C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80052D00 0004EB40 7C 08 03 A6 */ mtlr r0 /* 80052D04 0004EB44 38 21 00 20 */ addi r1, r1, 0x20 /* 80052D08 0004EB48 4E 80 00 20 */ blr /* 80052D0C 0004EB4C 00 00 00 00 */ .4byte 0x00000000 .global PADReset PADReset: /* 80052D10 0004EB50 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80052D14 0004EB54 7C 08 02 A6 */ mflr r0 /* 80052D18 0004EB58 90 01 00 14 */ stw r0, 0x14(r1) /* 80052D1C 0004EB5C 93 E1 00 0C */ stw r31, 0xc(r1) /* 80052D20 0004EB60 93 C1 00 08 */ stw r30, 0x8(r1) /* 80052D24 0004EB64 7C 7E 1B 78 */ mr r30, r3 /* 80052D28 0004EB68 4B FC EA F9 */ bl OSDisableInterrupts /* 80052D2C 0004EB6C 80 0D E9 50 */ lwz r0, PendingBits@sda21(r13) /* 80052D30 0004EB70 7C 7F 1B 78 */ mr r31, r3 /* 80052D34 0004EB74 80 8D E9 58 */ lwz r4, WaitingBits@sda21(r13) /* 80052D38 0004EB78 38 E0 00 00 */ li r7, 0x0 /* 80052D3C 0004EB7C 80 6D E9 54 */ lwz r3, CheckingBits@sda21(r13) /* 80052D40 0004EB80 7F DE 03 78 */ or r30, r30, r0 /* 80052D44 0004EB84 80 0D 83 B0 */ lwz r0, Spec@sda21(r13) /* 80052D48 0004EB88 7C 84 1B 78 */ or r4, r4, r3 /* 80052D4C 0004EB8C 80 6D E9 60 */ lwz r3, ResettingBits@sda21(r13) /* 80052D50 0004EB90 7F DE 20 78 */ andc r30, r30, r4 /* 80052D54 0004EB94 80 AD E9 64 */ lwz r5, EnabledBits@sda21(r13) /* 80052D58 0004EB98 7C 66 F3 78 */ or r6, r3, r30 /* 80052D5C 0004EB9C 80 6D E9 4C */ lwz r3, BarrelBits@sda21(r13) /* 80052D60 0004EBA0 7F C8 F0 F8 */ nor r8, r30, r30 /* 80052D64 0004EBA4 28 00 00 04 */ cmplwi r0, 0x4 /* 80052D68 0004EBA8 7C 60 40 38 */ and r0, r3, r8 /* 80052D6C 0004EBAC 90 ED E9 50 */ stw r7, PendingBits@sda21(r13) /* 80052D70 0004EBB0 7C A4 40 38 */ and r4, r5, r8 /* 80052D74 0004EBB4 7C C3 28 38 */ and r3, r6, r5 /* 80052D78 0004EBB8 90 CD E9 60 */ stw r6, ResettingBits@sda21(r13) /* 80052D7C 0004EBBC 90 8D E9 64 */ stw r4, EnabledBits@sda21(r13) /* 80052D80 0004EBC0 90 0D E9 4C */ stw r0, BarrelBits@sda21(r13) /* 80052D84 0004EBC4 40 82 00 10 */ bne lbl_80052D94 /* 80052D88 0004EBC8 80 0D E9 5C */ lwz r0, RecalibrateBits@sda21(r13) /* 80052D8C 0004EBCC 7C 00 F3 78 */ or r0, r0, r30 /* 80052D90 0004EBD0 90 0D E9 5C */ stw r0, RecalibrateBits@sda21(r13) .global lbl_80052D94 lbl_80052D94: /* 80052D94 0004EBD4 4B FD 82 FD */ bl SIDisablePolling /* 80052D98 0004EBD8 80 0D 83 A4 */ lwz r0, ResettingChan@sda21(r13) /* 80052D9C 0004EBDC 2C 00 00 20 */ cmpwi r0, 0x20 /* 80052DA0 0004EBE0 40 82 00 54 */ bne lbl_80052DF4 /* 80052DA4 0004EBE4 80 CD E9 60 */ lwz r6, ResettingBits@sda21(r13) /* 80052DA8 0004EBE8 7C C5 00 34 */ cntlzw r5, r6 /* 80052DAC 0004EBEC 90 AD 83 A4 */ stw r5, ResettingChan@sda21(r13) /* 80052DB0 0004EBF0 2C 05 00 20 */ cmpwi r5, 0x20 /* 80052DB4 0004EBF4 41 82 00 40 */ beq lbl_80052DF4 /* 80052DB8 0004EBF8 3C 00 80 00 */ lis r0, 0x8000 /* 80052DBC 0004EBFC 3C 60 80 4C */ lis r3, Origin@ha /* 80052DC0 0004EC00 7C 00 2C 30 */ srw r0, r0, r5 /* 80052DC4 0004EC04 38 80 00 00 */ li r4, 0x0 /* 80052DC8 0004EC08 7C C0 00 78 */ andc r0, r6, r0 /* 80052DCC 0004EC0C 90 0D E9 60 */ stw r0, ResettingBits@sda21(r13) /* 80052DD0 0004EC10 1C 05 00 0C */ mulli r0, r5, 0xc /* 80052DD4 0004EC14 38 63 19 60 */ addi r3, r3, Origin@l /* 80052DD8 0004EC18 38 A0 00 0C */ li r5, 0xc /* 80052DDC 0004EC1C 7C 63 02 14 */ add r3, r3, r0 /* 80052DE0 0004EC20 4B FB 15 71 */ bl memset /* 80052DE4 0004EC24 3C 80 80 05 */ lis r4, PADTypeAndStatusCallback@ha /* 80052DE8 0004EC28 80 6D 83 A4 */ lwz r3, ResettingChan@sda21(r13) /* 80052DEC 0004EC2C 38 84 28 B0 */ addi r4, r4, PADTypeAndStatusCallback@l /* 80052DF0 0004EC30 4B FD 8A C1 */ bl SIGetTypeAsync .global lbl_80052DF4 lbl_80052DF4: /* 80052DF4 0004EC34 7F E3 FB 78 */ mr r3, r31 /* 80052DF8 0004EC38 4B FC EA 69 */ bl OSRestoreInterrupts /* 80052DFC 0004EC3C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80052E00 0004EC40 38 60 00 01 */ li r3, 0x1 /* 80052E04 0004EC44 83 C1 00 08 */ lwz r30, 0x8(r1) /* 80052E08 0004EC48 80 01 00 14 */ lwz r0, 0x14(r1) /* 80052E0C 0004EC4C 7C 08 03 A6 */ mtlr r0 /* 80052E10 0004EC50 38 21 00 10 */ addi r1, r1, 0x10 /* 80052E14 0004EC54 4E 80 00 20 */ blr /* 80052E18 0004EC58 00 00 00 00 */ .4byte 0x00000000 /* 80052E1C 0004EC5C 00 00 00 00 */ .4byte 0x00000000 .global PADRecalibrate PADRecalibrate: /* 80052E20 0004EC60 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80052E24 0004EC64 7C 08 02 A6 */ mflr r0 /* 80052E28 0004EC68 90 01 00 14 */ stw r0, 0x14(r1) /* 80052E2C 0004EC6C 93 E1 00 0C */ stw r31, 0xc(r1) /* 80052E30 0004EC70 93 C1 00 08 */ stw r30, 0x8(r1) /* 80052E34 0004EC74 7C 7E 1B 78 */ mr r30, r3 /* 80052E38 0004EC78 4B FC E9 E9 */ bl OSDisableInterrupts /* 80052E3C 0004EC7C 80 AD E9 50 */ lwz r5, PendingBits@sda21(r13) /* 80052E40 0004EC80 7C 7F 1B 78 */ mr r31, r3 /* 80052E44 0004EC84 80 CD E9 58 */ lwz r6, WaitingBits@sda21(r13) /* 80052E48 0004EC88 38 E0 00 00 */ li r7, 0x0 /* 80052E4C 0004EC8C 80 0D E9 54 */ lwz r0, CheckingBits@sda21(r13) /* 80052E50 0004EC90 7F DE 2B 78 */ or r30, r30, r5 /* 80052E54 0004EC94 80 AD E9 60 */ lwz r5, ResettingBits@sda21(r13) /* 80052E58 0004EC98 3C 80 80 00 */ lis r4, 0x800030E3@ha /* 80052E5C 0004EC9C 7C C0 03 78 */ or r0, r6, r0 /* 80052E60 0004ECA0 80 6D E9 64 */ lwz r3, EnabledBits@sda21(r13) /* 80052E64 0004ECA4 7F DE 00 78 */ andc r30, r30, r0 /* 80052E68 0004ECA8 80 0D E9 4C */ lwz r0, BarrelBits@sda21(r13) /* 80052E6C 0004ECAC 7F C8 F0 F8 */ nor r8, r30, r30 /* 80052E70 0004ECB0 90 ED E9 50 */ stw r7, PendingBits@sda21(r13) /* 80052E74 0004ECB4 7C A6 F3 78 */ or r6, r5, r30 /* 80052E78 0004ECB8 7C 65 40 38 */ and r5, r3, r8 /* 80052E7C 0004ECBC 7C 00 40 38 */ and r0, r0, r8 /* 80052E80 0004ECC0 90 CD E9 60 */ stw r6, ResettingBits@sda21(r13) /* 80052E84 0004ECC4 7C C3 18 38 */ and r3, r6, r3 /* 80052E88 0004ECC8 90 AD E9 64 */ stw r5, EnabledBits@sda21(r13) /* 80052E8C 0004ECCC 90 0D E9 4C */ stw r0, BarrelBits@sda21(r13) /* 80052E90 0004ECD0 88 04 30 E3 */ lbz r0, 0x800030E3@l(r4) /* 80052E94 0004ECD4 54 00 06 73 */ rlwinm. r0, r0, 0, 25, 25 /* 80052E98 0004ECD8 40 82 00 10 */ bne lbl_80052EA8 /* 80052E9C 0004ECDC 80 0D E9 5C */ lwz r0, RecalibrateBits@sda21(r13) /* 80052EA0 0004ECE0 7C 00 F3 78 */ or r0, r0, r30 /* 80052EA4 0004ECE4 90 0D E9 5C */ stw r0, RecalibrateBits@sda21(r13) .global lbl_80052EA8 lbl_80052EA8: /* 80052EA8 0004ECE8 4B FD 81 E9 */ bl SIDisablePolling /* 80052EAC 0004ECEC 80 0D 83 A4 */ lwz r0, ResettingChan@sda21(r13) /* 80052EB0 0004ECF0 2C 00 00 20 */ cmpwi r0, 0x20 /* 80052EB4 0004ECF4 40 82 00 54 */ bne lbl_80052F08 /* 80052EB8 0004ECF8 80 CD E9 60 */ lwz r6, ResettingBits@sda21(r13) /* 80052EBC 0004ECFC 7C C5 00 34 */ cntlzw r5, r6 /* 80052EC0 0004ED00 90 AD 83 A4 */ stw r5, ResettingChan@sda21(r13) /* 80052EC4 0004ED04 2C 05 00 20 */ cmpwi r5, 0x20 /* 80052EC8 0004ED08 41 82 00 40 */ beq lbl_80052F08 /* 80052ECC 0004ED0C 3C 00 80 00 */ lis r0, 0x8000 /* 80052ED0 0004ED10 3C 60 80 4C */ lis r3, Origin@ha /* 80052ED4 0004ED14 7C 00 2C 30 */ srw r0, r0, r5 /* 80052ED8 0004ED18 38 80 00 00 */ li r4, 0x0 /* 80052EDC 0004ED1C 7C C0 00 78 */ andc r0, r6, r0 /* 80052EE0 0004ED20 90 0D E9 60 */ stw r0, ResettingBits@sda21(r13) /* 80052EE4 0004ED24 1C 05 00 0C */ mulli r0, r5, 0xc /* 80052EE8 0004ED28 38 63 19 60 */ addi r3, r3, Origin@l /* 80052EEC 0004ED2C 38 A0 00 0C */ li r5, 0xc /* 80052EF0 0004ED30 7C 63 02 14 */ add r3, r3, r0 /* 80052EF4 0004ED34 4B FB 14 5D */ bl memset /* 80052EF8 0004ED38 3C 80 80 05 */ lis r4, PADTypeAndStatusCallback@ha /* 80052EFC 0004ED3C 80 6D 83 A4 */ lwz r3, ResettingChan@sda21(r13) /* 80052F00 0004ED40 38 84 28 B0 */ addi r4, r4, PADTypeAndStatusCallback@l /* 80052F04 0004ED44 4B FD 89 AD */ bl SIGetTypeAsync .global lbl_80052F08 lbl_80052F08: /* 80052F08 0004ED48 7F E3 FB 78 */ mr r3, r31 /* 80052F0C 0004ED4C 4B FC E9 55 */ bl OSRestoreInterrupts /* 80052F10 0004ED50 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80052F14 0004ED54 38 60 00 01 */ li r3, 0x1 /* 80052F18 0004ED58 83 C1 00 08 */ lwz r30, 0x8(r1) /* 80052F1C 0004ED5C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80052F20 0004ED60 7C 08 03 A6 */ mtlr r0 /* 80052F24 0004ED64 38 21 00 10 */ addi r1, r1, 0x10 /* 80052F28 0004ED68 4E 80 00 20 */ blr /* 80052F2C 0004ED6C 00 00 00 00 */ .4byte 0x00000000 .global PADInit PADInit: /* 80052F30 0004ED70 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80052F34 0004ED74 7C 08 02 A6 */ mflr r0 /* 80052F38 0004ED78 90 01 00 14 */ stw r0, 0x14(r1) /* 80052F3C 0004ED7C 80 0D E9 68 */ lwz r0, Initialized_8055CD88@sda21(r13) /* 80052F40 0004ED80 2C 00 00 00 */ cmpwi r0, 0x0 /* 80052F44 0004ED84 41 82 00 0C */ beq lbl_80052F50 /* 80052F48 0004ED88 38 60 00 01 */ li r3, 0x1 /* 80052F4C 0004ED8C 48 00 01 2C */ b lbl_80053078 .global lbl_80052F50 lbl_80052F50: /* 80052F50 0004ED90 80 6D 83 A0 */ lwz r3, __PADVersion@sda21(r13) /* 80052F54 0004ED94 4B FC 87 8D */ bl OSRegisterVersion /* 80052F58 0004ED98 80 8D E9 48 */ lwz r4, __PADSpec@sda21(r13) /* 80052F5C 0004ED9C 2C 84 00 00 */ cmpwi cr1, r4, 0x0 /* 80052F60 0004EDA0 41 86 00 58 */ beq cr1, lbl_80052FB8 /* 80052F64 0004EDA4 38 04 FF FE */ addi r0, r4, -0x2 /* 80052F68 0004EDA8 38 60 00 00 */ li r3, 0x0 /* 80052F6C 0004EDAC 28 00 00 03 */ cmplwi r0, 0x3 /* 80052F70 0004EDB0 90 6D E9 48 */ stw r3, __PADSpec@sda21(r13) /* 80052F74 0004EDB4 40 81 00 34 */ ble lbl_80052FA8 /* 80052F78 0004EDB8 41 86 00 10 */ beq cr1, lbl_80052F88 /* 80052F7C 0004EDBC 28 04 00 01 */ cmplwi r4, 0x1 /* 80052F80 0004EDC0 41 82 00 18 */ beq lbl_80052F98 /* 80052F84 0004EDC4 48 00 00 30 */ b lbl_80052FB4 .global lbl_80052F88 lbl_80052F88: /* 80052F88 0004EDC8 3C 60 80 05 */ lis r3, SPEC0_MakeStatus@ha /* 80052F8C 0004EDCC 38 63 36 10 */ addi r3, r3, SPEC0_MakeStatus@l /* 80052F90 0004EDD0 90 6D 83 B4 */ stw r3, MakeStatus@sda21(r13) /* 80052F94 0004EDD4 48 00 00 20 */ b lbl_80052FB4 .global lbl_80052F98 lbl_80052F98: /* 80052F98 0004EDD8 3C 60 80 05 */ lis r3, SPEC1_MakeStatus@ha /* 80052F9C 0004EDDC 38 63 37 30 */ addi r3, r3, SPEC1_MakeStatus@l /* 80052FA0 0004EDE0 90 6D 83 B4 */ stw r3, MakeStatus@sda21(r13) /* 80052FA4 0004EDE4 48 00 00 10 */ b lbl_80052FB4 .global lbl_80052FA8 lbl_80052FA8: /* 80052FA8 0004EDE8 3C 60 80 05 */ lis r3, SPEC2_MakeStatus@ha /* 80052FAC 0004EDEC 38 63 38 50 */ addi r3, r3, SPEC2_MakeStatus@l /* 80052FB0 0004EDF0 90 6D 83 B4 */ stw r3, MakeStatus@sda21(r13) .global lbl_80052FB4 lbl_80052FB4: /* 80052FB4 0004EDF4 90 8D 83 B0 */ stw r4, Spec@sda21(r13) .global lbl_80052FB8 lbl_80052FB8: /* 80052FB8 0004EDF8 80 0D E4 CC */ lwz r0, __PADFixBits@sda21(r13) /* 80052FBC 0004EDFC 38 60 00 01 */ li r3, 0x1 /* 80052FC0 0004EE00 90 6D E9 68 */ stw r3, Initialized_8055CD88@sda21(r13) /* 80052FC4 0004EE04 2C 00 00 00 */ cmpwi r0, 0x0 /* 80052FC8 0004EE08 41 82 00 64 */ beq lbl_8005302C /* 80052FCC 0004EE0C 4B FD 2B 75 */ bl OSGetTime /* 80052FD0 0004EE10 7C 68 86 70 */ srawi r8, r3, 16 /* 80052FD4 0004EE14 3C A0 00 01 */ lis r5, 0x1 /* 80052FD8 0004EE18 7C 60 FE 70 */ srawi r0, r3, 31 /* 80052FDC 0004EE1C 38 C0 00 00 */ li r6, 0x0 /* 80052FE0 0004EE20 38 E5 FF FF */ addi r7, r5, -0x1 /* 80052FE4 0004EE24 54 85 80 3E */ rotlwi r5, r4, 16 /* 80052FE8 0004EE28 7C 60 FE 70 */ srawi r0, r3, 31 /* 80052FEC 0004EE2C 50 65 80 1E */ rlwimi r5, r3, 16, 0, 15 /* 80052FF0 0004EE30 7C 84 38 38 */ and r4, r4, r7 /* 80052FF4 0004EE34 7C 60 86 70 */ srawi r0, r3, 16 /* 80052FF8 0004EE38 7C A0 38 38 */ and r0, r5, r7 /* 80052FFC 0004EE3C 7C 65 38 38 */ and r5, r3, r7 /* 80053000 0004EE40 7C 04 00 14 */ addc r0, r4, r0 /* 80053004 0004EE44 7D 07 38 38 */ and r7, r8, r7 /* 80053008 0004EE48 7C 86 31 14 */ adde r4, r6, r6 /* 8005300C 0004EE4C 3C 60 80 00 */ lis r3, 0x800030E0@ha /* 80053010 0004EE50 7C A5 00 14 */ addc r5, r5, r0 /* 80053014 0004EE54 3C 00 F0 00 */ lis r0, 0xf000 /* 80053018 0004EE58 7C 86 21 14 */ adde r4, r6, r4 /* 8005301C 0004EE5C 7C 87 28 14 */ addc r4, r7, r5 /* 80053020 0004EE60 54 84 04 BE */ clrlwi r4, r4, 18 /* 80053024 0004EE64 B0 83 30 E0 */ sth r4, 0x800030E0@l(r3) /* 80053028 0004EE68 90 0D E9 5C */ stw r0, RecalibrateBits@sda21(r13) .global lbl_8005302C lbl_8005302C: /* 8005302C 0004EE6C 3C 80 80 00 */ lis r4, 0x800030E0@ha /* 80053030 0004EE70 3C 60 80 4C */ lis r3, CmdProbeDevice@ha /* 80053034 0004EE74 A0 04 30 E0 */ lhz r0, 0x800030E0@l(r4) /* 80053038 0004EE78 38 83 19 A0 */ addi r4, r3, CmdProbeDevice@l /* 8005303C 0004EE7C 54 06 42 AE */ rlwinm r6, r0, 8, 10, 23 /* 80053040 0004EE80 64 C0 4D 00 */ oris r0, r6, 0x4d00 /* 80053044 0004EE84 90 03 19 A0 */ stw r0, 0x19a0(r3) /* 80053048 0004EE88 64 C5 4D 40 */ oris r5, r6, 0x4d40 /* 8005304C 0004EE8C 64 C3 4D 80 */ oris r3, r6, 0x4d80 /* 80053050 0004EE90 64 C0 4D C0 */ oris r0, r6, 0x4dc0 /* 80053054 0004EE94 90 A4 00 04 */ stw r5, 0x4(r4) /* 80053058 0004EE98 90 64 00 08 */ stw r3, 0x8(r4) /* 8005305C 0004EE9C 90 04 00 0C */ stw r0, 0xc(r4) /* 80053060 0004EEA0 4B FD 8A 41 */ bl SIRefreshSamplingRate /* 80053064 0004EEA4 3C 60 80 44 */ lis r3, ShutdownFunctionInfo_80438578@ha /* 80053068 0004EEA8 38 63 85 78 */ addi r3, r3, ShutdownFunctionInfo_80438578@l /* 8005306C 0004EEAC 4B FC FE A5 */ bl OSRegisterShutdownFunction /* 80053070 0004EEB0 3C 60 F0 00 */ lis r3, 0xf000 /* 80053074 0004EEB4 4B FF FC 9D */ bl PADReset .global lbl_80053078 lbl_80053078: /* 80053078 0004EEB8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8005307C 0004EEBC 7C 08 03 A6 */ mtlr r0 /* 80053080 0004EEC0 38 21 00 10 */ addi r1, r1, 0x10 /* 80053084 0004EEC4 4E 80 00 20 */ blr /* 80053088 0004EEC8 00 00 00 00 */ .4byte 0x00000000 /* 8005308C 0004EECC 00 00 00 00 */ .4byte 0x00000000 .global PADRead PADRead: /* 80053090 0004EED0 94 21 FF B0 */ stwu r1, -0x50(r1) /* 80053094 0004EED4 7C 08 02 A6 */ mflr r0 /* 80053098 0004EED8 90 01 00 54 */ stw r0, 0x54(r1) /* 8005309C 0004EEDC 39 61 00 50 */ addi r11, r1, 0x50 /* 800530A0 0004EEE0 4B FB 42 71 */ bl lbl_80007310 /* 800530A4 0004EEE4 7C 70 1B 78 */ mr r16, r3 /* 800530A8 0004EEE8 4B FC E7 79 */ bl OSDisableInterrupts /* 800530AC 0004EEEC 3E E0 80 4C */ lis r23, Type_804C1990@ha /* 800530B0 0004EEF0 3E C0 80 4C */ lis r22, "@LOCAL@PADRead__FP9PADStatus@pre_status@1"@ha /* 800530B4 0004EEF4 3E A0 80 4C */ lis r21, Origin@ha /* 800530B8 0004EEF8 7C 73 1B 78 */ mr r19, r3 /* 800530BC 0004EEFC 3A F7 19 90 */ addi r23, r23, Type_804C1990@l /* 800530C0 0004EF00 3A D6 19 E0 */ addi r22, r22, "@LOCAL@PADRead__FP9PADStatus@pre_status@1"@l /* 800530C4 0004EF04 3A B5 19 60 */ addi r21, r21, Origin@l /* 800530C8 0004EF08 3A 20 00 00 */ li r17, 0x0 /* 800530CC 0004EF0C 3A 40 00 00 */ li r18, 0x0 /* 800530D0 0004EF10 3B 40 FF FE */ li r26, -0x2 /* 800530D4 0004EF14 3B 60 FF FF */ li r27, -0x1 /* 800530D8 0004EF18 3B 80 FF FD */ li r28, -0x3 /* 800530DC 0004EF1C 3B A0 00 00 */ li r29, 0x0 /* 800530E0 0004EF20 3F C0 80 05 */ lis r30, PADReceiveCheckCallback@ha /* 800530E4 0004EF24 3F E0 80 05 */ lis r31, PADOriginUpdateCallback@ha /* 800530E8 0004EF28 3F 20 80 00 */ lis r25, 0x8000 .global lbl_800530EC lbl_800530EC: /* 800530EC 0004EF2C 80 0D E9 50 */ lwz r0, PendingBits@sda21(r13) /* 800530F0 0004EF30 7F 34 94 30 */ srw r20, r25, r18 /* 800530F4 0004EF34 7C 00 A0 39 */ and. r0, r0, r20 /* 800530F8 0004EF38 41 82 00 24 */ beq lbl_8005311C /* 800530FC 0004EF3C 38 60 00 00 */ li r3, 0x0 /* 80053100 0004EF40 4B FF FC 11 */ bl PADReset /* 80053104 0004EF44 9B 50 00 0A */ stb r26, 0xa(r16) /* 80053108 0004EF48 7E 03 83 78 */ mr r3, r16 /* 8005310C 0004EF4C 38 80 00 00 */ li r4, 0x0 /* 80053110 0004EF50 38 A0 00 0A */ li r5, 0xa /* 80053114 0004EF54 4B FB 12 3D */ bl memset /* 80053118 0004EF58 48 00 03 F8 */ b lbl_80053510 .global lbl_8005311C lbl_8005311C: /* 8005311C 0004EF5C 80 0D E9 60 */ lwz r0, ResettingBits@sda21(r13) /* 80053120 0004EF60 7C 00 A0 39 */ and. r0, r0, r20 /* 80053124 0004EF64 40 82 00 10 */ bne lbl_80053134 /* 80053128 0004EF68 80 0D 83 A4 */ lwz r0, ResettingChan@sda21(r13) /* 8005312C 0004EF6C 7C 00 90 00 */ cmpw r0, r18 /* 80053130 0004EF70 40 82 00 1C */ bne lbl_8005314C .global lbl_80053134 lbl_80053134: /* 80053134 0004EF74 9B 50 00 0A */ stb r26, 0xa(r16) /* 80053138 0004EF78 7E 03 83 78 */ mr r3, r16 /* 8005313C 0004EF7C 38 80 00 00 */ li r4, 0x0 /* 80053140 0004EF80 38 A0 00 0A */ li r5, 0xa /* 80053144 0004EF84 4B FB 12 0D */ bl memset /* 80053148 0004EF88 48 00 03 C8 */ b lbl_80053510 .global lbl_8005314C lbl_8005314C: /* 8005314C 0004EF8C 80 0D E9 64 */ lwz r0, EnabledBits@sda21(r13) /* 80053150 0004EF90 7C 00 A0 39 */ and. r0, r0, r20 /* 80053154 0004EF94 40 82 00 1C */ bne lbl_80053170 /* 80053158 0004EF98 9B 70 00 0A */ stb r27, 0xa(r16) /* 8005315C 0004EF9C 7E 03 83 78 */ mr r3, r16 /* 80053160 0004EFA0 38 80 00 00 */ li r4, 0x0 /* 80053164 0004EFA4 38 A0 00 0A */ li r5, 0xa /* 80053168 0004EFA8 4B FB 11 E9 */ bl memset /* 8005316C 0004EFAC 48 00 03 A4 */ b lbl_80053510 .global lbl_80053170 lbl_80053170: /* 80053170 0004EFB0 7E 43 93 78 */ mr r3, r18 /* 80053174 0004EFB4 4B FD 72 6D */ bl SIIsChanBusy /* 80053178 0004EFB8 2C 03 00 00 */ cmpwi r3, 0x0 /* 8005317C 0004EFBC 41 82 00 1C */ beq lbl_80053198 /* 80053180 0004EFC0 9B 90 00 0A */ stb r28, 0xa(r16) /* 80053184 0004EFC4 7E 03 83 78 */ mr r3, r16 /* 80053188 0004EFC8 38 80 00 00 */ li r4, 0x0 /* 8005318C 0004EFCC 38 A0 00 0A */ li r5, 0xa /* 80053190 0004EFD0 4B FB 11 C1 */ bl memset /* 80053194 0004EFD4 48 00 03 7C */ b lbl_80053510 .global lbl_80053198 lbl_80053198: /* 80053198 0004EFD8 7E 43 93 78 */ mr r3, r18 /* 8005319C 0004EFDC 4B FD 7D 55 */ bl SIGetStatus /* 800531A0 0004EFE0 54 60 07 39 */ rlwinm. r0, r3, 0, 28, 28 /* 800531A4 0004EFE4 41 82 00 D0 */ beq lbl_80053274 /* 800531A8 0004EFE8 7E 43 93 78 */ mr r3, r18 /* 800531AC 0004EFEC 38 81 00 08 */ addi r4, r1, 0x8 /* 800531B0 0004EFF0 4B FD 7F 51 */ bl SIGetResponse /* 800531B4 0004EFF4 80 0D E9 58 */ lwz r0, WaitingBits@sda21(r13) /* 800531B8 0004EFF8 7C 00 A0 39 */ and. r0, r0, r20 /* 800531BC 0004EFFC 41 82 00 3C */ beq lbl_800531F8 /* 800531C0 0004F000 9B B0 00 0A */ stb r29, 0xa(r16) /* 800531C4 0004F004 7E 03 83 78 */ mr r3, r16 /* 800531C8 0004F008 38 80 00 00 */ li r4, 0x0 /* 800531CC 0004F00C 38 A0 00 0A */ li r5, 0xa /* 800531D0 0004F010 4B FB 11 81 */ bl memset /* 800531D4 0004F014 80 6D E9 54 */ lwz r3, CheckingBits@sda21(r13) /* 800531D8 0004F018 7C 60 A0 39 */ and. r0, r3, r20 /* 800531DC 0004F01C 40 82 03 34 */ bne lbl_80053510 /* 800531E0 0004F020 7C 60 A3 78 */ or r0, r3, r20 /* 800531E4 0004F024 90 0D E9 54 */ stw r0, CheckingBits@sda21(r13) /* 800531E8 0004F028 7E 43 93 78 */ mr r3, r18 /* 800531EC 0004F02C 38 9E 2B D0 */ addi r4, r30, PADReceiveCheckCallback@l /* 800531F0 0004F030 4B FD 86 C1 */ bl SIGetTypeAsync /* 800531F4 0004F034 48 00 03 1C */ b lbl_80053510 .global lbl_800531F8 lbl_800531F8: /* 800531F8 0004F038 4B FC E6 29 */ bl OSDisableInterrupts /* 800531FC 0004F03C 7C 78 1B 78 */ mr r24, r3 /* 80053200 0004F040 7E 83 A3 78 */ mr r3, r20 /* 80053204 0004F044 4B FD 7E 8D */ bl SIDisablePolling /* 80053208 0004F048 80 8D E9 64 */ lwz r4, EnabledBits@sda21(r13) /* 8005320C 0004F04C 7E 89 A0 F8 */ nor r9, r20, r20 /* 80053210 0004F050 80 0D E9 58 */ lwz r0, WaitingBits@sda21(r13) /* 80053214 0004F054 7E 43 93 78 */ mr r3, r18 /* 80053218 0004F058 7C 88 48 38 */ and r8, r4, r9 /* 8005321C 0004F05C 80 AD E9 54 */ lwz r5, CheckingBits@sda21(r13) /* 80053220 0004F060 7C 07 48 38 */ and r7, r0, r9 /* 80053224 0004F064 80 0D E9 4C */ lwz r0, BarrelBits@sda21(r13) /* 80053228 0004F068 7C A6 48 38 */ and r6, r5, r9 /* 8005322C 0004F06C 80 8D E9 50 */ lwz r4, PendingBits@sda21(r13) /* 80053230 0004F070 7C 00 48 38 */ and r0, r0, r9 /* 80053234 0004F074 91 0D E9 64 */ stw r8, EnabledBits@sda21(r13) /* 80053238 0004F078 7C 85 48 38 */ and r5, r4, r9 /* 8005323C 0004F07C 38 80 00 00 */ li r4, 0x0 /* 80053240 0004F080 90 ED E9 58 */ stw r7, WaitingBits@sda21(r13) /* 80053244 0004F084 90 CD E9 54 */ stw r6, CheckingBits@sda21(r13) /* 80053248 0004F088 90 AD E9 50 */ stw r5, PendingBits@sda21(r13) /* 8005324C 0004F08C 90 0D E9 4C */ stw r0, BarrelBits@sda21(r13) /* 80053250 0004F090 4B FD 0D D1 */ bl OSSetWirelessID /* 80053254 0004F094 7F 03 C3 78 */ mr r3, r24 /* 80053258 0004F098 4B FC E6 09 */ bl OSRestoreInterrupts /* 8005325C 0004F09C 9B 70 00 0A */ stb r27, 0xa(r16) /* 80053260 0004F0A0 7E 03 83 78 */ mr r3, r16 /* 80053264 0004F0A4 38 80 00 00 */ li r4, 0x0 /* 80053268 0004F0A8 38 A0 00 0A */ li r5, 0xa /* 8005326C 0004F0AC 4B FB 10 E5 */ bl memset /* 80053270 0004F0B0 48 00 02 A0 */ b lbl_80053510 .global lbl_80053274 lbl_80053274: /* 80053274 0004F0B4 7E 43 93 78 */ mr r3, r18 /* 80053278 0004F0B8 4B FD 84 79 */ bl SIGetType /* 8005327C 0004F0BC 54 60 00 85 */ rlwinm. r0, r3, 0, 2, 2 /* 80053280 0004F0C0 40 82 00 08 */ bne lbl_80053288 /* 80053284 0004F0C4 7E 31 A3 78 */ or r17, r17, r20 .global lbl_80053288 lbl_80053288: /* 80053288 0004F0C8 7E 43 93 78 */ mr r3, r18 /* 8005328C 0004F0CC 38 81 00 08 */ addi r4, r1, 0x8 /* 80053290 0004F0D0 4B FD 7E 71 */ bl SIGetResponse /* 80053294 0004F0D4 2C 03 00 00 */ cmpwi r3, 0x0 /* 80053298 0004F0D8 40 82 00 1C */ bne lbl_800532B4 /* 8005329C 0004F0DC 9B 90 00 0A */ stb r28, 0xa(r16) /* 800532A0 0004F0E0 7E 03 83 78 */ mr r3, r16 /* 800532A4 0004F0E4 38 80 00 00 */ li r4, 0x0 /* 800532A8 0004F0E8 38 A0 00 0A */ li r5, 0xa /* 800532AC 0004F0EC 4B FB 10 A5 */ bl memset /* 800532B0 0004F0F0 48 00 02 60 */ b lbl_80053510 .global lbl_800532B4 lbl_800532B4: /* 800532B4 0004F0F4 80 01 00 08 */ lwz r0, 0x8(r1) /* 800532B8 0004F0F8 54 00 00 01 */ clrrwi. r0, r0, 31 /* 800532BC 0004F0FC 41 82 00 1C */ beq lbl_800532D8 /* 800532C0 0004F100 9B 90 00 0A */ stb r28, 0xa(r16) /* 800532C4 0004F104 7E 03 83 78 */ mr r3, r16 /* 800532C8 0004F108 38 80 00 00 */ li r4, 0x0 /* 800532CC 0004F10C 38 A0 00 0A */ li r5, 0xa /* 800532D0 0004F110 4B FB 10 81 */ bl memset /* 800532D4 0004F114 48 00 02 3C */ b lbl_80053510 .global lbl_800532D8 lbl_800532D8: /* 800532D8 0004F118 81 8D 83 B4 */ lwz r12, MakeStatus@sda21(r13) /* 800532DC 0004F11C 7E 43 93 78 */ mr r3, r18 /* 800532E0 0004F120 7E 04 83 78 */ mr r4, r16 /* 800532E4 0004F124 38 A1 00 08 */ addi r5, r1, 0x8 /* 800532E8 0004F128 7D 89 03 A6 */ mtctr r12 /* 800532EC 0004F12C 4E 80 04 21 */ bctrl /* 800532F0 0004F130 80 17 00 00 */ lwz r0, 0x0(r23) /* 800532F4 0004F134 54 03 00 1E */ clrrwi r3, r0, 16 /* 800532F8 0004F138 3C 03 F7 00 */ addis r0, r3, 0xf700 /* 800532FC 0004F13C 28 00 00 00 */ cmplwi r0, 0x0 /* 80053300 0004F140 40 82 00 20 */ bne lbl_80053320 /* 80053304 0004F144 A0 10 00 00 */ lhz r0, 0x0(r16) /* 80053308 0004F148 54 00 06 30 */ rlwinm r0, r0, 0, 24, 24 /* 8005330C 0004F14C 68 00 00 80 */ xori r0, r0, 0x80 /* 80053310 0004F150 2C 00 00 00 */ cmpwi r0, 0x0 /* 80053314 0004F154 41 82 00 0C */ beq lbl_80053320 /* 80053318 0004F158 38 00 00 0A */ li r0, 0xa /* 8005331C 0004F15C 48 00 00 08 */ b lbl_80053324 .global lbl_80053320 lbl_80053320: /* 80053320 0004F160 38 00 00 03 */ li r0, 0x3 .global lbl_80053324 lbl_80053324: /* 80053324 0004F164 88 96 00 02 */ lbz r4, 0x2(r22) /* 80053328 0004F168 88 70 00 02 */ lbz r3, 0x2(r16) /* 8005332C 0004F16C 7C 85 07 74 */ extsb r5, r4 /* 80053330 0004F170 7C A6 FE 70 */ srawi r6, r5, 31 /* 80053334 0004F174 7C 63 07 74 */ extsb r3, r3 /* 80053338 0004F178 7C 64 FE 70 */ srawi r4, r3, 31 /* 8005333C 0004F17C 7C C5 2A 78 */ xor r5, r6, r5 /* 80053340 0004F180 7C 83 1A 78 */ xor r3, r4, r3 /* 80053344 0004F184 7C A6 28 50 */ subf r5, r6, r5 /* 80053348 0004F188 7C 64 18 50 */ subf r3, r4, r3 /* 8005334C 0004F18C 7C 65 18 50 */ subf r3, r5, r3 /* 80053350 0004F190 7C 64 FE 70 */ srawi r4, r3, 31 /* 80053354 0004F194 7C 83 1A 78 */ xor r3, r4, r3 /* 80053358 0004F198 7C 64 18 50 */ subf r3, r4, r3 /* 8005335C 0004F19C 7C 03 00 00 */ cmpw r3, r0 /* 80053360 0004F1A0 40 80 01 44 */ bge lbl_800534A4 /* 80053364 0004F1A4 88 96 00 03 */ lbz r4, 0x3(r22) /* 80053368 0004F1A8 88 70 00 03 */ lbz r3, 0x3(r16) /* 8005336C 0004F1AC 7C 85 07 74 */ extsb r5, r4 /* 80053370 0004F1B0 7C A6 FE 70 */ srawi r6, r5, 31 /* 80053374 0004F1B4 7C 63 07 74 */ extsb r3, r3 /* 80053378 0004F1B8 7C 64 FE 70 */ srawi r4, r3, 31 /* 8005337C 0004F1BC 7C C5 2A 78 */ xor r5, r6, r5 /* 80053380 0004F1C0 7C 83 1A 78 */ xor r3, r4, r3 /* 80053384 0004F1C4 7C A6 28 50 */ subf r5, r6, r5 /* 80053388 0004F1C8 7C 64 18 50 */ subf r3, r4, r3 /* 8005338C 0004F1CC 7C 65 18 50 */ subf r3, r5, r3 /* 80053390 0004F1D0 7C 64 FE 70 */ srawi r4, r3, 31 /* 80053394 0004F1D4 7C 83 1A 78 */ xor r3, r4, r3 /* 80053398 0004F1D8 7C 64 18 50 */ subf r3, r4, r3 /* 8005339C 0004F1DC 7C 03 00 00 */ cmpw r3, r0 /* 800533A0 0004F1E0 40 80 01 04 */ bge lbl_800534A4 /* 800533A4 0004F1E4 88 96 00 04 */ lbz r4, 0x4(r22) /* 800533A8 0004F1E8 88 70 00 04 */ lbz r3, 0x4(r16) /* 800533AC 0004F1EC 7C 85 07 74 */ extsb r5, r4 /* 800533B0 0004F1F0 7C A6 FE 70 */ srawi r6, r5, 31 /* 800533B4 0004F1F4 7C 63 07 74 */ extsb r3, r3 /* 800533B8 0004F1F8 7C 64 FE 70 */ srawi r4, r3, 31 /* 800533BC 0004F1FC 7C C5 2A 78 */ xor r5, r6, r5 /* 800533C0 0004F200 7C 83 1A 78 */ xor r3, r4, r3 /* 800533C4 0004F204 7C A6 28 50 */ subf r5, r6, r5 /* 800533C8 0004F208 7C 64 18 50 */ subf r3, r4, r3 /* 800533CC 0004F20C 7C 65 18 50 */ subf r3, r5, r3 /* 800533D0 0004F210 7C 64 FE 70 */ srawi r4, r3, 31 /* 800533D4 0004F214 7C 83 1A 78 */ xor r3, r4, r3 /* 800533D8 0004F218 7C 64 18 50 */ subf r3, r4, r3 /* 800533DC 0004F21C 7C 03 00 00 */ cmpw r3, r0 /* 800533E0 0004F220 40 80 00 C4 */ bge lbl_800534A4 /* 800533E4 0004F224 88 96 00 05 */ lbz r4, 0x5(r22) /* 800533E8 0004F228 88 70 00 05 */ lbz r3, 0x5(r16) /* 800533EC 0004F22C 7C 85 07 74 */ extsb r5, r4 /* 800533F0 0004F230 7C A6 FE 70 */ srawi r6, r5, 31 /* 800533F4 0004F234 7C 63 07 74 */ extsb r3, r3 /* 800533F8 0004F238 7C 64 FE 70 */ srawi r4, r3, 31 /* 800533FC 0004F23C 7C C5 2A 78 */ xor r5, r6, r5 /* 80053400 0004F240 7C 83 1A 78 */ xor r3, r4, r3 /* 80053404 0004F244 7C A6 28 50 */ subf r5, r6, r5 /* 80053408 0004F248 7C 64 18 50 */ subf r3, r4, r3 /* 8005340C 0004F24C 7C 65 18 50 */ subf r3, r5, r3 /* 80053410 0004F250 7C 64 FE 70 */ srawi r4, r3, 31 /* 80053414 0004F254 7C 83 1A 78 */ xor r3, r4, r3 /* 80053418 0004F258 7C 64 18 50 */ subf r3, r4, r3 /* 8005341C 0004F25C 7C 03 00 00 */ cmpw r3, r0 /* 80053420 0004F260 40 80 00 84 */ bge lbl_800534A4 /* 80053424 0004F264 88 B6 00 06 */ lbz r5, 0x6(r22) /* 80053428 0004F268 88 70 00 06 */ lbz r3, 0x6(r16) /* 8005342C 0004F26C 7C A6 FE 70 */ srawi r6, r5, 31 /* 80053430 0004F270 7C 64 FE 70 */ srawi r4, r3, 31 /* 80053434 0004F274 7C C5 2A 78 */ xor r5, r6, r5 /* 80053438 0004F278 7C 83 1A 78 */ xor r3, r4, r3 /* 8005343C 0004F27C 7C A6 28 50 */ subf r5, r6, r5 /* 80053440 0004F280 7C 64 18 50 */ subf r3, r4, r3 /* 80053444 0004F284 7C 65 18 50 */ subf r3, r5, r3 /* 80053448 0004F288 7C 64 FE 70 */ srawi r4, r3, 31 /* 8005344C 0004F28C 7C 83 1A 78 */ xor r3, r4, r3 /* 80053450 0004F290 7C 64 18 50 */ subf r3, r4, r3 /* 80053454 0004F294 7C 03 00 00 */ cmpw r3, r0 /* 80053458 0004F298 40 80 00 4C */ bge lbl_800534A4 /* 8005345C 0004F29C 88 B6 00 07 */ lbz r5, 0x7(r22) /* 80053460 0004F2A0 88 70 00 07 */ lbz r3, 0x7(r16) /* 80053464 0004F2A4 7C A6 FE 70 */ srawi r6, r5, 31 /* 80053468 0004F2A8 7C 64 FE 70 */ srawi r4, r3, 31 /* 8005346C 0004F2AC 7C C5 2A 78 */ xor r5, r6, r5 /* 80053470 0004F2B0 7C 83 1A 78 */ xor r3, r4, r3 /* 80053474 0004F2B4 7C A6 28 50 */ subf r5, r6, r5 /* 80053478 0004F2B8 7C 64 18 50 */ subf r3, r4, r3 /* 8005347C 0004F2BC 7C 65 18 50 */ subf r3, r5, r3 /* 80053480 0004F2C0 7C 64 FE 70 */ srawi r4, r3, 31 /* 80053484 0004F2C4 7C 83 1A 78 */ xor r3, r4, r3 /* 80053488 0004F2C8 7C 64 18 50 */ subf r3, r4, r3 /* 8005348C 0004F2CC 7C 03 00 00 */ cmpw r3, r0 /* 80053490 0004F2D0 40 80 00 14 */ bge lbl_800534A4 /* 80053494 0004F2D4 A0 70 00 00 */ lhz r3, 0x0(r16) /* 80053498 0004F2D8 A0 16 00 00 */ lhz r0, 0x0(r22) /* 8005349C 0004F2DC 7C 03 00 40 */ cmplw r3, r0 /* 800534A0 0004F2E0 41 82 00 08 */ beq lbl_800534A8 .global lbl_800534A4 lbl_800534A4: /* 800534A4 0004F2E4 4B FD AF DD */ bl __VIResetSIIdle .global lbl_800534A8 lbl_800534A8: /* 800534A8 0004F2E8 7E C3 B3 78 */ mr r3, r22 /* 800534AC 0004F2EC 7E 04 83 78 */ mr r4, r16 /* 800534B0 0004F2F0 38 A0 00 0C */ li r5, 0xc /* 800534B4 0004F2F4 4B FB 0B 4D */ bl memcpy /* 800534B8 0004F2F8 A0 10 00 00 */ lhz r0, 0x0(r16) /* 800534BC 0004F2FC 54 00 04 A5 */ rlwinm. r0, r0, 0, 18, 18 /* 800534C0 0004F300 41 82 00 40 */ beq lbl_80053500 /* 800534C4 0004F304 9B 90 00 0A */ stb r28, 0xa(r16) /* 800534C8 0004F308 7E 03 83 78 */ mr r3, r16 /* 800534CC 0004F30C 38 80 00 00 */ li r4, 0x0 /* 800534D0 0004F310 38 A0 00 0A */ li r5, 0xa /* 800534D4 0004F314 4B FB 0E 7D */ bl memset /* 800534D8 0004F318 7E 43 93 78 */ mr r3, r18 /* 800534DC 0004F31C 7E A6 AB 78 */ mr r6, r21 /* 800534E0 0004F320 39 1F 27 00 */ addi r8, r31, PADOriginUpdateCallback@l /* 800534E4 0004F324 38 8D 83 B8 */ addi r4, r13, CmdReadOrigin@sda21 /* 800534E8 0004F328 38 A0 00 01 */ li r5, 0x1 /* 800534EC 0004F32C 38 E0 00 0A */ li r7, 0xa /* 800534F0 0004F330 39 40 00 00 */ li r10, 0x0 /* 800534F4 0004F334 39 20 00 00 */ li r9, 0x0 /* 800534F8 0004F338 4B FD 7D C9 */ bl SITransfer /* 800534FC 0004F33C 48 00 00 14 */ b lbl_80053510 .global lbl_80053500 lbl_80053500: /* 80053500 0004F340 9B B0 00 0A */ stb r29, 0xa(r16) /* 80053504 0004F344 A0 10 00 00 */ lhz r0, 0x0(r16) /* 80053508 0004F348 54 00 06 6E */ rlwinm r0, r0, 0, 25, 23 /* 8005350C 0004F34C B0 10 00 00 */ sth r0, 0x0(r16) .global lbl_80053510 lbl_80053510: /* 80053510 0004F350 3A 52 00 01 */ addi r18, r18, 0x1 /* 80053514 0004F354 3A D6 00 0C */ addi r22, r22, 0xc /* 80053518 0004F358 2C 12 00 04 */ cmpwi r18, 0x4 /* 8005351C 0004F35C 3A B5 00 0C */ addi r21, r21, 0xc /* 80053520 0004F360 3A 10 00 0C */ addi r16, r16, 0xc /* 80053524 0004F364 3A F7 00 04 */ addi r23, r23, 0x4 /* 80053528 0004F368 41 80 FB C4 */ blt lbl_800530EC /* 8005352C 0004F36C 7E 63 9B 78 */ mr r3, r19 /* 80053530 0004F370 4B FC E3 31 */ bl OSRestoreInterrupts /* 80053534 0004F374 39 61 00 50 */ addi r11, r1, 0x50 /* 80053538 0004F378 7E 23 8B 78 */ mr r3, r17 /* 8005353C 0004F37C 4B FB 3E 21 */ bl lbl_8000735C /* 80053540 0004F380 80 01 00 54 */ lwz r0, 0x54(r1) /* 80053544 0004F384 7C 08 03 A6 */ mtlr r0 /* 80053548 0004F388 38 21 00 50 */ addi r1, r1, 0x50 /* 8005354C 0004F38C 4E 80 00 20 */ blr .global PADControlMotor PADControlMotor: /* 80053550 0004F390 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80053554 0004F394 7C 08 02 A6 */ mflr r0 /* 80053558 0004F398 90 01 00 24 */ stw r0, 0x24(r1) /* 8005355C 0004F39C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80053560 0004F3A0 93 C1 00 18 */ stw r30, 0x18(r1) /* 80053564 0004F3A4 7C 9E 23 78 */ mr r30, r4 /* 80053568 0004F3A8 93 A1 00 14 */ stw r29, 0x14(r1) /* 8005356C 0004F3AC 7C 7D 1B 78 */ mr r29, r3 /* 80053570 0004F3B0 4B FC E2 B1 */ bl OSDisableInterrupts /* 80053574 0004F3B4 3C 00 80 00 */ lis r0, 0x8000 /* 80053578 0004F3B8 80 8D E9 64 */ lwz r4, EnabledBits@sda21(r13) /* 8005357C 0004F3BC 7C 00 EC 30 */ srw r0, r0, r29 /* 80053580 0004F3C0 7C 7F 1B 78 */ mr r31, r3 /* 80053584 0004F3C4 7C 80 00 39 */ and. r0, r4, r0 /* 80053588 0004F3C8 41 82 00 5C */ beq lbl_800535E4 /* 8005358C 0004F3CC 7F A3 EB 78 */ mr r3, r29 /* 80053590 0004F3D0 4B FD 81 61 */ bl SIGetType /* 80053594 0004F3D4 54 60 00 85 */ rlwinm. r0, r3, 0, 2, 2 /* 80053598 0004F3D8 40 82 00 4C */ bne lbl_800535E4 /* 8005359C 0004F3DC 80 0D 83 B0 */ lwz r0, Spec@sda21(r13) /* 800535A0 0004F3E0 28 00 00 02 */ cmplwi r0, 0x2 /* 800535A4 0004F3E4 40 80 00 10 */ bge lbl_800535B4 /* 800535A8 0004F3E8 28 1E 00 02 */ cmplwi r30, 0x2 /* 800535AC 0004F3EC 40 82 00 08 */ bne lbl_800535B4 /* 800535B0 0004F3F0 3B C0 00 00 */ li r30, 0x0 .global lbl_800535B4 lbl_800535B4: /* 800535B4 0004F3F4 3C 60 80 00 */ lis r3, 0x800030E3@ha /* 800535B8 0004F3F8 88 03 30 E3 */ lbz r0, 0x800030E3@l(r3) /* 800535BC 0004F3FC 54 00 06 B5 */ rlwinm. r0, r0, 0, 26, 26 /* 800535C0 0004F400 41 82 00 08 */ beq lbl_800535C8 /* 800535C4 0004F404 3B C0 00 00 */ li r30, 0x0 .global lbl_800535C8 lbl_800535C8: /* 800535C8 0004F408 80 8D 83 AC */ lwz r4, AnalogMode@sda21(r13) /* 800535CC 0004F40C 57 C0 07 BE */ clrlwi r0, r30, 30 /* 800535D0 0004F410 7F A3 EB 78 */ mr r3, r29 /* 800535D4 0004F414 64 84 00 40 */ oris r4, r4, 0x40 /* 800535D8 0004F418 7C 84 03 78 */ or r4, r4, r0 /* 800535DC 0004F41C 4B FD 79 95 */ bl SISetCommand /* 800535E0 0004F420 4B FD 79 B1 */ bl SITransferCommands .global lbl_800535E4 lbl_800535E4: /* 800535E4 0004F424 7F E3 FB 78 */ mr r3, r31 /* 800535E8 0004F428 4B FC E2 79 */ bl OSRestoreInterrupts /* 800535EC 0004F42C 80 01 00 24 */ lwz r0, 0x24(r1) /* 800535F0 0004F430 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 800535F4 0004F434 83 C1 00 18 */ lwz r30, 0x18(r1) /* 800535F8 0004F438 83 A1 00 14 */ lwz r29, 0x14(r1) /* 800535FC 0004F43C 7C 08 03 A6 */ mtlr r0 /* 80053600 0004F440 38 21 00 20 */ addi r1, r1, 0x20 /* 80053604 0004F444 4E 80 00 20 */ blr /* 80053608 0004F448 00 00 00 00 */ .4byte 0x00000000 /* 8005360C 0004F44C 00 00 00 00 */ .4byte 0x00000000 .global SPEC0_MakeStatus SPEC0_MakeStatus: /* 80053610 0004F450 38 00 00 00 */ li r0, 0x0 /* 80053614 0004F454 B0 04 00 00 */ sth r0, 0x0(r4) /* 80053618 0004F458 80 65 00 00 */ lwz r3, 0x0(r5) /* 8005361C 0004F45C 54 63 6F FE */ extrwi r3, r3, 1, 12 /* 80053620 0004F460 7C E3 00 D0 */ neg r7, r3 /* 80053624 0004F464 54 E3 05 EE */ rlwinm r3, r7, 0, 23, 23 /* 80053628 0004F468 B0 64 00 00 */ sth r3, 0x0(r4) /* 8005362C 0004F46C 80 65 00 00 */ lwz r3, 0x0(r5) /* 80053630 0004F470 54 63 5F FE */ extrwi r3, r3, 1, 10 /* 80053634 0004F474 7C 63 00 D0 */ neg r3, r3 /* 80053638 0004F478 54 66 05 AC */ rlwinm r6, r3, 0, 22, 22 /* 8005363C 0004F47C 50 E6 05 EE */ rlwimi r6, r7, 0, 23, 23 /* 80053640 0004F480 B0 C4 00 00 */ sth r6, 0x0(r4) /* 80053644 0004F484 80 65 00 00 */ lwz r3, 0x0(r5) /* 80053648 0004F488 54 63 47 FE */ extrwi r3, r3, 1, 7 /* 8005364C 0004F48C 7C 63 00 D0 */ neg r3, r3 /* 80053650 0004F490 50 66 05 6A */ rlwimi r6, r3, 0, 21, 21 /* 80053654 0004F494 B0 C4 00 00 */ sth r6, 0x0(r4) /* 80053658 0004F498 80 65 00 00 */ lwz r3, 0x0(r5) /* 8005365C 0004F49C 54 63 87 FE */ extrwi r3, r3, 1, 15 /* 80053660 0004F4A0 7C 63 00 D0 */ neg r3, r3 /* 80053664 0004F4A4 50 66 05 28 */ rlwimi r6, r3, 0, 20, 20 /* 80053668 0004F4A8 B0 C4 00 00 */ sth r6, 0x0(r4) /* 8005366C 0004F4AC 80 65 00 00 */ lwz r3, 0x0(r5) /* 80053670 0004F4B0 54 63 67 FE */ extrwi r3, r3, 1, 11 /* 80053674 0004F4B4 7C 63 00 D0 */ neg r3, r3 /* 80053678 0004F4B8 50 66 04 E6 */ rlwimi r6, r3, 0, 19, 19 /* 8005367C 0004F4BC B0 C4 00 00 */ sth r6, 0x0(r4) /* 80053680 0004F4C0 80 65 00 04 */ lwz r3, 0x4(r5) /* 80053684 0004F4C4 54 63 84 3E */ srwi r3, r3, 16 /* 80053688 0004F4C8 98 64 00 02 */ stb r3, 0x2(r4) /* 8005368C 0004F4CC 80 65 00 04 */ lwz r3, 0x4(r5) /* 80053690 0004F4D0 54 63 46 3E */ srwi r3, r3, 24 /* 80053694 0004F4D4 98 64 00 03 */ stb r3, 0x3(r4) /* 80053698 0004F4D8 80 65 00 04 */ lwz r3, 0x4(r5) /* 8005369C 0004F4DC 98 64 00 04 */ stb r3, 0x4(r4) /* 800536A0 0004F4E0 80 65 00 04 */ lwz r3, 0x4(r5) /* 800536A4 0004F4E4 54 63 C2 3E */ srwi r3, r3, 8 /* 800536A8 0004F4E8 98 64 00 05 */ stb r3, 0x5(r4) /* 800536AC 0004F4EC 80 65 00 00 */ lwz r3, 0x0(r5) /* 800536B0 0004F4F0 54 63 C6 3E */ extrwi r3, r3, 8, 16 /* 800536B4 0004F4F4 98 64 00 06 */ stb r3, 0x6(r4) /* 800536B8 0004F4F8 28 03 00 AA */ cmplwi r3, 0xaa /* 800536BC 0004F4FC 80 65 00 00 */ lwz r3, 0x0(r5) /* 800536C0 0004F500 98 64 00 07 */ stb r3, 0x7(r4) /* 800536C4 0004F504 98 04 00 08 */ stb r0, 0x8(r4) /* 800536C8 0004F508 98 04 00 09 */ stb r0, 0x9(r4) /* 800536CC 0004F50C 41 80 00 10 */ blt lbl_800536DC /* 800536D0 0004F510 54 C0 04 3E */ clrlwi r0, r6, 16 /* 800536D4 0004F514 60 00 00 40 */ ori r0, r0, 0x40 /* 800536D8 0004F518 B0 04 00 00 */ sth r0, 0x0(r4) .global lbl_800536DC lbl_800536DC: /* 800536DC 0004F51C 88 04 00 07 */ lbz r0, 0x7(r4) /* 800536E0 0004F520 28 00 00 AA */ cmplwi r0, 0xaa /* 800536E4 0004F524 41 80 00 10 */ blt lbl_800536F4 /* 800536E8 0004F528 A0 04 00 00 */ lhz r0, 0x0(r4) /* 800536EC 0004F52C 60 00 00 20 */ ori r0, r0, 0x20 /* 800536F0 0004F530 B0 04 00 00 */ sth r0, 0x0(r4) .global lbl_800536F4 lbl_800536F4: /* 800536F4 0004F534 88 64 00 02 */ lbz r3, 0x2(r4) /* 800536F8 0004F538 88 C4 00 03 */ lbz r6, 0x3(r4) /* 800536FC 0004F53C 38 03 FF 80 */ addi r0, r3, -0x80 /* 80053700 0004F540 88 A4 00 04 */ lbz r5, 0x4(r4) /* 80053704 0004F544 88 64 00 05 */ lbz r3, 0x5(r4) /* 80053708 0004F548 38 C6 FF 80 */ addi r6, r6, -0x80 /* 8005370C 0004F54C 38 A5 FF 80 */ addi r5, r5, -0x80 /* 80053710 0004F550 98 04 00 02 */ stb r0, 0x2(r4) /* 80053714 0004F554 38 03 FF 80 */ addi r0, r3, -0x80 /* 80053718 0004F558 98 C4 00 03 */ stb r6, 0x3(r4) /* 8005371C 0004F55C 98 A4 00 04 */ stb r5, 0x4(r4) /* 80053720 0004F560 98 04 00 05 */ stb r0, 0x5(r4) /* 80053724 0004F564 4E 80 00 20 */ blr /* 80053728 0004F568 00 00 00 00 */ .4byte 0x00000000 /* 8005372C 0004F56C 00 00 00 00 */ .4byte 0x00000000 .global SPEC1_MakeStatus SPEC1_MakeStatus: /* 80053730 0004F570 38 00 00 00 */ li r0, 0x0 /* 80053734 0004F574 B0 04 00 00 */ sth r0, 0x0(r4) /* 80053738 0004F578 80 65 00 00 */ lwz r3, 0x0(r5) /* 8005373C 0004F57C 54 63 4F FE */ extrwi r3, r3, 1, 8 /* 80053740 0004F580 7C E3 00 D0 */ neg r7, r3 /* 80053744 0004F584 54 E3 05 EE */ rlwinm r3, r7, 0, 23, 23 /* 80053748 0004F588 B0 64 00 00 */ sth r3, 0x0(r4) /* 8005374C 0004F58C 80 65 00 00 */ lwz r3, 0x0(r5) /* 80053750 0004F590 54 63 47 FE */ extrwi r3, r3, 1, 7 /* 80053754 0004F594 7C 63 00 D0 */ neg r3, r3 /* 80053758 0004F598 54 66 05 AC */ rlwinm r6, r3, 0, 22, 22 /* 8005375C 0004F59C 50 E6 05 EE */ rlwimi r6, r7, 0, 23, 23 /* 80053760 0004F5A0 B0 C4 00 00 */ sth r6, 0x0(r4) /* 80053764 0004F5A4 80 65 00 00 */ lwz r3, 0x0(r5) /* 80053768 0004F5A8 54 63 5F FE */ extrwi r3, r3, 1, 10 /* 8005376C 0004F5AC 7C 63 00 D0 */ neg r3, r3 /* 80053770 0004F5B0 50 66 05 6A */ rlwimi r6, r3, 0, 21, 21 /* 80053774 0004F5B4 B0 C4 00 00 */ sth r6, 0x0(r4) /* 80053778 0004F5B8 80 65 00 00 */ lwz r3, 0x0(r5) /* 8005377C 0004F5BC 54 63 67 FE */ extrwi r3, r3, 1, 11 /* 80053780 0004F5C0 7C 63 00 D0 */ neg r3, r3 /* 80053784 0004F5C4 50 66 05 28 */ rlwimi r6, r3, 0, 20, 20 /* 80053788 0004F5C8 B0 C4 00 00 */ sth r6, 0x0(r4) /* 8005378C 0004F5CC 80 65 00 00 */ lwz r3, 0x0(r5) /* 80053790 0004F5D0 54 63 3F FE */ extrwi r3, r3, 1, 6 /* 80053794 0004F5D4 7C 63 00 D0 */ neg r3, r3 /* 80053798 0004F5D8 50 66 04 E6 */ rlwimi r6, r3, 0, 19, 19 /* 8005379C 0004F5DC B0 C4 00 00 */ sth r6, 0x0(r4) /* 800537A0 0004F5E0 80 65 00 04 */ lwz r3, 0x4(r5) /* 800537A4 0004F5E4 54 63 84 3E */ srwi r3, r3, 16 /* 800537A8 0004F5E8 98 64 00 02 */ stb r3, 0x2(r4) /* 800537AC 0004F5EC 80 65 00 04 */ lwz r3, 0x4(r5) /* 800537B0 0004F5F0 54 63 46 3E */ srwi r3, r3, 24 /* 800537B4 0004F5F4 98 64 00 03 */ stb r3, 0x3(r4) /* 800537B8 0004F5F8 80 65 00 04 */ lwz r3, 0x4(r5) /* 800537BC 0004F5FC 98 64 00 04 */ stb r3, 0x4(r4) /* 800537C0 0004F600 80 65 00 04 */ lwz r3, 0x4(r5) /* 800537C4 0004F604 54 63 C2 3E */ srwi r3, r3, 8 /* 800537C8 0004F608 98 64 00 05 */ stb r3, 0x5(r4) /* 800537CC 0004F60C 80 65 00 00 */ lwz r3, 0x0(r5) /* 800537D0 0004F610 54 63 C6 3E */ extrwi r3, r3, 8, 16 /* 800537D4 0004F614 98 64 00 06 */ stb r3, 0x6(r4) /* 800537D8 0004F618 28 03 00 AA */ cmplwi r3, 0xaa /* 800537DC 0004F61C 80 65 00 00 */ lwz r3, 0x0(r5) /* 800537E0 0004F620 98 64 00 07 */ stb r3, 0x7(r4) /* 800537E4 0004F624 98 04 00 08 */ stb r0, 0x8(r4) /* 800537E8 0004F628 98 04 00 09 */ stb r0, 0x9(r4) /* 800537EC 0004F62C 41 80 00 10 */ blt lbl_800537FC /* 800537F0 0004F630 54 C0 04 3E */ clrlwi r0, r6, 16 /* 800537F4 0004F634 60 00 00 40 */ ori r0, r0, 0x40 /* 800537F8 0004F638 B0 04 00 00 */ sth r0, 0x0(r4) .global lbl_800537FC lbl_800537FC: /* 800537FC 0004F63C 88 04 00 07 */ lbz r0, 0x7(r4) /* 80053800 0004F640 28 00 00 AA */ cmplwi r0, 0xaa /* 80053804 0004F644 41 80 00 10 */ blt lbl_80053814 /* 80053808 0004F648 A0 04 00 00 */ lhz r0, 0x0(r4) /* 8005380C 0004F64C 60 00 00 20 */ ori r0, r0, 0x20 /* 80053810 0004F650 B0 04 00 00 */ sth r0, 0x0(r4) .global lbl_80053814 lbl_80053814: /* 80053814 0004F654 88 64 00 02 */ lbz r3, 0x2(r4) /* 80053818 0004F658 88 C4 00 03 */ lbz r6, 0x3(r4) /* 8005381C 0004F65C 38 03 FF 80 */ addi r0, r3, -0x80 /* 80053820 0004F660 88 A4 00 04 */ lbz r5, 0x4(r4) /* 80053824 0004F664 88 64 00 05 */ lbz r3, 0x5(r4) /* 80053828 0004F668 38 C6 FF 80 */ addi r6, r6, -0x80 /* 8005382C 0004F66C 38 A5 FF 80 */ addi r5, r5, -0x80 /* 80053830 0004F670 98 04 00 02 */ stb r0, 0x2(r4) /* 80053834 0004F674 38 03 FF 80 */ addi r0, r3, -0x80 /* 80053838 0004F678 98 C4 00 03 */ stb r6, 0x3(r4) /* 8005383C 0004F67C 98 A4 00 04 */ stb r5, 0x4(r4) /* 80053840 0004F680 98 04 00 05 */ stb r0, 0x5(r4) /* 80053844 0004F684 4E 80 00 20 */ blr /* 80053848 0004F688 00 00 00 00 */ .4byte 0x00000000 /* 8005384C 0004F68C 00 00 00 00 */ .4byte 0x00000000 .global SPEC2_MakeStatus SPEC2_MakeStatus: /* 80053850 0004F690 80 05 00 00 */ lwz r0, 0x0(r5) /* 80053854 0004F694 54 00 84 BE */ extrwi r0, r0, 14, 2 /* 80053858 0004F698 B0 04 00 00 */ sth r0, 0x0(r4) /* 8005385C 0004F69C 80 05 00 00 */ lwz r0, 0x0(r5) /* 80053860 0004F6A0 54 00 C2 3E */ srwi r0, r0, 8 /* 80053864 0004F6A4 98 04 00 02 */ stb r0, 0x2(r4) /* 80053868 0004F6A8 80 05 00 00 */ lwz r0, 0x0(r5) /* 8005386C 0004F6AC 98 04 00 03 */ stb r0, 0x3(r4) /* 80053870 0004F6B0 80 0D 83 AC */ lwz r0, AnalogMode@sda21(r13) /* 80053874 0004F6B4 54 00 05 6E */ rlwinm r0, r0, 0, 21, 23 /* 80053878 0004F6B8 2C 00 04 00 */ cmpwi r0, 0x400 /* 8005387C 0004F6BC 41 82 01 78 */ beq lbl_800539F4 /* 80053880 0004F6C0 40 80 00 34 */ bge lbl_800538B4 /* 80053884 0004F6C4 2C 00 02 00 */ cmpwi r0, 0x200 /* 80053888 0004F6C8 41 82 00 E8 */ beq lbl_80053970 /* 8005388C 0004F6CC 40 80 00 1C */ bge lbl_800538A8 /* 80053890 0004F6D0 2C 00 01 00 */ cmpwi r0, 0x100 /* 80053894 0004F6D4 41 82 00 90 */ beq lbl_80053924 /* 80053898 0004F6D8 40 80 01 94 */ bge lbl_80053A2C /* 8005389C 0004F6DC 2C 00 00 00 */ cmpwi r0, 0x0 /* 800538A0 0004F6E0 41 82 00 38 */ beq lbl_800538D8 /* 800538A4 0004F6E4 48 00 01 88 */ b lbl_80053A2C .global lbl_800538A8 lbl_800538A8: /* 800538A8 0004F6E8 2C 00 03 00 */ cmpwi r0, 0x300 /* 800538AC 0004F6EC 41 82 01 0C */ beq lbl_800539B8 /* 800538B0 0004F6F0 48 00 01 7C */ b lbl_80053A2C .global lbl_800538B4 lbl_800538B4: /* 800538B4 0004F6F4 2C 00 06 00 */ cmpwi r0, 0x600 /* 800538B8 0004F6F8 41 82 00 20 */ beq lbl_800538D8 /* 800538BC 0004F6FC 40 80 00 10 */ bge lbl_800538CC /* 800538C0 0004F700 2C 00 05 00 */ cmpwi r0, 0x500 /* 800538C4 0004F704 41 82 00 14 */ beq lbl_800538D8 /* 800538C8 0004F708 48 00 01 64 */ b lbl_80053A2C .global lbl_800538CC lbl_800538CC: /* 800538CC 0004F70C 2C 00 07 00 */ cmpwi r0, 0x700 /* 800538D0 0004F710 41 82 00 08 */ beq lbl_800538D8 /* 800538D4 0004F714 48 00 01 58 */ b lbl_80053A2C .global lbl_800538D8 lbl_800538D8: /* 800538D8 0004F718 80 05 00 04 */ lwz r0, 0x4(r5) /* 800538DC 0004F71C 54 00 46 3E */ srwi r0, r0, 24 /* 800538E0 0004F720 98 04 00 04 */ stb r0, 0x4(r4) /* 800538E4 0004F724 80 05 00 04 */ lwz r0, 0x4(r5) /* 800538E8 0004F728 54 00 84 3E */ srwi r0, r0, 16 /* 800538EC 0004F72C 98 04 00 05 */ stb r0, 0x5(r4) /* 800538F0 0004F730 80 05 00 04 */ lwz r0, 0x4(r5) /* 800538F4 0004F734 54 00 C6 36 */ rlwinm r0, r0, 24, 24, 27 /* 800538F8 0004F738 98 04 00 06 */ stb r0, 0x6(r4) /* 800538FC 0004F73C 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053900 0004F740 54 00 E6 36 */ rlwinm r0, r0, 28, 24, 27 /* 80053904 0004F744 98 04 00 07 */ stb r0, 0x7(r4) /* 80053908 0004F748 80 05 00 04 */ lwz r0, 0x4(r5) /* 8005390C 0004F74C 54 00 06 36 */ rlwinm r0, r0, 0, 24, 27 /* 80053910 0004F750 98 04 00 08 */ stb r0, 0x8(r4) /* 80053914 0004F754 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053918 0004F758 54 00 26 36 */ rlwinm r0, r0, 4, 24, 27 /* 8005391C 0004F75C 98 04 00 09 */ stb r0, 0x9(r4) /* 80053920 0004F760 48 00 01 0C */ b lbl_80053A2C .global lbl_80053924 lbl_80053924: /* 80053924 0004F764 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053928 0004F768 54 00 46 36 */ rlwinm r0, r0, 8, 24, 27 /* 8005392C 0004F76C 98 04 00 04 */ stb r0, 0x4(r4) /* 80053930 0004F770 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053934 0004F774 54 00 66 36 */ rlwinm r0, r0, 12, 24, 27 /* 80053938 0004F778 98 04 00 05 */ stb r0, 0x5(r4) /* 8005393C 0004F77C 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053940 0004F780 54 00 86 3E */ extrwi r0, r0, 8, 8 /* 80053944 0004F784 98 04 00 06 */ stb r0, 0x6(r4) /* 80053948 0004F788 80 05 00 04 */ lwz r0, 0x4(r5) /* 8005394C 0004F78C 54 00 C6 3E */ extrwi r0, r0, 8, 16 /* 80053950 0004F790 98 04 00 07 */ stb r0, 0x7(r4) /* 80053954 0004F794 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053958 0004F798 54 00 06 36 */ rlwinm r0, r0, 0, 24, 27 /* 8005395C 0004F79C 98 04 00 08 */ stb r0, 0x8(r4) /* 80053960 0004F7A0 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053964 0004F7A4 54 00 26 36 */ rlwinm r0, r0, 4, 24, 27 /* 80053968 0004F7A8 98 04 00 09 */ stb r0, 0x9(r4) /* 8005396C 0004F7AC 48 00 00 C0 */ b lbl_80053A2C .global lbl_80053970 lbl_80053970: /* 80053970 0004F7B0 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053974 0004F7B4 54 00 46 36 */ rlwinm r0, r0, 8, 24, 27 /* 80053978 0004F7B8 98 04 00 04 */ stb r0, 0x4(r4) /* 8005397C 0004F7BC 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053980 0004F7C0 54 00 66 36 */ rlwinm r0, r0, 12, 24, 27 /* 80053984 0004F7C4 98 04 00 05 */ stb r0, 0x5(r4) /* 80053988 0004F7C8 80 05 00 04 */ lwz r0, 0x4(r5) /* 8005398C 0004F7CC 54 00 86 36 */ rlwinm r0, r0, 16, 24, 27 /* 80053990 0004F7D0 98 04 00 06 */ stb r0, 0x6(r4) /* 80053994 0004F7D4 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053998 0004F7D8 54 00 A6 36 */ rlwinm r0, r0, 20, 24, 27 /* 8005399C 0004F7DC 98 04 00 07 */ stb r0, 0x7(r4) /* 800539A0 0004F7E0 80 05 00 04 */ lwz r0, 0x4(r5) /* 800539A4 0004F7E4 54 00 C6 3E */ extrwi r0, r0, 8, 16 /* 800539A8 0004F7E8 98 04 00 08 */ stb r0, 0x8(r4) /* 800539AC 0004F7EC 80 05 00 04 */ lwz r0, 0x4(r5) /* 800539B0 0004F7F0 98 04 00 09 */ stb r0, 0x9(r4) /* 800539B4 0004F7F4 48 00 00 78 */ b lbl_80053A2C .global lbl_800539B8 lbl_800539B8: /* 800539B8 0004F7F8 80 C5 00 04 */ lwz r6, 0x4(r5) /* 800539BC 0004F7FC 38 00 00 00 */ li r0, 0x0 /* 800539C0 0004F800 54 C6 46 3E */ srwi r6, r6, 24 /* 800539C4 0004F804 98 C4 00 04 */ stb r6, 0x4(r4) /* 800539C8 0004F808 80 C5 00 04 */ lwz r6, 0x4(r5) /* 800539CC 0004F80C 54 C6 84 3E */ srwi r6, r6, 16 /* 800539D0 0004F810 98 C4 00 05 */ stb r6, 0x5(r4) /* 800539D4 0004F814 80 C5 00 04 */ lwz r6, 0x4(r5) /* 800539D8 0004F818 54 C6 C6 3E */ extrwi r6, r6, 8, 16 /* 800539DC 0004F81C 98 C4 00 06 */ stb r6, 0x6(r4) /* 800539E0 0004F820 80 A5 00 04 */ lwz r5, 0x4(r5) /* 800539E4 0004F824 98 A4 00 07 */ stb r5, 0x7(r4) /* 800539E8 0004F828 98 04 00 08 */ stb r0, 0x8(r4) /* 800539EC 0004F82C 98 04 00 09 */ stb r0, 0x9(r4) /* 800539F0 0004F830 48 00 00 3C */ b lbl_80053A2C .global lbl_800539F4 lbl_800539F4: /* 800539F4 0004F834 80 C5 00 04 */ lwz r6, 0x4(r5) /* 800539F8 0004F838 38 00 00 00 */ li r0, 0x0 /* 800539FC 0004F83C 54 C6 46 3E */ srwi r6, r6, 24 /* 80053A00 0004F840 98 C4 00 04 */ stb r6, 0x4(r4) /* 80053A04 0004F844 80 C5 00 04 */ lwz r6, 0x4(r5) /* 80053A08 0004F848 54 C6 84 3E */ srwi r6, r6, 16 /* 80053A0C 0004F84C 98 C4 00 05 */ stb r6, 0x5(r4) /* 80053A10 0004F850 98 04 00 06 */ stb r0, 0x6(r4) /* 80053A14 0004F854 98 04 00 07 */ stb r0, 0x7(r4) /* 80053A18 0004F858 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053A1C 0004F85C 54 00 C6 3E */ extrwi r0, r0, 8, 16 /* 80053A20 0004F860 98 04 00 08 */ stb r0, 0x8(r4) /* 80053A24 0004F864 80 05 00 04 */ lwz r0, 0x4(r5) /* 80053A28 0004F868 98 04 00 09 */ stb r0, 0x9(r4) .global lbl_80053A2C lbl_80053A2C: /* 80053A2C 0004F86C 88 C4 00 02 */ lbz r6, 0x2(r4) /* 80053A30 0004F870 3C A0 80 4C */ lis r5, Type_804C1990@ha /* 80053A34 0004F874 89 04 00 03 */ lbz r8, 0x3(r4) /* 80053A38 0004F878 54 60 10 3A */ slwi r0, r3, 2 /* 80053A3C 0004F87C 39 26 FF 80 */ addi r9, r6, -0x80 /* 80053A40 0004F880 88 E4 00 04 */ lbz r7, 0x4(r4) /* 80053A44 0004F884 88 C4 00 05 */ lbz r6, 0x5(r4) /* 80053A48 0004F888 39 08 FF 80 */ addi r8, r8, -0x80 /* 80053A4C 0004F88C 38 E7 FF 80 */ addi r7, r7, -0x80 /* 80053A50 0004F890 99 24 00 02 */ stb r9, 0x2(r4) /* 80053A54 0004F894 38 C6 FF 80 */ addi r6, r6, -0x80 /* 80053A58 0004F898 38 A5 19 90 */ addi r5, r5, Type_804C1990@l /* 80053A5C 0004F89C 99 04 00 03 */ stb r8, 0x3(r4) /* 80053A60 0004F8A0 98 E4 00 04 */ stb r7, 0x4(r4) /* 80053A64 0004F8A4 98 C4 00 05 */ stb r6, 0x5(r4) /* 80053A68 0004F8A8 7C 05 00 2E */ lwzx r0, r5, r0 /* 80053A6C 0004F8AC 54 05 00 1E */ clrrwi r5, r0, 16 /* 80053A70 0004F8B0 3C 05 F7 00 */ addis r0, r5, 0xf700 /* 80053A74 0004F8B4 28 00 00 00 */ cmplwi r0, 0x0 /* 80053A78 0004F8B8 40 82 00 44 */ bne lbl_80053ABC /* 80053A7C 0004F8BC A0 04 00 00 */ lhz r0, 0x0(r4) /* 80053A80 0004F8C0 54 00 06 30 */ rlwinm r0, r0, 0, 24, 24 /* 80053A84 0004F8C4 68 00 00 80 */ xori r0, r0, 0x80 /* 80053A88 0004F8C8 2C 00 00 00 */ cmpwi r0, 0x0 /* 80053A8C 0004F8CC 41 82 00 30 */ beq lbl_80053ABC /* 80053A90 0004F8D0 3C 00 80 00 */ lis r0, 0x8000 /* 80053A94 0004F8D4 80 AD E9 4C */ lwz r5, BarrelBits@sda21(r13) /* 80053A98 0004F8D8 7C 03 1C 30 */ srw r3, r0, r3 /* 80053A9C 0004F8DC 7C A3 1B 78 */ or r3, r5, r3 /* 80053AA0 0004F8E0 90 6D E9 4C */ stw r3, BarrelBits@sda21(r13) /* 80053AA4 0004F8E4 38 00 00 00 */ li r0, 0x0 /* 80053AA8 0004F8E8 98 04 00 02 */ stb r0, 0x2(r4) /* 80053AAC 0004F8EC 98 04 00 03 */ stb r0, 0x3(r4) /* 80053AB0 0004F8F0 98 04 00 04 */ stb r0, 0x4(r4) /* 80053AB4 0004F8F4 98 04 00 05 */ stb r0, 0x5(r4) /* 80053AB8 0004F8F8 4E 80 00 20 */ blr .global lbl_80053ABC lbl_80053ABC: /* 80053ABC 0004F8FC 1C 03 00 0C */ mulli r0, r3, 0xc /* 80053AC0 0004F900 3C A0 80 4C */ lis r5, Origin@ha /* 80053AC4 0004F904 3C C0 80 00 */ lis r6, 0x8000 /* 80053AC8 0004F908 80 ED E9 4C */ lwz r7, BarrelBits@sda21(r13) /* 80053ACC 0004F90C 38 A5 19 60 */ addi r5, r5, Origin@l /* 80053AD0 0004F910 7C A5 02 14 */ add r5, r5, r0 /* 80053AD4 0004F914 7C C0 1C 30 */ srw r0, r6, r3 /* 80053AD8 0004F918 89 05 00 02 */ lbz r8, 0x2(r5) /* 80053ADC 0004F91C 7C E0 00 78 */ andc r0, r7, r0 /* 80053AE0 0004F920 90 0D E9 4C */ stw r0, BarrelBits@sda21(r13) /* 80053AE4 0004F924 7D 00 07 75 */ extsb. r0, r8 /* 80053AE8 0004F928 88 C4 00 02 */ lbz r6, 0x2(r4) /* 80053AEC 0004F92C 40 81 00 20 */ ble lbl_80053B0C /* 80053AF0 0004F930 38 68 FF 80 */ addi r3, r8, -0x80 /* 80053AF4 0004F934 7C C0 07 74 */ extsb r0, r6 /* 80053AF8 0004F938 7C 63 07 74 */ extsb r3, r3 /* 80053AFC 0004F93C 7C 00 18 00 */ cmpw r0, r3 /* 80053B00 0004F940 40 80 00 28 */ bge lbl_80053B28 /* 80053B04 0004F944 7C 66 1B 78 */ mr r6, r3 /* 80053B08 0004F948 48 00 00 20 */ b lbl_80053B28 .global lbl_80053B0C lbl_80053B0C: /* 80053B0C 0004F94C 40 80 00 1C */ bge lbl_80053B28 /* 80053B10 0004F950 38 68 00 7F */ addi r3, r8, 0x7f /* 80053B14 0004F954 7C C0 07 74 */ extsb r0, r6 /* 80053B18 0004F958 7C 63 07 74 */ extsb r3, r3 /* 80053B1C 0004F95C 7C 03 00 00 */ cmpw r3, r0 /* 80053B20 0004F960 40 80 00 08 */ bge lbl_80053B28 /* 80053B24 0004F964 7C 66 1B 78 */ mr r6, r3 .global lbl_80053B28 lbl_80053B28: /* 80053B28 0004F968 7C 08 30 50 */ subf r0, r8, r6 /* 80053B2C 0004F96C 98 04 00 02 */ stb r0, 0x2(r4) /* 80053B30 0004F970 88 C4 00 03 */ lbz r6, 0x3(r4) /* 80053B34 0004F974 88 E5 00 03 */ lbz r7, 0x3(r5) /* 80053B38 0004F978 7C E0 07 75 */ extsb. r0, r7 /* 80053B3C 0004F97C 40 81 00 20 */ ble lbl_80053B5C /* 80053B40 0004F980 38 67 FF 80 */ addi r3, r7, -0x80 /* 80053B44 0004F984 7C C0 07 74 */ extsb r0, r6 /* 80053B48 0004F988 7C 63 07 74 */ extsb r3, r3 /* 80053B4C 0004F98C 7C 00 18 00 */ cmpw r0, r3 /* 80053B50 0004F990 40 80 00 28 */ bge lbl_80053B78 /* 80053B54 0004F994 7C 66 1B 78 */ mr r6, r3 /* 80053B58 0004F998 48 00 00 20 */ b lbl_80053B78 .global lbl_80053B5C lbl_80053B5C: /* 80053B5C 0004F99C 40 80 00 1C */ bge lbl_80053B78 /* 80053B60 0004F9A0 38 67 00 7F */ addi r3, r7, 0x7f /* 80053B64 0004F9A4 7C C0 07 74 */ extsb r0, r6 /* 80053B68 0004F9A8 7C 63 07 74 */ extsb r3, r3 /* 80053B6C 0004F9AC 7C 03 00 00 */ cmpw r3, r0 /* 80053B70 0004F9B0 40 80 00 08 */ bge lbl_80053B78 /* 80053B74 0004F9B4 7C 66 1B 78 */ mr r6, r3 .global lbl_80053B78 lbl_80053B78: /* 80053B78 0004F9B8 7C 07 30 50 */ subf r0, r7, r6 /* 80053B7C 0004F9BC 98 04 00 03 */ stb r0, 0x3(r4) /* 80053B80 0004F9C0 88 C4 00 04 */ lbz r6, 0x4(r4) /* 80053B84 0004F9C4 88 E5 00 04 */ lbz r7, 0x4(r5) /* 80053B88 0004F9C8 7C E0 07 75 */ extsb. r0, r7 /* 80053B8C 0004F9CC 40 81 00 20 */ ble lbl_80053BAC /* 80053B90 0004F9D0 38 67 FF 80 */ addi r3, r7, -0x80 /* 80053B94 0004F9D4 7C C0 07 74 */ extsb r0, r6 /* 80053B98 0004F9D8 7C 63 07 74 */ extsb r3, r3 /* 80053B9C 0004F9DC 7C 00 18 00 */ cmpw r0, r3 /* 80053BA0 0004F9E0 40 80 00 28 */ bge lbl_80053BC8 /* 80053BA4 0004F9E4 7C 66 1B 78 */ mr r6, r3 /* 80053BA8 0004F9E8 48 00 00 20 */ b lbl_80053BC8 .global lbl_80053BAC lbl_80053BAC: /* 80053BAC 0004F9EC 40 80 00 1C */ bge lbl_80053BC8 /* 80053BB0 0004F9F0 38 67 00 7F */ addi r3, r7, 0x7f /* 80053BB4 0004F9F4 7C C0 07 74 */ extsb r0, r6 /* 80053BB8 0004F9F8 7C 63 07 74 */ extsb r3, r3 /* 80053BBC 0004F9FC 7C 03 00 00 */ cmpw r3, r0 /* 80053BC0 0004FA00 40 80 00 08 */ bge lbl_80053BC8 /* 80053BC4 0004FA04 7C 66 1B 78 */ mr r6, r3 .global lbl_80053BC8 lbl_80053BC8: /* 80053BC8 0004FA08 7C 07 30 50 */ subf r0, r7, r6 /* 80053BCC 0004FA0C 98 04 00 04 */ stb r0, 0x4(r4) /* 80053BD0 0004FA10 88 C4 00 05 */ lbz r6, 0x5(r4) /* 80053BD4 0004FA14 88 E5 00 05 */ lbz r7, 0x5(r5) /* 80053BD8 0004FA18 7C E0 07 75 */ extsb. r0, r7 /* 80053BDC 0004FA1C 40 81 00 20 */ ble lbl_80053BFC /* 80053BE0 0004FA20 38 67 FF 80 */ addi r3, r7, -0x80 /* 80053BE4 0004FA24 7C C0 07 74 */ extsb r0, r6 /* 80053BE8 0004FA28 7C 63 07 74 */ extsb r3, r3 /* 80053BEC 0004FA2C 7C 00 18 00 */ cmpw r0, r3 /* 80053BF0 0004FA30 40 80 00 28 */ bge lbl_80053C18 /* 80053BF4 0004FA34 7C 66 1B 78 */ mr r6, r3 /* 80053BF8 0004FA38 48 00 00 20 */ b lbl_80053C18 .global lbl_80053BFC lbl_80053BFC: /* 80053BFC 0004FA3C 40 80 00 1C */ bge lbl_80053C18 /* 80053C00 0004FA40 38 67 00 7F */ addi r3, r7, 0x7f /* 80053C04 0004FA44 7C C0 07 74 */ extsb r0, r6 /* 80053C08 0004FA48 7C 63 07 74 */ extsb r3, r3 /* 80053C0C 0004FA4C 7C 03 00 00 */ cmpw r3, r0 /* 80053C10 0004FA50 40 80 00 08 */ bge lbl_80053C18 /* 80053C14 0004FA54 7C 66 1B 78 */ mr r6, r3 .global lbl_80053C18 lbl_80053C18: /* 80053C18 0004FA58 7C 07 30 50 */ subf r0, r7, r6 /* 80053C1C 0004FA5C 98 04 00 05 */ stb r0, 0x5(r4) /* 80053C20 0004FA60 88 64 00 06 */ lbz r3, 0x6(r4) /* 80053C24 0004FA64 88 05 00 06 */ lbz r0, 0x6(r5) /* 80053C28 0004FA68 7C 03 00 40 */ cmplw r3, r0 /* 80053C2C 0004FA6C 40 80 00 08 */ bge lbl_80053C34 /* 80053C30 0004FA70 7C 03 03 78 */ mr r3, r0 .global lbl_80053C34 lbl_80053C34: /* 80053C34 0004FA74 7C 00 18 50 */ subf r0, r0, r3 /* 80053C38 0004FA78 98 04 00 06 */ stb r0, 0x6(r4) /* 80053C3C 0004FA7C 88 64 00 07 */ lbz r3, 0x7(r4) /* 80053C40 0004FA80 88 05 00 07 */ lbz r0, 0x7(r5) /* 80053C44 0004FA84 7C 03 00 40 */ cmplw r3, r0 /* 80053C48 0004FA88 40 80 00 08 */ bge lbl_80053C50 /* 80053C4C 0004FA8C 7C 03 03 78 */ mr r3, r0 .global lbl_80053C50 lbl_80053C50: /* 80053C50 0004FA90 7C 00 18 50 */ subf r0, r0, r3 /* 80053C54 0004FA94 98 04 00 07 */ stb r0, 0x7(r4) /* 80053C58 0004FA98 4E 80 00 20 */ blr /* 80053C5C 0004FA9C 00 00 00 00 */ .4byte 0x00000000 .global OnShutdown_80053C60 OnShutdown_80053C60: /* 80053C60 0004FAA0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80053C64 0004FAA4 7C 08 02 A6 */ mflr r0 /* 80053C68 0004FAA8 90 01 00 14 */ stw r0, 0x14(r1) /* 80053C6C 0004FAAC 93 E1 00 0C */ stw r31, 0xc(r1) /* 80053C70 0004FAB0 7C 7F 1B 78 */ mr r31, r3 /* 80053C74 0004FAB4 80 0D E9 44 */ lwz r0, SamplingCallback@sda21(r13) /* 80053C78 0004FAB8 2C 00 00 00 */ cmpwi r0, 0x0 /* 80053C7C 0004FABC 41 82 00 18 */ beq lbl_80053C94 /* 80053C80 0004FAC0 38 00 00 00 */ li r0, 0x0 /* 80053C84 0004FAC4 3C 60 80 05 */ lis r3, SamplingHandler@ha /* 80053C88 0004FAC8 90 0D E9 44 */ stw r0, SamplingCallback@sda21(r13) /* 80053C8C 0004FACC 38 63 3D 30 */ addi r3, r3, SamplingHandler@l /* 80053C90 0004FAD0 4B FD 6F 01 */ bl SIUnregisterPollingHandler .global lbl_80053C94 lbl_80053C94: /* 80053C94 0004FAD4 2C 1F 00 00 */ cmpwi r31, 0x0 /* 80053C98 0004FAD8 40 82 00 70 */ bne lbl_80053D08 /* 80053C9C 0004FADC 80 0D E9 60 */ lwz r0, ResettingBits@sda21(r13) /* 80053CA0 0004FAE0 3B E0 00 00 */ li r31, 0x0 /* 80053CA4 0004FAE4 38 60 00 00 */ li r3, 0x0 /* 80053CA8 0004FAE8 2C 00 00 00 */ cmpwi r0, 0x0 /* 80053CAC 0004FAEC 40 82 00 14 */ bne lbl_80053CC0 /* 80053CB0 0004FAF0 80 0D 83 A4 */ lwz r0, ResettingChan@sda21(r13) /* 80053CB4 0004FAF4 2C 00 00 20 */ cmpwi r0, 0x20 /* 80053CB8 0004FAF8 40 82 00 08 */ bne lbl_80053CC0 /* 80053CBC 0004FAFC 38 60 00 01 */ li r3, 0x1 .global lbl_80053CC0 lbl_80053CC0: /* 80053CC0 0004FB00 2C 03 00 00 */ cmpwi r3, 0x0 /* 80053CC4 0004FB04 41 82 00 14 */ beq lbl_80053CD8 /* 80053CC8 0004FB08 4B FD 66 F9 */ bl SIBusy /* 80053CCC 0004FB0C 2C 03 00 00 */ cmpwi r3, 0x0 /* 80053CD0 0004FB10 40 82 00 08 */ bne lbl_80053CD8 /* 80053CD4 0004FB14 3B E0 00 01 */ li r31, 0x1 .global lbl_80053CD8 lbl_80053CD8: /* 80053CD8 0004FB18 80 0D E9 40 */ lwz r0, "@LOCAL@OnShutdown__FiUl@recalibrated"@sda21(r13) /* 80053CDC 0004FB1C 2C 00 00 00 */ cmpwi r0, 0x0 /* 80053CE0 0004FB20 40 82 00 20 */ bne lbl_80053D00 /* 80053CE4 0004FB24 2C 1F 00 00 */ cmpwi r31, 0x0 /* 80053CE8 0004FB28 41 82 00 18 */ beq lbl_80053D00 /* 80053CEC 0004FB2C 3C 60 F0 00 */ lis r3, 0xf000 /* 80053CF0 0004FB30 4B FF F1 31 */ bl PADRecalibrate /* 80053CF4 0004FB34 90 6D E9 40 */ stw r3, "@LOCAL@OnShutdown__FiUl@recalibrated"@sda21(r13) /* 80053CF8 0004FB38 38 60 00 00 */ li r3, 0x0 /* 80053CFC 0004FB3C 48 00 00 18 */ b lbl_80053D14 .global lbl_80053D00 lbl_80053D00: /* 80053D00 0004FB40 7F E3 FB 78 */ mr r3, r31 /* 80053D04 0004FB44 48 00 00 10 */ b lbl_80053D14 .global lbl_80053D08 lbl_80053D08: /* 80053D08 0004FB48 38 00 00 00 */ li r0, 0x0 /* 80053D0C 0004FB4C 90 0D E9 40 */ stw r0, "@LOCAL@OnShutdown__FiUl@recalibrated"@sda21(r13) /* 80053D10 0004FB50 38 60 00 01 */ li r3, 0x1 .global lbl_80053D14 lbl_80053D14: /* 80053D14 0004FB54 80 01 00 14 */ lwz r0, 0x14(r1) /* 80053D18 0004FB58 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80053D1C 0004FB5C 7C 08 03 A6 */ mtlr r0 /* 80053D20 0004FB60 38 21 00 10 */ addi r1, r1, 0x10 /* 80053D24 0004FB64 4E 80 00 20 */ blr /* 80053D28 0004FB68 00 00 00 00 */ .4byte 0x00000000 /* 80053D2C 0004FB6C 00 00 00 00 */ .4byte 0x00000000 .global SamplingHandler SamplingHandler: /* 80053D30 0004FB70 94 21 FD 20 */ stwu r1, -0x2e0(r1) /* 80053D34 0004FB74 7C 08 02 A6 */ mflr r0 /* 80053D38 0004FB78 90 01 02 E4 */ stw r0, 0x2e4(r1) /* 80053D3C 0004FB7C 93 E1 02 DC */ stw r31, 0x2dc(r1) /* 80053D40 0004FB80 7C 9F 23 78 */ mr r31, r4 /* 80053D44 0004FB84 80 0D E9 44 */ lwz r0, SamplingCallback@sda21(r13) /* 80053D48 0004FB88 2C 00 00 00 */ cmpwi r0, 0x0 /* 80053D4C 0004FB8C 41 82 00 30 */ beq lbl_80053D7C /* 80053D50 0004FB90 38 61 00 08 */ addi r3, r1, 0x8 /* 80053D54 0004FB94 4B FC 96 ED */ bl OSClearContext /* 80053D58 0004FB98 38 61 00 08 */ addi r3, r1, 0x8 /* 80053D5C 0004FB9C 4B FC 94 A5 */ bl OSSetCurrentContext /* 80053D60 0004FBA0 81 8D E9 44 */ lwz r12, SamplingCallback@sda21(r13) /* 80053D64 0004FBA4 7D 89 03 A6 */ mtctr r12 /* 80053D68 0004FBA8 4E 80 04 21 */ bctrl /* 80053D6C 0004FBAC 38 61 00 08 */ addi r3, r1, 0x8 /* 80053D70 0004FBB0 4B FC 96 D1 */ bl OSClearContext /* 80053D74 0004FBB4 7F E3 FB 78 */ mr r3, r31 /* 80053D78 0004FBB8 4B FC 94 89 */ bl OSSetCurrentContext .global lbl_80053D7C lbl_80053D7C: /* 80053D7C 0004FBBC 80 01 02 E4 */ lwz r0, 0x2e4(r1) /* 80053D80 0004FBC0 83 E1 02 DC */ lwz r31, 0x2dc(r1) /* 80053D84 0004FBC4 7C 08 03 A6 */ mtlr r0 /* 80053D88 0004FBC8 38 21 02 E0 */ addi r1, r1, 0x2e0 /* 80053D8C 0004FBCC 4E 80 00 20 */ blr .global __PADDisableRecalibration __PADDisableRecalibration: /* 80053D90 0004FBD0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80053D94 0004FBD4 7C 08 02 A6 */ mflr r0 /* 80053D98 0004FBD8 90 01 00 14 */ stw r0, 0x14(r1) /* 80053D9C 0004FBDC 93 E1 00 0C */ stw r31, 0xc(r1) /* 80053DA0 0004FBE0 7C 7F 1B 78 */ mr r31, r3 /* 80053DA4 0004FBE4 4B FC DA 7D */ bl OSDisableInterrupts /* 80053DA8 0004FBE8 3C A0 80 00 */ lis r5, 0x800030E3@ha /* 80053DAC 0004FBEC 2C 1F 00 00 */ cmpwi r31, 0x0 /* 80053DB0 0004FBF0 88 85 30 E3 */ lbz r4, 0x800030E3@l(r5) /* 80053DB4 0004FBF4 54 80 06 B0 */ rlwinm r0, r4, 0, 26, 24 /* 80053DB8 0004FBF8 98 05 30 E3 */ stb r0, 0x30e3(r5) /* 80053DBC 0004FBFC 54 9F D7 FE */ extrwi r31, r4, 1, 25 /* 80053DC0 0004FC00 41 82 00 10 */ beq lbl_80053DD0 /* 80053DC4 0004FC04 88 05 30 E3 */ lbz r0, 0x30e3(r5) /* 80053DC8 0004FC08 60 00 00 40 */ ori r0, r0, 0x40 /* 80053DCC 0004FC0C 98 05 30 E3 */ stb r0, 0x30e3(r5) .global lbl_80053DD0 lbl_80053DD0: /* 80053DD0 0004FC10 4B FC DA 91 */ bl OSRestoreInterrupts /* 80053DD4 0004FC14 7F E3 FB 78 */ mr r3, r31 /* 80053DD8 0004FC18 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80053DDC 0004FC1C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80053DE0 0004FC20 7C 08 03 A6 */ mtlr r0 /* 80053DE4 0004FC24 38 21 00 10 */ addi r1, r1, 0x10 /* 80053DE8 0004FC28 4E 80 00 20 */ blr /* 80053DEC 0004FC2C 00 00 00 00 */ .4byte 0x00000000 .include "macros.inc" .section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0 .global "@1_80438530" "@1_80438530": .4byte 0x3C3C2052 .4byte 0x564C5F53 .4byte 0x444B202D .4byte 0x20504144 .4byte 0x20097265 .4byte 0x6C656173 .4byte 0x65206275 .4byte 0x696C643A .4byte 0x20417567 .4byte 0x20323320 .4byte 0x32303130 .4byte 0x2031373A .4byte 0x33333A31 .4byte 0x37202830 .4byte 0x78343330 .4byte 0x325F3134 .4byte 0x3529203E .4byte 0x3E000000 .global ShutdownFunctionInfo_80438578 ShutdownFunctionInfo_80438578: .4byte OnShutdown_80053C60 .4byte 0x0000007F .4byte 0 .4byte 0 .include "macros.inc" .section .bss, "", @nobits # 0x80496700 - 0x80556420 ; 0x000BFD20 .global Origin Origin: .skip 0x30 .global Type_804C1990 Type_804C1990: .skip 0x10 .global CmdProbeDevice CmdProbeDevice: .skip 0x40 .global "@LOCAL@PADRead__FP9PADStatus@pre_status@1" "@LOCAL@PADRead__FP9PADStatus@pre_status@1": .skip 0x40 .include "macros.inc" .section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0 .global __PADVersion __PADVersion: .4byte "@1_80438530" .global ResettingChan ResettingChan: .4byte 0x00000020 .global XPatchBits XPatchBits: .4byte 0xF0000000 .global AnalogMode AnalogMode: .4byte 0x00000300 .global Spec Spec: .4byte 0x00000005 .global MakeStatus MakeStatus: .4byte SPEC2_MakeStatus .global CmdReadOrigin CmdReadOrigin: .4byte 0x41000000 .global CmdCalibrate CmdCalibrate: .4byte 0x42000000 .include "macros.inc" .section .sbss, "", @nobits # 0x8055C6E0 - 0x8055DF80 ; 0x000018A0 .global "@LOCAL@OnShutdown__FiUl@recalibrated" "@LOCAL@OnShutdown__FiUl@recalibrated": .skip 0x4 .global SamplingCallback SamplingCallback: .skip 0x4 .global __PADSpec __PADSpec: .skip 0x4 .global BarrelBits BarrelBits: .skip 0x4 .global PendingBits PendingBits: .skip 0x4 .global CheckingBits CheckingBits: .skip 0x4 .global WaitingBits WaitingBits: .skip 0x4 .global RecalibrateBits RecalibrateBits: .skip 0x4 .global ResettingBits ResettingBits: .skip 0x4 .global EnabledBits EnabledBits: .skip 0x4 .global Initialized_8055CD88 Initialized_8055CD88: .skip 0x8