summaryrefslogtreecommitdiff
path: root/asm/SDK
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-10-04 22:16:43 -0400
committerMax <mparisi@stevens.edu>2020-10-04 22:16:43 -0400
commitc9960fb8ef3351a632a423168a0c42b119b9445e (patch)
tree6c68fe2ee949de1f461e4cbefddfc9179efd3cf2 /asm/SDK
parent0491b0c110678c5b6b712f859f6d70feed98b159 (diff)
split WPADMem.s, WPADEncrypt.s, and debug_msg.s
Diffstat (limited to 'asm/SDK')
-rw-r--r--asm/SDK/WPAD/WPAD.s36
-rw-r--r--asm/SDK/WPAD/WPADEncrypt.s1084
-rw-r--r--asm/SDK/WPAD/WPADHIDParser.s78
-rw-r--r--asm/SDK/WPAD/WPADMem.s791
-rw-r--r--asm/SDK/WPAD/debug_msg.s27
5 files changed, 1959 insertions, 57 deletions
diff --git a/asm/SDK/WPAD/WPAD.s b/asm/SDK/WPAD/WPAD.s
index 954e33f..354d412 100644
--- a/asm/SDK/WPAD/WPAD.s
+++ b/asm/SDK/WPAD/WPAD.s
@@ -9,7 +9,7 @@ noAlloc:
/* 802A5B90 002A17F0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A5B94 002A17F4 38 63 C0 04 */ addi r3, r3, lbl_8043C004@l
/* 802A5B98 002A17F8 4C C6 31 82 */ crclr 6
-/* 802A5B9C 002A17FC 48 00 DC C5 */ bl func_802B3860
+/* 802A5B9C 002A17FC 48 00 DC C5 */ bl DEBUGPrint
/* 802A5BA0 002A1800 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A5BA4 002A1804 38 60 00 00 */ li r3, 0
/* 802A5BA8 002A1808 7C 08 03 A6 */ mtlr r0
@@ -23,7 +23,7 @@ noFree:
/* 802A5BC0 002A1820 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A5BC4 002A1824 38 63 C0 20 */ addi r3, r3, lbl_8043C020@l
/* 802A5BC8 002A1828 4C C6 31 82 */ crclr 6
-/* 802A5BCC 002A182C 48 00 DC 95 */ bl func_802B3860
+/* 802A5BCC 002A182C 48 00 DC 95 */ bl DEBUGPrint
/* 802A5BD0 002A1830 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A5BD4 002A1834 38 60 00 00 */ li r3, 0
/* 802A5BD8 002A1838 7C 08 03 A6 */ mtlr r0
@@ -61,7 +61,7 @@ lbl_802A5C48:
/* 802A5C48 002A18A8 3C 60 80 44 */ lis r3, lbl_8043C03C@ha
/* 802A5C4C 002A18AC 38 63 C0 3C */ addi r3, r3, lbl_8043C03C@l
/* 802A5C50 002A18B0 4C C6 31 82 */ crclr 6
-/* 802A5C54 002A18B4 48 00 DC 0D */ bl func_802B3860
+/* 802A5C54 002A18B4 48 00 DC 0D */ bl DEBUGPrint
/* 802A5C58 002A18B8 3C 60 80 2A */ lis r3, noAlloc@ha
/* 802A5C5C 002A18BC 3C 80 80 2A */ lis r4, noFree@ha
/* 802A5C60 002A18C0 38 63 5B 84 */ addi r3, r3, noAlloc@l
@@ -1739,7 +1739,7 @@ lbl_802A7400:
/* 802A7438 002A3098 3C 60 80 44 */ lis r3, lbl_8043C080@ha
/* 802A743C 002A309C 38 63 C0 80 */ addi r3, r3, lbl_8043C080@l
/* 802A7440 002A30A0 4C C6 31 82 */ crclr 6
-/* 802A7444 002A30A4 48 00 C4 1D */ bl func_802B3860
+/* 802A7444 002A30A4 48 00 C4 1D */ bl DEBUGPrint
/* 802A7448 002A30A8 88 6D AE 4C */ lbz r3, lbl_8064010C-_SDA_BASE_(r13)
/* 802A744C 002A30AC 88 16 31 A2 */ lbz r0, 0x31a2(r22)
/* 802A7450 002A30B0 7C 63 07 74 */ extsb r3, r3
@@ -1753,7 +1753,7 @@ lbl_802A7400:
/* 802A7470 002A30D0 88 96 31 A2 */ lbz r4, 0x31a2(r22)
/* 802A7474 002A30D4 38 63 C0 A8 */ addi r3, r3, lbl_8043C0A8@l
/* 802A7478 002A30D8 4C C6 31 82 */ crclr 6
-/* 802A747C 002A30DC 48 00 C3 E5 */ bl func_802B3860
+/* 802A747C 002A30DC 48 00 C3 E5 */ bl DEBUGPrint
/* 802A7480 002A30E0 88 0D AE 4C */ lbz r0, lbl_8064010C-_SDA_BASE_(r13)
/* 802A7484 002A30E4 7C 03 07 74 */ extsb r3, r0
/* 802A7488 002A30E8 48 00 F8 AD */ bl func_802B6D34
@@ -2058,7 +2058,7 @@ WPADiInitSub:
/* 802A78F8 002A3558 98 04 00 0E */ stb r0, 0xe(r4)
/* 802A78FC 002A355C 98 04 00 0F */ stb r0, 0xf(r4)
/* 802A7900 002A3560 4C C6 31 82 */ crclr 6
-/* 802A7904 002A3564 48 00 BF 5D */ bl func_802B3860
+/* 802A7904 002A3564 48 00 BF 5D */ bl DEBUGPrint
/* 802A7908 002A3568 3B BF 10 60 */ addi r29, r31, 0x1060
/* 802A790C 002A356C 3B 9F 00 30 */ addi r28, r31, 0x30
/* 802A7910 002A3570 3B 00 00 00 */ li r24, 0
@@ -2407,7 +2407,7 @@ lbl_802A7D8C:
/* 802A7DB8 002A3A18 38 8D 89 AC */ addi r4, r13, lbl_8063DC6C-_SDA_BASE_
lbl_802A7DBC:
/* 802A7DBC 002A3A1C 4C C6 31 82 */ crclr 6
-/* 802A7DC0 002A3A20 48 00 BA A1 */ bl func_802B3860
+/* 802A7DC0 002A3A20 48 00 BA A1 */ bl DEBUGPrint
/* 802A7DC4 002A3A24 3F C0 80 2A */ lis r30, abortConnCallback@ha
/* 802A7DC8 002A3A28 38 7D 01 60 */ addi r3, r29, 0x160
/* 802A7DCC 002A3A2C 38 BE 7C 48 */ addi r5, r30, abortConnCallback@l
@@ -3040,7 +3040,7 @@ WPADiConnCallback:
/* 802A872C 002A438C 41 82 01 E0 */ beq lbl_802A890C
/* 802A8730 002A4390 38 7F 01 5C */ addi r3, r31, 0x15c
/* 802A8734 002A4394 4C C6 31 82 */ crclr 6
-/* 802A8738 002A4398 48 00 B1 29 */ bl func_802B3860
+/* 802A8738 002A4398 48 00 B1 29 */ bl DEBUGPrint
/* 802A873C 002A439C 7F 43 D3 78 */ mr r3, r26
/* 802A8740 002A43A0 4B FF FE C9 */ bl WPADiRetrieveChannel
/* 802A8744 002A43A4 3C A0 80 53 */ lis r5, lbl_80536D70@ha
@@ -3163,7 +3163,7 @@ lbl_802A8904:
lbl_802A890C:
/* 802A890C 002A456C 38 7F 01 74 */ addi r3, r31, 0x174
/* 802A8910 002A4570 4C C6 31 82 */ crclr 6
-/* 802A8914 002A4574 48 00 AF 4D */ bl func_802B3860
+/* 802A8914 002A4574 48 00 AF 4D */ bl DEBUGPrint
/* 802A8918 002A4578 3C 60 80 53 */ lis r3, lbl_80537D80@ha
/* 802A891C 002A457C 38 80 FF FF */ li r4, -1
/* 802A8920 002A4580 38 63 7D 80 */ addi r3, r3, lbl_80537D80@l
@@ -3285,7 +3285,7 @@ lbl_802A8AC8:
/* 802A8ACC 002A472C 40 82 FE CC */ bne lbl_802A8998
/* 802A8AD0 002A4730 38 7F 01 90 */ addi r3, r31, 0x190
/* 802A8AD4 002A4734 4C C6 31 82 */ crclr 6
-/* 802A8AD8 002A4738 48 00 AD 89 */ bl func_802B3860
+/* 802A8AD8 002A4738 48 00 AD 89 */ bl DEBUGPrint
/* 802A8ADC 002A473C 80 9C 08 AC */ lwz r4, 0x8ac(r28)
/* 802A8AE0 002A4740 2C 04 00 00 */ cmpwi r4, 0
/* 802A8AE4 002A4744 41 82 00 10 */ beq lbl_802A8AF4
@@ -3309,7 +3309,7 @@ lbl_802A8AF4:
lbl_802A8B28:
/* 802A8B28 002A4788 38 7F 01 A8 */ addi r3, r31, 0x1a8
/* 802A8B2C 002A478C 4C C6 31 82 */ crclr 6
-/* 802A8B30 002A4790 48 00 AD 31 */ bl func_802B3860
+/* 802A8B30 002A4790 48 00 AD 31 */ bl DEBUGPrint
lbl_802A8B34:
/* 802A8B34 002A4794 39 61 00 C0 */ addi r11, r1, 0xc0
/* 802A8B38 002A4798 4B F1 E6 39 */ bl _restgpr_26
@@ -3334,14 +3334,14 @@ WPADiRecvCallback:
/* 802A8B80 002A47E0 3C 60 80 44 */ lis r3, lbl_8043C1A8@ha
/* 802A8B84 002A47E4 38 63 C1 A8 */ addi r3, r3, lbl_8043C1A8@l
/* 802A8B88 002A47E8 4C C6 31 82 */ crclr 6
-/* 802A8B8C 002A47EC 48 00 AC D5 */ bl func_802B3860
+/* 802A8B8C 002A47EC 48 00 AC D5 */ bl DEBUGPrint
/* 802A8B90 002A47F0 48 00 00 18 */ b lbl_802A8BA8
lbl_802A8B94:
/* 802A8B94 002A47F4 3C 60 80 44 */ lis r3, lbl_8043C1C0@ha
/* 802A8B98 002A47F8 7C 04 03 78 */ mr r4, r0
/* 802A8B9C 002A47FC 38 63 C1 C0 */ addi r3, r3, lbl_8043C1C0@l
/* 802A8BA0 002A4800 4C C6 31 82 */ crclr 6
-/* 802A8BA4 002A4804 48 00 AC BD */ bl func_802B3860
+/* 802A8BA4 002A4804 48 00 AC BD */ bl DEBUGPrint
lbl_802A8BA8:
/* 802A8BA8 002A4808 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A8BAC 002A480C 7C 08 03 A6 */ mtlr r0
@@ -3525,7 +3525,7 @@ WPADSetSamplingCallback:
/* 802A8E20 002A4A80 93 C1 00 08 */ stw r30, 8(r1)
/* 802A8E24 002A4A84 7C 9E 23 78 */ mr r30, r4
/* 802A8E28 002A4A88 4C C6 31 82 */ crclr 6
-/* 802A8E2C 002A4A8C 48 00 AA 35 */ bl func_802B3860
+/* 802A8E2C 002A4A8C 48 00 AA 35 */ bl DEBUGPrint
/* 802A8E30 002A4A90 4B FC 59 2D */ bl OSDisableInterrupts
/* 802A8E34 002A4A94 3C 80 80 53 */ lis r4, lbl_80536D70@ha
/* 802A8E38 002A4A98 57 E0 10 3A */ slwi r0, r31, 2
@@ -3554,7 +3554,7 @@ WPADSetConnectCallback:
/* 802A8E88 002A4AE8 93 C1 00 08 */ stw r30, 8(r1)
/* 802A8E8C 002A4AEC 7C 9E 23 78 */ mr r30, r4
/* 802A8E90 002A4AF0 4C C6 31 82 */ crclr 6
-/* 802A8E94 002A4AF4 48 00 A9 CD */ bl func_802B3860
+/* 802A8E94 002A4AF4 48 00 A9 CD */ bl DEBUGPrint
/* 802A8E98 002A4AF8 4B FC 58 C5 */ bl OSDisableInterrupts
/* 802A8E9C 002A4AFC 3C 80 80 53 */ lis r4, lbl_80536D70@ha
/* 802A8EA0 002A4B00 57 E0 10 3A */ slwi r0, r31, 2
@@ -3583,7 +3583,7 @@ WPADSetExtensionCallback:
/* 802A8EF0 002A4B50 93 C1 00 08 */ stw r30, 8(r1)
/* 802A8EF4 002A4B54 7C 9E 23 78 */ mr r30, r4
/* 802A8EF8 002A4B58 4C C6 31 82 */ crclr 6
-/* 802A8EFC 002A4B5C 48 00 A9 65 */ bl func_802B3860
+/* 802A8EFC 002A4B5C 48 00 A9 65 */ bl DEBUGPrint
/* 802A8F00 002A4B60 4B FC 58 5D */ bl OSDisableInterrupts
/* 802A8F04 002A4B64 3C 80 80 53 */ lis r4, lbl_80536D70@ha
/* 802A8F08 002A4B68 57 E0 10 3A */ slwi r0, r31, 2
@@ -4248,7 +4248,7 @@ WPADSetAutoSamplingBuf:
/* 802A9830 002A5490 7C BF 2B 78 */ mr r31, r5
/* 802A9834 002A5494 38 66 C2 40 */ addi r3, r6, lbl_8043C240@l
/* 802A9838 002A5498 4C C6 31 82 */ crclr 6
-/* 802A983C 002A549C 48 00 A0 25 */ bl func_802B3860
+/* 802A983C 002A549C 48 00 A0 25 */ bl DEBUGPrint
/* 802A9840 002A54A0 4B FC 4F 1D */ bl OSDisableInterrupts
/* 802A9844 002A54A4 3C 80 80 53 */ lis r4, lbl_80536D70@ha
/* 802A9848 002A54A8 57 40 10 3A */ slwi r0, r26, 2
@@ -7576,7 +7576,7 @@ lbl_802AC910:
/* 802AC918 002A8578 38 63 C2 5C */ addi r3, r3, lbl_8043C25C@l
/* 802AC91C 002A857C 7F A4 07 74 */ extsb r4, r29
/* 802AC920 002A8580 4C C6 31 82 */ crclr 6
-/* 802AC924 002A8584 48 00 6F 3D */ bl func_802B3860
+/* 802AC924 002A8584 48 00 6F 3D */ bl DEBUGPrint
/* 802AC928 002A8588 38 19 00 12 */ addi r0, r25, 0x12
/* 802AC92C 002A858C 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 802AC930 002A8590 48 00 D1 7D */ bl func_802B9AAC
diff --git a/asm/SDK/WPAD/WPADEncrypt.s b/asm/SDK/WPAD/WPADEncrypt.s
new file mode 100644
index 0000000..a7db3ad
--- /dev/null
+++ b/asm/SDK/WPAD/WPADEncrypt.s
@@ -0,0 +1,1084 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global WPADiCreateKey
+WPADiCreateKey:
+/* 802B1C70 002AD8D0 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 802B1C74 002AD8D4 7C 08 02 A6 */ mflr r0
+/* 802B1C78 002AD8D8 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 802B1C7C 002AD8DC 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 802B1C80 002AD8E0 4B F1 54 75 */ bl __save_gpr
+/* 802B1C84 002AD8E4 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802B1C88 002AD8E8 3F C0 80 44 */ lis r30, lbl_8043C700@ha
+/* 802B1C8C 002AD8EC 54 60 10 3A */ slwi r0, r3, 2
+/* 802B1C90 002AD8F0 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802B1C94 002AD8F4 3B DE C7 00 */ addi r30, r30, lbl_8043C700@l
+/* 802B1C98 002AD8F8 7E 04 00 2E */ lwzx r16, r4, r0
+/* 802B1C9C 002AD8FC 4B FC 0B 35 */ bl OSGetTick
+/* 802B1CA0 002AD900 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f
+/* 802B1CA4 002AD904 98 0D AE 83 */ stb r0, lbl_80640143-_SDA_BASE_(r13)
+/* 802B1CA8 002AD908 4B FC 0B 29 */ bl OSGetTick
+/* 802B1CAC 002AD90C 54 60 86 BE */ rlwinm r0, r3, 0x10, 0x1a, 0x1f
+/* 802B1CB0 002AD910 98 0D AE 82 */ stb r0, lbl_80640142-_SDA_BASE_(r13)
+/* 802B1CB4 002AD914 4B FC 0B 1D */ bl OSGetTick
+/* 802B1CB8 002AD918 88 CD AE 82 */ lbz r6, lbl_80640142-_SDA_BASE_(r13)
+/* 802B1CBC 002AD91C 54 63 46 3E */ srwi r3, r3, 0x18
+/* 802B1CC0 002AD920 88 0D AE 83 */ lbz r0, lbl_80640143-_SDA_BASE_(r13)
+/* 802B1CC4 002AD924 70 64 00 4C */ andi. r4, r3, 0x4c
+/* 802B1CC8 002AD928 39 00 00 FF */ li r8, 0xff
+/* 802B1CCC 002AD92C 3C A0 80 81 */ lis r5, 0x80808081@ha
+/* 802B1CD0 002AD930 7C E0 31 D6 */ mullw r7, r0, r6
+/* 802B1CD4 002AD934 3C 60 92 49 */ lis r3, 0x92492493@ha
+/* 802B1CD8 002AD938 38 05 80 81 */ addi r0, r5, 0x80808081@l
+/* 802B1CDC 002AD93C 99 0D AE 80 */ stb r8, lbl_80640140-_SDA_BASE_(r13)
+/* 802B1CE0 002AD940 39 03 24 93 */ addi r8, r3, 0x92492493@l
+/* 802B1CE4 002AD944 38 A0 00 02 */ li r5, 2
+/* 802B1CE8 002AD948 7D 44 3A 14 */ add r10, r4, r7
+/* 802B1CEC 002AD94C 98 8D AE 81 */ stb r4, lbl_80640141-_SDA_BASE_(r13)
+/* 802B1CF0 002AD950 7D 20 50 16 */ mulhwu r9, r0, r10
+/* 802B1CF4 002AD954 38 7E 00 30 */ addi r3, r30, 0x30
+/* 802B1CF8 002AD958 38 E0 00 00 */ li r7, 0
+/* 802B1CFC 002AD95C 55 29 C9 FE */ srwi r9, r9, 7
+/* 802B1D00 002AD960 1D 29 00 FF */ mulli r9, r9, 0xff
+/* 802B1D04 002AD964 7D 29 50 50 */ subf r9, r9, r10
+/* 802B1D08 002AD968 55 2A 06 3E */ clrlwi r10, r9, 0x18
+/* 802B1D0C 002AD96C 7D 08 50 96 */ mulhw r8, r8, r10
+/* 802B1D10 002AD970 7D 08 52 14 */ add r8, r8, r10
+/* 802B1D14 002AD974 7D 08 16 70 */ srawi r8, r8, 2
+/* 802B1D18 002AD978 55 09 0F FE */ srwi r9, r8, 0x1f
+/* 802B1D1C 002AD97C 7D 08 4A 14 */ add r8, r8, r9
+/* 802B1D20 002AD980 1D 08 00 07 */ mulli r8, r8, 7
+/* 802B1D24 002AD984 7D 08 50 50 */ subf r8, r8, r10
+/* 802B1D28 002AD988 55 0F 06 3E */ clrlwi r15, r8, 0x18
+/* 802B1D2C 002AD98C 1D 0F 00 06 */ mulli r8, r15, 6
+/* 802B1D30 002AD990 55 0E 06 3E */ clrlwi r14, r8, 0x18
+/* 802B1D34 002AD994 7C A9 03 A6 */ mtctr r5
+lbl_802B1D38:
+/* 802B1D38 002AD998 55 45 06 3E */ clrlwi r5, r10, 0x18
+/* 802B1D3C 002AD99C 54 E8 06 3E */ clrlwi r8, r7, 0x18
+/* 802B1D40 002AD9A0 7D 25 31 D6 */ mullw r9, r5, r6
+/* 802B1D44 002AD9A4 38 E7 00 05 */ addi r7, r7, 5
+/* 802B1D48 002AD9A8 38 A1 00 28 */ addi r5, r1, 0x28
+/* 802B1D4C 002AD9AC 7C A5 42 14 */ add r5, r5, r8
+/* 802B1D50 002AD9B0 7D 24 4A 14 */ add r9, r4, r9
+/* 802B1D54 002AD9B4 7D 00 48 16 */ mulhwu r8, r0, r9
+/* 802B1D58 002AD9B8 55 08 C9 FE */ srwi r8, r8, 7
+/* 802B1D5C 002AD9BC 1D 08 00 FF */ mulli r8, r8, 0xff
+/* 802B1D60 002AD9C0 7D 08 48 50 */ subf r8, r8, r9
+/* 802B1D64 002AD9C4 55 09 06 3E */ clrlwi r9, r8, 0x18
+/* 802B1D68 002AD9C8 7D 09 31 D6 */ mullw r8, r9, r6
+/* 802B1D6C 002AD9CC 7D 23 48 AE */ lbzx r9, r3, r9
+/* 802B1D70 002AD9D0 99 25 00 00 */ stb r9, 0(r5)
+/* 802B1D74 002AD9D4 7D 24 42 14 */ add r9, r4, r8
+/* 802B1D78 002AD9D8 7D 00 48 16 */ mulhwu r8, r0, r9
+/* 802B1D7C 002AD9DC 55 08 C9 FE */ srwi r8, r8, 7
+/* 802B1D80 002AD9E0 1D 08 00 FF */ mulli r8, r8, 0xff
+/* 802B1D84 002AD9E4 7D 08 48 50 */ subf r8, r8, r9
+/* 802B1D88 002AD9E8 55 09 06 3E */ clrlwi r9, r8, 0x18
+/* 802B1D8C 002AD9EC 7D 09 31 D6 */ mullw r8, r9, r6
+/* 802B1D90 002AD9F0 7D 23 48 AE */ lbzx r9, r3, r9
+/* 802B1D94 002AD9F4 99 25 00 01 */ stb r9, 1(r5)
+/* 802B1D98 002AD9F8 7D 24 42 14 */ add r9, r4, r8
+/* 802B1D9C 002AD9FC 7D 00 48 16 */ mulhwu r8, r0, r9
+/* 802B1DA0 002ADA00 55 08 C9 FE */ srwi r8, r8, 7
+/* 802B1DA4 002ADA04 1D 08 00 FF */ mulli r8, r8, 0xff
+/* 802B1DA8 002ADA08 7D 08 48 50 */ subf r8, r8, r9
+/* 802B1DAC 002ADA0C 55 09 06 3E */ clrlwi r9, r8, 0x18
+/* 802B1DB0 002ADA10 7D 09 31 D6 */ mullw r8, r9, r6
+/* 802B1DB4 002ADA14 7D 23 48 AE */ lbzx r9, r3, r9
+/* 802B1DB8 002ADA18 99 25 00 02 */ stb r9, 2(r5)
+/* 802B1DBC 002ADA1C 7D 24 42 14 */ add r9, r4, r8
+/* 802B1DC0 002ADA20 7D 00 48 16 */ mulhwu r8, r0, r9
+/* 802B1DC4 002ADA24 55 08 C9 FE */ srwi r8, r8, 7
+/* 802B1DC8 002ADA28 1D 08 00 FF */ mulli r8, r8, 0xff
+/* 802B1DCC 002ADA2C 7D 08 48 50 */ subf r8, r8, r9
+/* 802B1DD0 002ADA30 55 09 06 3E */ clrlwi r9, r8, 0x18
+/* 802B1DD4 002ADA34 7D 09 31 D6 */ mullw r8, r9, r6
+/* 802B1DD8 002ADA38 7D 23 48 AE */ lbzx r9, r3, r9
+/* 802B1DDC 002ADA3C 99 25 00 03 */ stb r9, 3(r5)
+/* 802B1DE0 002ADA40 7D 24 42 14 */ add r9, r4, r8
+/* 802B1DE4 002ADA44 7D 00 48 16 */ mulhwu r8, r0, r9
+/* 802B1DE8 002ADA48 55 08 C9 FE */ srwi r8, r8, 7
+/* 802B1DEC 002ADA4C 1D 08 00 FF */ mulli r8, r8, 0xff
+/* 802B1DF0 002ADA50 7D 08 48 50 */ subf r8, r8, r9
+/* 802B1DF4 002ADA54 55 0A 06 3E */ clrlwi r10, r8, 0x18
+/* 802B1DF8 002ADA58 7D 03 50 AE */ lbzx r8, r3, r10
+/* 802B1DFC 002ADA5C 99 05 00 04 */ stb r8, 4(r5)
+/* 802B1E00 002ADA60 42 00 FF 38 */ bdnz lbl_802B1D38
+/* 802B1E04 002ADA64 3A 7E 00 00 */ addi r19, r30, 0
+/* 802B1E08 002ADA68 99 4D AE 83 */ stb r10, lbl_80640143-_SDA_BASE_(r13)
+/* 802B1E0C 002ADA6C 7E 2E 9A 14 */ add r17, r14, r19
+/* 802B1E10 002ADA70 7C 93 70 AE */ lbzx r4, r19, r14
+/* 802B1E14 002ADA74 88 B1 00 01 */ lbz r5, 1(r17)
+/* 802B1E18 002ADA78 38 7E 12 60 */ addi r3, r30, 0x1260
+/* 802B1E1C 002ADA7C 88 D1 00 02 */ lbz r6, 2(r17)
+/* 802B1E20 002ADA80 88 F1 00 03 */ lbz r7, 3(r17)
+/* 802B1E24 002ADA84 89 11 00 04 */ lbz r8, 4(r17)
+/* 802B1E28 002ADA88 89 31 00 05 */ lbz r9, 5(r17)
+/* 802B1E2C 002ADA8C 4C C6 31 82 */ crclr 6
+/* 802B1E30 002ADA90 48 00 1A 31 */ bl DEBUGPrint
+/* 802B1E34 002ADA94 8B 61 00 2F */ lbz r27, 0x2f(r1)
+/* 802B1E38 002ADA98 38 7E 12 7C */ addi r3, r30, 0x127c
+/* 802B1E3C 002ADA9C 8B 41 00 2E */ lbz r26, 0x2e(r1)
+/* 802B1E40 002ADAA0 93 61 00 08 */ stw r27, 8(r1)
+/* 802B1E44 002ADAA4 8B 81 00 30 */ lbz r28, 0x30(r1)
+/* 802B1E48 002ADAA8 7F 4A D3 78 */ mr r10, r26
+/* 802B1E4C 002ADAAC 8B A1 00 31 */ lbz r29, 0x31(r1)
+/* 802B1E50 002ADAB0 93 81 00 0C */ stw r28, 0xc(r1)
+/* 802B1E54 002ADAB4 8B 21 00 2D */ lbz r25, 0x2d(r1)
+/* 802B1E58 002ADAB8 8B 01 00 2C */ lbz r24, 0x2c(r1)
+/* 802B1E5C 002ADABC 8A E1 00 2B */ lbz r23, 0x2b(r1)
+/* 802B1E60 002ADAC0 7F 29 CB 78 */ mr r9, r25
+/* 802B1E64 002ADAC4 8A C1 00 2A */ lbz r22, 0x2a(r1)
+/* 802B1E68 002ADAC8 7F 08 C3 78 */ mr r8, r24
+/* 802B1E6C 002ADACC 8A A1 00 29 */ lbz r21, 0x29(r1)
+/* 802B1E70 002ADAD0 7E E7 BB 78 */ mr r7, r23
+/* 802B1E74 002ADAD4 93 A1 00 10 */ stw r29, 0x10(r1)
+/* 802B1E78 002ADAD8 7E C6 B3 78 */ mr r6, r22
+/* 802B1E7C 002ADADC 88 81 00 28 */ lbz r4, 0x28(r1)
+/* 802B1E80 002ADAE0 7E A5 AB 78 */ mr r5, r21
+/* 802B1E84 002ADAE4 4C C6 31 82 */ crclr 6
+/* 802B1E88 002ADAE8 48 00 19 D9 */ bl DEBUGPrint
+/* 802B1E8C 002ADAEC 3B FE 00 30 */ addi r31, r30, 0x30
+/* 802B1E90 002ADAF0 8A 41 00 28 */ lbz r18, 0x28(r1)
+/* 802B1E94 002ADAF4 7C 1F D8 AE */ lbzx r0, r31, r27
+/* 802B1E98 002ADAF8 38 7E 12 A4 */ addi r3, r30, 0x12a4
+/* 802B1E9C 002ADAFC 90 01 00 08 */ stw r0, 8(r1)
+/* 802B1EA0 002ADB00 7C 1F E0 AE */ lbzx r0, r31, r28
+/* 802B1EA4 002ADB04 90 01 00 0C */ stw r0, 0xc(r1)
+/* 802B1EA8 002ADB08 7C 1F E8 AE */ lbzx r0, r31, r29
+/* 802B1EAC 002ADB0C 90 01 00 10 */ stw r0, 0x10(r1)
+/* 802B1EB0 002ADB10 7C 9F 90 AE */ lbzx r4, r31, r18
+/* 802B1EB4 002ADB14 7C BF A8 AE */ lbzx r5, r31, r21
+/* 802B1EB8 002ADB18 7C DF B0 AE */ lbzx r6, r31, r22
+/* 802B1EBC 002ADB1C 7C FF B8 AE */ lbzx r7, r31, r23
+/* 802B1EC0 002ADB20 7D 1F C0 AE */ lbzx r8, r31, r24
+/* 802B1EC4 002ADB24 7D 3F C8 AE */ lbzx r9, r31, r25
+/* 802B1EC8 002ADB28 7D 5F D0 AE */ lbzx r10, r31, r26
+/* 802B1ECC 002ADB2C 4C C6 31 82 */ crclr 6
+/* 802B1ED0 002ADB30 48 00 19 91 */ bl DEBUGPrint
+/* 802B1ED4 002ADB34 4B FB C8 89 */ bl OSDisableInterrupts
+/* 802B1ED8 002ADB38 7C 9F B0 AE */ lbzx r4, r31, r22
+/* 802B1EDC 002ADB3C 7C BF 90 AE */ lbzx r5, r31, r18
+/* 802B1EE0 002ADB40 54 80 E8 04 */ slwi r0, r4, 0x1d
+/* 802B1EE4 002ADB44 54 89 0F FE */ srwi r9, r4, 0x1f
+/* 802B1EE8 002ADB48 7C 09 00 50 */ subf r0, r9, r0
+/* 802B1EEC 002ADB4C 90 61 00 34 */ stw r3, 0x34(r1)
+/* 802B1EF0 002ADB50 54 07 18 3E */ rotlwi r7, r0, 3
+/* 802B1EF4 002ADB54 54 A8 0F FE */ srwi r8, r5, 0x1f
+/* 802B1EF8 002ADB58 54 A0 E8 04 */ slwi r0, r5, 0x1d
+/* 802B1EFC 002ADB5C 7D 5F C8 AE */ lbzx r10, r31, r25
+/* 802B1F00 002ADB60 7D 73 70 AE */ lbzx r11, r19, r14
+/* 802B1F04 002ADB64 7C 08 00 50 */ subf r0, r8, r0
+/* 802B1F08 002ADB68 7D 27 4A 14 */ add r9, r7, r9
+/* 802B1F0C 002ADB6C 7C 7F E0 AE */ lbzx r3, r31, r28
+/* 802B1F10 002ADB70 54 07 18 3E */ rotlwi r7, r0, 3
+/* 802B1F14 002ADB74 7D 6C 52 78 */ xor r12, r11, r10
+/* 802B1F18 002ADB78 55 20 06 3E */ clrlwi r0, r9, 0x18
+/* 802B1F1C 002ADB7C 54 69 E8 04 */ slwi r9, r3, 0x1d
+/* 802B1F20 002ADB80 7D C7 42 14 */ add r14, r7, r8
+/* 802B1F24 002ADB84 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 802B1F28 002ADB88 7E 43 48 50 */ subf r18, r3, r9
+/* 802B1F2C 002ADB8C 7D 8B 06 30 */ sraw r11, r12, r0
+/* 802B1F30 002ADB90 21 20 00 08 */ subfic r9, r0, 8
+/* 802B1F34 002ADB94 7C FF A8 AE */ lbzx r7, r31, r21
+/* 802B1F38 002ADB98 89 11 00 01 */ lbz r8, 1(r17)
+/* 802B1F3C 002ADB9C 55 C0 06 3E */ clrlwi r0, r14, 0x18
+/* 802B1F40 002ADBA0 7C DF D8 AE */ lbzx r6, r31, r27
+/* 802B1F44 002ADBA4 7D 89 48 30 */ slw r9, r12, r9
+/* 802B1F48 002ADBA8 7D 0E 3A 78 */ xor r14, r8, r7
+/* 802B1F4C 002ADBAC 56 52 18 3E */ rotlwi r18, r18, 3
+/* 802B1F50 002ADBB0 7C 72 1A 14 */ add r3, r18, r3
+/* 802B1F54 002ADBB4 8A 51 00 03 */ lbz r18, 3(r17)
+/* 802B1F58 002ADBB8 7D C8 06 30 */ sraw r8, r14, r0
+/* 802B1F5C 002ADBBC 20 00 00 08 */ subfic r0, r0, 8
+/* 802B1F60 002ADBC0 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 802B1F64 002ADBC4 7D C0 00 30 */ slw r0, r14, r0
+/* 802B1F68 002ADBC8 7D 6E 4B 78 */ or r14, r11, r9
+/* 802B1F6C 002ADBCC 7D 08 03 78 */ or r8, r8, r0
+/* 802B1F70 002ADBD0 88 11 00 04 */ lbz r0, 4(r17)
+/* 802B1F74 002ADBD4 55 0C 06 3E */ clrlwi r12, r8, 0x18
+/* 802B1F78 002ADBD8 54 C9 0F FE */ srwi r9, r6, 0x1f
+/* 802B1F7C 002ADBDC 54 C8 E8 04 */ slwi r8, r6, 0x1d
+/* 802B1F80 002ADBE0 90 01 00 40 */ stw r0, 0x40(r1)
+/* 802B1F84 002ADBE4 7D 09 40 50 */ subf r8, r9, r8
+/* 802B1F88 002ADBE8 7D 7F D0 AE */ lbzx r11, r31, r26
+/* 802B1F8C 002ADBEC 55 08 18 3E */ rotlwi r8, r8, 3
+/* 802B1F90 002ADBF0 88 11 00 02 */ lbz r0, 2(r17)
+/* 802B1F94 002ADBF4 7D 28 4A 14 */ add r9, r8, r9
+/* 802B1F98 002ADBF8 7D 8A 60 50 */ subf r12, r10, r12
+/* 802B1F9C 002ADBFC 7C 08 5A 78 */ xor r8, r0, r11
+/* 802B1FA0 002ADC00 55 CE 06 3E */ clrlwi r14, r14, 0x18
+/* 802B1FA4 002ADC04 7C C0 62 78 */ xor r0, r6, r12
+/* 802B1FA8 002ADC08 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 802B1FAC 002ADC0C 7D 0C 1E 30 */ sraw r12, r8, r3
+/* 802B1FB0 002ADC10 7C 1F C0 AE */ lbzx r0, r31, r24
+/* 802B1FB4 002ADC14 22 63 00 08 */ subfic r19, r3, 8
+/* 802B1FB8 002ADC18 7D 08 98 30 */ slw r8, r8, r19
+/* 802B1FBC 002ADC1C 55 33 06 3E */ clrlwi r19, r9, 0x18
+/* 802B1FC0 002ADC20 7E 52 02 78 */ xor r18, r18, r0
+/* 802B1FC4 002ADC24 7D 88 43 78 */ or r8, r12, r8
+/* 802B1FC8 002ADC28 7D 3F E8 AE */ lbzx r9, r31, r29
+/* 802B1FCC 002ADC2C 7E 54 9E 30 */ sraw r20, r18, r19
+/* 802B1FD0 002ADC30 21 93 00 08 */ subfic r12, r19, 8
+/* 802B1FD4 002ADC34 55 08 06 3E */ clrlwi r8, r8, 0x18
+/* 802B1FD8 002ADC38 7E 4C 60 30 */ slw r12, r18, r12
+/* 802B1FDC 002ADC3C 7E 49 70 50 */ subf r18, r9, r14
+/* 802B1FE0 002ADC40 7D C4 40 50 */ subf r14, r4, r8
+/* 802B1FE4 002ADC44 7D 1F B8 AE */ lbzx r8, r31, r23
+/* 802B1FE8 002ADC48 7E 8C 63 78 */ or r12, r20, r12
+/* 802B1FEC 002ADC4C 55 93 06 3E */ clrlwi r19, r12, 0x18
+/* 802B1FF0 002ADC50 7C A5 72 78 */ xor r5, r5, r14
+/* 802B1FF4 002ADC54 7C 0C 92 78 */ xor r12, r0, r18
+/* 802B1FF8 002ADC58 7E 48 98 50 */ subf r18, r8, r19
+/* 802B1FFC 002ADC5C 54 B4 06 3E */ clrlwi r20, r5, 0x18
+/* 802B2000 002ADC60 7C 84 92 78 */ xor r4, r4, r18
+/* 802B2004 002ADC64 55 8C 06 3E */ clrlwi r12, r12, 0x18
+/* 802B2008 002ADC68 99 81 00 38 */ stb r12, 0x38(r1)
+/* 802B200C 002ADC6C 54 93 06 3E */ clrlwi r19, r4, 0x18
+/* 802B2010 002ADC70 81 81 00 3C */ lwz r12, 0x3c(r1)
+/* 802B2014 002ADC74 80 81 00 40 */ lwz r4, 0x40(r1)
+/* 802B2018 002ADC78 55 8E 06 3E */ clrlwi r14, r12, 0x18
+/* 802B201C 002ADC7C 7C 85 3A 78 */ xor r5, r4, r7
+/* 802B2020 002ADC80 55 67 E8 04 */ slwi r7, r11, 0x1d
+/* 802B2024 002ADC84 55 64 0F FE */ srwi r4, r11, 0x1f
+/* 802B2028 002ADC88 7D 64 38 50 */ subf r11, r4, r7
+/* 802B202C 002ADC8C 88 F1 00 05 */ lbz r7, 5(r17)
+/* 802B2030 002ADC90 55 6B 18 3E */ rotlwi r11, r11, 3
+/* 802B2034 002ADC94 54 AC 06 3E */ clrlwi r12, r5, 0x18
+/* 802B2038 002ADC98 7C 8B 22 14 */ add r4, r11, r4
+/* 802B203C 002ADC9C 7C E5 32 78 */ xor r5, r7, r6
+/* 802B2040 002ADCA0 54 86 06 3E */ clrlwi r6, r4, 0x18
+/* 802B2044 002ADCA4 88 81 00 38 */ lbz r4, 0x38(r1)
+/* 802B2048 002ADCA8 7D 8B 36 30 */ sraw r11, r12, r6
+/* 802B204C 002ADCAC 54 B1 06 3E */ clrlwi r17, r5, 0x18
+/* 802B2050 002ADCB0 20 E6 00 08 */ subfic r7, r6, 8
+/* 802B2054 002ADCB4 7D C5 73 78 */ mr r5, r14
+/* 802B2058 002ADCB8 7E 32 1E 30 */ sraw r18, r17, r3
+/* 802B205C 002ADCBC 7E 86 A3 78 */ mr r6, r20
+/* 802B2060 002ADCC0 20 63 00 08 */ subfic r3, r3, 8
+/* 802B2064 002ADCC4 7D 8C 38 30 */ slw r12, r12, r7
+/* 802B2068 002ADCC8 7E 31 18 30 */ slw r17, r17, r3
+/* 802B206C 002ADCCC 7E 67 9B 78 */ mr r7, r19
+/* 802B2070 002ADCD0 7D 6B 63 78 */ or r11, r11, r12
+/* 802B2074 002ADCD4 38 7E 12 CC */ addi r3, r30, 0x12cc
+/* 802B2078 002ADCD8 7E 4C 8B 78 */ or r12, r18, r17
+/* 802B207C 002ADCDC 55 71 06 3E */ clrlwi r17, r11, 0x18
+/* 802B2080 002ADCE0 55 8B 06 3E */ clrlwi r11, r12, 0x18
+/* 802B2084 002ADCE4 7D 88 88 50 */ subf r12, r8, r17
+/* 802B2088 002ADCE8 7D 0A 58 50 */ subf r8, r10, r11
+/* 802B208C 002ADCEC 7C 0A 62 78 */ xor r10, r0, r12
+/* 802B2090 002ADCF0 7D 20 42 78 */ xor r0, r9, r8
+/* 802B2094 002ADCF4 55 52 06 3E */ clrlwi r18, r10, 0x18
+/* 802B2098 002ADCF8 54 11 06 3E */ clrlwi r17, r0, 0x18
+/* 802B209C 002ADCFC 7E 48 93 78 */ mr r8, r18
+/* 802B20A0 002ADD00 7E 29 8B 78 */ mr r9, r17
+/* 802B20A4 002ADD04 4C C6 31 82 */ crclr 6
+/* 802B20A8 002ADD08 48 00 17 B9 */ bl DEBUGPrint
+/* 802B20AC 002ADD0C 38 6F 00 01 */ addi r3, r15, 1
+/* 802B20B0 002ADD10 38 0F 00 02 */ addi r0, r15, 2
+/* 802B20B4 002ADD14 54 6A 40 2E */ slwi r10, r3, 8
+/* 802B20B8 002ADD18 89 61 00 28 */ lbz r11, 0x28(r1)
+/* 802B20BC 002ADD1C 54 00 40 2E */ slwi r0, r0, 8
+/* 802B20C0 002ADD20 38 7E 12 E8 */ addi r3, r30, 0x12e8
+/* 802B20C4 002ADD24 7C 92 52 14 */ add r4, r18, r10
+/* 802B20C8 002ADD28 7C D1 52 14 */ add r6, r17, r10
+/* 802B20CC 002ADD2C 90 81 00 44 */ stw r4, 0x44(r1)
+/* 802B20D0 002ADD30 7C 97 02 14 */ add r4, r23, r0
+/* 802B20D4 002ADD34 7C FB 02 14 */ add r7, r27, r0
+/* 802B20D8 002ADD38 7C B8 02 14 */ add r5, r24, r0
+/* 802B20DC 002ADD3C 90 81 00 48 */ stw r4, 0x48(r1)
+/* 802B20E0 002ADD40 7D FA 02 14 */ add r15, r26, r0
+/* 802B20E4 002ADD44 88 81 00 38 */ lbz r4, 0x38(r1)
+/* 802B20E8 002ADD48 7F 55 52 14 */ add r26, r21, r10
+/* 802B20EC 002ADD4C 7D 8B 52 14 */ add r12, r11, r10
+/* 802B20F0 002ADD50 7F 7C 02 14 */ add r27, r28, r0
+/* 802B20F4 002ADD54 7C 84 52 14 */ add r4, r4, r10
+/* 802B20F8 002ADD58 7F 8B 02 14 */ add r28, r11, r0
+/* 802B20FC 002ADD5C 90 81 00 4C */ stw r4, 0x4c(r1)
+/* 802B2100 002ADD60 7C 96 02 14 */ add r4, r22, r0
+/* 802B2104 002ADD64 7D 39 02 14 */ add r9, r25, r0
+/* 802B2108 002ADD68 7D 14 52 14 */ add r8, r20, r10
+/* 802B210C 002ADD6C 90 81 00 50 */ stw r4, 0x50(r1)
+/* 802B2110 002ADD70 7C 8E 52 14 */ add r4, r14, r10
+/* 802B2114 002ADD74 7F 13 52 14 */ add r24, r19, r10
+/* 802B2118 002ADD78 7D 77 52 14 */ add r11, r23, r10
+/* 802B211C 002ADD7C 7D 56 52 14 */ add r10, r22, r10
+/* 802B2120 002ADD80 82 C1 00 44 */ lwz r22, 0x44(r1)
+/* 802B2124 002ADD84 7F 3D 02 14 */ add r25, r29, r0
+/* 802B2128 002ADD88 7E B5 02 14 */ add r21, r21, r0
+/* 802B212C 002ADD8C 7C 16 F8 AE */ lbzx r0, r22, r31
+/* 802B2130 002ADD90 82 C1 00 48 */ lwz r22, 0x48(r1)
+/* 802B2134 002ADD94 7C E7 F8 AE */ lbzx r7, r7, r31
+/* 802B2138 002ADD98 7E D6 F8 AE */ lbzx r22, r22, r31
+/* 802B213C 002ADD9C 7C 17 3A 78 */ xor r23, r0, r7
+/* 802B2140 002ADDA0 7C C6 F8 AE */ lbzx r6, r6, r31
+/* 802B2144 002ADDA4 7C 16 B2 78 */ xor r22, r0, r22
+/* 802B2148 002ADDA8 7C 04 F8 AE */ lbzx r0, r4, r31
+/* 802B214C 002ADDAC 7C C4 3A 78 */ xor r4, r6, r7
+/* 802B2150 002ADDB0 7C A5 F8 AE */ lbzx r5, r5, r31
+/* 802B2154 002ADDB4 7C FB F8 AE */ lbzx r7, r27, r31
+/* 802B2158 002ADDB8 7C C6 2A 78 */ xor r6, r6, r5
+/* 802B215C 002ADDBC 7C 05 2A 78 */ xor r5, r0, r5
+/* 802B2160 002ADDC0 7C 1B 3A 78 */ xor r27, r0, r7
+/* 802B2164 002ADDC4 7F 5A F8 AE */ lbzx r26, r26, r31
+/* 802B2168 002ADDC8 7C 09 F8 AE */ lbzx r0, r9, r31
+/* 802B216C 002ADDCC 7F 47 3A 78 */ xor r7, r26, r7
+/* 802B2170 002ADDD0 7D 28 F8 AE */ lbzx r9, r8, r31
+/* 802B2174 002ADDD4 7D 19 F8 AE */ lbzx r8, r25, r31
+/* 802B2178 002ADDD8 7F 58 F8 AE */ lbzx r26, r24, r31
+/* 802B217C 002ADDDC 7D 39 02 78 */ xor r25, r9, r0
+/* 802B2180 002ADDE0 7F 1C F8 AE */ lbzx r24, r28, r31
+/* 802B2184 002ADDE4 7D 3C 42 78 */ xor r28, r9, r8
+/* 802B2188 002ADDE8 7D 2B F8 AE */ lbzx r9, r11, r31
+/* 802B218C 002ADDEC 7F 48 42 78 */ xor r8, r26, r8
+/* 802B2190 002ADDF0 7F 5A C2 78 */ xor r26, r26, r24
+/* 802B2194 002ADDF4 81 61 00 4C */ lwz r11, 0x4c(r1)
+/* 802B2198 002ADDF8 7D 20 02 78 */ xor r0, r9, r0
+/* 802B219C 002ADDFC 83 01 00 50 */ lwz r24, 0x50(r1)
+/* 802B21A0 002ADE00 7D 6B F8 AE */ lbzx r11, r11, r31
+/* 802B21A4 002ADE04 7F 18 F8 AE */ lbzx r24, r24, r31
+/* 802B21A8 002ADE08 7D 35 F8 AE */ lbzx r9, r21, r31
+/* 802B21AC 002ADE0C 7D 75 C2 78 */ xor r21, r11, r24
+/* 802B21B0 002ADE10 7D EF F8 AE */ lbzx r15, r15, r31
+/* 802B21B4 002ADE14 7D 6B 4A 78 */ xor r11, r11, r9
+/* 802B21B8 002ADE18 7D 2A F8 AE */ lbzx r9, r10, r31
+/* 802B21BC 002ADE1C 7D 8C F8 AE */ lbzx r12, r12, r31
+/* 802B21C0 002ADE20 7D 29 7A 78 */ xor r9, r9, r15
+/* 802B21C4 002ADE24 9A C1 00 20 */ stb r22, 0x20(r1)
+/* 802B21C8 002ADE28 7D 8A 7A 78 */ xor r10, r12, r15
+/* 802B21CC 002ADE2C 9B 21 00 21 */ stb r25, 0x21(r1)
+/* 802B21D0 002ADE30 98 81 00 22 */ stb r4, 0x22(r1)
+/* 802B21D4 002ADE34 9A A1 00 23 */ stb r21, 0x23(r1)
+/* 802B21D8 002ADE38 98 A1 00 24 */ stb r5, 0x24(r1)
+/* 802B21DC 002ADE3C 99 01 00 25 */ stb r8, 0x25(r1)
+/* 802B21E0 002ADE40 99 41 00 26 */ stb r10, 0x26(r1)
+/* 802B21E4 002ADE44 98 E1 00 27 */ stb r7, 0x27(r1)
+/* 802B21E8 002ADE48 99 61 00 18 */ stb r11, 0x18(r1)
+/* 802B21EC 002ADE4C 98 C1 00 19 */ stb r6, 0x19(r1)
+/* 802B21F0 002ADE50 9B 41 00 1A */ stb r26, 0x1a(r1)
+/* 802B21F4 002ADE54 9B 81 00 1B */ stb r28, 0x1b(r1)
+/* 802B21F8 002ADE58 9A E1 00 1C */ stb r23, 0x1c(r1)
+/* 802B21FC 002ADE5C 9B 61 00 1D */ stb r27, 0x1d(r1)
+/* 802B2200 002ADE60 98 01 00 1E */ stb r0, 0x1e(r1)
+/* 802B2204 002ADE64 99 21 00 1F */ stb r9, 0x1f(r1)
+/* 802B2208 002ADE68 90 E1 00 08 */ stw r7, 8(r1)
+/* 802B220C 002ADE6C 88 81 00 20 */ lbz r4, 0x20(r1)
+/* 802B2210 002ADE70 88 A1 00 21 */ lbz r5, 0x21(r1)
+/* 802B2214 002ADE74 88 C1 00 22 */ lbz r6, 0x22(r1)
+/* 802B2218 002ADE78 88 E1 00 23 */ lbz r7, 0x23(r1)
+/* 802B221C 002ADE7C 89 01 00 24 */ lbz r8, 0x24(r1)
+/* 802B2220 002ADE80 89 21 00 25 */ lbz r9, 0x25(r1)
+/* 802B2224 002ADE84 89 41 00 26 */ lbz r10, 0x26(r1)
+/* 802B2228 002ADE88 4C C6 31 82 */ crclr 6
+/* 802B222C 002ADE8C 48 00 16 35 */ bl DEBUGPrint
+/* 802B2230 002ADE90 88 01 00 1F */ lbz r0, 0x1f(r1)
+/* 802B2234 002ADE94 38 7E 13 08 */ addi r3, r30, 0x1308
+/* 802B2238 002ADE98 90 01 00 08 */ stw r0, 8(r1)
+/* 802B223C 002ADE9C 88 81 00 18 */ lbz r4, 0x18(r1)
+/* 802B2240 002ADEA0 88 A1 00 19 */ lbz r5, 0x19(r1)
+/* 802B2244 002ADEA4 88 C1 00 1A */ lbz r6, 0x1a(r1)
+/* 802B2248 002ADEA8 88 E1 00 1B */ lbz r7, 0x1b(r1)
+/* 802B224C 002ADEAC 89 01 00 1C */ lbz r8, 0x1c(r1)
+/* 802B2250 002ADEB0 89 21 00 1D */ lbz r9, 0x1d(r1)
+/* 802B2254 002ADEB4 89 41 00 1E */ lbz r10, 0x1e(r1)
+/* 802B2258 002ADEB8 4C C6 31 82 */ crclr 6
+/* 802B225C 002ADEBC 48 00 16 05 */ bl DEBUGPrint
+/* 802B2260 002ADEC0 38 60 00 00 */ li r3, 0
+/* 802B2264 002ADEC4 38 C1 00 28 */ addi r6, r1, 0x28
+/* 802B2268 002ADEC8 20 83 00 09 */ subfic r4, r3, 9
+/* 802B226C 002ADECC 38 00 00 02 */ li r0, 2
+/* 802B2270 002ADED0 38 60 00 01 */ li r3, 1
+/* 802B2274 002ADED4 7C A6 20 AE */ lbzx r5, r6, r4
+/* 802B2278 002ADED8 20 63 00 09 */ subfic r3, r3, 9
+/* 802B227C 002ADEDC 7C 86 18 AE */ lbzx r4, r6, r3
+/* 802B2280 002ADEE0 20 60 00 09 */ subfic r3, r0, 9
+/* 802B2284 002ADEE4 98 B0 09 14 */ stb r5, 0x914(r16)
+/* 802B2288 002ADEE8 38 00 00 03 */ li r0, 3
+/* 802B228C 002ADEEC 7C A6 18 AE */ lbzx r5, r6, r3
+/* 802B2290 002ADEF0 20 60 00 09 */ subfic r3, r0, 9
+/* 802B2294 002ADEF4 98 90 09 15 */ stb r4, 0x915(r16)
+/* 802B2298 002ADEF8 38 00 00 04 */ li r0, 4
+/* 802B229C 002ADEFC 7C 86 18 AE */ lbzx r4, r6, r3
+/* 802B22A0 002ADF00 20 00 00 09 */ subfic r0, r0, 9
+/* 802B22A4 002ADF04 98 B0 09 16 */ stb r5, 0x916(r16)
+/* 802B22A8 002ADF08 38 60 00 05 */ li r3, 5
+/* 802B22AC 002ADF0C 7C 06 00 AE */ lbzx r0, r6, r0
+/* 802B22B0 002ADF10 98 90 09 17 */ stb r4, 0x917(r16)
+/* 802B22B4 002ADF14 20 83 00 09 */ subfic r4, r3, 9
+/* 802B22B8 002ADF18 38 60 00 06 */ li r3, 6
+/* 802B22BC 002ADF1C 7C A6 20 AE */ lbzx r5, r6, r4
+/* 802B22C0 002ADF20 98 10 09 18 */ stb r0, 0x918(r16)
+/* 802B22C4 002ADF24 20 63 00 09 */ subfic r3, r3, 9
+/* 802B22C8 002ADF28 38 00 00 07 */ li r0, 7
+/* 802B22CC 002ADF2C 7C 86 18 AE */ lbzx r4, r6, r3
+/* 802B22D0 002ADF30 98 B0 09 19 */ stb r5, 0x919(r16)
+/* 802B22D4 002ADF34 20 60 00 09 */ subfic r3, r0, 9
+/* 802B22D8 002ADF38 38 00 00 08 */ li r0, 8
+/* 802B22DC 002ADF3C 7C A6 18 AE */ lbzx r5, r6, r3
+/* 802B22E0 002ADF40 98 90 09 1A */ stb r4, 0x91a(r16)
+/* 802B22E4 002ADF44 20 60 00 09 */ subfic r3, r0, 9
+/* 802B22E8 002ADF48 38 00 00 09 */ li r0, 9
+/* 802B22EC 002ADF4C 7C 86 18 AE */ lbzx r4, r6, r3
+/* 802B22F0 002ADF50 98 B0 09 1B */ stb r5, 0x91b(r16)
+/* 802B22F4 002ADF54 20 00 00 09 */ subfic r0, r0, 9
+/* 802B22F8 002ADF58 7C 06 00 AE */ lbzx r0, r6, r0
+/* 802B22FC 002ADF5C 38 70 09 24 */ addi r3, r16, 0x924
+/* 802B2300 002ADF60 98 90 09 1C */ stb r4, 0x91c(r16)
+/* 802B2304 002ADF64 38 81 00 20 */ addi r4, r1, 0x20
+/* 802B2308 002ADF68 38 A0 00 08 */ li r5, 8
+/* 802B230C 002ADF6C 98 10 09 1D */ stb r0, 0x91d(r16)
+/* 802B2310 002ADF70 88 01 00 38 */ lbz r0, 0x38(r1)
+/* 802B2314 002ADF74 9A 30 09 1E */ stb r17, 0x91e(r16)
+/* 802B2318 002ADF78 9A 50 09 1F */ stb r18, 0x91f(r16)
+/* 802B231C 002ADF7C 9A 70 09 20 */ stb r19, 0x920(r16)
+/* 802B2320 002ADF80 9A 90 09 21 */ stb r20, 0x921(r16)
+/* 802B2324 002ADF84 99 D0 09 22 */ stb r14, 0x922(r16)
+/* 802B2328 002ADF88 98 10 09 23 */ stb r0, 0x923(r16)
+/* 802B232C 002ADF8C 4B D5 1C D5 */ bl memcpy
+/* 802B2330 002ADF90 38 70 09 2C */ addi r3, r16, 0x92c
+/* 802B2334 002ADF94 38 81 00 18 */ addi r4, r1, 0x18
+/* 802B2338 002ADF98 38 A0 00 08 */ li r5, 8
+/* 802B233C 002ADF9C 4B D5 1C C5 */ bl memcpy
+/* 802B2340 002ADFA0 80 61 00 34 */ lwz r3, 0x34(r1)
+/* 802B2344 002ADFA4 4B FB C4 41 */ bl OSRestoreInterrupts
+/* 802B2348 002ADFA8 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 802B234C 002ADFAC 4B F1 4D F5 */ bl __restore_gpr
+/* 802B2350 002ADFB0 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 802B2354 002ADFB4 7C 08 03 A6 */ mtlr r0
+/* 802B2358 002ADFB8 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 802B235C 002ADFBC 4E 80 00 20 */ blr
+
+.global WPADiCreateKeyFor3rd
+WPADiCreateKeyFor3rd:
+/* 802B2360 002ADFC0 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 802B2364 002ADFC4 7C 08 02 A6 */ mflr r0
+/* 802B2368 002ADFC8 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 802B236C 002ADFCC 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 802B2370 002ADFD0 4B F1 4D 85 */ bl __save_gpr
+/* 802B2374 002ADFD4 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802B2378 002ADFD8 3F C0 80 44 */ lis r30, lbl_8043C700@ha
+/* 802B237C 002ADFDC 54 60 10 3A */ slwi r0, r3, 2
+/* 802B2380 002ADFE0 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802B2384 002ADFE4 3B DE C7 00 */ addi r30, r30, lbl_8043C700@l
+/* 802B2388 002ADFE8 7E 04 00 2E */ lwzx r16, r4, r0
+/* 802B238C 002ADFEC 4B FC 04 45 */ bl OSGetTick
+/* 802B2390 002ADFF0 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f
+/* 802B2394 002ADFF4 98 0D AE 83 */ stb r0, lbl_80640143-_SDA_BASE_(r13)
+/* 802B2398 002ADFF8 4B FC 04 39 */ bl OSGetTick
+/* 802B239C 002ADFFC 54 60 86 BE */ rlwinm r0, r3, 0x10, 0x1a, 0x1f
+/* 802B23A0 002AE000 98 0D AE 82 */ stb r0, lbl_80640142-_SDA_BASE_(r13)
+/* 802B23A4 002AE004 4B FC 04 2D */ bl OSGetTick
+/* 802B23A8 002AE008 88 CD AE 82 */ lbz r6, lbl_80640142-_SDA_BASE_(r13)
+/* 802B23AC 002AE00C 54 63 46 3E */ srwi r3, r3, 0x18
+/* 802B23B0 002AE010 88 0D AE 83 */ lbz r0, lbl_80640143-_SDA_BASE_(r13)
+/* 802B23B4 002AE014 70 64 00 4C */ andi. r4, r3, 0x4c
+/* 802B23B8 002AE018 39 00 00 FF */ li r8, 0xff
+/* 802B23BC 002AE01C 3C A0 80 81 */ lis r5, 0x80808081@ha
+/* 802B23C0 002AE020 7C E0 31 D6 */ mullw r7, r0, r6
+/* 802B23C4 002AE024 3C 60 92 49 */ lis r3, 0x92492493@ha
+/* 802B23C8 002AE028 38 05 80 81 */ addi r0, r5, 0x80808081@l
+/* 802B23CC 002AE02C 99 0D AE 80 */ stb r8, lbl_80640140-_SDA_BASE_(r13)
+/* 802B23D0 002AE030 39 03 24 93 */ addi r8, r3, 0x92492493@l
+/* 802B23D4 002AE034 38 A0 00 02 */ li r5, 2
+/* 802B23D8 002AE038 7D 44 3A 14 */ add r10, r4, r7
+/* 802B23DC 002AE03C 98 8D AE 81 */ stb r4, lbl_80640141-_SDA_BASE_(r13)
+/* 802B23E0 002AE040 7D 20 50 16 */ mulhwu r9, r0, r10
+/* 802B23E4 002AE044 38 7E 09 60 */ addi r3, r30, 0x960
+/* 802B23E8 002AE048 38 E0 00 00 */ li r7, 0
+/* 802B23EC 002AE04C 55 29 C9 FE */ srwi r9, r9, 7
+/* 802B23F0 002AE050 1D 29 00 FF */ mulli r9, r9, 0xff
+/* 802B23F4 002AE054 7D 29 50 50 */ subf r9, r9, r10
+/* 802B23F8 002AE058 55 2A 06 3E */ clrlwi r10, r9, 0x18
+/* 802B23FC 002AE05C 7D 08 50 96 */ mulhw r8, r8, r10
+/* 802B2400 002AE060 7D 08 52 14 */ add r8, r8, r10
+/* 802B2404 002AE064 7D 08 16 70 */ srawi r8, r8, 2
+/* 802B2408 002AE068 55 09 0F FE */ srwi r9, r8, 0x1f
+/* 802B240C 002AE06C 7D 08 4A 14 */ add r8, r8, r9
+/* 802B2410 002AE070 1D 08 00 07 */ mulli r8, r8, 7
+/* 802B2414 002AE074 7D 08 50 50 */ subf r8, r8, r10
+/* 802B2418 002AE078 55 0F 06 3E */ clrlwi r15, r8, 0x18
+/* 802B241C 002AE07C 1D 0F 00 06 */ mulli r8, r15, 6
+/* 802B2420 002AE080 55 0E 06 3E */ clrlwi r14, r8, 0x18
+/* 802B2424 002AE084 7C A9 03 A6 */ mtctr r5
+lbl_802B2428:
+/* 802B2428 002AE088 55 45 06 3E */ clrlwi r5, r10, 0x18
+/* 802B242C 002AE08C 54 E8 06 3E */ clrlwi r8, r7, 0x18
+/* 802B2430 002AE090 7D 25 31 D6 */ mullw r9, r5, r6
+/* 802B2434 002AE094 38 E7 00 05 */ addi r7, r7, 5
+/* 802B2438 002AE098 38 A1 00 28 */ addi r5, r1, 0x28
+/* 802B243C 002AE09C 7C A5 42 14 */ add r5, r5, r8
+/* 802B2440 002AE0A0 7D 24 4A 14 */ add r9, r4, r9
+/* 802B2444 002AE0A4 7D 00 48 16 */ mulhwu r8, r0, r9
+/* 802B2448 002AE0A8 55 08 C9 FE */ srwi r8, r8, 7
+/* 802B244C 002AE0AC 1D 08 00 FF */ mulli r8, r8, 0xff
+/* 802B2450 002AE0B0 7D 08 48 50 */ subf r8, r8, r9
+/* 802B2454 002AE0B4 55 09 06 3E */ clrlwi r9, r8, 0x18
+/* 802B2458 002AE0B8 7D 09 31 D6 */ mullw r8, r9, r6
+/* 802B245C 002AE0BC 7D 23 48 AE */ lbzx r9, r3, r9
+/* 802B2460 002AE0C0 99 25 00 00 */ stb r9, 0(r5)
+/* 802B2464 002AE0C4 7D 24 42 14 */ add r9, r4, r8
+/* 802B2468 002AE0C8 7D 00 48 16 */ mulhwu r8, r0, r9
+/* 802B246C 002AE0CC 55 08 C9 FE */ srwi r8, r8, 7
+/* 802B2470 002AE0D0 1D 08 00 FF */ mulli r8, r8, 0xff
+/* 802B2474 002AE0D4 7D 08 48 50 */ subf r8, r8, r9
+/* 802B2478 002AE0D8 55 09 06 3E */ clrlwi r9, r8, 0x18
+/* 802B247C 002AE0DC 7D 09 31 D6 */ mullw r8, r9, r6
+/* 802B2480 002AE0E0 7D 23 48 AE */ lbzx r9, r3, r9
+/* 802B2484 002AE0E4 99 25 00 01 */ stb r9, 1(r5)
+/* 802B2488 002AE0E8 7D 24 42 14 */ add r9, r4, r8
+/* 802B248C 002AE0EC 7D 00 48 16 */ mulhwu r8, r0, r9
+/* 802B2490 002AE0F0 55 08 C9 FE */ srwi r8, r8, 7
+/* 802B2494 002AE0F4 1D 08 00 FF */ mulli r8, r8, 0xff
+/* 802B2498 002AE0F8 7D 08 48 50 */ subf r8, r8, r9
+/* 802B249C 002AE0FC 55 09 06 3E */ clrlwi r9, r8, 0x18
+/* 802B24A0 002AE100 7D 09 31 D6 */ mullw r8, r9, r6
+/* 802B24A4 002AE104 7D 23 48 AE */ lbzx r9, r3, r9
+/* 802B24A8 002AE108 99 25 00 02 */ stb r9, 2(r5)
+/* 802B24AC 002AE10C 7D 24 42 14 */ add r9, r4, r8
+/* 802B24B0 002AE110 7D 00 48 16 */ mulhwu r8, r0, r9
+/* 802B24B4 002AE114 55 08 C9 FE */ srwi r8, r8, 7
+/* 802B24B8 002AE118 1D 08 00 FF */ mulli r8, r8, 0xff
+/* 802B24BC 002AE11C 7D 08 48 50 */ subf r8, r8, r9
+/* 802B24C0 002AE120 55 09 06 3E */ clrlwi r9, r8, 0x18
+/* 802B24C4 002AE124 7D 09 31 D6 */ mullw r8, r9, r6
+/* 802B24C8 002AE128 7D 23 48 AE */ lbzx r9, r3, r9
+/* 802B24CC 002AE12C 99 25 00 03 */ stb r9, 3(r5)
+/* 802B24D0 002AE130 7D 24 42 14 */ add r9, r4, r8
+/* 802B24D4 002AE134 7D 00 48 16 */ mulhwu r8, r0, r9
+/* 802B24D8 002AE138 55 08 C9 FE */ srwi r8, r8, 7
+/* 802B24DC 002AE13C 1D 08 00 FF */ mulli r8, r8, 0xff
+/* 802B24E0 002AE140 7D 08 48 50 */ subf r8, r8, r9
+/* 802B24E4 002AE144 55 0A 06 3E */ clrlwi r10, r8, 0x18
+/* 802B24E8 002AE148 7D 03 50 AE */ lbzx r8, r3, r10
+/* 802B24EC 002AE14C 99 05 00 04 */ stb r8, 4(r5)
+/* 802B24F0 002AE150 42 00 FF 38 */ bdnz lbl_802B2428
+/* 802B24F4 002AE154 3A 7E 09 30 */ addi r19, r30, 0x930
+/* 802B24F8 002AE158 99 4D AE 83 */ stb r10, lbl_80640143-_SDA_BASE_(r13)
+/* 802B24FC 002AE15C 7E 2E 9A 14 */ add r17, r14, r19
+/* 802B2500 002AE160 7C 93 70 AE */ lbzx r4, r19, r14
+/* 802B2504 002AE164 88 B1 00 01 */ lbz r5, 1(r17)
+/* 802B2508 002AE168 38 7E 12 60 */ addi r3, r30, 0x1260
+/* 802B250C 002AE16C 88 D1 00 02 */ lbz r6, 2(r17)
+/* 802B2510 002AE170 88 F1 00 03 */ lbz r7, 3(r17)
+/* 802B2514 002AE174 89 11 00 04 */ lbz r8, 4(r17)
+/* 802B2518 002AE178 89 31 00 05 */ lbz r9, 5(r17)
+/* 802B251C 002AE17C 4C C6 31 82 */ crclr 6
+/* 802B2520 002AE180 48 00 13 41 */ bl DEBUGPrint
+/* 802B2524 002AE184 8B 61 00 2F */ lbz r27, 0x2f(r1)
+/* 802B2528 002AE188 38 7E 12 7C */ addi r3, r30, 0x127c
+/* 802B252C 002AE18C 8B 41 00 2E */ lbz r26, 0x2e(r1)
+/* 802B2530 002AE190 93 61 00 08 */ stw r27, 8(r1)
+/* 802B2534 002AE194 8B 81 00 30 */ lbz r28, 0x30(r1)
+/* 802B2538 002AE198 7F 4A D3 78 */ mr r10, r26
+/* 802B253C 002AE19C 8B A1 00 31 */ lbz r29, 0x31(r1)
+/* 802B2540 002AE1A0 93 81 00 0C */ stw r28, 0xc(r1)
+/* 802B2544 002AE1A4 8B 21 00 2D */ lbz r25, 0x2d(r1)
+/* 802B2548 002AE1A8 8B 01 00 2C */ lbz r24, 0x2c(r1)
+/* 802B254C 002AE1AC 8A E1 00 2B */ lbz r23, 0x2b(r1)
+/* 802B2550 002AE1B0 7F 29 CB 78 */ mr r9, r25
+/* 802B2554 002AE1B4 8A C1 00 2A */ lbz r22, 0x2a(r1)
+/* 802B2558 002AE1B8 7F 08 C3 78 */ mr r8, r24
+/* 802B255C 002AE1BC 8A A1 00 29 */ lbz r21, 0x29(r1)
+/* 802B2560 002AE1C0 7E E7 BB 78 */ mr r7, r23
+/* 802B2564 002AE1C4 93 A1 00 10 */ stw r29, 0x10(r1)
+/* 802B2568 002AE1C8 7E C6 B3 78 */ mr r6, r22
+/* 802B256C 002AE1CC 88 81 00 28 */ lbz r4, 0x28(r1)
+/* 802B2570 002AE1D0 7E A5 AB 78 */ mr r5, r21
+/* 802B2574 002AE1D4 4C C6 31 82 */ crclr 6
+/* 802B2578 002AE1D8 48 00 12 E9 */ bl DEBUGPrint
+/* 802B257C 002AE1DC 3B FE 09 60 */ addi r31, r30, 0x960
+/* 802B2580 002AE1E0 8A 41 00 28 */ lbz r18, 0x28(r1)
+/* 802B2584 002AE1E4 7C 1F D8 AE */ lbzx r0, r31, r27
+/* 802B2588 002AE1E8 38 7E 12 A4 */ addi r3, r30, 0x12a4
+/* 802B258C 002AE1EC 90 01 00 08 */ stw r0, 8(r1)
+/* 802B2590 002AE1F0 7C 1F E0 AE */ lbzx r0, r31, r28
+/* 802B2594 002AE1F4 90 01 00 0C */ stw r0, 0xc(r1)
+/* 802B2598 002AE1F8 7C 1F E8 AE */ lbzx r0, r31, r29
+/* 802B259C 002AE1FC 90 01 00 10 */ stw r0, 0x10(r1)
+/* 802B25A0 002AE200 7C 9F 90 AE */ lbzx r4, r31, r18
+/* 802B25A4 002AE204 7C BF A8 AE */ lbzx r5, r31, r21
+/* 802B25A8 002AE208 7C DF B0 AE */ lbzx r6, r31, r22
+/* 802B25AC 002AE20C 7C FF B8 AE */ lbzx r7, r31, r23
+/* 802B25B0 002AE210 7D 1F C0 AE */ lbzx r8, r31, r24
+/* 802B25B4 002AE214 7D 3F C8 AE */ lbzx r9, r31, r25
+/* 802B25B8 002AE218 7D 5F D0 AE */ lbzx r10, r31, r26
+/* 802B25BC 002AE21C 4C C6 31 82 */ crclr 6
+/* 802B25C0 002AE220 48 00 12 A1 */ bl DEBUGPrint
+/* 802B25C4 002AE224 4B FB C1 99 */ bl OSDisableInterrupts
+/* 802B25C8 002AE228 7C 1F A8 AE */ lbzx r0, r31, r21
+/* 802B25CC 002AE22C 7D 7F B0 AE */ lbzx r11, r31, r22
+/* 802B25D0 002AE230 90 61 00 34 */ stw r3, 0x34(r1)
+/* 802B25D4 002AE234 54 03 E8 04 */ slwi r3, r0, 0x1d
+/* 802B25D8 002AE238 54 07 0F FE */ srwi r7, r0, 0x1f
+/* 802B25DC 002AE23C 7D 1F E0 AE */ lbzx r8, r31, r28
+/* 802B25E0 002AE240 7C 67 18 50 */ subf r3, r7, r3
+/* 802B25E4 002AE244 55 65 E8 04 */ slwi r5, r11, 0x1d
+/* 802B25E8 002AE248 54 66 18 3E */ rotlwi r6, r3, 3
+/* 802B25EC 002AE24C 55 64 0F FE */ srwi r4, r11, 0x1f
+/* 802B25F0 002AE250 7C E6 3A 14 */ add r7, r6, r7
+/* 802B25F4 002AE254 55 0C 0F FE */ srwi r12, r8, 0x1f
+/* 802B25F8 002AE258 7C C4 28 50 */ subf r6, r4, r5
+/* 802B25FC 002AE25C 55 05 E8 04 */ slwi r5, r8, 0x1d
+/* 802B2600 002AE260 54 CA 18 3E */ rotlwi r10, r6, 3
+/* 802B2604 002AE264 54 E9 06 3E */ clrlwi r9, r7, 0x18
+/* 802B2608 002AE268 7D 4A 22 14 */ add r10, r10, r4
+/* 802B260C 002AE26C 7C 8C 28 50 */ subf r4, r12, r5
+/* 802B2610 002AE270 54 85 18 3E */ rotlwi r5, r4, 3
+/* 802B2614 002AE274 7E 5F 90 AE */ lbzx r18, r31, r18
+/* 802B2618 002AE278 7E 85 62 14 */ add r20, r5, r12
+/* 802B261C 002AE27C 7D D3 70 AE */ lbzx r14, r19, r14
+/* 802B2620 002AE280 7C 7F E8 AE */ lbzx r3, r31, r29
+/* 802B2624 002AE284 20 C9 00 08 */ subfic r6, r9, 8
+/* 802B2628 002AE288 7D C7 92 78 */ xor r7, r14, r18
+/* 802B262C 002AE28C 88 91 00 02 */ lbz r4, 2(r17)
+/* 802B2630 002AE290 7C E6 36 30 */ sraw r6, r7, r6
+/* 802B2634 002AE294 7D 9F C0 AE */ lbzx r12, r31, r24
+/* 802B2638 002AE298 7C E7 48 30 */ slw r7, r7, r9
+/* 802B263C 002AE29C 88 B1 00 01 */ lbz r5, 1(r17)
+/* 802B2640 002AE2A0 7C E6 33 78 */ or r6, r7, r6
+/* 802B2644 002AE2A4 55 4A 06 3E */ clrlwi r10, r10, 0x18
+/* 802B2648 002AE2A8 7C A9 62 78 */ xor r9, r5, r12
+/* 802B264C 002AE2AC 54 6E E8 04 */ slwi r14, r3, 0x1d
+/* 802B2650 002AE2B0 20 AA 00 08 */ subfic r5, r10, 8
+/* 802B2654 002AE2B4 54 73 0F FE */ srwi r19, r3, 0x1f
+/* 802B2658 002AE2B8 7D D3 70 50 */ subf r14, r19, r14
+/* 802B265C 002AE2BC 7C 8B 5A 78 */ xor r11, r4, r11
+/* 802B2660 002AE2C0 55 C7 18 3E */ rotlwi r7, r14, 3
+/* 802B2664 002AE2C4 7D 25 2E 30 */ sraw r5, r9, r5
+/* 802B2668 002AE2C8 7D 2A 50 30 */ slw r10, r9, r10
+/* 802B266C 002AE2CC 56 8E 06 3E */ clrlwi r14, r20, 0x18
+/* 802B2670 002AE2D0 20 8E 00 08 */ subfic r4, r14, 8
+/* 802B2674 002AE2D4 7E 67 9A 14 */ add r19, r7, r19
+/* 802B2678 002AE2D8 7D 45 2B 78 */ or r5, r10, r5
+/* 802B267C 002AE2DC 7C FF D0 AE */ lbzx r7, r31, r26
+/* 802B2680 002AE2E0 89 31 00 03 */ lbz r9, 3(r17)
+/* 802B2684 002AE2E4 7D 64 26 30 */ sraw r4, r11, r4
+/* 802B2688 002AE2E8 56 6A 06 3E */ clrlwi r10, r19, 0x18
+/* 802B268C 002AE2EC 7D 6B 70 30 */ slw r11, r11, r14
+/* 802B2690 002AE2F0 7D 29 3A 78 */ xor r9, r9, r7
+/* 802B2694 002AE2F4 54 C6 06 3E */ clrlwi r6, r6, 0x18
+/* 802B2698 002AE2F8 7D 64 23 78 */ or r4, r11, r4
+/* 802B269C 002AE2FC 22 6A 00 08 */ subfic r19, r10, 8
+/* 802B26A0 002AE300 7D 2B 50 30 */ slw r11, r9, r10
+/* 802B26A4 002AE304 7D 2A 9E 30 */ sraw r10, r9, r19
+/* 802B26A8 002AE308 7D 3F D8 AE */ lbzx r9, r31, r27
+/* 802B26AC 002AE30C 7D 6B 53 78 */ or r11, r11, r10
+/* 802B26B0 002AE310 54 8A 06 3E */ clrlwi r10, r4, 0x18
+/* 802B26B4 002AE314 55 64 06 3E */ clrlwi r4, r11, 0x18
+/* 802B26B8 002AE318 7D 67 32 14 */ add r11, r7, r6
+/* 802B26BC 002AE31C 7C C9 22 14 */ add r6, r9, r4
+/* 802B26C0 002AE320 54 A7 06 3E */ clrlwi r7, r5, 0x18
+/* 802B26C4 002AE324 7D 25 5A 78 */ xor r5, r9, r11
+/* 802B26C8 002AE328 7C 9F B8 AE */ lbzx r4, r31, r23
+/* 802B26CC 002AE32C 54 A5 06 3E */ clrlwi r5, r5, 0x18
+/* 802B26D0 002AE330 7D 4C 52 14 */ add r10, r12, r10
+/* 802B26D4 002AE334 7D 24 3A 14 */ add r9, r4, r7
+/* 802B26D8 002AE338 7E 47 32 78 */ xor r7, r18, r6
+/* 802B26DC 002AE33C 7C 0B 4A 78 */ xor r11, r0, r9
+/* 802B26E0 002AE340 7D 3F C8 AE */ lbzx r9, r31, r25
+/* 802B26E4 002AE344 88 D1 00 04 */ lbz r6, 4(r17)
+/* 802B26E8 002AE348 55 6E 06 3E */ clrlwi r14, r11, 0x18
+/* 802B26EC 002AE34C 7D 2A 52 78 */ xor r10, r9, r10
+/* 802B26F0 002AE350 98 A1 00 38 */ stb r5, 0x38(r1)
+/* 802B26F4 002AE354 54 F3 06 3E */ clrlwi r19, r7, 0x18
+/* 802B26F8 002AE358 7C C6 4A 78 */ xor r6, r6, r9
+/* 802B26FC 002AE35C 55 54 06 3E */ clrlwi r20, r10, 0x18
+/* 802B2700 002AE360 55 87 E8 04 */ slwi r7, r12, 0x1d
+/* 802B2704 002AE364 55 85 0F FE */ srwi r5, r12, 0x1f
+/* 802B2708 002AE368 7C E5 38 50 */ subf r7, r5, r7
+/* 802B270C 002AE36C 89 71 00 05 */ lbz r11, 5(r17)
+/* 802B2710 002AE370 54 EC 18 3E */ rotlwi r12, r7, 3
+/* 802B2714 002AE374 54 8A 0F FE */ srwi r10, r4, 0x1f
+/* 802B2718 002AE378 7D 6B 1A 78 */ xor r11, r11, r3
+/* 802B271C 002AE37C 54 87 E8 04 */ slwi r7, r4, 0x1d
+/* 802B2720 002AE380 7C 6C 2A 14 */ add r3, r12, r5
+/* 802B2724 002AE384 54 C5 06 3E */ clrlwi r5, r6, 0x18
+/* 802B2728 002AE388 54 66 06 3E */ clrlwi r6, r3, 0x18
+/* 802B272C 002AE38C 7C 6A 38 50 */ subf r3, r10, r7
+/* 802B2730 002AE390 55 67 06 3E */ clrlwi r7, r11, 0x18
+/* 802B2734 002AE394 54 64 18 3E */ rotlwi r4, r3, 3
+/* 802B2738 002AE398 21 66 00 08 */ subfic r11, r6, 8
+/* 802B273C 002AE39C 7C A3 30 30 */ slw r3, r5, r6
+/* 802B2740 002AE3A0 7C C4 52 14 */ add r6, r4, r10
+/* 802B2744 002AE3A4 7C AC 5E 30 */ sraw r12, r5, r11
+/* 802B2748 002AE3A8 54 CA 06 3E */ clrlwi r10, r6, 0x18
+/* 802B274C 002AE3AC 88 81 00 38 */ lbz r4, 0x38(r1)
+/* 802B2750 002AE3B0 7C 63 63 78 */ or r3, r3, r12
+/* 802B2754 002AE3B4 7D C5 73 78 */ mr r5, r14
+/* 802B2758 002AE3B8 21 6A 00 08 */ subfic r11, r10, 8
+/* 802B275C 002AE3BC 7C EC 50 30 */ slw r12, r7, r10
+/* 802B2760 002AE3C0 7C EA 5E 30 */ sraw r10, r7, r11
+/* 802B2764 002AE3C4 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 802B2768 002AE3C8 7D 8A 53 78 */ or r10, r12, r10
+/* 802B276C 002AE3CC 7E 86 A3 78 */ mr r6, r20
+/* 802B2770 002AE3D0 7D 68 1A 14 */ add r11, r8, r3
+/* 802B2774 002AE3D4 7E 67 9B 78 */ mr r7, r19
+/* 802B2778 002AE3D8 55 4A 06 3E */ clrlwi r10, r10, 0x18
+/* 802B277C 002AE3DC 38 7E 12 CC */ addi r3, r30, 0x12cc
+/* 802B2780 002AE3E0 7D 08 52 14 */ add r8, r8, r10
+/* 802B2784 002AE3E4 7C 0A 5A 78 */ xor r10, r0, r11
+/* 802B2788 002AE3E8 7D 20 42 78 */ xor r0, r9, r8
+/* 802B278C 002AE3EC 55 52 06 3E */ clrlwi r18, r10, 0x18
+/* 802B2790 002AE3F0 54 11 06 3E */ clrlwi r17, r0, 0x18
+/* 802B2794 002AE3F4 7E 48 93 78 */ mr r8, r18
+/* 802B2798 002AE3F8 7E 29 8B 78 */ mr r9, r17
+/* 802B279C 002AE3FC 4C C6 31 82 */ crclr 6
+/* 802B27A0 002AE400 48 00 10 C1 */ bl DEBUGPrint
+/* 802B27A4 002AE404 38 6F 00 01 */ addi r3, r15, 1
+/* 802B27A8 002AE408 38 0F 00 02 */ addi r0, r15, 2
+/* 802B27AC 002AE40C 54 6A 40 2E */ slwi r10, r3, 8
+/* 802B27B0 002AE410 89 61 00 28 */ lbz r11, 0x28(r1)
+/* 802B27B4 002AE414 54 00 40 2E */ slwi r0, r0, 8
+/* 802B27B8 002AE418 38 7E 12 E8 */ addi r3, r30, 0x12e8
+/* 802B27BC 002AE41C 7C 92 52 14 */ add r4, r18, r10
+/* 802B27C0 002AE420 7C D1 52 14 */ add r6, r17, r10
+/* 802B27C4 002AE424 90 81 00 3C */ stw r4, 0x3c(r1)
+/* 802B27C8 002AE428 7C 97 02 14 */ add r4, r23, r0
+/* 802B27CC 002AE42C 7C FB 02 14 */ add r7, r27, r0
+/* 802B27D0 002AE430 7C B8 02 14 */ add r5, r24, r0
+/* 802B27D4 002AE434 90 81 00 40 */ stw r4, 0x40(r1)
+/* 802B27D8 002AE438 7D FA 02 14 */ add r15, r26, r0
+/* 802B27DC 002AE43C 88 81 00 38 */ lbz r4, 0x38(r1)
+/* 802B27E0 002AE440 7F 55 52 14 */ add r26, r21, r10
+/* 802B27E4 002AE444 7D 8B 52 14 */ add r12, r11, r10
+/* 802B27E8 002AE448 7F 7C 02 14 */ add r27, r28, r0
+/* 802B27EC 002AE44C 7C 84 52 14 */ add r4, r4, r10
+/* 802B27F0 002AE450 7F 8B 02 14 */ add r28, r11, r0
+/* 802B27F4 002AE454 90 81 00 44 */ stw r4, 0x44(r1)
+/* 802B27F8 002AE458 7C 96 02 14 */ add r4, r22, r0
+/* 802B27FC 002AE45C 7D 39 02 14 */ add r9, r25, r0
+/* 802B2800 002AE460 7D 14 52 14 */ add r8, r20, r10
+/* 802B2804 002AE464 90 81 00 48 */ stw r4, 0x48(r1)
+/* 802B2808 002AE468 7C 8E 52 14 */ add r4, r14, r10
+/* 802B280C 002AE46C 7F 13 52 14 */ add r24, r19, r10
+/* 802B2810 002AE470 7D 77 52 14 */ add r11, r23, r10
+/* 802B2814 002AE474 7D 56 52 14 */ add r10, r22, r10
+/* 802B2818 002AE478 82 C1 00 3C */ lwz r22, 0x3c(r1)
+/* 802B281C 002AE47C 7F 3D 02 14 */ add r25, r29, r0
+/* 802B2820 002AE480 7E B5 02 14 */ add r21, r21, r0
+/* 802B2824 002AE484 7C 16 F8 AE */ lbzx r0, r22, r31
+/* 802B2828 002AE488 82 C1 00 40 */ lwz r22, 0x40(r1)
+/* 802B282C 002AE48C 7C E7 F8 AE */ lbzx r7, r7, r31
+/* 802B2830 002AE490 7E D6 F8 AE */ lbzx r22, r22, r31
+/* 802B2834 002AE494 7C 17 3A 78 */ xor r23, r0, r7
+/* 802B2838 002AE498 7C C6 F8 AE */ lbzx r6, r6, r31
+/* 802B283C 002AE49C 7C 16 B2 78 */ xor r22, r0, r22
+/* 802B2840 002AE4A0 7C 04 F8 AE */ lbzx r0, r4, r31
+/* 802B2844 002AE4A4 7C C4 3A 78 */ xor r4, r6, r7
+/* 802B2848 002AE4A8 7C A5 F8 AE */ lbzx r5, r5, r31
+/* 802B284C 002AE4AC 7C FB F8 AE */ lbzx r7, r27, r31
+/* 802B2850 002AE4B0 7C C6 2A 78 */ xor r6, r6, r5
+/* 802B2854 002AE4B4 7C 05 2A 78 */ xor r5, r0, r5
+/* 802B2858 002AE4B8 7C 1B 3A 78 */ xor r27, r0, r7
+/* 802B285C 002AE4BC 7F 5A F8 AE */ lbzx r26, r26, r31
+/* 802B2860 002AE4C0 7C 09 F8 AE */ lbzx r0, r9, r31
+/* 802B2864 002AE4C4 7F 47 3A 78 */ xor r7, r26, r7
+/* 802B2868 002AE4C8 7D 28 F8 AE */ lbzx r9, r8, r31
+/* 802B286C 002AE4CC 7D 19 F8 AE */ lbzx r8, r25, r31
+/* 802B2870 002AE4D0 7F 58 F8 AE */ lbzx r26, r24, r31
+/* 802B2874 002AE4D4 7D 39 02 78 */ xor r25, r9, r0
+/* 802B2878 002AE4D8 7F 1C F8 AE */ lbzx r24, r28, r31
+/* 802B287C 002AE4DC 7D 3C 42 78 */ xor r28, r9, r8
+/* 802B2880 002AE4E0 7D 2B F8 AE */ lbzx r9, r11, r31
+/* 802B2884 002AE4E4 7F 48 42 78 */ xor r8, r26, r8
+/* 802B2888 002AE4E8 7F 5A C2 78 */ xor r26, r26, r24
+/* 802B288C 002AE4EC 81 61 00 44 */ lwz r11, 0x44(r1)
+/* 802B2890 002AE4F0 7D 20 02 78 */ xor r0, r9, r0
+/* 802B2894 002AE4F4 83 01 00 48 */ lwz r24, 0x48(r1)
+/* 802B2898 002AE4F8 7D 6B F8 AE */ lbzx r11, r11, r31
+/* 802B289C 002AE4FC 7F 18 F8 AE */ lbzx r24, r24, r31
+/* 802B28A0 002AE500 7D 35 F8 AE */ lbzx r9, r21, r31
+/* 802B28A4 002AE504 7D 75 C2 78 */ xor r21, r11, r24
+/* 802B28A8 002AE508 7D EF F8 AE */ lbzx r15, r15, r31
+/* 802B28AC 002AE50C 7D 6B 4A 78 */ xor r11, r11, r9
+/* 802B28B0 002AE510 7D 2A F8 AE */ lbzx r9, r10, r31
+/* 802B28B4 002AE514 7D 8C F8 AE */ lbzx r12, r12, r31
+/* 802B28B8 002AE518 7D 29 7A 78 */ xor r9, r9, r15
+/* 802B28BC 002AE51C 9A C1 00 20 */ stb r22, 0x20(r1)
+/* 802B28C0 002AE520 7D 8A 7A 78 */ xor r10, r12, r15
+/* 802B28C4 002AE524 9B 21 00 21 */ stb r25, 0x21(r1)
+/* 802B28C8 002AE528 98 81 00 22 */ stb r4, 0x22(r1)
+/* 802B28CC 002AE52C 9A A1 00 23 */ stb r21, 0x23(r1)
+/* 802B28D0 002AE530 98 A1 00 24 */ stb r5, 0x24(r1)
+/* 802B28D4 002AE534 99 01 00 25 */ stb r8, 0x25(r1)
+/* 802B28D8 002AE538 99 41 00 26 */ stb r10, 0x26(r1)
+/* 802B28DC 002AE53C 98 E1 00 27 */ stb r7, 0x27(r1)
+/* 802B28E0 002AE540 99 61 00 18 */ stb r11, 0x18(r1)
+/* 802B28E4 002AE544 98 C1 00 19 */ stb r6, 0x19(r1)
+/* 802B28E8 002AE548 9B 41 00 1A */ stb r26, 0x1a(r1)
+/* 802B28EC 002AE54C 9B 81 00 1B */ stb r28, 0x1b(r1)
+/* 802B28F0 002AE550 9A E1 00 1C */ stb r23, 0x1c(r1)
+/* 802B28F4 002AE554 9B 61 00 1D */ stb r27, 0x1d(r1)
+/* 802B28F8 002AE558 98 01 00 1E */ stb r0, 0x1e(r1)
+/* 802B28FC 002AE55C 99 21 00 1F */ stb r9, 0x1f(r1)
+/* 802B2900 002AE560 90 E1 00 08 */ stw r7, 8(r1)
+/* 802B2904 002AE564 88 81 00 20 */ lbz r4, 0x20(r1)
+/* 802B2908 002AE568 88 A1 00 21 */ lbz r5, 0x21(r1)
+/* 802B290C 002AE56C 88 C1 00 22 */ lbz r6, 0x22(r1)
+/* 802B2910 002AE570 88 E1 00 23 */ lbz r7, 0x23(r1)
+/* 802B2914 002AE574 89 01 00 24 */ lbz r8, 0x24(r1)
+/* 802B2918 002AE578 89 21 00 25 */ lbz r9, 0x25(r1)
+/* 802B291C 002AE57C 89 41 00 26 */ lbz r10, 0x26(r1)
+/* 802B2920 002AE580 4C C6 31 82 */ crclr 6
+/* 802B2924 002AE584 48 00 0F 3D */ bl DEBUGPrint
+/* 802B2928 002AE588 88 01 00 1F */ lbz r0, 0x1f(r1)
+/* 802B292C 002AE58C 38 7E 13 08 */ addi r3, r30, 0x1308
+/* 802B2930 002AE590 90 01 00 08 */ stw r0, 8(r1)
+/* 802B2934 002AE594 88 81 00 18 */ lbz r4, 0x18(r1)
+/* 802B2938 002AE598 88 A1 00 19 */ lbz r5, 0x19(r1)
+/* 802B293C 002AE59C 88 C1 00 1A */ lbz r6, 0x1a(r1)
+/* 802B2940 002AE5A0 88 E1 00 1B */ lbz r7, 0x1b(r1)
+/* 802B2944 002AE5A4 89 01 00 1C */ lbz r8, 0x1c(r1)
+/* 802B2948 002AE5A8 89 21 00 1D */ lbz r9, 0x1d(r1)
+/* 802B294C 002AE5AC 89 41 00 1E */ lbz r10, 0x1e(r1)
+/* 802B2950 002AE5B0 4C C6 31 82 */ crclr 6
+/* 802B2954 002AE5B4 48 00 0F 0D */ bl DEBUGPrint
+/* 802B2958 002AE5B8 38 60 00 00 */ li r3, 0
+/* 802B295C 002AE5BC 38 C1 00 28 */ addi r6, r1, 0x28
+/* 802B2960 002AE5C0 20 83 00 09 */ subfic r4, r3, 9
+/* 802B2964 002AE5C4 38 00 00 02 */ li r0, 2
+/* 802B2968 002AE5C8 38 60 00 01 */ li r3, 1
+/* 802B296C 002AE5CC 7C A6 20 AE */ lbzx r5, r6, r4
+/* 802B2970 002AE5D0 20 63 00 09 */ subfic r3, r3, 9
+/* 802B2974 002AE5D4 7C 86 18 AE */ lbzx r4, r6, r3
+/* 802B2978 002AE5D8 20 60 00 09 */ subfic r3, r0, 9
+/* 802B297C 002AE5DC 98 B0 09 14 */ stb r5, 0x914(r16)
+/* 802B2980 002AE5E0 38 00 00 03 */ li r0, 3
+/* 802B2984 002AE5E4 7C A6 18 AE */ lbzx r5, r6, r3
+/* 802B2988 002AE5E8 20 60 00 09 */ subfic r3, r0, 9
+/* 802B298C 002AE5EC 98 90 09 15 */ stb r4, 0x915(r16)
+/* 802B2990 002AE5F0 38 00 00 04 */ li r0, 4
+/* 802B2994 002AE5F4 7C 86 18 AE */ lbzx r4, r6, r3
+/* 802B2998 002AE5F8 20 00 00 09 */ subfic r0, r0, 9
+/* 802B299C 002AE5FC 98 B0 09 16 */ stb r5, 0x916(r16)
+/* 802B29A0 002AE600 38 60 00 05 */ li r3, 5
+/* 802B29A4 002AE604 7C 06 00 AE */ lbzx r0, r6, r0
+/* 802B29A8 002AE608 98 90 09 17 */ stb r4, 0x917(r16)
+/* 802B29AC 002AE60C 20 83 00 09 */ subfic r4, r3, 9
+/* 802B29B0 002AE610 38 60 00 06 */ li r3, 6
+/* 802B29B4 002AE614 7C A6 20 AE */ lbzx r5, r6, r4
+/* 802B29B8 002AE618 98 10 09 18 */ stb r0, 0x918(r16)
+/* 802B29BC 002AE61C 20 63 00 09 */ subfic r3, r3, 9
+/* 802B29C0 002AE620 38 00 00 07 */ li r0, 7
+/* 802B29C4 002AE624 7C 86 18 AE */ lbzx r4, r6, r3
+/* 802B29C8 002AE628 98 B0 09 19 */ stb r5, 0x919(r16)
+/* 802B29CC 002AE62C 20 60 00 09 */ subfic r3, r0, 9
+/* 802B29D0 002AE630 38 00 00 08 */ li r0, 8
+/* 802B29D4 002AE634 7C A6 18 AE */ lbzx r5, r6, r3
+/* 802B29D8 002AE638 98 90 09 1A */ stb r4, 0x91a(r16)
+/* 802B29DC 002AE63C 20 60 00 09 */ subfic r3, r0, 9
+/* 802B29E0 002AE640 38 00 00 09 */ li r0, 9
+/* 802B29E4 002AE644 7C 86 18 AE */ lbzx r4, r6, r3
+/* 802B29E8 002AE648 98 B0 09 1B */ stb r5, 0x91b(r16)
+/* 802B29EC 002AE64C 20 00 00 09 */ subfic r0, r0, 9
+/* 802B29F0 002AE650 7C 06 00 AE */ lbzx r0, r6, r0
+/* 802B29F4 002AE654 38 70 09 24 */ addi r3, r16, 0x924
+/* 802B29F8 002AE658 98 90 09 1C */ stb r4, 0x91c(r16)
+/* 802B29FC 002AE65C 38 81 00 20 */ addi r4, r1, 0x20
+/* 802B2A00 002AE660 38 A0 00 08 */ li r5, 8
+/* 802B2A04 002AE664 98 10 09 1D */ stb r0, 0x91d(r16)
+/* 802B2A08 002AE668 88 01 00 38 */ lbz r0, 0x38(r1)
+/* 802B2A0C 002AE66C 9A 30 09 1E */ stb r17, 0x91e(r16)
+/* 802B2A10 002AE670 9A 50 09 1F */ stb r18, 0x91f(r16)
+/* 802B2A14 002AE674 9A 70 09 20 */ stb r19, 0x920(r16)
+/* 802B2A18 002AE678 9A 90 09 21 */ stb r20, 0x921(r16)
+/* 802B2A1C 002AE67C 99 D0 09 22 */ stb r14, 0x922(r16)
+/* 802B2A20 002AE680 98 10 09 23 */ stb r0, 0x923(r16)
+/* 802B2A24 002AE684 4B D5 15 DD */ bl memcpy
+/* 802B2A28 002AE688 38 70 09 2C */ addi r3, r16, 0x92c
+/* 802B2A2C 002AE68C 38 81 00 18 */ addi r4, r1, 0x18
+/* 802B2A30 002AE690 38 A0 00 08 */ li r5, 8
+/* 802B2A34 002AE694 4B D5 15 CD */ bl memcpy
+/* 802B2A38 002AE698 80 61 00 34 */ lwz r3, 0x34(r1)
+/* 802B2A3C 002AE69C 4B FB BD 49 */ bl OSRestoreInterrupts
+/* 802B2A40 002AE6A0 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 802B2A44 002AE6A4 4B F1 46 FD */ bl __restore_gpr
+/* 802B2A48 002AE6A8 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 802B2A4C 002AE6AC 7C 08 03 A6 */ mtlr r0
+/* 802B2A50 002AE6B0 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 802B2A54 002AE6B4 4E 80 00 20 */ blr
+
+.global WPADiDecode
+WPADiDecode:
+/* 802B2A58 002AE6B8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802B2A5C 002AE6BC 3D 00 80 53 */ lis r8, lbl_80536D70@ha
+/* 802B2A60 002AE6C0 2C 05 00 00 */ cmpwi r5, 0
+/* 802B2A64 002AE6C4 54 60 10 3A */ slwi r0, r3, 2
+/* 802B2A68 002AE6C8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802B2A6C 002AE6CC 39 08 6D 70 */ addi r8, r8, lbl_80536D70@l
+/* 802B2A70 002AE6D0 38 E0 00 00 */ li r7, 0
+/* 802B2A74 002AE6D4 93 C1 00 08 */ stw r30, 8(r1)
+/* 802B2A78 002AE6D8 7C 08 00 2E */ lwzx r0, r8, r0
+/* 802B2A7C 002AE6DC 41 82 02 8C */ beq lbl_802B2D08
+/* 802B2A80 002AE6E0 28 05 00 08 */ cmplwi r5, 8
+/* 802B2A84 002AE6E4 3C 65 00 01 */ addis r3, r5, 1
+/* 802B2A88 002AE6E8 38 63 FF F8 */ addi r3, r3, -8
+/* 802B2A8C 002AE6EC 40 81 02 24 */ ble lbl_802B2CB0
+/* 802B2A90 002AE6F0 54 68 04 3E */ clrlwi r8, r3, 0x10
+/* 802B2A94 002AE6F4 38 68 00 07 */ addi r3, r8, 7
+/* 802B2A98 002AE6F8 54 63 E8 FE */ srwi r3, r3, 3
+/* 802B2A9C 002AE6FC 7C 69 03 A6 */ mtctr r3
+/* 802B2AA0 002AE700 28 08 00 00 */ cmplwi r8, 0
+/* 802B2AA4 002AE704 40 81 02 0C */ ble lbl_802B2CB0
+lbl_802B2AA8:
+/* 802B2AA8 002AE708 54 FE 04 3E */ clrlwi r30, r7, 0x10
+/* 802B2AAC 002AE70C 38 67 00 01 */ addi r3, r7, 1
+/* 802B2AB0 002AE710 7D 66 F2 14 */ add r11, r6, r30
+/* 802B2AB4 002AE714 39 07 00 02 */ addi r8, r7, 2
+/* 802B2AB8 002AE718 55 6A E8 04 */ slwi r10, r11, 0x1d
+/* 802B2ABC 002AE71C 54 69 04 3E */ clrlwi r9, r3, 0x10
+/* 802B2AC0 002AE720 55 6C 0F FE */ srwi r12, r11, 0x1f
+/* 802B2AC4 002AE724 7C 64 F2 14 */ add r3, r4, r30
+/* 802B2AC8 002AE728 7D 4C 50 50 */ subf r10, r12, r10
+/* 802B2ACC 002AE72C 7D 66 4A 14 */ add r11, r6, r9
+/* 802B2AD0 002AE730 55 4A 18 3E */ rotlwi r10, r10, 3
+/* 802B2AD4 002AE734 55 09 04 3E */ clrlwi r9, r8, 0x10
+/* 802B2AD8 002AE738 7D 4A 62 14 */ add r10, r10, r12
+/* 802B2ADC 002AE73C 39 07 00 03 */ addi r8, r7, 3
+/* 802B2AE0 002AE740 55 4C 06 3E */ clrlwi r12, r10, 0x18
+/* 802B2AE4 002AE744 8B E3 00 00 */ lbz r31, 0(r3)
+/* 802B2AE8 002AE748 7F C0 62 14 */ add r30, r0, r12
+/* 802B2AEC 002AE74C 7D 46 4A 14 */ add r10, r6, r9
+/* 802B2AF0 002AE750 89 9E 09 2C */ lbz r12, 0x92c(r30)
+/* 802B2AF4 002AE754 55 69 E8 04 */ slwi r9, r11, 0x1d
+/* 802B2AF8 002AE758 55 6B 0F FE */ srwi r11, r11, 0x1f
+/* 802B2AFC 002AE75C 8B DE 09 24 */ lbz r30, 0x924(r30)
+/* 802B2B00 002AE760 7D 2B 48 50 */ subf r9, r11, r9
+/* 802B2B04 002AE764 7F EC 62 78 */ xor r12, r31, r12
+/* 802B2B08 002AE768 55 29 18 3E */ rotlwi r9, r9, 3
+/* 802B2B0C 002AE76C 55 08 04 3E */ clrlwi r8, r8, 0x10
+/* 802B2B10 002AE770 7D 9E 62 14 */ add r12, r30, r12
+/* 802B2B14 002AE774 7D 29 5A 14 */ add r9, r9, r11
+/* 802B2B18 002AE778 99 83 00 00 */ stb r12, 0(r3)
+/* 802B2B1C 002AE77C 55 29 06 3E */ clrlwi r9, r9, 0x18
+/* 802B2B20 002AE780 7D 06 42 14 */ add r8, r6, r8
+/* 802B2B24 002AE784 7F C0 4A 14 */ add r30, r0, r9
+/* 802B2B28 002AE788 89 83 00 01 */ lbz r12, 1(r3)
+/* 802B2B2C 002AE78C 55 49 E8 04 */ slwi r9, r10, 0x1d
+/* 802B2B30 002AE790 55 4A 0F FE */ srwi r10, r10, 0x1f
+/* 802B2B34 002AE794 89 7E 09 2C */ lbz r11, 0x92c(r30)
+/* 802B2B38 002AE798 7D 2A 48 50 */ subf r9, r10, r9
+/* 802B2B3C 002AE79C 55 29 18 3E */ rotlwi r9, r9, 3
+/* 802B2B40 002AE7A0 8B FE 09 24 */ lbz r31, 0x924(r30)
+/* 802B2B44 002AE7A4 7D 29 52 14 */ add r9, r9, r10
+/* 802B2B48 002AE7A8 7D 8B 5A 78 */ xor r11, r12, r11
+/* 802B2B4C 002AE7AC 7D 7F 5A 14 */ add r11, r31, r11
+/* 802B2B50 002AE7B0 55 0A 0F FE */ srwi r10, r8, 0x1f
+/* 802B2B54 002AE7B4 99 63 00 01 */ stb r11, 1(r3)
+/* 802B2B58 002AE7B8 55 29 06 3E */ clrlwi r9, r9, 0x18
+/* 802B2B5C 002AE7BC 7F C0 4A 14 */ add r30, r0, r9
+/* 802B2B60 002AE7C0 55 09 E8 04 */ slwi r9, r8, 0x1d
+/* 802B2B64 002AE7C4 39 07 00 04 */ addi r8, r7, 4
+/* 802B2B68 002AE7C8 7D 2A 48 50 */ subf r9, r10, r9
+/* 802B2B6C 002AE7CC 89 83 00 02 */ lbz r12, 2(r3)
+/* 802B2B70 002AE7D0 55 29 18 3E */ rotlwi r9, r9, 3
+/* 802B2B74 002AE7D4 55 08 04 3E */ clrlwi r8, r8, 0x10
+/* 802B2B78 002AE7D8 89 7E 09 2C */ lbz r11, 0x92c(r30)
+/* 802B2B7C 002AE7DC 7D 29 52 14 */ add r9, r9, r10
+/* 802B2B80 002AE7E0 8B FE 09 24 */ lbz r31, 0x924(r30)
+/* 802B2B84 002AE7E4 7D 06 42 14 */ add r8, r6, r8
+/* 802B2B88 002AE7E8 7D 8A 5A 78 */ xor r10, r12, r11
+/* 802B2B8C 002AE7EC 55 2B 06 3E */ clrlwi r11, r9, 0x18
+/* 802B2B90 002AE7F0 7D 5F 52 14 */ add r10, r31, r10
+/* 802B2B94 002AE7F4 55 09 E8 04 */ slwi r9, r8, 0x1d
+/* 802B2B98 002AE7F8 99 43 00 02 */ stb r10, 2(r3)
+/* 802B2B9C 002AE7FC 7F C0 5A 14 */ add r30, r0, r11
+/* 802B2BA0 002AE800 55 0A 0F FE */ srwi r10, r8, 0x1f
+/* 802B2BA4 002AE804 39 07 00 05 */ addi r8, r7, 5
+/* 802B2BA8 002AE808 7D 2A 48 50 */ subf r9, r10, r9
+/* 802B2BAC 002AE80C 89 83 00 03 */ lbz r12, 3(r3)
+/* 802B2BB0 002AE810 55 29 18 3E */ rotlwi r9, r9, 3
+/* 802B2BB4 002AE814 89 7E 09 2C */ lbz r11, 0x92c(r30)
+/* 802B2BB8 002AE818 55 08 04 3E */ clrlwi r8, r8, 0x10
+/* 802B2BBC 002AE81C 8B FE 09 24 */ lbz r31, 0x924(r30)
+/* 802B2BC0 002AE820 7D 49 52 14 */ add r10, r9, r10
+/* 802B2BC4 002AE824 7D 26 42 14 */ add r9, r6, r8
+/* 802B2BC8 002AE828 7D 88 5A 78 */ xor r8, r12, r11
+/* 802B2BCC 002AE82C 55 4B 06 3E */ clrlwi r11, r10, 0x18
+/* 802B2BD0 002AE830 7D 5F 42 14 */ add r10, r31, r8
+/* 802B2BD4 002AE834 55 28 E8 04 */ slwi r8, r9, 0x1d
+/* 802B2BD8 002AE838 55 29 0F FE */ srwi r9, r9, 0x1f
+/* 802B2BDC 002AE83C 99 43 00 03 */ stb r10, 3(r3)
+/* 802B2BE0 002AE840 7D 80 5A 14 */ add r12, r0, r11
+/* 802B2BE4 002AE844 7D 09 40 50 */ subf r8, r9, r8
+/* 802B2BE8 002AE848 89 4C 09 2C */ lbz r10, 0x92c(r12)
+/* 802B2BEC 002AE84C 55 08 18 3E */ rotlwi r8, r8, 3
+/* 802B2BF0 002AE850 89 63 00 04 */ lbz r11, 4(r3)
+/* 802B2BF4 002AE854 7D 08 4A 14 */ add r8, r8, r9
+/* 802B2BF8 002AE858 89 8C 09 24 */ lbz r12, 0x924(r12)
+/* 802B2BFC 002AE85C 7D 69 52 78 */ xor r9, r11, r10
+/* 802B2C00 002AE860 7D 2C 4A 14 */ add r9, r12, r9
+/* 802B2C04 002AE864 55 0A 06 3E */ clrlwi r10, r8, 0x18
+/* 802B2C08 002AE868 99 23 00 04 */ stb r9, 4(r3)
+/* 802B2C0C 002AE86C 39 07 00 06 */ addi r8, r7, 6
+/* 802B2C10 002AE870 7F C0 52 14 */ add r30, r0, r10
+/* 802B2C14 002AE874 55 09 04 3E */ clrlwi r9, r8, 0x10
+/* 802B2C18 002AE878 89 83 00 05 */ lbz r12, 5(r3)
+/* 802B2C1C 002AE87C 7D 46 4A 14 */ add r10, r6, r9
+/* 802B2C20 002AE880 39 07 00 07 */ addi r8, r7, 7
+/* 802B2C24 002AE884 55 49 E8 04 */ slwi r9, r10, 0x1d
+/* 802B2C28 002AE888 8B FE 09 24 */ lbz r31, 0x924(r30)
+/* 802B2C2C 002AE88C 55 4B 0F FE */ srwi r11, r10, 0x1f
+/* 802B2C30 002AE890 89 5E 09 2C */ lbz r10, 0x92c(r30)
+/* 802B2C34 002AE894 7D 2B 48 50 */ subf r9, r11, r9
+/* 802B2C38 002AE898 55 08 04 3E */ clrlwi r8, r8, 0x10
+/* 802B2C3C 002AE89C 7D 8C 52 78 */ xor r12, r12, r10
+/* 802B2C40 002AE8A0 38 E7 00 08 */ addi r7, r7, 8
+/* 802B2C44 002AE8A4 55 2A 18 3E */ rotlwi r10, r9, 3
+/* 802B2C48 002AE8A8 7D 26 42 14 */ add r9, r6, r8
+/* 802B2C4C 002AE8AC 7D 9F 62 14 */ add r12, r31, r12
+/* 802B2C50 002AE8B0 7D 0A 5A 14 */ add r8, r10, r11
+/* 802B2C54 002AE8B4 99 83 00 05 */ stb r12, 5(r3)
+/* 802B2C58 002AE8B8 55 0A 06 3E */ clrlwi r10, r8, 0x18
+/* 802B2C5C 002AE8BC 55 28 E8 04 */ slwi r8, r9, 0x1d
+/* 802B2C60 002AE8C0 55 29 0F FE */ srwi r9, r9, 0x1f
+/* 802B2C64 002AE8C4 7D 80 52 14 */ add r12, r0, r10
+/* 802B2C68 002AE8C8 89 63 00 06 */ lbz r11, 6(r3)
+/* 802B2C6C 002AE8CC 7D 09 40 50 */ subf r8, r9, r8
+/* 802B2C70 002AE8D0 89 4C 09 2C */ lbz r10, 0x92c(r12)
+/* 802B2C74 002AE8D4 55 08 18 3E */ rotlwi r8, r8, 3
+/* 802B2C78 002AE8D8 89 8C 09 24 */ lbz r12, 0x924(r12)
+/* 802B2C7C 002AE8DC 7D 08 4A 14 */ add r8, r8, r9
+/* 802B2C80 002AE8E0 7D 69 52 78 */ xor r9, r11, r10
+/* 802B2C84 002AE8E4 7D 2C 4A 14 */ add r9, r12, r9
+/* 802B2C88 002AE8E8 55 08 06 3E */ clrlwi r8, r8, 0x18
+/* 802B2C8C 002AE8EC 99 23 00 06 */ stb r9, 6(r3)
+/* 802B2C90 002AE8F0 7D 40 42 14 */ add r10, r0, r8
+/* 802B2C94 002AE8F4 89 0A 09 2C */ lbz r8, 0x92c(r10)
+/* 802B2C98 002AE8F8 89 23 00 07 */ lbz r9, 7(r3)
+/* 802B2C9C 002AE8FC 89 4A 09 24 */ lbz r10, 0x924(r10)
+/* 802B2CA0 002AE900 7D 28 42 78 */ xor r8, r9, r8
+/* 802B2CA4 002AE904 7D 0A 42 14 */ add r8, r10, r8
+/* 802B2CA8 002AE908 99 03 00 07 */ stb r8, 7(r3)
+/* 802B2CAC 002AE90C 42 00 FD FC */ bdnz lbl_802B2AA8
+lbl_802B2CB0:
+/* 802B2CB0 002AE910 54 E8 04 3E */ clrlwi r8, r7, 0x10
+/* 802B2CB4 002AE914 7C 68 28 50 */ subf r3, r8, r5
+/* 802B2CB8 002AE918 7C 69 03 A6 */ mtctr r3
+/* 802B2CBC 002AE91C 7C 08 28 40 */ cmplw r8, r5
+/* 802B2CC0 002AE920 40 80 00 48 */ bge lbl_802B2D08
+lbl_802B2CC4:
+/* 802B2CC4 002AE924 54 E9 04 3E */ clrlwi r9, r7, 0x10
+/* 802B2CC8 002AE928 38 E7 00 01 */ addi r7, r7, 1
+/* 802B2CCC 002AE92C 7D 06 4A 14 */ add r8, r6, r9
+/* 802B2CD0 002AE930 7C A4 48 AE */ lbzx r5, r4, r9
+/* 802B2CD4 002AE934 55 03 E8 04 */ slwi r3, r8, 0x1d
+/* 802B2CD8 002AE938 55 08 0F FE */ srwi r8, r8, 0x1f
+/* 802B2CDC 002AE93C 7C 68 18 50 */ subf r3, r8, r3
+/* 802B2CE0 002AE940 54 63 18 3E */ rotlwi r3, r3, 3
+/* 802B2CE4 002AE944 7C 63 42 14 */ add r3, r3, r8
+/* 802B2CE8 002AE948 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 802B2CEC 002AE94C 7D 00 1A 14 */ add r8, r0, r3
+/* 802B2CF0 002AE950 88 68 09 2C */ lbz r3, 0x92c(r8)
+/* 802B2CF4 002AE954 89 08 09 24 */ lbz r8, 0x924(r8)
+/* 802B2CF8 002AE958 7C A3 1A 78 */ xor r3, r5, r3
+/* 802B2CFC 002AE95C 7C 68 1A 14 */ add r3, r8, r3
+/* 802B2D00 002AE960 7C 64 49 AE */ stbx r3, r4, r9
+/* 802B2D04 002AE964 42 00 FF C0 */ bdnz lbl_802B2CC4
+lbl_802B2D08:
+/* 802B2D08 002AE968 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802B2D0C 002AE96C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802B2D10 002AE970 38 21 00 10 */ addi r1, r1, 0x10
+/* 802B2D14 002AE974 4E 80 00 20 */ blr
diff --git a/asm/SDK/WPAD/WPADHIDParser.s b/asm/SDK/WPAD/WPADHIDParser.s
index 4e93f65..d20f990 100644
--- a/asm/SDK/WPAD/WPADHIDParser.s
+++ b/asm/SDK/WPAD/WPADHIDParser.s
@@ -248,7 +248,7 @@ lbl_802AD528:
/* 802AD53C 002A919C 40 82 01 38 */ bne lbl_802AD674
/* 802AD540 002A91A0 38 7E 00 98 */ addi r3, r30, 0x98
/* 802AD544 002A91A4 4C C6 31 82 */ crclr 6
-/* 802AD548 002A91A8 48 00 63 19 */ bl func_802B3860
+/* 802AD548 002A91A8 48 00 63 19 */ bl DEBUGPrint
/* 802AD54C 002A91AC 7C 7D CA 14 */ add r3, r29, r25
/* 802AD550 002A91B0 7C 99 E8 AE */ lbzx r4, r25, r29
/* 802AD554 002A91B4 88 03 00 02 */ lbz r0, 2(r3)
@@ -326,7 +326,7 @@ lbl_802AD528:
lbl_802AD674:
/* 802AD674 002A92D4 38 7E 00 B0 */ addi r3, r30, 0xb0
/* 802AD678 002A92D8 4C C6 31 82 */ crclr 6
-/* 802AD67C 002A92DC 48 00 61 E5 */ bl func_802B3860
+/* 802AD67C 002A92DC 48 00 61 E5 */ bl DEBUGPrint
/* 802AD680 002A92E0 3B 9C 00 01 */ addi r28, r28, 1
/* 802AD684 002A92E4 28 1C 00 02 */ cmplwi r28, 2
/* 802AD688 002A92E8 41 80 FD 58 */ blt lbl_802AD3E0
@@ -334,7 +334,7 @@ lbl_802AD674:
lbl_802AD690:
/* 802AD690 002A92F0 38 7E 00 C8 */ addi r3, r30, 0xc8
/* 802AD694 002A92F4 4C C6 31 82 */ crclr 6
-/* 802AD698 002A92F8 48 00 61 C9 */ bl func_802B3860
+/* 802AD698 002A92F8 48 00 61 C9 */ bl DEBUGPrint
lbl_802AD69C:
/* 802AD69C 002A92FC 3B A0 00 00 */ li r29, 0
/* 802AD6A0 002A9300 3F E0 80 00 */ lis r31, 0x8000
@@ -443,7 +443,7 @@ lbl_802AD7FC:
/* 802AD810 002A9470 40 82 00 A4 */ bne lbl_802AD8B4
/* 802AD814 002A9474 38 7E 01 0C */ addi r3, r30, 0x10c
/* 802AD818 002A9478 4C C6 31 82 */ crclr 6
-/* 802AD81C 002A947C 48 00 60 45 */ bl func_802B3860
+/* 802AD81C 002A947C 48 00 60 45 */ bl DEBUGPrint
/* 802AD820 002A9480 88 16 00 03 */ lbz r0, 3(r22)
/* 802AD824 002A9484 88 76 00 00 */ lbz r3, 0(r22)
/* 802AD828 002A9488 54 00 E7 BE */ rlwinm r0, r0, 0x1c, 0x1e, 0x1f
@@ -484,7 +484,7 @@ lbl_802AD7FC:
lbl_802AD8B4:
/* 802AD8B4 002A9514 38 7E 01 18 */ addi r3, r30, 0x118
/* 802AD8B8 002A9518 4C C6 31 82 */ crclr 6
-/* 802AD8BC 002A951C 48 00 5F A5 */ bl func_802B3860
+/* 802AD8BC 002A951C 48 00 5F A5 */ bl DEBUGPrint
/* 802AD8C0 002A9520 3B BD 00 01 */ addi r29, r29, 1
/* 802AD8C4 002A9524 28 1D 00 02 */ cmplwi r29, 2
/* 802AD8C8 002A9528 41 80 FD DC */ blt lbl_802AD6A4
@@ -494,18 +494,18 @@ lbl_802AD8CC:
/* 802AD8D4 002A9534 A8 BB 08 76 */ lha r5, 0x876(r27)
/* 802AD8D8 002A9538 A8 DB 08 78 */ lha r6, 0x878(r27)
/* 802AD8DC 002A953C 4C C6 31 82 */ crclr 6
-/* 802AD8E0 002A9540 48 00 5F 81 */ bl func_802B3860
+/* 802AD8E0 002A9540 48 00 5F 81 */ bl DEBUGPrint
/* 802AD8E4 002A9544 A8 9B 08 7A */ lha r4, 0x87a(r27)
/* 802AD8E8 002A9548 38 7E 01 50 */ addi r3, r30, 0x150
/* 802AD8EC 002A954C A8 BB 08 7C */ lha r5, 0x87c(r27)
/* 802AD8F0 002A9550 A8 DB 08 7E */ lha r6, 0x87e(r27)
/* 802AD8F4 002A9554 4C C6 31 82 */ crclr 6
-/* 802AD8F8 002A9558 48 00 5F 69 */ bl func_802B3860
+/* 802AD8F8 002A9558 48 00 5F 69 */ bl DEBUGPrint
/* 802AD8FC 002A955C 88 9B 08 81 */ lbz r4, 0x881(r27)
/* 802AD900 002A9560 38 7E 01 78 */ addi r3, r30, 0x178
/* 802AD904 002A9564 88 BB 08 80 */ lbz r5, 0x880(r27)
/* 802AD908 002A9568 4C C6 31 82 */ crclr 6
-/* 802AD90C 002A956C 48 00 5F 55 */ bl func_802B3860
+/* 802AD90C 002A956C 48 00 5F 55 */ bl DEBUGPrint
lbl_802AD910:
/* 802AD910 002A9570 39 61 00 30 */ addi r11, r1, 0x30
/* 802AD914 002A9574 4B F1 98 4D */ bl _restgpr_22
@@ -561,7 +561,7 @@ lbl_802AD99C:
/* 802AD9C0 002A9620 7F A4 EB 78 */ mr r4, r29
/* 802AD9C4 002A9624 38 A0 00 20 */ li r5, 0x20
/* 802AD9C8 002A9628 38 C0 00 20 */ li r6, 0x20
-/* 802AD9CC 002A962C 48 00 50 8D */ bl func_802B2A58
+/* 802AD9CC 002A962C 48 00 50 8D */ bl WPADiDecode
/* 802AD9D0 002A9630 38 A0 00 00 */ li r5, 0
/* 802AD9D4 002A9634 38 80 00 00 */ li r4, 0
/* 802AD9D8 002A9638 3C 60 80 00 */ lis r3, 0x8000
@@ -684,7 +684,7 @@ lbl_802ADB78:
/* 802ADB7C 002A97DC 40 80 00 34 */ bge lbl_802ADBB0
/* 802ADB80 002A97E0 38 7F 01 94 */ addi r3, r31, 0x194
/* 802ADB84 002A97E4 4C C6 31 82 */ crclr 6
-/* 802ADB88 002A97E8 48 00 5C D9 */ bl func_802B3860
+/* 802ADB88 002A97E8 48 00 5C D9 */ bl DEBUGPrint
/* 802ADB8C 002A97EC 38 60 02 00 */ li r3, 0x200
/* 802ADB90 002A97F0 38 00 02 CC */ li r0, 0x2cc
/* 802ADB94 002A97F4 B0 7E 08 8E */ sth r3, 0x88e(r30)
@@ -749,25 +749,25 @@ lbl_802ADBB0:
/* 802ADC7C 002A98DC 7C 00 07 74 */ extsb r0, r0
/* 802ADC80 002A98E0 B0 1E 08 88 */ sth r0, 0x888(r30)
/* 802ADC84 002A98E4 4C C6 31 82 */ crclr 6
-/* 802ADC88 002A98E8 48 00 5B D9 */ bl func_802B3860
+/* 802ADC88 002A98E8 48 00 5B D9 */ bl DEBUGPrint
/* 802ADC8C 002A98EC A8 9E 08 94 */ lha r4, 0x894(r30)
/* 802ADC90 002A98F0 38 7F 01 D8 */ addi r3, r31, 0x1d8
/* 802ADC94 002A98F4 A8 BE 08 96 */ lha r5, 0x896(r30)
/* 802ADC98 002A98F8 A8 DE 08 98 */ lha r6, 0x898(r30)
/* 802ADC9C 002A98FC 4C C6 31 82 */ crclr 6
-/* 802ADCA0 002A9900 48 00 5B C1 */ bl func_802B3860
+/* 802ADCA0 002A9900 48 00 5B C1 */ bl DEBUGPrint
/* 802ADCA4 002A9904 A8 9E 08 82 */ lha r4, 0x882(r30)
/* 802ADCA8 002A9908 38 7F 02 08 */ addi r3, r31, 0x208
/* 802ADCAC 002A990C A8 BE 08 86 */ lha r5, 0x886(r30)
/* 802ADCB0 002A9910 A8 DE 08 84 */ lha r6, 0x884(r30)
/* 802ADCB4 002A9914 4C C6 31 82 */ crclr 6
-/* 802ADCB8 002A9918 48 00 5B A9 */ bl func_802B3860
+/* 802ADCB8 002A9918 48 00 5B A9 */ bl DEBUGPrint
/* 802ADCBC 002A991C A8 9E 08 88 */ lha r4, 0x888(r30)
/* 802ADCC0 002A9920 38 7F 02 30 */ addi r3, r31, 0x230
/* 802ADCC4 002A9924 A8 BE 08 8C */ lha r5, 0x88c(r30)
/* 802ADCC8 002A9928 A8 DE 08 8A */ lha r6, 0x88a(r30)
/* 802ADCCC 002A992C 4C C6 31 82 */ crclr 6
-/* 802ADCD0 002A9930 48 00 5B 91 */ bl func_802B3860
+/* 802ADCD0 002A9930 48 00 5B 91 */ bl DEBUGPrint
/* 802ADCD4 002A9934 48 00 01 10 */ b lbl_802ADDE4
lbl_802ADCD8:
/* 802ADCD8 002A9938 7C 1D E0 AE */ lbzx r0, r29, r28
@@ -813,30 +813,30 @@ lbl_802ADCD8:
/* 802ADD78 002A99D8 88 07 00 0D */ lbz r0, 0xd(r7)
/* 802ADD7C 002A99DC 98 1E 08 9B */ stb r0, 0x89b(r30)
/* 802ADD80 002A99E0 4C C6 31 82 */ crclr 6
-/* 802ADD84 002A99E4 48 00 5A DD */ bl func_802B3860
+/* 802ADD84 002A99E4 48 00 5A DD */ bl DEBUGPrint
/* 802ADD88 002A99E8 A8 9E 08 88 */ lha r4, 0x888(r30)
/* 802ADD8C 002A99EC 38 7F 02 80 */ addi r3, r31, 0x280
/* 802ADD90 002A99F0 A8 BE 08 8C */ lha r5, 0x88c(r30)
/* 802ADD94 002A99F4 A8 DE 08 8A */ lha r6, 0x88a(r30)
/* 802ADD98 002A99F8 4C C6 31 82 */ crclr 6
-/* 802ADD9C 002A99FC 48 00 5A C5 */ bl func_802B3860
+/* 802ADD9C 002A99FC 48 00 5A C5 */ bl DEBUGPrint
/* 802ADDA0 002A9A00 A8 9E 08 8E */ lha r4, 0x88e(r30)
/* 802ADDA4 002A9A04 38 7F 02 A8 */ addi r3, r31, 0x2a8
/* 802ADDA8 002A9A08 A8 BE 08 92 */ lha r5, 0x892(r30)
/* 802ADDAC 002A9A0C A8 DE 08 90 */ lha r6, 0x890(r30)
/* 802ADDB0 002A9A10 4C C6 31 82 */ crclr 6
-/* 802ADDB4 002A9A14 48 00 5A AD */ bl func_802B3860
+/* 802ADDB4 002A9A14 48 00 5A AD */ bl DEBUGPrint
/* 802ADDB8 002A9A18 A8 9E 08 94 */ lha r4, 0x894(r30)
/* 802ADDBC 002A9A1C 38 7F 02 D0 */ addi r3, r31, 0x2d0
/* 802ADDC0 002A9A20 A8 BE 08 98 */ lha r5, 0x898(r30)
/* 802ADDC4 002A9A24 A8 DE 08 96 */ lha r6, 0x896(r30)
/* 802ADDC8 002A9A28 4C C6 31 82 */ crclr 6
-/* 802ADDCC 002A9A2C 48 00 5A 95 */ bl func_802B3860
+/* 802ADDCC 002A9A2C 48 00 5A 95 */ bl DEBUGPrint
/* 802ADDD0 002A9A30 88 9E 08 9A */ lbz r4, 0x89a(r30)
/* 802ADDD4 002A9A34 38 7F 02 F8 */ addi r3, r31, 0x2f8
/* 802ADDD8 002A9A38 88 BE 08 9B */ lbz r5, 0x89b(r30)
/* 802ADDDC 002A9A3C 4C C6 31 82 */ crclr 6
-/* 802ADDE0 002A9A40 48 00 5A 81 */ bl func_802B3860
+/* 802ADDE0 002A9A40 48 00 5A 81 */ bl DEBUGPrint
lbl_802ADDE4:
/* 802ADDE4 002A9A44 38 00 00 00 */ li r0, 0
/* 802ADDE8 002A9A48 98 1E 09 11 */ stb r0, 0x911(r30)
@@ -918,12 +918,12 @@ lbl_802ADEE8:
/* 802ADEEC 002A9B4C 88 9C 00 00 */ lbz r4, 0(r28)
/* 802ADEF0 002A9B50 38 63 C5 B0 */ addi r3, r3, lbl_8043C5B0@l
/* 802ADEF4 002A9B54 4C C6 31 82 */ crclr 6
-/* 802ADEF8 002A9B58 48 00 59 69 */ bl func_802B3860
+/* 802ADEF8 002A9B58 48 00 59 69 */ bl DEBUGPrint
/* 802ADEFC 002A9B5C 3C 60 80 44 */ lis r3, lbl_8043C5BC@ha
/* 802ADF00 002A9B60 7C 9B E8 AE */ lbzx r4, r27, r29
/* 802ADF04 002A9B64 38 63 C5 BC */ addi r3, r3, lbl_8043C5BC@l
/* 802ADF08 002A9B68 4C C6 31 82 */ crclr 6
-/* 802ADF0C 002A9B6C 48 00 59 55 */ bl func_802B3860
+/* 802ADF0C 002A9B6C 48 00 59 55 */ bl DEBUGPrint
/* 802ADF10 002A9B70 88 7C 00 00 */ lbz r3, 0(r28)
/* 802ADF14 002A9B74 38 03 00 05 */ addi r0, r3, 5
/* 802ADF18 002A9B78 54 00 06 3E */ clrlwi r0, r0, 0x18
@@ -953,7 +953,7 @@ lbl_802ADF50:
/* 802ADF74 002A9BD4 38 DB D1 BC */ addi r6, r27, abortInitExtension@l
/* 802ADF78 002A9BD8 4B FF EC 45 */ bl WPADiSendWriteDataCmd
/* 802ADF7C 002A9BDC 7F A3 EB 78 */ mr r3, r29
-/* 802ADF80 002A9BE0 48 00 3C F1 */ bl func_802B1C70
+/* 802ADF80 002A9BE0 48 00 3C F1 */ bl WPADiCreateKey
/* 802ADF84 002A9BE4 7F C3 F3 78 */ mr r3, r30
/* 802ADF88 002A9BE8 38 9F 09 14 */ addi r4, r31, 0x914
/* 802ADF8C 002A9BEC 38 DC 00 40 */ addi r6, r28, 0x40
@@ -988,7 +988,7 @@ lbl_802ADFE8:
/* 802ADFFC 002A9C5C 38 DC D1 BC */ addi r6, r28, abortInitExtension@l
/* 802AE000 002A9C60 4B FF EB BD */ bl WPADiSendWriteDataCmd
/* 802AE004 002A9C64 7F A3 EB 78 */ mr r3, r29
-/* 802AE008 002A9C68 48 00 43 59 */ bl func_802B2360
+/* 802AE008 002A9C68 48 00 43 59 */ bl WPADiCreateKeyFor3rd
/* 802AE00C 002A9C6C 7F C3 F3 78 */ mr r3, r30
/* 802AE010 002A9C70 38 9F 09 14 */ addi r4, r31, 0x914
/* 802AE014 002A9C74 38 DB 00 40 */ addi r6, r27, 0x40
@@ -1195,7 +1195,7 @@ __a1_20_status_report:
/* 802AE2F8 002A9F58 7C 9A 23 78 */ mr r26, r4
/* 802AE2FC 002A9F5C 38 7F 03 28 */ addi r3, r31, 0x328
/* 802AE300 002A9F60 4C C6 31 82 */ crclr 6
-/* 802AE304 002A9F64 48 00 55 5D */ bl func_802B3860
+/* 802AE304 002A9F64 48 00 55 5D */ bl DEBUGPrint
/* 802AE308 002A9F68 4B FC 04 55 */ bl OSDisableInterrupts
/* 802AE30C 002A9F6C 3C 80 80 53 */ lis r4, lbl_80536D70@ha
/* 802AE310 002A9F70 57 20 15 BA */ rlwinm r0, r25, 2, 0x16, 0x1d
@@ -1342,7 +1342,7 @@ lbl_802AE518:
/* 802AE528 002AA188 40 82 00 C0 */ bne lbl_802AE5E8
/* 802AE52C 002AA18C 38 7F 03 3C */ addi r3, r31, 0x33c
/* 802AE530 002AA190 4C C6 31 82 */ crclr 6
-/* 802AE534 002AA194 48 00 53 2D */ bl func_802B3860
+/* 802AE534 002AA194 48 00 53 2D */ bl DEBUGPrint
/* 802AE538 002AA198 3C 60 80 53 */ lis r3, lbl_80536D70@ha
/* 802AE53C 002AA19C 57 20 15 BA */ rlwinm r0, r25, 2, 0x16, 0x1d
/* 802AE540 002AA1A0 38 63 6D 70 */ addi r3, r3, lbl_80536D70@l
@@ -1390,7 +1390,7 @@ lbl_802AE518:
lbl_802AE5E8:
/* 802AE5E8 002AA248 38 7F 03 54 */ addi r3, r31, 0x354
/* 802AE5EC 002AA24C 4C C6 31 82 */ crclr 6
-/* 802AE5F0 002AA250 48 00 52 71 */ bl func_802B3860
+/* 802AE5F0 002AA250 48 00 52 71 */ bl DEBUGPrint
/* 802AE5F4 002AA254 48 00 00 5C */ b lbl_802AE650
lbl_802AE5F8:
/* 802AE5F8 002AA258 38 00 00 00 */ li r0, 0
@@ -1415,7 +1415,7 @@ lbl_802AE5F8:
lbl_802AE644:
/* 802AE644 002AA2A4 38 7F 03 6C */ addi r3, r31, 0x36c
/* 802AE648 002AA2A8 4C C6 31 82 */ crclr 6
-/* 802AE64C 002AA2AC 48 00 52 15 */ bl func_802B3860
+/* 802AE64C 002AA2AC 48 00 52 15 */ bl DEBUGPrint
lbl_802AE650:
/* 802AE650 002AA2B0 80 7E 08 50 */ lwz r3, 0x850(r30)
/* 802AE654 002AA2B4 2C 03 00 00 */ cmpwi r3, 0
@@ -1562,7 +1562,7 @@ lbl_802AE744:
/* 802AE86C 002AA4CC 41 82 00 58 */ beq lbl_802AE8C4
/* 802AE870 002AA4D0 38 7E 03 84 */ addi r3, r30, 0x384
/* 802AE874 002AA4D4 4C C6 31 82 */ crclr 6
-/* 802AE878 002AA4D8 48 00 4F E9 */ bl func_802B3860
+/* 802AE878 002AA4D8 48 00 4F E9 */ bl DEBUGPrint
/* 802AE87C 002AA4DC 38 00 FF FF */ li r0, -1
/* 802AE880 002AA4E0 90 1D 09 7C */ stw r0, 0x97c(r29)
/* 802AE884 002AA4E4 81 9D 08 9C */ lwz r12, 0x89c(r29)
@@ -1610,11 +1610,11 @@ lbl_802AE8C4:
/* 802AE91C 002AA57C 80 9D 09 78 */ lwz r4, 0x978(r29)
/* 802AE920 002AA580 38 7E 03 9C */ addi r3, r30, 0x39c
/* 802AE924 002AA584 4C C6 31 82 */ crclr 6
-/* 802AE928 002AA588 48 00 4F 39 */ bl func_802B3860
+/* 802AE928 002AA588 48 00 4F 39 */ bl DEBUGPrint
/* 802AE92C 002AA58C A0 9D 09 80 */ lhz r4, 0x980(r29)
/* 802AE930 002AA590 38 7E 03 B0 */ addi r3, r30, 0x3b0
/* 802AE934 002AA594 4C C6 31 82 */ crclr 6
-/* 802AE938 002AA598 48 00 4F 29 */ bl func_802B3860
+/* 802AE938 002AA598 48 00 4F 29 */ bl DEBUGPrint
/* 802AE93C 002AA59C 80 9D 09 78 */ lwz r4, 0x978(r29)
/* 802AE940 002AA5A0 38 00 FF FD */ li r0, -3
/* 802AE944 002AA5A4 80 7D 09 7C */ lwz r3, 0x97c(r29)
@@ -1686,7 +1686,7 @@ lbl_802AEA20:
lbl_802AEA2C:
/* 802AEA2C 002AA68C 38 7E 03 C0 */ addi r3, r30, 0x3c0
/* 802AEA30 002AA690 4C C6 31 82 */ crclr 6
-/* 802AEA34 002AA694 48 00 4E 2D */ bl func_802B3860
+/* 802AEA34 002AA694 48 00 4E 2D */ bl DEBUGPrint
lbl_802AEA38:
/* 802AEA38 002AA698 38 00 FF FE */ li r0, -2
/* 802AEA3C 002AA69C 7F 83 E3 78 */ mr r3, r28
@@ -1720,7 +1720,7 @@ __a1_22_ack:
/* 802AEAA0 002AA700 7C 7D 1B 78 */ mr r29, r3
/* 802AEAA4 002AA704 38 7F 03 E0 */ addi r3, r31, 0x3e0
/* 802AEAA8 002AA708 4C C6 31 82 */ crclr 6
-/* 802AEAAC 002AA70C 48 00 4D B5 */ bl func_802B3860
+/* 802AEAAC 002AA70C 48 00 4D B5 */ bl DEBUGPrint
/* 802AEAB0 002AA710 3C 60 80 53 */ lis r3, lbl_80536D70@ha
/* 802AEAB4 002AA714 57 44 15 BA */ rlwinm r4, r26, 2, 0x16, 0x1d
/* 802AEAB8 002AA718 38 63 6D 70 */ addi r3, r3, lbl_80536D70@l
@@ -1806,7 +1806,7 @@ lbl_802AEAE0:
/* 802AEBF4 002AA854 7F 24 CB 78 */ mr r4, r25
/* 802AEBF8 002AA858 7F 65 DB 78 */ mr r5, r27
/* 802AEBFC 002AA85C 4C C6 31 82 */ crclr 6
-/* 802AEC00 002AA860 48 00 4C 61 */ bl func_802B3860
+/* 802AEC00 002AA860 48 00 4C 61 */ bl DEBUGPrint
/* 802AEC04 002AA864 38 00 FF FE */ li r0, -2
/* 802AEC08 002AA868 7F 63 00 34 */ cntlzw r3, r27
/* 802AEC0C 002AA86C 98 1C 00 29 */ stb r0, 0x29(r28)
@@ -1822,7 +1822,7 @@ lbl_802AEAE0:
/* 802AEC34 002AA894 7F 65 DB 78 */ mr r5, r27
/* 802AEC38 002AA898 38 7F 04 1C */ addi r3, r31, 0x41c
/* 802AEC3C 002AA89C 4C C6 31 82 */ crclr 6
-/* 802AEC40 002AA8A0 48 00 4C 21 */ bl func_802B3860
+/* 802AEC40 002AA8A0 48 00 4C 21 */ bl DEBUGPrint
lbl_802AEC44:
/* 802AEC44 002AA8A4 88 1E 09 87 */ lbz r0, 0x987(r30)
/* 802AEC48 002AA8A8 7C 00 C8 40 */ cmplw r0, r25
@@ -1843,7 +1843,7 @@ lbl_802AEC74:
lbl_802AEC80:
/* 802AEC80 002AA8E0 38 7F 04 4C */ addi r3, r31, 0x44c
/* 802AEC84 002AA8E4 4C C6 31 82 */ crclr 6
-/* 802AEC88 002AA8E8 48 00 4B D9 */ bl func_802B3860
+/* 802AEC88 002AA8E8 48 00 4B D9 */ bl DEBUGPrint
lbl_802AEC8C:
/* 802AEC8C 002AA8EC 88 1E 08 C8 */ lbz r0, 0x8c8(r30)
/* 802AEC90 002AA8F0 7F A3 EB 78 */ mr r3, r29
@@ -2441,7 +2441,7 @@ lbl_802AF518:
/* 802AF544 002AB1A4 38 9B 00 03 */ addi r4, r27, 3
/* 802AF548 002AB1A8 38 A0 00 08 */ li r5, 8
/* 802AF54C 002AB1AC 38 C0 00 00 */ li r6, 0
-/* 802AF550 002AB1B0 48 00 35 09 */ bl func_802B2A58
+/* 802AF550 002AB1B0 48 00 35 09 */ bl WPADiDecode
/* 802AF554 002AB1B4 80 1F 08 40 */ lwz r0, 0x840(r31)
/* 802AF558 002AB1B8 2C 00 00 00 */ cmpwi r0, 0
/* 802AF55C 002AB1BC 41 82 05 B8 */ beq lbl_802AFB14
@@ -3182,7 +3182,7 @@ lbl_802AFF5C:
/* 802B0020 002ABC80 38 9C 00 06 */ addi r4, r28, 6
/* 802B0024 002ABC84 38 A0 00 10 */ li r5, 0x10
/* 802B0028 002ABC88 38 C0 00 00 */ li r6, 0
-/* 802B002C 002ABC8C 48 00 2A 2D */ bl func_802B2A58
+/* 802B002C 002ABC8C 48 00 2A 2D */ bl WPADiDecode
/* 802B0030 002ABC90 80 1F 08 40 */ lwz r0, 0x840(r31)
/* 802B0034 002ABC94 2C 00 00 00 */ cmpwi r0, 0
/* 802B0038 002ABC98 41 82 05 B8 */ beq lbl_802B05F0
@@ -3702,7 +3702,7 @@ lbl_802B067C:
/* 802B07B8 002AC418 38 9C 00 0D */ addi r4, r28, 0xd
/* 802B07BC 002AC41C 38 A0 00 09 */ li r5, 9
/* 802B07C0 002AC420 38 C0 00 00 */ li r6, 0
-/* 802B07C4 002AC424 48 00 22 95 */ bl func_802B2A58
+/* 802B07C4 002AC424 48 00 22 95 */ bl WPADiDecode
/* 802B07C8 002AC428 80 1F 08 40 */ lwz r0, 0x840(r31)
/* 802B07CC 002AC42C 2C 00 00 00 */ cmpwi r0, 0
/* 802B07D0 002AC430 41 82 00 34 */ beq lbl_802B0804
@@ -3896,7 +3896,7 @@ lbl_802B09BC:
/* 802B0AA4 002AC704 38 9D 00 10 */ addi r4, r29, 0x10
/* 802B0AA8 002AC708 38 A0 00 06 */ li r5, 6
/* 802B0AAC 002AC70C 38 C0 00 00 */ li r6, 0
-/* 802B0AB0 002AC710 48 00 1F A9 */ bl func_802B2A58
+/* 802B0AB0 002AC710 48 00 1F A9 */ bl WPADiDecode
/* 802B0AB4 002AC714 80 1F 08 40 */ lwz r0, 0x840(r31)
/* 802B0AB8 002AC718 2C 00 00 00 */ cmpwi r0, 0
/* 802B0ABC 002AC71C 41 82 05 A0 */ beq lbl_802B105C
diff --git a/asm/SDK/WPAD/WPADMem.s b/asm/SDK/WPAD/WPADMem.s
new file mode 100644
index 0000000..174c306
--- /dev/null
+++ b/asm/SDK/WPAD/WPADMem.s
@@ -0,0 +1,791 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+ResultCallback:
+/* 802B2D18 002AE978 1C C3 00 14 */ mulli r6, r3, 0x14
+/* 802B2D1C 002AE97C 3C A0 80 54 */ lis r5, lbl_8053A480@ha
+/* 802B2D20 002AE980 38 00 00 00 */ li r0, 0
+/* 802B2D24 002AE984 38 A5 A4 80 */ addi r5, r5, lbl_8053A480@l
+/* 802B2D28 002AE988 7C 05 31 2E */ stwx r0, r5, r6
+/* 802B2D2C 002AE98C 7C A5 32 14 */ add r5, r5, r6
+/* 802B2D30 002AE990 81 85 00 10 */ lwz r12, 0x10(r5)
+/* 802B2D34 002AE994 2C 0C 00 00 */ cmpwi r12, 0
+/* 802B2D38 002AE998 90 05 00 10 */ stw r0, 0x10(r5)
+/* 802B2D3C 002AE99C 4D 82 00 20 */ beqlr
+/* 802B2D40 002AE9A0 7D 89 03 A6 */ mtctr r12
+/* 802B2D44 002AE9A4 4E 80 04 20 */ bctr
+/* 802B2D48 002AE9A8 4E 80 00 20 */ blr
+
+WriteCallback:
+/* 802B2D4C 002AE9AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802B2D50 002AE9B0 7C 08 02 A6 */ mflr r0
+/* 802B2D54 002AE9B4 3C C0 80 54 */ lis r6, lbl_8053A480@ha
+/* 802B2D58 002AE9B8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802B2D5C 002AE9BC 38 C6 A4 80 */ addi r6, r6, lbl_8053A480@l
+/* 802B2D60 002AE9C0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802B2D64 002AE9C4 7C 7F 1B 78 */ mr r31, r3
+/* 802B2D68 002AE9C8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802B2D6C 002AE9CC 1F C3 00 14 */ mulli r30, r3, 0x14
+/* 802B2D70 002AE9D0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802B2D74 002AE9D4 7C A6 F2 14 */ add r5, r6, r30
+/* 802B2D78 002AE9D8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802B2D7C 002AE9DC A0 E5 00 08 */ lhz r7, 8(r5)
+/* 802B2D80 002AE9E0 2C 07 00 00 */ cmpwi r7, 0
+/* 802B2D84 002AE9E4 40 82 00 28 */ bne lbl_802B2DAC
+/* 802B2D88 002AE9E8 38 00 00 00 */ li r0, 0
+/* 802B2D8C 002AE9EC 7C 06 F1 2E */ stwx r0, r6, r30
+/* 802B2D90 002AE9F0 81 85 00 10 */ lwz r12, 0x10(r5)
+/* 802B2D94 002AE9F4 2C 0C 00 00 */ cmpwi r12, 0
+/* 802B2D98 002AE9F8 90 05 00 10 */ stw r0, 0x10(r5)
+/* 802B2D9C 002AE9FC 41 82 01 00 */ beq lbl_802B2E9C
+/* 802B2DA0 002AEA00 7D 89 03 A6 */ mtctr r12
+/* 802B2DA4 002AEA04 4E 80 04 21 */ bctrl
+/* 802B2DA8 002AEA08 48 00 00 F4 */ b lbl_802B2E9C
+lbl_802B2DAC:
+/* 802B2DAC 002AEA0C 28 07 00 10 */ cmplwi r7, 0x10
+/* 802B2DB0 002AEA10 38 00 00 10 */ li r0, 0x10
+/* 802B2DB4 002AEA14 41 81 00 08 */ bgt lbl_802B2DBC
+/* 802B2DB8 002AEA18 7C E0 3B 78 */ mr r0, r7
+lbl_802B2DBC:
+/* 802B2DBC 002AEA1C 2C 04 00 00 */ cmpwi r4, 0
+/* 802B2DC0 002AEA20 54 1C 04 3E */ clrlwi r28, r0, 0x10
+/* 802B2DC4 002AEA24 40 82 00 64 */ bne lbl_802B2E28
+/* 802B2DC8 002AEA28 A0 05 00 08 */ lhz r0, 8(r5)
+/* 802B2DCC 002AEA2C 3C 60 80 54 */ lis r3, lbl_8053A480@ha
+/* 802B2DD0 002AEA30 38 63 A4 80 */ addi r3, r3, lbl_8053A480@l
+/* 802B2DD4 002AEA34 7C 1C 00 50 */ subf r0, r28, r0
+/* 802B2DD8 002AEA38 B0 05 00 08 */ sth r0, 8(r5)
+/* 802B2DDC 002AEA3C 7F C3 F2 14 */ add r30, r3, r30
+/* 802B2DE0 002AEA40 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 802B2DE4 002AEA44 38 03 00 10 */ addi r0, r3, 0x10
+/* 802B2DE8 002AEA48 90 1E 00 0C */ stw r0, 0xc(r30)
+/* 802B2DEC 002AEA4C 80 7E 00 04 */ lwz r3, 4(r30)
+/* 802B2DF0 002AEA50 38 03 00 10 */ addi r0, r3, 0x10
+/* 802B2DF4 002AEA54 90 1E 00 04 */ stw r0, 4(r30)
+/* 802B2DF8 002AEA58 4B FB B9 65 */ bl OSDisableInterrupts
+/* 802B2DFC 002AEA5C 3C E0 80 2B */ lis r7, WriteCallback@ha
+/* 802B2E00 002AEA60 80 9E 00 04 */ lwz r4, 4(r30)
+/* 802B2E04 002AEA64 7C 7D 1B 78 */ mr r29, r3
+/* 802B2E08 002AEA68 80 DE 00 0C */ lwz r6, 0xc(r30)
+/* 802B2E0C 002AEA6C 7F E3 FB 78 */ mr r3, r31
+/* 802B2E10 002AEA70 7F 85 E3 78 */ mr r5, r28
+/* 802B2E14 002AEA74 38 E7 2D 4C */ addi r7, r7, WriteCallback@l
+/* 802B2E18 002AEA78 48 00 08 25 */ bl WPADWriteMemoryAsync
+/* 802B2E1C 002AEA7C 7F A3 EB 78 */ mr r3, r29
+/* 802B2E20 002AEA80 4B FB B9 65 */ bl OSRestoreInterrupts
+/* 802B2E24 002AEA84 48 00 00 78 */ b lbl_802B2E9C
+lbl_802B2E28:
+/* 802B2E28 002AEA88 2C 04 FF FE */ cmpwi r4, -2
+/* 802B2E2C 002AEA8C 40 82 00 40 */ bne lbl_802B2E6C
+/* 802B2E30 002AEA90 4B FB B9 2D */ bl OSDisableInterrupts
+/* 802B2E34 002AEA94 3C 80 80 54 */ lis r4, lbl_8053A480@ha
+/* 802B2E38 002AEA98 3C E0 80 2B */ lis r7, WriteCallback@ha
+/* 802B2E3C 002AEA9C 38 84 A4 80 */ addi r4, r4, lbl_8053A480@l
+/* 802B2E40 002AEAA0 7C 7D 1B 78 */ mr r29, r3
+/* 802B2E44 002AEAA4 7C C4 F2 14 */ add r6, r4, r30
+/* 802B2E48 002AEAA8 7F E3 FB 78 */ mr r3, r31
+/* 802B2E4C 002AEAAC 80 86 00 04 */ lwz r4, 4(r6)
+/* 802B2E50 002AEAB0 7F 85 E3 78 */ mr r5, r28
+/* 802B2E54 002AEAB4 80 C6 00 0C */ lwz r6, 0xc(r6)
+/* 802B2E58 002AEAB8 38 E7 2D 4C */ addi r7, r7, WriteCallback@l
+/* 802B2E5C 002AEABC 48 00 07 E1 */ bl WPADWriteMemoryAsync
+/* 802B2E60 002AEAC0 7F A3 EB 78 */ mr r3, r29
+/* 802B2E64 002AEAC4 4B FB B9 21 */ bl OSRestoreInterrupts
+/* 802B2E68 002AEAC8 48 00 00 34 */ b lbl_802B2E9C
+lbl_802B2E6C:
+/* 802B2E6C 002AEACC 3C 60 80 54 */ lis r3, lbl_8053A480@ha
+/* 802B2E70 002AEAD0 38 00 00 00 */ li r0, 0
+/* 802B2E74 002AEAD4 38 63 A4 80 */ addi r3, r3, lbl_8053A480@l
+/* 802B2E78 002AEAD8 7C 03 F1 2E */ stwx r0, r3, r30
+/* 802B2E7C 002AEADC 7C 63 F2 14 */ add r3, r3, r30
+/* 802B2E80 002AEAE0 81 83 00 10 */ lwz r12, 0x10(r3)
+/* 802B2E84 002AEAE4 2C 0C 00 00 */ cmpwi r12, 0
+/* 802B2E88 002AEAE8 90 03 00 10 */ stw r0, 0x10(r3)
+/* 802B2E8C 002AEAEC 41 82 00 10 */ beq lbl_802B2E9C
+/* 802B2E90 002AEAF0 7F E3 FB 78 */ mr r3, r31
+/* 802B2E94 002AEAF4 7D 89 03 A6 */ mtctr r12
+/* 802B2E98 002AEAF8 4E 80 04 21 */ bctrl
+lbl_802B2E9C:
+/* 802B2E9C 002AEAFC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802B2EA0 002AEB00 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802B2EA4 002AEB04 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802B2EA8 002AEB08 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802B2EAC 002AEB0C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802B2EB0 002AEB10 7C 08 03 A6 */ mtlr r0
+/* 802B2EB4 002AEB14 38 21 00 20 */ addi r1, r1, 0x20
+/* 802B2EB8 002AEB18 4E 80 00 20 */ blr
+
+WriteGameDataSub:
+/* 802B2EBC 002AEB1C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802B2EC0 002AEB20 7C 08 02 A6 */ mflr r0
+/* 802B2EC4 002AEB24 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802B2EC8 002AEB28 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802B2ECC 002AEB2C 54 60 10 3A */ slwi r0, r3, 2
+/* 802B2ED0 002AEB30 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802B2ED4 002AEB34 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802B2ED8 002AEB38 7C 7F 1B 78 */ mr r31, r3
+/* 802B2EDC 002AEB3C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802B2EE0 002AEB40 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802B2EE4 002AEB44 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802B2EE8 002AEB48 7C C5 00 2E */ lwzx r6, r5, r0
+/* 802B2EEC 002AEB4C 80 06 00 3C */ lwz r0, 0x3c(r6)
+/* 802B2EF0 002AEB50 2C 00 00 00 */ cmpwi r0, 0
+/* 802B2EF4 002AEB54 40 82 00 1C */ bne lbl_802B2F10
+/* 802B2EF8 002AEB58 7C 85 00 34 */ cntlzw r5, r4
+/* 802B2EFC 002AEB5C 38 00 FF FD */ li r0, -3
+/* 802B2F00 002AEB60 54 A5 DF FE */ rlwinm r5, r5, 0x1b, 0x1f, 0x1f
+/* 802B2F04 002AEB64 7C A5 00 D0 */ neg r5, r5
+/* 802B2F08 002AEB68 7C 00 28 78 */ andc r0, r0, r5
+/* 802B2F0C 002AEB6C 90 06 00 3C */ stw r0, 0x3c(r6)
+lbl_802B2F10:
+/* 802B2F10 002AEB70 2C 04 00 00 */ cmpwi r4, 0
+/* 802B2F14 002AEB74 40 82 00 90 */ bne lbl_802B2FA4
+/* 802B2F18 002AEB78 80 06 00 38 */ lwz r0, 0x38(r6)
+/* 802B2F1C 002AEB7C 2C 00 00 00 */ cmpwi r0, 0
+/* 802B2F20 002AEB80 41 82 00 10 */ beq lbl_802B2F30
+/* 802B2F24 002AEB84 80 06 00 3C */ lwz r0, 0x3c(r6)
+/* 802B2F28 002AEB88 2C 00 00 00 */ cmpwi r0, 0
+/* 802B2F2C 002AEB8C 40 82 00 74 */ bne lbl_802B2FA0
+lbl_802B2F30:
+/* 802B2F30 002AEB90 1F C3 00 14 */ mulli r30, r3, 0x14
+/* 802B2F34 002AEB94 3C 80 80 54 */ lis r4, lbl_8053A480@ha
+/* 802B2F38 002AEB98 38 60 00 10 */ li r3, 0x10
+/* 802B2F3C 002AEB9C 38 84 A4 80 */ addi r4, r4, lbl_8053A480@l
+/* 802B2F40 002AEBA0 7C 84 F2 14 */ add r4, r4, r30
+/* 802B2F44 002AEBA4 A0 04 00 08 */ lhz r0, 8(r4)
+/* 802B2F48 002AEBA8 28 00 00 10 */ cmplwi r0, 0x10
+/* 802B2F4C 002AEBAC 41 81 00 08 */ bgt lbl_802B2F54
+/* 802B2F50 002AEBB0 7C 03 03 78 */ mr r3, r0
+lbl_802B2F54:
+/* 802B2F54 002AEBB4 A0 04 00 08 */ lhz r0, 8(r4)
+/* 802B2F58 002AEBB8 54 7C 04 3E */ clrlwi r28, r3, 0x10
+/* 802B2F5C 002AEBBC 7C 1C 00 50 */ subf r0, r28, r0
+/* 802B2F60 002AEBC0 B0 04 00 08 */ sth r0, 8(r4)
+/* 802B2F64 002AEBC4 4B FB B7 F9 */ bl OSDisableInterrupts
+/* 802B2F68 002AEBC8 3C 80 80 54 */ lis r4, lbl_8053A480@ha
+/* 802B2F6C 002AEBCC 3C E0 80 2B */ lis r7, WriteCallback@ha
+/* 802B2F70 002AEBD0 38 84 A4 80 */ addi r4, r4, lbl_8053A480@l
+/* 802B2F74 002AEBD4 7C 7D 1B 78 */ mr r29, r3
+/* 802B2F78 002AEBD8 7C C4 F2 14 */ add r6, r4, r30
+/* 802B2F7C 002AEBDC 7F E3 FB 78 */ mr r3, r31
+/* 802B2F80 002AEBE0 80 86 00 04 */ lwz r4, 4(r6)
+/* 802B2F84 002AEBE4 7F 85 E3 78 */ mr r5, r28
+/* 802B2F88 002AEBE8 80 C6 00 0C */ lwz r6, 0xc(r6)
+/* 802B2F8C 002AEBEC 38 E7 2D 4C */ addi r7, r7, WriteCallback@l
+/* 802B2F90 002AEBF0 48 00 06 AD */ bl WPADWriteMemoryAsync
+/* 802B2F94 002AEBF4 7F A3 EB 78 */ mr r3, r29
+/* 802B2F98 002AEBF8 4B FB B7 ED */ bl OSRestoreInterrupts
+/* 802B2F9C 002AEBFC 48 00 00 40 */ b lbl_802B2FDC
+lbl_802B2FA0:
+/* 802B2FA0 002AEC00 38 80 FF FD */ li r4, -3
+lbl_802B2FA4:
+/* 802B2FA4 002AEC04 1C C3 00 14 */ mulli r6, r3, 0x14
+/* 802B2FA8 002AEC08 3C A0 80 54 */ lis r5, lbl_8053A480@ha
+/* 802B2FAC 002AEC0C 38 A5 A4 80 */ addi r5, r5, lbl_8053A480@l
+/* 802B2FB0 002AEC10 7F A5 32 14 */ add r29, r5, r6
+/* 802B2FB4 002AEC14 80 1D 00 10 */ lwz r0, 0x10(r29)
+/* 802B2FB8 002AEC18 2C 00 00 00 */ cmpwi r0, 0
+/* 802B2FBC 002AEC1C 41 82 00 20 */ beq lbl_802B2FDC
+/* 802B2FC0 002AEC20 3B C0 00 00 */ li r30, 0
+/* 802B2FC4 002AEC24 7F E3 FB 78 */ mr r3, r31
+/* 802B2FC8 002AEC28 7F C5 31 2E */ stwx r30, r5, r6
+/* 802B2FCC 002AEC2C 81 9D 00 10 */ lwz r12, 0x10(r29)
+/* 802B2FD0 002AEC30 7D 89 03 A6 */ mtctr r12
+/* 802B2FD4 002AEC34 4E 80 04 21 */ bctrl
+/* 802B2FD8 002AEC38 93 DD 00 10 */ stw r30, 0x10(r29)
+lbl_802B2FDC:
+/* 802B2FDC 002AEC3C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802B2FE0 002AEC40 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802B2FE4 002AEC44 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802B2FE8 002AEC48 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802B2FEC 002AEC4C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802B2FF0 002AEC50 7C 08 03 A6 */ mtlr r0
+/* 802B2FF4 002AEC54 38 21 00 20 */ addi r1, r1, 0x20
+/* 802B2FF8 002AEC58 4E 80 00 20 */ blr
+
+writeCheck1:
+/* 802B2FFC 002AEC5C 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802B3000 002AEC60 54 60 10 3A */ slwi r0, r3, 2
+/* 802B3004 002AEC64 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802B3008 002AEC68 7C A5 00 2E */ lwzx r5, r5, r0
+/* 802B300C 002AEC6C 80 05 00 38 */ lwz r0, 0x38(r5)
+/* 802B3010 002AEC70 2C 00 00 00 */ cmpwi r0, 0
+/* 802B3014 002AEC74 4C 82 00 20 */ bnelr
+/* 802B3018 002AEC78 7C 83 00 34 */ cntlzw r3, r4
+/* 802B301C 002AEC7C 38 00 FF FD */ li r0, -3
+/* 802B3020 002AEC80 54 63 DF FE */ rlwinm r3, r3, 0x1b, 0x1f, 0x1f
+/* 802B3024 002AEC84 7C 63 00 D0 */ neg r3, r3
+/* 802B3028 002AEC88 7C 00 18 78 */ andc r0, r0, r3
+/* 802B302C 002AEC8C 90 05 00 38 */ stw r0, 0x38(r5)
+/* 802B3030 002AEC90 4E 80 00 20 */ blr
+
+writeCheck2:
+/* 802B3034 002AEC94 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802B3038 002AEC98 54 60 10 3A */ slwi r0, r3, 2
+/* 802B303C 002AEC9C 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802B3040 002AECA0 7C A5 00 2E */ lwzx r5, r5, r0
+/* 802B3044 002AECA4 80 05 00 3C */ lwz r0, 0x3c(r5)
+/* 802B3048 002AECA8 2C 00 00 00 */ cmpwi r0, 0
+/* 802B304C 002AECAC 4C 82 00 20 */ bnelr
+/* 802B3050 002AECB0 7C 83 00 34 */ cntlzw r3, r4
+/* 802B3054 002AECB4 38 00 FF FD */ li r0, -3
+/* 802B3058 002AECB8 54 63 DF FE */ rlwinm r3, r3, 0x1b, 0x1f, 0x1f
+/* 802B305C 002AECBC 7C 63 00 D0 */ neg r3, r3
+/* 802B3060 002AECC0 7C 00 18 78 */ andc r0, r0, r3
+/* 802B3064 002AECC4 90 05 00 3C */ stw r0, 0x3c(r5)
+/* 802B3068 002AECC8 4E 80 00 20 */ blr
+
+.global WPADWriteGameData
+WPADWriteGameData:
+/* 802B306C 002AECCC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802B3070 002AECD0 7C 08 02 A6 */ mflr r0
+/* 802B3074 002AECD4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802B3078 002AECD8 39 61 00 30 */ addi r11, r1, 0x30
+/* 802B307C 002AECDC 4B F1 40 9D */ bl _savegpr_23
+/* 802B3080 002AECE0 3D 00 80 53 */ lis r8, lbl_80536D70@ha
+/* 802B3084 002AECE4 54 60 10 3A */ slwi r0, r3, 2
+/* 802B3088 002AECE8 39 08 6D 70 */ addi r8, r8, lbl_80536D70@l
+/* 802B308C 002AECEC 7C 7D 1B 78 */ mr r29, r3
+/* 802B3090 002AECF0 7F C8 00 2E */ lwzx r30, r8, r0
+/* 802B3094 002AECF4 7C 97 23 78 */ mr r23, r4
+/* 802B3098 002AECF8 7C B8 2B 78 */ mr r24, r5
+/* 802B309C 002AECFC 7C DB 33 78 */ mr r27, r6
+/* 802B30A0 002AED00 7C FA 3B 78 */ mr r26, r7
+/* 802B30A4 002AED04 4B FB B6 B9 */ bl OSDisableInterrupts
+/* 802B30A8 002AED08 83 3E 08 BC */ lwz r25, 0x8bc(r30)
+/* 802B30AC 002AED0C 7C 7F 1B 78 */ mr r31, r3
+/* 802B30B0 002AED10 80 1E 08 DC */ lwz r0, 0x8dc(r30)
+/* 802B30B4 002AED14 2C 19 FF FF */ cmpwi r25, -1
+/* 802B30B8 002AED18 41 82 03 24 */ beq lbl_802B33DC
+/* 802B30BC 002AED1C 2C 00 00 00 */ cmpwi r0, 0
+/* 802B30C0 002AED20 40 82 00 0C */ bne lbl_802B30CC
+/* 802B30C4 002AED24 3B 20 FF FE */ li r25, -2
+/* 802B30C8 002AED28 48 00 03 14 */ b lbl_802B33DC
+lbl_802B30CC:
+/* 802B30CC 002AED2C 1F 3D 00 14 */ mulli r25, r29, 0x14
+/* 802B30D0 002AED30 3F 80 80 54 */ lis r28, lbl_8053A480@ha
+/* 802B30D4 002AED34 3B 9C A4 80 */ addi r28, r28, lbl_8053A480@l
+/* 802B30D8 002AED38 7C 1C C8 2E */ lwzx r0, r28, r25
+/* 802B30DC 002AED3C 2C 00 00 00 */ cmpwi r0, 0
+/* 802B30E0 002AED40 40 82 02 F8 */ bne lbl_802B33D8
+/* 802B30E4 002AED44 38 7E 01 60 */ addi r3, r30, 0x160
+/* 802B30E8 002AED48 38 80 00 09 */ li r4, 9
+/* 802B30EC 002AED4C 4B FF 9F E9 */ bl __CanPushCmdQueue
+/* 802B30F0 002AED50 2C 03 00 00 */ cmpwi r3, 0
+/* 802B30F4 002AED54 40 82 00 0C */ bne lbl_802B3100
+/* 802B30F8 002AED58 3B 20 FF FE */ li r25, -2
+/* 802B30FC 002AED5C 48 00 02 E0 */ b lbl_802B33DC
+lbl_802B3100:
+/* 802B3100 002AED60 38 00 00 01 */ li r0, 1
+/* 802B3104 002AED64 7C DC CA 14 */ add r6, r28, r25
+/* 802B3108 002AED68 7C 1C C9 2E */ stwx r0, r28, r25
+/* 802B310C 002AED6C 38 1B 00 9A */ addi r0, r27, 0x9a
+/* 802B3110 002AED70 80 8D AE 54 */ lwz r4, lbl_80640114-_SDA_BASE_(r13)
+/* 802B3114 002AED74 38 7E 00 2A */ addi r3, r30, 0x2a
+/* 802B3118 002AED78 93 46 00 10 */ stw r26, 0x10(r6)
+/* 802B311C 002AED7C 38 A0 00 04 */ li r5, 4
+/* 802B3120 002AED80 B3 06 00 08 */ sth r24, 8(r6)
+/* 802B3124 002AED84 90 06 00 0C */ stw r0, 0xc(r6)
+/* 802B3128 002AED88 92 E6 00 04 */ stw r23, 4(r6)
+/* 802B312C 002AED8C 4B D5 0E D5 */ bl memcpy
+/* 802B3130 002AED90 3C 80 80 54 */ lis r4, lbl_8053A440@ha
+/* 802B3134 002AED94 38 7E 00 08 */ addi r3, r30, 8
+/* 802B3138 002AED98 38 84 A4 40 */ addi r4, r4, lbl_8053A440@l
+/* 802B313C 002AED9C 38 A0 00 22 */ li r5, 0x22
+/* 802B3140 002AEDA0 4B D5 0E C1 */ bl memcpy
+/* 802B3144 002AEDA4 4B FB F6 75 */ bl OSGetTime
+/* 802B3148 002AEDA8 90 9E 00 04 */ stw r4, 4(r30)
+/* 802B314C 002AEDAC 38 A0 00 00 */ li r5, 0
+/* 802B3150 002AEDB0 38 00 00 03 */ li r0, 3
+/* 802B3154 002AEDB4 38 80 00 00 */ li r4, 0
+/* 802B3158 002AEDB8 90 7E 00 00 */ stw r3, 0(r30)
+/* 802B315C 002AEDBC 88 6D AE 58 */ lbz r3, lbl_80640118-_SDA_BASE_(r13)
+/* 802B3160 002AEDC0 98 7E 00 2E */ stb r3, 0x2e(r30)
+/* 802B3164 002AEDC4 98 BE 00 2F */ stb r5, 0x2f(r30)
+/* 802B3168 002AEDC8 7C 09 03 A6 */ mtctr r0
+lbl_802B316C:
+/* 802B316C 002AEDCC 54 80 06 3E */ clrlwi r0, r4, 0x18
+/* 802B3170 002AEDD0 88 BE 00 2F */ lbz r5, 0x2f(r30)
+/* 802B3174 002AEDD4 7C 7E 00 AE */ lbzx r3, r30, r0
+/* 802B3178 002AEDD8 7C DE 02 14 */ add r6, r30, r0
+/* 802B317C 002AEDDC 38 84 00 07 */ addi r4, r4, 7
+/* 802B3180 002AEDE0 7C 65 1A 14 */ add r3, r5, r3
+/* 802B3184 002AEDE4 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B3188 002AEDE8 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B318C 002AEDEC 54 80 06 3E */ clrlwi r0, r4, 0x18
+/* 802B3190 002AEDF0 38 84 00 07 */ addi r4, r4, 7
+/* 802B3194 002AEDF4 88 66 00 01 */ lbz r3, 1(r6)
+/* 802B3198 002AEDF8 7C 65 1A 14 */ add r3, r5, r3
+/* 802B319C 002AEDFC 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B31A0 002AEE00 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B31A4 002AEE04 88 66 00 02 */ lbz r3, 2(r6)
+/* 802B31A8 002AEE08 7C 65 1A 14 */ add r3, r5, r3
+/* 802B31AC 002AEE0C 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B31B0 002AEE10 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B31B4 002AEE14 88 66 00 03 */ lbz r3, 3(r6)
+/* 802B31B8 002AEE18 7C 65 1A 14 */ add r3, r5, r3
+/* 802B31BC 002AEE1C 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B31C0 002AEE20 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B31C4 002AEE24 88 66 00 04 */ lbz r3, 4(r6)
+/* 802B31C8 002AEE28 7C 65 1A 14 */ add r3, r5, r3
+/* 802B31CC 002AEE2C 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B31D0 002AEE30 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B31D4 002AEE34 88 66 00 05 */ lbz r3, 5(r6)
+/* 802B31D8 002AEE38 7C 65 1A 14 */ add r3, r5, r3
+/* 802B31DC 002AEE3C 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B31E0 002AEE40 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B31E4 002AEE44 88 66 00 06 */ lbz r3, 6(r6)
+/* 802B31E8 002AEE48 7C DE 02 14 */ add r6, r30, r0
+/* 802B31EC 002AEE4C 54 80 06 3E */ clrlwi r0, r4, 0x18
+/* 802B31F0 002AEE50 7C 65 1A 14 */ add r3, r5, r3
+/* 802B31F4 002AEE54 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B31F8 002AEE58 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B31FC 002AEE5C 88 66 00 00 */ lbz r3, 0(r6)
+/* 802B3200 002AEE60 7C 65 1A 14 */ add r3, r5, r3
+/* 802B3204 002AEE64 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B3208 002AEE68 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B320C 002AEE6C 88 66 00 01 */ lbz r3, 1(r6)
+/* 802B3210 002AEE70 7C 65 1A 14 */ add r3, r5, r3
+/* 802B3214 002AEE74 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B3218 002AEE78 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B321C 002AEE7C 88 66 00 02 */ lbz r3, 2(r6)
+/* 802B3220 002AEE80 7C 65 1A 14 */ add r3, r5, r3
+/* 802B3224 002AEE84 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B3228 002AEE88 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B322C 002AEE8C 88 66 00 03 */ lbz r3, 3(r6)
+/* 802B3230 002AEE90 7C 65 1A 14 */ add r3, r5, r3
+/* 802B3234 002AEE94 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B3238 002AEE98 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B323C 002AEE9C 88 66 00 04 */ lbz r3, 4(r6)
+/* 802B3240 002AEEA0 7C 65 1A 14 */ add r3, r5, r3
+/* 802B3244 002AEEA4 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B3248 002AEEA8 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B324C 002AEEAC 88 66 00 05 */ lbz r3, 5(r6)
+/* 802B3250 002AEEB0 7C 65 1A 14 */ add r3, r5, r3
+/* 802B3254 002AEEB4 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B3258 002AEEB8 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 802B325C 002AEEBC 88 66 00 06 */ lbz r3, 6(r6)
+/* 802B3260 002AEEC0 7C 65 1A 14 */ add r3, r5, r3
+/* 802B3264 002AEEC4 98 7E 00 2F */ stb r3, 0x2f(r30)
+/* 802B3268 002AEEC8 42 00 FF 04 */ bdnz lbl_802B316C
+/* 802B326C 002AEECC 7C FE 00 AE */ lbzx r7, r30, r0
+/* 802B3270 002AEED0 38 A4 00 02 */ addi r5, r4, 2
+/* 802B3274 002AEED4 89 1E 00 2F */ lbz r8, 0x2f(r30)
+/* 802B3278 002AEED8 38 64 00 03 */ addi r3, r4, 3
+/* 802B327C 002AEEDC 54 69 06 3E */ clrlwi r9, r3, 0x18
+/* 802B3280 002AEEE0 38 C4 00 01 */ addi r6, r4, 1
+/* 802B3284 002AEEE4 7C E8 3A 14 */ add r7, r8, r7
+/* 802B3288 002AEEE8 38 04 00 04 */ addi r0, r4, 4
+/* 802B328C 002AEEEC 54 C4 06 3E */ clrlwi r4, r6, 0x18
+/* 802B3290 002AEEF0 98 FE 00 2F */ stb r7, 0x2f(r30)
+/* 802B3294 002AEEF4 54 08 06 3E */ clrlwi r8, r0, 0x18
+/* 802B3298 002AEEF8 54 E6 06 3E */ clrlwi r6, r7, 0x18
+/* 802B329C 002AEEFC 7C 9E 20 AE */ lbzx r4, r30, r4
+/* 802B32A0 002AEF00 3F 80 80 2B */ lis r28, writeCheck1@ha
+/* 802B32A4 002AEF04 54 A5 06 3E */ clrlwi r5, r5, 0x18
+/* 802B32A8 002AEF08 38 00 00 00 */ li r0, 0
+/* 802B32AC 002AEF0C 7C 86 22 14 */ add r4, r6, r4
+/* 802B32B0 002AEF10 7F A3 EB 78 */ mr r3, r29
+/* 802B32B4 002AEF14 98 9E 00 2F */ stb r4, 0x2f(r30)
+/* 802B32B8 002AEF18 54 8B 06 3E */ clrlwi r11, r4, 0x18
+/* 802B32BC 002AEF1C 7F C4 F3 78 */ mr r4, r30
+/* 802B32C0 002AEF20 38 FC 2F FC */ addi r7, r28, writeCheck1@l
+/* 802B32C4 002AEF24 7D 5E 28 AE */ lbzx r10, r30, r5
+/* 802B32C8 002AEF28 38 A0 00 10 */ li r5, 0x10
+/* 802B32CC 002AEF2C 38 C0 00 2A */ li r6, 0x2a
+/* 802B32D0 002AEF30 7D 4B 52 14 */ add r10, r11, r10
+/* 802B32D4 002AEF34 99 5E 00 2F */ stb r10, 0x2f(r30)
+/* 802B32D8 002AEF38 55 4A 06 3E */ clrlwi r10, r10, 0x18
+/* 802B32DC 002AEF3C 7D 3E 48 AE */ lbzx r9, r30, r9
+/* 802B32E0 002AEF40 7D 2A 4A 14 */ add r9, r10, r9
+/* 802B32E4 002AEF44 99 3E 00 2F */ stb r9, 0x2f(r30)
+/* 802B32E8 002AEF48 55 29 06 3E */ clrlwi r9, r9, 0x18
+/* 802B32EC 002AEF4C 7D 1E 40 AE */ lbzx r8, r30, r8
+/* 802B32F0 002AEF50 7D 09 42 14 */ add r8, r9, r8
+/* 802B32F4 002AEF54 55 08 06 3E */ clrlwi r8, r8, 0x18
+/* 802B32F8 002AEF58 39 08 00 55 */ addi r8, r8, 0x55
+/* 802B32FC 002AEF5C 99 1E 00 2F */ stb r8, 0x2f(r30)
+/* 802B3300 002AEF60 90 1E 00 38 */ stw r0, 0x38(r30)
+/* 802B3304 002AEF64 90 1E 00 3C */ stw r0, 0x3c(r30)
+/* 802B3308 002AEF68 48 00 03 35 */ bl WPADWriteMemoryAsync
+/* 802B330C 002AEF6C 3B 7E 00 10 */ addi r27, r30, 0x10
+/* 802B3310 002AEF70 7F A3 EB 78 */ mr r3, r29
+/* 802B3314 002AEF74 7F 64 DB 78 */ mr r4, r27
+/* 802B3318 002AEF78 38 FC 2F FC */ addi r7, r28, 0x2ffc
+/* 802B331C 002AEF7C 38 A0 00 10 */ li r5, 0x10
+/* 802B3320 002AEF80 38 C0 00 3A */ li r6, 0x3a
+/* 802B3324 002AEF84 48 00 03 19 */ bl WPADWriteMemoryAsync
+/* 802B3328 002AEF88 3B 5E 00 20 */ addi r26, r30, 0x20
+/* 802B332C 002AEF8C 7F A3 EB 78 */ mr r3, r29
+/* 802B3330 002AEF90 7F 44 D3 78 */ mr r4, r26
+/* 802B3334 002AEF94 38 FC 2F FC */ addi r7, r28, 0x2ffc
+/* 802B3338 002AEF98 38 A0 00 10 */ li r5, 0x10
+/* 802B333C 002AEF9C 38 C0 00 4A */ li r6, 0x4a
+/* 802B3340 002AEFA0 48 00 02 FD */ bl WPADWriteMemoryAsync
+/* 802B3344 002AEFA4 3B 3E 00 30 */ addi r25, r30, 0x30
+/* 802B3348 002AEFA8 7F A3 EB 78 */ mr r3, r29
+/* 802B334C 002AEFAC 7F 24 CB 78 */ mr r4, r25
+/* 802B3350 002AEFB0 38 FC 2F FC */ addi r7, r28, 0x2ffc
+/* 802B3354 002AEFB4 38 A0 00 08 */ li r5, 8
+/* 802B3358 002AEFB8 38 C0 00 5A */ li r6, 0x5a
+/* 802B335C 002AEFBC 48 00 02 E1 */ bl WPADWriteMemoryAsync
+/* 802B3360 002AEFC0 3F 80 80 2B */ lis r28, writeCheck2@ha
+/* 802B3364 002AEFC4 7F A3 EB 78 */ mr r3, r29
+/* 802B3368 002AEFC8 7F C4 F3 78 */ mr r4, r30
+/* 802B336C 002AEFCC 38 A0 00 10 */ li r5, 0x10
+/* 802B3370 002AEFD0 38 FC 30 34 */ addi r7, r28, writeCheck2@l
+/* 802B3374 002AEFD4 38 C0 00 62 */ li r6, 0x62
+/* 802B3378 002AEFD8 48 00 02 C5 */ bl WPADWriteMemoryAsync
+/* 802B337C 002AEFDC 7F A3 EB 78 */ mr r3, r29
+/* 802B3380 002AEFE0 7F 64 DB 78 */ mr r4, r27
+/* 802B3384 002AEFE4 38 FC 30 34 */ addi r7, r28, 0x3034
+/* 802B3388 002AEFE8 38 A0 00 10 */ li r5, 0x10
+/* 802B338C 002AEFEC 38 C0 00 72 */ li r6, 0x72
+/* 802B3390 002AEFF0 48 00 02 AD */ bl WPADWriteMemoryAsync
+/* 802B3394 002AEFF4 7F A3 EB 78 */ mr r3, r29
+/* 802B3398 002AEFF8 7F 44 D3 78 */ mr r4, r26
+/* 802B339C 002AEFFC 38 FC 30 34 */ addi r7, r28, 0x3034
+/* 802B33A0 002AF000 38 A0 00 10 */ li r5, 0x10
+/* 802B33A4 002AF004 38 C0 00 82 */ li r6, 0x82
+/* 802B33A8 002AF008 48 00 02 95 */ bl WPADWriteMemoryAsync
+/* 802B33AC 002AF00C 3C E0 80 2B */ lis r7, WriteGameDataSub@ha
+/* 802B33B0 002AF010 7F A3 EB 78 */ mr r3, r29
+/* 802B33B4 002AF014 7F 24 CB 78 */ mr r4, r25
+/* 802B33B8 002AF018 38 A0 00 08 */ li r5, 8
+/* 802B33BC 002AF01C 38 E7 2E BC */ addi r7, r7, WriteGameDataSub@l
+/* 802B33C0 002AF020 38 C0 00 92 */ li r6, 0x92
+/* 802B33C4 002AF024 48 00 02 79 */ bl WPADWriteMemoryAsync
+/* 802B33C8 002AF028 7F E3 FB 78 */ mr r3, r31
+/* 802B33CC 002AF02C 4B FB B3 B9 */ bl OSRestoreInterrupts
+/* 802B33D0 002AF030 38 60 00 00 */ li r3, 0
+/* 802B33D4 002AF034 48 00 00 30 */ b lbl_802B3404
+lbl_802B33D8:
+/* 802B33D8 002AF038 3B 20 FF FE */ li r25, -2
+lbl_802B33DC:
+/* 802B33DC 002AF03C 7F E3 FB 78 */ mr r3, r31
+/* 802B33E0 002AF040 4B FB B3 A5 */ bl OSRestoreInterrupts
+/* 802B33E4 002AF044 2C 1A 00 00 */ cmpwi r26, 0
+/* 802B33E8 002AF048 41 82 00 18 */ beq lbl_802B3400
+/* 802B33EC 002AF04C 7F 4C D3 78 */ mr r12, r26
+/* 802B33F0 002AF050 7F A3 EB 78 */ mr r3, r29
+/* 802B33F4 002AF054 7F 24 CB 78 */ mr r4, r25
+/* 802B33F8 002AF058 7D 89 03 A6 */ mtctr r12
+/* 802B33FC 002AF05C 4E 80 04 21 */ bctrl
+lbl_802B3400:
+/* 802B3400 002AF060 7F 23 CB 78 */ mr r3, r25
+lbl_802B3404:
+/* 802B3404 002AF064 39 61 00 30 */ addi r11, r1, 0x30
+/* 802B3408 002AF068 4B F1 3D 5D */ bl _restgpr_23
+/* 802B340C 002AF06C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802B3410 002AF070 7C 08 03 A6 */ mtlr r0
+/* 802B3414 002AF074 38 21 00 30 */ addi r1, r1, 0x30
+/* 802B3418 002AF078 4E 80 00 20 */ blr
+
+.global WPADReadGameData
+WPADReadGameData:
+/* 802B341C 002AF07C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802B3420 002AF080 7C 08 02 A6 */ mflr r0
+/* 802B3424 002AF084 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802B3428 002AF088 39 61 00 30 */ addi r11, r1, 0x30
+/* 802B342C 002AF08C 4B F1 3C E9 */ bl _savegpr_22
+/* 802B3430 002AF090 3D 00 80 53 */ lis r8, lbl_80536D70@ha
+/* 802B3434 002AF094 54 60 10 3A */ slwi r0, r3, 2
+/* 802B3438 002AF098 39 08 6D 70 */ addi r8, r8, lbl_80536D70@l
+/* 802B343C 002AF09C 7C 78 1B 78 */ mr r24, r3
+/* 802B3440 002AF0A0 7E E8 00 2E */ lwzx r23, r8, r0
+/* 802B3444 002AF0A4 7C 99 23 78 */ mr r25, r4
+/* 802B3448 002AF0A8 7C BA 2B 78 */ mr r26, r5
+/* 802B344C 002AF0AC 7C DB 33 78 */ mr r27, r6
+/* 802B3450 002AF0B0 7C FC 3B 78 */ mr r28, r7
+/* 802B3454 002AF0B4 4B FB B3 09 */ bl OSDisableInterrupts
+/* 802B3458 002AF0B8 82 D7 08 BC */ lwz r22, 0x8bc(r23)
+/* 802B345C 002AF0BC 7C 7D 1B 78 */ mr r29, r3
+/* 802B3460 002AF0C0 80 17 08 DC */ lwz r0, 0x8dc(r23)
+/* 802B3464 002AF0C4 2C 16 FF FF */ cmpwi r22, -1
+/* 802B3468 002AF0C8 41 82 00 C8 */ beq lbl_802B3530
+/* 802B346C 002AF0CC 2C 00 00 00 */ cmpwi r0, 0
+/* 802B3470 002AF0D0 40 82 00 0C */ bne lbl_802B347C
+/* 802B3474 002AF0D4 3A C0 FF FE */ li r22, -2
+/* 802B3478 002AF0D8 48 00 00 B8 */ b lbl_802B3530
+lbl_802B347C:
+/* 802B347C 002AF0DC 1F D8 00 14 */ mulli r30, r24, 0x14
+/* 802B3480 002AF0E0 3F E0 80 54 */ lis r31, lbl_8053A480@ha
+/* 802B3484 002AF0E4 3B FF A4 80 */ addi r31, r31, lbl_8053A480@l
+/* 802B3488 002AF0E8 7C 1F F0 2E */ lwzx r0, r31, r30
+/* 802B348C 002AF0EC 2C 00 00 00 */ cmpwi r0, 0
+/* 802B3490 002AF0F0 40 82 00 9C */ bne lbl_802B352C
+/* 802B3494 002AF0F4 80 17 00 38 */ lwz r0, 0x38(r23)
+/* 802B3498 002AF0F8 38 80 00 00 */ li r4, 0
+/* 802B349C 002AF0FC 2C 00 00 00 */ cmpwi r0, 0
+/* 802B34A0 002AF100 41 82 00 10 */ beq lbl_802B34B0
+/* 802B34A4 002AF104 80 17 00 3C */ lwz r0, 0x3c(r23)
+/* 802B34A8 002AF108 2C 00 00 00 */ cmpwi r0, 0
+/* 802B34AC 002AF10C 40 82 00 08 */ bne lbl_802B34B4
+lbl_802B34B0:
+/* 802B34B0 002AF110 38 80 00 01 */ li r4, 1
+lbl_802B34B4:
+/* 802B34B4 002AF114 7C 64 00 D0 */ neg r3, r4
+/* 802B34B8 002AF118 38 00 FF FA */ li r0, -6
+/* 802B34BC 002AF11C 7C 63 23 78 */ or r3, r3, r4
+/* 802B34C0 002AF120 7C 63 FE 70 */ srawi r3, r3, 0x1f
+/* 802B34C4 002AF124 7C 16 18 79 */ andc. r22, r0, r3
+/* 802B34C8 002AF128 40 82 00 68 */ bne lbl_802B3530
+/* 802B34CC 002AF12C 80 6D AE 54 */ lwz r3, lbl_80640114-_SDA_BASE_(r13)
+/* 802B34D0 002AF130 38 97 00 2A */ addi r4, r23, 0x2a
+/* 802B34D4 002AF134 38 A0 00 04 */ li r5, 4
+/* 802B34D8 002AF138 4B F1 6E C1 */ bl memcmp
+/* 802B34DC 002AF13C 2C 03 00 00 */ cmpwi r3, 0
+/* 802B34E0 002AF140 40 82 00 44 */ bne lbl_802B3524
+/* 802B34E4 002AF144 38 00 00 01 */ li r0, 1
+/* 802B34E8 002AF148 3C 60 80 54 */ lis r3, lbl_8053A480@ha
+/* 802B34EC 002AF14C 38 63 A4 80 */ addi r3, r3, lbl_8053A480@l
+/* 802B34F0 002AF150 7C 1F F1 2E */ stwx r0, r31, r30
+/* 802B34F4 002AF154 7C 83 F2 14 */ add r4, r3, r30
+/* 802B34F8 002AF158 93 84 00 10 */ stw r28, 0x10(r4)
+/* 802B34FC 002AF15C 7F A3 EB 78 */ mr r3, r29
+/* 802B3500 002AF160 4B FB B2 85 */ bl OSRestoreInterrupts
+/* 802B3504 002AF164 3C E0 80 2B */ lis r7, ResultCallback@ha
+/* 802B3508 002AF168 7F 03 C3 78 */ mr r3, r24
+/* 802B350C 002AF16C 7F 24 CB 78 */ mr r4, r25
+/* 802B3510 002AF170 7F 45 D3 78 */ mr r5, r26
+/* 802B3514 002AF174 38 DB 00 9A */ addi r6, r27, 0x9a
+/* 802B3518 002AF178 38 E7 2D 18 */ addi r7, r7, ResultCallback@l
+/* 802B351C 002AF17C 48 00 00 55 */ bl WPADReadMemoryAsync
+/* 802B3520 002AF180 48 00 00 38 */ b lbl_802B3558
+lbl_802B3524:
+/* 802B3524 002AF184 3A C0 FF FB */ li r22, -5
+/* 802B3528 002AF188 48 00 00 08 */ b lbl_802B3530
+lbl_802B352C:
+/* 802B352C 002AF18C 3A C0 FF FE */ li r22, -2
+lbl_802B3530:
+/* 802B3530 002AF190 7F A3 EB 78 */ mr r3, r29
+/* 802B3534 002AF194 4B FB B2 51 */ bl OSRestoreInterrupts
+/* 802B3538 002AF198 2C 1C 00 00 */ cmpwi r28, 0
+/* 802B353C 002AF19C 41 82 00 18 */ beq lbl_802B3554
+/* 802B3540 002AF1A0 7F 8C E3 78 */ mr r12, r28
+/* 802B3544 002AF1A4 7F 03 C3 78 */ mr r3, r24
+/* 802B3548 002AF1A8 7E C4 B3 78 */ mr r4, r22
+/* 802B354C 002AF1AC 7D 89 03 A6 */ mtctr r12
+/* 802B3550 002AF1B0 4E 80 04 21 */ bctrl
+lbl_802B3554:
+/* 802B3554 002AF1B4 7E C3 B3 78 */ mr r3, r22
+lbl_802B3558:
+/* 802B3558 002AF1B8 39 61 00 30 */ addi r11, r1, 0x30
+/* 802B355C 002AF1BC 4B F1 3C 05 */ bl _restgpr_22
+/* 802B3560 002AF1C0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802B3564 002AF1C4 7C 08 03 A6 */ mtlr r0
+/* 802B3568 002AF1C8 38 21 00 30 */ addi r1, r1, 0x30
+/* 802B356C 002AF1CC 4E 80 00 20 */ blr
+
+.global WPADReadMemoryAsync
+WPADReadMemoryAsync:
+/* 802B3570 002AF1D0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802B3574 002AF1D4 7C 08 02 A6 */ mflr r0
+/* 802B3578 002AF1D8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802B357C 002AF1DC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802B3580 002AF1E0 4B F1 3B 9D */ bl _savegpr_24
+/* 802B3584 002AF1E4 3D 00 80 53 */ lis r8, lbl_80536D70@ha
+/* 802B3588 002AF1E8 54 60 10 3A */ slwi r0, r3, 2
+/* 802B358C 002AF1EC 39 08 6D 70 */ addi r8, r8, lbl_80536D70@l
+/* 802B3590 002AF1F0 7C 78 1B 78 */ mr r24, r3
+/* 802B3594 002AF1F4 7F E8 00 2E */ lwzx r31, r8, r0
+/* 802B3598 002AF1F8 7C 99 23 78 */ mr r25, r4
+/* 802B359C 002AF1FC 7C BA 2B 78 */ mr r26, r5
+/* 802B35A0 002AF200 7C DB 33 78 */ mr r27, r6
+/* 802B35A4 002AF204 7C FC 3B 78 */ mr r28, r7
+/* 802B35A8 002AF208 4B FB B1 B5 */ bl OSDisableInterrupts
+/* 802B35AC 002AF20C 83 BF 08 BC */ lwz r29, 0x8bc(r31)
+/* 802B35B0 002AF210 83 DF 08 DC */ lwz r30, 0x8dc(r31)
+/* 802B35B4 002AF214 4B FB B1 D1 */ bl OSRestoreInterrupts
+/* 802B35B8 002AF218 2C 1D FF FF */ cmpwi r29, -1
+/* 802B35BC 002AF21C 41 82 00 40 */ beq lbl_802B35FC
+/* 802B35C0 002AF220 2C 1E 00 00 */ cmpwi r30, 0
+/* 802B35C4 002AF224 40 82 00 0C */ bne lbl_802B35D0
+/* 802B35C8 002AF228 3B A0 FF FE */ li r29, -2
+/* 802B35CC 002AF22C 48 00 00 30 */ b lbl_802B35FC
+lbl_802B35D0:
+/* 802B35D0 002AF230 7F 24 CB 78 */ mr r4, r25
+/* 802B35D4 002AF234 7F 45 D3 78 */ mr r5, r26
+/* 802B35D8 002AF238 7F 66 DB 78 */ mr r6, r27
+/* 802B35DC 002AF23C 7F 87 E3 78 */ mr r7, r28
+/* 802B35E0 002AF240 38 7F 01 60 */ addi r3, r31, 0x160
+/* 802B35E4 002AF244 4B FF 99 45 */ bl WPADiSendReadData
+/* 802B35E8 002AF248 7C 83 00 D0 */ neg r4, r3
+/* 802B35EC 002AF24C 38 00 FF FE */ li r0, -2
+/* 802B35F0 002AF250 7C 83 1B 78 */ or r3, r4, r3
+/* 802B35F4 002AF254 7C 63 FE 70 */ srawi r3, r3, 0x1f
+/* 802B35F8 002AF258 7C 1D 18 78 */ andc r29, r0, r3
+lbl_802B35FC:
+/* 802B35FC 002AF25C 2C 1D 00 00 */ cmpwi r29, 0
+/* 802B3600 002AF260 41 82 00 20 */ beq lbl_802B3620
+/* 802B3604 002AF264 2C 1C 00 00 */ cmpwi r28, 0
+/* 802B3608 002AF268 41 82 00 18 */ beq lbl_802B3620
+/* 802B360C 002AF26C 7F 8C E3 78 */ mr r12, r28
+/* 802B3610 002AF270 7F 03 C3 78 */ mr r3, r24
+/* 802B3614 002AF274 7F A4 EB 78 */ mr r4, r29
+/* 802B3618 002AF278 7D 89 03 A6 */ mtctr r12
+/* 802B361C 002AF27C 4E 80 04 21 */ bctrl
+lbl_802B3620:
+/* 802B3620 002AF280 39 61 00 30 */ addi r11, r1, 0x30
+/* 802B3624 002AF284 7F A3 EB 78 */ mr r3, r29
+/* 802B3628 002AF288 4B F1 3B 41 */ bl _restgpr_24
+/* 802B362C 002AF28C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802B3630 002AF290 7C 08 03 A6 */ mtlr r0
+/* 802B3634 002AF294 38 21 00 30 */ addi r1, r1, 0x30
+/* 802B3638 002AF298 4E 80 00 20 */ blr
+
+.global WPADWriteMemoryAsync
+WPADWriteMemoryAsync:
+/* 802B363C 002AF29C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802B3640 002AF2A0 7C 08 02 A6 */ mflr r0
+/* 802B3644 002AF2A4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802B3648 002AF2A8 39 61 00 30 */ addi r11, r1, 0x30
+/* 802B364C 002AF2AC 4B F1 3A D1 */ bl _savegpr_24
+/* 802B3650 002AF2B0 3D 00 80 53 */ lis r8, lbl_80536D70@ha
+/* 802B3654 002AF2B4 54 60 10 3A */ slwi r0, r3, 2
+/* 802B3658 002AF2B8 39 08 6D 70 */ addi r8, r8, lbl_80536D70@l
+/* 802B365C 002AF2BC 7C 78 1B 78 */ mr r24, r3
+/* 802B3660 002AF2C0 7F E8 00 2E */ lwzx r31, r8, r0
+/* 802B3664 002AF2C4 7C 99 23 78 */ mr r25, r4
+/* 802B3668 002AF2C8 7C BA 2B 78 */ mr r26, r5
+/* 802B366C 002AF2CC 7C DB 33 78 */ mr r27, r6
+/* 802B3670 002AF2D0 7C FC 3B 78 */ mr r28, r7
+/* 802B3674 002AF2D4 4B FB B0 E9 */ bl OSDisableInterrupts
+/* 802B3678 002AF2D8 83 BF 08 BC */ lwz r29, 0x8bc(r31)
+/* 802B367C 002AF2DC 83 DF 08 DC */ lwz r30, 0x8dc(r31)
+/* 802B3680 002AF2E0 4B FB B1 05 */ bl OSRestoreInterrupts
+/* 802B3684 002AF2E4 2C 1D FF FF */ cmpwi r29, -1
+/* 802B3688 002AF2E8 41 82 00 40 */ beq lbl_802B36C8
+/* 802B368C 002AF2EC 2C 1E 00 00 */ cmpwi r30, 0
+/* 802B3690 002AF2F0 40 82 00 0C */ bne lbl_802B369C
+/* 802B3694 002AF2F4 3B A0 FF FE */ li r29, -2
+/* 802B3698 002AF2F8 48 00 00 30 */ b lbl_802B36C8
+lbl_802B369C:
+/* 802B369C 002AF2FC 7F 24 CB 78 */ mr r4, r25
+/* 802B36A0 002AF300 7F 45 D3 78 */ mr r5, r26
+/* 802B36A4 002AF304 7F 66 DB 78 */ mr r6, r27
+/* 802B36A8 002AF308 7F 87 E3 78 */ mr r7, r28
+/* 802B36AC 002AF30C 38 7F 01 60 */ addi r3, r31, 0x160
+/* 802B36B0 002AF310 4B FF 96 C1 */ bl WPADiSendWriteData
+/* 802B36B4 002AF314 7C 83 00 D0 */ neg r4, r3
+/* 802B36B8 002AF318 38 00 FF FE */ li r0, -2
+/* 802B36BC 002AF31C 7C 83 1B 78 */ or r3, r4, r3
+/* 802B36C0 002AF320 7C 63 FE 70 */ srawi r3, r3, 0x1f
+/* 802B36C4 002AF324 7C 1D 18 78 */ andc r29, r0, r3
+lbl_802B36C8:
+/* 802B36C8 002AF328 2C 1D 00 00 */ cmpwi r29, 0
+/* 802B36CC 002AF32C 41 82 00 20 */ beq lbl_802B36EC
+/* 802B36D0 002AF330 2C 1C 00 00 */ cmpwi r28, 0
+/* 802B36D4 002AF334 41 82 00 18 */ beq lbl_802B36EC
+/* 802B36D8 002AF338 7F 8C E3 78 */ mr r12, r28
+/* 802B36DC 002AF33C 7F 03 C3 78 */ mr r3, r24
+/* 802B36E0 002AF340 7F A4 EB 78 */ mr r4, r29
+/* 802B36E4 002AF344 7D 89 03 A6 */ mtctr r12
+/* 802B36E8 002AF348 4E 80 04 21 */ bctrl
+lbl_802B36EC:
+/* 802B36EC 002AF34C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802B36F0 002AF350 7F A3 EB 78 */ mr r3, r29
+/* 802B36F4 002AF354 4B F1 3A 75 */ bl _restgpr_24
+/* 802B36F8 002AF358 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802B36FC 002AF35C 7C 08 03 A6 */ mtlr r0
+/* 802B3700 002AF360 38 21 00 30 */ addi r1, r1, 0x30
+/* 802B3704 002AF364 4E 80 00 20 */ blr
+
+.global WPADGetGameTitleUtf16
+WPADGetGameTitleUtf16:
+/* 802B3708 002AF368 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802B370C 002AF36C 7C 08 02 A6 */ mflr r0
+/* 802B3710 002AF370 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802B3714 002AF374 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802B3718 002AF378 54 60 10 3A */ slwi r0, r3, 2
+/* 802B371C 002AF37C 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802B3720 002AF380 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802B3724 002AF384 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802B3728 002AF388 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802B372C 002AF38C 7C 9D 23 78 */ mr r29, r4
+/* 802B3730 002AF390 7F E5 00 2E */ lwzx r31, r5, r0
+/* 802B3734 002AF394 4B FB B0 29 */ bl OSDisableInterrupts
+/* 802B3738 002AF398 80 1F 00 38 */ lwz r0, 0x38(r31)
+/* 802B373C 002AF39C 38 A0 00 00 */ li r5, 0
+/* 802B3740 002AF3A0 2C 00 00 00 */ cmpwi r0, 0
+/* 802B3744 002AF3A4 41 82 00 10 */ beq lbl_802B3754
+/* 802B3748 002AF3A8 80 1F 00 3C */ lwz r0, 0x3c(r31)
+/* 802B374C 002AF3AC 2C 00 00 00 */ cmpwi r0, 0
+/* 802B3750 002AF3B0 40 82 00 08 */ bne lbl_802B3758
+lbl_802B3754:
+/* 802B3754 002AF3B4 38 A0 00 01 */ li r5, 1
+lbl_802B3758:
+/* 802B3758 002AF3B8 7C 85 00 D0 */ neg r4, r5
+/* 802B375C 002AF3BC 38 00 FF FC */ li r0, -4
+/* 802B3760 002AF3C0 7C 84 2B 78 */ or r4, r4, r5
+/* 802B3764 002AF3C4 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802B3768 002AF3C8 7C 1E 20 79 */ andc. r30, r0, r4
+/* 802B376C 002AF3CC 40 82 00 10 */ bne lbl_802B377C
+/* 802B3770 002AF3D0 38 1F 00 08 */ addi r0, r31, 8
+/* 802B3774 002AF3D4 90 1D 00 00 */ stw r0, 0(r29)
+/* 802B3778 002AF3D8 48 00 00 0C */ b lbl_802B3784
+lbl_802B377C:
+/* 802B377C 002AF3DC 38 00 00 00 */ li r0, 0
+/* 802B3780 002AF3E0 90 1D 00 00 */ stw r0, 0(r29)
+lbl_802B3784:
+/* 802B3784 002AF3E4 4B FB B0 01 */ bl OSRestoreInterrupts
+/* 802B3788 002AF3E8 7F C3 F3 78 */ mr r3, r30
+/* 802B378C 002AF3EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802B3790 002AF3F0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802B3794 002AF3F4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802B3798 002AF3F8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802B379C 002AF3FC 7C 08 03 A6 */ mtlr r0
+/* 802B37A0 002AF400 38 21 00 20 */ addi r1, r1, 0x20
+/* 802B37A4 002AF404 4E 80 00 20 */ blr
+
+.global WPADSetGameTitleUtf16
+WPADSetGameTitleUtf16:
+/* 802B37A8 002AF408 3C 80 80 54 */ lis r4, lbl_8053A440@ha
+/* 802B37AC 002AF40C 38 00 00 02 */ li r0, 2
+/* 802B37B0 002AF410 38 A0 00 00 */ li r5, 0
+/* 802B37B4 002AF414 38 84 A4 40 */ addi r4, r4, lbl_8053A440@l
+/* 802B37B8 002AF418 7C 09 03 A6 */ mtctr r0
+lbl_802B37BC:
+/* 802B37BC 002AF41C A0 03 00 00 */ lhz r0, 0(r3)
+/* 802B37C0 002AF420 2C 00 00 00 */ cmpwi r0, 0
+/* 802B37C4 002AF424 B0 04 00 00 */ sth r0, 0(r4)
+/* 802B37C8 002AF428 41 82 00 84 */ beq lbl_802B384C
+/* 802B37CC 002AF42C A0 03 00 02 */ lhz r0, 2(r3)
+/* 802B37D0 002AF430 2C 00 00 00 */ cmpwi r0, 0
+/* 802B37D4 002AF434 B0 04 00 02 */ sth r0, 2(r4)
+/* 802B37D8 002AF438 41 82 00 74 */ beq lbl_802B384C
+/* 802B37DC 002AF43C A0 03 00 04 */ lhz r0, 4(r3)
+/* 802B37E0 002AF440 2C 00 00 00 */ cmpwi r0, 0
+/* 802B37E4 002AF444 B0 04 00 04 */ sth r0, 4(r4)
+/* 802B37E8 002AF448 41 82 00 64 */ beq lbl_802B384C
+/* 802B37EC 002AF44C A0 03 00 06 */ lhz r0, 6(r3)
+/* 802B37F0 002AF450 2C 00 00 00 */ cmpwi r0, 0
+/* 802B37F4 002AF454 B0 04 00 06 */ sth r0, 6(r4)
+/* 802B37F8 002AF458 41 82 00 54 */ beq lbl_802B384C
+/* 802B37FC 002AF45C A0 03 00 08 */ lhz r0, 8(r3)
+/* 802B3800 002AF460 2C 00 00 00 */ cmpwi r0, 0
+/* 802B3804 002AF464 B0 04 00 08 */ sth r0, 8(r4)
+/* 802B3808 002AF468 41 82 00 44 */ beq lbl_802B384C
+/* 802B380C 002AF46C A0 03 00 0A */ lhz r0, 0xa(r3)
+/* 802B3810 002AF470 2C 00 00 00 */ cmpwi r0, 0
+/* 802B3814 002AF474 B0 04 00 0A */ sth r0, 0xa(r4)
+/* 802B3818 002AF478 41 82 00 34 */ beq lbl_802B384C
+/* 802B381C 002AF47C A0 03 00 0C */ lhz r0, 0xc(r3)
+/* 802B3820 002AF480 2C 00 00 00 */ cmpwi r0, 0
+/* 802B3824 002AF484 B0 04 00 0C */ sth r0, 0xc(r4)
+/* 802B3828 002AF488 41 82 00 24 */ beq lbl_802B384C
+/* 802B382C 002AF48C A0 03 00 0E */ lhz r0, 0xe(r3)
+/* 802B3830 002AF490 2C 00 00 00 */ cmpwi r0, 0
+/* 802B3834 002AF494 B0 04 00 0E */ sth r0, 0xe(r4)
+/* 802B3838 002AF498 41 82 00 14 */ beq lbl_802B384C
+/* 802B383C 002AF49C 38 63 00 10 */ addi r3, r3, 0x10
+/* 802B3840 002AF4A0 38 84 00 10 */ addi r4, r4, 0x10
+/* 802B3844 002AF4A4 38 A5 00 07 */ addi r5, r5, 7
+/* 802B3848 002AF4A8 42 00 FF 74 */ bdnz lbl_802B37BC
+lbl_802B384C:
+/* 802B384C 002AF4AC 3C 60 80 54 */ lis r3, lbl_8053A440@ha
+/* 802B3850 002AF4B0 38 00 00 00 */ li r0, 0
+/* 802B3854 002AF4B4 38 63 A4 40 */ addi r3, r3, lbl_8053A440@l
+/* 802B3858 002AF4B8 B0 03 00 20 */ sth r0, 0x20(r3)
+/* 802B385C 002AF4BC 4E 80 00 20 */ blr
diff --git a/asm/SDK/WPAD/debug_msg.s b/asm/SDK/WPAD/debug_msg.s
new file mode 100644
index 0000000..2cf62fc
--- /dev/null
+++ b/asm/SDK/WPAD/debug_msg.s
@@ -0,0 +1,27 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DEBUGPrint
+DEBUGPrint:
+/* 802B3860 002AF4C0 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 802B3864 002AF4C4 40 86 00 24 */ bne cr1, lbl_802B3888
+/* 802B3868 002AF4C8 D8 21 00 28 */ stfd f1, 0x28(r1)
+/* 802B386C 002AF4CC D8 41 00 30 */ stfd f2, 0x30(r1)
+/* 802B3870 002AF4D0 D8 61 00 38 */ stfd f3, 0x38(r1)
+/* 802B3874 002AF4D4 D8 81 00 40 */ stfd f4, 0x40(r1)
+/* 802B3878 002AF4D8 D8 A1 00 48 */ stfd f5, 0x48(r1)
+/* 802B387C 002AF4DC D8 C1 00 50 */ stfd f6, 0x50(r1)
+/* 802B3880 002AF4E0 D8 E1 00 58 */ stfd f7, 0x58(r1)
+/* 802B3884 002AF4E4 D9 01 00 60 */ stfd f8, 0x60(r1)
+lbl_802B3888:
+/* 802B3888 002AF4E8 90 61 00 08 */ stw r3, 8(r1)
+/* 802B388C 002AF4EC 90 81 00 0C */ stw r4, 0xc(r1)
+/* 802B3890 002AF4F0 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 802B3894 002AF4F4 90 C1 00 14 */ stw r6, 0x14(r1)
+/* 802B3898 002AF4F8 90 E1 00 18 */ stw r7, 0x18(r1)
+/* 802B389C 002AF4FC 91 01 00 1C */ stw r8, 0x1c(r1)
+/* 802B38A0 002AF500 91 21 00 20 */ stw r9, 0x20(r1)
+/* 802B38A4 002AF504 91 41 00 24 */ stw r10, 0x24(r1)
+/* 802B38A8 002AF508 38 21 00 70 */ addi r1, r1, 0x70
+/* 802B38AC 002AF50C 4E 80 00 20 */ blr