summaryrefslogtreecommitdiff
path: root/asm/SDK/NTR/wdp_common.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK/NTR/wdp_common.s')
-rw-r--r--asm/SDK/NTR/wdp_common.s421
1 files changed, 421 insertions, 0 deletions
diff --git a/asm/SDK/NTR/wdp_common.s b/asm/SDK/NTR/wdp_common.s
new file mode 100644
index 0000000..d780c6f
--- /dev/null
+++ b/asm/SDK/NTR/wdp_common.s
@@ -0,0 +1,421 @@
+.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 func_802F400C
+/* 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