.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global AIRegisterDMACallback AIRegisterDMACallback: /* 8028EB04 0028A764 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8028EB08 0028A768 7C 08 02 A6 */ mflr r0 /* 8028EB0C 0028A76C 90 01 00 14 */ stw r0, 0x14(r1) /* 8028EB10 0028A770 93 E1 00 0C */ stw r31, 0xc(r1) /* 8028EB14 0028A774 93 C1 00 08 */ stw r30, 8(r1) /* 8028EB18 0028A778 7C 7E 1B 78 */ mr r30, r3 /* 8028EB1C 0028A77C 83 ED AB 08 */ lwz r31, lbl_8063FDC8-_SDA_BASE_(r13) /* 8028EB20 0028A780 4B FD FC 3D */ bl OSDisableInterrupts /* 8028EB24 0028A784 93 CD AB 08 */ stw r30, lbl_8063FDC8-_SDA_BASE_(r13) /* 8028EB28 0028A788 4B FD FC 5D */ bl OSRestoreInterrupts /* 8028EB2C 0028A78C 7F E3 FB 78 */ mr r3, r31 /* 8028EB30 0028A790 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8028EB34 0028A794 83 C1 00 08 */ lwz r30, 8(r1) /* 8028EB38 0028A798 80 01 00 14 */ lwz r0, 0x14(r1) /* 8028EB3C 0028A79C 7C 08 03 A6 */ mtlr r0 /* 8028EB40 0028A7A0 38 21 00 10 */ addi r1, r1, 0x10 /* 8028EB44 0028A7A4 4E 80 00 20 */ blr .global AIInitDMA AIInitDMA: /* 8028EB48 0028A7A8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8028EB4C 0028A7AC 7C 08 02 A6 */ mflr r0 /* 8028EB50 0028A7B0 90 01 00 14 */ stw r0, 0x14(r1) /* 8028EB54 0028A7B4 93 E1 00 0C */ stw r31, 0xc(r1) /* 8028EB58 0028A7B8 7C 9F 23 78 */ mr r31, r4 /* 8028EB5C 0028A7BC 93 C1 00 08 */ stw r30, 8(r1) /* 8028EB60 0028A7C0 7C 7E 1B 78 */ mr r30, r3 /* 8028EB64 0028A7C4 4B FD FB F9 */ bl OSDisableInterrupts /* 8028EB68 0028A7C8 3C E0 CC 00 */ lis r7, 0xCC005030@ha /* 8028EB6C 0028A7CC 57 C5 84 3E */ srwi r5, r30, 0x10 /* 8028EB70 0028A7D0 A0 C7 50 30 */ lhz r6, 0xCC005030@l(r7) /* 8028EB74 0028A7D4 57 C4 04 3E */ clrlwi r4, r30, 0x10 /* 8028EB78 0028A7D8 57 E0 DC 3E */ rlwinm r0, r31, 0x1b, 0x10, 0x1f /* 8028EB7C 0028A7DC 54 C6 00 24 */ rlwinm r6, r6, 0, 0, 0x12 /* 8028EB80 0028A7E0 7C C5 2B 78 */ or r5, r6, r5 /* 8028EB84 0028A7E4 B0 A7 50 30 */ sth r5, 0x5030(r7) /* 8028EB88 0028A7E8 A0 A7 50 32 */ lhz r5, 0x5032(r7) /* 8028EB8C 0028A7EC 54 A5 06 DE */ rlwinm r5, r5, 0, 0x1b, 0xf /* 8028EB90 0028A7F0 7C A4 23 78 */ or r4, r5, r4 /* 8028EB94 0028A7F4 B0 87 50 32 */ sth r4, 0x5032(r7) /* 8028EB98 0028A7F8 A0 87 50 36 */ lhz r4, 0x5036(r7) /* 8028EB9C 0028A7FC 54 84 00 20 */ rlwinm r4, r4, 0, 0, 0x10 /* 8028EBA0 0028A800 7C 80 03 78 */ or r0, r4, r0 /* 8028EBA4 0028A804 B0 07 50 36 */ sth r0, 0x5036(r7) /* 8028EBA8 0028A808 4B FD FB DD */ bl OSRestoreInterrupts /* 8028EBAC 0028A80C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8028EBB0 0028A810 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8028EBB4 0028A814 83 C1 00 08 */ lwz r30, 8(r1) /* 8028EBB8 0028A818 7C 08 03 A6 */ mtlr r0 /* 8028EBBC 0028A81C 38 21 00 10 */ addi r1, r1, 0x10 /* 8028EBC0 0028A820 4E 80 00 20 */ blr .global AIStartDMA AIStartDMA: /* 8028EBC4 0028A824 3C 60 CC 00 */ lis r3, 0xCC005036@ha /* 8028EBC8 0028A828 A0 03 50 36 */ lhz r0, 0xCC005036@l(r3) /* 8028EBCC 0028A82C 60 00 80 00 */ ori r0, r0, 0x8000 /* 8028EBD0 0028A830 B0 03 50 36 */ sth r0, 0x5036(r3) /* 8028EBD4 0028A834 4E 80 00 20 */ blr .global AIGetDMABytesLeft AIGetDMABytesLeft: /* 8028EBD8 0028A838 3C 60 CC 00 */ lis r3, 0xCC00503A@ha /* 8028EBDC 0028A83C A0 03 50 3A */ lhz r0, 0xCC00503A@l(r3) /* 8028EBE0 0028A840 54 03 2B 34 */ rlwinm r3, r0, 5, 0xc, 0x1a /* 8028EBE4 0028A844 4E 80 00 20 */ blr .global AIInit AIInit: /* 8028EBE8 0028A848 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8028EBEC 0028A84C 7C 08 02 A6 */ mflr r0 /* 8028EBF0 0028A850 90 01 00 24 */ stw r0, 0x24(r1) /* 8028EBF4 0028A854 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8028EBF8 0028A858 7C 7F 1B 78 */ mr r31, r3 /* 8028EBFC 0028A85C 93 C1 00 18 */ stw r30, 0x18(r1) /* 8028EC00 0028A860 93 A1 00 14 */ stw r29, 0x14(r1) /* 8028EC04 0028A864 80 0D AA D0 */ lwz r0, lbl_8063FD90-_SDA_BASE_(r13) /* 8028EC08 0028A868 2C 00 00 01 */ cmpwi r0, 1 /* 8028EC0C 0028A86C 41 82 01 40 */ beq lbl_8028ED4C /* 8028EC10 0028A870 80 6D 88 E0 */ lwz r3, lbl_8063DBA0-_SDA_BASE_(r13) /* 8028EC14 0028A874 4B FD AA 3D */ bl OSRegisterVersion /* 8028EC18 0028A878 3C 60 80 00 */ lis r3, 0x800000F8@ha /* 8028EC1C 0028A87C 3C 80 43 1C */ lis r4, 0x431BDE83@ha /* 8028EC20 0028A880 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) /* 8028EC24 0028A884 38 E0 00 00 */ li r7, 0 /* 8028EC28 0028A888 3C A0 10 62 */ lis r5, 0x10624DD3@ha /* 8028EC2C 0028A88C 38 84 DE 83 */ addi r4, r4, 0x431BDE83@l /* 8028EC30 0028A890 54 06 F0 BE */ srwi r6, r0, 2 /* 8028EC34 0028A894 3C 60 00 01 */ lis r3, 0x0000A428@ha /* 8028EC38 0028A898 7C C4 30 16 */ mulhwu r6, r4, r6 /* 8028EC3C 0028A89C 39 25 4D D3 */ addi r9, r5, 0x10624DD3@l /* 8028EC40 0028A8A0 38 03 A4 28 */ addi r0, r3, 0x0000A428@l /* 8028EC44 0028A8A4 90 ED AA F8 */ stw r7, lbl_8063FDB8-_SDA_BASE_(r13) /* 8028EC48 0028A8A8 38 83 A4 10 */ addi r4, r3, -23536 /* 8028EC4C 0028A8AC 38 63 F6 18 */ addi r3, r3, -2536 /* 8028EC50 0028A8B0 54 CA 8B FE */ srwi r10, r6, 0xf /* 8028EC54 0028A8B4 90 ED AA F0 */ stw r7, lbl_8063FDB0-_SDA_BASE_(r13) /* 8028EC58 0028A8B8 7C CA 01 D6 */ mullw r6, r10, r0 /* 8028EC5C 0028A8BC 3F C0 CD 00 */ lis r30, 0xCD006C00@ha /* 8028EC60 0028A8C0 90 ED AA E8 */ stw r7, lbl_8063FDA8-_SDA_BASE_(r13) /* 8028EC64 0028A8C4 38 00 FF EA */ li r0, -22 /* 8028EC68 0028A8C8 90 ED AA E0 */ stw r7, lbl_8063FDA0-_SDA_BASE_(r13) /* 8028EC6C 0028A8CC 7C AA 21 D6 */ mullw r5, r10, r4 /* 8028EC70 0028A8D0 90 ED AA D8 */ stw r7, lbl_8063FD98-_SDA_BASE_(r13) /* 8028EC74 0028A8D4 7C 8A 19 D6 */ mullw r4, r10, r3 /* 8028EC78 0028A8D8 1D 0A 7B 24 */ mulli r8, r10, 0x7b24 /* 8028EC7C 0028A8DC 1C 6A 0B B8 */ mulli r3, r10, 0xbb8 /* 8028EC80 0028A8E0 7D 09 40 16 */ mulhwu r8, r9, r8 /* 8028EC84 0028A8E4 7C C9 30 16 */ mulhwu r6, r9, r6 /* 8028EC88 0028A8E8 55 08 BA 7E */ srwi r8, r8, 9 /* 8028EC8C 0028A8EC 91 0D AA FC */ stw r8, lbl_8063FDBC-_SDA_BASE_(r13) /* 8028EC90 0028A8F0 7C A9 28 16 */ mulhwu r5, r9, r5 /* 8028EC94 0028A8F4 54 C6 BA 7E */ srwi r6, r6, 9 /* 8028EC98 0028A8F8 90 CD AA F4 */ stw r6, lbl_8063FDB4-_SDA_BASE_(r13) /* 8028EC9C 0028A8FC 7C 89 20 16 */ mulhwu r4, r9, r4 /* 8028ECA0 0028A900 54 A5 BA 7E */ srwi r5, r5, 9 /* 8028ECA4 0028A904 90 AD AA EC */ stw r5, lbl_8063FDAC-_SDA_BASE_(r13) /* 8028ECA8 0028A908 7C 69 18 16 */ mulhwu r3, r9, r3 /* 8028ECAC 0028A90C 54 84 BA 7E */ srwi r4, r4, 9 /* 8028ECB0 0028A910 90 8D AA E4 */ stw r4, lbl_8063FDA4-_SDA_BASE_(r13) /* 8028ECB4 0028A914 54 63 BA 7E */ srwi r3, r3, 9 /* 8028ECB8 0028A918 90 6D AA DC */ stw r3, lbl_8063FD9C-_SDA_BASE_(r13) /* 8028ECBC 0028A91C 80 7E 6C 00 */ lwz r3, 0xCD006C00@l(r30) /* 8028ECC0 0028A920 7C 60 00 38 */ and r0, r3, r0 /* 8028ECC4 0028A924 90 1E 6C 00 */ stw r0, 0x6c00(r30) /* 8028ECC8 0028A928 90 FE 6C 04 */ stw r7, 0x6c04(r30) /* 8028ECCC 0028A92C 90 FE 6C 0C */ stw r7, 0x6c0c(r30) /* 8028ECD0 0028A930 80 1E 6C 00 */ lwz r0, 0x6c00(r30) /* 8028ECD4 0028A934 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19 /* 8028ECD8 0028A938 60 00 00 20 */ ori r0, r0, 0x20 /* 8028ECDC 0028A93C 90 1E 6C 00 */ stw r0, 0x6c00(r30) /* 8028ECE0 0028A940 80 1E 6C 00 */ lwz r0, 0x6c00(r30) /* 8028ECE4 0028A944 54 00 D7 FE */ rlwinm r0, r0, 0x1a, 0x1f, 0x1f /* 8028ECE8 0028A948 68 00 00 01 */ xori r0, r0, 1 /* 8028ECEC 0028A94C 2C 00 00 00 */ cmpwi r0, 0 /* 8028ECF0 0028A950 41 82 00 30 */ beq lbl_8028ED20 /* 8028ECF4 0028A954 80 1E 6C 00 */ lwz r0, 0x6c00(r30) /* 8028ECF8 0028A958 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18 /* 8028ECFC 0028A95C 90 1E 6C 00 */ stw r0, 0x6c00(r30) /* 8028ED00 0028A960 4B FD FA 5D */ bl OSDisableInterrupts /* 8028ED04 0028A964 7C 7D 1B 78 */ mr r29, r3 /* 8028ED08 0028A968 48 00 01 6D */ bl __AI_SRC_INIT /* 8028ED0C 0028A96C 80 1E 6C 00 */ lwz r0, 0x6c00(r30) /* 8028ED10 0028A970 7F A3 EB 78 */ mr r3, r29 /* 8028ED14 0028A974 60 00 00 40 */ ori r0, r0, 0x40 /* 8028ED18 0028A978 90 1E 6C 00 */ stw r0, 0x6c00(r30) /* 8028ED1C 0028A97C 4B FD FA 69 */ bl OSRestoreInterrupts lbl_8028ED20: /* 8028ED20 0028A980 38 00 00 00 */ li r0, 0 /* 8028ED24 0028A984 3C 80 80 29 */ lis r4, __AIDHandler@ha /* 8028ED28 0028A988 90 0D AB 08 */ stw r0, lbl_8063FDC8-_SDA_BASE_(r13) /* 8028ED2C 0028A98C 38 84 ED 68 */ addi r4, r4, __AIDHandler@l /* 8028ED30 0028A990 38 60 00 05 */ li r3, 5 /* 8028ED34 0028A994 93 ED AB 04 */ stw r31, lbl_8063FDC4-_SDA_BASE_(r13) /* 8028ED38 0028A998 4B FD FA 71 */ bl __OSSetInterruptHandler /* 8028ED3C 0028A99C 3C 60 04 00 */ lis r3, 0x400 /* 8028ED40 0028A9A0 4B FD FE 2D */ bl __OSUnmaskInterrupts /* 8028ED44 0028A9A4 38 00 00 01 */ li r0, 1 /* 8028ED48 0028A9A8 90 0D AA D0 */ stw r0, lbl_8063FD90-_SDA_BASE_(r13) lbl_8028ED4C: /* 8028ED4C 0028A9AC 80 01 00 24 */ lwz r0, 0x24(r1) /* 8028ED50 0028A9B0 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8028ED54 0028A9B4 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8028ED58 0028A9B8 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8028ED5C 0028A9BC 7C 08 03 A6 */ mtlr r0 /* 8028ED60 0028A9C0 38 21 00 20 */ addi r1, r1, 0x20 /* 8028ED64 0028A9C4 4E 80 00 20 */ blr __AIDHandler: /* 8028ED68 0028A9C8 94 21 FD 20 */ stwu r1, -0x2e0(r1) /* 8028ED6C 0028A9CC 7C 08 02 A6 */ mflr r0 /* 8028ED70 0028A9D0 3C C0 CC 00 */ lis r6, 0xCC00500A@ha /* 8028ED74 0028A9D4 90 01 02 E4 */ stw r0, 0x2e4(r1) /* 8028ED78 0028A9D8 38 00 FF 5F */ li r0, -161 /* 8028ED7C 0028A9DC 38 61 00 08 */ addi r3, r1, 8 /* 8028ED80 0028A9E0 93 E1 02 DC */ stw r31, 0x2dc(r1) /* 8028ED84 0028A9E4 7C 9F 23 78 */ mr r31, r4 /* 8028ED88 0028A9E8 A0 A6 50 0A */ lhz r5, 0xCC00500A@l(r6) /* 8028ED8C 0028A9EC 7C A0 00 38 */ and r0, r5, r0 /* 8028ED90 0028A9F0 60 00 00 08 */ ori r0, r0, 8 /* 8028ED94 0028A9F4 B0 06 50 0A */ sth r0, 0x500a(r6) /* 8028ED98 0028A9F8 4B FD C2 F9 */ bl OSClearContext /* 8028ED9C 0028A9FC 38 61 00 08 */ addi r3, r1, 8 /* 8028EDA0 0028AA00 4B FD C0 C9 */ bl OSSetCurrentContext /* 8028EDA4 0028AA04 80 6D AB 08 */ lwz r3, lbl_8063FDC8-_SDA_BASE_(r13) /* 8028EDA8 0028AA08 2C 03 00 00 */ cmpwi r3, 0 /* 8028EDAC 0028AA0C 41 82 00 40 */ beq lbl_8028EDEC /* 8028EDB0 0028AA10 80 0D AA D4 */ lwz r0, lbl_8063FD94-_SDA_BASE_(r13) /* 8028EDB4 0028AA14 2C 00 00 00 */ cmpwi r0, 0 /* 8028EDB8 0028AA18 40 82 00 34 */ bne lbl_8028EDEC /* 8028EDBC 0028AA1C 80 0D AB 04 */ lwz r0, lbl_8063FDC4-_SDA_BASE_(r13) /* 8028EDC0 0028AA20 38 80 00 01 */ li r4, 1 /* 8028EDC4 0028AA24 90 8D AA D4 */ stw r4, lbl_8063FD94-_SDA_BASE_(r13) /* 8028EDC8 0028AA28 2C 00 00 00 */ cmpwi r0, 0 /* 8028EDCC 0028AA2C 41 82 00 0C */ beq lbl_8028EDD8 /* 8028EDD0 0028AA30 48 00 00 41 */ bl __AICallbackStackSwitch /* 8028EDD4 0028AA34 48 00 00 10 */ b lbl_8028EDE4 lbl_8028EDD8: /* 8028EDD8 0028AA38 7C 6C 1B 78 */ mr r12, r3 /* 8028EDDC 0028AA3C 7D 89 03 A6 */ mtctr r12 /* 8028EDE0 0028AA40 4E 80 04 21 */ bctrl lbl_8028EDE4: /* 8028EDE4 0028AA44 38 00 00 00 */ li r0, 0 /* 8028EDE8 0028AA48 90 0D AA D4 */ stw r0, lbl_8063FD94-_SDA_BASE_(r13) lbl_8028EDEC: /* 8028EDEC 0028AA4C 38 61 00 08 */ addi r3, r1, 8 /* 8028EDF0 0028AA50 4B FD C2 A1 */ bl OSClearContext /* 8028EDF4 0028AA54 7F E3 FB 78 */ mr r3, r31 /* 8028EDF8 0028AA58 4B FD C0 71 */ bl OSSetCurrentContext /* 8028EDFC 0028AA5C 80 01 02 E4 */ lwz r0, 0x2e4(r1) /* 8028EE00 0028AA60 83 E1 02 DC */ lwz r31, 0x2dc(r1) /* 8028EE04 0028AA64 7C 08 03 A6 */ mtlr r0 /* 8028EE08 0028AA68 38 21 02 E0 */ addi r1, r1, 0x2e0 /* 8028EE0C 0028AA6C 4E 80 00 20 */ blr .global __AICallbackStackSwitch __AICallbackStackSwitch: /* 8028EE10 0028AA70 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8028EE14 0028AA74 7C 08 02 A6 */ mflr r0 /* 8028EE18 0028AA78 90 01 00 14 */ stw r0, 0x14(r1) /* 8028EE1C 0028AA7C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8028EE20 0028AA80 7C 3F 0B 78 */ mr r31, r1 /* 8028EE24 0028AA84 7C 7F 1B 78 */ mr r31, r3 /* 8028EE28 0028AA88 3C A0 80 64 */ lis r5, lbl_8063FDC0@ha /* 8028EE2C 0028AA8C 38 A5 FD C0 */ addi r5, r5, lbl_8063FDC0@l /* 8028EE30 0028AA90 90 25 00 00 */ stw r1, 0(r5) /* 8028EE34 0028AA94 3C A0 80 64 */ lis r5, lbl_8063FDC4@ha /* 8028EE38 0028AA98 38 A5 FD C4 */ addi r5, r5, lbl_8063FDC4@l /* 8028EE3C 0028AA9C 80 25 00 00 */ lwz r1, 0(r5) /* 8028EE40 0028AAA0 38 21 FF F8 */ addi r1, r1, -8 /* 8028EE44 0028AAA4 7F E8 03 A6 */ mtlr r31 /* 8028EE48 0028AAA8 4E 80 00 21 */ blrl /* 8028EE4C 0028AAAC 3C A0 80 64 */ lis r5, lbl_8063FDC0@ha /* 8028EE50 0028AAB0 38 A5 FD C0 */ addi r5, r5, lbl_8063FDC0@l /* 8028EE54 0028AAB4 80 25 00 00 */ lwz r1, 0(r5) /* 8028EE58 0028AAB8 7C 2A 0B 78 */ mr r10, r1 /* 8028EE5C 0028AABC 83 EA 00 0C */ lwz r31, 0xc(r10) /* 8028EE60 0028AAC0 81 41 00 00 */ lwz r10, 0(r1) /* 8028EE64 0028AAC4 80 0A 00 04 */ lwz r0, 4(r10) /* 8028EE68 0028AAC8 7D 41 53 78 */ mr r1, r10 /* 8028EE6C 0028AACC 7C 08 03 A6 */ mtlr r0 /* 8028EE70 0028AAD0 4E 80 00 20 */ blr .global __AI_SRC_INIT __AI_SRC_INIT: /* 8028EE74 0028AAD4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8028EE78 0028AAD8 7C 08 02 A6 */ mflr r0 /* 8028EE7C 0028AADC 90 01 00 24 */ stw r0, 0x24(r1) /* 8028EE80 0028AAE0 39 61 00 20 */ addi r11, r1, 0x20 /* 8028EE84 0028AAE4 4B F3 82 A5 */ bl _savegpr_27 /* 8028EE88 0028AAE8 38 80 00 00 */ li r4, 0 /* 8028EE8C 0028AAEC 38 60 00 00 */ li r3, 0 /* 8028EE90 0028AAF0 38 00 00 00 */ li r0, 0 /* 8028EE94 0028AAF4 3B A0 00 00 */ li r29, 0 /* 8028EE98 0028AAF8 3B C0 00 00 */ li r30, 0 /* 8028EE9C 0028AAFC 3F E0 CD 00 */ lis r31, 0xcd00 /* 8028EEA0 0028AB00 48 00 01 50 */ b lbl_8028EFF0 lbl_8028EEA4: /* 8028EEA4 0028AB04 80 1F 6C 00 */ lwz r0, 0x6c00(r31) /* 8028EEA8 0028AB08 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19 /* 8028EEAC 0028AB0C 60 00 00 20 */ ori r0, r0, 0x20 /* 8028EEB0 0028AB10 90 1F 6C 00 */ stw r0, 0x6c00(r31) /* 8028EEB4 0028AB14 80 1F 6C 00 */ lwz r0, 0x6c00(r31) /* 8028EEB8 0028AB18 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d /* 8028EEBC 0028AB1C 90 1F 6C 00 */ stw r0, 0x6c00(r31) /* 8028EEC0 0028AB20 80 1F 6C 00 */ lwz r0, 0x6c00(r31) /* 8028EEC4 0028AB24 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e /* 8028EEC8 0028AB28 60 00 00 01 */ ori r0, r0, 1 /* 8028EECC 0028AB2C 90 1F 6C 00 */ stw r0, 0x6c00(r31) /* 8028EED0 0028AB30 80 1F 6C 08 */ lwz r0, 0x6c08(r31) /* 8028EED4 0028AB34 54 03 00 7E */ clrlwi r3, r0, 1 lbl_8028EED8: /* 8028EED8 0028AB38 80 1F 6C 08 */ lwz r0, 0x6c08(r31) /* 8028EEDC 0028AB3C 54 00 00 7E */ clrlwi r0, r0, 1 /* 8028EEE0 0028AB40 7C 03 00 40 */ cmplw r3, r0 /* 8028EEE4 0028AB44 41 82 FF F4 */ beq lbl_8028EED8 /* 8028EEE8 0028AB48 4B FE 38 D1 */ bl OSGetTime /* 8028EEEC 0028AB4C 80 1F 6C 00 */ lwz r0, 0x6c00(r31) /* 8028EEF0 0028AB50 7C 9B 23 78 */ mr r27, r4 /* 8028EEF4 0028AB54 7C 7C 1B 78 */ mr r28, r3 /* 8028EEF8 0028AB58 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d /* 8028EEFC 0028AB5C 60 00 00 02 */ ori r0, r0, 2 /* 8028EF00 0028AB60 90 1F 6C 00 */ stw r0, 0x6c00(r31) /* 8028EF04 0028AB64 80 1F 6C 00 */ lwz r0, 0x6c00(r31) /* 8028EF08 0028AB68 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e /* 8028EF0C 0028AB6C 60 00 00 01 */ ori r0, r0, 1 /* 8028EF10 0028AB70 90 1F 6C 00 */ stw r0, 0x6c00(r31) /* 8028EF14 0028AB74 80 1F 6C 08 */ lwz r0, 0x6c08(r31) /* 8028EF18 0028AB78 54 03 00 7E */ clrlwi r3, r0, 1 lbl_8028EF1C: /* 8028EF1C 0028AB7C 80 1F 6C 08 */ lwz r0, 0x6c08(r31) /* 8028EF20 0028AB80 54 00 00 7E */ clrlwi r0, r0, 1 /* 8028EF24 0028AB84 7C 03 00 40 */ cmplw r3, r0 /* 8028EF28 0028AB88 41 82 FF F4 */ beq lbl_8028EF1C /* 8028EF2C 0028AB8C 4B FE 38 8D */ bl OSGetTime /* 8028EF30 0028AB90 80 1F 6C 00 */ lwz r0, 0x6c00(r31) /* 8028EF34 0028AB94 7D 1B 20 10 */ subfc r8, r27, r4 /* 8028EF38 0028AB98 7C BC 19 10 */ subfe r5, r28, r3 /* 8028EF3C 0028AB9C 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d /* 8028EF40 0028ABA0 90 1F 6C 00 */ stw r0, 0x6c00(r31) /* 8028EF44 0028ABA4 6C A7 80 00 */ xoris r7, r5, 0x8000 /* 8028EF48 0028ABA8 80 1F 6C 00 */ lwz r0, 0x6c00(r31) /* 8028EF4C 0028ABAC 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e /* 8028EF50 0028ABB0 90 1F 6C 00 */ stw r0, 0x6c00(r31) /* 8028EF54 0028ABB4 81 4D AA DC */ lwz r10, lbl_8063FD9C-_SDA_BASE_(r13) /* 8028EF58 0028ABB8 81 8D AA FC */ lwz r12, lbl_8063FDBC-_SDA_BASE_(r13) /* 8028EF5C 0028ABBC 81 2D AA D8 */ lwz r9, lbl_8063FD98-_SDA_BASE_(r13) /* 8028EF60 0028ABC0 81 6D AA F8 */ lwz r11, lbl_8063FDB8-_SDA_BASE_(r13) /* 8028EF64 0028ABC4 7C CA 60 10 */ subfc r6, r10, r12 /* 8028EF68 0028ABC8 7C 09 59 10 */ subfe r0, r9, r11 /* 8028EF6C 0028ABCC 6C 05 80 00 */ xoris r5, r0, 0x8000 /* 8028EF70 0028ABD0 7C 06 40 10 */ subfc r0, r6, r8 /* 8028EF74 0028ABD4 7C A5 39 10 */ subfe r5, r5, r7 /* 8028EF78 0028ABD8 7C A7 39 10 */ subfe r5, r7, r7 /* 8028EF7C 0028ABDC 7C A5 00 D1 */ neg. r5, r5 /* 8028EF80 0028ABE0 41 82 00 14 */ beq lbl_8028EF94 /* 8028EF84 0028ABE4 83 CD AA E8 */ lwz r30, lbl_8063FDA8-_SDA_BASE_(r13) /* 8028EF88 0028ABE8 38 00 00 01 */ li r0, 1 /* 8028EF8C 0028ABEC 83 AD AA EC */ lwz r29, lbl_8063FDAC-_SDA_BASE_(r13) /* 8028EF90 0028ABF0 48 00 00 60 */ b lbl_8028EFF0 lbl_8028EF94: /* 8028EF94 0028ABF4 7C CC 50 14 */ addc r6, r12, r10 /* 8028EF98 0028ABF8 7C 0B 49 14 */ adde r0, r11, r9 /* 8028EF9C 0028ABFC 6C 05 80 00 */ xoris r5, r0, 0x8000 /* 8028EFA0 0028AC00 7C 06 40 10 */ subfc r0, r6, r8 /* 8028EFA4 0028AC04 7C A5 39 10 */ subfe r5, r5, r7 /* 8028EFA8 0028AC08 7C A7 39 10 */ subfe r5, r7, r7 /* 8028EFAC 0028AC0C 7C A5 00 D1 */ neg. r5, r5 /* 8028EFB0 0028AC10 40 82 00 3C */ bne lbl_8028EFEC /* 8028EFB4 0028AC14 80 AD AA F4 */ lwz r5, lbl_8063FDB4-_SDA_BASE_(r13) /* 8028EFB8 0028AC18 80 0D AA F0 */ lwz r0, lbl_8063FDB0-_SDA_BASE_(r13) /* 8028EFBC 0028AC1C 7C CA 28 10 */ subfc r6, r10, r5 /* 8028EFC0 0028AC20 7C 09 01 10 */ subfe r0, r9, r0 /* 8028EFC4 0028AC24 6C 05 80 00 */ xoris r5, r0, 0x8000 /* 8028EFC8 0028AC28 7C 06 40 10 */ subfc r0, r6, r8 /* 8028EFCC 0028AC2C 7C A5 39 10 */ subfe r5, r5, r7 /* 8028EFD0 0028AC30 7C A7 39 10 */ subfe r5, r7, r7 /* 8028EFD4 0028AC34 7C A5 00 D1 */ neg. r5, r5 /* 8028EFD8 0028AC38 41 82 00 14 */ beq lbl_8028EFEC /* 8028EFDC 0028AC3C 83 CD AA E0 */ lwz r30, lbl_8063FDA0-_SDA_BASE_(r13) /* 8028EFE0 0028AC40 38 00 00 01 */ li r0, 1 /* 8028EFE4 0028AC44 83 AD AA E4 */ lwz r29, lbl_8063FDA4-_SDA_BASE_(r13) /* 8028EFE8 0028AC48 48 00 00 08 */ b lbl_8028EFF0 lbl_8028EFEC: /* 8028EFEC 0028AC4C 38 00 00 00 */ li r0, 0 lbl_8028EFF0: /* 8028EFF0 0028AC50 2C 00 00 00 */ cmpwi r0, 0 /* 8028EFF4 0028AC54 41 82 FE B0 */ beq lbl_8028EEA4 /* 8028EFF8 0028AC58 7F E4 E8 14 */ addc r31, r4, r29 /* 8028EFFC 0028AC5C 7F A3 F1 14 */ adde r29, r3, r30 lbl_8028F000: /* 8028F000 0028AC60 4B FE 37 B9 */ bl OSGetTime /* 8028F004 0028AC64 6C 60 80 00 */ xoris r0, r3, 0x8000 /* 8028F008 0028AC68 6F A5 80 00 */ xoris r5, r29, 0x8000 /* 8028F00C 0028AC6C 7C 7F 20 10 */ subfc r3, r31, r4 /* 8028F010 0028AC70 7C A5 01 10 */ subfe r5, r5, r0 /* 8028F014 0028AC74 7C A0 01 10 */ subfe r5, r0, r0 /* 8028F018 0028AC78 7C A5 00 D1 */ neg. r5, r5 /* 8028F01C 0028AC7C 40 82 FF E4 */ bne lbl_8028F000 /* 8028F020 0028AC80 39 61 00 20 */ addi r11, r1, 0x20 /* 8028F024 0028AC84 4B F3 81 51 */ bl _restgpr_27 /* 8028F028 0028AC88 80 01 00 24 */ lwz r0, 0x24(r1) /* 8028F02C 0028AC8C 7C 08 03 A6 */ mtlr r0 /* 8028F030 0028AC90 38 21 00 20 */ addi r1, r1, 0x20 /* 8028F034 0028AC94 4E 80 00 20 */ blr