.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global WDPi_GetBeaconCheckSum WDPi_GetBeaconCheckSum: /* 802EE9E4 002EA644 38 00 00 03 */ li r0, 3 /* 802EE9E8 002EA648 38 C0 00 00 */ li r6, 0 /* 802EE9EC 002EA64C 7C 09 03 A6 */ mtctr r0 lbl_802EE9F0: /* 802EE9F0 002EA650 88 83 00 01 */ lbz r4, 1(r3) /* 802EE9F4 002EA654 88 03 00 03 */ lbz r0, 3(r3) /* 802EE9F8 002EA658 88 A3 00 00 */ lbz r5, 0(r3) /* 802EE9FC 002EA65C 50 85 44 2E */ rlwimi r5, r4, 8, 0x10, 0x17 /* 802EEA00 002EA660 88 83 00 02 */ lbz r4, 2(r3) /* 802EEA04 002EA664 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17 /* 802EEA08 002EA668 7C C6 2A 14 */ add r6, r6, r5 /* 802EEA0C 002EA66C 88 03 00 05 */ lbz r0, 5(r3) /* 802EEA10 002EA670 88 A3 00 04 */ lbz r5, 4(r3) /* 802EEA14 002EA674 7C C6 22 14 */ add r6, r6, r4 /* 802EEA18 002EA678 50 05 44 2E */ rlwimi r5, r0, 8, 0x10, 0x17 /* 802EEA1C 002EA67C 88 03 00 07 */ lbz r0, 7(r3) /* 802EEA20 002EA680 88 83 00 06 */ lbz r4, 6(r3) /* 802EEA24 002EA684 7C C6 2A 14 */ add r6, r6, r5 /* 802EEA28 002EA688 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17 /* 802EEA2C 002EA68C 88 03 00 09 */ lbz r0, 9(r3) /* 802EEA30 002EA690 88 A3 00 08 */ lbz r5, 8(r3) /* 802EEA34 002EA694 7C C6 22 14 */ add r6, r6, r4 /* 802EEA38 002EA698 50 05 44 2E */ rlwimi r5, r0, 8, 0x10, 0x17 /* 802EEA3C 002EA69C 88 03 00 0B */ lbz r0, 0xb(r3) /* 802EEA40 002EA6A0 88 83 00 0A */ lbz r4, 0xa(r3) /* 802EEA44 002EA6A4 7C C6 2A 14 */ add r6, r6, r5 /* 802EEA48 002EA6A8 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17 /* 802EEA4C 002EA6AC 88 03 00 0D */ lbz r0, 0xd(r3) /* 802EEA50 002EA6B0 88 A3 00 0C */ lbz r5, 0xc(r3) /* 802EEA54 002EA6B4 7C C6 22 14 */ add r6, r6, r4 /* 802EEA58 002EA6B8 50 05 44 2E */ rlwimi r5, r0, 8, 0x10, 0x17 /* 802EEA5C 002EA6BC 88 83 00 0F */ lbz r4, 0xf(r3) /* 802EEA60 002EA6C0 88 03 00 0E */ lbz r0, 0xe(r3) /* 802EEA64 002EA6C4 7C C6 2A 14 */ add r6, r6, r5 /* 802EEA68 002EA6C8 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 /* 802EEA6C 002EA6CC 88 83 00 11 */ lbz r4, 0x11(r3) /* 802EEA70 002EA6D0 7C C6 02 14 */ add r6, r6, r0 /* 802EEA74 002EA6D4 88 A3 00 10 */ lbz r5, 0x10(r3) /* 802EEA78 002EA6D8 50 85 44 2E */ rlwimi r5, r4, 8, 0x10, 0x17 /* 802EEA7C 002EA6DC 88 03 00 13 */ lbz r0, 0x13(r3) /* 802EEA80 002EA6E0 88 83 00 12 */ lbz r4, 0x12(r3) /* 802EEA84 002EA6E4 7C C6 2A 14 */ add r6, r6, r5 /* 802EEA88 002EA6E8 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17 /* 802EEA8C 002EA6EC 88 03 00 15 */ lbz r0, 0x15(r3) /* 802EEA90 002EA6F0 88 A3 00 14 */ lbz r5, 0x14(r3) /* 802EEA94 002EA6F4 7C C6 22 14 */ add r6, r6, r4 /* 802EEA98 002EA6F8 50 05 44 2E */ rlwimi r5, r0, 8, 0x10, 0x17 /* 802EEA9C 002EA6FC 88 03 00 17 */ lbz r0, 0x17(r3) /* 802EEAA0 002EA700 88 83 00 16 */ lbz r4, 0x16(r3) /* 802EEAA4 002EA704 7C C6 2A 14 */ add r6, r6, r5 /* 802EEAA8 002EA708 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17 /* 802EEAAC 002EA70C 88 03 00 19 */ lbz r0, 0x19(r3) /* 802EEAB0 002EA710 88 A3 00 18 */ lbz r5, 0x18(r3) /* 802EEAB4 002EA714 7C C6 22 14 */ add r6, r6, r4 /* 802EEAB8 002EA718 50 05 44 2E */ rlwimi r5, r0, 8, 0x10, 0x17 /* 802EEABC 002EA71C 88 03 00 1B */ lbz r0, 0x1b(r3) /* 802EEAC0 002EA720 88 83 00 1A */ lbz r4, 0x1a(r3) /* 802EEAC4 002EA724 7C C6 2A 14 */ add r6, r6, r5 /* 802EEAC8 002EA728 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17 /* 802EEACC 002EA72C 88 03 00 1D */ lbz r0, 0x1d(r3) /* 802EEAD0 002EA730 88 A3 00 1C */ lbz r5, 0x1c(r3) /* 802EEAD4 002EA734 7C C6 22 14 */ add r6, r6, r4 /* 802EEAD8 002EA738 50 05 44 2E */ rlwimi r5, r0, 8, 0x10, 0x17 /* 802EEADC 002EA73C 88 83 00 1F */ lbz r4, 0x1f(r3) /* 802EEAE0 002EA740 88 03 00 1E */ lbz r0, 0x1e(r3) /* 802EEAE4 002EA744 7C C6 2A 14 */ add r6, r6, r5 /* 802EEAE8 002EA748 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 /* 802EEAEC 002EA74C 38 63 00 20 */ addi r3, r3, 0x20 /* 802EEAF0 002EA750 7C C6 02 14 */ add r6, r6, r0 /* 802EEAF4 002EA754 42 00 FE FC */ bdnz lbl_802EE9F0 /* 802EEAF8 002EA758 88 03 00 01 */ lbz r0, 1(r3) /* 802EEAFC 002EA75C 88 83 00 00 */ lbz r4, 0(r3) /* 802EEB00 002EA760 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17 /* 802EEB04 002EA764 88 03 00 03 */ lbz r0, 3(r3) /* 802EEB08 002EA768 88 A3 00 02 */ lbz r5, 2(r3) /* 802EEB0C 002EA76C 7C C6 22 14 */ add r6, r6, r4 /* 802EEB10 002EA770 50 05 44 2E */ rlwimi r5, r0, 8, 0x10, 0x17 /* 802EEB14 002EA774 88 83 00 05 */ lbz r4, 5(r3) /* 802EEB18 002EA778 88 03 00 04 */ lbz r0, 4(r3) /* 802EEB1C 002EA77C 7C C6 2A 14 */ add r6, r6, r5 /* 802EEB20 002EA780 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 /* 802EEB24 002EA784 7C C6 02 14 */ add r6, r6, r0 /* 802EEB28 002EA788 54 C3 84 3E */ srwi r3, r6, 0x10 /* 802EEB2C 002EA78C 54 C0 04 3E */ clrlwi r0, r6, 0x10 /* 802EEB30 002EA790 7C 03 02 14 */ add r0, r3, r0 /* 802EEB34 002EA794 54 03 84 3E */ srwi r3, r0, 0x10 /* 802EEB38 002EA798 54 00 04 3E */ clrlwi r0, r0, 0x10 /* 802EEB3C 002EA79C 7C 03 02 14 */ add r0, r3, r0 /* 802EEB40 002EA7A0 7C 00 00 F8 */ nor r0, r0, r0 /* 802EEB44 002EA7A4 54 03 04 3E */ clrlwi r3, r0, 0x10 /* 802EEB48 002EA7A8 4E 80 00 20 */ blr .global WDP_CompareMemory WDP_CompareMemory: /* 802EEB4C 002EA7AC 38 00 00 00 */ li r0, 0 /* 802EEB50 002EA7B0 38 E0 00 00 */ li r7, 0 /* 802EEB54 002EA7B4 48 00 00 1C */ b lbl_802EEB70 lbl_802EEB58: /* 802EEB58 002EA7B8 88 C4 00 00 */ lbz r6, 0(r4) /* 802EEB5C 002EA7BC 38 E7 00 01 */ addi r7, r7, 1 /* 802EEB60 002EA7C0 88 03 00 00 */ lbz r0, 0(r3) /* 802EEB64 002EA7C4 38 63 00 01 */ addi r3, r3, 1 /* 802EEB68 002EA7C8 38 84 00 01 */ addi r4, r4, 1 /* 802EEB6C 002EA7CC 7C 06 00 50 */ subf r0, r6, r0 lbl_802EEB70: /* 802EEB70 002EA7D0 2C 00 00 00 */ cmpwi r0, 0 /* 802EEB74 002EA7D4 40 82 00 0C */ bne lbl_802EEB80 /* 802EEB78 002EA7D8 7C 07 28 40 */ cmplw r7, r5 /* 802EEB7C 002EA7DC 41 80 FF DC */ blt lbl_802EEB58 lbl_802EEB80: /* 802EEB80 002EA7E0 7C 03 03 78 */ mr r3, r0 /* 802EEB84 002EA7E4 4E 80 00 20 */ blr .global WDP_CopyString WDP_CopyString: /* 802EEB88 002EA7E8 54 84 F8 7E */ srwi r4, r4, 1 /* 802EEB8C 002EA7EC 38 C0 00 00 */ li r6, 0 /* 802EEB90 002EA7F0 7C 89 03 A6 */ mtctr r4 /* 802EEB94 002EA7F4 28 04 00 00 */ cmplwi r4, 0 /* 802EEB98 002EA7F8 40 81 00 2C */ ble lbl_802EEBC4 lbl_802EEB9C: /* 802EEB9C 002EA7FC A0 05 00 00 */ lhz r0, 0(r5) /* 802EEBA0 002EA800 38 A5 00 02 */ addi r5, r5, 2 /* 802EEBA4 002EA804 2C 00 00 00 */ cmpwi r0, 0 /* 802EEBA8 002EA808 41 82 00 1C */ beq lbl_802EEBC4 /* 802EEBAC 002EA80C 98 03 00 00 */ stb r0, 0(r3) /* 802EEBB0 002EA810 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f /* 802EEBB4 002EA814 38 C6 00 01 */ addi r6, r6, 1 /* 802EEBB8 002EA818 98 03 00 01 */ stb r0, 1(r3) /* 802EEBBC 002EA81C 38 63 00 02 */ addi r3, r3, 2 /* 802EEBC0 002EA820 42 00 FF DC */ bdnz lbl_802EEB9C lbl_802EEBC4: /* 802EEBC4 002EA824 7C 06 20 40 */ cmplw r6, r4 /* 802EEBC8 002EA828 7C 86 20 50 */ subf r4, r6, r4 /* 802EEBCC 002EA82C 38 A0 00 00 */ li r5, 0 /* 802EEBD0 002EA830 40 80 00 74 */ bge lbl_802EEC44 /* 802EEBD4 002EA834 54 80 E8 FF */ rlwinm. r0, r4, 0x1d, 3, 0x1f /* 802EEBD8 002EA838 7C 09 03 A6 */ mtctr r0 /* 802EEBDC 002EA83C 41 82 00 54 */ beq lbl_802EEC30 lbl_802EEBE0: /* 802EEBE0 002EA840 98 A3 00 00 */ stb r5, 0(r3) /* 802EEBE4 002EA844 98 A3 00 01 */ stb r5, 1(r3) /* 802EEBE8 002EA848 98 A3 00 02 */ stb r5, 2(r3) /* 802EEBEC 002EA84C 98 A3 00 03 */ stb r5, 3(r3) /* 802EEBF0 002EA850 98 A3 00 04 */ stb r5, 4(r3) /* 802EEBF4 002EA854 98 A3 00 05 */ stb r5, 5(r3) /* 802EEBF8 002EA858 98 A3 00 06 */ stb r5, 6(r3) /* 802EEBFC 002EA85C 98 A3 00 07 */ stb r5, 7(r3) /* 802EEC00 002EA860 98 A3 00 08 */ stb r5, 8(r3) /* 802EEC04 002EA864 98 A3 00 09 */ stb r5, 9(r3) /* 802EEC08 002EA868 98 A3 00 0A */ stb r5, 0xa(r3) /* 802EEC0C 002EA86C 98 A3 00 0B */ stb r5, 0xb(r3) /* 802EEC10 002EA870 98 A3 00 0C */ stb r5, 0xc(r3) /* 802EEC14 002EA874 98 A3 00 0D */ stb r5, 0xd(r3) /* 802EEC18 002EA878 98 A3 00 0E */ stb r5, 0xe(r3) /* 802EEC1C 002EA87C 98 A3 00 0F */ stb r5, 0xf(r3) /* 802EEC20 002EA880 38 63 00 10 */ addi r3, r3, 0x10 /* 802EEC24 002EA884 42 00 FF BC */ bdnz lbl_802EEBE0 /* 802EEC28 002EA888 70 84 00 07 */ andi. r4, r4, 7 /* 802EEC2C 002EA88C 41 82 00 18 */ beq lbl_802EEC44 lbl_802EEC30: /* 802EEC30 002EA890 7C 89 03 A6 */ mtctr r4 lbl_802EEC34: /* 802EEC34 002EA894 98 A3 00 00 */ stb r5, 0(r3) /* 802EEC38 002EA898 98 A3 00 01 */ stb r5, 1(r3) /* 802EEC3C 002EA89C 38 63 00 02 */ addi r3, r3, 2 /* 802EEC40 002EA8A0 42 00 FF F4 */ bdnz lbl_802EEC34 lbl_802EEC44: /* 802EEC44 002EA8A4 7C C3 33 78 */ mr r3, r6 /* 802EEC48 002EA8A8 4E 80 00 20 */ blr .global WDPi_IsValidSegmentRegion WDPi_IsValidSegmentRegion: /* 802EEC4C 002EA8AC 2C 07 00 00 */ cmpwi r7, 0 /* 802EEC50 002EA8B0 38 00 00 00 */ li r0, 0 /* 802EEC54 002EA8B4 41 82 00 0C */ beq lbl_802EEC60 /* 802EEC58 002EA8B8 39 00 00 00 */ li r8, 0 /* 802EEC5C 002EA8BC 91 07 00 00 */ stw r8, 0(r7) lbl_802EEC60: /* 802EEC60 002EA8C0 2C 83 00 03 */ cmpwi cr1, r3, 3 /* 802EEC64 002EA8C4 40 84 01 5C */ bge cr1, lbl_802EEDC0 /* 802EEC68 002EA8C8 7C 88 2B 78 */ or r8, r4, r5 /* 802EEC6C 002EA8CC 55 08 00 01 */ rlwinm. r8, r8, 0, 0, 0 /* 802EEC70 002EA8D0 40 82 01 50 */ bne lbl_802EEDC0 /* 802EEC74 002EA8D4 2C 03 00 01 */ cmpwi r3, 1 /* 802EEC78 002EA8D8 41 82 00 48 */ beq lbl_802EECC0 /* 802EEC7C 002EA8DC 40 80 00 10 */ bge lbl_802EEC8C /* 802EEC80 002EA8E0 2C 03 00 00 */ cmpwi r3, 0 /* 802EEC84 002EA8E4 40 80 00 10 */ bge lbl_802EEC94 /* 802EEC88 002EA8E8 48 00 01 38 */ b lbl_802EEDC0 lbl_802EEC8C: /* 802EEC8C 002EA8EC 40 84 01 34 */ bge cr1, lbl_802EEDC0 /* 802EEC90 002EA8F0 48 00 00 58 */ b lbl_802EECE8 lbl_802EEC94: /* 802EEC94 002EA8F4 3C 60 02 80 */ lis r3, 0x027FFE00@ha /* 802EEC98 002EA8F8 38 00 00 00 */ li r0, 0 /* 802EEC9C 002EA8FC 38 C3 FE 00 */ addi r6, r3, 0x027FFE00@l /* 802EECA0 002EA900 7C 04 30 40 */ cmplw r4, r6 /* 802EECA4 002EA904 41 80 01 1C */ blt lbl_802EEDC0 /* 802EECA8 002EA908 7C 84 2A 14 */ add r4, r4, r5 /* 802EECAC 002EA90C 38 63 FF 60 */ addi r3, r3, -160 /* 802EECB0 002EA910 7C 04 18 40 */ cmplw r4, r3 /* 802EECB4 002EA914 41 81 01 0C */ bgt lbl_802EEDC0 /* 802EECB8 002EA918 38 00 00 01 */ li r0, 1 /* 802EECBC 002EA91C 48 00 01 04 */ b lbl_802EEDC0 lbl_802EECC0: /* 802EECC0 002EA920 3C 60 02 00 */ lis r3, 0x200 /* 802EECC4 002EA924 38 00 00 00 */ li r0, 0 /* 802EECC8 002EA928 7C 04 18 40 */ cmplw r4, r3 /* 802EECCC 002EA92C 41 80 00 F4 */ blt lbl_802EEDC0 /* 802EECD0 002EA930 7C 84 2A 14 */ add r4, r4, r5 /* 802EECD4 002EA934 3C 60 02 2C */ lis r3, 0x22c /* 802EECD8 002EA938 7C 04 18 40 */ cmplw r4, r3 /* 802EECDC 002EA93C 41 81 00 E4 */ bgt lbl_802EEDC0 /* 802EECE0 002EA940 38 00 00 01 */ li r0, 1 /* 802EECE4 002EA944 48 00 00 DC */ b lbl_802EEDC0 lbl_802EECE8: /* 802EECE8 002EA948 3C 60 02 00 */ lis r3, 0x200 /* 802EECEC 002EA94C 39 20 00 00 */ li r9, 0 /* 802EECF0 002EA950 7C 04 18 40 */ cmplw r4, r3 /* 802EECF4 002EA954 41 80 00 18 */ blt lbl_802EED0C /* 802EECF8 002EA958 7D 04 2A 14 */ add r8, r4, r5 /* 802EECFC 002EA95C 3C 60 02 30 */ lis r3, 0x230 /* 802EED00 002EA960 7C 08 18 40 */ cmplw r8, r3 /* 802EED04 002EA964 41 81 00 08 */ bgt lbl_802EED0C /* 802EED08 002EA968 39 20 00 01 */ li r9, 1 lbl_802EED0C: /* 802EED0C 002EA96C 2C 09 00 00 */ cmpwi r9, 0 /* 802EED10 002EA970 41 82 00 0C */ beq lbl_802EED1C /* 802EED14 002EA974 38 00 00 01 */ li r0, 1 /* 802EED18 002EA978 48 00 00 A8 */ b lbl_802EEDC0 lbl_802EED1C: /* 802EED1C 002EA97C 2C 06 00 00 */ cmpwi r6, 0 /* 802EED20 002EA980 41 82 00 A0 */ beq lbl_802EEDC0 /* 802EED24 002EA984 3C 60 02 30 */ lis r3, 0x230 /* 802EED28 002EA988 39 00 00 00 */ li r8, 0 /* 802EED2C 002EA98C 7C 04 18 40 */ cmplw r4, r3 /* 802EED30 002EA990 41 80 00 1C */ blt lbl_802EED4C /* 802EED34 002EA994 3C 60 02 40 */ lis r3, 0x023FE800@ha /* 802EED38 002EA998 7C C4 2A 14 */ add r6, r4, r5 /* 802EED3C 002EA99C 38 63 E8 00 */ addi r3, r3, 0x023FE800@l /* 802EED40 002EA9A0 7C 06 18 40 */ cmplw r6, r3 /* 802EED44 002EA9A4 41 81 00 08 */ bgt lbl_802EED4C /* 802EED48 002EA9A8 39 00 00 01 */ li r8, 1 lbl_802EED4C: /* 802EED4C 002EA9AC 2C 08 00 00 */ cmpwi r8, 0 /* 802EED50 002EA9B0 41 82 00 28 */ beq lbl_802EED78 /* 802EED54 002EA9B4 3C 60 00 04 */ lis r3, 4 /* 802EED58 002EA9B8 7C 05 18 40 */ cmplw r5, r3 /* 802EED5C 002EA9BC 41 81 00 1C */ bgt lbl_802EED78 /* 802EED60 002EA9C0 2C 07 00 00 */ cmpwi r7, 0 /* 802EED64 002EA9C4 38 00 00 01 */ li r0, 1 /* 802EED68 002EA9C8 41 82 00 58 */ beq lbl_802EEDC0 /* 802EED6C 002EA9CC 38 60 00 01 */ li r3, 1 /* 802EED70 002EA9D0 90 67 00 00 */ stw r3, 0(r7) /* 802EED74 002EA9D4 48 00 00 4C */ b lbl_802EEDC0 lbl_802EED78: /* 802EED78 002EA9D8 3C 60 03 80 */ lis r3, 0x037F8000@ha /* 802EED7C 002EA9DC 38 C0 00 00 */ li r6, 0 /* 802EED80 002EA9E0 38 63 80 00 */ addi r3, r3, 0x037F8000@l /* 802EED84 002EA9E4 7C 04 18 40 */ cmplw r4, r3 /* 802EED88 002EA9E8 41 80 00 1C */ blt lbl_802EEDA4 /* 802EED8C 002EA9EC 3C 60 03 81 */ lis r3, 0x0380F000@ha /* 802EED90 002EA9F0 7C 84 2A 14 */ add r4, r4, r5 /* 802EED94 002EA9F4 38 63 F0 00 */ addi r3, r3, 0x0380F000@l /* 802EED98 002EA9F8 7C 04 18 40 */ cmplw r4, r3 /* 802EED9C 002EA9FC 41 81 00 08 */ bgt lbl_802EEDA4 /* 802EEDA0 002EAA00 38 C0 00 01 */ li r6, 1 lbl_802EEDA4: /* 802EEDA4 002EAA04 2C 06 00 00 */ cmpwi r6, 0 /* 802EEDA8 002EAA08 41 82 00 18 */ beq lbl_802EEDC0 /* 802EEDAC 002EAA0C 2C 07 00 00 */ cmpwi r7, 0 /* 802EEDB0 002EAA10 38 00 00 01 */ li r0, 1 /* 802EEDB4 002EAA14 41 82 00 0C */ beq lbl_802EEDC0 /* 802EEDB8 002EAA18 38 60 00 01 */ li r3, 1 /* 802EEDBC 002EAA1C 90 67 00 00 */ stw r3, 0(r7) lbl_802EEDC0: /* 802EEDC0 002EAA20 7C 03 03 78 */ mr r3, r0 /* 802EEDC4 002EAA24 4E 80 00 20 */ blr .global WDPi_InitSegmentMapper WDPi_InitSegmentMapper: /* 802EEDC8 002EAA28 94 21 FF D0 */ stwu r1, -0x30(r1) /* 802EEDCC 002EAA2C 7C 08 02 A6 */ mflr r0 /* 802EEDD0 002EAA30 90 01 00 34 */ stw r0, 0x34(r1) /* 802EEDD4 002EAA34 39 61 00 30 */ addi r11, r1, 0x30 /* 802EEDD8 002EAA38 4B ED 83 45 */ bl _savegpr_24 /* 802EEDDC 002EAA3C 7C 7B 1B 78 */ mr r27, r3 /* 802EEDE0 002EAA40 7C 9C 23 78 */ mr r28, r4 /* 802EEDE4 002EAA44 3B A5 FF FA */ addi r29, r5, -6 /* 802EEDE8 002EAA48 3B C0 00 00 */ li r30, 0 /* 802EEDEC 002EAA4C 3B E0 00 00 */ li r31, 0 /* 802EEDF0 002EAA50 3B 40 00 00 */ li r26, 0 /* 802EEDF4 002EAA54 3B 20 00 00 */ li r25, 0 lbl_802EEDF8: /* 802EEDF8 002EAA58 7D 3C D2 14 */ add r9, r28, r26 /* 802EEDFC 002EAA5C 7F E3 FB 78 */ mr r3, r31 /* 802EEE00 002EAA60 88 09 00 15 */ lbz r0, 0x15(r9) /* 802EEE04 002EAA64 38 C0 00 01 */ li r6, 1 /* 802EEE08 002EAA68 8B 09 00 14 */ lbz r24, 0x14(r9) /* 802EEE0C 002EAA6C 38 E0 00 00 */ li r7, 0 /* 802EEE10 002EAA70 50 18 44 2E */ rlwimi r24, r0, 8, 0x10, 0x17 /* 802EEE14 002EAA74 88 89 00 16 */ lbz r4, 0x16(r9) /* 802EEE18 002EAA78 88 09 00 11 */ lbz r0, 0x11(r9) /* 802EEE1C 002EAA7C 50 98 82 1E */ rlwimi r24, r4, 0x10, 8, 0xf /* 802EEE20 002EAA80 88 A9 00 17 */ lbz r5, 0x17(r9) /* 802EEE24 002EAA84 88 89 00 10 */ lbz r4, 0x10(r9) /* 802EEE28 002EAA88 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17 /* 802EEE2C 002EAA8C 89 09 00 12 */ lbz r8, 0x12(r9) /* 802EEE30 002EAA90 50 B8 C0 0E */ rlwimi r24, r5, 0x18, 0, 7 /* 802EEE34 002EAA94 88 09 00 13 */ lbz r0, 0x13(r9) /* 802EEE38 002EAA98 7F 05 C3 78 */ mr r5, r24 /* 802EEE3C 002EAA9C 51 04 82 1E */ rlwimi r4, r8, 0x10, 8, 0xf /* 802EEE40 002EAAA0 50 04 C0 0E */ rlwimi r4, r0, 0x18, 0, 7 /* 802EEE44 002EAAA4 4B FF FE 09 */ bl WDPi_IsValidSegmentRegion /* 802EEE48 002EAAA8 2C 03 00 00 */ cmpwi r3, 0 /* 802EEE4C 002EAAAC 40 82 00 0C */ bne lbl_802EEE58 /* 802EEE50 002EAAB0 3B C0 00 00 */ li r30, 0 /* 802EEE54 002EAAB4 48 00 00 30 */ b lbl_802EEE84 lbl_802EEE58: /* 802EEE58 002EAAB8 7C 78 EA 14 */ add r3, r24, r29 /* 802EEE5C 002EAABC 7C 9B CA 14 */ add r4, r27, r25 /* 802EEE60 002EAAC0 38 03 FF FF */ addi r0, r3, -1 /* 802EEE64 002EAAC4 3B FF 00 01 */ addi r31, r31, 1 /* 802EEE68 002EAAC8 7C 00 EB 96 */ divwu r0, r0, r29 /* 802EEE6C 002EAACC B3 C4 00 06 */ sth r30, 6(r4) /* 802EEE70 002EAAD0 2C 1F 00 03 */ cmpwi r31, 3 /* 802EEE74 002EAAD4 3B 5A 00 10 */ addi r26, r26, 0x10 /* 802EEE78 002EAAD8 3B 39 00 02 */ addi r25, r25, 2 /* 802EEE7C 002EAADC 7F DE 02 14 */ add r30, r30, r0 /* 802EEE80 002EAAE0 41 80 FF 78 */ blt lbl_802EEDF8 lbl_802EEE84: /* 802EEE84 002EAAE4 28 1E 30 00 */ cmplwi r30, 0x3000 /* 802EEE88 002EAAE8 41 80 00 08 */ blt lbl_802EEE90 /* 802EEE8C 002EAAEC 3B C0 00 00 */ li r30, 0 lbl_802EEE90: /* 802EEE90 002EAAF0 57 A0 04 3E */ clrlwi r0, r29, 0x10 /* 802EEE94 002EAAF4 B3 DB 00 04 */ sth r30, 4(r27) /* 802EEE98 002EAAF8 7F 83 E3 78 */ mr r3, r28 /* 802EEE9C 002EAAFC 38 9B 00 0C */ addi r4, r27, 0xc /* 802EEEA0 002EAB00 90 1B 00 00 */ stw r0, 0(r27) /* 802EEEA4 002EAB04 38 A0 00 E4 */ li r5, 0xe4 /* 802EEEA8 002EAB08 48 00 51 65 */ bl MI_CpuCopy8 /* 802EEEAC 002EAB0C 39 61 00 30 */ addi r11, r1, 0x30 /* 802EEEB0 002EAB10 7F C3 F3 78 */ mr r3, r30 /* 802EEEB4 002EAB14 4B ED 82 B5 */ bl _restgpr_24 /* 802EEEB8 002EAB18 80 01 00 34 */ lwz r0, 0x34(r1) /* 802EEEBC 002EAB1C 7C 08 03 A6 */ mtlr r0 /* 802EEEC0 002EAB20 38 21 00 30 */ addi r1, r1, 0x30 /* 802EEEC4 002EAB24 4E 80 00 20 */ blr .global WDPi_GetSegmentRegion WDPi_GetSegmentRegion: /* 802EEEC8 002EAB28 A0 03 00 04 */ lhz r0, 4(r3) /* 802EEECC 002EAB2C 38 E0 00 00 */ li r7, 0 /* 802EEED0 002EAB30 7C 04 00 40 */ cmplw r4, r0 /* 802EEED4 002EAB34 40 80 00 78 */ bge lbl_802EEF4C /* 802EEED8 002EAB38 38 C3 00 06 */ addi r6, r3, 6 /* 802EEEDC 002EAB3C 39 00 00 03 */ li r8, 3 /* 802EEEE0 002EAB40 48 00 00 60 */ b lbl_802EEF40 lbl_802EEEE4: /* 802EEEE4 002EAB44 A0 06 00 06 */ lhz r0, 6(r6) /* 802EEEE8 002EAB48 7D 20 20 51 */ subf. r9, r0, r4 /* 802EEEEC 002EAB4C 41 80 00 54 */ blt lbl_802EEF40 /* 802EEEF0 002EAB50 55 00 20 36 */ slwi r0, r8, 4 /* 802EEEF4 002EAB54 80 83 00 00 */ lwz r4, 0(r3) /* 802EEEF8 002EAB58 7C E3 02 14 */ add r7, r3, r0 /* 802EEEFC 002EAB5C 91 05 00 00 */ stw r8, 0(r5) /* 802EEF00 002EAB60 7C 09 21 D6 */ mullw r0, r9, r4 /* 802EEF04 002EAB64 88 67 00 21 */ lbz r3, 0x21(r7) /* 802EEF08 002EAB68 89 07 00 20 */ lbz r8, 0x20(r7) /* 802EEF0C 002EAB6C 50 68 44 2E */ rlwimi r8, r3, 8, 0x10, 0x17 /* 802EEF10 002EAB70 88 C7 00 22 */ lbz r6, 0x22(r7) /* 802EEF14 002EAB74 88 67 00 23 */ lbz r3, 0x23(r7) /* 802EEF18 002EAB78 50 C8 82 1E */ rlwimi r8, r6, 0x10, 8, 0xf /* 802EEF1C 002EAB7C 90 05 00 04 */ stw r0, 4(r5) /* 802EEF20 002EAB80 50 68 C0 0E */ rlwimi r8, r3, 0x18, 0, 7 /* 802EEF24 002EAB84 7C 00 40 50 */ subf r0, r0, r8 /* 802EEF28 002EAB88 7C 00 20 40 */ cmplw r0, r4 /* 802EEF2C 002EAB8C 90 05 00 08 */ stw r0, 8(r5) /* 802EEF30 002EAB90 40 81 00 08 */ ble lbl_802EEF38 /* 802EEF34 002EAB94 90 85 00 08 */ stw r4, 8(r5) lbl_802EEF38: /* 802EEF38 002EAB98 38 E0 00 01 */ li r7, 1 /* 802EEF3C 002EAB9C 48 00 00 10 */ b lbl_802EEF4C lbl_802EEF40: /* 802EEF40 002EABA0 35 08 FF FF */ addic. r8, r8, -1 /* 802EEF44 002EABA4 38 C6 FF FE */ addi r6, r6, -2 /* 802EEF48 002EABA8 40 80 FF 9C */ bge lbl_802EEEE4 lbl_802EEF4C: /* 802EEF4C 002EABAC 7C E3 3B 78 */ mr r3, r7 /* 802EEF50 002EABB0 4E 80 00 20 */ blr .global WDP_MergeBitset WDP_MergeBitset: /* 802EEF54 002EABB4 7C 03 00 D0 */ neg r0, r3 /* 802EEF58 002EABB8 7C 00 00 34 */ cntlzw r0, r0 /* 802EEF5C 002EABBC 54 07 D9 7F */ rlwinm. r7, r0, 0x1b, 5, 0x1f /* 802EEF60 002EABC0 40 82 00 38 */ bne lbl_802EEF98 /* 802EEF64 002EABC4 7C 05 20 40 */ cmplw r5, r4 /* 802EEF68 002EABC8 40 80 00 30 */ bge lbl_802EEF98 /* 802EEF6C 002EABCC 54 A6 E8 FA */ rlwinm r6, r5, 0x1d, 3, 0x1d /* 802EEF70 002EABD0 54 A0 06 FE */ clrlwi r0, r5, 0x1b /* 802EEF74 002EABD4 38 A0 00 01 */ li r5, 1 /* 802EEF78 002EABD8 7C 83 30 2E */ lwzx r4, r3, r6 /* 802EEF7C 002EABDC 7C A5 00 30 */ slw r5, r5, r0 /* 802EEF80 002EABE0 7C A0 20 38 */ and r0, r5, r4 /* 802EEF84 002EABE4 7C 00 00 34 */ cntlzw r0, r0 /* 802EEF88 002EABE8 54 07 D9 7F */ rlwinm. r7, r0, 0x1b, 5, 0x1f /* 802EEF8C 002EABEC 41 82 00 0C */ beq lbl_802EEF98 /* 802EEF90 002EABF0 7C 80 2B 78 */ or r0, r4, r5 /* 802EEF94 002EABF4 7C 03 31 2E */ stwx r0, r3, r6 lbl_802EEF98: /* 802EEF98 002EABF8 7C E3 3B 78 */ mr r3, r7 /* 802EEF9C 002EABFC 4E 80 00 20 */ blr