From c2ad63b3aa8b9fb5e6d48c8cdb3f4925409441d0 Mon Sep 17 00:00:00 2001 From: Phillip Stephens Date: Sat, 15 Oct 2022 14:46:18 -0700 Subject: [PATCH] Properly split GBA Former-commit-id: 3434469fc66533ce2ac7248ae80a5a9d6f7695c3 --- asm/Dolphin/GBA/GBA.s | 1174 ------------------------- asm/Dolphin/GBA/GBAGetProcessStatus.s | 104 +++ asm/Dolphin/GBA/GBAJoyBoot.s | 1078 +++++++++++++++++++++++ asm/Dolphin/GBA/GBAKey.s | 28 +- asm/Dolphin/GBA/GBAXfer.s | 12 + 5 files changed, 1202 insertions(+), 1194 deletions(-) create mode 100644 asm/Dolphin/GBA/GBAGetProcessStatus.s create mode 100644 asm/Dolphin/GBA/GBAJoyBoot.s diff --git a/asm/Dolphin/GBA/GBA.s b/asm/Dolphin/GBA/GBA.s index 4064d687..ed90915f 100644 --- a/asm/Dolphin/GBA/GBA.s +++ b/asm/Dolphin/GBA/GBA.s @@ -25,37 +25,6 @@ lbl_803F7160: .4byte 0 .4byte 0 -lbl_803F7170: - .byte 0x18 - .byte 0xFC - .byte 0xC0 - .byte 0x80 - .byte 0x7f - .byte 0x40 - .byte 0x3f - .byte 0x01 - .byte 0x00 - .asciz "// Coded by Kawasedo" - .byte 0x00 - .byte 0x02 - .byte 0x03 - .byte 0x04 - .byte 0x05 - .byte 0x06 - .byte 0x07 - .byte 0x08 - .byte 0xac - .byte 0xc4 - .byte 0xf8 - .byte 0x08 - .byte 0x10 - .byte 0xbf - .byte 0x18 - .byte 0x00 - .byte 0x00 - .byte 0x00 - - .section .text, "ax" .global ShortCommandProc @@ -280,1146 +249,3 @@ OnReset: /* 803C98DC 003C683C 90 0D B1 58 */ stw r0, __GBAReset@sda21(r13) /* 803C98E0 003C6840 38 60 00 01 */ li r3, 1 /* 803C98E4 003C6844 4E 80 00 20 */ blr - -.global GBAGetProcessStatus -GBAGetProcessStatus: -/* 803C98E8 003C6848 7C 08 02 A6 */ mflr r0 -/* 803C98EC 003C684C 3C A0 80 57 */ lis r5, __GBA@ha -/* 803C98F0 003C6850 90 01 00 04 */ stw r0, 4(r1) -/* 803C98F4 003C6854 54 63 40 2E */ slwi r3, r3, 8 -/* 803C98F8 003C6858 38 05 A1 A0 */ addi r0, r5, __GBA@l -/* 803C98FC 003C685C 94 21 FF C8 */ stwu r1, -0x38(r1) -/* 803C9900 003C6860 BE E1 00 14 */ stmw r23, 0x14(r1) -/* 803C9904 003C6864 7E E0 1A 14 */ add r23, r0, r3 -/* 803C9908 003C6868 3B 04 00 00 */ addi r24, r4, 0 -/* 803C990C 003C686C 3B F7 00 40 */ addi r31, r23, 0x40 -/* 803C9910 003C6870 4B FB 7D 51 */ bl OSDisableInterrupts -/* 803C9914 003C6874 80 1F 00 14 */ lwz r0, 0x14(r31) -/* 803C9918 003C6878 3B A3 00 00 */ addi r29, r3, 0 -/* 803C991C 003C687C 28 00 00 00 */ cmplwi r0, 0 -/* 803C9920 003C6880 41 82 01 04 */ beq lbl_803C9A24 -/* 803C9924 003C6884 80 7F 00 34 */ lwz r3, 0x34(r31) -/* 803C9928 003C6888 3B C0 00 00 */ li r30, 0 -/* 803C992C 003C688C 80 1F 00 28 */ lwz r0, 0x28(r31) -/* 803C9930 003C6890 3B 80 00 02 */ li r28, 2 -/* 803C9934 003C6894 1C A3 00 64 */ mulli r5, r3, 0x64 -/* 803C9938 003C6898 80 9F 00 64 */ lwz r4, 0x64(r31) -/* 803C993C 003C689C 80 7F 00 2C */ lwz r3, 0x2c(r31) -/* 803C9940 003C68A0 7C 85 23 D6 */ divw r4, r5, r4 -/* 803C9944 003C68A4 7C 63 F2 78 */ xor r3, r3, r30 -/* 803C9948 003C68A8 7C 00 F2 78 */ xor r0, r0, r30 -/* 803C994C 003C68AC 7C 60 03 79 */ or. r0, r3, r0 -/* 803C9950 003C68B0 54 9B 06 3E */ clrlwi r27, r4, 0x18 -/* 803C9954 003C68B4 41 82 00 C0 */ beq lbl_803C9A14 -/* 803C9958 003C68B8 4B FB BA 51 */ bl OSGetTime -/* 803C995C 003C68BC 3E E0 80 00 */ lis r23, 0x800000F8@ha -/* 803C9960 003C68C0 80 DF 00 2C */ lwz r6, 0x2c(r31) -/* 803C9964 003C68C4 80 17 00 F8 */ lwz r0, 0x800000F8@l(r23) -/* 803C9968 003C68C8 3C A0 10 62 */ lis r5, 0x10624DD3@ha -/* 803C996C 003C68CC 7F 26 20 10 */ subfc r25, r6, r4 -/* 803C9970 003C68D0 80 9F 00 28 */ lwz r4, 0x28(r31) -/* 803C9974 003C68D4 3B E5 4D D3 */ addi r31, r5, 0x10624DD3@l -/* 803C9978 003C68D8 54 00 F0 BE */ srwi r0, r0, 2 -/* 803C997C 003C68DC 7C 1F 00 16 */ mulhwu r0, r31, r0 -/* 803C9980 003C68E0 7F 44 19 10 */ subfe r26, r4, r3 -/* 803C9984 003C68E4 54 06 D1 BE */ srwi r6, r0, 6 -/* 803C9988 003C68E8 38 7A 00 00 */ addi r3, r26, 0 -/* 803C998C 003C68EC 38 99 00 00 */ addi r4, r25, 0 -/* 803C9990 003C68F0 38 A0 00 00 */ li r5, 0 -/* 803C9994 003C68F4 4B FC 02 39 */ bl __div2i -/* 803C9998 003C68F8 38 E0 15 7C */ li r7, 0x157c -/* 803C999C 003C68FC 6C 65 80 00 */ xoris r5, r3, 0x8000 -/* 803C99A0 003C6900 6F C3 80 00 */ xoris r3, r30, 0x8000 -/* 803C99A4 003C6904 7C 07 20 10 */ subfc r0, r7, r4 -/* 803C99A8 003C6908 7C 63 29 10 */ subfe r3, r3, r5 -/* 803C99AC 003C690C 7C 65 29 10 */ subfe r3, r5, r5 -/* 803C99B0 003C6910 7C 63 00 D1 */ neg. r3, r3 -/* 803C99B4 003C6914 41 82 00 50 */ beq lbl_803C9A04 -/* 803C99B8 003C6918 80 77 00 F8 */ lwz r3, 0xf8(r23) -/* 803C99BC 003C691C 7C BE 39 D6 */ mullw r5, r30, r7 -/* 803C99C0 003C6920 54 63 F0 BE */ srwi r3, r3, 2 -/* 803C99C4 003C6924 7C 7F 18 16 */ mulhwu r3, r31, r3 -/* 803C99C8 003C6928 54 66 D1 BE */ srwi r6, r3, 6 -/* 803C99CC 003C692C 7C 66 38 16 */ mulhwu r3, r6, r7 -/* 803C99D0 003C6930 7C A5 1A 14 */ add r5, r5, r3 -/* 803C99D4 003C6934 7C 66 F1 D6 */ mullw r3, r6, r30 -/* 803C99D8 003C6938 7F 60 FE 70 */ srawi r0, r27, 0x1f -/* 803C99DC 003C693C 7C A5 1A 14 */ add r5, r5, r3 -/* 803C99E0 003C6940 7C 60 C9 D6 */ mullw r3, r0, r25 -/* 803C99E4 003C6944 7C 1B C8 16 */ mulhwu r0, r27, r25 -/* 803C99E8 003C6948 7C 63 02 14 */ add r3, r3, r0 -/* 803C99EC 003C694C 7C 1B D1 D6 */ mullw r0, r27, r26 -/* 803C99F0 003C6950 7C 9B C9 D6 */ mullw r4, r27, r25 -/* 803C99F4 003C6954 7C C6 39 D6 */ mullw r6, r6, r7 -/* 803C99F8 003C6958 7C 63 02 14 */ add r3, r3, r0 -/* 803C99FC 003C695C 4B FC 01 D1 */ bl __div2i -/* 803C9A00 003C6960 7C 9B 23 78 */ mr r27, r4 -lbl_803C9A04: -/* 803C9A04 003C6964 57 60 06 3E */ clrlwi r0, r27, 0x18 -/* 803C9A08 003C6968 28 00 00 64 */ cmplwi r0, 0x64 -/* 803C9A0C 003C696C 41 80 00 08 */ blt lbl_803C9A14 -/* 803C9A10 003C6970 3B 60 00 64 */ li r27, 0x64 -lbl_803C9A14: -/* 803C9A14 003C6974 28 18 00 00 */ cmplwi r24, 0 -/* 803C9A18 003C6978 41 82 00 24 */ beq lbl_803C9A3C -/* 803C9A1C 003C697C 9B 78 00 00 */ stb r27, 0(r24) -/* 803C9A20 003C6980 48 00 00 1C */ b lbl_803C9A3C -lbl_803C9A24: -/* 803C9A24 003C6984 80 17 00 1C */ lwz r0, 0x1c(r23) -/* 803C9A28 003C6988 28 00 00 00 */ cmplwi r0, 0 -/* 803C9A2C 003C698C 41 82 00 0C */ beq lbl_803C9A38 -/* 803C9A30 003C6990 3B 80 00 02 */ li r28, 2 -/* 803C9A34 003C6994 48 00 00 08 */ b lbl_803C9A3C -lbl_803C9A38: -/* 803C9A38 003C6998 3B 80 00 00 */ li r28, 0 -lbl_803C9A3C: -/* 803C9A3C 003C699C 7F A3 EB 78 */ mr r3, r29 -/* 803C9A40 003C69A0 4B FB 7C 49 */ bl OSRestoreInterrupts -/* 803C9A44 003C69A4 7F 83 E3 78 */ mr r3, r28 -/* 803C9A48 003C69A8 BA E1 00 14 */ lmw r23, 0x14(r1) -/* 803C9A4C 003C69AC 80 01 00 3C */ lwz r0, 0x3c(r1) -/* 803C9A50 003C69B0 38 21 00 38 */ addi r1, r1, 0x38 -/* 803C9A54 003C69B4 7C 08 03 A6 */ mtlr r0 -/* 803C9A58 003C69B8 4E 80 00 20 */ blr - -.global GBAJoyBootAsync -GBAJoyBootAsync: -/* 803C9A5C 003C69BC 7C 08 02 A6 */ mflr r0 -/* 803C9A60 003C69C0 90 01 00 04 */ stw r0, 4(r1) -/* 803C9A64 003C69C4 54 60 00 3B */ rlwinm. r0, r3, 0, 0, 0x1d -/* 803C9A68 003C69C8 94 21 FF B8 */ stwu r1, -0x48(r1) -/* 803C9A6C 003C69CC BF 01 00 28 */ stmw r24, 0x28(r1) -/* 803C9A70 003C69D0 3B 03 00 00 */ addi r24, r3, 0 -/* 803C9A74 003C69D4 3C 60 80 57 */ lis r3, __GBA@ha -/* 803C9A78 003C69D8 57 0A 40 2E */ slwi r10, r24, 8 -/* 803C9A7C 003C69DC 38 03 A1 A0 */ addi r0, r3, __GBA@l -/* 803C9A80 003C69E0 7C 60 52 14 */ add r3, r0, r10 -/* 803C9A84 003C69E4 3B 24 00 00 */ addi r25, r4, 0 -/* 803C9A88 003C69E8 3B 45 00 00 */ addi r26, r5, 0 -/* 803C9A8C 003C69EC 3B 66 00 00 */ addi r27, r6, 0 -/* 803C9A90 003C69F0 3B 87 00 00 */ addi r28, r7, 0 -/* 803C9A94 003C69F4 3B A8 00 00 */ addi r29, r8, 0 -/* 803C9A98 003C69F8 3B C9 00 00 */ addi r30, r9, 0 -/* 803C9A9C 003C69FC 3B E3 00 40 */ addi r31, r3, 0x40 -/* 803C9AA0 003C6A00 41 82 00 0C */ beq lbl_803C9AAC -/* 803C9AA4 003C6A04 38 60 00 04 */ li r3, 4 -/* 803C9AA8 003C6A08 48 00 00 DC */ b lbl_803C9B84 -lbl_803C9AAC: -/* 803C9AAC 003C6A0C 2C 1C 00 00 */ cmpwi r28, 0 -/* 803C9AB0 003C6A10 41 82 00 10 */ beq lbl_803C9AC0 -/* 803C9AB4 003C6A14 3C 00 00 04 */ lis r0, 4 -/* 803C9AB8 003C6A18 7C 00 E0 00 */ cmpw r0, r28 -/* 803C9ABC 003C6A1C 40 80 00 0C */ bge lbl_803C9AC8 -lbl_803C9AC0: -/* 803C9AC0 003C6A20 38 60 00 04 */ li r3, 4 -/* 803C9AC4 003C6A24 48 00 00 C0 */ b lbl_803C9B84 -lbl_803C9AC8: -/* 803C9AC8 003C6A28 2C 1A FF FC */ cmpwi r26, -4 -/* 803C9ACC 003C6A2C 41 80 00 0C */ blt lbl_803C9AD8 -/* 803C9AD0 003C6A30 2C 1A 00 04 */ cmpwi r26, 4 -/* 803C9AD4 003C6A34 40 81 00 0C */ ble lbl_803C9AE0 -lbl_803C9AD8: -/* 803C9AD8 003C6A38 38 60 00 04 */ li r3, 4 -/* 803C9ADC 003C6A3C 48 00 00 A8 */ b lbl_803C9B84 -lbl_803C9AE0: -/* 803C9AE0 003C6A40 2C 19 00 00 */ cmpwi r25, 0 -/* 803C9AE4 003C6A44 41 80 00 0C */ blt lbl_803C9AF0 -/* 803C9AE8 003C6A48 2C 19 00 06 */ cmpwi r25, 6 -/* 803C9AEC 003C6A4C 40 81 00 0C */ ble lbl_803C9AF8 -lbl_803C9AF0: -/* 803C9AF0 003C6A50 38 60 00 04 */ li r3, 4 -/* 803C9AF4 003C6A54 48 00 00 90 */ b lbl_803C9B84 -lbl_803C9AF8: -/* 803C9AF8 003C6A58 88 7B 00 AC */ lbz r3, 0xac(r27) -/* 803C9AFC 003C6A5C 88 1B 00 AD */ lbz r0, 0xad(r27) -/* 803C9B00 003C6A60 88 9B 00 AE */ lbz r4, 0xae(r27) -/* 803C9B04 003C6A64 7C 03 01 D6 */ mullw r0, r3, r0 -/* 803C9B08 003C6A68 88 7B 00 AF */ lbz r3, 0xaf(r27) -/* 803C9B0C 003C6A6C 7C 04 01 D6 */ mullw r0, r4, r0 -/* 803C9B10 003C6A70 7C 03 01 D7 */ mullw. r0, r3, r0 -/* 803C9B14 003C6A74 40 82 00 0C */ bne lbl_803C9B20 -/* 803C9B18 003C6A78 38 60 00 04 */ li r3, 4 -/* 803C9B1C 003C6A7C 48 00 00 68 */ b lbl_803C9B84 -lbl_803C9B20: -/* 803C9B20 003C6A80 38 78 00 00 */ addi r3, r24, 0 -/* 803C9B24 003C6A84 38 81 00 24 */ addi r4, r1, 0x24 -/* 803C9B28 003C6A88 4B FF FD C1 */ bl GBAGetProcessStatus -/* 803C9B2C 003C6A8C 2C 03 00 00 */ cmpwi r3, 0 -/* 803C9B30 003C6A90 41 82 00 08 */ beq lbl_803C9B38 -/* 803C9B34 003C6A94 48 00 00 50 */ b lbl_803C9B84 -lbl_803C9B38: -/* 803C9B38 003C6A98 93 3F 00 00 */ stw r25, 0(r31) -/* 803C9B3C 003C6A9C 3C 80 80 3F */ lis r4, lbl_803F7170@ha -/* 803C9B40 003C6AA0 3C 60 80 3D */ lis r3, _F23@ha -/* 803C9B44 003C6AA4 93 5F 00 04 */ stw r26, 4(r31) -/* 803C9B48 003C6AA8 38 A3 9B 98 */ addi r5, r3, _F23@l -/* 803C9B4C 003C6AAC 38 84 71 70 */ addi r4, r4, lbl_803F7170@l -/* 803C9B50 003C6AB0 93 7F 00 08 */ stw r27, 8(r31) -/* 803C9B54 003C6AB4 7F 03 C3 78 */ mr r3, r24 -/* 803C9B58 003C6AB8 93 9F 00 0C */ stw r28, 0xc(r31) -/* 803C9B5C 003C6ABC 93 BF 00 10 */ stw r29, 0x10(r31) -/* 803C9B60 003C6AC0 93 DF 00 14 */ stw r30, 0x14(r31) -/* 803C9B64 003C6AC4 88 04 00 08 */ lbz r0, 8(r4) -/* 803C9B68 003C6AC8 90 1F 00 34 */ stw r0, 0x34(r31) -/* 803C9B6C 003C6ACC 80 9F 00 10 */ lwz r4, 0x10(r31) -/* 803C9B70 003C6AD0 4B FF FB 81 */ bl GBAGetStatusAsync -/* 803C9B74 003C6AD4 2C 03 00 00 */ cmpwi r3, 0 -/* 803C9B78 003C6AD8 41 82 00 0C */ beq lbl_803C9B84 -/* 803C9B7C 003C6ADC 38 00 00 00 */ li r0, 0 -/* 803C9B80 003C6AE0 90 1F 00 14 */ stw r0, 0x14(r31) -lbl_803C9B84: -/* 803C9B84 003C6AE4 BB 01 00 28 */ lmw r24, 0x28(r1) -/* 803C9B88 003C6AE8 80 01 00 4C */ lwz r0, 0x4c(r1) -/* 803C9B8C 003C6AEC 38 21 00 48 */ addi r1, r1, 0x48 -/* 803C9B90 003C6AF0 7C 08 03 A6 */ mtlr r0 -/* 803C9B94 003C6AF4 4E 80 00 20 */ blr - -.global _F23 -_F23: -/* 803C9B98 003C6AF8 7C 08 02 A6 */ mflr r0 -/* 803C9B9C 003C6AFC 90 01 00 04 */ stw r0, 4(r1) -/* 803C9BA0 003C6B00 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803C9BA4 003C6B04 93 E1 00 24 */ stw r31, 0x24(r1) -/* 803C9BA8 003C6B08 93 C1 00 20 */ stw r30, 0x20(r1) -/* 803C9BAC 003C6B0C 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 803C9BB0 003C6B10 7C 9D 23 79 */ or. r29, r4, r4 -/* 803C9BB4 003C6B14 93 81 00 18 */ stw r28, 0x18(r1) -/* 803C9BB8 003C6B18 3B 83 00 00 */ addi r28, r3, 0 -/* 803C9BBC 003C6B1C 3C 60 80 57 */ lis r3, __GBA@ha -/* 803C9BC0 003C6B20 57 84 40 2E */ slwi r4, r28, 8 -/* 803C9BC4 003C6B24 38 03 A1 A0 */ addi r0, r3, __GBA@l -/* 803C9BC8 003C6B28 7F E0 22 14 */ add r31, r0, r4 -/* 803C9BCC 003C6B2C 3B DF 00 40 */ addi r30, r31, 0x40 -/* 803C9BD0 003C6B30 40 82 00 20 */ bne lbl_803C9BF0 -/* 803C9BD4 003C6B34 3C 60 80 3D */ lis r3, _F25@ha -/* 803C9BD8 003C6B38 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 803C9BDC 003C6B3C 38 A3 9C 40 */ addi r5, r3, _F25@l -/* 803C9BE0 003C6B40 38 7C 00 00 */ addi r3, r28, 0 -/* 803C9BE4 003C6B44 4B FF FC 01 */ bl GBAResetAsync -/* 803C9BE8 003C6B48 7C 7D 1B 79 */ or. r29, r3, r3 -/* 803C9BEC 003C6B4C 41 82 00 30 */ beq lbl_803C9C1C -lbl_803C9BF0: -/* 803C9BF0 003C6B50 38 00 00 00 */ li r0, 0 -/* 803C9BF4 003C6B54 90 1E 00 2C */ stw r0, 0x2c(r30) -/* 803C9BF8 003C6B58 90 1E 00 28 */ stw r0, 0x28(r30) -/* 803C9BFC 003C6B5C 81 9E 00 14 */ lwz r12, 0x14(r30) -/* 803C9C00 003C6B60 28 0C 00 00 */ cmplwi r12, 0 -/* 803C9C04 003C6B64 41 82 00 18 */ beq lbl_803C9C1C -/* 803C9C08 003C6B68 90 1E 00 14 */ stw r0, 0x14(r30) -/* 803C9C0C 003C6B6C 7D 88 03 A6 */ mtlr r12 -/* 803C9C10 003C6B70 38 7C 00 00 */ addi r3, r28, 0 -/* 803C9C14 003C6B74 38 9D 00 00 */ addi r4, r29, 0 -/* 803C9C18 003C6B78 4E 80 00 21 */ blrl -lbl_803C9C1C: -/* 803C9C1C 003C6B7C 93 BF 00 20 */ stw r29, 0x20(r31) -/* 803C9C20 003C6B80 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803C9C24 003C6B84 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 803C9C28 003C6B88 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 803C9C2C 003C6B8C 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 803C9C30 003C6B90 83 81 00 18 */ lwz r28, 0x18(r1) -/* 803C9C34 003C6B94 38 21 00 28 */ addi r1, r1, 0x28 -/* 803C9C38 003C6B98 7C 08 03 A6 */ mtlr r0 -/* 803C9C3C 003C6B9C 4E 80 00 20 */ blr - -.global _F25 -_F25: -/* 803C9C40 003C6BA0 7C 08 02 A6 */ mflr r0 -/* 803C9C44 003C6BA4 90 01 00 04 */ stw r0, 4(r1) -/* 803C9C48 003C6BA8 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803C9C4C 003C6BAC 93 E1 00 24 */ stw r31, 0x24(r1) -/* 803C9C50 003C6BB0 93 C1 00 20 */ stw r30, 0x20(r1) -/* 803C9C54 003C6BB4 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 803C9C58 003C6BB8 7C 9D 23 79 */ or. r29, r4, r4 -/* 803C9C5C 003C6BBC 93 81 00 18 */ stw r28, 0x18(r1) -/* 803C9C60 003C6BC0 3B 83 00 00 */ addi r28, r3, 0 -/* 803C9C64 003C6BC4 3C 60 80 57 */ lis r3, __GBA@ha -/* 803C9C68 003C6BC8 57 84 40 2E */ slwi r4, r28, 8 -/* 803C9C6C 003C6BCC 38 03 A1 A0 */ addi r0, r3, __GBA@l -/* 803C9C70 003C6BD0 7F E0 22 14 */ add r31, r0, r4 -/* 803C9C74 003C6BD4 3B DF 00 40 */ addi r30, r31, 0x40 -/* 803C9C78 003C6BD8 40 82 00 24 */ bne lbl_803C9C9C -/* 803C9C7C 003C6BDC 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 803C9C80 003C6BE0 3C 60 80 3F */ lis r3, lbl_803F7170@ha -/* 803C9C84 003C6BE4 38 63 71 70 */ addi r3, r3, lbl_803F7170@l -/* 803C9C88 003C6BE8 88 84 00 00 */ lbz r4, 0(r4) -/* 803C9C8C 003C6BEC 88 03 00 25 */ lbz r0, 0x25(r3) -/* 803C9C90 003C6BF0 7C 04 00 40 */ cmplw r4, r0 -/* 803C9C94 003C6BF4 41 82 00 08 */ beq lbl_803C9C9C -/* 803C9C98 003C6BF8 3B A0 00 03 */ li r29, 3 -lbl_803C9C9C: -/* 803C9C9C 003C6BFC 2C 1D 00 00 */ cmpwi r29, 0 -/* 803C9CA0 003C6C00 40 82 00 20 */ bne lbl_803C9CC0 -/* 803C9CA4 003C6C04 3C 60 80 3D */ lis r3, _F27@ha -/* 803C9CA8 003C6C08 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 803C9CAC 003C6C0C 38 A3 9D 10 */ addi r5, r3, _F27@l -/* 803C9CB0 003C6C10 38 7C 00 00 */ addi r3, r28, 0 -/* 803C9CB4 003C6C14 4B FF FA 3D */ bl GBAGetStatusAsync -/* 803C9CB8 003C6C18 7C 7D 1B 79 */ or. r29, r3, r3 -/* 803C9CBC 003C6C1C 41 82 00 30 */ beq lbl_803C9CEC -lbl_803C9CC0: -/* 803C9CC0 003C6C20 38 00 00 00 */ li r0, 0 -/* 803C9CC4 003C6C24 90 1E 00 2C */ stw r0, 0x2c(r30) -/* 803C9CC8 003C6C28 90 1E 00 28 */ stw r0, 0x28(r30) -/* 803C9CCC 003C6C2C 81 9E 00 14 */ lwz r12, 0x14(r30) -/* 803C9CD0 003C6C30 28 0C 00 00 */ cmplwi r12, 0 -/* 803C9CD4 003C6C34 41 82 00 18 */ beq lbl_803C9CEC -/* 803C9CD8 003C6C38 90 1E 00 14 */ stw r0, 0x14(r30) -/* 803C9CDC 003C6C3C 7D 88 03 A6 */ mtlr r12 -/* 803C9CE0 003C6C40 38 7C 00 00 */ addi r3, r28, 0 -/* 803C9CE4 003C6C44 38 9D 00 00 */ addi r4, r29, 0 -/* 803C9CE8 003C6C48 4E 80 00 21 */ blrl -lbl_803C9CEC: -/* 803C9CEC 003C6C4C 93 BF 00 20 */ stw r29, 0x20(r31) -/* 803C9CF0 003C6C50 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803C9CF4 003C6C54 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 803C9CF8 003C6C58 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 803C9CFC 003C6C5C 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 803C9D00 003C6C60 83 81 00 18 */ lwz r28, 0x18(r1) -/* 803C9D04 003C6C64 38 21 00 28 */ addi r1, r1, 0x28 -/* 803C9D08 003C6C68 7C 08 03 A6 */ mtlr r0 -/* 803C9D0C 003C6C6C 4E 80 00 20 */ blr - -.global _F27 -_F27: -/* 803C9D10 003C6C70 7C 08 02 A6 */ mflr r0 -/* 803C9D14 003C6C74 90 01 00 04 */ stw r0, 4(r1) -/* 803C9D18 003C6C78 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803C9D1C 003C6C7C 93 E1 00 24 */ stw r31, 0x24(r1) -/* 803C9D20 003C6C80 93 C1 00 20 */ stw r30, 0x20(r1) -/* 803C9D24 003C6C84 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 803C9D28 003C6C88 7C 9D 23 79 */ or. r29, r4, r4 -/* 803C9D2C 003C6C8C 93 81 00 18 */ stw r28, 0x18(r1) -/* 803C9D30 003C6C90 3B 83 00 00 */ addi r28, r3, 0 -/* 803C9D34 003C6C94 3C 60 80 57 */ lis r3, __GBA@ha -/* 803C9D38 003C6C98 57 84 40 2E */ slwi r4, r28, 8 -/* 803C9D3C 003C6C9C 38 03 A1 A0 */ addi r0, r3, __GBA@l -/* 803C9D40 003C6CA0 7F E0 22 14 */ add r31, r0, r4 -/* 803C9D44 003C6CA4 3B DF 00 40 */ addi r30, r31, 0x40 -/* 803C9D48 003C6CA8 40 82 00 20 */ bne lbl_803C9D68 -/* 803C9D4C 003C6CAC 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 803C9D50 003C6CB0 3C 60 80 3F */ lis r3, lbl_803F7170@ha -/* 803C9D54 003C6CB4 88 03 71 70 */ lbz r0, lbl_803F7170@l(r3) -/* 803C9D58 003C6CB8 88 84 00 00 */ lbz r4, 0(r4) -/* 803C9D5C 003C6CBC 7C 04 00 40 */ cmplw r4, r0 -/* 803C9D60 003C6CC0 41 82 00 08 */ beq lbl_803C9D68 -/* 803C9D64 003C6CC4 3B A0 00 03 */ li r29, 3 -lbl_803C9D68: -/* 803C9D68 003C6CC8 2C 1D 00 00 */ cmpwi r29, 0 -/* 803C9D6C 003C6CCC 40 82 00 24 */ bne lbl_803C9D90 -/* 803C9D70 003C6CD0 3C 60 80 3D */ lis r3, _F29@ha -/* 803C9D74 003C6CD4 80 BE 00 10 */ lwz r5, 0x10(r30) -/* 803C9D78 003C6CD8 38 C3 9D E0 */ addi r6, r3, _F29@l -/* 803C9D7C 003C6CDC 38 7C 00 00 */ addi r3, r28, 0 -/* 803C9D80 003C6CE0 38 9E 00 18 */ addi r4, r30, 0x18 -/* 803C9D84 003C6CE4 48 00 0B FD */ bl GBAReadAsync -/* 803C9D88 003C6CE8 7C 7D 1B 79 */ or. r29, r3, r3 -/* 803C9D8C 003C6CEC 41 82 00 30 */ beq lbl_803C9DBC -lbl_803C9D90: -/* 803C9D90 003C6CF0 38 00 00 00 */ li r0, 0 -/* 803C9D94 003C6CF4 90 1E 00 2C */ stw r0, 0x2c(r30) -/* 803C9D98 003C6CF8 90 1E 00 28 */ stw r0, 0x28(r30) -/* 803C9D9C 003C6CFC 81 9E 00 14 */ lwz r12, 0x14(r30) -/* 803C9DA0 003C6D00 28 0C 00 00 */ cmplwi r12, 0 -/* 803C9DA4 003C6D04 41 82 00 18 */ beq lbl_803C9DBC -/* 803C9DA8 003C6D08 90 1E 00 14 */ stw r0, 0x14(r30) -/* 803C9DAC 003C6D0C 7D 88 03 A6 */ mtlr r12 -/* 803C9DB0 003C6D10 38 7C 00 00 */ addi r3, r28, 0 -/* 803C9DB4 003C6D14 38 9D 00 00 */ addi r4, r29, 0 -/* 803C9DB8 003C6D18 4E 80 00 21 */ blrl -lbl_803C9DBC: -/* 803C9DBC 003C6D1C 93 BF 00 20 */ stw r29, 0x20(r31) -/* 803C9DC0 003C6D20 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803C9DC4 003C6D24 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 803C9DC8 003C6D28 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 803C9DCC 003C6D2C 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 803C9DD0 003C6D30 83 81 00 18 */ lwz r28, 0x18(r1) -/* 803C9DD4 003C6D34 38 21 00 28 */ addi r1, r1, 0x28 -/* 803C9DD8 003C6D38 7C 08 03 A6 */ mtlr r0 -/* 803C9DDC 003C6D3C 4E 80 00 20 */ blr - -.global _F29 -_F29: -/* 803C9DE0 003C6D40 7C 08 02 A6 */ mflr r0 -/* 803C9DE4 003C6D44 54 65 40 2E */ slwi r5, r3, 8 -/* 803C9DE8 003C6D48 90 01 00 04 */ stw r0, 4(r1) -/* 803C9DEC 003C6D4C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803C9DF0 003C6D50 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 803C9DF4 003C6D54 93 C1 00 18 */ stw r30, 0x18(r1) -/* 803C9DF8 003C6D58 7C 9E 23 79 */ or. r30, r4, r4 -/* 803C9DFC 003C6D5C 3C 80 80 57 */ lis r4, __GBA@ha -/* 803C9E00 003C6D60 38 04 A1 A0 */ addi r0, r4, __GBA@l -/* 803C9E04 003C6D64 7F E0 2A 14 */ add r31, r0, r5 -/* 803C9E08 003C6D68 38 9F 00 40 */ addi r4, r31, 0x40 -/* 803C9E0C 003C6D6C 40 82 00 10 */ bne lbl_803C9E1C -/* 803C9E10 003C6D70 38 84 00 18 */ addi r4, r4, 0x18 -/* 803C9E14 003C6D74 48 00 12 B1 */ bl __GBAX02 -/* 803C9E18 003C6D78 48 00 00 2C */ b lbl_803C9E44 -lbl_803C9E1C: -/* 803C9E1C 003C6D7C 38 00 00 00 */ li r0, 0 -/* 803C9E20 003C6D80 90 04 00 2C */ stw r0, 0x2c(r4) -/* 803C9E24 003C6D84 90 04 00 28 */ stw r0, 0x28(r4) -/* 803C9E28 003C6D88 81 84 00 14 */ lwz r12, 0x14(r4) -/* 803C9E2C 003C6D8C 28 0C 00 00 */ cmplwi r12, 0 -/* 803C9E30 003C6D90 41 82 00 14 */ beq lbl_803C9E44 -/* 803C9E34 003C6D94 90 04 00 14 */ stw r0, 0x14(r4) -/* 803C9E38 003C6D98 7D 88 03 A6 */ mtlr r12 -/* 803C9E3C 003C6D9C 38 9E 00 00 */ addi r4, r30, 0 -/* 803C9E40 003C6DA0 4E 80 00 21 */ blrl -lbl_803C9E44: -/* 803C9E44 003C6DA4 93 DF 00 20 */ stw r30, 0x20(r31) -/* 803C9E48 003C6DA8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803C9E4C 003C6DAC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 803C9E50 003C6DB0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 803C9E54 003C6DB4 38 21 00 20 */ addi r1, r1, 0x20 -/* 803C9E58 003C6DB8 7C 08 03 A6 */ mtlr r0 -/* 803C9E5C 003C6DBC 4E 80 00 20 */ blr - -.global __GBAX01 -__GBAX01: -/* 803C9E60 003C6DC0 7C 08 02 A6 */ mflr r0 -/* 803C9E64 003C6DC4 3C A0 80 3F */ lis r5, lbl_803F7170@ha -/* 803C9E68 003C6DC8 90 01 00 04 */ stw r0, 4(r1) -/* 803C9E6C 003C6DCC 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803C9E70 003C6DD0 93 E1 00 24 */ stw r31, 0x24(r1) -/* 803C9E74 003C6DD4 93 C1 00 20 */ stw r30, 0x20(r1) -/* 803C9E78 003C6DD8 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 803C9E7C 003C6DDC 3B A3 00 00 */ addi r29, r3, 0 -/* 803C9E80 003C6DE0 3C 60 80 57 */ lis r3, __GBA@ha -/* 803C9E84 003C6DE4 93 81 00 18 */ stw r28, 0x18(r1) -/* 803C9E88 003C6DE8 7C 9C 23 79 */ or. r28, r4, r4 -/* 803C9E8C 003C6DEC 38 03 A1 A0 */ addi r0, r3, __GBA@l -/* 803C9E90 003C6DF0 57 A4 40 2E */ slwi r4, r29, 8 -/* 803C9E94 003C6DF4 7F E0 22 14 */ add r31, r0, r4 -/* 803C9E98 003C6DF8 38 65 71 70 */ addi r3, r5, lbl_803F7170@l -/* 803C9E9C 003C6DFC 3B DF 00 40 */ addi r30, r31, 0x40 -/* 803C9EA0 003C6E00 40 82 01 44 */ bne lbl_803C9FE4 -/* 803C9EA4 003C6E04 80 9F 00 F8 */ lwz r4, 0xf8(r31) -/* 803C9EA8 003C6E08 80 04 00 20 */ lwz r0, 0x20(r4) -/* 803C9EAC 003C6E0C 90 1E 00 58 */ stw r0, 0x58(r30) -/* 803C9EB0 003C6E10 80 9F 00 F8 */ lwz r4, 0xf8(r31) -/* 803C9EB4 003C6E14 80 04 00 24 */ lwz r0, 0x24(r4) -/* 803C9EB8 003C6E18 90 1E 00 5C */ stw r0, 0x5c(r30) -/* 803C9EBC 003C6E1C 88 1E 00 1B */ lbz r0, 0x1b(r30) -/* 803C9EC0 003C6E20 28 00 00 00 */ cmplwi r0, 0 -/* 803C9EC4 003C6E24 41 82 00 44 */ beq lbl_803C9F08 -/* 803C9EC8 003C6E28 88 1E 00 1A */ lbz r0, 0x1a(r30) -/* 803C9ECC 003C6E2C 28 00 00 00 */ cmplwi r0, 0 -/* 803C9ED0 003C6E30 41 82 00 38 */ beq lbl_803C9F08 -/* 803C9ED4 003C6E34 88 03 00 05 */ lbz r0, 5(r3) -/* 803C9ED8 003C6E38 80 9E 00 58 */ lwz r4, 0x58(r30) -/* 803C9EDC 003C6E3C 54 00 48 2C */ slwi r0, r0, 9 -/* 803C9EE0 003C6E40 7C 80 00 39 */ and. r0, r4, r0 -/* 803C9EE4 003C6E44 41 82 00 24 */ beq lbl_803C9F08 -/* 803C9EE8 003C6E48 88 1E 00 19 */ lbz r0, 0x19(r30) -/* 803C9EEC 003C6E4C 28 00 00 00 */ cmplwi r0, 0 -/* 803C9EF0 003C6E50 41 82 00 18 */ beq lbl_803C9F08 -/* 803C9EF4 003C6E54 54 80 8B FF */ rlwinm. r0, r4, 0x11, 0xf, 0x1f -/* 803C9EF8 003C6E58 41 82 00 10 */ beq lbl_803C9F08 -/* 803C9EFC 003C6E5C 88 1E 00 18 */ lbz r0, 0x18(r30) -/* 803C9F00 003C6E60 28 00 00 00 */ cmplwi r0, 0 -/* 803C9F04 003C6E64 40 82 00 0C */ bne lbl_803C9F10 -lbl_803C9F08: -/* 803C9F08 003C6E68 3B 80 00 03 */ li r28, 3 -/* 803C9F0C 003C6E6C 48 00 00 D8 */ b lbl_803C9FE4 -lbl_803C9F10: -/* 803C9F10 003C6E70 88 A3 00 24 */ lbz r5, 0x24(r3) -/* 803C9F14 003C6E74 80 9E 00 0C */ lwz r4, 0xc(r30) -/* 803C9F18 003C6E78 88 03 00 24 */ lbz r0, 0x24(r3) -/* 803C9F1C 003C6E7C 7C A5 28 F8 */ nor r5, r5, r5 -/* 803C9F20 003C6E80 7C 04 02 14 */ add r0, r4, r0 -/* 803C9F24 003C6E84 7C A0 00 38 */ and r0, r5, r0 -/* 803C9F28 003C6E88 90 1E 00 20 */ stw r0, 0x20(r30) -/* 803C9F2C 003C6E8C 88 A3 00 14 */ lbz r5, 0x14(r3) -/* 803C9F30 003C6E90 88 83 00 21 */ lbz r4, 0x21(r3) -/* 803C9F34 003C6E94 80 1E 00 20 */ lwz r0, 0x20(r30) -/* 803C9F38 003C6E98 7C A4 20 30 */ slw r4, r5, r4 -/* 803C9F3C 003C6E9C 7C 00 20 00 */ cmpw r0, r4 -/* 803C9F40 003C6EA0 40 80 00 08 */ bge lbl_803C9F48 -/* 803C9F44 003C6EA4 90 9E 00 20 */ stw r4, 0x20(r30) -lbl_803C9F48: -/* 803C9F48 003C6EA8 80 1E 00 20 */ lwz r0, 0x20(r30) -/* 803C9F4C 003C6EAC 90 1E 00 64 */ stw r0, 0x64(r30) -/* 803C9F50 003C6EB0 80 1E 00 20 */ lwz r0, 0x20(r30) -/* 803C9F54 003C6EB4 7C 04 00 50 */ subf r0, r4, r0 -/* 803C9F58 003C6EB8 90 1E 00 20 */ stw r0, 0x20(r30) -/* 803C9F5C 003C6EBC 80 9E 00 20 */ lwz r4, 0x20(r30) -/* 803C9F60 003C6EC0 88 03 00 20 */ lbz r0, 0x20(r3) -/* 803C9F64 003C6EC4 7C 80 06 30 */ sraw r0, r4, r0 -/* 803C9F68 003C6EC8 90 1E 00 20 */ stw r0, 0x20(r30) -/* 803C9F6C 003C6ECC 80 1E 00 5C */ lwz r0, 0x5c(r30) -/* 803C9F70 003C6ED0 98 1E 00 1C */ stb r0, 0x1c(r30) -/* 803C9F74 003C6ED4 80 1E 00 5C */ lwz r0, 0x5c(r30) -/* 803C9F78 003C6ED8 7C 00 46 70 */ srawi r0, r0, 8 -/* 803C9F7C 003C6EDC 98 1E 00 1D */ stb r0, 0x1d(r30) -/* 803C9F80 003C6EE0 80 1E 00 5C */ lwz r0, 0x5c(r30) -/* 803C9F84 003C6EE4 7C 00 C6 70 */ srawi r0, r0, 0x18 -/* 803C9F88 003C6EE8 98 1E 00 1F */ stb r0, 0x1f(r30) -/* 803C9F8C 003C6EEC 80 1E 00 5C */ lwz r0, 0x5c(r30) -/* 803C9F90 003C6EF0 7C 00 86 70 */ srawi r0, r0, 0x10 -/* 803C9F94 003C6EF4 98 1E 00 1E */ stb r0, 0x1e(r30) -/* 803C9F98 003C6EF8 88 83 00 26 */ lbz r4, 0x26(r3) -/* 803C9F9C 003C6EFC 88 03 00 22 */ lbz r0, 0x22(r3) -/* 803C9FA0 003C6F00 38 84 00 01 */ addi r4, r4, 1 -/* 803C9FA4 003C6F04 7C 80 00 30 */ slw r0, r4, r0 -/* 803C9FA8 003C6F08 90 1E 00 38 */ stw r0, 0x38(r30) -/* 803C9FAC 003C6F0C 88 03 00 08 */ lbz r0, 8(r3) -/* 803C9FB0 003C6F10 90 1E 00 34 */ stw r0, 0x34(r30) -/* 803C9FB4 003C6F14 4B FB B3 F5 */ bl OSGetTime -/* 803C9FB8 003C6F18 90 9E 00 2C */ stw r4, 0x2c(r30) -/* 803C9FBC 003C6F1C 3C 80 80 3D */ lis r4, _F31@ha -/* 803C9FC0 003C6F20 38 C4 A0 3C */ addi r6, r4, _F31@l -/* 803C9FC4 003C6F24 90 7E 00 28 */ stw r3, 0x28(r30) -/* 803C9FC8 003C6F28 38 00 00 01 */ li r0, 1 -/* 803C9FCC 003C6F2C 38 7D 00 00 */ addi r3, r29, 0 -/* 803C9FD0 003C6F30 90 1E 00 30 */ stw r0, 0x30(r30) -/* 803C9FD4 003C6F34 38 9E 00 1C */ addi r4, r30, 0x1c -/* 803C9FD8 003C6F38 80 BE 00 10 */ lwz r5, 0x10(r30) -/* 803C9FDC 003C6F3C 48 00 0A D5 */ bl GBAWriteAsync -/* 803C9FE0 003C6F40 7C 7C 1B 78 */ mr r28, r3 -lbl_803C9FE4: -/* 803C9FE4 003C6F44 2C 1C 00 00 */ cmpwi r28, 0 -/* 803C9FE8 003C6F48 41 82 00 30 */ beq lbl_803CA018 -/* 803C9FEC 003C6F4C 38 00 00 00 */ li r0, 0 -/* 803C9FF0 003C6F50 90 1E 00 2C */ stw r0, 0x2c(r30) -/* 803C9FF4 003C6F54 90 1E 00 28 */ stw r0, 0x28(r30) -/* 803C9FF8 003C6F58 81 9E 00 14 */ lwz r12, 0x14(r30) -/* 803C9FFC 003C6F5C 28 0C 00 00 */ cmplwi r12, 0 -/* 803CA000 003C6F60 41 82 00 18 */ beq lbl_803CA018 -/* 803CA004 003C6F64 90 1E 00 14 */ stw r0, 0x14(r30) -/* 803CA008 003C6F68 7D 88 03 A6 */ mtlr r12 -/* 803CA00C 003C6F6C 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA010 003C6F70 38 9C 00 00 */ addi r4, r28, 0 -/* 803CA014 003C6F74 4E 80 00 21 */ blrl -lbl_803CA018: -/* 803CA018 003C6F78 93 9F 00 20 */ stw r28, 0x20(r31) -/* 803CA01C 003C6F7C 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803CA020 003C6F80 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 803CA024 003C6F84 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 803CA028 003C6F88 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 803CA02C 003C6F8C 83 81 00 18 */ lwz r28, 0x18(r1) -/* 803CA030 003C6F90 38 21 00 28 */ addi r1, r1, 0x28 -/* 803CA034 003C6F94 7C 08 03 A6 */ mtlr r0 -/* 803CA038 003C6F98 4E 80 00 20 */ blr - -.global _F31 -_F31: -/* 803CA03C 003C6F9C 7C 08 02 A6 */ mflr r0 -/* 803CA040 003C6FA0 3C A0 80 3F */ lis r5, lbl_803F7170@ha -/* 803CA044 003C6FA4 90 01 00 04 */ stw r0, 4(r1) -/* 803CA048 003C6FA8 94 21 FF C8 */ stwu r1, -0x38(r1) -/* 803CA04C 003C6FAC 93 E1 00 34 */ stw r31, 0x34(r1) -/* 803CA050 003C6FB0 93 C1 00 30 */ stw r30, 0x30(r1) -/* 803CA054 003C6FB4 93 A1 00 2C */ stw r29, 0x2c(r1) -/* 803CA058 003C6FB8 3B A3 00 00 */ addi r29, r3, 0 -/* 803CA05C 003C6FBC 3C 60 80 57 */ lis r3, __GBA@ha -/* 803CA060 003C6FC0 93 81 00 28 */ stw r28, 0x28(r1) -/* 803CA064 003C6FC4 7C 9C 23 79 */ or. r28, r4, r4 -/* 803CA068 003C6FC8 38 03 A1 A0 */ addi r0, r3, __GBA@l -/* 803CA06C 003C6FCC 57 A4 40 2E */ slwi r4, r29, 8 -/* 803CA070 003C6FD0 7F E0 22 14 */ add r31, r0, r4 -/* 803CA074 003C6FD4 38 65 71 70 */ addi r3, r5, lbl_803F7170@l -/* 803CA078 003C6FD8 3B DF 00 40 */ addi r30, r31, 0x40 -/* 803CA07C 003C6FDC 40 82 04 00 */ bne lbl_803CA47C -/* 803CA080 003C6FE0 80 1E 00 30 */ lwz r0, 0x30(r30) -/* 803CA084 003C6FE4 2C 00 00 00 */ cmpwi r0, 0 -/* 803CA088 003C6FE8 41 82 00 10 */ beq lbl_803CA098 -/* 803CA08C 003C6FEC 38 00 00 00 */ li r0, 0 -/* 803CA090 003C6FF0 90 1E 00 30 */ stw r0, 0x30(r30) -/* 803CA094 003C6FF4 48 00 00 60 */ b lbl_803CA0F4 -lbl_803CA098: -/* 803CA098 003C6FF8 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 803CA09C 003C6FFC 88 03 00 14 */ lbz r0, 0x14(r3) -/* 803CA0A0 003C7000 88 A4 00 00 */ lbz r5, 0(r4) -/* 803CA0A4 003C7004 7C A0 00 39 */ and. r0, r5, r0 -/* 803CA0A8 003C7008 41 82 00 30 */ beq lbl_803CA0D8 -/* 803CA0AC 003C700C 88 83 00 2A */ lbz r4, 0x2a(r3) -/* 803CA0B0 003C7010 88 03 00 21 */ lbz r0, 0x21(r3) -/* 803CA0B4 003C7014 7C A6 20 38 */ and r6, r5, r4 -/* 803CA0B8 003C7018 80 BE 00 34 */ lwz r5, 0x34(r30) -/* 803CA0BC 003C701C 88 83 00 21 */ lbz r4, 0x21(r3) -/* 803CA0C0 003C7020 7C C6 06 30 */ sraw r6, r6, r0 -/* 803CA0C4 003C7024 88 03 00 1F */ lbz r0, 0x1f(r3) -/* 803CA0C8 003C7028 7C A4 20 38 */ and r4, r5, r4 -/* 803CA0CC 003C702C 7C 80 06 30 */ sraw r0, r4, r0 -/* 803CA0D0 003C7030 7C 06 00 00 */ cmpw r6, r0 -/* 803CA0D4 003C7034 41 82 00 0C */ beq lbl_803CA0E0 -lbl_803CA0D8: -/* 803CA0D8 003C7038 3B 80 00 03 */ li r28, 3 -/* 803CA0DC 003C703C 48 00 03 A0 */ b lbl_803CA47C -lbl_803CA0E0: -/* 803CA0E0 003C7040 88 83 00 17 */ lbz r4, 0x17(r3) -/* 803CA0E4 003C7044 88 03 00 19 */ lbz r0, 0x19(r3) -/* 803CA0E8 003C7048 7C 04 00 50 */ subf r0, r4, r0 -/* 803CA0EC 003C704C 7C 00 28 50 */ subf r0, r0, r5 -/* 803CA0F0 003C7050 90 1E 00 34 */ stw r0, 0x34(r30) -lbl_803CA0F4: -/* 803CA0F4 003C7054 80 BE 00 34 */ lwz r5, 0x34(r30) -/* 803CA0F8 003C7058 80 1E 00 64 */ lwz r0, 0x64(r30) -/* 803CA0FC 003C705C 7C 05 00 00 */ cmpw r5, r0 -/* 803CA100 003C7060 41 81 03 58 */ bgt lbl_803CA458 -/* 803CA104 003C7064 40 80 01 68 */ bge lbl_803CA26C -/* 803CA108 003C7068 38 83 00 1D */ addi r4, r3, 0x1d -/* 803CA10C 003C706C 88 03 00 1D */ lbz r0, 0x1d(r3) -/* 803CA110 003C7070 88 84 00 00 */ lbz r4, 0(r4) -/* 803CA114 003C7074 90 9E 00 20 */ stw r4, 0x20(r30) -/* 803CA118 003C7078 48 00 00 48 */ b lbl_803CA160 -lbl_803CA11C: -/* 803CA11C 003C707C 80 9E 00 0C */ lwz r4, 0xc(r30) -/* 803CA120 003C7080 2C 04 00 00 */ cmpwi r4, 0 -/* 803CA124 003C7084 41 82 00 30 */ beq lbl_803CA154 -/* 803CA128 003C7088 80 DE 00 08 */ lwz r6, 8(r30) -/* 803CA12C 003C708C 38 86 00 01 */ addi r4, r6, 1 -/* 803CA130 003C7090 90 9E 00 08 */ stw r4, 8(r30) -/* 803CA134 003C7094 88 A3 00 25 */ lbz r5, 0x25(r3) -/* 803CA138 003C7098 80 9E 00 0C */ lwz r4, 0xc(r30) -/* 803CA13C 003C709C 7C A7 29 D6 */ mullw r5, r7, r5 -/* 803CA140 003C70A0 88 C6 00 00 */ lbz r6, 0(r6) -/* 803CA144 003C70A4 38 84 FF FF */ addi r4, r4, -1 -/* 803CA148 003C70A8 7C C5 28 30 */ slw r5, r6, r5 -/* 803CA14C 003C70AC 90 9E 00 0C */ stw r4, 0xc(r30) -/* 803CA150 003C70B0 7C 00 2B 78 */ or r0, r0, r5 -lbl_803CA154: -/* 803CA154 003C70B4 80 9E 00 20 */ lwz r4, 0x20(r30) -/* 803CA158 003C70B8 38 84 00 01 */ addi r4, r4, 1 -/* 803CA15C 003C70BC 90 9E 00 20 */ stw r4, 0x20(r30) -lbl_803CA160: -/* 803CA160 003C70C0 80 FE 00 20 */ lwz r7, 0x20(r30) -/* 803CA164 003C70C4 88 83 00 21 */ lbz r4, 0x21(r3) -/* 803CA168 003C70C8 7C 07 20 00 */ cmpw r7, r4 -/* 803CA16C 003C70CC 41 80 FF B0 */ blt lbl_803CA11C -/* 803CA170 003C70D0 38 C3 00 26 */ addi r6, r3, 0x26 -/* 803CA174 003C70D4 80 BE 00 34 */ lwz r5, 0x34(r30) -/* 803CA178 003C70D8 88 83 00 26 */ lbz r4, 0x26(r3) -/* 803CA17C 003C70DC 7C 05 20 00 */ cmpw r5, r4 -/* 803CA180 003C70E0 40 82 00 0C */ bne lbl_803CA18C -/* 803CA184 003C70E4 90 1E 00 60 */ stw r0, 0x60(r30) -/* 803CA188 003C70E8 48 00 00 18 */ b lbl_803CA1A0 -lbl_803CA18C: -/* 803CA18C 003C70EC 88 83 00 27 */ lbz r4, 0x27(r3) -/* 803CA190 003C70F0 7C 05 20 00 */ cmpw r5, r4 -/* 803CA194 003C70F4 40 82 00 0C */ bne lbl_803CA1A0 -/* 803CA198 003C70F8 88 03 00 25 */ lbz r0, 0x25(r3) -/* 803CA19C 003C70FC 7F A0 00 30 */ slw r0, r29, r0 -lbl_803CA1A0: -/* 803CA1A0 003C7100 80 BE 00 34 */ lwz r5, 0x34(r30) -/* 803CA1A4 003C7104 88 83 00 02 */ lbz r4, 2(r3) -/* 803CA1A8 003C7108 7C 05 20 00 */ cmpw r5, r4 -/* 803CA1AC 003C710C 41 80 00 78 */ blt lbl_803CA224 -/* 803CA1B0 003C7110 38 83 00 2B */ addi r4, r3, 0x2b -/* 803CA1B4 003C7114 88 C6 00 00 */ lbz r6, 0(r6) -/* 803CA1B8 003C7118 88 A3 00 2B */ lbz r5, 0x2b(r3) -/* 803CA1BC 003C711C 7C 09 03 78 */ mr r9, r0 -/* 803CA1C0 003C7120 88 84 00 00 */ lbz r4, 0(r4) -/* 803CA1C4 003C7124 54 C7 40 2E */ slwi r7, r6, 8 -/* 803CA1C8 003C7128 54 A5 20 36 */ slwi r5, r5, 4 -/* 803CA1CC 003C712C 88 C3 00 28 */ lbz r6, 0x28(r3) -/* 803CA1D0 003C7130 7C 85 20 50 */ subf r4, r5, r4 -/* 803CA1D4 003C7134 88 A3 00 23 */ lbz r5, 0x23(r3) -/* 803CA1D8 003C7138 7C 86 22 14 */ add r4, r6, r4 -/* 803CA1DC 003C713C 81 1E 00 38 */ lwz r8, 0x38(r30) -/* 803CA1E0 003C7140 7C 85 20 50 */ subf r4, r5, r4 -/* 803CA1E4 003C7144 88 C3 00 14 */ lbz r6, 0x14(r3) -/* 803CA1E8 003C7148 7C A7 22 14 */ add r5, r7, r4 -/* 803CA1EC 003C714C 48 00 00 28 */ b lbl_803CA214 -lbl_803CA1F0: -/* 803CA1F0 003C7150 7D 24 42 78 */ xor r4, r9, r8 -/* 803CA1F4 003C7154 54 84 07 FF */ clrlwi. r4, r4, 0x1f -/* 803CA1F8 003C7158 41 82 00 10 */ beq lbl_803CA208 -/* 803CA1FC 003C715C 55 08 F8 7E */ srwi r8, r8, 1 -/* 803CA200 003C7160 7D 08 2A 78 */ xor r8, r8, r5 -/* 803CA204 003C7164 48 00 00 08 */ b lbl_803CA20C -lbl_803CA208: -/* 803CA208 003C7168 55 08 F8 7E */ srwi r8, r8, 1 -lbl_803CA20C: -/* 803CA20C 003C716C 55 29 F8 7E */ srwi r9, r9, 1 -/* 803CA210 003C7170 38 C6 FF FF */ addi r6, r6, -1 -lbl_803CA214: -/* 803CA214 003C7174 88 83 00 1E */ lbz r4, 0x1e(r3) -/* 803CA218 003C7178 7C 06 20 00 */ cmpw r6, r4 -/* 803CA21C 003C717C 41 81 FF D4 */ bgt lbl_803CA1F0 -/* 803CA220 003C7180 91 1E 00 38 */ stw r8, 0x38(r30) -lbl_803CA224: -/* 803CA224 003C7184 88 83 00 28 */ lbz r4, 0x28(r3) -/* 803CA228 003C7188 80 BE 00 34 */ lwz r5, 0x34(r30) -/* 803CA22C 003C718C 38 84 01 00 */ addi r4, r4, 0x100 -/* 803CA230 003C7190 7C 05 20 00 */ cmpw r5, r4 -/* 803CA234 003C7194 40 82 00 0C */ bne lbl_803CA240 -/* 803CA238 003C7198 90 1E 00 3C */ stw r0, 0x3c(r30) -/* 803CA23C 003C719C 48 00 00 3C */ b lbl_803CA278 -lbl_803CA240: -/* 803CA240 003C71A0 88 83 00 01 */ lbz r4, 1(r3) -/* 803CA244 003C71A4 38 84 01 00 */ addi r4, r4, 0x100 -/* 803CA248 003C71A8 7C 05 20 00 */ cmpw r5, r4 -/* 803CA24C 003C71AC 40 82 00 2C */ bne lbl_803CA278 -/* 803CA250 003C71B0 88 83 00 07 */ lbz r4, 7(r3) -/* 803CA254 003C71B4 90 9E 00 20 */ stw r4, 0x20(r30) -/* 803CA258 003C71B8 80 9E 00 20 */ lwz r4, 0x20(r30) -/* 803CA25C 003C71BC 54 84 10 3A */ slwi r4, r4, 2 -/* 803CA260 003C71C0 7C 9E 22 14 */ add r4, r30, r4 -/* 803CA264 003C71C4 90 04 00 3C */ stw r0, 0x3c(r4) -/* 803CA268 003C71C8 48 00 00 10 */ b lbl_803CA278 -lbl_803CA26C: -/* 803CA26C 003C71CC 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 803CA270 003C71D0 54 A0 80 1E */ slwi r0, r5, 0x10 -/* 803CA274 003C71D4 7C 80 03 78 */ or r0, r4, r0 -lbl_803CA278: -/* 803CA278 003C71D8 80 BE 00 34 */ lwz r5, 0x34(r30) -/* 803CA27C 003C71DC 88 83 00 2B */ lbz r4, 0x2b(r3) -/* 803CA280 003C71E0 7C 05 20 00 */ cmpw r5, r4 -/* 803CA284 003C71E4 40 81 00 98 */ ble lbl_803CA31C -/* 803CA288 003C71E8 88 A3 00 25 */ lbz r5, 0x25(r3) -/* 803CA28C 003C71EC 38 83 00 0B */ addi r4, r3, 0xb -/* 803CA290 003C71F0 88 C3 00 18 */ lbz r6, 0x18(r3) -/* 803CA294 003C71F4 89 03 00 15 */ lbz r8, 0x15(r3) -/* 803CA298 003C71F8 7C C7 28 30 */ slw r7, r6, r5 -/* 803CA29C 003C71FC 88 C3 00 18 */ lbz r6, 0x18(r3) -/* 803CA2A0 003C7200 88 A3 00 2C */ lbz r5, 0x2c(r3) -/* 803CA2A4 003C7204 7D 07 3B 78 */ or r7, r8, r7 -/* 803CA2A8 003C7208 89 23 00 17 */ lbz r9, 0x17(r3) -/* 803CA2AC 003C720C 7C C5 28 30 */ slw r5, r6, r5 -/* 803CA2B0 003C7210 89 03 00 2A */ lbz r8, 0x2a(r3) -/* 803CA2B4 003C7214 7C E5 2B 78 */ or r5, r7, r5 -/* 803CA2B8 003C7218 81 5E 00 58 */ lwz r10, 0x58(r30) -/* 803CA2BC 003C721C 7D 26 40 30 */ slw r6, r9, r8 -/* 803CA2C0 003C7220 88 E3 00 1A */ lbz r7, 0x1a(r3) -/* 803CA2C4 003C7224 7C C5 2B 78 */ or r5, r6, r5 -/* 803CA2C8 003C7228 88 C3 00 1B */ lbz r6, 0x1b(r3) -/* 803CA2CC 003C722C 7C AA 29 D6 */ mullw r5, r10, r5 -/* 803CA2D0 003C7230 7C C7 30 50 */ subf r6, r7, r6 -/* 803CA2D4 003C7234 7C A6 28 50 */ subf r5, r6, r5 -/* 803CA2D8 003C7238 90 BE 00 58 */ stw r5, 0x58(r30) -/* 803CA2DC 003C723C 88 E3 00 0B */ lbz r7, 0xb(r3) -/* 803CA2E0 003C7240 81 3E 00 58 */ lwz r9, 0x58(r30) -/* 803CA2E4 003C7244 81 1E 00 34 */ lwz r8, 0x34(r30) -/* 803CA2E8 003C7248 54 E7 A0 16 */ slwi r7, r7, 0x14 -/* 803CA2EC 003C724C 88 A3 00 0B */ lbz r5, 0xb(r3) -/* 803CA2F0 003C7250 7C 00 4A 78 */ xor r0, r0, r9 -/* 803CA2F4 003C7254 7D 08 3A 14 */ add r8, r8, r7 -/* 803CA2F8 003C7258 88 84 00 00 */ lbz r4, 0(r4) -/* 803CA2FC 003C725C 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7 -/* 803CA300 003C7260 88 C3 00 13 */ lbz r6, 0x13(r3) -/* 803CA304 003C7264 7C A8 00 D0 */ neg r5, r8 -/* 803CA308 003C7268 88 E3 00 12 */ lbz r7, 0x12(r3) -/* 803CA30C 003C726C 50 C4 82 1E */ rlwimi r4, r6, 0x10, 8, 0xf -/* 803CA310 003C7270 7C 00 2A 78 */ xor r0, r0, r5 -/* 803CA314 003C7274 50 E4 44 2E */ rlwimi r4, r7, 8, 0x10, 0x17 -/* 803CA318 003C7278 7C 00 22 78 */ xor r0, r0, r4 -lbl_803CA31C: -/* 803CA31C 003C727C 88 83 00 00 */ lbz r4, 0(r3) -/* 803CA320 003C7280 7C 04 24 30 */ srw r4, r0, r4 -/* 803CA324 003C7284 98 9E 00 1F */ stb r4, 0x1f(r30) -/* 803CA328 003C7288 88 83 00 1E */ lbz r4, 0x1e(r3) -/* 803CA32C 003C728C 7C 04 24 30 */ srw r4, r0, r4 -/* 803CA330 003C7290 98 9E 00 1C */ stb r4, 0x1c(r30) -/* 803CA334 003C7294 88 83 00 29 */ lbz r4, 0x29(r3) -/* 803CA338 003C7298 7C 04 24 30 */ srw r4, r0, r4 -/* 803CA33C 003C729C 98 9E 00 1D */ stb r4, 0x1d(r30) -/* 803CA340 003C72A0 88 83 00 2A */ lbz r4, 0x2a(r3) -/* 803CA344 003C72A4 7C 04 24 30 */ srw r4, r0, r4 -/* 803CA348 003C72A8 98 9E 00 1E */ stb r4, 0x1e(r30) -/* 803CA34C 003C72AC 88 A3 00 01 */ lbz r5, 1(r3) -/* 803CA350 003C72B0 88 83 00 01 */ lbz r4, 1(r3) -/* 803CA354 003C72B4 80 DE 00 34 */ lwz r6, 0x34(r30) -/* 803CA358 003C72B8 7C 85 22 14 */ add r4, r5, r4 -/* 803CA35C 003C72BC 7C 06 20 00 */ cmpw r6, r4 -/* 803CA360 003C72C0 40 82 00 08 */ bne lbl_803CA368 -/* 803CA364 003C72C4 90 1E 00 44 */ stw r0, 0x44(r30) -lbl_803CA368: -/* 803CA368 003C72C8 80 9E 00 20 */ lwz r4, 0x20(r30) -/* 803CA36C 003C72CC 88 63 00 21 */ lbz r3, 0x21(r3) -/* 803CA370 003C72D0 7C 04 18 00 */ cmpw r4, r3 -/* 803CA374 003C72D4 40 80 00 C4 */ bge lbl_803CA438 -/* 803CA378 003C72D8 20 64 00 01 */ subfic r3, r4, 1 -/* 803CA37C 003C72DC 20 63 00 03 */ subfic r3, r3, 3 -/* 803CA380 003C72E0 54 63 10 3A */ slwi r3, r3, 2 -/* 803CA384 003C72E4 7C 7E 1A 14 */ add r3, r30, r3 -/* 803CA388 003C72E8 90 03 00 3C */ stw r0, 0x3c(r3) -/* 803CA38C 003C72EC 80 BE 00 20 */ lwz r5, 0x20(r30) -/* 803CA390 003C72F0 20 05 00 01 */ subfic r0, r5, 1 -/* 803CA394 003C72F4 20 60 00 02 */ subfic r3, r0, 2 -/* 803CA398 003C72F8 20 05 00 04 */ subfic r0, r5, 4 -/* 803CA39C 003C72FC 54 63 10 3A */ slwi r3, r3, 2 -/* 803CA3A0 003C7300 54 00 10 3A */ slwi r0, r0, 2 -/* 803CA3A4 003C7304 7C 9E 1A 14 */ add r4, r30, r3 -/* 803CA3A8 003C7308 7C 7E 02 14 */ add r3, r30, r0 -/* 803CA3AC 003C730C 80 84 00 3C */ lwz r4, 0x3c(r4) -/* 803CA3B0 003C7310 80 63 00 3C */ lwz r3, 0x3c(r3) -/* 803CA3B4 003C7314 20 05 00 05 */ subfic r0, r5, 5 -/* 803CA3B8 003C7318 54 00 10 3A */ slwi r0, r0, 2 -/* 803CA3BC 003C731C 7C 84 19 D6 */ mullw r4, r4, r3 -/* 803CA3C0 003C7320 7C 7E 02 14 */ add r3, r30, r0 -/* 803CA3C4 003C7324 90 83 00 3C */ stw r4, 0x3c(r3) -/* 803CA3C8 003C7328 80 1E 00 20 */ lwz r0, 0x20(r30) -/* 803CA3CC 003C732C 20 A0 00 01 */ subfic r5, r0, 1 -/* 803CA3D0 003C7330 54 A3 10 3A */ slwi r3, r5, 2 -/* 803CA3D4 003C7334 54 00 10 3A */ slwi r0, r0, 2 -/* 803CA3D8 003C7338 7C 9E 1A 14 */ add r4, r30, r3 -/* 803CA3DC 003C733C 7C 7E 02 14 */ add r3, r30, r0 -/* 803CA3E0 003C7340 80 84 00 3C */ lwz r4, 0x3c(r4) -/* 803CA3E4 003C7344 80 63 00 3C */ lwz r3, 0x3c(r3) -/* 803CA3E8 003C7348 20 05 00 05 */ subfic r0, r5, 5 -/* 803CA3EC 003C734C 54 00 10 3A */ slwi r0, r0, 2 -/* 803CA3F0 003C7350 7C 84 19 D6 */ mullw r4, r4, r3 -/* 803CA3F4 003C7354 7C 7E 02 14 */ add r3, r30, r0 -/* 803CA3F8 003C7358 90 83 00 3C */ stw r4, 0x3c(r3) -/* 803CA3FC 003C735C 80 BE 00 20 */ lwz r5, 0x20(r30) -/* 803CA400 003C7360 20 65 00 01 */ subfic r3, r5, 1 -/* 803CA404 003C7364 20 05 00 04 */ subfic r0, r5, 4 -/* 803CA408 003C7368 7C 63 00 D0 */ neg r3, r3 -/* 803CA40C 003C736C 54 63 10 3A */ slwi r3, r3, 2 -/* 803CA410 003C7370 54 00 10 3A */ slwi r0, r0, 2 -/* 803CA414 003C7374 7C 9E 1A 14 */ add r4, r30, r3 -/* 803CA418 003C7378 7C 7E 02 14 */ add r3, r30, r0 -/* 803CA41C 003C737C 80 84 00 3C */ lwz r4, 0x3c(r4) -/* 803CA420 003C7380 80 63 00 3C */ lwz r3, 0x3c(r3) -/* 803CA424 003C7384 20 05 00 07 */ subfic r0, r5, 7 -/* 803CA428 003C7388 54 00 10 3A */ slwi r0, r0, 2 -/* 803CA42C 003C738C 7C 84 19 D6 */ mullw r4, r4, r3 -/* 803CA430 003C7390 7C 7E 02 14 */ add r3, r30, r0 -/* 803CA434 003C7394 90 83 00 3C */ stw r4, 0x3c(r3) -lbl_803CA438: -/* 803CA438 003C7398 3C 60 80 3D */ lis r3, _F31@ha -/* 803CA43C 003C739C 80 BE 00 10 */ lwz r5, 0x10(r30) -/* 803CA440 003C73A0 38 C3 A0 3C */ addi r6, r3, _F31@l -/* 803CA444 003C73A4 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA448 003C73A8 38 9E 00 1C */ addi r4, r30, 0x1c -/* 803CA44C 003C73AC 48 00 06 65 */ bl GBAWriteAsync -/* 803CA450 003C73B0 7C 7C 1B 78 */ mr r28, r3 -/* 803CA454 003C73B4 48 00 00 28 */ b lbl_803CA47C -lbl_803CA458: -/* 803CA458 003C73B8 4B FB AF 69 */ bl OSGetTick -/* 803CA45C 003C73BC 90 7E 00 24 */ stw r3, 0x24(r30) -/* 803CA460 003C73C0 3C 60 80 3D */ lis r3, _F33@ha -/* 803CA464 003C73C4 38 C3 A4 D4 */ addi r6, r3, _F33@l -/* 803CA468 003C73C8 80 BE 00 10 */ lwz r5, 0x10(r30) -/* 803CA46C 003C73CC 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA470 003C73D0 38 9E 00 18 */ addi r4, r30, 0x18 -/* 803CA474 003C73D4 48 00 05 0D */ bl GBAReadAsync -/* 803CA478 003C73D8 7C 7C 1B 78 */ mr r28, r3 -lbl_803CA47C: -/* 803CA47C 003C73DC 2C 1C 00 00 */ cmpwi r28, 0 -/* 803CA480 003C73E0 41 82 00 30 */ beq lbl_803CA4B0 -/* 803CA484 003C73E4 38 00 00 00 */ li r0, 0 -/* 803CA488 003C73E8 90 1E 00 2C */ stw r0, 0x2c(r30) -/* 803CA48C 003C73EC 90 1E 00 28 */ stw r0, 0x28(r30) -/* 803CA490 003C73F0 81 9E 00 14 */ lwz r12, 0x14(r30) -/* 803CA494 003C73F4 28 0C 00 00 */ cmplwi r12, 0 -/* 803CA498 003C73F8 41 82 00 18 */ beq lbl_803CA4B0 -/* 803CA49C 003C73FC 90 1E 00 14 */ stw r0, 0x14(r30) -/* 803CA4A0 003C7400 7D 88 03 A6 */ mtlr r12 -/* 803CA4A4 003C7404 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA4A8 003C7408 38 9C 00 00 */ addi r4, r28, 0 -/* 803CA4AC 003C740C 4E 80 00 21 */ blrl -lbl_803CA4B0: -/* 803CA4B0 003C7410 93 9F 00 20 */ stw r28, 0x20(r31) -/* 803CA4B4 003C7414 80 01 00 3C */ lwz r0, 0x3c(r1) -/* 803CA4B8 003C7418 83 E1 00 34 */ lwz r31, 0x34(r1) -/* 803CA4BC 003C741C 83 C1 00 30 */ lwz r30, 0x30(r1) -/* 803CA4C0 003C7420 83 A1 00 2C */ lwz r29, 0x2c(r1) -/* 803CA4C4 003C7424 83 81 00 28 */ lwz r28, 0x28(r1) -/* 803CA4C8 003C7428 38 21 00 38 */ addi r1, r1, 0x38 -/* 803CA4CC 003C742C 7C 08 03 A6 */ mtlr r0 -/* 803CA4D0 003C7430 4E 80 00 20 */ blr - -.global _F33 -_F33: -/* 803CA4D4 003C7434 7C 08 02 A6 */ mflr r0 -/* 803CA4D8 003C7438 90 01 00 04 */ stw r0, 4(r1) -/* 803CA4DC 003C743C 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803CA4E0 003C7440 93 E1 00 24 */ stw r31, 0x24(r1) -/* 803CA4E4 003C7444 93 C1 00 20 */ stw r30, 0x20(r1) -/* 803CA4E8 003C7448 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 803CA4EC 003C744C 3B A3 00 00 */ addi r29, r3, 0 -/* 803CA4F0 003C7450 3C 60 80 57 */ lis r3, __GBA@ha -/* 803CA4F4 003C7454 93 81 00 18 */ stw r28, 0x18(r1) -/* 803CA4F8 003C7458 7C 9C 23 79 */ or. r28, r4, r4 -/* 803CA4FC 003C745C 57 A4 40 2E */ slwi r4, r29, 8 -/* 803CA500 003C7460 38 03 A1 A0 */ addi r0, r3, __GBA@l -/* 803CA504 003C7464 7F E0 22 14 */ add r31, r0, r4 -/* 803CA508 003C7468 3B DF 00 40 */ addi r30, r31, 0x40 -/* 803CA50C 003C746C 40 82 00 E4 */ bne lbl_803CA5F0 -/* 803CA510 003C7470 38 00 00 21 */ li r0, 0x21 -/* 803CA514 003C7474 3C 60 80 3F */ lis r3, lbl_803F7170@ha -/* 803CA518 003C7478 90 1E 00 20 */ stw r0, 0x20(r30) -/* 803CA51C 003C747C 38 03 71 70 */ addi r0, r3, lbl_803F7170@l -/* 803CA520 003C7480 48 00 00 94 */ b lbl_803CA5B4 -lbl_803CA524: -/* 803CA524 003C7484 7C E0 1A 14 */ add r7, r0, r3 -/* 803CA528 003C7488 88 DE 00 1B */ lbz r6, 0x1b(r30) -/* 803CA52C 003C748C 88 87 00 00 */ lbz r4, 0(r7) -/* 803CA530 003C7490 88 67 00 00 */ lbz r3, 0(r7) -/* 803CA534 003C7494 88 A7 00 00 */ lbz r5, 0(r7) -/* 803CA538 003C7498 54 84 10 3A */ slwi r4, r4, 2 -/* 803CA53C 003C749C 89 07 00 00 */ lbz r8, 0(r7) -/* 803CA540 003C74A0 54 63 10 3A */ slwi r3, r3, 2 -/* 803CA544 003C74A4 54 A7 10 3A */ slwi r7, r5, 2 -/* 803CA548 003C74A8 38 A4 00 3C */ addi r5, r4, 0x3c -/* 803CA54C 003C74AC 88 9E 00 1A */ lbz r4, 0x1a(r30) -/* 803CA550 003C74B0 38 63 00 3C */ addi r3, r3, 0x3c -/* 803CA554 003C74B4 7C BE 28 2E */ lwzx r5, r30, r5 -/* 803CA558 003C74B8 38 E7 00 3C */ addi r7, r7, 0x3c -/* 803CA55C 003C74BC 7C 7E 18 2E */ lwzx r3, r30, r3 -/* 803CA560 003C74C0 55 08 10 3A */ slwi r8, r8, 2 -/* 803CA564 003C74C4 7C FE 38 2E */ lwzx r7, r30, r7 -/* 803CA568 003C74C8 39 28 00 3C */ addi r9, r8, 0x3c -/* 803CA56C 003C74CC 89 1E 00 19 */ lbz r8, 0x19(r30) -/* 803CA570 003C74D0 54 A5 46 3E */ srwi r5, r5, 0x18 -/* 803CA574 003C74D4 89 5E 00 18 */ lbz r10, 0x18(r30) -/* 803CA578 003C74D8 54 63 84 3E */ srwi r3, r3, 0x10 -/* 803CA57C 003C74DC 7D 3E 48 2E */ lwzx r9, r30, r9 -/* 803CA580 003C74E0 54 E7 C2 3E */ srwi r7, r7, 8 -/* 803CA584 003C74E4 7C 83 1A 78 */ xor r3, r4, r3 -/* 803CA588 003C74E8 7C C5 2A 78 */ xor r5, r6, r5 -/* 803CA58C 003C74EC 7C A3 1B 78 */ or r3, r5, r3 -/* 803CA590 003C74F0 7D 04 3A 78 */ xor r4, r8, r7 -/* 803CA594 003C74F4 7D 45 4A 78 */ xor r5, r10, r9 -/* 803CA598 003C74F8 7C 83 1B 78 */ or r3, r4, r3 -/* 803CA59C 003C74FC 7C A3 1B 78 */ or r3, r5, r3 -/* 803CA5A0 003C7500 54 7C C0 0F */ rlwinm. r28, r3, 0x18, 0, 7 -/* 803CA5A4 003C7504 41 82 00 1C */ beq lbl_803CA5C0 -/* 803CA5A8 003C7508 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 803CA5AC 003C750C 38 63 00 01 */ addi r3, r3, 1 -/* 803CA5B0 003C7510 90 7E 00 20 */ stw r3, 0x20(r30) -lbl_803CA5B4: -/* 803CA5B4 003C7514 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 803CA5B8 003C7518 2C 03 00 24 */ cmpwi r3, 0x24 -/* 803CA5BC 003C751C 41 80 FF 68 */ blt lbl_803CA524 -lbl_803CA5C0: -/* 803CA5C0 003C7520 2C 1C 00 00 */ cmpwi r28, 0 -/* 803CA5C4 003C7524 41 82 00 0C */ beq lbl_803CA5D0 -/* 803CA5C8 003C7528 3B 80 00 03 */ li r28, 3 -/* 803CA5CC 003C752C 48 00 00 24 */ b lbl_803CA5F0 -lbl_803CA5D0: -/* 803CA5D0 003C7530 4B FB AD F1 */ bl OSGetTick -/* 803CA5D4 003C7534 90 7E 00 24 */ stw r3, 0x24(r30) -/* 803CA5D8 003C7538 3C 60 80 3D */ lis r3, _F35@ha -/* 803CA5DC 003C753C 38 A3 A6 48 */ addi r5, r3, _F35@l -/* 803CA5E0 003C7540 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 803CA5E4 003C7544 7F A3 EB 78 */ mr r3, r29 -/* 803CA5E8 003C7548 4B FF F1 09 */ bl GBAGetStatusAsync -/* 803CA5EC 003C754C 7C 7C 1B 78 */ mr r28, r3 -lbl_803CA5F0: -/* 803CA5F0 003C7550 2C 1C 00 00 */ cmpwi r28, 0 -/* 803CA5F4 003C7554 41 82 00 30 */ beq lbl_803CA624 -/* 803CA5F8 003C7558 38 00 00 00 */ li r0, 0 -/* 803CA5FC 003C755C 90 1E 00 2C */ stw r0, 0x2c(r30) -/* 803CA600 003C7560 90 1E 00 28 */ stw r0, 0x28(r30) -/* 803CA604 003C7564 81 9E 00 14 */ lwz r12, 0x14(r30) -/* 803CA608 003C7568 28 0C 00 00 */ cmplwi r12, 0 -/* 803CA60C 003C756C 41 82 00 18 */ beq lbl_803CA624 -/* 803CA610 003C7570 90 1E 00 14 */ stw r0, 0x14(r30) -/* 803CA614 003C7574 7D 88 03 A6 */ mtlr r12 -/* 803CA618 003C7578 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA61C 003C757C 38 9C 00 00 */ addi r4, r28, 0 -/* 803CA620 003C7580 4E 80 00 21 */ blrl -lbl_803CA624: -/* 803CA624 003C7584 93 9F 00 20 */ stw r28, 0x20(r31) -/* 803CA628 003C7588 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803CA62C 003C758C 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 803CA630 003C7590 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 803CA634 003C7594 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 803CA638 003C7598 83 81 00 18 */ lwz r28, 0x18(r1) -/* 803CA63C 003C759C 38 21 00 28 */ addi r1, r1, 0x28 -/* 803CA640 003C75A0 7C 08 03 A6 */ mtlr r0 -/* 803CA644 003C75A4 4E 80 00 20 */ blr - -.global _F35 -_F35: -/* 803CA648 003C75A8 7C 08 02 A6 */ mflr r0 -/* 803CA64C 003C75AC 90 01 00 04 */ stw r0, 4(r1) -/* 803CA650 003C75B0 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803CA654 003C75B4 93 E1 00 24 */ stw r31, 0x24(r1) -/* 803CA658 003C75B8 93 C1 00 20 */ stw r30, 0x20(r1) -/* 803CA65C 003C75BC 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 803CA660 003C75C0 3B A3 00 00 */ addi r29, r3, 0 -/* 803CA664 003C75C4 3C 60 80 57 */ lis r3, __GBA@ha -/* 803CA668 003C75C8 93 81 00 18 */ stw r28, 0x18(r1) -/* 803CA66C 003C75CC 7C 9C 23 79 */ or. r28, r4, r4 -/* 803CA670 003C75D0 57 A4 40 2E */ slwi r4, r29, 8 -/* 803CA674 003C75D4 38 03 A1 A0 */ addi r0, r3, __GBA@l -/* 803CA678 003C75D8 7F E0 22 14 */ add r31, r0, r4 -/* 803CA67C 003C75DC 3B DF 00 40 */ addi r30, r31, 0x40 -/* 803CA680 003C75E0 40 82 00 CC */ bne lbl_803CA74C -/* 803CA684 003C75E4 4B FB AD 3D */ bl OSGetTick -/* 803CA688 003C75E8 3F 80 80 00 */ lis r28, 0x800000F8@ha -/* 803CA68C 003C75EC 80 9E 00 24 */ lwz r4, 0x24(r30) -/* 803CA690 003C75F0 80 1C 00 F8 */ lwz r0, 0x800000F8@l(r28) -/* 803CA694 003C75F4 7C 64 18 50 */ subf r3, r4, r3 -/* 803CA698 003C75F8 54 05 F0 BE */ srwi r5, r0, 2 -/* 803CA69C 003C75FC 1C 05 00 0A */ mulli r0, r5, 0xa -/* 803CA6A0 003C7600 7C 00 18 40 */ cmplw r0, r3 -/* 803CA6A4 003C7604 41 81 00 0C */ bgt lbl_803CA6B0 -/* 803CA6A8 003C7608 3B 80 00 03 */ li r28, 3 -/* 803CA6AC 003C760C 48 00 00 A0 */ b lbl_803CA74C -lbl_803CA6B0: -/* 803CA6B0 003C7610 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 803CA6B4 003C7614 88 64 00 00 */ lbz r3, 0(r4) -/* 803CA6B8 003C7618 70 60 00 32 */ andi. r0, r3, 0x32 -/* 803CA6BC 003C761C 41 82 00 0C */ beq lbl_803CA6C8 -/* 803CA6C0 003C7620 3B 80 00 03 */ li r28, 3 -/* 803CA6C4 003C7624 48 00 00 88 */ b lbl_803CA74C -lbl_803CA6C8: -/* 803CA6C8 003C7628 28 03 00 08 */ cmplwi r3, 8 -/* 803CA6CC 003C762C 41 82 00 1C */ beq lbl_803CA6E8 -/* 803CA6D0 003C7630 3C 60 80 3D */ lis r3, _F35@ha -/* 803CA6D4 003C7634 38 A3 A6 48 */ addi r5, r3, _F35@l -/* 803CA6D8 003C7638 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA6DC 003C763C 4B FF F0 15 */ bl GBAGetStatusAsync -/* 803CA6E0 003C7640 7C 7C 1B 78 */ mr r28, r3 -/* 803CA6E4 003C7644 48 00 00 68 */ b lbl_803CA74C -lbl_803CA6E8: -/* 803CA6E8 003C7648 3C 60 10 62 */ lis r3, 0x10624DD3@ha -/* 803CA6EC 003C764C 38 03 4D D3 */ addi r0, r3, 0x10624DD3@l -/* 803CA6F0 003C7650 7C 00 28 16 */ mulhwu r0, r0, r5 -/* 803CA6F4 003C7654 54 06 E8 F8 */ rlwinm r6, r0, 0x1d, 3, 0x1c -/* 803CA6F8 003C7658 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA6FC 003C765C 38 A0 00 00 */ li r5, 0 -/* 803CA700 003C7660 48 00 08 1D */ bl __GBASetDelay -/* 803CA704 003C7664 3C 60 80 3D */ lis r3, _F37@ha -/* 803CA708 003C7668 80 BE 00 10 */ lwz r5, 0x10(r30) -/* 803CA70C 003C766C 38 C3 A7 A4 */ addi r6, r3, _F37@l -/* 803CA710 003C7670 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA714 003C7674 38 9E 00 18 */ addi r4, r30, 0x18 -/* 803CA718 003C7678 48 00 02 69 */ bl GBAReadAsync -/* 803CA71C 003C767C 80 1C 00 F8 */ lwz r0, 0xf8(r28) -/* 803CA720 003C7680 3C 80 43 1C */ lis r4, 0x431BDE83@ha -/* 803CA724 003C7684 3B 83 00 00 */ addi r28, r3, 0 -/* 803CA728 003C7688 54 00 F0 BE */ srwi r0, r0, 2 -/* 803CA72C 003C768C 38 84 DE 83 */ addi r4, r4, 0x431BDE83@l -/* 803CA730 003C7690 7C 04 00 16 */ mulhwu r0, r4, r0 -/* 803CA734 003C7694 54 00 8B FE */ srwi r0, r0, 0xf -/* 803CA738 003C7698 1C 00 00 3C */ mulli r0, r0, 0x3c -/* 803CA73C 003C769C 54 06 E8 FE */ srwi r6, r0, 3 -/* 803CA740 003C76A0 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA744 003C76A4 38 A0 00 00 */ li r5, 0 -/* 803CA748 003C76A8 48 00 07 D5 */ bl __GBASetDelay -lbl_803CA74C: -/* 803CA74C 003C76AC 2C 1C 00 00 */ cmpwi r28, 0 -/* 803CA750 003C76B0 41 82 00 30 */ beq lbl_803CA780 -/* 803CA754 003C76B4 38 00 00 00 */ li r0, 0 -/* 803CA758 003C76B8 90 1E 00 2C */ stw r0, 0x2c(r30) -/* 803CA75C 003C76BC 90 1E 00 28 */ stw r0, 0x28(r30) -/* 803CA760 003C76C0 81 9E 00 14 */ lwz r12, 0x14(r30) -/* 803CA764 003C76C4 28 0C 00 00 */ cmplwi r12, 0 -/* 803CA768 003C76C8 41 82 00 18 */ beq lbl_803CA780 -/* 803CA76C 003C76CC 90 1E 00 14 */ stw r0, 0x14(r30) -/* 803CA770 003C76D0 7D 88 03 A6 */ mtlr r12 -/* 803CA774 003C76D4 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA778 003C76D8 38 9C 00 00 */ addi r4, r28, 0 -/* 803CA77C 003C76DC 4E 80 00 21 */ blrl -lbl_803CA780: -/* 803CA780 003C76E0 93 9F 00 20 */ stw r28, 0x20(r31) -/* 803CA784 003C76E4 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803CA788 003C76E8 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 803CA78C 003C76EC 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 803CA790 003C76F0 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 803CA794 003C76F4 83 81 00 18 */ lwz r28, 0x18(r1) -/* 803CA798 003C76F8 38 21 00 28 */ addi r1, r1, 0x28 -/* 803CA79C 003C76FC 7C 08 03 A6 */ mtlr r0 -/* 803CA7A0 003C7700 4E 80 00 20 */ blr - -.global _F37 -_F37: -/* 803CA7A4 003C7704 7C 08 02 A6 */ mflr r0 -/* 803CA7A8 003C7708 90 01 00 04 */ stw r0, 4(r1) -/* 803CA7AC 003C770C 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803CA7B0 003C7710 93 E1 00 24 */ stw r31, 0x24(r1) -/* 803CA7B4 003C7714 93 C1 00 20 */ stw r30, 0x20(r1) -/* 803CA7B8 003C7718 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 803CA7BC 003C771C 3B A3 00 00 */ addi r29, r3, 0 -/* 803CA7C0 003C7720 3C 60 80 57 */ lis r3, __GBA@ha -/* 803CA7C4 003C7724 93 81 00 18 */ stw r28, 0x18(r1) -/* 803CA7C8 003C7728 7C 9C 23 79 */ or. r28, r4, r4 -/* 803CA7CC 003C772C 57 A4 40 2E */ slwi r4, r29, 8 -/* 803CA7D0 003C7730 38 03 A1 A0 */ addi r0, r3, __GBA@l -/* 803CA7D4 003C7734 7F E0 22 14 */ add r31, r0, r4 -/* 803CA7D8 003C7738 3B DF 00 40 */ addi r30, r31, 0x40 -/* 803CA7DC 003C773C 40 82 00 6C */ bne lbl_803CA848 -/* 803CA7E0 003C7740 81 3E 00 60 */ lwz r9, 0x60(r30) -/* 803CA7E4 003C7744 88 BE 00 1B */ lbz r5, 0x1b(r30) -/* 803CA7E8 003C7748 55 24 46 3E */ srwi r4, r9, 0x18 -/* 803CA7EC 003C774C 88 7E 00 1A */ lbz r3, 0x1a(r30) -/* 803CA7F0 003C7750 55 20 84 3E */ srwi r0, r9, 0x10 -/* 803CA7F4 003C7754 88 FE 00 19 */ lbz r7, 0x19(r30) -/* 803CA7F8 003C7758 89 1E 00 18 */ lbz r8, 0x18(r30) -/* 803CA7FC 003C775C 55 26 C2 3E */ srwi r6, r9, 8 -/* 803CA800 003C7760 7C 60 02 78 */ xor r0, r3, r0 -/* 803CA804 003C7764 7C A4 22 78 */ xor r4, r5, r4 -/* 803CA808 003C7768 7C 80 03 78 */ or r0, r4, r0 -/* 803CA80C 003C776C 7C E3 32 78 */ xor r3, r7, r6 -/* 803CA810 003C7770 7D 04 4A 78 */ xor r4, r8, r9 -/* 803CA814 003C7774 7C 60 03 78 */ or r0, r3, r0 -/* 803CA818 003C7778 7C 80 03 78 */ or r0, r4, r0 -/* 803CA81C 003C777C 54 00 C0 0F */ rlwinm. r0, r0, 0x18, 0, 7 -/* 803CA820 003C7780 41 82 00 0C */ beq lbl_803CA82C -/* 803CA824 003C7784 3B 80 00 03 */ li r28, 3 -/* 803CA828 003C7788 48 00 00 20 */ b lbl_803CA848 -lbl_803CA82C: -/* 803CA82C 003C778C 3C 60 80 3D */ lis r3, _F39@ha -/* 803CA830 003C7790 80 BE 00 10 */ lwz r5, 0x10(r30) -/* 803CA834 003C7794 38 C3 A8 A0 */ addi r6, r3, _F39@l -/* 803CA838 003C7798 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA83C 003C779C 38 9E 00 18 */ addi r4, r30, 0x18 -/* 803CA840 003C77A0 48 00 02 71 */ bl GBAWriteAsync -/* 803CA844 003C77A4 7C 7C 1B 78 */ mr r28, r3 -lbl_803CA848: -/* 803CA848 003C77A8 2C 1C 00 00 */ cmpwi r28, 0 -/* 803CA84C 003C77AC 41 82 00 30 */ beq lbl_803CA87C -/* 803CA850 003C77B0 38 00 00 00 */ li r0, 0 -/* 803CA854 003C77B4 90 1E 00 2C */ stw r0, 0x2c(r30) -/* 803CA858 003C77B8 90 1E 00 28 */ stw r0, 0x28(r30) -/* 803CA85C 003C77BC 81 9E 00 14 */ lwz r12, 0x14(r30) -/* 803CA860 003C77C0 28 0C 00 00 */ cmplwi r12, 0 -/* 803CA864 003C77C4 41 82 00 18 */ beq lbl_803CA87C -/* 803CA868 003C77C8 90 1E 00 14 */ stw r0, 0x14(r30) -/* 803CA86C 003C77CC 7D 88 03 A6 */ mtlr r12 -/* 803CA870 003C77D0 38 7D 00 00 */ addi r3, r29, 0 -/* 803CA874 003C77D4 38 9C 00 00 */ addi r4, r28, 0 -/* 803CA878 003C77D8 4E 80 00 21 */ blrl -lbl_803CA87C: -/* 803CA87C 003C77DC 93 9F 00 20 */ stw r28, 0x20(r31) -/* 803CA880 003C77E0 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803CA884 003C77E4 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 803CA888 003C77E8 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 803CA88C 003C77EC 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 803CA890 003C77F0 83 81 00 18 */ lwz r28, 0x18(r1) -/* 803CA894 003C77F4 38 21 00 28 */ addi r1, r1, 0x28 -/* 803CA898 003C77F8 7C 08 03 A6 */ mtlr r0 -/* 803CA89C 003C77FC 4E 80 00 20 */ blr - -.global _F39 -_F39: -/* 803CA8A0 003C7800 7C 08 02 A6 */ mflr r0 -/* 803CA8A4 003C7804 54 65 40 2E */ slwi r5, r3, 8 -/* 803CA8A8 003C7808 90 01 00 04 */ stw r0, 4(r1) -/* 803CA8AC 003C780C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803CA8B0 003C7810 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 803CA8B4 003C7814 93 C1 00 18 */ stw r30, 0x18(r1) -/* 803CA8B8 003C7818 7C 9E 23 79 */ or. r30, r4, r4 -/* 803CA8BC 003C781C 3C 80 80 57 */ lis r4, __GBA@ha -/* 803CA8C0 003C7820 38 04 A1 A0 */ addi r0, r4, __GBA@l -/* 803CA8C4 003C7824 7F E0 2A 14 */ add r31, r0, r5 -/* 803CA8C8 003C7828 38 BF 00 40 */ addi r5, r31, 0x40 -/* 803CA8CC 003C782C 40 82 00 10 */ bne lbl_803CA8DC -/* 803CA8D0 003C7830 80 85 00 10 */ lwz r4, 0x10(r5) -/* 803CA8D4 003C7834 38 00 00 00 */ li r0, 0 -/* 803CA8D8 003C7838 98 04 00 00 */ stb r0, 0(r4) -lbl_803CA8DC: -/* 803CA8DC 003C783C 38 00 00 00 */ li r0, 0 -/* 803CA8E0 003C7840 90 05 00 2C */ stw r0, 0x2c(r5) -/* 803CA8E4 003C7844 90 05 00 28 */ stw r0, 0x28(r5) -/* 803CA8E8 003C7848 81 85 00 14 */ lwz r12, 0x14(r5) -/* 803CA8EC 003C784C 28 0C 00 00 */ cmplwi r12, 0 -/* 803CA8F0 003C7850 41 82 00 14 */ beq lbl_803CA904 -/* 803CA8F4 003C7854 90 05 00 14 */ stw r0, 0x14(r5) -/* 803CA8F8 003C7858 7D 88 03 A6 */ mtlr r12 -/* 803CA8FC 003C785C 38 9E 00 00 */ addi r4, r30, 0 -/* 803CA900 003C7860 4E 80 00 21 */ blrl -lbl_803CA904: -/* 803CA904 003C7864 93 DF 00 20 */ stw r30, 0x20(r31) -/* 803CA908 003C7868 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803CA90C 003C786C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 803CA910 003C7870 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 803CA914 003C7874 38 21 00 20 */ addi r1, r1, 0x20 -/* 803CA918 003C7878 7C 08 03 A6 */ mtlr r0 -/* 803CA91C 003C787C 4E 80 00 20 */ blr diff --git a/asm/Dolphin/GBA/GBAGetProcessStatus.s b/asm/Dolphin/GBA/GBAGetProcessStatus.s new file mode 100644 index 00000000..72ce1e7f --- /dev/null +++ b/asm/Dolphin/GBA/GBAGetProcessStatus.s @@ -0,0 +1,104 @@ +.include "macros.inc" + +.section .text, "ax" + +.global GBAGetProcessStatus +GBAGetProcessStatus: +/* 803C98E8 003C6848 7C 08 02 A6 */ mflr r0 +/* 803C98EC 003C684C 3C A0 80 57 */ lis r5, __GBA@ha +/* 803C98F0 003C6850 90 01 00 04 */ stw r0, 4(r1) +/* 803C98F4 003C6854 54 63 40 2E */ slwi r3, r3, 8 +/* 803C98F8 003C6858 38 05 A1 A0 */ addi r0, r5, __GBA@l +/* 803C98FC 003C685C 94 21 FF C8 */ stwu r1, -0x38(r1) +/* 803C9900 003C6860 BE E1 00 14 */ stmw r23, 0x14(r1) +/* 803C9904 003C6864 7E E0 1A 14 */ add r23, r0, r3 +/* 803C9908 003C6868 3B 04 00 00 */ addi r24, r4, 0 +/* 803C990C 003C686C 3B F7 00 40 */ addi r31, r23, 0x40 +/* 803C9910 003C6870 4B FB 7D 51 */ bl OSDisableInterrupts +/* 803C9914 003C6874 80 1F 00 14 */ lwz r0, 0x14(r31) +/* 803C9918 003C6878 3B A3 00 00 */ addi r29, r3, 0 +/* 803C991C 003C687C 28 00 00 00 */ cmplwi r0, 0 +/* 803C9920 003C6880 41 82 01 04 */ beq lbl_803C9A24 +/* 803C9924 003C6884 80 7F 00 34 */ lwz r3, 0x34(r31) +/* 803C9928 003C6888 3B C0 00 00 */ li r30, 0 +/* 803C992C 003C688C 80 1F 00 28 */ lwz r0, 0x28(r31) +/* 803C9930 003C6890 3B 80 00 02 */ li r28, 2 +/* 803C9934 003C6894 1C A3 00 64 */ mulli r5, r3, 0x64 +/* 803C9938 003C6898 80 9F 00 64 */ lwz r4, 0x64(r31) +/* 803C993C 003C689C 80 7F 00 2C */ lwz r3, 0x2c(r31) +/* 803C9940 003C68A0 7C 85 23 D6 */ divw r4, r5, r4 +/* 803C9944 003C68A4 7C 63 F2 78 */ xor r3, r3, r30 +/* 803C9948 003C68A8 7C 00 F2 78 */ xor r0, r0, r30 +/* 803C994C 003C68AC 7C 60 03 79 */ or. r0, r3, r0 +/* 803C9950 003C68B0 54 9B 06 3E */ clrlwi r27, r4, 0x18 +/* 803C9954 003C68B4 41 82 00 C0 */ beq lbl_803C9A14 +/* 803C9958 003C68B8 4B FB BA 51 */ bl OSGetTime +/* 803C995C 003C68BC 3E E0 80 00 */ lis r23, 0x800000F8@ha +/* 803C9960 003C68C0 80 DF 00 2C */ lwz r6, 0x2c(r31) +/* 803C9964 003C68C4 80 17 00 F8 */ lwz r0, 0x800000F8@l(r23) +/* 803C9968 003C68C8 3C A0 10 62 */ lis r5, 0x10624DD3@ha +/* 803C996C 003C68CC 7F 26 20 10 */ subfc r25, r6, r4 +/* 803C9970 003C68D0 80 9F 00 28 */ lwz r4, 0x28(r31) +/* 803C9974 003C68D4 3B E5 4D D3 */ addi r31, r5, 0x10624DD3@l +/* 803C9978 003C68D8 54 00 F0 BE */ srwi r0, r0, 2 +/* 803C997C 003C68DC 7C 1F 00 16 */ mulhwu r0, r31, r0 +/* 803C9980 003C68E0 7F 44 19 10 */ subfe r26, r4, r3 +/* 803C9984 003C68E4 54 06 D1 BE */ srwi r6, r0, 6 +/* 803C9988 003C68E8 38 7A 00 00 */ addi r3, r26, 0 +/* 803C998C 003C68EC 38 99 00 00 */ addi r4, r25, 0 +/* 803C9990 003C68F0 38 A0 00 00 */ li r5, 0 +/* 803C9994 003C68F4 4B FC 02 39 */ bl __div2i +/* 803C9998 003C68F8 38 E0 15 7C */ li r7, 0x157c +/* 803C999C 003C68FC 6C 65 80 00 */ xoris r5, r3, 0x8000 +/* 803C99A0 003C6900 6F C3 80 00 */ xoris r3, r30, 0x8000 +/* 803C99A4 003C6904 7C 07 20 10 */ subfc r0, r7, r4 +/* 803C99A8 003C6908 7C 63 29 10 */ subfe r3, r3, r5 +/* 803C99AC 003C690C 7C 65 29 10 */ subfe r3, r5, r5 +/* 803C99B0 003C6910 7C 63 00 D1 */ neg. r3, r3 +/* 803C99B4 003C6914 41 82 00 50 */ beq lbl_803C9A04 +/* 803C99B8 003C6918 80 77 00 F8 */ lwz r3, 0xf8(r23) +/* 803C99BC 003C691C 7C BE 39 D6 */ mullw r5, r30, r7 +/* 803C99C0 003C6920 54 63 F0 BE */ srwi r3, r3, 2 +/* 803C99C4 003C6924 7C 7F 18 16 */ mulhwu r3, r31, r3 +/* 803C99C8 003C6928 54 66 D1 BE */ srwi r6, r3, 6 +/* 803C99CC 003C692C 7C 66 38 16 */ mulhwu r3, r6, r7 +/* 803C99D0 003C6930 7C A5 1A 14 */ add r5, r5, r3 +/* 803C99D4 003C6934 7C 66 F1 D6 */ mullw r3, r6, r30 +/* 803C99D8 003C6938 7F 60 FE 70 */ srawi r0, r27, 0x1f +/* 803C99DC 003C693C 7C A5 1A 14 */ add r5, r5, r3 +/* 803C99E0 003C6940 7C 60 C9 D6 */ mullw r3, r0, r25 +/* 803C99E4 003C6944 7C 1B C8 16 */ mulhwu r0, r27, r25 +/* 803C99E8 003C6948 7C 63 02 14 */ add r3, r3, r0 +/* 803C99EC 003C694C 7C 1B D1 D6 */ mullw r0, r27, r26 +/* 803C99F0 003C6950 7C 9B C9 D6 */ mullw r4, r27, r25 +/* 803C99F4 003C6954 7C C6 39 D6 */ mullw r6, r6, r7 +/* 803C99F8 003C6958 7C 63 02 14 */ add r3, r3, r0 +/* 803C99FC 003C695C 4B FC 01 D1 */ bl __div2i +/* 803C9A00 003C6960 7C 9B 23 78 */ mr r27, r4 +lbl_803C9A04: +/* 803C9A04 003C6964 57 60 06 3E */ clrlwi r0, r27, 0x18 +/* 803C9A08 003C6968 28 00 00 64 */ cmplwi r0, 0x64 +/* 803C9A0C 003C696C 41 80 00 08 */ blt lbl_803C9A14 +/* 803C9A10 003C6970 3B 60 00 64 */ li r27, 0x64 +lbl_803C9A14: +/* 803C9A14 003C6974 28 18 00 00 */ cmplwi r24, 0 +/* 803C9A18 003C6978 41 82 00 24 */ beq lbl_803C9A3C +/* 803C9A1C 003C697C 9B 78 00 00 */ stb r27, 0(r24) +/* 803C9A20 003C6980 48 00 00 1C */ b lbl_803C9A3C +lbl_803C9A24: +/* 803C9A24 003C6984 80 17 00 1C */ lwz r0, 0x1c(r23) +/* 803C9A28 003C6988 28 00 00 00 */ cmplwi r0, 0 +/* 803C9A2C 003C698C 41 82 00 0C */ beq lbl_803C9A38 +/* 803C9A30 003C6990 3B 80 00 02 */ li r28, 2 +/* 803C9A34 003C6994 48 00 00 08 */ b lbl_803C9A3C +lbl_803C9A38: +/* 803C9A38 003C6998 3B 80 00 00 */ li r28, 0 +lbl_803C9A3C: +/* 803C9A3C 003C699C 7F A3 EB 78 */ mr r3, r29 +/* 803C9A40 003C69A0 4B FB 7C 49 */ bl OSRestoreInterrupts +/* 803C9A44 003C69A4 7F 83 E3 78 */ mr r3, r28 +/* 803C9A48 003C69A8 BA E1 00 14 */ lmw r23, 0x14(r1) +/* 803C9A4C 003C69AC 80 01 00 3C */ lwz r0, 0x3c(r1) +/* 803C9A50 003C69B0 38 21 00 38 */ addi r1, r1, 0x38 +/* 803C9A54 003C69B4 7C 08 03 A6 */ mtlr r0 +/* 803C9A58 003C69B8 4E 80 00 20 */ blr diff --git a/asm/Dolphin/GBA/GBAJoyBoot.s b/asm/Dolphin/GBA/GBAJoyBoot.s new file mode 100644 index 00000000..7bb992ae --- /dev/null +++ b/asm/Dolphin/GBA/GBAJoyBoot.s @@ -0,0 +1,1078 @@ +.include "macros.inc" + +.section .data, "wa" +.balign 8 + +D54: + .byte 0x18 + .byte 0xFC + .byte 0xC0 + .byte 0x80 + .byte 0x7f + .byte 0x40 + .byte 0x3f + .byte 0x01 + .byte 0x00 + .asciz "// Coded by Kawasedo" + .byte 0x00 + .byte 0x02 + .byte 0x03 + .byte 0x04 + .byte 0x05 + .byte 0x06 + .byte 0x07 + .byte 0x08 + .byte 0xac + .byte 0xc4 + .byte 0xf8 + .byte 0x08 + .byte 0x10 + .byte 0xbf + .byte 0x18 + .byte 0x00 + .byte 0x00 + .byte 0x00 + +.section .text, "ax" + +.global GBAJoyBootAsync +GBAJoyBootAsync: +/* 803C9A5C 003C69BC 7C 08 02 A6 */ mflr r0 +/* 803C9A60 003C69C0 90 01 00 04 */ stw r0, 4(r1) +/* 803C9A64 003C69C4 54 60 00 3B */ rlwinm. r0, r3, 0, 0, 0x1d +/* 803C9A68 003C69C8 94 21 FF B8 */ stwu r1, -0x48(r1) +/* 803C9A6C 003C69CC BF 01 00 28 */ stmw r24, 0x28(r1) +/* 803C9A70 003C69D0 3B 03 00 00 */ addi r24, r3, 0 +/* 803C9A74 003C69D4 3C 60 80 57 */ lis r3, __GBA@ha +/* 803C9A78 003C69D8 57 0A 40 2E */ slwi r10, r24, 8 +/* 803C9A7C 003C69DC 38 03 A1 A0 */ addi r0, r3, __GBA@l +/* 803C9A80 003C69E0 7C 60 52 14 */ add r3, r0, r10 +/* 803C9A84 003C69E4 3B 24 00 00 */ addi r25, r4, 0 +/* 803C9A88 003C69E8 3B 45 00 00 */ addi r26, r5, 0 +/* 803C9A8C 003C69EC 3B 66 00 00 */ addi r27, r6, 0 +/* 803C9A90 003C69F0 3B 87 00 00 */ addi r28, r7, 0 +/* 803C9A94 003C69F4 3B A8 00 00 */ addi r29, r8, 0 +/* 803C9A98 003C69F8 3B C9 00 00 */ addi r30, r9, 0 +/* 803C9A9C 003C69FC 3B E3 00 40 */ addi r31, r3, 0x40 +/* 803C9AA0 003C6A00 41 82 00 0C */ beq lbl_803C9AAC +/* 803C9AA4 003C6A04 38 60 00 04 */ li r3, 4 +/* 803C9AA8 003C6A08 48 00 00 DC */ b lbl_803C9B84 +lbl_803C9AAC: +/* 803C9AAC 003C6A0C 2C 1C 00 00 */ cmpwi r28, 0 +/* 803C9AB0 003C6A10 41 82 00 10 */ beq lbl_803C9AC0 +/* 803C9AB4 003C6A14 3C 00 00 04 */ lis r0, 4 +/* 803C9AB8 003C6A18 7C 00 E0 00 */ cmpw r0, r28 +/* 803C9ABC 003C6A1C 40 80 00 0C */ bge lbl_803C9AC8 +lbl_803C9AC0: +/* 803C9AC0 003C6A20 38 60 00 04 */ li r3, 4 +/* 803C9AC4 003C6A24 48 00 00 C0 */ b lbl_803C9B84 +lbl_803C9AC8: +/* 803C9AC8 003C6A28 2C 1A FF FC */ cmpwi r26, -4 +/* 803C9ACC 003C6A2C 41 80 00 0C */ blt lbl_803C9AD8 +/* 803C9AD0 003C6A30 2C 1A 00 04 */ cmpwi r26, 4 +/* 803C9AD4 003C6A34 40 81 00 0C */ ble lbl_803C9AE0 +lbl_803C9AD8: +/* 803C9AD8 003C6A38 38 60 00 04 */ li r3, 4 +/* 803C9ADC 003C6A3C 48 00 00 A8 */ b lbl_803C9B84 +lbl_803C9AE0: +/* 803C9AE0 003C6A40 2C 19 00 00 */ cmpwi r25, 0 +/* 803C9AE4 003C6A44 41 80 00 0C */ blt lbl_803C9AF0 +/* 803C9AE8 003C6A48 2C 19 00 06 */ cmpwi r25, 6 +/* 803C9AEC 003C6A4C 40 81 00 0C */ ble lbl_803C9AF8 +lbl_803C9AF0: +/* 803C9AF0 003C6A50 38 60 00 04 */ li r3, 4 +/* 803C9AF4 003C6A54 48 00 00 90 */ b lbl_803C9B84 +lbl_803C9AF8: +/* 803C9AF8 003C6A58 88 7B 00 AC */ lbz r3, 0xac(r27) +/* 803C9AFC 003C6A5C 88 1B 00 AD */ lbz r0, 0xad(r27) +/* 803C9B00 003C6A60 88 9B 00 AE */ lbz r4, 0xae(r27) +/* 803C9B04 003C6A64 7C 03 01 D6 */ mullw r0, r3, r0 +/* 803C9B08 003C6A68 88 7B 00 AF */ lbz r3, 0xaf(r27) +/* 803C9B0C 003C6A6C 7C 04 01 D6 */ mullw r0, r4, r0 +/* 803C9B10 003C6A70 7C 03 01 D7 */ mullw. r0, r3, r0 +/* 803C9B14 003C6A74 40 82 00 0C */ bne lbl_803C9B20 +/* 803C9B18 003C6A78 38 60 00 04 */ li r3, 4 +/* 803C9B1C 003C6A7C 48 00 00 68 */ b lbl_803C9B84 +lbl_803C9B20: +/* 803C9B20 003C6A80 38 78 00 00 */ addi r3, r24, 0 +/* 803C9B24 003C6A84 38 81 00 24 */ addi r4, r1, 0x24 +/* 803C9B28 003C6A88 4B FF FD C1 */ bl GBAGetProcessStatus +/* 803C9B2C 003C6A8C 2C 03 00 00 */ cmpwi r3, 0 +/* 803C9B30 003C6A90 41 82 00 08 */ beq lbl_803C9B38 +/* 803C9B34 003C6A94 48 00 00 50 */ b lbl_803C9B84 +lbl_803C9B38: +/* 803C9B38 003C6A98 93 3F 00 00 */ stw r25, 0(r31) +/* 803C9B3C 003C6A9C 3C 80 80 3F */ lis r4, D54@ha +/* 803C9B40 003C6AA0 3C 60 80 3D */ lis r3, _F23@ha +/* 803C9B44 003C6AA4 93 5F 00 04 */ stw r26, 4(r31) +/* 803C9B48 003C6AA8 38 A3 9B 98 */ addi r5, r3, _F23@l +/* 803C9B4C 003C6AAC 38 84 71 70 */ addi r4, r4, D54@l +/* 803C9B50 003C6AB0 93 7F 00 08 */ stw r27, 8(r31) +/* 803C9B54 003C6AB4 7F 03 C3 78 */ mr r3, r24 +/* 803C9B58 003C6AB8 93 9F 00 0C */ stw r28, 0xc(r31) +/* 803C9B5C 003C6ABC 93 BF 00 10 */ stw r29, 0x10(r31) +/* 803C9B60 003C6AC0 93 DF 00 14 */ stw r30, 0x14(r31) +/* 803C9B64 003C6AC4 88 04 00 08 */ lbz r0, 8(r4) +/* 803C9B68 003C6AC8 90 1F 00 34 */ stw r0, 0x34(r31) +/* 803C9B6C 003C6ACC 80 9F 00 10 */ lwz r4, 0x10(r31) +/* 803C9B70 003C6AD0 4B FF FB 81 */ bl GBAGetStatusAsync +/* 803C9B74 003C6AD4 2C 03 00 00 */ cmpwi r3, 0 +/* 803C9B78 003C6AD8 41 82 00 0C */ beq lbl_803C9B84 +/* 803C9B7C 003C6ADC 38 00 00 00 */ li r0, 0 +/* 803C9B80 003C6AE0 90 1F 00 14 */ stw r0, 0x14(r31) +lbl_803C9B84: +/* 803C9B84 003C6AE4 BB 01 00 28 */ lmw r24, 0x28(r1) +/* 803C9B88 003C6AE8 80 01 00 4C */ lwz r0, 0x4c(r1) +/* 803C9B8C 003C6AEC 38 21 00 48 */ addi r1, r1, 0x48 +/* 803C9B90 003C6AF0 7C 08 03 A6 */ mtlr r0 +/* 803C9B94 003C6AF4 4E 80 00 20 */ blr + +.global _F23 +_F23: +/* 803C9B98 003C6AF8 7C 08 02 A6 */ mflr r0 +/* 803C9B9C 003C6AFC 90 01 00 04 */ stw r0, 4(r1) +/* 803C9BA0 003C6B00 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803C9BA4 003C6B04 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803C9BA8 003C6B08 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803C9BAC 003C6B0C 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803C9BB0 003C6B10 7C 9D 23 79 */ or. r29, r4, r4 +/* 803C9BB4 003C6B14 93 81 00 18 */ stw r28, 0x18(r1) +/* 803C9BB8 003C6B18 3B 83 00 00 */ addi r28, r3, 0 +/* 803C9BBC 003C6B1C 3C 60 80 57 */ lis r3, __GBA@ha +/* 803C9BC0 003C6B20 57 84 40 2E */ slwi r4, r28, 8 +/* 803C9BC4 003C6B24 38 03 A1 A0 */ addi r0, r3, __GBA@l +/* 803C9BC8 003C6B28 7F E0 22 14 */ add r31, r0, r4 +/* 803C9BCC 003C6B2C 3B DF 00 40 */ addi r30, r31, 0x40 +/* 803C9BD0 003C6B30 40 82 00 20 */ bne lbl_803C9BF0 +/* 803C9BD4 003C6B34 3C 60 80 3D */ lis r3, _F25@ha +/* 803C9BD8 003C6B38 80 9E 00 10 */ lwz r4, 0x10(r30) +/* 803C9BDC 003C6B3C 38 A3 9C 40 */ addi r5, r3, _F25@l +/* 803C9BE0 003C6B40 38 7C 00 00 */ addi r3, r28, 0 +/* 803C9BE4 003C6B44 4B FF FC 01 */ bl GBAResetAsync +/* 803C9BE8 003C6B48 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803C9BEC 003C6B4C 41 82 00 30 */ beq lbl_803C9C1C +lbl_803C9BF0: +/* 803C9BF0 003C6B50 38 00 00 00 */ li r0, 0 +/* 803C9BF4 003C6B54 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803C9BF8 003C6B58 90 1E 00 28 */ stw r0, 0x28(r30) +/* 803C9BFC 003C6B5C 81 9E 00 14 */ lwz r12, 0x14(r30) +/* 803C9C00 003C6B60 28 0C 00 00 */ cmplwi r12, 0 +/* 803C9C04 003C6B64 41 82 00 18 */ beq lbl_803C9C1C +/* 803C9C08 003C6B68 90 1E 00 14 */ stw r0, 0x14(r30) +/* 803C9C0C 003C6B6C 7D 88 03 A6 */ mtlr r12 +/* 803C9C10 003C6B70 38 7C 00 00 */ addi r3, r28, 0 +/* 803C9C14 003C6B74 38 9D 00 00 */ addi r4, r29, 0 +/* 803C9C18 003C6B78 4E 80 00 21 */ blrl +lbl_803C9C1C: +/* 803C9C1C 003C6B7C 93 BF 00 20 */ stw r29, 0x20(r31) +/* 803C9C20 003C6B80 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803C9C24 003C6B84 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803C9C28 003C6B88 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803C9C2C 003C6B8C 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803C9C30 003C6B90 83 81 00 18 */ lwz r28, 0x18(r1) +/* 803C9C34 003C6B94 38 21 00 28 */ addi r1, r1, 0x28 +/* 803C9C38 003C6B98 7C 08 03 A6 */ mtlr r0 +/* 803C9C3C 003C6B9C 4E 80 00 20 */ blr + +.global _F25 +_F25: +/* 803C9C40 003C6BA0 7C 08 02 A6 */ mflr r0 +/* 803C9C44 003C6BA4 90 01 00 04 */ stw r0, 4(r1) +/* 803C9C48 003C6BA8 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803C9C4C 003C6BAC 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803C9C50 003C6BB0 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803C9C54 003C6BB4 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803C9C58 003C6BB8 7C 9D 23 79 */ or. r29, r4, r4 +/* 803C9C5C 003C6BBC 93 81 00 18 */ stw r28, 0x18(r1) +/* 803C9C60 003C6BC0 3B 83 00 00 */ addi r28, r3, 0 +/* 803C9C64 003C6BC4 3C 60 80 57 */ lis r3, __GBA@ha +/* 803C9C68 003C6BC8 57 84 40 2E */ slwi r4, r28, 8 +/* 803C9C6C 003C6BCC 38 03 A1 A0 */ addi r0, r3, __GBA@l +/* 803C9C70 003C6BD0 7F E0 22 14 */ add r31, r0, r4 +/* 803C9C74 003C6BD4 3B DF 00 40 */ addi r30, r31, 0x40 +/* 803C9C78 003C6BD8 40 82 00 24 */ bne lbl_803C9C9C +/* 803C9C7C 003C6BDC 80 9E 00 10 */ lwz r4, 0x10(r30) +/* 803C9C80 003C6BE0 3C 60 80 3F */ lis r3, D54@ha +/* 803C9C84 003C6BE4 38 63 71 70 */ addi r3, r3, D54@l +/* 803C9C88 003C6BE8 88 84 00 00 */ lbz r4, 0(r4) +/* 803C9C8C 003C6BEC 88 03 00 25 */ lbz r0, 0x25(r3) +/* 803C9C90 003C6BF0 7C 04 00 40 */ cmplw r4, r0 +/* 803C9C94 003C6BF4 41 82 00 08 */ beq lbl_803C9C9C +/* 803C9C98 003C6BF8 3B A0 00 03 */ li r29, 3 +lbl_803C9C9C: +/* 803C9C9C 003C6BFC 2C 1D 00 00 */ cmpwi r29, 0 +/* 803C9CA0 003C6C00 40 82 00 20 */ bne lbl_803C9CC0 +/* 803C9CA4 003C6C04 3C 60 80 3D */ lis r3, _F27@ha +/* 803C9CA8 003C6C08 80 9E 00 10 */ lwz r4, 0x10(r30) +/* 803C9CAC 003C6C0C 38 A3 9D 10 */ addi r5, r3, _F27@l +/* 803C9CB0 003C6C10 38 7C 00 00 */ addi r3, r28, 0 +/* 803C9CB4 003C6C14 4B FF FA 3D */ bl GBAGetStatusAsync +/* 803C9CB8 003C6C18 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803C9CBC 003C6C1C 41 82 00 30 */ beq lbl_803C9CEC +lbl_803C9CC0: +/* 803C9CC0 003C6C20 38 00 00 00 */ li r0, 0 +/* 803C9CC4 003C6C24 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803C9CC8 003C6C28 90 1E 00 28 */ stw r0, 0x28(r30) +/* 803C9CCC 003C6C2C 81 9E 00 14 */ lwz r12, 0x14(r30) +/* 803C9CD0 003C6C30 28 0C 00 00 */ cmplwi r12, 0 +/* 803C9CD4 003C6C34 41 82 00 18 */ beq lbl_803C9CEC +/* 803C9CD8 003C6C38 90 1E 00 14 */ stw r0, 0x14(r30) +/* 803C9CDC 003C6C3C 7D 88 03 A6 */ mtlr r12 +/* 803C9CE0 003C6C40 38 7C 00 00 */ addi r3, r28, 0 +/* 803C9CE4 003C6C44 38 9D 00 00 */ addi r4, r29, 0 +/* 803C9CE8 003C6C48 4E 80 00 21 */ blrl +lbl_803C9CEC: +/* 803C9CEC 003C6C4C 93 BF 00 20 */ stw r29, 0x20(r31) +/* 803C9CF0 003C6C50 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803C9CF4 003C6C54 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803C9CF8 003C6C58 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803C9CFC 003C6C5C 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803C9D00 003C6C60 83 81 00 18 */ lwz r28, 0x18(r1) +/* 803C9D04 003C6C64 38 21 00 28 */ addi r1, r1, 0x28 +/* 803C9D08 003C6C68 7C 08 03 A6 */ mtlr r0 +/* 803C9D0C 003C6C6C 4E 80 00 20 */ blr + +.global _F27 +_F27: +/* 803C9D10 003C6C70 7C 08 02 A6 */ mflr r0 +/* 803C9D14 003C6C74 90 01 00 04 */ stw r0, 4(r1) +/* 803C9D18 003C6C78 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803C9D1C 003C6C7C 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803C9D20 003C6C80 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803C9D24 003C6C84 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803C9D28 003C6C88 7C 9D 23 79 */ or. r29, r4, r4 +/* 803C9D2C 003C6C8C 93 81 00 18 */ stw r28, 0x18(r1) +/* 803C9D30 003C6C90 3B 83 00 00 */ addi r28, r3, 0 +/* 803C9D34 003C6C94 3C 60 80 57 */ lis r3, __GBA@ha +/* 803C9D38 003C6C98 57 84 40 2E */ slwi r4, r28, 8 +/* 803C9D3C 003C6C9C 38 03 A1 A0 */ addi r0, r3, __GBA@l +/* 803C9D40 003C6CA0 7F E0 22 14 */ add r31, r0, r4 +/* 803C9D44 003C6CA4 3B DF 00 40 */ addi r30, r31, 0x40 +/* 803C9D48 003C6CA8 40 82 00 20 */ bne lbl_803C9D68 +/* 803C9D4C 003C6CAC 80 9E 00 10 */ lwz r4, 0x10(r30) +/* 803C9D50 003C6CB0 3C 60 80 3F */ lis r3, D54@ha +/* 803C9D54 003C6CB4 88 03 71 70 */ lbz r0, D54@l(r3) +/* 803C9D58 003C6CB8 88 84 00 00 */ lbz r4, 0(r4) +/* 803C9D5C 003C6CBC 7C 04 00 40 */ cmplw r4, r0 +/* 803C9D60 003C6CC0 41 82 00 08 */ beq lbl_803C9D68 +/* 803C9D64 003C6CC4 3B A0 00 03 */ li r29, 3 +lbl_803C9D68: +/* 803C9D68 003C6CC8 2C 1D 00 00 */ cmpwi r29, 0 +/* 803C9D6C 003C6CCC 40 82 00 24 */ bne lbl_803C9D90 +/* 803C9D70 003C6CD0 3C 60 80 3D */ lis r3, _F29@ha +/* 803C9D74 003C6CD4 80 BE 00 10 */ lwz r5, 0x10(r30) +/* 803C9D78 003C6CD8 38 C3 9D E0 */ addi r6, r3, _F29@l +/* 803C9D7C 003C6CDC 38 7C 00 00 */ addi r3, r28, 0 +/* 803C9D80 003C6CE0 38 9E 00 18 */ addi r4, r30, 0x18 +/* 803C9D84 003C6CE4 48 00 0B FD */ bl GBAReadAsync +/* 803C9D88 003C6CE8 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803C9D8C 003C6CEC 41 82 00 30 */ beq lbl_803C9DBC +lbl_803C9D90: +/* 803C9D90 003C6CF0 38 00 00 00 */ li r0, 0 +/* 803C9D94 003C6CF4 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803C9D98 003C6CF8 90 1E 00 28 */ stw r0, 0x28(r30) +/* 803C9D9C 003C6CFC 81 9E 00 14 */ lwz r12, 0x14(r30) +/* 803C9DA0 003C6D00 28 0C 00 00 */ cmplwi r12, 0 +/* 803C9DA4 003C6D04 41 82 00 18 */ beq lbl_803C9DBC +/* 803C9DA8 003C6D08 90 1E 00 14 */ stw r0, 0x14(r30) +/* 803C9DAC 003C6D0C 7D 88 03 A6 */ mtlr r12 +/* 803C9DB0 003C6D10 38 7C 00 00 */ addi r3, r28, 0 +/* 803C9DB4 003C6D14 38 9D 00 00 */ addi r4, r29, 0 +/* 803C9DB8 003C6D18 4E 80 00 21 */ blrl +lbl_803C9DBC: +/* 803C9DBC 003C6D1C 93 BF 00 20 */ stw r29, 0x20(r31) +/* 803C9DC0 003C6D20 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803C9DC4 003C6D24 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803C9DC8 003C6D28 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803C9DCC 003C6D2C 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803C9DD0 003C6D30 83 81 00 18 */ lwz r28, 0x18(r1) +/* 803C9DD4 003C6D34 38 21 00 28 */ addi r1, r1, 0x28 +/* 803C9DD8 003C6D38 7C 08 03 A6 */ mtlr r0 +/* 803C9DDC 003C6D3C 4E 80 00 20 */ blr + +.global _F29 +_F29: +/* 803C9DE0 003C6D40 7C 08 02 A6 */ mflr r0 +/* 803C9DE4 003C6D44 54 65 40 2E */ slwi r5, r3, 8 +/* 803C9DE8 003C6D48 90 01 00 04 */ stw r0, 4(r1) +/* 803C9DEC 003C6D4C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803C9DF0 003C6D50 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803C9DF4 003C6D54 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803C9DF8 003C6D58 7C 9E 23 79 */ or. r30, r4, r4 +/* 803C9DFC 003C6D5C 3C 80 80 57 */ lis r4, __GBA@ha +/* 803C9E00 003C6D60 38 04 A1 A0 */ addi r0, r4, __GBA@l +/* 803C9E04 003C6D64 7F E0 2A 14 */ add r31, r0, r5 +/* 803C9E08 003C6D68 38 9F 00 40 */ addi r4, r31, 0x40 +/* 803C9E0C 003C6D6C 40 82 00 10 */ bne lbl_803C9E1C +/* 803C9E10 003C6D70 38 84 00 18 */ addi r4, r4, 0x18 +/* 803C9E14 003C6D74 48 00 12 B1 */ bl __GBAX02 +/* 803C9E18 003C6D78 48 00 00 2C */ b lbl_803C9E44 +lbl_803C9E1C: +/* 803C9E1C 003C6D7C 38 00 00 00 */ li r0, 0 +/* 803C9E20 003C6D80 90 04 00 2C */ stw r0, 0x2c(r4) +/* 803C9E24 003C6D84 90 04 00 28 */ stw r0, 0x28(r4) +/* 803C9E28 003C6D88 81 84 00 14 */ lwz r12, 0x14(r4) +/* 803C9E2C 003C6D8C 28 0C 00 00 */ cmplwi r12, 0 +/* 803C9E30 003C6D90 41 82 00 14 */ beq lbl_803C9E44 +/* 803C9E34 003C6D94 90 04 00 14 */ stw r0, 0x14(r4) +/* 803C9E38 003C6D98 7D 88 03 A6 */ mtlr r12 +/* 803C9E3C 003C6D9C 38 9E 00 00 */ addi r4, r30, 0 +/* 803C9E40 003C6DA0 4E 80 00 21 */ blrl +lbl_803C9E44: +/* 803C9E44 003C6DA4 93 DF 00 20 */ stw r30, 0x20(r31) +/* 803C9E48 003C6DA8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803C9E4C 003C6DAC 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803C9E50 003C6DB0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803C9E54 003C6DB4 38 21 00 20 */ addi r1, r1, 0x20 +/* 803C9E58 003C6DB8 7C 08 03 A6 */ mtlr r0 +/* 803C9E5C 003C6DBC 4E 80 00 20 */ blr + +.global __GBAX01 +__GBAX01: +/* 803C9E60 003C6DC0 7C 08 02 A6 */ mflr r0 +/* 803C9E64 003C6DC4 3C A0 80 3F */ lis r5, D54@ha +/* 803C9E68 003C6DC8 90 01 00 04 */ stw r0, 4(r1) +/* 803C9E6C 003C6DCC 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803C9E70 003C6DD0 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803C9E74 003C6DD4 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803C9E78 003C6DD8 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803C9E7C 003C6DDC 3B A3 00 00 */ addi r29, r3, 0 +/* 803C9E80 003C6DE0 3C 60 80 57 */ lis r3, __GBA@ha +/* 803C9E84 003C6DE4 93 81 00 18 */ stw r28, 0x18(r1) +/* 803C9E88 003C6DE8 7C 9C 23 79 */ or. r28, r4, r4 +/* 803C9E8C 003C6DEC 38 03 A1 A0 */ addi r0, r3, __GBA@l +/* 803C9E90 003C6DF0 57 A4 40 2E */ slwi r4, r29, 8 +/* 803C9E94 003C6DF4 7F E0 22 14 */ add r31, r0, r4 +/* 803C9E98 003C6DF8 38 65 71 70 */ addi r3, r5, D54@l +/* 803C9E9C 003C6DFC 3B DF 00 40 */ addi r30, r31, 0x40 +/* 803C9EA0 003C6E00 40 82 01 44 */ bne lbl_803C9FE4 +/* 803C9EA4 003C6E04 80 9F 00 F8 */ lwz r4, 0xf8(r31) +/* 803C9EA8 003C6E08 80 04 00 20 */ lwz r0, 0x20(r4) +/* 803C9EAC 003C6E0C 90 1E 00 58 */ stw r0, 0x58(r30) +/* 803C9EB0 003C6E10 80 9F 00 F8 */ lwz r4, 0xf8(r31) +/* 803C9EB4 003C6E14 80 04 00 24 */ lwz r0, 0x24(r4) +/* 803C9EB8 003C6E18 90 1E 00 5C */ stw r0, 0x5c(r30) +/* 803C9EBC 003C6E1C 88 1E 00 1B */ lbz r0, 0x1b(r30) +/* 803C9EC0 003C6E20 28 00 00 00 */ cmplwi r0, 0 +/* 803C9EC4 003C6E24 41 82 00 44 */ beq lbl_803C9F08 +/* 803C9EC8 003C6E28 88 1E 00 1A */ lbz r0, 0x1a(r30) +/* 803C9ECC 003C6E2C 28 00 00 00 */ cmplwi r0, 0 +/* 803C9ED0 003C6E30 41 82 00 38 */ beq lbl_803C9F08 +/* 803C9ED4 003C6E34 88 03 00 05 */ lbz r0, 5(r3) +/* 803C9ED8 003C6E38 80 9E 00 58 */ lwz r4, 0x58(r30) +/* 803C9EDC 003C6E3C 54 00 48 2C */ slwi r0, r0, 9 +/* 803C9EE0 003C6E40 7C 80 00 39 */ and. r0, r4, r0 +/* 803C9EE4 003C6E44 41 82 00 24 */ beq lbl_803C9F08 +/* 803C9EE8 003C6E48 88 1E 00 19 */ lbz r0, 0x19(r30) +/* 803C9EEC 003C6E4C 28 00 00 00 */ cmplwi r0, 0 +/* 803C9EF0 003C6E50 41 82 00 18 */ beq lbl_803C9F08 +/* 803C9EF4 003C6E54 54 80 8B FF */ rlwinm. r0, r4, 0x11, 0xf, 0x1f +/* 803C9EF8 003C6E58 41 82 00 10 */ beq lbl_803C9F08 +/* 803C9EFC 003C6E5C 88 1E 00 18 */ lbz r0, 0x18(r30) +/* 803C9F00 003C6E60 28 00 00 00 */ cmplwi r0, 0 +/* 803C9F04 003C6E64 40 82 00 0C */ bne lbl_803C9F10 +lbl_803C9F08: +/* 803C9F08 003C6E68 3B 80 00 03 */ li r28, 3 +/* 803C9F0C 003C6E6C 48 00 00 D8 */ b lbl_803C9FE4 +lbl_803C9F10: +/* 803C9F10 003C6E70 88 A3 00 24 */ lbz r5, 0x24(r3) +/* 803C9F14 003C6E74 80 9E 00 0C */ lwz r4, 0xc(r30) +/* 803C9F18 003C6E78 88 03 00 24 */ lbz r0, 0x24(r3) +/* 803C9F1C 003C6E7C 7C A5 28 F8 */ nor r5, r5, r5 +/* 803C9F20 003C6E80 7C 04 02 14 */ add r0, r4, r0 +/* 803C9F24 003C6E84 7C A0 00 38 */ and r0, r5, r0 +/* 803C9F28 003C6E88 90 1E 00 20 */ stw r0, 0x20(r30) +/* 803C9F2C 003C6E8C 88 A3 00 14 */ lbz r5, 0x14(r3) +/* 803C9F30 003C6E90 88 83 00 21 */ lbz r4, 0x21(r3) +/* 803C9F34 003C6E94 80 1E 00 20 */ lwz r0, 0x20(r30) +/* 803C9F38 003C6E98 7C A4 20 30 */ slw r4, r5, r4 +/* 803C9F3C 003C6E9C 7C 00 20 00 */ cmpw r0, r4 +/* 803C9F40 003C6EA0 40 80 00 08 */ bge lbl_803C9F48 +/* 803C9F44 003C6EA4 90 9E 00 20 */ stw r4, 0x20(r30) +lbl_803C9F48: +/* 803C9F48 003C6EA8 80 1E 00 20 */ lwz r0, 0x20(r30) +/* 803C9F4C 003C6EAC 90 1E 00 64 */ stw r0, 0x64(r30) +/* 803C9F50 003C6EB0 80 1E 00 20 */ lwz r0, 0x20(r30) +/* 803C9F54 003C6EB4 7C 04 00 50 */ subf r0, r4, r0 +/* 803C9F58 003C6EB8 90 1E 00 20 */ stw r0, 0x20(r30) +/* 803C9F5C 003C6EBC 80 9E 00 20 */ lwz r4, 0x20(r30) +/* 803C9F60 003C6EC0 88 03 00 20 */ lbz r0, 0x20(r3) +/* 803C9F64 003C6EC4 7C 80 06 30 */ sraw r0, r4, r0 +/* 803C9F68 003C6EC8 90 1E 00 20 */ stw r0, 0x20(r30) +/* 803C9F6C 003C6ECC 80 1E 00 5C */ lwz r0, 0x5c(r30) +/* 803C9F70 003C6ED0 98 1E 00 1C */ stb r0, 0x1c(r30) +/* 803C9F74 003C6ED4 80 1E 00 5C */ lwz r0, 0x5c(r30) +/* 803C9F78 003C6ED8 7C 00 46 70 */ srawi r0, r0, 8 +/* 803C9F7C 003C6EDC 98 1E 00 1D */ stb r0, 0x1d(r30) +/* 803C9F80 003C6EE0 80 1E 00 5C */ lwz r0, 0x5c(r30) +/* 803C9F84 003C6EE4 7C 00 C6 70 */ srawi r0, r0, 0x18 +/* 803C9F88 003C6EE8 98 1E 00 1F */ stb r0, 0x1f(r30) +/* 803C9F8C 003C6EEC 80 1E 00 5C */ lwz r0, 0x5c(r30) +/* 803C9F90 003C6EF0 7C 00 86 70 */ srawi r0, r0, 0x10 +/* 803C9F94 003C6EF4 98 1E 00 1E */ stb r0, 0x1e(r30) +/* 803C9F98 003C6EF8 88 83 00 26 */ lbz r4, 0x26(r3) +/* 803C9F9C 003C6EFC 88 03 00 22 */ lbz r0, 0x22(r3) +/* 803C9FA0 003C6F00 38 84 00 01 */ addi r4, r4, 1 +/* 803C9FA4 003C6F04 7C 80 00 30 */ slw r0, r4, r0 +/* 803C9FA8 003C6F08 90 1E 00 38 */ stw r0, 0x38(r30) +/* 803C9FAC 003C6F0C 88 03 00 08 */ lbz r0, 8(r3) +/* 803C9FB0 003C6F10 90 1E 00 34 */ stw r0, 0x34(r30) +/* 803C9FB4 003C6F14 4B FB B3 F5 */ bl OSGetTime +/* 803C9FB8 003C6F18 90 9E 00 2C */ stw r4, 0x2c(r30) +/* 803C9FBC 003C6F1C 3C 80 80 3D */ lis r4, _F31@ha +/* 803C9FC0 003C6F20 38 C4 A0 3C */ addi r6, r4, _F31@l +/* 803C9FC4 003C6F24 90 7E 00 28 */ stw r3, 0x28(r30) +/* 803C9FC8 003C6F28 38 00 00 01 */ li r0, 1 +/* 803C9FCC 003C6F2C 38 7D 00 00 */ addi r3, r29, 0 +/* 803C9FD0 003C6F30 90 1E 00 30 */ stw r0, 0x30(r30) +/* 803C9FD4 003C6F34 38 9E 00 1C */ addi r4, r30, 0x1c +/* 803C9FD8 003C6F38 80 BE 00 10 */ lwz r5, 0x10(r30) +/* 803C9FDC 003C6F3C 48 00 0A D5 */ bl GBAWriteAsync +/* 803C9FE0 003C6F40 7C 7C 1B 78 */ mr r28, r3 +lbl_803C9FE4: +/* 803C9FE4 003C6F44 2C 1C 00 00 */ cmpwi r28, 0 +/* 803C9FE8 003C6F48 41 82 00 30 */ beq lbl_803CA018 +/* 803C9FEC 003C6F4C 38 00 00 00 */ li r0, 0 +/* 803C9FF0 003C6F50 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803C9FF4 003C6F54 90 1E 00 28 */ stw r0, 0x28(r30) +/* 803C9FF8 003C6F58 81 9E 00 14 */ lwz r12, 0x14(r30) +/* 803C9FFC 003C6F5C 28 0C 00 00 */ cmplwi r12, 0 +/* 803CA000 003C6F60 41 82 00 18 */ beq lbl_803CA018 +/* 803CA004 003C6F64 90 1E 00 14 */ stw r0, 0x14(r30) +/* 803CA008 003C6F68 7D 88 03 A6 */ mtlr r12 +/* 803CA00C 003C6F6C 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA010 003C6F70 38 9C 00 00 */ addi r4, r28, 0 +/* 803CA014 003C6F74 4E 80 00 21 */ blrl +lbl_803CA018: +/* 803CA018 003C6F78 93 9F 00 20 */ stw r28, 0x20(r31) +/* 803CA01C 003C6F7C 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803CA020 003C6F80 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803CA024 003C6F84 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803CA028 003C6F88 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803CA02C 003C6F8C 83 81 00 18 */ lwz r28, 0x18(r1) +/* 803CA030 003C6F90 38 21 00 28 */ addi r1, r1, 0x28 +/* 803CA034 003C6F94 7C 08 03 A6 */ mtlr r0 +/* 803CA038 003C6F98 4E 80 00 20 */ blr + +.global _F31 +_F31: +/* 803CA03C 003C6F9C 7C 08 02 A6 */ mflr r0 +/* 803CA040 003C6FA0 3C A0 80 3F */ lis r5, D54@ha +/* 803CA044 003C6FA4 90 01 00 04 */ stw r0, 4(r1) +/* 803CA048 003C6FA8 94 21 FF C8 */ stwu r1, -0x38(r1) +/* 803CA04C 003C6FAC 93 E1 00 34 */ stw r31, 0x34(r1) +/* 803CA050 003C6FB0 93 C1 00 30 */ stw r30, 0x30(r1) +/* 803CA054 003C6FB4 93 A1 00 2C */ stw r29, 0x2c(r1) +/* 803CA058 003C6FB8 3B A3 00 00 */ addi r29, r3, 0 +/* 803CA05C 003C6FBC 3C 60 80 57 */ lis r3, __GBA@ha +/* 803CA060 003C6FC0 93 81 00 28 */ stw r28, 0x28(r1) +/* 803CA064 003C6FC4 7C 9C 23 79 */ or. r28, r4, r4 +/* 803CA068 003C6FC8 38 03 A1 A0 */ addi r0, r3, __GBA@l +/* 803CA06C 003C6FCC 57 A4 40 2E */ slwi r4, r29, 8 +/* 803CA070 003C6FD0 7F E0 22 14 */ add r31, r0, r4 +/* 803CA074 003C6FD4 38 65 71 70 */ addi r3, r5, D54@l +/* 803CA078 003C6FD8 3B DF 00 40 */ addi r30, r31, 0x40 +/* 803CA07C 003C6FDC 40 82 04 00 */ bne lbl_803CA47C +/* 803CA080 003C6FE0 80 1E 00 30 */ lwz r0, 0x30(r30) +/* 803CA084 003C6FE4 2C 00 00 00 */ cmpwi r0, 0 +/* 803CA088 003C6FE8 41 82 00 10 */ beq lbl_803CA098 +/* 803CA08C 003C6FEC 38 00 00 00 */ li r0, 0 +/* 803CA090 003C6FF0 90 1E 00 30 */ stw r0, 0x30(r30) +/* 803CA094 003C6FF4 48 00 00 60 */ b lbl_803CA0F4 +lbl_803CA098: +/* 803CA098 003C6FF8 80 9E 00 10 */ lwz r4, 0x10(r30) +/* 803CA09C 003C6FFC 88 03 00 14 */ lbz r0, 0x14(r3) +/* 803CA0A0 003C7000 88 A4 00 00 */ lbz r5, 0(r4) +/* 803CA0A4 003C7004 7C A0 00 39 */ and. r0, r5, r0 +/* 803CA0A8 003C7008 41 82 00 30 */ beq lbl_803CA0D8 +/* 803CA0AC 003C700C 88 83 00 2A */ lbz r4, 0x2a(r3) +/* 803CA0B0 003C7010 88 03 00 21 */ lbz r0, 0x21(r3) +/* 803CA0B4 003C7014 7C A6 20 38 */ and r6, r5, r4 +/* 803CA0B8 003C7018 80 BE 00 34 */ lwz r5, 0x34(r30) +/* 803CA0BC 003C701C 88 83 00 21 */ lbz r4, 0x21(r3) +/* 803CA0C0 003C7020 7C C6 06 30 */ sraw r6, r6, r0 +/* 803CA0C4 003C7024 88 03 00 1F */ lbz r0, 0x1f(r3) +/* 803CA0C8 003C7028 7C A4 20 38 */ and r4, r5, r4 +/* 803CA0CC 003C702C 7C 80 06 30 */ sraw r0, r4, r0 +/* 803CA0D0 003C7030 7C 06 00 00 */ cmpw r6, r0 +/* 803CA0D4 003C7034 41 82 00 0C */ beq lbl_803CA0E0 +lbl_803CA0D8: +/* 803CA0D8 003C7038 3B 80 00 03 */ li r28, 3 +/* 803CA0DC 003C703C 48 00 03 A0 */ b lbl_803CA47C +lbl_803CA0E0: +/* 803CA0E0 003C7040 88 83 00 17 */ lbz r4, 0x17(r3) +/* 803CA0E4 003C7044 88 03 00 19 */ lbz r0, 0x19(r3) +/* 803CA0E8 003C7048 7C 04 00 50 */ subf r0, r4, r0 +/* 803CA0EC 003C704C 7C 00 28 50 */ subf r0, r0, r5 +/* 803CA0F0 003C7050 90 1E 00 34 */ stw r0, 0x34(r30) +lbl_803CA0F4: +/* 803CA0F4 003C7054 80 BE 00 34 */ lwz r5, 0x34(r30) +/* 803CA0F8 003C7058 80 1E 00 64 */ lwz r0, 0x64(r30) +/* 803CA0FC 003C705C 7C 05 00 00 */ cmpw r5, r0 +/* 803CA100 003C7060 41 81 03 58 */ bgt lbl_803CA458 +/* 803CA104 003C7064 40 80 01 68 */ bge lbl_803CA26C +/* 803CA108 003C7068 38 83 00 1D */ addi r4, r3, 0x1d +/* 803CA10C 003C706C 88 03 00 1D */ lbz r0, 0x1d(r3) +/* 803CA110 003C7070 88 84 00 00 */ lbz r4, 0(r4) +/* 803CA114 003C7074 90 9E 00 20 */ stw r4, 0x20(r30) +/* 803CA118 003C7078 48 00 00 48 */ b lbl_803CA160 +lbl_803CA11C: +/* 803CA11C 003C707C 80 9E 00 0C */ lwz r4, 0xc(r30) +/* 803CA120 003C7080 2C 04 00 00 */ cmpwi r4, 0 +/* 803CA124 003C7084 41 82 00 30 */ beq lbl_803CA154 +/* 803CA128 003C7088 80 DE 00 08 */ lwz r6, 8(r30) +/* 803CA12C 003C708C 38 86 00 01 */ addi r4, r6, 1 +/* 803CA130 003C7090 90 9E 00 08 */ stw r4, 8(r30) +/* 803CA134 003C7094 88 A3 00 25 */ lbz r5, 0x25(r3) +/* 803CA138 003C7098 80 9E 00 0C */ lwz r4, 0xc(r30) +/* 803CA13C 003C709C 7C A7 29 D6 */ mullw r5, r7, r5 +/* 803CA140 003C70A0 88 C6 00 00 */ lbz r6, 0(r6) +/* 803CA144 003C70A4 38 84 FF FF */ addi r4, r4, -1 +/* 803CA148 003C70A8 7C C5 28 30 */ slw r5, r6, r5 +/* 803CA14C 003C70AC 90 9E 00 0C */ stw r4, 0xc(r30) +/* 803CA150 003C70B0 7C 00 2B 78 */ or r0, r0, r5 +lbl_803CA154: +/* 803CA154 003C70B4 80 9E 00 20 */ lwz r4, 0x20(r30) +/* 803CA158 003C70B8 38 84 00 01 */ addi r4, r4, 1 +/* 803CA15C 003C70BC 90 9E 00 20 */ stw r4, 0x20(r30) +lbl_803CA160: +/* 803CA160 003C70C0 80 FE 00 20 */ lwz r7, 0x20(r30) +/* 803CA164 003C70C4 88 83 00 21 */ lbz r4, 0x21(r3) +/* 803CA168 003C70C8 7C 07 20 00 */ cmpw r7, r4 +/* 803CA16C 003C70CC 41 80 FF B0 */ blt lbl_803CA11C +/* 803CA170 003C70D0 38 C3 00 26 */ addi r6, r3, 0x26 +/* 803CA174 003C70D4 80 BE 00 34 */ lwz r5, 0x34(r30) +/* 803CA178 003C70D8 88 83 00 26 */ lbz r4, 0x26(r3) +/* 803CA17C 003C70DC 7C 05 20 00 */ cmpw r5, r4 +/* 803CA180 003C70E0 40 82 00 0C */ bne lbl_803CA18C +/* 803CA184 003C70E4 90 1E 00 60 */ stw r0, 0x60(r30) +/* 803CA188 003C70E8 48 00 00 18 */ b lbl_803CA1A0 +lbl_803CA18C: +/* 803CA18C 003C70EC 88 83 00 27 */ lbz r4, 0x27(r3) +/* 803CA190 003C70F0 7C 05 20 00 */ cmpw r5, r4 +/* 803CA194 003C70F4 40 82 00 0C */ bne lbl_803CA1A0 +/* 803CA198 003C70F8 88 03 00 25 */ lbz r0, 0x25(r3) +/* 803CA19C 003C70FC 7F A0 00 30 */ slw r0, r29, r0 +lbl_803CA1A0: +/* 803CA1A0 003C7100 80 BE 00 34 */ lwz r5, 0x34(r30) +/* 803CA1A4 003C7104 88 83 00 02 */ lbz r4, 2(r3) +/* 803CA1A8 003C7108 7C 05 20 00 */ cmpw r5, r4 +/* 803CA1AC 003C710C 41 80 00 78 */ blt lbl_803CA224 +/* 803CA1B0 003C7110 38 83 00 2B */ addi r4, r3, 0x2b +/* 803CA1B4 003C7114 88 C6 00 00 */ lbz r6, 0(r6) +/* 803CA1B8 003C7118 88 A3 00 2B */ lbz r5, 0x2b(r3) +/* 803CA1BC 003C711C 7C 09 03 78 */ mr r9, r0 +/* 803CA1C0 003C7120 88 84 00 00 */ lbz r4, 0(r4) +/* 803CA1C4 003C7124 54 C7 40 2E */ slwi r7, r6, 8 +/* 803CA1C8 003C7128 54 A5 20 36 */ slwi r5, r5, 4 +/* 803CA1CC 003C712C 88 C3 00 28 */ lbz r6, 0x28(r3) +/* 803CA1D0 003C7130 7C 85 20 50 */ subf r4, r5, r4 +/* 803CA1D4 003C7134 88 A3 00 23 */ lbz r5, 0x23(r3) +/* 803CA1D8 003C7138 7C 86 22 14 */ add r4, r6, r4 +/* 803CA1DC 003C713C 81 1E 00 38 */ lwz r8, 0x38(r30) +/* 803CA1E0 003C7140 7C 85 20 50 */ subf r4, r5, r4 +/* 803CA1E4 003C7144 88 C3 00 14 */ lbz r6, 0x14(r3) +/* 803CA1E8 003C7148 7C A7 22 14 */ add r5, r7, r4 +/* 803CA1EC 003C714C 48 00 00 28 */ b lbl_803CA214 +lbl_803CA1F0: +/* 803CA1F0 003C7150 7D 24 42 78 */ xor r4, r9, r8 +/* 803CA1F4 003C7154 54 84 07 FF */ clrlwi. r4, r4, 0x1f +/* 803CA1F8 003C7158 41 82 00 10 */ beq lbl_803CA208 +/* 803CA1FC 003C715C 55 08 F8 7E */ srwi r8, r8, 1 +/* 803CA200 003C7160 7D 08 2A 78 */ xor r8, r8, r5 +/* 803CA204 003C7164 48 00 00 08 */ b lbl_803CA20C +lbl_803CA208: +/* 803CA208 003C7168 55 08 F8 7E */ srwi r8, r8, 1 +lbl_803CA20C: +/* 803CA20C 003C716C 55 29 F8 7E */ srwi r9, r9, 1 +/* 803CA210 003C7170 38 C6 FF FF */ addi r6, r6, -1 +lbl_803CA214: +/* 803CA214 003C7174 88 83 00 1E */ lbz r4, 0x1e(r3) +/* 803CA218 003C7178 7C 06 20 00 */ cmpw r6, r4 +/* 803CA21C 003C717C 41 81 FF D4 */ bgt lbl_803CA1F0 +/* 803CA220 003C7180 91 1E 00 38 */ stw r8, 0x38(r30) +lbl_803CA224: +/* 803CA224 003C7184 88 83 00 28 */ lbz r4, 0x28(r3) +/* 803CA228 003C7188 80 BE 00 34 */ lwz r5, 0x34(r30) +/* 803CA22C 003C718C 38 84 01 00 */ addi r4, r4, 0x100 +/* 803CA230 003C7190 7C 05 20 00 */ cmpw r5, r4 +/* 803CA234 003C7194 40 82 00 0C */ bne lbl_803CA240 +/* 803CA238 003C7198 90 1E 00 3C */ stw r0, 0x3c(r30) +/* 803CA23C 003C719C 48 00 00 3C */ b lbl_803CA278 +lbl_803CA240: +/* 803CA240 003C71A0 88 83 00 01 */ lbz r4, 1(r3) +/* 803CA244 003C71A4 38 84 01 00 */ addi r4, r4, 0x100 +/* 803CA248 003C71A8 7C 05 20 00 */ cmpw r5, r4 +/* 803CA24C 003C71AC 40 82 00 2C */ bne lbl_803CA278 +/* 803CA250 003C71B0 88 83 00 07 */ lbz r4, 7(r3) +/* 803CA254 003C71B4 90 9E 00 20 */ stw r4, 0x20(r30) +/* 803CA258 003C71B8 80 9E 00 20 */ lwz r4, 0x20(r30) +/* 803CA25C 003C71BC 54 84 10 3A */ slwi r4, r4, 2 +/* 803CA260 003C71C0 7C 9E 22 14 */ add r4, r30, r4 +/* 803CA264 003C71C4 90 04 00 3C */ stw r0, 0x3c(r4) +/* 803CA268 003C71C8 48 00 00 10 */ b lbl_803CA278 +lbl_803CA26C: +/* 803CA26C 003C71CC 80 9E 00 38 */ lwz r4, 0x38(r30) +/* 803CA270 003C71D0 54 A0 80 1E */ slwi r0, r5, 0x10 +/* 803CA274 003C71D4 7C 80 03 78 */ or r0, r4, r0 +lbl_803CA278: +/* 803CA278 003C71D8 80 BE 00 34 */ lwz r5, 0x34(r30) +/* 803CA27C 003C71DC 88 83 00 2B */ lbz r4, 0x2b(r3) +/* 803CA280 003C71E0 7C 05 20 00 */ cmpw r5, r4 +/* 803CA284 003C71E4 40 81 00 98 */ ble lbl_803CA31C +/* 803CA288 003C71E8 88 A3 00 25 */ lbz r5, 0x25(r3) +/* 803CA28C 003C71EC 38 83 00 0B */ addi r4, r3, 0xb +/* 803CA290 003C71F0 88 C3 00 18 */ lbz r6, 0x18(r3) +/* 803CA294 003C71F4 89 03 00 15 */ lbz r8, 0x15(r3) +/* 803CA298 003C71F8 7C C7 28 30 */ slw r7, r6, r5 +/* 803CA29C 003C71FC 88 C3 00 18 */ lbz r6, 0x18(r3) +/* 803CA2A0 003C7200 88 A3 00 2C */ lbz r5, 0x2c(r3) +/* 803CA2A4 003C7204 7D 07 3B 78 */ or r7, r8, r7 +/* 803CA2A8 003C7208 89 23 00 17 */ lbz r9, 0x17(r3) +/* 803CA2AC 003C720C 7C C5 28 30 */ slw r5, r6, r5 +/* 803CA2B0 003C7210 89 03 00 2A */ lbz r8, 0x2a(r3) +/* 803CA2B4 003C7214 7C E5 2B 78 */ or r5, r7, r5 +/* 803CA2B8 003C7218 81 5E 00 58 */ lwz r10, 0x58(r30) +/* 803CA2BC 003C721C 7D 26 40 30 */ slw r6, r9, r8 +/* 803CA2C0 003C7220 88 E3 00 1A */ lbz r7, 0x1a(r3) +/* 803CA2C4 003C7224 7C C5 2B 78 */ or r5, r6, r5 +/* 803CA2C8 003C7228 88 C3 00 1B */ lbz r6, 0x1b(r3) +/* 803CA2CC 003C722C 7C AA 29 D6 */ mullw r5, r10, r5 +/* 803CA2D0 003C7230 7C C7 30 50 */ subf r6, r7, r6 +/* 803CA2D4 003C7234 7C A6 28 50 */ subf r5, r6, r5 +/* 803CA2D8 003C7238 90 BE 00 58 */ stw r5, 0x58(r30) +/* 803CA2DC 003C723C 88 E3 00 0B */ lbz r7, 0xb(r3) +/* 803CA2E0 003C7240 81 3E 00 58 */ lwz r9, 0x58(r30) +/* 803CA2E4 003C7244 81 1E 00 34 */ lwz r8, 0x34(r30) +/* 803CA2E8 003C7248 54 E7 A0 16 */ slwi r7, r7, 0x14 +/* 803CA2EC 003C724C 88 A3 00 0B */ lbz r5, 0xb(r3) +/* 803CA2F0 003C7250 7C 00 4A 78 */ xor r0, r0, r9 +/* 803CA2F4 003C7254 7D 08 3A 14 */ add r8, r8, r7 +/* 803CA2F8 003C7258 88 84 00 00 */ lbz r4, 0(r4) +/* 803CA2FC 003C725C 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7 +/* 803CA300 003C7260 88 C3 00 13 */ lbz r6, 0x13(r3) +/* 803CA304 003C7264 7C A8 00 D0 */ neg r5, r8 +/* 803CA308 003C7268 88 E3 00 12 */ lbz r7, 0x12(r3) +/* 803CA30C 003C726C 50 C4 82 1E */ rlwimi r4, r6, 0x10, 8, 0xf +/* 803CA310 003C7270 7C 00 2A 78 */ xor r0, r0, r5 +/* 803CA314 003C7274 50 E4 44 2E */ rlwimi r4, r7, 8, 0x10, 0x17 +/* 803CA318 003C7278 7C 00 22 78 */ xor r0, r0, r4 +lbl_803CA31C: +/* 803CA31C 003C727C 88 83 00 00 */ lbz r4, 0(r3) +/* 803CA320 003C7280 7C 04 24 30 */ srw r4, r0, r4 +/* 803CA324 003C7284 98 9E 00 1F */ stb r4, 0x1f(r30) +/* 803CA328 003C7288 88 83 00 1E */ lbz r4, 0x1e(r3) +/* 803CA32C 003C728C 7C 04 24 30 */ srw r4, r0, r4 +/* 803CA330 003C7290 98 9E 00 1C */ stb r4, 0x1c(r30) +/* 803CA334 003C7294 88 83 00 29 */ lbz r4, 0x29(r3) +/* 803CA338 003C7298 7C 04 24 30 */ srw r4, r0, r4 +/* 803CA33C 003C729C 98 9E 00 1D */ stb r4, 0x1d(r30) +/* 803CA340 003C72A0 88 83 00 2A */ lbz r4, 0x2a(r3) +/* 803CA344 003C72A4 7C 04 24 30 */ srw r4, r0, r4 +/* 803CA348 003C72A8 98 9E 00 1E */ stb r4, 0x1e(r30) +/* 803CA34C 003C72AC 88 A3 00 01 */ lbz r5, 1(r3) +/* 803CA350 003C72B0 88 83 00 01 */ lbz r4, 1(r3) +/* 803CA354 003C72B4 80 DE 00 34 */ lwz r6, 0x34(r30) +/* 803CA358 003C72B8 7C 85 22 14 */ add r4, r5, r4 +/* 803CA35C 003C72BC 7C 06 20 00 */ cmpw r6, r4 +/* 803CA360 003C72C0 40 82 00 08 */ bne lbl_803CA368 +/* 803CA364 003C72C4 90 1E 00 44 */ stw r0, 0x44(r30) +lbl_803CA368: +/* 803CA368 003C72C8 80 9E 00 20 */ lwz r4, 0x20(r30) +/* 803CA36C 003C72CC 88 63 00 21 */ lbz r3, 0x21(r3) +/* 803CA370 003C72D0 7C 04 18 00 */ cmpw r4, r3 +/* 803CA374 003C72D4 40 80 00 C4 */ bge lbl_803CA438 +/* 803CA378 003C72D8 20 64 00 01 */ subfic r3, r4, 1 +/* 803CA37C 003C72DC 20 63 00 03 */ subfic r3, r3, 3 +/* 803CA380 003C72E0 54 63 10 3A */ slwi r3, r3, 2 +/* 803CA384 003C72E4 7C 7E 1A 14 */ add r3, r30, r3 +/* 803CA388 003C72E8 90 03 00 3C */ stw r0, 0x3c(r3) +/* 803CA38C 003C72EC 80 BE 00 20 */ lwz r5, 0x20(r30) +/* 803CA390 003C72F0 20 05 00 01 */ subfic r0, r5, 1 +/* 803CA394 003C72F4 20 60 00 02 */ subfic r3, r0, 2 +/* 803CA398 003C72F8 20 05 00 04 */ subfic r0, r5, 4 +/* 803CA39C 003C72FC 54 63 10 3A */ slwi r3, r3, 2 +/* 803CA3A0 003C7300 54 00 10 3A */ slwi r0, r0, 2 +/* 803CA3A4 003C7304 7C 9E 1A 14 */ add r4, r30, r3 +/* 803CA3A8 003C7308 7C 7E 02 14 */ add r3, r30, r0 +/* 803CA3AC 003C730C 80 84 00 3C */ lwz r4, 0x3c(r4) +/* 803CA3B0 003C7310 80 63 00 3C */ lwz r3, 0x3c(r3) +/* 803CA3B4 003C7314 20 05 00 05 */ subfic r0, r5, 5 +/* 803CA3B8 003C7318 54 00 10 3A */ slwi r0, r0, 2 +/* 803CA3BC 003C731C 7C 84 19 D6 */ mullw r4, r4, r3 +/* 803CA3C0 003C7320 7C 7E 02 14 */ add r3, r30, r0 +/* 803CA3C4 003C7324 90 83 00 3C */ stw r4, 0x3c(r3) +/* 803CA3C8 003C7328 80 1E 00 20 */ lwz r0, 0x20(r30) +/* 803CA3CC 003C732C 20 A0 00 01 */ subfic r5, r0, 1 +/* 803CA3D0 003C7330 54 A3 10 3A */ slwi r3, r5, 2 +/* 803CA3D4 003C7334 54 00 10 3A */ slwi r0, r0, 2 +/* 803CA3D8 003C7338 7C 9E 1A 14 */ add r4, r30, r3 +/* 803CA3DC 003C733C 7C 7E 02 14 */ add r3, r30, r0 +/* 803CA3E0 003C7340 80 84 00 3C */ lwz r4, 0x3c(r4) +/* 803CA3E4 003C7344 80 63 00 3C */ lwz r3, 0x3c(r3) +/* 803CA3E8 003C7348 20 05 00 05 */ subfic r0, r5, 5 +/* 803CA3EC 003C734C 54 00 10 3A */ slwi r0, r0, 2 +/* 803CA3F0 003C7350 7C 84 19 D6 */ mullw r4, r4, r3 +/* 803CA3F4 003C7354 7C 7E 02 14 */ add r3, r30, r0 +/* 803CA3F8 003C7358 90 83 00 3C */ stw r4, 0x3c(r3) +/* 803CA3FC 003C735C 80 BE 00 20 */ lwz r5, 0x20(r30) +/* 803CA400 003C7360 20 65 00 01 */ subfic r3, r5, 1 +/* 803CA404 003C7364 20 05 00 04 */ subfic r0, r5, 4 +/* 803CA408 003C7368 7C 63 00 D0 */ neg r3, r3 +/* 803CA40C 003C736C 54 63 10 3A */ slwi r3, r3, 2 +/* 803CA410 003C7370 54 00 10 3A */ slwi r0, r0, 2 +/* 803CA414 003C7374 7C 9E 1A 14 */ add r4, r30, r3 +/* 803CA418 003C7378 7C 7E 02 14 */ add r3, r30, r0 +/* 803CA41C 003C737C 80 84 00 3C */ lwz r4, 0x3c(r4) +/* 803CA420 003C7380 80 63 00 3C */ lwz r3, 0x3c(r3) +/* 803CA424 003C7384 20 05 00 07 */ subfic r0, r5, 7 +/* 803CA428 003C7388 54 00 10 3A */ slwi r0, r0, 2 +/* 803CA42C 003C738C 7C 84 19 D6 */ mullw r4, r4, r3 +/* 803CA430 003C7390 7C 7E 02 14 */ add r3, r30, r0 +/* 803CA434 003C7394 90 83 00 3C */ stw r4, 0x3c(r3) +lbl_803CA438: +/* 803CA438 003C7398 3C 60 80 3D */ lis r3, _F31@ha +/* 803CA43C 003C739C 80 BE 00 10 */ lwz r5, 0x10(r30) +/* 803CA440 003C73A0 38 C3 A0 3C */ addi r6, r3, _F31@l +/* 803CA444 003C73A4 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA448 003C73A8 38 9E 00 1C */ addi r4, r30, 0x1c +/* 803CA44C 003C73AC 48 00 06 65 */ bl GBAWriteAsync +/* 803CA450 003C73B0 7C 7C 1B 78 */ mr r28, r3 +/* 803CA454 003C73B4 48 00 00 28 */ b lbl_803CA47C +lbl_803CA458: +/* 803CA458 003C73B8 4B FB AF 69 */ bl OSGetTick +/* 803CA45C 003C73BC 90 7E 00 24 */ stw r3, 0x24(r30) +/* 803CA460 003C73C0 3C 60 80 3D */ lis r3, _F33@ha +/* 803CA464 003C73C4 38 C3 A4 D4 */ addi r6, r3, _F33@l +/* 803CA468 003C73C8 80 BE 00 10 */ lwz r5, 0x10(r30) +/* 803CA46C 003C73CC 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA470 003C73D0 38 9E 00 18 */ addi r4, r30, 0x18 +/* 803CA474 003C73D4 48 00 05 0D */ bl GBAReadAsync +/* 803CA478 003C73D8 7C 7C 1B 78 */ mr r28, r3 +lbl_803CA47C: +/* 803CA47C 003C73DC 2C 1C 00 00 */ cmpwi r28, 0 +/* 803CA480 003C73E0 41 82 00 30 */ beq lbl_803CA4B0 +/* 803CA484 003C73E4 38 00 00 00 */ li r0, 0 +/* 803CA488 003C73E8 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803CA48C 003C73EC 90 1E 00 28 */ stw r0, 0x28(r30) +/* 803CA490 003C73F0 81 9E 00 14 */ lwz r12, 0x14(r30) +/* 803CA494 003C73F4 28 0C 00 00 */ cmplwi r12, 0 +/* 803CA498 003C73F8 41 82 00 18 */ beq lbl_803CA4B0 +/* 803CA49C 003C73FC 90 1E 00 14 */ stw r0, 0x14(r30) +/* 803CA4A0 003C7400 7D 88 03 A6 */ mtlr r12 +/* 803CA4A4 003C7404 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA4A8 003C7408 38 9C 00 00 */ addi r4, r28, 0 +/* 803CA4AC 003C740C 4E 80 00 21 */ blrl +lbl_803CA4B0: +/* 803CA4B0 003C7410 93 9F 00 20 */ stw r28, 0x20(r31) +/* 803CA4B4 003C7414 80 01 00 3C */ lwz r0, 0x3c(r1) +/* 803CA4B8 003C7418 83 E1 00 34 */ lwz r31, 0x34(r1) +/* 803CA4BC 003C741C 83 C1 00 30 */ lwz r30, 0x30(r1) +/* 803CA4C0 003C7420 83 A1 00 2C */ lwz r29, 0x2c(r1) +/* 803CA4C4 003C7424 83 81 00 28 */ lwz r28, 0x28(r1) +/* 803CA4C8 003C7428 38 21 00 38 */ addi r1, r1, 0x38 +/* 803CA4CC 003C742C 7C 08 03 A6 */ mtlr r0 +/* 803CA4D0 003C7430 4E 80 00 20 */ blr + +.global _F33 +_F33: +/* 803CA4D4 003C7434 7C 08 02 A6 */ mflr r0 +/* 803CA4D8 003C7438 90 01 00 04 */ stw r0, 4(r1) +/* 803CA4DC 003C743C 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803CA4E0 003C7440 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803CA4E4 003C7444 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803CA4E8 003C7448 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803CA4EC 003C744C 3B A3 00 00 */ addi r29, r3, 0 +/* 803CA4F0 003C7450 3C 60 80 57 */ lis r3, __GBA@ha +/* 803CA4F4 003C7454 93 81 00 18 */ stw r28, 0x18(r1) +/* 803CA4F8 003C7458 7C 9C 23 79 */ or. r28, r4, r4 +/* 803CA4FC 003C745C 57 A4 40 2E */ slwi r4, r29, 8 +/* 803CA500 003C7460 38 03 A1 A0 */ addi r0, r3, __GBA@l +/* 803CA504 003C7464 7F E0 22 14 */ add r31, r0, r4 +/* 803CA508 003C7468 3B DF 00 40 */ addi r30, r31, 0x40 +/* 803CA50C 003C746C 40 82 00 E4 */ bne lbl_803CA5F0 +/* 803CA510 003C7470 38 00 00 21 */ li r0, 0x21 +/* 803CA514 003C7474 3C 60 80 3F */ lis r3, D54@ha +/* 803CA518 003C7478 90 1E 00 20 */ stw r0, 0x20(r30) +/* 803CA51C 003C747C 38 03 71 70 */ addi r0, r3, D54@l +/* 803CA520 003C7480 48 00 00 94 */ b lbl_803CA5B4 +lbl_803CA524: +/* 803CA524 003C7484 7C E0 1A 14 */ add r7, r0, r3 +/* 803CA528 003C7488 88 DE 00 1B */ lbz r6, 0x1b(r30) +/* 803CA52C 003C748C 88 87 00 00 */ lbz r4, 0(r7) +/* 803CA530 003C7490 88 67 00 00 */ lbz r3, 0(r7) +/* 803CA534 003C7494 88 A7 00 00 */ lbz r5, 0(r7) +/* 803CA538 003C7498 54 84 10 3A */ slwi r4, r4, 2 +/* 803CA53C 003C749C 89 07 00 00 */ lbz r8, 0(r7) +/* 803CA540 003C74A0 54 63 10 3A */ slwi r3, r3, 2 +/* 803CA544 003C74A4 54 A7 10 3A */ slwi r7, r5, 2 +/* 803CA548 003C74A8 38 A4 00 3C */ addi r5, r4, 0x3c +/* 803CA54C 003C74AC 88 9E 00 1A */ lbz r4, 0x1a(r30) +/* 803CA550 003C74B0 38 63 00 3C */ addi r3, r3, 0x3c +/* 803CA554 003C74B4 7C BE 28 2E */ lwzx r5, r30, r5 +/* 803CA558 003C74B8 38 E7 00 3C */ addi r7, r7, 0x3c +/* 803CA55C 003C74BC 7C 7E 18 2E */ lwzx r3, r30, r3 +/* 803CA560 003C74C0 55 08 10 3A */ slwi r8, r8, 2 +/* 803CA564 003C74C4 7C FE 38 2E */ lwzx r7, r30, r7 +/* 803CA568 003C74C8 39 28 00 3C */ addi r9, r8, 0x3c +/* 803CA56C 003C74CC 89 1E 00 19 */ lbz r8, 0x19(r30) +/* 803CA570 003C74D0 54 A5 46 3E */ srwi r5, r5, 0x18 +/* 803CA574 003C74D4 89 5E 00 18 */ lbz r10, 0x18(r30) +/* 803CA578 003C74D8 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803CA57C 003C74DC 7D 3E 48 2E */ lwzx r9, r30, r9 +/* 803CA580 003C74E0 54 E7 C2 3E */ srwi r7, r7, 8 +/* 803CA584 003C74E4 7C 83 1A 78 */ xor r3, r4, r3 +/* 803CA588 003C74E8 7C C5 2A 78 */ xor r5, r6, r5 +/* 803CA58C 003C74EC 7C A3 1B 78 */ or r3, r5, r3 +/* 803CA590 003C74F0 7D 04 3A 78 */ xor r4, r8, r7 +/* 803CA594 003C74F4 7D 45 4A 78 */ xor r5, r10, r9 +/* 803CA598 003C74F8 7C 83 1B 78 */ or r3, r4, r3 +/* 803CA59C 003C74FC 7C A3 1B 78 */ or r3, r5, r3 +/* 803CA5A0 003C7500 54 7C C0 0F */ rlwinm. r28, r3, 0x18, 0, 7 +/* 803CA5A4 003C7504 41 82 00 1C */ beq lbl_803CA5C0 +/* 803CA5A8 003C7508 80 7E 00 20 */ lwz r3, 0x20(r30) +/* 803CA5AC 003C750C 38 63 00 01 */ addi r3, r3, 1 +/* 803CA5B0 003C7510 90 7E 00 20 */ stw r3, 0x20(r30) +lbl_803CA5B4: +/* 803CA5B4 003C7514 80 7E 00 20 */ lwz r3, 0x20(r30) +/* 803CA5B8 003C7518 2C 03 00 24 */ cmpwi r3, 0x24 +/* 803CA5BC 003C751C 41 80 FF 68 */ blt lbl_803CA524 +lbl_803CA5C0: +/* 803CA5C0 003C7520 2C 1C 00 00 */ cmpwi r28, 0 +/* 803CA5C4 003C7524 41 82 00 0C */ beq lbl_803CA5D0 +/* 803CA5C8 003C7528 3B 80 00 03 */ li r28, 3 +/* 803CA5CC 003C752C 48 00 00 24 */ b lbl_803CA5F0 +lbl_803CA5D0: +/* 803CA5D0 003C7530 4B FB AD F1 */ bl OSGetTick +/* 803CA5D4 003C7534 90 7E 00 24 */ stw r3, 0x24(r30) +/* 803CA5D8 003C7538 3C 60 80 3D */ lis r3, _F35@ha +/* 803CA5DC 003C753C 38 A3 A6 48 */ addi r5, r3, _F35@l +/* 803CA5E0 003C7540 80 9E 00 10 */ lwz r4, 0x10(r30) +/* 803CA5E4 003C7544 7F A3 EB 78 */ mr r3, r29 +/* 803CA5E8 003C7548 4B FF F1 09 */ bl GBAGetStatusAsync +/* 803CA5EC 003C754C 7C 7C 1B 78 */ mr r28, r3 +lbl_803CA5F0: +/* 803CA5F0 003C7550 2C 1C 00 00 */ cmpwi r28, 0 +/* 803CA5F4 003C7554 41 82 00 30 */ beq lbl_803CA624 +/* 803CA5F8 003C7558 38 00 00 00 */ li r0, 0 +/* 803CA5FC 003C755C 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803CA600 003C7560 90 1E 00 28 */ stw r0, 0x28(r30) +/* 803CA604 003C7564 81 9E 00 14 */ lwz r12, 0x14(r30) +/* 803CA608 003C7568 28 0C 00 00 */ cmplwi r12, 0 +/* 803CA60C 003C756C 41 82 00 18 */ beq lbl_803CA624 +/* 803CA610 003C7570 90 1E 00 14 */ stw r0, 0x14(r30) +/* 803CA614 003C7574 7D 88 03 A6 */ mtlr r12 +/* 803CA618 003C7578 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA61C 003C757C 38 9C 00 00 */ addi r4, r28, 0 +/* 803CA620 003C7580 4E 80 00 21 */ blrl +lbl_803CA624: +/* 803CA624 003C7584 93 9F 00 20 */ stw r28, 0x20(r31) +/* 803CA628 003C7588 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803CA62C 003C758C 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803CA630 003C7590 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803CA634 003C7594 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803CA638 003C7598 83 81 00 18 */ lwz r28, 0x18(r1) +/* 803CA63C 003C759C 38 21 00 28 */ addi r1, r1, 0x28 +/* 803CA640 003C75A0 7C 08 03 A6 */ mtlr r0 +/* 803CA644 003C75A4 4E 80 00 20 */ blr + +.global _F35 +_F35: +/* 803CA648 003C75A8 7C 08 02 A6 */ mflr r0 +/* 803CA64C 003C75AC 90 01 00 04 */ stw r0, 4(r1) +/* 803CA650 003C75B0 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803CA654 003C75B4 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803CA658 003C75B8 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803CA65C 003C75BC 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803CA660 003C75C0 3B A3 00 00 */ addi r29, r3, 0 +/* 803CA664 003C75C4 3C 60 80 57 */ lis r3, __GBA@ha +/* 803CA668 003C75C8 93 81 00 18 */ stw r28, 0x18(r1) +/* 803CA66C 003C75CC 7C 9C 23 79 */ or. r28, r4, r4 +/* 803CA670 003C75D0 57 A4 40 2E */ slwi r4, r29, 8 +/* 803CA674 003C75D4 38 03 A1 A0 */ addi r0, r3, __GBA@l +/* 803CA678 003C75D8 7F E0 22 14 */ add r31, r0, r4 +/* 803CA67C 003C75DC 3B DF 00 40 */ addi r30, r31, 0x40 +/* 803CA680 003C75E0 40 82 00 CC */ bne lbl_803CA74C +/* 803CA684 003C75E4 4B FB AD 3D */ bl OSGetTick +/* 803CA688 003C75E8 3F 80 80 00 */ lis r28, 0x800000F8@ha +/* 803CA68C 003C75EC 80 9E 00 24 */ lwz r4, 0x24(r30) +/* 803CA690 003C75F0 80 1C 00 F8 */ lwz r0, 0x800000F8@l(r28) +/* 803CA694 003C75F4 7C 64 18 50 */ subf r3, r4, r3 +/* 803CA698 003C75F8 54 05 F0 BE */ srwi r5, r0, 2 +/* 803CA69C 003C75FC 1C 05 00 0A */ mulli r0, r5, 0xa +/* 803CA6A0 003C7600 7C 00 18 40 */ cmplw r0, r3 +/* 803CA6A4 003C7604 41 81 00 0C */ bgt lbl_803CA6B0 +/* 803CA6A8 003C7608 3B 80 00 03 */ li r28, 3 +/* 803CA6AC 003C760C 48 00 00 A0 */ b lbl_803CA74C +lbl_803CA6B0: +/* 803CA6B0 003C7610 80 9E 00 10 */ lwz r4, 0x10(r30) +/* 803CA6B4 003C7614 88 64 00 00 */ lbz r3, 0(r4) +/* 803CA6B8 003C7618 70 60 00 32 */ andi. r0, r3, 0x32 +/* 803CA6BC 003C761C 41 82 00 0C */ beq lbl_803CA6C8 +/* 803CA6C0 003C7620 3B 80 00 03 */ li r28, 3 +/* 803CA6C4 003C7624 48 00 00 88 */ b lbl_803CA74C +lbl_803CA6C8: +/* 803CA6C8 003C7628 28 03 00 08 */ cmplwi r3, 8 +/* 803CA6CC 003C762C 41 82 00 1C */ beq lbl_803CA6E8 +/* 803CA6D0 003C7630 3C 60 80 3D */ lis r3, _F35@ha +/* 803CA6D4 003C7634 38 A3 A6 48 */ addi r5, r3, _F35@l +/* 803CA6D8 003C7638 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA6DC 003C763C 4B FF F0 15 */ bl GBAGetStatusAsync +/* 803CA6E0 003C7640 7C 7C 1B 78 */ mr r28, r3 +/* 803CA6E4 003C7644 48 00 00 68 */ b lbl_803CA74C +lbl_803CA6E8: +/* 803CA6E8 003C7648 3C 60 10 62 */ lis r3, 0x10624DD3@ha +/* 803CA6EC 003C764C 38 03 4D D3 */ addi r0, r3, 0x10624DD3@l +/* 803CA6F0 003C7650 7C 00 28 16 */ mulhwu r0, r0, r5 +/* 803CA6F4 003C7654 54 06 E8 F8 */ rlwinm r6, r0, 0x1d, 3, 0x1c +/* 803CA6F8 003C7658 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA6FC 003C765C 38 A0 00 00 */ li r5, 0 +/* 803CA700 003C7660 48 00 08 1D */ bl __GBASetDelay +/* 803CA704 003C7664 3C 60 80 3D */ lis r3, _F37@ha +/* 803CA708 003C7668 80 BE 00 10 */ lwz r5, 0x10(r30) +/* 803CA70C 003C766C 38 C3 A7 A4 */ addi r6, r3, _F37@l +/* 803CA710 003C7670 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA714 003C7674 38 9E 00 18 */ addi r4, r30, 0x18 +/* 803CA718 003C7678 48 00 02 69 */ bl GBAReadAsync +/* 803CA71C 003C767C 80 1C 00 F8 */ lwz r0, 0xf8(r28) +/* 803CA720 003C7680 3C 80 43 1C */ lis r4, 0x431BDE83@ha +/* 803CA724 003C7684 3B 83 00 00 */ addi r28, r3, 0 +/* 803CA728 003C7688 54 00 F0 BE */ srwi r0, r0, 2 +/* 803CA72C 003C768C 38 84 DE 83 */ addi r4, r4, 0x431BDE83@l +/* 803CA730 003C7690 7C 04 00 16 */ mulhwu r0, r4, r0 +/* 803CA734 003C7694 54 00 8B FE */ srwi r0, r0, 0xf +/* 803CA738 003C7698 1C 00 00 3C */ mulli r0, r0, 0x3c +/* 803CA73C 003C769C 54 06 E8 FE */ srwi r6, r0, 3 +/* 803CA740 003C76A0 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA744 003C76A4 38 A0 00 00 */ li r5, 0 +/* 803CA748 003C76A8 48 00 07 D5 */ bl __GBASetDelay +lbl_803CA74C: +/* 803CA74C 003C76AC 2C 1C 00 00 */ cmpwi r28, 0 +/* 803CA750 003C76B0 41 82 00 30 */ beq lbl_803CA780 +/* 803CA754 003C76B4 38 00 00 00 */ li r0, 0 +/* 803CA758 003C76B8 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803CA75C 003C76BC 90 1E 00 28 */ stw r0, 0x28(r30) +/* 803CA760 003C76C0 81 9E 00 14 */ lwz r12, 0x14(r30) +/* 803CA764 003C76C4 28 0C 00 00 */ cmplwi r12, 0 +/* 803CA768 003C76C8 41 82 00 18 */ beq lbl_803CA780 +/* 803CA76C 003C76CC 90 1E 00 14 */ stw r0, 0x14(r30) +/* 803CA770 003C76D0 7D 88 03 A6 */ mtlr r12 +/* 803CA774 003C76D4 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA778 003C76D8 38 9C 00 00 */ addi r4, r28, 0 +/* 803CA77C 003C76DC 4E 80 00 21 */ blrl +lbl_803CA780: +/* 803CA780 003C76E0 93 9F 00 20 */ stw r28, 0x20(r31) +/* 803CA784 003C76E4 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803CA788 003C76E8 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803CA78C 003C76EC 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803CA790 003C76F0 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803CA794 003C76F4 83 81 00 18 */ lwz r28, 0x18(r1) +/* 803CA798 003C76F8 38 21 00 28 */ addi r1, r1, 0x28 +/* 803CA79C 003C76FC 7C 08 03 A6 */ mtlr r0 +/* 803CA7A0 003C7700 4E 80 00 20 */ blr + +.global _F37 +_F37: +/* 803CA7A4 003C7704 7C 08 02 A6 */ mflr r0 +/* 803CA7A8 003C7708 90 01 00 04 */ stw r0, 4(r1) +/* 803CA7AC 003C770C 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803CA7B0 003C7710 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803CA7B4 003C7714 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803CA7B8 003C7718 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803CA7BC 003C771C 3B A3 00 00 */ addi r29, r3, 0 +/* 803CA7C0 003C7720 3C 60 80 57 */ lis r3, __GBA@ha +/* 803CA7C4 003C7724 93 81 00 18 */ stw r28, 0x18(r1) +/* 803CA7C8 003C7728 7C 9C 23 79 */ or. r28, r4, r4 +/* 803CA7CC 003C772C 57 A4 40 2E */ slwi r4, r29, 8 +/* 803CA7D0 003C7730 38 03 A1 A0 */ addi r0, r3, __GBA@l +/* 803CA7D4 003C7734 7F E0 22 14 */ add r31, r0, r4 +/* 803CA7D8 003C7738 3B DF 00 40 */ addi r30, r31, 0x40 +/* 803CA7DC 003C773C 40 82 00 6C */ bne lbl_803CA848 +/* 803CA7E0 003C7740 81 3E 00 60 */ lwz r9, 0x60(r30) +/* 803CA7E4 003C7744 88 BE 00 1B */ lbz r5, 0x1b(r30) +/* 803CA7E8 003C7748 55 24 46 3E */ srwi r4, r9, 0x18 +/* 803CA7EC 003C774C 88 7E 00 1A */ lbz r3, 0x1a(r30) +/* 803CA7F0 003C7750 55 20 84 3E */ srwi r0, r9, 0x10 +/* 803CA7F4 003C7754 88 FE 00 19 */ lbz r7, 0x19(r30) +/* 803CA7F8 003C7758 89 1E 00 18 */ lbz r8, 0x18(r30) +/* 803CA7FC 003C775C 55 26 C2 3E */ srwi r6, r9, 8 +/* 803CA800 003C7760 7C 60 02 78 */ xor r0, r3, r0 +/* 803CA804 003C7764 7C A4 22 78 */ xor r4, r5, r4 +/* 803CA808 003C7768 7C 80 03 78 */ or r0, r4, r0 +/* 803CA80C 003C776C 7C E3 32 78 */ xor r3, r7, r6 +/* 803CA810 003C7770 7D 04 4A 78 */ xor r4, r8, r9 +/* 803CA814 003C7774 7C 60 03 78 */ or r0, r3, r0 +/* 803CA818 003C7778 7C 80 03 78 */ or r0, r4, r0 +/* 803CA81C 003C777C 54 00 C0 0F */ rlwinm. r0, r0, 0x18, 0, 7 +/* 803CA820 003C7780 41 82 00 0C */ beq lbl_803CA82C +/* 803CA824 003C7784 3B 80 00 03 */ li r28, 3 +/* 803CA828 003C7788 48 00 00 20 */ b lbl_803CA848 +lbl_803CA82C: +/* 803CA82C 003C778C 3C 60 80 3D */ lis r3, _F39@ha +/* 803CA830 003C7790 80 BE 00 10 */ lwz r5, 0x10(r30) +/* 803CA834 003C7794 38 C3 A8 A0 */ addi r6, r3, _F39@l +/* 803CA838 003C7798 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA83C 003C779C 38 9E 00 18 */ addi r4, r30, 0x18 +/* 803CA840 003C77A0 48 00 02 71 */ bl GBAWriteAsync +/* 803CA844 003C77A4 7C 7C 1B 78 */ mr r28, r3 +lbl_803CA848: +/* 803CA848 003C77A8 2C 1C 00 00 */ cmpwi r28, 0 +/* 803CA84C 003C77AC 41 82 00 30 */ beq lbl_803CA87C +/* 803CA850 003C77B0 38 00 00 00 */ li r0, 0 +/* 803CA854 003C77B4 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803CA858 003C77B8 90 1E 00 28 */ stw r0, 0x28(r30) +/* 803CA85C 003C77BC 81 9E 00 14 */ lwz r12, 0x14(r30) +/* 803CA860 003C77C0 28 0C 00 00 */ cmplwi r12, 0 +/* 803CA864 003C77C4 41 82 00 18 */ beq lbl_803CA87C +/* 803CA868 003C77C8 90 1E 00 14 */ stw r0, 0x14(r30) +/* 803CA86C 003C77CC 7D 88 03 A6 */ mtlr r12 +/* 803CA870 003C77D0 38 7D 00 00 */ addi r3, r29, 0 +/* 803CA874 003C77D4 38 9C 00 00 */ addi r4, r28, 0 +/* 803CA878 003C77D8 4E 80 00 21 */ blrl +lbl_803CA87C: +/* 803CA87C 003C77DC 93 9F 00 20 */ stw r28, 0x20(r31) +/* 803CA880 003C77E0 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803CA884 003C77E4 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803CA888 003C77E8 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803CA88C 003C77EC 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803CA890 003C77F0 83 81 00 18 */ lwz r28, 0x18(r1) +/* 803CA894 003C77F4 38 21 00 28 */ addi r1, r1, 0x28 +/* 803CA898 003C77F8 7C 08 03 A6 */ mtlr r0 +/* 803CA89C 003C77FC 4E 80 00 20 */ blr + +.global _F39 +_F39: +/* 803CA8A0 003C7800 7C 08 02 A6 */ mflr r0 +/* 803CA8A4 003C7804 54 65 40 2E */ slwi r5, r3, 8 +/* 803CA8A8 003C7808 90 01 00 04 */ stw r0, 4(r1) +/* 803CA8AC 003C780C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803CA8B0 003C7810 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803CA8B4 003C7814 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803CA8B8 003C7818 7C 9E 23 79 */ or. r30, r4, r4 +/* 803CA8BC 003C781C 3C 80 80 57 */ lis r4, __GBA@ha +/* 803CA8C0 003C7820 38 04 A1 A0 */ addi r0, r4, __GBA@l +/* 803CA8C4 003C7824 7F E0 2A 14 */ add r31, r0, r5 +/* 803CA8C8 003C7828 38 BF 00 40 */ addi r5, r31, 0x40 +/* 803CA8CC 003C782C 40 82 00 10 */ bne lbl_803CA8DC +/* 803CA8D0 003C7830 80 85 00 10 */ lwz r4, 0x10(r5) +/* 803CA8D4 003C7834 38 00 00 00 */ li r0, 0 +/* 803CA8D8 003C7838 98 04 00 00 */ stb r0, 0(r4) +lbl_803CA8DC: +/* 803CA8DC 003C783C 38 00 00 00 */ li r0, 0 +/* 803CA8E0 003C7840 90 05 00 2C */ stw r0, 0x2c(r5) +/* 803CA8E4 003C7844 90 05 00 28 */ stw r0, 0x28(r5) +/* 803CA8E8 003C7848 81 85 00 14 */ lwz r12, 0x14(r5) +/* 803CA8EC 003C784C 28 0C 00 00 */ cmplwi r12, 0 +/* 803CA8F0 003C7850 41 82 00 14 */ beq lbl_803CA904 +/* 803CA8F4 003C7854 90 05 00 14 */ stw r0, 0x14(r5) +/* 803CA8F8 003C7858 7D 88 03 A6 */ mtlr r12 +/* 803CA8FC 003C785C 38 9E 00 00 */ addi r4, r30, 0 +/* 803CA900 003C7860 4E 80 00 21 */ blrl +lbl_803CA904: +/* 803CA904 003C7864 93 DF 00 20 */ stw r30, 0x20(r31) +/* 803CA908 003C7868 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803CA90C 003C786C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803CA910 003C7870 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803CA914 003C7874 38 21 00 20 */ addi r1, r1, 0x20 +/* 803CA918 003C7878 7C 08 03 A6 */ mtlr r0 +/* 803CA91C 003C787C 4E 80 00 20 */ blr diff --git a/asm/Dolphin/GBA/GBAKey.s b/asm/Dolphin/GBA/GBAKey.s index 9a71955b..90c48dd4 100644 --- a/asm/Dolphin/GBA/GBAKey.s +++ b/asm/Dolphin/GBA/GBAKey.s @@ -70,20 +70,8 @@ lbl_803F752C: .section .text, "ax" -.global __GBASetDelay -__GBASetDelay: -/* 803CAF1C 003C7E7C 3C 80 80 57 */ lis r4, __GBA@ha -/* 803CAF20 003C7E80 54 63 40 2E */ slwi r3, r3, 8 -/* 803CAF24 003C7E84 38 04 A1 A0 */ addi r0, r4, __GBA@l -/* 803CAF28 003C7E88 7C E0 1A 14 */ add r7, r0, r3 -/* 803CAF2C 003C7E8C 80 67 00 30 */ lwz r3, 0x30(r7) -/* 803CAF30 003C7E90 80 87 00 34 */ lwz r4, 0x34(r7) -/* 803CAF34 003C7E94 90 C7 00 34 */ stw r6, 0x34(r7) -/* 803CAF38 003C7E98 90 A7 00 30 */ stw r5, 0x30(r7) -/* 803CAF3C 003C7E9C 4E 80 00 20 */ blr - -.global __GBADSPTaskInit -__GBADSPTaskInit: +.global __F23 +__F23: /* 803CAF40 003C7EA0 7C 08 02 A6 */ mflr r0 /* 803CAF44 003C7EA4 3C 80 80 57 */ lis r4, __GBA@ha /* 803CAF48 003C7EA8 90 01 00 04 */ stw r0, 4(r1) @@ -147,8 +135,8 @@ lbl_803CAFFC: /* 803CB014 003C7F74 7C 08 03 A6 */ mtlr r0 /* 803CB018 003C7F78 4E 80 00 20 */ blr -.global __GBADSPTaskDone -__GBADSPTaskDone: +.global __F25 +__F25: /* 803CB01C 003C7F7C 3C 80 80 57 */ lis r4, __GBA@ha /* 803CB020 003C7F80 7C 08 02 A6 */ mflr r0 /* 803CB024 003C7F84 38 84 A1 A0 */ addi r4, r4, __GBA@l @@ -234,15 +222,15 @@ __GBAX02: /* 803CB144 003C80A4 3C 04 80 00 */ addis r0, r4, 0x8000 /* 803CB148 003C80A8 90 1F 00 B4 */ stw r0, 0xb4(r31) /* 803CB14C 003C80AC 38 00 03 80 */ li r0, 0x380 -/* 803CB150 003C80B0 3C A0 80 3D */ lis r5, __GBADSPTaskInit@ha +/* 803CB150 003C80B0 3C A0 80 3D */ lis r5, __F23@ha /* 803CB154 003C80B4 90 1F 00 B8 */ stw r0, 0xb8(r31) /* 803CB158 003C80B8 38 C0 00 00 */ li r6, 0 /* 803CB15C 003C80BC 38 00 00 10 */ li r0, 0x10 /* 803CB160 003C80C0 90 DF 00 BC */ stw r6, 0xbc(r31) -/* 803CB164 003C80C4 38 A5 AF 40 */ addi r5, r5, __GBADSPTaskInit@l -/* 803CB168 003C80C8 3C 80 80 3D */ lis r4, __GBADSPTaskDone@ha +/* 803CB164 003C80C4 38 A5 AF 40 */ addi r5, r5, __F23@l +/* 803CB168 003C80C8 3C 80 80 3D */ lis r4, __F25@ha /* 803CB16C 003C80CC B0 1F 00 CC */ sth r0, 0xcc(r31) -/* 803CB170 003C80D0 38 04 B0 1C */ addi r0, r4, __GBADSPTaskDone@l +/* 803CB170 003C80D0 38 04 B0 1C */ addi r0, r4, __F25@l /* 803CB174 003C80D4 38 7F 00 A8 */ addi r3, r31, 0xa8 /* 803CB178 003C80D8 90 BF 00 D0 */ stw r5, 0xd0(r31) /* 803CB17C 003C80DC 90 DF 00 D4 */ stw r6, 0xd4(r31) diff --git a/asm/Dolphin/GBA/GBAXfer.s b/asm/Dolphin/GBA/GBAXfer.s index bbc17c55..d2460a31 100644 --- a/asm/Dolphin/GBA/GBAXfer.s +++ b/asm/Dolphin/GBA/GBAXfer.s @@ -224,3 +224,15 @@ __GBATransfer: /* 803CAF10 003C7E70 38 21 00 30 */ addi r1, r1, 0x30 /* 803CAF14 003C7E74 7C 08 03 A6 */ mtlr r0 /* 803CAF18 003C7E78 4E 80 00 20 */ blr + +.global __GBASetDelay +__GBASetDelay: +/* 803CAF1C 003C7E7C 3C 80 80 57 */ lis r4, __GBA@ha +/* 803CAF20 003C7E80 54 63 40 2E */ slwi r3, r3, 8 +/* 803CAF24 003C7E84 38 04 A1 A0 */ addi r0, r4, __GBA@l +/* 803CAF28 003C7E88 7C E0 1A 14 */ add r7, r0, r3 +/* 803CAF2C 003C7E8C 80 67 00 30 */ lwz r3, 0x30(r7) +/* 803CAF30 003C7E90 80 87 00 34 */ lwz r4, 0x34(r7) +/* 803CAF34 003C7E94 90 C7 00 34 */ stw r6, 0x34(r7) +/* 803CAF38 003C7E98 90 A7 00 30 */ stw r5, 0x30(r7) +/* 803CAF3C 003C7E9C 4E 80 00 20 */ blr