prime/asm/Dolphin/GBA/GBAJoyBoot.s

1077 lines
50 KiB
ArmAsm

.include "macros.inc"
.section .data, "wa"
.balign 8
.obj D54, local
.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
.endobj D54
.section .text, "ax"
.fn 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
.endfn GBAJoyBootAsync
.fn F23, local
/* 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
.endfn F23
.fn F25, local
/* 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
.endfn F25
.fn F27, local
/* 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
.endfn F27
.fn F29, local
/* 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
.endfn F29
.fn __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
.endfn __GBAX01
.fn F31, local
/* 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
.endfn F31
.fn F33, local
/* 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
.endfn F33
.fn F35, local
/* 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
.endfn F35
.fn F37,local
/* 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
.endfn F37
.fn F39, local
/* 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
.endfn F39