.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_8025EC68 func_8025EC68: /* 8025EC68 0025A8C8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8025EC6C 0025A8CC 7C 08 02 A6 */ mflr r0 /* 8025EC70 0025A8D0 90 01 00 24 */ stw r0, 0x24(r1) /* 8025EC74 0025A8D4 39 61 00 20 */ addi r11, r1, 0x20 /* 8025EC78 0025A8D8 4B F6 84 B1 */ bl _savegpr_27 /* 8025EC7C 0025A8DC 7C 9B 23 78 */ mr r27, r4 /* 8025EC80 0025A8E0 7C BC 2B 78 */ mr r28, r5 /* 8025EC84 0025A8E4 7C DD 33 78 */ mr r29, r6 /* 8025EC88 0025A8E8 7C FF 3B 78 */ mr r31, r7 /* 8025EC8C 0025A8EC 48 00 FA D1 */ bl OSDisableInterrupts /* 8025EC90 0025A8F0 7C 7E 1B 78 */ mr r30, r3 /* 8025EC94 0025A8F4 4B FF F3 3D */ bl func_8025DFD0 /* 8025EC98 0025A8F8 4B FF F6 6D */ bl func_8025E304 /* 8025EC9C 0025A8FC 7F 64 DB 78 */ mr r4, r27 /* 8025ECA0 0025A900 7F 85 E3 78 */ mr r5, r28 /* 8025ECA4 0025A904 7F A6 EB 78 */ mr r6, r29 /* 8025ECA8 0025A908 7F E7 FB 78 */ mr r7, r31 /* 8025ECAC 0025A90C 4B FF E3 55 */ bl func_8025D000 /* 8025ECB0 0025A910 7C 7F 1B 78 */ mr r31, r3 /* 8025ECB4 0025A914 7F C3 F3 78 */ mr r3, r30 /* 8025ECB8 0025A918 48 00 FA CD */ bl OSRestoreInterrupts /* 8025ECBC 0025A91C 2C 1F 00 00 */ cmpwi r31, 0 /* 8025ECC0 0025A920 40 80 00 20 */ bge lbl_8025ECE0 /* 8025ECC4 0025A924 48 00 FA 99 */ bl OSDisableInterrupts /* 8025ECC8 0025A928 7C 7F 1B 78 */ mr r31, r3 /* 8025ECCC 0025A92C 4B FF F3 05 */ bl func_8025DFD0 /* 8025ECD0 0025A930 4B FF F6 35 */ bl func_8025E304 /* 8025ECD4 0025A934 4B FF E2 7D */ bl func_8025CF50 /* 8025ECD8 0025A938 7F E3 FB 78 */ mr r3, r31 /* 8025ECDC 0025A93C 48 00 FA A9 */ bl OSRestoreInterrupts lbl_8025ECE0: /* 8025ECE0 0025A940 39 61 00 20 */ addi r11, r1, 0x20 /* 8025ECE4 0025A944 4B F6 84 91 */ bl _restgpr_27 /* 8025ECE8 0025A948 80 01 00 24 */ lwz r0, 0x24(r1) /* 8025ECEC 0025A94C 7C 08 03 A6 */ mtlr r0 /* 8025ECF0 0025A950 38 21 00 20 */ addi r1, r1, 0x20 /* 8025ECF4 0025A954 4E 80 00 20 */ blr .global func_8025ECF8 func_8025ECF8: /* 8025ECF8 0025A958 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8025ECFC 0025A95C 7C 08 02 A6 */ mflr r0 /* 8025ED00 0025A960 90 01 00 24 */ stw r0, 0x24(r1) /* 8025ED04 0025A964 39 61 00 20 */ addi r11, r1, 0x20 /* 8025ED08 0025A968 4B F6 84 21 */ bl _savegpr_27 /* 8025ED0C 0025A96C 28 05 00 04 */ cmplwi r5, 4 /* 8025ED10 0025A970 7C 9B 23 78 */ mr r27, r4 /* 8025ED14 0025A974 7C BC 2B 78 */ mr r28, r5 /* 8025ED18 0025A978 7C DD 33 78 */ mr r29, r6 /* 8025ED1C 0025A97C 7C FE 3B 78 */ mr r30, r7 /* 8025ED20 0025A980 41 80 00 0C */ blt lbl_8025ED2C /* 8025ED24 0025A984 28 05 04 00 */ cmplwi r5, 0x400 /* 8025ED28 0025A988 40 81 00 0C */ ble lbl_8025ED34 lbl_8025ED2C: /* 8025ED2C 0025A98C 38 60 FF FF */ li r3, -1 /* 8025ED30 0025A990 48 00 00 80 */ b lbl_8025EDB0 lbl_8025ED34: /* 8025ED34 0025A994 2C 04 00 00 */ cmpwi r4, 0 /* 8025ED38 0025A998 40 82 00 0C */ bne lbl_8025ED44 /* 8025ED3C 0025A99C 38 60 FF FF */ li r3, -1 /* 8025ED40 0025A9A0 48 00 00 70 */ b lbl_8025EDB0 lbl_8025ED44: /* 8025ED44 0025A9A4 A0 04 00 00 */ lhz r0, 0(r4) /* 8025ED48 0025A9A8 28 00 00 12 */ cmplwi r0, 0x12 /* 8025ED4C 0025A9AC 41 80 00 0C */ blt lbl_8025ED58 /* 8025ED50 0025A9B0 38 60 FF FF */ li r3, -1 /* 8025ED54 0025A9B4 48 00 00 5C */ b lbl_8025EDB0 lbl_8025ED58: /* 8025ED58 0025A9B8 81 83 00 00 */ lwz r12, 0(r3) /* 8025ED5C 0025A9BC 81 8C 00 28 */ lwz r12, 0x28(r12) /* 8025ED60 0025A9C0 7D 89 03 A6 */ mtctr r12 /* 8025ED64 0025A9C4 4E 80 04 21 */ bctrl /* 8025ED68 0025A9C8 2C 03 00 00 */ cmpwi r3, 0 /* 8025ED6C 0025A9CC 40 82 00 0C */ bne lbl_8025ED78 /* 8025ED70 0025A9D0 38 60 FF FF */ li r3, -1 /* 8025ED74 0025A9D4 48 00 00 3C */ b lbl_8025EDB0 lbl_8025ED78: /* 8025ED78 0025A9D8 B3 9B 00 02 */ sth r28, 2(r27) /* 8025ED7C 0025A9DC 48 00 F9 E1 */ bl OSDisableInterrupts /* 8025ED80 0025A9E0 7C 7F 1B 78 */ mr r31, r3 /* 8025ED84 0025A9E4 4B FF F2 4D */ bl func_8025DFD0 /* 8025ED88 0025A9E8 4B FF F5 7D */ bl func_8025E304 /* 8025ED8C 0025A9EC 7F 64 DB 78 */ mr r4, r27 /* 8025ED90 0025A9F0 7F 85 E3 78 */ mr r5, r28 /* 8025ED94 0025A9F4 7F A6 EB 78 */ mr r6, r29 /* 8025ED98 0025A9F8 7F C7 F3 78 */ mr r7, r30 /* 8025ED9C 0025A9FC 4B FF E3 35 */ bl func_8025D0D0 /* 8025EDA0 0025AA00 7C 7E 1B 78 */ mr r30, r3 /* 8025EDA4 0025AA04 7F E3 FB 78 */ mr r3, r31 /* 8025EDA8 0025AA08 48 00 F9 DD */ bl OSRestoreInterrupts /* 8025EDAC 0025AA0C 7F C3 F3 78 */ mr r3, r30 lbl_8025EDB0: /* 8025EDB0 0025AA10 39 61 00 20 */ addi r11, r1, 0x20 /* 8025EDB4 0025AA14 4B F6 83 C1 */ bl _restgpr_27 /* 8025EDB8 0025AA18 80 01 00 24 */ lwz r0, 0x24(r1) /* 8025EDBC 0025AA1C 7C 08 03 A6 */ mtlr r0 /* 8025EDC0 0025AA20 38 21 00 20 */ addi r1, r1, 0x20 /* 8025EDC4 0025AA24 4E 80 00 20 */ blr .global func_8025EDC8 func_8025EDC8: /* 8025EDC8 0025AA28 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8025EDCC 0025AA2C 7C 08 02 A6 */ mflr r0 /* 8025EDD0 0025AA30 90 01 00 14 */ stw r0, 0x14(r1) /* 8025EDD4 0025AA34 93 E1 00 0C */ stw r31, 0xc(r1) /* 8025EDD8 0025AA38 93 C1 00 08 */ stw r30, 8(r1) /* 8025EDDC 0025AA3C 7C 9E 23 78 */ mr r30, r4 /* 8025EDE0 0025AA40 48 00 F9 7D */ bl OSDisableInterrupts /* 8025EDE4 0025AA44 7C 7F 1B 78 */ mr r31, r3 /* 8025EDE8 0025AA48 4B FF F1 E9 */ bl func_8025DFD0 /* 8025EDEC 0025AA4C 4B FF F5 19 */ bl func_8025E304 /* 8025EDF0 0025AA50 7F C4 F3 78 */ mr r4, r30 /* 8025EDF4 0025AA54 4B FF E5 11 */ bl func_8025D304 /* 8025EDF8 0025AA58 7F E3 FB 78 */ mr r3, r31 /* 8025EDFC 0025AA5C 48 00 F9 89 */ bl OSRestoreInterrupts /* 8025EE00 0025AA60 80 01 00 14 */ lwz r0, 0x14(r1) /* 8025EE04 0025AA64 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8025EE08 0025AA68 83 C1 00 08 */ lwz r30, 8(r1) /* 8025EE0C 0025AA6C 7C 08 03 A6 */ mtlr r0 /* 8025EE10 0025AA70 38 21 00 10 */ addi r1, r1, 0x10 /* 8025EE14 0025AA74 4E 80 00 20 */ blr .global func_8025EE18 func_8025EE18: /* 8025EE18 0025AA78 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8025EE1C 0025AA7C 7C 08 02 A6 */ mflr r0 /* 8025EE20 0025AA80 90 01 00 14 */ stw r0, 0x14(r1) /* 8025EE24 0025AA84 93 E1 00 0C */ stw r31, 0xc(r1) /* 8025EE28 0025AA88 48 00 F9 35 */ bl OSDisableInterrupts /* 8025EE2C 0025AA8C 7C 7F 1B 78 */ mr r31, r3 /* 8025EE30 0025AA90 4B FF F1 A1 */ bl func_8025DFD0 /* 8025EE34 0025AA94 4B FF F4 D1 */ bl func_8025E304 /* 8025EE38 0025AA98 4B FF E4 95 */ bl func_8025D2CC /* 8025EE3C 0025AA9C 2C 03 00 00 */ cmpwi r3, 0 /* 8025EE40 0025AAA0 41 82 00 10 */ beq lbl_8025EE50 /* 8025EE44 0025AAA4 4B FF F1 8D */ bl func_8025DFD0 /* 8025EE48 0025AAA8 4B FF F4 BD */ bl func_8025E304 /* 8025EE4C 0025AAAC 4B FF E1 51 */ bl func_8025CF9C lbl_8025EE50: /* 8025EE50 0025AAB0 7F E3 FB 78 */ mr r3, r31 /* 8025EE54 0025AAB4 48 00 F9 31 */ bl OSRestoreInterrupts /* 8025EE58 0025AAB8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8025EE5C 0025AABC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8025EE60 0025AAC0 7C 08 03 A6 */ mtlr r0 /* 8025EE64 0025AAC4 38 21 00 10 */ addi r1, r1, 0x10 /* 8025EE68 0025AAC8 4E 80 00 20 */ blr .global func_8025EE6C func_8025EE6C: /* 8025EE6C 0025AACC 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8025EE70 0025AAD0 7C 08 02 A6 */ mflr r0 /* 8025EE74 0025AAD4 90 01 00 24 */ stw r0, 0x24(r1) /* 8025EE78 0025AAD8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8025EE7C 0025AADC 93 C1 00 18 */ stw r30, 0x18(r1) /* 8025EE80 0025AAE0 7C 9E 23 78 */ mr r30, r4 /* 8025EE84 0025AAE4 48 00 F8 D9 */ bl OSDisableInterrupts /* 8025EE88 0025AAE8 7C 7F 1B 78 */ mr r31, r3 /* 8025EE8C 0025AAEC 4B FF F1 45 */ bl func_8025DFD0 /* 8025EE90 0025AAF0 4B FF F4 75 */ bl func_8025E304 /* 8025EE94 0025AAF4 7F C5 F3 78 */ mr r5, r30 /* 8025EE98 0025AAF8 38 81 00 08 */ addi r4, r1, 8 /* 8025EE9C 0025AAFC 4B FF E4 81 */ bl func_8025D31C /* 8025EEA0 0025AB00 7C 7E 1B 78 */ mr r30, r3 /* 8025EEA4 0025AB04 7F E3 FB 78 */ mr r3, r31 /* 8025EEA8 0025AB08 48 00 F8 DD */ bl OSRestoreInterrupts /* 8025EEAC 0025AB0C 2C 1E 00 00 */ cmpwi r30, 0 /* 8025EEB0 0025AB10 41 82 00 38 */ beq lbl_8025EEE8 /* 8025EEB4 0025AB14 A0 7E 00 02 */ lhz r3, 2(r30) /* 8025EEB8 0025AB18 A0 01 00 08 */ lhz r0, 8(r1) /* 8025EEBC 0025AB1C 7C 03 00 40 */ cmplw r3, r0 /* 8025EEC0 0025AB20 40 81 00 10 */ ble lbl_8025EED0 /* 8025EEC4 0025AB24 38 00 00 00 */ li r0, 0 /* 8025EEC8 0025AB28 B0 1E 00 00 */ sth r0, 0(r30) /* 8025EECC 0025AB2C B0 1E 00 02 */ sth r0, 2(r30) lbl_8025EED0: /* 8025EED0 0025AB30 A0 1E 00 00 */ lhz r0, 0(r30) /* 8025EED4 0025AB34 28 00 00 12 */ cmplwi r0, 0x12 /* 8025EED8 0025AB38 41 80 00 10 */ blt lbl_8025EEE8 /* 8025EEDC 0025AB3C 38 00 00 00 */ li r0, 0 /* 8025EEE0 0025AB40 B0 1E 00 00 */ sth r0, 0(r30) /* 8025EEE4 0025AB44 B0 1E 00 02 */ sth r0, 2(r30) lbl_8025EEE8: /* 8025EEE8 0025AB48 7F C3 F3 78 */ mr r3, r30 /* 8025EEEC 0025AB4C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8025EEF0 0025AB50 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8025EEF4 0025AB54 80 01 00 24 */ lwz r0, 0x24(r1) /* 8025EEF8 0025AB58 7C 08 03 A6 */ mtlr r0 /* 8025EEFC 0025AB5C 38 21 00 20 */ addi r1, r1, 0x20 /* 8025EF00 0025AB60 4E 80 00 20 */ blr .global func_8025EF04 func_8025EF04: /* 8025EF04 0025AB64 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8025EF08 0025AB68 7C 08 02 A6 */ mflr r0 /* 8025EF0C 0025AB6C 90 01 00 14 */ stw r0, 0x14(r1) /* 8025EF10 0025AB70 93 E1 00 0C */ stw r31, 0xc(r1) /* 8025EF14 0025AB74 93 C1 00 08 */ stw r30, 8(r1) /* 8025EF18 0025AB78 48 00 F8 45 */ bl OSDisableInterrupts /* 8025EF1C 0025AB7C 7C 7F 1B 78 */ mr r31, r3 /* 8025EF20 0025AB80 4B FF F0 B1 */ bl func_8025DFD0 /* 8025EF24 0025AB84 4B FF F3 E1 */ bl func_8025E304 /* 8025EF28 0025AB88 4B FF E4 69 */ bl func_8025D390 /* 8025EF2C 0025AB8C 7C 7E 1B 78 */ mr r30, r3 /* 8025EF30 0025AB90 7F E3 FB 78 */ mr r3, r31 /* 8025EF34 0025AB94 48 00 F8 51 */ bl OSRestoreInterrupts /* 8025EF38 0025AB98 7F C3 F3 78 */ mr r3, r30 /* 8025EF3C 0025AB9C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8025EF40 0025ABA0 83 C1 00 08 */ lwz r30, 8(r1) /* 8025EF44 0025ABA4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8025EF48 0025ABA8 7C 08 03 A6 */ mtlr r0 /* 8025EF4C 0025ABAC 38 21 00 10 */ addi r1, r1, 0x10 /* 8025EF50 0025ABB0 4E 80 00 20 */ blr .global func_8025EF54 func_8025EF54: /* 8025EF54 0025ABB4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8025EF58 0025ABB8 7C 08 02 A6 */ mflr r0 /* 8025EF5C 0025ABBC 90 01 00 14 */ stw r0, 0x14(r1) /* 8025EF60 0025ABC0 93 E1 00 0C */ stw r31, 0xc(r1) /* 8025EF64 0025ABC4 93 C1 00 08 */ stw r30, 8(r1) /* 8025EF68 0025ABC8 48 00 F7 F5 */ bl OSDisableInterrupts /* 8025EF6C 0025ABCC 7C 7E 1B 78 */ mr r30, r3 /* 8025EF70 0025ABD0 4B FF F0 61 */ bl func_8025DFD0 /* 8025EF74 0025ABD4 4B FF F3 91 */ bl func_8025E304 /* 8025EF78 0025ABD8 4B FF E3 55 */ bl func_8025D2CC /* 8025EF7C 0025ABDC 7C 7F 1B 78 */ mr r31, r3 /* 8025EF80 0025ABE0 7F C3 F3 78 */ mr r3, r30 /* 8025EF84 0025ABE4 48 00 F8 01 */ bl OSRestoreInterrupts /* 8025EF88 0025ABE8 7F E3 FB 78 */ mr r3, r31 /* 8025EF8C 0025ABEC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8025EF90 0025ABF0 83 C1 00 08 */ lwz r30, 8(r1) /* 8025EF94 0025ABF4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8025EF98 0025ABF8 7C 08 03 A6 */ mtlr r0 /* 8025EF9C 0025ABFC 38 21 00 10 */ addi r1, r1, 0x10 /* 8025EFA0 0025AC00 4E 80 00 20 */ blr .global func_8025EFA4 func_8025EFA4: /* 8025EFA4 0025AC04 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8025EFA8 0025AC08 7C 08 02 A6 */ mflr r0 /* 8025EFAC 0025AC0C 90 01 00 24 */ stw r0, 0x24(r1) /* 8025EFB0 0025AC10 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8025EFB4 0025AC14 7C BF 2B 78 */ mr r31, r5 /* 8025EFB8 0025AC18 93 C1 00 18 */ stw r30, 0x18(r1) /* 8025EFBC 0025AC1C 93 A1 00 14 */ stw r29, 0x14(r1) /* 8025EFC0 0025AC20 7C 9D 23 78 */ mr r29, r4 /* 8025EFC4 0025AC24 48 00 F7 99 */ bl OSDisableInterrupts /* 8025EFC8 0025AC28 7C 7E 1B 78 */ mr r30, r3 /* 8025EFCC 0025AC2C 4B FF F0 05 */ bl func_8025DFD0 /* 8025EFD0 0025AC30 4B FF F3 35 */ bl func_8025E304 /* 8025EFD4 0025AC34 7F A4 EB 78 */ mr r4, r29 /* 8025EFD8 0025AC38 7F E5 FB 78 */ mr r5, r31 /* 8025EFDC 0025AC3C 4B FF E2 3D */ bl func_8025D218 /* 8025EFE0 0025AC40 7C 7F 1B 78 */ mr r31, r3 /* 8025EFE4 0025AC44 7F C3 F3 78 */ mr r3, r30 /* 8025EFE8 0025AC48 48 00 F7 9D */ bl OSRestoreInterrupts /* 8025EFEC 0025AC4C 7F E3 FB 78 */ mr r3, r31 /* 8025EFF0 0025AC50 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8025EFF4 0025AC54 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8025EFF8 0025AC58 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8025EFFC 0025AC5C 80 01 00 24 */ lwz r0, 0x24(r1) /* 8025F000 0025AC60 7C 08 03 A6 */ mtlr r0 /* 8025F004 0025AC64 38 21 00 20 */ addi r1, r1, 0x20 /* 8025F008 0025AC68 4E 80 00 20 */ blr .global func_8025F00C func_8025F00C: /* 8025F00C 0025AC6C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8025F010 0025AC70 7C 08 02 A6 */ mflr r0 /* 8025F014 0025AC74 90 01 00 14 */ stw r0, 0x14(r1) /* 8025F018 0025AC78 93 E1 00 0C */ stw r31, 0xc(r1) /* 8025F01C 0025AC7C 93 C1 00 08 */ stw r30, 8(r1) /* 8025F020 0025AC80 48 00 F7 3D */ bl OSDisableInterrupts /* 8025F024 0025AC84 7C 7E 1B 78 */ mr r30, r3 /* 8025F028 0025AC88 4B FF EF A9 */ bl func_8025DFD0 /* 8025F02C 0025AC8C 4B FF F2 D9 */ bl func_8025E304 /* 8025F030 0025AC90 4B FF E2 B9 */ bl func_8025D2E8 /* 8025F034 0025AC94 7C 7F 1B 78 */ mr r31, r3 /* 8025F038 0025AC98 7F C3 F3 78 */ mr r3, r30 /* 8025F03C 0025AC9C 48 00 F7 49 */ bl OSRestoreInterrupts /* 8025F040 0025ACA0 7F E3 FB 78 */ mr r3, r31 /* 8025F044 0025ACA4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8025F048 0025ACA8 83 C1 00 08 */ lwz r30, 8(r1) /* 8025F04C 0025ACAC 80 01 00 14 */ lwz r0, 0x14(r1) /* 8025F050 0025ACB0 7C 08 03 A6 */ mtlr r0 /* 8025F054 0025ACB4 38 21 00 10 */ addi r1, r1, 0x10 /* 8025F058 0025ACB8 4E 80 00 20 */ blr .global func_8025F05C func_8025F05C: /* 8025F05C 0025ACBC 38 A0 00 01 */ li r5, 1 /* 8025F060 0025ACC0 38 6D A7 08 */ addi r3, r13, lbl_8063F9C8-_SDA_BASE_ /* 8025F064 0025ACC4 38 80 00 04 */ li r4, 4 /* 8025F068 0025ACC8 38 00 00 00 */ li r0, 0 /* 8025F06C 0025ACCC 98 AD A7 08 */ stb r5, lbl_8063F9C8-_SDA_BASE_(r13) /* 8025F070 0025ACD0 B0 83 00 02 */ sth r4, 2(r3) /* 8025F074 0025ACD4 98 03 00 04 */ stb r0, 4(r3) /* 8025F078 0025ACD8 4E 80 00 20 */ blr