summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--asm/SDK/WD/wd_init.s99
-rw-r--r--asm/SDK/WD/wd_misc.s81
-rw-r--r--asm/SDK/WD/wd_receive.s98
-rw-r--r--asm/SDK/WD/wd_request.s367
-rw-r--r--asm/text_9.s667
-rw-r--r--obj_files.mk4
7 files changed, 668 insertions, 652 deletions
diff --git a/Makefile b/Makefile
index 94bc64b..1f93bbb 100644
--- a/Makefile
+++ b/Makefile
@@ -32,7 +32,7 @@ SRC_DIRS := src src/SDK/OS src/SDK/EXI src/SDK/SI src/SDK/DB src/SDK/VI src/SDK/
src/SDK/GX src/SDK/DVD src/SDK/AI src/SDK/AX src/SDK/AXFX src/SDK/MEM src/SDK/MIX src/SDK/DSP \
src/SDK/TPL src/SDK/THP src/SDK/KPAD src/SDK/CX src/SDK/PAD src/SDK/WPAD src/SDK/FS src/SDK/IPC \
src/SDK/NdevExi2A src/SDK/USB src/SDK/EUART src/SDK/WUD src/SDK/BTE src/SDK/NAND \
- src/SDK/SC src/SDK/WENC src/SDK/ARC src/SDK/NCD src/SDK/base \
+ src/SDK/SC src/SDK/WENC src/SDK/ARC src/SDK/NCD src/SDK/WD src/SDK/base \
src/SDK/HBM src/MSL_C/MSL_Common src/MSL_C/MSL_Common_Embedded \
src/MSL_C/MSL_Common_Embedded/Math src/MSL_C/PPC_EABI src/Runtime \
src/MetroTRK src/GameSpy src/nw4r/ut src/nw4r/snd src/nw4r/ut/detail \
@@ -41,7 +41,7 @@ ASM_DIRS := asm asm/SDK/OS asm/SDK/EXI asm/SDK/SI asm/SDK/DB asm/SDK/VI asm/SDK/
asm/SDK/GX asm/SDK/DVD asm/SDK/AI asm/SDK/AX asm/SDK/AXFX asm/SDK/MEM asm/SDK/MIX asm/SDK/DSP \
asm/SDK/TPL asm/SDK/THP asm/SDK/KPAD asm/SDK/CX asm/SDK/PAD asm/SDK/WPAD asm/SDK/FS asm/SDK/IPC \
asm/SDK/NdevExi2A asm/SDK/USB asm/SDK/EUART asm/SDK/WUD asm/SDK/BTE asm/SDK/NAND \
- asm/SDK/SC asm/SDK/WENC asm/SDK/ARC asm/SDK/NCD asm/SDK/base \
+ asm/SDK/SC asm/SDK/WENC asm/SDK/ARC asm/SDK/NCD asm/SDK/WD asm/SDK/base \
asm/SDK/HBM asm/MSL_C/MSL_Common asm/MSL_C/MSL_Common_Embedded \
asm/MSL_C/MSL_Common_Embedded/Math asm/MSL_C/PPC_EABI asm/Runtime \
asm/MetroTRK asm/GameSpy asm/nw4r/ut asm/nw4r/snd asm/nw4r/ut/detail \
diff --git a/asm/SDK/WD/wd_init.s b/asm/SDK/WD/wd_init.s
new file mode 100644
index 0000000..425cd21
--- /dev/null
+++ b/asm/SDK/WD/wd_init.s
@@ -0,0 +1,99 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global WD_Startup
+WD_Startup:
+/* 802EE4E8 002EA148 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802EE4EC 002EA14C 7C 08 02 A6 */ mflr r0
+/* 802EE4F0 002EA150 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802EE4F4 002EA154 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802EE4F8 002EA158 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802EE4FC 002EA15C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802EE500 002EA160 7C 7D 1B 78 */ mr r29, r3
+/* 802EE504 002EA164 4B F8 02 59 */ bl OSDisableInterrupts
+/* 802EE508 002EA168 7C 7E 1B 78 */ mr r30, r3
+/* 802EE50C 002EA16C 4B FF F8 51 */ bl WDi_GetWork
+/* 802EE510 002EA170 80 03 00 00 */ lwz r0, 0(r3)
+/* 802EE514 002EA174 2C 00 00 00 */ cmpwi r0, 0
+/* 802EE518 002EA178 41 80 00 10 */ blt lbl_802EE528
+/* 802EE51C 002EA17C 3C 60 80 01 */ lis r3, 0x80008006@ha
+/* 802EE520 002EA180 3B E3 80 06 */ addi r31, r3, 0x80008006@l
+/* 802EE524 002EA184 48 00 00 80 */ b lbl_802EE5A4
+lbl_802EE528:
+/* 802EE528 002EA188 4B FF F8 35 */ bl WDi_GetWork
+/* 802EE52C 002EA18C 80 03 00 04 */ lwz r0, 4(r3)
+/* 802EE530 002EA190 2C 00 00 00 */ cmpwi r0, 0
+/* 802EE534 002EA194 40 82 00 2C */ bne lbl_802EE560
+/* 802EE538 002EA198 4B FF F8 25 */ bl WDi_GetWork
+/* 802EE53C 002EA19C 38 80 00 00 */ li r4, 0
+/* 802EE540 002EA1A0 38 A0 00 0C */ li r5, 0xc
+/* 802EE544 002EA1A4 4B D1 5B C1 */ bl memset
+/* 802EE548 002EA1A8 3B E0 00 01 */ li r31, 1
+/* 802EE54C 002EA1AC 4B FF F8 11 */ bl WDi_GetWork
+/* 802EE550 002EA1B0 93 E3 00 04 */ stw r31, 4(r3)
+/* 802EE554 002EA1B4 3B E0 FF FF */ li r31, -1
+/* 802EE558 002EA1B8 4B FF F8 05 */ bl WDi_GetWork
+/* 802EE55C 002EA1BC 93 E3 00 08 */ stw r31, 8(r3)
+lbl_802EE560:
+/* 802EE560 002EA1C0 3C 60 80 44 */ lis r3, lbl_80445BC0@ha
+/* 802EE564 002EA1C4 67 A4 00 01 */ oris r4, r29, 1
+/* 802EE568 002EA1C8 38 63 5B C0 */ addi r3, r3, lbl_80445BC0@l
+/* 802EE56C 002EA1CC 4B FB 4B ED */ bl IOS_Open
+/* 802EE570 002EA1D0 7C 7F 1B 78 */ mr r31, r3
+/* 802EE574 002EA1D4 4B FF F7 E9 */ bl WDi_GetWork
+/* 802EE578 002EA1D8 93 E3 00 00 */ stw r31, 0(r3)
+/* 802EE57C 002EA1DC 4B FF F7 E1 */ bl WDi_GetWork
+/* 802EE580 002EA1E0 80 03 00 00 */ lwz r0, 0(r3)
+/* 802EE584 002EA1E4 2C 00 00 00 */ cmpwi r0, 0
+/* 802EE588 002EA1E8 40 80 00 10 */ bge lbl_802EE598
+/* 802EE58C 002EA1EC 4B FF F7 D1 */ bl WDi_GetWork
+/* 802EE590 002EA1F0 80 63 00 00 */ lwz r3, 0(r3)
+/* 802EE594 002EA1F4 48 00 00 0C */ b lbl_802EE5A0
+lbl_802EE598:
+/* 802EE598 002EA1F8 38 60 10 00 */ li r3, 0x1000
+/* 802EE59C 002EA1FC 4B FF F8 11 */ bl WDi_SetupHeap
+lbl_802EE5A0:
+/* 802EE5A0 002EA200 7C 7F 1B 78 */ mr r31, r3
+lbl_802EE5A4:
+/* 802EE5A4 002EA204 7F C3 F3 78 */ mr r3, r30
+/* 802EE5A8 002EA208 4B F8 01 DD */ bl OSRestoreInterrupts
+/* 802EE5AC 002EA20C 7F E3 FB 78 */ mr r3, r31
+/* 802EE5B0 002EA210 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802EE5B4 002EA214 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802EE5B8 002EA218 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802EE5BC 002EA21C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802EE5C0 002EA220 7C 08 03 A6 */ mtlr r0
+/* 802EE5C4 002EA224 38 21 00 20 */ addi r1, r1, 0x20
+/* 802EE5C8 002EA228 4E 80 00 20 */ blr
+
+.global WD_Cleanup
+WD_Cleanup:
+/* 802EE5CC 002EA22C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802EE5D0 002EA230 7C 08 02 A6 */ mflr r0
+/* 802EE5D4 002EA234 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802EE5D8 002EA238 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802EE5DC 002EA23C 93 C1 00 08 */ stw r30, 8(r1)
+/* 802EE5E0 002EA240 4B F8 01 7D */ bl OSDisableInterrupts
+/* 802EE5E4 002EA244 7C 7E 1B 78 */ mr r30, r3
+/* 802EE5E8 002EA248 4B FF F7 75 */ bl WDi_GetWork
+/* 802EE5EC 002EA24C 80 63 00 00 */ lwz r3, 0(r3)
+/* 802EE5F0 002EA250 4B FB 4D 49 */ bl IOS_Close
+/* 802EE5F4 002EA254 2C 03 00 00 */ cmpwi r3, 0
+/* 802EE5F8 002EA258 7C 7F 1B 78 */ mr r31, r3
+/* 802EE5FC 002EA25C 41 80 00 18 */ blt lbl_802EE614
+/* 802EE600 002EA260 3B E0 FF FF */ li r31, -1
+/* 802EE604 002EA264 4B FF F7 59 */ bl WDi_GetWork
+/* 802EE608 002EA268 93 E3 00 00 */ stw r31, 0(r3)
+/* 802EE60C 002EA26C 4B FF F8 3D */ bl WDi_CleanupHeap
+/* 802EE610 002EA270 7C 7F 1B 78 */ mr r31, r3
+lbl_802EE614:
+/* 802EE614 002EA274 7F C3 F3 78 */ mr r3, r30
+/* 802EE618 002EA278 4B F8 01 6D */ bl OSRestoreInterrupts
+/* 802EE61C 002EA27C 7F E3 FB 78 */ mr r3, r31
+/* 802EE620 002EA280 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802EE624 002EA284 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802EE628 002EA288 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802EE62C 002EA28C 7C 08 03 A6 */ mtlr r0
+/* 802EE630 002EA290 38 21 00 10 */ addi r1, r1, 0x10
+/* 802EE634 002EA294 4E 80 00 20 */ blr
diff --git a/asm/SDK/WD/wd_misc.s b/asm/SDK/WD/wd_misc.s
new file mode 100644
index 0000000..0c5e375
--- /dev/null
+++ b/asm/SDK/WD/wd_misc.s
@@ -0,0 +1,81 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global WDi_GetWork
+WDi_GetWork:
+/* 802EDD5C 002E99BC 3C 60 80 44 */ lis r3, lbl_80445BB0@ha
+/* 802EDD60 002E99C0 38 63 5B B0 */ addi r3, r3, lbl_80445BB0@l
+/* 802EDD64 002E99C4 4E 80 00 20 */ blr
+
+.global WDi_Ioctlv
+WDi_Ioctlv:
+/* 802EDD68 002E99C8 3D 00 80 44 */ lis r8, lbl_80445BB0@ha
+/* 802EDD6C 002E99CC 7C 8A 23 78 */ mr r10, r4
+/* 802EDD70 002E99D0 80 08 5B B0 */ lwz r0, lbl_80445BB0@l(r8)
+/* 802EDD74 002E99D4 7C A9 2B 78 */ mr r9, r5
+/* 802EDD78 002E99D8 7C C7 33 78 */ mr r7, r6
+/* 802EDD7C 002E99DC 2C 00 00 00 */ cmpwi r0, 0
+/* 802EDD80 002E99E0 40 80 00 10 */ bge lbl_802EDD90
+/* 802EDD84 002E99E4 3C 60 80 01 */ lis r3, func_80008000@ha
+/* 802EDD88 002E99E8 38 63 80 00 */ addi r3, r3, func_80008000@l
+/* 802EDD8C 002E99EC 4E 80 00 20 */ blr
+lbl_802EDD90:
+/* 802EDD90 002E99F0 80 08 5B B0 */ lwz r0, 0x5bb0(r8)
+/* 802EDD94 002E99F4 7C 64 1B 78 */ mr r4, r3
+/* 802EDD98 002E99F8 7D 45 53 78 */ mr r5, r10
+/* 802EDD9C 002E99FC 7D 26 4B 78 */ mr r6, r9
+/* 802EDDA0 002E9A00 7C 03 03 78 */ mr r3, r0
+/* 802EDDA4 002E9A04 4B FB 60 9C */ b IOS_Ioctlv
+/* 802EDDA8 002E9A08 4E 80 00 20 */ blr
+
+.global WDi_SetupHeap
+WDi_SetupHeap:
+/* 802EDDAC 002E9A0C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802EDDB0 002E9A10 7C 08 02 A6 */ mflr r0
+/* 802EDDB4 002E9A14 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802EDDB8 002E9A18 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802EDDBC 002E9A1C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802EDDC0 002E9A20 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802EDDC4 002E9A24 7C 7D 1B 78 */ mr r29, r3
+/* 802EDDC8 002E9A28 4B FB 4B 2D */ bl IPCGetBufferLo
+/* 802EDDCC 002E9A2C 3F E0 80 44 */ lis r31, lbl_80445BB0@ha
+/* 802EDDD0 002E9A30 7C 7E 1B 78 */ mr r30, r3
+/* 802EDDD4 002E9A34 3B FF 5B B0 */ addi r31, r31, lbl_80445BB0@l
+/* 802EDDD8 002E9A38 80 1F 00 08 */ lwz r0, 8(r31)
+/* 802EDDDC 002E9A3C 2C 00 FF FF */ cmpwi r0, -1
+/* 802EDDE0 002E9A40 40 82 00 48 */ bne lbl_802EDE28
+/* 802EDDE4 002E9A44 4B FB 4B 09 */ bl IPCGetBufferHi
+/* 802EDDE8 002E9A48 7C 1E EA 14 */ add r0, r30, r29
+/* 802EDDEC 002E9A4C 7C 00 18 40 */ cmplw r0, r3
+/* 802EDDF0 002E9A50 40 81 00 0C */ ble lbl_802EDDFC
+/* 802EDDF4 002E9A54 38 60 FF EA */ li r3, -22
+/* 802EDDF8 002E9A58 48 00 00 34 */ b lbl_802EDE2C
+lbl_802EDDFC:
+/* 802EDDFC 002E9A5C 7F C3 F3 78 */ mr r3, r30
+/* 802EDE00 002E9A60 7F A4 EB 78 */ mr r4, r29
+/* 802EDE04 002E9A64 4B FB 62 01 */ bl iosCreateHeap
+/* 802EDE08 002E9A68 90 7F 00 08 */ stw r3, 8(r31)
+/* 802EDE0C 002E9A6C 80 1F 00 08 */ lwz r0, 8(r31)
+/* 802EDE10 002E9A70 2C 00 00 00 */ cmpwi r0, 0
+/* 802EDE14 002E9A74 40 80 00 0C */ bge lbl_802EDE20
+/* 802EDE18 002E9A78 80 7F 00 08 */ lwz r3, 8(r31)
+/* 802EDE1C 002E9A7C 48 00 00 10 */ b lbl_802EDE2C
+lbl_802EDE20:
+/* 802EDE20 002E9A80 7C 7E EA 14 */ add r3, r30, r29
+/* 802EDE24 002E9A84 4B FB 4A D9 */ bl IPCSetBufferLo
+lbl_802EDE28:
+/* 802EDE28 002E9A88 38 60 00 00 */ li r3, 0
+lbl_802EDE2C:
+/* 802EDE2C 002E9A8C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802EDE30 002E9A90 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802EDE34 002E9A94 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802EDE38 002E9A98 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802EDE3C 002E9A9C 7C 08 03 A6 */ mtlr r0
+/* 802EDE40 002E9AA0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802EDE44 002E9AA4 4E 80 00 20 */ blr
+
+.global WDi_CleanupHeap
+WDi_CleanupHeap:
+/* 802EDE48 002E9AA8 38 60 00 00 */ li r3, 0
+/* 802EDE4C 002E9AAC 4E 80 00 20 */ blr
diff --git a/asm/SDK/WD/wd_receive.s b/asm/SDK/WD/wd_receive.s
new file mode 100644
index 0000000..8f8a106
--- /dev/null
+++ b/asm/SDK/WD/wd_receive.s
@@ -0,0 +1,98 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global WD_ReceiveNotification
+WD_ReceiveNotification:
+/* 802EE38C 002E9FEC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802EE390 002E9FF0 7C 08 02 A6 */ mflr r0
+/* 802EE394 002E9FF4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802EE398 002E9FF8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802EE39C 002E9FFC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802EE3A0 002EA000 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802EE3A4 002EA004 7C 7D 1B 78 */ mr r29, r3
+/* 802EE3A8 002EA008 4B FF F9 B5 */ bl WDi_GetWork
+/* 802EE3AC 002EA00C 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE3B0 002EA010 38 80 00 9C */ li r4, 0x9c
+/* 802EE3B4 002EA014 38 A0 00 20 */ li r5, 0x20
+/* 802EE3B8 002EA018 4B FB 5F 81 */ bl iosAllocAligned
+/* 802EE3BC 002EA01C 38 83 00 08 */ addi r4, r3, 8
+/* 802EE3C0 002EA020 38 00 00 4A */ li r0, 0x4a
+/* 802EE3C4 002EA024 7C 7E 1B 78 */ mr r30, r3
+/* 802EE3C8 002EA028 90 83 00 00 */ stw r4, 0(r3)
+/* 802EE3CC 002EA02C 38 C3 00 07 */ addi r6, r3, 7
+/* 802EE3D0 002EA030 38 BD FF FF */ addi r5, r29, -1
+/* 802EE3D4 002EA034 7C 09 03 A6 */ mtctr r0
+lbl_802EE3D8:
+/* 802EE3D8 002EA038 88 85 00 01 */ lbz r4, 1(r5)
+/* 802EE3DC 002EA03C 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 802EE3E0 002EA040 98 86 00 01 */ stb r4, 1(r6)
+/* 802EE3E4 002EA044 9C 06 00 02 */ stbu r0, 2(r6)
+/* 802EE3E8 002EA048 42 00 FF F0 */ bdnz lbl_802EE3D8
+/* 802EE3EC 002EA04C 38 00 00 94 */ li r0, 0x94
+/* 802EE3F0 002EA050 3C 80 00 01 */ lis r4, 0x00008001@ha
+/* 802EE3F4 002EA054 90 03 00 04 */ stw r0, 4(r3)
+/* 802EE3F8 002EA058 38 64 80 01 */ addi r3, r4, 0x00008001@l
+/* 802EE3FC 002EA05C 7F C6 F3 78 */ mr r6, r30
+/* 802EE400 002EA060 38 80 00 00 */ li r4, 0
+/* 802EE404 002EA064 38 A0 00 01 */ li r5, 1
+/* 802EE408 002EA068 4B FF F9 61 */ bl WDi_Ioctlv
+/* 802EE40C 002EA06C 38 00 00 4A */ li r0, 0x4a
+/* 802EE410 002EA070 7C 7F 1B 78 */ mr r31, r3
+/* 802EE414 002EA074 38 BD FF FF */ addi r5, r29, -1
+/* 802EE418 002EA078 38 9E 00 07 */ addi r4, r30, 7
+/* 802EE41C 002EA07C 7C 09 03 A6 */ mtctr r0
+lbl_802EE420:
+/* 802EE420 002EA080 88 64 00 01 */ lbz r3, 1(r4)
+/* 802EE424 002EA084 8C 04 00 02 */ lbzu r0, 2(r4)
+/* 802EE428 002EA088 98 65 00 01 */ stb r3, 1(r5)
+/* 802EE42C 002EA08C 9C 05 00 02 */ stbu r0, 2(r5)
+/* 802EE430 002EA090 42 00 FF F0 */ bdnz lbl_802EE420
+/* 802EE434 002EA094 4B FF F9 29 */ bl WDi_GetWork
+/* 802EE438 002EA098 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE43C 002EA09C 7F C4 F3 78 */ mr r4, r30
+/* 802EE440 002EA0A0 4B FB 5E FD */ bl iosFree
+/* 802EE444 002EA0A4 7F E3 FB 78 */ mr r3, r31
+/* 802EE448 002EA0A8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802EE44C 002EA0AC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802EE450 002EA0B0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802EE454 002EA0B4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802EE458 002EA0B8 7C 08 03 A6 */ mtlr r0
+/* 802EE45C 002EA0BC 38 21 00 20 */ addi r1, r1, 0x20
+/* 802EE460 002EA0C0 4E 80 00 20 */ blr
+
+.global WD_ReceiveFrame
+WD_ReceiveFrame:
+/* 802EE464 002EA0C4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802EE468 002EA0C8 7C 08 02 A6 */ mflr r0
+/* 802EE46C 002EA0CC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802EE470 002EA0D0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802EE474 002EA0D4 7C 9F 23 78 */ mr r31, r4
+/* 802EE478 002EA0D8 93 C1 00 08 */ stw r30, 8(r1)
+/* 802EE47C 002EA0DC 7C 7E 1B 78 */ mr r30, r3
+/* 802EE480 002EA0E0 4B FF F8 DD */ bl WDi_GetWork
+/* 802EE484 002EA0E4 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE488 002EA0E8 38 80 00 08 */ li r4, 8
+/* 802EE48C 002EA0EC 38 A0 00 20 */ li r5, 0x20
+/* 802EE490 002EA0F0 4B FB 5E A9 */ bl iosAllocAligned
+/* 802EE494 002EA0F4 93 C3 00 00 */ stw r30, 0(r3)
+/* 802EE498 002EA0F8 7C 7E 1B 78 */ mr r30, r3
+/* 802EE49C 002EA0FC 3C A0 00 01 */ lis r5, 0x00008000@ha
+/* 802EE4A0 002EA100 38 80 00 00 */ li r4, 0
+/* 802EE4A4 002EA104 93 E3 00 04 */ stw r31, 4(r3)
+/* 802EE4A8 002EA108 38 65 80 00 */ addi r3, r5, 0x00008000@l
+/* 802EE4AC 002EA10C 7F C6 F3 78 */ mr r6, r30
+/* 802EE4B0 002EA110 38 A0 00 01 */ li r5, 1
+/* 802EE4B4 002EA114 4B FF F8 B5 */ bl WDi_Ioctlv
+/* 802EE4B8 002EA118 7C 7F 1B 78 */ mr r31, r3
+/* 802EE4BC 002EA11C 4B FF F8 A1 */ bl WDi_GetWork
+/* 802EE4C0 002EA120 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE4C4 002EA124 7F C4 F3 78 */ mr r4, r30
+/* 802EE4C8 002EA128 4B FB 5E 75 */ bl iosFree
+/* 802EE4CC 002EA12C 7F E3 FB 78 */ mr r3, r31
+/* 802EE4D0 002EA130 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802EE4D4 002EA134 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802EE4D8 002EA138 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802EE4DC 002EA13C 7C 08 03 A6 */ mtlr r0
+/* 802EE4E0 002EA140 38 21 00 10 */ addi r1, r1, 0x10
+/* 802EE4E4 002EA144 4E 80 00 20 */ blr
diff --git a/asm/SDK/WD/wd_request.s b/asm/SDK/WD/wd_request.s
new file mode 100644
index 0000000..348e6f6
--- /dev/null
+++ b/asm/SDK/WD/wd_request.s
@@ -0,0 +1,367 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global WD_SetLinkState
+WD_SetLinkState:
+/* 802EDE50 002E9AB0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802EDE54 002E9AB4 7C 08 02 A6 */ mflr r0
+/* 802EDE58 002E9AB8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802EDE5C 002E9ABC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802EDE60 002E9AC0 7C 7F 1B 78 */ mr r31, r3
+/* 802EDE64 002E9AC4 93 C1 00 08 */ stw r30, 8(r1)
+/* 802EDE68 002E9AC8 4B FF FE F5 */ bl WDi_GetWork
+/* 802EDE6C 002E9ACC 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EDE70 002E9AD0 38 80 00 0C */ li r4, 0xc
+/* 802EDE74 002E9AD4 38 A0 00 20 */ li r5, 0x20
+/* 802EDE78 002E9AD8 4B FB 64 C1 */ bl iosAllocAligned
+/* 802EDE7C 002E9ADC 38 03 00 08 */ addi r0, r3, 8
+/* 802EDE80 002E9AE0 7C 7E 1B 78 */ mr r30, r3
+/* 802EDE84 002E9AE4 90 03 00 00 */ stw r0, 0(r3)
+/* 802EDE88 002E9AE8 38 00 00 04 */ li r0, 4
+/* 802EDE8C 002E9AEC 7F C6 F3 78 */ mr r6, r30
+/* 802EDE90 002E9AF0 38 80 00 01 */ li r4, 1
+/* 802EDE94 002E9AF4 93 E3 00 08 */ stw r31, 8(r3)
+/* 802EDE98 002E9AF8 38 A0 00 00 */ li r5, 0
+/* 802EDE9C 002E9AFC 90 03 00 04 */ stw r0, 4(r3)
+/* 802EDEA0 002E9B00 38 60 10 02 */ li r3, 0x1002
+/* 802EDEA4 002E9B04 4B FF FE C5 */ bl WDi_Ioctlv
+/* 802EDEA8 002E9B08 7C 7F 1B 78 */ mr r31, r3
+/* 802EDEAC 002E9B0C 4B FF FE B1 */ bl WDi_GetWork
+/* 802EDEB0 002E9B10 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EDEB4 002E9B14 7F C4 F3 78 */ mr r4, r30
+/* 802EDEB8 002E9B18 4B FB 64 85 */ bl iosFree
+/* 802EDEBC 002E9B1C 7F E3 FB 78 */ mr r3, r31
+/* 802EDEC0 002E9B20 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802EDEC4 002E9B24 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802EDEC8 002E9B28 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802EDECC 002E9B2C 7C 08 03 A6 */ mtlr r0
+/* 802EDED0 002E9B30 38 21 00 10 */ addi r1, r1, 0x10
+/* 802EDED4 002E9B34 4E 80 00 20 */ blr
+
+.global WD_GetLinkState
+WD_GetLinkState:
+/* 802EDED8 002E9B38 38 60 10 03 */ li r3, 0x1003
+/* 802EDEDC 002E9B3C 38 80 00 00 */ li r4, 0
+/* 802EDEE0 002E9B40 38 A0 00 00 */ li r5, 0
+/* 802EDEE4 002E9B44 38 C0 00 00 */ li r6, 0
+/* 802EDEE8 002E9B48 4B FF FE 80 */ b WDi_Ioctlv
+
+.global WD_SetConfig
+WD_SetConfig:
+/* 802EDEEC 002E9B4C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802EDEF0 002E9B50 7C 08 02 A6 */ mflr r0
+/* 802EDEF4 002E9B54 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802EDEF8 002E9B58 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802EDEFC 002E9B5C 7C BF 2B 78 */ mr r31, r5
+/* 802EDF00 002E9B60 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802EDF04 002E9B64 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802EDF08 002E9B68 7C DD 33 78 */ mr r29, r6
+/* 802EDF0C 002E9B6C 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802EDF10 002E9B70 7C 7C 1B 78 */ mr r28, r3
+/* 802EDF14 002E9B74 4B FF FE 49 */ bl WDi_GetWork
+/* 802EDF18 002E9B78 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EDF1C 002E9B7C 38 80 01 98 */ li r4, 0x198
+/* 802EDF20 002E9B80 38 A0 00 20 */ li r5, 0x20
+/* 802EDF24 002E9B84 4B FB 64 15 */ bl iosAllocAligned
+/* 802EDF28 002E9B88 38 03 00 10 */ addi r0, r3, 0x10
+/* 802EDF2C 002E9B8C 38 83 01 90 */ addi r4, r3, 0x190
+/* 802EDF30 002E9B90 90 03 00 00 */ stw r0, 0(r3)
+/* 802EDF34 002E9B94 38 00 00 C0 */ li r0, 0xc0
+/* 802EDF38 002E9B98 7C 7E 1B 78 */ mr r30, r3
+/* 802EDF3C 002E9B9C 38 C3 00 0F */ addi r6, r3, 0xf
+/* 802EDF40 002E9BA0 90 83 00 08 */ stw r4, 8(r3)
+/* 802EDF44 002E9BA4 38 BC FF FF */ addi r5, r28, -1
+/* 802EDF48 002E9BA8 7C 09 03 A6 */ mtctr r0
+lbl_802EDF4C:
+/* 802EDF4C 002E9BAC 88 85 00 01 */ lbz r4, 1(r5)
+/* 802EDF50 002E9BB0 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 802EDF54 002E9BB4 98 86 00 01 */ stb r4, 1(r6)
+/* 802EDF58 002E9BB8 9C 06 00 02 */ stbu r0, 2(r6)
+/* 802EDF5C 002E9BBC 42 00 FF F0 */ bdnz lbl_802EDF4C
+/* 802EDF60 002E9BC0 93 A3 01 94 */ stw r29, 0x194(r3)
+/* 802EDF64 002E9BC4 38 E0 01 80 */ li r7, 0x180
+/* 802EDF68 002E9BC8 38 00 00 08 */ li r0, 8
+/* 802EDF6C 002E9BCC 7F C6 F3 78 */ mr r6, r30
+/* 802EDF70 002E9BD0 93 E3 01 90 */ stw r31, 0x190(r3)
+/* 802EDF74 002E9BD4 38 80 00 02 */ li r4, 2
+/* 802EDF78 002E9BD8 38 A0 00 00 */ li r5, 0
+/* 802EDF7C 002E9BDC 90 E3 00 04 */ stw r7, 4(r3)
+/* 802EDF80 002E9BE0 90 03 00 0C */ stw r0, 0xc(r3)
+/* 802EDF84 002E9BE4 38 60 10 04 */ li r3, 0x1004
+/* 802EDF88 002E9BE8 4B FF FD E1 */ bl WDi_Ioctlv
+/* 802EDF8C 002E9BEC 7C 7F 1B 78 */ mr r31, r3
+/* 802EDF90 002E9BF0 4B FF FD CD */ bl WDi_GetWork
+/* 802EDF94 002E9BF4 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EDF98 002E9BF8 7F C4 F3 78 */ mr r4, r30
+/* 802EDF9C 002E9BFC 4B FB 63 A1 */ bl iosFree
+/* 802EDFA0 002E9C00 7F E3 FB 78 */ mr r3, r31
+/* 802EDFA4 002E9C04 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802EDFA8 002E9C08 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802EDFAC 002E9C0C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802EDFB0 002E9C10 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802EDFB4 002E9C14 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802EDFB8 002E9C18 7C 08 03 A6 */ mtlr r0
+/* 802EDFBC 002E9C1C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802EDFC0 002E9C20 4E 80 00 20 */ blr
+
+.global WD_ChangeBeacon
+WD_ChangeBeacon:
+/* 802EDFC4 002E9C24 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802EDFC8 002E9C28 7C 08 02 A6 */ mflr r0
+/* 802EDFCC 002E9C2C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802EDFD0 002E9C30 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802EDFD4 002E9C34 7C 9F 23 78 */ mr r31, r4
+/* 802EDFD8 002E9C38 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802EDFDC 002E9C3C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802EDFE0 002E9C40 7C 7D 1B 78 */ mr r29, r3
+/* 802EDFE4 002E9C44 4B FF FD 79 */ bl WDi_GetWork
+/* 802EDFE8 002E9C48 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EDFEC 002E9C4C 38 80 00 14 */ li r4, 0x14
+/* 802EDFF0 002E9C50 38 A0 00 20 */ li r5, 0x20
+/* 802EDFF4 002E9C54 4B FB 63 45 */ bl iosAllocAligned
+/* 802EDFF8 002E9C58 38 03 00 10 */ addi r0, r3, 0x10
+/* 802EDFFC 002E9C5C 7C 7E 1B 78 */ mr r30, r3
+/* 802EE000 002E9C60 90 03 00 00 */ stw r0, 0(r3)
+/* 802EE004 002E9C64 38 E0 00 02 */ li r7, 2
+/* 802EE008 002E9C68 38 00 00 80 */ li r0, 0x80
+/* 802EE00C 002E9C6C 7F C6 F3 78 */ mr r6, r30
+/* 802EE010 002E9C70 B3 A3 00 10 */ sth r29, 0x10(r3)
+/* 802EE014 002E9C74 38 80 00 02 */ li r4, 2
+/* 802EE018 002E9C78 38 A0 00 00 */ li r5, 0
+/* 802EE01C 002E9C7C 93 E3 00 08 */ stw r31, 8(r3)
+/* 802EE020 002E9C80 90 E3 00 04 */ stw r7, 4(r3)
+/* 802EE024 002E9C84 90 03 00 0C */ stw r0, 0xc(r3)
+/* 802EE028 002E9C88 38 60 10 06 */ li r3, 0x1006
+/* 802EE02C 002E9C8C 4B FF FD 3D */ bl WDi_Ioctlv
+/* 802EE030 002E9C90 7C 7F 1B 78 */ mr r31, r3
+/* 802EE034 002E9C94 4B FF FD 29 */ bl WDi_GetWork
+/* 802EE038 002E9C98 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE03C 002E9C9C 7F C4 F3 78 */ mr r4, r30
+/* 802EE040 002E9CA0 4B FB 62 FD */ bl iosFree
+/* 802EE044 002E9CA4 7F E3 FB 78 */ mr r3, r31
+/* 802EE048 002E9CA8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802EE04C 002E9CAC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802EE050 002E9CB0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802EE054 002E9CB4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802EE058 002E9CB8 7C 08 03 A6 */ mtlr r0
+/* 802EE05C 002E9CBC 38 21 00 20 */ addi r1, r1, 0x20
+/* 802EE060 002E9CC0 4E 80 00 20 */ blr
+
+.global WD_ChangeVTSF
+WD_ChangeVTSF:
+/* 802EE064 002E9CC4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802EE068 002E9CC8 7C 08 02 A6 */ mflr r0
+/* 802EE06C 002E9CCC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802EE070 002E9CD0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802EE074 002E9CD4 93 C1 00 08 */ stw r30, 8(r1)
+/* 802EE078 002E9CD8 7C 7E 1B 78 */ mr r30, r3
+/* 802EE07C 002E9CDC 4B FF FC E1 */ bl WDi_GetWork
+/* 802EE080 002E9CE0 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE084 002E9CE4 38 80 00 0C */ li r4, 0xc
+/* 802EE088 002E9CE8 38 A0 00 20 */ li r5, 0x20
+/* 802EE08C 002E9CEC 4B FB 62 AD */ bl iosAllocAligned
+/* 802EE090 002E9CF0 B3 C3 00 08 */ sth r30, 8(r3)
+/* 802EE094 002E9CF4 38 83 00 08 */ addi r4, r3, 8
+/* 802EE098 002E9CF8 7C 7E 1B 78 */ mr r30, r3
+/* 802EE09C 002E9CFC 38 00 00 02 */ li r0, 2
+/* 802EE0A0 002E9D00 90 83 00 00 */ stw r4, 0(r3)
+/* 802EE0A4 002E9D04 7F C6 F3 78 */ mr r6, r30
+/* 802EE0A8 002E9D08 38 80 00 01 */ li r4, 1
+/* 802EE0AC 002E9D0C 38 A0 00 00 */ li r5, 0
+/* 802EE0B0 002E9D10 90 03 00 04 */ stw r0, 4(r3)
+/* 802EE0B4 002E9D14 38 60 10 10 */ li r3, 0x1010
+/* 802EE0B8 002E9D18 4B FF FC B1 */ bl WDi_Ioctlv
+/* 802EE0BC 002E9D1C 7C 7F 1B 78 */ mr r31, r3
+/* 802EE0C0 002E9D20 4B FF FC 9D */ bl WDi_GetWork
+/* 802EE0C4 002E9D24 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE0C8 002E9D28 7F C4 F3 78 */ mr r4, r30
+/* 802EE0CC 002E9D2C 4B FB 62 71 */ bl iosFree
+/* 802EE0D0 002E9D30 7F E3 FB 78 */ mr r3, r31
+/* 802EE0D4 002E9D34 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802EE0D8 002E9D38 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802EE0DC 002E9D3C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802EE0E0 002E9D40 7C 08 03 A6 */ mtlr r0
+/* 802EE0E4 002E9D44 38 21 00 10 */ addi r1, r1, 0x10
+/* 802EE0E8 002E9D48 4E 80 00 20 */ blr
+
+.global WD_DisAssoc
+WD_DisAssoc:
+/* 802EE0EC 002E9D4C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802EE0F0 002E9D50 7C 08 02 A6 */ mflr r0
+/* 802EE0F4 002E9D54 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802EE0F8 002E9D58 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802EE0FC 002E9D5C 7C 7F 1B 78 */ mr r31, r3
+/* 802EE100 002E9D60 93 C1 00 08 */ stw r30, 8(r1)
+/* 802EE104 002E9D64 4B FF FC 59 */ bl WDi_GetWork
+/* 802EE108 002E9D68 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE10C 002E9D6C 38 80 00 10 */ li r4, 0x10
+/* 802EE110 002E9D70 38 A0 00 20 */ li r5, 0x20
+/* 802EE114 002E9D74 4B FB 62 25 */ bl iosAllocAligned
+/* 802EE118 002E9D78 38 03 00 08 */ addi r0, r3, 8
+/* 802EE11C 002E9D7C 7C 7E 1B 78 */ mr r30, r3
+/* 802EE120 002E9D80 90 03 00 00 */ stw r0, 0(r3)
+/* 802EE124 002E9D84 7C 03 03 78 */ mr r3, r0
+/* 802EE128 002E9D88 7F E4 FB 78 */ mr r4, r31
+/* 802EE12C 002E9D8C 38 A0 00 06 */ li r5, 6
+/* 802EE130 002E9D90 4B D1 5E D1 */ bl memcpy
+/* 802EE134 002E9D94 38 00 00 06 */ li r0, 6
+/* 802EE138 002E9D98 7F C6 F3 78 */ mr r6, r30
+/* 802EE13C 002E9D9C 90 1E 00 04 */ stw r0, 4(r30)
+/* 802EE140 002E9DA0 38 60 10 07 */ li r3, 0x1007
+/* 802EE144 002E9DA4 38 80 00 01 */ li r4, 1
+/* 802EE148 002E9DA8 38 A0 00 00 */ li r5, 0
+/* 802EE14C 002E9DAC 4B FF FC 1D */ bl WDi_Ioctlv
+/* 802EE150 002E9DB0 7C 7F 1B 78 */ mr r31, r3
+/* 802EE154 002E9DB4 4B FF FC 09 */ bl WDi_GetWork
+/* 802EE158 002E9DB8 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE15C 002E9DBC 7F C4 F3 78 */ mr r4, r30
+/* 802EE160 002E9DC0 4B FB 61 DD */ bl iosFree
+/* 802EE164 002E9DC4 7F E3 FB 78 */ mr r3, r31
+/* 802EE168 002E9DC8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802EE16C 002E9DCC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802EE170 002E9DD0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802EE174 002E9DD4 7C 08 03 A6 */ mtlr r0
+/* 802EE178 002E9DD8 38 21 00 10 */ addi r1, r1, 0x10
+/* 802EE17C 002E9DDC 4E 80 00 20 */ blr
+
+.global WD_MpSendFrame
+WD_MpSendFrame:
+/* 802EE180 002E9DE0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802EE184 002E9DE4 7C 08 02 A6 */ mflr r0
+/* 802EE188 002E9DE8 28 04 02 02 */ cmplwi r4, 0x202
+/* 802EE18C 002E9DEC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802EE190 002E9DF0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802EE194 002E9DF4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802EE198 002E9DF8 7C BE 2B 78 */ mr r30, r5
+/* 802EE19C 002E9DFC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802EE1A0 002E9E00 7C 9D 23 78 */ mr r29, r4
+/* 802EE1A4 002E9E04 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802EE1A8 002E9E08 7C 7C 1B 78 */ mr r28, r3
+/* 802EE1AC 002E9E0C 40 81 00 10 */ ble lbl_802EE1BC
+/* 802EE1B0 002E9E10 3C 60 80 01 */ lis r3, 0x80008001@ha
+/* 802EE1B4 002E9E14 38 63 80 01 */ addi r3, r3, 0x80008001@l
+/* 802EE1B8 002E9E18 48 00 00 E0 */ b lbl_802EE298
+lbl_802EE1BC:
+/* 802EE1BC 002E9E1C 4B FF FB A1 */ bl WDi_GetWork
+/* 802EE1C0 002E9E20 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE1C4 002E9E24 38 80 00 20 */ li r4, 0x20
+/* 802EE1C8 002E9E28 38 A0 00 20 */ li r5, 0x20
+/* 802EE1CC 002E9E2C 4B FB 61 6D */ bl iosAllocAligned
+/* 802EE1D0 002E9E30 38 03 00 10 */ addi r0, r3, 0x10
+/* 802EE1D4 002E9E34 7C 7F 1B 78 */ mr r31, r3
+/* 802EE1D8 002E9E38 90 03 00 08 */ stw r0, 8(r3)
+/* 802EE1DC 002E9E3C 38 00 00 10 */ li r0, 0x10
+/* 802EE1E0 002E9E40 88 BE 00 00 */ lbz r5, 0(r30)
+/* 802EE1E4 002E9E44 7F E6 FB 78 */ mr r6, r31
+/* 802EE1E8 002E9E48 88 FE 00 01 */ lbz r7, 1(r30)
+/* 802EE1EC 002E9E4C 38 80 00 02 */ li r4, 2
+/* 802EE1F0 002E9E50 98 A3 00 10 */ stb r5, 0x10(r3)
+/* 802EE1F4 002E9E54 38 A0 00 00 */ li r5, 0
+/* 802EE1F8 002E9E58 89 1E 00 02 */ lbz r8, 2(r30)
+/* 802EE1FC 002E9E5C 98 E3 00 11 */ stb r7, 0x11(r3)
+/* 802EE200 002E9E60 88 FE 00 03 */ lbz r7, 3(r30)
+/* 802EE204 002E9E64 99 03 00 12 */ stb r8, 0x12(r3)
+/* 802EE208 002E9E68 89 1E 00 04 */ lbz r8, 4(r30)
+/* 802EE20C 002E9E6C 98 E3 00 13 */ stb r7, 0x13(r3)
+/* 802EE210 002E9E70 88 FE 00 05 */ lbz r7, 5(r30)
+/* 802EE214 002E9E74 99 03 00 14 */ stb r8, 0x14(r3)
+/* 802EE218 002E9E78 89 1E 00 06 */ lbz r8, 6(r30)
+/* 802EE21C 002E9E7C 98 E3 00 15 */ stb r7, 0x15(r3)
+/* 802EE220 002E9E80 88 FE 00 07 */ lbz r7, 7(r30)
+/* 802EE224 002E9E84 99 03 00 16 */ stb r8, 0x16(r3)
+/* 802EE228 002E9E88 89 1E 00 08 */ lbz r8, 8(r30)
+/* 802EE22C 002E9E8C 98 E3 00 17 */ stb r7, 0x17(r3)
+/* 802EE230 002E9E90 88 FE 00 09 */ lbz r7, 9(r30)
+/* 802EE234 002E9E94 99 03 00 18 */ stb r8, 0x18(r3)
+/* 802EE238 002E9E98 89 1E 00 0A */ lbz r8, 0xa(r30)
+/* 802EE23C 002E9E9C 98 E3 00 19 */ stb r7, 0x19(r3)
+/* 802EE240 002E9EA0 88 FE 00 0B */ lbz r7, 0xb(r30)
+/* 802EE244 002E9EA4 99 03 00 1A */ stb r8, 0x1a(r3)
+/* 802EE248 002E9EA8 89 1E 00 0C */ lbz r8, 0xc(r30)
+/* 802EE24C 002E9EAC 98 E3 00 1B */ stb r7, 0x1b(r3)
+/* 802EE250 002E9EB0 88 FE 00 0D */ lbz r7, 0xd(r30)
+/* 802EE254 002E9EB4 99 03 00 1C */ stb r8, 0x1c(r3)
+/* 802EE258 002E9EB8 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 802EE25C 002E9EBC 98 E3 00 1D */ stb r7, 0x1d(r3)
+/* 802EE260 002E9EC0 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 802EE264 002E9EC4 99 03 00 1E */ stb r8, 0x1e(r3)
+/* 802EE268 002E9EC8 98 E3 00 1F */ stb r7, 0x1f(r3)
+/* 802EE26C 002E9ECC 93 83 00 00 */ stw r28, 0(r3)
+/* 802EE270 002E9ED0 93 A3 00 04 */ stw r29, 4(r3)
+/* 802EE274 002E9ED4 90 03 00 0C */ stw r0, 0xc(r3)
+/* 802EE278 002E9ED8 38 60 10 08 */ li r3, 0x1008
+/* 802EE27C 002E9EDC 4B FF FA ED */ bl WDi_Ioctlv
+/* 802EE280 002E9EE0 7C 7C 1B 78 */ mr r28, r3
+/* 802EE284 002E9EE4 4B FF FA D9 */ bl WDi_GetWork
+/* 802EE288 002E9EE8 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE28C 002E9EEC 7F E4 FB 78 */ mr r4, r31
+/* 802EE290 002E9EF0 4B FB 60 AD */ bl iosFree
+/* 802EE294 002E9EF4 7F 83 E3 78 */ mr r3, r28
+lbl_802EE298:
+/* 802EE298 002E9EF8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802EE29C 002E9EFC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802EE2A0 002E9F00 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802EE2A4 002E9F04 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802EE2A8 002E9F08 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802EE2AC 002E9F0C 7C 08 03 A6 */ mtlr r0
+/* 802EE2B0 002E9F10 38 21 00 20 */ addi r1, r1, 0x20
+/* 802EE2B4 002E9F14 4E 80 00 20 */ blr
+
+.global WD_GetInfo
+WD_GetInfo:
+/* 802EE2B8 002E9F18 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802EE2BC 002E9F1C 7C 08 02 A6 */ mflr r0
+/* 802EE2C0 002E9F20 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802EE2C4 002E9F24 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802EE2C8 002E9F28 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802EE2CC 002E9F2C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802EE2D0 002E9F30 7C 7D 1B 78 */ mr r29, r3
+/* 802EE2D4 002E9F34 4B FF FA 89 */ bl WDi_GetWork
+/* 802EE2D8 002E9F38 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE2DC 002E9F3C 38 80 00 98 */ li r4, 0x98
+/* 802EE2E0 002E9F40 38 A0 00 20 */ li r5, 0x20
+/* 802EE2E4 002E9F44 4B FB 60 55 */ bl iosAllocAligned
+/* 802EE2E8 002E9F48 38 83 00 08 */ addi r4, r3, 8
+/* 802EE2EC 002E9F4C 38 00 00 48 */ li r0, 0x48
+/* 802EE2F0 002E9F50 7C 7E 1B 78 */ mr r30, r3
+/* 802EE2F4 002E9F54 90 83 00 00 */ stw r4, 0(r3)
+/* 802EE2F8 002E9F58 38 C3 00 07 */ addi r6, r3, 7
+/* 802EE2FC 002E9F5C 38 BD FF FF */ addi r5, r29, -1
+/* 802EE300 002E9F60 7C 09 03 A6 */ mtctr r0
+lbl_802EE304:
+/* 802EE304 002E9F64 88 85 00 01 */ lbz r4, 1(r5)
+/* 802EE308 002E9F68 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 802EE30C 002E9F6C 98 86 00 01 */ stb r4, 1(r6)
+/* 802EE310 002E9F70 9C 06 00 02 */ stbu r0, 2(r6)
+/* 802EE314 002E9F74 42 00 FF F0 */ bdnz lbl_802EE304
+/* 802EE318 002E9F78 38 00 00 90 */ li r0, 0x90
+/* 802EE31C 002E9F7C 7F C6 F3 78 */ mr r6, r30
+/* 802EE320 002E9F80 90 03 00 04 */ stw r0, 4(r3)
+/* 802EE324 002E9F84 38 60 10 0E */ li r3, 0x100e
+/* 802EE328 002E9F88 38 80 00 00 */ li r4, 0
+/* 802EE32C 002E9F8C 38 A0 00 01 */ li r5, 1
+/* 802EE330 002E9F90 4B FF FA 39 */ bl WDi_Ioctlv
+/* 802EE334 002E9F94 38 00 00 48 */ li r0, 0x48
+/* 802EE338 002E9F98 7C 7F 1B 78 */ mr r31, r3
+/* 802EE33C 002E9F9C 38 BD FF FF */ addi r5, r29, -1
+/* 802EE340 002E9FA0 38 9E 00 07 */ addi r4, r30, 7
+/* 802EE344 002E9FA4 7C 09 03 A6 */ mtctr r0
+lbl_802EE348:
+/* 802EE348 002E9FA8 88 64 00 01 */ lbz r3, 1(r4)
+/* 802EE34C 002E9FAC 8C 04 00 02 */ lbzu r0, 2(r4)
+/* 802EE350 002E9FB0 98 65 00 01 */ stb r3, 1(r5)
+/* 802EE354 002E9FB4 9C 05 00 02 */ stbu r0, 2(r5)
+/* 802EE358 002E9FB8 42 00 FF F0 */ bdnz lbl_802EE348
+/* 802EE35C 002E9FBC 4B FF FA 01 */ bl WDi_GetWork
+/* 802EE360 002E9FC0 80 63 00 08 */ lwz r3, 8(r3)
+/* 802EE364 002E9FC4 7F C4 F3 78 */ mr r4, r30
+/* 802EE368 002E9FC8 4B FB 5F D5 */ bl iosFree
+/* 802EE36C 002E9FCC 7F E3 FB 78 */ mr r3, r31
+/* 802EE370 002E9FD0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802EE374 002E9FD4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802EE378 002E9FD8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802EE37C 002E9FDC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802EE380 002E9FE0 7C 08 03 A6 */ mtlr r0
+/* 802EE384 002E9FE4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802EE388 002E9FE8 4E 80 00 20 */ blr
diff --git a/asm/text_9.s b/asm/text_9.s
index f2bf214..9efa349 100644
--- a/asm/text_9.s
+++ b/asm/text_9.s
@@ -2,639 +2,6 @@
.section .text, "ax" # 0x80006980 - 0x803E1E60
-.global func_802EDD5C
-func_802EDD5C:
-/* 802EDD5C 002E99BC 3C 60 80 44 */ lis r3, lbl_80445BB0@ha
-/* 802EDD60 002E99C0 38 63 5B B0 */ addi r3, r3, lbl_80445BB0@l
-/* 802EDD64 002E99C4 4E 80 00 20 */ blr
-
-.global func_802EDD68
-func_802EDD68:
-/* 802EDD68 002E99C8 3D 00 80 44 */ lis r8, lbl_80445BB0@ha
-/* 802EDD6C 002E99CC 7C 8A 23 78 */ mr r10, r4
-/* 802EDD70 002E99D0 80 08 5B B0 */ lwz r0, lbl_80445BB0@l(r8)
-/* 802EDD74 002E99D4 7C A9 2B 78 */ mr r9, r5
-/* 802EDD78 002E99D8 7C C7 33 78 */ mr r7, r6
-/* 802EDD7C 002E99DC 2C 00 00 00 */ cmpwi r0, 0
-/* 802EDD80 002E99E0 40 80 00 10 */ bge lbl_802EDD90
-/* 802EDD84 002E99E4 3C 60 80 01 */ lis r3, func_80008000@ha
-/* 802EDD88 002E99E8 38 63 80 00 */ addi r3, r3, func_80008000@l
-/* 802EDD8C 002E99EC 4E 80 00 20 */ blr
-lbl_802EDD90:
-/* 802EDD90 002E99F0 80 08 5B B0 */ lwz r0, 0x5bb0(r8)
-/* 802EDD94 002E99F4 7C 64 1B 78 */ mr r4, r3
-/* 802EDD98 002E99F8 7D 45 53 78 */ mr r5, r10
-/* 802EDD9C 002E99FC 7D 26 4B 78 */ mr r6, r9
-/* 802EDDA0 002E9A00 7C 03 03 78 */ mr r3, r0
-/* 802EDDA4 002E9A04 4B FB 60 9C */ b IOS_Ioctlv
-/* 802EDDA8 002E9A08 4E 80 00 20 */ blr
-
-.global func_802EDDAC
-func_802EDDAC:
-/* 802EDDAC 002E9A0C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802EDDB0 002E9A10 7C 08 02 A6 */ mflr r0
-/* 802EDDB4 002E9A14 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802EDDB8 002E9A18 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802EDDBC 002E9A1C 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802EDDC0 002E9A20 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802EDDC4 002E9A24 7C 7D 1B 78 */ mr r29, r3
-/* 802EDDC8 002E9A28 4B FB 4B 2D */ bl IPCGetBufferLo
-/* 802EDDCC 002E9A2C 3F E0 80 44 */ lis r31, lbl_80445BB0@ha
-/* 802EDDD0 002E9A30 7C 7E 1B 78 */ mr r30, r3
-/* 802EDDD4 002E9A34 3B FF 5B B0 */ addi r31, r31, lbl_80445BB0@l
-/* 802EDDD8 002E9A38 80 1F 00 08 */ lwz r0, 8(r31)
-/* 802EDDDC 002E9A3C 2C 00 FF FF */ cmpwi r0, -1
-/* 802EDDE0 002E9A40 40 82 00 48 */ bne lbl_802EDE28
-/* 802EDDE4 002E9A44 4B FB 4B 09 */ bl IPCGetBufferHi
-/* 802EDDE8 002E9A48 7C 1E EA 14 */ add r0, r30, r29
-/* 802EDDEC 002E9A4C 7C 00 18 40 */ cmplw r0, r3
-/* 802EDDF0 002E9A50 40 81 00 0C */ ble lbl_802EDDFC
-/* 802EDDF4 002E9A54 38 60 FF EA */ li r3, -22
-/* 802EDDF8 002E9A58 48 00 00 34 */ b lbl_802EDE2C
-lbl_802EDDFC:
-/* 802EDDFC 002E9A5C 7F C3 F3 78 */ mr r3, r30
-/* 802EDE00 002E9A60 7F A4 EB 78 */ mr r4, r29
-/* 802EDE04 002E9A64 4B FB 62 01 */ bl iosCreateHeap
-/* 802EDE08 002E9A68 90 7F 00 08 */ stw r3, 8(r31)
-/* 802EDE0C 002E9A6C 80 1F 00 08 */ lwz r0, 8(r31)
-/* 802EDE10 002E9A70 2C 00 00 00 */ cmpwi r0, 0
-/* 802EDE14 002E9A74 40 80 00 0C */ bge lbl_802EDE20
-/* 802EDE18 002E9A78 80 7F 00 08 */ lwz r3, 8(r31)
-/* 802EDE1C 002E9A7C 48 00 00 10 */ b lbl_802EDE2C
-lbl_802EDE20:
-/* 802EDE20 002E9A80 7C 7E EA 14 */ add r3, r30, r29
-/* 802EDE24 002E9A84 4B FB 4A D9 */ bl IPCSetBufferLo
-lbl_802EDE28:
-/* 802EDE28 002E9A88 38 60 00 00 */ li r3, 0
-lbl_802EDE2C:
-/* 802EDE2C 002E9A8C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802EDE30 002E9A90 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802EDE34 002E9A94 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802EDE38 002E9A98 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802EDE3C 002E9A9C 7C 08 03 A6 */ mtlr r0
-/* 802EDE40 002E9AA0 38 21 00 20 */ addi r1, r1, 0x20
-/* 802EDE44 002E9AA4 4E 80 00 20 */ blr
-
-.global func_802EDE48
-func_802EDE48:
-/* 802EDE48 002E9AA8 38 60 00 00 */ li r3, 0
-/* 802EDE4C 002E9AAC 4E 80 00 20 */ blr
-
-.global func_802EDE50
-func_802EDE50:
-/* 802EDE50 002E9AB0 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802EDE54 002E9AB4 7C 08 02 A6 */ mflr r0
-/* 802EDE58 002E9AB8 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802EDE5C 002E9ABC 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802EDE60 002E9AC0 7C 7F 1B 78 */ mr r31, r3
-/* 802EDE64 002E9AC4 93 C1 00 08 */ stw r30, 8(r1)
-/* 802EDE68 002E9AC8 4B FF FE F5 */ bl func_802EDD5C
-/* 802EDE6C 002E9ACC 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EDE70 002E9AD0 38 80 00 0C */ li r4, 0xc
-/* 802EDE74 002E9AD4 38 A0 00 20 */ li r5, 0x20
-/* 802EDE78 002E9AD8 4B FB 64 C1 */ bl iosAllocAligned
-/* 802EDE7C 002E9ADC 38 03 00 08 */ addi r0, r3, 8
-/* 802EDE80 002E9AE0 7C 7E 1B 78 */ mr r30, r3
-/* 802EDE84 002E9AE4 90 03 00 00 */ stw r0, 0(r3)
-/* 802EDE88 002E9AE8 38 00 00 04 */ li r0, 4
-/* 802EDE8C 002E9AEC 7F C6 F3 78 */ mr r6, r30
-/* 802EDE90 002E9AF0 38 80 00 01 */ li r4, 1
-/* 802EDE94 002E9AF4 93 E3 00 08 */ stw r31, 8(r3)
-/* 802EDE98 002E9AF8 38 A0 00 00 */ li r5, 0
-/* 802EDE9C 002E9AFC 90 03 00 04 */ stw r0, 4(r3)
-/* 802EDEA0 002E9B00 38 60 10 02 */ li r3, 0x1002
-/* 802EDEA4 002E9B04 4B FF FE C5 */ bl func_802EDD68
-/* 802EDEA8 002E9B08 7C 7F 1B 78 */ mr r31, r3
-/* 802EDEAC 002E9B0C 4B FF FE B1 */ bl func_802EDD5C
-/* 802EDEB0 002E9B10 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EDEB4 002E9B14 7F C4 F3 78 */ mr r4, r30
-/* 802EDEB8 002E9B18 4B FB 64 85 */ bl iosFree
-/* 802EDEBC 002E9B1C 7F E3 FB 78 */ mr r3, r31
-/* 802EDEC0 002E9B20 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802EDEC4 002E9B24 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802EDEC8 002E9B28 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802EDECC 002E9B2C 7C 08 03 A6 */ mtlr r0
-/* 802EDED0 002E9B30 38 21 00 10 */ addi r1, r1, 0x10
-/* 802EDED4 002E9B34 4E 80 00 20 */ blr
-
-.global func_802EDED8
-func_802EDED8:
-/* 802EDED8 002E9B38 38 60 10 03 */ li r3, 0x1003
-/* 802EDEDC 002E9B3C 38 80 00 00 */ li r4, 0
-/* 802EDEE0 002E9B40 38 A0 00 00 */ li r5, 0
-/* 802EDEE4 002E9B44 38 C0 00 00 */ li r6, 0
-/* 802EDEE8 002E9B48 4B FF FE 80 */ b func_802EDD68
-
-.global func_802EDEEC
-func_802EDEEC:
-/* 802EDEEC 002E9B4C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802EDEF0 002E9B50 7C 08 02 A6 */ mflr r0
-/* 802EDEF4 002E9B54 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802EDEF8 002E9B58 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802EDEFC 002E9B5C 7C BF 2B 78 */ mr r31, r5
-/* 802EDF00 002E9B60 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802EDF04 002E9B64 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802EDF08 002E9B68 7C DD 33 78 */ mr r29, r6
-/* 802EDF0C 002E9B6C 93 81 00 10 */ stw r28, 0x10(r1)
-/* 802EDF10 002E9B70 7C 7C 1B 78 */ mr r28, r3
-/* 802EDF14 002E9B74 4B FF FE 49 */ bl func_802EDD5C
-/* 802EDF18 002E9B78 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EDF1C 002E9B7C 38 80 01 98 */ li r4, 0x198
-/* 802EDF20 002E9B80 38 A0 00 20 */ li r5, 0x20
-/* 802EDF24 002E9B84 4B FB 64 15 */ bl iosAllocAligned
-/* 802EDF28 002E9B88 38 03 00 10 */ addi r0, r3, 0x10
-/* 802EDF2C 002E9B8C 38 83 01 90 */ addi r4, r3, 0x190
-/* 802EDF30 002E9B90 90 03 00 00 */ stw r0, 0(r3)
-/* 802EDF34 002E9B94 38 00 00 C0 */ li r0, 0xc0
-/* 802EDF38 002E9B98 7C 7E 1B 78 */ mr r30, r3
-/* 802EDF3C 002E9B9C 38 C3 00 0F */ addi r6, r3, 0xf
-/* 802EDF40 002E9BA0 90 83 00 08 */ stw r4, 8(r3)
-/* 802EDF44 002E9BA4 38 BC FF FF */ addi r5, r28, -1
-/* 802EDF48 002E9BA8 7C 09 03 A6 */ mtctr r0
-lbl_802EDF4C:
-/* 802EDF4C 002E9BAC 88 85 00 01 */ lbz r4, 1(r5)
-/* 802EDF50 002E9BB0 8C 05 00 02 */ lbzu r0, 2(r5)
-/* 802EDF54 002E9BB4 98 86 00 01 */ stb r4, 1(r6)
-/* 802EDF58 002E9BB8 9C 06 00 02 */ stbu r0, 2(r6)
-/* 802EDF5C 002E9BBC 42 00 FF F0 */ bdnz lbl_802EDF4C
-/* 802EDF60 002E9BC0 93 A3 01 94 */ stw r29, 0x194(r3)
-/* 802EDF64 002E9BC4 38 E0 01 80 */ li r7, 0x180
-/* 802EDF68 002E9BC8 38 00 00 08 */ li r0, 8
-/* 802EDF6C 002E9BCC 7F C6 F3 78 */ mr r6, r30
-/* 802EDF70 002E9BD0 93 E3 01 90 */ stw r31, 0x190(r3)
-/* 802EDF74 002E9BD4 38 80 00 02 */ li r4, 2
-/* 802EDF78 002E9BD8 38 A0 00 00 */ li r5, 0
-/* 802EDF7C 002E9BDC 90 E3 00 04 */ stw r7, 4(r3)
-/* 802EDF80 002E9BE0 90 03 00 0C */ stw r0, 0xc(r3)
-/* 802EDF84 002E9BE4 38 60 10 04 */ li r3, 0x1004
-/* 802EDF88 002E9BE8 4B FF FD E1 */ bl func_802EDD68
-/* 802EDF8C 002E9BEC 7C 7F 1B 78 */ mr r31, r3
-/* 802EDF90 002E9BF0 4B FF FD CD */ bl func_802EDD5C
-/* 802EDF94 002E9BF4 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EDF98 002E9BF8 7F C4 F3 78 */ mr r4, r30
-/* 802EDF9C 002E9BFC 4B FB 63 A1 */ bl iosFree
-/* 802EDFA0 002E9C00 7F E3 FB 78 */ mr r3, r31
-/* 802EDFA4 002E9C04 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802EDFA8 002E9C08 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802EDFAC 002E9C0C 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802EDFB0 002E9C10 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 802EDFB4 002E9C14 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802EDFB8 002E9C18 7C 08 03 A6 */ mtlr r0
-/* 802EDFBC 002E9C1C 38 21 00 20 */ addi r1, r1, 0x20
-/* 802EDFC0 002E9C20 4E 80 00 20 */ blr
-
-.global func_802EDFC4
-func_802EDFC4:
-/* 802EDFC4 002E9C24 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802EDFC8 002E9C28 7C 08 02 A6 */ mflr r0
-/* 802EDFCC 002E9C2C 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802EDFD0 002E9C30 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802EDFD4 002E9C34 7C 9F 23 78 */ mr r31, r4
-/* 802EDFD8 002E9C38 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802EDFDC 002E9C3C 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802EDFE0 002E9C40 7C 7D 1B 78 */ mr r29, r3
-/* 802EDFE4 002E9C44 4B FF FD 79 */ bl func_802EDD5C
-/* 802EDFE8 002E9C48 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EDFEC 002E9C4C 38 80 00 14 */ li r4, 0x14
-/* 802EDFF0 002E9C50 38 A0 00 20 */ li r5, 0x20
-/* 802EDFF4 002E9C54 4B FB 63 45 */ bl iosAllocAligned
-/* 802EDFF8 002E9C58 38 03 00 10 */ addi r0, r3, 0x10
-/* 802EDFFC 002E9C5C 7C 7E 1B 78 */ mr r30, r3
-/* 802EE000 002E9C60 90 03 00 00 */ stw r0, 0(r3)
-/* 802EE004 002E9C64 38 E0 00 02 */ li r7, 2
-/* 802EE008 002E9C68 38 00 00 80 */ li r0, 0x80
-/* 802EE00C 002E9C6C 7F C6 F3 78 */ mr r6, r30
-/* 802EE010 002E9C70 B3 A3 00 10 */ sth r29, 0x10(r3)
-/* 802EE014 002E9C74 38 80 00 02 */ li r4, 2
-/* 802EE018 002E9C78 38 A0 00 00 */ li r5, 0
-/* 802EE01C 002E9C7C 93 E3 00 08 */ stw r31, 8(r3)
-/* 802EE020 002E9C80 90 E3 00 04 */ stw r7, 4(r3)
-/* 802EE024 002E9C84 90 03 00 0C */ stw r0, 0xc(r3)
-/* 802EE028 002E9C88 38 60 10 06 */ li r3, 0x1006
-/* 802EE02C 002E9C8C 4B FF FD 3D */ bl func_802EDD68
-/* 802EE030 002E9C90 7C 7F 1B 78 */ mr r31, r3
-/* 802EE034 002E9C94 4B FF FD 29 */ bl func_802EDD5C
-/* 802EE038 002E9C98 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE03C 002E9C9C 7F C4 F3 78 */ mr r4, r30
-/* 802EE040 002E9CA0 4B FB 62 FD */ bl iosFree
-/* 802EE044 002E9CA4 7F E3 FB 78 */ mr r3, r31
-/* 802EE048 002E9CA8 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802EE04C 002E9CAC 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802EE050 002E9CB0 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802EE054 002E9CB4 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802EE058 002E9CB8 7C 08 03 A6 */ mtlr r0
-/* 802EE05C 002E9CBC 38 21 00 20 */ addi r1, r1, 0x20
-/* 802EE060 002E9CC0 4E 80 00 20 */ blr
-
-.global func_802EE064
-func_802EE064:
-/* 802EE064 002E9CC4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802EE068 002E9CC8 7C 08 02 A6 */ mflr r0
-/* 802EE06C 002E9CCC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802EE070 002E9CD0 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802EE074 002E9CD4 93 C1 00 08 */ stw r30, 8(r1)
-/* 802EE078 002E9CD8 7C 7E 1B 78 */ mr r30, r3
-/* 802EE07C 002E9CDC 4B FF FC E1 */ bl func_802EDD5C
-/* 802EE080 002E9CE0 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE084 002E9CE4 38 80 00 0C */ li r4, 0xc
-/* 802EE088 002E9CE8 38 A0 00 20 */ li r5, 0x20
-/* 802EE08C 002E9CEC 4B FB 62 AD */ bl iosAllocAligned
-/* 802EE090 002E9CF0 B3 C3 00 08 */ sth r30, 8(r3)
-/* 802EE094 002E9CF4 38 83 00 08 */ addi r4, r3, 8
-/* 802EE098 002E9CF8 7C 7E 1B 78 */ mr r30, r3
-/* 802EE09C 002E9CFC 38 00 00 02 */ li r0, 2
-/* 802EE0A0 002E9D00 90 83 00 00 */ stw r4, 0(r3)
-/* 802EE0A4 002E9D04 7F C6 F3 78 */ mr r6, r30
-/* 802EE0A8 002E9D08 38 80 00 01 */ li r4, 1
-/* 802EE0AC 002E9D0C 38 A0 00 00 */ li r5, 0
-/* 802EE0B0 002E9D10 90 03 00 04 */ stw r0, 4(r3)
-/* 802EE0B4 002E9D14 38 60 10 10 */ li r3, 0x1010
-/* 802EE0B8 002E9D18 4B FF FC B1 */ bl func_802EDD68
-/* 802EE0BC 002E9D1C 7C 7F 1B 78 */ mr r31, r3
-/* 802EE0C0 002E9D20 4B FF FC 9D */ bl func_802EDD5C
-/* 802EE0C4 002E9D24 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE0C8 002E9D28 7F C4 F3 78 */ mr r4, r30
-/* 802EE0CC 002E9D2C 4B FB 62 71 */ bl iosFree
-/* 802EE0D0 002E9D30 7F E3 FB 78 */ mr r3, r31
-/* 802EE0D4 002E9D34 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802EE0D8 002E9D38 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802EE0DC 002E9D3C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802EE0E0 002E9D40 7C 08 03 A6 */ mtlr r0
-/* 802EE0E4 002E9D44 38 21 00 10 */ addi r1, r1, 0x10
-/* 802EE0E8 002E9D48 4E 80 00 20 */ blr
-
-.global func_802EE0EC
-func_802EE0EC:
-/* 802EE0EC 002E9D4C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802EE0F0 002E9D50 7C 08 02 A6 */ mflr r0
-/* 802EE0F4 002E9D54 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802EE0F8 002E9D58 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802EE0FC 002E9D5C 7C 7F 1B 78 */ mr r31, r3
-/* 802EE100 002E9D60 93 C1 00 08 */ stw r30, 8(r1)
-/* 802EE104 002E9D64 4B FF FC 59 */ bl func_802EDD5C
-/* 802EE108 002E9D68 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE10C 002E9D6C 38 80 00 10 */ li r4, 0x10
-/* 802EE110 002E9D70 38 A0 00 20 */ li r5, 0x20
-/* 802EE114 002E9D74 4B FB 62 25 */ bl iosAllocAligned
-/* 802EE118 002E9D78 38 03 00 08 */ addi r0, r3, 8
-/* 802EE11C 002E9D7C 7C 7E 1B 78 */ mr r30, r3
-/* 802EE120 002E9D80 90 03 00 00 */ stw r0, 0(r3)
-/* 802EE124 002E9D84 7C 03 03 78 */ mr r3, r0
-/* 802EE128 002E9D88 7F E4 FB 78 */ mr r4, r31
-/* 802EE12C 002E9D8C 38 A0 00 06 */ li r5, 6
-/* 802EE130 002E9D90 4B D1 5E D1 */ bl memcpy
-/* 802EE134 002E9D94 38 00 00 06 */ li r0, 6
-/* 802EE138 002E9D98 7F C6 F3 78 */ mr r6, r30
-/* 802EE13C 002E9D9C 90 1E 00 04 */ stw r0, 4(r30)
-/* 802EE140 002E9DA0 38 60 10 07 */ li r3, 0x1007
-/* 802EE144 002E9DA4 38 80 00 01 */ li r4, 1
-/* 802EE148 002E9DA8 38 A0 00 00 */ li r5, 0
-/* 802EE14C 002E9DAC 4B FF FC 1D */ bl func_802EDD68
-/* 802EE150 002E9DB0 7C 7F 1B 78 */ mr r31, r3
-/* 802EE154 002E9DB4 4B FF FC 09 */ bl func_802EDD5C
-/* 802EE158 002E9DB8 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE15C 002E9DBC 7F C4 F3 78 */ mr r4, r30
-/* 802EE160 002E9DC0 4B FB 61 DD */ bl iosFree
-/* 802EE164 002E9DC4 7F E3 FB 78 */ mr r3, r31
-/* 802EE168 002E9DC8 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802EE16C 002E9DCC 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802EE170 002E9DD0 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802EE174 002E9DD4 7C 08 03 A6 */ mtlr r0
-/* 802EE178 002E9DD8 38 21 00 10 */ addi r1, r1, 0x10
-/* 802EE17C 002E9DDC 4E 80 00 20 */ blr
-
-.global func_802EE180
-func_802EE180:
-/* 802EE180 002E9DE0 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802EE184 002E9DE4 7C 08 02 A6 */ mflr r0
-/* 802EE188 002E9DE8 28 04 02 02 */ cmplwi r4, 0x202
-/* 802EE18C 002E9DEC 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802EE190 002E9DF0 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802EE194 002E9DF4 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802EE198 002E9DF8 7C BE 2B 78 */ mr r30, r5
-/* 802EE19C 002E9DFC 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802EE1A0 002E9E00 7C 9D 23 78 */ mr r29, r4
-/* 802EE1A4 002E9E04 93 81 00 10 */ stw r28, 0x10(r1)
-/* 802EE1A8 002E9E08 7C 7C 1B 78 */ mr r28, r3
-/* 802EE1AC 002E9E0C 40 81 00 10 */ ble lbl_802EE1BC
-/* 802EE1B0 002E9E10 3C 60 80 01 */ lis r3, 0x80008001@ha
-/* 802EE1B4 002E9E14 38 63 80 01 */ addi r3, r3, 0x80008001@l
-/* 802EE1B8 002E9E18 48 00 00 E0 */ b lbl_802EE298
-lbl_802EE1BC:
-/* 802EE1BC 002E9E1C 4B FF FB A1 */ bl func_802EDD5C
-/* 802EE1C0 002E9E20 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE1C4 002E9E24 38 80 00 20 */ li r4, 0x20
-/* 802EE1C8 002E9E28 38 A0 00 20 */ li r5, 0x20
-/* 802EE1CC 002E9E2C 4B FB 61 6D */ bl iosAllocAligned
-/* 802EE1D0 002E9E30 38 03 00 10 */ addi r0, r3, 0x10
-/* 802EE1D4 002E9E34 7C 7F 1B 78 */ mr r31, r3
-/* 802EE1D8 002E9E38 90 03 00 08 */ stw r0, 8(r3)
-/* 802EE1DC 002E9E3C 38 00 00 10 */ li r0, 0x10
-/* 802EE1E0 002E9E40 88 BE 00 00 */ lbz r5, 0(r30)
-/* 802EE1E4 002E9E44 7F E6 FB 78 */ mr r6, r31
-/* 802EE1E8 002E9E48 88 FE 00 01 */ lbz r7, 1(r30)
-/* 802EE1EC 002E9E4C 38 80 00 02 */ li r4, 2
-/* 802EE1F0 002E9E50 98 A3 00 10 */ stb r5, 0x10(r3)
-/* 802EE1F4 002E9E54 38 A0 00 00 */ li r5, 0
-/* 802EE1F8 002E9E58 89 1E 00 02 */ lbz r8, 2(r30)
-/* 802EE1FC 002E9E5C 98 E3 00 11 */ stb r7, 0x11(r3)
-/* 802EE200 002E9E60 88 FE 00 03 */ lbz r7, 3(r30)
-/* 802EE204 002E9E64 99 03 00 12 */ stb r8, 0x12(r3)
-/* 802EE208 002E9E68 89 1E 00 04 */ lbz r8, 4(r30)
-/* 802EE20C 002E9E6C 98 E3 00 13 */ stb r7, 0x13(r3)
-/* 802EE210 002E9E70 88 FE 00 05 */ lbz r7, 5(r30)
-/* 802EE214 002E9E74 99 03 00 14 */ stb r8, 0x14(r3)
-/* 802EE218 002E9E78 89 1E 00 06 */ lbz r8, 6(r30)
-/* 802EE21C 002E9E7C 98 E3 00 15 */ stb r7, 0x15(r3)
-/* 802EE220 002E9E80 88 FE 00 07 */ lbz r7, 7(r30)
-/* 802EE224 002E9E84 99 03 00 16 */ stb r8, 0x16(r3)
-/* 802EE228 002E9E88 89 1E 00 08 */ lbz r8, 8(r30)
-/* 802EE22C 002E9E8C 98 E3 00 17 */ stb r7, 0x17(r3)
-/* 802EE230 002E9E90 88 FE 00 09 */ lbz r7, 9(r30)
-/* 802EE234 002E9E94 99 03 00 18 */ stb r8, 0x18(r3)
-/* 802EE238 002E9E98 89 1E 00 0A */ lbz r8, 0xa(r30)
-/* 802EE23C 002E9E9C 98 E3 00 19 */ stb r7, 0x19(r3)
-/* 802EE240 002E9EA0 88 FE 00 0B */ lbz r7, 0xb(r30)
-/* 802EE244 002E9EA4 99 03 00 1A */ stb r8, 0x1a(r3)
-/* 802EE248 002E9EA8 89 1E 00 0C */ lbz r8, 0xc(r30)
-/* 802EE24C 002E9EAC 98 E3 00 1B */ stb r7, 0x1b(r3)
-/* 802EE250 002E9EB0 88 FE 00 0D */ lbz r7, 0xd(r30)
-/* 802EE254 002E9EB4 99 03 00 1C */ stb r8, 0x1c(r3)
-/* 802EE258 002E9EB8 89 1E 00 0E */ lbz r8, 0xe(r30)
-/* 802EE25C 002E9EBC 98 E3 00 1D */ stb r7, 0x1d(r3)
-/* 802EE260 002E9EC0 88 FE 00 0F */ lbz r7, 0xf(r30)
-/* 802EE264 002E9EC4 99 03 00 1E */ stb r8, 0x1e(r3)
-/* 802EE268 002E9EC8 98 E3 00 1F */ stb r7, 0x1f(r3)
-/* 802EE26C 002E9ECC 93 83 00 00 */ stw r28, 0(r3)
-/* 802EE270 002E9ED0 93 A3 00 04 */ stw r29, 4(r3)
-/* 802EE274 002E9ED4 90 03 00 0C */ stw r0, 0xc(r3)
-/* 802EE278 002E9ED8 38 60 10 08 */ li r3, 0x1008
-/* 802EE27C 002E9EDC 4B FF FA ED */ bl func_802EDD68
-/* 802EE280 002E9EE0 7C 7C 1B 78 */ mr r28, r3
-/* 802EE284 002E9EE4 4B FF FA D9 */ bl func_802EDD5C
-/* 802EE288 002E9EE8 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE28C 002E9EEC 7F E4 FB 78 */ mr r4, r31
-/* 802EE290 002E9EF0 4B FB 60 AD */ bl iosFree
-/* 802EE294 002E9EF4 7F 83 E3 78 */ mr r3, r28
-lbl_802EE298:
-/* 802EE298 002E9EF8 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802EE29C 002E9EFC 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802EE2A0 002E9F00 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802EE2A4 002E9F04 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802EE2A8 002E9F08 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 802EE2AC 002E9F0C 7C 08 03 A6 */ mtlr r0
-/* 802EE2B0 002E9F10 38 21 00 20 */ addi r1, r1, 0x20
-/* 802EE2B4 002E9F14 4E 80 00 20 */ blr
-
-.global func_802EE2B8
-func_802EE2B8:
-/* 802EE2B8 002E9F18 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802EE2BC 002E9F1C 7C 08 02 A6 */ mflr r0
-/* 802EE2C0 002E9F20 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802EE2C4 002E9F24 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802EE2C8 002E9F28 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802EE2CC 002E9F2C 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802EE2D0 002E9F30 7C 7D 1B 78 */ mr r29, r3
-/* 802EE2D4 002E9F34 4B FF FA 89 */ bl func_802EDD5C
-/* 802EE2D8 002E9F38 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE2DC 002E9F3C 38 80 00 98 */ li r4, 0x98
-/* 802EE2E0 002E9F40 38 A0 00 20 */ li r5, 0x20
-/* 802EE2E4 002E9F44 4B FB 60 55 */ bl iosAllocAligned
-/* 802EE2E8 002E9F48 38 83 00 08 */ addi r4, r3, 8
-/* 802EE2EC 002E9F4C 38 00 00 48 */ li r0, 0x48
-/* 802EE2F0 002E9F50 7C 7E 1B 78 */ mr r30, r3
-/* 802EE2F4 002E9F54 90 83 00 00 */ stw r4, 0(r3)
-/* 802EE2F8 002E9F58 38 C3 00 07 */ addi r6, r3, 7
-/* 802EE2FC 002E9F5C 38 BD FF FF */ addi r5, r29, -1
-/* 802EE300 002E9F60 7C 09 03 A6 */ mtctr r0
-lbl_802EE304:
-/* 802EE304 002E9F64 88 85 00 01 */ lbz r4, 1(r5)
-/* 802EE308 002E9F68 8C 05 00 02 */ lbzu r0, 2(r5)
-/* 802EE30C 002E9F6C 98 86 00 01 */ stb r4, 1(r6)
-/* 802EE310 002E9F70 9C 06 00 02 */ stbu r0, 2(r6)
-/* 802EE314 002E9F74 42 00 FF F0 */ bdnz lbl_802EE304
-/* 802EE318 002E9F78 38 00 00 90 */ li r0, 0x90
-/* 802EE31C 002E9F7C 7F C6 F3 78 */ mr r6, r30
-/* 802EE320 002E9F80 90 03 00 04 */ stw r0, 4(r3)
-/* 802EE324 002E9F84 38 60 10 0E */ li r3, 0x100e
-/* 802EE328 002E9F88 38 80 00 00 */ li r4, 0
-/* 802EE32C 002E9F8C 38 A0 00 01 */ li r5, 1
-/* 802EE330 002E9F90 4B FF FA 39 */ bl func_802EDD68
-/* 802EE334 002E9F94 38 00 00 48 */ li r0, 0x48
-/* 802EE338 002E9F98 7C 7F 1B 78 */ mr r31, r3
-/* 802EE33C 002E9F9C 38 BD FF FF */ addi r5, r29, -1
-/* 802EE340 002E9FA0 38 9E 00 07 */ addi r4, r30, 7
-/* 802EE344 002E9FA4 7C 09 03 A6 */ mtctr r0
-lbl_802EE348:
-/* 802EE348 002E9FA8 88 64 00 01 */ lbz r3, 1(r4)
-/* 802EE34C 002E9FAC 8C 04 00 02 */ lbzu r0, 2(r4)
-/* 802EE350 002E9FB0 98 65 00 01 */ stb r3, 1(r5)
-/* 802EE354 002E9FB4 9C 05 00 02 */ stbu r0, 2(r5)
-/* 802EE358 002E9FB8 42 00 FF F0 */ bdnz lbl_802EE348
-/* 802EE35C 002E9FBC 4B FF FA 01 */ bl func_802EDD5C
-/* 802EE360 002E9FC0 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE364 002E9FC4 7F C4 F3 78 */ mr r4, r30
-/* 802EE368 002E9FC8 4B FB 5F D5 */ bl iosFree
-/* 802EE36C 002E9FCC 7F E3 FB 78 */ mr r3, r31
-/* 802EE370 002E9FD0 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802EE374 002E9FD4 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802EE378 002E9FD8 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802EE37C 002E9FDC 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802EE380 002E9FE0 7C 08 03 A6 */ mtlr r0
-/* 802EE384 002E9FE4 38 21 00 20 */ addi r1, r1, 0x20
-/* 802EE388 002E9FE8 4E 80 00 20 */ blr
-
-.global func_802EE38C
-func_802EE38C:
-/* 802EE38C 002E9FEC 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802EE390 002E9FF0 7C 08 02 A6 */ mflr r0
-/* 802EE394 002E9FF4 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802EE398 002E9FF8 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802EE39C 002E9FFC 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802EE3A0 002EA000 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802EE3A4 002EA004 7C 7D 1B 78 */ mr r29, r3
-/* 802EE3A8 002EA008 4B FF F9 B5 */ bl func_802EDD5C
-/* 802EE3AC 002EA00C 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE3B0 002EA010 38 80 00 9C */ li r4, 0x9c
-/* 802EE3B4 002EA014 38 A0 00 20 */ li r5, 0x20
-/* 802EE3B8 002EA018 4B FB 5F 81 */ bl iosAllocAligned
-/* 802EE3BC 002EA01C 38 83 00 08 */ addi r4, r3, 8
-/* 802EE3C0 002EA020 38 00 00 4A */ li r0, 0x4a
-/* 802EE3C4 002EA024 7C 7E 1B 78 */ mr r30, r3
-/* 802EE3C8 002EA028 90 83 00 00 */ stw r4, 0(r3)
-/* 802EE3CC 002EA02C 38 C3 00 07 */ addi r6, r3, 7
-/* 802EE3D0 002EA030 38 BD FF FF */ addi r5, r29, -1
-/* 802EE3D4 002EA034 7C 09 03 A6 */ mtctr r0
-lbl_802EE3D8:
-/* 802EE3D8 002EA038 88 85 00 01 */ lbz r4, 1(r5)
-/* 802EE3DC 002EA03C 8C 05 00 02 */ lbzu r0, 2(r5)
-/* 802EE3E0 002EA040 98 86 00 01 */ stb r4, 1(r6)
-/* 802EE3E4 002EA044 9C 06 00 02 */ stbu r0, 2(r6)
-/* 802EE3E8 002EA048 42 00 FF F0 */ bdnz lbl_802EE3D8
-/* 802EE3EC 002EA04C 38 00 00 94 */ li r0, 0x94
-/* 802EE3F0 002EA050 3C 80 00 01 */ lis r4, 0x00008001@ha
-/* 802EE3F4 002EA054 90 03 00 04 */ stw r0, 4(r3)
-/* 802EE3F8 002EA058 38 64 80 01 */ addi r3, r4, 0x00008001@l
-/* 802EE3FC 002EA05C 7F C6 F3 78 */ mr r6, r30
-/* 802EE400 002EA060 38 80 00 00 */ li r4, 0
-/* 802EE404 002EA064 38 A0 00 01 */ li r5, 1
-/* 802EE408 002EA068 4B FF F9 61 */ bl func_802EDD68
-/* 802EE40C 002EA06C 38 00 00 4A */ li r0, 0x4a
-/* 802EE410 002EA070 7C 7F 1B 78 */ mr r31, r3
-/* 802EE414 002EA074 38 BD FF FF */ addi r5, r29, -1
-/* 802EE418 002EA078 38 9E 00 07 */ addi r4, r30, 7
-/* 802EE41C 002EA07C 7C 09 03 A6 */ mtctr r0
-lbl_802EE420:
-/* 802EE420 002EA080 88 64 00 01 */ lbz r3, 1(r4)
-/* 802EE424 002EA084 8C 04 00 02 */ lbzu r0, 2(r4)
-/* 802EE428 002EA088 98 65 00 01 */ stb r3, 1(r5)
-/* 802EE42C 002EA08C 9C 05 00 02 */ stbu r0, 2(r5)
-/* 802EE430 002EA090 42 00 FF F0 */ bdnz lbl_802EE420
-/* 802EE434 002EA094 4B FF F9 29 */ bl func_802EDD5C
-/* 802EE438 002EA098 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE43C 002EA09C 7F C4 F3 78 */ mr r4, r30
-/* 802EE440 002EA0A0 4B FB 5E FD */ bl iosFree
-/* 802EE444 002EA0A4 7F E3 FB 78 */ mr r3, r31
-/* 802EE448 002EA0A8 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802EE44C 002EA0AC 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802EE450 002EA0B0 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802EE454 002EA0B4 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802EE458 002EA0B8 7C 08 03 A6 */ mtlr r0
-/* 802EE45C 002EA0BC 38 21 00 20 */ addi r1, r1, 0x20
-/* 802EE460 002EA0C0 4E 80 00 20 */ blr
-
-.global func_802EE464
-func_802EE464:
-/* 802EE464 002EA0C4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802EE468 002EA0C8 7C 08 02 A6 */ mflr r0
-/* 802EE46C 002EA0CC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802EE470 002EA0D0 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802EE474 002EA0D4 7C 9F 23 78 */ mr r31, r4
-/* 802EE478 002EA0D8 93 C1 00 08 */ stw r30, 8(r1)
-/* 802EE47C 002EA0DC 7C 7E 1B 78 */ mr r30, r3
-/* 802EE480 002EA0E0 4B FF F8 DD */ bl func_802EDD5C
-/* 802EE484 002EA0E4 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE488 002EA0E8 38 80 00 08 */ li r4, 8
-/* 802EE48C 002EA0EC 38 A0 00 20 */ li r5, 0x20
-/* 802EE490 002EA0F0 4B FB 5E A9 */ bl iosAllocAligned
-/* 802EE494 002EA0F4 93 C3 00 00 */ stw r30, 0(r3)
-/* 802EE498 002EA0F8 7C 7E 1B 78 */ mr r30, r3
-/* 802EE49C 002EA0FC 3C A0 00 01 */ lis r5, 0x00008000@ha
-/* 802EE4A0 002EA100 38 80 00 00 */ li r4, 0
-/* 802EE4A4 002EA104 93 E3 00 04 */ stw r31, 4(r3)
-/* 802EE4A8 002EA108 38 65 80 00 */ addi r3, r5, 0x00008000@l
-/* 802EE4AC 002EA10C 7F C6 F3 78 */ mr r6, r30
-/* 802EE4B0 002EA110 38 A0 00 01 */ li r5, 1
-/* 802EE4B4 002EA114 4B FF F8 B5 */ bl func_802EDD68
-/* 802EE4B8 002EA118 7C 7F 1B 78 */ mr r31, r3
-/* 802EE4BC 002EA11C 4B FF F8 A1 */ bl func_802EDD5C
-/* 802EE4C0 002EA120 80 63 00 08 */ lwz r3, 8(r3)
-/* 802EE4C4 002EA124 7F C4 F3 78 */ mr r4, r30
-/* 802EE4C8 002EA128 4B FB 5E 75 */ bl iosFree
-/* 802EE4CC 002EA12C 7F E3 FB 78 */ mr r3, r31
-/* 802EE4D0 002EA130 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802EE4D4 002EA134 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802EE4D8 002EA138 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802EE4DC 002EA13C 7C 08 03 A6 */ mtlr r0
-/* 802EE4E0 002EA140 38 21 00 10 */ addi r1, r1, 0x10
-/* 802EE4E4 002EA144 4E 80 00 20 */ blr
-
-.global func_802EE4E8
-func_802EE4E8:
-/* 802EE4E8 002EA148 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802EE4EC 002EA14C 7C 08 02 A6 */ mflr r0
-/* 802EE4F0 002EA150 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802EE4F4 002EA154 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802EE4F8 002EA158 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802EE4FC 002EA15C 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802EE500 002EA160 7C 7D 1B 78 */ mr r29, r3
-/* 802EE504 002EA164 4B F8 02 59 */ bl OSDisableInterrupts
-/* 802EE508 002EA168 7C 7E 1B 78 */ mr r30, r3
-/* 802EE50C 002EA16C 4B FF F8 51 */ bl func_802EDD5C
-/* 802EE510 002EA170 80 03 00 00 */ lwz r0, 0(r3)
-/* 802EE514 002EA174 2C 00 00 00 */ cmpwi r0, 0
-/* 802EE518 002EA178 41 80 00 10 */ blt lbl_802EE528
-/* 802EE51C 002EA17C 3C 60 80 01 */ lis r3, 0x80008006@ha
-/* 802EE520 002EA180 3B E3 80 06 */ addi r31, r3, 0x80008006@l
-/* 802EE524 002EA184 48 00 00 80 */ b lbl_802EE5A4
-lbl_802EE528:
-/* 802EE528 002EA188 4B FF F8 35 */ bl func_802EDD5C
-/* 802EE52C 002EA18C 80 03 00 04 */ lwz r0, 4(r3)
-/* 802EE530 002EA190 2C 00 00 00 */ cmpwi r0, 0
-/* 802EE534 002EA194 40 82 00 2C */ bne lbl_802EE560
-/* 802EE538 002EA198 4B FF F8 25 */ bl func_802EDD5C
-/* 802EE53C 002EA19C 38 80 00 00 */ li r4, 0
-/* 802EE540 002EA1A0 38 A0 00 0C */ li r5, 0xc
-/* 802EE544 002EA1A4 4B D1 5B C1 */ bl memset
-/* 802EE548 002EA1A8 3B E0 00 01 */ li r31, 1
-/* 802EE54C 002EA1AC 4B FF F8 11 */ bl func_802EDD5C
-/* 802EE550 002EA1B0 93 E3 00 04 */ stw r31, 4(r3)
-/* 802EE554 002EA1B4 3B E0 FF FF */ li r31, -1
-/* 802EE558 002EA1B8 4B FF F8 05 */ bl func_802EDD5C
-/* 802EE55C 002EA1BC 93 E3 00 08 */ stw r31, 8(r3)
-lbl_802EE560:
-/* 802EE560 002EA1C0 3C 60 80 44 */ lis r3, lbl_80445BC0@ha
-/* 802EE564 002EA1C4 67 A4 00 01 */ oris r4, r29, 1
-/* 802EE568 002EA1C8 38 63 5B C0 */ addi r3, r3, lbl_80445BC0@l
-/* 802EE56C 002EA1CC 4B FB 4B ED */ bl IOS_Open
-/* 802EE570 002EA1D0 7C 7F 1B 78 */ mr r31, r3
-/* 802EE574 002EA1D4 4B FF F7 E9 */ bl func_802EDD5C
-/* 802EE578 002EA1D8 93 E3 00 00 */ stw r31, 0(r3)
-/* 802EE57C 002EA1DC 4B FF F7 E1 */ bl func_802EDD5C
-/* 802EE580 002EA1E0 80 03 00 00 */ lwz r0, 0(r3)
-/* 802EE584 002EA1E4 2C 00 00 00 */ cmpwi r0, 0
-/* 802EE588 002EA1E8 40 80 00 10 */ bge lbl_802EE598
-/* 802EE58C 002EA1EC 4B FF F7 D1 */ bl func_802EDD5C
-/* 802EE590 002EA1F0 80 63 00 00 */ lwz r3, 0(r3)
-/* 802EE594 002EA1F4 48 00 00 0C */ b lbl_802EE5A0
-lbl_802EE598:
-/* 802EE598 002EA1F8 38 60 10 00 */ li r3, 0x1000
-/* 802EE59C 002EA1FC 4B FF F8 11 */ bl func_802EDDAC
-lbl_802EE5A0:
-/* 802EE5A0 002EA200 7C 7F 1B 78 */ mr r31, r3
-lbl_802EE5A4:
-/* 802EE5A4 002EA204 7F C3 F3 78 */ mr r3, r30
-/* 802EE5A8 002EA208 4B F8 01 DD */ bl OSRestoreInterrupts
-/* 802EE5AC 002EA20C 7F E3 FB 78 */ mr r3, r31
-/* 802EE5B0 002EA210 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802EE5B4 002EA214 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802EE5B8 002EA218 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802EE5BC 002EA21C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802EE5C0 002EA220 7C 08 03 A6 */ mtlr r0
-/* 802EE5C4 002EA224 38 21 00 20 */ addi r1, r1, 0x20
-/* 802EE5C8 002EA228 4E 80 00 20 */ blr
-
-.global func_802EE5CC
-func_802EE5CC:
-/* 802EE5CC 002EA22C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802EE5D0 002EA230 7C 08 02 A6 */ mflr r0
-/* 802EE5D4 002EA234 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802EE5D8 002EA238 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802EE5DC 002EA23C 93 C1 00 08 */ stw r30, 8(r1)
-/* 802EE5E0 002EA240 4B F8 01 7D */ bl OSDisableInterrupts
-/* 802EE5E4 002EA244 7C 7E 1B 78 */ mr r30, r3
-/* 802EE5E8 002EA248 4B FF F7 75 */ bl func_802EDD5C
-/* 802EE5EC 002EA24C 80 63 00 00 */ lwz r3, 0(r3)
-/* 802EE5F0 002EA250 4B FB 4D 49 */ bl IOS_Close
-/* 802EE5F4 002EA254 2C 03 00 00 */ cmpwi r3, 0
-/* 802EE5F8 002EA258 7C 7F 1B 78 */ mr r31, r3
-/* 802EE5FC 002EA25C 41 80 00 18 */ blt lbl_802EE614
-/* 802EE600 002EA260 3B E0 FF FF */ li r31, -1
-/* 802EE604 002EA264 4B FF F7 59 */ bl func_802EDD5C
-/* 802EE608 002EA268 93 E3 00 00 */ stw r31, 0(r3)
-/* 802EE60C 002EA26C 4B FF F8 3D */ bl func_802EDE48
-/* 802EE610 002EA270 7C 7F 1B 78 */ mr r31, r3
-lbl_802EE614:
-/* 802EE614 002EA274 7F C3 F3 78 */ mr r3, r30
-/* 802EE618 002EA278 4B F8 01 6D */ bl OSRestoreInterrupts
-/* 802EE61C 002EA27C 7F E3 FB 78 */ mr r3, r31
-/* 802EE620 002EA280 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802EE624 002EA284 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802EE628 002EA288 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802EE62C 002EA28C 7C 08 03 A6 */ mtlr r0
-/* 802EE630 002EA290 38 21 00 10 */ addi r1, r1, 0x10
-/* 802EE634 002EA294 4E 80 00 20 */ blr
-
.global func_802EE638
func_802EE638:
/* 802EE638 002EA298 38 00 01 00 */ li r0, 0x100
@@ -3392,7 +2759,7 @@ lbl_802F0C64:
/* 802F0C9C 002EC8FC 6C 1D 80 00 */ xoris r29, r0, 0x8000
lbl_802F0CA0:
/* 802F0CA0 002EC900 38 60 00 01 */ li r3, 1
-/* 802F0CA4 002EC904 4B FF D8 45 */ bl func_802EE4E8
+/* 802F0CA4 002EC904 4B FF D8 45 */ bl WD_Startup
/* 802F0CA8 002EC908 2C 03 FF FA */ cmpwi r3, -6
/* 802F0CAC 002EC90C 40 82 00 48 */ bne lbl_802F0CF4
/* 802F0CB0 002EC910 80 1F 00 F8 */ lwz r0, 0xf8(r31)
@@ -3419,7 +2786,7 @@ lbl_802F0CF4:
lbl_802F0D00:
/* 802F0D00 002EC960 3F C0 80 58 */ lis r30, lbl_805790C0@ha
/* 802F0D04 002EC964 38 7E 90 C0 */ addi r3, r30, lbl_805790C0@l
-/* 802F0D08 002EC968 4B FF D5 B1 */ bl func_802EE2B8
+/* 802F0D08 002EC968 4B FF D5 B1 */ bl WD_GetInfo
/* 802F0D0C 002EC96C 2C 03 00 00 */ cmpwi r3, 0
/* 802F0D10 002EC970 40 80 00 08 */ bge lbl_802F0D18
/* 802F0D14 002EC974 48 00 00 28 */ b lbl_802F0D3C
@@ -3438,7 +2805,7 @@ lbl_802F0D3C:
/* 802F0D40 002EC9A0 2C 03 00 00 */ cmpwi r3, 0
/* 802F0D44 002EC9A4 7C 7A 1B 78 */ mr r26, r3
/* 802F0D48 002EC9A8 40 80 00 10 */ bge lbl_802F0D58
-/* 802F0D4C 002EC9AC 4B FF D8 81 */ bl func_802EE5CC
+/* 802F0D4C 002EC9AC 4B FF D8 81 */ bl WD_Cleanup
/* 802F0D50 002EC9B0 7F 43 D3 78 */ mr r3, r26
/* 802F0D54 002EC9B4 48 00 00 08 */ b lbl_802F0D5C
lbl_802F0D58:
@@ -3484,7 +2851,7 @@ func_802F0D74:
/* 802F0DE4 002ECA44 9B 5B 00 B1 */ stb r26, 0xb1(r27)
/* 802F0DE8 002ECA48 80 07 00 18 */ lwz r0, 0x18(r7)
/* 802F0DEC 002ECA4C 98 1B 00 B4 */ stb r0, 0xb4(r27)
-/* 802F0DF0 002ECA50 4B FF D0 FD */ bl func_802EDEEC
+/* 802F0DF0 002ECA50 4B FF D0 FD */ bl WD_SetConfig
/* 802F0DF4 002ECA54 2C 03 00 00 */ cmpwi r3, 0
/* 802F0DF8 002ECA58 38 60 00 00 */ li r3, 0
/* 802F0DFC 002ECA5C 48 00 05 0D */ bl func_802F1308
@@ -3540,11 +2907,11 @@ lbl_802F0E78:
/* 802F0EB0 002ECB10 7C 63 02 14 */ add r3, r3, r0
/* 802F0EB4 002ECB14 4B F8 18 51 */ bl OSSleepTicks
lbl_802F0EB8:
-/* 802F0EB8 002ECB18 4B FF D0 21 */ bl func_802EDED8
+/* 802F0EB8 002ECB18 4B FF D0 21 */ bl WD_GetLinkState
/* 802F0EBC 002ECB1C 2C 03 00 01 */ cmpwi r3, 1
/* 802F0EC0 002ECB20 40 82 00 A4 */ bne lbl_802F0F64
/* 802F0EC4 002ECB24 38 60 00 00 */ li r3, 0
-/* 802F0EC8 002ECB28 4B FF CF 89 */ bl func_802EDE50
+/* 802F0EC8 002ECB28 4B FF CF 89 */ bl WD_SetLinkState
/* 802F0ECC 002ECB2C 2C 03 00 00 */ cmpwi r3, 0
/* 802F0ED0 002ECB30 40 80 00 08 */ bge lbl_802F0ED8
/* 802F0ED4 002ECB34 48 00 00 90 */ b lbl_802F0F64
@@ -3583,11 +2950,11 @@ lbl_802F0F18:
/* 802F0F50 002ECBB0 41 82 00 08 */ beq lbl_802F0F58
/* 802F0F54 002ECBB4 48 00 00 10 */ b lbl_802F0F64
lbl_802F0F58:
-/* 802F0F58 002ECBB8 4B FF CF 81 */ bl func_802EDED8
+/* 802F0F58 002ECBB8 4B FF CF 81 */ bl WD_GetLinkState
/* 802F0F5C 002ECBBC 2C 03 00 01 */ cmpwi r3, 1
/* 802F0F60 002ECBC0 41 82 FF B8 */ beq lbl_802F0F18
lbl_802F0F64:
-/* 802F0F64 002ECBC4 4B FF D6 69 */ bl func_802EE5CC
+/* 802F0F64 002ECBC4 4B FF D6 69 */ bl WD_Cleanup
/* 802F0F68 002ECBC8 39 61 00 20 */ addi r11, r1, 0x20
/* 802F0F6C 002ECBCC 4B ED 62 05 */ bl _restgpr_26
/* 802F0F70 002ECBD0 80 01 00 24 */ lwz r0, 0x24(r1)
@@ -3601,7 +2968,7 @@ func_802F0F80:
/* 802F0F84 002ECBE4 7C 08 02 A6 */ mflr r0
/* 802F0F88 002ECBE8 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 802F0F8C 002ECBEC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F0F90 002ECBF0 4B FF D1 F1 */ bl func_802EE180
+/* 802F0F90 002ECBF0 4B FF D1 F1 */ bl WD_MpSendFrame
/* 802F0F94 002ECBF4 7C 60 FE 70 */ srawi r0, r3, 0x1f
/* 802F0F98 002ECBF8 7C 63 00 38 */ and r3, r3, r0
/* 802F0F9C 002ECBFC 80 01 00 14 */ lwz r0, 0x14(r1)
@@ -3615,7 +2982,7 @@ func_802F0FAC:
/* 802F0FB0 002ECC10 7C 08 02 A6 */ mflr r0
/* 802F0FB4 002ECC14 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 802F0FB8 002ECC18 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F0FBC 002ECC1C 4B FF D4 A9 */ bl func_802EE464
+/* 802F0FBC 002ECC1C 4B FF D4 A9 */ bl WD_ReceiveFrame
/* 802F0FC0 002ECC20 2C 03 00 00 */ cmpwi r3, 0
/* 802F0FC4 002ECC24 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802F0FC8 002ECC28 7C 08 03 A6 */ mtlr r0
@@ -3632,7 +2999,7 @@ func_802F0FD4:
/* 802F0FE8 002ECC48 48 00 2F 31 */ bl func_802F3F18
/* 802F0FEC 002ECC4C 7F E4 FB 78 */ mr r4, r31
/* 802F0FF0 002ECC50 54 63 04 3E */ clrlwi r3, r3, 0x10
-/* 802F0FF4 002ECC54 4B FF CF D1 */ bl func_802EDFC4
+/* 802F0FF4 002ECC54 4B FF CF D1 */ bl WD_ChangeBeacon
/* 802F0FF8 002ECC58 7C 60 FE 70 */ srawi r0, r3, 0x1f
/* 802F0FFC 002ECC5C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802F1000 002ECC60 7C 63 00 38 */ and r3, r3, r0
@@ -3648,7 +3015,7 @@ func_802F1014:
/* 802F101C 002ECC7C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802F1020 002ECC80 48 00 2E F9 */ bl func_802F3F18
/* 802F1024 002ECC84 54 63 04 3E */ clrlwi r3, r3, 0x10
-/* 802F1028 002ECC88 4B FF D0 3D */ bl func_802EE064
+/* 802F1028 002ECC88 4B FF D0 3D */ bl WD_ChangeVTSF
/* 802F102C 002ECC8C 7C 60 FE 70 */ srawi r0, r3, 0x1f
/* 802F1030 002ECC90 7C 63 00 38 */ and r3, r3, r0
/* 802F1034 002ECC94 80 01 00 14 */ lwz r0, 0x14(r1)
@@ -3661,7 +3028,7 @@ func_802F1044:
/* 802F1044 002ECCA4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802F1048 002ECCA8 7C 08 02 A6 */ mflr r0
/* 802F104C 002ECCAC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F1050 002ECCB0 4B FF D0 9D */ bl func_802EE0EC
+/* 802F1050 002ECCB0 4B FF D0 9D */ bl WD_DisAssoc
/* 802F1054 002ECCB4 3C 03 80 00 */ addis r0, r3, 0x8000
/* 802F1058 002ECCB8 28 00 80 01 */ cmplwi r0, 0x8001
/* 802F105C 002ECCBC 38 00 FF 01 */ li r0, -255
@@ -3719,7 +3086,7 @@ lbl_802F10C4:
/* 802F1114 002ECD74 98 1A 00 B1 */ stb r0, 0xb1(r26)
/* 802F1118 002ECD78 80 07 00 18 */ lwz r0, 0x18(r7)
/* 802F111C 002ECD7C 98 1A 00 B4 */ stb r0, 0xb4(r26)
-/* 802F1120 002ECD80 4B FF CD CD */ bl func_802EDEEC
+/* 802F1120 002ECD80 4B FF CD CD */ bl WD_SetConfig
/* 802F1124 002ECD84 2C 03 00 00 */ cmpwi r3, 0
/* 802F1128 002ECD88 40 80 00 08 */ bge lbl_802F1130
/* 802F112C 002ECD8C 48 00 00 08 */ b lbl_802F1134
@@ -3736,7 +3103,7 @@ lbl_802F1140:
/* 802F114C 002ECDAC 48 00 00 D0 */ b lbl_802F121C
lbl_802F1150:
/* 802F1150 002ECDB0 38 60 00 01 */ li r3, 1
-/* 802F1154 002ECDB4 4B FF CC FD */ bl func_802EDE50
+/* 802F1154 002ECDB4 4B FF CC FD */ bl WD_SetLinkState
/* 802F1158 002ECDB8 2C 03 00 00 */ cmpwi r3, 0
/* 802F115C 002ECDBC 40 80 00 08 */ bge lbl_802F1164
/* 802F1160 002ECDC0 48 00 00 BC */ b lbl_802F121C
@@ -3776,7 +3143,7 @@ lbl_802F11A4:
/* 802F11E0 002ECE40 38 60 FF 15 */ li r3, -235
/* 802F11E4 002ECE44 48 00 00 38 */ b lbl_802F121C
lbl_802F11E8:
-/* 802F11E8 002ECE48 4B FF CC F1 */ bl func_802EDED8
+/* 802F11E8 002ECE48 4B FF CC F1 */ bl WD_GetLinkState
/* 802F11EC 002ECE4C 2C 03 00 00 */ cmpwi r3, 0
/* 802F11F0 002ECE50 41 82 FF B4 */ beq lbl_802F11A4
/* 802F11F4 002ECE54 3C 60 80 00 */ lis r3, 0x800031A0@ha
@@ -6154,7 +5521,7 @@ lbl_802F3268:
/* 802F3288 002EEEE8 3B BE 91 60 */ addi r29, r30, lbl_80579160@l
lbl_802F328C:
/* 802F328C 002EEEEC 38 7E 91 60 */ addi r3, r30, -28320
-/* 802F3290 002EEEF0 4B FF B0 FD */ bl func_802EE38C
+/* 802F3290 002EEEF0 4B FF B0 FD */ bl WD_ReceiveNotification
/* 802F3294 002EEEF4 3C 03 80 00 */ addis r0, r3, 0x8000
/* 802F3298 002EEEF8 28 00 80 00 */ cmplwi r0, 0x8000
/* 802F329C 002EEEFC 40 82 00 08 */ bne lbl_802F32A4
diff --git a/obj_files.mk b/obj_files.mk
index 9eca465..b731e0e 100644
--- a/obj_files.mk
+++ b/obj_files.mk
@@ -309,6 +309,10 @@ TEXT_O_FILES := \
$(BUILD_DIR)/asm/SDK/WENC/wenc.o \
$(BUILD_DIR)/asm/SDK/ARC/arc.o \
$(BUILD_DIR)/asm/SDK/NCD/ncdsystem.o \
+ $(BUILD_DIR)/asm/SDK/WD/wd_misc.o \
+ $(BUILD_DIR)/asm/SDK/WD/wd_request.o \
+ $(BUILD_DIR)/asm/SDK/WD/wd_receive.o \
+ $(BUILD_DIR)/asm/SDK/WD/wd_init.o \
$(BUILD_DIR)/asm/text_9.o \
$(BUILD_DIR)/asm/text_10.o \
$(BUILD_DIR)/src/GameSpy/darray.o \