diff options
Diffstat (limited to 'asm/SDK')
30 files changed, 11664 insertions, 17 deletions
diff --git a/asm/SDK/DWC/dwc_common/dwc_base64.s b/asm/SDK/DWC/dwc_common/dwc_base64.s new file mode 100644 index 0000000..9cfad48 --- /dev/null +++ b/asm/SDK/DWC/dwc_common/dwc_base64.s @@ -0,0 +1,256 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DWC_Base64Encode
+DWC_Base64Encode:
+/* 8031C124 00317D84 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8031C128 00317D88 7C 08 02 A6 */ mflr r0
+/* 8031C12C 00317D8C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031C130 00317D90 39 61 00 30 */ addi r11, r1, 0x30
+/* 8031C134 00317D94 4B EA AF E9 */ bl _savegpr_24
+/* 8031C138 00317D98 3C E0 AA AB */ lis r7, 0xAAAAAAAB@ha
+/* 8031C13C 00317D9C 2C 05 00 00 */ cmpwi r5, 0
+/* 8031C140 00317DA0 3B C7 AA AB */ addi r30, r7, 0xAAAAAAAB@l
+/* 8031C144 00317DA4 7C B9 2B 78 */ mr r25, r5
+/* 8031C148 00317DA8 7C FE 20 16 */ mulhwu r7, r30, r4
+/* 8031C14C 00317DAC 54 E0 F8 7E */ srwi r0, r7, 1
+/* 8031C150 00317DB0 54 E7 08 3A */ rlwinm r7, r7, 1, 0, 0x1d
+/* 8031C154 00317DB4 1C 00 00 03 */ mulli r0, r0, 3
+/* 8031C158 00317DB8 7C A0 20 50 */ subf r5, r0, r4
+/* 8031C15C 00317DBC 7C 05 00 D0 */ neg r0, r5
+/* 8031C160 00317DC0 7C 00 2B 78 */ or r0, r0, r5
+/* 8031C164 00317DC4 7C 00 FE 70 */ srawi r0, r0, 0x1f
+/* 8031C168 00317DC8 54 00 07 7A */ rlwinm r0, r0, 0, 0x1d, 0x1d
+/* 8031C16C 00317DCC 7C 07 02 14 */ add r0, r7, r0
+/* 8031C170 00317DD0 40 82 00 0C */ bne lbl_8031C17C
+/* 8031C174 00317DD4 7C 03 03 78 */ mr r3, r0
+/* 8031C178 00317DD8 48 00 01 24 */ b lbl_8031C29C
+lbl_8031C17C:
+/* 8031C17C 00317DDC 7C 06 00 40 */ cmplw r6, r0
+/* 8031C180 00317DE0 40 80 00 0C */ bge lbl_8031C18C
+/* 8031C184 00317DE4 38 60 FF FF */ li r3, -1
+/* 8031C188 00317DE8 48 00 01 14 */ b lbl_8031C29C
+lbl_8031C18C:
+/* 8031C18C 00317DEC 7C 7C 1B 78 */ mr r28, r3
+/* 8031C190 00317DF0 7F 3A CB 78 */ mr r26, r25
+/* 8031C194 00317DF4 7F 63 22 14 */ add r27, r3, r4
+/* 8031C198 00317DF8 3B 00 00 2A */ li r24, 0x2a
+/* 8031C19C 00317DFC 48 00 00 F4 */ b lbl_8031C290
+lbl_8031C1A0:
+/* 8031C1A0 00317E00 7C BC D8 50 */ subf r5, r28, r27
+/* 8031C1A4 00317E04 3B E0 00 03 */ li r31, 3
+/* 8031C1A8 00317E08 54 A3 18 38 */ slwi r3, r5, 3
+/* 8031C1AC 00317E0C 7C 1E 18 16 */ mulhwu r0, r30, r3
+/* 8031C1B0 00317E10 2C 05 00 03 */ cmpwi r5, 3
+/* 8031C1B4 00317E14 54 04 F0 BE */ srwi r4, r0, 2
+/* 8031C1B8 00317E18 1C 04 00 06 */ mulli r0, r4, 6
+/* 8031C1BC 00317E1C 7C 60 18 50 */ subf r3, r0, r3
+/* 8031C1C0 00317E20 7C 03 00 D0 */ neg r0, r3
+/* 8031C1C4 00317E24 7C 00 1B 78 */ or r0, r0, r3
+/* 8031C1C8 00317E28 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8031C1CC 00317E2C 7F A4 02 14 */ add r29, r4, r0
+/* 8031C1D0 00317E30 40 80 00 08 */ bge lbl_8031C1D8
+/* 8031C1D4 00317E34 7C BF 2B 78 */ mr r31, r5
+lbl_8031C1D8:
+/* 8031C1D8 00317E38 38 61 00 08 */ addi r3, r1, 8
+/* 8031C1DC 00317E3C 38 80 00 00 */ li r4, 0
+/* 8031C1E0 00317E40 38 A0 00 03 */ li r5, 3
+/* 8031C1E4 00317E44 4B CE 7F 21 */ bl memset
+/* 8031C1E8 00317E48 7F 84 E3 78 */ mr r4, r28
+/* 8031C1EC 00317E4C 7F E5 FB 78 */ mr r5, r31
+/* 8031C1F0 00317E50 38 61 00 08 */ addi r3, r1, 8
+/* 8031C1F4 00317E54 4B CE 7E 0D */ bl memcpy
+/* 8031C1F8 00317E58 88 01 00 08 */ lbz r0, 8(r1)
+/* 8031C1FC 00317E5C 28 1D 00 02 */ cmplwi r29, 2
+/* 8031C200 00317E60 80 6D 8D 28 */ lwz r3, lbl_8063DFE8-_SDA_BASE_(r13)
+/* 8031C204 00317E64 7C 00 16 70 */ srawi r0, r0, 2
+/* 8031C208 00317E68 7C 03 00 AE */ lbzx r0, r3, r0
+/* 8031C20C 00317E6C 98 1A 00 00 */ stb r0, 0(r26)
+/* 8031C210 00317E70 41 80 00 24 */ blt lbl_8031C234
+/* 8031C214 00317E74 88 01 00 09 */ lbz r0, 9(r1)
+/* 8031C218 00317E78 88 61 00 08 */ lbz r3, 8(r1)
+/* 8031C21C 00317E7C 7C 00 26 70 */ srawi r0, r0, 4
+/* 8031C220 00317E80 80 8D 8D 28 */ lwz r4, lbl_8063DFE8-_SDA_BASE_(r13)
+/* 8031C224 00317E84 50 60 26 B6 */ rlwimi r0, r3, 4, 0x1a, 0x1b
+/* 8031C228 00317E88 7C 04 00 AE */ lbzx r0, r4, r0
+/* 8031C22C 00317E8C 98 1A 00 01 */ stb r0, 1(r26)
+/* 8031C230 00317E90 48 00 00 08 */ b lbl_8031C238
+lbl_8031C234:
+/* 8031C234 00317E94 9B 1A 00 01 */ stb r24, 1(r26)
+lbl_8031C238:
+/* 8031C238 00317E98 28 1D 00 03 */ cmplwi r29, 3
+/* 8031C23C 00317E9C 41 80 00 24 */ blt lbl_8031C260
+/* 8031C240 00317EA0 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 8031C244 00317EA4 88 61 00 09 */ lbz r3, 9(r1)
+/* 8031C248 00317EA8 7C 00 36 70 */ srawi r0, r0, 6
+/* 8031C24C 00317EAC 80 8D 8D 28 */ lwz r4, lbl_8063DFE8-_SDA_BASE_(r13)
+/* 8031C250 00317EB0 50 60 16 BA */ rlwimi r0, r3, 2, 0x1a, 0x1d
+/* 8031C254 00317EB4 7C 04 00 AE */ lbzx r0, r4, r0
+/* 8031C258 00317EB8 98 1A 00 02 */ stb r0, 2(r26)
+/* 8031C25C 00317EBC 48 00 00 08 */ b lbl_8031C264
+lbl_8031C260:
+/* 8031C260 00317EC0 9B 1A 00 02 */ stb r24, 2(r26)
+lbl_8031C264:
+/* 8031C264 00317EC4 28 1D 00 04 */ cmplwi r29, 4
+/* 8031C268 00317EC8 41 80 00 1C */ blt lbl_8031C284
+/* 8031C26C 00317ECC 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 8031C270 00317ED0 80 6D 8D 28 */ lwz r3, lbl_8063DFE8-_SDA_BASE_(r13)
+/* 8031C274 00317ED4 54 00 06 BE */ clrlwi r0, r0, 0x1a
+/* 8031C278 00317ED8 7C 03 00 AE */ lbzx r0, r3, r0
+/* 8031C27C 00317EDC 98 1A 00 03 */ stb r0, 3(r26)
+/* 8031C280 00317EE0 48 00 00 08 */ b lbl_8031C288
+lbl_8031C284:
+/* 8031C284 00317EE4 9B 1A 00 03 */ stb r24, 3(r26)
+lbl_8031C288:
+/* 8031C288 00317EE8 7F 9C FA 14 */ add r28, r28, r31
+/* 8031C28C 00317EEC 3B 5A 00 04 */ addi r26, r26, 4
+lbl_8031C290:
+/* 8031C290 00317EF0 7C 1C D8 40 */ cmplw r28, r27
+/* 8031C294 00317EF4 40 82 FF 0C */ bne lbl_8031C1A0
+/* 8031C298 00317EF8 7C 79 D0 50 */ subf r3, r25, r26
+lbl_8031C29C:
+/* 8031C29C 00317EFC 39 61 00 30 */ addi r11, r1, 0x30
+/* 8031C2A0 00317F00 4B EA AE C9 */ bl _restgpr_24
+/* 8031C2A4 00317F04 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8031C2A8 00317F08 7C 08 03 A6 */ mtlr r0
+/* 8031C2AC 00317F0C 38 21 00 30 */ addi r1, r1, 0x30
+/* 8031C2B0 00317F10 4E 80 00 20 */ blr
+
+.global DWC_Base64Decode
+DWC_Base64Decode:
+/* 8031C2B4 00317F14 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031C2B8 00317F18 54 80 07 BF */ clrlwi. r0, r4, 0x1e
+/* 8031C2BC 00317F1C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031C2C0 00317F20 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031C2C4 00317F24 41 82 00 0C */ beq lbl_8031C2D0
+/* 8031C2C8 00317F28 38 60 FF FF */ li r3, -1
+/* 8031C2CC 00317F2C 48 00 01 B0 */ b lbl_8031C47C
+lbl_8031C2D0:
+/* 8031C2D0 00317F30 7C 68 1B 78 */ mr r8, r3
+/* 8031C2D4 00317F34 38 E0 00 00 */ li r7, 0
+/* 8031C2D8 00317F38 7C 89 03 A6 */ mtctr r4
+/* 8031C2DC 00317F3C 2C 04 00 00 */ cmpwi r4, 0
+/* 8031C2E0 00317F40 40 81 00 1C */ ble lbl_8031C2FC
+lbl_8031C2E4:
+/* 8031C2E4 00317F44 88 08 00 00 */ lbz r0, 0(r8)
+/* 8031C2E8 00317F48 2C 00 00 2A */ cmpwi r0, 0x2a
+/* 8031C2EC 00317F4C 41 82 00 08 */ beq lbl_8031C2F4
+/* 8031C2F0 00317F50 38 E7 00 06 */ addi r7, r7, 6
+lbl_8031C2F4:
+/* 8031C2F4 00317F54 39 08 00 01 */ addi r8, r8, 1
+/* 8031C2F8 00317F58 42 00 FF EC */ bdnz lbl_8031C2E4
+lbl_8031C2FC:
+/* 8031C2FC 00317F5C 2C 05 00 00 */ cmpwi r5, 0
+/* 8031C300 00317F60 7C E0 1E 70 */ srawi r0, r7, 3
+/* 8031C304 00317F64 7C E0 01 94 */ addze r7, r0
+/* 8031C308 00317F68 40 82 00 0C */ bne lbl_8031C314
+/* 8031C30C 00317F6C 7C E3 3B 78 */ mr r3, r7
+/* 8031C310 00317F70 48 00 01 6C */ b lbl_8031C47C
+lbl_8031C314:
+/* 8031C314 00317F74 7C 06 38 40 */ cmplw r6, r7
+/* 8031C318 00317F78 40 80 00 0C */ bge lbl_8031C324
+/* 8031C31C 00317F7C 38 60 FF FF */ li r3, -1
+/* 8031C320 00317F80 48 00 01 5C */ b lbl_8031C47C
+lbl_8031C324:
+/* 8031C324 00317F84 2C 04 00 00 */ cmpwi r4, 0
+/* 8031C328 00317F88 40 82 00 14 */ bne lbl_8031C33C
+/* 8031C32C 00317F8C 38 00 00 00 */ li r0, 0
+/* 8031C330 00317F90 38 60 00 00 */ li r3, 0
+/* 8031C334 00317F94 98 05 00 00 */ stb r0, 0(r5)
+/* 8031C338 00317F98 48 00 01 44 */ b lbl_8031C47C
+lbl_8031C33C:
+/* 8031C33C 00317F9C 7C A4 2B 78 */ mr r4, r5
+/* 8031C340 00317FA0 39 40 00 00 */ li r10, 0
+/* 8031C344 00317FA4 39 60 00 3F */ li r11, 0x3f
+/* 8031C348 00317FA8 39 80 00 3E */ li r12, 0x3e
+/* 8031C34C 00317FAC 38 00 00 04 */ li r0, 4
+lbl_8031C350:
+/* 8031C350 00317FB0 7C 66 1B 78 */ mr r6, r3
+/* 8031C354 00317FB4 39 21 00 08 */ addi r9, r1, 8
+/* 8031C358 00317FB8 3B C0 00 00 */ li r30, 0
+/* 8031C35C 00317FBC 7C 09 03 A6 */ mtctr r0
+lbl_8031C360:
+/* 8031C360 00317FC0 8B E6 00 00 */ lbz r31, 0(r6)
+/* 8031C364 00317FC4 7F E8 07 74 */ extsb r8, r31
+/* 8031C368 00317FC8 2C 08 00 41 */ cmpwi r8, 0x41
+/* 8031C36C 00317FCC 41 80 00 18 */ blt lbl_8031C384
+/* 8031C370 00317FD0 2C 08 00 5A */ cmpwi r8, 0x5a
+/* 8031C374 00317FD4 41 81 00 10 */ bgt lbl_8031C384
+/* 8031C378 00317FD8 39 1F FF BF */ addi r8, r31, -65
+/* 8031C37C 00317FDC 99 09 00 00 */ stb r8, 0(r9)
+/* 8031C380 00317FE0 48 00 00 6C */ b lbl_8031C3EC
+lbl_8031C384:
+/* 8031C384 00317FE4 7F E8 07 74 */ extsb r8, r31
+/* 8031C388 00317FE8 2C 08 00 61 */ cmpwi r8, 0x61
+/* 8031C38C 00317FEC 41 80 00 18 */ blt lbl_8031C3A4
+/* 8031C390 00317FF0 2C 08 00 7A */ cmpwi r8, 0x7a
+/* 8031C394 00317FF4 41 81 00 10 */ bgt lbl_8031C3A4
+/* 8031C398 00317FF8 39 1F FF B9 */ addi r8, r31, -71
+/* 8031C39C 00317FFC 99 09 00 00 */ stb r8, 0(r9)
+/* 8031C3A0 00318000 48 00 00 4C */ b lbl_8031C3EC
+lbl_8031C3A4:
+/* 8031C3A4 00318004 7F E8 07 74 */ extsb r8, r31
+/* 8031C3A8 00318008 2C 08 00 30 */ cmpwi r8, 0x30
+/* 8031C3AC 0031800C 41 80 00 18 */ blt lbl_8031C3C4
+/* 8031C3B0 00318010 2C 08 00 39 */ cmpwi r8, 0x39
+/* 8031C3B4 00318014 41 81 00 10 */ bgt lbl_8031C3C4
+/* 8031C3B8 00318018 39 1F 00 04 */ addi r8, r31, 4
+/* 8031C3BC 0031801C 99 09 00 00 */ stb r8, 0(r9)
+/* 8031C3C0 00318020 48 00 00 2C */ b lbl_8031C3EC
+lbl_8031C3C4:
+/* 8031C3C4 00318024 7F E8 07 74 */ extsb r8, r31
+/* 8031C3C8 00318028 2C 08 00 2E */ cmpwi r8, 0x2e
+/* 8031C3CC 0031802C 40 82 00 0C */ bne lbl_8031C3D8
+/* 8031C3D0 00318030 99 89 00 00 */ stb r12, 0(r9)
+/* 8031C3D4 00318034 48 00 00 18 */ b lbl_8031C3EC
+lbl_8031C3D8:
+/* 8031C3D8 00318038 2C 08 00 2D */ cmpwi r8, 0x2d
+/* 8031C3DC 0031803C 40 82 00 0C */ bne lbl_8031C3E8
+/* 8031C3E0 00318040 99 69 00 00 */ stb r11, 0(r9)
+/* 8031C3E4 00318044 48 00 00 08 */ b lbl_8031C3EC
+lbl_8031C3E8:
+/* 8031C3E8 00318048 99 49 00 00 */ stb r10, 0(r9)
+lbl_8031C3EC:
+/* 8031C3EC 0031804C 39 29 00 01 */ addi r9, r9, 1
+/* 8031C3F0 00318050 3B DE 00 01 */ addi r30, r30, 1
+/* 8031C3F4 00318054 38 C6 00 01 */ addi r6, r6, 1
+/* 8031C3F8 00318058 42 00 FF 68 */ bdnz lbl_8031C360
+/* 8031C3FC 0031805C 89 21 00 08 */ lbz r9, 8(r1)
+/* 8031C400 00318060 38 C4 00 01 */ addi r6, r4, 1
+/* 8031C404 00318064 89 01 00 09 */ lbz r8, 9(r1)
+/* 8031C408 00318068 7F E5 30 50 */ subf r31, r5, r6
+/* 8031C40C 0031806C 7D 26 07 74 */ extsb r6, r9
+/* 8031C410 00318070 38 63 00 04 */ addi r3, r3, 4
+/* 8031C414 00318074 7D 09 07 74 */ extsb r9, r8
+/* 8031C418 00318078 7C 1F 38 00 */ cmpw r31, r7
+/* 8031C41C 0031807C 54 C8 10 3A */ slwi r8, r6, 2
+/* 8031C420 00318080 7D 26 26 70 */ srawi r6, r9, 4
+/* 8031C424 00318084 7D 06 33 78 */ or r6, r8, r6
+/* 8031C428 00318088 98 C4 00 00 */ stb r6, 0(r4)
+/* 8031C42C 0031808C 40 80 00 4C */ bge lbl_8031C478
+/* 8031C430 00318090 89 01 00 0A */ lbz r8, 0xa(r1)
+/* 8031C434 00318094 38 C4 00 02 */ addi r6, r4, 2
+/* 8031C438 00318098 7F E5 30 50 */ subf r31, r5, r6
+/* 8031C43C 0031809C 55 29 20 36 */ slwi r9, r9, 4
+/* 8031C440 003180A0 7D 08 07 74 */ extsb r8, r8
+/* 8031C444 003180A4 7D 06 16 70 */ srawi r6, r8, 2
+/* 8031C448 003180A8 7C 1F 38 00 */ cmpw r31, r7
+/* 8031C44C 003180AC 7D 26 33 78 */ or r6, r9, r6
+/* 8031C450 003180B0 98 C4 00 01 */ stb r6, 1(r4)
+/* 8031C454 003180B4 40 80 00 24 */ bge lbl_8031C478
+/* 8031C458 003180B8 88 C1 00 0B */ lbz r6, 0xb(r1)
+/* 8031C45C 003180BC 55 08 30 32 */ slwi r8, r8, 6
+/* 8031C460 003180C0 7D 06 33 78 */ or r6, r8, r6
+/* 8031C464 003180C4 98 C4 00 02 */ stb r6, 2(r4)
+/* 8031C468 003180C8 38 84 00 03 */ addi r4, r4, 3
+/* 8031C46C 003180CC 7F E5 20 50 */ subf r31, r5, r4
+/* 8031C470 003180D0 7C 1F 38 00 */ cmpw r31, r7
+/* 8031C474 003180D4 41 80 FE DC */ blt lbl_8031C350
+lbl_8031C478:
+/* 8031C478 003180D8 7F E3 FB 78 */ mr r3, r31
+lbl_8031C47C:
+/* 8031C47C 003180DC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031C480 003180E0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031C484 003180E4 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031C488 003180E8 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/dwc_common/dwc_error.s b/asm/SDK/DWC/dwc_common/dwc_error.s new file mode 100644 index 0000000..9663fe0 --- /dev/null +++ b/asm/SDK/DWC/dwc_common/dwc_error.s @@ -0,0 +1,89 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DWC_GetLastError
+DWC_GetLastError:
+/* 8031C48C 003180EC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C490 003180F0 41 82 00 0C */ beq lbl_8031C49C
+/* 8031C494 003180F4 80 0D B0 14 */ lwz r0, lbl_806402D4-_SDA_BASE_(r13)
+/* 8031C498 003180F8 90 03 00 00 */ stw r0, 0(r3)
+lbl_8031C49C:
+/* 8031C49C 003180FC 80 6D B0 10 */ lwz r3, lbl_806402D0-_SDA_BASE_(r13)
+/* 8031C4A0 00318100 4E 80 00 20 */ blr
+
+.global DWC_GetLastErrorEx
+DWC_GetLastErrorEx:
+/* 8031C4A4 00318104 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C4A8 00318108 41 82 00 0C */ beq lbl_8031C4B4
+/* 8031C4AC 0031810C 80 0D B0 14 */ lwz r0, lbl_806402D4-_SDA_BASE_(r13)
+/* 8031C4B0 00318110 90 03 00 00 */ stw r0, 0(r3)
+lbl_8031C4B4:
+/* 8031C4B4 00318114 2C 04 00 00 */ cmpwi r4, 0
+/* 8031C4B8 00318118 41 82 00 90 */ beq lbl_8031C548
+/* 8031C4BC 0031811C 80 0D B0 10 */ lwz r0, lbl_806402D0-_SDA_BASE_(r13)
+/* 8031C4C0 00318120 28 00 00 11 */ cmplwi r0, 0x11
+/* 8031C4C4 00318124 41 81 00 7C */ bgt lbl_8031C540
+/* 8031C4C8 00318128 3C 60 80 44 */ lis r3, lbl_804466D0@ha
+/* 8031C4CC 0031812C 54 00 10 3A */ slwi r0, r0, 2
+/* 8031C4D0 00318130 38 63 66 D0 */ addi r3, r3, lbl_804466D0@l
+/* 8031C4D4 00318134 7C 63 00 2E */ lwzx r3, r3, r0
+/* 8031C4D8 00318138 7C 69 03 A6 */ mtctr r3
+/* 8031C4DC 0031813C 4E 80 04 20 */ bctr
+/* 8031C4E0 00318140 38 00 00 06 */ li r0, 6
+/* 8031C4E4 00318144 90 04 00 00 */ stw r0, 0(r4)
+/* 8031C4E8 00318148 48 00 00 60 */ b lbl_8031C548
+/* 8031C4EC 0031814C 38 00 00 03 */ li r0, 3
+/* 8031C4F0 00318150 90 04 00 00 */ stw r0, 0(r4)
+/* 8031C4F4 00318154 48 00 00 54 */ b lbl_8031C548
+/* 8031C4F8 00318158 38 00 00 04 */ li r0, 4
+/* 8031C4FC 0031815C 90 04 00 00 */ stw r0, 0(r4)
+/* 8031C500 00318160 48 00 00 48 */ b lbl_8031C548
+/* 8031C504 00318164 38 00 00 01 */ li r0, 1
+/* 8031C508 00318168 90 04 00 00 */ stw r0, 0(r4)
+/* 8031C50C 0031816C 48 00 00 3C */ b lbl_8031C548
+/* 8031C510 00318170 38 00 00 07 */ li r0, 7
+/* 8031C514 00318174 90 04 00 00 */ stw r0, 0(r4)
+/* 8031C518 00318178 48 00 00 30 */ b lbl_8031C548
+/* 8031C51C 0031817C 38 00 00 05 */ li r0, 5
+/* 8031C520 00318180 90 04 00 00 */ stw r0, 0(r4)
+/* 8031C524 00318184 48 00 00 24 */ b lbl_8031C548
+/* 8031C528 00318188 38 00 00 06 */ li r0, 6
+/* 8031C52C 0031818C 90 04 00 00 */ stw r0, 0(r4)
+/* 8031C530 00318190 48 00 00 18 */ b lbl_8031C548
+/* 8031C534 00318194 38 00 00 02 */ li r0, 2
+/* 8031C538 00318198 90 04 00 00 */ stw r0, 0(r4)
+/* 8031C53C 0031819C 48 00 00 0C */ b lbl_8031C548
+lbl_8031C540:
+/* 8031C540 003181A0 38 00 00 00 */ li r0, 0
+/* 8031C544 003181A4 90 04 00 00 */ stw r0, 0(r4)
+lbl_8031C548:
+/* 8031C548 003181A8 80 6D B0 10 */ lwz r3, lbl_806402D0-_SDA_BASE_(r13)
+/* 8031C54C 003181AC 4E 80 00 20 */ blr
+
+.global DWC_ClearError
+DWC_ClearError:
+/* 8031C550 003181B0 80 0D B0 10 */ lwz r0, lbl_806402D0-_SDA_BASE_(r13)
+/* 8031C554 003181B4 2C 00 00 09 */ cmpwi r0, 9
+/* 8031C558 003181B8 4D 82 00 20 */ beqlr
+/* 8031C55C 003181BC 38 00 00 00 */ li r0, 0
+/* 8031C560 003181C0 90 0D B0 10 */ stw r0, lbl_806402D0-_SDA_BASE_(r13)
+/* 8031C564 003181C4 90 0D B0 14 */ stw r0, lbl_806402D4-_SDA_BASE_(r13)
+/* 8031C568 003181C8 4E 80 00 20 */ blr
+
+.global DWCi_IsError
+DWCi_IsError:
+/* 8031C56C 003181CC 80 6D B0 10 */ lwz r3, lbl_806402D0-_SDA_BASE_(r13)
+/* 8031C570 003181D0 7C 03 00 D0 */ neg r0, r3
+/* 8031C574 003181D4 7C 00 1B 78 */ or r0, r0, r3
+/* 8031C578 003181D8 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8031C57C 003181DC 4E 80 00 20 */ blr
+
+.global DWCi_SetError
+DWCi_SetError:
+/* 8031C580 003181E0 80 0D B0 10 */ lwz r0, lbl_806402D0-_SDA_BASE_(r13)
+/* 8031C584 003181E4 2C 00 00 09 */ cmpwi r0, 9
+/* 8031C588 003181E8 4D 82 00 20 */ beqlr
+/* 8031C58C 003181EC 90 6D B0 10 */ stw r3, lbl_806402D0-_SDA_BASE_(r13)
+/* 8031C590 003181F0 90 8D B0 14 */ stw r4, lbl_806402D4-_SDA_BASE_(r13)
+/* 8031C594 003181F4 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/dwc_common/dwc_init.s b/asm/SDK/DWC/dwc_common/dwc_init.s new file mode 100644 index 0000000..6340ced --- /dev/null +++ b/asm/SDK/DWC/dwc_common/dwc_init.s @@ -0,0 +1,235 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DWC_Init
+DWC_Init:
+/* 8031C598 003181F8 94 21 FE E0 */ stwu r1, -0x120(r1)
+/* 8031C59C 003181FC 7C 08 02 A6 */ mflr r0
+/* 8031C5A0 00318200 90 01 01 24 */ stw r0, 0x124(r1)
+/* 8031C5A4 00318204 39 61 01 20 */ addi r11, r1, 0x120
+/* 8031C5A8 00318208 4B EA AB 7D */ bl _savegpr_26
+/* 8031C5AC 0031820C 3F C0 80 44 */ lis r30, lbl_80446718@ha
+/* 8031C5B0 00318210 7C 7A 1B 78 */ mr r26, r3
+/* 8031C5B4 00318214 7C 9F 23 78 */ mr r31, r4
+/* 8031C5B8 00318218 7C BB 2B 78 */ mr r27, r5
+/* 8031C5BC 0031821C 7C DC 33 78 */ mr r28, r6
+/* 8031C5C0 00318220 7C FD 3B 78 */ mr r29, r7
+/* 8031C5C4 00318224 3B DE 67 18 */ addi r30, r30, lbl_80446718@l
+/* 8031C5C8 00318228 38 6D 8D 30 */ addi r3, r13, lbl_8063DFF0-_SDA_BASE_
+/* 8031C5CC 0031822C 38 8D 8D 30 */ addi r4, r13, lbl_8063DFF0-_SDA_BASE_
+/* 8031C5D0 00318230 4B EB 1E 7D */ bl strcmp
+/* 8031C5D4 00318234 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C5D8 00318238 40 82 00 10 */ bne lbl_8031C5E8
+/* 8031C5DC 0031823C 38 7E 00 00 */ addi r3, r30, 0
+/* 8031C5E0 00318240 4B F4 D0 71 */ bl OSRegisterVersion
+/* 8031C5E4 00318244 48 00 00 2C */ b lbl_8031C610
+lbl_8031C5E8:
+/* 8031C5E8 00318248 38 9E 00 48 */ addi r4, r30, 0x48
+/* 8031C5EC 0031824C 38 6D 8D 30 */ addi r3, r13, lbl_8063DFF0-_SDA_BASE_
+/* 8031C5F0 00318250 4B EB 1E 5D */ bl strcmp
+/* 8031C5F4 00318254 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C5F8 00318258 40 82 00 10 */ bne lbl_8031C608
+/* 8031C5FC 0031825C 38 7E 00 54 */ addi r3, r30, 0x54
+/* 8031C600 00318260 4B F4 D0 51 */ bl OSRegisterVersion
+/* 8031C604 00318264 48 00 00 0C */ b lbl_8031C610
+lbl_8031C608:
+/* 8031C608 00318268 38 7E 00 00 */ addi r3, r30, 0
+/* 8031C60C 0031826C 4B F4 D0 45 */ bl OSRegisterVersion
+lbl_8031C610:
+/* 8031C610 00318270 7F 83 E3 78 */ mr r3, r28
+/* 8031C614 00318274 7F A4 EB 78 */ mr r4, r29
+/* 8031C618 00318278 48 00 02 C9 */ bl DWCi_SetMemFunc
+/* 8031C61C 0031827C 7F 43 D3 78 */ mr r3, r26
+/* 8031C620 00318280 48 01 79 FD */ bl func_8033401C
+/* 8031C624 00318284 93 6D B0 18 */ stw r27, lbl_806402D8-_SDA_BASE_(r13)
+/* 8031C628 00318288 48 01 52 CD */ bl func_803318F4
+/* 8031C62C 0031828C 3C 60 80 32 */ lis r3, DWCi_GsMalloc@ha
+/* 8031C630 00318290 3C 80 80 32 */ lis r4, DWCi_GsFree@ha
+/* 8031C634 00318294 3C A0 80 32 */ lis r5, DWCi_GsRealloc@ha
+/* 8031C638 00318298 3C C0 80 32 */ lis r6, DWCi_GsMemalign@ha
+/* 8031C63C 0031829C 38 63 C9 A4 */ addi r3, r3, DWCi_GsMalloc@l
+/* 8031C640 003182A0 38 84 CA B4 */ addi r4, r4, DWCi_GsFree@l
+/* 8031C644 003182A4 38 A5 C9 F8 */ addi r5, r5, DWCi_GsRealloc@l
+/* 8031C648 003182A8 38 C6 CA D8 */ addi r6, r6, DWCi_GsMemalign@l
+/* 8031C64C 003182AC 48 01 CC AD */ bl gsiMemoryCallbacksSet
+/* 8031C650 003182B0 3C 60 80 62 */ lis r3, lbl_80620DE8@ha
+/* 8031C654 003182B4 7F E4 FB 78 */ mr r4, r31
+/* 8031C658 003182B8 38 63 0D E8 */ addi r3, r3, lbl_80620DE8@l
+/* 8031C65C 003182BC 4B EB 1C 75 */ bl strcpy
+/* 8031C660 003182C0 2C 1A 00 00 */ cmpwi r26, 0
+/* 8031C664 003182C4 40 82 00 14 */ bne lbl_8031C678
+/* 8031C668 003182C8 3C 60 80 45 */ lis r3, lbl_8044C338@ha
+/* 8031C66C 003182CC 38 9E 00 A0 */ addi r4, r30, 0xa0
+/* 8031C670 003182D0 38 63 C3 38 */ addi r3, r3, lbl_8044C338@l
+/* 8031C674 003182D4 4B EB 1C 5D */ bl strcpy
+lbl_8031C678:
+/* 8031C678 003182D8 38 7E 00 B4 */ addi r3, r30, 0xb4
+/* 8031C67C 003182DC 48 01 BA 5D */ bl gethostbyname
+/* 8031C680 003182E0 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C684 003182E4 41 82 01 E0 */ beq lbl_8031C864
+/* 8031C688 003182E8 38 7E 00 D0 */ addi r3, r30, 0xd0
+/* 8031C68C 003182EC 48 01 BA 4D */ bl gethostbyname
+/* 8031C690 003182F0 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C694 003182F4 41 82 01 D0 */ beq lbl_8031C864
+/* 8031C698 003182F8 38 7E 00 EC */ addi r3, r30, 0xec
+/* 8031C69C 003182FC 48 01 BA 3D */ bl gethostbyname
+/* 8031C6A0 00318300 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C6A4 00318304 41 82 01 C0 */ beq lbl_8031C864
+/* 8031C6A8 00318308 38 7E 01 0C */ addi r3, r30, 0x10c
+/* 8031C6AC 0031830C 48 01 BA 2D */ bl gethostbyname
+/* 8031C6B0 00318310 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C6B4 00318314 41 82 01 B0 */ beq lbl_8031C864
+/* 8031C6B8 00318318 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031C6BC 0031831C 41 82 01 A0 */ beq lbl_8031C85C
+/* 8031C6C0 00318320 7F E5 FB 78 */ mr r5, r31
+/* 8031C6C4 00318324 38 61 00 08 */ addi r3, r1, 8
+/* 8031C6C8 00318328 38 9E 01 2C */ addi r4, r30, 0x12c
+/* 8031C6CC 0031832C 4C C6 31 82 */ crclr 6
+/* 8031C6D0 00318330 4B EB 04 2D */ bl sprintf
+/* 8031C6D4 00318334 38 61 00 08 */ addi r3, r1, 8
+/* 8031C6D8 00318338 48 01 BA 01 */ bl gethostbyname
+/* 8031C6DC 0031833C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C6E0 00318340 41 82 01 84 */ beq lbl_8031C864
+/* 8031C6E4 00318344 7F E5 FB 78 */ mr r5, r31
+/* 8031C6E8 00318348 38 61 00 08 */ addi r3, r1, 8
+/* 8031C6EC 0031834C 38 9E 01 50 */ addi r4, r30, 0x150
+/* 8031C6F0 00318350 4C C6 31 82 */ crclr 6
+/* 8031C6F4 00318354 4B EB 04 09 */ bl sprintf
+/* 8031C6F8 00318358 38 61 00 08 */ addi r3, r1, 8
+/* 8031C6FC 0031835C 48 01 B9 DD */ bl gethostbyname
+/* 8031C700 00318360 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C704 00318364 41 82 01 60 */ beq lbl_8031C864
+/* 8031C708 00318368 7F E5 FB 78 */ mr r5, r31
+/* 8031C70C 0031836C 38 61 00 08 */ addi r3, r1, 8
+/* 8031C710 00318370 38 9E 01 70 */ addi r4, r30, 0x170
+/* 8031C714 00318374 4C C6 31 82 */ crclr 6
+/* 8031C718 00318378 4B EB 03 E5 */ bl sprintf
+/* 8031C71C 0031837C 38 61 00 08 */ addi r3, r1, 8
+/* 8031C720 00318380 48 01 B9 B9 */ bl gethostbyname
+/* 8031C724 00318384 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C728 00318388 41 82 01 3C */ beq lbl_8031C864
+/* 8031C72C 0031838C 7F E5 FB 78 */ mr r5, r31
+/* 8031C730 00318390 38 61 00 08 */ addi r3, r1, 8
+/* 8031C734 00318394 38 9E 01 90 */ addi r4, r30, 0x190
+/* 8031C738 00318398 4C C6 31 82 */ crclr 6
+/* 8031C73C 0031839C 4B EB 03 C1 */ bl sprintf
+/* 8031C740 003183A0 38 61 00 08 */ addi r3, r1, 8
+/* 8031C744 003183A4 48 01 B9 95 */ bl gethostbyname
+/* 8031C748 003183A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C74C 003183AC 41 82 01 18 */ beq lbl_8031C864
+/* 8031C750 003183B0 7F E5 FB 78 */ mr r5, r31
+/* 8031C754 003183B4 38 61 00 08 */ addi r3, r1, 8
+/* 8031C758 003183B8 38 9E 01 B0 */ addi r4, r30, 0x1b0
+/* 8031C75C 003183BC 4C C6 31 82 */ crclr 6
+/* 8031C760 003183C0 4B EB 03 9D */ bl sprintf
+/* 8031C764 003183C4 38 61 00 08 */ addi r3, r1, 8
+/* 8031C768 003183C8 48 01 B9 71 */ bl gethostbyname
+/* 8031C76C 003183CC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C770 003183D0 41 82 00 F4 */ beq lbl_8031C864
+/* 8031C774 003183D4 7F E5 FB 78 */ mr r5, r31
+/* 8031C778 003183D8 38 61 00 08 */ addi r3, r1, 8
+/* 8031C77C 003183DC 38 9E 01 D0 */ addi r4, r30, 0x1d0
+/* 8031C780 003183E0 4C C6 31 82 */ crclr 6
+/* 8031C784 003183E4 4B EB 03 79 */ bl sprintf
+/* 8031C788 003183E8 38 61 00 08 */ addi r3, r1, 8
+/* 8031C78C 003183EC 48 01 B9 4D */ bl gethostbyname
+/* 8031C790 003183F0 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C794 003183F4 41 82 00 D0 */ beq lbl_8031C864
+/* 8031C798 003183F8 7F E5 FB 78 */ mr r5, r31
+/* 8031C79C 003183FC 38 61 00 08 */ addi r3, r1, 8
+/* 8031C7A0 00318400 38 9E 01 F4 */ addi r4, r30, 0x1f4
+/* 8031C7A4 00318404 4C C6 31 82 */ crclr 6
+/* 8031C7A8 00318408 4B EB 03 55 */ bl sprintf
+/* 8031C7AC 0031840C 38 61 00 08 */ addi r3, r1, 8
+/* 8031C7B0 00318410 48 01 B9 29 */ bl gethostbyname
+/* 8031C7B4 00318414 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C7B8 00318418 41 82 00 AC */ beq lbl_8031C864
+/* 8031C7BC 0031841C 3C 80 80 42 */ lis r4, lbl_80422D48@ha
+/* 8031C7C0 00318420 3C 60 9C D0 */ lis r3, 0x9CCF9319@ha
+/* 8031C7C4 00318424 38 84 2D 48 */ addi r4, r4, lbl_80422D48@l
+/* 8031C7C8 00318428 7F E7 FB 78 */ mr r7, r31
+/* 8031C7CC 0031842C 80 C4 00 38 */ lwz r6, 0x38(r4)
+/* 8031C7D0 00318430 38 A3 93 19 */ addi r5, r3, 0x9CCF9319@l
+/* 8031C7D4 00318434 39 00 00 00 */ li r8, 0
+/* 8031C7D8 00318438 48 00 00 3C */ b lbl_8031C814
+lbl_8031C7DC:
+/* 8031C7DC 0031843C 7C 88 29 D6 */ mullw r4, r8, r5
+/* 8031C7E0 00318440 7C 68 07 75 */ extsb. r8, r3
+/* 8031C7E4 00318444 38 00 00 00 */ li r0, 0
+/* 8031C7E8 00318448 41 80 00 0C */ blt lbl_8031C7F4
+/* 8031C7EC 0031844C 2C 08 01 00 */ cmpwi r8, 0x100
+/* 8031C7F0 00318450 41 80 00 08 */ blt lbl_8031C7F8
+lbl_8031C7F4:
+/* 8031C7F4 00318454 38 00 00 01 */ li r0, 1
+lbl_8031C7F8:
+/* 8031C7F8 00318458 2C 00 00 00 */ cmpwi r0, 0
+/* 8031C7FC 0031845C 41 82 00 08 */ beq lbl_8031C804
+/* 8031C800 00318460 48 00 00 0C */ b lbl_8031C80C
+lbl_8031C804:
+/* 8031C804 00318464 80 66 00 10 */ lwz r3, 0x10(r6)
+/* 8031C808 00318468 7D 03 40 AE */ lbzx r8, r3, r8
+lbl_8031C80C:
+/* 8031C80C 0031846C 7D 04 42 14 */ add r8, r4, r8
+/* 8031C810 00318470 38 E7 00 01 */ addi r7, r7, 1
+lbl_8031C814:
+/* 8031C814 00318474 88 67 00 00 */ lbz r3, 0(r7)
+/* 8031C818 00318478 7C 60 07 75 */ extsb. r0, r3
+/* 8031C81C 0031847C 40 82 FF C0 */ bne lbl_8031C7DC
+/* 8031C820 00318480 3C 60 CC CD */ lis r3, 0xCCCCCCCD@ha
+/* 8031C824 00318484 7F E5 FB 78 */ mr r5, r31
+/* 8031C828 00318488 38 03 CC CD */ addi r0, r3, 0xCCCCCCCD@l
+/* 8031C82C 0031848C 38 9E 02 18 */ addi r4, r30, 0x218
+/* 8031C830 00318490 7C 00 40 16 */ mulhwu r0, r0, r8
+/* 8031C834 00318494 38 61 00 08 */ addi r3, r1, 8
+/* 8031C838 00318498 54 00 E1 3E */ srwi r0, r0, 4
+/* 8031C83C 0031849C 1C 00 00 14 */ mulli r0, r0, 0x14
+/* 8031C840 003184A0 7C C0 40 50 */ subf r6, r0, r8
+/* 8031C844 003184A4 4C C6 31 82 */ crclr 6
+/* 8031C848 003184A8 4B EB 02 B5 */ bl sprintf
+/* 8031C84C 003184AC 38 61 00 08 */ addi r3, r1, 8
+/* 8031C850 003184B0 48 01 B8 89 */ bl gethostbyname
+/* 8031C854 003184B4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031C858 003184B8 41 82 00 0C */ beq lbl_8031C864
+lbl_8031C85C:
+/* 8031C85C 003184BC 38 60 00 00 */ li r3, 0
+/* 8031C860 003184C0 48 00 00 18 */ b lbl_8031C878
+lbl_8031C864:
+/* 8031C864 003184C4 38 9E 02 34 */ addi r4, r30, 0x234
+/* 8031C868 003184C8 38 60 00 08 */ li r3, 8
+/* 8031C86C 003184CC 4C C6 31 82 */ crclr 6
+/* 8031C870 003184D0 48 00 02 C5 */ bl DWC_Printf
+/* 8031C874 003184D4 38 60 FF FF */ li r3, -1
+lbl_8031C878:
+/* 8031C878 003184D8 39 61 01 20 */ addi r11, r1, 0x120
+/* 8031C87C 003184DC 4B EA A8 F5 */ bl _restgpr_26
+/* 8031C880 003184E0 80 01 01 24 */ lwz r0, 0x124(r1)
+/* 8031C884 003184E4 7C 08 03 A6 */ mtlr r0
+/* 8031C888 003184E8 38 21 01 20 */ addi r1, r1, 0x120
+/* 8031C88C 003184EC 4E 80 00 20 */ blr
+
+.global DWC_Shutdown
+DWC_Shutdown:
+/* 8031C890 003184F0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031C894 003184F4 7C 08 02 A6 */ mflr r0
+/* 8031C898 003184F8 3C 60 80 32 */ lis r3, DWCi_GsMalloc@ha
+/* 8031C89C 003184FC 3C 80 80 32 */ lis r4, DWCi_GsFree@ha
+/* 8031C8A0 00318500 3C A0 80 32 */ lis r5, DWCi_GsRealloc@ha
+/* 8031C8A4 00318504 3C C0 80 32 */ lis r6, DWCi_GsMemalign@ha
+/* 8031C8A8 00318508 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031C8AC 0031850C 38 63 C9 A4 */ addi r3, r3, DWCi_GsMalloc@l
+/* 8031C8B0 00318510 38 84 CA B4 */ addi r4, r4, DWCi_GsFree@l
+/* 8031C8B4 00318514 38 A5 C9 F8 */ addi r5, r5, DWCi_GsRealloc@l
+/* 8031C8B8 00318518 38 C6 CA D8 */ addi r6, r6, DWCi_GsMemalign@l
+/* 8031C8BC 0031851C 48 01 CA 3D */ bl gsiMemoryCallbacksSet
+/* 8031C8C0 00318520 38 6D 8D 38 */ addi r3, r13, lbl_8063DFF8-_SDA_BASE_
+/* 8031C8C4 00318524 48 01 B8 15 */ bl gethostbyname
+/* 8031C8C8 00318528 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031C8CC 0031852C 7C 08 03 A6 */ mtlr r0
+/* 8031C8D0 00318530 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031C8D4 00318534 4E 80 00 20 */ blr
+
+.global DWCi_GetGamecode
+DWCi_GetGamecode:
+/* 8031C8D8 00318538 80 6D B0 18 */ lwz r3, lbl_806402D8-_SDA_BASE_(r13)
+/* 8031C8DC 0031853C 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/dwc_common/dwc_memfunc.s b/asm/SDK/DWC/dwc_common/dwc_memfunc.s new file mode 100644 index 0000000..143f389 --- /dev/null +++ b/asm/SDK/DWC/dwc_common/dwc_memfunc.s @@ -0,0 +1,176 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DWCi_SetMemFunc
+DWCi_SetMemFunc:
+/* 8031C8E0 00318540 90 6D B0 24 */ stw r3, lbl_806402E4-_SDA_BASE_(r13)
+/* 8031C8E4 00318544 90 8D B0 20 */ stw r4, lbl_806402E0-_SDA_BASE_(r13)
+/* 8031C8E8 00318548 4E 80 00 20 */ blr
+
+.global DWC_Alloc
+DWC_Alloc:
+/* 8031C8EC 0031854C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031C8F0 00318550 7C 08 02 A6 */ mflr r0
+/* 8031C8F4 00318554 38 A0 00 20 */ li r5, 0x20
+/* 8031C8F8 00318558 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031C8FC 0031855C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031C900 00318560 7C 9F 23 78 */ mr r31, r4
+/* 8031C904 00318564 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13)
+/* 8031C908 00318568 7D 89 03 A6 */ mtctr r12
+/* 8031C90C 0031856C 38 84 00 20 */ addi r4, r4, 0x20
+/* 8031C910 00318570 4E 80 04 21 */ bctrl
+/* 8031C914 00318574 3C 80 44 57 */ lis r4, 0x4457434D@ha
+/* 8031C918 00318578 38 04 43 4D */ addi r0, r4, 0x4457434D@l
+/* 8031C91C 0031857C 90 03 00 00 */ stw r0, 0(r3)
+/* 8031C920 00318580 93 E3 00 04 */ stw r31, 4(r3)
+/* 8031C924 00318584 38 63 00 20 */ addi r3, r3, 0x20
+/* 8031C928 00318588 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031C92C 0031858C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031C930 00318590 7C 08 03 A6 */ mtlr r0
+/* 8031C934 00318594 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031C938 00318598 4E 80 00 20 */ blr
+
+.global DWC_AllocEx
+DWC_AllocEx:
+/* 8031C93C 0031859C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031C940 003185A0 7C 08 02 A6 */ mflr r0
+/* 8031C944 003185A4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031C948 003185A8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031C94C 003185AC 7C 9F 23 78 */ mr r31, r4
+/* 8031C950 003185B0 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13)
+/* 8031C954 003185B4 7D 89 03 A6 */ mtctr r12
+/* 8031C958 003185B8 38 84 00 20 */ addi r4, r4, 0x20
+/* 8031C95C 003185BC 4E 80 04 21 */ bctrl
+/* 8031C960 003185C0 3C 80 44 57 */ lis r4, 0x4457434D@ha
+/* 8031C964 003185C4 38 04 43 4D */ addi r0, r4, 0x4457434D@l
+/* 8031C968 003185C8 90 03 00 00 */ stw r0, 0(r3)
+/* 8031C96C 003185CC 93 E3 00 04 */ stw r31, 4(r3)
+/* 8031C970 003185D0 38 63 00 20 */ addi r3, r3, 0x20
+/* 8031C974 003185D4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031C978 003185D8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031C97C 003185DC 7C 08 03 A6 */ mtlr r0
+/* 8031C980 003185E0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031C984 003185E4 4E 80 00 20 */ blr
+
+.global DWC_Free
+DWC_Free:
+/* 8031C988 003185E8 2C 04 00 00 */ cmpwi r4, 0
+/* 8031C98C 003185EC 4D 82 00 20 */ beqlr
+/* 8031C990 003185F0 81 8D B0 20 */ lwz r12, lbl_806402E0-_SDA_BASE_(r13)
+/* 8031C994 003185F4 7D 89 03 A6 */ mtctr r12
+/* 8031C998 003185F8 38 84 FF E0 */ addi r4, r4, -32
+/* 8031C99C 003185FC 4E 80 04 20 */ bctr
+/* 8031C9A0 00318600 4E 80 00 20 */ blr
+
+.global DWCi_GsMalloc
+DWCi_GsMalloc:
+/* 8031C9A4 00318604 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031C9A8 00318608 7C 08 02 A6 */ mflr r0
+/* 8031C9AC 0031860C 38 A0 00 20 */ li r5, 0x20
+/* 8031C9B0 00318610 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031C9B4 00318614 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031C9B8 00318618 7C 7F 1B 78 */ mr r31, r3
+/* 8031C9BC 0031861C 38 9F 00 20 */ addi r4, r31, 0x20
+/* 8031C9C0 00318620 38 60 00 09 */ li r3, 9
+/* 8031C9C4 00318624 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13)
+/* 8031C9C8 00318628 7D 89 03 A6 */ mtctr r12
+/* 8031C9CC 0031862C 4E 80 04 21 */ bctrl
+/* 8031C9D0 00318630 3C 80 44 57 */ lis r4, 0x4457434D@ha
+/* 8031C9D4 00318634 38 04 43 4D */ addi r0, r4, 0x4457434D@l
+/* 8031C9D8 00318638 90 03 00 00 */ stw r0, 0(r3)
+/* 8031C9DC 0031863C 93 E3 00 04 */ stw r31, 4(r3)
+/* 8031C9E0 00318640 38 63 00 20 */ addi r3, r3, 0x20
+/* 8031C9E4 00318644 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031C9E8 00318648 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031C9EC 0031864C 7C 08 03 A6 */ mtlr r0
+/* 8031C9F0 00318650 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031C9F4 00318654 4E 80 00 20 */ blr
+
+.global DWCi_GsRealloc
+DWCi_GsRealloc:
+/* 8031C9F8 00318658 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031C9FC 0031865C 7C 08 02 A6 */ mflr r0
+/* 8031CA00 00318660 38 A0 00 20 */ li r5, 0x20
+/* 8031CA04 00318664 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031CA08 00318668 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031CA0C 0031866C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031CA10 00318670 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031CA14 00318674 7C 9D 23 78 */ mr r29, r4
+/* 8031CA18 00318678 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8031CA1C 0031867C 7C 7C 1B 78 */ mr r28, r3
+/* 8031CA20 00318680 38 60 00 09 */ li r3, 9
+/* 8031CA24 00318684 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13)
+/* 8031CA28 00318688 7D 89 03 A6 */ mtctr r12
+/* 8031CA2C 0031868C 38 84 00 20 */ addi r4, r4, 0x20
+/* 8031CA30 00318690 4E 80 04 21 */ bctrl
+/* 8031CA34 00318694 3C 80 44 57 */ lis r4, 0x4457434D@ha
+/* 8031CA38 00318698 37 E3 00 20 */ addic. r31, r3, 0x20
+/* 8031CA3C 0031869C 38 04 43 4D */ addi r0, r4, 0x4457434D@l
+/* 8031CA40 003186A0 90 03 00 00 */ stw r0, 0(r3)
+/* 8031CA44 003186A4 93 A3 00 04 */ stw r29, 4(r3)
+/* 8031CA48 003186A8 40 82 00 0C */ bne lbl_8031CA54
+/* 8031CA4C 003186AC 3B E0 00 00 */ li r31, 0
+/* 8031CA50 003186B0 48 00 00 40 */ b lbl_8031CA90
+lbl_8031CA54:
+/* 8031CA54 003186B4 2C 1C 00 00 */ cmpwi r28, 0
+/* 8031CA58 003186B8 41 82 00 38 */ beq lbl_8031CA90
+/* 8031CA5C 003186BC 80 BC FF E4 */ lwz r5, -0x1c(r28)
+/* 8031CA60 003186C0 3B DC FF E0 */ addi r30, r28, -32
+/* 8031CA64 003186C4 7F E3 FB 78 */ mr r3, r31
+/* 8031CA68 003186C8 7F 84 E3 78 */ mr r4, r28
+/* 8031CA6C 003186CC 4B CE 75 95 */ bl memcpy
+/* 8031CA70 003186D0 2C 1C 00 00 */ cmpwi r28, 0
+/* 8031CA74 003186D4 41 82 00 1C */ beq lbl_8031CA90
+/* 8031CA78 003186D8 81 8D B0 20 */ lwz r12, lbl_806402E0-_SDA_BASE_(r13)
+/* 8031CA7C 003186DC 7F C4 F3 78 */ mr r4, r30
+/* 8031CA80 003186E0 7F A5 EB 78 */ mr r5, r29
+/* 8031CA84 003186E4 38 60 00 09 */ li r3, 9
+/* 8031CA88 003186E8 7D 89 03 A6 */ mtctr r12
+/* 8031CA8C 003186EC 4E 80 04 21 */ bctrl
+lbl_8031CA90:
+/* 8031CA90 003186F0 7F E3 FB 78 */ mr r3, r31
+/* 8031CA94 003186F4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031CA98 003186F8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031CA9C 003186FC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031CAA0 00318700 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8031CAA4 00318704 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031CAA8 00318708 7C 08 03 A6 */ mtlr r0
+/* 8031CAAC 0031870C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031CAB0 00318710 4E 80 00 20 */ blr
+
+.global DWCi_GsFree
+DWCi_GsFree:
+/* 8031CAB4 00318714 2C 03 00 00 */ cmpwi r3, 0
+/* 8031CAB8 00318718 4D 82 00 20 */ beqlr
+/* 8031CABC 0031871C 81 8D B0 20 */ lwz r12, lbl_806402E0-_SDA_BASE_(r13)
+/* 8031CAC0 00318720 38 83 FF E0 */ addi r4, r3, -32
+/* 8031CAC4 00318724 38 60 00 09 */ li r3, 9
+/* 8031CAC8 00318728 38 A0 00 00 */ li r5, 0
+/* 8031CACC 0031872C 7D 89 03 A6 */ mtctr r12
+/* 8031CAD0 00318730 4E 80 04 20 */ bctr
+/* 8031CAD4 00318734 4E 80 00 20 */ blr
+
+.global DWCi_GsMemalign
+DWCi_GsMemalign:
+/* 8031CAD8 00318738 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031CADC 0031873C 7C 08 02 A6 */ mflr r0
+/* 8031CAE0 00318740 7C 65 1B 78 */ mr r5, r3
+/* 8031CAE4 00318744 38 60 00 09 */ li r3, 9
+/* 8031CAE8 00318748 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031CAEC 0031874C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031CAF0 00318750 7C 9F 23 78 */ mr r31, r4
+/* 8031CAF4 00318754 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13)
+/* 8031CAF8 00318758 7D 89 03 A6 */ mtctr r12
+/* 8031CAFC 0031875C 38 84 00 20 */ addi r4, r4, 0x20
+/* 8031CB00 00318760 4E 80 04 21 */ bctrl
+/* 8031CB04 00318764 3C 80 44 57 */ lis r4, 0x4457434D@ha
+/* 8031CB08 00318768 38 04 43 4D */ addi r0, r4, 0x4457434D@l
+/* 8031CB0C 0031876C 90 03 00 00 */ stw r0, 0(r3)
+/* 8031CB10 00318770 93 E3 00 04 */ stw r31, 4(r3)
+/* 8031CB14 00318774 38 63 00 20 */ addi r3, r3, 0x20
+/* 8031CB18 00318778 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031CB1C 0031877C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031CB20 00318780 7C 08 03 A6 */ mtlr r0
+/* 8031CB24 00318784 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031CB28 00318788 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/dwc_common/dwc_report.s b/asm/SDK/DWC/dwc_common/dwc_report.s new file mode 100644 index 0000000..9481281 --- /dev/null +++ b/asm/SDK/DWC/dwc_common/dwc_report.s @@ -0,0 +1,246 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DWC_SetReportLevel
+DWC_SetReportLevel:
+/* 8031CB2C 0031878C 90 6D B0 28 */ stw r3, lbl_806402E8-_SDA_BASE_(r13)
+/* 8031CB30 00318790 4E 80 00 20 */ blr
+
+.global DWC_Printf
+DWC_Printf:
+/* 8031CB34 00318794 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 8031CB38 00318798 7C 08 02 A6 */ mflr r0
+/* 8031CB3C 0031879C 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8031CB40 003187A0 93 E1 00 7C */ stw r31, 0x7c(r1)
+/* 8031CB44 003187A4 7C 9F 23 78 */ mr r31, r4
+/* 8031CB48 003187A8 40 86 00 24 */ bne cr1, lbl_8031CB6C
+/* 8031CB4C 003187AC D8 21 00 28 */ stfd f1, 0x28(r1)
+/* 8031CB50 003187B0 D8 41 00 30 */ stfd f2, 0x30(r1)
+/* 8031CB54 003187B4 D8 61 00 38 */ stfd f3, 0x38(r1)
+/* 8031CB58 003187B8 D8 81 00 40 */ stfd f4, 0x40(r1)
+/* 8031CB5C 003187BC D8 A1 00 48 */ stfd f5, 0x48(r1)
+/* 8031CB60 003187C0 D8 C1 00 50 */ stfd f6, 0x50(r1)
+/* 8031CB64 003187C4 D8 E1 00 58 */ stfd f7, 0x58(r1)
+/* 8031CB68 003187C8 D9 01 00 60 */ stfd f8, 0x60(r1)
+lbl_8031CB6C:
+/* 8031CB6C 003187CC 80 0D B0 28 */ lwz r0, lbl_806402E8-_SDA_BASE_(r13)
+/* 8031CB70 003187D0 3D 60 80 44 */ lis r11, lbl_80446968@ha
+/* 8031CB74 003187D4 90 61 00 08 */ stw r3, 8(r1)
+/* 8031CB78 003187D8 39 6B 69 68 */ addi r11, r11, lbl_80446968@l
+/* 8031CB7C 003187DC 7C 60 00 39 */ and. r0, r3, r0
+/* 8031CB80 003187E0 90 81 00 0C */ stw r4, 0xc(r1)
+/* 8031CB84 003187E4 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 8031CB88 003187E8 90 C1 00 14 */ stw r6, 0x14(r1)
+/* 8031CB8C 003187EC 90 E1 00 18 */ stw r7, 0x18(r1)
+/* 8031CB90 003187F0 91 01 00 1C */ stw r8, 0x1c(r1)
+/* 8031CB94 003187F4 91 21 00 20 */ stw r9, 0x20(r1)
+/* 8031CB98 003187F8 91 41 00 24 */ stw r10, 0x24(r1)
+/* 8031CB9C 003187FC 41 82 02 AC */ beq lbl_8031CE48
+/* 8031CBA0 00318800 2C 03 04 00 */ cmpwi r3, 0x400
+/* 8031CBA4 00318804 41 82 01 C4 */ beq lbl_8031CD68
+/* 8031CBA8 00318808 40 80 00 90 */ bge lbl_8031CC38
+/* 8031CBAC 0031880C 2C 03 00 20 */ cmpwi r3, 0x20
+/* 8031CBB0 00318810 41 82 01 68 */ beq lbl_8031CD18
+/* 8031CBB4 00318814 40 80 00 54 */ bge lbl_8031CC08
+/* 8031CBB8 00318818 2C 03 00 04 */ cmpwi r3, 4
+/* 8031CBBC 0031881C 41 82 01 2C */ beq lbl_8031CCE8
+/* 8031CBC0 00318820 40 80 00 30 */ bge lbl_8031CBF0
+/* 8031CBC4 00318824 2C 03 00 01 */ cmpwi r3, 1
+/* 8031CBC8 00318828 41 82 01 00 */ beq lbl_8031CCC8
+/* 8031CBCC 0031882C 40 80 00 18 */ bge lbl_8031CBE4
+/* 8031CBD0 00318830 3C 80 80 00 */ lis r4, 0x80000001@ha
+/* 8031CBD4 00318834 38 04 00 01 */ addi r0, r4, 0x80000001@l
+/* 8031CBD8 00318838 7C 03 00 00 */ cmpw r3, r0
+/* 8031CBDC 0031883C 40 80 02 3C */ bge lbl_8031CE18
+/* 8031CBE0 00318840 48 00 02 28 */ b lbl_8031CE08
+lbl_8031CBE4:
+/* 8031CBE4 00318844 2C 03 00 03 */ cmpwi r3, 3
+/* 8031CBE8 00318848 40 80 02 30 */ bge lbl_8031CE18
+/* 8031CBEC 0031884C 48 00 00 EC */ b lbl_8031CCD8
+lbl_8031CBF0:
+/* 8031CBF0 00318850 2C 03 00 10 */ cmpwi r3, 0x10
+/* 8031CBF4 00318854 41 82 01 14 */ beq lbl_8031CD08
+/* 8031CBF8 00318858 40 80 02 20 */ bge lbl_8031CE18
+/* 8031CBFC 0031885C 2C 03 00 08 */ cmpwi r3, 8
+/* 8031CC00 00318860 41 82 00 F8 */ beq lbl_8031CCF8
+/* 8031CC04 00318864 48 00 02 14 */ b lbl_8031CE18
+lbl_8031CC08:
+/* 8031CC08 00318868 2C 03 01 00 */ cmpwi r3, 0x100
+/* 8031CC0C 0031886C 41 82 01 3C */ beq lbl_8031CD48
+/* 8031CC10 00318870 40 80 00 1C */ bge lbl_8031CC2C
+/* 8031CC14 00318874 2C 03 00 80 */ cmpwi r3, 0x80
+/* 8031CC18 00318878 41 82 01 20 */ beq lbl_8031CD38
+/* 8031CC1C 0031887C 40 80 01 FC */ bge lbl_8031CE18
+/* 8031CC20 00318880 2C 03 00 40 */ cmpwi r3, 0x40
+/* 8031CC24 00318884 41 82 01 04 */ beq lbl_8031CD28
+/* 8031CC28 00318888 48 00 01 F0 */ b lbl_8031CE18
+lbl_8031CC2C:
+/* 8031CC2C 0031888C 2C 03 02 00 */ cmpwi r3, 0x200
+/* 8031CC30 00318890 41 82 01 28 */ beq lbl_8031CD58
+/* 8031CC34 00318894 48 00 01 E4 */ b lbl_8031CE18
+lbl_8031CC38:
+/* 8031CC38 00318898 3C 00 01 00 */ lis r0, 0x100
+/* 8031CC3C 0031889C 7C 03 00 00 */ cmpw r3, r0
+/* 8031CC40 003188A0 41 82 01 78 */ beq lbl_8031CDB8
+/* 8031CC44 003188A4 40 80 00 44 */ bge lbl_8031CC88
+/* 8031CC48 003188A8 3C 00 00 02 */ lis r0, 2
+/* 8031CC4C 003188AC 7C 03 00 00 */ cmpw r3, r0
+/* 8031CC50 003188B0 41 82 01 48 */ beq lbl_8031CD98
+/* 8031CC54 003188B4 40 80 00 24 */ bge lbl_8031CC78
+/* 8031CC58 003188B8 3C 80 00 01 */ lis r4, 1
+/* 8031CC5C 003188BC 7C 03 20 00 */ cmpw r3, r4
+/* 8031CC60 003188C0 41 82 01 28 */ beq lbl_8031CD88
+/* 8031CC64 003188C4 40 80 01 B4 */ bge lbl_8031CE18
+/* 8031CC68 003188C8 38 04 80 00 */ addi r0, r4, -32768
+/* 8031CC6C 003188CC 7C 03 00 00 */ cmpw r3, r0
+/* 8031CC70 003188D0 41 82 01 08 */ beq lbl_8031CD78
+/* 8031CC74 003188D4 48 00 01 A4 */ b lbl_8031CE18
+lbl_8031CC78:
+/* 8031CC78 003188D8 3C 00 00 04 */ lis r0, 4
+/* 8031CC7C 003188DC 7C 03 00 00 */ cmpw r3, r0
+/* 8031CC80 003188E0 41 82 01 28 */ beq lbl_8031CDA8
+/* 8031CC84 003188E4 48 00 01 94 */ b lbl_8031CE18
+lbl_8031CC88:
+/* 8031CC88 003188E8 3C 00 08 00 */ lis r0, 0x800
+/* 8031CC8C 003188EC 7C 03 00 00 */ cmpw r3, r0
+/* 8031CC90 003188F0 41 82 01 58 */ beq lbl_8031CDE8
+/* 8031CC94 003188F4 40 80 00 24 */ bge lbl_8031CCB8
+/* 8031CC98 003188F8 3C 00 04 00 */ lis r0, 0x400
+/* 8031CC9C 003188FC 7C 03 00 00 */ cmpw r3, r0
+/* 8031CCA0 00318900 41 82 01 38 */ beq lbl_8031CDD8
+/* 8031CCA4 00318904 40 80 01 74 */ bge lbl_8031CE18
+/* 8031CCA8 00318908 3C 00 02 00 */ lis r0, 0x200
+/* 8031CCAC 0031890C 7C 03 00 00 */ cmpw r3, r0
+/* 8031CCB0 00318910 41 82 01 18 */ beq lbl_8031CDC8
+/* 8031CCB4 00318914 48 00 01 64 */ b lbl_8031CE18
+lbl_8031CCB8:
+/* 8031CCB8 00318918 3C 00 10 00 */ lis r0, 0x1000
+/* 8031CCBC 0031891C 7C 03 00 00 */ cmpw r3, r0
+/* 8031CCC0 00318920 41 82 01 38 */ beq lbl_8031CDF8
+/* 8031CCC4 00318924 48 00 01 54 */ b lbl_8031CE18
+lbl_8031CCC8:
+/* 8031CCC8 00318928 38 6B 00 00 */ addi r3, r11, 0
+/* 8031CCCC 0031892C 4C C6 31 82 */ crclr 6
+/* 8031CCD0 00318930 4B EA FB 95 */ bl printf
+/* 8031CCD4 00318934 48 00 01 50 */ b lbl_8031CE24
+lbl_8031CCD8:
+/* 8031CCD8 00318938 38 6B 00 10 */ addi r3, r11, 0x10
+/* 8031CCDC 0031893C 4C C6 31 82 */ crclr 6
+/* 8031CCE0 00318940 4B EA FB 85 */ bl printf
+/* 8031CCE4 00318944 48 00 01 40 */ b lbl_8031CE24
+lbl_8031CCE8:
+/* 8031CCE8 00318948 38 6B 00 20 */ addi r3, r11, 0x20
+/* 8031CCEC 0031894C 4C C6 31 82 */ crclr 6
+/* 8031CCF0 00318950 4B EA FB 75 */ bl printf
+/* 8031CCF4 00318954 48 00 01 30 */ b lbl_8031CE24
+lbl_8031CCF8:
+/* 8031CCF8 00318958 38 6B 00 30 */ addi r3, r11, 0x30
+/* 8031CCFC 0031895C 4C C6 31 82 */ crclr 6
+/* 8031CD00 00318960 4B EA FB 65 */ bl printf
+/* 8031CD04 00318964 48 00 01 20 */ b lbl_8031CE24
+lbl_8031CD08:
+/* 8031CD08 00318968 38 6B 00 40 */ addi r3, r11, 0x40
+/* 8031CD0C 0031896C 4C C6 31 82 */ crclr 6
+/* 8031CD10 00318970 4B EA FB 55 */ bl printf
+/* 8031CD14 00318974 48 00 01 10 */ b lbl_8031CE24
+lbl_8031CD18:
+/* 8031CD18 00318978 38 6B 00 50 */ addi r3, r11, 0x50
+/* 8031CD1C 0031897C 4C C6 31 82 */ crclr 6
+/* 8031CD20 00318980 4B EA FB 45 */ bl printf
+/* 8031CD24 00318984 48 00 01 00 */ b lbl_8031CE24
+lbl_8031CD28:
+/* 8031CD28 00318988 38 6B 00 60 */ addi r3, r11, 0x60
+/* 8031CD2C 0031898C 4C C6 31 82 */ crclr 6
+/* 8031CD30 00318990 4B EA FB 35 */ bl printf
+/* 8031CD34 00318994 48 00 00 F0 */ b lbl_8031CE24
+lbl_8031CD38:
+/* 8031CD38 00318998 38 6B 00 70 */ addi r3, r11, 0x70
+/* 8031CD3C 0031899C 4C C6 31 82 */ crclr 6
+/* 8031CD40 003189A0 4B EA FB 25 */ bl printf
+/* 8031CD44 003189A4 48 00 00 E0 */ b lbl_8031CE24
+lbl_8031CD48:
+/* 8031CD48 003189A8 38 6B 00 80 */ addi r3, r11, 0x80
+/* 8031CD4C 003189AC 4C C6 31 82 */ crclr 6
+/* 8031CD50 003189B0 4B EA FB 15 */ bl printf
+/* 8031CD54 003189B4 48 00 00 D0 */ b lbl_8031CE24
+lbl_8031CD58:
+/* 8031CD58 003189B8 38 6B 00 90 */ addi r3, r11, 0x90
+/* 8031CD5C 003189BC 4C C6 31 82 */ crclr 6
+/* 8031CD60 003189C0 4B EA FB 05 */ bl printf
+/* 8031CD64 003189C4 48 00 00 C0 */ b lbl_8031CE24
+lbl_8031CD68:
+/* 8031CD68 003189C8 38 6B 00 A0 */ addi r3, r11, 0xa0
+/* 8031CD6C 003189CC 4C C6 31 82 */ crclr 6
+/* 8031CD70 003189D0 4B EA FA F5 */ bl printf
+/* 8031CD74 003189D4 48 00 00 B0 */ b lbl_8031CE24
+lbl_8031CD78:
+/* 8031CD78 003189D8 38 6B 00 B0 */ addi r3, r11, 0xb0
+/* 8031CD7C 003189DC 4C C6 31 82 */ crclr 6
+/* 8031CD80 003189E0 4B EA FA E5 */ bl printf
+/* 8031CD84 003189E4 48 00 00 A0 */ b lbl_8031CE24
+lbl_8031CD88:
+/* 8031CD88 003189E8 38 6B 00 C0 */ addi r3, r11, 0xc0
+/* 8031CD8C 003189EC 4C C6 31 82 */ crclr 6
+/* 8031CD90 003189F0 4B EA FA D5 */ bl printf
+/* 8031CD94 003189F4 48 00 00 90 */ b lbl_8031CE24
+lbl_8031CD98:
+/* 8031CD98 003189F8 38 6B 00 D0 */ addi r3, r11, 0xd0
+/* 8031CD9C 003189FC 4C C6 31 82 */ crclr 6
+/* 8031CDA0 00318A00 4B EA FA C5 */ bl printf
+/* 8031CDA4 00318A04 48 00 00 80 */ b lbl_8031CE24
+lbl_8031CDA8:
+/* 8031CDA8 00318A08 38 6B 00 E0 */ addi r3, r11, 0xe0
+/* 8031CDAC 00318A0C 4C C6 31 82 */ crclr 6
+/* 8031CDB0 00318A10 4B EA FA B5 */ bl printf
+/* 8031CDB4 00318A14 48 00 00 70 */ b lbl_8031CE24
+lbl_8031CDB8:
+/* 8031CDB8 00318A18 38 6B 00 F4 */ addi r3, r11, 0xf4
+/* 8031CDBC 00318A1C 4C C6 31 82 */ crclr 6
+/* 8031CDC0 00318A20 4B EA FA A5 */ bl printf
+/* 8031CDC4 00318A24 48 00 00 60 */ b lbl_8031CE24
+lbl_8031CDC8:
+/* 8031CDC8 00318A28 38 6B 01 04 */ addi r3, r11, 0x104
+/* 8031CDCC 00318A2C 4C C6 31 82 */ crclr 6
+/* 8031CDD0 00318A30 4B EA FA 95 */ bl printf
+/* 8031CDD4 00318A34 48 00 00 50 */ b lbl_8031CE24
+lbl_8031CDD8:
+/* 8031CDD8 00318A38 38 6B 01 14 */ addi r3, r11, 0x114
+/* 8031CDDC 00318A3C 4C C6 31 82 */ crclr 6
+/* 8031CDE0 00318A40 4B EA FA 85 */ bl printf
+/* 8031CDE4 00318A44 48 00 00 40 */ b lbl_8031CE24
+lbl_8031CDE8:
+/* 8031CDE8 00318A48 38 6B 01 24 */ addi r3, r11, 0x124
+/* 8031CDEC 00318A4C 4C C6 31 82 */ crclr 6
+/* 8031CDF0 00318A50 4B EA FA 75 */ bl printf
+/* 8031CDF4 00318A54 48 00 00 30 */ b lbl_8031CE24
+lbl_8031CDF8:
+/* 8031CDF8 00318A58 38 6B 01 34 */ addi r3, r11, 0x134
+/* 8031CDFC 00318A5C 4C C6 31 82 */ crclr 6
+/* 8031CE00 00318A60 4B EA FA 65 */ bl printf
+/* 8031CE04 00318A64 48 00 00 20 */ b lbl_8031CE24
+lbl_8031CE08:
+/* 8031CE08 00318A68 38 6B 01 44 */ addi r3, r11, 0x144
+/* 8031CE0C 00318A6C 4C C6 31 82 */ crclr 6
+/* 8031CE10 00318A70 4B EA FA 55 */ bl printf
+/* 8031CE14 00318A74 48 00 00 10 */ b lbl_8031CE24
+lbl_8031CE18:
+/* 8031CE18 00318A78 38 6B 01 54 */ addi r3, r11, 0x154
+/* 8031CE1C 00318A7C 4C C6 31 82 */ crclr 6
+/* 8031CE20 00318A80 4B EA FA 45 */ bl printf
+lbl_8031CE24:
+/* 8031CE24 00318A84 38 A1 00 88 */ addi r5, r1, 0x88
+/* 8031CE28 00318A88 38 01 00 08 */ addi r0, r1, 8
+/* 8031CE2C 00318A8C 3C 60 02 00 */ lis r3, 0x200
+/* 8031CE30 00318A90 90 A1 00 6C */ stw r5, 0x6c(r1)
+/* 8031CE34 00318A94 38 81 00 68 */ addi r4, r1, 0x68
+/* 8031CE38 00318A98 90 61 00 68 */ stw r3, 0x68(r1)
+/* 8031CE3C 00318A9C 7F E3 FB 78 */ mr r3, r31
+/* 8031CE40 00318AA0 90 01 00 70 */ stw r0, 0x70(r1)
+/* 8031CE44 00318AA4 4B EA FA E9 */ bl vprintf
+lbl_8031CE48:
+/* 8031CE48 00318AA8 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 8031CE4C 00318AAC 83 E1 00 7C */ lwz r31, 0x7c(r1)
+/* 8031CE50 00318AB0 7C 08 03 A6 */ mtlr r0
+/* 8031CE54 00318AB4 38 21 00 80 */ addi r1, r1, 0x80
+/* 8031CE58 00318AB8 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/dwc_ghttp/dwc_ghttp.s b/asm/SDK/DWC/dwc_ghttp/dwc_ghttp.s new file mode 100644 index 0000000..ecafba3 --- /dev/null +++ b/asm/SDK/DWC/dwc_ghttp/dwc_ghttp.s @@ -0,0 +1,466 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DWC_InitGHTTP
+DWC_InitGHTTP:
+/* 8031CE5C 00318ABC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031CE60 00318AC0 7C 08 02 A6 */ mflr r0
+/* 8031CE64 00318AC4 3C 80 80 44 */ lis r4, lbl_80446AD0@ha
+/* 8031CE68 00318AC8 38 60 00 04 */ li r3, 4
+/* 8031CE6C 00318ACC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031CE70 00318AD0 38 84 6A D0 */ addi r4, r4, lbl_80446AD0@l
+/* 8031CE74 00318AD4 4C C6 31 82 */ crclr 6
+/* 8031CE78 00318AD8 4B FF FC BD */ bl DWC_Printf
+/* 8031CE7C 00318ADC 48 03 70 4D */ bl ghttpStartup
+/* 8031CE80 00318AE0 80 8D B0 34 */ lwz r4, lbl_806402F4-_SDA_BASE_(r13)
+/* 8031CE84 00318AE4 38 60 00 01 */ li r3, 1
+/* 8031CE88 00318AE8 38 04 00 01 */ addi r0, r4, 1
+/* 8031CE8C 00318AEC 90 0D B0 34 */ stw r0, lbl_806402F4-_SDA_BASE_(r13)
+/* 8031CE90 00318AF0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031CE94 00318AF4 7C 08 03 A6 */ mtlr r0
+/* 8031CE98 00318AF8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031CE9C 00318AFC 4E 80 00 20 */ blr
+
+.global DWC_ShutdownGHTTP
+DWC_ShutdownGHTTP:
+/* 8031CEA0 00318B00 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031CEA4 00318B04 7C 08 02 A6 */ mflr r0
+/* 8031CEA8 00318B08 3C 80 80 44 */ lis r4, lbl_80446AE0@ha
+/* 8031CEAC 00318B0C 38 60 00 04 */ li r3, 4
+/* 8031CEB0 00318B10 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031CEB4 00318B14 38 84 6A E0 */ addi r4, r4, lbl_80446AE0@l
+/* 8031CEB8 00318B18 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031CEBC 00318B1C 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031CEC0 00318B20 4C C6 31 82 */ crclr 6
+/* 8031CEC4 00318B24 4B FF FC 71 */ bl DWC_Printf
+/* 8031CEC8 00318B28 80 0D B0 34 */ lwz r0, lbl_806402F4-_SDA_BASE_(r13)
+/* 8031CECC 00318B2C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031CED0 00318B30 41 81 00 0C */ bgt lbl_8031CEDC
+/* 8031CED4 00318B34 38 60 00 01 */ li r3, 1
+/* 8031CED8 00318B38 48 00 00 64 */ b lbl_8031CF3C
+lbl_8031CEDC:
+/* 8031CEDC 00318B3C 48 03 70 3D */ bl ghttpCleanup
+/* 8031CEE0 00318B40 80 0D B0 34 */ lwz r0, lbl_806402F4-_SDA_BASE_(r13)
+/* 8031CEE4 00318B44 34 00 FF FF */ addic. r0, r0, -1
+/* 8031CEE8 00318B48 90 0D B0 34 */ stw r0, lbl_806402F4-_SDA_BASE_(r13)
+/* 8031CEEC 00318B4C 40 82 00 4C */ bne lbl_8031CF38
+/* 8031CEF0 00318B50 83 CD B0 30 */ lwz r30, lbl_806402F0-_SDA_BASE_(r13)
+/* 8031CEF4 00318B54 48 00 00 34 */ b lbl_8031CF28
+lbl_8031CEF8:
+/* 8031CEF8 00318B58 7F DF F3 78 */ mr r31, r30
+/* 8031CEFC 00318B5C 83 DE 00 18 */ lwz r30, 0x18(r30)
+/* 8031CF00 00318B60 80 9F 00 10 */ lwz r4, 0x10(r31)
+/* 8031CF04 00318B64 2C 04 00 00 */ cmpwi r4, 0
+/* 8031CF08 00318B68 41 82 00 10 */ beq lbl_8031CF18
+/* 8031CF0C 00318B6C 38 60 00 06 */ li r3, 6
+/* 8031CF10 00318B70 38 A0 00 00 */ li r5, 0
+/* 8031CF14 00318B74 4B FF FA 75 */ bl DWC_Free
+lbl_8031CF18:
+/* 8031CF18 00318B78 7F E4 FB 78 */ mr r4, r31
+/* 8031CF1C 00318B7C 38 60 00 06 */ li r3, 6
+/* 8031CF20 00318B80 38 A0 00 00 */ li r5, 0
+/* 8031CF24 00318B84 4B FF FA 65 */ bl DWC_Free
+lbl_8031CF28:
+/* 8031CF28 00318B88 2C 1E 00 00 */ cmpwi r30, 0
+/* 8031CF2C 00318B8C 40 82 FF CC */ bne lbl_8031CEF8
+/* 8031CF30 00318B90 38 00 00 00 */ li r0, 0
+/* 8031CF34 00318B94 90 0D B0 30 */ stw r0, lbl_806402F0-_SDA_BASE_(r13)
+lbl_8031CF38:
+/* 8031CF38 00318B98 38 60 00 01 */ li r3, 1
+lbl_8031CF3C:
+/* 8031CF3C 00318B9C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031CF40 00318BA0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031CF44 00318BA4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031CF48 00318BA8 7C 08 03 A6 */ mtlr r0
+/* 8031CF4C 00318BAC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031CF50 00318BB0 4E 80 00 20 */ blr
+
+.global DWC_ProcessGHTTP
+DWC_ProcessGHTTP:
+/* 8031CF54 00318BB4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031CF58 00318BB8 7C 08 02 A6 */ mflr r0
+/* 8031CF5C 00318BBC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031CF60 00318BC0 4B FF F6 0D */ bl DWCi_IsError
+/* 8031CF64 00318BC4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031CF68 00318BC8 41 82 00 0C */ beq lbl_8031CF74
+/* 8031CF6C 00318BCC 38 60 00 00 */ li r3, 0
+/* 8031CF70 00318BD0 48 00 00 0C */ b lbl_8031CF7C
+lbl_8031CF74:
+/* 8031CF74 00318BD4 48 03 72 5D */ bl ghttpThink
+/* 8031CF78 00318BD8 38 60 00 01 */ li r3, 1
+lbl_8031CF7C:
+/* 8031CF7C 00318BDC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031CF80 00318BE0 7C 08 03 A6 */ mtlr r0
+/* 8031CF84 00318BE4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031CF88 00318BE8 4E 80 00 20 */ blr
+
+GHTTPCompletedCallback:
+/* 8031CF8C 00318BEC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8031CF90 00318BF0 7C 08 02 A6 */ mflr r0
+/* 8031CF94 00318BF4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031CF98 00318BF8 39 61 00 30 */ addi r11, r1, 0x30
+/* 8031CF9C 00318BFC 4B EA A1 85 */ bl _savegpr_25
+/* 8031CFA0 00318C00 7C 99 23 78 */ mr r25, r4
+/* 8031CFA4 00318C04 3C 80 80 44 */ lis r4, lbl_80446AF4@ha
+/* 8031CFA8 00318C08 7C BA 2B 78 */ mr r26, r5
+/* 8031CFAC 00318C0C 83 C7 00 04 */ lwz r30, 4(r7)
+/* 8031CFB0 00318C10 83 A7 00 0C */ lwz r29, 0xc(r7)
+/* 8031CFB4 00318C14 7C DB 33 78 */ mr r27, r6
+/* 8031CFB8 00318C18 7C FF 3B 78 */ mr r31, r7
+/* 8031CFBC 00318C1C 7F 25 CB 78 */ mr r5, r25
+/* 8031CFC0 00318C20 38 84 6A F4 */ addi r4, r4, lbl_80446AF4@l
+/* 8031CFC4 00318C24 38 60 00 04 */ li r3, 4
+/* 8031CFC8 00318C28 4C C6 31 82 */ crclr 6
+/* 8031CFCC 00318C2C 4B FF FB 69 */ bl DWC_Printf
+/* 8031CFD0 00318C30 2C 1E 00 00 */ cmpwi r30, 0
+/* 8031CFD4 00318C34 41 82 00 A4 */ beq lbl_8031D078
+/* 8031CFD8 00318C38 2C 19 00 00 */ cmpwi r25, 0
+/* 8031CFDC 00318C3C 40 82 00 24 */ bne lbl_8031D000
+/* 8031CFE0 00318C40 7F CC F3 78 */ mr r12, r30
+/* 8031CFE4 00318C44 7F 43 D3 78 */ mr r3, r26
+/* 8031CFE8 00318C48 7F 64 DB 78 */ mr r4, r27
+/* 8031CFEC 00318C4C 7F 25 CB 78 */ mr r5, r25
+/* 8031CFF0 00318C50 80 DF 00 00 */ lwz r6, 0(r31)
+/* 8031CFF4 00318C54 7D 89 03 A6 */ mtctr r12
+/* 8031CFF8 00318C58 4E 80 04 21 */ bctrl
+/* 8031CFFC 00318C5C 48 00 00 90 */ b lbl_8031D08C
+lbl_8031D000:
+/* 8031D000 00318C60 2C 1B 00 00 */ cmpwi r27, 0
+/* 8031D004 00318C64 40 81 00 4C */ ble lbl_8031D050
+/* 8031D008 00318C68 38 9B 00 01 */ addi r4, r27, 1
+/* 8031D00C 00318C6C 38 60 00 06 */ li r3, 6
+/* 8031D010 00318C70 4B FF F8 DD */ bl DWC_Alloc
+/* 8031D014 00318C74 7C 7C 1B 78 */ mr r28, r3
+/* 8031D018 00318C78 7F 44 D3 78 */ mr r4, r26
+/* 8031D01C 00318C7C 7F 65 DB 78 */ mr r5, r27
+/* 8031D020 00318C80 4B CE 6F E1 */ bl memcpy
+/* 8031D024 00318C84 38 00 00 00 */ li r0, 0
+/* 8031D028 00318C88 7F 45 D3 78 */ mr r5, r26
+/* 8031D02C 00318C8C 7C 1C D9 AE */ stbx r0, r28, r27
+/* 8031D030 00318C90 38 60 00 04 */ li r3, 4
+/* 8031D034 00318C94 38 8D 8D 40 */ addi r4, r13, lbl_8063E000-_SDA_BASE_
+/* 8031D038 00318C98 4C C6 31 82 */ crclr 6
+/* 8031D03C 00318C9C 4B FF FA F9 */ bl DWC_Printf
+/* 8031D040 00318CA0 7F 84 E3 78 */ mr r4, r28
+/* 8031D044 00318CA4 38 60 00 06 */ li r3, 6
+/* 8031D048 00318CA8 38 A0 00 00 */ li r5, 0
+/* 8031D04C 00318CAC 4B FF F9 3D */ bl DWC_Free
+lbl_8031D050:
+/* 8031D050 00318CB0 7F 23 CB 78 */ mr r3, r25
+/* 8031D054 00318CB4 48 00 02 A9 */ bl DWCi_HandleGHTTPError
+/* 8031D058 00318CB8 7F CC F3 78 */ mr r12, r30
+/* 8031D05C 00318CBC 7F 25 CB 78 */ mr r5, r25
+/* 8031D060 00318CC0 80 DF 00 00 */ lwz r6, 0(r31)
+/* 8031D064 00318CC4 38 60 00 00 */ li r3, 0
+/* 8031D068 00318CC8 38 80 00 00 */ li r4, 0
+/* 8031D06C 00318CCC 7D 89 03 A6 */ mtctr r12
+/* 8031D070 00318CD0 4E 80 04 21 */ bctrl
+/* 8031D074 00318CD4 48 00 00 18 */ b lbl_8031D08C
+lbl_8031D078:
+/* 8031D078 00318CD8 3C 80 80 44 */ lis r4, lbl_80446B18@ha
+/* 8031D07C 00318CDC 38 60 00 04 */ li r3, 4
+/* 8031D080 00318CE0 38 84 6B 18 */ addi r4, r4, lbl_80446B18@l
+/* 8031D084 00318CE4 4C C6 31 82 */ crclr 6
+/* 8031D088 00318CE8 4B FF FA AD */ bl DWC_Printf
+lbl_8031D08C:
+/* 8031D08C 00318CEC 2C 19 00 00 */ cmpwi r25, 0
+/* 8031D090 00318CF0 40 82 00 0C */ bne lbl_8031D09C
+/* 8031D094 00318CF4 2C 1D 00 01 */ cmpwi r29, 1
+/* 8031D098 00318CF8 40 82 00 24 */ bne lbl_8031D0BC
+lbl_8031D09C:
+/* 8031D09C 00318CFC 80 9F 00 10 */ lwz r4, 0x10(r31)
+/* 8031D0A0 00318D00 2C 04 00 00 */ cmpwi r4, 0
+/* 8031D0A4 00318D04 41 82 00 14 */ beq lbl_8031D0B8
+/* 8031D0A8 00318D08 38 60 00 06 */ li r3, 6
+/* 8031D0AC 00318D0C 38 A0 00 00 */ li r5, 0
+/* 8031D0B0 00318D10 4B FF F8 D9 */ bl DWC_Free
+/* 8031D0B4 00318D14 48 00 00 08 */ b lbl_8031D0BC
+lbl_8031D0B8:
+/* 8031D0B8 00318D18 3B A0 00 01 */ li r29, 1
+lbl_8031D0BC:
+/* 8031D0BC 00318D1C 7F E3 FB 78 */ mr r3, r31
+/* 8031D0C0 00318D20 48 00 03 65 */ bl DWCi_RemoveDWCGHTTPParamEntry
+/* 8031D0C4 00318D24 7C 1D 00 D0 */ neg r0, r29
+/* 8031D0C8 00318D28 39 61 00 30 */ addi r11, r1, 0x30
+/* 8031D0CC 00318D2C 7C 00 EB 78 */ or r0, r0, r29
+/* 8031D0D0 00318D30 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8031D0D4 00318D34 4B EA A0 99 */ bl _restgpr_25
+/* 8031D0D8 00318D38 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8031D0DC 00318D3C 7C 08 03 A6 */ mtlr r0
+/* 8031D0E0 00318D40 38 21 00 30 */ addi r1, r1, 0x30
+/* 8031D0E4 00318D44 4E 80 00 20 */ blr
+
+.global DWC_GetGHTTPData
+DWC_GetGHTTPData:
+/* 8031D0E8 00318D48 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8031D0EC 00318D4C 7C 08 02 A6 */ mflr r0
+/* 8031D0F0 00318D50 3C C0 80 44 */ lis r6, lbl_80446B40@ha
+/* 8031D0F4 00318D54 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031D0F8 00318D58 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8031D0FC 00318D5C 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8031D100 00318D60 7C 7E 1B 78 */ mr r30, r3
+/* 8031D104 00318D64 38 60 00 04 */ li r3, 4
+/* 8031D108 00318D68 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 8031D10C 00318D6C 7C BD 2B 78 */ mr r29, r5
+/* 8031D110 00318D70 93 81 00 20 */ stw r28, 0x20(r1)
+/* 8031D114 00318D74 7C 9C 23 78 */ mr r28, r4
+/* 8031D118 00318D78 38 86 6B 40 */ addi r4, r6, lbl_80446B40@l
+/* 8031D11C 00318D7C 4C C6 31 82 */ crclr 6
+/* 8031D120 00318D80 4B FF FA 15 */ bl DWC_Printf
+/* 8031D124 00318D84 4B FF F4 49 */ bl DWCi_IsError
+/* 8031D128 00318D88 2C 03 00 00 */ cmpwi r3, 0
+/* 8031D12C 00318D8C 41 82 00 0C */ beq lbl_8031D138
+/* 8031D130 00318D90 38 60 00 00 */ li r3, 0
+/* 8031D134 00318D94 48 00 01 2C */ b lbl_8031D260
+lbl_8031D138:
+/* 8031D138 00318D98 3B E0 00 00 */ li r31, 0
+/* 8031D13C 00318D9C 38 00 00 01 */ li r0, 1
+/* 8031D140 00318DA0 93 A1 00 08 */ stw r29, 8(r1)
+/* 8031D144 00318DA4 38 60 00 06 */ li r3, 6
+/* 8031D148 00318DA8 38 80 00 1C */ li r4, 0x1c
+/* 8031D14C 00318DAC 93 81 00 0C */ stw r28, 0xc(r1)
+/* 8031D150 00318DB0 93 E1 00 10 */ stw r31, 0x10(r1)
+/* 8031D154 00318DB4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031D158 00318DB8 4B FF F7 95 */ bl DWC_Alloc
+/* 8031D15C 00318DBC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031D160 00318DC0 40 82 00 0C */ bne lbl_8031D16C
+/* 8031D164 00318DC4 3B E0 00 00 */ li r31, 0
+/* 8031D168 00318DC8 48 00 00 50 */ b lbl_8031D1B8
+lbl_8031D16C:
+/* 8031D16C 00318DCC 7F A4 EB 78 */ mr r4, r29
+/* 8031D170 00318DD0 7F 80 E3 78 */ mr r0, r28
+/* 8031D174 00318DD4 90 83 00 00 */ stw r4, 0(r3)
+/* 8031D178 00318DD8 7F E4 FB 78 */ mr r4, r31
+/* 8031D17C 00318DDC 90 03 00 04 */ stw r0, 4(r3)
+/* 8031D180 00318DE0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031D184 00318DE4 90 83 00 08 */ stw r4, 8(r3)
+/* 8031D188 00318DE8 90 03 00 0C */ stw r0, 0xc(r3)
+/* 8031D18C 00318DEC 93 E3 00 18 */ stw r31, 0x18(r3)
+/* 8031D190 00318DF0 93 E3 00 10 */ stw r31, 0x10(r3)
+/* 8031D194 00318DF4 80 0D B0 30 */ lwz r0, lbl_806402F0-_SDA_BASE_(r13)
+/* 8031D198 00318DF8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031D19C 00318DFC 40 82 00 10 */ bne lbl_8031D1AC
+/* 8031D1A0 00318E00 90 6D B0 30 */ stw r3, lbl_806402F0-_SDA_BASE_(r13)
+/* 8031D1A4 00318E04 7C 7F 1B 78 */ mr r31, r3
+/* 8031D1A8 00318E08 48 00 00 10 */ b lbl_8031D1B8
+lbl_8031D1AC:
+/* 8031D1AC 00318E0C 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8031D1B0 00318E10 7C 7F 1B 78 */ mr r31, r3
+/* 8031D1B4 00318E14 90 6D B0 30 */ stw r3, lbl_806402F0-_SDA_BASE_(r13)
+lbl_8031D1B8:
+/* 8031D1B8 00318E18 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031D1BC 00318E1C 40 82 00 44 */ bne lbl_8031D200
+/* 8031D1C0 00318E20 38 60 FF FB */ li r3, -5
+/* 8031D1C4 00318E24 48 00 01 39 */ bl DWCi_HandleGHTTPError
+/* 8031D1C8 00318E28 3C 80 80 44 */ lis r4, lbl_80446B2C@ha
+/* 8031D1CC 00318E2C 38 60 00 04 */ li r3, 4
+/* 8031D1D0 00318E30 38 84 6B 2C */ addi r4, r4, lbl_80446B2C@l
+/* 8031D1D4 00318E34 4C C6 31 82 */ crclr 6
+/* 8031D1D8 00318E38 4B FF F9 5D */ bl DWC_Printf
+/* 8031D1DC 00318E3C 7F 8C E3 78 */ mr r12, r28
+/* 8031D1E0 00318E40 7F A6 EB 78 */ mr r6, r29
+/* 8031D1E4 00318E44 38 60 00 00 */ li r3, 0
+/* 8031D1E8 00318E48 38 80 00 00 */ li r4, 0
+/* 8031D1EC 00318E4C 38 A0 FF FB */ li r5, -5
+/* 8031D1F0 00318E50 7D 89 03 A6 */ mtctr r12
+/* 8031D1F4 00318E54 4E 80 04 21 */ bctrl
+/* 8031D1F8 00318E58 38 60 FF FB */ li r3, -5
+/* 8031D1FC 00318E5C 48 00 00 64 */ b lbl_8031D260
+lbl_8031D200:
+/* 8031D200 00318E60 3C A0 80 32 */ lis r5, GHTTPCompletedCallback@ha
+/* 8031D204 00318E64 7F C3 F3 78 */ mr r3, r30
+/* 8031D208 00318E68 7F E6 FB 78 */ mr r6, r31
+/* 8031D20C 00318E6C 38 80 00 00 */ li r4, 0
+/* 8031D210 00318E70 38 A5 CF 8C */ addi r5, r5, GHTTPCompletedCallback@l
+/* 8031D214 00318E74 48 03 6D 61 */ bl func_80353F74
+/* 8031D218 00318E78 2C 03 00 00 */ cmpwi r3, 0
+/* 8031D21C 00318E7C 7C 7E 1B 78 */ mr r30, r3
+/* 8031D220 00318E80 40 80 00 2C */ bge lbl_8031D24C
+/* 8031D224 00318E84 48 00 00 D9 */ bl DWCi_HandleGHTTPError
+/* 8031D228 00318E88 7F 8C E3 78 */ mr r12, r28
+/* 8031D22C 00318E8C 7F C5 F3 78 */ mr r5, r30
+/* 8031D230 00318E90 7F A6 EB 78 */ mr r6, r29
+/* 8031D234 00318E94 38 60 00 00 */ li r3, 0
+/* 8031D238 00318E98 38 80 00 00 */ li r4, 0
+/* 8031D23C 00318E9C 7D 89 03 A6 */ mtctr r12
+/* 8031D240 00318EA0 4E 80 04 21 */ bctrl
+/* 8031D244 00318EA4 7F E3 FB 78 */ mr r3, r31
+/* 8031D248 00318EA8 48 00 01 DD */ bl DWCi_RemoveDWCGHTTPParamEntry
+lbl_8031D24C:
+/* 8031D24C 00318EAC 93 DF 00 14 */ stw r30, 0x14(r31)
+/* 8031D250 00318EB0 7F C3 F3 78 */ mr r3, r30
+/* 8031D254 00318EB4 38 80 00 01 */ li r4, 1
+/* 8031D258 00318EB8 48 03 6F B1 */ bl ghttpSetMaxRecvTime
+/* 8031D25C 00318EBC 7F C3 F3 78 */ mr r3, r30
+lbl_8031D260:
+/* 8031D260 00318EC0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8031D264 00318EC4 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8031D268 00318EC8 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8031D26C 00318ECC 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 8031D270 00318ED0 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 8031D274 00318ED4 7C 08 03 A6 */ mtlr r0
+/* 8031D278 00318ED8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8031D27C 00318EDC 4E 80 00 20 */ blr
+
+.global DWC_CancelGHTTPRequest
+DWC_CancelGHTTPRequest:
+/* 8031D280 00318EE0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031D284 00318EE4 7C 08 02 A6 */ mflr r0
+/* 8031D288 00318EE8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031D28C 00318EEC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031D290 00318EF0 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031D294 00318EF4 7C 7E 1B 78 */ mr r30, r3
+/* 8031D298 00318EF8 48 03 6F 45 */ bl ghttpCancelRequest
+/* 8031D29C 00318EFC 83 ED B0 30 */ lwz r31, lbl_806402F0-_SDA_BASE_(r13)
+/* 8031D2A0 00318F00 48 00 00 08 */ b lbl_8031D2A8
+lbl_8031D2A4:
+/* 8031D2A4 00318F04 83 FF 00 18 */ lwz r31, 0x18(r31)
+lbl_8031D2A8:
+/* 8031D2A8 00318F08 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031D2AC 00318F0C 41 82 00 10 */ beq lbl_8031D2BC
+/* 8031D2B0 00318F10 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 8031D2B4 00318F14 7C 00 F0 00 */ cmpw r0, r30
+/* 8031D2B8 00318F18 40 82 FF EC */ bne lbl_8031D2A4
+lbl_8031D2BC:
+/* 8031D2BC 00318F1C 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031D2C0 00318F20 41 82 00 24 */ beq lbl_8031D2E4
+/* 8031D2C4 00318F24 80 9F 00 10 */ lwz r4, 0x10(r31)
+/* 8031D2C8 00318F28 2C 04 00 00 */ cmpwi r4, 0
+/* 8031D2CC 00318F2C 41 82 00 10 */ beq lbl_8031D2DC
+/* 8031D2D0 00318F30 38 60 00 06 */ li r3, 6
+/* 8031D2D4 00318F34 38 A0 00 00 */ li r5, 0
+/* 8031D2D8 00318F38 4B FF F6 B1 */ bl DWC_Free
+lbl_8031D2DC:
+/* 8031D2DC 00318F3C 7F E3 FB 78 */ mr r3, r31
+/* 8031D2E0 00318F40 48 00 01 45 */ bl DWCi_RemoveDWCGHTTPParamEntry
+lbl_8031D2E4:
+/* 8031D2E4 00318F44 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031D2E8 00318F48 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031D2EC 00318F4C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031D2F0 00318F50 7C 08 03 A6 */ mtlr r0
+/* 8031D2F4 00318F54 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031D2F8 00318F58 4E 80 00 20 */ blr
+
+.global DWCi_HandleGHTTPError
+DWCi_HandleGHTTPError:
+/* 8031D2FC 00318F5C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031D300 00318F60 7C 08 02 A6 */ mflr r0
+/* 8031D304 00318F64 2C 03 00 00 */ cmpwi r3, 0
+/* 8031D308 00318F68 3C 80 FF FF */ lis r4, 0xFFFE8130@ha
+/* 8031D30C 00318F6C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031D310 00318F70 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031D314 00318F74 3B E4 81 30 */ addi r31, r4, 0xFFFE8130@l
+/* 8031D318 00318F78 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031D31C 00318F7C 3B C0 00 07 */ li r30, 7
+/* 8031D320 00318F80 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031D324 00318F84 7C 7D 1B 78 */ mr r29, r3
+/* 8031D328 00318F88 40 82 00 0C */ bne lbl_8031D334
+/* 8031D32C 00318F8C 38 60 00 00 */ li r3, 0
+/* 8031D330 00318F90 48 00 00 D8 */ b lbl_8031D408
+lbl_8031D334:
+/* 8031D334 00318F94 3C 80 80 44 */ lis r4, lbl_80446B54@ha
+/* 8031D338 00318F98 7F A5 EB 78 */ mr r5, r29
+/* 8031D33C 00318F9C 38 84 6B 54 */ addi r4, r4, lbl_80446B54@l
+/* 8031D340 00318FA0 38 60 00 02 */ li r3, 2
+/* 8031D344 00318FA4 4C C6 31 82 */ crclr 6
+/* 8031D348 00318FA8 4B FF F7 ED */ bl DWC_Printf
+/* 8031D34C 00318FAC 38 1D 00 07 */ addi r0, r29, 7
+/* 8031D350 00318FB0 28 00 00 1B */ cmplwi r0, 0x1b
+/* 8031D354 00318FB4 41 81 00 A4 */ bgt lbl_8031D3F8
+/* 8031D358 00318FB8 3C 60 80 44 */ lis r3, lbl_80446B70@ha
+/* 8031D35C 00318FBC 54 00 10 3A */ slwi r0, r0, 2
+/* 8031D360 00318FC0 38 63 6B 70 */ addi r3, r3, lbl_80446B70@l
+/* 8031D364 00318FC4 7C 63 00 2E */ lwzx r3, r3, r0
+/* 8031D368 00318FC8 7C 69 03 A6 */ mtctr r3
+/* 8031D36C 00318FCC 4E 80 04 20 */ bctr
+/* 8031D370 00318FD0 3B FF FC E0 */ addi r31, r31, -800
+/* 8031D374 00318FD4 48 00 00 84 */ b lbl_8031D3F8
+/* 8031D378 00318FD8 3B FF FC D6 */ addi r31, r31, -810
+/* 8031D37C 00318FDC 48 00 00 7C */ b lbl_8031D3F8
+/* 8031D380 00318FE0 3B FF FC B8 */ addi r31, r31, -840
+/* 8031D384 00318FE4 48 00 00 74 */ b lbl_8031D3F8
+/* 8031D388 00318FE8 3B FF FC CC */ addi r31, r31, -820
+/* 8031D38C 00318FEC 48 00 00 6C */ b lbl_8031D3F8
+/* 8031D390 00318FF0 3B FF FC C2 */ addi r31, r31, -830
+/* 8031D394 00318FF4 48 00 00 64 */ b lbl_8031D3F8
+/* 8031D398 00318FF8 3B C0 00 09 */ li r30, 9
+/* 8031D39C 00318FFC 3B FF FF FF */ addi r31, r31, -1
+/* 8031D3A0 00319000 48 00 00 58 */ b lbl_8031D3F8
+/* 8031D3A4 00319004 3B FF FC B8 */ addi r31, r31, -840
+/* 8031D3A8 00319008 48 00 00 50 */ b lbl_8031D3F8
+/* 8031D3AC 0031900C 3B FF FC AE */ addi r31, r31, -850
+/* 8031D3B0 00319010 48 00 00 48 */ b lbl_8031D3F8
+/* 8031D3B4 00319014 3B FF FF E2 */ addi r31, r31, -30
+/* 8031D3B8 00319018 48 00 00 40 */ b lbl_8031D3F8
+/* 8031D3BC 0031901C 3B FF FF CE */ addi r31, r31, -50
+/* 8031D3C0 00319020 48 00 00 38 */ b lbl_8031D3F8
+/* 8031D3C4 00319024 3B FF FF EC */ addi r31, r31, -20
+/* 8031D3C8 00319028 48 00 00 30 */ b lbl_8031D3F8
+/* 8031D3CC 0031902C 3B FF FC A4 */ addi r31, r31, -860
+/* 8031D3D0 00319030 48 00 00 28 */ b lbl_8031D3F8
+/* 8031D3D4 00319034 3B FF FC 9A */ addi r31, r31, -870
+/* 8031D3D8 00319038 48 00 00 20 */ b lbl_8031D3F8
+/* 8031D3DC 0031903C 3B FF FC 90 */ addi r31, r31, -880
+/* 8031D3E0 00319040 48 00 00 18 */ b lbl_8031D3F8
+/* 8031D3E4 00319044 3B FF FC 86 */ addi r31, r31, -890
+/* 8031D3E8 00319048 48 00 00 10 */ b lbl_8031D3F8
+/* 8031D3EC 0031904C 3B FF FC 7C */ addi r31, r31, -900
+/* 8031D3F0 00319050 48 00 00 08 */ b lbl_8031D3F8
+/* 8031D3F4 00319054 3B FF FC 72 */ addi r31, r31, -910
+lbl_8031D3F8:
+/* 8031D3F8 00319058 7F C3 F3 78 */ mr r3, r30
+/* 8031D3FC 0031905C 7F E4 FB 78 */ mr r4, r31
+/* 8031D400 00319060 4B FF F1 81 */ bl DWCi_SetError
+/* 8031D404 00319064 7F A3 EB 78 */ mr r3, r29
+lbl_8031D408:
+/* 8031D408 00319068 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031D40C 0031906C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031D410 00319070 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031D414 00319074 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031D418 00319078 7C 08 03 A6 */ mtlr r0
+/* 8031D41C 0031907C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031D420 00319080 4E 80 00 20 */ blr
+
+.global DWCi_RemoveDWCGHTTPParamEntry
+DWCi_RemoveDWCGHTTPParamEntry:
+/* 8031D424 00319084 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031D428 00319088 7C 08 02 A6 */ mflr r0
+/* 8031D42C 0031908C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031D430 00319090 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031D434 00319094 80 8D B0 30 */ lwz r4, lbl_806402F0-_SDA_BASE_(r13)
+/* 8031D438 00319098 2C 04 00 00 */ cmpwi r4, 0
+/* 8031D43C 0031909C 41 82 00 60 */ beq lbl_8031D49C
+/* 8031D440 003190A0 7C 04 18 40 */ cmplw r4, r3
+/* 8031D444 003190A4 40 82 00 1C */ bne lbl_8031D460
+/* 8031D448 003190A8 83 E4 00 18 */ lwz r31, 0x18(r4)
+/* 8031D44C 003190AC 38 60 00 06 */ li r3, 6
+/* 8031D450 003190B0 38 A0 00 00 */ li r5, 0
+/* 8031D454 003190B4 4B FF F5 35 */ bl DWC_Free
+/* 8031D458 003190B8 93 ED B0 30 */ stw r31, lbl_806402F0-_SDA_BASE_(r13)
+/* 8031D45C 003190BC 48 00 00 40 */ b lbl_8031D49C
+lbl_8031D460:
+/* 8031D460 003190C0 7C 86 23 78 */ mr r6, r4
+/* 8031D464 003190C4 48 00 00 2C */ b lbl_8031D490
+lbl_8031D468:
+/* 8031D468 003190C8 7C 04 18 40 */ cmplw r4, r3
+/* 8031D46C 003190CC 41 82 00 0C */ beq lbl_8031D478
+/* 8031D470 003190D0 7C 86 23 78 */ mr r6, r4
+/* 8031D474 003190D4 48 00 00 1C */ b lbl_8031D490
+lbl_8031D478:
+/* 8031D478 003190D8 80 04 00 18 */ lwz r0, 0x18(r4)
+/* 8031D47C 003190DC 38 60 00 06 */ li r3, 6
+/* 8031D480 003190E0 38 A0 00 00 */ li r5, 0
+/* 8031D484 003190E4 90 06 00 18 */ stw r0, 0x18(r6)
+/* 8031D488 003190E8 4B FF F5 01 */ bl DWC_Free
+/* 8031D48C 003190EC 48 00 00 10 */ b lbl_8031D49C
+lbl_8031D490:
+/* 8031D490 003190F0 80 86 00 18 */ lwz r4, 0x18(r6)
+/* 8031D494 003190F4 2C 04 00 00 */ cmpwi r4, 0
+/* 8031D498 003190F8 40 82 FF D0 */ bne lbl_8031D468
+lbl_8031D49C:
+/* 8031D49C 003190FC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031D4A0 00319100 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031D4A4 00319104 7C 08 03 A6 */ mtlr r0
+/* 8031D4A8 00319108 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031D4AC 0031910C 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/dwc_lanmatch/dwc_lanmatch.s b/asm/SDK/DWC/dwc_lanmatch/dwc_lanmatch.s new file mode 100644 index 0000000..6cadbcd --- /dev/null +++ b/asm/SDK/DWC/dwc_lanmatch/dwc_lanmatch.s @@ -0,0 +1,1812 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DWC_InitLanMatch
+DWC_InitLanMatch:
+/* 8031D4B0 00319110 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031D4B4 00319114 7C 08 02 A6 */ mflr r0
+/* 8031D4B8 00319118 38 60 00 05 */ li r3, 5
+/* 8031D4BC 0031911C 38 80 02 10 */ li r4, 0x210
+/* 8031D4C0 00319120 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031D4C4 00319124 4B FF F4 29 */ bl DWC_Alloc
+/* 8031D4C8 00319128 90 6D B0 38 */ stw r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D4CC 0031912C 38 80 00 00 */ li r4, 0
+/* 8031D4D0 00319130 38 A0 00 04 */ li r5, 4
+/* 8031D4D4 00319134 4B CE 6C 31 */ bl memset
+/* 8031D4D8 00319138 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D4DC 0031913C 38 80 00 00 */ li r4, 0
+/* 8031D4E0 00319140 38 00 FF FF */ li r0, -1
+/* 8031D4E4 00319144 90 83 00 00 */ stw r4, 0(r3)
+/* 8031D4E8 00319148 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D4EC 0031914C 90 03 01 74 */ stw r0, 0x174(r3)
+/* 8031D4F0 00319150 4B F5 52 C9 */ bl OSGetTime
+/* 8031D4F4 00319154 80 AD B0 38 */ lwz r5, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D4F8 00319158 90 85 02 0C */ stw r4, 0x20c(r5)
+/* 8031D4FC 0031915C 90 65 02 08 */ stw r3, 0x208(r5)
+/* 8031D500 00319160 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031D504 00319164 7C 08 03 A6 */ mtlr r0
+/* 8031D508 00319168 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031D50C 0031916C 4E 80 00 20 */ blr
+
+.global DWC_SetRecvLanMatchCallback
+DWC_SetRecvLanMatchCallback:
+/* 8031D510 00319170 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D514 00319174 90 64 02 00 */ stw r3, 0x200(r4)
+/* 8031D518 00319178 4E 80 00 20 */ blr
+
+.global DWC_SetSendLanMatchCallback
+DWC_SetSendLanMatchCallback:
+/* 8031D51C 0031917C 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D520 00319180 90 64 02 04 */ stw r3, 0x204(r4)
+/* 8031D524 00319184 4E 80 00 20 */ blr
+
+.global DWC_ProcessLanMatch
+DWC_ProcessLanMatch:
+/* 8031D528 00319188 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8031D52C 0031918C 7C 08 02 A6 */ mflr r0
+/* 8031D530 00319190 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8031D534 00319194 39 61 00 40 */ addi r11, r1, 0x40
+/* 8031D538 00319198 4B EA 9B E9 */ bl _savegpr_25
+/* 8031D53C 0031919C 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D540 003191A0 2C 03 00 00 */ cmpwi r3, 0
+/* 8031D544 003191A4 41 82 0A A0 */ beq lbl_8031DFE4
+/* 8031D548 003191A8 80 03 00 00 */ lwz r0, 0(r3)
+/* 8031D54C 003191AC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031D550 003191B0 40 81 00 78 */ ble lbl_8031D5C8
+/* 8031D554 003191B4 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031D558 003191B8 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031D55C 003191BC 48 02 C4 E1 */ bl gt2Think
+/* 8031D560 003191C0 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D564 003191C4 80 03 00 00 */ lwz r0, 0(r3)
+/* 8031D568 003191C8 2C 00 00 08 */ cmpwi r0, 8
+/* 8031D56C 003191CC 40 80 00 5C */ bge lbl_8031D5C8
+/* 8031D570 003191D0 80 8D B0 40 */ lwz r4, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D574 003191D4 80 64 00 00 */ lwz r3, 0(r4)
+/* 8031D578 003191D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031D57C 003191DC 41 82 00 4C */ beq lbl_8031D5C8
+/* 8031D580 003191E0 80 04 00 08 */ lwz r0, 8(r4)
+/* 8031D584 003191E4 2C 00 00 00 */ cmpwi r0, 0
+/* 8031D588 003191E8 41 82 00 38 */ beq lbl_8031D5C0
+/* 8031D58C 003191EC 48 04 12 6D */ bl ServerBrowserThink
+/* 8031D590 003191F0 80 6D B0 40 */ lwz r3, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D594 003191F4 80 03 00 04 */ lwz r0, 4(r3)
+/* 8031D598 003191F8 2C 00 00 01 */ cmpwi r0, 1
+/* 8031D59C 003191FC 40 82 00 24 */ bne lbl_8031D5C0
+/* 8031D5A0 00319200 38 00 00 00 */ li r0, 0
+/* 8031D5A4 00319204 38 80 00 01 */ li r4, 1
+/* 8031D5A8 00319208 90 03 00 04 */ stw r0, 4(r3)
+/* 8031D5AC 0031920C 38 A0 2B 67 */ li r5, 0x2b67
+/* 8031D5B0 00319210 38 C0 2B 67 */ li r6, 0x2b67
+/* 8031D5B4 00319214 80 6D B0 40 */ lwz r3, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D5B8 00319218 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031D5BC 0031921C 48 04 10 71 */ bl func_8035E62C
+lbl_8031D5C0:
+/* 8031D5C0 00319220 38 60 00 00 */ li r3, 0
+/* 8031D5C4 00319224 48 03 0D 1D */ bl qr2_think
+lbl_8031D5C8:
+/* 8031D5C8 00319228 80 CD B0 38 */ lwz r6, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D5CC 0031922C 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031D5D0 00319230 2C 00 00 02 */ cmpwi r0, 2
+/* 8031D5D4 00319234 41 82 0A 10 */ beq lbl_8031DFE4
+/* 8031D5D8 00319238 40 80 00 14 */ bge lbl_8031D5EC
+/* 8031D5DC 0031923C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031D5E0 00319240 41 82 00 1C */ beq lbl_8031D5FC
+/* 8031D5E4 00319244 40 80 01 F0 */ bge lbl_8031D7D4
+/* 8031D5E8 00319248 48 00 09 FC */ b lbl_8031DFE4
+lbl_8031D5EC:
+/* 8031D5EC 0031924C 2C 00 00 04 */ cmpwi r0, 4
+/* 8031D5F0 00319250 41 82 09 0C */ beq lbl_8031DEFC
+/* 8031D5F4 00319254 40 80 09 F0 */ bge lbl_8031DFE4
+/* 8031D5F8 00319258 48 00 07 5C */ b lbl_8031DD54
+lbl_8031D5FC:
+/* 8031D5FC 0031925C 4B FD 9C 55 */ bl SOGetHostID
+/* 8031D600 00319260 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D604 00319264 90 64 01 70 */ stw r3, 0x170(r4)
+/* 8031D608 00319268 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D60C 0031926C 80 63 01 70 */ lwz r3, 0x170(r3)
+/* 8031D610 00319270 2C 03 00 00 */ cmpwi r3, 0
+/* 8031D614 00319274 41 82 01 04 */ beq lbl_8031D718
+/* 8031D618 00319278 38 80 00 00 */ li r4, 0
+/* 8031D61C 0031927C 38 A0 00 00 */ li r5, 0
+/* 8031D620 00319280 48 03 05 2D */ bl gt2AddressToString
+/* 8031D624 00319284 3C 80 80 44 */ lis r4, lbl_80446BE0@ha
+/* 8031D628 00319288 7C 65 1B 78 */ mr r5, r3
+/* 8031D62C 0031928C 38 84 6B E0 */ addi r4, r4, lbl_80446BE0@l
+/* 8031D630 00319290 38 60 00 01 */ li r3, 1
+/* 8031D634 00319294 4C C6 31 82 */ crclr 6
+/* 8031D638 00319298 4B FF F4 FD */ bl DWC_Printf
+/* 8031D63C 0031929C 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D640 003192A0 3B 40 00 01 */ li r26, 1
+/* 8031D644 003192A4 93 43 00 00 */ stw r26, 0(r3)
+/* 8031D648 003192A8 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D64C 003192AC 80 63 01 70 */ lwz r3, 0x170(r3)
+/* 8031D650 003192B0 48 00 0B 99 */ bl cn_init
+/* 8031D654 003192B4 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D658 003192B8 3C C0 80 32 */ lis r6, ss_playerKey@ha
+/* 8031D65C 003192BC 3C A0 80 32 */ lis r5, ss_teamKey@ha
+/* 8031D660 003192C0 3C 60 80 32 */ lis r3, ss_keyList@ha
+/* 8031D664 003192C4 38 E4 00 08 */ addi r7, r4, 8
+/* 8031D668 003192C8 3C 80 80 32 */ lis r4, ss_count@ha
+/* 8031D66C 003192CC 90 ED B0 40 */ stw r7, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D670 003192D0 3D 20 80 32 */ lis r9, ss_addError@ha
+/* 8031D674 003192D4 3D 40 80 32 */ lis r10, ss_serverKey@ha
+/* 8031D678 003192D8 38 C6 E1 D0 */ addi r6, r6, ss_playerKey@l
+/* 8031D67C 003192DC 93 47 00 04 */ stw r26, 4(r7)
+/* 8031D680 003192E0 38 A5 E1 D4 */ addi r5, r5, ss_teamKey@l
+/* 8031D684 003192E4 83 62 A4 B4 */ lwz r27, lbl_80642AB4-_SDA2_BASE_(r2)
+/* 8031D688 003192E8 38 63 E1 D8 */ addi r3, r3, ss_keyList@l
+/* 8031D68C 003192EC 90 C1 00 08 */ stw r6, 8(r1)
+/* 8031D690 003192F0 38 84 E1 DC */ addi r4, r4, ss_count@l
+/* 8031D694 003192F4 83 82 A4 B0 */ lwz r28, lbl_80642AB0-_SDA2_BASE_(r2)
+/* 8031D698 003192F8 39 29 E1 E4 */ addi r9, r9, ss_addError@l
+/* 8031D69C 003192FC 90 A1 00 0C */ stw r5, 0xc(r1)
+/* 8031D6A0 00319300 3B 20 00 00 */ li r25, 0
+/* 8031D6A4 00319304 7F 86 E3 78 */ mr r6, r28
+/* 8031D6A8 00319308 7F 67 DB 78 */ mr r7, r27
+/* 8031D6AC 0031930C 90 61 00 10 */ stw r3, 0x10(r1)
+/* 8031D6B0 00319310 39 4A E1 CC */ addi r10, r10, ss_serverKey@l
+/* 8031D6B4 00319314 38 60 00 00 */ li r3, 0
+/* 8031D6B8 00319318 38 A0 2B 67 */ li r5, 0x2b67
+/* 8031D6BC 0031931C 90 81 00 14 */ stw r4, 0x14(r1)
+/* 8031D6C0 00319320 38 80 00 00 */ li r4, 0
+/* 8031D6C4 00319324 39 00 00 00 */ li r8, 0
+/* 8031D6C8 00319328 91 21 00 18 */ stw r9, 0x18(r1)
+/* 8031D6CC 0031932C 39 20 00 00 */ li r9, 0
+/* 8031D6D0 00319330 93 21 00 1C */ stw r25, 0x1c(r1)
+/* 8031D6D4 00319334 48 03 0A F9 */ bl func_8034E1CC
+/* 8031D6D8 00319338 3D 40 80 32 */ lis r10, ss_serverBrowsing@ha
+/* 8031D6DC 0031933C 93 21 00 08 */ stw r25, 8(r1)
+/* 8031D6E0 00319340 7F 83 E3 78 */ mr r3, r28
+/* 8031D6E4 00319344 7F 84 E3 78 */ mr r4, r28
+/* 8031D6E8 00319348 7F 65 DB 78 */ mr r5, r27
+/* 8031D6EC 0031934C 39 4A E1 60 */ addi r10, r10, ss_serverBrowsing@l
+/* 8031D6F0 00319350 38 C0 00 00 */ li r6, 0
+/* 8031D6F4 00319354 38 E0 00 0A */ li r7, 0xa
+/* 8031D6F8 00319358 39 00 00 01 */ li r8, 1
+/* 8031D6FC 0031935C 39 20 00 01 */ li r9, 1
+/* 8031D700 00319360 48 04 0C B9 */ bl ServerBrowserNewA
+/* 8031D704 00319364 80 8D B0 40 */ lwz r4, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D708 00319368 90 64 00 00 */ stw r3, 0(r4)
+/* 8031D70C 0031936C 80 6D B0 40 */ lwz r3, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D710 00319370 93 43 00 08 */ stw r26, 8(r3)
+/* 8031D714 00319374 48 00 08 D0 */ b lbl_8031DFE4
+lbl_8031D718:
+/* 8031D718 00319378 4B F5 50 A1 */ bl OSGetTime
+/* 8031D71C 0031937C 3C A0 80 00 */ lis r5, 0x800000F8@ha
+/* 8031D720 00319380 81 0D B0 38 */ lwz r8, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D724 00319384 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
+/* 8031D728 00319388 3C A0 10 62 */ lis r5, 0x10624DD3@ha
+/* 8031D72C 0031938C 38 C5 4D D3 */ addi r6, r5, 0x10624DD3@l
+/* 8031D730 00319390 80 E8 02 0C */ lwz r7, 0x20c(r8)
+/* 8031D734 00319394 54 05 F0 BE */ srwi r5, r0, 2
+/* 8031D738 00319398 38 00 27 10 */ li r0, 0x2710
+/* 8031D73C 0031939C 7C A6 28 16 */ mulhwu r5, r6, r5
+/* 8031D740 003193A0 7C E7 20 10 */ subfc r7, r7, r4
+/* 8031D744 003193A4 80 C8 02 08 */ lwz r6, 0x208(r8)
+/* 8031D748 003193A8 7C C6 19 10 */ subfe r6, r6, r3
+/* 8031D74C 003193AC 54 A4 D1 BE */ srwi r4, r5, 6
+/* 8031D750 003193B0 7C 64 00 16 */ mulhwu r3, r4, r0
+/* 8031D754 003193B4 1C 84 27 10 */ mulli r4, r4, 0x2710
+/* 8031D758 003193B8 7C 07 20 10 */ subfc r0, r7, r4
+/* 8031D75C 003193BC 7C 06 19 10 */ subfe r0, r6, r3
+/* 8031D760 003193C0 7C 04 21 10 */ subfe r0, r4, r4
+/* 8031D764 003193C4 7C 00 00 D1 */ neg. r0, r0
+/* 8031D768 003193C8 41 82 08 7C */ beq lbl_8031DFE4
+/* 8031D76C 003193CC 81 88 01 FC */ lwz r12, 0x1fc(r8)
+/* 8031D770 003193D0 38 60 00 06 */ li r3, 6
+/* 8031D774 003193D4 7D 89 03 A6 */ mtctr r12
+/* 8031D778 003193D8 4E 80 04 21 */ bctrl
+/* 8031D77C 003193DC 38 60 00 00 */ li r3, 0
+/* 8031D780 003193E0 48 03 0E B5 */ bl qr2_shutdown
+/* 8031D784 003193E4 80 6D B0 40 */ lwz r3, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D788 003193E8 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031D78C 003193EC 48 04 0D 11 */ bl ServerBrowserFree
+/* 8031D790 003193F0 3B 20 00 00 */ li r25, 0
+/* 8031D794 003193F4 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031D798 003193F8 93 2D B0 40 */ stw r25, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D79C 003193FC 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031D7A0 00319400 48 02 C5 B1 */ bl func_80349D50
+/* 8031D7A4 00319404 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031D7A8 00319408 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031D7AC 0031940C 48 02 C2 4D */ bl gt2CloseSocket
+/* 8031D7B0 00319410 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D7B4 00319414 93 2D B0 3C */ stw r25, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031D7B8 00319418 2C 04 00 00 */ cmpwi r4, 0
+/* 8031D7BC 0031941C 41 82 08 28 */ beq lbl_8031DFE4
+/* 8031D7C0 00319420 38 60 00 05 */ li r3, 5
+/* 8031D7C4 00319424 38 A0 00 00 */ li r5, 0
+/* 8031D7C8 00319428 4B FF F1 C1 */ bl DWC_Free
+/* 8031D7CC 0031942C 93 2D B0 38 */ stw r25, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D7D0 00319430 48 00 08 14 */ b lbl_8031DFE4
+lbl_8031D7D4:
+/* 8031D7D4 00319434 80 6D B0 40 */ lwz r3, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D7D8 00319438 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031D7DC 0031943C 48 04 10 DD */ bl ServerBrowserCount
+/* 8031D7E0 00319440 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031D7E4 00319444 83 64 01 78 */ lwz r27, 0x178(r4)
+/* 8031D7E8 00319448 7C 03 D8 00 */ cmpw r3, r27
+/* 8031D7EC 0031944C 41 80 07 F8 */ blt lbl_8031DFE4
+/* 8031D7F0 00319450 80 6D B0 40 */ lwz r3, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D7F4 00319454 38 00 00 00 */ li r0, 0
+/* 8031D7F8 00319458 3B 20 00 00 */ li r25, 0
+/* 8031D7FC 0031945C 3B 40 00 00 */ li r26, 0
+/* 8031D800 00319460 90 03 00 08 */ stw r0, 8(r3)
+/* 8031D804 00319464 48 00 00 2C */ b lbl_8031D830
+lbl_8031D808:
+/* 8031D808 00319468 80 6D B0 40 */ lwz r3, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D80C 0031946C 7F 24 CB 78 */ mr r4, r25
+/* 8031D810 00319470 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031D814 00319474 48 04 10 9D */ bl ServerBrowserGetServer
+/* 8031D818 00319478 48 04 00 0D */ bl SBServerGetPublicInetAddress
+/* 8031D81C 0031947C 80 0D B0 40 */ lwz r0, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D820 00319480 3B 39 00 01 */ addi r25, r25, 1
+/* 8031D824 00319484 7C 80 D2 14 */ add r4, r0, r26
+/* 8031D828 00319488 3B 5A 00 04 */ addi r26, r26, 4
+/* 8031D82C 0031948C 90 64 00 0C */ stw r3, 0xc(r4)
+lbl_8031D830:
+/* 8031D830 00319490 7C 19 D8 00 */ cmpw r25, r27
+/* 8031D834 00319494 41 80 FF D4 */ blt lbl_8031D808
+/* 8031D838 00319498 80 6D B0 40 */ lwz r3, lbl_80640300-_SDA_BASE_(r13)
+/* 8031D83C 0031949C 34 BB FF FF */ addic. r5, r27, -1
+/* 8031D840 003194A0 3B 83 00 0C */ addi r28, r3, 0xc
+/* 8031D844 003194A4 40 81 04 58 */ ble lbl_8031DC9C
+/* 8031D848 003194A8 54 A0 0F FE */ srwi r0, r5, 0x1f
+/* 8031D84C 003194AC 80 DC 00 00 */ lwz r6, 0(r28)
+/* 8031D850 003194B0 7C 00 2A 14 */ add r0, r0, r5
+/* 8031D854 003194B4 38 FC 00 04 */ addi r7, r28, 4
+/* 8031D858 003194B8 54 04 08 3A */ rlwinm r4, r0, 1, 0, 0x1d
+/* 8031D85C 003194BC 3B E0 00 00 */ li r31, 0
+/* 8031D860 003194C0 7C 1C 20 2E */ lwzx r0, r28, r4
+/* 8031D864 003194C4 38 60 00 00 */ li r3, 0
+/* 8031D868 003194C8 90 1C 00 00 */ stw r0, 0(r28)
+/* 8031D86C 003194CC 7C DC 21 2E */ stwx r6, r28, r4
+/* 8031D870 003194D0 7C A9 03 A6 */ mtctr r5
+/* 8031D874 003194D4 2C 05 00 01 */ cmpwi r5, 1
+/* 8031D878 003194D8 41 80 00 30 */ blt lbl_8031D8A8
+lbl_8031D87C:
+/* 8031D87C 003194DC 80 87 00 00 */ lwz r4, 0(r7)
+/* 8031D880 003194E0 80 1C 00 00 */ lwz r0, 0(r28)
+/* 8031D884 003194E4 7C 04 00 40 */ cmplw r4, r0
+/* 8031D888 003194E8 40 80 00 18 */ bge lbl_8031D8A0
+/* 8031D88C 003194EC 38 63 00 04 */ addi r3, r3, 4
+/* 8031D890 003194F0 3B FF 00 01 */ addi r31, r31, 1
+/* 8031D894 003194F4 7C 1C 18 2E */ lwzx r0, r28, r3
+/* 8031D898 003194F8 90 07 00 00 */ stw r0, 0(r7)
+/* 8031D89C 003194FC 7C 9C 19 2E */ stwx r4, r28, r3
+lbl_8031D8A0:
+/* 8031D8A0 00319500 38 E7 00 04 */ addi r7, r7, 4
+/* 8031D8A4 00319504 42 00 FF D8 */ bdnz lbl_8031D87C
+lbl_8031D8A8:
+/* 8031D8A8 00319508 57 F9 10 3A */ slwi r25, r31, 2
+/* 8031D8AC 0031950C 80 7C 00 00 */ lwz r3, 0(r28)
+/* 8031D8B0 00319510 7C 1C C8 2E */ lwzx r0, r28, r25
+/* 8031D8B4 00319514 34 BF FF FF */ addic. r5, r31, -1
+/* 8031D8B8 00319518 90 1C 00 00 */ stw r0, 0(r28)
+/* 8031D8BC 0031951C 7C 7C C9 2E */ stwx r3, r28, r25
+/* 8031D8C0 00319520 40 81 01 D0 */ ble lbl_8031DA90
+/* 8031D8C4 00319524 54 A0 0F FE */ srwi r0, r5, 0x1f
+/* 8031D8C8 00319528 80 DC 00 00 */ lwz r6, 0(r28)
+/* 8031D8CC 0031952C 7C 00 2A 14 */ add r0, r0, r5
+/* 8031D8D0 00319530 38 FC 00 04 */ addi r7, r28, 4
+/* 8031D8D4 00319534 54 04 08 3A */ rlwinm r4, r0, 1, 0, 0x1d
+/* 8031D8D8 00319538 3B C0 00 00 */ li r30, 0
+/* 8031D8DC 0031953C 7C 1C 20 2E */ lwzx r0, r28, r4
+/* 8031D8E0 00319540 38 60 00 00 */ li r3, 0
+/* 8031D8E4 00319544 90 1C 00 00 */ stw r0, 0(r28)
+/* 8031D8E8 00319548 7C DC 21 2E */ stwx r6, r28, r4
+/* 8031D8EC 0031954C 7C A9 03 A6 */ mtctr r5
+/* 8031D8F0 00319550 2C 05 00 01 */ cmpwi r5, 1
+/* 8031D8F4 00319554 41 80 00 30 */ blt lbl_8031D924
+lbl_8031D8F8:
+/* 8031D8F8 00319558 80 87 00 00 */ lwz r4, 0(r7)
+/* 8031D8FC 0031955C 80 1C 00 00 */ lwz r0, 0(r28)
+/* 8031D900 00319560 7C 04 00 40 */ cmplw r4, r0
+/* 8031D904 00319564 40 80 00 18 */ bge lbl_8031D91C
+/* 8031D908 00319568 38 63 00 04 */ addi r3, r3, 4
+/* 8031D90C 0031956C 3B DE 00 01 */ addi r30, r30, 1
+/* 8031D910 00319570 7C 1C 18 2E */ lwzx r0, r28, r3
+/* 8031D914 00319574 90 07 00 00 */ stw r0, 0(r7)
+/* 8031D918 00319578 7C 9C 19 2E */ stwx r4, r28, r3
+lbl_8031D91C:
+/* 8031D91C 0031957C 38 E7 00 04 */ addi r7, r7, 4
+/* 8031D920 00319580 42 00 FF D8 */ bdnz lbl_8031D8F8
+lbl_8031D924:
+/* 8031D924 00319584 57 DA 10 3A */ slwi r26, r30, 2
+/* 8031D928 00319588 80 7C 00 00 */ lwz r3, 0(r28)
+/* 8031D92C 0031958C 7C 1C D0 2E */ lwzx r0, r28, r26
+/* 8031D930 00319590 34 BE FF FF */ addic. r5, r30, -1
+/* 8031D934 00319594 90 1C 00 00 */ stw r0, 0(r28)
+/* 8031D938 00319598 7C 7C D1 2E */ stwx r3, r28, r26
+/* 8031D93C 0031959C 40 81 00 98 */ ble lbl_8031D9D4
+/* 8031D940 003195A0 54 A0 0F FE */ srwi r0, r5, 0x1f
+/* 8031D944 003195A4 80 DC 00 00 */ lwz r6, 0(r28)
+/* 8031D948 003195A8 7C 00 2A 14 */ add r0, r0, r5
+/* 8031D94C 003195AC 38 FC 00 04 */ addi r7, r28, 4
+/* 8031D950 003195B0 54 04 08 3A */ rlwinm r4, r0, 1, 0, 0x1d
+/* 8031D954 003195B4 3B A0 00 00 */ li r29, 0
+/* 8031D958 003195B8 7C 1C 20 2E */ lwzx r0, r28, r4
+/* 8031D95C 003195BC 38 60 00 00 */ li r3, 0
+/* 8031D960 003195C0 90 1C 00 00 */ stw r0, 0(r28)
+/* 8031D964 003195C4 7C DC 21 2E */ stwx r6, r28, r4
+/* 8031D968 003195C8 7C A9 03 A6 */ mtctr r5
+/* 8031D96C 003195CC 2C 05 00 01 */ cmpwi r5, 1
+/* 8031D970 003195D0 41 80 00 30 */ blt lbl_8031D9A0
+lbl_8031D974:
+/* 8031D974 003195D4 80 87 00 00 */ lwz r4, 0(r7)
+/* 8031D978 003195D8 80 1C 00 00 */ lwz r0, 0(r28)
+/* 8031D97C 003195DC 7C 04 00 40 */ cmplw r4, r0
+/* 8031D980 003195E0 40 80 00 18 */ bge lbl_8031D998
+/* 8031D984 003195E4 38 63 00 04 */ addi r3, r3, 4
+/* 8031D988 003195E8 3B BD 00 01 */ addi r29, r29, 1
+/* 8031D98C 003195EC 7C 1C 18 2E */ lwzx r0, r28, r3
+/* 8031D990 003195F0 90 07 00 00 */ stw r0, 0(r7)
+/* 8031D994 003195F4 7C 9C 19 2E */ stwx r4, r28, r3
+lbl_8031D998:
+/* 8031D998 003195F8 38 E7 00 04 */ addi r7, r7, 4
+/* 8031D99C 003195FC 42 00 FF D8 */ bdnz lbl_8031D974
+lbl_8031D9A0:
+/* 8031D9A0 00319600 57 A6 10 3A */ slwi r6, r29, 2
+/* 8031D9A4 00319604 80 FC 00 00 */ lwz r7, 0(r28)
+/* 8031D9A8 00319608 7C 1C 30 2E */ lwzx r0, r28, r6
+/* 8031D9AC 0031960C 7F 83 E3 78 */ mr r3, r28
+/* 8031D9B0 00319610 38 BD FF FF */ addi r5, r29, -1
+/* 8031D9B4 00319614 38 80 00 00 */ li r4, 0
+/* 8031D9B8 00319618 90 1C 00 00 */ stw r0, 0(r28)
+/* 8031D9BC 0031961C 7C FC 31 2E */ stwx r7, r28, r6
+/* 8031D9C0 00319620 48 00 0F 51 */ bl ss_qsort
+/* 8031D9C4 00319624 7F 83 E3 78 */ mr r3, r28
+/* 8031D9C8 00319628 38 9D 00 01 */ addi r4, r29, 1
+/* 8031D9CC 0031962C 38 BE FF FF */ addi r5, r30, -1
+/* 8031D9D0 00319630 48 00 0F 41 */ bl ss_qsort
+lbl_8031D9D4:
+/* 8031D9D4 00319634 3B BE 00 01 */ addi r29, r30, 1
+/* 8031D9D8 00319638 38 FF FF FF */ addi r7, r31, -1
+/* 8031D9DC 0031963C 7C 1D 38 00 */ cmpw r29, r7
+/* 8031D9E0 00319640 40 80 00 B0 */ bge lbl_8031DA90
+/* 8031D9E4 00319644 7C 7F F2 14 */ add r3, r31, r30
+/* 8031D9E8 00319648 7C DC D2 14 */ add r6, r28, r26
+/* 8031D9EC 0031964C 54 60 0F FE */ srwi r0, r3, 0x1f
+/* 8031D9F0 00319650 81 26 00 04 */ lwz r9, 4(r6)
+/* 8031D9F4 00319654 7C 60 1A 14 */ add r3, r0, r3
+/* 8031D9F8 00319658 39 1E 00 02 */ addi r8, r30, 2
+/* 8031D9FC 0031965C 54 65 08 3A */ rlwinm r5, r3, 1, 0, 0x1d
+/* 8031DA00 00319660 38 07 00 01 */ addi r0, r7, 1
+/* 8031DA04 00319664 7C 9C 28 2E */ lwzx r4, r28, r5
+/* 8031DA08 00319668 55 03 10 3A */ slwi r3, r8, 2
+/* 8031DA0C 0031966C 7D 5C 1A 14 */ add r10, r28, r3
+/* 8031DA10 00319670 7C 08 00 50 */ subf r0, r8, r0
+/* 8031DA14 00319674 90 86 00 04 */ stw r4, 4(r6)
+/* 8031DA18 00319678 57 A3 10 3A */ slwi r3, r29, 2
+/* 8031DA1C 0031967C 7D 3C 29 2E */ stwx r9, r28, r5
+/* 8031DA20 00319680 7C 09 03 A6 */ mtctr r0
+/* 8031DA24 00319684 7C 08 38 00 */ cmpw r8, r7
+/* 8031DA28 00319688 41 81 00 30 */ bgt lbl_8031DA58
+lbl_8031DA2C:
+/* 8031DA2C 0031968C 80 8A 00 00 */ lwz r4, 0(r10)
+/* 8031DA30 00319690 80 06 00 04 */ lwz r0, 4(r6)
+/* 8031DA34 00319694 7C 04 00 40 */ cmplw r4, r0
+/* 8031DA38 00319698 40 80 00 18 */ bge lbl_8031DA50
+/* 8031DA3C 0031969C 38 63 00 04 */ addi r3, r3, 4
+/* 8031DA40 003196A0 3B BD 00 01 */ addi r29, r29, 1
+/* 8031DA44 003196A4 7C 1C 18 2E */ lwzx r0, r28, r3
+/* 8031DA48 003196A8 90 0A 00 00 */ stw r0, 0(r10)
+/* 8031DA4C 003196AC 7C 9C 19 2E */ stwx r4, r28, r3
+lbl_8031DA50:
+/* 8031DA50 003196B0 39 4A 00 04 */ addi r10, r10, 4
+/* 8031DA54 003196B4 42 00 FF D8 */ bdnz lbl_8031DA2C
+lbl_8031DA58:
+/* 8031DA58 003196B8 7C FC D2 14 */ add r7, r28, r26
+/* 8031DA5C 003196BC 57 A6 10 3A */ slwi r6, r29, 2
+/* 8031DA60 003196C0 81 07 00 04 */ lwz r8, 4(r7)
+/* 8031DA64 003196C4 7F 83 E3 78 */ mr r3, r28
+/* 8031DA68 003196C8 7C 1C 30 2E */ lwzx r0, r28, r6
+/* 8031DA6C 003196CC 38 9E 00 01 */ addi r4, r30, 1
+/* 8031DA70 003196D0 38 BD FF FF */ addi r5, r29, -1
+/* 8031DA74 003196D4 90 07 00 04 */ stw r0, 4(r7)
+/* 8031DA78 003196D8 7D 1C 31 2E */ stwx r8, r28, r6
+/* 8031DA7C 003196DC 48 00 0E 95 */ bl ss_qsort
+/* 8031DA80 003196E0 7F 83 E3 78 */ mr r3, r28
+/* 8031DA84 003196E4 38 9D 00 01 */ addi r4, r29, 1
+/* 8031DA88 003196E8 38 BF FF FF */ addi r5, r31, -1
+/* 8031DA8C 003196EC 48 00 0E 85 */ bl ss_qsort
+lbl_8031DA90:
+/* 8031DA90 003196F0 3B DF 00 01 */ addi r30, r31, 1
+/* 8031DA94 003196F4 38 FB FF FF */ addi r7, r27, -1
+/* 8031DA98 003196F8 7C 1E 38 00 */ cmpw r30, r7
+/* 8031DA9C 003196FC 40 80 02 00 */ bge lbl_8031DC9C
+/* 8031DAA0 00319700 7C 7B FA 14 */ add r3, r27, r31
+/* 8031DAA4 00319704 7C DC CA 14 */ add r6, r28, r25
+/* 8031DAA8 00319708 54 60 0F FE */ srwi r0, r3, 0x1f
+/* 8031DAAC 0031970C 81 26 00 04 */ lwz r9, 4(r6)
+/* 8031DAB0 00319710 7C 60 1A 14 */ add r3, r0, r3
+/* 8031DAB4 00319714 39 1F 00 02 */ addi r8, r31, 2
+/* 8031DAB8 00319718 54 65 08 3A */ rlwinm r5, r3, 1, 0, 0x1d
+/* 8031DABC 0031971C 38 07 00 01 */ addi r0, r7, 1
+/* 8031DAC0 00319720 7C 9C 28 2E */ lwzx r4, r28, r5
+/* 8031DAC4 00319724 55 03 10 3A */ slwi r3, r8, 2
+/* 8031DAC8 00319728 7D 5C 1A 14 */ add r10, r28, r3
+/* 8031DACC 0031972C 7C 08 00 50 */ subf r0, r8, r0
+/* 8031DAD0 00319730 90 86 00 04 */ stw r4, 4(r6)
+/* 8031DAD4 00319734 57 C3 10 3A */ slwi r3, r30, 2
+/* 8031DAD8 00319738 7D 3C 29 2E */ stwx r9, r28, r5
+/* 8031DADC 0031973C 7C 09 03 A6 */ mtctr r0
+/* 8031DAE0 00319740 7C 08 38 00 */ cmpw r8, r7
+/* 8031DAE4 00319744 41 81 00 30 */ bgt lbl_8031DB14
+lbl_8031DAE8:
+/* 8031DAE8 00319748 80 8A 00 00 */ lwz r4, 0(r10)
+/* 8031DAEC 0031974C 80 06 00 04 */ lwz r0, 4(r6)
+/* 8031DAF0 00319750 7C 04 00 40 */ cmplw r4, r0
+/* 8031DAF4 00319754 40 80 00 18 */ bge lbl_8031DB0C
+/* 8031DAF8 00319758 38 63 00 04 */ addi r3, r3, 4
+/* 8031DAFC 0031975C 3B DE 00 01 */ addi r30, r30, 1
+/* 8031DB00 00319760 7C 1C 18 2E */ lwzx r0, r28, r3
+/* 8031DB04 00319764 90 0A 00 00 */ stw r0, 0(r10)
+/* 8031DB08 00319768 7C 9C 19 2E */ stwx r4, r28, r3
+lbl_8031DB0C:
+/* 8031DB0C 0031976C 39 4A 00 04 */ addi r10, r10, 4
+/* 8031DB10 00319770 42 00 FF D8 */ bdnz lbl_8031DAE8
+lbl_8031DB14:
+/* 8031DB14 00319774 7C FC CA 14 */ add r7, r28, r25
+/* 8031DB18 00319778 57 D9 10 3A */ slwi r25, r30, 2
+/* 8031DB1C 0031977C 80 67 00 04 */ lwz r3, 4(r7)
+/* 8031DB20 00319780 3B BF 00 01 */ addi r29, r31, 1
+/* 8031DB24 00319784 7C 1C C8 2E */ lwzx r0, r28, r25
+/* 8031DB28 00319788 38 DE FF FF */ addi r6, r30, -1
+/* 8031DB2C 0031978C 7C 1D 30 00 */ cmpw r29, r6
+/* 8031DB30 00319790 90 07 00 04 */ stw r0, 4(r7)
+/* 8031DB34 00319794 7C 7C C9 2E */ stwx r3, r28, r25
+/* 8031DB38 00319798 40 80 00 A8 */ bge lbl_8031DBE0
+/* 8031DB3C 0031979C 7C 9E FA 14 */ add r4, r30, r31
+/* 8031DB40 003197A0 81 27 00 04 */ lwz r9, 4(r7)
+/* 8031DB44 003197A4 54 83 0F FE */ srwi r3, r4, 0x1f
+/* 8031DB48 003197A8 39 1F 00 02 */ addi r8, r31, 2
+/* 8031DB4C 003197AC 7C 83 22 14 */ add r4, r3, r4
+/* 8031DB50 003197B0 38 06 00 01 */ addi r0, r6, 1
+/* 8031DB54 003197B4 54 85 08 3A */ rlwinm r5, r4, 1, 0, 0x1d
+/* 8031DB58 003197B8 55 03 10 3A */ slwi r3, r8, 2
+/* 8031DB5C 003197BC 7C 9C 28 2E */ lwzx r4, r28, r5
+/* 8031DB60 003197C0 7C 08 00 50 */ subf r0, r8, r0
+/* 8031DB64 003197C4 90 87 00 04 */ stw r4, 4(r7)
+/* 8031DB68 003197C8 7C 9C 1A 14 */ add r4, r28, r3
+/* 8031DB6C 003197CC 57 A3 10 3A */ slwi r3, r29, 2
+/* 8031DB70 003197D0 7D 3C 29 2E */ stwx r9, r28, r5
+/* 8031DB74 003197D4 7C 09 03 A6 */ mtctr r0
+/* 8031DB78 003197D8 7C 08 30 00 */ cmpw r8, r6
+/* 8031DB7C 003197DC 41 81 00 30 */ bgt lbl_8031DBAC
+lbl_8031DB80:
+/* 8031DB80 003197E0 80 A4 00 00 */ lwz r5, 0(r4)
+/* 8031DB84 003197E4 80 07 00 04 */ lwz r0, 4(r7)
+/* 8031DB88 003197E8 7C 05 00 40 */ cmplw r5, r0
+/* 8031DB8C 003197EC 40 80 00 18 */ bge lbl_8031DBA4
+/* 8031DB90 003197F0 38 63 00 04 */ addi r3, r3, 4
+/* 8031DB94 003197F4 3B BD 00 01 */ addi r29, r29, 1
+/* 8031DB98 003197F8 7C 1C 18 2E */ lwzx r0, r28, r3
+/* 8031DB9C 003197FC 90 04 00 00 */ stw r0, 0(r4)
+/* 8031DBA0 00319800 7C BC 19 2E */ stwx r5, r28, r3
+lbl_8031DBA4:
+/* 8031DBA4 00319804 38 84 00 04 */ addi r4, r4, 4
+/* 8031DBA8 00319808 42 00 FF D8 */ bdnz lbl_8031DB80
+lbl_8031DBAC:
+/* 8031DBAC 0031980C 57 A6 10 3A */ slwi r6, r29, 2
+/* 8031DBB0 00319810 81 07 00 04 */ lwz r8, 4(r7)
+/* 8031DBB4 00319814 7C 1C 30 2E */ lwzx r0, r28, r6
+/* 8031DBB8 00319818 7F 83 E3 78 */ mr r3, r28
+/* 8031DBBC 0031981C 38 9F 00 01 */ addi r4, r31, 1
+/* 8031DBC0 00319820 38 BD FF FF */ addi r5, r29, -1
+/* 8031DBC4 00319824 90 07 00 04 */ stw r0, 4(r7)
+/* 8031DBC8 00319828 7D 1C 31 2E */ stwx r8, r28, r6
+/* 8031DBCC 0031982C 48 00 0D 45 */ bl ss_qsort
+/* 8031DBD0 00319830 7F 83 E3 78 */ mr r3, r28
+/* 8031DBD4 00319834 38 9D 00 01 */ addi r4, r29, 1
+/* 8031DBD8 00319838 38 BE FF FF */ addi r5, r30, -1
+/* 8031DBDC 0031983C 48 00 0D 35 */ bl ss_qsort
+lbl_8031DBE0:
+/* 8031DBE0 00319840 3B BE 00 01 */ addi r29, r30, 1
+/* 8031DBE4 00319844 38 FB FF FF */ addi r7, r27, -1
+/* 8031DBE8 00319848 7C 1D 38 00 */ cmpw r29, r7
+/* 8031DBEC 0031984C 40 80 00 B0 */ bge lbl_8031DC9C
+/* 8031DBF0 00319850 7C 7B F2 14 */ add r3, r27, r30
+/* 8031DBF4 00319854 7C DC CA 14 */ add r6, r28, r25
+/* 8031DBF8 00319858 54 60 0F FE */ srwi r0, r3, 0x1f
+/* 8031DBFC 0031985C 81 26 00 04 */ lwz r9, 4(r6)
+/* 8031DC00 00319860 7C 60 1A 14 */ add r3, r0, r3
+/* 8031DC04 00319864 39 1E 00 02 */ addi r8, r30, 2
+/* 8031DC08 00319868 54 65 08 3A */ rlwinm r5, r3, 1, 0, 0x1d
+/* 8031DC0C 0031986C 38 07 00 01 */ addi r0, r7, 1
+/* 8031DC10 00319870 7C 9C 28 2E */ lwzx r4, r28, r5
+/* 8031DC14 00319874 55 03 10 3A */ slwi r3, r8, 2
+/* 8031DC18 00319878 7D 5C 1A 14 */ add r10, r28, r3
+/* 8031DC1C 0031987C 7C 08 00 50 */ subf r0, r8, r0
+/* 8031DC20 00319880 90 86 00 04 */ stw r4, 4(r6)
+/* 8031DC24 00319884 57 A3 10 3A */ slwi r3, r29, 2
+/* 8031DC28 00319888 7D 3C 29 2E */ stwx r9, r28, r5
+/* 8031DC2C 0031988C 7C 09 03 A6 */ mtctr r0
+/* 8031DC30 00319890 7C 08 38 00 */ cmpw r8, r7
+/* 8031DC34 00319894 41 81 00 30 */ bgt lbl_8031DC64
+lbl_8031DC38:
+/* 8031DC38 00319898 80 8A 00 00 */ lwz r4, 0(r10)
+/* 8031DC3C 0031989C 80 06 00 04 */ lwz r0, 4(r6)
+/* 8031DC40 003198A0 7C 04 00 40 */ cmplw r4, r0
+/* 8031DC44 003198A4 40 80 00 18 */ bge lbl_8031DC5C
+/* 8031DC48 003198A8 38 63 00 04 */ addi r3, r3, 4
+/* 8031DC4C 003198AC 3B BD 00 01 */ addi r29, r29, 1
+/* 8031DC50 003198B0 7C 1C 18 2E */ lwzx r0, r28, r3
+/* 8031DC54 003198B4 90 0A 00 00 */ stw r0, 0(r10)
+/* 8031DC58 003198B8 7C 9C 19 2E */ stwx r4, r28, r3
+lbl_8031DC5C:
+/* 8031DC5C 003198BC 39 4A 00 04 */ addi r10, r10, 4
+/* 8031DC60 003198C0 42 00 FF D8 */ bdnz lbl_8031DC38
+lbl_8031DC64:
+/* 8031DC64 003198C4 7C FC CA 14 */ add r7, r28, r25
+/* 8031DC68 003198C8 57 A6 10 3A */ slwi r6, r29, 2
+/* 8031DC6C 003198CC 81 07 00 04 */ lwz r8, 4(r7)
+/* 8031DC70 003198D0 7F 83 E3 78 */ mr r3, r28
+/* 8031DC74 003198D4 7C 1C 30 2E */ lwzx r0, r28, r6
+/* 8031DC78 003198D8 38 9E 00 01 */ addi r4, r30, 1
+/* 8031DC7C 003198DC 38 BD FF FF */ addi r5, r29, -1
+/* 8031DC80 003198E0 90 07 00 04 */ stw r0, 4(r7)
+/* 8031DC84 003198E4 7D 1C 31 2E */ stwx r8, r28, r6
+/* 8031DC88 003198E8 48 00 0C 89 */ bl ss_qsort
+/* 8031DC8C 003198EC 7F 83 E3 78 */ mr r3, r28
+/* 8031DC90 003198F0 38 9D 00 01 */ addi r4, r29, 1
+/* 8031DC94 003198F4 38 BB FF FF */ addi r5, r27, -1
+/* 8031DC98 003198F8 48 00 0C 79 */ bl ss_qsort
+lbl_8031DC9C:
+/* 8031DC9C 003198FC 80 6D B0 40 */ lwz r3, lbl_80640300-_SDA_BASE_(r13)
+/* 8031DCA0 00319900 80 AD B0 38 */ lwz r5, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031DCA4 00319904 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8031DCA8 00319908 80 05 01 70 */ lwz r0, 0x170(r5)
+/* 8031DCAC 0031990C 7C 03 00 40 */ cmplw r3, r0
+/* 8031DCB0 00319910 41 82 03 34 */ beq lbl_8031DFE4
+/* 8031DCB4 00319914 38 00 00 05 */ li r0, 5
+/* 8031DCB8 00319918 38 80 00 00 */ li r4, 0
+/* 8031DCBC 0031991C 90 05 00 00 */ stw r0, 0(r5)
+/* 8031DCC0 00319920 83 4D B0 3C */ lwz r26, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031DCC4 00319924 7F 45 D3 78 */ mr r5, r26
+/* 8031DCC8 00319928 48 00 00 0C */ b lbl_8031DCD4
+lbl_8031DCCC:
+/* 8031DCCC 0031992C 38 A5 00 08 */ addi r5, r5, 8
+/* 8031DCD0 00319930 38 84 00 01 */ addi r4, r4, 1
+lbl_8031DCD4:
+/* 8031DCD4 00319934 80 05 00 14 */ lwz r0, 0x14(r5)
+/* 8031DCD8 00319938 2C 00 00 00 */ cmpwi r0, 0
+/* 8031DCDC 0031993C 41 82 00 0C */ beq lbl_8031DCE8
+/* 8031DCE0 00319940 2C 04 00 10 */ cmpwi r4, 0x10
+/* 8031DCE4 00319944 41 80 FF E8 */ blt lbl_8031DCCC
+lbl_8031DCE8:
+/* 8031DCE8 00319948 2C 04 00 10 */ cmpwi r4, 0x10
+/* 8031DCEC 0031994C 40 80 00 2C */ bge lbl_8031DD18
+/* 8031DCF0 00319950 90 9A 00 94 */ stw r4, 0x94(r26)
+/* 8031DCF4 00319954 54 86 18 38 */ slwi r6, r4, 3
+/* 8031DCF8 00319958 38 A0 00 00 */ li r5, 0
+/* 8031DCFC 0031995C 80 0D B0 3C */ lwz r0, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031DD00 00319960 7C 80 32 14 */ add r4, r0, r6
+/* 8031DD04 00319964 90 A4 00 18 */ stw r5, 0x18(r4)
+/* 8031DD08 00319968 83 4D B0 3C */ lwz r26, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031DD0C 0031996C 7C 9A 32 14 */ add r4, r26, r6
+/* 8031DD10 00319970 3B 24 00 14 */ addi r25, r4, 0x14
+/* 8031DD14 00319974 48 00 00 08 */ b lbl_8031DD1C
+lbl_8031DD18:
+/* 8031DD18 00319978 3B 20 00 00 */ li r25, 0
+lbl_8031DD1C:
+/* 8031DD1C 0031997C 38 80 30 39 */ li r4, 0x3039
+/* 8031DD20 00319980 38 A0 00 00 */ li r5, 0
+/* 8031DD24 00319984 48 02 FE 29 */ bl gt2AddressToString
+/* 8031DD28 00319988 80 CD B0 3C */ lwz r6, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031DD2C 0031998C 7C 65 1B 78 */ mr r5, r3
+/* 8031DD30 00319990 7F 24 CB 78 */ mr r4, r25
+/* 8031DD34 00319994 39 3A 00 04 */ addi r9, r26, 4
+/* 8031DD38 00319998 80 66 00 00 */ lwz r3, 0(r6)
+/* 8031DD3C 0031999C 38 C0 00 00 */ li r6, 0
+/* 8031DD40 003199A0 38 E0 00 00 */ li r7, 0
+/* 8031DD44 003199A4 39 00 27 10 */ li r8, 0x2710
+/* 8031DD48 003199A8 39 40 00 00 */ li r10, 0
+/* 8031DD4C 003199AC 48 02 BD 49 */ bl gt2Connect
+/* 8031DD50 003199B0 48 00 02 94 */ b lbl_8031DFE4
+lbl_8031DD54:
+/* 8031DD54 003199B4 80 A6 01 74 */ lwz r5, 0x174(r6)
+/* 8031DD58 003199B8 2C 05 FF FF */ cmpwi r5, -1
+/* 8031DD5C 003199BC 41 82 02 88 */ beq lbl_8031DFE4
+/* 8031DD60 003199C0 80 66 01 78 */ lwz r3, 0x178(r6)
+/* 8031DD64 003199C4 80 ED B0 3C */ lwz r7, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031DD68 003199C8 37 23 FF FF */ addic. r25, r3, -1
+/* 8031DD6C 003199CC 38 87 00 14 */ addi r4, r7, 0x14
+/* 8031DD70 003199D0 57 20 10 3A */ slwi r0, r25, 2
+/* 8031DD74 003199D4 7C 67 02 14 */ add r3, r7, r0
+/* 8031DD78 003199D8 7F 29 03 A6 */ mtctr r25
+/* 8031DD7C 003199DC 40 81 00 FC */ ble lbl_8031DE78
+lbl_8031DD80:
+/* 8031DD80 003199E0 80 06 01 74 */ lwz r0, 0x174(r6)
+/* 8031DD84 003199E4 7C 19 00 00 */ cmpw r25, r0
+/* 8031DD88 003199E8 41 82 00 E4 */ beq lbl_8031DE6C
+/* 8031DD8C 003199EC 80 03 00 94 */ lwz r0, 0x94(r3)
+/* 8031DD90 003199F0 2C 00 FF FF */ cmpwi r0, -1
+/* 8031DD94 003199F4 40 82 00 0C */ bne lbl_8031DDA0
+/* 8031DD98 003199F8 38 00 00 00 */ li r0, 0
+/* 8031DD9C 003199FC 48 00 00 0C */ b lbl_8031DDA8
+lbl_8031DDA0:
+/* 8031DDA0 00319A00 54 00 18 38 */ slwi r0, r0, 3
+/* 8031DDA4 00319A04 7C 04 02 14 */ add r0, r4, r0
+lbl_8031DDA8:
+/* 8031DDA8 00319A08 2C 00 00 00 */ cmpwi r0, 0
+/* 8031DDAC 00319A0C 40 82 00 C0 */ bne lbl_8031DE6C
+/* 8031DDB0 00319A10 7C 19 28 00 */ cmpw r25, r5
+/* 8031DDB4 00319A14 40 81 00 C4 */ ble lbl_8031DE78
+/* 8031DDB8 00319A18 38 60 00 06 */ li r3, 6
+/* 8031DDBC 00319A1C 57 20 18 38 */ slwi r0, r25, 3
+/* 8031DDC0 00319A20 90 66 00 00 */ stw r3, 0(r6)
+/* 8031DDC4 00319A24 38 A0 00 00 */ li r5, 0
+/* 8031DDC8 00319A28 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031DDCC 00319A2C 83 6D B0 3C */ lwz r27, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031DDD0 00319A30 7C 63 02 14 */ add r3, r3, r0
+/* 8031DDD4 00319A34 80 63 01 7C */ lwz r3, 0x17c(r3)
+/* 8031DDD8 00319A38 7F 64 DB 78 */ mr r4, r27
+/* 8031DDDC 00319A3C 48 00 00 0C */ b lbl_8031DDE8
+lbl_8031DDE0:
+/* 8031DDE0 00319A40 38 84 00 08 */ addi r4, r4, 8
+/* 8031DDE4 00319A44 38 A5 00 01 */ addi r5, r5, 1
+lbl_8031DDE8:
+/* 8031DDE8 00319A48 80 04 00 14 */ lwz r0, 0x14(r4)
+/* 8031DDEC 00319A4C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031DDF0 00319A50 41 82 00 0C */ beq lbl_8031DDFC
+/* 8031DDF4 00319A54 2C 05 00 10 */ cmpwi r5, 0x10
+/* 8031DDF8 00319A58 41 80 FF E8 */ blt lbl_8031DDE0
+lbl_8031DDFC:
+/* 8031DDFC 00319A5C 2C 05 00 10 */ cmpwi r5, 0x10
+/* 8031DE00 00319A60 40 80 00 30 */ bge lbl_8031DE30
+/* 8031DE04 00319A64 57 20 10 3A */ slwi r0, r25, 2
+/* 8031DE08 00319A68 54 A6 18 38 */ slwi r6, r5, 3
+/* 8031DE0C 00319A6C 7C 9B 02 14 */ add r4, r27, r0
+/* 8031DE10 00319A70 90 A4 00 94 */ stw r5, 0x94(r4)
+/* 8031DE14 00319A74 80 0D B0 3C */ lwz r0, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031DE18 00319A78 7C 80 32 14 */ add r4, r0, r6
+/* 8031DE1C 00319A7C 93 24 00 18 */ stw r25, 0x18(r4)
+/* 8031DE20 00319A80 83 6D B0 3C */ lwz r27, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031DE24 00319A84 7C 9B 32 14 */ add r4, r27, r6
+/* 8031DE28 00319A88 3B 44 00 14 */ addi r26, r4, 0x14
+/* 8031DE2C 00319A8C 48 00 00 08 */ b lbl_8031DE34
+lbl_8031DE30:
+/* 8031DE30 00319A90 3B 40 00 00 */ li r26, 0
+lbl_8031DE34:
+/* 8031DE34 00319A94 38 80 30 39 */ li r4, 0x3039
+/* 8031DE38 00319A98 38 A0 00 00 */ li r5, 0
+/* 8031DE3C 00319A9C 48 02 FD 11 */ bl gt2AddressToString
+/* 8031DE40 00319AA0 80 CD B0 3C */ lwz r6, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031DE44 00319AA4 7C 65 1B 78 */ mr r5, r3
+/* 8031DE48 00319AA8 7F 44 D3 78 */ mr r4, r26
+/* 8031DE4C 00319AAC 39 3B 00 04 */ addi r9, r27, 4
+/* 8031DE50 00319AB0 80 66 00 00 */ lwz r3, 0(r6)
+/* 8031DE54 00319AB4 38 C0 00 00 */ li r6, 0
+/* 8031DE58 00319AB8 38 E0 00 00 */ li r7, 0
+/* 8031DE5C 00319ABC 39 00 27 10 */ li r8, 0x2710
+/* 8031DE60 00319AC0 39 40 00 00 */ li r10, 0
+/* 8031DE64 00319AC4 48 02 BC 31 */ bl gt2Connect
+/* 8031DE68 00319AC8 48 00 00 10 */ b lbl_8031DE78
+lbl_8031DE6C:
+/* 8031DE6C 00319ACC 38 63 FF FC */ addi r3, r3, -4
+/* 8031DE70 00319AD0 3B 39 FF FF */ addi r25, r25, -1
+/* 8031DE74 00319AD4 42 00 FF 0C */ bdnz lbl_8031DD80
+lbl_8031DE78:
+/* 8031DE78 00319AD8 2C 19 00 00 */ cmpwi r25, 0
+/* 8031DE7C 00319ADC 40 82 01 68 */ bne lbl_8031DFE4
+/* 8031DE80 00319AE0 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031DE84 00319AE4 38 80 00 07 */ li r4, 7
+/* 8031DE88 00319AE8 38 00 00 01 */ li r0, 1
+/* 8031DE8C 00319AEC 90 83 00 00 */ stw r4, 0(r3)
+/* 8031DE90 00319AF0 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031DE94 00319AF4 90 03 01 2C */ stw r0, 0x12c(r3)
+/* 8031DE98 00319AF8 80 AD B0 3C */ lwz r5, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031DE9C 00319AFC 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031DEA0 00319B00 80 05 00 94 */ lwz r0, 0x94(r5)
+/* 8031DEA4 00319B04 38 83 01 2C */ addi r4, r3, 0x12c
+/* 8031DEA8 00319B08 2C 00 FF FF */ cmpwi r0, -1
+/* 8031DEAC 00319B0C 40 82 00 0C */ bne lbl_8031DEB8
+/* 8031DEB0 00319B10 38 60 00 00 */ li r3, 0
+/* 8031DEB4 00319B14 48 00 00 10 */ b lbl_8031DEC4
+lbl_8031DEB8:
+/* 8031DEB8 00319B18 54 00 18 38 */ slwi r0, r0, 3
+/* 8031DEBC 00319B1C 7C 65 02 14 */ add r3, r5, r0
+/* 8031DEC0 00319B20 38 63 00 14 */ addi r3, r3, 0x14
+lbl_8031DEC4:
+/* 8031DEC4 00319B24 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031DEC8 00319B28 38 A0 00 44 */ li r5, 0x44
+/* 8031DECC 00319B2C 38 C0 00 01 */ li r6, 1
+/* 8031DED0 00319B30 48 02 BD 6D */ bl gt2Send
+/* 8031DED4 00319B34 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031DED8 00319B38 80 03 00 00 */ lwz r0, 0(r3)
+/* 8031DEDC 00319B3C 2C 00 00 08 */ cmpwi r0, 8
+/* 8031DEE0 00319B40 40 82 01 04 */ bne lbl_8031DFE4
+/* 8031DEE4 00319B44 81 83 02 04 */ lwz r12, 0x204(r3)
+/* 8031DEE8 00319B48 38 60 00 44 */ li r3, 0x44
+/* 8031DEEC 00319B4C 38 80 00 00 */ li r4, 0
+/* 8031DEF0 00319B50 7D 89 03 A6 */ mtctr r12
+/* 8031DEF4 00319B54 4E 80 04 21 */ bctrl
+/* 8031DEF8 00319B58 48 00 00 EC */ b lbl_8031DFE4
+lbl_8031DEFC:
+/* 8031DEFC 00319B5C 80 86 01 78 */ lwz r4, 0x178(r6)
+/* 8031DF00 00319B60 38 66 00 08 */ addi r3, r6, 8
+/* 8031DF04 00319B64 38 A0 00 01 */ li r5, 1
+/* 8031DF08 00319B68 38 04 FF FF */ addi r0, r4, -1
+/* 8031DF0C 00319B6C 7C 09 03 A6 */ mtctr r0
+/* 8031DF10 00319B70 2C 04 00 01 */ cmpwi r4, 1
+/* 8031DF14 00319B74 40 81 00 1C */ ble lbl_8031DF30
+lbl_8031DF18:
+/* 8031DF18 00319B78 80 03 01 80 */ lwz r0, 0x180(r3)
+/* 8031DF1C 00319B7C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031DF20 00319B80 41 82 00 10 */ beq lbl_8031DF30
+/* 8031DF24 00319B84 38 63 00 08 */ addi r3, r3, 8
+/* 8031DF28 00319B88 38 A5 00 01 */ addi r5, r5, 1
+/* 8031DF2C 00319B8C 42 00 FF EC */ bdnz lbl_8031DF18
+lbl_8031DF30:
+/* 8031DF30 00319B90 80 06 01 78 */ lwz r0, 0x178(r6)
+/* 8031DF34 00319B94 7C 05 00 00 */ cmpw r5, r0
+/* 8031DF38 00319B98 40 82 00 AC */ bne lbl_8031DFE4
+/* 8031DF3C 00319B9C 38 00 00 02 */ li r0, 2
+/* 8031DF40 00319BA0 3B 40 00 01 */ li r26, 1
+/* 8031DF44 00319BA4 90 06 01 2C */ stw r0, 0x12c(r6)
+/* 8031DF48 00319BA8 3B 20 00 04 */ li r25, 4
+/* 8031DF4C 00319BAC 48 00 00 6C */ b lbl_8031DFB8
+lbl_8031DF50:
+/* 8031DF50 00319BB0 80 AD B0 3C */ lwz r5, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031DF54 00319BB4 38 84 01 2C */ addi r4, r4, 0x12c
+/* 8031DF58 00319BB8 7C 65 CA 14 */ add r3, r5, r25
+/* 8031DF5C 00319BBC 80 03 00 94 */ lwz r0, 0x94(r3)
+/* 8031DF60 00319BC0 2C 00 FF FF */ cmpwi r0, -1
+/* 8031DF64 00319BC4 40 82 00 0C */ bne lbl_8031DF70
+/* 8031DF68 00319BC8 38 60 00 00 */ li r3, 0
+/* 8031DF6C 00319BCC 48 00 00 10 */ b lbl_8031DF7C
+lbl_8031DF70:
+/* 8031DF70 00319BD0 54 00 18 38 */ slwi r0, r0, 3
+/* 8031DF74 00319BD4 7C 65 02 14 */ add r3, r5, r0
+/* 8031DF78 00319BD8 38 63 00 14 */ addi r3, r3, 0x14
+lbl_8031DF7C:
+/* 8031DF7C 00319BDC 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031DF80 00319BE0 38 A0 00 44 */ li r5, 0x44
+/* 8031DF84 00319BE4 38 C0 00 01 */ li r6, 1
+/* 8031DF88 00319BE8 48 02 BC B5 */ bl gt2Send
+/* 8031DF8C 00319BEC 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031DF90 00319BF0 80 03 00 00 */ lwz r0, 0(r3)
+/* 8031DF94 00319BF4 2C 00 00 08 */ cmpwi r0, 8
+/* 8031DF98 00319BF8 40 82 00 18 */ bne lbl_8031DFB0
+/* 8031DF9C 00319BFC 81 83 02 04 */ lwz r12, 0x204(r3)
+/* 8031DFA0 00319C00 7F 44 D3 78 */ mr r4, r26
+/* 8031DFA4 00319C04 38 60 00 44 */ li r3, 0x44
+/* 8031DFA8 00319C08 7D 89 03 A6 */ mtctr r12
+/* 8031DFAC 00319C0C 4E 80 04 21 */ bctrl
+lbl_8031DFB0:
+/* 8031DFB0 00319C10 3B 39 00 04 */ addi r25, r25, 4
+/* 8031DFB4 00319C14 3B 5A 00 01 */ addi r26, r26, 1
+lbl_8031DFB8:
+/* 8031DFB8 00319C18 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031DFBC 00319C1C 80 04 01 78 */ lwz r0, 0x178(r4)
+/* 8031DFC0 00319C20 7C 1A 00 00 */ cmpw r26, r0
+/* 8031DFC4 00319C24 41 80 FF 8C */ blt lbl_8031DF50
+/* 8031DFC8 00319C28 38 00 00 08 */ li r0, 8
+/* 8031DFCC 00319C2C 38 60 00 00 */ li r3, 0
+/* 8031DFD0 00319C30 90 04 00 00 */ stw r0, 0(r4)
+/* 8031DFD4 00319C34 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031DFD8 00319C38 81 84 01 FC */ lwz r12, 0x1fc(r4)
+/* 8031DFDC 00319C3C 7D 89 03 A6 */ mtctr r12
+/* 8031DFE0 00319C40 4E 80 04 21 */ bctrl
+lbl_8031DFE4:
+/* 8031DFE4 00319C44 39 61 00 40 */ addi r11, r1, 0x40
+/* 8031DFE8 00319C48 4B EA 91 85 */ bl _restgpr_25
+/* 8031DFEC 00319C4C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8031DFF0 00319C50 7C 08 03 A6 */ mtlr r0
+/* 8031DFF4 00319C54 38 21 00 40 */ addi r1, r1, 0x40
+/* 8031DFF8 00319C58 4E 80 00 20 */ blr
+
+.global DWC_StartLanMatch
+DWC_StartLanMatch:
+/* 8031DFFC 00319C5C 80 AD B0 38 */ lwz r5, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E000 00319C60 90 65 01 78 */ stw r3, 0x178(r5)
+/* 8031E004 00319C64 38 60 00 01 */ li r3, 1
+/* 8031E008 00319C68 80 AD B0 38 */ lwz r5, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E00C 00319C6C 90 85 01 FC */ stw r4, 0x1fc(r5)
+/* 8031E010 00319C70 4E 80 00 20 */ blr
+
+.global DWC_ShutdownLanMatch
+DWC_ShutdownLanMatch:
+/* 8031E014 00319C74 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031E018 00319C78 7C 08 02 A6 */ mflr r0
+/* 8031E01C 00319C7C 38 60 00 00 */ li r3, 0
+/* 8031E020 00319C80 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031E024 00319C84 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031E028 00319C88 48 03 06 0D */ bl qr2_shutdown
+/* 8031E02C 00319C8C 80 6D B0 40 */ lwz r3, lbl_80640300-_SDA_BASE_(r13)
+/* 8031E030 00319C90 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031E034 00319C94 48 04 04 69 */ bl ServerBrowserFree
+/* 8031E038 00319C98 3B E0 00 00 */ li r31, 0
+/* 8031E03C 00319C9C 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E040 00319CA0 93 ED B0 40 */ stw r31, lbl_80640300-_SDA_BASE_(r13)
+/* 8031E044 00319CA4 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031E048 00319CA8 48 02 BD 09 */ bl func_80349D50
+/* 8031E04C 00319CAC 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E050 00319CB0 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031E054 00319CB4 48 02 B9 A5 */ bl gt2CloseSocket
+/* 8031E058 00319CB8 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E05C 00319CBC 93 ED B0 3C */ stw r31, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E060 00319CC0 2C 04 00 00 */ cmpwi r4, 0
+/* 8031E064 00319CC4 41 82 00 14 */ beq lbl_8031E078
+/* 8031E068 00319CC8 38 60 00 05 */ li r3, 5
+/* 8031E06C 00319CCC 38 A0 00 00 */ li r5, 0
+/* 8031E070 00319CD0 4B FF E9 19 */ bl DWC_Free
+/* 8031E074 00319CD4 93 ED B0 38 */ stw r31, lbl_806402F8-_SDA_BASE_(r13)
+lbl_8031E078:
+/* 8031E078 00319CD8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031E07C 00319CDC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031E080 00319CE0 7C 08 03 A6 */ mtlr r0
+/* 8031E084 00319CE4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031E088 00319CE8 4E 80 00 20 */ blr
+
+.global DWC_GetMyAIDLanMatch
+DWC_GetMyAIDLanMatch:
+/* 8031E08C 00319CEC 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E090 00319CF0 80 03 00 00 */ lwz r0, 0(r3)
+/* 8031E094 00319CF4 2C 00 00 08 */ cmpwi r0, 8
+/* 8031E098 00319CF8 41 80 00 10 */ blt lbl_8031E0A8
+/* 8031E09C 00319CFC 80 63 01 74 */ lwz r3, 0x174(r3)
+/* 8031E0A0 00319D00 2C 03 00 00 */ cmpwi r3, 0
+/* 8031E0A4 00319D04 4C 80 00 20 */ bgelr
+lbl_8031E0A8:
+/* 8031E0A8 00319D08 38 60 FF FF */ li r3, -1
+/* 8031E0AC 00319D0C 4E 80 00 20 */ blr
+
+.global DWC_SendLanMatch
+DWC_SendLanMatch:
+/* 8031E0B0 00319D10 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031E0B4 00319D14 7C 08 02 A6 */ mflr r0
+/* 8031E0B8 00319D18 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031E0BC 00319D1C 54 60 10 3A */ slwi r0, r3, 2
+/* 8031E0C0 00319D20 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031E0C4 00319D24 7C BF 2B 78 */ mr r31, r5
+/* 8031E0C8 00319D28 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031E0CC 00319D2C 7C 7E 1B 78 */ mr r30, r3
+/* 8031E0D0 00319D30 80 ED B0 3C */ lwz r7, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E0D4 00319D34 7C 67 02 14 */ add r3, r7, r0
+/* 8031E0D8 00319D38 80 03 00 94 */ lwz r0, 0x94(r3)
+/* 8031E0DC 00319D3C 2C 00 FF FF */ cmpwi r0, -1
+/* 8031E0E0 00319D40 40 82 00 0C */ bne lbl_8031E0EC
+/* 8031E0E4 00319D44 38 60 00 00 */ li r3, 0
+/* 8031E0E8 00319D48 48 00 00 10 */ b lbl_8031E0F8
+lbl_8031E0EC:
+/* 8031E0EC 00319D4C 54 00 18 38 */ slwi r0, r0, 3
+/* 8031E0F0 00319D50 7C 67 02 14 */ add r3, r7, r0
+/* 8031E0F4 00319D54 38 63 00 14 */ addi r3, r3, 0x14
+lbl_8031E0F8:
+/* 8031E0F8 00319D58 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031E0FC 00319D5C 7F E5 FB 78 */ mr r5, r31
+/* 8031E100 00319D60 48 02 BB 3D */ bl gt2Send
+/* 8031E104 00319D64 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E108 00319D68 80 03 00 00 */ lwz r0, 0(r3)
+/* 8031E10C 00319D6C 2C 00 00 08 */ cmpwi r0, 8
+/* 8031E110 00319D70 40 82 00 18 */ bne lbl_8031E128
+/* 8031E114 00319D74 81 83 02 04 */ lwz r12, 0x204(r3)
+/* 8031E118 00319D78 7F E3 FB 78 */ mr r3, r31
+/* 8031E11C 00319D7C 7F C4 F3 78 */ mr r4, r30
+/* 8031E120 00319D80 7D 89 03 A6 */ mtctr r12
+/* 8031E124 00319D84 4E 80 04 21 */ bctrl
+lbl_8031E128:
+/* 8031E128 00319D88 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031E12C 00319D8C 38 60 00 01 */ li r3, 1
+/* 8031E130 00319D90 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031E134 00319D94 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031E138 00319D98 7C 08 03 A6 */ mtlr r0
+/* 8031E13C 00319D9C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031E140 00319DA0 4E 80 00 20 */ blr
+
+cn_sockerror:
+/* 8031E144 00319DA4 3C 60 80 44 */ lis r3, lbl_80446BF4@ha
+/* 8031E148 00319DA8 3C A0 80 44 */ lis r5, lbl_80446C04@ha
+/* 8031E14C 00319DAC 38 63 6B F4 */ addi r3, r3, lbl_80446BF4@l
+/* 8031E150 00319DB0 38 80 01 A8 */ li r4, 0x1a8
+/* 8031E154 00319DB4 38 A5 6C 04 */ addi r5, r5, lbl_80446C04@l
+/* 8031E158 00319DB8 4C C6 31 82 */ crclr 6
+/* 8031E15C 00319DBC 4B F4 D3 40 */ b OSPanic
+
+ss_serverBrowsing:
+/* 8031E160 00319DC0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031E164 00319DC4 7C 08 02 A6 */ mflr r0
+/* 8031E168 00319DC8 38 60 00 01 */ li r3, 1
+/* 8031E16C 00319DCC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031E170 00319DD0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031E174 00319DD4 7C 9F 23 78 */ mr r31, r4
+/* 8031E178 00319DD8 3C 80 80 44 */ lis r4, lbl_80446C14@ha
+/* 8031E17C 00319DDC 7F E5 FB 78 */ mr r5, r31
+/* 8031E180 00319DE0 38 84 6C 14 */ addi r4, r4, lbl_80446C14@l
+/* 8031E184 00319DE4 4C C6 31 82 */ crclr 6
+/* 8031E188 00319DE8 4B FF E9 AD */ bl DWC_Printf
+/* 8031E18C 00319DEC 2C 1F 00 03 */ cmpwi r31, 3
+/* 8031E190 00319DF0 41 82 00 28 */ beq lbl_8031E1B8
+/* 8031E194 00319DF4 40 80 00 10 */ bge lbl_8031E1A4
+/* 8031E198 00319DF8 2C 1F 00 02 */ cmpwi r31, 2
+/* 8031E19C 00319DFC 40 80 00 1C */ bge lbl_8031E1B8
+/* 8031E1A0 00319E00 48 00 00 18 */ b lbl_8031E1B8
+lbl_8031E1A4:
+/* 8031E1A4 00319E04 2C 1F 00 05 */ cmpwi r31, 5
+/* 8031E1A8 00319E08 40 80 00 10 */ bge lbl_8031E1B8
+/* 8031E1AC 00319E0C 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E1B0 00319E10 38 00 00 01 */ li r0, 1
+/* 8031E1B4 00319E14 90 03 00 0C */ stw r0, 0xc(r3)
+lbl_8031E1B8:
+/* 8031E1B8 00319E18 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031E1BC 00319E1C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031E1C0 00319E20 7C 08 03 A6 */ mtlr r0
+/* 8031E1C4 00319E24 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031E1C8 00319E28 4E 80 00 20 */ blr
+
+ss_serverKey:
+/* 8031E1CC 00319E2C 4E 80 00 20 */ blr
+
+ss_playerKey:
+/* 8031E1D0 00319E30 4E 80 00 20 */ blr
+
+ss_teamKey:
+/* 8031E1D4 00319E34 4E 80 00 20 */ blr
+
+ss_keyList:
+/* 8031E1D8 00319E38 4E 80 00 20 */ blr
+
+ss_count:
+/* 8031E1DC 00319E3C 38 60 00 00 */ li r3, 0
+/* 8031E1E0 00319E40 4E 80 00 20 */ blr
+
+ss_addError:
+/* 8031E1E4 00319E44 4E 80 00 20 */ blr
+
+.global cn_init
+cn_init:
+/* 8031E1E8 00319E48 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031E1EC 00319E4C 7C 08 02 A6 */ mflr r0
+/* 8031E1F0 00319E50 38 80 FF FF */ li r4, -1
+/* 8031E1F4 00319E54 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031E1F8 00319E58 38 00 00 01 */ li r0, 1
+/* 8031E1FC 00319E5C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031E200 00319E60 7C 7F 1B 78 */ mr r31, r3
+/* 8031E204 00319E64 80 AD B0 38 */ lwz r5, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E208 00319E68 38 65 00 54 */ addi r3, r5, 0x54
+/* 8031E20C 00319E6C 38 A0 00 40 */ li r5, 0x40
+/* 8031E210 00319E70 90 6D B0 3C */ stw r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E214 00319E74 90 03 00 D4 */ stw r0, 0xd4(r3)
+/* 8031E218 00319E78 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E21C 00319E7C 38 63 00 94 */ addi r3, r3, 0x94
+/* 8031E220 00319E80 4B CE 5E E5 */ bl memset
+/* 8031E224 00319E84 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E228 00319E88 38 00 FF FF */ li r0, -1
+/* 8031E22C 00319E8C 38 80 00 00 */ li r4, 0
+/* 8031E230 00319E90 38 A0 00 10 */ li r5, 0x10
+/* 8031E234 00319E94 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8031E238 00319E98 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E23C 00319E9C 90 03 00 20 */ stw r0, 0x20(r3)
+/* 8031E240 00319EA0 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E244 00319EA4 90 03 00 28 */ stw r0, 0x28(r3)
+/* 8031E248 00319EA8 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E24C 00319EAC 90 03 00 30 */ stw r0, 0x30(r3)
+/* 8031E250 00319EB0 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E254 00319EB4 90 03 00 38 */ stw r0, 0x38(r3)
+/* 8031E258 00319EB8 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E25C 00319EBC 90 03 00 40 */ stw r0, 0x40(r3)
+/* 8031E260 00319EC0 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E264 00319EC4 90 03 00 48 */ stw r0, 0x48(r3)
+/* 8031E268 00319EC8 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E26C 00319ECC 90 03 00 50 */ stw r0, 0x50(r3)
+/* 8031E270 00319ED0 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E274 00319ED4 90 03 00 58 */ stw r0, 0x58(r3)
+/* 8031E278 00319ED8 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E27C 00319EDC 90 03 00 60 */ stw r0, 0x60(r3)
+/* 8031E280 00319EE0 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E284 00319EE4 90 03 00 68 */ stw r0, 0x68(r3)
+/* 8031E288 00319EE8 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E28C 00319EEC 90 03 00 70 */ stw r0, 0x70(r3)
+/* 8031E290 00319EF0 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E294 00319EF4 90 03 00 78 */ stw r0, 0x78(r3)
+/* 8031E298 00319EF8 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E29C 00319EFC 90 03 00 80 */ stw r0, 0x80(r3)
+/* 8031E2A0 00319F00 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E2A4 00319F04 90 03 00 88 */ stw r0, 0x88(r3)
+/* 8031E2A8 00319F08 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E2AC 00319F0C 90 03 00 90 */ stw r0, 0x90(r3)
+/* 8031E2B0 00319F10 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E2B4 00319F14 38 63 00 04 */ addi r3, r3, 4
+/* 8031E2B8 00319F18 4B CE 5E 4D */ bl memset
+/* 8031E2BC 00319F1C 3C 80 80 32 */ lis r4, cn_connected@ha
+/* 8031E2C0 00319F20 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E2C4 00319F24 38 84 E3 40 */ addi r4, r4, cn_connected@l
+/* 8031E2C8 00319F28 3D 00 80 32 */ lis r8, cn_received@ha
+/* 8031E2CC 00319F2C 90 83 00 04 */ stw r4, 4(r3)
+/* 8031E2D0 00319F30 3C E0 80 32 */ lis r7, cn_closed@ha
+/* 8031E2D4 00319F34 39 08 E4 44 */ addi r8, r8, cn_received@l
+/* 8031E2D8 00319F38 7F E3 FB 78 */ mr r3, r31
+/* 8031E2DC 00319F3C 80 CD B0 3C */ lwz r6, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E2E0 00319F40 38 E7 E5 A4 */ addi r7, r7, cn_closed@l
+/* 8031E2E4 00319F44 38 80 30 39 */ li r4, 0x3039
+/* 8031E2E8 00319F48 38 A0 00 00 */ li r5, 0
+/* 8031E2EC 00319F4C 91 06 00 08 */ stw r8, 8(r6)
+/* 8031E2F0 00319F50 80 CD B0 3C */ lwz r6, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E2F4 00319F54 90 E6 00 0C */ stw r7, 0xc(r6)
+/* 8031E2F8 00319F58 48 02 F8 55 */ bl gt2AddressToString
+/* 8031E2FC 00319F5C 7C 64 1B 78 */ mr r4, r3
+/* 8031E300 00319F60 3C E0 80 32 */ lis r7, cn_sockerror@ha
+/* 8031E304 00319F64 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E308 00319F68 38 E7 E1 44 */ addi r7, r7, cn_sockerror@l
+/* 8031E30C 00319F6C 38 A0 00 00 */ li r5, 0
+/* 8031E310 00319F70 38 C0 00 00 */ li r6, 0
+/* 8031E314 00319F74 48 02 B6 DD */ bl gt2CreateSocket
+/* 8031E318 00319F78 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E31C 00319F7C 3C 80 80 32 */ lis r4, cn_listen@ha
+/* 8031E320 00319F80 38 84 E5 BC */ addi r4, r4, cn_listen@l
+/* 8031E324 00319F84 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031E328 00319F88 48 02 B7 61 */ bl gt2Listen
+/* 8031E32C 00319F8C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031E330 00319F90 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031E334 00319F94 7C 08 03 A6 */ mtlr r0
+/* 8031E338 00319F98 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031E33C 00319F9C 4E 80 00 20 */ blr
+
+cn_connected:
+/* 8031E340 00319FA0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031E344 00319FA4 7C 08 02 A6 */ mflr r0
+/* 8031E348 00319FA8 2C 04 00 00 */ cmpwi r4, 0
+/* 8031E34C 00319FAC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031E350 00319FB0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031E354 00319FB4 7C 9F 23 78 */ mr r31, r4
+/* 8031E358 00319FB8 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031E35C 00319FBC 7C 7E 1B 78 */ mr r30, r3
+/* 8031E360 00319FC0 40 82 00 14 */ bne lbl_8031E374
+/* 8031E364 00319FC4 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E368 00319FC8 38 00 00 03 */ li r0, 3
+/* 8031E36C 00319FCC 90 03 00 00 */ stw r0, 0(r3)
+/* 8031E370 00319FD0 48 00 00 8C */ b lbl_8031E3FC
+lbl_8031E374:
+/* 8031E374 00319FD4 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E378 00319FD8 38 A0 00 01 */ li r5, 1
+/* 8031E37C 00319FDC 38 00 00 10 */ li r0, 0x10
+/* 8031E380 00319FE0 38 C0 00 00 */ li r6, 0
+/* 8031E384 00319FE4 90 A4 00 00 */ stw r5, 0(r4)
+/* 8031E388 00319FE8 80 AD B0 3C */ lwz r5, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E38C 00319FEC 7C A4 2B 78 */ mr r4, r5
+/* 8031E390 00319FF0 7C 09 03 A6 */ mtctr r0
+lbl_8031E394:
+/* 8031E394 00319FF4 80 04 00 14 */ lwz r0, 0x14(r4)
+/* 8031E398 00319FF8 7C 03 00 40 */ cmplw r3, r0
+/* 8031E39C 00319FFC 40 82 00 14 */ bne lbl_8031E3B0
+/* 8031E3A0 0031A000 54 C0 18 38 */ slwi r0, r6, 3
+/* 8031E3A4 0031A004 7C 65 02 14 */ add r3, r5, r0
+/* 8031E3A8 0031A008 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8031E3AC 0031A00C 48 00 00 14 */ b lbl_8031E3C0
+lbl_8031E3B0:
+/* 8031E3B0 0031A010 38 84 00 08 */ addi r4, r4, 8
+/* 8031E3B4 0031A014 38 C6 00 01 */ addi r6, r6, 1
+/* 8031E3B8 0031A018 42 00 FF DC */ bdnz lbl_8031E394
+/* 8031E3BC 0031A01C 38 00 FF FF */ li r0, -1
+lbl_8031E3C0:
+/* 8031E3C0 0031A020 54 00 10 3A */ slwi r0, r0, 2
+/* 8031E3C4 0031A024 7C 65 02 14 */ add r3, r5, r0
+/* 8031E3C8 0031A028 80 03 00 94 */ lwz r0, 0x94(r3)
+/* 8031E3CC 0031A02C 2C 00 FF FF */ cmpwi r0, -1
+/* 8031E3D0 0031A030 41 82 00 2C */ beq lbl_8031E3FC
+/* 8031E3D4 0031A034 38 80 FF FF */ li r4, -1
+/* 8031E3D8 0031A038 54 05 18 38 */ slwi r5, r0, 3
+/* 8031E3DC 0031A03C 90 83 00 94 */ stw r4, 0x94(r3)
+/* 8031E3E0 0031A040 80 0D B0 3C */ lwz r0, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E3E4 0031A044 7C 60 2A 14 */ add r3, r0, r5
+/* 8031E3E8 0031A048 90 83 00 18 */ stw r4, 0x18(r3)
+/* 8031E3EC 0031A04C 80 0D B0 3C */ lwz r0, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E3F0 0031A050 7C 60 2A 14 */ add r3, r0, r5
+/* 8031E3F4 0031A054 80 63 00 14 */ lwz r3, 0x14(r3)
+/* 8031E3F8 0031A058 48 02 B9 45 */ bl gt2CloseConnectionHard
+lbl_8031E3FC:
+/* 8031E3FC 0031A05C 7F C3 F3 78 */ mr r3, r30
+/* 8031E400 0031A060 48 02 B9 B9 */ bl func_80349DB8
+/* 8031E404 0031A064 38 80 00 00 */ li r4, 0
+/* 8031E408 0031A068 38 A0 00 00 */ li r5, 0
+/* 8031E40C 0031A06C 48 02 F7 41 */ bl gt2AddressToString
+/* 8031E410 0031A070 3C 80 80 44 */ lis r4, lbl_80446C2C@ha
+/* 8031E414 0031A074 7C 65 1B 78 */ mr r5, r3
+/* 8031E418 0031A078 7F E6 FB 78 */ mr r6, r31
+/* 8031E41C 0031A07C 38 60 00 01 */ li r3, 1
+/* 8031E420 0031A080 38 84 6C 2C */ addi r4, r4, lbl_80446C2C@l
+/* 8031E424 0031A084 4C C6 31 82 */ crclr 6
+/* 8031E428 0031A088 4B FF E7 0D */ bl DWC_Printf
+/* 8031E42C 0031A08C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031E430 0031A090 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031E434 0031A094 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031E438 0031A098 7C 08 03 A6 */ mtlr r0
+/* 8031E43C 0031A09C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031E440 0031A0A0 4E 80 00 20 */ blr
+
+cn_received:
+/* 8031E444 0031A0A4 81 0D B0 38 */ lwz r8, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E448 0031A0A8 38 E0 00 00 */ li r7, 0
+/* 8031E44C 0031A0AC 80 08 00 00 */ lwz r0, 0(r8)
+/* 8031E450 0031A0B0 2C 00 00 07 */ cmpwi r0, 7
+/* 8031E454 0031A0B4 41 82 01 30 */ beq lbl_8031E584
+/* 8031E458 0031A0B8 40 80 00 1C */ bge lbl_8031E474
+/* 8031E45C 0031A0BC 2C 00 00 04 */ cmpwi r0, 4
+/* 8031E460 0031A0C0 41 82 00 C0 */ beq lbl_8031E520
+/* 8031E464 0031A0C4 4C 80 00 20 */ bgelr
+/* 8031E468 0031A0C8 2C 00 00 03 */ cmpwi r0, 3
+/* 8031E46C 0031A0CC 40 80 00 5C */ bge lbl_8031E4C8
+/* 8031E470 0031A0D0 4E 80 00 20 */ blr
+lbl_8031E474:
+/* 8031E474 0031A0D4 2C 00 00 09 */ cmpwi r0, 9
+/* 8031E478 0031A0D8 4C 80 00 20 */ bgelr
+/* 8031E47C 0031A0DC 81 2D B0 3C */ lwz r9, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E480 0031A0E0 38 00 00 10 */ li r0, 0x10
+/* 8031E484 0031A0E4 38 C0 00 00 */ li r6, 0
+/* 8031E488 0031A0E8 7D 27 4B 78 */ mr r7, r9
+/* 8031E48C 0031A0EC 7C 09 03 A6 */ mtctr r0
+lbl_8031E490:
+/* 8031E490 0031A0F0 80 07 00 14 */ lwz r0, 0x14(r7)
+/* 8031E494 0031A0F4 7C 03 00 40 */ cmplw r3, r0
+/* 8031E498 0031A0F8 40 82 00 14 */ bne lbl_8031E4AC
+/* 8031E49C 0031A0FC 54 C0 18 38 */ slwi r0, r6, 3
+/* 8031E4A0 0031A100 7C 69 02 14 */ add r3, r9, r0
+/* 8031E4A4 0031A104 80 63 00 18 */ lwz r3, 0x18(r3)
+/* 8031E4A8 0031A108 48 00 00 14 */ b lbl_8031E4BC
+lbl_8031E4AC:
+/* 8031E4AC 0031A10C 38 E7 00 08 */ addi r7, r7, 8
+/* 8031E4B0 0031A110 38 C6 00 01 */ addi r6, r6, 1
+/* 8031E4B4 0031A114 42 00 FF DC */ bdnz lbl_8031E490
+/* 8031E4B8 0031A118 38 60 FF FF */ li r3, -1
+lbl_8031E4BC:
+/* 8031E4BC 0031A11C 81 88 02 00 */ lwz r12, 0x200(r8)
+/* 8031E4C0 0031A120 7D 89 03 A6 */ mtctr r12
+/* 8031E4C4 0031A124 4E 80 04 20 */ bctr
+lbl_8031E4C8:
+/* 8031E4C8 0031A128 38 C0 00 00 */ li r6, 0
+/* 8031E4CC 0031A12C 48 00 00 44 */ b lbl_8031E510
+lbl_8031E4D0:
+/* 8031E4D0 0031A130 80 0D B0 38 */ lwz r0, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E4D4 0031A134 7C 60 32 14 */ add r3, r0, r6
+/* 8031E4D8 0031A138 90 A3 01 7C */ stw r5, 0x17c(r3)
+/* 8031E4DC 0031A13C 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E4E0 0031A140 80 03 01 70 */ lwz r0, 0x170(r3)
+/* 8031E4E4 0031A144 7C 05 00 40 */ cmplw r5, r0
+/* 8031E4E8 0031A148 40 82 00 0C */ bne lbl_8031E4F4
+/* 8031E4EC 0031A14C 90 E3 01 74 */ stw r7, 0x174(r3)
+/* 8031E4F0 0031A150 48 00 00 14 */ b lbl_8031E504
+lbl_8031E4F4:
+/* 8031E4F4 0031A154 80 AD B0 3C */ lwz r5, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E4F8 0031A158 80 65 00 D4 */ lwz r3, 0xd4(r5)
+/* 8031E4FC 0031A15C 38 03 00 01 */ addi r0, r3, 1
+/* 8031E500 0031A160 90 05 00 D4 */ stw r0, 0xd4(r5)
+lbl_8031E504:
+/* 8031E504 0031A164 38 C6 00 08 */ addi r6, r6, 8
+/* 8031E508 0031A168 38 84 00 04 */ addi r4, r4, 4
+/* 8031E50C 0031A16C 38 E7 00 01 */ addi r7, r7, 1
+lbl_8031E510:
+/* 8031E510 0031A170 80 A4 00 04 */ lwz r5, 4(r4)
+/* 8031E514 0031A174 2C 05 00 00 */ cmpwi r5, 0
+/* 8031E518 0031A178 40 82 FF B8 */ bne lbl_8031E4D0
+/* 8031E51C 0031A17C 4E 80 00 20 */ blr
+lbl_8031E520:
+/* 8031E520 0031A180 80 CD B0 3C */ lwz r6, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E524 0031A184 38 00 00 10 */ li r0, 0x10
+/* 8031E528 0031A188 38 80 00 00 */ li r4, 0
+/* 8031E52C 0031A18C 7C C5 33 78 */ mr r5, r6
+/* 8031E530 0031A190 7C 09 03 A6 */ mtctr r0
+lbl_8031E534:
+/* 8031E534 0031A194 80 05 00 14 */ lwz r0, 0x14(r5)
+/* 8031E538 0031A198 7C 03 00 40 */ cmplw r3, r0
+/* 8031E53C 0031A19C 40 82 00 14 */ bne lbl_8031E550
+/* 8031E540 0031A1A0 54 80 18 38 */ slwi r0, r4, 3
+/* 8031E544 0031A1A4 7C 66 02 14 */ add r3, r6, r0
+/* 8031E548 0031A1A8 80 A3 00 18 */ lwz r5, 0x18(r3)
+/* 8031E54C 0031A1AC 48 00 00 14 */ b lbl_8031E560
+lbl_8031E550:
+/* 8031E550 0031A1B0 38 A5 00 08 */ addi r5, r5, 8
+/* 8031E554 0031A1B4 38 84 00 01 */ addi r4, r4, 1
+/* 8031E558 0031A1B8 42 00 FF DC */ bdnz lbl_8031E534
+/* 8031E55C 0031A1BC 38 A0 FF FF */ li r5, -1
+lbl_8031E560:
+/* 8031E560 0031A1C0 54 A0 18 38 */ slwi r0, r5, 3
+/* 8031E564 0031A1C4 3C 80 80 44 */ lis r4, lbl_80446C40@ha
+/* 8031E568 0031A1C8 7C 68 02 14 */ add r3, r8, r0
+/* 8031E56C 0031A1CC 38 00 00 01 */ li r0, 1
+/* 8031E570 0031A1D0 38 84 6C 40 */ addi r4, r4, lbl_80446C40@l
+/* 8031E574 0031A1D4 90 03 01 80 */ stw r0, 0x180(r3)
+/* 8031E578 0031A1D8 38 60 00 01 */ li r3, 1
+/* 8031E57C 0031A1DC 4C C6 31 82 */ crclr 6
+/* 8031E580 0031A1E0 4B FF E5 B4 */ b DWC_Printf
+lbl_8031E584:
+/* 8031E584 0031A1E4 38 00 00 08 */ li r0, 8
+/* 8031E588 0031A1E8 38 60 00 00 */ li r3, 0
+/* 8031E58C 0031A1EC 90 08 00 00 */ stw r0, 0(r8)
+/* 8031E590 0031A1F0 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E594 0031A1F4 81 84 01 FC */ lwz r12, 0x1fc(r4)
+/* 8031E598 0031A1F8 7D 89 03 A6 */ mtctr r12
+/* 8031E59C 0031A1FC 4E 80 04 20 */ bctr
+/* 8031E5A0 0031A200 4E 80 00 20 */ blr
+
+cn_closed:
+/* 8031E5A4 0031A204 3C 60 80 44 */ lis r3, lbl_80446C50@ha
+/* 8031E5A8 0031A208 7C 85 23 78 */ mr r5, r4
+/* 8031E5AC 0031A20C 38 83 6C 50 */ addi r4, r3, lbl_80446C50@l
+/* 8031E5B0 0031A210 38 60 00 01 */ li r3, 1
+/* 8031E5B4 0031A214 4C C6 31 82 */ crclr 6
+/* 8031E5B8 0031A218 4B FF E5 7C */ b DWC_Printf
+
+cn_listen:
+/* 8031E5BC 0031A21C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031E5C0 0031A220 7C 08 02 A6 */ mflr r0
+/* 8031E5C4 0031A224 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031E5C8 0031A228 39 61 00 20 */ addi r11, r1, 0x20
+/* 8031E5CC 0031A22C 4B EA 8B 5D */ bl _savegpr_27
+/* 8031E5D0 0031A230 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E5D4 0031A234 7C 9C 23 78 */ mr r28, r4
+/* 8031E5D8 0031A238 7C BD 2B 78 */ mr r29, r5
+/* 8031E5DC 0031A23C 7C DE 33 78 */ mr r30, r6
+/* 8031E5E0 0031A240 80 03 00 00 */ lwz r0, 0(r3)
+/* 8031E5E4 0031A244 3B E0 00 00 */ li r31, 0
+/* 8031E5E8 0031A248 2C 00 00 03 */ cmpwi r0, 3
+/* 8031E5EC 0031A24C 41 82 02 08 */ beq lbl_8031E7F4
+/* 8031E5F0 0031A250 40 80 00 14 */ bge lbl_8031E604
+/* 8031E5F4 0031A254 2C 00 00 01 */ cmpwi r0, 1
+/* 8031E5F8 0031A258 41 82 00 20 */ beq lbl_8031E618
+/* 8031E5FC 0031A25C 40 80 00 24 */ bge lbl_8031E620
+/* 8031E600 0031A260 48 00 02 A4 */ b lbl_8031E8A4
+lbl_8031E604:
+/* 8031E604 0031A264 2C 00 00 08 */ cmpwi r0, 8
+/* 8031E608 0031A268 40 80 02 9C */ bge lbl_8031E8A4
+/* 8031E60C 0031A26C 2C 00 00 06 */ cmpwi r0, 6
+/* 8031E610 0031A270 40 80 01 E4 */ bge lbl_8031E7F4
+/* 8031E614 0031A274 48 00 02 90 */ b lbl_8031E8A4
+lbl_8031E618:
+/* 8031E618 0031A278 38 00 00 02 */ li r0, 2
+/* 8031E61C 0031A27C 90 03 00 00 */ stw r0, 0(r3)
+lbl_8031E620:
+/* 8031E620 0031A280 80 CD B0 3C */ lwz r6, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E624 0031A284 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E628 0031A288 80 A6 00 D4 */ lwz r5, 0xd4(r6)
+/* 8031E62C 0031A28C 80 03 01 78 */ lwz r0, 0x178(r3)
+/* 8031E630 0031A290 7C 05 00 00 */ cmpw r5, r0
+/* 8031E634 0031A294 40 80 02 80 */ bge lbl_8031E8B4
+/* 8031E638 0031A298 38 05 00 01 */ addi r0, r5, 1
+/* 8031E63C 0031A29C 38 E0 00 00 */ li r7, 0
+/* 8031E640 0031A2A0 90 06 00 D4 */ stw r0, 0xd4(r6)
+/* 8031E644 0031A2A4 81 0D B0 3C */ lwz r8, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E648 0031A2A8 7D 03 43 78 */ mr r3, r8
+/* 8031E64C 0031A2AC 48 00 00 0C */ b lbl_8031E658
+lbl_8031E650:
+/* 8031E650 0031A2B0 38 63 00 08 */ addi r3, r3, 8
+/* 8031E654 0031A2B4 38 E7 00 01 */ addi r7, r7, 1
+lbl_8031E658:
+/* 8031E658 0031A2B8 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8031E65C 0031A2BC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031E660 0031A2C0 41 82 00 0C */ beq lbl_8031E66C
+/* 8031E664 0031A2C4 2C 07 00 10 */ cmpwi r7, 0x10
+/* 8031E668 0031A2C8 41 80 FF E8 */ blt lbl_8031E650
+lbl_8031E66C:
+/* 8031E66C 0031A2CC 2C 07 00 10 */ cmpwi r7, 0x10
+/* 8031E670 0031A2D0 40 80 00 30 */ bge lbl_8031E6A0
+/* 8031E674 0031A2D4 54 A0 10 3A */ slwi r0, r5, 2
+/* 8031E678 0031A2D8 54 E6 18 38 */ slwi r6, r7, 3
+/* 8031E67C 0031A2DC 7C 68 02 14 */ add r3, r8, r0
+/* 8031E680 0031A2E0 90 E3 00 94 */ stw r7, 0x94(r3)
+/* 8031E684 0031A2E4 80 0D B0 3C */ lwz r0, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E688 0031A2E8 7C 60 32 14 */ add r3, r0, r6
+/* 8031E68C 0031A2EC 90 A3 00 18 */ stw r5, 0x18(r3)
+/* 8031E690 0031A2F0 80 0D B0 3C */ lwz r0, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E694 0031A2F4 7C 60 32 14 */ add r3, r0, r6
+/* 8031E698 0031A2F8 38 63 00 14 */ addi r3, r3, 0x14
+/* 8031E69C 0031A2FC 48 00 00 08 */ b lbl_8031E6A4
+lbl_8031E6A0:
+/* 8031E6A0 0031A300 38 60 00 00 */ li r3, 0
+lbl_8031E6A4:
+/* 8031E6A4 0031A304 90 83 00 00 */ stw r4, 0(r3)
+/* 8031E6A8 0031A308 7F 83 E3 78 */ mr r3, r28
+/* 8031E6AC 0031A30C 80 8D B0 3C */ lwz r4, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E6B0 0031A310 38 84 00 04 */ addi r4, r4, 4
+/* 8031E6B4 0031A314 48 02 B3 D9 */ bl gt2Accept
+/* 8031E6B8 0031A318 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E6BC 0031A31C 3B E0 00 01 */ li r31, 1
+/* 8031E6C0 0031A320 80 6D B0 3C */ lwz r3, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E6C4 0031A324 80 04 01 78 */ lwz r0, 0x178(r4)
+/* 8031E6C8 0031A328 80 63 00 D4 */ lwz r3, 0xd4(r3)
+/* 8031E6CC 0031A32C 7C 03 00 00 */ cmpw r3, r0
+/* 8031E6D0 0031A330 40 82 01 E4 */ bne lbl_8031E8B4
+/* 8031E6D4 0031A334 38 60 00 04 */ li r3, 4
+/* 8031E6D8 0031A338 38 00 00 00 */ li r0, 0
+/* 8031E6DC 0031A33C 90 64 00 00 */ stw r3, 0(r4)
+/* 8031E6E0 0031A340 38 80 00 00 */ li r4, 0
+/* 8031E6E4 0031A344 38 A0 00 40 */ li r5, 0x40
+/* 8031E6E8 0031A348 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E6EC 0031A34C 90 03 01 74 */ stw r0, 0x174(r3)
+/* 8031E6F0 0031A350 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E6F4 0031A354 90 03 01 2C */ stw r0, 0x12c(r3)
+/* 8031E6F8 0031A358 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E6FC 0031A35C 38 63 01 30 */ addi r3, r3, 0x130
+/* 8031E700 0031A360 4B CE 5A 05 */ bl memset
+/* 8031E704 0031A364 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E708 0031A368 3B 60 00 01 */ li r27, 1
+/* 8031E70C 0031A36C 3B 80 00 04 */ li r28, 4
+/* 8031E710 0031A370 80 03 01 70 */ lwz r0, 0x170(r3)
+/* 8031E714 0031A374 90 03 01 30 */ stw r0, 0x130(r3)
+/* 8031E718 0031A378 48 00 00 44 */ b lbl_8031E75C
+lbl_8031E71C:
+/* 8031E71C 0031A37C 7C 64 E2 14 */ add r3, r4, r28
+/* 8031E720 0031A380 80 03 00 94 */ lwz r0, 0x94(r3)
+/* 8031E724 0031A384 2C 00 FF FF */ cmpwi r0, -1
+/* 8031E728 0031A388 40 82 00 0C */ bne lbl_8031E734
+/* 8031E72C 0031A38C 38 60 00 00 */ li r3, 0
+/* 8031E730 0031A390 48 00 00 10 */ b lbl_8031E740
+lbl_8031E734:
+/* 8031E734 0031A394 54 00 18 38 */ slwi r0, r0, 3
+/* 8031E738 0031A398 7C 64 02 14 */ add r3, r4, r0
+/* 8031E73C 0031A39C 38 63 00 14 */ addi r3, r3, 0x14
+lbl_8031E740:
+/* 8031E740 0031A3A0 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031E744 0031A3A4 48 02 B6 75 */ bl func_80349DB8
+/* 8031E748 0031A3A8 80 0D B0 38 */ lwz r0, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E74C 0031A3AC 3B 7B 00 01 */ addi r27, r27, 1
+/* 8031E750 0031A3B0 7C 80 E2 14 */ add r4, r0, r28
+/* 8031E754 0031A3B4 3B 9C 00 04 */ addi r28, r28, 4
+/* 8031E758 0031A3B8 90 64 01 30 */ stw r3, 0x130(r4)
+lbl_8031E75C:
+/* 8031E75C 0031A3BC 80 8D B0 3C */ lwz r4, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E760 0031A3C0 80 04 00 D4 */ lwz r0, 0xd4(r4)
+/* 8031E764 0031A3C4 7C 1B 00 00 */ cmpw r27, r0
+/* 8031E768 0031A3C8 41 80 FF B4 */ blt lbl_8031E71C
+/* 8031E76C 0031A3CC 3B 60 00 01 */ li r27, 1
+/* 8031E770 0031A3D0 3B 80 00 04 */ li r28, 4
+/* 8031E774 0031A3D4 48 00 00 6C */ b lbl_8031E7E0
+lbl_8031E778:
+/* 8031E778 0031A3D8 7C 65 E2 14 */ add r3, r5, r28
+/* 8031E77C 0031A3DC 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E780 0031A3E0 80 03 00 94 */ lwz r0, 0x94(r3)
+/* 8031E784 0031A3E4 38 84 01 2C */ addi r4, r4, 0x12c
+/* 8031E788 0031A3E8 2C 00 FF FF */ cmpwi r0, -1
+/* 8031E78C 0031A3EC 40 82 00 0C */ bne lbl_8031E798
+/* 8031E790 0031A3F0 38 60 00 00 */ li r3, 0
+/* 8031E794 0031A3F4 48 00 00 10 */ b lbl_8031E7A4
+lbl_8031E798:
+/* 8031E798 0031A3F8 54 00 18 38 */ slwi r0, r0, 3
+/* 8031E79C 0031A3FC 7C 65 02 14 */ add r3, r5, r0
+/* 8031E7A0 0031A400 38 63 00 14 */ addi r3, r3, 0x14
+lbl_8031E7A4:
+/* 8031E7A4 0031A404 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031E7A8 0031A408 38 A0 00 44 */ li r5, 0x44
+/* 8031E7AC 0031A40C 38 C0 00 01 */ li r6, 1
+/* 8031E7B0 0031A410 48 02 B4 8D */ bl gt2Send
+/* 8031E7B4 0031A414 80 6D B0 38 */ lwz r3, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E7B8 0031A418 80 03 00 00 */ lwz r0, 0(r3)
+/* 8031E7BC 0031A41C 2C 00 00 08 */ cmpwi r0, 8
+/* 8031E7C0 0031A420 40 82 00 18 */ bne lbl_8031E7D8
+/* 8031E7C4 0031A424 81 83 02 04 */ lwz r12, 0x204(r3)
+/* 8031E7C8 0031A428 7F 64 DB 78 */ mr r4, r27
+/* 8031E7CC 0031A42C 38 60 00 44 */ li r3, 0x44
+/* 8031E7D0 0031A430 7D 89 03 A6 */ mtctr r12
+/* 8031E7D4 0031A434 4E 80 04 21 */ bctrl
+lbl_8031E7D8:
+/* 8031E7D8 0031A438 3B 9C 00 04 */ addi r28, r28, 4
+/* 8031E7DC 0031A43C 3B 7B 00 01 */ addi r27, r27, 1
+lbl_8031E7E0:
+/* 8031E7E0 0031A440 80 AD B0 3C */ lwz r5, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E7E4 0031A444 80 05 00 D4 */ lwz r0, 0xd4(r5)
+/* 8031E7E8 0031A448 7C 1B 00 00 */ cmpw r27, r0
+/* 8031E7EC 0031A44C 41 80 FF 8C */ blt lbl_8031E778
+/* 8031E7F0 0031A450 48 00 00 C4 */ b lbl_8031E8B4
+lbl_8031E7F4:
+/* 8031E7F4 0031A454 7F 83 E3 78 */ mr r3, r28
+/* 8031E7F8 0031A458 3B 60 00 00 */ li r27, 0
+/* 8031E7FC 0031A45C 48 02 B5 BD */ bl func_80349DB8
+/* 8031E800 0031A460 80 8D B0 38 */ lwz r4, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E804 0031A464 48 00 00 14 */ b lbl_8031E818
+lbl_8031E808:
+/* 8031E808 0031A468 7C 03 00 40 */ cmplw r3, r0
+/* 8031E80C 0031A46C 41 82 00 18 */ beq lbl_8031E824
+/* 8031E810 0031A470 38 84 00 08 */ addi r4, r4, 8
+/* 8031E814 0031A474 3B 7B 00 01 */ addi r27, r27, 1
+lbl_8031E818:
+/* 8031E818 0031A478 80 04 01 7C */ lwz r0, 0x17c(r4)
+/* 8031E81C 0031A47C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031E820 0031A480 40 82 FF E8 */ bne lbl_8031E808
+lbl_8031E824:
+/* 8031E824 0031A484 80 CD B0 3C */ lwz r6, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E828 0031A488 38 80 00 00 */ li r4, 0
+/* 8031E82C 0031A48C 7C C3 33 78 */ mr r3, r6
+/* 8031E830 0031A490 48 00 00 0C */ b lbl_8031E83C
+lbl_8031E834:
+/* 8031E834 0031A494 38 63 00 08 */ addi r3, r3, 8
+/* 8031E838 0031A498 38 84 00 01 */ addi r4, r4, 1
+lbl_8031E83C:
+/* 8031E83C 0031A49C 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8031E840 0031A4A0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031E844 0031A4A4 41 82 00 0C */ beq lbl_8031E850
+/* 8031E848 0031A4A8 2C 04 00 10 */ cmpwi r4, 0x10
+/* 8031E84C 0031A4AC 41 80 FF E8 */ blt lbl_8031E834
+lbl_8031E850:
+/* 8031E850 0031A4B0 2C 04 00 10 */ cmpwi r4, 0x10
+/* 8031E854 0031A4B4 40 80 00 30 */ bge lbl_8031E884
+/* 8031E858 0031A4B8 57 60 10 3A */ slwi r0, r27, 2
+/* 8031E85C 0031A4BC 54 85 18 38 */ slwi r5, r4, 3
+/* 8031E860 0031A4C0 7C 66 02 14 */ add r3, r6, r0
+/* 8031E864 0031A4C4 90 83 00 94 */ stw r4, 0x94(r3)
+/* 8031E868 0031A4C8 80 0D B0 3C */ lwz r0, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E86C 0031A4CC 7C 60 2A 14 */ add r3, r0, r5
+/* 8031E870 0031A4D0 93 63 00 18 */ stw r27, 0x18(r3)
+/* 8031E874 0031A4D4 80 0D B0 3C */ lwz r0, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E878 0031A4D8 7C 60 2A 14 */ add r3, r0, r5
+/* 8031E87C 0031A4DC 38 63 00 14 */ addi r3, r3, 0x14
+/* 8031E880 0031A4E0 48 00 00 08 */ b lbl_8031E888
+lbl_8031E884:
+/* 8031E884 0031A4E4 38 60 00 00 */ li r3, 0
+lbl_8031E888:
+/* 8031E888 0031A4E8 93 83 00 00 */ stw r28, 0(r3)
+/* 8031E88C 0031A4EC 7F 83 E3 78 */ mr r3, r28
+/* 8031E890 0031A4F0 80 8D B0 3C */ lwz r4, lbl_806402FC-_SDA_BASE_(r13)
+/* 8031E894 0031A4F4 38 84 00 04 */ addi r4, r4, 4
+/* 8031E898 0031A4F8 48 02 B1 F5 */ bl gt2Accept
+/* 8031E89C 0031A4FC 3B E0 00 01 */ li r31, 1
+/* 8031E8A0 0031A500 48 00 00 14 */ b lbl_8031E8B4
+lbl_8031E8A4:
+/* 8031E8A4 0031A504 7F 83 E3 78 */ mr r3, r28
+/* 8031E8A8 0031A508 38 80 00 00 */ li r4, 0
+/* 8031E8AC 0031A50C 38 A0 00 00 */ li r5, 0
+/* 8031E8B0 0031A510 48 02 B1 E1 */ bl gt2Reject
+lbl_8031E8B4:
+/* 8031E8B4 0031A514 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031E8B8 0031A518 3B 8D 8D 60 */ addi r28, r13, lbl_8063E020-_SDA_BASE_
+/* 8031E8BC 0031A51C 41 82 00 08 */ beq lbl_8031E8C4
+/* 8031E8C0 0031A520 3B 8D 8D 58 */ addi r28, r13, lbl_8063E018-_SDA_BASE_
+lbl_8031E8C4:
+/* 8031E8C4 0031A524 7F A3 EB 78 */ mr r3, r29
+/* 8031E8C8 0031A528 7F C4 F3 78 */ mr r4, r30
+/* 8031E8CC 0031A52C 38 A0 00 00 */ li r5, 0
+/* 8031E8D0 0031A530 48 02 F2 7D */ bl gt2AddressToString
+/* 8031E8D4 0031A534 80 ED B0 38 */ lwz r7, lbl_806402F8-_SDA_BASE_(r13)
+/* 8031E8D8 0031A538 3C 80 80 44 */ lis r4, lbl_80446C60@ha
+/* 8031E8DC 0031A53C 7C 66 1B 78 */ mr r6, r3
+/* 8031E8E0 0031A540 7F 85 E3 78 */ mr r5, r28
+/* 8031E8E4 0031A544 80 E7 00 00 */ lwz r7, 0(r7)
+/* 8031E8E8 0031A548 38 84 6C 60 */ addi r4, r4, lbl_80446C60@l
+/* 8031E8EC 0031A54C 38 60 00 01 */ li r3, 1
+/* 8031E8F0 0031A550 4C C6 31 82 */ crclr 6
+/* 8031E8F4 0031A554 4B FF E2 41 */ bl DWC_Printf
+/* 8031E8F8 0031A558 39 61 00 20 */ addi r11, r1, 0x20
+/* 8031E8FC 0031A55C 4B EA 88 79 */ bl _restgpr_27
+/* 8031E900 0031A560 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031E904 0031A564 7C 08 03 A6 */ mtlr r0
+/* 8031E908 0031A568 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031E90C 0031A56C 4E 80 00 20 */ blr
+
+.global ss_qsort
+ss_qsort:
+/* 8031E910 0031A570 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8031E914 0031A574 7C 08 02 A6 */ mflr r0
+/* 8031E918 0031A578 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031E91C 0031A57C 39 61 00 30 */ addi r11, r1, 0x30
+/* 8031E920 0031A580 4B EA 88 01 */ bl _savegpr_25
+/* 8031E924 0031A584 7C 04 28 00 */ cmpw r4, r5
+/* 8031E928 0031A588 7C 79 1B 78 */ mr r25, r3
+/* 8031E92C 0031A58C 7C BA 2B 78 */ mr r26, r5
+/* 8031E930 0031A590 40 80 04 A4 */ bge lbl_8031EDD4
+/* 8031E934 0031A594 7C E4 2A 14 */ add r7, r4, r5
+/* 8031E938 0031A598 54 80 10 3A */ slwi r0, r4, 2
+/* 8031E93C 0031A59C 54 E6 0F FE */ srwi r6, r7, 0x1f
+/* 8031E940 0031A5A0 39 84 00 01 */ addi r12, r4, 1
+/* 8031E944 0031A5A4 7C E6 3A 14 */ add r7, r6, r7
+/* 8031E948 0031A5A8 7D 63 00 2E */ lwzx r11, r3, r0
+/* 8031E94C 0031A5AC 54 EA 08 3A */ rlwinm r10, r7, 1, 0, 0x1d
+/* 8031E950 0031A5B0 38 C5 00 01 */ addi r6, r5, 1
+/* 8031E954 0031A5B4 7D 23 50 2E */ lwzx r9, r3, r10
+/* 8031E958 0031A5B8 55 88 10 3A */ slwi r8, r12, 2
+/* 8031E95C 0031A5BC 7C CC 30 50 */ subf r6, r12, r6
+/* 8031E960 0031A5C0 7C 9B 23 78 */ mr r27, r4
+/* 8031E964 0031A5C4 7D 23 01 2E */ stwx r9, r3, r0
+/* 8031E968 0031A5C8 7C 07 03 78 */ mr r7, r0
+/* 8031E96C 0031A5CC 7D 03 42 14 */ add r8, r3, r8
+/* 8031E970 0031A5D0 7D 63 51 2E */ stwx r11, r3, r10
+/* 8031E974 0031A5D4 7C C9 03 A6 */ mtctr r6
+/* 8031E978 0031A5D8 7C 0C 28 00 */ cmpw r12, r5
+/* 8031E97C 0031A5DC 41 81 00 30 */ bgt lbl_8031E9AC
+lbl_8031E980:
+/* 8031E980 0031A5E0 80 C8 00 00 */ lwz r6, 0(r8)
+/* 8031E984 0031A5E4 7C A3 00 2E */ lwzx r5, r3, r0
+/* 8031E988 0031A5E8 7C 06 28 40 */ cmplw r6, r5
+/* 8031E98C 0031A5EC 40 80 00 18 */ bge lbl_8031E9A4
+/* 8031E990 0031A5F0 38 E7 00 04 */ addi r7, r7, 4
+/* 8031E994 0031A5F4 3B 7B 00 01 */ addi r27, r27, 1
+/* 8031E998 0031A5F8 7C A3 38 2E */ lwzx r5, r3, r7
+/* 8031E99C 0031A5FC 90 A8 00 00 */ stw r5, 0(r8)
+/* 8031E9A0 0031A600 7C C3 39 2E */ stwx r6, r3, r7
+lbl_8031E9A4:
+/* 8031E9A4 0031A604 39 08 00 04 */ addi r8, r8, 4
+/* 8031E9A8 0031A608 42 00 FF D8 */ bdnz lbl_8031E980
+lbl_8031E9AC:
+/* 8031E9AC 0031A60C 57 7C 10 3A */ slwi r28, r27, 2
+/* 8031E9B0 0031A610 39 3B FF FF */ addi r9, r27, -1
+/* 8031E9B4 0031A614 7C C3 00 2E */ lwzx r6, r3, r0
+/* 8031E9B8 0031A618 7C 04 48 00 */ cmpw r4, r9
+/* 8031E9BC 0031A61C 7C A3 E0 2E */ lwzx r5, r3, r28
+/* 8031E9C0 0031A620 7C A3 01 2E */ stwx r5, r3, r0
+/* 8031E9C4 0031A624 7C C3 E1 2E */ stwx r6, r3, r28
+/* 8031E9C8 0031A628 40 80 02 00 */ bge lbl_8031EBC8
+/* 8031E9CC 0031A62C 7C A4 DA 14 */ add r5, r4, r27
+/* 8031E9D0 0031A630 39 44 00 01 */ addi r10, r4, 1
+/* 8031E9D4 0031A634 39 05 FF FF */ addi r8, r5, -1
+/* 8031E9D8 0031A638 7D 63 00 2E */ lwzx r11, r3, r0
+/* 8031E9DC 0031A63C 55 07 0F FE */ srwi r7, r8, 0x1f
+/* 8031E9E0 0031A640 38 A9 00 01 */ addi r5, r9, 1
+/* 8031E9E4 0031A644 7C E7 42 14 */ add r7, r7, r8
+/* 8031E9E8 0031A648 55 46 10 3A */ slwi r6, r10, 2
+/* 8031E9EC 0031A64C 54 E8 08 3A */ rlwinm r8, r7, 1, 0, 0x1d
+/* 8031E9F0 0031A650 7C AA 28 50 */ subf r5, r10, r5
+/* 8031E9F4 0031A654 7C E3 40 2E */ lwzx r7, r3, r8
+/* 8031E9F8 0031A658 7D 83 32 14 */ add r12, r3, r6
+/* 8031E9FC 0031A65C 7C 9F 23 78 */ mr r31, r4
+/* 8031EA00 0031A660 54 86 10 3A */ slwi r6, r4, 2
+/* 8031EA04 0031A664 7C E3 01 2E */ stwx r7, r3, r0
+/* 8031EA08 0031A668 7D 63 41 2E */ stwx r11, r3, r8
+/* 8031EA0C 0031A66C 7C A9 03 A6 */ mtctr r5
+/* 8031EA10 0031A670 7C 0A 48 00 */ cmpw r10, r9
+/* 8031EA14 0031A674 41 81 00 30 */ bgt lbl_8031EA44
+lbl_8031EA18:
+/* 8031EA18 0031A678 80 EC 00 00 */ lwz r7, 0(r12)
+/* 8031EA1C 0031A67C 7C A3 00 2E */ lwzx r5, r3, r0
+/* 8031EA20 0031A680 7C 07 28 40 */ cmplw r7, r5
+/* 8031EA24 0031A684 40 80 00 18 */ bge lbl_8031EA3C
+/* 8031EA28 0031A688 38 C6 00 04 */ addi r6, r6, 4
+/* 8031EA2C 0031A68C 3B FF 00 01 */ addi r31, r31, 1
+/* 8031EA30 0031A690 7C A3 30 2E */ lwzx r5, r3, r6
+/* 8031EA34 0031A694 90 AC 00 00 */ stw r5, 0(r12)
+/* 8031EA38 0031A698 7C E3 31 2E */ stwx r7, r3, r6
+lbl_8031EA3C:
+/* 8031EA3C 0031A69C 39 8C 00 04 */ addi r12, r12, 4
+/* 8031EA40 0031A6A0 42 00 FF D8 */ bdnz lbl_8031EA18
+lbl_8031EA44:
+/* 8031EA44 0031A6A4 57 FD 10 3A */ slwi r29, r31, 2
+/* 8031EA48 0031A6A8 39 3F FF FF */ addi r9, r31, -1
+/* 8031EA4C 0031A6AC 7C C3 00 2E */ lwzx r6, r3, r0
+/* 8031EA50 0031A6B0 7C 04 48 00 */ cmpw r4, r9
+/* 8031EA54 0031A6B4 7C A3 E8 2E */ lwzx r5, r3, r29
+/* 8031EA58 0031A6B8 7C A3 01 2E */ stwx r5, r3, r0
+/* 8031EA5C 0031A6BC 7C C3 E9 2E */ stwx r6, r3, r29
+/* 8031EA60 0031A6C0 40 80 00 AC */ bge lbl_8031EB0C
+/* 8031EA64 0031A6C4 7C A4 FA 14 */ add r5, r4, r31
+/* 8031EA68 0031A6C8 39 44 00 01 */ addi r10, r4, 1
+/* 8031EA6C 0031A6CC 39 05 FF FF */ addi r8, r5, -1
+/* 8031EA70 0031A6D0 7D 63 00 2E */ lwzx r11, r3, r0
+/* 8031EA74 0031A6D4 55 07 0F FE */ srwi r7, r8, 0x1f
+/* 8031EA78 0031A6D8 38 A9 00 01 */ addi r5, r9, 1
+/* 8031EA7C 0031A6DC 7C E7 42 14 */ add r7, r7, r8
+/* 8031EA80 0031A6E0 55 46 10 3A */ slwi r6, r10, 2
+/* 8031EA84 0031A6E4 54 E8 08 3A */ rlwinm r8, r7, 1, 0, 0x1d
+/* 8031EA88 0031A6E8 7C AA 28 50 */ subf r5, r10, r5
+/* 8031EA8C 0031A6EC 7C E3 40 2E */ lwzx r7, r3, r8
+/* 8031EA90 0031A6F0 7D 83 32 14 */ add r12, r3, r6
+/* 8031EA94 0031A6F4 7C 9E 23 78 */ mr r30, r4
+/* 8031EA98 0031A6F8 54 86 10 3A */ slwi r6, r4, 2
+/* 8031EA9C 0031A6FC 7C E3 01 2E */ stwx r7, r3, r0
+/* 8031EAA0 0031A700 7D 63 41 2E */ stwx r11, r3, r8
+/* 8031EAA4 0031A704 7C A9 03 A6 */ mtctr r5
+/* 8031EAA8 0031A708 7C 0A 48 00 */ cmpw r10, r9
+/* 8031EAAC 0031A70C 41 81 00 30 */ bgt lbl_8031EADC
+lbl_8031EAB0:
+/* 8031EAB0 0031A710 80 EC 00 00 */ lwz r7, 0(r12)
+/* 8031EAB4 0031A714 7C A3 00 2E */ lwzx r5, r3, r0
+/* 8031EAB8 0031A718 7C 07 28 40 */ cmplw r7, r5
+/* 8031EABC 0031A71C 40 80 00 18 */ bge lbl_8031EAD4
+/* 8031EAC0 0031A720 38 C6 00 04 */ addi r6, r6, 4
+/* 8031EAC4 0031A724 3B DE 00 01 */ addi r30, r30, 1
+/* 8031EAC8 0031A728 7C A3 30 2E */ lwzx r5, r3, r6
+/* 8031EACC 0031A72C 90 AC 00 00 */ stw r5, 0(r12)
+/* 8031EAD0 0031A730 7C E3 31 2E */ stwx r7, r3, r6
+lbl_8031EAD4:
+/* 8031EAD4 0031A734 39 8C 00 04 */ addi r12, r12, 4
+/* 8031EAD8 0031A738 42 00 FF D8 */ bdnz lbl_8031EAB0
+lbl_8031EADC:
+/* 8031EADC 0031A73C 57 C7 10 3A */ slwi r7, r30, 2
+/* 8031EAE0 0031A740 7D 03 00 2E */ lwzx r8, r3, r0
+/* 8031EAE4 0031A744 7C C3 38 2E */ lwzx r6, r3, r7
+/* 8031EAE8 0031A748 38 BE FF FF */ addi r5, r30, -1
+/* 8031EAEC 0031A74C 7C C3 01 2E */ stwx r6, r3, r0
+/* 8031EAF0 0031A750 7D 03 39 2E */ stwx r8, r3, r7
+/* 8031EAF4 0031A754 7F 23 CB 78 */ mr r3, r25
+/* 8031EAF8 0031A758 4B FF FE 19 */ bl ss_qsort
+/* 8031EAFC 0031A75C 7F 23 CB 78 */ mr r3, r25
+/* 8031EB00 0031A760 38 9E 00 01 */ addi r4, r30, 1
+/* 8031EB04 0031A764 38 BF FF FF */ addi r5, r31, -1
+/* 8031EB08 0031A768 4B FF FE 09 */ bl ss_qsort
+lbl_8031EB0C:
+/* 8031EB0C 0031A76C 3B DF 00 01 */ addi r30, r31, 1
+/* 8031EB10 0031A770 38 FB FF FF */ addi r7, r27, -1
+/* 8031EB14 0031A774 7C 1E 38 00 */ cmpw r30, r7
+/* 8031EB18 0031A778 40 80 00 B0 */ bge lbl_8031EBC8
+/* 8031EB1C 0031A77C 7C 7B FA 14 */ add r3, r27, r31
+/* 8031EB20 0031A780 7C D9 EA 14 */ add r6, r25, r29
+/* 8031EB24 0031A784 54 60 0F FE */ srwi r0, r3, 0x1f
+/* 8031EB28 0031A788 81 26 00 04 */ lwz r9, 4(r6)
+/* 8031EB2C 0031A78C 7C 60 1A 14 */ add r3, r0, r3
+/* 8031EB30 0031A790 39 1F 00 02 */ addi r8, r31, 2
+/* 8031EB34 0031A794 54 65 08 3A */ rlwinm r5, r3, 1, 0, 0x1d
+/* 8031EB38 0031A798 38 07 00 01 */ addi r0, r7, 1
+/* 8031EB3C 0031A79C 7C 99 28 2E */ lwzx r4, r25, r5
+/* 8031EB40 0031A7A0 55 03 10 3A */ slwi r3, r8, 2
+/* 8031EB44 0031A7A4 7D 59 1A 14 */ add r10, r25, r3
+/* 8031EB48 0031A7A8 7C 08 00 50 */ subf r0, r8, r0
+/* 8031EB4C 0031A7AC 90 86 00 04 */ stw r4, 4(r6)
+/* 8031EB50 0031A7B0 57 C3 10 3A */ slwi r3, r30, 2
+/* 8031EB54 0031A7B4 7D 39 29 2E */ stwx r9, r25, r5
+/* 8031EB58 0031A7B8 7C 09 03 A6 */ mtctr r0
+/* 8031EB5C 0031A7BC 7C 08 38 00 */ cmpw r8, r7
+/* 8031EB60 0031A7C0 41 81 00 30 */ bgt lbl_8031EB90
+lbl_8031EB64:
+/* 8031EB64 0031A7C4 80 8A 00 00 */ lwz r4, 0(r10)
+/* 8031EB68 0031A7C8 80 06 00 04 */ lwz r0, 4(r6)
+/* 8031EB6C 0031A7CC 7C 04 00 40 */ cmplw r4, r0
+/* 8031EB70 0031A7D0 40 80 00 18 */ bge lbl_8031EB88
+/* 8031EB74 0031A7D4 38 63 00 04 */ addi r3, r3, 4
+/* 8031EB78 0031A7D8 3B DE 00 01 */ addi r30, r30, 1
+/* 8031EB7C 0031A7DC 7C 19 18 2E */ lwzx r0, r25, r3
+/* 8031EB80 0031A7E0 90 0A 00 00 */ stw r0, 0(r10)
+/* 8031EB84 0031A7E4 7C 99 19 2E */ stwx r4, r25, r3
+lbl_8031EB88:
+/* 8031EB88 0031A7E8 39 4A 00 04 */ addi r10, r10, 4
+/* 8031EB8C 0031A7EC 42 00 FF D8 */ bdnz lbl_8031EB64
+lbl_8031EB90:
+/* 8031EB90 0031A7F0 7C F9 EA 14 */ add r7, r25, r29
+/* 8031EB94 0031A7F4 57 C6 10 3A */ slwi r6, r30, 2
+/* 8031EB98 0031A7F8 81 07 00 04 */ lwz r8, 4(r7)
+/* 8031EB9C 0031A7FC 7F 23 CB 78 */ mr r3, r25
+/* 8031EBA0 0031A800 7C 19 30 2E */ lwzx r0, r25, r6
+/* 8031EBA4 0031A804 38 9F 00 01 */ addi r4, r31, 1
+/* 8031EBA8 0031A808 38 BE FF FF */ addi r5, r30, -1
+/* 8031EBAC 0031A80C 90 07 00 04 */ stw r0, 4(r7)
+/* 8031EBB0 0031A810 7D 19 31 2E */ stwx r8, r25, r6
+/* 8031EBB4 0031A814 4B FF FD 5D */ bl ss_qsort
+/* 8031EBB8 0031A818 7F 23 CB 78 */ mr r3, r25
+/* 8031EBBC 0031A81C 38 9E 00 01 */ addi r4, r30, 1
+/* 8031EBC0 0031A820 38 BB FF FF */ addi r5, r27, -1
+/* 8031EBC4 0031A824 4B FF FD 4D */ bl ss_qsort
+lbl_8031EBC8:
+/* 8031EBC8 0031A828 3B FB 00 01 */ addi r31, r27, 1
+/* 8031EBCC 0031A82C 7C 1F D0 00 */ cmpw r31, r26
+/* 8031EBD0 0031A830 40 80 02 04 */ bge lbl_8031EDD4
+/* 8031EBD4 0031A834 7C 7B D2 14 */ add r3, r27, r26
+/* 8031EBD8 0031A838 7C D9 E2 14 */ add r6, r25, r28
+/* 8031EBDC 0031A83C 38 83 00 01 */ addi r4, r3, 1
+/* 8031EBE0 0031A840 81 06 00 04 */ lwz r8, 4(r6)
+/* 8031EBE4 0031A844 54 83 0F FE */ srwi r3, r4, 0x1f
+/* 8031EBE8 0031A848 38 FB 00 02 */ addi r7, r27, 2
+/* 8031EBEC 0031A84C 7C 83 22 14 */ add r4, r3, r4
+/* 8031EBF0 0031A850 38 1A 00 01 */ addi r0, r26, 1
+/* 8031EBF4 0031A854 54 85 08 3A */ rlwinm r5, r4, 1, 0, 0x1d
+/* 8031EBF8 0031A858 54 E3 10 3A */ slwi r3, r7, 2
+/* 8031EBFC 0031A85C 7C 99 28 2E */ lwzx r4, r25, r5
+/* 8031EC00 0031A860 7D 39 1A 14 */ add r9, r25, r3
+/* 8031EC04 0031A864 7C 07 00 50 */ subf r0, r7, r0
+/* 8031EC08 0031A868 57 E3 10 3A */ slwi r3, r31, 2
+/* 8031EC0C 0031A86C 90 86 00 04 */ stw r4, 4(r6)
+/* 8031EC10 0031A870 7D 19 29 2E */ stwx r8, r25, r5
+/* 8031EC14 0031A874 7C 09 03 A6 */ mtctr r0
+/* 8031EC18 0031A878 7C 07 D0 00 */ cmpw r7, r26
+/* 8031EC1C 0031A87C 41 81 00 30 */ bgt lbl_8031EC4C
+lbl_8031EC20:
+/* 8031EC20 0031A880 80 89 00 00 */ lwz r4, 0(r9)
+/* 8031EC24 0031A884 80 06 00 04 */ lwz r0, 4(r6)
+/* 8031EC28 0031A888 7C 04 00 40 */ cmplw r4, r0
+/* 8031EC2C 0031A88C 40 80 00 18 */ bge lbl_8031EC44
+/* 8031EC30 0031A890 38 63 00 04 */ addi r3, r3, 4
+/* 8031EC34 0031A894 3B FF 00 01 */ addi r31, r31, 1
+/* 8031EC38 0031A898 7C 19 18 2E */ lwzx r0, r25, r3
+/* 8031EC3C 0031A89C 90 09 00 00 */ stw r0, 0(r9)
+/* 8031EC40 0031A8A0 7C 99 19 2E */ stwx r4, r25, r3
+lbl_8031EC44:
+/* 8031EC44 0031A8A4 39 29 00 04 */ addi r9, r9, 4
+/* 8031EC48 0031A8A8 42 00 FF D8 */ bdnz lbl_8031EC20
+lbl_8031EC4C:
+/* 8031EC4C 0031A8AC 7C F9 E2 14 */ add r7, r25, r28
+/* 8031EC50 0031A8B0 57 FC 10 3A */ slwi r28, r31, 2
+/* 8031EC54 0031A8B4 80 67 00 04 */ lwz r3, 4(r7)
+/* 8031EC58 0031A8B8 3B DB 00 01 */ addi r30, r27, 1
+/* 8031EC5C 0031A8BC 7C 19 E0 2E */ lwzx r0, r25, r28
+/* 8031EC60 0031A8C0 38 DF FF FF */ addi r6, r31, -1
+/* 8031EC64 0031A8C4 7C 1E 30 00 */ cmpw r30, r6
+/* 8031EC68 0031A8C8 90 07 00 04 */ stw r0, 4(r7)
+/* 8031EC6C 0031A8CC 7C 79 E1 2E */ stwx r3, r25, r28
+/* 8031EC70 0031A8D0 40 80 00 A8 */ bge lbl_8031ED18
+/* 8031EC74 0031A8D4 7C 9F DA 14 */ add r4, r31, r27
+/* 8031EC78 0031A8D8 81 27 00 04 */ lwz r9, 4(r7)
+/* 8031EC7C 0031A8DC 54 83 0F FE */ srwi r3, r4, 0x1f
+/* 8031EC80 0031A8E0 39 1B 00 02 */ addi r8, r27, 2
+/* 8031EC84 0031A8E4 7C 83 22 14 */ add r4, r3, r4
+/* 8031EC88 0031A8E8 38 06 00 01 */ addi r0, r6, 1
+/* 8031EC8C 0031A8EC 54 85 08 3A */ rlwinm r5, r4, 1, 0, 0x1d
+/* 8031EC90 0031A8F0 55 03 10 3A */ slwi r3, r8, 2
+/* 8031EC94 0031A8F4 7C 99 28 2E */ lwzx r4, r25, r5
+/* 8031EC98 0031A8F8 7C 08 00 50 */ subf r0, r8, r0
+/* 8031EC9C 0031A8FC 90 87 00 04 */ stw r4, 4(r7)
+/* 8031ECA0 0031A900 7C 99 1A 14 */ add r4, r25, r3
+/* 8031ECA4 0031A904 57 C3 10 3A */ slwi r3, r30, 2
+/* 8031ECA8 0031A908 7D 39 29 2E */ stwx r9, r25, r5
+/* 8031ECAC 0031A90C 7C 09 03 A6 */ mtctr r0
+/* 8031ECB0 0031A910 7C 08 30 00 */ cmpw r8, r6
+/* 8031ECB4 0031A914 41 81 00 30 */ bgt lbl_8031ECE4
+lbl_8031ECB8:
+/* 8031ECB8 0031A918 80 A4 00 00 */ lwz r5, 0(r4)
+/* 8031ECBC 0031A91C 80 07 00 04 */ lwz r0, 4(r7)
+/* 8031ECC0 0031A920 7C 05 00 40 */ cmplw r5, r0
+/* 8031ECC4 0031A924 40 80 00 18 */ bge lbl_8031ECDC
+/* 8031ECC8 0031A928 38 63 00 04 */ addi r3, r3, 4
+/* 8031ECCC 0031A92C 3B DE 00 01 */ addi r30, r30, 1
+/* 8031ECD0 0031A930 7C 19 18 2E */ lwzx r0, r25, r3
+/* 8031ECD4 0031A934 90 04 00 00 */ stw r0, 0(r4)
+/* 8031ECD8 0031A938 7C B9 19 2E */ stwx r5, r25, r3
+lbl_8031ECDC:
+/* 8031ECDC 0031A93C 38 84 00 04 */ addi r4, r4, 4
+/* 8031ECE0 0031A940 42 00 FF D8 */ bdnz lbl_8031ECB8
+lbl_8031ECE4:
+/* 8031ECE4 0031A944 57 C6 10 3A */ slwi r6, r30, 2
+/* 8031ECE8 0031A948 81 07 00 04 */ lwz r8, 4(r7)
+/* 8031ECEC 0031A94C 7C 19 30 2E */ lwzx r0, r25, r6
+/* 8031ECF0 0031A950 7F 23 CB 78 */ mr r3, r25
+/* 8031ECF4 0031A954 38 9B 00 01 */ addi r4, r27, 1
+/* 8031ECF8 0031A958 38 BE FF FF */ addi r5, r30, -1
+/* 8031ECFC 0031A95C 90 07 00 04 */ stw r0, 4(r7)
+/* 8031ED00 0031A960 7D 19 31 2E */ stwx r8, r25, r6
+/* 8031ED04 0031A964 4B FF FC 0D */ bl ss_qsort
+/* 8031ED08 0031A968 7F 23 CB 78 */ mr r3, r25
+/* 8031ED0C 0031A96C 38 9E 00 01 */ addi r4, r30, 1
+/* 8031ED10 0031A970 38 BF FF FF */ addi r5, r31, -1
+/* 8031ED14 0031A974 4B FF FB FD */ bl ss_qsort
+lbl_8031ED18:
+/* 8031ED18 0031A978 3B DF 00 01 */ addi r30, r31, 1
+/* 8031ED1C 0031A97C 7C 1E D0 00 */ cmpw r30, r26
+/* 8031ED20 0031A980 40 80 00 B4 */ bge lbl_8031EDD4
+/* 8031ED24 0031A984 7C 7F D2 14 */ add r3, r31, r26
+/* 8031ED28 0031A988 7C D9 E2 14 */ add r6, r25, r28
+/* 8031ED2C 0031A98C 38 83 00 01 */ addi r4, r3, 1
+/* 8031ED30 0031A990 81 06 00 04 */ lwz r8, 4(r6)
+/* 8031ED34 0031A994 54 83 0F FE */ srwi r3, r4, 0x1f
+/* 8031ED38 0031A998 38 FF 00 02 */ addi r7, r31, 2
+/* 8031ED3C 0031A99C 7C 83 22 14 */ add r4, r3, r4
+/* 8031ED40 0031A9A0 38 1A 00 01 */ addi r0, r26, 1
+/* 8031ED44 0031A9A4 54 85 08 3A */ rlwinm r5, r4, 1, 0, 0x1d
+/* 8031ED48 0031A9A8 54 E3 10 3A */ slwi r3, r7, 2
+/* 8031ED4C 0031A9AC 7C 99 28 2E */ lwzx r4, r25, r5
+/* 8031ED50 0031A9B0 7D 39 1A 14 */ add r9, r25, r3
+/* 8031ED54 0031A9B4 7C 07 00 50 */ subf r0, r7, r0
+/* 8031ED58 0031A9B8 57 C3 10 3A */ slwi r3, r30, 2
+/* 8031ED5C 0031A9BC 90 86 00 04 */ stw r4, 4(r6)
+/* 8031ED60 0031A9C0 7D 19 29 2E */ stwx r8, r25, r5
+/* 8031ED64 0031A9C4 7C 09 03 A6 */ mtctr r0
+/* 8031ED68 0031A9C8 7C 07 D0 00 */ cmpw r7, r26
+/* 8031ED6C 0031A9CC 41 81 00 30 */ bgt lbl_8031ED9C
+lbl_8031ED70:
+/* 8031ED70 0031A9D0 80 89 00 00 */ lwz r4, 0(r9)
+/* 8031ED74 0031A9D4 80 06 00 04 */ lwz r0, 4(r6)
+/* 8031ED78 0031A9D8 7C 04 00 40 */ cmplw r4, r0
+/* 8031ED7C 0031A9DC 40 80 00 18 */ bge lbl_8031ED94
+/* 8031ED80 0031A9E0 38 63 00 04 */ addi r3, r3, 4
+/* 8031ED84 0031A9E4 3B DE 00 01 */ addi r30, r30, 1
+/* 8031ED88 0031A9E8 7C 19 18 2E */ lwzx r0, r25, r3
+/* 8031ED8C 0031A9EC 90 09 00 00 */ stw r0, 0(r9)
+/* 8031ED90 0031A9F0 7C 99 19 2E */ stwx r4, r25, r3
+lbl_8031ED94:
+/* 8031ED94 0031A9F4 39 29 00 04 */ addi r9, r9, 4
+/* 8031ED98 0031A9F8 42 00 FF D8 */ bdnz lbl_8031ED70
+lbl_8031ED9C:
+/* 8031ED9C 0031A9FC 7C F9 E2 14 */ add r7, r25, r28
+/* 8031EDA0 0031AA00 57 C6 10 3A */ slwi r6, r30, 2
+/* 8031EDA4 0031AA04 81 07 00 04 */ lwz r8, 4(r7)
+/* 8031EDA8 0031AA08 7F 23 CB 78 */ mr r3, r25
+/* 8031EDAC 0031AA0C 7C 19 30 2E */ lwzx r0, r25, r6
+/* 8031EDB0 0031AA10 38 9F 00 01 */ addi r4, r31, 1
+/* 8031EDB4 0031AA14 38 BE FF FF */ addi r5, r30, -1
+/* 8031EDB8 0031AA18 90 07 00 04 */ stw r0, 4(r7)
+/* 8031EDBC 0031AA1C 7D 19 31 2E */ stwx r8, r25, r6
+/* 8031EDC0 0031AA20 4B FF FB 51 */ bl ss_qsort
+/* 8031EDC4 0031AA24 7F 23 CB 78 */ mr r3, r25
+/* 8031EDC8 0031AA28 7F 45 D3 78 */ mr r5, r26
+/* 8031EDCC 0031AA2C 38 9E 00 01 */ addi r4, r30, 1
+/* 8031EDD0 0031AA30 4B FF FB 41 */ bl ss_qsort
+lbl_8031EDD4:
+/* 8031EDD4 0031AA34 39 61 00 30 */ addi r11, r1, 0x30
+/* 8031EDD8 0031AA38 4B EA 83 95 */ bl _restgpr_25
+/* 8031EDDC 0031AA3C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8031EDE0 0031AA40 7C 08 03 A6 */ mtlr r0
+/* 8031EDE4 0031AA44 38 21 00 30 */ addi r1, r1, 0x30
+/* 8031EDE8 0031AA48 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/dwc_match/dwc_common.s b/asm/SDK/DWC/dwc_match/dwc_common.s new file mode 100644 index 0000000..b9d4331 --- /dev/null +++ b/asm/SDK/DWC/dwc_match/dwc_common.s @@ -0,0 +1,267 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DWC_SetCommonKeyValueString
+DWC_SetCommonKeyValueString:
+/* 8031EDEC 0031AA4C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031EDF0 0031AA50 7C 08 02 A6 */ mflr r0
+/* 8031EDF4 0031AA54 7C C6 07 74 */ extsb r6, r6
+/* 8031EDF8 0031AA58 7C 89 23 78 */ mr r9, r4
+/* 8031EDFC 0031AA5C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031EE00 0031AA60 7C 67 1B 78 */ mr r7, r3
+/* 8031EE04 0031AA64 7C C8 33 78 */ mr r8, r6
+/* 8031EE08 0031AA68 38 80 10 00 */ li r4, 0x1000
+/* 8031EE0C 0031AA6C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031EE10 0031AA70 7C BF 2B 78 */ mr r31, r5
+/* 8031EE14 0031AA74 3C A0 80 44 */ lis r5, lbl_80446C70@ha
+/* 8031EE18 0031AA78 7F E3 FB 78 */ mr r3, r31
+/* 8031EE1C 0031AA7C 38 A5 6C 70 */ addi r5, r5, lbl_80446C70@l
+/* 8031EE20 0031AA80 4C C6 31 82 */ crclr 6
+/* 8031EE24 0031AA84 4B EA DC 01 */ bl snprintf
+/* 8031EE28 0031AA88 7F E3 FB 78 */ mr r3, r31
+/* 8031EE2C 0031AA8C 4B EA 7D 39 */ bl strlen
+/* 8031EE30 0031AA90 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031EE34 0031AA94 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031EE38 0031AA98 7C 08 03 A6 */ mtlr r0
+/* 8031EE3C 0031AA9C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031EE40 0031AAA0 4E 80 00 20 */ blr
+
+.global DWC_AddCommonKeyValueString
+DWC_AddCommonKeyValueString:
+/* 8031EE44 0031AAA4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031EE48 0031AAA8 7C 08 02 A6 */ mflr r0
+/* 8031EE4C 0031AAAC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031EE50 0031AAB0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031EE54 0031AAB4 7C DF 33 78 */ mr r31, r6
+/* 8031EE58 0031AAB8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031EE5C 0031AABC 7C BE 2B 78 */ mr r30, r5
+/* 8031EE60 0031AAC0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031EE64 0031AAC4 7C 9D 23 78 */ mr r29, r4
+/* 8031EE68 0031AAC8 38 80 00 00 */ li r4, 0
+/* 8031EE6C 0031AACC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8031EE70 0031AAD0 7C 7C 1B 78 */ mr r28, r3
+/* 8031EE74 0031AAD4 7F C3 F3 78 */ mr r3, r30
+/* 8031EE78 0031AAD8 4B EA F7 31 */ bl strchr
+/* 8031EE7C 0031AADC 7F E6 07 74 */ extsb r6, r31
+/* 8031EE80 0031AAE0 3C A0 80 44 */ lis r5, lbl_80446C70@ha
+/* 8031EE84 0031AAE4 7C 7F 1B 78 */ mr r31, r3
+/* 8031EE88 0031AAE8 7F 87 E3 78 */ mr r7, r28
+/* 8031EE8C 0031AAEC 7C C8 33 78 */ mr r8, r6
+/* 8031EE90 0031AAF0 7F A9 EB 78 */ mr r9, r29
+/* 8031EE94 0031AAF4 38 A5 6C 70 */ addi r5, r5, lbl_80446C70@l
+/* 8031EE98 0031AAF8 38 80 10 00 */ li r4, 0x1000
+/* 8031EE9C 0031AAFC 4C C6 31 82 */ crclr 6
+/* 8031EEA0 0031AB00 4B EA DB 85 */ bl snprintf
+/* 8031EEA4 0031AB04 7F E3 FB 78 */ mr r3, r31
+/* 8031EEA8 0031AB08 4B EA 7C BD */ bl strlen
+/* 8031EEAC 0031AB0C 7F C3 F3 78 */ mr r3, r30
+/* 8031EEB0 0031AB10 4B EA 7C B5 */ bl strlen
+/* 8031EEB4 0031AB14 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031EEB8 0031AB18 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031EEBC 0031AB1C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031EEC0 0031AB20 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031EEC4 0031AB24 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8031EEC8 0031AB28 7C 08 03 A6 */ mtlr r0
+/* 8031EECC 0031AB2C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031EED0 0031AB30 4E 80 00 20 */ blr
+
+.global DWC_GetCommonValueString
+DWC_GetCommonValueString:
+/* 8031EED4 0031AB34 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031EED8 0031AB38 7C 08 02 A6 */ mflr r0
+/* 8031EEDC 0031AB3C 2C 04 00 00 */ cmpwi r4, 0
+/* 8031EEE0 0031AB40 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031EEE4 0031AB44 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031EEE8 0031AB48 7C DF 33 78 */ mr r31, r6
+/* 8031EEEC 0031AB4C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031EEF0 0031AB50 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031EEF4 0031AB54 7C 9D 23 78 */ mr r29, r4
+/* 8031EEF8 0031AB58 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8031EEFC 0031AB5C 7C 7C 1B 78 */ mr r28, r3
+/* 8031EF00 0031AB60 40 82 00 0C */ bne lbl_8031EF0C
+/* 8031EF04 0031AB64 38 60 FF FF */ li r3, -1
+/* 8031EF08 0031AB68 48 00 01 04 */ b lbl_8031F00C
+lbl_8031EF0C:
+/* 8031EF0C 0031AB6C 7C A3 2B 78 */ mr r3, r5
+/* 8031EF10 0031AB70 7C C4 07 74 */ extsb r4, r6
+/* 8031EF14 0031AB74 4B EA F6 95 */ bl strchr
+/* 8031EF18 0031AB78 2C 03 00 00 */ cmpwi r3, 0
+/* 8031EF1C 0031AB7C 7C 7E 1B 78 */ mr r30, r3
+/* 8031EF20 0031AB80 40 82 00 0C */ bne lbl_8031EF2C
+/* 8031EF24 0031AB84 38 60 FF FF */ li r3, -1
+/* 8031EF28 0031AB88 48 00 00 E4 */ b lbl_8031F00C
+lbl_8031EF2C:
+/* 8031EF2C 0031AB8C 7F 83 E3 78 */ mr r3, r28
+/* 8031EF30 0031AB90 4B EA 7C 35 */ bl strlen
+/* 8031EF34 0031AB94 7C 65 1B 78 */ mr r5, r3
+/* 8031EF38 0031AB98 7F 84 E3 78 */ mr r4, r28
+/* 8031EF3C 0031AB9C 38 7E 00 01 */ addi r3, r30, 1
+/* 8031EF40 0031ABA0 4B EA F6 29 */ bl strncmp
+/* 8031EF44 0031ABA4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031EF48 0031ABA8 40 82 00 24 */ bne lbl_8031EF6C
+/* 8031EF4C 0031ABAC 7F 83 E3 78 */ mr r3, r28
+/* 8031EF50 0031ABB0 4B EA 7C 15 */ bl strlen
+/* 8031EF54 0031ABB4 7C 63 F2 14 */ add r3, r3, r30
+/* 8031EF58 0031ABB8 7F E4 07 74 */ extsb r4, r31
+/* 8031EF5C 0031ABBC 88 03 00 01 */ lbz r0, 1(r3)
+/* 8031EF60 0031ABC0 7C 00 07 74 */ extsb r0, r0
+/* 8031EF64 0031ABC4 7C 04 00 00 */ cmpw r4, r0
+/* 8031EF68 0031ABC8 41 82 00 40 */ beq lbl_8031EFA8
+lbl_8031EF6C:
+/* 8031EF6C 0031ABCC 38 7E 00 01 */ addi r3, r30, 1
+/* 8031EF70 0031ABD0 7F E4 07 74 */ extsb r4, r31
+/* 8031EF74 0031ABD4 4B EA F6 35 */ bl strchr
+/* 8031EF78 0031ABD8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031EF7C 0031ABDC 40 82 00 0C */ bne lbl_8031EF88
+/* 8031EF80 0031ABE0 38 60 FF FF */ li r3, -1
+/* 8031EF84 0031ABE4 48 00 00 88 */ b lbl_8031F00C
+lbl_8031EF88:
+/* 8031EF88 0031ABE8 7F E4 07 74 */ extsb r4, r31
+/* 8031EF8C 0031ABEC 38 63 00 01 */ addi r3, r3, 1
+/* 8031EF90 0031ABF0 4B EA F6 19 */ bl strchr
+/* 8031EF94 0031ABF4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031EF98 0031ABF8 7C 7E 1B 78 */ mr r30, r3
+/* 8031EF9C 0031ABFC 40 82 FF 90 */ bne lbl_8031EF2C
+/* 8031EFA0 0031AC00 38 60 FF FF */ li r3, -1
+/* 8031EFA4 0031AC04 48 00 00 68 */ b lbl_8031F00C
+lbl_8031EFA8:
+/* 8031EFA8 0031AC08 38 7E 00 01 */ addi r3, r30, 1
+/* 8031EFAC 0031AC0C 4B EA F5 FD */ bl strchr
+/* 8031EFB0 0031AC10 2C 03 00 00 */ cmpwi r3, 0
+/* 8031EFB4 0031AC14 7C 7E 1B 78 */ mr r30, r3
+/* 8031EFB8 0031AC18 40 82 00 0C */ bne lbl_8031EFC4
+/* 8031EFBC 0031AC1C 38 60 FF FF */ li r3, -1
+/* 8031EFC0 0031AC20 48 00 00 4C */ b lbl_8031F00C
+lbl_8031EFC4:
+/* 8031EFC4 0031AC24 7F E4 07 74 */ extsb r4, r31
+/* 8031EFC8 0031AC28 38 63 00 01 */ addi r3, r3, 1
+/* 8031EFCC 0031AC2C 4B EA F5 DD */ bl strchr
+/* 8031EFD0 0031AC30 2C 03 00 00 */ cmpwi r3, 0
+/* 8031EFD4 0031AC34 41 82 00 10 */ beq lbl_8031EFE4
+/* 8031EFD8 0031AC38 38 1E 00 01 */ addi r0, r30, 1
+/* 8031EFDC 0031AC3C 7F E0 18 50 */ subf r31, r0, r3
+/* 8031EFE0 0031AC40 48 00 00 10 */ b lbl_8031EFF0
+lbl_8031EFE4:
+/* 8031EFE4 0031AC44 38 7E 00 01 */ addi r3, r30, 1
+/* 8031EFE8 0031AC48 4B EA 7B 7D */ bl strlen
+/* 8031EFEC 0031AC4C 7C 7F 1B 78 */ mr r31, r3
+lbl_8031EFF0:
+/* 8031EFF0 0031AC50 7F A3 EB 78 */ mr r3, r29
+/* 8031EFF4 0031AC54 7F E5 FB 78 */ mr r5, r31
+/* 8031EFF8 0031AC58 38 9E 00 01 */ addi r4, r30, 1
+/* 8031EFFC 0031AC5C 4B EA F3 95 */ bl strncpy
+/* 8031F000 0031AC60 38 00 00 00 */ li r0, 0
+/* 8031F004 0031AC64 7F E3 FB 78 */ mr r3, r31
+/* 8031F008 0031AC68 7C 1D F9 AE */ stbx r0, r29, r31
+lbl_8031F00C:
+/* 8031F00C 0031AC6C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031F010 0031AC70 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031F014 0031AC74 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031F018 0031AC78 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031F01C 0031AC7C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8031F020 0031AC80 7C 08 03 A6 */ mtlr r0
+/* 8031F024 0031AC84 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031F028 0031AC88 4E 80 00 20 */ blr
+
+.global DWCi_GetMathRand32
+DWCi_GetMathRand32:
+/* 8031F02C 0031AC8C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031F030 0031AC90 7C 08 02 A6 */ mflr r0
+/* 8031F034 0031AC94 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031F038 0031AC98 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031F03C 0031AC9C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031F040 0031ACA0 3F C0 80 61 */ lis r30, lbl_8060FBF0@ha
+/* 8031F044 0031ACA4 3B FE FB F0 */ addi r31, r30, lbl_8060FBF0@l
+/* 8031F048 0031ACA8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031F04C 0031ACAC 7C 7D 1B 78 */ mr r29, r3
+/* 8031F050 0031ACB0 80 1E FB F0 */ lwz r0, -0x410(r30)
+/* 8031F054 0031ACB4 80 7F 00 04 */ lwz r3, 4(r31)
+/* 8031F058 0031ACB8 7C 60 03 79 */ or. r0, r3, r0
+/* 8031F05C 0031ACBC 40 82 00 98 */ bne lbl_8031F0F4
+/* 8031F060 0031ACC0 80 1F 00 08 */ lwz r0, 8(r31)
+/* 8031F064 0031ACC4 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8031F068 0031ACC8 7C 60 03 79 */ or. r0, r3, r0
+/* 8031F06C 0031ACCC 40 82 00 88 */ bne lbl_8031F0F4
+/* 8031F070 0031ACD0 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8031F074 0031ACD4 80 7F 00 14 */ lwz r3, 0x14(r31)
+/* 8031F078 0031ACD8 7C 60 03 79 */ or. r0, r3, r0
+/* 8031F07C 0031ACDC 40 82 00 78 */ bne lbl_8031F0F4
+/* 8031F080 0031ACE0 38 61 00 08 */ addi r3, r1, 8
+/* 8031F084 0031ACE4 4B FD 61 15 */ bl NETGetWirelessMacAddress
+/* 8031F088 0031ACE8 4B F5 37 31 */ bl OSGetTime
+/* 8031F08C 0031ACEC 80 C1 00 0C */ lwz r6, 0xc(r1)
+/* 8031F090 0031ACF0 3C A0 01 00 */ lis r5, 0x00FFFFFF@ha
+/* 8031F094 0031ACF4 80 01 00 08 */ lwz r0, 8(r1)
+/* 8031F098 0031ACF8 39 25 FF FF */ addi r9, r5, 0x00FFFFFF@l
+/* 8031F09C 0031ACFC 54 CA 40 3E */ rotlwi r10, r6, 8
+/* 8031F0A0 0031AD00 3C A0 00 27 */ lis r5, 0x00269EC3@ha
+/* 8031F0A4 0031AD04 50 0A 40 2E */ rlwimi r10, r0, 8, 0, 0x17
+/* 8031F0A8 0031AD08 3C E0 6C 08 */ lis r7, 0x6C078965@ha
+/* 8031F0AC 0031AD0C 38 05 9E C3 */ addi r0, r5, 0x00269EC3@l
+/* 8031F0B0 0031AD10 54 68 C0 0E */ slwi r8, r3, 0x18
+/* 8031F0B4 0031AD14 50 88 C2 3E */ rlwimi r8, r4, 0x18, 8, 0x1f
+/* 8031F0B8 0031AD18 3C C0 5D 59 */ lis r6, 0x5D588B65@ha
+/* 8031F0BC 0031AD1C 38 66 8B 65 */ addi r3, r6, 0x5D588B65@l
+/* 8031F0C0 0031AD20 38 E7 89 65 */ addi r7, r7, 0x6C078965@l
+/* 8031F0C4 0031AD24 38 C0 00 00 */ li r6, 0
+/* 8031F0C8 0031AD28 7D 45 48 38 */ and r5, r10, r9
+/* 8031F0CC 0031AD2C 54 84 C0 0E */ slwi r4, r4, 0x18
+/* 8031F0D0 0031AD30 91 01 00 08 */ stw r8, 8(r1)
+/* 8031F0D4 0031AD34 7C A4 23 78 */ or r4, r5, r4
+/* 8031F0D8 0031AD38 90 81 00 0C */ stw r4, 0xc(r1)
+/* 8031F0DC 0031AD3C 90 9F 00 04 */ stw r4, 4(r31)
+/* 8031F0E0 0031AD40 91 1E FB F0 */ stw r8, -0x410(r30)
+/* 8031F0E4 0031AD44 90 FF 00 0C */ stw r7, 0xc(r31)
+/* 8031F0E8 0031AD48 90 7F 00 08 */ stw r3, 8(r31)
+/* 8031F0EC 0031AD4C 90 1F 00 14 */ stw r0, 0x14(r31)
+/* 8031F0F0 0031AD50 90 DF 00 10 */ stw r6, 0x10(r31)
+lbl_8031F0F4:
+/* 8031F0F4 0031AD54 3D 40 80 61 */ lis r10, lbl_8060FBF0@ha
+/* 8031F0F8 0031AD58 2C 1D 00 00 */ cmpwi r29, 0
+/* 8031F0FC 0031AD5C 39 2A FB F0 */ addi r9, r10, lbl_8060FBF0@l
+/* 8031F100 0031AD60 80 0A FB F0 */ lwz r0, -0x410(r10)
+/* 8031F104 0031AD64 80 89 00 0C */ lwz r4, 0xc(r9)
+/* 8031F108 0031AD68 80 A9 00 04 */ lwz r5, 4(r9)
+/* 8031F10C 0031AD6C 7C 64 01 D6 */ mullw r3, r4, r0
+/* 8031F110 0031AD70 81 09 00 14 */ lwz r8, 0x14(r9)
+/* 8031F114 0031AD74 80 C9 00 08 */ lwz r6, 8(r9)
+/* 8031F118 0031AD78 80 E9 00 10 */ lwz r7, 0x10(r9)
+/* 8031F11C 0031AD7C 7C 04 29 D6 */ mullw r0, r4, r5
+/* 8031F120 0031AD80 7C 08 00 14 */ addc r0, r8, r0
+/* 8031F124 0031AD84 90 09 00 04 */ stw r0, 4(r9)
+/* 8031F128 0031AD88 7C 84 28 16 */ mulhwu r4, r4, r5
+/* 8031F12C 0031AD8C 7C 06 29 D6 */ mullw r0, r6, r5
+/* 8031F130 0031AD90 7C 04 02 14 */ add r0, r4, r0
+/* 8031F134 0031AD94 7C 00 1A 14 */ add r0, r0, r3
+/* 8031F138 0031AD98 7C 67 01 14 */ adde r3, r7, r0
+/* 8031F13C 0031AD9C 90 6A FB F0 */ stw r3, -0x410(r10)
+/* 8031F140 0031ADA0 40 82 00 08 */ bne lbl_8031F148
+/* 8031F144 0031ADA4 48 00 00 14 */ b lbl_8031F158
+lbl_8031F148:
+/* 8031F148 0031ADA8 38 80 00 00 */ li r4, 0
+/* 8031F14C 0031ADAC 7C 03 E8 16 */ mulhwu r0, r3, r29
+/* 8031F150 0031ADB0 7C 64 E9 D6 */ mullw r3, r4, r29
+/* 8031F154 0031ADB4 7C 60 1A 14 */ add r3, r0, r3
+lbl_8031F158:
+/* 8031F158 0031ADB8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031F15C 0031ADBC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031F160 0031ADC0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031F164 0031ADC4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031F168 0031ADC8 7C 08 03 A6 */ mtlr r0
+/* 8031F16C 0031ADCC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031F170 0031ADD0 4E 80 00 20 */ blr
+
+.global DWCi_WStrLen
+DWCi_WStrLen:
+/* 8031F174 0031ADD4 38 80 00 00 */ li r4, 0
+/* 8031F178 0031ADD8 48 00 00 0C */ b lbl_8031F184
+lbl_8031F17C:
+/* 8031F17C 0031ADDC 38 63 00 02 */ addi r3, r3, 2
+/* 8031F180 0031ADE0 38 84 00 01 */ addi r4, r4, 1
+lbl_8031F184:
+/* 8031F184 0031ADE4 A0 03 00 00 */ lhz r0, 0(r3)
+/* 8031F188 0031ADE8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031F18C 0031ADEC 40 82 FF F0 */ bne lbl_8031F17C
+/* 8031F190 0031ADF0 7C 83 23 78 */ mr r3, r4
+/* 8031F194 0031ADF4 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/dwc_match/dwc_friend.s b/asm/SDK/DWC/dwc_match/dwc_friend.s new file mode 100644 index 0000000..398f34a --- /dev/null +++ b/asm/SDK/DWC/dwc_match/dwc_friend.s @@ -0,0 +1,2097 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DWC_GetFriendStatusSC
+DWC_GetFriendStatusSC:
+/* 8031F198 0031ADF8 94 21 FD D0 */ stwu r1, -0x230(r1)
+/* 8031F19C 0031ADFC 7C 08 02 A6 */ mflr r0
+/* 8031F1A0 0031AE00 90 01 02 34 */ stw r0, 0x234(r1)
+/* 8031F1A4 0031AE04 93 E1 02 2C */ stw r31, 0x22c(r1)
+/* 8031F1A8 0031AE08 7C DF 33 78 */ mr r31, r6
+/* 8031F1AC 0031AE0C 93 C1 02 28 */ stw r30, 0x228(r1)
+/* 8031F1B0 0031AE10 7C BE 2B 78 */ mr r30, r5
+/* 8031F1B4 0031AE14 93 A1 02 24 */ stw r29, 0x224(r1)
+/* 8031F1B8 0031AE18 7C 9D 23 78 */ mr r29, r4
+/* 8031F1BC 0031AE1C 38 81 00 10 */ addi r4, r1, 0x10
+/* 8031F1C0 0031AE20 48 00 12 31 */ bl DWCi_GetFriendBuddyStatus
+/* 8031F1C4 0031AE24 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F1C8 0031AE28 41 82 00 DC */ beq lbl_8031F2A4
+/* 8031F1CC 0031AE2C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031F1D0 0031AE30 2C 00 00 06 */ cmpwi r0, 6
+/* 8031F1D4 0031AE34 40 82 00 90 */ bne lbl_8031F264
+/* 8031F1D8 0031AE38 2C 1D 00 00 */ cmpwi r29, 0
+/* 8031F1DC 0031AE3C 41 82 00 40 */ beq lbl_8031F21C
+/* 8031F1E0 0031AE40 38 81 00 08 */ addi r4, r1, 8
+/* 8031F1E4 0031AE44 38 A1 00 18 */ addi r5, r1, 0x18
+/* 8031F1E8 0031AE48 38 6D 8D 68 */ addi r3, r13, lbl_8063E028-_SDA_BASE_
+/* 8031F1EC 0031AE4C 38 C0 00 2F */ li r6, 0x2f
+/* 8031F1F0 0031AE50 4B FF FC E5 */ bl DWC_GetCommonValueString
+/* 8031F1F4 0031AE54 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F1F8 0031AE58 40 81 00 1C */ ble lbl_8031F214
+/* 8031F1FC 0031AE5C 38 61 00 08 */ addi r3, r1, 8
+/* 8031F200 0031AE60 38 80 00 00 */ li r4, 0
+/* 8031F204 0031AE64 38 A0 00 0A */ li r5, 0xa
+/* 8031F208 0031AE68 4B EB 13 71 */ bl strtoul
+/* 8031F20C 0031AE6C 98 7D 00 00 */ stb r3, 0(r29)
+/* 8031F210 0031AE70 48 00 00 0C */ b lbl_8031F21C
+lbl_8031F214:
+/* 8031F214 0031AE74 38 00 00 00 */ li r0, 0
+/* 8031F218 0031AE78 98 1D 00 00 */ stb r0, 0(r29)
+lbl_8031F21C:
+/* 8031F21C 0031AE7C 2C 1E 00 00 */ cmpwi r30, 0
+/* 8031F220 0031AE80 41 82 00 64 */ beq lbl_8031F284
+/* 8031F224 0031AE84 38 81 00 08 */ addi r4, r1, 8
+/* 8031F228 0031AE88 38 A1 00 18 */ addi r5, r1, 0x18
+/* 8031F22C 0031AE8C 38 6D 8D 6C */ addi r3, r13, lbl_8063E02C-_SDA_BASE_
+/* 8031F230 0031AE90 38 C0 00 2F */ li r6, 0x2f
+/* 8031F234 0031AE94 4B FF FC A1 */ bl DWC_GetCommonValueString
+/* 8031F238 0031AE98 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F23C 0031AE9C 40 81 00 1C */ ble lbl_8031F258
+/* 8031F240 0031AEA0 38 61 00 08 */ addi r3, r1, 8
+/* 8031F244 0031AEA4 38 80 00 00 */ li r4, 0
+/* 8031F248 0031AEA8 38 A0 00 0A */ li r5, 0xa
+/* 8031F24C 0031AEAC 4B EB 13 2D */ bl strtoul
+/* 8031F250 0031AEB0 98 7E 00 00 */ stb r3, 0(r30)
+/* 8031F254 0031AEB4 48 00 00 30 */ b lbl_8031F284
+lbl_8031F258:
+/* 8031F258 0031AEB8 38 00 00 00 */ li r0, 0
+/* 8031F25C 0031AEBC 98 1E 00 00 */ stb r0, 0(r30)
+/* 8031F260 0031AEC0 48 00 00 24 */ b lbl_8031F284
+lbl_8031F264:
+/* 8031F264 0031AEC4 2C 1D 00 00 */ cmpwi r29, 0
+/* 8031F268 0031AEC8 41 82 00 0C */ beq lbl_8031F274
+/* 8031F26C 0031AECC 38 00 00 00 */ li r0, 0
+/* 8031F270 0031AED0 98 1D 00 00 */ stb r0, 0(r29)
+lbl_8031F274:
+/* 8031F274 0031AED4 2C 1E 00 00 */ cmpwi r30, 0
+/* 8031F278 0031AED8 41 82 00 0C */ beq lbl_8031F284
+/* 8031F27C 0031AEDC 38 00 00 00 */ li r0, 0
+/* 8031F280 0031AEE0 98 1E 00 00 */ stb r0, 0(r30)
+lbl_8031F284:
+/* 8031F284 0031AEE4 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031F288 0031AEE8 41 82 00 10 */ beq lbl_8031F298
+/* 8031F28C 0031AEEC 7F E3 FB 78 */ mr r3, r31
+/* 8031F290 0031AEF0 38 81 01 18 */ addi r4, r1, 0x118
+/* 8031F294 0031AEF4 4B EA F0 3D */ bl strcpy
+lbl_8031F298:
+/* 8031F298 0031AEF8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031F29C 0031AEFC 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 8031F2A0 0031AF00 48 00 00 28 */ b lbl_8031F2C8
+lbl_8031F2A4:
+/* 8031F2A4 0031AF04 2C 1D 00 00 */ cmpwi r29, 0
+/* 8031F2A8 0031AF08 41 82 00 0C */ beq lbl_8031F2B4
+/* 8031F2AC 0031AF0C 38 00 00 00 */ li r0, 0
+/* 8031F2B0 0031AF10 98 1D 00 00 */ stb r0, 0(r29)
+lbl_8031F2B4:
+/* 8031F2B4 0031AF14 2C 1E 00 00 */ cmpwi r30, 0
+/* 8031F2B8 0031AF18 41 82 00 0C */ beq lbl_8031F2C4
+/* 8031F2BC 0031AF1C 38 00 00 00 */ li r0, 0
+/* 8031F2C0 0031AF20 98 1E 00 00 */ stb r0, 0(r30)
+lbl_8031F2C4:
+/* 8031F2C4 0031AF24 38 60 00 00 */ li r3, 0
+lbl_8031F2C8:
+/* 8031F2C8 0031AF28 80 01 02 34 */ lwz r0, 0x234(r1)
+/* 8031F2CC 0031AF2C 83 E1 02 2C */ lwz r31, 0x22c(r1)
+/* 8031F2D0 0031AF30 83 C1 02 28 */ lwz r30, 0x228(r1)
+/* 8031F2D4 0031AF34 83 A1 02 24 */ lwz r29, 0x224(r1)
+/* 8031F2D8 0031AF38 7C 08 03 A6 */ mtlr r0
+/* 8031F2DC 0031AF3C 38 21 02 30 */ addi r1, r1, 0x230
+/* 8031F2E0 0031AF40 4E 80 00 20 */ blr
+
+.global DWC_SetOwnStatusData
+DWC_SetOwnStatusData:
+/* 8031F2E4 0031AF44 94 21 FE F0 */ stwu r1, -0x110(r1)
+/* 8031F2E8 0031AF48 7C 08 02 A6 */ mflr r0
+/* 8031F2EC 0031AF4C 90 01 01 14 */ stw r0, 0x114(r1)
+/* 8031F2F0 0031AF50 93 E1 01 0C */ stw r31, 0x10c(r1)
+/* 8031F2F4 0031AF54 7C 9F 23 78 */ mr r31, r4
+/* 8031F2F8 0031AF58 93 C1 01 08 */ stw r30, 0x108(r1)
+/* 8031F2FC 0031AF5C 7C 7E 1B 78 */ mr r30, r3
+/* 8031F300 0031AF60 80 0D B0 48 */ lwz r0, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F304 0031AF64 2C 00 00 00 */ cmpwi r0, 0
+/* 8031F308 0031AF68 41 82 00 10 */ beq lbl_8031F318
+/* 8031F30C 0031AF6C 48 00 28 C9 */ bl DWCi_CheckLogin
+/* 8031F310 0031AF70 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F314 0031AF74 40 82 00 0C */ bne lbl_8031F320
+lbl_8031F318:
+/* 8031F318 0031AF78 38 60 00 00 */ li r3, 0
+/* 8031F31C 0031AF7C 48 00 00 48 */ b lbl_8031F364
+lbl_8031F320:
+/* 8031F320 0031AF80 7F C3 F3 78 */ mr r3, r30
+/* 8031F324 0031AF84 7F E4 FB 78 */ mr r4, r31
+/* 8031F328 0031AF88 38 A1 00 08 */ addi r5, r1, 8
+/* 8031F32C 0031AF8C 38 C0 00 FF */ li r6, 0xff
+/* 8031F330 0031AF90 4B FF CD F5 */ bl DWC_Base64Encode
+/* 8031F334 0031AF94 2C 03 FF FF */ cmpwi r3, -1
+/* 8031F338 0031AF98 40 82 00 0C */ bne lbl_8031F344
+/* 8031F33C 0031AF9C 38 60 00 00 */ li r3, 0
+/* 8031F340 0031AFA0 48 00 00 24 */ b lbl_8031F364
+lbl_8031F344:
+/* 8031F344 0031AFA4 38 A1 00 08 */ addi r5, r1, 8
+/* 8031F348 0031AFA8 38 00 00 00 */ li r0, 0
+/* 8031F34C 0031AFAC 7C 05 19 AE */ stbx r0, r5, r3
+/* 8031F350 0031AFB0 38 60 FF FF */ li r3, -1
+/* 8031F354 0031AFB4 38 80 00 00 */ li r4, 0
+/* 8031F358 0031AFB8 48 00 08 F9 */ bl DWCi_SetGPStatus
+/* 8031F35C 0031AFBC 7C 60 00 34 */ cntlzw r0, r3
+/* 8031F360 0031AFC0 54 03 D9 7E */ srwi r3, r0, 5
+lbl_8031F364:
+/* 8031F364 0031AFC4 80 01 01 14 */ lwz r0, 0x114(r1)
+/* 8031F368 0031AFC8 83 E1 01 0C */ lwz r31, 0x10c(r1)
+/* 8031F36C 0031AFCC 83 C1 01 08 */ lwz r30, 0x108(r1)
+/* 8031F370 0031AFD0 7C 08 03 A6 */ mtlr r0
+/* 8031F374 0031AFD4 38 21 01 10 */ addi r1, r1, 0x110
+/* 8031F378 0031AFD8 4E 80 00 20 */ blr
+
+.global DWC_CanChangeFriendList
+DWC_CanChangeFriendList:
+/* 8031F37C 0031AFDC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F380 0031AFE0 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F384 0031AFE4 41 82 00 20 */ beq lbl_8031F3A4
+/* 8031F388 0031AFE8 88 63 00 22 */ lbz r3, 0x22(r3)
+/* 8031F38C 0031AFEC 38 03 00 FF */ addi r0, r3, 0xff
+/* 8031F390 0031AFF0 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8031F394 0031AFF4 28 00 00 01 */ cmplwi r0, 1
+/* 8031F398 0031AFF8 41 81 00 0C */ bgt lbl_8031F3A4
+/* 8031F39C 0031AFFC 38 60 00 00 */ li r3, 0
+/* 8031F3A0 0031B000 4E 80 00 20 */ blr
+lbl_8031F3A4:
+/* 8031F3A4 0031B004 38 60 00 01 */ li r3, 1
+/* 8031F3A8 0031B008 4E 80 00 20 */ blr
+
+.global DWC_DeleteBuddyFriendData
+DWC_DeleteBuddyFriendData:
+/* 8031F3AC 0031B00C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031F3B0 0031B010 7C 08 02 A6 */ mflr r0
+/* 8031F3B4 0031B014 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031F3B8 0031B018 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031F3BC 0031B01C 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031F3C0 0031B020 7C 7E 1B 78 */ mr r30, r3
+/* 8031F3C4 0031B024 80 0D B0 48 */ lwz r0, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F3C8 0031B028 2C 00 00 00 */ cmpwi r0, 0
+/* 8031F3CC 0031B02C 41 82 00 7C */ beq lbl_8031F448
+/* 8031F3D0 0031B030 48 00 28 05 */ bl DWCi_CheckLogin
+/* 8031F3D4 0031B034 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F3D8 0031B038 41 82 00 70 */ beq lbl_8031F448
+/* 8031F3DC 0031B03C 48 00 1D D9 */ bl DWCi_GetUserData
+/* 8031F3E0 0031B040 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F3E4 0031B044 41 82 00 64 */ beq lbl_8031F448
+/* 8031F3E8 0031B048 48 00 1D CD */ bl DWCi_GetUserData
+/* 8031F3EC 0031B04C 7F C4 F3 78 */ mr r4, r30
+/* 8031F3F0 0031B050 48 01 43 0D */ bl func_803336FC
+/* 8031F3F4 0031B054 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F3F8 0031B058 7C 7F 1B 78 */ mr r31, r3
+/* 8031F3FC 0031B05C 41 82 00 4C */ beq lbl_8031F448
+/* 8031F400 0031B060 2C 03 FF FF */ cmpwi r3, -1
+/* 8031F404 0031B064 41 82 00 44 */ beq lbl_8031F448
+/* 8031F408 0031B068 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F40C 0031B06C 7F E4 FB 78 */ mr r4, r31
+/* 8031F410 0031B070 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031F414 0031B074 48 01 E3 81 */ bl gpIsBuddy
+/* 8031F418 0031B078 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F41C 0031B07C 41 82 00 2C */ beq lbl_8031F448
+/* 8031F420 0031B080 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F424 0031B084 7F E4 FB 78 */ mr r4, r31
+/* 8031F428 0031B088 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031F42C 0031B08C 48 01 E3 E1 */ bl gpDeleteBuddy
+/* 8031F430 0031B090 3C 80 80 44 */ lis r4, lbl_80446C80@ha
+/* 8031F434 0031B094 38 60 00 04 */ li r3, 4
+/* 8031F438 0031B098 38 84 6C 80 */ addi r4, r4, lbl_80446C80@l
+/* 8031F43C 0031B09C 4C C6 31 82 */ crclr 6
+/* 8031F440 0031B0A0 4B FF D6 F5 */ bl DWC_Printf
+/* 8031F444 0031B0A4 48 00 00 18 */ b lbl_8031F45C
+lbl_8031F448:
+/* 8031F448 0031B0A8 3C 80 80 44 */ lis r4, lbl_80446CAC@ha
+/* 8031F44C 0031B0AC 38 60 00 04 */ li r3, 4
+/* 8031F450 0031B0B0 38 84 6C AC */ addi r4, r4, lbl_80446CAC@l
+/* 8031F454 0031B0B4 4C C6 31 82 */ crclr 6
+/* 8031F458 0031B0B8 4B FF D6 DD */ bl DWC_Printf
+lbl_8031F45C:
+/* 8031F45C 0031B0BC 7F C3 F3 78 */ mr r3, r30
+/* 8031F460 0031B0C0 38 80 00 00 */ li r4, 0
+/* 8031F464 0031B0C4 38 A0 00 0C */ li r5, 0xc
+/* 8031F468 0031B0C8 4B CE 4C 9D */ bl memset
+/* 8031F46C 0031B0CC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031F470 0031B0D0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031F474 0031B0D4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031F478 0031B0D8 7C 08 03 A6 */ mtlr r0
+/* 8031F47C 0031B0DC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031F480 0031B0E0 4E 80 00 20 */ blr
+
+.global DWC_SetBuddyFriendCallback
+DWC_SetBuddyFriendCallback:
+/* 8031F484 0031B0E4 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F488 0031B0E8 2C 05 00 00 */ cmpwi r5, 0
+/* 8031F48C 0031B0EC 40 82 00 0C */ bne lbl_8031F498
+/* 8031F490 0031B0F0 38 60 00 00 */ li r3, 0
+/* 8031F494 0031B0F4 4E 80 00 20 */ blr
+lbl_8031F498:
+/* 8031F498 0031B0F8 90 65 00 48 */ stw r3, 0x48(r5)
+/* 8031F49C 0031B0FC 38 60 00 01 */ li r3, 1
+/* 8031F4A0 0031B100 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F4A4 0031B104 90 85 00 4C */ stw r4, 0x4c(r5)
+/* 8031F4A8 0031B108 4E 80 00 20 */ blr
+
+.global DWCi_FriendInit
+DWCi_FriendInit:
+/* 8031F4AC 0031B10C 90 6D B0 48 */ stw r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F4B0 0031B110 38 00 00 00 */ li r0, 0
+/* 8031F4B4 0031B114 90 03 00 00 */ stw r0, 0(r3)
+/* 8031F4B8 0031B118 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F4BC 0031B11C 90 83 00 04 */ stw r4, 4(r3)
+/* 8031F4C0 0031B120 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F4C4 0031B124 90 03 00 08 */ stw r0, 8(r3)
+/* 8031F4C8 0031B128 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F4CC 0031B12C 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8031F4D0 0031B130 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8031F4D4 0031B134 90 E3 00 18 */ stw r7, 0x18(r3)
+/* 8031F4D8 0031B138 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F4DC 0031B13C 90 C3 00 1C */ stw r6, 0x1c(r3)
+/* 8031F4E0 0031B140 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F4E4 0031B144 98 03 00 20 */ stb r0, 0x20(r3)
+/* 8031F4E8 0031B148 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F4EC 0031B14C 98 03 00 21 */ stb r0, 0x21(r3)
+/* 8031F4F0 0031B150 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F4F4 0031B154 98 03 00 22 */ stb r0, 0x22(r3)
+/* 8031F4F8 0031B158 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F4FC 0031B15C 98 03 00 23 */ stb r0, 0x23(r3)
+/* 8031F500 0031B160 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F504 0031B164 90 03 00 24 */ stw r0, 0x24(r3)
+/* 8031F508 0031B168 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F50C 0031B16C 90 03 00 28 */ stw r0, 0x28(r3)
+/* 8031F510 0031B170 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F514 0031B174 90 A3 00 2C */ stw r5, 0x2c(r3)
+/* 8031F518 0031B178 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F51C 0031B17C 90 03 00 30 */ stw r0, 0x30(r3)
+/* 8031F520 0031B180 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F524 0031B184 90 03 00 34 */ stw r0, 0x34(r3)
+/* 8031F528 0031B188 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F52C 0031B18C 90 03 00 38 */ stw r0, 0x38(r3)
+/* 8031F530 0031B190 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F534 0031B194 90 03 00 3C */ stw r0, 0x3c(r3)
+/* 8031F538 0031B198 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F53C 0031B19C 90 03 00 40 */ stw r0, 0x40(r3)
+/* 8031F540 0031B1A0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F544 0031B1A4 90 03 00 44 */ stw r0, 0x44(r3)
+/* 8031F548 0031B1A8 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F54C 0031B1AC 90 03 00 48 */ stw r0, 0x48(r3)
+/* 8031F550 0031B1B0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F554 0031B1B4 90 03 00 4C */ stw r0, 0x4c(r3)
+/* 8031F558 0031B1B8 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F55C 0031B1BC 90 03 00 50 */ stw r0, 0x50(r3)
+/* 8031F560 0031B1C0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F564 0031B1C4 90 03 00 54 */ stw r0, 0x54(r3)
+/* 8031F568 0031B1C8 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F56C 0031B1CC 90 03 00 58 */ stw r0, 0x58(r3)
+/* 8031F570 0031B1D0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F574 0031B1D4 90 03 00 5C */ stw r0, 0x5c(r3)
+/* 8031F578 0031B1D8 4E 80 00 20 */ blr
+
+.global DWCi_FriendProcess
+DWCi_FriendProcess:
+/* 8031F57C 0031B1DC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031F580 0031B1E0 7C 08 02 A6 */ mflr r0
+/* 8031F584 0031B1E4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031F588 0031B1E8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031F58C 0031B1EC 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031F590 0031B1F0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F594 0031B1F4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F598 0031B1F8 41 82 01 B0 */ beq lbl_8031F748
+/* 8031F59C 0031B1FC 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 8031F5A0 0031B200 2C 00 00 00 */ cmpwi r0, 0
+/* 8031F5A4 0031B204 41 82 01 A4 */ beq lbl_8031F748
+/* 8031F5A8 0031B208 4B FF CF C5 */ bl DWCi_IsError
+/* 8031F5AC 0031B20C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F5B0 0031B210 41 82 00 08 */ beq lbl_8031F5B8
+/* 8031F5B4 0031B214 48 00 01 94 */ b lbl_8031F748
+lbl_8031F5B8:
+/* 8031F5B8 0031B218 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F5BC 0031B21C 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 8031F5C0 0031B220 2C 00 00 00 */ cmpwi r0, 0
+/* 8031F5C4 0031B224 40 82 00 10 */ bne lbl_8031F5D4
+/* 8031F5C8 0031B228 48 03 8F C5 */ bl IsStatsConnected
+/* 8031F5CC 0031B22C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F5D0 0031B230 41 82 00 24 */ beq lbl_8031F5F4
+lbl_8031F5D4:
+/* 8031F5D4 0031B234 48 03 8F D1 */ bl PersistThink
+/* 8031F5D8 0031B238 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F5DC 0031B23C 40 82 00 18 */ bne lbl_8031F5F4
+/* 8031F5E0 0031B240 3C 80 80 44 */ lis r4, lbl_80446CDC@ha
+/* 8031F5E4 0031B244 38 60 00 08 */ li r3, 8
+/* 8031F5E8 0031B248 38 84 6C DC */ addi r4, r4, lbl_80446CDC@l
+/* 8031F5EC 0031B24C 4C C6 31 82 */ crclr 6
+/* 8031F5F0 0031B250 4B FF D5 45 */ bl DWC_Printf
+lbl_8031F5F4:
+/* 8031F5F4 0031B254 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F5F8 0031B258 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031F5FC 0031B25C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F600 0031B260 41 82 01 08 */ beq lbl_8031F708
+/* 8031F604 0031B264 80 03 00 00 */ lwz r0, 0(r3)
+/* 8031F608 0031B268 2C 00 00 00 */ cmpwi r0, 0
+/* 8031F60C 0031B26C 41 82 00 FC */ beq lbl_8031F708
+/* 8031F610 0031B270 3B C0 00 00 */ li r30, 0
+/* 8031F614 0031B274 4B F5 31 A5 */ bl OSGetTime
+/* 8031F618 0031B278 3C A0 80 00 */ lis r5, 0x800000F8@ha
+/* 8031F61C 0031B27C 83 ED B0 48 */ lwz r31, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F620 0031B280 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
+/* 8031F624 0031B284 3C A0 10 62 */ lis r5, 0x10624DD3@ha
+/* 8031F628 0031B288 80 FF 00 14 */ lwz r7, 0x14(r31)
+/* 8031F62C 0031B28C 38 A5 4D D3 */ addi r5, r5, 0x10624DD3@l
+/* 8031F630 0031B290 54 00 F0 BE */ srwi r0, r0, 2
+/* 8031F634 0031B294 80 DF 00 10 */ lwz r6, 0x10(r31)
+/* 8031F638 0031B298 7C 05 00 16 */ mulhwu r0, r5, r0
+/* 8031F63C 0031B29C 7C 87 20 10 */ subfc r4, r7, r4
+/* 8031F640 0031B2A0 7C 66 19 10 */ subfe r3, r6, r3
+/* 8031F644 0031B2A4 38 A0 00 00 */ li r5, 0
+/* 8031F648 0031B2A8 54 06 D1 BE */ srwi r6, r0, 6
+/* 8031F64C 0031B2AC 4B EA 7C 2D */ bl __div2i
+/* 8031F650 0031B2B0 38 A0 00 00 */ li r5, 0
+/* 8031F654 0031B2B4 38 C0 01 2C */ li r6, 0x12c
+/* 8031F658 0031B2B8 6C 60 80 00 */ xoris r0, r3, 0x8000
+/* 8031F65C 0031B2BC 6C A5 80 00 */ xoris r5, r5, 0x8000
+/* 8031F660 0031B2C0 7C 66 20 10 */ subfc r3, r6, r4
+/* 8031F664 0031B2C4 7C A5 01 10 */ subfe r5, r5, r0
+/* 8031F668 0031B2C8 7C A0 01 10 */ subfe r5, r0, r0
+/* 8031F66C 0031B2CC 7C A5 00 D1 */ neg. r5, r5
+/* 8031F670 0031B2D0 40 82 00 30 */ bne lbl_8031F6A0
+/* 8031F674 0031B2D4 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8031F678 0031B2D8 38 03 00 01 */ addi r0, r3, 1
+/* 8031F67C 0031B2DC 90 1F 00 08 */ stw r0, 8(r31)
+/* 8031F680 0031B2E0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F684 0031B2E4 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031F688 0031B2E8 48 01 D7 B1 */ bl gpProcess
+/* 8031F68C 0031B2EC 7C 7E 1B 78 */ mr r30, r3
+/* 8031F690 0031B2F0 4B F5 31 29 */ bl OSGetTime
+/* 8031F694 0031B2F4 83 ED B0 48 */ lwz r31, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F698 0031B2F8 90 9F 00 14 */ stw r4, 0x14(r31)
+/* 8031F69C 0031B2FC 90 7F 00 10 */ stw r3, 0x10(r31)
+lbl_8031F6A0:
+/* 8031F6A0 0031B300 2C 1E 00 00 */ cmpwi r30, 0
+/* 8031F6A4 0031B304 40 82 00 A4 */ bne lbl_8031F748
+/* 8031F6A8 0031B308 80 7F 00 1C */ lwz r3, 0x1c(r31)
+/* 8031F6AC 0031B30C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F6B0 0031B310 41 82 00 58 */ beq lbl_8031F708
+/* 8031F6B4 0031B314 88 9F 00 22 */ lbz r4, 0x22(r31)
+/* 8031F6B8 0031B318 28 04 00 03 */ cmplwi r4, 3
+/* 8031F6BC 0031B31C 41 82 00 4C */ beq lbl_8031F708
+/* 8031F6C0 0031B320 80 1F 00 08 */ lwz r0, 8(r31)
+/* 8031F6C4 0031B324 28 00 00 07 */ cmplwi r0, 7
+/* 8031F6C8 0031B328 40 81 00 40 */ ble lbl_8031F708
+/* 8031F6CC 0031B32C 28 04 00 01 */ cmplwi r4, 1
+/* 8031F6D0 0031B330 41 81 00 0C */ bgt lbl_8031F6DC
+/* 8031F6D4 0031B334 80 9F 00 18 */ lwz r4, 0x18(r31)
+/* 8031F6D8 0031B338 48 00 06 9D */ bl DWCi_UpdateFriendReq
+lbl_8031F6DC:
+/* 8031F6DC 0031B33C 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F6E0 0031B340 88 64 00 20 */ lbz r3, 0x20(r4)
+/* 8031F6E4 0031B344 80 04 00 18 */ lwz r0, 0x18(r4)
+/* 8031F6E8 0031B348 7C 03 00 00 */ cmpw r3, r0
+/* 8031F6EC 0031B34C 41 80 00 1C */ blt lbl_8031F708
+/* 8031F6F0 0031B350 38 00 00 03 */ li r0, 3
+/* 8031F6F4 0031B354 98 04 00 22 */ stb r0, 0x22(r4)
+/* 8031F6F8 0031B358 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F6FC 0031B35C 88 64 00 23 */ lbz r3, 0x23(r4)
+/* 8031F700 0031B360 38 03 00 01 */ addi r0, r3, 1
+/* 8031F704 0031B364 98 04 00 23 */ stb r0, 0x23(r4)
+lbl_8031F708:
+/* 8031F708 0031B368 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F70C 0031B36C 88 04 00 23 */ lbz r0, 0x23(r4)
+/* 8031F710 0031B370 28 00 00 02 */ cmplwi r0, 2
+/* 8031F714 0031B374 41 80 00 34 */ blt lbl_8031F748
+/* 8031F718 0031B378 38 00 00 00 */ li r0, 0
+/* 8031F71C 0031B37C 38 60 00 00 */ li r3, 0
+/* 8031F720 0031B380 98 04 00 23 */ stb r0, 0x23(r4)
+/* 8031F724 0031B384 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F728 0031B388 81 85 00 30 */ lwz r12, 0x30(r5)
+/* 8031F72C 0031B38C 88 85 00 21 */ lbz r4, 0x21(r5)
+/* 8031F730 0031B390 80 A5 00 34 */ lwz r5, 0x34(r5)
+/* 8031F734 0031B394 7D 89 03 A6 */ mtctr r12
+/* 8031F738 0031B398 4E 80 04 21 */ bctrl
+/* 8031F73C 0031B39C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F740 0031B3A0 38 00 00 02 */ li r0, 2
+/* 8031F744 0031B3A4 90 03 00 00 */ stw r0, 0(r3)
+lbl_8031F748:
+/* 8031F748 0031B3A8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031F74C 0031B3AC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031F750 0031B3B0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031F754 0031B3B4 7C 08 03 A6 */ mtlr r0
+/* 8031F758 0031B3B8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031F75C 0031B3BC 4E 80 00 20 */ blr
+
+.global DWCi_UpdateServersAsync
+DWCi_UpdateServersAsync:
+/* 8031F760 0031B3C0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F764 0031B3C4 38 80 00 00 */ li r4, 0
+/* 8031F768 0031B3C8 38 00 00 01 */ li r0, 1
+/* 8031F76C 0031B3CC 90 A3 00 30 */ stw r5, 0x30(r3)
+/* 8031F770 0031B3D0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F774 0031B3D4 90 C3 00 34 */ stw r6, 0x34(r3)
+/* 8031F778 0031B3D8 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F77C 0031B3DC 90 E3 00 38 */ stw r7, 0x38(r3)
+/* 8031F780 0031B3E0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F784 0031B3E4 91 03 00 3C */ stw r8, 0x3c(r3)
+/* 8031F788 0031B3E8 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F78C 0031B3EC 91 23 00 40 */ stw r9, 0x40(r3)
+/* 8031F790 0031B3F0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F794 0031B3F4 91 43 00 44 */ stw r10, 0x44(r3)
+/* 8031F798 0031B3F8 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F79C 0031B3FC 98 83 00 21 */ stb r4, 0x21(r3)
+/* 8031F7A0 0031B400 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F7A4 0031B404 98 83 00 22 */ stb r4, 0x22(r3)
+/* 8031F7A8 0031B408 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F7AC 0031B40C 98 83 00 23 */ stb r4, 0x23(r3)
+/* 8031F7B0 0031B410 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F7B4 0031B414 98 83 00 20 */ stb r4, 0x20(r3)
+/* 8031F7B8 0031B418 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F7BC 0031B41C 90 03 00 00 */ stw r0, 0(r3)
+/* 8031F7C0 0031B420 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F7C4 0031B424 80 04 00 1C */ lwz r0, 0x1c(r4)
+/* 8031F7C8 0031B428 2C 00 00 00 */ cmpwi r0, 0
+/* 8031F7CC 0031B42C 40 82 00 10 */ bne lbl_8031F7DC
+/* 8031F7D0 0031B430 88 64 00 23 */ lbz r3, 0x23(r4)
+/* 8031F7D4 0031B434 38 03 00 01 */ addi r0, r3, 1
+/* 8031F7D8 0031B438 98 04 00 23 */ stb r0, 0x23(r4)
+lbl_8031F7DC:
+/* 8031F7DC 0031B43C 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F7E0 0031B440 88 64 00 23 */ lbz r3, 0x23(r4)
+/* 8031F7E4 0031B444 38 03 00 01 */ addi r0, r3, 1
+/* 8031F7E8 0031B448 98 04 00 23 */ stb r0, 0x23(r4)
+/* 8031F7EC 0031B44C 4E 80 00 20 */ blr
+
+.global DWCi_StopFriendProcess
+DWCi_StopFriendProcess:
+/* 8031F7F0 0031B450 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031F7F4 0031B454 7C 08 02 A6 */ mflr r0
+/* 8031F7F8 0031B458 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031F7FC 0031B45C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031F800 0031B460 7C 7F 1B 78 */ mr r31, r3
+/* 8031F804 0031B464 80 0D B0 48 */ lwz r0, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F808 0031B468 2C 00 00 00 */ cmpwi r0, 0
+/* 8031F80C 0031B46C 41 82 00 68 */ beq lbl_8031F874
+/* 8031F810 0031B470 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F814 0031B474 40 82 00 08 */ bne lbl_8031F81C
+/* 8031F818 0031B478 48 00 00 5C */ b lbl_8031F874
+lbl_8031F81C:
+/* 8031F81C 0031B47C 4B FF CD 65 */ bl DWCi_SetError
+/* 8031F820 0031B480 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F824 0031B484 80 05 00 00 */ lwz r0, 0(r5)
+/* 8031F828 0031B488 2C 00 00 00 */ cmpwi r0, 0
+/* 8031F82C 0031B48C 41 82 00 24 */ beq lbl_8031F850
+/* 8031F830 0031B490 2C 00 00 02 */ cmpwi r0, 2
+/* 8031F834 0031B494 41 82 00 1C */ beq lbl_8031F850
+/* 8031F838 0031B498 81 85 00 30 */ lwz r12, 0x30(r5)
+/* 8031F83C 0031B49C 7F E3 FB 78 */ mr r3, r31
+/* 8031F840 0031B4A0 88 85 00 21 */ lbz r4, 0x21(r5)
+/* 8031F844 0031B4A4 80 A5 00 34 */ lwz r5, 0x34(r5)
+/* 8031F848 0031B4A8 7D 89 03 A6 */ mtctr r12
+/* 8031F84C 0031B4AC 4E 80 04 21 */ bctrl
+lbl_8031F850:
+/* 8031F850 0031B4B0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F854 0031B4B4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F858 0031B4B8 41 82 00 1C */ beq lbl_8031F874
+/* 8031F85C 0031B4BC 38 00 00 00 */ li r0, 0
+/* 8031F860 0031B4C0 90 03 00 00 */ stw r0, 0(r3)
+/* 8031F864 0031B4C4 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F868 0031B4C8 98 03 00 22 */ stb r0, 0x22(r3)
+/* 8031F86C 0031B4CC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F870 0031B4D0 98 03 00 23 */ stb r0, 0x23(r3)
+lbl_8031F874:
+/* 8031F874 0031B4D4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031F878 0031B4D8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031F87C 0031B4DC 7C 08 03 A6 */ mtlr r0
+/* 8031F880 0031B4E0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031F884 0031B4E4 4E 80 00 20 */ blr
+
+.global DWCi_GPRecvBuddyRequestCallback
+DWCi_GPRecvBuddyRequestCallback:
+/* 8031F888 0031B4E8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031F88C 0031B4EC 7C 08 02 A6 */ mflr r0
+/* 8031F890 0031B4F0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031F894 0031B4F4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031F898 0031B4F8 7C 9F 23 78 */ mr r31, r4
+/* 8031F89C 0031B4FC 3C 80 80 44 */ lis r4, lbl_80446D08@ha
+/* 8031F8A0 0031B500 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031F8A4 0031B504 7C 7E 1B 78 */ mr r30, r3
+/* 8031F8A8 0031B508 38 84 6D 08 */ addi r4, r4, lbl_80446D08@l
+/* 8031F8AC 0031B50C 3C 60 00 02 */ lis r3, 2
+/* 8031F8B0 0031B510 80 BF 00 00 */ lwz r5, 0(r31)
+/* 8031F8B4 0031B514 4C C6 31 82 */ crclr 6
+/* 8031F8B8 0031B518 4B FF D2 7D */ bl DWC_Printf
+/* 8031F8BC 0031B51C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F8C0 0031B520 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 8031F8C4 0031B524 2C 00 00 00 */ cmpwi r0, 0
+/* 8031F8C8 0031B528 41 82 00 38 */ beq lbl_8031F900
+/* 8031F8CC 0031B52C 3C 80 80 44 */ lis r4, lbl_80446D28@ha
+/* 8031F8D0 0031B530 3C 60 00 02 */ lis r3, 2
+/* 8031F8D4 0031B534 38 84 6D 28 */ addi r4, r4, lbl_80446D28@l
+/* 8031F8D8 0031B538 4C C6 31 82 */ crclr 6
+/* 8031F8DC 0031B53C 4B FF D2 59 */ bl DWC_Printf
+/* 8031F8E0 0031B540 3C E0 80 32 */ lis r7, DWCi_GPGetInfoCallback_RecvBuddyRequest@ha
+/* 8031F8E4 0031B544 80 9F 00 00 */ lwz r4, 0(r31)
+/* 8031F8E8 0031B548 7F C3 F3 78 */ mr r3, r30
+/* 8031F8EC 0031B54C 38 A0 00 00 */ li r5, 0
+/* 8031F8F0 0031B550 38 E7 0A 10 */ addi r7, r7, DWCi_GPGetInfoCallback_RecvBuddyRequest@l
+/* 8031F8F4 0031B554 38 C0 00 00 */ li r6, 0
+/* 8031F8F8 0031B558 39 00 00 00 */ li r8, 0
+/* 8031F8FC 0031B55C 48 01 D8 41 */ bl gpGetInfo
+lbl_8031F900:
+/* 8031F900 0031B560 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031F904 0031B564 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031F908 0031B568 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031F90C 0031B56C 7C 08 03 A6 */ mtlr r0
+/* 8031F910 0031B570 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031F914 0031B574 4E 80 00 20 */ blr
+
+.global DWCi_GPRecvBuddyAuthCallback
+DWCi_GPRecvBuddyAuthCallback:
+/* 8031F918 0031B578 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031F91C 0031B57C 7C 08 02 A6 */ mflr r0
+/* 8031F920 0031B580 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031F924 0031B584 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031F928 0031B588 3F E0 80 44 */ lis r31, lbl_80446C80@ha
+/* 8031F92C 0031B58C 3B FF 6C 80 */ addi r31, r31, lbl_80446C80@l
+/* 8031F930 0031B590 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031F934 0031B594 7C 9E 23 78 */ mr r30, r4
+/* 8031F938 0031B598 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031F93C 0031B59C 7C 7D 1B 78 */ mr r29, r3
+/* 8031F940 0031B5A0 80 64 00 08 */ lwz r3, 8(r4)
+/* 8031F944 0031B5A4 38 9F 00 C4 */ addi r4, r31, 0xc4
+/* 8031F948 0031B5A8 4B EA EB 05 */ bl strcmp
+/* 8031F94C 0031B5AC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031F950 0031B5B0 40 82 00 50 */ bne lbl_8031F9A0
+/* 8031F954 0031B5B4 80 BE 00 00 */ lwz r5, 0(r30)
+/* 8031F958 0031B5B8 38 9F 00 FC */ addi r4, r31, 0xfc
+/* 8031F95C 0031B5BC 3C 60 00 02 */ lis r3, 2
+/* 8031F960 0031B5C0 4C C6 31 82 */ crclr 6
+/* 8031F964 0031B5C4 4B FF D1 D1 */ bl DWC_Printf
+/* 8031F968 0031B5C8 38 9F 00 A8 */ addi r4, r31, 0xa8
+/* 8031F96C 0031B5CC 3C 60 00 02 */ lis r3, 2
+/* 8031F970 0031B5D0 4C C6 31 82 */ crclr 6
+/* 8031F974 0031B5D4 4B FF D1 C1 */ bl DWC_Printf
+/* 8031F978 0031B5D8 3C E0 80 32 */ lis r7, DWCi_GPGetInfoCallback_RecvAuthMessage@ha
+/* 8031F97C 0031B5DC 80 9E 00 00 */ lwz r4, 0(r30)
+/* 8031F980 0031B5E0 7F A3 EB 78 */ mr r3, r29
+/* 8031F984 0031B5E4 38 A0 00 00 */ li r5, 0
+/* 8031F988 0031B5E8 38 E7 0B FC */ addi r7, r7, DWCi_GPGetInfoCallback_RecvAuthMessage@l
+/* 8031F98C 0031B5EC 38 C0 00 00 */ li r6, 0
+/* 8031F990 0031B5F0 39 00 00 00 */ li r8, 0
+/* 8031F994 0031B5F4 48 01 D7 A9 */ bl gpGetInfo
+/* 8031F998 0031B5F8 38 60 00 01 */ li r3, 1
+/* 8031F99C 0031B5FC 48 00 00 08 */ b lbl_8031F9A4
+lbl_8031F9A0:
+/* 8031F9A0 0031B600 38 60 00 00 */ li r3, 0
+lbl_8031F9A4:
+/* 8031F9A4 0031B604 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031F9A8 0031B608 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031F9AC 0031B60C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031F9B0 0031B610 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031F9B4 0031B614 7C 08 03 A6 */ mtlr r0
+/* 8031F9B8 0031B618 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031F9BC 0031B61C 4E 80 00 20 */ blr
+
+.global DWCi_GPRecvBuddyStatusCallback
+DWCi_GPRecvBuddyStatusCallback:
+/* 8031F9C0 0031B620 94 21 FD D0 */ stwu r1, -0x230(r1)
+/* 8031F9C4 0031B624 7C 08 02 A6 */ mflr r0
+/* 8031F9C8 0031B628 90 01 02 34 */ stw r0, 0x234(r1)
+/* 8031F9CC 0031B62C 39 61 02 30 */ addi r11, r1, 0x230
+/* 8031F9D0 0031B630 4B EA 77 55 */ bl _savegpr_26
+/* 8031F9D4 0031B634 7C 9B 23 78 */ mr r27, r4
+/* 8031F9D8 0031B638 3C 80 80 44 */ lis r4, lbl_80446DAC@ha
+/* 8031F9DC 0031B63C 80 BB 00 00 */ lwz r5, 0(r27)
+/* 8031F9E0 0031B640 7C 7A 1B 78 */ mr r26, r3
+/* 8031F9E4 0031B644 38 84 6D AC */ addi r4, r4, lbl_80446DAC@l
+/* 8031F9E8 0031B648 3C 60 00 02 */ lis r3, 2
+/* 8031F9EC 0031B64C 4C C6 31 82 */ crclr 6
+/* 8031F9F0 0031B650 4B FF D1 45 */ bl DWC_Printf
+/* 8031F9F4 0031B654 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031F9F8 0031B658 80 03 00 38 */ lwz r0, 0x38(r3)
+/* 8031F9FC 0031B65C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031FA00 0031B660 41 82 00 C4 */ beq lbl_8031FAC4
+/* 8031FA04 0031B664 2C 03 00 00 */ cmpwi r3, 0
+/* 8031FA08 0031B668 83 FB 00 00 */ lwz r31, 0(r27)
+/* 8031FA0C 0031B66C 41 82 00 0C */ beq lbl_8031FA18
+/* 8031FA10 0031B670 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031FA14 0031B674 40 82 00 0C */ bne lbl_8031FA20
+lbl_8031FA18:
+/* 8031FA18 0031B678 3B C0 FF FF */ li r30, -1
+/* 8031FA1C 0031B67C 48 00 00 6C */ b lbl_8031FA88
+lbl_8031FA20:
+/* 8031FA20 0031B680 3B C0 00 00 */ li r30, 0
+/* 8031FA24 0031B684 3B A0 00 00 */ li r29, 0
+/* 8031FA28 0031B688 48 00 00 4C */ b lbl_8031FA74
+lbl_8031FA2C:
+/* 8031FA2C 0031B68C 83 83 00 1C */ lwz r28, 0x1c(r3)
+/* 8031FA30 0031B690 2C 1C 00 00 */ cmpwi r28, 0
+/* 8031FA34 0031B694 40 82 00 0C */ bne lbl_8031FA40
+/* 8031FA38 0031B698 38 60 00 00 */ li r3, 0
+/* 8031FA3C 0031B69C 48 00 00 24 */ b lbl_8031FA60
+lbl_8031FA40:
+/* 8031FA40 0031B6A0 48 00 17 75 */ bl DWCi_GetUserData
+/* 8031FA44 0031B6A4 7C 9C EA 14 */ add r4, r28, r29
+/* 8031FA48 0031B6A8 48 01 3C B5 */ bl func_803336FC
+/* 8031FA4C 0031B6AC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031FA50 0031B6B0 41 82 00 0C */ beq lbl_8031FA5C
+/* 8031FA54 0031B6B4 2C 03 FF FF */ cmpwi r3, -1
+/* 8031FA58 0031B6B8 40 82 00 08 */ bne lbl_8031FA60
+lbl_8031FA5C:
+/* 8031FA5C 0031B6BC 38 60 00 00 */ li r3, 0
+lbl_8031FA60:
+/* 8031FA60 0031B6C0 7C 1F 18 00 */ cmpw r31, r3
+/* 8031FA64 0031B6C4 40 82 00 08 */ bne lbl_8031FA6C
+/* 8031FA68 0031B6C8 48 00 00 20 */ b lbl_8031FA88
+lbl_8031FA6C:
+/* 8031FA6C 0031B6CC 3B BD 00 0C */ addi r29, r29, 0xc
+/* 8031FA70 0031B6D0 3B DE 00 01 */ addi r30, r30, 1
+lbl_8031FA74:
+/* 8031FA74 0031B6D4 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FA78 0031B6D8 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8031FA7C 0031B6DC 7C 1E 00 00 */ cmpw r30, r0
+/* 8031FA80 0031B6E0 41 80 FF AC */ blt lbl_8031FA2C
+/* 8031FA84 0031B6E4 3B C0 FF FF */ li r30, -1
+lbl_8031FA88:
+/* 8031FA88 0031B6E8 2C 1E FF FF */ cmpwi r30, -1
+/* 8031FA8C 0031B6EC 41 82 00 38 */ beq lbl_8031FAC4
+/* 8031FA90 0031B6F0 80 9B 00 08 */ lwz r4, 8(r27)
+/* 8031FA94 0031B6F4 7F 43 D3 78 */ mr r3, r26
+/* 8031FA98 0031B6F8 38 A1 00 08 */ addi r5, r1, 8
+/* 8031FA9C 0031B6FC 48 01 DB 11 */ bl gpGetBuddyStatus
+/* 8031FAA0 0031B700 80 CD B0 48 */ lwz r6, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FAA4 0031B704 7F C3 F3 78 */ mr r3, r30
+/* 8031FAA8 0031B708 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8031FAAC 0031B70C 38 A1 01 10 */ addi r5, r1, 0x110
+/* 8031FAB0 0031B710 81 86 00 38 */ lwz r12, 0x38(r6)
+/* 8031FAB4 0031B714 54 04 06 3E */ clrlwi r4, r0, 0x18
+/* 8031FAB8 0031B718 80 C6 00 3C */ lwz r6, 0x3c(r6)
+/* 8031FABC 0031B71C 7D 89 03 A6 */ mtctr r12
+/* 8031FAC0 0031B720 4E 80 04 21 */ bctrl
+lbl_8031FAC4:
+/* 8031FAC4 0031B724 39 61 02 30 */ addi r11, r1, 0x230
+/* 8031FAC8 0031B728 4B EA 76 A9 */ bl _restgpr_26
+/* 8031FACC 0031B72C 80 01 02 34 */ lwz r0, 0x234(r1)
+/* 8031FAD0 0031B730 7C 08 03 A6 */ mtlr r0
+/* 8031FAD4 0031B734 38 21 02 30 */ addi r1, r1, 0x230
+/* 8031FAD8 0031B738 4E 80 00 20 */ blr
+
+.global DWCi_GetProfileIDFromList
+DWCi_GetProfileIDFromList:
+/* 8031FADC 0031B73C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031FAE0 0031B740 7C 08 02 A6 */ mflr r0
+/* 8031FAE4 0031B744 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031FAE8 0031B748 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031FAEC 0031B74C 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031FAF0 0031B750 7C 7E 1B 78 */ mr r30, r3
+/* 8031FAF4 0031B754 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FAF8 0031B758 83 E4 00 1C */ lwz r31, 0x1c(r4)
+/* 8031FAFC 0031B75C 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031FB00 0031B760 40 82 00 0C */ bne lbl_8031FB0C
+/* 8031FB04 0031B764 38 60 00 00 */ li r3, 0
+/* 8031FB08 0031B768 48 00 00 28 */ b lbl_8031FB30
+lbl_8031FB0C:
+/* 8031FB0C 0031B76C 48 00 16 A9 */ bl DWCi_GetUserData
+/* 8031FB10 0031B770 1C 1E 00 0C */ mulli r0, r30, 0xc
+/* 8031FB14 0031B774 7C 9F 02 14 */ add r4, r31, r0
+/* 8031FB18 0031B778 48 01 3B E5 */ bl func_803336FC
+/* 8031FB1C 0031B77C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031FB20 0031B780 41 82 00 0C */ beq lbl_8031FB2C
+/* 8031FB24 0031B784 2C 03 FF FF */ cmpwi r3, -1
+/* 8031FB28 0031B788 40 82 00 08 */ bne lbl_8031FB30
+lbl_8031FB2C:
+/* 8031FB2C 0031B78C 38 60 00 00 */ li r3, 0
+lbl_8031FB30:
+/* 8031FB30 0031B790 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031FB34 0031B794 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031FB38 0031B798 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031FB3C 0031B79C 7C 08 03 A6 */ mtlr r0
+/* 8031FB40 0031B7A0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031FB44 0031B7A4 4E 80 00 20 */ blr
+
+.global DWCi_GetFriendListIndex
+DWCi_GetFriendListIndex:
+/* 8031FB48 0031B7A8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031FB4C 0031B7AC 7C 08 02 A6 */ mflr r0
+/* 8031FB50 0031B7B0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031FB54 0031B7B4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031FB58 0031B7B8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031FB5C 0031B7BC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031FB60 0031B7C0 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8031FB64 0031B7C4 7C 7C 1B 78 */ mr r28, r3
+/* 8031FB68 0031B7C8 80 0D B0 48 */ lwz r0, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FB6C 0031B7CC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031FB70 0031B7D0 41 82 00 0C */ beq lbl_8031FB7C
+/* 8031FB74 0031B7D4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031FB78 0031B7D8 40 82 00 0C */ bne lbl_8031FB84
+lbl_8031FB7C:
+/* 8031FB7C 0031B7DC 38 60 FF FF */ li r3, -1
+/* 8031FB80 0031B7E0 48 00 00 70 */ b lbl_8031FBF0
+lbl_8031FB84:
+/* 8031FB84 0031B7E4 3B A0 00 00 */ li r29, 0
+/* 8031FB88 0031B7E8 3B E0 00 00 */ li r31, 0
+/* 8031FB8C 0031B7EC 48 00 00 50 */ b lbl_8031FBDC
+lbl_8031FB90:
+/* 8031FB90 0031B7F0 83 C3 00 1C */ lwz r30, 0x1c(r3)
+/* 8031FB94 0031B7F4 2C 1E 00 00 */ cmpwi r30, 0
+/* 8031FB98 0031B7F8 40 82 00 0C */ bne lbl_8031FBA4
+/* 8031FB9C 0031B7FC 38 60 00 00 */ li r3, 0
+/* 8031FBA0 0031B800 48 00 00 24 */ b lbl_8031FBC4
+lbl_8031FBA4:
+/* 8031FBA4 0031B804 48 00 16 11 */ bl DWCi_GetUserData
+/* 8031FBA8 0031B808 7C 9E FA 14 */ add r4, r30, r31
+/* 8031FBAC 0031B80C 48 01 3B 51 */ bl func_803336FC
+/* 8031FBB0 0031B810 2C 03 00 00 */ cmpwi r3, 0
+/* 8031FBB4 0031B814 41 82 00 0C */ beq lbl_8031FBC0
+/* 8031FBB8 0031B818 2C 03 FF FF */ cmpwi r3, -1
+/* 8031FBBC 0031B81C 40 82 00 08 */ bne lbl_8031FBC4
+lbl_8031FBC0:
+/* 8031FBC0 0031B820 38 60 00 00 */ li r3, 0
+lbl_8031FBC4:
+/* 8031FBC4 0031B824 7C 1C 18 00 */ cmpw r28, r3
+/* 8031FBC8 0031B828 40 82 00 0C */ bne lbl_8031FBD4
+/* 8031FBCC 0031B82C 7F A3 EB 78 */ mr r3, r29
+/* 8031FBD0 0031B830 48 00 00 20 */ b lbl_8031FBF0
+lbl_8031FBD4:
+/* 8031FBD4 0031B834 3B FF 00 0C */ addi r31, r31, 0xc
+/* 8031FBD8 0031B838 3B BD 00 01 */ addi r29, r29, 1
+lbl_8031FBDC:
+/* 8031FBDC 0031B83C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FBE0 0031B840 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8031FBE4 0031B844 7C 1D 00 00 */ cmpw r29, r0
+/* 8031FBE8 0031B848 41 80 FF A8 */ blt lbl_8031FB90
+/* 8031FBEC 0031B84C 38 60 FF FF */ li r3, -1
+lbl_8031FBF0:
+/* 8031FBF0 0031B850 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031FBF4 0031B854 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031FBF8 0031B858 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031FBFC 0031B85C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031FC00 0031B860 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8031FC04 0031B864 7C 08 03 A6 */ mtlr r0
+/* 8031FC08 0031B868 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031FC0C 0031B86C 4E 80 00 20 */ blr
+
+.global DWCi_InitGPProcessCount
+DWCi_InitGPProcessCount:
+/* 8031FC10 0031B870 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031FC14 0031B874 7C 08 02 A6 */ mflr r0
+/* 8031FC18 0031B878 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031FC1C 0031B87C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FC20 0031B880 2C 03 00 00 */ cmpwi r3, 0
+/* 8031FC24 0031B884 41 82 00 1C */ beq lbl_8031FC40
+/* 8031FC28 0031B888 38 00 00 00 */ li r0, 0
+/* 8031FC2C 0031B88C 90 03 00 08 */ stw r0, 8(r3)
+/* 8031FC30 0031B890 4B F5 2B 89 */ bl OSGetTime
+/* 8031FC34 0031B894 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FC38 0031B898 90 85 00 14 */ stw r4, 0x14(r5)
+/* 8031FC3C 0031B89C 90 65 00 10 */ stw r3, 0x10(r5)
+lbl_8031FC40:
+/* 8031FC40 0031B8A0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031FC44 0031B8A4 7C 08 03 A6 */ mtlr r0
+/* 8031FC48 0031B8A8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031FC4C 0031B8AC 4E 80 00 20 */ blr
+
+.global DWCi_SetGPStatus
+DWCi_SetGPStatus:
+/* 8031FC50 0031B8B0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031FC54 0031B8B4 7C 08 02 A6 */ mflr r0
+/* 8031FC58 0031B8B8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031FC5C 0031B8BC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031FC60 0031B8C0 3F E0 80 44 */ lis r31, lbl_80446C80@ha
+/* 8031FC64 0031B8C4 3B FF 6C 80 */ addi r31, r31, lbl_80446C80@l
+/* 8031FC68 0031B8C8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031FC6C 0031B8CC 7C BE 2B 78 */ mr r30, r5
+/* 8031FC70 0031B8D0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031FC74 0031B8D4 7C 9D 23 78 */ mr r29, r4
+/* 8031FC78 0031B8D8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8031FC7C 0031B8DC 7C 7C 1B 78 */ mr r28, r3
+/* 8031FC80 0031B8E0 80 0D B0 48 */ lwz r0, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FC84 0031B8E4 2C 00 00 00 */ cmpwi r0, 0
+/* 8031FC88 0031B8E8 41 82 00 10 */ beq lbl_8031FC98
+/* 8031FC8C 0031B8EC 48 00 1F 49 */ bl DWCi_CheckLogin
+/* 8031FC90 0031B8F0 2C 03 00 00 */ cmpwi r3, 0
+/* 8031FC94 0031B8F4 40 82 00 0C */ bne lbl_8031FCA0
+lbl_8031FC98:
+/* 8031FC98 0031B8F8 38 60 00 00 */ li r3, 0
+/* 8031FC9C 0031B8FC 48 00 00 AC */ b lbl_8031FD48
+lbl_8031FCA0:
+/* 8031FCA0 0031B900 2C 1C FF FF */ cmpwi r28, -1
+/* 8031FCA4 0031B904 40 82 00 18 */ bne lbl_8031FCBC
+/* 8031FCA8 0031B908 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FCAC 0031B90C 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031FCB0 0031B910 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031FCB4 0031B914 83 83 02 30 */ lwz r28, 0x230(r3)
+/* 8031FCB8 0031B918 48 00 00 18 */ b lbl_8031FCD0
+lbl_8031FCBC:
+/* 8031FCBC 0031B91C 7F 85 E3 78 */ mr r5, r28
+/* 8031FCC0 0031B920 38 9F 01 50 */ addi r4, r31, 0x150
+/* 8031FCC4 0031B924 38 60 00 04 */ li r3, 4
+/* 8031FCC8 0031B928 4C C6 31 82 */ crclr 6
+/* 8031FCCC 0031B92C 4B FF CE 69 */ bl DWC_Printf
+lbl_8031FCD0:
+/* 8031FCD0 0031B930 2C 1D 00 00 */ cmpwi r29, 0
+/* 8031FCD4 0031B934 40 82 00 18 */ bne lbl_8031FCEC
+/* 8031FCD8 0031B938 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FCDC 0031B93C 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031FCE0 0031B940 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031FCE4 0031B944 3B A3 02 34 */ addi r29, r3, 0x234
+/* 8031FCE8 0031B948 48 00 00 18 */ b lbl_8031FD00
+lbl_8031FCEC:
+/* 8031FCEC 0031B94C 7F A5 EB 78 */ mr r5, r29
+/* 8031FCF0 0031B950 38 9F 01 70 */ addi r4, r31, 0x170
+/* 8031FCF4 0031B954 38 60 00 04 */ li r3, 4
+/* 8031FCF8 0031B958 4C C6 31 82 */ crclr 6
+/* 8031FCFC 0031B95C 4B FF CE 39 */ bl DWC_Printf
+lbl_8031FD00:
+/* 8031FD00 0031B960 2C 1E 00 00 */ cmpwi r30, 0
+/* 8031FD04 0031B964 40 82 00 18 */ bne lbl_8031FD1C
+/* 8031FD08 0031B968 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FD0C 0031B96C 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031FD10 0031B970 80 63 00 00 */ lwz r3, 0(r3)
+/* 8031FD14 0031B974 3B C3 03 34 */ addi r30, r3, 0x334
+/* 8031FD18 0031B978 48 00 00 18 */ b lbl_8031FD30
+lbl_8031FD1C:
+/* 8031FD1C 0031B97C 7F C5 F3 78 */ mr r5, r30
+/* 8031FD20 0031B980 38 9F 01 94 */ addi r4, r31, 0x194
+/* 8031FD24 0031B984 38 60 00 04 */ li r3, 4
+/* 8031FD28 0031B988 4C C6 31 82 */ crclr 6
+/* 8031FD2C 0031B98C 4B FF CE 09 */ bl DWC_Printf
+lbl_8031FD30:
+/* 8031FD30 0031B990 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FD34 0031B994 7F 84 E3 78 */ mr r4, r28
+/* 8031FD38 0031B998 7F A5 EB 78 */ mr r5, r29
+/* 8031FD3C 0031B99C 7F C6 F3 78 */ mr r6, r30
+/* 8031FD40 0031B9A0 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031FD44 0031B9A4 48 01 DB 51 */ bl gpSetStatusA
+lbl_8031FD48:
+/* 8031FD48 0031B9A8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031FD4C 0031B9AC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031FD50 0031B9B0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031FD54 0031B9B4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031FD58 0031B9B8 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8031FD5C 0031B9BC 7C 08 03 A6 */ mtlr r0
+/* 8031FD60 0031B9C0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031FD64 0031B9C4 4E 80 00 20 */ blr
+
+.global DWCi_ShutdownFriend
+DWCi_ShutdownFriend:
+/* 8031FD68 0031B9C8 38 00 00 00 */ li r0, 0
+/* 8031FD6C 0031B9CC 90 0D B0 48 */ stw r0, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FD70 0031B9D0 4E 80 00 20 */ blr
+
+.global DWCi_UpdateFriendReq
+DWCi_UpdateFriendReq:
+/* 8031FD74 0031B9D4 94 21 FD A0 */ stwu r1, -0x260(r1)
+/* 8031FD78 0031B9D8 7C 08 02 A6 */ mflr r0
+/* 8031FD7C 0031B9DC 90 01 02 64 */ stw r0, 0x264(r1)
+/* 8031FD80 0031B9E0 39 61 02 60 */ addi r11, r1, 0x260
+/* 8031FD84 0031B9E4 4B EA 73 9D */ bl _savegpr_25
+/* 8031FD88 0031B9E8 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FD8C 0031B9EC 3F E0 80 44 */ lis r31, lbl_80446C80@ha
+/* 8031FD90 0031B9F0 7C 7D 1B 78 */ mr r29, r3
+/* 8031FD94 0031B9F4 7C 9E 23 78 */ mr r30, r4
+/* 8031FD98 0031B9F8 88 05 00 22 */ lbz r0, 0x22(r5)
+/* 8031FD9C 0031B9FC 3B FF 6C 80 */ addi r31, r31, lbl_80446C80@l
+/* 8031FDA0 0031BA00 2C 00 00 00 */ cmpwi r0, 0
+/* 8031FDA4 0031BA04 40 82 02 B4 */ bne lbl_80320058
+/* 8031FDA8 0031BA08 80 65 00 04 */ lwz r3, 4(r5)
+/* 8031FDAC 0031BA0C 38 81 00 14 */ addi r4, r1, 0x14
+/* 8031FDB0 0031BA10 48 01 D7 B5 */ bl gpGetNumBuddies
+/* 8031FDB4 0031BA14 48 00 07 09 */ bl DWCi_HandleGPError
+/* 8031FDB8 0031BA18 80 A1 00 14 */ lwz r5, 0x14(r1)
+/* 8031FDBC 0031BA1C 38 9F 01 BC */ addi r4, r31, 0x1bc
+/* 8031FDC0 0031BA20 3C 60 00 02 */ lis r3, 2
+/* 8031FDC4 0031BA24 4C C6 31 82 */ crclr 6
+/* 8031FDC8 0031BA28 4B FF CD 6D */ bl DWC_Printf
+/* 8031FDCC 0031BA2C 38 80 00 00 */ li r4, 0
+/* 8031FDD0 0031BA30 3B 80 00 01 */ li r28, 1
+/* 8031FDD4 0031BA34 90 81 00 10 */ stw r4, 0x10(r1)
+/* 8031FDD8 0031BA38 48 00 01 04 */ b lbl_8031FEDC
+lbl_8031FDDC:
+/* 8031FDDC 0031BA3C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FDE0 0031BA40 38 A1 00 30 */ addi r5, r1, 0x30
+/* 8031FDE4 0031BA44 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031FDE8 0031BA48 48 01 D7 C5 */ bl gpGetBuddyStatus
+/* 8031FDEC 0031BA4C 48 00 06 D1 */ bl DWCi_HandleGPError
+/* 8031FDF0 0031BA50 3B 20 00 00 */ li r25, 0
+/* 8031FDF4 0031BA54 3B 60 00 00 */ li r27, 0
+/* 8031FDF8 0031BA58 48 00 00 88 */ b lbl_8031FE80
+lbl_8031FDFC:
+/* 8031FDFC 0031BA5C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FE00 0031BA60 83 43 00 1C */ lwz r26, 0x1c(r3)
+/* 8031FE04 0031BA64 2C 1A 00 00 */ cmpwi r26, 0
+/* 8031FE08 0031BA68 40 82 00 0C */ bne lbl_8031FE14
+/* 8031FE0C 0031BA6C 38 60 00 00 */ li r3, 0
+/* 8031FE10 0031BA70 48 00 00 24 */ b lbl_8031FE34
+lbl_8031FE14:
+/* 8031FE14 0031BA74 48 00 13 A1 */ bl DWCi_GetUserData
+/* 8031FE18 0031BA78 7C 9A DA 14 */ add r4, r26, r27
+/* 8031FE1C 0031BA7C 48 01 38 E1 */ bl func_803336FC
+/* 8031FE20 0031BA80 2C 03 00 00 */ cmpwi r3, 0
+/* 8031FE24 0031BA84 41 82 00 0C */ beq lbl_8031FE30
+/* 8031FE28 0031BA88 2C 03 FF FF */ cmpwi r3, -1
+/* 8031FE2C 0031BA8C 40 82 00 08 */ bne lbl_8031FE34
+lbl_8031FE30:
+/* 8031FE30 0031BA90 38 60 00 00 */ li r3, 0
+lbl_8031FE34:
+/* 8031FE34 0031BA94 80 01 00 30 */ lwz r0, 0x30(r1)
+/* 8031FE38 0031BA98 7C 00 18 00 */ cmpw r0, r3
+/* 8031FE3C 0031BA9C 40 82 00 3C */ bne lbl_8031FE78
+/* 8031FE40 0031BAA0 1F 59 00 0C */ mulli r26, r25, 0xc
+/* 8031FE44 0031BAA4 7C 7D D2 14 */ add r3, r29, r26
+/* 8031FE48 0031BAA8 48 01 2D 05 */ bl func_80332B4C
+/* 8031FE4C 0031BAAC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031FE50 0031BAB0 40 82 00 38 */ bne lbl_8031FE88
+/* 8031FE54 0031BAB4 7F 5D D2 14 */ add r26, r29, r26
+/* 8031FE58 0031BAB8 80 81 00 30 */ lwz r4, 0x30(r1)
+/* 8031FE5C 0031BABC 7F 43 D3 78 */ mr r3, r26
+/* 8031FE60 0031BAC0 48 01 3B FD */ bl func_80333A5C
+/* 8031FE64 0031BAC4 7F 43 D3 78 */ mr r3, r26
+/* 8031FE68 0031BAC8 48 01 2D 15 */ bl func_80332B7C
+/* 8031FE6C 0031BACC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FE70 0031BAD0 9B 83 00 21 */ stb r28, 0x21(r3)
+/* 8031FE74 0031BAD4 48 00 00 14 */ b lbl_8031FE88
+lbl_8031FE78:
+/* 8031FE78 0031BAD8 3B 7B 00 0C */ addi r27, r27, 0xc
+/* 8031FE7C 0031BADC 3B 39 00 01 */ addi r25, r25, 1
+lbl_8031FE80:
+/* 8031FE80 0031BAE0 7C 19 F0 00 */ cmpw r25, r30
+/* 8031FE84 0031BAE4 41 80 FF 78 */ blt lbl_8031FDFC
+lbl_8031FE88:
+/* 8031FE88 0031BAE8 7C 19 F0 00 */ cmpw r25, r30
+/* 8031FE8C 0031BAEC 40 82 00 44 */ bne lbl_8031FED0
+/* 8031FE90 0031BAF0 80 A1 00 30 */ lwz r5, 0x30(r1)
+/* 8031FE94 0031BAF4 38 9F 01 D4 */ addi r4, r31, 0x1d4
+/* 8031FE98 0031BAF8 3C 60 00 02 */ lis r3, 2
+/* 8031FE9C 0031BAFC 4C C6 31 82 */ crclr 6
+/* 8031FEA0 0031BB00 4B FF CC 95 */ bl DWC_Printf
+/* 8031FEA4 0031BB04 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FEA8 0031BB08 80 81 00 30 */ lwz r4, 0x30(r1)
+/* 8031FEAC 0031BB0C 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031FEB0 0031BB10 48 01 D9 5D */ bl gpDeleteBuddy
+/* 8031FEB4 0031BB14 48 00 06 09 */ bl DWCi_HandleGPError
+/* 8031FEB8 0031BB18 80 81 00 14 */ lwz r4, 0x14(r1)
+/* 8031FEBC 0031BB1C 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8031FEC0 0031BB20 38 04 FF FF */ addi r0, r4, -1
+/* 8031FEC4 0031BB24 38 83 FF FF */ addi r4, r3, -1
+/* 8031FEC8 0031BB28 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031FECC 0031BB2C 90 81 00 10 */ stw r4, 0x10(r1)
+lbl_8031FED0:
+/* 8031FED0 0031BB30 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8031FED4 0031BB34 38 83 00 01 */ addi r4, r3, 1
+/* 8031FED8 0031BB38 90 81 00 10 */ stw r4, 0x10(r1)
+lbl_8031FEDC:
+/* 8031FEDC 0031BB3C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031FEE0 0031BB40 7C 04 00 00 */ cmpw r4, r0
+/* 8031FEE4 0031BB44 41 80 FE F8 */ blt lbl_8031FDDC
+/* 8031FEE8 0031BB48 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FEEC 0031BB4C 38 00 00 01 */ li r0, 1
+/* 8031FEF0 0031BB50 98 03 00 22 */ stb r0, 0x22(r3)
+/* 8031FEF4 0031BB54 48 00 01 64 */ b lbl_80320058
+lbl_8031FEF8:
+/* 8031FEF8 0031BB58 83 63 00 1C */ lwz r27, 0x1c(r3)
+/* 8031FEFC 0031BB5C 2C 1B 00 00 */ cmpwi r27, 0
+/* 8031FF00 0031BB60 40 82 00 0C */ bne lbl_8031FF0C
+/* 8031FF04 0031BB64 3B 80 00 00 */ li r28, 0
+/* 8031FF08 0031BB68 48 00 00 30 */ b lbl_8031FF38
+lbl_8031FF0C:
+/* 8031FF0C 0031BB6C 48 00 12 A9 */ bl DWCi_GetUserData
+/* 8031FF10 0031BB70 1C 1A 00 0C */ mulli r0, r26, 0xc
+/* 8031FF14 0031BB74 7C 9B 02 14 */ add r4, r27, r0
+/* 8031FF18 0031BB78 48 01 37 E5 */ bl func_803336FC
+/* 8031FF1C 0031BB7C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031FF20 0031BB80 41 82 00 0C */ beq lbl_8031FF2C
+/* 8031FF24 0031BB84 2C 03 FF FF */ cmpwi r3, -1
+/* 8031FF28 0031BB88 40 82 00 0C */ bne lbl_8031FF34
+lbl_8031FF2C:
+/* 8031FF2C 0031BB8C 3B 80 00 00 */ li r28, 0
+/* 8031FF30 0031BB90 48 00 00 08 */ b lbl_8031FF38
+lbl_8031FF34:
+/* 8031FF34 0031BB94 7C 7C 1B 78 */ mr r28, r3
+lbl_8031FF38:
+/* 8031FF38 0031BB98 2C 1C 00 00 */ cmpwi r28, 0
+/* 8031FF3C 0031BB9C 41 82 00 74 */ beq lbl_8031FFB0
+/* 8031FF40 0031BBA0 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FF44 0031BBA4 7F A3 EB 78 */ mr r3, r29
+/* 8031FF48 0031BBA8 7F 85 E3 78 */ mr r5, r28
+/* 8031FF4C 0031BBAC 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 8031FF50 0031BBB0 48 00 01 31 */ bl DWCi_RefreshFriendListForth
+/* 8031FF54 0031BBB4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031FF58 0031BBB8 40 82 00 F0 */ bne lbl_80320048
+/* 8031FF5C 0031BBBC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FF60 0031BBC0 7F 84 E3 78 */ mr r4, r28
+/* 8031FF64 0031BBC4 38 A1 00 10 */ addi r5, r1, 0x10
+/* 8031FF68 0031BBC8 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031FF6C 0031BBCC 48 01 D7 91 */ bl gpGetBuddyIndex
+/* 8031FF70 0031BBD0 48 00 05 4D */ bl DWCi_HandleGPError
+/* 8031FF74 0031BBD4 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 8031FF78 0031BBD8 2C 00 FF FF */ cmpwi r0, -1
+/* 8031FF7C 0031BBDC 40 82 00 CC */ bne lbl_80320048
+/* 8031FF80 0031BBE0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FF84 0031BBE4 7F 84 E3 78 */ mr r4, r28
+/* 8031FF88 0031BBE8 38 AD 8D 70 */ addi r5, r13, lbl_8063E030-_SDA_BASE_
+/* 8031FF8C 0031BBEC 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031FF90 0031BBF0 48 01 D2 FD */ bl gpSendBuddyRequestA
+/* 8031FF94 0031BBF4 48 00 05 29 */ bl DWCi_HandleGPError
+/* 8031FF98 0031BBF8 7F 85 E3 78 */ mr r5, r28
+/* 8031FF9C 0031BBFC 38 9F 01 E8 */ addi r4, r31, 0x1e8
+/* 8031FFA0 0031BC00 3C 60 00 02 */ lis r3, 2
+/* 8031FFA4 0031BC04 4C C6 31 82 */ crclr 6
+/* 8031FFA8 0031BC08 4B FF CB 8D */ bl DWC_Printf
+/* 8031FFAC 0031BC0C 48 00 00 9C */ b lbl_80320048
+lbl_8031FFB0:
+/* 8031FFB0 0031BC10 48 00 12 05 */ bl DWCi_GetUserData
+/* 8031FFB4 0031BC14 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FFB8 0031BC18 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 8031FFBC 0031BC1C 1C 00 00 0C */ mulli r0, r0, 0xc
+/* 8031FFC0 0031BC20 7C 9D 02 14 */ add r4, r29, r0
+/* 8031FFC4 0031BC24 48 01 37 39 */ bl func_803336FC
+/* 8031FFC8 0031BC28 2C 03 FF FF */ cmpwi r3, -1
+/* 8031FFCC 0031BC2C 40 82 00 7C */ bne lbl_80320048
+/* 8031FFD0 0031BC30 48 00 11 E5 */ bl DWCi_GetUserData
+/* 8031FFD4 0031BC34 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FFD8 0031BC38 38 A1 00 18 */ addi r5, r1, 0x18
+/* 8031FFDC 0031BC3C 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 8031FFE0 0031BC40 1C 00 00 0C */ mulli r0, r0, 0xc
+/* 8031FFE4 0031BC44 7C 9D 02 14 */ add r4, r29, r0
+/* 8031FFE8 0031BC48 48 01 3A DD */ bl func_80333AC4
+/* 8031FFEC 0031BC4C 3C 60 80 32 */ lis r3, DWCi_GPProfileSearchCallback@ha
+/* 8031FFF0 0031BC50 81 6D B0 48 */ lwz r11, lbl_80640308-_SDA_BASE_(r13)
+/* 8031FFF4 0031BC54 38 63 07 04 */ addi r3, r3, DWCi_GPProfileSearchCallback@l
+/* 8031FFF8 0031BC58 39 01 00 18 */ addi r8, r1, 0x18
+/* 8031FFFC 0031BC5C 90 61 00 08 */ stw r3, 8(r1)
+/* 80320000 0031BC60 38 80 00 00 */ li r4, 0
+/* 80320004 0031BC64 38 A0 00 00 */ li r5, 0
+/* 80320008 0031BC68 38 C0 00 00 */ li r6, 0
+/* 8032000C 0031BC6C 88 0B 00 20 */ lbz r0, 0x20(r11)
+/* 80320010 0031BC70 38 E0 00 00 */ li r7, 0
+/* 80320014 0031BC74 39 20 00 00 */ li r9, 0
+/* 80320018 0031BC78 39 40 00 00 */ li r10, 0
+/* 8032001C 0031BC7C 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80320020 0031BC80 80 6B 00 04 */ lwz r3, 4(r11)
+/* 80320024 0031BC84 48 01 D0 49 */ bl gpProfileSearchA
+/* 80320028 0031BC88 38 9F 02 04 */ addi r4, r31, 0x204
+/* 8032002C 0031BC8C 3C 60 00 02 */ lis r3, 2
+/* 80320030 0031BC90 4C C6 31 82 */ crclr 6
+/* 80320034 0031BC94 4B FF CB 01 */ bl DWC_Printf
+/* 80320038 0031BC98 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8032003C 0031BC9C 38 00 00 02 */ li r0, 2
+/* 80320040 0031BCA0 98 03 00 22 */ stb r0, 0x22(r3)
+/* 80320044 0031BCA4 48 00 00 24 */ b lbl_80320068
+lbl_80320048:
+/* 80320048 0031BCA8 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 8032004C 0031BCAC 88 64 00 20 */ lbz r3, 0x20(r4)
+/* 80320050 0031BCB0 38 03 00 01 */ addi r0, r3, 1
+/* 80320054 0031BCB4 98 04 00 20 */ stb r0, 0x20(r4)
+lbl_80320058:
+/* 80320058 0031BCB8 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8032005C 0031BCBC 8B 43 00 20 */ lbz r26, 0x20(r3)
+/* 80320060 0031BCC0 7C 1A F0 00 */ cmpw r26, r30
+/* 80320064 0031BCC4 41 80 FE 94 */ blt lbl_8031FEF8
+lbl_80320068:
+/* 80320068 0031BCC8 39 61 02 60 */ addi r11, r1, 0x260
+/* 8032006C 0031BCCC 4B EA 71 01 */ bl _restgpr_25
+/* 80320070 0031BCD0 80 01 02 64 */ lwz r0, 0x264(r1)
+/* 80320074 0031BCD4 7C 08 03 A6 */ mtlr r0
+/* 80320078 0031BCD8 38 21 02 60 */ addi r1, r1, 0x260
+/* 8032007C 0031BCDC 4E 80 00 20 */ blr
+
+.global DWCi_RefreshFriendListForth
+DWCi_RefreshFriendListForth:
+/* 80320080 0031BCE0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80320084 0031BCE4 7C 08 02 A6 */ mflr r0
+/* 80320088 0031BCE8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8032008C 0031BCEC 39 61 00 20 */ addi r11, r1, 0x20
+/* 80320090 0031BCF0 4B EA 70 95 */ bl _savegpr_26
+/* 80320094 0031BCF4 7C 7A 1B 78 */ mr r26, r3
+/* 80320098 0031BCF8 7C 9B 23 78 */ mr r27, r4
+/* 8032009C 0031BCFC 7C BD 2B 78 */ mr r29, r5
+/* 803200A0 0031BD00 3B 80 00 00 */ li r28, 0
+/* 803200A4 0031BD04 3B E0 00 00 */ li r31, 0
+/* 803200A8 0031BD08 48 00 01 40 */ b lbl_803201E8
+lbl_803200AC:
+/* 803200AC 0031BD0C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803200B0 0031BD10 83 C3 00 1C */ lwz r30, 0x1c(r3)
+/* 803200B4 0031BD14 2C 1E 00 00 */ cmpwi r30, 0
+/* 803200B8 0031BD18 40 82 00 0C */ bne lbl_803200C4
+/* 803200BC 0031BD1C 38 60 00 00 */ li r3, 0
+/* 803200C0 0031BD20 48 00 00 24 */ b lbl_803200E4
+lbl_803200C4:
+/* 803200C4 0031BD24 48 00 10 F1 */ bl DWCi_GetUserData
+/* 803200C8 0031BD28 7C 9E FA 14 */ add r4, r30, r31
+/* 803200CC 0031BD2C 48 01 36 31 */ bl func_803336FC
+/* 803200D0 0031BD30 2C 03 00 00 */ cmpwi r3, 0
+/* 803200D4 0031BD34 41 82 00 0C */ beq lbl_803200E0
+/* 803200D8 0031BD38 2C 03 FF FF */ cmpwi r3, -1
+/* 803200DC 0031BD3C 40 82 00 08 */ bne lbl_803200E4
+lbl_803200E0:
+/* 803200E0 0031BD40 38 60 00 00 */ li r3, 0
+lbl_803200E4:
+/* 803200E4 0031BD44 2C 03 00 00 */ cmpwi r3, 0
+/* 803200E8 0031BD48 41 82 00 F8 */ beq lbl_803201E0
+/* 803200EC 0031BD4C 7C 03 E8 00 */ cmpw r3, r29
+/* 803200F0 0031BD50 40 82 00 F0 */ bne lbl_803201E0
+/* 803200F4 0031BD54 1F DC 00 0C */ mulli r30, r28, 0xc
+/* 803200F8 0031BD58 7F FA F2 14 */ add r31, r26, r30
+/* 803200FC 0031BD5C 7F E3 FB 78 */ mr r3, r31
+/* 80320100 0031BD60 48 01 2A 71 */ bl func_80332B70
+/* 80320104 0031BD64 3C 80 80 44 */ lis r4, lbl_80446EA0@ha
+/* 80320108 0031BD68 7C 67 1B 78 */ mr r7, r3
+/* 8032010C 0031BD6C 7F 85 E3 78 */ mr r5, r28
+/* 80320110 0031BD70 7F 66 DB 78 */ mr r6, r27
+/* 80320114 0031BD74 38 84 6E A0 */ addi r4, r4, lbl_80446EA0@l
+/* 80320118 0031BD78 3C 60 00 02 */ lis r3, 2
+/* 8032011C 0031BD7C 4C C6 31 82 */ crclr 6
+/* 80320120 0031BD80 4B FF CA 15 */ bl DWC_Printf
+/* 80320124 0031BD84 1F BB 00 0C */ mulli r29, r27, 0xc
+/* 80320128 0031BD88 7C 7A EA 14 */ add r3, r26, r29
+/* 8032012C 0031BD8C 48 01 2A 21 */ bl func_80332B4C
+/* 80320130 0031BD90 2C 03 00 00 */ cmpwi r3, 0
+/* 80320134 0031BD94 41 82 00 58 */ beq lbl_8032018C
+/* 80320138 0031BD98 7F E3 FB 78 */ mr r3, r31
+/* 8032013C 0031BD9C 48 01 2A 11 */ bl func_80332B4C
+/* 80320140 0031BDA0 2C 03 00 00 */ cmpwi r3, 0
+/* 80320144 0031BDA4 40 82 00 48 */ bne lbl_8032018C
+/* 80320148 0031BDA8 80 0D B0 48 */ lwz r0, lbl_80640308-_SDA_BASE_(r13)
+/* 8032014C 0031BDAC 2C 00 00 00 */ cmpwi r0, 0
+/* 80320150 0031BDB0 41 82 00 7C */ beq lbl_803201CC
+/* 80320154 0031BDB4 7F E3 FB 78 */ mr r3, r31
+/* 80320158 0031BDB8 38 80 00 00 */ li r4, 0
+/* 8032015C 0031BDBC 38 A0 00 0C */ li r5, 0xc
+/* 80320160 0031BDC0 4B CE 3F A5 */ bl memset
+/* 80320164 0031BDC4 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 80320168 0031BDC8 81 85 00 40 */ lwz r12, 0x40(r5)
+/* 8032016C 0031BDCC 2C 0C 00 00 */ cmpwi r12, 0
+/* 80320170 0031BDD0 41 82 00 5C */ beq lbl_803201CC
+/* 80320174 0031BDD4 7F 83 E3 78 */ mr r3, r28
+/* 80320178 0031BDD8 7F 64 DB 78 */ mr r4, r27
+/* 8032017C 0031BDDC 80 A5 00 44 */ lwz r5, 0x44(r5)
+/* 80320180 0031BDE0 7D 89 03 A6 */ mtctr r12
+/* 80320184 0031BDE4 4E 80 04 21 */ bctrl
+/* 80320188 0031BDE8 48 00 00 44 */ b lbl_803201CC
+lbl_8032018C:
+/* 8032018C 0031BDEC 80 0D B0 48 */ lwz r0, lbl_80640308-_SDA_BASE_(r13)
+/* 80320190 0031BDF0 2C 00 00 00 */ cmpwi r0, 0
+/* 80320194 0031BDF4 41 82 00 38 */ beq lbl_803201CC
+/* 80320198 0031BDF8 7C 7A EA 14 */ add r3, r26, r29
+/* 8032019C 0031BDFC 38 80 00 00 */ li r4, 0
+/* 803201A0 0031BE00 38 A0 00 0C */ li r5, 0xc
+/* 803201A4 0031BE04 4B CE 3F 61 */ bl memset
+/* 803201A8 0031BE08 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 803201AC 0031BE0C 81 85 00 40 */ lwz r12, 0x40(r5)
+/* 803201B0 0031BE10 2C 0C 00 00 */ cmpwi r12, 0
+/* 803201B4 0031BE14 41 82 00 18 */ beq lbl_803201CC
+/* 803201B8 0031BE18 7F 63 DB 78 */ mr r3, r27
+/* 803201BC 0031BE1C 7F 84 E3 78 */ mr r4, r28
+/* 803201C0 0031BE20 80 A5 00 44 */ lwz r5, 0x44(r5)
+/* 803201C4 0031BE24 7D 89 03 A6 */ mtctr r12
+/* 803201C8 0031BE28 4E 80 04 21 */ bctrl
+lbl_803201CC:
+/* 803201CC 0031BE2C 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 803201D0 0031BE30 38 00 00 01 */ li r0, 1
+/* 803201D4 0031BE34 38 60 00 01 */ li r3, 1
+/* 803201D8 0031BE38 98 04 00 21 */ stb r0, 0x21(r4)
+/* 803201DC 0031BE3C 48 00 00 18 */ b lbl_803201F4
+lbl_803201E0:
+/* 803201E0 0031BE40 3B FF 00 0C */ addi r31, r31, 0xc
+/* 803201E4 0031BE44 3B 9C 00 01 */ addi r28, r28, 1
+lbl_803201E8:
+/* 803201E8 0031BE48 7C 1C D8 00 */ cmpw r28, r27
+/* 803201EC 0031BE4C 41 80 FE C0 */ blt lbl_803200AC
+/* 803201F0 0031BE50 38 60 00 00 */ li r3, 0
+lbl_803201F4:
+/* 803201F4 0031BE54 39 61 00 20 */ addi r11, r1, 0x20
+/* 803201F8 0031BE58 4B EA 6F 79 */ bl _restgpr_26
+/* 803201FC 0031BE5C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80320200 0031BE60 7C 08 03 A6 */ mtlr r0
+/* 80320204 0031BE64 38 21 00 20 */ addi r1, r1, 0x20
+/* 80320208 0031BE68 4E 80 00 20 */ blr
+
+.global DWCi_RefreshFriendListAll
+DWCi_RefreshFriendListAll:
+/* 8032020C 0031BE6C 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 80320210 0031BE70 7C 08 02 A6 */ mflr r0
+/* 80320214 0031BE74 90 01 00 54 */ stw r0, 0x54(r1)
+/* 80320218 0031BE78 39 61 00 50 */ addi r11, r1, 0x50
+/* 8032021C 0031BE7C 4B EA 6E E1 */ bl _savegpr_16
+/* 80320220 0031BE80 7C 73 1B 78 */ mr r19, r3
+/* 80320224 0031BE84 7C 94 23 78 */ mr r20, r4
+/* 80320228 0031BE88 7C B5 2B 78 */ mr r21, r5
+/* 8032022C 0031BE8C 3B 00 FF FF */ li r24, -1
+/* 80320230 0031BE90 7E 7D 9B 78 */ mr r29, r19
+/* 80320234 0031BE94 7E 7C 9B 78 */ mr r28, r19
+/* 80320238 0031BE98 3A E0 00 00 */ li r23, 0
+/* 8032023C 0031BE9C 3B C0 00 00 */ li r30, 0
+/* 80320240 0031BEA0 3E 20 80 44 */ lis r17, 0x8044
+/* 80320244 0031BEA4 3A 40 00 01 */ li r18, 1
+/* 80320248 0031BEA8 48 00 01 84 */ b lbl_803203CC
+lbl_8032024C:
+/* 8032024C 0031BEAC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320250 0031BEB0 82 C3 00 1C */ lwz r22, 0x1c(r3)
+/* 80320254 0031BEB4 2C 16 00 00 */ cmpwi r22, 0
+/* 80320258 0031BEB8 40 82 00 0C */ bne lbl_80320264
+/* 8032025C 0031BEBC 3B E0 00 00 */ li r31, 0
+/* 80320260 0031BEC0 48 00 00 2C */ b lbl_8032028C
+lbl_80320264:
+/* 80320264 0031BEC4 48 00 0F 51 */ bl DWCi_GetUserData
+/* 80320268 0031BEC8 7C 96 F2 14 */ add r4, r22, r30
+/* 8032026C 0031BECC 48 01 34 91 */ bl func_803336FC
+/* 80320270 0031BED0 2C 03 00 00 */ cmpwi r3, 0
+/* 80320274 0031BED4 41 82 00 0C */ beq lbl_80320280
+/* 80320278 0031BED8 2C 03 FF FF */ cmpwi r3, -1
+/* 8032027C 0031BEDC 40 82 00 0C */ bne lbl_80320288
+lbl_80320280:
+/* 80320280 0031BEE0 3B E0 00 00 */ li r31, 0
+/* 80320284 0031BEE4 48 00 00 08 */ b lbl_8032028C
+lbl_80320288:
+/* 80320288 0031BEE8 7C 7F 1B 78 */ mr r31, r3
+lbl_8032028C:
+/* 8032028C 0031BEEC 2C 1F 00 00 */ cmpwi r31, 0
+/* 80320290 0031BEF0 41 82 01 2C */ beq lbl_803203BC
+/* 80320294 0031BEF4 7C 1F A8 00 */ cmpw r31, r21
+/* 80320298 0031BEF8 40 82 00 08 */ bne lbl_803202A0
+/* 8032029C 0031BEFC 7E F8 BB 78 */ mr r24, r23
+lbl_803202A0:
+/* 803202A0 0031BF00 3A D7 00 01 */ addi r22, r23, 1
+/* 803202A4 0031BF04 1F 36 00 0C */ mulli r25, r22, 0xc
+/* 803202A8 0031BF08 7F 73 CA 14 */ add r27, r19, r25
+/* 803202AC 0031BF0C 7F 7A DB 78 */ mr r26, r27
+/* 803202B0 0031BF10 48 00 01 04 */ b lbl_803203B4
+lbl_803202B4:
+/* 803202B4 0031BF14 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803202B8 0031BF18 82 03 00 1C */ lwz r16, 0x1c(r3)
+/* 803202BC 0031BF1C 2C 10 00 00 */ cmpwi r16, 0
+/* 803202C0 0031BF20 40 82 00 0C */ bne lbl_803202CC
+/* 803202C4 0031BF24 38 60 00 00 */ li r3, 0
+/* 803202C8 0031BF28 48 00 00 24 */ b lbl_803202EC
+lbl_803202CC:
+/* 803202CC 0031BF2C 48 00 0E E9 */ bl DWCi_GetUserData
+/* 803202D0 0031BF30 7C 90 CA 14 */ add r4, r16, r25
+/* 803202D4 0031BF34 48 01 34 29 */ bl func_803336FC
+/* 803202D8 0031BF38 2C 03 00 00 */ cmpwi r3, 0
+/* 803202DC 0031BF3C 41 82 00 0C */ beq lbl_803202E8
+/* 803202E0 0031BF40 2C 03 FF FF */ cmpwi r3, -1
+/* 803202E4 0031BF44 40 82 00 08 */ bne lbl_803202EC
+lbl_803202E8:
+/* 803202E8 0031BF48 38 60 00 00 */ li r3, 0
+lbl_803202EC:
+/* 803202EC 0031BF4C 7C 1F 18 00 */ cmpw r31, r3
+/* 803202F0 0031BF50 40 82 00 B4 */ bne lbl_803203A4
+/* 803202F4 0031BF54 7F A3 EB 78 */ mr r3, r29
+/* 803202F8 0031BF58 48 01 28 79 */ bl func_80332B70
+/* 803202FC 0031BF5C 2C 03 00 02 */ cmpwi r3, 2
+/* 80320300 0031BF60 40 82 00 20 */ bne lbl_80320320
+/* 80320304 0031BF64 7F 63 DB 78 */ mr r3, r27
+/* 80320308 0031BF68 48 01 28 69 */ bl func_80332B70
+/* 8032030C 0031BF6C 2C 03 00 03 */ cmpwi r3, 3
+/* 80320310 0031BF70 40 82 00 10 */ bne lbl_80320320
+/* 80320314 0031BF74 7F 83 E3 78 */ mr r3, r28
+/* 80320318 0031BF78 7F E4 FB 78 */ mr r4, r31
+/* 8032031C 0031BF7C 48 01 37 41 */ bl func_80333A5C
+lbl_80320320:
+/* 80320320 0031BF80 7F 63 DB 78 */ mr r3, r27
+/* 80320324 0031BF84 48 01 28 29 */ bl func_80332B4C
+/* 80320328 0031BF88 2C 03 00 00 */ cmpwi r3, 0
+/* 8032032C 0031BF8C 41 82 00 0C */ beq lbl_80320338
+/* 80320330 0031BF90 7F 83 E3 78 */ mr r3, r28
+/* 80320334 0031BF94 48 01 28 49 */ bl func_80332B7C
+lbl_80320338:
+/* 80320338 0031BF98 7F A3 EB 78 */ mr r3, r29
+/* 8032033C 0031BF9C 48 01 28 35 */ bl func_80332B70
+/* 80320340 0031BFA0 7C 67 1B 78 */ mr r7, r3
+/* 80320344 0031BFA4 7E E5 BB 78 */ mr r5, r23
+/* 80320348 0031BFA8 7E C6 B3 78 */ mr r6, r22
+/* 8032034C 0031BFAC 38 91 6E A0 */ addi r4, r17, 0x6ea0
+/* 80320350 0031BFB0 3C 60 00 02 */ lis r3, 2
+/* 80320354 0031BFB4 4C C6 31 82 */ crclr 6
+/* 80320358 0031BFB8 4B FF C7 DD */ bl DWC_Printf
+/* 8032035C 0031BFBC 80 0D B0 48 */ lwz r0, lbl_80640308-_SDA_BASE_(r13)
+/* 80320360 0031BFC0 2C 00 00 00 */ cmpwi r0, 0
+/* 80320364 0031BFC4 41 82 00 38 */ beq lbl_8032039C
+/* 80320368 0031BFC8 7F 43 D3 78 */ mr r3, r26
+/* 8032036C 0031BFCC 38 80 00 00 */ li r4, 0
+/* 80320370 0031BFD0 38 A0 00 0C */ li r5, 0xc
+/* 80320374 0031BFD4 4B CE 3D 91 */ bl memset
+/* 80320378 0031BFD8 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 8032037C 0031BFDC 81 85 00 40 */ lwz r12, 0x40(r5)
+/* 80320380 0031BFE0 2C 0C 00 00 */ cmpwi r12, 0
+/* 80320384 0031BFE4 41 82 00 18 */ beq lbl_8032039C
+/* 80320388 0031BFE8 7E C3 B3 78 */ mr r3, r22
+/* 8032038C 0031BFEC 7E E4 BB 78 */ mr r4, r23
+/* 80320390 0031BFF0 80 A5 00 44 */ lwz r5, 0x44(r5)
+/* 80320394 0031BFF4 7D 89 03 A6 */ mtctr r12
+/* 80320398 0031BFF8 4E 80 04 21 */ bctrl
+lbl_8032039C:
+/* 8032039C 0031BFFC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803203A0 0031C000 9A 43 00 21 */ stb r18, 0x21(r3)
+lbl_803203A4:
+/* 803203A4 0031C004 3B 39 00 0C */ addi r25, r25, 0xc
+/* 803203A8 0031C008 3B 7B 00 0C */ addi r27, r27, 0xc
+/* 803203AC 0031C00C 3B 5A 00 0C */ addi r26, r26, 0xc
+/* 803203B0 0031C010 3A D6 00 01 */ addi r22, r22, 1
+lbl_803203B4:
+/* 803203B4 0031C014 7C 16 A0 00 */ cmpw r22, r20
+/* 803203B8 0031C018 41 80 FE FC */ blt lbl_803202B4
+lbl_803203BC:
+/* 803203BC 0031C01C 3B DE 00 0C */ addi r30, r30, 0xc
+/* 803203C0 0031C020 3B BD 00 0C */ addi r29, r29, 0xc
+/* 803203C4 0031C024 3B 9C 00 0C */ addi r28, r28, 0xc
+/* 803203C8 0031C028 3A F7 00 01 */ addi r23, r23, 1
+lbl_803203CC:
+/* 803203CC 0031C02C 7C 17 A0 00 */ cmpw r23, r20
+/* 803203D0 0031C030 41 80 FE 7C */ blt lbl_8032024C
+/* 803203D4 0031C034 39 61 00 50 */ addi r11, r1, 0x50
+/* 803203D8 0031C038 7F 03 C3 78 */ mr r3, r24
+/* 803203DC 0031C03C 4B EA 6D 6D */ bl _restgpr_16
+/* 803203E0 0031C040 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 803203E4 0031C044 7C 08 03 A6 */ mtlr r0
+/* 803203E8 0031C048 38 21 00 50 */ addi r1, r1, 0x50
+/* 803203EC 0031C04C 4E 80 00 20 */ blr
+
+.global DWCi_GetFriendBuddyStatus
+DWCi_GetFriendBuddyStatus:
+/* 803203F0 0031C050 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803203F4 0031C054 7C 08 02 A6 */ mflr r0
+/* 803203F8 0031C058 38 A0 00 00 */ li r5, 0
+/* 803203FC 0031C05C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80320400 0031C060 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80320404 0031C064 7C 7F 1B 78 */ mr r31, r3
+/* 80320408 0031C068 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8032040C 0031C06C 7C 9E 23 78 */ mr r30, r4
+/* 80320410 0031C070 80 0D B0 48 */ lwz r0, lbl_80640308-_SDA_BASE_(r13)
+/* 80320414 0031C074 90 A1 00 08 */ stw r5, 8(r1)
+/* 80320418 0031C078 2C 00 00 00 */ cmpwi r0, 0
+/* 8032041C 0031C07C 41 82 00 10 */ beq lbl_8032042C
+/* 80320420 0031C080 48 00 17 B5 */ bl DWCi_CheckLogin
+/* 80320424 0031C084 2C 03 00 00 */ cmpwi r3, 0
+/* 80320428 0031C088 40 82 00 0C */ bne lbl_80320434
+lbl_8032042C:
+/* 8032042C 0031C08C 38 60 00 00 */ li r3, 0
+/* 80320430 0031C090 48 00 00 74 */ b lbl_803204A4
+lbl_80320434:
+/* 80320434 0031C094 48 00 0D 81 */ bl DWCi_GetUserData
+/* 80320438 0031C098 7F E4 FB 78 */ mr r4, r31
+/* 8032043C 0031C09C 48 01 32 C1 */ bl func_803336FC
+/* 80320440 0031C0A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80320444 0031C0A4 7C 7F 1B 78 */ mr r31, r3
+/* 80320448 0031C0A8 40 81 00 28 */ ble lbl_80320470
+/* 8032044C 0031C0AC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320450 0031C0B0 7F E4 FB 78 */ mr r4, r31
+/* 80320454 0031C0B4 38 A1 00 08 */ addi r5, r1, 8
+/* 80320458 0031C0B8 80 63 00 04 */ lwz r3, 4(r3)
+/* 8032045C 0031C0BC 48 01 D2 A1 */ bl gpGetBuddyIndex
+/* 80320460 0031C0C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80320464 0031C0C4 41 82 00 0C */ beq lbl_80320470
+/* 80320468 0031C0C8 38 60 00 00 */ li r3, 0
+/* 8032046C 0031C0CC 48 00 00 38 */ b lbl_803204A4
+lbl_80320470:
+/* 80320470 0031C0D0 2C 1F 00 00 */ cmpwi r31, 0
+/* 80320474 0031C0D4 40 81 00 10 */ ble lbl_80320484
+/* 80320478 0031C0D8 80 81 00 08 */ lwz r4, 8(r1)
+/* 8032047C 0031C0DC 2C 04 FF FF */ cmpwi r4, -1
+/* 80320480 0031C0E0 40 82 00 0C */ bne lbl_8032048C
+lbl_80320484:
+/* 80320484 0031C0E4 38 60 00 00 */ li r3, 0
+/* 80320488 0031C0E8 48 00 00 1C */ b lbl_803204A4
+lbl_8032048C:
+/* 8032048C 0031C0EC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320490 0031C0F0 7F C5 F3 78 */ mr r5, r30
+/* 80320494 0031C0F4 80 63 00 04 */ lwz r3, 4(r3)
+/* 80320498 0031C0F8 48 01 D1 15 */ bl gpGetBuddyStatus
+/* 8032049C 0031C0FC 7C 60 00 34 */ cntlzw r0, r3
+/* 803204A0 0031C100 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f
+lbl_803204A4:
+/* 803204A4 0031C104 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803204A8 0031C108 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803204AC 0031C10C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803204B0 0031C110 7C 08 03 A6 */ mtlr r0
+/* 803204B4 0031C114 38 21 00 20 */ addi r1, r1, 0x20
+/* 803204B8 0031C118 4E 80 00 20 */ blr
+
+DWCi_HandleGPError:
+/* 803204BC 0031C11C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803204C0 0031C120 7C 08 02 A6 */ mflr r0
+/* 803204C4 0031C124 2C 03 00 00 */ cmpwi r3, 0
+/* 803204C8 0031C128 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803204CC 0031C12C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803204D0 0031C130 93 C1 00 08 */ stw r30, 8(r1)
+/* 803204D4 0031C134 7C 7E 1B 78 */ mr r30, r3
+/* 803204D8 0031C138 40 82 00 0C */ bne lbl_803204E4
+/* 803204DC 0031C13C 38 60 00 00 */ li r3, 0
+/* 803204E0 0031C140 48 00 00 EC */ b lbl_803205CC
+lbl_803204E4:
+/* 803204E4 0031C144 3C 80 80 44 */ lis r4, lbl_80446ED0@ha
+/* 803204E8 0031C148 7F C5 F3 78 */ mr r5, r30
+/* 803204EC 0031C14C 38 84 6E D0 */ addi r4, r4, lbl_80446ED0@l
+/* 803204F0 0031C150 38 60 00 02 */ li r3, 2
+/* 803204F4 0031C154 4C C6 31 82 */ crclr 6
+/* 803204F8 0031C158 4B FF C6 3D */ bl DWC_Printf
+/* 803204FC 0031C15C 2C 1E 00 03 */ cmpwi r30, 3
+/* 80320500 0031C160 41 82 00 3C */ beq lbl_8032053C
+/* 80320504 0031C164 40 80 00 14 */ bge lbl_80320518
+/* 80320508 0031C168 2C 1E 00 01 */ cmpwi r30, 1
+/* 8032050C 0031C16C 41 82 00 18 */ beq lbl_80320524
+/* 80320510 0031C170 40 80 00 20 */ bge lbl_80320530
+/* 80320514 0031C174 48 00 00 3C */ b lbl_80320550
+lbl_80320518:
+/* 80320518 0031C178 2C 1E 00 05 */ cmpwi r30, 5
+/* 8032051C 0031C17C 40 80 00 34 */ bge lbl_80320550
+/* 80320520 0031C180 48 00 00 28 */ b lbl_80320548
+lbl_80320524:
+/* 80320524 0031C184 3B E0 00 09 */ li r31, 9
+/* 80320528 0031C188 38 60 FF FF */ li r3, -1
+/* 8032052C 0031C18C 48 00 00 24 */ b lbl_80320550
+lbl_80320530:
+/* 80320530 0031C190 3B E0 00 09 */ li r31, 9
+/* 80320534 0031C194 38 60 FF FE */ li r3, -2
+/* 80320538 0031C198 48 00 00 18 */ b lbl_80320550
+lbl_8032053C:
+/* 8032053C 0031C19C 3B E0 00 06 */ li r31, 6
+/* 80320540 0031C1A0 38 60 FF F6 */ li r3, -10
+/* 80320544 0031C1A4 48 00 00 0C */ b lbl_80320550
+lbl_80320548:
+/* 80320548 0031C1A8 3B E0 00 06 */ li r31, 6
+/* 8032054C 0031C1AC 38 60 FF EC */ li r3, -20
+lbl_80320550:
+/* 80320550 0031C1B0 80 0D B0 48 */ lwz r0, lbl_80640308-_SDA_BASE_(r13)
+/* 80320554 0031C1B4 2C 00 00 00 */ cmpwi r0, 0
+/* 80320558 0031C1B8 41 82 00 70 */ beq lbl_803205C8
+/* 8032055C 0031C1BC 2C 1F 00 00 */ cmpwi r31, 0
+/* 80320560 0031C1C0 41 82 00 68 */ beq lbl_803205C8
+/* 80320564 0031C1C4 3C 83 FF FF */ addis r4, r3, 0xffff
+/* 80320568 0031C1C8 7F E3 FB 78 */ mr r3, r31
+/* 8032056C 0031C1CC 38 84 EA A8 */ addi r4, r4, -5464
+/* 80320570 0031C1D0 4B FF C0 11 */ bl DWCi_SetError
+/* 80320574 0031C1D4 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 80320578 0031C1D8 80 05 00 00 */ lwz r0, 0(r5)
+/* 8032057C 0031C1DC 2C 00 00 00 */ cmpwi r0, 0
+/* 80320580 0031C1E0 41 82 00 24 */ beq lbl_803205A4
+/* 80320584 0031C1E4 2C 00 00 02 */ cmpwi r0, 2
+/* 80320588 0031C1E8 41 82 00 1C */ beq lbl_803205A4
+/* 8032058C 0031C1EC 81 85 00 30 */ lwz r12, 0x30(r5)
+/* 80320590 0031C1F0 7F E3 FB 78 */ mr r3, r31
+/* 80320594 0031C1F4 88 85 00 21 */ lbz r4, 0x21(r5)
+/* 80320598 0031C1F8 80 A5 00 34 */ lwz r5, 0x34(r5)
+/* 8032059C 0031C1FC 7D 89 03 A6 */ mtctr r12
+/* 803205A0 0031C200 4E 80 04 21 */ bctrl
+lbl_803205A4:
+/* 803205A4 0031C204 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803205A8 0031C208 2C 03 00 00 */ cmpwi r3, 0
+/* 803205AC 0031C20C 41 82 00 1C */ beq lbl_803205C8
+/* 803205B0 0031C210 38 00 00 00 */ li r0, 0
+/* 803205B4 0031C214 90 03 00 00 */ stw r0, 0(r3)
+/* 803205B8 0031C218 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803205BC 0031C21C 98 03 00 22 */ stb r0, 0x22(r3)
+/* 803205C0 0031C220 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803205C4 0031C224 98 03 00 23 */ stb r0, 0x23(r3)
+lbl_803205C8:
+/* 803205C8 0031C228 7F C3 F3 78 */ mr r3, r30
+lbl_803205CC:
+/* 803205CC 0031C22C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803205D0 0031C230 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803205D4 0031C234 83 C1 00 08 */ lwz r30, 8(r1)
+/* 803205D8 0031C238 7C 08 03 A6 */ mtlr r0
+/* 803205DC 0031C23C 38 21 00 10 */ addi r1, r1, 0x10
+/* 803205E0 0031C240 4E 80 00 20 */ blr
+
+DWCi_HandlePersError:
+/* 803205E4 0031C244 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803205E8 0031C248 7C 08 02 A6 */ mflr r0
+/* 803205EC 0031C24C 2C 03 00 00 */ cmpwi r3, 0
+/* 803205F0 0031C250 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803205F4 0031C254 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803205F8 0031C258 93 C1 00 08 */ stw r30, 8(r1)
+/* 803205FC 0031C25C 7C 7E 1B 78 */ mr r30, r3
+/* 80320600 0031C260 40 82 00 0C */ bne lbl_8032060C
+/* 80320604 0031C264 38 60 00 00 */ li r3, 0
+/* 80320608 0031C268 48 00 00 E4 */ b lbl_803206EC
+lbl_8032060C:
+/* 8032060C 0031C26C 3C 80 80 44 */ lis r4, lbl_80446EE8@ha
+/* 80320610 0031C270 7F C5 F3 78 */ mr r5, r30
+/* 80320614 0031C274 38 84 6E E8 */ addi r4, r4, lbl_80446EE8@l
+/* 80320618 0031C278 38 60 00 02 */ li r3, 2
+/* 8032061C 0031C27C 4C C6 31 82 */ crclr 6
+/* 80320620 0031C280 4B FF C5 15 */ bl DWC_Printf
+/* 80320624 0031C284 28 1E 00 07 */ cmplwi r30, 7
+/* 80320628 0031C288 41 81 00 54 */ bgt lbl_8032067C
+/* 8032062C 0031C28C 3C 60 80 44 */ lis r3, lbl_80446F08@ha
+/* 80320630 0031C290 57 C0 10 3A */ slwi r0, r30, 2
+/* 80320634 0031C294 38 63 6F 08 */ addi r3, r3, lbl_80446F08@l
+/* 80320638 0031C298 7C 63 00 2E */ lwzx r3, r3, r0
+/* 8032063C 0031C29C 7C 69 03 A6 */ mtctr r3
+/* 80320640 0031C2A0 4E 80 04 20 */ bctr
+/* 80320644 0031C2A4 3B E0 00 06 */ li r31, 6
+/* 80320648 0031C2A8 38 60 FF CE */ li r3, -50
+/* 8032064C 0031C2AC 48 00 00 30 */ b lbl_8032067C
+/* 80320650 0031C2B0 3B E0 00 06 */ li r31, 6
+/* 80320654 0031C2B4 38 60 FF E2 */ li r3, -30
+/* 80320658 0031C2B8 48 00 00 24 */ b lbl_8032067C
+/* 8032065C 0031C2BC 3B E0 00 06 */ li r31, 6
+/* 80320660 0031C2C0 38 60 FF EC */ li r3, -20
+/* 80320664 0031C2C4 48 00 00 18 */ b lbl_8032067C
+/* 80320668 0031C2C8 3B E0 00 06 */ li r31, 6
+/* 8032066C 0031C2CC 38 60 FF D8 */ li r3, -40
+/* 80320670 0031C2D0 48 00 00 0C */ b lbl_8032067C
+/* 80320674 0031C2D4 3B E0 00 06 */ li r31, 6
+/* 80320678 0031C2D8 38 60 FF BA */ li r3, -70
+lbl_8032067C:
+/* 8032067C 0031C2DC 80 0D B0 4C */ lwz r0, lbl_8064030C-_SDA_BASE_(r13)
+/* 80320680 0031C2E0 2C 00 00 01 */ cmpwi r0, 1
+/* 80320684 0031C2E4 40 82 00 64 */ bne lbl_803206E8
+/* 80320688 0031C2E8 80 0D B0 48 */ lwz r0, lbl_80640308-_SDA_BASE_(r13)
+/* 8032068C 0031C2EC 2C 00 00 00 */ cmpwi r0, 0
+/* 80320690 0031C2F0 41 82 00 58 */ beq lbl_803206E8
+/* 80320694 0031C2F4 2C 1F 00 00 */ cmpwi r31, 0
+/* 80320698 0031C2F8 41 82 00 50 */ beq lbl_803206E8
+/* 8032069C 0031C2FC 3C 83 FF FF */ addis r4, r3, 0xffff
+/* 803206A0 0031C300 7F E3 FB 78 */ mr r3, r31
+/* 803206A4 0031C304 38 84 98 A0 */ addi r4, r4, -26464
+/* 803206A8 0031C308 4B FF BE D9 */ bl DWCi_SetError
+/* 803206AC 0031C30C 48 03 7C B9 */ bl CloseStatsConnection
+/* 803206B0 0031C310 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803206B4 0031C314 38 00 00 00 */ li r0, 0
+/* 803206B8 0031C318 90 0D B0 4C */ stw r0, lbl_8064030C-_SDA_BASE_(r13)
+/* 803206BC 0031C31C 2C 03 00 00 */ cmpwi r3, 0
+/* 803206C0 0031C320 41 82 00 08 */ beq lbl_803206C8
+/* 803206C4 0031C324 90 03 00 24 */ stw r0, 0x24(r3)
+lbl_803206C8:
+/* 803206C8 0031C328 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 803206CC 0031C32C 81 84 00 50 */ lwz r12, 0x50(r4)
+/* 803206D0 0031C330 2C 0C 00 00 */ cmpwi r12, 0
+/* 803206D4 0031C334 41 82 00 14 */ beq lbl_803206E8
+/* 803206D8 0031C338 7F E3 FB 78 */ mr r3, r31
+/* 803206DC 0031C33C 80 84 00 54 */ lwz r4, 0x54(r4)
+/* 803206E0 0031C340 7D 89 03 A6 */ mtctr r12
+/* 803206E4 0031C344 4E 80 04 21 */ bctrl
+lbl_803206E8:
+/* 803206E8 0031C348 7F C3 F3 78 */ mr r3, r30
+lbl_803206EC:
+/* 803206EC 0031C34C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803206F0 0031C350 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803206F4 0031C354 83 C1 00 08 */ lwz r30, 8(r1)
+/* 803206F8 0031C358 7C 08 03 A6 */ mtlr r0
+/* 803206FC 0031C35C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80320700 0031C360 4E 80 00 20 */ blr
+
+DWCi_GPProfileSearchCallback:
+/* 80320704 0031C364 94 21 FD C0 */ stwu r1, -0x240(r1)
+/* 80320708 0031C368 7C 08 02 A6 */ mflr r0
+/* 8032070C 0031C36C 90 01 02 44 */ stw r0, 0x244(r1)
+/* 80320710 0031C370 39 61 02 40 */ addi r11, r1, 0x240
+/* 80320714 0031C374 4B EA 6A 09 */ bl _savegpr_24
+/* 80320718 0031C378 3F E0 80 44 */ lis r31, lbl_80446C80@ha
+/* 8032071C 0031C37C 7C BD 2B 78 */ mr r29, r5
+/* 80320720 0031C380 80 A4 00 04 */ lwz r5, 4(r4)
+/* 80320724 0031C384 3B FF 6C 80 */ addi r31, r31, lbl_80446C80@l
+/* 80320728 0031C388 7C 7B 1B 78 */ mr r27, r3
+/* 8032072C 0031C38C 80 C4 00 08 */ lwz r6, 8(r4)
+/* 80320730 0031C390 7C 9C 23 78 */ mr r28, r4
+/* 80320734 0031C394 38 9F 02 A8 */ addi r4, r31, 0x2a8
+/* 80320738 0031C398 38 60 00 04 */ li r3, 4
+/* 8032073C 0031C39C 4C C6 31 82 */ crclr 6
+/* 80320740 0031C3A0 4B FF C3 F5 */ bl DWC_Printf
+/* 80320744 0031C3A4 80 1C 00 00 */ lwz r0, 0(r28)
+/* 80320748 0031C3A8 2C 00 00 00 */ cmpwi r0, 0
+/* 8032074C 0031C3AC 40 82 02 4C */ bne lbl_80320998
+/* 80320750 0031C3B0 80 1C 00 04 */ lwz r0, 4(r28)
+/* 80320754 0031C3B4 2C 00 00 00 */ cmpwi r0, 0
+/* 80320758 0031C3B8 41 82 02 40 */ beq lbl_80320998
+/* 8032075C 0031C3BC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320760 0031C3C0 1F DD 00 0C */ mulli r30, r29, 0xc
+/* 80320764 0031C3C4 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320768 0031C3C8 7C 60 F2 14 */ add r3, r0, r30
+/* 8032076C 0031C3CC 48 01 24 05 */ bl func_80332B70
+/* 80320770 0031C3D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80320774 0031C3D4 41 82 02 24 */ beq lbl_80320998
+/* 80320778 0031C3D8 80 BC 00 04 */ lwz r5, 4(r28)
+/* 8032077C 0031C3DC 2C 05 00 01 */ cmpwi r5, 1
+/* 80320780 0031C3E0 40 81 00 14 */ ble lbl_80320794
+/* 80320784 0031C3E4 38 9F 02 C4 */ addi r4, r31, 0x2c4
+/* 80320788 0031C3E8 3C 60 00 02 */ lis r3, 2
+/* 8032078C 0031C3EC 4C C6 31 82 */ crclr 6
+/* 80320790 0031C3F0 4B FF C3 A5 */ bl DWC_Printf
+lbl_80320794:
+/* 80320794 0031C3F4 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320798 0031C3F8 80 03 00 00 */ lwz r0, 0(r3)
+/* 8032079C 0031C3FC 2C 00 00 01 */ cmpwi r0, 1
+/* 803207A0 0031C400 40 82 02 58 */ bne lbl_803209F8
+/* 803207A4 0031C404 3B 00 00 00 */ li r24, 0
+/* 803207A8 0031C408 3B 20 00 00 */ li r25, 0
+/* 803207AC 0031C40C 48 00 00 54 */ b lbl_80320800
+lbl_803207B0:
+/* 803207B0 0031C410 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803207B4 0031C414 7F A4 EB 78 */ mr r4, r29
+/* 803207B8 0031C418 80 BC 00 0C */ lwz r5, 0xc(r28)
+/* 803207BC 0031C41C 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 803207C0 0031C420 7C A5 C8 2E */ lwzx r5, r5, r25
+/* 803207C4 0031C424 4B FF F8 BD */ bl DWCi_RefreshFriendListForth
+/* 803207C8 0031C428 2C 03 00 00 */ cmpwi r3, 0
+/* 803207CC 0031C42C 41 82 00 2C */ beq lbl_803207F8
+/* 803207D0 0031C430 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 803207D4 0031C434 38 80 00 01 */ li r4, 1
+/* 803207D8 0031C438 38 00 06 01 */ li r0, 0x601
+/* 803207DC 0031C43C 88 65 00 20 */ lbz r3, 0x20(r5)
+/* 803207E0 0031C440 38 63 00 01 */ addi r3, r3, 1
+/* 803207E4 0031C444 98 65 00 20 */ stb r3, 0x20(r5)
+/* 803207E8 0031C448 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803207EC 0031C44C 98 83 00 22 */ stb r4, 0x22(r3)
+/* 803207F0 0031C450 90 1C 00 08 */ stw r0, 8(r28)
+/* 803207F4 0031C454 48 00 02 04 */ b lbl_803209F8
+lbl_803207F8:
+/* 803207F8 0031C458 3B 39 00 AC */ addi r25, r25, 0xac
+/* 803207FC 0031C45C 3B 18 00 01 */ addi r24, r24, 1
+lbl_80320800:
+/* 80320800 0031C460 80 1C 00 04 */ lwz r0, 4(r28)
+/* 80320804 0031C464 7C 18 00 00 */ cmpw r24, r0
+/* 80320808 0031C468 41 80 FF A8 */ blt lbl_803207B0
+/* 8032080C 0031C46C 3B 00 00 00 */ li r24, 0
+/* 80320810 0031C470 3B 20 00 00 */ li r25, 0
+/* 80320814 0031C474 48 00 01 38 */ b lbl_8032094C
+lbl_80320818:
+/* 80320818 0031C478 80 9C 00 0C */ lwz r4, 0xc(r28)
+/* 8032081C 0031C47C 7F 63 DB 78 */ mr r3, r27
+/* 80320820 0031C480 38 A1 00 08 */ addi r5, r1, 8
+/* 80320824 0031C484 7C 84 C8 2E */ lwzx r4, r4, r25
+/* 80320828 0031C488 48 01 CE D5 */ bl gpGetBuddyIndex
+/* 8032082C 0031C48C 4B FF FC 91 */ bl DWCi_HandleGPError
+/* 80320830 0031C490 80 01 00 08 */ lwz r0, 8(r1)
+/* 80320834 0031C494 2C 00 FF FF */ cmpwi r0, -1
+/* 80320838 0031C498 40 82 00 3C */ bne lbl_80320874
+/* 8032083C 0031C49C 80 9C 00 0C */ lwz r4, 0xc(r28)
+/* 80320840 0031C4A0 38 AD 8D 70 */ addi r5, r13, lbl_8063E030-_SDA_BASE_
+/* 80320844 0031C4A4 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320848 0031C4A8 7F 44 C8 2E */ lwzx r26, r4, r25
+/* 8032084C 0031C4AC 80 63 00 04 */ lwz r3, 4(r3)
+/* 80320850 0031C4B0 7F 44 D3 78 */ mr r4, r26
+/* 80320854 0031C4B4 48 01 CA 39 */ bl gpSendBuddyRequestA
+/* 80320858 0031C4B8 4B FF FC 65 */ bl DWCi_HandleGPError
+/* 8032085C 0031C4BC 7F 45 D3 78 */ mr r5, r26
+/* 80320860 0031C4C0 38 9F 01 E8 */ addi r4, r31, 0x1e8
+/* 80320864 0031C4C4 3C 60 00 02 */ lis r3, 2
+/* 80320868 0031C4C8 4C C6 31 82 */ crclr 6
+/* 8032086C 0031C4CC 4B FF C2 C9 */ bl DWC_Printf
+/* 80320870 0031C4D0 48 00 00 D4 */ b lbl_80320944
+lbl_80320874:
+/* 80320874 0031C4D4 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 80320878 0031C4D8 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 8032087C 0031C4DC 80 04 00 1C */ lwz r0, 0x1c(r4)
+/* 80320880 0031C4E0 80 83 00 00 */ lwz r4, 0(r3)
+/* 80320884 0031C4E4 7C 60 F2 14 */ add r3, r0, r30
+/* 80320888 0031C4E8 48 01 31 D5 */ bl func_80333A5C
+/* 8032088C 0031C4EC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320890 0031C4F0 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320894 0031C4F4 7C 60 F2 14 */ add r3, r0, r30
+/* 80320898 0031C4F8 48 01 22 E5 */ bl func_80332B7C
+/* 8032089C 0031C4FC 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 803208A0 0031C500 81 84 00 48 */ lwz r12, 0x48(r4)
+/* 803208A4 0031C504 2C 0C 00 00 */ cmpwi r12, 0
+/* 803208A8 0031C508 41 82 00 20 */ beq lbl_803208C8
+/* 803208AC 0031C50C 80 04 00 00 */ lwz r0, 0(r4)
+/* 803208B0 0031C510 2C 00 00 01 */ cmpwi r0, 1
+/* 803208B4 0031C514 41 82 00 14 */ beq lbl_803208C8
+/* 803208B8 0031C518 7F A3 EB 78 */ mr r3, r29
+/* 803208BC 0031C51C 80 84 00 4C */ lwz r4, 0x4c(r4)
+/* 803208C0 0031C520 7D 89 03 A6 */ mtctr r12
+/* 803208C4 0031C524 4E 80 04 21 */ bctrl
+lbl_803208C8:
+/* 803208C8 0031C528 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803208CC 0031C52C 80 03 00 38 */ lwz r0, 0x38(r3)
+/* 803208D0 0031C530 2C 00 00 00 */ cmpwi r0, 0
+/* 803208D4 0031C534 41 82 00 40 */ beq lbl_80320914
+/* 803208D8 0031C538 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 803208DC 0031C53C 38 C1 01 18 */ addi r6, r1, 0x118
+/* 803208E0 0031C540 38 80 00 00 */ li r4, 0
+/* 803208E4 0031C544 38 A0 00 00 */ li r5, 0
+/* 803208E8 0031C548 7C 60 F2 14 */ add r3, r0, r30
+/* 803208EC 0031C54C 4B FF E8 AD */ bl DWC_GetFriendStatusSC
+/* 803208F0 0031C550 80 CD B0 48 */ lwz r6, lbl_80640308-_SDA_BASE_(r13)
+/* 803208F4 0031C554 7C 60 1B 78 */ mr r0, r3
+/* 803208F8 0031C558 7F A3 EB 78 */ mr r3, r29
+/* 803208FC 0031C55C 38 A1 01 18 */ addi r5, r1, 0x118
+/* 80320900 0031C560 81 86 00 38 */ lwz r12, 0x38(r6)
+/* 80320904 0031C564 54 04 06 3E */ clrlwi r4, r0, 0x18
+/* 80320908 0031C568 80 C6 00 3C */ lwz r6, 0x3c(r6)
+/* 8032090C 0031C56C 7D 89 03 A6 */ mtctr r12
+/* 80320910 0031C570 4E 80 04 21 */ bctrl
+lbl_80320914:
+/* 80320914 0031C574 80 AD B0 48 */ lwz r5, lbl_80640308-_SDA_BASE_(r13)
+/* 80320918 0031C578 38 80 00 01 */ li r4, 1
+/* 8032091C 0031C57C 38 00 06 01 */ li r0, 0x601
+/* 80320920 0031C580 88 65 00 20 */ lbz r3, 0x20(r5)
+/* 80320924 0031C584 38 63 00 01 */ addi r3, r3, 1
+/* 80320928 0031C588 98 65 00 20 */ stb r3, 0x20(r5)
+/* 8032092C 0031C58C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320930 0031C590 98 83 00 22 */ stb r4, 0x22(r3)
+/* 80320934 0031C594 90 1C 00 08 */ stw r0, 8(r28)
+/* 80320938 0031C598 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8032093C 0031C59C 98 83 00 21 */ stb r4, 0x21(r3)
+/* 80320940 0031C5A0 48 00 00 B8 */ b lbl_803209F8
+lbl_80320944:
+/* 80320944 0031C5A4 3B 39 00 AC */ addi r25, r25, 0xac
+/* 80320948 0031C5A8 3B 18 00 01 */ addi r24, r24, 1
+lbl_8032094C:
+/* 8032094C 0031C5AC 80 1C 00 04 */ lwz r0, 4(r28)
+/* 80320950 0031C5B0 7C 18 00 00 */ cmpw r24, r0
+/* 80320954 0031C5B4 41 80 FE C4 */ blt lbl_80320818
+/* 80320958 0031C5B8 80 1C 00 08 */ lwz r0, 8(r28)
+/* 8032095C 0031C5BC 2C 00 06 00 */ cmpwi r0, 0x600
+/* 80320960 0031C5C0 41 82 00 24 */ beq lbl_80320984
+/* 80320964 0031C5C4 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 80320968 0031C5C8 38 00 00 01 */ li r0, 1
+/* 8032096C 0031C5CC 88 64 00 20 */ lbz r3, 0x20(r4)
+/* 80320970 0031C5D0 38 63 00 01 */ addi r3, r3, 1
+/* 80320974 0031C5D4 98 64 00 20 */ stb r3, 0x20(r4)
+/* 80320978 0031C5D8 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 8032097C 0031C5DC 98 03 00 22 */ stb r0, 0x22(r3)
+/* 80320980 0031C5E0 48 00 00 78 */ b lbl_803209F8
+lbl_80320984:
+/* 80320984 0031C5E4 38 9F 02 E4 */ addi r4, r31, 0x2e4
+/* 80320988 0031C5E8 38 60 00 04 */ li r3, 4
+/* 8032098C 0031C5EC 4C C6 31 82 */ crclr 6
+/* 80320990 0031C5F0 4B FF C1 A5 */ bl DWC_Printf
+/* 80320994 0031C5F4 48 00 00 64 */ b lbl_803209F8
+lbl_80320998:
+/* 80320998 0031C5F8 80 7C 00 00 */ lwz r3, 0(r28)
+/* 8032099C 0031C5FC 2C 03 00 00 */ cmpwi r3, 0
+/* 803209A0 0031C600 41 82 00 14 */ beq lbl_803209B4
+/* 803209A4 0031C604 4B FF FB 19 */ bl DWCi_HandleGPError
+/* 803209A8 0031C608 2C 03 00 00 */ cmpwi r3, 0
+/* 803209AC 0031C60C 41 82 00 4C */ beq lbl_803209F8
+/* 803209B0 0031C610 48 00 00 48 */ b lbl_803209F8
+lbl_803209B4:
+/* 803209B4 0031C614 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803209B8 0031C618 80 03 00 00 */ lwz r0, 0(r3)
+/* 803209BC 0031C61C 2C 00 00 01 */ cmpwi r0, 1
+/* 803209C0 0031C620 41 82 00 1C */ beq lbl_803209DC
+/* 803209C4 0031C624 1C 1D 00 0C */ mulli r0, r29, 0xc
+/* 803209C8 0031C628 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 803209CC 0031C62C 7C 63 02 14 */ add r3, r3, r0
+/* 803209D0 0031C630 48 01 21 A1 */ bl func_80332B70
+/* 803209D4 0031C634 2C 03 00 00 */ cmpwi r3, 0
+/* 803209D8 0031C638 40 82 00 20 */ bne lbl_803209F8
+lbl_803209DC:
+/* 803209DC 0031C63C 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 803209E0 0031C640 38 00 00 01 */ li r0, 1
+/* 803209E4 0031C644 88 64 00 20 */ lbz r3, 0x20(r4)
+/* 803209E8 0031C648 38 63 00 01 */ addi r3, r3, 1
+/* 803209EC 0031C64C 98 64 00 20 */ stb r3, 0x20(r4)
+/* 803209F0 0031C650 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 803209F4 0031C654 98 03 00 22 */ stb r0, 0x22(r3)
+lbl_803209F8:
+/* 803209F8 0031C658 39 61 02 40 */ addi r11, r1, 0x240
+/* 803209FC 0031C65C 4B EA 67 6D */ bl _restgpr_24
+/* 80320A00 0031C660 80 01 02 44 */ lwz r0, 0x244(r1)
+/* 80320A04 0031C664 7C 08 03 A6 */ mtlr r0
+/* 80320A08 0031C668 38 21 02 40 */ addi r1, r1, 0x240
+/* 80320A0C 0031C66C 4E 80 00 20 */ blr
+
+DWCi_GPGetInfoCallback_RecvBuddyRequest:
+/* 80320A10 0031C670 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80320A14 0031C674 7C 08 02 A6 */ mflr r0
+/* 80320A18 0031C678 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80320A1C 0031C67C 39 61 00 40 */ addi r11, r1, 0x40
+/* 80320A20 0031C680 4B EA 67 01 */ bl _savegpr_25
+/* 80320A24 0031C684 80 A4 00 00 */ lwz r5, 0(r4)
+/* 80320A28 0031C688 3F E0 80 44 */ lis r31, lbl_80446C80@ha
+/* 80320A2C 0031C68C 7C 7A 1B 78 */ mr r26, r3
+/* 80320A30 0031C690 7C 9B 23 78 */ mr r27, r4
+/* 80320A34 0031C694 2C 05 00 00 */ cmpwi r5, 0
+/* 80320A38 0031C698 3B FF 6C 80 */ addi r31, r31, lbl_80446C80@l
+/* 80320A3C 0031C69C 3B 80 00 00 */ li r28, 0
+/* 80320A40 0031C6A0 41 82 00 18 */ beq lbl_80320A58
+/* 80320A44 0031C6A4 38 9F 03 00 */ addi r4, r31, 0x300
+/* 80320A48 0031C6A8 38 60 00 20 */ li r3, 0x20
+/* 80320A4C 0031C6AC 4C C6 31 82 */ crclr 6
+/* 80320A50 0031C6B0 4B FF C0 E5 */ bl DWC_Printf
+/* 80320A54 0031C6B4 48 00 01 90 */ b lbl_80320BE4
+lbl_80320A58:
+/* 80320A58 0031C6B8 80 BB 00 04 */ lwz r5, 4(r27)
+/* 80320A5C 0031C6BC 38 9F 03 24 */ addi r4, r31, 0x324
+/* 80320A60 0031C6C0 38 DB 00 8E */ addi r6, r27, 0x8e
+/* 80320A64 0031C6C4 38 60 00 04 */ li r3, 4
+/* 80320A68 0031C6C8 4C C6 31 82 */ crclr 6
+/* 80320A6C 0031C6CC 4B FF C0 C9 */ bl DWC_Printf
+/* 80320A70 0031C6D0 3B A0 00 00 */ li r29, 0
+/* 80320A74 0031C6D4 3B C0 00 00 */ li r30, 0
+/* 80320A78 0031C6D8 48 00 01 04 */ b lbl_80320B7C
+lbl_80320A7C:
+/* 80320A7C 0031C6DC 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320A80 0031C6E0 7C 60 F2 14 */ add r3, r0, r30
+/* 80320A84 0031C6E4 48 01 20 ED */ bl func_80332B70
+/* 80320A88 0031C6E8 2C 03 00 01 */ cmpwi r3, 1
+/* 80320A8C 0031C6EC 40 82 00 70 */ bne lbl_80320AFC
+/* 80320A90 0031C6F0 48 00 07 25 */ bl DWCi_GetUserData
+/* 80320A94 0031C6F4 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 80320A98 0031C6F8 38 A1 00 08 */ addi r5, r1, 8
+/* 80320A9C 0031C6FC 80 04 00 1C */ lwz r0, 0x1c(r4)
+/* 80320AA0 0031C700 7C 80 F2 14 */ add r4, r0, r30
+/* 80320AA4 0031C704 48 01 30 21 */ bl func_80333AC4
+/* 80320AA8 0031C708 38 61 00 08 */ addi r3, r1, 8
+/* 80320AAC 0031C70C 38 9B 00 8E */ addi r4, r27, 0x8e
+/* 80320AB0 0031C710 4B EA D9 9D */ bl strcmp
+/* 80320AB4 0031C714 2C 03 00 00 */ cmpwi r3, 0
+/* 80320AB8 0031C718 40 82 00 BC */ bne lbl_80320B74
+/* 80320ABC 0031C71C 80 9B 00 04 */ lwz r4, 4(r27)
+/* 80320AC0 0031C720 7F 43 D3 78 */ mr r3, r26
+/* 80320AC4 0031C724 48 01 C9 39 */ bl gpAuthBuddyRequest
+/* 80320AC8 0031C728 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320ACC 0031C72C 80 9B 00 04 */ lwz r4, 4(r27)
+/* 80320AD0 0031C730 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320AD4 0031C734 7C 60 F2 14 */ add r3, r0, r30
+/* 80320AD8 0031C738 48 01 2F 85 */ bl func_80333A5C
+/* 80320ADC 0031C73C 80 BB 00 04 */ lwz r5, 4(r27)
+/* 80320AE0 0031C740 7F A6 EB 78 */ mr r6, r29
+/* 80320AE4 0031C744 38 9F 03 50 */ addi r4, r31, 0x350
+/* 80320AE8 0031C748 3B 80 00 01 */ li r28, 1
+/* 80320AEC 0031C74C 3C 60 00 02 */ lis r3, 2
+/* 80320AF0 0031C750 4C C6 31 82 */ crclr 6
+/* 80320AF4 0031C754 4B FF C0 41 */ bl DWC_Printf
+/* 80320AF8 0031C758 48 00 00 7C */ b lbl_80320B74
+lbl_80320AFC:
+/* 80320AFC 0031C75C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320B00 0031C760 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320B04 0031C764 7C 60 F2 14 */ add r3, r0, r30
+/* 80320B08 0031C768 48 01 20 69 */ bl func_80332B70
+/* 80320B0C 0031C76C 2C 03 00 03 */ cmpwi r3, 3
+/* 80320B10 0031C770 41 82 00 1C */ beq lbl_80320B2C
+/* 80320B14 0031C774 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320B18 0031C778 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320B1C 0031C77C 7C 60 F2 14 */ add r3, r0, r30
+/* 80320B20 0031C780 48 01 20 51 */ bl func_80332B70
+/* 80320B24 0031C784 2C 03 00 02 */ cmpwi r3, 2
+/* 80320B28 0031C788 40 82 00 4C */ bne lbl_80320B74
+lbl_80320B2C:
+/* 80320B2C 0031C78C 83 3B 00 04 */ lwz r25, 4(r27)
+/* 80320B30 0031C790 48 00 06 85 */ bl DWCi_GetUserData
+/* 80320B34 0031C794 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 80320B38 0031C798 80 04 00 1C */ lwz r0, 0x1c(r4)
+/* 80320B3C 0031C79C 7C 80 F2 14 */ add r4, r0, r30
+/* 80320B40 0031C7A0 48 01 2B BD */ bl func_803336FC
+/* 80320B44 0031C7A4 7C 19 18 00 */ cmpw r25, r3
+/* 80320B48 0031C7A8 40 82 00 2C */ bne lbl_80320B74
+/* 80320B4C 0031C7AC 7F 43 D3 78 */ mr r3, r26
+/* 80320B50 0031C7B0 7F 24 CB 78 */ mr r4, r25
+/* 80320B54 0031C7B4 48 01 C8 A9 */ bl gpAuthBuddyRequest
+/* 80320B58 0031C7B8 80 BB 00 04 */ lwz r5, 4(r27)
+/* 80320B5C 0031C7BC 7F A6 EB 78 */ mr r6, r29
+/* 80320B60 0031C7C0 38 9F 03 7C */ addi r4, r31, 0x37c
+/* 80320B64 0031C7C4 3B 80 00 01 */ li r28, 1
+/* 80320B68 0031C7C8 3C 60 00 02 */ lis r3, 2
+/* 80320B6C 0031C7CC 4C C6 31 82 */ crclr 6
+/* 80320B70 0031C7D0 4B FF BF C5 */ bl DWC_Printf
+lbl_80320B74:
+/* 80320B74 0031C7D4 3B DE 00 0C */ addi r30, r30, 0xc
+/* 80320B78 0031C7D8 3B BD 00 01 */ addi r29, r29, 1
+lbl_80320B7C:
+/* 80320B7C 0031C7DC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320B80 0031C7E0 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 80320B84 0031C7E4 7C 1D 00 00 */ cmpw r29, r0
+/* 80320B88 0031C7E8 41 80 FE F4 */ blt lbl_80320A7C
+/* 80320B8C 0031C7EC 2C 1C 00 00 */ cmpwi r28, 0
+/* 80320B90 0031C7F0 41 82 00 34 */ beq lbl_80320BC4
+/* 80320B94 0031C7F4 83 5B 00 04 */ lwz r26, 4(r27)
+/* 80320B98 0031C7F8 38 AD 8D 70 */ addi r5, r13, lbl_8063E030-_SDA_BASE_
+/* 80320B9C 0031C7FC 80 63 00 04 */ lwz r3, 4(r3)
+/* 80320BA0 0031C800 7F 44 D3 78 */ mr r4, r26
+/* 80320BA4 0031C804 48 01 C6 E9 */ bl gpSendBuddyRequestA
+/* 80320BA8 0031C808 4B FF F9 15 */ bl DWCi_HandleGPError
+/* 80320BAC 0031C80C 7F 45 D3 78 */ mr r5, r26
+/* 80320BB0 0031C810 38 9F 01 E8 */ addi r4, r31, 0x1e8
+/* 80320BB4 0031C814 3C 60 00 02 */ lis r3, 2
+/* 80320BB8 0031C818 4C C6 31 82 */ crclr 6
+/* 80320BBC 0031C81C 4B FF BF 79 */ bl DWC_Printf
+/* 80320BC0 0031C820 48 00 00 24 */ b lbl_80320BE4
+lbl_80320BC4:
+/* 80320BC4 0031C824 80 9B 00 04 */ lwz r4, 4(r27)
+/* 80320BC8 0031C828 7F 43 D3 78 */ mr r3, r26
+/* 80320BCC 0031C82C 48 01 C8 A1 */ bl gpDenyBuddyRequest
+/* 80320BD0 0031C830 80 BB 00 04 */ lwz r5, 4(r27)
+/* 80320BD4 0031C834 38 9F 03 A8 */ addi r4, r31, 0x3a8
+/* 80320BD8 0031C838 3C 60 00 02 */ lis r3, 2
+/* 80320BDC 0031C83C 4C C6 31 82 */ crclr 6
+/* 80320BE0 0031C840 4B FF BF 55 */ bl DWC_Printf
+lbl_80320BE4:
+/* 80320BE4 0031C844 39 61 00 40 */ addi r11, r1, 0x40
+/* 80320BE8 0031C848 4B EA 65 85 */ bl _restgpr_25
+/* 80320BEC 0031C84C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80320BF0 0031C850 7C 08 03 A6 */ mtlr r0
+/* 80320BF4 0031C854 38 21 00 40 */ addi r1, r1, 0x40
+/* 80320BF8 0031C858 4E 80 00 20 */ blr
+
+DWCi_GPGetInfoCallback_RecvAuthMessage:
+/* 80320BFC 0031C85C 94 21 FD B0 */ stwu r1, -0x250(r1)
+/* 80320C00 0031C860 7C 08 02 A6 */ mflr r0
+/* 80320C04 0031C864 90 01 02 54 */ stw r0, 0x254(r1)
+/* 80320C08 0031C868 39 61 02 50 */ addi r11, r1, 0x250
+/* 80320C0C 0031C86C 4B EA 65 15 */ bl _savegpr_25
+/* 80320C10 0031C870 80 A4 00 00 */ lwz r5, 0(r4)
+/* 80320C14 0031C874 3F E0 80 44 */ lis r31, lbl_80446C80@ha
+/* 80320C18 0031C878 7C 9A 23 78 */ mr r26, r4
+/* 80320C1C 0031C87C 3B 80 00 00 */ li r28, 0
+/* 80320C20 0031C880 2C 05 00 00 */ cmpwi r5, 0
+/* 80320C24 0031C884 3B FF 6C 80 */ addi r31, r31, lbl_80446C80@l
+/* 80320C28 0031C888 3B 60 00 01 */ li r27, 1
+/* 80320C2C 0031C88C 41 82 00 18 */ beq lbl_80320C44
+/* 80320C30 0031C890 38 9F 03 C8 */ addi r4, r31, 0x3c8
+/* 80320C34 0031C894 38 60 00 20 */ li r3, 0x20
+/* 80320C38 0031C898 4C C6 31 82 */ crclr 6
+/* 80320C3C 0031C89C 4B FF BE F9 */ bl DWC_Printf
+/* 80320C40 0031C8A0 48 00 02 40 */ b lbl_80320E80
+lbl_80320C44:
+/* 80320C44 0031C8A4 80 BA 00 04 */ lwz r5, 4(r26)
+/* 80320C48 0031C8A8 38 9F 03 EC */ addi r4, r31, 0x3ec
+/* 80320C4C 0031C8AC 38 DA 00 8E */ addi r6, r26, 0x8e
+/* 80320C50 0031C8B0 38 60 00 04 */ li r3, 4
+/* 80320C54 0031C8B4 4C C6 31 82 */ crclr 6
+/* 80320C58 0031C8B8 4B FF BE DD */ bl DWC_Printf
+/* 80320C5C 0031C8BC 3B A0 00 00 */ li r29, 0
+/* 80320C60 0031C8C0 3B C0 00 00 */ li r30, 0
+/* 80320C64 0031C8C4 48 00 01 50 */ b lbl_80320DB4
+lbl_80320C68:
+/* 80320C68 0031C8C8 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320C6C 0031C8CC 7C 60 F2 14 */ add r3, r0, r30
+/* 80320C70 0031C8D0 48 01 1F 01 */ bl func_80332B70
+/* 80320C74 0031C8D4 2C 03 00 01 */ cmpwi r3, 1
+/* 80320C78 0031C8D8 40 82 00 74 */ bne lbl_80320CEC
+/* 80320C7C 0031C8DC 48 00 05 39 */ bl DWCi_GetUserData
+/* 80320C80 0031C8E0 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 80320C84 0031C8E4 38 A1 00 08 */ addi r5, r1, 8
+/* 80320C88 0031C8E8 80 04 00 1C */ lwz r0, 0x1c(r4)
+/* 80320C8C 0031C8EC 7C 80 F2 14 */ add r4, r0, r30
+/* 80320C90 0031C8F0 48 01 2E 35 */ bl func_80333AC4
+/* 80320C94 0031C8F4 38 61 00 08 */ addi r3, r1, 8
+/* 80320C98 0031C8F8 38 9A 00 8E */ addi r4, r26, 0x8e
+/* 80320C9C 0031C8FC 4B EA D7 B1 */ bl strcmp
+/* 80320CA0 0031C900 2C 03 00 00 */ cmpwi r3, 0
+/* 80320CA4 0031C904 40 82 01 08 */ bne lbl_80320DAC
+/* 80320CA8 0031C908 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320CAC 0031C90C 80 9A 00 04 */ lwz r4, 4(r26)
+/* 80320CB0 0031C910 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320CB4 0031C914 7C 60 F2 14 */ add r3, r0, r30
+/* 80320CB8 0031C918 48 01 2D A5 */ bl func_80333A5C
+/* 80320CBC 0031C91C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320CC0 0031C920 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320CC4 0031C924 7C 60 F2 14 */ add r3, r0, r30
+/* 80320CC8 0031C928 48 01 1E B5 */ bl func_80332B7C
+/* 80320CCC 0031C92C 80 BA 00 04 */ lwz r5, 4(r26)
+/* 80320CD0 0031C930 7F A6 EB 78 */ mr r6, r29
+/* 80320CD4 0031C934 38 9F 04 18 */ addi r4, r31, 0x418
+/* 80320CD8 0031C938 3B 80 00 01 */ li r28, 1
+/* 80320CDC 0031C93C 3C 60 00 02 */ lis r3, 2
+/* 80320CE0 0031C940 4C C6 31 82 */ crclr 6
+/* 80320CE4 0031C944 4B FF BE 51 */ bl DWC_Printf
+/* 80320CE8 0031C948 48 00 00 C4 */ b lbl_80320DAC
+lbl_80320CEC:
+/* 80320CEC 0031C94C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320CF0 0031C950 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320CF4 0031C954 7C 60 F2 14 */ add r3, r0, r30
+/* 80320CF8 0031C958 48 01 1E 79 */ bl func_80332B70
+/* 80320CFC 0031C95C 2C 03 00 03 */ cmpwi r3, 3
+/* 80320D00 0031C960 41 82 00 1C */ beq lbl_80320D1C
+/* 80320D04 0031C964 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320D08 0031C968 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320D0C 0031C96C 7C 60 F2 14 */ add r3, r0, r30
+/* 80320D10 0031C970 48 01 1E 61 */ bl func_80332B70
+/* 80320D14 0031C974 2C 03 00 02 */ cmpwi r3, 2
+/* 80320D18 0031C978 40 82 00 94 */ bne lbl_80320DAC
+lbl_80320D1C:
+/* 80320D1C 0031C97C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320D20 0031C980 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320D24 0031C984 7C 60 F2 14 */ add r3, r0, r30
+/* 80320D28 0031C988 48 01 1E 25 */ bl func_80332B4C
+/* 80320D2C 0031C98C 2C 03 00 01 */ cmpwi r3, 1
+/* 80320D30 0031C990 40 82 00 1C */ bne lbl_80320D4C
+/* 80320D34 0031C994 38 9F 04 44 */ addi r4, r31, 0x444
+/* 80320D38 0031C998 3C 60 00 02 */ lis r3, 2
+/* 80320D3C 0031C99C 4C C6 31 82 */ crclr 6
+/* 80320D40 0031C9A0 4B FF BD F5 */ bl DWC_Printf
+/* 80320D44 0031C9A4 3B 60 00 00 */ li r27, 0
+/* 80320D48 0031C9A8 48 00 00 64 */ b lbl_80320DAC
+lbl_80320D4C:
+/* 80320D4C 0031C9AC 83 3A 00 04 */ lwz r25, 4(r26)
+/* 80320D50 0031C9B0 48 00 04 65 */ bl DWCi_GetUserData
+/* 80320D54 0031C9B4 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 80320D58 0031C9B8 80 04 00 1C */ lwz r0, 0x1c(r4)
+/* 80320D5C 0031C9BC 7C 80 F2 14 */ add r4, r0, r30
+/* 80320D60 0031C9C0 48 01 29 9D */ bl func_803336FC
+/* 80320D64 0031C9C4 7C 19 18 00 */ cmpw r25, r3
+/* 80320D68 0031C9C8 40 82 00 44 */ bne lbl_80320DAC
+/* 80320D6C 0031C9CC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320D70 0031C9D0 7F 24 CB 78 */ mr r4, r25
+/* 80320D74 0031C9D4 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320D78 0031C9D8 7C 60 F2 14 */ add r3, r0, r30
+/* 80320D7C 0031C9DC 48 01 2C E1 */ bl func_80333A5C
+/* 80320D80 0031C9E0 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320D84 0031C9E4 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80320D88 0031C9E8 7C 60 F2 14 */ add r3, r0, r30
+/* 80320D8C 0031C9EC 48 01 1D F1 */ bl func_80332B7C
+/* 80320D90 0031C9F0 80 BA 00 04 */ lwz r5, 4(r26)
+/* 80320D94 0031C9F4 7F A6 EB 78 */ mr r6, r29
+/* 80320D98 0031C9F8 38 9F 04 68 */ addi r4, r31, 0x468
+/* 80320D9C 0031C9FC 3B 80 00 01 */ li r28, 1
+/* 80320DA0 0031CA00 3C 60 00 02 */ lis r3, 2
+/* 80320DA4 0031CA04 4C C6 31 82 */ crclr 6
+/* 80320DA8 0031CA08 4B FF BD 8D */ bl DWC_Printf
+lbl_80320DAC:
+/* 80320DAC 0031CA0C 3B DE 00 0C */ addi r30, r30, 0xc
+/* 80320DB0 0031CA10 3B BD 00 01 */ addi r29, r29, 1
+lbl_80320DB4:
+/* 80320DB4 0031CA14 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320DB8 0031CA18 80 83 00 18 */ lwz r4, 0x18(r3)
+/* 80320DBC 0031CA1C 7C 1D 20 00 */ cmpw r29, r4
+/* 80320DC0 0031CA20 41 80 FE A8 */ blt lbl_80320C68
+/* 80320DC4 0031CA24 2C 1C 00 00 */ cmpwi r28, 0
+/* 80320DC8 0031CA28 41 82 00 A4 */ beq lbl_80320E6C
+/* 80320DCC 0031CA2C 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 80320DD0 0031CA30 80 BA 00 04 */ lwz r5, 4(r26)
+/* 80320DD4 0031CA34 4B FF F4 39 */ bl DWCi_RefreshFriendListAll
+/* 80320DD8 0031CA38 2C 1B 00 00 */ cmpwi r27, 0
+/* 80320DDC 0031CA3C 7C 79 1B 78 */ mr r25, r3
+/* 80320DE0 0031CA40 41 82 00 7C */ beq lbl_80320E5C
+/* 80320DE4 0031CA44 80 8D B0 48 */ lwz r4, lbl_80640308-_SDA_BASE_(r13)
+/* 80320DE8 0031CA48 81 84 00 48 */ lwz r12, 0x48(r4)
+/* 80320DEC 0031CA4C 2C 0C 00 00 */ cmpwi r12, 0
+/* 80320DF0 0031CA50 41 82 00 1C */ beq lbl_80320E0C
+/* 80320DF4 0031CA54 80 04 00 00 */ lwz r0, 0(r4)
+/* 80320DF8 0031CA58 2C 00 00 01 */ cmpwi r0, 1
+/* 80320DFC 0031CA5C 41 82 00 10 */ beq lbl_80320E0C
+/* 80320E00 0031CA60 80 84 00 4C */ lwz r4, 0x4c(r4)
+/* 80320E04 0031CA64 7D 89 03 A6 */ mtctr r12
+/* 80320E08 0031CA68 4E 80 04 21 */ bctrl
+lbl_80320E0C:
+/* 80320E0C 0031CA6C 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320E10 0031CA70 80 03 00 38 */ lwz r0, 0x38(r3)
+/* 80320E14 0031CA74 2C 00 00 00 */ cmpwi r0, 0
+/* 80320E18 0031CA78 41 82 00 44 */ beq lbl_80320E5C
+/* 80320E1C 0031CA7C 1C 19 00 0C */ mulli r0, r25, 0xc
+/* 80320E20 0031CA80 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 80320E24 0031CA84 38 C1 01 28 */ addi r6, r1, 0x128
+/* 80320E28 0031CA88 38 80 00 00 */ li r4, 0
+/* 80320E2C 0031CA8C 7C 63 02 14 */ add r3, r3, r0
+/* 80320E30 0031CA90 38 A0 00 00 */ li r5, 0
+/* 80320E34 0031CA94 4B FF E3 65 */ bl DWC_GetFriendStatusSC
+/* 80320E38 0031CA98 80 CD B0 48 */ lwz r6, lbl_80640308-_SDA_BASE_(r13)
+/* 80320E3C 0031CA9C 7C 60 1B 78 */ mr r0, r3
+/* 80320E40 0031CAA0 7F 23 CB 78 */ mr r3, r25
+/* 80320E44 0031CAA4 38 A1 01 28 */ addi r5, r1, 0x128
+/* 80320E48 0031CAA8 81 86 00 38 */ lwz r12, 0x38(r6)
+/* 80320E4C 0031CAAC 54 04 06 3E */ clrlwi r4, r0, 0x18
+/* 80320E50 0031CAB0 80 C6 00 3C */ lwz r6, 0x3c(r6)
+/* 80320E54 0031CAB4 7D 89 03 A6 */ mtctr r12
+/* 80320E58 0031CAB8 4E 80 04 21 */ bctrl
+lbl_80320E5C:
+/* 80320E5C 0031CABC 80 6D B0 48 */ lwz r3, lbl_80640308-_SDA_BASE_(r13)
+/* 80320E60 0031CAC0 38 00 00 01 */ li r0, 1
+/* 80320E64 0031CAC4 98 03 00 21 */ stb r0, 0x21(r3)
+/* 80320E68 0031CAC8 48 00 00 18 */ b lbl_80320E80
+lbl_80320E6C:
+/* 80320E6C 0031CACC 80 BA 00 04 */ lwz r5, 4(r26)
+/* 80320E70 0031CAD0 38 9F 04 98 */ addi r4, r31, 0x498
+/* 80320E74 0031CAD4 3C 60 00 02 */ lis r3, 2
+/* 80320E78 0031CAD8 4C C6 31 82 */ crclr 6
+/* 80320E7C 0031CADC 4B FF BC B9 */ bl DWC_Printf
+lbl_80320E80:
+/* 80320E80 0031CAE0 39 61 02 50 */ addi r11, r1, 0x250
+/* 80320E84 0031CAE4 4B EA 62 E9 */ bl _restgpr_25
+/* 80320E88 0031CAE8 80 01 02 54 */ lwz r0, 0x254(r1)
+/* 80320E8C 0031CAEC 7C 08 03 A6 */ mtlr r0
+/* 80320E90 0031CAF0 38 21 02 50 */ addi r1, r1, 0x250
+/* 80320E94 0031CAF4 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/dwc_match/dwc_login.s b/asm/SDK/DWC/dwc_match/dwc_login.s new file mode 100644 index 0000000..4dc9d2b --- /dev/null +++ b/asm/SDK/DWC/dwc_match/dwc_login.s @@ -0,0 +1,941 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DWCi_LoginInit
+DWCi_LoginInit:
+/* 80320E98 0031CAF8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80320E9C 0031CAFC 7C 08 02 A6 */ mflr r0
+/* 80320EA0 0031CB00 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80320EA4 0031CB04 39 61 00 30 */ addi r11, r1, 0x30
+/* 80320EA8 0031CB08 4B EA 62 71 */ bl _savegpr_23
+/* 80320EAC 0031CB0C 3F E0 80 44 */ lis r31, lbl_80447248@ha
+/* 80320EB0 0031CB10 7C 77 1B 78 */ mr r23, r3
+/* 80320EB4 0031CB14 3B FF 72 48 */ addi r31, r31, lbl_80447248@l
+/* 80320EB8 0031CB18 7C 98 23 78 */ mr r24, r4
+/* 80320EBC 0031CB1C 7C B9 2B 78 */ mr r25, r5
+/* 80320EC0 0031CB20 7C DA 33 78 */ mr r26, r6
+/* 80320EC4 0031CB24 7C FB 3B 78 */ mr r27, r7
+/* 80320EC8 0031CB28 7D 1C 43 78 */ mr r28, r8
+/* 80320ECC 0031CB2C 7D 3D 4B 78 */ mr r29, r9
+/* 80320ED0 0031CB30 7D 5E 53 78 */ mr r30, r10
+/* 80320ED4 0031CB34 38 9F 00 00 */ addi r4, r31, 0
+/* 80320ED8 0031CB38 38 60 00 20 */ li r3, 0x20
+/* 80320EDC 0031CB3C 4C C6 31 82 */ crclr 6
+/* 80320EE0 0031CB40 4B FF BC 55 */ bl DWC_Printf
+/* 80320EE4 0031CB44 92 ED B0 50 */ stw r23, lbl_80640310-_SDA_BASE_(r13)
+/* 80320EE8 0031CB48 7E E3 BB 78 */ mr r3, r23
+/* 80320EEC 0031CB4C 38 80 00 00 */ li r4, 0
+/* 80320EF0 0031CB50 38 A0 02 68 */ li r5, 0x268
+/* 80320EF4 0031CB54 4B CE 32 11 */ bl memset
+/* 80320EF8 0031CB58 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80320EFC 0031CB5C 38 00 00 00 */ li r0, 0
+/* 80320F00 0031CB60 38 9F 00 0C */ addi r4, r31, 0xc
+/* 80320F04 0031CB64 38 60 00 20 */ li r3, 0x20
+/* 80320F08 0031CB68 93 25 00 00 */ stw r25, 0(r5)
+/* 80320F0C 0031CB6C 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80320F10 0031CB70 90 05 00 04 */ stw r0, 4(r5)
+/* 80320F14 0031CB74 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80320F18 0031CB78 93 45 00 08 */ stw r26, 8(r5)
+/* 80320F1C 0031CB7C 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80320F20 0031CB80 93 65 00 0C */ stw r27, 0xc(r5)
+/* 80320F24 0031CB84 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80320F28 0031CB88 93 85 00 10 */ stw r28, 0x10(r5)
+/* 80320F2C 0031CB8C 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80320F30 0031CB90 93 A5 00 14 */ stw r29, 0x14(r5)
+/* 80320F34 0031CB94 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80320F38 0031CB98 93 C5 00 18 */ stw r30, 0x18(r5)
+/* 80320F3C 0031CB9C 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80320F40 0031CBA0 93 05 00 1C */ stw r24, 0x1c(r5)
+/* 80320F44 0031CBA4 4C C6 31 82 */ crclr 6
+/* 80320F48 0031CBA8 4B FF BB ED */ bl DWC_Printf
+/* 80320F4C 0031CBAC 38 78 00 04 */ addi r3, r24, 4
+/* 80320F50 0031CBB0 48 01 1B BD */ bl func_80332B0C
+/* 80320F54 0031CBB4 7C 86 23 78 */ mr r6, r4
+/* 80320F58 0031CBB8 7C 65 1B 78 */ mr r5, r3
+/* 80320F5C 0031CBBC 38 9F 00 38 */ addi r4, r31, 0x38
+/* 80320F60 0031CBC0 38 60 00 20 */ li r3, 0x20
+/* 80320F64 0031CBC4 4C C6 31 82 */ crclr 6
+/* 80320F68 0031CBC8 4B FF BB CD */ bl DWC_Printf
+/* 80320F6C 0031CBCC 38 78 00 04 */ addi r3, r24, 4
+/* 80320F70 0031CBD0 48 01 1B AD */ bl func_80332B1C
+/* 80320F74 0031CBD4 7C 65 1B 78 */ mr r5, r3
+/* 80320F78 0031CBD8 38 9F 00 58 */ addi r4, r31, 0x58
+/* 80320F7C 0031CBDC 38 60 00 20 */ li r3, 0x20
+/* 80320F80 0031CBE0 4C C6 31 82 */ crclr 6
+/* 80320F84 0031CBE4 4B FF BB B1 */ bl DWC_Printf
+/* 80320F88 0031CBE8 38 78 00 10 */ addi r3, r24, 0x10
+/* 80320F8C 0031CBEC 48 01 1B 81 */ bl func_80332B0C
+/* 80320F90 0031CBF0 7C 86 23 78 */ mr r6, r4
+/* 80320F94 0031CBF4 7C 65 1B 78 */ mr r5, r3
+/* 80320F98 0031CBF8 38 9F 00 78 */ addi r4, r31, 0x78
+/* 80320F9C 0031CBFC 38 60 00 20 */ li r3, 0x20
+/* 80320FA0 0031CC00 4C C6 31 82 */ crclr 6
+/* 80320FA4 0031CC04 4B FF BB 91 */ bl DWC_Printf
+/* 80320FA8 0031CC08 38 78 00 10 */ addi r3, r24, 0x10
+/* 80320FAC 0031CC0C 48 01 1B 71 */ bl func_80332B1C
+/* 80320FB0 0031CC10 7C 65 1B 78 */ mr r5, r3
+/* 80320FB4 0031CC14 38 9F 00 98 */ addi r4, r31, 0x98
+/* 80320FB8 0031CC18 38 60 00 20 */ li r3, 0x20
+/* 80320FBC 0031CC1C 4C C6 31 82 */ crclr 6
+/* 80320FC0 0031CC20 4B FF BB 75 */ bl DWC_Printf
+/* 80320FC4 0031CC24 38 9F 00 0C */ addi r4, r31, 0xc
+/* 80320FC8 0031CC28 38 60 00 20 */ li r3, 0x20
+/* 80320FCC 0031CC2C 4C C6 31 82 */ crclr 6
+/* 80320FD0 0031CC30 4B FF BB 65 */ bl DWC_Printf
+/* 80320FD4 0031CC34 39 61 00 30 */ addi r11, r1, 0x30
+/* 80320FD8 0031CC38 4B EA 61 8D */ bl _restgpr_23
+/* 80320FDC 0031CC3C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80320FE0 0031CC40 7C 08 03 A6 */ mtlr r0
+/* 80320FE4 0031CC44 38 21 00 30 */ addi r1, r1, 0x30
+/* 80320FE8 0031CC48 4E 80 00 20 */ blr
+
+.global DWCi_LoginAsync
+DWCi_LoginAsync:
+/* 80320FEC 0031CC4C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80320FF0 0031CC50 7C 08 02 A6 */ mflr r0
+/* 80320FF4 0031CC54 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80320FF8 0031CC58 48 00 05 5D */ bl DWCi_RemoteLogin
+/* 80320FFC 0031CC5C 2C 03 00 00 */ cmpwi r3, 0
+/* 80321000 0031CC60 41 82 00 24 */ beq lbl_80321024
+/* 80321004 0031CC64 80 8D B0 50 */ lwz r4, lbl_80640310-_SDA_BASE_(r13)
+/* 80321008 0031CC68 38 A0 00 01 */ li r5, 1
+/* 8032100C 0031CC6C 38 00 00 00 */ li r0, 0
+/* 80321010 0031CC70 38 60 00 01 */ li r3, 1
+/* 80321014 0031CC74 90 A4 00 04 */ stw r5, 4(r4)
+/* 80321018 0031CC78 80 8D B0 50 */ lwz r4, lbl_80640310-_SDA_BASE_(r13)
+/* 8032101C 0031CC7C 90 04 00 30 */ stw r0, 0x30(r4)
+/* 80321020 0031CC80 48 00 00 08 */ b lbl_80321028
+lbl_80321024:
+/* 80321024 0031CC84 38 60 00 00 */ li r3, 0
+lbl_80321028:
+/* 80321028 0031CC88 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8032102C 0031CC8C 7C 08 03 A6 */ mtlr r0
+/* 80321030 0031CC90 38 21 00 10 */ addi r1, r1, 0x10
+/* 80321034 0031CC94 4E 80 00 20 */ blr
+
+.global DWCi_LoginProcess
+DWCi_LoginProcess:
+/* 80321038 0031CC98 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8032103C 0031CC9C 7C 08 02 A6 */ mflr r0
+/* 80321040 0031CCA0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80321044 0031CCA4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80321048 0031CCA8 80 0D B0 50 */ lwz r0, lbl_80640310-_SDA_BASE_(r13)
+/* 8032104C 0031CCAC 2C 00 00 00 */ cmpwi r0, 0
+/* 80321050 0031CCB0 41 82 01 50 */ beq lbl_803211A0
+/* 80321054 0031CCB4 4B FF B5 19 */ bl DWCi_IsError
+/* 80321058 0031CCB8 2C 03 00 00 */ cmpwi r3, 0
+/* 8032105C 0031CCBC 41 82 00 08 */ beq lbl_80321064
+/* 80321060 0031CCC0 48 00 01 40 */ b lbl_803211A0
+lbl_80321064:
+/* 80321064 0031CCC4 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321068 0031CCC8 80 03 00 04 */ lwz r0, 4(r3)
+/* 8032106C 0031CCCC 2C 00 00 01 */ cmpwi r0, 1
+/* 80321070 0031CCD0 41 82 00 1C */ beq lbl_8032108C
+/* 80321074 0031CCD4 40 80 00 08 */ bge lbl_8032107C
+/* 80321078 0031CCD8 48 00 01 14 */ b lbl_8032118C
+lbl_8032107C:
+/* 8032107C 0031CCDC 2C 00 00 05 */ cmpwi r0, 5
+/* 80321080 0031CCE0 41 82 01 0C */ beq lbl_8032118C
+/* 80321084 0031CCE4 40 80 01 08 */ bge lbl_8032118C
+/* 80321088 0031CCE8 48 00 00 0C */ b lbl_80321094
+lbl_8032108C:
+/* 8032108C 0031CCEC 48 00 06 95 */ bl DWCi_RemoteLoginProcess
+/* 80321090 0031CCF0 48 00 01 10 */ b lbl_803211A0
+lbl_80321094:
+/* 80321094 0031CCF4 80 63 00 00 */ lwz r3, 0(r3)
+/* 80321098 0031CCF8 2C 03 00 00 */ cmpwi r3, 0
+/* 8032109C 0031CCFC 41 82 00 14 */ beq lbl_803210B0
+/* 803210A0 0031CD00 80 03 00 00 */ lwz r0, 0(r3)
+/* 803210A4 0031CD04 2C 00 00 00 */ cmpwi r0, 0
+/* 803210A8 0031CD08 41 82 00 08 */ beq lbl_803210B0
+/* 803210AC 0031CD0C 48 01 BD 8D */ bl gpProcess
+lbl_803210B0:
+/* 803210B0 0031CD10 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803210B4 0031CD14 80 03 00 30 */ lwz r0, 0x30(r3)
+/* 803210B8 0031CD18 2C 00 00 00 */ cmpwi r0, 0
+/* 803210BC 0031CD1C 41 82 00 E4 */ beq lbl_803211A0
+/* 803210C0 0031CD20 4B F5 16 F9 */ bl OSGetTime
+/* 803210C4 0031CD24 3C A0 80 00 */ lis r5, 0x800000F8@ha
+/* 803210C8 0031CD28 83 ED B0 50 */ lwz r31, lbl_80640310-_SDA_BASE_(r13)
+/* 803210CC 0031CD2C 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
+/* 803210D0 0031CD30 3C A0 10 62 */ lis r5, 0x10624DD3@ha
+/* 803210D4 0031CD34 80 FF 00 3C */ lwz r7, 0x3c(r31)
+/* 803210D8 0031CD38 38 A5 4D D3 */ addi r5, r5, 0x10624DD3@l
+/* 803210DC 0031CD3C 54 00 F0 BE */ srwi r0, r0, 2
+/* 803210E0 0031CD40 80 DF 00 38 */ lwz r6, 0x38(r31)
+/* 803210E4 0031CD44 7C 05 00 16 */ mulhwu r0, r5, r0
+/* 803210E8 0031CD48 7C 87 20 10 */ subfc r4, r7, r4
+/* 803210EC 0031CD4C 7C 66 19 10 */ subfe r3, r6, r3
+/* 803210F0 0031CD50 38 A0 00 00 */ li r5, 0
+/* 803210F4 0031CD54 54 06 D1 BE */ srwi r6, r0, 6
+/* 803210F8 0031CD58 4B EA 61 81 */ bl __div2i
+/* 803210FC 0031CD5C 3C A0 00 01 */ lis r5, 0x0000EA60@ha
+/* 80321100 0031CD60 38 00 00 00 */ li r0, 0
+/* 80321104 0031CD64 38 C5 EA 60 */ addi r6, r5, 0x0000EA60@l
+/* 80321108 0031CD68 6C 65 80 00 */ xoris r5, r3, 0x8000
+/* 8032110C 0031CD6C 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 80321110 0031CD70 7C 64 30 10 */ subfc r3, r4, r6
+/* 80321114 0031CD74 7C A5 01 10 */ subfe r5, r5, r0
+/* 80321118 0031CD78 7C A0 01 10 */ subfe r5, r0, r0
+/* 8032111C 0031CD7C 7C A5 00 D1 */ neg. r5, r5
+/* 80321120 0031CD80 41 82 00 80 */ beq lbl_803211A0
+/* 80321124 0031CD84 2C 1F 00 00 */ cmpwi r31, 0
+/* 80321128 0031CD88 41 82 00 54 */ beq lbl_8032117C
+/* 8032112C 0031CD8C 3C 80 FF FF */ lis r4, 0xFFFF1172@ha
+/* 80321130 0031CD90 38 60 00 06 */ li r3, 6
+/* 80321134 0031CD94 38 84 11 72 */ addi r4, r4, 0xFFFF1172@l
+/* 80321138 0031CD98 4B FF B4 49 */ bl DWCi_SetError
+/* 8032113C 0031CD9C 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321140 0031CDA0 81 83 00 14 */ lwz r12, 0x14(r3)
+/* 80321144 0031CDA4 2C 0C 00 00 */ cmpwi r12, 0
+/* 80321148 0031CDA8 41 82 00 18 */ beq lbl_80321160
+/* 8032114C 0031CDAC 80 A3 00 18 */ lwz r5, 0x18(r3)
+/* 80321150 0031CDB0 38 60 00 06 */ li r3, 6
+/* 80321154 0031CDB4 38 80 00 00 */ li r4, 0
+/* 80321158 0031CDB8 7D 89 03 A6 */ mtctr r12
+/* 8032115C 0031CDBC 4E 80 04 21 */ bctrl
+lbl_80321160:
+/* 80321160 0031CDC0 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321164 0031CDC4 2C 03 00 00 */ cmpwi r3, 0
+/* 80321168 0031CDC8 41 82 00 14 */ beq lbl_8032117C
+/* 8032116C 0031CDCC 38 00 00 00 */ li r0, 0
+/* 80321170 0031CDD0 90 03 00 04 */ stw r0, 4(r3)
+/* 80321174 0031CDD4 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321178 0031CDD8 90 03 00 30 */ stw r0, 0x30(r3)
+lbl_8032117C:
+/* 8032117C 0031CDDC 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321180 0031CDE0 38 00 00 00 */ li r0, 0
+/* 80321184 0031CDE4 90 03 00 30 */ stw r0, 0x30(r3)
+/* 80321188 0031CDE8 48 00 00 18 */ b lbl_803211A0
+lbl_8032118C:
+/* 8032118C 0031CDEC 3C 80 80 44 */ lis r4, lbl_80447300@ha
+/* 80321190 0031CDF0 38 60 00 04 */ li r3, 4
+/* 80321194 0031CDF4 38 84 73 00 */ addi r4, r4, lbl_80447300@l
+/* 80321198 0031CDF8 4C C6 31 82 */ crclr 6
+/* 8032119C 0031CDFC 4B FF B9 99 */ bl DWC_Printf
+lbl_803211A0:
+/* 803211A0 0031CE00 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803211A4 0031CE04 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803211A8 0031CE08 7C 08 03 A6 */ mtlr r0
+/* 803211AC 0031CE0C 38 21 00 10 */ addi r1, r1, 0x10
+/* 803211B0 0031CE10 4E 80 00 20 */ blr
+
+.global DWCi_GetUserData
+DWCi_GetUserData:
+/* 803211B4 0031CE14 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803211B8 0031CE18 2C 03 00 00 */ cmpwi r3, 0
+/* 803211BC 0031CE1C 41 82 00 0C */ beq lbl_803211C8
+/* 803211C0 0031CE20 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 803211C4 0031CE24 4E 80 00 20 */ blr
+lbl_803211C8:
+/* 803211C8 0031CE28 38 60 00 00 */ li r3, 0
+/* 803211CC 0031CE2C 4E 80 00 20 */ blr
+
+.global DWCi_StopLogin
+DWCi_StopLogin:
+/* 803211D0 0031CE30 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803211D4 0031CE34 7C 08 02 A6 */ mflr r0
+/* 803211D8 0031CE38 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803211DC 0031CE3C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803211E0 0031CE40 7C 7F 1B 78 */ mr r31, r3
+/* 803211E4 0031CE44 80 0D B0 50 */ lwz r0, lbl_80640310-_SDA_BASE_(r13)
+/* 803211E8 0031CE48 2C 00 00 00 */ cmpwi r0, 0
+/* 803211EC 0031CE4C 41 82 00 54 */ beq lbl_80321240
+/* 803211F0 0031CE50 2C 03 00 00 */ cmpwi r3, 0
+/* 803211F4 0031CE54 40 82 00 08 */ bne lbl_803211FC
+/* 803211F8 0031CE58 48 00 00 48 */ b lbl_80321240
+lbl_803211FC:
+/* 803211FC 0031CE5C 4B FF B3 85 */ bl DWCi_SetError
+/* 80321200 0031CE60 80 8D B0 50 */ lwz r4, lbl_80640310-_SDA_BASE_(r13)
+/* 80321204 0031CE64 81 84 00 14 */ lwz r12, 0x14(r4)
+/* 80321208 0031CE68 2C 0C 00 00 */ cmpwi r12, 0
+/* 8032120C 0031CE6C 41 82 00 18 */ beq lbl_80321224
+/* 80321210 0031CE70 80 A4 00 18 */ lwz r5, 0x18(r4)
+/* 80321214 0031CE74 7F E3 FB 78 */ mr r3, r31
+/* 80321218 0031CE78 38 80 00 00 */ li r4, 0
+/* 8032121C 0031CE7C 7D 89 03 A6 */ mtctr r12
+/* 80321220 0031CE80 4E 80 04 21 */ bctrl
+lbl_80321224:
+/* 80321224 0031CE84 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321228 0031CE88 2C 03 00 00 */ cmpwi r3, 0
+/* 8032122C 0031CE8C 41 82 00 14 */ beq lbl_80321240
+/* 80321230 0031CE90 38 00 00 00 */ li r0, 0
+/* 80321234 0031CE94 90 03 00 04 */ stw r0, 4(r3)
+/* 80321238 0031CE98 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 8032123C 0031CE9C 90 03 00 30 */ stw r0, 0x30(r3)
+lbl_80321240:
+/* 80321240 0031CEA0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80321244 0031CEA4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80321248 0031CEA8 7C 08 03 A6 */ mtlr r0
+/* 8032124C 0031CEAC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80321250 0031CEB0 4E 80 00 20 */ blr
+
+.global DWCi_ShutdownLogin
+DWCi_ShutdownLogin:
+/* 80321254 0031CEB4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80321258 0031CEB8 7C 08 02 A6 */ mflr r0
+/* 8032125C 0031CEBC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80321260 0031CEC0 48 01 37 69 */ bl func_803349C8
+/* 80321264 0031CEC4 2C 03 00 00 */ cmpwi r3, 0
+/* 80321268 0031CEC8 40 82 00 08 */ bne lbl_80321270
+/* 8032126C 0031CECC 48 01 2F CD */ bl func_80334238
+lbl_80321270:
+/* 80321270 0031CED0 38 00 00 00 */ li r0, 0
+/* 80321274 0031CED4 90 0D B0 50 */ stw r0, lbl_80640310-_SDA_BASE_(r13)
+/* 80321278 0031CED8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8032127C 0031CEDC 7C 08 03 A6 */ mtlr r0
+/* 80321280 0031CEE0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80321284 0031CEE4 4E 80 00 20 */ blr
+
+DWCi_HandleGPError:
+/* 80321288 0031CEE8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8032128C 0031CEEC 7C 08 02 A6 */ mflr r0
+/* 80321290 0031CEF0 2C 03 00 00 */ cmpwi r3, 0
+/* 80321294 0031CEF4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80321298 0031CEF8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8032129C 0031CEFC 93 C1 00 08 */ stw r30, 8(r1)
+/* 803212A0 0031CF00 7C 7E 1B 78 */ mr r30, r3
+/* 803212A4 0031CF04 40 82 00 0C */ bne lbl_803212B0
+/* 803212A8 0031CF08 38 60 00 00 */ li r3, 0
+/* 803212AC 0031CF0C 48 00 00 D8 */ b lbl_80321384
+lbl_803212B0:
+/* 803212B0 0031CF10 3C 80 80 44 */ lis r4, lbl_80447320@ha
+/* 803212B4 0031CF14 7F C5 F3 78 */ mr r5, r30
+/* 803212B8 0031CF18 38 84 73 20 */ addi r4, r4, lbl_80447320@l
+/* 803212BC 0031CF1C 38 60 00 02 */ li r3, 2
+/* 803212C0 0031CF20 4C C6 31 82 */ crclr 6
+/* 803212C4 0031CF24 4B FF B8 71 */ bl DWC_Printf
+/* 803212C8 0031CF28 2C 1E 00 03 */ cmpwi r30, 3
+/* 803212CC 0031CF2C 41 82 00 3C */ beq lbl_80321308
+/* 803212D0 0031CF30 40 80 00 14 */ bge lbl_803212E4
+/* 803212D4 0031CF34 2C 1E 00 01 */ cmpwi r30, 1
+/* 803212D8 0031CF38 41 82 00 18 */ beq lbl_803212F0
+/* 803212DC 0031CF3C 40 80 00 20 */ bge lbl_803212FC
+/* 803212E0 0031CF40 48 00 00 3C */ b lbl_8032131C
+lbl_803212E4:
+/* 803212E4 0031CF44 2C 1E 00 05 */ cmpwi r30, 5
+/* 803212E8 0031CF48 40 80 00 34 */ bge lbl_8032131C
+/* 803212EC 0031CF4C 48 00 00 28 */ b lbl_80321314
+lbl_803212F0:
+/* 803212F0 0031CF50 3B E0 00 09 */ li r31, 9
+/* 803212F4 0031CF54 38 60 FF FF */ li r3, -1
+/* 803212F8 0031CF58 48 00 00 24 */ b lbl_8032131C
+lbl_803212FC:
+/* 803212FC 0031CF5C 3B E0 00 09 */ li r31, 9
+/* 80321300 0031CF60 38 60 FF FE */ li r3, -2
+/* 80321304 0031CF64 48 00 00 18 */ b lbl_8032131C
+lbl_80321308:
+/* 80321308 0031CF68 3B E0 00 06 */ li r31, 6
+/* 8032130C 0031CF6C 38 60 FF F6 */ li r3, -10
+/* 80321310 0031CF70 48 00 00 0C */ b lbl_8032131C
+lbl_80321314:
+/* 80321314 0031CF74 3B E0 00 06 */ li r31, 6
+/* 80321318 0031CF78 38 60 FF EC */ li r3, -20
+lbl_8032131C:
+/* 8032131C 0031CF7C 80 0D B0 50 */ lwz r0, lbl_80640310-_SDA_BASE_(r13)
+/* 80321320 0031CF80 2C 00 00 00 */ cmpwi r0, 0
+/* 80321324 0031CF84 41 82 00 5C */ beq lbl_80321380
+/* 80321328 0031CF88 2C 1F 00 00 */ cmpwi r31, 0
+/* 8032132C 0031CF8C 41 82 00 54 */ beq lbl_80321380
+/* 80321330 0031CF90 3C 83 FF FF */ addis r4, r3, 0xffff
+/* 80321334 0031CF94 7F E3 FB 78 */ mr r3, r31
+/* 80321338 0031CF98 38 84 11 B8 */ addi r4, r4, 0x11b8
+/* 8032133C 0031CF9C 4B FF B2 45 */ bl DWCi_SetError
+/* 80321340 0031CFA0 80 8D B0 50 */ lwz r4, lbl_80640310-_SDA_BASE_(r13)
+/* 80321344 0031CFA4 81 84 00 14 */ lwz r12, 0x14(r4)
+/* 80321348 0031CFA8 2C 0C 00 00 */ cmpwi r12, 0
+/* 8032134C 0031CFAC 41 82 00 18 */ beq lbl_80321364
+/* 80321350 0031CFB0 80 A4 00 18 */ lwz r5, 0x18(r4)
+/* 80321354 0031CFB4 7F E3 FB 78 */ mr r3, r31
+/* 80321358 0031CFB8 38 80 00 00 */ li r4, 0
+/* 8032135C 0031CFBC 7D 89 03 A6 */ mtctr r12
+/* 80321360 0031CFC0 4E 80 04 21 */ bctrl
+lbl_80321364:
+/* 80321364 0031CFC4 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321368 0031CFC8 2C 03 00 00 */ cmpwi r3, 0
+/* 8032136C 0031CFCC 41 82 00 14 */ beq lbl_80321380
+/* 80321370 0031CFD0 38 00 00 00 */ li r0, 0
+/* 80321374 0031CFD4 90 03 00 04 */ stw r0, 4(r3)
+/* 80321378 0031CFD8 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 8032137C 0031CFDC 90 03 00 30 */ stw r0, 0x30(r3)
+lbl_80321380:
+/* 80321380 0031CFE0 7F C3 F3 78 */ mr r3, r30
+lbl_80321384:
+/* 80321384 0031CFE4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80321388 0031CFE8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8032138C 0031CFEC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80321390 0031CFF0 7C 08 03 A6 */ mtlr r0
+/* 80321394 0031CFF4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80321398 0031CFF8 4E 80 00 20 */ blr
+
+DWCi_GPConnectCallback:
+/* 8032139C 0031CFFC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803213A0 0031D000 7C 08 02 A6 */ mflr r0
+/* 803213A4 0031D004 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803213A8 0031D008 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 803213AC 0031D00C 3F E0 80 44 */ lis r31, lbl_80447248@ha
+/* 803213B0 0031D010 3B FF 72 48 */ addi r31, r31, lbl_80447248@l
+/* 803213B4 0031D014 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 803213B8 0031D018 7C 9E 23 78 */ mr r30, r4
+/* 803213BC 0031D01C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 803213C0 0031D020 7C 7D 1B 78 */ mr r29, r3
+/* 803213C4 0031D024 38 60 00 20 */ li r3, 0x20
+/* 803213C8 0031D028 80 A4 00 00 */ lwz r5, 0(r4)
+/* 803213CC 0031D02C 38 9F 00 EC */ addi r4, r31, 0xec
+/* 803213D0 0031D030 4C C6 31 82 */ crclr 6
+/* 803213D4 0031D034 4B FF B7 61 */ bl DWC_Printf
+/* 803213D8 0031D038 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803213DC 0031D03C 38 00 00 00 */ li r0, 0
+/* 803213E0 0031D040 90 03 00 30 */ stw r0, 0x30(r3)
+/* 803213E4 0031D044 80 7E 00 00 */ lwz r3, 0(r30)
+/* 803213E8 0031D048 2C 03 00 00 */ cmpwi r3, 0
+/* 803213EC 0031D04C 40 82 01 48 */ bne lbl_80321534
+/* 803213F0 0031D050 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803213F4 0031D054 80 03 00 04 */ lwz r0, 4(r3)
+/* 803213F8 0031D058 2C 00 00 02 */ cmpwi r0, 2
+/* 803213FC 0031D05C 40 82 01 00 */ bne lbl_803214FC
+/* 80321400 0031D060 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 80321404 0031D064 80 1E 00 04 */ lwz r0, 4(r30)
+/* 80321408 0031D068 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 8032140C 0031D06C 7C 03 00 00 */ cmpw r3, r0
+/* 80321410 0031D070 40 82 00 7C */ bne lbl_8032148C
+/* 80321414 0031D074 38 9F 01 1C */ addi r4, r31, 0x11c
+/* 80321418 0031D078 38 60 00 20 */ li r3, 0x20
+/* 8032141C 0031D07C 4C C6 31 82 */ crclr 6
+/* 80321420 0031D080 4B FF B7 15 */ bl DWC_Printf
+/* 80321424 0031D084 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80321428 0031D088 38 00 00 05 */ li r0, 5
+/* 8032142C 0031D08C 38 60 00 01 */ li r3, 1
+/* 80321430 0031D090 38 8D 8D 78 */ addi r4, r13, lbl_8063E038-_SDA_BASE_
+/* 80321434 0031D094 90 05 00 04 */ stw r0, 4(r5)
+/* 80321438 0031D098 38 A0 00 00 */ li r5, 0
+/* 8032143C 0031D09C 4B FF E8 15 */ bl DWCi_SetGPStatus
+/* 80321440 0031D0A0 4B FF FE 49 */ bl DWCi_HandleGPError
+/* 80321444 0031D0A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80321448 0031D0A8 40 82 00 F0 */ bne lbl_80321538
+/* 8032144C 0031D0AC 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80321450 0031D0B0 38 60 00 00 */ li r3, 0
+/* 80321454 0031D0B4 80 9E 00 04 */ lwz r4, 4(r30)
+/* 80321458 0031D0B8 81 85 00 14 */ lwz r12, 0x14(r5)
+/* 8032145C 0031D0BC 80 A5 00 18 */ lwz r5, 0x18(r5)
+/* 80321460 0031D0C0 7D 89 03 A6 */ mtctr r12
+/* 80321464 0031D0C4 4E 80 04 21 */ bctrl
+/* 80321468 0031D0C8 48 00 1A 29 */ bl DWCi_GT2Startup
+/* 8032146C 0031D0CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80321470 0031D0D0 40 82 00 C8 */ bne lbl_80321538
+/* 80321474 0031D0D4 80 7E 00 04 */ lwz r3, 4(r30)
+/* 80321478 0031D0D8 48 00 37 19 */ bl func_80324B90
+/* 8032147C 0031D0DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80321480 0031D0E0 41 82 00 B8 */ beq lbl_80321538
+/* 80321484 0031D0E4 48 00 00 B4 */ b lbl_80321538
+/* 80321488 0031D0E8 48 00 00 B0 */ b lbl_80321538
+lbl_8032148C:
+/* 8032148C 0031D0EC 38 9F 01 38 */ addi r4, r31, 0x138
+/* 80321490 0031D0F0 38 60 00 20 */ li r3, 0x20
+/* 80321494 0031D0F4 4C C6 31 82 */ crclr 6
+/* 80321498 0031D0F8 4B FF B6 9D */ bl DWC_Printf
+/* 8032149C 0031D0FC 80 0D B0 50 */ lwz r0, lbl_80640310-_SDA_BASE_(r13)
+/* 803214A0 0031D100 2C 00 00 00 */ cmpwi r0, 0
+/* 803214A4 0031D104 41 82 00 94 */ beq lbl_80321538
+/* 803214A8 0031D108 3C 80 FF FF */ lis r4, 0xFFFF15A0@ha
+/* 803214AC 0031D10C 38 60 00 06 */ li r3, 6
+/* 803214B0 0031D110 38 84 15 A0 */ addi r4, r4, 0xFFFF15A0@l
+/* 803214B4 0031D114 4B FF B0 CD */ bl DWCi_SetError
+/* 803214B8 0031D118 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803214BC 0031D11C 81 83 00 14 */ lwz r12, 0x14(r3)
+/* 803214C0 0031D120 2C 0C 00 00 */ cmpwi r12, 0
+/* 803214C4 0031D124 41 82 00 18 */ beq lbl_803214DC
+/* 803214C8 0031D128 80 A3 00 18 */ lwz r5, 0x18(r3)
+/* 803214CC 0031D12C 38 60 00 06 */ li r3, 6
+/* 803214D0 0031D130 38 80 00 00 */ li r4, 0
+/* 803214D4 0031D134 7D 89 03 A6 */ mtctr r12
+/* 803214D8 0031D138 4E 80 04 21 */ bctrl
+lbl_803214DC:
+/* 803214DC 0031D13C 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803214E0 0031D140 2C 03 00 00 */ cmpwi r3, 0
+/* 803214E4 0031D144 41 82 00 54 */ beq lbl_80321538
+/* 803214E8 0031D148 38 00 00 00 */ li r0, 0
+/* 803214EC 0031D14C 90 03 00 04 */ stw r0, 4(r3)
+/* 803214F0 0031D150 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803214F4 0031D154 90 03 00 30 */ stw r0, 0x30(r3)
+/* 803214F8 0031D158 48 00 00 40 */ b lbl_80321538
+lbl_803214FC:
+/* 803214FC 0031D15C 2C 00 00 03 */ cmpwi r0, 3
+/* 80321500 0031D160 40 82 00 38 */ bne lbl_80321538
+/* 80321504 0031D164 3C E0 80 32 */ lis r7, DWCi_GPGetInfoCallback@ha
+/* 80321508 0031D168 80 9E 00 04 */ lwz r4, 4(r30)
+/* 8032150C 0031D16C 7F A3 EB 78 */ mr r3, r29
+/* 80321510 0031D170 38 A0 00 00 */ li r5, 0
+/* 80321514 0031D174 38 E7 19 6C */ addi r7, r7, DWCi_GPGetInfoCallback@l
+/* 80321518 0031D178 38 C0 00 00 */ li r6, 0
+/* 8032151C 0031D17C 39 00 00 00 */ li r8, 0
+/* 80321520 0031D180 48 01 BC 1D */ bl gpGetInfo
+/* 80321524 0031D184 4B FF FD 65 */ bl DWCi_HandleGPError
+/* 80321528 0031D188 2C 03 00 00 */ cmpwi r3, 0
+/* 8032152C 0031D18C 41 82 00 0C */ beq lbl_80321538
+/* 80321530 0031D190 48 00 00 08 */ b lbl_80321538
+lbl_80321534:
+/* 80321534 0031D194 4B FF FD 55 */ bl DWCi_HandleGPError
+lbl_80321538:
+/* 80321538 0031D198 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8032153C 0031D19C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80321540 0031D1A0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80321544 0031D1A4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80321548 0031D1A8 7C 08 03 A6 */ mtlr r0
+/* 8032154C 0031D1AC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80321550 0031D1B0 4E 80 00 20 */ blr
+
+.global DWCi_RemoteLogin
+DWCi_RemoteLogin:
+/* 80321554 0031D1B4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80321558 0031D1B8 7C 08 02 A6 */ mflr r0
+/* 8032155C 0031D1BC 38 60 00 20 */ li r3, 0x20
+/* 80321560 0031D1C0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80321564 0031D1C4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80321568 0031D1C8 3F E0 80 44 */ lis r31, lbl_80447248@ha
+/* 8032156C 0031D1CC 3B FF 72 48 */ addi r31, r31, lbl_80447248@l
+/* 80321570 0031D1D0 38 9F 01 58 */ addi r4, r31, 0x158
+/* 80321574 0031D1D4 4C C6 31 82 */ crclr 6
+/* 80321578 0031D1D8 4B FF B5 BD */ bl DWC_Printf
+/* 8032157C 0031D1DC 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321580 0031D1E0 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 80321584 0031D1E4 48 01 1C 35 */ bl func_803331B8
+/* 80321588 0031D1E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8032158C 0031D1EC 41 82 00 44 */ beq lbl_803215D0
+/* 80321590 0031D1F0 38 9F 01 6C */ addi r4, r31, 0x16c
+/* 80321594 0031D1F4 38 60 00 20 */ li r3, 0x20
+/* 80321598 0031D1F8 4C C6 31 82 */ crclr 6
+/* 8032159C 0031D1FC 4B FF B5 99 */ bl DWC_Printf
+/* 803215A0 0031D200 80 8D B0 50 */ lwz r4, lbl_80640310-_SDA_BASE_(r13)
+/* 803215A4 0031D204 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 803215A8 0031D208 38 A4 02 4C */ addi r5, r4, 0x24c
+/* 803215AC 0031D20C 80 83 00 24 */ lwz r4, 0x24(r3)
+/* 803215B0 0031D210 38 63 00 10 */ addi r3, r3, 0x10
+/* 803215B4 0031D214 48 01 16 F5 */ bl func_80332CA8
+/* 803215B8 0031D218 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803215BC 0031D21C 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 803215C0 0031D220 38 63 00 10 */ addi r3, r3, 0x10
+/* 803215C4 0031D224 48 01 15 49 */ bl func_80332B0C
+/* 803215C8 0031D228 7C 65 1B 78 */ mr r5, r3
+/* 803215CC 0031D22C 48 00 01 1C */ b lbl_803216E8
+lbl_803215D0:
+/* 803215D0 0031D230 38 9F 01 A0 */ addi r4, r31, 0x1a0
+/* 803215D4 0031D234 38 60 00 20 */ li r3, 0x20
+/* 803215D8 0031D238 4C C6 31 82 */ crclr 6
+/* 803215DC 0031D23C 4B FF B5 59 */ bl DWC_Printf
+/* 803215E0 0031D240 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803215E4 0031D244 38 63 00 40 */ addi r3, r3, 0x40
+/* 803215E8 0031D248 48 01 1B B9 */ bl func_803331A0
+/* 803215EC 0031D24C 2C 03 00 00 */ cmpwi r3, 0
+/* 803215F0 0031D250 40 82 00 80 */ bne lbl_80321670
+/* 803215F4 0031D254 38 9F 01 D0 */ addi r4, r31, 0x1d0
+/* 803215F8 0031D258 38 60 00 20 */ li r3, 0x20
+/* 803215FC 0031D25C 4C C6 31 82 */ crclr 6
+/* 80321600 0031D260 4B FF B5 35 */ bl DWC_Printf
+/* 80321604 0031D264 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321608 0031D268 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 8032160C 0031D26C 38 63 00 04 */ addi r3, r3, 4
+/* 80321610 0031D270 48 01 1B 41 */ bl func_80333150
+/* 80321614 0031D274 2C 03 00 00 */ cmpwi r3, 0
+/* 80321618 0031D278 41 82 00 38 */ beq lbl_80321650
+/* 8032161C 0031D27C 38 9F 02 0C */ addi r4, r31, 0x20c
+/* 80321620 0031D280 38 60 00 20 */ li r3, 0x20
+/* 80321624 0031D284 4C C6 31 82 */ crclr 6
+/* 80321628 0031D288 4B FF B5 0D */ bl DWC_Printf
+/* 8032162C 0031D28C 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80321630 0031D290 80 85 00 1C */ lwz r4, 0x1c(r5)
+/* 80321634 0031D294 80 64 00 04 */ lwz r3, 4(r4)
+/* 80321638 0031D298 80 04 00 08 */ lwz r0, 8(r4)
+/* 8032163C 0031D29C 90 65 00 40 */ stw r3, 0x40(r5)
+/* 80321640 0031D2A0 90 05 00 44 */ stw r0, 0x44(r5)
+/* 80321644 0031D2A4 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 80321648 0031D2A8 90 05 00 48 */ stw r0, 0x48(r5)
+/* 8032164C 0031D2AC 48 00 00 80 */ b lbl_803216CC
+lbl_80321650:
+/* 80321650 0031D2B0 38 9F 02 38 */ addi r4, r31, 0x238
+/* 80321654 0031D2B4 38 60 00 20 */ li r3, 0x20
+/* 80321658 0031D2B8 4C C6 31 82 */ crclr 6
+/* 8032165C 0031D2BC 4B FF B4 D9 */ bl DWC_Printf
+/* 80321660 0031D2C0 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321664 0031D2C4 38 63 00 40 */ addi r3, r3, 0x40
+/* 80321668 0031D2C8 48 01 1A 21 */ bl func_80333088
+/* 8032166C 0031D2CC 48 00 00 60 */ b lbl_803216CC
+lbl_80321670:
+/* 80321670 0031D2D0 38 9F 02 64 */ addi r4, r31, 0x264
+/* 80321674 0031D2D4 38 60 00 20 */ li r3, 0x20
+/* 80321678 0031D2D8 4C C6 31 82 */ crclr 6
+/* 8032167C 0031D2DC 4B FF B4 B9 */ bl DWC_Printf
+/* 80321680 0031D2E0 4B F5 11 39 */ bl OSGetTime
+/* 80321684 0031D2E4 3C C0 6C 08 */ lis r6, 0x6C078965@ha
+/* 80321688 0031D2E8 3C A0 5D 59 */ lis r5, 0x5D588B65@ha
+/* 8032168C 0031D2EC 39 06 89 65 */ addi r8, r6, 0x6C078965@l
+/* 80321690 0031D2F0 81 4D B0 50 */ lwz r10, lbl_80640310-_SDA_BASE_(r13)
+/* 80321694 0031D2F4 39 25 8B 65 */ addi r9, r5, 0x5D588B65@l
+/* 80321698 0031D2F8 3C A0 00 27 */ lis r5, 0x00269EC3@ha
+/* 8032169C 0031D2FC 38 05 9E C3 */ addi r0, r5, 0x00269EC3@l
+/* 803216A0 0031D300 38 C0 00 00 */ li r6, 0
+/* 803216A4 0031D304 7C A3 41 D6 */ mullw r5, r3, r8
+/* 803216A8 0031D308 38 6A 00 40 */ addi r3, r10, 0x40
+/* 803216AC 0031D30C 7C E4 40 16 */ mulhwu r7, r4, r8
+/* 803216B0 0031D310 7D 04 41 D6 */ mullw r8, r4, r8
+/* 803216B4 0031D314 7C A7 2A 14 */ add r5, r7, r5
+/* 803216B8 0031D318 7C 84 49 D6 */ mullw r4, r4, r9
+/* 803216BC 0031D31C 7C 08 00 14 */ addc r0, r8, r0
+/* 803216C0 0031D320 7C 05 22 14 */ add r0, r5, r4
+/* 803216C4 0031D324 7C 80 31 14 */ adde r4, r0, r6
+/* 803216C8 0031D328 48 01 14 7D */ bl func_80332B44
+lbl_803216CC:
+/* 803216CC 0031D32C 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 803216D0 0031D330 80 85 00 0C */ lwz r4, 0xc(r5)
+/* 803216D4 0031D334 38 65 00 40 */ addi r3, r5, 0x40
+/* 803216D8 0031D338 38 A5 02 4C */ addi r5, r5, 0x24c
+/* 803216DC 0031D33C 48 01 15 CD */ bl func_80332CA8
+/* 803216E0 0031D340 38 80 00 00 */ li r4, 0
+/* 803216E4 0031D344 38 A0 00 00 */ li r5, 0
+lbl_803216E8:
+/* 803216E8 0031D348 81 2D B0 50 */ lwz r9, lbl_80640310-_SDA_BASE_(r13)
+/* 803216EC 0031D34C 3C E0 80 32 */ lis r7, DWC_Alloc@ha
+/* 803216F0 0031D350 3D 00 80 32 */ lis r8, DWC_Free@ha
+/* 803216F4 0031D354 7C 86 23 78 */ mr r6, r4
+/* 803216F8 0031D358 80 69 00 10 */ lwz r3, 0x10(r9)
+/* 803216FC 0031D35C 38 89 02 55 */ addi r4, r9, 0x255
+/* 80321700 0031D360 38 E7 C8 EC */ addi r7, r7, DWC_Alloc@l
+/* 80321704 0031D364 39 08 C9 88 */ addi r8, r8, DWC_Free@l
+/* 80321708 0031D368 48 01 29 85 */ bl func_8033408C
+/* 8032170C 0031D36C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80321710 0031D370 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80321714 0031D374 7C 08 03 A6 */ mtlr r0
+/* 80321718 0031D378 38 21 00 10 */ addi r1, r1, 0x10
+/* 8032171C 0031D37C 4E 80 00 20 */ blr
+
+.global DWCi_RemoteLoginProcess
+DWCi_RemoteLoginProcess:
+/* 80321720 0031D380 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80321724 0031D384 7C 08 02 A6 */ mflr r0
+/* 80321728 0031D388 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8032172C 0031D38C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80321730 0031D390 3F E0 80 44 */ lis r31, lbl_80447248@ha
+/* 80321734 0031D394 3B FF 72 48 */ addi r31, r31, lbl_80447248@l
+/* 80321738 0031D398 93 C1 00 08 */ stw r30, 8(r1)
+/* 8032173C 0031D39C 48 01 2C 05 */ bl func_80334340
+/* 80321740 0031D3A0 48 01 32 89 */ bl func_803349C8
+/* 80321744 0031D3A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80321748 0031D3A8 41 82 02 0C */ beq lbl_80321954
+/* 8032174C 0031D3AC 48 01 32 B9 */ bl func_80334A04
+/* 80321750 0031D3B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80321754 0031D3B4 41 82 01 28 */ beq lbl_8032187C
+/* 80321758 0031D3B8 38 9F 02 A8 */ addi r4, r31, 0x2a8
+/* 8032175C 0031D3BC 38 60 00 20 */ li r3, 0x20
+/* 80321760 0031D3C0 4C C6 31 82 */ crclr 6
+/* 80321764 0031D3C4 4B FF B3 D1 */ bl DWC_Printf
+/* 80321768 0031D3C8 80 8D B0 50 */ lwz r4, lbl_80640310-_SDA_BASE_(r13)
+/* 8032176C 0031D3CC 38 64 00 4C */ addi r3, r4, 0x4c
+/* 80321770 0031D3D0 38 84 01 4C */ addi r4, r4, 0x14c
+/* 80321774 0031D3D4 48 01 32 B5 */ bl func_80334A28
+/* 80321778 0031D3D8 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 8032177C 0031D3DC 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 80321780 0031D3E0 48 01 1A 39 */ bl func_803331B8
+/* 80321784 0031D3E4 2C 03 00 00 */ cmpwi r3, 0
+/* 80321788 0031D3E8 41 82 00 70 */ beq lbl_803217F8
+/* 8032178C 0031D3EC 38 9F 02 B8 */ addi r4, r31, 0x2b8
+/* 80321790 0031D3F0 38 60 00 20 */ li r3, 0x20
+/* 80321794 0031D3F4 4C C6 31 82 */ crclr 6
+/* 80321798 0031D3F8 4B FF B3 9D */ bl DWC_Printf
+/* 8032179C 0031D3FC 4B F5 10 1D */ bl OSGetTime
+/* 803217A0 0031D400 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 803217A4 0031D404 3D 00 80 32 */ lis r8, DWCi_GPConnectCallback@ha
+/* 803217A8 0031D408 38 00 00 01 */ li r0, 1
+/* 803217AC 0031D40C 38 C0 00 01 */ li r6, 1
+/* 803217B0 0031D410 90 85 00 3C */ stw r4, 0x3c(r5)
+/* 803217B4 0031D414 39 08 13 9C */ addi r8, r8, DWCi_GPConnectCallback@l
+/* 803217B8 0031D418 38 E0 00 00 */ li r7, 0
+/* 803217BC 0031D41C 39 20 00 00 */ li r9, 0
+/* 803217C0 0031D420 90 65 00 38 */ stw r3, 0x38(r5)
+/* 803217C4 0031D424 90 05 00 30 */ stw r0, 0x30(r5)
+/* 803217C8 0031D428 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 803217CC 0031D42C 80 65 00 00 */ lwz r3, 0(r5)
+/* 803217D0 0031D430 38 85 00 4C */ addi r4, r5, 0x4c
+/* 803217D4 0031D434 38 A5 01 4C */ addi r5, r5, 0x14c
+/* 803217D8 0031D438 48 01 B7 0D */ bl gpConnectPreAuthenticatedA
+/* 803217DC 0031D43C 4B FF FA AD */ bl DWCi_HandleGPError
+/* 803217E0 0031D440 2C 03 00 00 */ cmpwi r3, 0
+/* 803217E4 0031D444 40 82 01 70 */ bne lbl_80321954
+/* 803217E8 0031D448 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803217EC 0031D44C 38 00 00 02 */ li r0, 2
+/* 803217F0 0031D450 90 03 00 04 */ stw r0, 4(r3)
+/* 803217F4 0031D454 48 00 01 60 */ b lbl_80321954
+lbl_803217F8:
+/* 803217F8 0031D458 48 01 32 7D */ bl func_80334A74
+/* 803217FC 0031D45C 80 ED B0 50 */ lwz r7, lbl_80640310-_SDA_BASE_(r13)
+/* 80321800 0031D460 7C 65 1B 78 */ mr r5, r3
+/* 80321804 0031D464 7C 86 23 78 */ mr r6, r4
+/* 80321808 0031D468 38 67 00 40 */ addi r3, r7, 0x40
+/* 8032180C 0031D46C 48 01 13 19 */ bl func_80332B24
+/* 80321810 0031D470 38 9F 02 B8 */ addi r4, r31, 0x2b8
+/* 80321814 0031D474 38 60 00 20 */ li r3, 0x20
+/* 80321818 0031D478 4C C6 31 82 */ crclr 6
+/* 8032181C 0031D47C 4B FF B3 19 */ bl DWC_Printf
+/* 80321820 0031D480 4B F5 0F 99 */ bl OSGetTime
+/* 80321824 0031D484 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80321828 0031D488 3D 00 80 32 */ lis r8, DWCi_GPConnectCallback@ha
+/* 8032182C 0031D48C 38 00 00 01 */ li r0, 1
+/* 80321830 0031D490 38 C0 00 01 */ li r6, 1
+/* 80321834 0031D494 90 85 00 3C */ stw r4, 0x3c(r5)
+/* 80321838 0031D498 39 08 13 9C */ addi r8, r8, DWCi_GPConnectCallback@l
+/* 8032183C 0031D49C 38 E0 00 00 */ li r7, 0
+/* 80321840 0031D4A0 39 20 00 00 */ li r9, 0
+/* 80321844 0031D4A4 90 65 00 38 */ stw r3, 0x38(r5)
+/* 80321848 0031D4A8 90 05 00 30 */ stw r0, 0x30(r5)
+/* 8032184C 0031D4AC 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80321850 0031D4B0 80 65 00 00 */ lwz r3, 0(r5)
+/* 80321854 0031D4B4 38 85 00 4C */ addi r4, r5, 0x4c
+/* 80321858 0031D4B8 38 A5 01 4C */ addi r5, r5, 0x14c
+/* 8032185C 0031D4BC 48 01 B6 89 */ bl gpConnectPreAuthenticatedA
+/* 80321860 0031D4C0 4B FF FA 29 */ bl DWCi_HandleGPError
+/* 80321864 0031D4C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80321868 0031D4C8 40 82 00 EC */ bne lbl_80321954
+/* 8032186C 0031D4CC 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321870 0031D4D0 38 00 00 03 */ li r0, 3
+/* 80321874 0031D4D4 90 03 00 04 */ stw r0, 4(r3)
+/* 80321878 0031D4D8 48 00 00 DC */ b lbl_80321954
+lbl_8032187C:
+/* 8032187C 0031D4DC 48 01 31 A1 */ bl func_80334A1C
+/* 80321880 0031D4E0 7C 7E 1B 78 */ mr r30, r3
+/* 80321884 0031D4E4 38 9F 02 E0 */ addi r4, r31, 0x2e0
+/* 80321888 0031D4E8 7F C5 F3 78 */ mr r5, r30
+/* 8032188C 0031D4EC 38 60 00 20 */ li r3, 0x20
+/* 80321890 0031D4F0 4C C6 31 82 */ crclr 6
+/* 80321894 0031D4F4 4B FF B2 A1 */ bl DWC_Printf
+/* 80321898 0031D4F8 2C 1E 8E B8 */ cmpwi r30, -29000
+/* 8032189C 0031D4FC 41 81 00 60 */ bgt lbl_803218FC
+/* 803218A0 0031D500 80 0D B0 50 */ lwz r0, lbl_80640310-_SDA_BASE_(r13)
+/* 803218A4 0031D504 2C 00 00 00 */ cmpwi r0, 0
+/* 803218A8 0031D508 41 82 00 AC */ beq lbl_80321954
+/* 803218AC 0031D50C 7F C4 F3 78 */ mr r4, r30
+/* 803218B0 0031D510 38 60 00 09 */ li r3, 9
+/* 803218B4 0031D514 4B FF AC CD */ bl DWCi_SetError
+/* 803218B8 0031D518 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803218BC 0031D51C 81 83 00 14 */ lwz r12, 0x14(r3)
+/* 803218C0 0031D520 2C 0C 00 00 */ cmpwi r12, 0
+/* 803218C4 0031D524 41 82 00 18 */ beq lbl_803218DC
+/* 803218C8 0031D528 80 A3 00 18 */ lwz r5, 0x18(r3)
+/* 803218CC 0031D52C 38 60 00 09 */ li r3, 9
+/* 803218D0 0031D530 38 80 00 00 */ li r4, 0
+/* 803218D4 0031D534 7D 89 03 A6 */ mtctr r12
+/* 803218D8 0031D538 4E 80 04 21 */ bctrl
+lbl_803218DC:
+/* 803218DC 0031D53C 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803218E0 0031D540 2C 03 00 00 */ cmpwi r3, 0
+/* 803218E4 0031D544 41 82 00 70 */ beq lbl_80321954
+/* 803218E8 0031D548 38 00 00 00 */ li r0, 0
+/* 803218EC 0031D54C 90 03 00 04 */ stw r0, 4(r3)
+/* 803218F0 0031D550 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 803218F4 0031D554 90 03 00 30 */ stw r0, 0x30(r3)
+/* 803218F8 0031D558 48 00 00 5C */ b lbl_80321954
+lbl_803218FC:
+/* 803218FC 0031D55C 80 0D B0 50 */ lwz r0, lbl_80640310-_SDA_BASE_(r13)
+/* 80321900 0031D560 2C 00 00 00 */ cmpwi r0, 0
+/* 80321904 0031D564 41 82 00 50 */ beq lbl_80321954
+/* 80321908 0031D568 7F C4 F3 78 */ mr r4, r30
+/* 8032190C 0031D56C 38 60 00 02 */ li r3, 2
+/* 80321910 0031D570 4B FF AC 71 */ bl DWCi_SetError
+/* 80321914 0031D574 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321918 0031D578 81 83 00 14 */ lwz r12, 0x14(r3)
+/* 8032191C 0031D57C 2C 0C 00 00 */ cmpwi r12, 0
+/* 80321920 0031D580 41 82 00 18 */ beq lbl_80321938
+/* 80321924 0031D584 80 A3 00 18 */ lwz r5, 0x18(r3)
+/* 80321928 0031D588 38 60 00 02 */ li r3, 2
+/* 8032192C 0031D58C 38 80 00 00 */ li r4, 0
+/* 80321930 0031D590 7D 89 03 A6 */ mtctr r12
+/* 80321934 0031D594 4E 80 04 21 */ bctrl
+lbl_80321938:
+/* 80321938 0031D598 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 8032193C 0031D59C 2C 03 00 00 */ cmpwi r3, 0
+/* 80321940 0031D5A0 41 82 00 14 */ beq lbl_80321954
+/* 80321944 0031D5A4 38 00 00 00 */ li r0, 0
+/* 80321948 0031D5A8 90 03 00 04 */ stw r0, 4(r3)
+/* 8032194C 0031D5AC 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321950 0031D5B0 90 03 00 30 */ stw r0, 0x30(r3)
+lbl_80321954:
+/* 80321954 0031D5B4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80321958 0031D5B8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8032195C 0031D5BC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80321960 0031D5C0 7C 08 03 A6 */ mtlr r0
+/* 80321964 0031D5C4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80321968 0031D5C8 4E 80 00 20 */ blr
+
+DWCi_GPGetInfoCallback:
+/* 8032196C 0031D5CC 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 80321970 0031D5D0 7C 08 02 A6 */ mflr r0
+/* 80321974 0031D5D4 90 01 00 64 */ stw r0, 0x64(r1)
+/* 80321978 0031D5D8 93 E1 00 5C */ stw r31, 0x5c(r1)
+/* 8032197C 0031D5DC 3F E0 80 44 */ lis r31, lbl_80447248@ha
+/* 80321980 0031D5E0 3B FF 72 48 */ addi r31, r31, lbl_80447248@l
+/* 80321984 0031D5E4 93 C1 00 58 */ stw r30, 0x58(r1)
+/* 80321988 0031D5E8 7C 9E 23 78 */ mr r30, r4
+/* 8032198C 0031D5EC 93 A1 00 54 */ stw r29, 0x54(r1)
+/* 80321990 0031D5F0 7C 7D 1B 78 */ mr r29, r3
+/* 80321994 0031D5F4 80 A4 00 00 */ lwz r5, 0(r4)
+/* 80321998 0031D5F8 2C 05 00 00 */ cmpwi r5, 0
+/* 8032199C 0031D5FC 40 82 02 0C */ bne lbl_80321BA8
+/* 803219A0 0031D600 80 CD B0 50 */ lwz r6, lbl_80640310-_SDA_BASE_(r13)
+/* 803219A4 0031D604 80 06 00 04 */ lwz r0, 4(r6)
+/* 803219A8 0031D608 2C 00 00 03 */ cmpwi r0, 3
+/* 803219AC 0031D60C 40 82 00 CC */ bne lbl_80321A78
+/* 803219B0 0031D610 88 04 00 8E */ lbz r0, 0x8e(r4)
+/* 803219B4 0031D614 7C 00 07 75 */ extsb. r0, r0
+/* 803219B8 0031D618 40 82 00 94 */ bne lbl_80321A4C
+/* 803219BC 0031D61C 38 9F 02 F8 */ addi r4, r31, 0x2f8
+/* 803219C0 0031D620 38 60 00 20 */ li r3, 0x20
+/* 803219C4 0031D624 4C C6 31 82 */ crclr 6
+/* 803219C8 0031D628 4B FF B1 6D */ bl DWC_Printf
+/* 803219CC 0031D62C 80 8D B0 50 */ lwz r4, lbl_80640310-_SDA_BASE_(r13)
+/* 803219D0 0031D630 38 A1 00 38 */ addi r5, r1, 0x38
+/* 803219D4 0031D634 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 803219D8 0031D638 80 84 00 0C */ lwz r4, 0xc(r4)
+/* 803219DC 0031D63C 38 63 00 04 */ addi r3, r3, 4
+/* 803219E0 0031D640 48 01 12 C9 */ bl func_80332CA8
+/* 803219E4 0031D644 7F A3 EB 78 */ mr r3, r29
+/* 803219E8 0031D648 38 A1 00 38 */ addi r5, r1, 0x38
+/* 803219EC 0031D64C 38 80 07 05 */ li r4, 0x705
+/* 803219F0 0031D650 48 01 B8 2D */ bl gpSetInfosA
+/* 803219F4 0031D654 4B FF F8 95 */ bl DWCi_HandleGPError
+/* 803219F8 0031D658 2C 03 00 00 */ cmpwi r3, 0
+/* 803219FC 0031D65C 40 82 01 BC */ bne lbl_80321BB8
+/* 80321A00 0031D660 80 8D B0 50 */ lwz r4, lbl_80640310-_SDA_BASE_(r13)
+/* 80321A04 0031D664 38 00 00 04 */ li r0, 4
+/* 80321A08 0031D668 3C E0 80 32 */ lis r7, DWCi_GPGetInfoCallback@ha
+/* 80321A0C 0031D66C 7F A3 EB 78 */ mr r3, r29
+/* 80321A10 0031D670 90 04 00 04 */ stw r0, 4(r4)
+/* 80321A14 0031D674 38 E7 19 6C */ addi r7, r7, DWCi_GPGetInfoCallback@l
+/* 80321A18 0031D678 38 A0 00 00 */ li r5, 0
+/* 80321A1C 0031D67C 38 C0 00 00 */ li r6, 0
+/* 80321A20 0031D680 80 9E 00 04 */ lwz r4, 4(r30)
+/* 80321A24 0031D684 39 00 00 00 */ li r8, 0
+/* 80321A28 0031D688 48 01 B7 15 */ bl gpGetInfo
+/* 80321A2C 0031D68C 4B FF F8 5D */ bl DWCi_HandleGPError
+/* 80321A30 0031D690 2C 03 00 00 */ cmpwi r3, 0
+/* 80321A34 0031D694 40 82 01 84 */ bne lbl_80321BB8
+/* 80321A38 0031D698 38 9F 03 2C */ addi r4, r31, 0x32c
+/* 80321A3C 0031D69C 38 60 00 20 */ li r3, 0x20
+/* 80321A40 0031D6A0 4C C6 31 82 */ crclr 6
+/* 80321A44 0031D6A4 4B FF B0 F1 */ bl DWC_Printf
+/* 80321A48 0031D6A8 48 00 01 70 */ b lbl_80321BB8
+lbl_80321A4C:
+/* 80321A4C 0031D6AC 38 9F 03 44 */ addi r4, r31, 0x344
+/* 80321A50 0031D6B0 38 60 00 20 */ li r3, 0x20
+/* 80321A54 0031D6B4 4C C6 31 82 */ crclr 6
+/* 80321A58 0031D6B8 4B FF B0 DD */ bl DWC_Printf
+/* 80321A5C 0031D6BC 7F A3 EB 78 */ mr r3, r29
+/* 80321A60 0031D6C0 48 01 B5 B1 */ bl gpDisconnect
+/* 80321A64 0031D6C4 4B FF FA F1 */ bl DWCi_RemoteLogin
+/* 80321A68 0031D6C8 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321A6C 0031D6CC 38 00 00 01 */ li r0, 1
+/* 80321A70 0031D6D0 90 03 00 04 */ stw r0, 4(r3)
+/* 80321A74 0031D6D4 48 00 01 44 */ b lbl_80321BB8
+lbl_80321A78:
+/* 80321A78 0031D6D8 2C 00 00 04 */ cmpwi r0, 4
+/* 80321A7C 0031D6DC 40 82 01 3C */ bne lbl_80321BB8
+/* 80321A80 0031D6E0 80 66 00 1C */ lwz r3, 0x1c(r6)
+/* 80321A84 0031D6E4 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80321A88 0031D6E8 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 80321A8C 0031D6EC 38 63 00 04 */ addi r3, r3, 4
+/* 80321A90 0031D6F0 48 01 12 19 */ bl func_80332CA8
+/* 80321A94 0031D6F4 38 7E 00 8E */ addi r3, r30, 0x8e
+/* 80321A98 0031D6F8 38 81 00 20 */ addi r4, r1, 0x20
+/* 80321A9C 0031D6FC 4B EA C9 B1 */ bl strcmp
+/* 80321AA0 0031D700 2C 03 00 00 */ cmpwi r3, 0
+/* 80321AA4 0031D704 40 82 00 BC */ bne lbl_80321B60
+/* 80321AA8 0031D708 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321AAC 0031D70C 38 A1 00 08 */ addi r5, r1, 8
+/* 80321AB0 0031D710 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 80321AB4 0031D714 38 63 00 40 */ addi r3, r3, 0x40
+/* 80321AB8 0031D718 48 01 11 F1 */ bl func_80332CA8
+/* 80321ABC 0031D71C 80 FE 00 04 */ lwz r7, 4(r30)
+/* 80321AC0 0031D720 38 9F 03 78 */ addi r4, r31, 0x378
+/* 80321AC4 0031D724 38 A1 00 08 */ addi r5, r1, 8
+/* 80321AC8 0031D728 38 C1 00 20 */ addi r6, r1, 0x20
+/* 80321ACC 0031D72C 38 60 00 20 */ li r3, 0x20
+/* 80321AD0 0031D730 4C C6 31 82 */ crclr 6
+/* 80321AD4 0031D734 4B FF B0 61 */ bl DWC_Printf
+/* 80321AD8 0031D738 80 8D B0 50 */ lwz r4, lbl_80640310-_SDA_BASE_(r13)
+/* 80321ADC 0031D73C 80 BE 00 04 */ lwz r5, 4(r30)
+/* 80321AE0 0031D740 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 80321AE4 0031D744 38 84 00 40 */ addi r4, r4, 0x40
+/* 80321AE8 0031D748 48 01 19 01 */ bl func_803333E8
+/* 80321AEC 0031D74C 7F A3 EB 78 */ mr r3, r29
+/* 80321AF0 0031D750 48 01 B5 21 */ bl gpDisconnect
+/* 80321AF4 0031D754 38 9F 02 B8 */ addi r4, r31, 0x2b8
+/* 80321AF8 0031D758 38 60 00 20 */ li r3, 0x20
+/* 80321AFC 0031D75C 4C C6 31 82 */ crclr 6
+/* 80321B00 0031D760 4B FF B0 35 */ bl DWC_Printf
+/* 80321B04 0031D764 4B F5 0C B5 */ bl OSGetTime
+/* 80321B08 0031D768 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80321B0C 0031D76C 3D 00 80 32 */ lis r8, DWCi_GPConnectCallback@ha
+/* 80321B10 0031D770 38 00 00 01 */ li r0, 1
+/* 80321B14 0031D774 38 C0 00 01 */ li r6, 1
+/* 80321B18 0031D778 90 85 00 3C */ stw r4, 0x3c(r5)
+/* 80321B1C 0031D77C 39 08 13 9C */ addi r8, r8, DWCi_GPConnectCallback@l
+/* 80321B20 0031D780 38 E0 00 00 */ li r7, 0
+/* 80321B24 0031D784 39 20 00 00 */ li r9, 0
+/* 80321B28 0031D788 90 65 00 38 */ stw r3, 0x38(r5)
+/* 80321B2C 0031D78C 90 05 00 30 */ stw r0, 0x30(r5)
+/* 80321B30 0031D790 80 AD B0 50 */ lwz r5, lbl_80640310-_SDA_BASE_(r13)
+/* 80321B34 0031D794 80 65 00 00 */ lwz r3, 0(r5)
+/* 80321B38 0031D798 38 85 00 4C */ addi r4, r5, 0x4c
+/* 80321B3C 0031D79C 38 A5 01 4C */ addi r5, r5, 0x14c
+/* 80321B40 0031D7A0 48 01 B3 A5 */ bl gpConnectPreAuthenticatedA
+/* 80321B44 0031D7A4 4B FF F7 45 */ bl DWCi_HandleGPError
+/* 80321B48 0031D7A8 2C 03 00 00 */ cmpwi r3, 0
+/* 80321B4C 0031D7AC 40 82 00 6C */ bne lbl_80321BB8
+/* 80321B50 0031D7B0 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321B54 0031D7B4 38 00 00 02 */ li r0, 2
+/* 80321B58 0031D7B8 90 03 00 04 */ stw r0, 4(r3)
+/* 80321B5C 0031D7BC 48 00 00 5C */ b lbl_80321BB8
+lbl_80321B60:
+/* 80321B60 0031D7C0 80 DE 00 04 */ lwz r6, 4(r30)
+/* 80321B64 0031D7C4 38 9F 03 A0 */ addi r4, r31, 0x3a0
+/* 80321B68 0031D7C8 38 BE 00 8E */ addi r5, r30, 0x8e
+/* 80321B6C 0031D7CC 38 60 00 20 */ li r3, 0x20
+/* 80321B70 0031D7D0 4C C6 31 82 */ crclr 6
+/* 80321B74 0031D7D4 4B FF AF C1 */ bl DWC_Printf
+/* 80321B78 0031D7D8 3C E0 80 32 */ lis r7, DWCi_GPGetInfoCallback@ha
+/* 80321B7C 0031D7DC 80 9E 00 04 */ lwz r4, 4(r30)
+/* 80321B80 0031D7E0 7F A3 EB 78 */ mr r3, r29
+/* 80321B84 0031D7E4 38 A0 00 00 */ li r5, 0
+/* 80321B88 0031D7E8 38 E7 19 6C */ addi r7, r7, DWCi_GPGetInfoCallback@l
+/* 80321B8C 0031D7EC 38 C0 00 00 */ li r6, 0
+/* 80321B90 0031D7F0 39 00 00 00 */ li r8, 0
+/* 80321B94 0031D7F4 48 01 B5 A9 */ bl gpGetInfo
+/* 80321B98 0031D7F8 4B FF F6 F1 */ bl DWCi_HandleGPError
+/* 80321B9C 0031D7FC 2C 03 00 00 */ cmpwi r3, 0
+/* 80321BA0 0031D800 41 82 00 18 */ beq lbl_80321BB8
+/* 80321BA4 0031D804 48 00 00 14 */ b lbl_80321BB8
+lbl_80321BA8:
+/* 80321BA8 0031D808 38 9F 03 E0 */ addi r4, r31, 0x3e0
+/* 80321BAC 0031D80C 38 60 00 20 */ li r3, 0x20
+/* 80321BB0 0031D810 4C C6 31 82 */ crclr 6
+/* 80321BB4 0031D814 4B FF AF 81 */ bl DWC_Printf
+lbl_80321BB8:
+/* 80321BB8 0031D818 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 80321BBC 0031D81C 83 E1 00 5C */ lwz r31, 0x5c(r1)
+/* 80321BC0 0031D820 83 C1 00 58 */ lwz r30, 0x58(r1)
+/* 80321BC4 0031D824 83 A1 00 54 */ lwz r29, 0x54(r1)
+/* 80321BC8 0031D828 7C 08 03 A6 */ mtlr r0
+/* 80321BCC 0031D82C 38 21 00 60 */ addi r1, r1, 0x60
+/* 80321BD0 0031D830 4E 80 00 20 */ blr
+
+.global DWCi_CheckLogin
+DWCi_CheckLogin:
+/* 80321BD4 0031D834 80 6D B0 50 */ lwz r3, lbl_80640310-_SDA_BASE_(r13)
+/* 80321BD8 0031D838 2C 03 00 00 */ cmpwi r3, 0
+/* 80321BDC 0031D83C 41 82 00 18 */ beq lbl_80321BF4
+/* 80321BE0 0031D840 80 03 00 04 */ lwz r0, 4(r3)
+/* 80321BE4 0031D844 2C 00 00 05 */ cmpwi r0, 5
+/* 80321BE8 0031D848 40 82 00 0C */ bne lbl_80321BF4
+/* 80321BEC 0031D84C 38 60 00 01 */ li r3, 1
+/* 80321BF0 0031D850 4E 80 00 20 */ blr
+lbl_80321BF4:
+/* 80321BF4 0031D854 38 60 00 00 */ li r3, 0
+/* 80321BF8 0031D858 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/dwc_match/dwc_main.s b/asm/SDK/DWC/dwc_match/dwc_main.s new file mode 100644 index 0000000..5f6ca08 --- /dev/null +++ b/asm/SDK/DWC/dwc_match/dwc_main.s @@ -0,0 +1,2866 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DWC_InitFriendsMatch
+DWC_InitFriendsMatch:
+/* 80321BFC 0031D85C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80321C00 0031D860 7C 08 02 A6 */ mflr r0
+/* 80321C04 0031D864 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80321C08 0031D868 39 61 00 30 */ addi r11, r1, 0x30
+/* 80321C0C 0031D86C 4B EA 55 15 */ bl _savegpr_25
+/* 80321C10 0031D870 83 A1 00 38 */ lwz r29, 0x38(r1)
+/* 80321C14 0031D874 3C 60 80 44 */ lis r3, lbl_80447648@ha
+/* 80321C18 0031D878 7C 99 23 78 */ mr r25, r4
+/* 80321C1C 0031D87C 7C BA 2B 78 */ mr r26, r5
+/* 80321C20 0031D880 38 83 76 48 */ addi r4, r3, lbl_80447648@l
+/* 80321C24 0031D884 7C FB 3B 78 */ mr r27, r7
+/* 80321C28 0031D888 7D 1F 43 78 */ mr r31, r8
+/* 80321C2C 0031D88C 7D 3E 4B 78 */ mr r30, r9
+/* 80321C30 0031D890 7D 5C 53 78 */ mr r28, r10
+/* 80321C34 0031D894 38 60 00 04 */ li r3, 4
+/* 80321C38 0031D898 4C C6 31 82 */ crclr 6
+/* 80321C3C 0031D89C 4B FF AE F9 */ bl DWC_Printf
+/* 80321C40 0031D8A0 38 60 00 04 */ li r3, 4
+/* 80321C44 0031D8A4 38 80 0F 10 */ li r4, 0xf10
+/* 80321C48 0031D8A8 4B FF AC A5 */ bl DWC_Alloc
+/* 80321C4C 0031D8AC 90 6D B0 58 */ stw r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321C50 0031D8B0 38 80 00 00 */ li r4, 0
+/* 80321C54 0031D8B4 38 A0 0F 10 */ li r5, 0xf10
+/* 80321C58 0031D8B8 4B CE 24 AD */ bl memset
+/* 80321C5C 0031D8BC 4B FF A8 F5 */ bl DWC_ClearError
+/* 80321C60 0031D8C0 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321C64 0031D8C4 38 00 00 00 */ li r0, 0
+/* 80321C68 0031D8C8 3C 80 80 32 */ lis r4, lbl_80326A5C@ha
+/* 80321C6C 0031D8CC 3C E0 80 32 */ lis r7, DWCi_GT2ReceivedCallback@ha
+/* 80321C70 0031D8D0 90 03 00 00 */ stw r0, 0(r3)
+/* 80321C74 0031D8D4 3C C0 80 32 */ lis r6, DWCi_GT2ClosedCallback@ha
+/* 80321C78 0031D8D8 3C A0 80 32 */ lis r5, DWCi_GT2PingCallback@ha
+/* 80321C7C 0031D8DC 38 84 6A 5C */ addi r4, r4, lbl_80326A5C@l
+/* 80321C80 0031D8E0 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321C84 0031D8E4 38 E7 3E 20 */ addi r7, r7, DWCi_GT2ReceivedCallback@l
+/* 80321C88 0031D8E8 38 C6 3E 24 */ addi r6, r6, DWCi_GT2ClosedCallback@l
+/* 80321C8C 0031D8EC 2C 1F 00 00 */ cmpwi r31, 0
+/* 80321C90 0031D8F0 90 83 00 04 */ stw r4, 4(r3)
+/* 80321C94 0031D8F4 38 A5 42 78 */ addi r5, r5, DWCi_GT2PingCallback@l
+/* 80321C98 0031D8F8 38 80 20 00 */ li r4, 0x2000
+/* 80321C9C 0031D8FC 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321CA0 0031D900 90 E3 00 08 */ stw r7, 8(r3)
+/* 80321CA4 0031D904 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321CA8 0031D908 90 C3 00 0C */ stw r6, 0xc(r3)
+/* 80321CAC 0031D90C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321CB0 0031D910 90 A3 00 10 */ stw r5, 0x10(r3)
+/* 80321CB4 0031D914 41 82 00 08 */ beq lbl_80321CBC
+/* 80321CB8 0031D918 7F E4 FB 78 */ mr r4, r31
+lbl_80321CBC:
+/* 80321CBC 0031D91C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321CC0 0031D920 2C 1E 00 00 */ cmpwi r30, 0
+/* 80321CC4 0031D924 38 00 20 00 */ li r0, 0x2000
+/* 80321CC8 0031D928 90 83 00 14 */ stw r4, 0x14(r3)
+/* 80321CCC 0031D92C 41 82 00 08 */ beq lbl_80321CD4
+/* 80321CD0 0031D930 7F C0 F3 78 */ mr r0, r30
+lbl_80321CD4:
+/* 80321CD4 0031D934 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80321CD8 0031D938 3F C0 80 62 */ lis r30, lbl_80620DE8@ha
+/* 80321CDC 0031D93C 3F E0 80 62 */ lis r31, lbl_80620EE8@ha
+/* 80321CE0 0031D940 3C 60 80 61 */ lis r3, lbl_8060FC08@ha
+/* 80321CE4 0031D944 90 04 00 18 */ stw r0, 0x18(r4)
+/* 80321CE8 0031D948 38 00 00 00 */ li r0, 0
+/* 80321CEC 0031D94C 3B DE 0D E8 */ addi r30, r30, lbl_80620DE8@l
+/* 80321CF0 0031D950 3B FF 0E E8 */ addi r31, r31, lbl_80620EE8@l
+/* 80321CF4 0031D954 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321CF8 0031D958 38 63 FC 08 */ addi r3, r3, lbl_8060FC08@l
+/* 80321CFC 0031D95C 38 80 00 00 */ li r4, 0
+/* 80321D00 0031D960 38 A0 00 80 */ li r5, 0x80
+/* 80321D04 0031D964 90 06 00 1C */ stw r0, 0x1c(r6)
+/* 80321D08 0031D968 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D0C 0031D96C 93 26 00 20 */ stw r25, 0x20(r6)
+/* 80321D10 0031D970 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D14 0031D974 90 06 00 24 */ stw r0, 0x24(r6)
+/* 80321D18 0031D978 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D1C 0031D97C 90 06 00 28 */ stw r0, 0x28(r6)
+/* 80321D20 0031D980 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D24 0031D984 98 06 00 2C */ stb r0, 0x2c(r6)
+/* 80321D28 0031D988 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D2C 0031D98C 98 06 00 2D */ stb r0, 0x2d(r6)
+/* 80321D30 0031D990 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D34 0031D994 90 06 00 64 */ stw r0, 0x64(r6)
+/* 80321D38 0031D998 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D3C 0031D99C 93 C6 00 68 */ stw r30, 0x68(r6)
+/* 80321D40 0031D9A0 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D44 0031D9A4 93 E6 00 6C */ stw r31, 0x6c(r6)
+/* 80321D48 0031D9A8 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D4C 0031D9AC 90 06 00 70 */ stw r0, 0x70(r6)
+/* 80321D50 0031D9B0 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D54 0031D9B4 90 06 00 74 */ stw r0, 0x74(r6)
+/* 80321D58 0031D9B8 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D5C 0031D9BC 90 06 00 78 */ stw r0, 0x78(r6)
+/* 80321D60 0031D9C0 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D64 0031D9C4 90 06 00 7C */ stw r0, 0x7c(r6)
+/* 80321D68 0031D9C8 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D6C 0031D9CC 90 06 00 80 */ stw r0, 0x80(r6)
+/* 80321D70 0031D9D0 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D74 0031D9D4 90 06 00 84 */ stw r0, 0x84(r6)
+/* 80321D78 0031D9D8 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D7C 0031D9DC 90 06 00 88 */ stw r0, 0x88(r6)
+/* 80321D80 0031D9E0 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D84 0031D9E4 90 06 00 8C */ stw r0, 0x8c(r6)
+/* 80321D88 0031D9E8 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D8C 0031D9EC 90 06 00 90 */ stw r0, 0x90(r6)
+/* 80321D90 0031D9F0 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80321D94 0031D9F4 90 06 00 94 */ stw r0, 0x94(r6)
+/* 80321D98 0031D9F8 4B CE 23 6D */ bl memset
+/* 80321D9C 0031D9FC 3C 60 80 61 */ lis r3, lbl_8060FC88@ha
+/* 80321DA0 0031DA00 38 80 00 00 */ li r4, 0
+/* 80321DA4 0031DA04 38 63 FC 88 */ addi r3, r3, lbl_8060FC88@l
+/* 80321DA8 0031DA08 38 A0 01 00 */ li r5, 0x100
+/* 80321DAC 0031DA0C 4B CE 23 59 */ bl memset
+/* 80321DB0 0031DA10 81 0D B0 58 */ lwz r8, lbl_80640318-_SDA_BASE_(r13)
+/* 80321DB4 0031DA14 3D 20 80 32 */ lis r9, DWCi_LoginCallback@ha
+/* 80321DB8 0031DA18 80 F9 00 24 */ lwz r7, 0x24(r25)
+/* 80321DBC 0031DA1C 7F 24 CB 78 */ mr r4, r25
+/* 80321DC0 0031DA20 7F 46 D3 78 */ mr r6, r26
+/* 80321DC4 0031DA24 38 68 00 98 */ addi r3, r8, 0x98
+/* 80321DC8 0031DA28 38 A8 00 1C */ addi r5, r8, 0x1c
+/* 80321DCC 0031DA2C 39 08 00 2E */ addi r8, r8, 0x2e
+/* 80321DD0 0031DA30 39 29 34 D4 */ addi r9, r9, DWCi_LoginCallback@l
+/* 80321DD4 0031DA34 39 40 00 00 */ li r10, 0
+/* 80321DD8 0031DA38 4B FF F0 C1 */ bl DWCi_LoginInit
+/* 80321DDC 0031DA3C 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80321DE0 0031DA40 7F 86 E3 78 */ mr r6, r28
+/* 80321DE4 0031DA44 7F A7 EB 78 */ mr r7, r29
+/* 80321DE8 0031DA48 38 65 03 00 */ addi r3, r5, 0x300
+/* 80321DEC 0031DA4C 38 85 00 1C */ addi r4, r5, 0x1c
+/* 80321DF0 0031DA50 38 A5 00 2E */ addi r5, r5, 0x2e
+/* 80321DF4 0031DA54 4B FF D6 B9 */ bl DWCi_FriendInit
+/* 80321DF8 0031DA58 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80321DFC 0031DA5C 7F C7 F3 78 */ mr r7, r30
+/* 80321E00 0031DA60 7F E8 FB 78 */ mr r8, r31
+/* 80321E04 0031DA64 7F 89 E3 78 */ mr r9, r28
+/* 80321E08 0031DA68 7F AA EB 78 */ mr r10, r29
+/* 80321E0C 0031DA6C 38 65 03 60 */ addi r3, r5, 0x360
+/* 80321E10 0031DA70 38 85 00 1C */ addi r4, r5, 0x1c
+/* 80321E14 0031DA74 38 C5 00 04 */ addi r6, r5, 4
+/* 80321E18 0031DA78 48 00 2B F5 */ bl func_80324A0C
+/* 80321E1C 0031DA7C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321E20 0031DA80 38 63 07 F8 */ addi r3, r3, 0x7f8
+/* 80321E24 0031DA84 48 00 F1 D1 */ bl func_80330FF4
+/* 80321E28 0031DA88 7F 63 DB 78 */ mr r3, r27
+/* 80321E2C 0031DA8C 4B EA 4D 39 */ bl strlen
+/* 80321E30 0031DA90 28 03 01 00 */ cmplwi r3, 0x100
+/* 80321E34 0031DA94 40 80 00 14 */ bge lbl_80321E48
+/* 80321E38 0031DA98 7F 63 DB 78 */ mr r3, r27
+/* 80321E3C 0031DA9C 4B EA 4D 29 */ bl strlen
+/* 80321E40 0031DAA0 7C 7A 1B 78 */ mr r26, r3
+/* 80321E44 0031DAA4 48 00 00 08 */ b lbl_80321E4C
+lbl_80321E48:
+/* 80321E48 0031DAA8 3B 40 00 FF */ li r26, 0xff
+lbl_80321E4C:
+/* 80321E4C 0031DAAC 3F 20 80 62 */ lis r25, lbl_80620EE8@ha
+/* 80321E50 0031DAB0 7F 64 DB 78 */ mr r4, r27
+/* 80321E54 0031DAB4 7F 45 D3 78 */ mr r5, r26
+/* 80321E58 0031DAB8 38 79 0E E8 */ addi r3, r25, lbl_80620EE8@l
+/* 80321E5C 0031DABC 4B CE 21 A5 */ bl memcpy
+/* 80321E60 0031DAC0 38 79 0E E8 */ addi r3, r25, 0xee8
+/* 80321E64 0031DAC4 38 00 00 00 */ li r0, 0
+/* 80321E68 0031DAC8 7C 03 D1 AE */ stbx r0, r3, r26
+/* 80321E6C 0031DACC 39 61 00 30 */ addi r11, r1, 0x30
+/* 80321E70 0031DAD0 4B EA 52 FD */ bl _restgpr_25
+/* 80321E74 0031DAD4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80321E78 0031DAD8 7C 08 03 A6 */ mtlr r0
+/* 80321E7C 0031DADC 38 21 00 30 */ addi r1, r1, 0x30
+/* 80321E80 0031DAE0 4E 80 00 20 */ blr
+
+.global DWC_ShutdownFriendsMatch
+DWC_ShutdownFriendsMatch:
+/* 80321E84 0031DAE4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80321E88 0031DAE8 7C 08 02 A6 */ mflr r0
+/* 80321E8C 0031DAEC 3C 80 80 44 */ lis r4, lbl_80447670@ha
+/* 80321E90 0031DAF0 38 60 00 04 */ li r3, 4
+/* 80321E94 0031DAF4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80321E98 0031DAF8 38 84 76 70 */ addi r4, r4, lbl_80447670@l
+/* 80321E9C 0031DAFC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80321EA0 0031DB00 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80321EA4 0031DB04 4C C6 31 82 */ crclr 6
+/* 80321EA8 0031DB08 4B FF AC 8D */ bl DWC_Printf
+/* 80321EAC 0031DB0C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321EB0 0031DB10 2C 03 00 00 */ cmpwi r3, 0
+/* 80321EB4 0031DB14 41 82 01 24 */ beq lbl_80321FD8
+/* 80321EB8 0031DB18 80 63 03 70 */ lwz r3, 0x370(r3)
+/* 80321EBC 0031DB1C 2C 03 00 00 */ cmpwi r3, 0
+/* 80321EC0 0031DB20 41 82 00 14 */ beq lbl_80321ED4
+/* 80321EC4 0031DB24 48 02 C7 71 */ bl qr2_shutdown
+/* 80321EC8 0031DB28 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321ECC 0031DB2C 38 00 00 00 */ li r0, 0
+/* 80321ED0 0031DB30 90 03 03 70 */ stw r0, 0x370(r3)
+lbl_80321ED4:
+/* 80321ED4 0031DB34 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321ED8 0031DB38 3B E0 00 00 */ li r31, 0
+/* 80321EDC 0031DB3C 9B E3 03 78 */ stb r31, 0x378(r3)
+/* 80321EE0 0031DB40 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321EE4 0031DB44 80 63 04 44 */ lwz r3, 0x444(r3)
+/* 80321EE8 0031DB48 2C 03 00 00 */ cmpwi r3, 0
+/* 80321EEC 0031DB4C 41 82 00 10 */ beq lbl_80321EFC
+/* 80321EF0 0031DB50 48 03 C5 AD */ bl ServerBrowserFree
+/* 80321EF4 0031DB54 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321EF8 0031DB58 93 E3 04 44 */ stw r31, 0x444(r3)
+lbl_80321EFC:
+/* 80321EFC 0031DB5C 48 03 8C B9 */ bl NNFreeNegotiateList
+/* 80321F00 0031DB60 48 03 64 65 */ bl CloseStatsConnection
+/* 80321F04 0031DB64 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321F08 0031DB68 84 03 00 1C */ lwzu r0, 0x1c(r3)
+/* 80321F0C 0031DB6C 2C 00 00 00 */ cmpwi r0, 0
+/* 80321F10 0031DB70 41 82 00 80 */ beq lbl_80321F90
+/* 80321F14 0031DB74 38 80 00 00 */ li r4, 0
+/* 80321F18 0031DB78 38 A0 00 00 */ li r5, 0
+/* 80321F1C 0031DB7C 38 C0 00 00 */ li r6, 0
+/* 80321F20 0031DB80 48 01 AF 55 */ bl gpSetCallback
+/* 80321F24 0031DB84 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321F28 0031DB88 38 80 00 03 */ li r4, 3
+/* 80321F2C 0031DB8C 38 A0 00 00 */ li r5, 0
+/* 80321F30 0031DB90 38 C0 00 00 */ li r6, 0
+/* 80321F34 0031DB94 38 63 00 1C */ addi r3, r3, 0x1c
+/* 80321F38 0031DB98 48 01 AF 3D */ bl gpSetCallback
+/* 80321F3C 0031DB9C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321F40 0031DBA0 38 80 00 01 */ li r4, 1
+/* 80321F44 0031DBA4 38 A0 00 00 */ li r5, 0
+/* 80321F48 0031DBA8 38 C0 00 00 */ li r6, 0
+/* 80321F4C 0031DBAC 38 63 00 1C */ addi r3, r3, 0x1c
+/* 80321F50 0031DBB0 48 01 AF 25 */ bl gpSetCallback
+/* 80321F54 0031DBB4 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321F58 0031DBB8 38 80 00 02 */ li r4, 2
+/* 80321F5C 0031DBBC 38 A0 00 00 */ li r5, 0
+/* 80321F60 0031DBC0 38 C0 00 00 */ li r6, 0
+/* 80321F64 0031DBC4 38 63 00 1C */ addi r3, r3, 0x1c
+/* 80321F68 0031DBC8 48 01 AF 0D */ bl gpSetCallback
+/* 80321F6C 0031DBCC 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321F70 0031DBD0 38 63 00 1C */ addi r3, r3, 0x1c
+/* 80321F74 0031DBD4 48 01 AE C5 */ bl gpProcess
+/* 80321F78 0031DBD8 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321F7C 0031DBDC 38 63 00 1C */ addi r3, r3, 0x1c
+/* 80321F80 0031DBE0 48 01 AE 99 */ bl gpDestroy
+/* 80321F84 0031DBE4 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321F88 0031DBE8 38 00 00 00 */ li r0, 0
+/* 80321F8C 0031DBEC 90 03 00 1C */ stw r0, 0x1c(r3)
+lbl_80321F90:
+/* 80321F90 0031DBF0 4B FF F2 C5 */ bl DWCi_ShutdownLogin
+/* 80321F94 0031DBF4 4B FF DD D5 */ bl DWCi_ShutdownFriend
+/* 80321F98 0031DBF8 48 00 5E F5 */ bl func_80327E8C
+/* 80321F9C 0031DBFC 48 00 F4 B5 */ bl func_80331450
+/* 80321FA0 0031DC00 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321FA4 0031DC04 80 63 00 00 */ lwz r3, 0(r3)
+/* 80321FA8 0031DC08 2C 03 00 00 */ cmpwi r3, 0
+/* 80321FAC 0031DC0C 41 82 00 14 */ beq lbl_80321FC0
+/* 80321FB0 0031DC10 48 02 7A 49 */ bl gt2CloseSocket
+/* 80321FB4 0031DC14 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321FB8 0031DC18 38 00 00 00 */ li r0, 0
+/* 80321FBC 0031DC1C 90 03 00 00 */ stw r0, 0(r3)
+lbl_80321FC0:
+/* 80321FC0 0031DC20 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80321FC4 0031DC24 38 60 00 04 */ li r3, 4
+/* 80321FC8 0031DC28 38 A0 00 00 */ li r5, 0
+/* 80321FCC 0031DC2C 4B FF A9 BD */ bl DWC_Free
+/* 80321FD0 0031DC30 38 00 00 00 */ li r0, 0
+/* 80321FD4 0031DC34 90 0D B0 58 */ stw r0, lbl_80640318-_SDA_BASE_(r13)
+lbl_80321FD8:
+/* 80321FD8 0031DC38 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80321FDC 0031DC3C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80321FE0 0031DC40 7C 08 03 A6 */ mtlr r0
+/* 80321FE4 0031DC44 38 21 00 10 */ addi r1, r1, 0x10
+/* 80321FE8 0031DC48 4E 80 00 20 */ blr
+
+.global DWC_ProcessFriendsMatch
+DWC_ProcessFriendsMatch:
+/* 80321FEC 0031DC4C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80321FF0 0031DC50 7C 08 02 A6 */ mflr r0
+/* 80321FF4 0031DC54 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80321FF8 0031DC58 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80321FFC 0031DC5C 2C 03 00 00 */ cmpwi r3, 0
+/* 80322000 0031DC60 41 82 02 50 */ beq lbl_80322250
+/* 80322004 0031DC64 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 80322008 0031DC68 2C 00 00 00 */ cmpwi r0, 0
+/* 8032200C 0031DC6C 41 82 02 44 */ beq lbl_80322250
+/* 80322010 0031DC70 4B FF A5 5D */ bl DWCi_IsError
+/* 80322014 0031DC74 2C 03 00 00 */ cmpwi r3, 0
+/* 80322018 0031DC78 41 82 00 08 */ beq lbl_80322020
+/* 8032201C 0031DC7C 48 00 02 34 */ b lbl_80322250
+lbl_80322020:
+/* 80322020 0031DC80 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322024 0031DC84 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 80322028 0031DC88 2C 00 00 05 */ cmpwi r0, 5
+/* 8032202C 0031DC8C 41 82 01 98 */ beq lbl_803221C4
+/* 80322030 0031DC90 40 80 00 1C */ bge lbl_8032204C
+/* 80322034 0031DC94 2C 00 00 02 */ cmpwi r0, 2
+/* 80322038 0031DC98 41 82 01 74 */ beq lbl_803221AC
+/* 8032203C 0031DC9C 40 80 01 78 */ bge lbl_803221B4
+/* 80322040 0031DCA0 2C 00 00 01 */ cmpwi r0, 1
+/* 80322044 0031DCA4 40 80 00 14 */ bge lbl_80322058
+/* 80322048 0031DCA8 48 00 01 D0 */ b lbl_80322218
+lbl_8032204C:
+/* 8032204C 0031DCAC 2C 00 00 07 */ cmpwi r0, 7
+/* 80322050 0031DCB0 40 80 01 C8 */ bge lbl_80322218
+/* 80322054 0031DCB4 48 00 01 80 */ b lbl_803221D4
+lbl_80322058:
+/* 80322058 0031DCB8 48 01 74 7D */ bl GSIAvailableCheckThink
+/* 8032205C 0031DCBC 2C 03 00 02 */ cmpwi r3, 2
+/* 80322060 0031DCC0 41 82 01 2C */ beq lbl_8032218C
+/* 80322064 0031DCC4 40 80 00 10 */ bge lbl_80322074
+/* 80322068 0031DCC8 2C 03 00 01 */ cmpwi r3, 1
+/* 8032206C 0031DCCC 40 80 00 14 */ bge lbl_80322080
+/* 80322070 0031DCD0 48 00 01 A8 */ b lbl_80322218
+lbl_80322074:
+/* 80322074 0031DCD4 2C 03 00 04 */ cmpwi r3, 4
+/* 80322078 0031DCD8 40 80 01 A0 */ bge lbl_80322218
+/* 8032207C 0031DCDC 48 00 01 20 */ b lbl_8032219C
+lbl_80322080:
+/* 80322080 0031DCE0 3C 80 80 44 */ lis r4, lbl_804476AC@ha
+/* 80322084 0031DCE4 38 60 00 10 */ li r3, 0x10
+/* 80322088 0031DCE8 38 84 76 AC */ addi r4, r4, lbl_804476AC@l
+/* 8032208C 0031DCEC 4C C6 31 82 */ crclr 6
+/* 80322090 0031DCF0 4B FF AA A5 */ bl DWC_Printf
+/* 80322094 0031DCF4 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322098 0031DCF8 38 A0 00 10 */ li r5, 0x10
+/* 8032209C 0031DCFC 38 C0 00 0B */ li r6, 0xb
+/* 803220A0 0031DD00 80 83 00 A0 */ lwz r4, 0xa0(r3)
+/* 803220A4 0031DD04 38 63 00 1C */ addi r3, r3, 0x1c
+/* 803220A8 0031DD08 48 01 AD 45 */ bl gpInitialize
+/* 803220AC 0031DD0C 48 00 11 E1 */ bl DWCi_HandleGPError
+/* 803220B0 0031DD10 2C 03 00 00 */ cmpwi r3, 0
+/* 803220B4 0031DD14 40 82 01 9C */ bne lbl_80322250
+/* 803220B8 0031DD18 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803220BC 0031DD1C 3C A0 80 32 */ lis r5, DWCi_GPErrorCallback@ha
+/* 803220C0 0031DD20 38 A5 38 34 */ addi r5, r5, DWCi_GPErrorCallback@l
+/* 803220C4 0031DD24 38 80 00 00 */ li r4, 0
+/* 803220C8 0031DD28 38 63 00 1C */ addi r3, r3, 0x1c
+/* 803220CC 0031DD2C 38 C0 00 00 */ li r6, 0
+/* 803220D0 0031DD30 48 01 AD A5 */ bl gpSetCallback
+/* 803220D4 0031DD34 48 00 11 B9 */ bl DWCi_HandleGPError
+/* 803220D8 0031DD38 2C 03 00 00 */ cmpwi r3, 0
+/* 803220DC 0031DD3C 40 82 01 74 */ bne lbl_80322250
+/* 803220E0 0031DD40 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803220E4 0031DD44 3C A0 80 32 */ lis r5, DWCi_GPRecvBuddyMessageCallback@ha
+/* 803220E8 0031DD48 38 A5 3C A4 */ addi r5, r5, DWCi_GPRecvBuddyMessageCallback@l
+/* 803220EC 0031DD4C 38 80 00 03 */ li r4, 3
+/* 803220F0 0031DD50 38 63 00 1C */ addi r3, r3, 0x1c
+/* 803220F4 0031DD54 38 C0 00 00 */ li r6, 0
+/* 803220F8 0031DD58 48 01 AD 7D */ bl gpSetCallback
+/* 803220FC 0031DD5C 48 00 11 91 */ bl DWCi_HandleGPError
+/* 80322100 0031DD60 2C 03 00 00 */ cmpwi r3, 0
+/* 80322104 0031DD64 40 82 01 4C */ bne lbl_80322250
+/* 80322108 0031DD68 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 8032210C 0031DD6C 3C A0 80 32 */ lis r5, DWCi_GPRecvBuddyRequestCallback@ha
+/* 80322110 0031DD70 38 A5 F8 88 */ addi r5, r5, DWCi_GPRecvBuddyRequestCallback@l
+/* 80322114 0031DD74 38 80 00 01 */ li r4, 1
+/* 80322118 0031DD78 38 63 00 1C */ addi r3, r3, 0x1c
+/* 8032211C 0031DD7C 38 C0 00 00 */ li r6, 0
+/* 80322120 0031DD80 48 01 AD 55 */ bl gpSetCallback
+/* 80322124 0031DD84 48 00 11 69 */ bl DWCi_HandleGPError
+/* 80322128 0031DD88 2C 03 00 00 */ cmpwi r3, 0
+/* 8032212C 0031DD8C 40 82 01 24 */ bne lbl_80322250
+/* 80322130 0031DD90 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322134 0031DD94 3C A0 80 32 */ lis r5, DWCi_GPRecvBuddyStatusCallback@ha
+/* 80322138 0031DD98 38 A5 F9 C0 */ addi r5, r5, DWCi_GPRecvBuddyStatusCallback@l
+/* 8032213C 0031DD9C 38 80 00 02 */ li r4, 2
+/* 80322140 0031DDA0 38 63 00 1C */ addi r3, r3, 0x1c
+/* 80322144 0031DDA4 38 C0 00 00 */ li r6, 0
+/* 80322148 0031DDA8 48 01 AD 2D */ bl gpSetCallback
+/* 8032214C 0031DDAC 48 00 11 41 */ bl DWCi_HandleGPError
+/* 80322150 0031DDB0 2C 03 00 00 */ cmpwi r3, 0
+/* 80322154 0031DDB4 40 82 00 FC */ bne lbl_80322250
+/* 80322158 0031DDB8 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 8032215C 0031DDBC 38 00 00 02 */ li r0, 2
+/* 80322160 0031DDC0 80 64 00 24 */ lwz r3, 0x24(r4)
+/* 80322164 0031DDC4 90 64 00 28 */ stw r3, 0x28(r4)
+/* 80322168 0031DDC8 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 8032216C 0031DDCC 90 03 00 24 */ stw r0, 0x24(r3)
+/* 80322170 0031DDD0 4B FF EE 7D */ bl DWCi_LoginAsync
+/* 80322174 0031DDD4 2C 03 00 00 */ cmpwi r3, 0
+/* 80322178 0031DDD8 40 82 00 A0 */ bne lbl_80322218
+/* 8032217C 0031DDDC 38 60 00 02 */ li r3, 2
+/* 80322180 0031DDE0 38 80 B1 7C */ li r4, -20100
+/* 80322184 0031DDE4 4B FF F0 4D */ bl DWCi_StopLogin
+/* 80322188 0031DDE8 48 00 00 90 */ b lbl_80322218
+lbl_8032218C:
+/* 8032218C 0031DDEC 38 60 00 03 */ li r3, 3
+/* 80322190 0031DDF0 38 80 B1 72 */ li r4, -20110
+/* 80322194 0031DDF4 4B FF F0 3D */ bl DWCi_StopLogin
+/* 80322198 0031DDF8 48 00 00 B8 */ b lbl_80322250
+lbl_8032219C:
+/* 8032219C 0031DDFC 38 60 00 04 */ li r3, 4
+/* 803221A0 0031DE00 38 80 B1 7B */ li r4, -20101
+/* 803221A4 0031DE04 4B FF F0 2D */ bl DWCi_StopLogin
+/* 803221A8 0031DE08 48 00 00 A8 */ b lbl_80322250
+lbl_803221AC:
+/* 803221AC 0031DE0C 4B FF EE 8D */ bl DWCi_LoginProcess
+/* 803221B0 0031DE10 48 00 00 68 */ b lbl_80322218
+lbl_803221B4:
+/* 803221B4 0031DE14 4B FF D3 C9 */ bl DWCi_FriendProcess
+/* 803221B8 0031DE18 38 60 00 00 */ li r3, 0
+/* 803221BC 0031DE1C 48 00 32 ED */ bl func_803254A8
+/* 803221C0 0031DE20 48 00 00 58 */ b lbl_80322218
+lbl_803221C4:
+/* 803221C4 0031DE24 38 60 00 01 */ li r3, 1
+/* 803221C8 0031DE28 48 00 32 E1 */ bl func_803254A8
+/* 803221CC 0031DE2C 4B FF D3 B1 */ bl DWCi_FriendProcess
+/* 803221D0 0031DE30 48 00 00 48 */ b lbl_80322218
+lbl_803221D4:
+/* 803221D4 0031DE34 48 00 EF ED */ bl func_803311C0
+/* 803221D8 0031DE38 4B FF D3 A5 */ bl DWCi_FriendProcess
+/* 803221DC 0031DE3C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803221E0 0031DE40 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 803221E4 0031DE44 28 00 00 02 */ cmplwi r0, 2
+/* 803221E8 0031DE48 41 82 00 10 */ beq lbl_803221F8
+/* 803221EC 0031DE4C 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 803221F0 0031DE50 28 00 00 03 */ cmplwi r0, 3
+/* 803221F4 0031DE54 40 82 00 10 */ bne lbl_80322204
+lbl_803221F8:
+/* 803221F8 0031DE58 38 60 00 01 */ li r3, 1
+/* 803221FC 0031DE5C 48 00 32 AD */ bl func_803254A8
+/* 80322200 0031DE60 48 00 00 18 */ b lbl_80322218
+lbl_80322204:
+/* 80322204 0031DE64 80 03 00 00 */ lwz r0, 0(r3)
+/* 80322208 0031DE68 2C 00 00 00 */ cmpwi r0, 0
+/* 8032220C 0031DE6C 41 82 00 0C */ beq lbl_80322218
+/* 80322210 0031DE70 38 60 00 00 */ li r3, 0
+/* 80322214 0031DE74 48 00 32 95 */ bl func_803254A8
+lbl_80322218:
+/* 80322218 0031DE78 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 8032221C 0031DE7C 88 03 03 78 */ lbz r0, 0x378(r3)
+/* 80322220 0031DE80 28 00 00 01 */ cmplwi r0, 1
+/* 80322224 0031DE84 40 82 00 2C */ bne lbl_80322250
+/* 80322228 0031DE88 80 63 03 70 */ lwz r3, 0x370(r3)
+/* 8032222C 0031DE8C 2C 03 00 00 */ cmpwi r3, 0
+/* 80322230 0031DE90 41 82 00 14 */ beq lbl_80322244
+/* 80322234 0031DE94 48 02 C4 01 */ bl qr2_shutdown
+/* 80322238 0031DE98 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 8032223C 0031DE9C 38 00 00 00 */ li r0, 0
+/* 80322240 0031DEA0 90 03 03 70 */ stw r0, 0x370(r3)
+lbl_80322244:
+/* 80322244 0031DEA4 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322248 0031DEA8 38 00 00 00 */ li r0, 0
+/* 8032224C 0031DEAC 98 03 03 78 */ stb r0, 0x378(r3)
+lbl_80322250:
+/* 80322250 0031DEB0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80322254 0031DEB4 7C 08 03 A6 */ mtlr r0
+/* 80322258 0031DEB8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8032225C 0031DEBC 4E 80 00 20 */ blr
+
+.global DWC_LoginAsync
+DWC_LoginAsync:
+/* 80322260 0031DEC0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80322264 0031DEC4 7C 08 02 A6 */ mflr r0
+/* 80322268 0031DEC8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8032226C 0031DECC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80322270 0031DED0 3F E0 80 44 */ lis r31, lbl_80447648@ha
+/* 80322274 0031DED4 3B FF 76 48 */ addi r31, r31, lbl_80447648@l
+/* 80322278 0031DED8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8032227C 0031DEDC 7C DE 33 78 */ mr r30, r6
+/* 80322280 0031DEE0 38 9F 00 90 */ addi r4, r31, 0x90
+/* 80322284 0031DEE4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80322288 0031DEE8 7C BD 2B 78 */ mr r29, r5
+/* 8032228C 0031DEEC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80322290 0031DEF0 7C 7C 1B 78 */ mr r28, r3
+/* 80322294 0031DEF4 38 60 00 04 */ li r3, 4
+/* 80322298 0031DEF8 4C C6 31 82 */ crclr 6
+/* 8032229C 0031DEFC 4B FF A8 99 */ bl DWC_Printf
+/* 803222A0 0031DF00 2C 1C 00 00 */ cmpwi r28, 0
+/* 803222A4 0031DF04 40 82 00 1C */ bne lbl_803222C0
+/* 803222A8 0031DF08 38 9F 00 B4 */ addi r4, r31, 0xb4
+/* 803222AC 0031DF0C 38 60 00 08 */ li r3, 8
+/* 803222B0 0031DF10 4C C6 31 82 */ crclr 6
+/* 803222B4 0031DF14 4B FF A8 81 */ bl DWC_Printf
+/* 803222B8 0031DF18 38 60 00 00 */ li r3, 0
+/* 803222BC 0031DF1C 48 00 00 E8 */ b lbl_803223A4
+lbl_803222C0:
+/* 803222C0 0031DF20 4B FF A2 AD */ bl DWCi_IsError
+/* 803222C4 0031DF24 2C 03 00 00 */ cmpwi r3, 0
+/* 803222C8 0031DF28 40 82 00 14 */ bne lbl_803222DC
+/* 803222CC 0031DF2C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803222D0 0031DF30 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 803222D4 0031DF34 2C 00 00 00 */ cmpwi r0, 0
+/* 803222D8 0031DF38 41 82 00 1C */ beq lbl_803222F4
+lbl_803222DC:
+/* 803222DC 0031DF3C 38 9F 00 C8 */ addi r4, r31, 0xc8
+/* 803222E0 0031DF40 38 60 00 04 */ li r3, 4
+/* 803222E4 0031DF44 4C C6 31 82 */ crclr 6
+/* 803222E8 0031DF48 4B FF A8 4D */ bl DWC_Printf
+/* 803222EC 0031DF4C 38 60 00 00 */ li r3, 0
+/* 803222F0 0031DF50 48 00 00 B4 */ b lbl_803223A4
+lbl_803222F4:
+/* 803222F4 0031DF54 93 A3 00 70 */ stw r29, 0x70(r3)
+/* 803222F8 0031DF58 2C 1C 00 00 */ cmpwi r28, 0
+/* 803222FC 0031DF5C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322300 0031DF60 93 C3 00 74 */ stw r30, 0x74(r3)
+/* 80322304 0031DF64 41 82 00 10 */ beq lbl_80322314
+/* 80322308 0031DF68 A0 1C 00 00 */ lhz r0, 0(r28)
+/* 8032230C 0031DF6C 2C 00 00 00 */ cmpwi r0, 0
+/* 80322310 0031DF70 40 82 00 0C */ bne lbl_8032231C
+lbl_80322314:
+/* 80322314 0031DF74 3B E0 00 00 */ li r31, 0
+/* 80322318 0031DF78 48 00 00 50 */ b lbl_80322368
+lbl_8032231C:
+/* 8032231C 0031DF7C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322320 0031DF80 38 80 00 00 */ li r4, 0
+/* 80322324 0031DF84 38 A0 00 34 */ li r5, 0x34
+/* 80322328 0031DF88 38 63 00 2E */ addi r3, r3, 0x2e
+/* 8032232C 0031DF8C 4B CE 1D D9 */ bl memset
+/* 80322330 0031DF90 7F 83 E3 78 */ mr r3, r28
+/* 80322334 0031DF94 4B FF CE 41 */ bl DWCi_WStrLen
+/* 80322338 0031DF98 28 03 00 19 */ cmplwi r3, 0x19
+/* 8032233C 0031DF9C 41 81 00 10 */ bgt lbl_8032234C
+/* 80322340 0031DFA0 7F 83 E3 78 */ mr r3, r28
+/* 80322344 0031DFA4 4B FF CE 31 */ bl DWCi_WStrLen
+/* 80322348 0031DFA8 48 00 00 08 */ b lbl_80322350
+lbl_8032234C:
+/* 8032234C 0031DFAC 38 60 00 19 */ li r3, 0x19
+lbl_80322350:
+/* 80322350 0031DFB0 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80322354 0031DFB4 7C 7F 1B 78 */ mr r31, r3
+/* 80322358 0031DFB8 54 65 08 3C */ slwi r5, r3, 1
+/* 8032235C 0031DFBC 7F 84 E3 78 */ mr r4, r28
+/* 80322360 0031DFC0 38 66 00 2E */ addi r3, r6, 0x2e
+/* 80322364 0031DFC4 4B CE 1C 9D */ bl memcpy
+lbl_80322368:
+/* 80322368 0031DFC8 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 8032236C 0031DFCC 57 E3 08 3C */ slwi r3, r31, 1
+/* 80322370 0031DFD0 38 A0 00 00 */ li r5, 0
+/* 80322374 0031DFD4 38 00 00 01 */ li r0, 1
+/* 80322378 0031DFD8 7C 64 1A 14 */ add r3, r4, r3
+/* 8032237C 0031DFDC B0 A3 00 2E */ sth r5, 0x2e(r3)
+/* 80322380 0031DFE0 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80322384 0031DFE4 80 64 00 24 */ lwz r3, 0x24(r4)
+/* 80322388 0031DFE8 90 64 00 28 */ stw r3, 0x28(r4)
+/* 8032238C 0031DFEC 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322390 0031DFF0 90 03 00 24 */ stw r0, 0x24(r3)
+/* 80322394 0031DFF4 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322398 0031DFF8 80 63 00 68 */ lwz r3, 0x68(r3)
+/* 8032239C 0031DFFC 48 01 6F BD */ bl GSIStartAvailableCheckA
+/* 803223A0 0031E000 38 60 00 01 */ li r3, 1
+lbl_803223A4:
+/* 803223A4 0031E004 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803223A8 0031E008 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803223AC 0031E00C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803223B0 0031E010 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 803223B4 0031E014 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 803223B8 0031E018 7C 08 03 A6 */ mtlr r0
+/* 803223BC 0031E01C 38 21 00 20 */ addi r1, r1, 0x20
+/* 803223C0 0031E020 4E 80 00 20 */ blr
+
+.global DWC_UpdateServersAsync
+DWC_UpdateServersAsync:
+/* 803223C4 0031E024 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803223C8 0031E028 7C 08 02 A6 */ mflr r0
+/* 803223CC 0031E02C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803223D0 0031E030 39 61 00 20 */ addi r11, r1, 0x20
+/* 803223D4 0031E034 4B EA 4D 51 */ bl _savegpr_26
+/* 803223D8 0031E038 3C 60 80 44 */ lis r3, lbl_80447720@ha
+/* 803223DC 0031E03C 7C 9A 23 78 */ mr r26, r4
+/* 803223E0 0031E040 38 83 77 20 */ addi r4, r3, lbl_80447720@l
+/* 803223E4 0031E044 7C BB 2B 78 */ mr r27, r5
+/* 803223E8 0031E048 7C DC 33 78 */ mr r28, r6
+/* 803223EC 0031E04C 7C FD 3B 78 */ mr r29, r7
+/* 803223F0 0031E050 7D 1E 43 78 */ mr r30, r8
+/* 803223F4 0031E054 7D 3F 4B 78 */ mr r31, r9
+/* 803223F8 0031E058 38 60 00 04 */ li r3, 4
+/* 803223FC 0031E05C 4C C6 31 82 */ crclr 6
+/* 80322400 0031E060 4B FF A7 35 */ bl DWC_Printf
+/* 80322404 0031E064 4B FF A1 69 */ bl DWCi_IsError
+/* 80322408 0031E068 2C 03 00 00 */ cmpwi r3, 0
+/* 8032240C 0031E06C 40 82 00 1C */ bne lbl_80322428
+/* 80322410 0031E070 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322414 0031E074 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 80322418 0031E078 2C 00 00 03 */ cmpwi r0, 3
+/* 8032241C 0031E07C 41 80 00 0C */ blt lbl_80322428
+/* 80322420 0031E080 2C 00 00 04 */ cmpwi r0, 4
+/* 80322424 0031E084 40 82 00 20 */ bne lbl_80322444
+lbl_80322428:
+/* 80322428 0031E088 3C 80 80 44 */ lis r4, lbl_80447710@ha
+/* 8032242C 0031E08C 38 60 00 04 */ li r3, 4
+/* 80322430 0031E090 38 84 77 10 */ addi r4, r4, lbl_80447710@l
+/* 80322434 0031E094 4C C6 31 82 */ crclr 6
+/* 80322438 0031E098 4B FF A6 FD */ bl DWC_Printf
+/* 8032243C 0031E09C 38 60 00 00 */ li r3, 0
+/* 80322440 0031E0A0 48 00 00 58 */ b lbl_80322498
+lbl_80322444:
+/* 80322444 0031E0A4 93 43 00 78 */ stw r26, 0x78(r3)
+/* 80322448 0031E0A8 3C A0 80 32 */ lis r5, DWCi_UpdateServersCallback@ha
+/* 8032244C 0031E0AC 38 00 00 04 */ li r0, 4
+/* 80322450 0031E0B0 7F 87 E3 78 */ mr r7, r28
+/* 80322454 0031E0B4 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322458 0031E0B8 7F A8 EB 78 */ mr r8, r29
+/* 8032245C 0031E0BC 7F C9 F3 78 */ mr r9, r30
+/* 80322460 0031E0C0 7F EA FB 78 */ mr r10, r31
+/* 80322464 0031E0C4 93 63 00 7C */ stw r27, 0x7c(r3)
+/* 80322468 0031E0C8 38 A5 35 74 */ addi r5, r5, DWCi_UpdateServersCallback@l
+/* 8032246C 0031E0CC 38 C0 00 00 */ li r6, 0
+/* 80322470 0031E0D0 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80322474 0031E0D4 80 64 00 24 */ lwz r3, 0x24(r4)
+/* 80322478 0031E0D8 90 64 00 28 */ stw r3, 0x28(r4)
+/* 8032247C 0031E0DC 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322480 0031E0E0 90 03 00 24 */ stw r0, 0x24(r3)
+/* 80322484 0031E0E4 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80322488 0031E0E8 38 64 00 E4 */ addi r3, r4, 0xe4
+/* 8032248C 0031E0EC 38 84 01 E4 */ addi r4, r4, 0x1e4
+/* 80322490 0031E0F0 4B FF D2 D1 */ bl DWCi_UpdateServersAsync
+/* 80322494 0031E0F4 38 60 00 01 */ li r3, 1
+lbl_80322498:
+/* 80322498 0031E0F8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8032249C 0031E0FC 4B EA 4C D5 */ bl _restgpr_26
+/* 803224A0 0031E100 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803224A4 0031E104 7C 08 03 A6 */ mtlr r0
+/* 803224A8 0031E108 38 21 00 20 */ addi r1, r1, 0x20
+/* 803224AC 0031E10C 4E 80 00 20 */ blr
+
+.global DWC_ConnectToAnybodyAsync
+DWC_ConnectToAnybodyAsync:
+/* 803224B0 0031E110 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803224B4 0031E114 7C 08 02 A6 */ mflr r0
+/* 803224B8 0031E118 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803224BC 0031E11C 39 61 00 20 */ addi r11, r1, 0x20
+/* 803224C0 0031E120 4B EA 4C 65 */ bl _savegpr_26
+/* 803224C4 0031E124 3D 20 80 44 */ lis r9, lbl_8044774C@ha
+/* 803224C8 0031E128 7C 7A 1B 78 */ mr r26, r3
+/* 803224CC 0031E12C 7C 9B 23 78 */ mr r27, r4
+/* 803224D0 0031E130 7C BC 2B 78 */ mr r28, r5
+/* 803224D4 0031E134 7C DD 33 78 */ mr r29, r6
+/* 803224D8 0031E138 7C FE 3B 78 */ mr r30, r7
+/* 803224DC 0031E13C 7D 1F 43 78 */ mr r31, r8
+/* 803224E0 0031E140 38 89 77 4C */ addi r4, r9, lbl_8044774C@l
+/* 803224E4 0031E144 38 60 00 04 */ li r3, 4
+/* 803224E8 0031E148 4C C6 31 82 */ crclr 6
+/* 803224EC 0031E14C 4B FF A6 49 */ bl DWC_Printf
+/* 803224F0 0031E150 4B FF A0 7D */ bl DWCi_IsError
+/* 803224F4 0031E154 2C 03 00 00 */ cmpwi r3, 0
+/* 803224F8 0031E158 40 82 00 14 */ bne lbl_8032250C
+/* 803224FC 0031E15C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322500 0031E160 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 80322504 0031E164 2C 00 00 03 */ cmpwi r0, 3
+/* 80322508 0031E168 41 82 00 20 */ beq lbl_80322528
+lbl_8032250C:
+/* 8032250C 0031E16C 3C 80 80 44 */ lis r4, lbl_80447710@ha
+/* 80322510 0031E170 38 60 00 04 */ li r3, 4
+/* 80322514 0031E174 38 84 77 10 */ addi r4, r4, lbl_80447710@l
+/* 80322518 0031E178 4C C6 31 82 */ crclr 6
+/* 8032251C 0031E17C 4B FF A6 19 */ bl DWC_Printf
+/* 80322520 0031E180 38 60 00 00 */ li r3, 0
+/* 80322524 0031E184 48 00 00 7C */ b lbl_803225A0
+lbl_80322528:
+/* 80322528 0031E188 3C 60 80 61 */ lis r3, lbl_8060FC08@ha
+/* 8032252C 0031E18C 38 80 00 00 */ li r4, 0
+/* 80322530 0031E190 38 63 FC 08 */ addi r3, r3, lbl_8060FC08@l
+/* 80322534 0031E194 38 A0 00 80 */ li r5, 0x80
+/* 80322538 0031E198 4B CE 1B CD */ bl memset
+/* 8032253C 0031E19C 3C 60 80 61 */ lis r3, lbl_8060FC88@ha
+/* 80322540 0031E1A0 38 80 00 00 */ li r4, 0
+/* 80322544 0031E1A4 38 63 FC 88 */ addi r3, r3, lbl_8060FC88@l
+/* 80322548 0031E1A8 38 A0 01 00 */ li r5, 0x100
+/* 8032254C 0031E1AC 4B CE 1B B9 */ bl memset
+/* 80322550 0031E1B0 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322554 0031E1B4 3C A0 80 32 */ lis r5, DWCi_MatchedCallback@ha
+/* 80322558 0031E1B8 38 1A FF FF */ addi r0, r26, -1
+/* 8032255C 0031E1BC 39 40 00 05 */ li r10, 5
+/* 80322560 0031E1C0 93 83 00 80 */ stw r28, 0x80(r3)
+/* 80322564 0031E1C4 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 80322568 0031E1C8 7F 64 DB 78 */ mr r4, r27
+/* 8032256C 0031E1CC 7F C7 F3 78 */ mr r7, r30
+/* 80322570 0031E1D0 81 2D B0 58 */ lwz r9, lbl_80640318-_SDA_BASE_(r13)
+/* 80322574 0031E1D4 7F E8 FB 78 */ mr r8, r31
+/* 80322578 0031E1D8 38 A5 35 A8 */ addi r5, r5, DWCi_MatchedCallback@l
+/* 8032257C 0031E1DC 38 C0 00 00 */ li r6, 0
+/* 80322580 0031E1E0 93 A9 00 84 */ stw r29, 0x84(r9)
+/* 80322584 0031E1E4 81 2D B0 58 */ lwz r9, lbl_80640318-_SDA_BASE_(r13)
+/* 80322588 0031E1E8 80 09 00 24 */ lwz r0, 0x24(r9)
+/* 8032258C 0031E1EC 90 09 00 28 */ stw r0, 0x28(r9)
+/* 80322590 0031E1F0 81 2D B0 58 */ lwz r9, lbl_80640318-_SDA_BASE_(r13)
+/* 80322594 0031E1F4 91 49 00 24 */ stw r10, 0x24(r9)
+/* 80322598 0031E1F8 48 00 27 7D */ bl func_80324D14
+/* 8032259C 0031E1FC 38 60 00 01 */ li r3, 1
+lbl_803225A0:
+/* 803225A0 0031E200 39 61 00 20 */ addi r11, r1, 0x20
+/* 803225A4 0031E204 4B EA 4B CD */ bl _restgpr_26
+/* 803225A8 0031E208 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803225AC 0031E20C 7C 08 03 A6 */ mtlr r0
+/* 803225B0 0031E210 38 21 00 20 */ addi r1, r1, 0x20
+/* 803225B4 0031E214 4E 80 00 20 */ blr
+
+.global DWC_SetupGameServer
+DWC_SetupGameServer:
+/* 803225B8 0031E218 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803225BC 0031E21C 7C 08 02 A6 */ mflr r0
+/* 803225C0 0031E220 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803225C4 0031E224 39 61 00 20 */ addi r11, r1, 0x20
+/* 803225C8 0031E228 4B EA 4B 61 */ bl _savegpr_27
+/* 803225CC 0031E22C 3D 00 80 44 */ lis r8, lbl_804477A4@ha
+/* 803225D0 0031E230 7C 7B 1B 78 */ mr r27, r3
+/* 803225D4 0031E234 7C 9C 23 78 */ mr r28, r4
+/* 803225D8 0031E238 7C BD 2B 78 */ mr r29, r5
+/* 803225DC 0031E23C 7C DE 33 78 */ mr r30, r6
+/* 803225E0 0031E240 7C FF 3B 78 */ mr r31, r7
+/* 803225E4 0031E244 38 88 77 A4 */ addi r4, r8, lbl_804477A4@l
+/* 803225E8 0031E248 38 60 00 04 */ li r3, 4
+/* 803225EC 0031E24C 4C C6 31 82 */ crclr 6
+/* 803225F0 0031E250 4B FF A5 45 */ bl DWC_Printf
+/* 803225F4 0031E254 4B FF 9F 79 */ bl DWCi_IsError
+/* 803225F8 0031E258 2C 03 00 00 */ cmpwi r3, 0
+/* 803225FC 0031E25C 40 82 00 14 */ bne lbl_80322610
+/* 80322600 0031E260 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322604 0031E264 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 80322608 0031E268 2C 00 00 03 */ cmpwi r0, 3
+/* 8032260C 0031E26C 41 82 00 20 */ beq lbl_8032262C
+lbl_80322610:
+/* 80322610 0031E270 3C 80 80 44 */ lis r4, lbl_80447710@ha
+/* 80322614 0031E274 38 60 00 04 */ li r3, 4
+/* 80322618 0031E278 38 84 77 10 */ addi r4, r4, lbl_80447710@l
+/* 8032261C 0031E27C 4C C6 31 82 */ crclr 6
+/* 80322620 0031E280 4B FF A5 15 */ bl DWC_Printf
+/* 80322624 0031E284 38 60 00 00 */ li r3, 0
+/* 80322628 0031E288 48 00 00 84 */ b lbl_803226AC
+lbl_8032262C:
+/* 8032262C 0031E28C 3C 60 80 61 */ lis r3, lbl_8060FC08@ha
+/* 80322630 0031E290 38 80 00 00 */ li r4, 0
+/* 80322634 0031E294 38 63 FC 08 */ addi r3, r3, lbl_8060FC08@l
+/* 80322638 0031E298 38 A0 00 80 */ li r5, 0x80
+/* 8032263C 0031E29C 4B CE 1A C9 */ bl memset
+/* 80322640 0031E2A0 3C 60 80 61 */ lis r3, lbl_8060FC88@ha
+/* 80322644 0031E2A4 38 80 00 00 */ li r4, 0
+/* 80322648 0031E2A8 38 63 FC 88 */ addi r3, r3, lbl_8060FC88@l
+/* 8032264C 0031E2AC 38 A0 01 00 */ li r5, 0x100
+/* 80322650 0031E2B0 4B CE 1A B5 */ bl memset
+/* 80322654 0031E2B4 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322658 0031E2B8 3C 80 80 32 */ lis r4, DWCi_MatchedCallback@ha
+/* 8032265C 0031E2BC 39 40 00 00 */ li r10, 0
+/* 80322660 0031E2C0 38 1B FF FF */ addi r0, r27, -1
+/* 80322664 0031E2C4 93 83 00 88 */ stw r28, 0x88(r3)
+/* 80322668 0031E2C8 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 8032266C 0031E2CC 39 20 00 05 */ li r9, 5
+/* 80322670 0031E2D0 7F C6 F3 78 */ mr r6, r30
+/* 80322674 0031E2D4 81 0D B0 58 */ lwz r8, lbl_80640318-_SDA_BASE_(r13)
+/* 80322678 0031E2D8 7F E7 FB 78 */ mr r7, r31
+/* 8032267C 0031E2DC 38 84 35 A8 */ addi r4, r4, DWCi_MatchedCallback@l
+/* 80322680 0031E2E0 38 A0 00 00 */ li r5, 0
+/* 80322684 0031E2E4 93 A8 00 8C */ stw r29, 0x8c(r8)
+/* 80322688 0031E2E8 81 0D B0 58 */ lwz r8, lbl_80640318-_SDA_BASE_(r13)
+/* 8032268C 0031E2EC 99 48 00 2C */ stb r10, 0x2c(r8)
+/* 80322690 0031E2F0 81 0D B0 58 */ lwz r8, lbl_80640318-_SDA_BASE_(r13)
+/* 80322694 0031E2F4 80 08 00 24 */ lwz r0, 0x24(r8)
+/* 80322698 0031E2F8 90 08 00 28 */ stw r0, 0x28(r8)
+/* 8032269C 0031E2FC 81 0D B0 58 */ lwz r8, lbl_80640318-_SDA_BASE_(r13)
+/* 803226A0 0031E300 91 28 00 24 */ stw r9, 0x24(r8)
+/* 803226A4 0031E304 48 00 2A 55 */ bl func_803250F8
+/* 803226A8 0031E308 38 60 00 01 */ li r3, 1
+lbl_803226AC:
+/* 803226AC 0031E30C 39 61 00 20 */ addi r11, r1, 0x20
+/* 803226B0 0031E310 4B EA 4A C5 */ bl _restgpr_27
+/* 803226B4 0031E314 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803226B8 0031E318 7C 08 03 A6 */ mtlr r0
+/* 803226BC 0031E31C 38 21 00 20 */ addi r1, r1, 0x20
+/* 803226C0 0031E320 4E 80 00 20 */ blr
+
+.global DWC_ConnectToGameServerAsync
+DWC_ConnectToGameServerAsync:
+/* 803226C4 0031E324 94 21 FD C0 */ stwu r1, -0x240(r1)
+/* 803226C8 0031E328 7C 08 02 A6 */ mflr r0
+/* 803226CC 0031E32C 90 01 02 44 */ stw r0, 0x244(r1)
+/* 803226D0 0031E330 39 61 02 40 */ addi r11, r1, 0x240
+/* 803226D4 0031E334 4B EA 4A 51 */ bl _savegpr_26
+/* 803226D8 0031E338 3F A0 80 44 */ lis r29, lbl_80447648@ha
+/* 803226DC 0031E33C 38 00 FF FF */ li r0, -1
+/* 803226E0 0031E340 90 01 00 0C */ stw r0, 0xc(r1)
+/* 803226E4 0031E344 3B BD 76 48 */ addi r29, r29, lbl_80447648@l
+/* 803226E8 0031E348 7C 7A 1B 78 */ mr r26, r3
+/* 803226EC 0031E34C 7C 9C 23 78 */ mr r28, r4
+/* 803226F0 0031E350 7C BB 2B 78 */ mr r27, r5
+/* 803226F4 0031E354 7C DE 33 78 */ mr r30, r6
+/* 803226F8 0031E358 7C FF 3B 78 */ mr r31, r7
+/* 803226FC 0031E35C 38 9D 01 84 */ addi r4, r29, 0x184
+/* 80322700 0031E360 38 60 00 04 */ li r3, 4
+/* 80322704 0031E364 4C C6 31 82 */ crclr 6
+/* 80322708 0031E368 4B FF A4 2D */ bl DWC_Printf
+/* 8032270C 0031E36C 4B FF 9E 61 */ bl DWCi_IsError
+/* 80322710 0031E370 2C 03 00 00 */ cmpwi r3, 0
+/* 80322714 0031E374 40 82 00 14 */ bne lbl_80322728
+/* 80322718 0031E378 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 8032271C 0031E37C 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 80322720 0031E380 2C 00 00 03 */ cmpwi r0, 3
+/* 80322724 0031E384 41 82 00 1C */ beq lbl_80322740
+lbl_80322728:
+/* 80322728 0031E388 38 9D 00 C8 */ addi r4, r29, 0xc8
+/* 8032272C 0031E38C 38 60 00 04 */ li r3, 4
+/* 80322730 0031E390 4C C6 31 82 */ crclr 6
+/* 80322734 0031E394 4B FF A4 01 */ bl DWC_Printf
+/* 80322738 0031E398 38 60 00 00 */ li r3, 0
+/* 8032273C 0031E39C 48 00 01 FC */ b lbl_80322938
+lbl_80322740:
+/* 80322740 0031E3A0 3C 60 80 61 */ lis r3, lbl_8060FC08@ha
+/* 80322744 0031E3A4 38 80 00 00 */ li r4, 0
+/* 80322748 0031E3A8 38 63 FC 08 */ addi r3, r3, lbl_8060FC08@l
+/* 8032274C 0031E3AC 38 A0 00 80 */ li r5, 0x80
+/* 80322750 0031E3B0 4B CE 19 B5 */ bl memset
+/* 80322754 0031E3B4 3C 60 80 61 */ lis r3, lbl_8060FC88@ha
+/* 80322758 0031E3B8 38 80 00 00 */ li r4, 0
+/* 8032275C 0031E3BC 38 63 FC 88 */ addi r3, r3, lbl_8060FC88@l
+/* 80322760 0031E3C0 38 A0 01 00 */ li r5, 0x100
+/* 80322764 0031E3C4 4B CE 19 A1 */ bl memset
+/* 80322768 0031E3C8 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 8032276C 0031E3CC 38 00 00 05 */ li r0, 5
+/* 80322770 0031E3D0 7F 43 D3 78 */ mr r3, r26
+/* 80322774 0031E3D4 93 84 00 88 */ stw r28, 0x88(r4)
+/* 80322778 0031E3D8 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 8032277C 0031E3DC 93 64 00 8C */ stw r27, 0x8c(r4)
+/* 80322780 0031E3E0 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80322784 0031E3E4 80 85 00 24 */ lwz r4, 0x24(r5)
+/* 80322788 0031E3E8 90 85 00 28 */ stw r4, 0x28(r5)
+/* 8032278C 0031E3EC 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80322790 0031E3F0 90 04 00 24 */ stw r0, 0x24(r4)
+/* 80322794 0031E3F4 4B FF D3 49 */ bl DWCi_GetProfileIDFromList
+/* 80322798 0031E3F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8032279C 0031E3FC 7C 7C 1B 78 */ mr r28, r3
+/* 803227A0 0031E400 41 82 00 1C */ beq lbl_803227BC
+/* 803227A4 0031E404 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803227A8 0031E408 7F 84 E3 78 */ mr r4, r28
+/* 803227AC 0031E40C 38 63 00 1C */ addi r3, r3, 0x1c
+/* 803227B0 0031E410 48 01 AF E5 */ bl gpIsBuddy
+/* 803227B4 0031E414 2C 03 00 00 */ cmpwi r3, 0
+/* 803227B8 0031E418 40 82 00 20 */ bne lbl_803227D8
+lbl_803227BC:
+/* 803227BC 0031E41C 7F 85 E3 78 */ mr r5, r28
+/* 803227C0 0031E420 38 9D 01 B4 */ addi r4, r29, 0x1b4
+/* 803227C4 0031E424 38 60 00 02 */ li r3, 2
+/* 803227C8 0031E428 4C C6 31 82 */ crclr 6
+/* 803227CC 0031E42C 4B FF A3 69 */ bl DWC_Printf
+/* 803227D0 0031E430 3B 80 00 0B */ li r28, 0xb
+/* 803227D4 0031E434 48 00 00 F4 */ b lbl_803228C8
+lbl_803227D8:
+/* 803227D8 0031E438 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803227DC 0031E43C 7F 84 E3 78 */ mr r4, r28
+/* 803227E0 0031E440 38 A1 00 0C */ addi r5, r1, 0xc
+/* 803227E4 0031E444 38 63 00 1C */ addi r3, r3, 0x1c
+/* 803227E8 0031E448 48 01 AF 15 */ bl gpGetBuddyIndex
+/* 803227EC 0031E44C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803227F0 0031E450 38 A1 00 10 */ addi r5, r1, 0x10
+/* 803227F4 0031E454 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 803227F8 0031E458 38 63 00 1C */ addi r3, r3, 0x1c
+/* 803227FC 0031E45C 48 01 AD B1 */ bl gpGetBuddyStatus
+/* 80322800 0031E460 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80322804 0031E464 2C 00 00 06 */ cmpwi r0, 6
+/* 80322808 0031E468 41 82 00 20 */ beq lbl_80322828
+/* 8032280C 0031E46C 7F 85 E3 78 */ mr r5, r28
+/* 80322810 0031E470 38 9D 01 CC */ addi r4, r29, 0x1cc
+/* 80322814 0031E474 38 60 00 02 */ li r3, 2
+/* 80322818 0031E478 4C C6 31 82 */ crclr 6
+/* 8032281C 0031E47C 4B FF A3 19 */ bl DWC_Printf
+/* 80322820 0031E480 3B 80 00 0B */ li r28, 0xb
+/* 80322824 0031E484 48 00 00 A4 */ b lbl_803228C8
+lbl_80322828:
+/* 80322828 0031E488 38 00 00 30 */ li r0, 0x30
+/* 8032282C 0031E48C 38 81 00 08 */ addi r4, r1, 8
+/* 80322830 0031E490 98 01 00 08 */ stb r0, 8(r1)
+/* 80322834 0031E494 38 A1 00 18 */ addi r5, r1, 0x18
+/* 80322838 0031E498 38 6D 8D 80 */ addi r3, r13, lbl_8063E040-_SDA_BASE_
+/* 8032283C 0031E49C 38 C0 00 2F */ li r6, 0x2f
+/* 80322840 0031E4A0 4B FF C6 95 */ bl DWC_GetCommonValueString
+/* 80322844 0031E4A4 38 61 00 08 */ addi r3, r1, 8
+/* 80322848 0031E4A8 38 80 00 00 */ li r4, 0
+/* 8032284C 0031E4AC 38 A0 00 0A */ li r5, 0xa
+/* 80322850 0031E4B0 4B EA DD 29 */ bl strtoul
+/* 80322854 0031E4B4 54 7B 06 3E */ clrlwi r27, r3, 0x18
+/* 80322858 0031E4B8 38 81 00 08 */ addi r4, r1, 8
+/* 8032285C 0031E4BC 38 A1 00 18 */ addi r5, r1, 0x18
+/* 80322860 0031E4C0 38 6D 8D 84 */ addi r3, r13, lbl_8063E044-_SDA_BASE_
+/* 80322864 0031E4C4 38 C0 00 2F */ li r6, 0x2f
+/* 80322868 0031E4C8 4B FF C6 6D */ bl DWC_GetCommonValueString
+/* 8032286C 0031E4CC 38 61 00 08 */ addi r3, r1, 8
+/* 80322870 0031E4D0 38 80 00 00 */ li r4, 0
+/* 80322874 0031E4D4 38 A0 00 0A */ li r5, 0xa
+/* 80322878 0031E4D8 4B EA DD 01 */ bl strtoul
+/* 8032287C 0031E4DC 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 80322880 0031E4E0 7C 00 D8 40 */ cmplw r0, r27
+/* 80322884 0031E4E4 40 82 00 20 */ bne lbl_803228A4
+/* 80322888 0031E4E8 7F 85 E3 78 */ mr r5, r28
+/* 8032288C 0031E4EC 38 9D 01 E8 */ addi r4, r29, 0x1e8
+/* 80322890 0031E4F0 38 60 00 02 */ li r3, 2
+/* 80322894 0031E4F4 4C C6 31 82 */ crclr 6
+/* 80322898 0031E4F8 4B FF A2 9D */ bl DWC_Printf
+/* 8032289C 0031E4FC 3B 80 00 0D */ li r28, 0xd
+/* 803228A0 0031E500 48 00 00 28 */ b lbl_803228C8
+lbl_803228A4:
+/* 803228A4 0031E504 3C 80 80 32 */ lis r4, DWCi_MatchedCallback@ha
+/* 803228A8 0031E508 7F 83 E3 78 */ mr r3, r28
+/* 803228AC 0031E50C 7F C6 F3 78 */ mr r6, r30
+/* 803228B0 0031E510 7F E7 FB 78 */ mr r7, r31
+/* 803228B4 0031E514 38 84 35 A8 */ addi r4, r4, DWCi_MatchedCallback@l
+/* 803228B8 0031E518 38 A0 00 00 */ li r5, 0
+/* 803228BC 0031E51C 48 00 2A 21 */ bl func_803252DC
+/* 803228C0 0031E520 38 60 00 01 */ li r3, 1
+/* 803228C4 0031E524 48 00 00 74 */ b lbl_80322938
+lbl_803228C8:
+/* 803228C8 0031E528 7F 83 E3 78 */ mr r3, r28
+/* 803228CC 0031E52C 38 80 00 00 */ li r4, 0
+/* 803228D0 0031E530 4B FF 9C B1 */ bl DWCi_SetError
+/* 803228D4 0031E534 80 ED B0 58 */ lwz r7, lbl_80640318-_SDA_BASE_(r13)
+/* 803228D8 0031E538 7F 83 E3 78 */ mr r3, r28
+/* 803228DC 0031E53C 38 80 00 00 */ li r4, 0
+/* 803228E0 0031E540 38 A0 00 01 */ li r5, 1
+/* 803228E4 0031E544 81 87 00 88 */ lwz r12, 0x88(r7)
+/* 803228E8 0031E548 38 C0 00 00 */ li r6, 0
+/* 803228EC 0031E54C 81 07 00 8C */ lwz r8, 0x8c(r7)
+/* 803228F0 0031E550 38 E0 00 00 */ li r7, 0
+/* 803228F4 0031E554 7D 89 03 A6 */ mtctr r12
+/* 803228F8 0031E558 4E 80 04 21 */ bctrl
+/* 803228FC 0031E55C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322900 0031E560 2C 03 00 00 */ cmpwi r3, 0
+/* 80322904 0031E564 41 82 00 30 */ beq lbl_80322934
+/* 80322908 0031E568 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 8032290C 0031E56C 2C 00 00 05 */ cmpwi r0, 5
+/* 80322910 0031E570 40 82 00 24 */ bne lbl_80322934
+/* 80322914 0031E574 90 03 00 28 */ stw r0, 0x28(r3)
+/* 80322918 0031E578 38 00 00 03 */ li r0, 3
+/* 8032291C 0031E57C 38 60 00 01 */ li r3, 1
+/* 80322920 0031E580 38 8D 8D 88 */ addi r4, r13, lbl_8063E048-_SDA_BASE_
+/* 80322924 0031E584 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80322928 0031E588 38 A0 00 00 */ li r5, 0
+/* 8032292C 0031E58C 90 06 00 24 */ stw r0, 0x24(r6)
+/* 80322930 0031E590 4B FF D3 21 */ bl DWCi_SetGPStatus
+lbl_80322934:
+/* 80322934 0031E594 38 60 00 01 */ li r3, 1
+lbl_80322938:
+/* 80322938 0031E598 39 61 02 40 */ addi r11, r1, 0x240
+/* 8032293C 0031E59C 4B EA 48 35 */ bl _restgpr_26
+/* 80322940 0031E5A0 80 01 02 44 */ lwz r0, 0x244(r1)
+/* 80322944 0031E5A4 7C 08 03 A6 */ mtlr r0
+/* 80322948 0031E5A8 38 21 02 40 */ addi r1, r1, 0x240
+/* 8032294C 0031E5AC 4E 80 00 20 */ blr
+
+.global DWC_SetConnectionClosedCallback
+DWC_SetConnectionClosedCallback:
+/* 80322950 0031E5B0 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80322954 0031E5B4 2C 05 00 00 */ cmpwi r5, 0
+/* 80322958 0031E5B8 40 82 00 0C */ bne lbl_80322964
+/* 8032295C 0031E5BC 38 60 00 00 */ li r3, 0
+/* 80322960 0031E5C0 4E 80 00 20 */ blr
+lbl_80322964:
+/* 80322964 0031E5C4 90 65 00 90 */ stw r3, 0x90(r5)
+/* 80322968 0031E5C8 38 60 00 01 */ li r3, 1
+/* 8032296C 0031E5CC 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80322970 0031E5D0 90 85 00 94 */ stw r4, 0x94(r5)
+/* 80322974 0031E5D4 4E 80 00 20 */ blr
+
+.global DWC_CloseAllConnectionsHard
+DWC_CloseAllConnectionsHard:
+/* 80322978 0031E5D8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8032297C 0031E5DC 7C 08 02 A6 */ mflr r0
+/* 80322980 0031E5E0 38 60 00 04 */ li r3, 4
+/* 80322984 0031E5E4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80322988 0031E5E8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8032298C 0031E5EC 3F E0 80 44 */ lis r31, lbl_80447648@ha
+/* 80322990 0031E5F0 3B FF 76 48 */ addi r31, r31, lbl_80447648@l
+/* 80322994 0031E5F4 38 9F 02 48 */ addi r4, r31, 0x248
+/* 80322998 0031E5F8 4C C6 31 82 */ crclr 6
+/* 8032299C 0031E5FC 4B FF A1 99 */ bl DWC_Printf
+/* 803229A0 0031E600 80 0D B0 58 */ lwz r0, lbl_80640318-_SDA_BASE_(r13)
+/* 803229A4 0031E604 2C 00 00 00 */ cmpwi r0, 0
+/* 803229A8 0031E608 41 82 00 28 */ beq lbl_803229D0
+/* 803229AC 0031E60C 4B FF 9B C1 */ bl DWCi_IsError
+/* 803229B0 0031E610 2C 03 00 00 */ cmpwi r3, 0
+/* 803229B4 0031E614 40 82 00 1C */ bne lbl_803229D0
+/* 803229B8 0031E618 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803229BC 0031E61C 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 803229C0 0031E620 2C 00 00 05 */ cmpwi r0, 5
+/* 803229C4 0031E624 41 82 00 24 */ beq lbl_803229E8
+/* 803229C8 0031E628 2C 00 00 06 */ cmpwi r0, 6
+/* 803229CC 0031E62C 41 82 00 1C */ beq lbl_803229E8
+lbl_803229D0:
+/* 803229D0 0031E630 38 9F 00 C8 */ addi r4, r31, 0xc8
+/* 803229D4 0031E634 38 60 00 04 */ li r3, 4
+/* 803229D8 0031E638 4C C6 31 82 */ crclr 6
+/* 803229DC 0031E63C 4B FF A1 59 */ bl DWC_Printf
+/* 803229E0 0031E640 38 60 FF FF */ li r3, -1
+/* 803229E4 0031E644 48 00 00 78 */ b lbl_80322A5C
+lbl_803229E8:
+/* 803229E8 0031E648 88 03 03 6D */ lbz r0, 0x36d(r3)
+/* 803229EC 0031E64C 2C 00 00 00 */ cmpwi r0, 0
+/* 803229F0 0031E650 40 82 00 48 */ bne lbl_80322A38
+/* 803229F4 0031E654 38 9F 02 30 */ addi r4, r31, 0x230
+/* 803229F8 0031E658 38 60 01 00 */ li r3, 0x100
+/* 803229FC 0031E65C 4C C6 31 82 */ crclr 6
+/* 80322A00 0031E660 4B FF A1 35 */ bl DWC_Printf
+/* 80322A04 0031E664 38 60 00 01 */ li r3, 1
+/* 80322A08 0031E668 38 8D 8D 88 */ addi r4, r13, lbl_8063E048-_SDA_BASE_
+/* 80322A0C 0031E66C 38 A0 00 00 */ li r5, 0
+/* 80322A10 0031E670 4B FF D2 41 */ bl DWCi_SetGPStatus
+/* 80322A14 0031E674 48 03 81 A1 */ bl NNFreeNegotiateList
+/* 80322A18 0031E678 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80322A1C 0031E67C 38 00 00 03 */ li r0, 3
+/* 80322A20 0031E680 38 60 00 01 */ li r3, 1
+/* 80322A24 0031E684 80 85 00 24 */ lwz r4, 0x24(r5)
+/* 80322A28 0031E688 90 85 00 28 */ stw r4, 0x28(r5)
+/* 80322A2C 0031E68C 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80322A30 0031E690 90 04 00 24 */ stw r0, 0x24(r4)
+/* 80322A34 0031E694 48 00 00 28 */ b lbl_80322A5C
+lbl_80322A38:
+/* 80322A38 0031E698 38 00 00 01 */ li r0, 1
+/* 80322A3C 0031E69C 98 03 00 2D */ stb r0, 0x2d(r3)
+/* 80322A40 0031E6A0 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322A44 0031E6A4 80 63 00 00 */ lwz r3, 0(r3)
+/* 80322A48 0031E6A8 48 02 73 29 */ bl gt2CloseAllConnectionsHard
+/* 80322A4C 0031E6AC 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80322A50 0031E6B0 38 00 00 00 */ li r0, 0
+/* 80322A54 0031E6B4 38 60 00 00 */ li r3, 0
+/* 80322A58 0031E6B8 98 04 00 2D */ stb r0, 0x2d(r4)
+lbl_80322A5C:
+/* 80322A5C 0031E6BC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80322A60 0031E6C0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80322A64 0031E6C4 7C 08 03 A6 */ mtlr r0
+/* 80322A68 0031E6C8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80322A6C 0031E6CC 4E 80 00 20 */ blr
+
+.global DWC_CloseConnectionHard
+DWC_CloseConnectionHard:
+/* 80322A70 0031E6D0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80322A74 0031E6D4 7C 08 02 A6 */ mflr r0
+/* 80322A78 0031E6D8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80322A7C 0031E6DC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80322A80 0031E6E0 3F E0 80 44 */ lis r31, lbl_80447648@ha
+/* 80322A84 0031E6E4 3B FF 76 48 */ addi r31, r31, lbl_80447648@l
+/* 80322A88 0031E6E8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80322A8C 0031E6EC 38 9F 02 78 */ addi r4, r31, 0x278
+/* 80322A90 0031E6F0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80322A94 0031E6F4 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80322A98 0031E6F8 7C 7C 1B 78 */ mr r28, r3
+/* 80322A9C 0031E6FC 38 60 00 04 */ li r3, 4
+/* 80322AA0 0031E700 7F 85 E3 78 */ mr r5, r28
+/* 80322AA4 0031E704 4C C6 31 82 */ crclr 6
+/* 80322AA8 0031E708 4B FF A0 8D */ bl DWC_Printf
+/* 80322AAC 0031E70C 80 0D B0 58 */ lwz r0, lbl_80640318-_SDA_BASE_(r13)
+/* 80322AB0 0031E710 2C 00 00 00 */ cmpwi r0, 0
+/* 80322AB4 0031E714 41 82 00 28 */ beq lbl_80322ADC
+/* 80322AB8 0031E718 4B FF 9A B5 */ bl DWCi_IsError
+/* 80322ABC 0031E71C 2C 03 00 00 */ cmpwi r3, 0
+/* 80322AC0 0031E720 40 82 00 1C */ bne lbl_80322ADC
+/* 80322AC4 0031E724 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322AC8 0031E728 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 80322ACC 0031E72C 2C 00 00 05 */ cmpwi r0, 5
+/* 80322AD0 0031E730 41 82 00 24 */ beq lbl_80322AF4
+/* 80322AD4 0031E734 2C 00 00 06 */ cmpwi r0, 6
+/* 80322AD8 0031E738 41 82 00 1C */ beq lbl_80322AF4
+lbl_80322ADC:
+/* 80322ADC 0031E73C 38 9F 00 C8 */ addi r4, r31, 0xc8
+/* 80322AE0 0031E740 38 60 00 04 */ li r3, 4
+/* 80322AE4 0031E744 4C C6 31 82 */ crclr 6
+/* 80322AE8 0031E748 4B FF A0 4D */ bl DWC_Printf
+/* 80322AEC 0031E74C 38 60 FF FF */ li r3, -1
+/* 80322AF0 0031E750 48 00 00 8C */ b lbl_80322B7C
+lbl_80322AF4:
+/* 80322AF4 0031E754 2C 03 00 00 */ cmpwi r3, 0
+/* 80322AF8 0031E758 40 82 00 0C */ bne lbl_80322B04
+/* 80322AFC 0031E75C 38 60 00 00 */ li r3, 0
+/* 80322B00 0031E760 48 00 00 54 */ b lbl_80322B54
+lbl_80322B04:
+/* 80322B04 0031E764 3F A0 80 61 */ lis r29, lbl_8060FC08@ha
+/* 80322B08 0031E768 3B C0 00 00 */ li r30, 0
+/* 80322B0C 0031E76C 3B BD FC 08 */ addi r29, r29, lbl_8060FC08@l
+lbl_80322B10:
+/* 80322B10 0031E770 80 7D 00 00 */ lwz r3, 0(r29)
+/* 80322B14 0031E774 2C 03 00 00 */ cmpwi r3, 0
+/* 80322B18 0031E778 41 82 00 28 */ beq lbl_80322B40
+/* 80322B1C 0031E77C 48 02 72 E5 */ bl gt2GetConnectionData
+/* 80322B20 0031E780 88 03 00 01 */ lbz r0, 1(r3)
+/* 80322B24 0031E784 7C 1C 00 40 */ cmplw r28, r0
+/* 80322B28 0031E788 40 82 00 18 */ bne lbl_80322B40
+/* 80322B2C 0031E78C 3C 60 80 61 */ lis r3, lbl_8060FC08@ha
+/* 80322B30 0031E790 57 C0 10 3A */ slwi r0, r30, 2
+/* 80322B34 0031E794 38 63 FC 08 */ addi r3, r3, lbl_8060FC08@l
+/* 80322B38 0031E798 7C 63 00 2E */ lwzx r3, r3, r0
+/* 80322B3C 0031E79C 48 00 00 18 */ b lbl_80322B54
+lbl_80322B40:
+/* 80322B40 0031E7A0 3B DE 00 01 */ addi r30, r30, 1
+/* 80322B44 0031E7A4 3B BD 00 04 */ addi r29, r29, 4
+/* 80322B48 0031E7A8 2C 1E 00 20 */ cmpwi r30, 0x20
+/* 80322B4C 0031E7AC 41 80 FF C4 */ blt lbl_80322B10
+/* 80322B50 0031E7B0 38 60 00 00 */ li r3, 0
+lbl_80322B54:
+/* 80322B54 0031E7B4 2C 03 00 00 */ cmpwi r3, 0
+/* 80322B58 0031E7B8 40 82 00 1C */ bne lbl_80322B74
+/* 80322B5C 0031E7BC 38 9F 02 B0 */ addi r4, r31, 0x2b0
+/* 80322B60 0031E7C0 38 60 00 04 */ li r3, 4
+/* 80322B64 0031E7C4 4C C6 31 82 */ crclr 6
+/* 80322B68 0031E7C8 4B FF 9F CD */ bl DWC_Printf
+/* 80322B6C 0031E7CC 38 60 FF FE */ li r3, -2
+/* 80322B70 0031E7D0 48 00 00 0C */ b lbl_80322B7C
+lbl_80322B74:
+/* 80322B74 0031E7D4 48 02 71 C9 */ bl gt2CloseConnectionHard
+/* 80322B78 0031E7D8 38 60 00 00 */ li r3, 0
+lbl_80322B7C:
+/* 80322B7C 0031E7DC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80322B80 0031E7E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80322B84 0031E7E4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80322B88 0031E7E8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80322B8C 0031E7EC 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80322B90 0031E7F0 7C 08 03 A6 */ mtlr r0
+/* 80322B94 0031E7F4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80322B98 0031E7F8 4E 80 00 20 */ blr
+
+.global DWC_GetNumConnectionHost
+DWC_GetNumConnectionHost:
+/* 80322B9C 0031E7FC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80322BA0 0031E800 7C 08 02 A6 */ mflr r0
+/* 80322BA4 0031E804 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80322BA8 0031E808 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322BAC 0031E80C 2C 03 00 00 */ cmpwi r3, 0
+/* 80322BB0 0031E810 40 82 00 0C */ bne lbl_80322BBC
+/* 80322BB4 0031E814 38 60 00 00 */ li r3, 0
+/* 80322BB8 0031E818 48 00 00 30 */ b lbl_80322BE8
+lbl_80322BBC:
+/* 80322BBC 0031E81C 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 80322BC0 0031E820 28 00 00 02 */ cmplwi r0, 2
+/* 80322BC4 0031E824 41 82 00 10 */ beq lbl_80322BD4
+/* 80322BC8 0031E828 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 80322BCC 0031E82C 28 00 00 03 */ cmplwi r0, 3
+/* 80322BD0 0031E830 40 82 00 10 */ bne lbl_80322BE0
+lbl_80322BD4:
+/* 80322BD4 0031E834 48 00 50 09 */ bl func_80327BDC
+/* 80322BD8 0031E838 38 63 00 01 */ addi r3, r3, 1
+/* 80322BDC 0031E83C 48 00 00 0C */ b lbl_80322BE8
+lbl_80322BE0:
+/* 80322BE0 0031E840 48 00 4F E1 */ bl func_80327BC0
+/* 80322BE4 0031E844 38 63 00 01 */ addi r3, r3, 1
+lbl_80322BE8:
+/* 80322BE8 0031E848 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80322BEC 0031E84C 7C 08 03 A6 */ mtlr r0
+/* 80322BF0 0031E850 38 21 00 10 */ addi r1, r1, 0x10
+/* 80322BF4 0031E854 4E 80 00 20 */ blr
+
+.global DWC_GetMyAID
+DWC_GetMyAID:
+/* 80322BF8 0031E858 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322BFC 0031E85C 2C 03 00 00 */ cmpwi r3, 0
+/* 80322C00 0031E860 41 82 00 0C */ beq lbl_80322C0C
+/* 80322C04 0031E864 88 63 00 2C */ lbz r3, 0x2c(r3)
+/* 80322C08 0031E868 4E 80 00 20 */ blr
+lbl_80322C0C:
+/* 80322C0C 0031E86C 38 60 00 00 */ li r3, 0
+/* 80322C10 0031E870 4E 80 00 20 */ blr
+
+.global DWC_GetAIDList
+DWC_GetAIDList:
+/* 80322C14 0031E874 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80322C18 0031E878 2C 04 00 00 */ cmpwi r4, 0
+/* 80322C1C 0031E87C 40 82 00 0C */ bne lbl_80322C28
+/* 80322C20 0031E880 38 60 00 00 */ li r3, 0
+/* 80322C24 0031E884 4E 80 00 20 */ blr
+lbl_80322C28:
+/* 80322C28 0031E888 38 04 06 40 */ addi r0, r4, 0x640
+/* 80322C2C 0031E88C 90 03 00 00 */ stw r0, 0(r3)
+/* 80322C30 0031E890 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80322C34 0031E894 88 04 03 75 */ lbz r0, 0x375(r4)
+/* 80322C38 0031E898 28 00 00 02 */ cmplwi r0, 2
+/* 80322C3C 0031E89C 41 82 00 10 */ beq lbl_80322C4C
+/* 80322C40 0031E8A0 88 04 03 75 */ lbz r0, 0x375(r4)
+/* 80322C44 0031E8A4 28 00 00 03 */ cmplwi r0, 3
+/* 80322C48 0031E8A8 40 82 00 08 */ bne lbl_80322C50
+lbl_80322C4C:
+/* 80322C4C 0031E8AC 48 00 50 B4 */ b func_80327D00
+lbl_80322C50:
+/* 80322C50 0031E8B0 48 00 50 84 */ b func_80327CD4
+/* 80322C54 0031E8B4 4E 80 00 20 */ blr
+
+.global DWC_GetAIDBitmap
+DWC_GetAIDBitmap:
+/* 80322C58 0031E8B8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80322C5C 0031E8BC 7C 08 02 A6 */ mflr r0
+/* 80322C60 0031E8C0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80322C64 0031E8C4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80322C68 0031E8C8 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322C6C 0031E8CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80322C70 0031E8D0 40 82 00 0C */ bne lbl_80322C7C
+/* 80322C74 0031E8D4 38 60 00 00 */ li r3, 0
+/* 80322C78 0031E8D8 48 00 01 3C */ b lbl_80322DB4
+lbl_80322C7C:
+/* 80322C7C 0031E8DC 40 82 00 0C */ bne lbl_80322C88
+/* 80322C80 0031E8E0 38 60 00 00 */ li r3, 0
+/* 80322C84 0031E8E4 48 00 00 38 */ b lbl_80322CBC
+lbl_80322C88:
+/* 80322C88 0031E8E8 38 03 06 40 */ addi r0, r3, 0x640
+/* 80322C8C 0031E8EC 90 01 00 08 */ stw r0, 8(r1)
+/* 80322C90 0031E8F0 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 80322C94 0031E8F4 28 00 00 02 */ cmplwi r0, 2
+/* 80322C98 0031E8F8 41 82 00 10 */ beq lbl_80322CA8
+/* 80322C9C 0031E8FC 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 80322CA0 0031E900 28 00 00 03 */ cmplwi r0, 3
+/* 80322CA4 0031E904 40 82 00 10 */ bne lbl_80322CB4
+lbl_80322CA8:
+/* 80322CA8 0031E908 38 61 00 08 */ addi r3, r1, 8
+/* 80322CAC 0031E90C 48 00 50 55 */ bl func_80327D00
+/* 80322CB0 0031E910 48 00 00 0C */ b lbl_80322CBC
+lbl_80322CB4:
+/* 80322CB4 0031E914 38 61 00 08 */ addi r3, r1, 8
+/* 80322CB8 0031E918 48 00 50 1D */ bl func_80327CD4
+lbl_80322CBC:
+/* 80322CBC 0031E91C 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 80322CC0 0031E920 81 61 00 08 */ lwz r11, 8(r1)
+/* 80322CC4 0031E924 38 00 00 00 */ li r0, 0
+/* 80322CC8 0031E928 39 80 00 00 */ li r12, 0
+/* 80322CCC 0031E92C 40 85 00 E4 */ ble cr1, lbl_80322DB0
+/* 80322CD0 0031E930 2C 03 00 08 */ cmpwi r3, 8
+/* 80322CD4 0031E934 38 A3 FF F8 */ addi r5, r3, -8
+/* 80322CD8 0031E938 40 81 00 AC */ ble lbl_80322D84
+/* 80322CDC 0031E93C 38 C0 00 00 */ li r6, 0
+/* 80322CE0 0031E940 41 84 00 18 */ blt cr1, lbl_80322CF8
+/* 80322CE4 0031E944 3C 80 80 00 */ lis r4, 0x7FFFFFFE@ha
+/* 80322CE8 0031E948 38 84 FF FE */ addi r4, r4, 0x7FFFFFFE@l
+/* 80322CEC 0031E94C 7C 03 20 00 */ cmpw r3, r4
+/* 80322CF0 0031E950 41 81 00 08 */ bgt lbl_80322CF8
+/* 80322CF4 0031E954 38 C0 00 01 */ li r6, 1
+lbl_80322CF8:
+/* 80322CF8 0031E958 2C 06 00 00 */ cmpwi r6, 0
+/* 80322CFC 0031E95C 41 82 00 88 */ beq lbl_80322D84
+/* 80322D00 0031E960 38 85 00 07 */ addi r4, r5, 7
+/* 80322D04 0031E964 39 40 00 01 */ li r10, 1
+/* 80322D08 0031E968 54 84 E8 FE */ srwi r4, r4, 3
+/* 80322D0C 0031E96C 7C 89 03 A6 */ mtctr r4
+/* 80322D10 0031E970 2C 05 00 00 */ cmpwi r5, 0
+/* 80322D14 0031E974 40 81 00 70 */ ble lbl_80322D84
+lbl_80322D18:
+/* 80322D18 0031E978 7F EB 62 14 */ add r31, r11, r12
+/* 80322D1C 0031E97C 7C 8B 60 AE */ lbzx r4, r11, r12
+/* 80322D20 0031E980 88 BF 00 01 */ lbz r5, 1(r31)
+/* 80322D24 0031E984 39 8C 00 08 */ addi r12, r12, 8
+/* 80322D28 0031E988 7D 46 20 30 */ slw r6, r10, r4
+/* 80322D2C 0031E98C 88 9F 00 02 */ lbz r4, 2(r31)
+/* 80322D30 0031E990 89 1F 00 03 */ lbz r8, 3(r31)
+/* 80322D34 0031E994 7C 00 33 78 */ or r0, r0, r6
+/* 80322D38 0031E998 7D 45 28 30 */ slw r5, r10, r5
+/* 80322D3C 0031E99C 88 FF 00 04 */ lbz r7, 4(r31)
+/* 80322D40 0031E9A0 7C 00 2B 78 */ or r0, r0, r5
+/* 80322D44 0031E9A4 7D 49 20 30 */ slw r9, r10, r4
+/* 80322D48 0031E9A8 88 DF 00 05 */ lbz r6, 5(r31)
+/* 80322D4C 0031E9AC 7C 00 4B 78 */ or r0, r0, r9
+/* 80322D50 0031E9B0 7D 48 40 30 */ slw r8, r10, r8
+/* 80322D54 0031E9B4 88 BF 00 06 */ lbz r5, 6(r31)
+/* 80322D58 0031E9B8 88 9F 00 07 */ lbz r4, 7(r31)
+/* 80322D5C 0031E9BC 7D 47 38 30 */ slw r7, r10, r7
+/* 80322D60 0031E9C0 7C 00 43 78 */ or r0, r0, r8
+/* 80322D64 0031E9C4 7D 46 30 30 */ slw r6, r10, r6
+/* 80322D68 0031E9C8 7C 00 3B 78 */ or r0, r0, r7
+/* 80322D6C 0031E9CC 7D 45 28 30 */ slw r5, r10, r5
+/* 80322D70 0031E9D0 7C 00 33 78 */ or r0, r0, r6
+/* 80322D74 0031E9D4 7D 44 20 30 */ slw r4, r10, r4
+/* 80322D78 0031E9D8 7C 00 2B 78 */ or r0, r0, r5
+/* 80322D7C 0031E9DC 7C 00 23 78 */ or r0, r0, r4
+/* 80322D80 0031E9E0 42 00 FF 98 */ bdnz lbl_80322D18
+lbl_80322D84:
+/* 80322D84 0031E9E4 7C 8C 18 50 */ subf r4, r12, r3
+/* 80322D88 0031E9E8 7C AB 62 14 */ add r5, r11, r12
+/* 80322D8C 0031E9EC 38 C0 00 01 */ li r6, 1
+/* 80322D90 0031E9F0 7C 89 03 A6 */ mtctr r4
+/* 80322D94 0031E9F4 7C 0C 18 00 */ cmpw r12, r3
+/* 80322D98 0031E9F8 40 80 00 18 */ bge lbl_80322DB0
+lbl_80322D9C:
+/* 80322D9C 0031E9FC 88 65 00 00 */ lbz r3, 0(r5)
+/* 80322DA0 0031EA00 38 A5 00 01 */ addi r5, r5, 1
+/* 80322DA4 0031EA04 7C C3 18 30 */ slw r3, r6, r3
+/* 80322DA8 0031EA08 7C 00 1B 78 */ or r0, r0, r3
+/* 80322DAC 0031EA0C 42 00 FF F0 */ bdnz lbl_80322D9C
+lbl_80322DB0:
+/* 80322DB0 0031EA10 7C 03 03 78 */ mr r3, r0
+lbl_80322DB4:
+/* 80322DB4 0031EA14 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80322DB8 0031EA18 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80322DBC 0031EA1C 7C 08 03 A6 */ mtlr r0
+/* 80322DC0 0031EA20 38 21 00 20 */ addi r1, r1, 0x20
+/* 80322DC4 0031EA24 4E 80 00 20 */ blr
+
+.global DWC_IsValidAID
+DWC_IsValidAID:
+/* 80322DC8 0031EA28 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80322DCC 0031EA2C 7C 08 02 A6 */ mflr r0
+/* 80322DD0 0031EA30 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80322DD4 0031EA34 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80322DD8 0031EA38 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80322DDC 0031EA3C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80322DE0 0031EA40 7C 7D 1B 78 */ mr r29, r3
+/* 80322DE4 0031EA44 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80322DE8 0031EA48 2C 04 00 00 */ cmpwi r4, 0
+/* 80322DEC 0031EA4C 40 82 00 0C */ bne lbl_80322DF8
+/* 80322DF0 0031EA50 38 60 00 00 */ li r3, 0
+/* 80322DF4 0031EA54 48 00 00 64 */ b lbl_80322E58
+lbl_80322DF8:
+/* 80322DF8 0031EA58 38 00 00 01 */ li r0, 1
+/* 80322DFC 0031EA5C 80 84 06 60 */ lwz r4, 0x660(r4)
+/* 80322E00 0031EA60 7C 00 18 30 */ slw r0, r0, r3
+/* 80322E04 0031EA64 7C 80 00 39 */ and. r0, r4, r0
+/* 80322E08 0031EA68 40 82 00 0C */ bne lbl_80322E14
+/* 80322E0C 0031EA6C 38 60 00 00 */ li r3, 0
+/* 80322E10 0031EA70 48 00 00 48 */ b lbl_80322E58
+lbl_80322E14:
+/* 80322E14 0031EA74 3F C0 80 61 */ lis r30, lbl_8060FC08@ha
+/* 80322E18 0031EA78 3B E0 00 00 */ li r31, 0
+/* 80322E1C 0031EA7C 3B DE FC 08 */ addi r30, r30, lbl_8060FC08@l
+lbl_80322E20:
+/* 80322E20 0031EA80 80 7E 00 00 */ lwz r3, 0(r30)
+/* 80322E24 0031EA84 2C 03 00 00 */ cmpwi r3, 0
+/* 80322E28 0031EA88 41 82 00 1C */ beq lbl_80322E44
+/* 80322E2C 0031EA8C 48 02 6F D5 */ bl gt2GetConnectionData
+/* 80322E30 0031EA90 88 03 00 01 */ lbz r0, 1(r3)
+/* 80322E34 0031EA94 7C 1D 00 40 */ cmplw r29, r0
+/* 80322E38 0031EA98 40 82 00 0C */ bne lbl_80322E44
+/* 80322E3C 0031EA9C 38 60 00 01 */ li r3, 1
+/* 80322E40 0031EAA0 48 00 00 18 */ b lbl_80322E58
+lbl_80322E44:
+/* 80322E44 0031EAA4 3B FF 00 01 */ addi r31, r31, 1
+/* 80322E48 0031EAA8 3B DE 00 04 */ addi r30, r30, 4
+/* 80322E4C 0031EAAC 2C 1F 00 20 */ cmpwi r31, 0x20
+/* 80322E50 0031EAB0 41 80 FF D0 */ blt lbl_80322E20
+/* 80322E54 0031EAB4 38 60 00 00 */ li r3, 0
+lbl_80322E58:
+/* 80322E58 0031EAB8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80322E5C 0031EABC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80322E60 0031EAC0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80322E64 0031EAC4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80322E68 0031EAC8 7C 08 03 A6 */ mtlr r0
+/* 80322E6C 0031EACC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80322E70 0031EAD0 4E 80 00 20 */ blr
+
+.global DWC_GetState
+DWC_GetState:
+/* 80322E74 0031EAD4 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322E78 0031EAD8 2C 03 00 00 */ cmpwi r3, 0
+/* 80322E7C 0031EADC 41 82 00 0C */ beq lbl_80322E88
+/* 80322E80 0031EAE0 80 63 00 24 */ lwz r3, 0x24(r3)
+/* 80322E84 0031EAE4 4E 80 00 20 */ blr
+lbl_80322E88:
+/* 80322E88 0031EAE8 38 60 00 00 */ li r3, 0
+/* 80322E8C 0031EAEC 4E 80 00 20 */ blr
+
+.global DWCi_GT2Startup
+DWCi_GT2Startup:
+/* 80322E90 0031EAF0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80322E94 0031EAF4 7C 08 02 A6 */ mflr r0
+/* 80322E98 0031EAF8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80322E9C 0031EAFC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80322EA0 0031EB00 93 C1 00 08 */ stw r30, 8(r1)
+/* 80322EA4 0031EB04 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322EA8 0031EB08 80 03 00 00 */ lwz r0, 0(r3)
+/* 80322EAC 0031EB0C 2C 00 00 00 */ cmpwi r0, 0
+/* 80322EB0 0031EB10 41 82 00 20 */ beq lbl_80322ED0
+/* 80322EB4 0031EB14 3C 80 80 44 */ lis r4, lbl_8044794C@ha
+/* 80322EB8 0031EB18 38 60 00 08 */ li r3, 8
+/* 80322EBC 0031EB1C 38 84 79 4C */ addi r4, r4, lbl_8044794C@l
+/* 80322EC0 0031EB20 4C C6 31 82 */ crclr 6
+/* 80322EC4 0031EB24 4B FF 9C 71 */ bl DWC_Printf
+/* 80322EC8 0031EB28 38 60 00 00 */ li r3, 0
+/* 80322ECC 0031EB2C 48 00 00 A4 */ b lbl_80322F70
+lbl_80322ED0:
+/* 80322ED0 0031EB30 38 60 40 00 */ li r3, 0x4000
+/* 80322ED4 0031EB34 4B FF C1 59 */ bl DWCi_GetMathRand32
+/* 80322ED8 0031EB38 3C 63 00 01 */ addis r3, r3, 1
+/* 80322EDC 0031EB3C 3C 80 80 44 */ lis r4, lbl_80447968@ha
+/* 80322EE0 0031EB40 38 03 C0 00 */ addi r0, r3, -16384
+/* 80322EE4 0031EB44 54 1E 04 3E */ clrlwi r30, r0, 0x10
+/* 80322EE8 0031EB48 38 60 00 40 */ li r3, 0x40
+/* 80322EEC 0031EB4C 38 84 79 68 */ addi r4, r4, lbl_80447968@l
+/* 80322EF0 0031EB50 7F C5 F3 78 */ mr r5, r30
+/* 80322EF4 0031EB54 4C C6 31 82 */ crclr 6
+/* 80322EF8 0031EB58 4B FF 9C 3D */ bl DWC_Printf
+/* 80322EFC 0031EB5C 83 ED B0 58 */ lwz r31, lbl_80640318-_SDA_BASE_(r13)
+/* 80322F00 0031EB60 7F C4 F3 78 */ mr r4, r30
+/* 80322F04 0031EB64 38 60 00 00 */ li r3, 0
+/* 80322F08 0031EB68 38 A0 00 00 */ li r5, 0
+/* 80322F0C 0031EB6C 48 02 AC 41 */ bl gt2AddressToString
+/* 80322F10 0031EB70 7C 64 1B 78 */ mr r4, r3
+/* 80322F14 0031EB74 3C E0 80 32 */ lis r7, DWCi_GT2SocketErrorCallback@ha
+/* 80322F18 0031EB78 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322F1C 0031EB7C 38 E7 42 D0 */ addi r7, r7, DWCi_GT2SocketErrorCallback@l
+/* 80322F20 0031EB80 80 BF 00 14 */ lwz r5, 0x14(r31)
+/* 80322F24 0031EB84 80 DF 00 18 */ lwz r6, 0x18(r31)
+/* 80322F28 0031EB88 48 02 6A C9 */ bl gt2CreateSocket
+/* 80322F2C 0031EB8C 7C 7E 1B 78 */ mr r30, r3
+/* 80322F30 0031EB90 48 00 04 D5 */ bl DWCi_HandleGT2Error
+/* 80322F34 0031EB94 2C 03 00 00 */ cmpwi r3, 0
+/* 80322F38 0031EB98 41 82 00 0C */ beq lbl_80322F44
+/* 80322F3C 0031EB9C 7F C3 F3 78 */ mr r3, r30
+/* 80322F40 0031EBA0 48 00 00 30 */ b lbl_80322F70
+lbl_80322F44:
+/* 80322F44 0031EBA4 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322F48 0031EBA8 3C 80 80 32 */ lis r4, lbl_80326510@ha
+/* 80322F4C 0031EBAC 38 84 65 10 */ addi r4, r4, lbl_80326510@l
+/* 80322F50 0031EBB0 80 63 00 00 */ lwz r3, 0(r3)
+/* 80322F54 0031EBB4 48 02 6B 35 */ bl gt2Listen
+/* 80322F58 0031EBB8 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80322F5C 0031EBBC 3C 80 80 32 */ lis r4, lbl_8032639C@ha
+/* 80322F60 0031EBC0 38 84 63 9C */ addi r4, r4, lbl_8032639C@l
+/* 80322F64 0031EBC4 80 63 00 00 */ lwz r3, 0(r3)
+/* 80322F68 0031EBC8 48 02 6E 89 */ bl gt2SetUnrecognizedMessageCallback
+/* 80322F6C 0031EBCC 7F C3 F3 78 */ mr r3, r30
+lbl_80322F70:
+/* 80322F70 0031EBD0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80322F74 0031EBD4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80322F78 0031EBD8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80322F7C 0031EBDC 7C 08 03 A6 */ mtlr r0
+/* 80322F80 0031EBE0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80322F84 0031EBE4 4E 80 00 20 */ blr
+
+.global DWCi_GetGT2Connection
+DWCi_GetGT2Connection:
+/* 80322F88 0031EBE8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80322F8C 0031EBEC 7C 08 02 A6 */ mflr r0
+/* 80322F90 0031EBF0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80322F94 0031EBF4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80322F98 0031EBF8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80322F9C 0031EBFC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80322FA0 0031EC00 7C 7D 1B 78 */ mr r29, r3
+/* 80322FA4 0031EC04 80 0D B0 58 */ lwz r0, lbl_80640318-_SDA_BASE_(r13)
+/* 80322FA8 0031EC08 2C 00 00 00 */ cmpwi r0, 0
+/* 80322FAC 0031EC0C 40 82 00 0C */ bne lbl_80322FB8
+/* 80322FB0 0031EC10 38 60 00 00 */ li r3, 0
+/* 80322FB4 0031EC14 48 00 00 54 */ b lbl_80323008
+lbl_80322FB8:
+/* 80322FB8 0031EC18 3F E0 80 61 */ lis r31, lbl_8060FC08@ha
+/* 80322FBC 0031EC1C 3B C0 00 00 */ li r30, 0
+/* 80322FC0 0031EC20 3B FF FC 08 */ addi r31, r31, lbl_8060FC08@l
+lbl_80322FC4:
+/* 80322FC4 0031EC24 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80322FC8 0031EC28 2C 03 00 00 */ cmpwi r3, 0
+/* 80322FCC 0031EC2C 41 82 00 28 */ beq lbl_80322FF4
+/* 80322FD0 0031EC30 48 02 6E 31 */ bl gt2GetConnectionData
+/* 80322FD4 0031EC34 88 03 00 01 */ lbz r0, 1(r3)
+/* 80322FD8 0031EC38 7C 1D 00 40 */ cmplw r29, r0
+/* 80322FDC 0031EC3C 40 82 00 18 */ bne lbl_80322FF4
+/* 80322FE0 0031EC40 3C 60 80 61 */ lis r3, lbl_8060FC08@ha
+/* 80322FE4 0031EC44 57 C0 10 3A */ slwi r0, r30, 2
+/* 80322FE8 0031EC48 38 63 FC 08 */ addi r3, r3, lbl_8060FC08@l
+/* 80322FEC 0031EC4C 7C 63 00 2E */ lwzx r3, r3, r0
+/* 80322FF0 0031EC50 48 00 00 18 */ b lbl_80323008
+lbl_80322FF4:
+/* 80322FF4 0031EC54 3B DE 00 01 */ addi r30, r30, 1
+/* 80322FF8 0031EC58 3B FF 00 04 */ addi r31, r31, 4
+/* 80322FFC 0031EC5C 2C 1E 00 20 */ cmpwi r30, 0x20
+/* 80323000 0031EC60 41 80 FF C4 */ blt lbl_80322FC4
+/* 80323004 0031EC64 38 60 00 00 */ li r3, 0
+lbl_80323008:
+/* 80323008 0031EC68 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8032300C 0031EC6C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80323010 0031EC70 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80323014 0031EC74 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80323018 0031EC78 7C 08 03 A6 */ mtlr r0
+/* 8032301C 0031EC7C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80323020 0031EC80 4E 80 00 20 */ blr
+
+.global DWCi_GetConnectionAID
+DWCi_GetConnectionAID:
+/* 80323024 0031EC84 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80323028 0031EC88 7C 08 02 A6 */ mflr r0
+/* 8032302C 0031EC8C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80323030 0031EC90 48 02 6D D1 */ bl gt2GetConnectionData
+/* 80323034 0031EC94 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80323038 0031EC98 88 63 00 01 */ lbz r3, 1(r3)
+/* 8032303C 0031EC9C 7C 08 03 A6 */ mtlr r0
+/* 80323040 0031ECA0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80323044 0031ECA4 4E 80 00 20 */ blr
+
+.global DWCi_GT2GetConnectionListIdx
+DWCi_GT2GetConnectionListIdx:
+/* 80323048 0031ECA8 3C 80 80 61 */ lis r4, lbl_8060FC08@ha
+/* 8032304C 0031ECAC 38 00 00 04 */ li r0, 4
+/* 80323050 0031ECB0 38 84 FC 08 */ addi r4, r4, lbl_8060FC08@l
+/* 80323054 0031ECB4 38 60 00 00 */ li r3, 0
+/* 80323058 0031ECB8 7C 09 03 A6 */ mtctr r0
+lbl_8032305C:
+/* 8032305C 0031ECBC 80 04 00 00 */ lwz r0, 0(r4)
+/* 80323060 0031ECC0 2C 00 00 00 */ cmpwi r0, 0
+/* 80323064 0031ECC4 4D 82 00 20 */ beqlr
+/* 80323068 0031ECC8 80 04 00 04 */ lwz r0, 4(r4)
+/* 8032306C 0031ECCC 38 63 00 01 */ addi r3, r3, 1
+/* 80323070 0031ECD0 2C 00 00 00 */ cmpwi r0, 0
+/* 80323074 0031ECD4 4D 82 00 20 */ beqlr
+/* 80323078 0031ECD8 80 04 00 08 */ lwz r0, 8(r4)
+/* 8032307C 0031ECDC 38 63 00 01 */ addi r3, r3, 1
+/* 80323080 0031ECE0 2C 00 00 00 */ cmpwi r0, 0
+/* 80323084 0031ECE4 4D 82 00 20 */ beqlr
+/* 80323088 0031ECE8 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 8032308C 0031ECEC 38 63 00 01 */ addi r3, r3, 1
+/* 80323090 0031ECF0 2C 00 00 00 */ cmpwi r0, 0
+/* 80323094 0031ECF4 4D 82 00 20 */ beqlr
+/* 80323098 0031ECF8 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 8032309C 0031ECFC 38 63 00 01 */ addi r3, r3, 1
+/* 803230A0 0031ED00 2C 00 00 00 */ cmpwi r0, 0
+/* 803230A4 0031ED04 4D 82 00 20 */ beqlr
+/* 803230A8 0031ED08 80 04 00 14 */ lwz r0, 0x14(r4)
+/* 803230AC 0031ED0C 38 63 00 01 */ addi r3, r3, 1
+/* 803230B0 0031ED10 2C 00 00 00 */ cmpwi r0, 0
+/* 803230B4 0031ED14 4D 82 00 20 */ beqlr
+/* 803230B8 0031ED18 80 04 00 18 */ lwz r0, 0x18(r4)
+/* 803230BC 0031ED1C 38 63 00 01 */ addi r3, r3, 1
+/* 803230C0 0031ED20 2C 00 00 00 */ cmpwi r0, 0
+/* 803230C4 0031ED24 4D 82 00 20 */ beqlr
+/* 803230C8 0031ED28 80 04 00 1C */ lwz r0, 0x1c(r4)
+/* 803230CC 0031ED2C 38 63 00 01 */ addi r3, r3, 1
+/* 803230D0 0031ED30 2C 00 00 00 */ cmpwi r0, 0
+/* 803230D4 0031ED34 4D 82 00 20 */ beqlr
+/* 803230D8 0031ED38 38 84 00 20 */ addi r4, r4, 0x20
+/* 803230DC 0031ED3C 38 63 00 01 */ addi r3, r3, 1
+/* 803230E0 0031ED40 42 00 FF 7C */ bdnz lbl_8032305C
+/* 803230E4 0031ED44 38 60 FF FF */ li r3, -1
+/* 803230E8 0031ED48 4E 80 00 20 */ blr
+
+.global DWCi_GetGT2ConnectionByIdx
+DWCi_GetGT2ConnectionByIdx:
+/* 803230EC 0031ED4C 3C 80 80 61 */ lis r4, lbl_8060FC08@ha
+/* 803230F0 0031ED50 54 60 10 3A */ slwi r0, r3, 2
+/* 803230F4 0031ED54 38 84 FC 08 */ addi r4, r4, lbl_8060FC08@l
+/* 803230F8 0031ED58 7C 64 02 14 */ add r3, r4, r0
+/* 803230FC 0031ED5C 4E 80 00 20 */ blr
+
+.global DWCi_GetGT2ConnectionByProfileID
+DWCi_GetGT2ConnectionByProfileID:
+/* 80323100 0031ED60 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80323104 0031ED64 7C 08 02 A6 */ mflr r0
+/* 80323108 0031ED68 38 E0 00 00 */ li r7, 0
+/* 8032310C 0031ED6C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80323110 0031ED70 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80323114 0031ED74 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80323118 0031ED78 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8032311C 0031ED7C 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80323120 0031ED80 48 00 00 1C */ b lbl_8032313C
+lbl_80323124:
+/* 80323124 0031ED84 54 E0 15 BA */ rlwinm r0, r7, 2, 0x16, 0x1d
+/* 80323128 0031ED88 7C A6 02 14 */ add r5, r6, r0
+/* 8032312C 0031ED8C 80 05 04 58 */ lwz r0, 0x458(r5)
+/* 80323130 0031ED90 7C 03 00 00 */ cmpw r3, r0
+/* 80323134 0031ED94 41 82 00 14 */ beq lbl_80323148
+/* 80323138 0031ED98 38 E7 00 01 */ addi r7, r7, 1
+lbl_8032313C:
+/* 8032313C 0031ED9C 54 E0 06 3E */ clrlwi r0, r7, 0x18
+/* 80323140 0031EDA0 7C 00 20 00 */ cmpw r0, r4
+/* 80323144 0031EDA4 41 80 FF E0 */ blt lbl_80323124
+lbl_80323148:
+/* 80323148 0031EDA8 54 E0 06 3E */ clrlwi r0, r7, 0x18
+/* 8032314C 0031EDAC 7C 00 20 00 */ cmpw r0, r4
+/* 80323150 0031EDB0 41 80 00 0C */ blt lbl_8032315C
+/* 80323154 0031EDB4 38 60 00 00 */ li r3, 0
+/* 80323158 0031EDB8 48 00 00 88 */ b lbl_803231E0
+lbl_8032315C:
+/* 8032315C 0031EDBC 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80323160 0031EDC0 7C 64 02 14 */ add r3, r4, r0
+/* 80323164 0031EDC4 2C 04 00 00 */ cmpwi r4, 0
+/* 80323168 0031EDC8 8B E3 06 40 */ lbz r31, 0x640(r3)
+/* 8032316C 0031EDCC 40 82 00 0C */ bne lbl_80323178
+/* 80323170 0031EDD0 38 60 00 00 */ li r3, 0
+/* 80323174 0031EDD4 48 00 00 54 */ b lbl_803231C8
+lbl_80323178:
+/* 80323178 0031EDD8 3F A0 80 61 */ lis r29, lbl_8060FC08@ha
+/* 8032317C 0031EDDC 3B C0 00 00 */ li r30, 0
+/* 80323180 0031EDE0 3B BD FC 08 */ addi r29, r29, lbl_8060FC08@l
+lbl_80323184:
+/* 80323184 0031EDE4 80 7D 00 00 */ lwz r3, 0(r29)
+/* 80323188 0031EDE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8032318C 0031EDEC 41 82 00 28 */ beq lbl_803231B4
+/* 80323190 0031EDF0 48 02 6C 71 */ bl gt2GetConnectionData
+/* 80323194 0031EDF4 88 03 00 01 */ lbz r0, 1(r3)
+/* 80323198 0031EDF8 7C 1F 00 40 */ cmplw r31, r0
+/* 8032319C 0031EDFC 40 82 00 18 */ bne lbl_803231B4
+/* 803231A0 0031EE00 3C 60 80 61 */ lis r3, lbl_8060FC08@ha
+/* 803231A4 0031EE04 57 C0 10 3A */ slwi r0, r30, 2
+/* 803231A8 0031EE08 38 63 FC 08 */ addi r3, r3, lbl_8060FC08@l
+/* 803231AC 0031EE0C 7C 63 00 2E */ lwzx r3, r3, r0
+/* 803231B0 0031EE10 48 00 00 18 */ b lbl_803231C8
+lbl_803231B4:
+/* 803231B4 0031EE14 3B DE 00 01 */ addi r30, r30, 1
+/* 803231B8 0031EE18 3B BD 00 04 */ addi r29, r29, 4
+/* 803231BC 0031EE1C 2C 1E 00 20 */ cmpwi r30, 0x20
+/* 803231C0 0031EE20 41 80 FF C4 */ blt lbl_80323184
+/* 803231C4 0031EE24 38 60 00 00 */ li r3, 0
+lbl_803231C8:
+/* 803231C8 0031EE28 48 02 6C 39 */ bl gt2GetConnectionData
+/* 803231CC 0031EE2C 88 03 00 00 */ lbz r0, 0(r3)
+/* 803231D0 0031EE30 3C 60 80 61 */ lis r3, lbl_8060FC08@ha
+/* 803231D4 0031EE34 38 63 FC 08 */ addi r3, r3, lbl_8060FC08@l
+/* 803231D8 0031EE38 54 00 10 3A */ slwi r0, r0, 2
+/* 803231DC 0031EE3C 7C 63 02 14 */ add r3, r3, r0
+lbl_803231E0:
+/* 803231E0 0031EE40 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803231E4 0031EE44 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803231E8 0031EE48 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803231EC 0031EE4C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 803231F0 0031EE50 7C 08 03 A6 */ mtlr r0
+/* 803231F4 0031EE54 38 21 00 20 */ addi r1, r1, 0x20
+/* 803231F8 0031EE58 4E 80 00 20 */ blr
+
+.global DWCi_GetConnectionInfoByIdx
+DWCi_GetConnectionInfoByIdx:
+/* 803231FC 0031EE5C 3C 80 80 61 */ lis r4, lbl_8060FC88@ha
+/* 80323200 0031EE60 54 60 18 38 */ slwi r0, r3, 3
+/* 80323204 0031EE64 38 84 FC 88 */ addi r4, r4, lbl_8060FC88@l
+/* 80323208 0031EE68 7C 64 02 14 */ add r3, r4, r0
+/* 8032320C 0031EE6C 4E 80 00 20 */ blr
+
+.global DWCi_IsValidAID
+DWCi_IsValidAID:
+/* 80323210 0031EE70 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80323214 0031EE74 7C 08 02 A6 */ mflr r0
+/* 80323218 0031EE78 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8032321C 0031EE7C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80323220 0031EE80 3F E0 80 61 */ lis r31, lbl_8060FC08@ha
+/* 80323224 0031EE84 3B FF FC 08 */ addi r31, r31, lbl_8060FC08@l
+/* 80323228 0031EE88 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8032322C 0031EE8C 3B C0 00 00 */ li r30, 0
+/* 80323230 0031EE90 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80323234 0031EE94 7C 7D 1B 78 */ mr r29, r3
+lbl_80323238:
+/* 80323238 0031EE98 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8032323C 0031EE9C 2C 03 00 00 */ cmpwi r3, 0
+/* 80323240 0031EEA0 41 82 00 1C */ beq lbl_8032325C
+/* 80323244 0031EEA4 48 02 6B BD */ bl gt2GetConnectionData
+/* 80323248 0031EEA8 88 03 00 01 */ lbz r0, 1(r3)
+/* 8032324C 0031EEAC 7C 1D 00 40 */ cmplw r29, r0
+/* 80323250 0031EEB0 40 82 00 0C */ bne lbl_8032325C
+/* 80323254 0031EEB4 38 60 00 01 */ li r3, 1
+/* 80323258 0031EEB8 48 00 00 18 */ b lbl_80323270
+lbl_8032325C:
+/* 8032325C 0031EEBC 3B DE 00 01 */ addi r30, r30, 1
+/* 80323260 0031EEC0 3B FF 00 04 */ addi r31, r31, 4
+/* 80323264 0031EEC4 2C 1E 00 20 */ cmpwi r30, 0x20
+/* 80323268 0031EEC8 41 80 FF D0 */ blt lbl_80323238
+/* 8032326C 0031EECC 38 60 00 00 */ li r3, 0
+lbl_80323270:
+/* 80323270 0031EED0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80323274 0031EED4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80323278 0031EED8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8032327C 0031EEDC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80323280 0031EEE0 7C 08 03 A6 */ mtlr r0
+/* 80323284 0031EEE4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80323288 0031EEE8 4E 80 00 20 */ blr
+
+DWCi_HandleGPError:
+/* 8032328C 0031EEEC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80323290 0031EEF0 7C 08 02 A6 */ mflr r0
+/* 80323294 0031EEF4 2C 03 00 00 */ cmpwi r3, 0
+/* 80323298 0031EEF8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8032329C 0031EEFC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 803232A0 0031EF00 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 803232A4 0031EF04 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 803232A8 0031EF08 7C 7D 1B 78 */ mr r29, r3
+/* 803232AC 0031EF0C 40 82 00 0C */ bne lbl_803232B8
+/* 803232B0 0031EF10 38 60 00 00 */ li r3, 0
+/* 803232B4 0031EF14 48 00 01 34 */ b lbl_803233E8
+lbl_803232B8:
+/* 803232B8 0031EF18 3C 80 80 44 */ lis r4, lbl_80447984@ha
+/* 803232BC 0031EF1C 7F A5 EB 78 */ mr r5, r29
+/* 803232C0 0031EF20 38 84 79 84 */ addi r4, r4, lbl_80447984@l
+/* 803232C4 0031EF24 38 60 00 02 */ li r3, 2
+/* 803232C8 0031EF28 4C C6 31 82 */ crclr 6
+/* 803232CC 0031EF2C 4B FF 98 69 */ bl DWC_Printf
+/* 803232D0 0031EF30 2C 1D 00 03 */ cmpwi r29, 3
+/* 803232D4 0031EF34 41 82 00 3C */ beq lbl_80323310
+/* 803232D8 0031EF38 40 80 00 14 */ bge lbl_803232EC
+/* 803232DC 0031EF3C 2C 1D 00 01 */ cmpwi r29, 1
+/* 803232E0 0031EF40 41 82 00 18 */ beq lbl_803232F8
+/* 803232E4 0031EF44 40 80 00 20 */ bge lbl_80323304
+/* 803232E8 0031EF48 48 00 00 3C */ b lbl_80323324
+lbl_803232EC:
+/* 803232EC 0031EF4C 2C 1D 00 05 */ cmpwi r29, 5
+/* 803232F0 0031EF50 40 80 00 34 */ bge lbl_80323324
+/* 803232F4 0031EF54 48 00 00 28 */ b lbl_8032331C
+lbl_803232F8:
+/* 803232F8 0031EF58 3B C0 00 09 */ li r30, 9
+/* 803232FC 0031EF5C 3B E0 FF FF */ li r31, -1
+/* 80323300 0031EF60 48 00 00 24 */ b lbl_80323324
+lbl_80323304:
+/* 80323304 0031EF64 3B C0 00 09 */ li r30, 9
+/* 80323308 0031EF68 3B E0 FF FE */ li r31, -2
+/* 8032330C 0031EF6C 48 00 00 18 */ b lbl_80323324
+lbl_80323310:
+/* 80323310 0031EF70 3B C0 00 06 */ li r30, 6
+/* 80323314 0031EF74 3B E0 FF F6 */ li r31, -10
+/* 80323318 0031EF78 48 00 00 0C */ b lbl_80323324
+lbl_8032331C:
+/* 8032331C 0031EF7C 3B C0 00 06 */ li r30, 6
+/* 80323320 0031EF80 3B E0 FF EC */ li r31, -20
+lbl_80323324:
+/* 80323324 0031EF84 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80323328 0031EF88 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 8032332C 0031EF8C 2C 00 00 03 */ cmpwi r0, 3
+/* 80323330 0031EF90 41 82 00 A0 */ beq lbl_803233D0
+/* 80323334 0031EF94 40 80 00 14 */ bge lbl_80323348
+/* 80323338 0031EF98 2C 00 00 01 */ cmpwi r0, 1
+/* 8032333C 0031EF9C 41 82 00 1C */ beq lbl_80323358
+/* 80323340 0031EFA0 40 80 00 30 */ bge lbl_80323370
+/* 80323344 0031EFA4 48 00 00 8C */ b lbl_803233D0
+lbl_80323348:
+/* 80323348 0031EFA8 2C 00 00 05 */ cmpwi r0, 5
+/* 8032334C 0031EFAC 41 82 00 60 */ beq lbl_803233AC
+/* 80323350 0031EFB0 40 80 00 80 */ bge lbl_803233D0
+/* 80323354 0031EFB4 48 00 00 70 */ b lbl_803233C4
+lbl_80323358:
+/* 80323358 0031EFB8 3F FF FF FF */ addis r31, r31, 0xffff
+/* 8032335C 0031EFBC 7F C3 F3 78 */ mr r3, r30
+/* 80323360 0031EFC0 3B FF 11 B8 */ addi r31, r31, 0x11b8
+/* 80323364 0031EFC4 7F E4 FB 78 */ mr r4, r31
+/* 80323368 0031EFC8 4B FF DE 69 */ bl DWCi_StopLogin
+/* 8032336C 0031EFCC 48 00 00 6C */ b lbl_803233D8
+lbl_80323370:
+/* 80323370 0031EFD0 80 03 00 9C */ lwz r0, 0x9c(r3)
+/* 80323374 0031EFD4 3F FF FF FF */ addis r31, r31, 0xffff
+/* 80323378 0031EFD8 3B FF 11 B8 */ addi r31, r31, 0x11b8
+/* 8032337C 0031EFDC 2C 00 00 01 */ cmpwi r0, 1
+/* 80323380 0031EFE0 40 80 00 14 */ bge lbl_80323394
+/* 80323384 0031EFE4 7F C3 F3 78 */ mr r3, r30
+/* 80323388 0031EFE8 7F E4 FB 78 */ mr r4, r31
+/* 8032338C 0031EFEC 4B FF DE 45 */ bl DWCi_StopLogin
+/* 80323390 0031EFF0 48 00 00 48 */ b lbl_803233D8
+lbl_80323394:
+/* 80323394 0031EFF4 3C 80 80 44 */ lis r4, lbl_80447998@ha
+/* 80323398 0031EFF8 38 60 00 02 */ li r3, 2
+/* 8032339C 0031EFFC 38 84 79 98 */ addi r4, r4, lbl_80447998@l
+/* 803233A0 0031F000 4C C6 31 82 */ crclr 6
+/* 803233A4 0031F004 4B FF 97 91 */ bl DWC_Printf
+/* 803233A8 0031F008 48 00 00 30 */ b lbl_803233D8
+lbl_803233AC:
+/* 803233AC 0031F00C 3F FF FF FF */ addis r31, r31, 0xffff
+/* 803233B0 0031F010 7F C3 F3 78 */ mr r3, r30
+/* 803233B4 0031F014 3B FF C3 98 */ addi r31, r31, -15464
+/* 803233B8 0031F018 7F E4 FB 78 */ mr r4, r31
+/* 803233BC 0031F01C 48 00 3B 45 */ bl func_80326F00
+/* 803233C0 0031F020 48 00 00 18 */ b lbl_803233D8
+lbl_803233C4:
+/* 803233C4 0031F024 3F FF FF FF */ addis r31, r31, 0xffff
+/* 803233C8 0031F028 3B FF EA A8 */ addi r31, r31, -5464
+/* 803233CC 0031F02C 48 00 00 0C */ b lbl_803233D8
+lbl_803233D0:
+/* 803233D0 0031F030 3F FF FF FF */ addis r31, r31, 0xffff
+/* 803233D4 0031F034 3B FF 9C 88 */ addi r31, r31, -25464
+lbl_803233D8:
+/* 803233D8 0031F038 7F C3 F3 78 */ mr r3, r30
+/* 803233DC 0031F03C 7F E4 FB 78 */ mr r4, r31
+/* 803233E0 0031F040 4B FF C4 11 */ bl DWCi_StopFriendProcess
+/* 803233E4 0031F044 7F A3 EB 78 */ mr r3, r29
+lbl_803233E8:
+/* 803233E8 0031F048 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803233EC 0031F04C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803233F0 0031F050 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803233F4 0031F054 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 803233F8 0031F058 7C 08 03 A6 */ mtlr r0
+/* 803233FC 0031F05C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80323400 0031F060 4E 80 00 20 */ blr
+
+.global DWCi_HandleGT2Error
+DWCi_HandleGT2Error:
+/* 80323404 0031F064 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80323408 0031F068 7C 08 02 A6 */ mflr r0
+/* 8032340C 0031F06C 2C 03 00 00 */ cmpwi r3, 0
+/* 80323410 0031F070 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80323414 0031F074 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80323418 0031F078 7C 7F 1B 78 */ mr r31, r3
+/* 8032341C 0031F07C 40 82 00 0C */ bne lbl_80323428
+/* 80323420 0031F080 38 60 00 00 */ li r3, 0
+/* 80323424 0031F084 48 00 00 9C */ b lbl_803234C0
+lbl_80323428:
+/* 80323428 0031F088 3C 80 80 44 */ lis r4, lbl_804479B4@ha
+/* 8032342C 0031F08C 7F E5 FB 78 */ mr r5, r31
+/* 80323430 0031F090 38 84 79 B4 */ addi r4, r4, lbl_804479B4@l
+/* 80323434 0031F094 38 60 00 02 */ li r3, 2
+/* 80323438 0031F098 4C C6 31 82 */ crclr 6
+/* 8032343C 0031F09C 4B FF 96 F9 */ bl DWC_Printf
+/* 80323440 0031F0A0 28 1F 00 07 */ cmplwi r31, 7
+/* 80323444 0031F0A4 41 81 00 64 */ bgt lbl_803234A8
+/* 80323448 0031F0A8 3C 80 80 44 */ lis r4, lbl_804479C8@ha
+/* 8032344C 0031F0AC 57 E0 10 3A */ slwi r0, r31, 2
+/* 80323450 0031F0B0 38 84 79 C8 */ addi r4, r4, lbl_804479C8@l
+/* 80323454 0031F0B4 7C 84 00 2E */ lwzx r4, r4, r0
+/* 80323458 0031F0B8 7C 89 03 A6 */ mtctr r4
+/* 8032345C 0031F0BC 4E 80 04 20 */ bctr
+/* 80323460 0031F0C0 38 60 00 09 */ li r3, 9
+/* 80323464 0031F0C4 38 80 FF FF */ li r4, -1
+/* 80323468 0031F0C8 48 00 00 40 */ b lbl_803234A8
+/* 8032346C 0031F0CC 38 60 00 00 */ li r3, 0
+/* 80323470 0031F0D0 38 80 00 00 */ li r4, 0
+/* 80323474 0031F0D4 3B E0 00 00 */ li r31, 0
+/* 80323478 0031F0D8 48 00 00 30 */ b lbl_803234A8
+/* 8032347C 0031F0DC 38 60 00 06 */ li r3, 6
+/* 80323480 0031F0E0 38 80 FF F6 */ li r4, -10
+/* 80323484 0031F0E4 48 00 00 24 */ b lbl_803234A8
+/* 80323488 0031F0E8 38 60 00 06 */ li r3, 6
+/* 8032348C 0031F0EC 38 80 FF E2 */ li r4, -30
+/* 80323490 0031F0F0 48 00 00 18 */ b lbl_803234A8
+/* 80323494 0031F0F4 38 60 00 06 */ li r3, 6
+/* 80323498 0031F0F8 38 80 FF BA */ li r4, -70
+/* 8032349C 0031F0FC 48 00 00 0C */ b lbl_803234A8
+/* 803234A0 0031F100 38 60 00 06 */ li r3, 6
+/* 803234A4 0031F104 38 80 FF B0 */ li r4, -80
+lbl_803234A8:
+/* 803234A8 0031F108 2C 03 00 00 */ cmpwi r3, 0
+/* 803234AC 0031F10C 41 82 00 10 */ beq lbl_803234BC
+/* 803234B0 0031F110 3C 84 FF FF */ addis r4, r4, 0xffff
+/* 803234B4 0031F114 38 84 FA 48 */ addi r4, r4, -1464
+/* 803234B8 0031F118 4B FF DD 19 */ bl DWCi_StopLogin
+lbl_803234BC:
+/* 803234BC 0031F11C 7F E3 FB 78 */ mr r3, r31
+lbl_803234C0:
+/* 803234C0 0031F120 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803234C4 0031F124 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803234C8 0031F128 7C 08 03 A6 */ mtlr r0
+/* 803234CC 0031F12C 38 21 00 10 */ addi r1, r1, 0x10
+/* 803234D0 0031F130 4E 80 00 20 */ blr
+
+DWCi_LoginCallback:
+/* 803234D4 0031F134 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803234D8 0031F138 7C 08 02 A6 */ mflr r0
+/* 803234DC 0031F13C 2C 03 00 00 */ cmpwi r3, 0
+/* 803234E0 0031F140 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803234E4 0031F144 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803234E8 0031F148 7C 9F 23 78 */ mr r31, r4
+/* 803234EC 0031F14C 93 C1 00 08 */ stw r30, 8(r1)
+/* 803234F0 0031F150 7C 7E 1B 78 */ mr r30, r3
+/* 803234F4 0031F154 40 82 00 2C */ bne lbl_80323520
+/* 803234F8 0031F158 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803234FC 0031F15C 38 00 00 03 */ li r0, 3
+/* 80323500 0031F160 90 83 00 64 */ stw r4, 0x64(r3)
+/* 80323504 0031F164 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80323508 0031F168 80 64 00 24 */ lwz r3, 0x24(r4)
+/* 8032350C 0031F16C 90 64 00 28 */ stw r3, 0x28(r4)
+/* 80323510 0031F170 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80323514 0031F174 90 03 00 24 */ stw r0, 0x24(r3)
+/* 80323518 0031F178 4B FF C6 F9 */ bl DWCi_InitGPProcessCount
+/* 8032351C 0031F17C 48 00 00 1C */ b lbl_80323538
+lbl_80323520:
+/* 80323520 0031F180 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80323524 0031F184 38 00 00 00 */ li r0, 0
+/* 80323528 0031F188 80 64 00 24 */ lwz r3, 0x24(r4)
+/* 8032352C 0031F18C 90 64 00 28 */ stw r3, 0x28(r4)
+/* 80323530 0031F190 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80323534 0031F194 90 03 00 24 */ stw r0, 0x24(r3)
+lbl_80323538:
+/* 80323538 0031F198 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 8032353C 0031F19C 81 85 00 70 */ lwz r12, 0x70(r5)
+/* 80323540 0031F1A0 2C 0C 00 00 */ cmpwi r12, 0
+/* 80323544 0031F1A4 41 82 00 18 */ beq lbl_8032355C
+/* 80323548 0031F1A8 7F C3 F3 78 */ mr r3, r30
+/* 8032354C 0031F1AC 7F E4 FB 78 */ mr r4, r31
+/* 80323550 0031F1B0 80 A5 00 74 */ lwz r5, 0x74(r5)
+/* 80323554 0031F1B4 7D 89 03 A6 */ mtctr r12
+/* 80323558 0031F1B8 4E 80 04 21 */ bctrl
+lbl_8032355C:
+/* 8032355C 0031F1BC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80323560 0031F1C0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80323564 0031F1C4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80323568 0031F1C8 7C 08 03 A6 */ mtlr r0
+/* 8032356C 0031F1CC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80323570 0031F1D0 4E 80 00 20 */ blr
+
+DWCi_UpdateServersCallback:
+/* 80323574 0031F1D4 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80323578 0031F1D8 80 C5 00 28 */ lwz r6, 0x28(r5)
+/* 8032357C 0031F1DC 2C 06 00 04 */ cmpwi r6, 4
+/* 80323580 0031F1E0 41 82 00 14 */ beq lbl_80323594
+/* 80323584 0031F1E4 80 05 00 24 */ lwz r0, 0x24(r5)
+/* 80323588 0031F1E8 90 05 00 28 */ stw r0, 0x28(r5)
+/* 8032358C 0031F1EC 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80323590 0031F1F0 90 C5 00 24 */ stw r6, 0x24(r5)
+lbl_80323594:
+/* 80323594 0031F1F4 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80323598 0031F1F8 81 85 00 78 */ lwz r12, 0x78(r5)
+/* 8032359C 0031F1FC 80 A5 00 7C */ lwz r5, 0x7c(r5)
+/* 803235A0 0031F200 7D 89 03 A6 */ mtctr r12
+/* 803235A4 0031F204 4E 80 04 20 */ bctr
+
+DWCi_MatchedCallback:
+/* 803235A8 0031F208 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803235AC 0031F20C 7C 08 02 A6 */ mflr r0
+/* 803235B0 0031F210 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803235B4 0031F214 39 61 00 20 */ addi r11, r1, 0x20
+/* 803235B8 0031F218 4B EA 3B 6D */ bl _savegpr_26
+/* 803235BC 0031F21C 2C 03 00 00 */ cmpwi r3, 0
+/* 803235C0 0031F220 7C 7B 1B 78 */ mr r27, r3
+/* 803235C4 0031F224 7C 9C 23 78 */ mr r28, r4
+/* 803235C8 0031F228 7C BD 2B 78 */ mr r29, r5
+/* 803235CC 0031F22C 7C DE 33 78 */ mr r30, r6
+/* 803235D0 0031F230 7C FF 3B 78 */ mr r31, r7
+/* 803235D4 0031F234 40 82 00 3C */ bne lbl_80323610
+/* 803235D8 0031F238 2C 04 00 00 */ cmpwi r4, 0
+/* 803235DC 0031F23C 41 82 00 34 */ beq lbl_80323610
+/* 803235E0 0031F240 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803235E4 0031F244 80 03 05 04 */ lwz r0, 0x504(r3)
+/* 803235E8 0031F248 2C 00 00 00 */ cmpwi r0, 0
+/* 803235EC 0031F24C 40 82 00 94 */ bne lbl_80323680
+/* 803235F0 0031F250 48 00 3A 9D */ bl func_8032708C
+/* 803235F4 0031F254 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 803235F8 0031F258 38 00 00 03 */ li r0, 3
+/* 803235FC 0031F25C 80 64 00 24 */ lwz r3, 0x24(r4)
+/* 80323600 0031F260 90 64 00 28 */ stw r3, 0x28(r4)
+/* 80323604 0031F264 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80323608 0031F268 90 03 00 24 */ stw r0, 0x24(r3)
+/* 8032360C 0031F26C 48 00 00 74 */ b lbl_80323680
+lbl_80323610:
+/* 80323610 0031F270 2C 03 00 00 */ cmpwi r3, 0
+/* 80323614 0031F274 40 82 00 6C */ bne lbl_80323680
+/* 80323618 0031F278 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 8032361C 0031F27C 38 00 00 06 */ li r0, 6
+/* 80323620 0031F280 38 C0 00 00 */ li r6, 0
+/* 80323624 0031F284 80 64 00 24 */ lwz r3, 0x24(r4)
+/* 80323628 0031F288 90 64 00 28 */ stw r3, 0x28(r4)
+/* 8032362C 0031F28C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80323630 0031F290 90 03 00 24 */ stw r0, 0x24(r3)
+/* 80323634 0031F294 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80323638 0031F298 88 65 03 6D */ lbz r3, 0x36d(r5)
+/* 8032363C 0031F29C 7C A4 2B 78 */ mr r4, r5
+/* 80323640 0031F2A0 38 03 00 01 */ addi r0, r3, 1
+/* 80323644 0031F2A4 7C 09 03 A6 */ mtctr r0
+/* 80323648 0031F2A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8032364C 0031F2AC 41 80 00 34 */ blt lbl_80323680
+lbl_80323650:
+/* 80323650 0031F2B0 80 65 00 64 */ lwz r3, 0x64(r5)
+/* 80323654 0031F2B4 80 04 04 58 */ lwz r0, 0x458(r4)
+/* 80323658 0031F2B8 7C 03 00 00 */ cmpw r3, r0
+/* 8032365C 0031F2BC 40 82 00 18 */ bne lbl_80323674
+/* 80323660 0031F2C0 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80323664 0031F2C4 7C 64 32 14 */ add r3, r4, r6
+/* 80323668 0031F2C8 88 03 06 40 */ lbz r0, 0x640(r3)
+/* 8032366C 0031F2CC 98 04 00 2C */ stb r0, 0x2c(r4)
+/* 80323670 0031F2D0 48 00 00 10 */ b lbl_80323680
+lbl_80323674:
+/* 80323674 0031F2D4 38 84 00 04 */ addi r4, r4, 4
+/* 80323678 0031F2D8 38 C6 00 01 */ addi r6, r6, 1
+/* 8032367C 0031F2DC 42 00 FF D4 */ bdnz lbl_80323650
+lbl_80323680:
+/* 80323680 0031F2E0 80 CD B0 58 */ lwz r6, lbl_80640318-_SDA_BASE_(r13)
+/* 80323684 0031F2E4 38 A0 00 00 */ li r5, 0
+/* 80323688 0031F2E8 38 80 00 00 */ li r4, 0
+/* 8032368C 0031F2EC 88 66 03 6D */ lbz r3, 0x36d(r6)
+/* 80323690 0031F2F0 38 06 06 40 */ addi r0, r6, 0x640
+/* 80323694 0031F2F4 38 63 00 01 */ addi r3, r3, 1
+/* 80323698 0031F2F8 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 8032369C 0031F2FC 40 85 00 E4 */ ble cr1, lbl_80323780
+/* 803236A0 0031F300 2C 03 00 08 */ cmpwi r3, 8
+/* 803236A4 0031F304 38 E3 FF F8 */ addi r7, r3, -8
+/* 803236A8 0031F308 40 81 00 AC */ ble lbl_80323754
+/* 803236AC 0031F30C 39 00 00 00 */ li r8, 0
+/* 803236B0 0031F310 41 84 00 18 */ blt cr1, lbl_803236C8
+/* 803236B4 0031F314 3C C0 80 00 */ lis r6, 0x7FFFFFFE@ha
+/* 803236B8 0031F318 38 C6 FF FE */ addi r6, r6, 0x7FFFFFFE@l
+/* 803236BC 0031F31C 7C 03 30 00 */ cmpw r3, r6
+/* 803236C0 0031F320 41 81 00 08 */ bgt lbl_803236C8
+/* 803236C4 0031F324 39 00 00 01 */ li r8, 1
+lbl_803236C8:
+/* 803236C8 0031F328 2C 08 00 00 */ cmpwi r8, 0
+/* 803236CC 0031F32C 41 82 00 88 */ beq lbl_80323754
+/* 803236D0 0031F330 38 C7 00 07 */ addi r6, r7, 7
+/* 803236D4 0031F334 39 80 00 01 */ li r12, 1
+/* 803236D8 0031F338 54 C6 E8 FE */ srwi r6, r6, 3
+/* 803236DC 0031F33C 7C C9 03 A6 */ mtctr r6
+/* 803236E0 0031F340 2C 07 00 00 */ cmpwi r7, 0
+/* 803236E4 0031F344 40 81 00 70 */ ble lbl_80323754
+lbl_803236E8:
+/* 803236E8 0031F348 7F 40 22 14 */ add r26, r0, r4
+/* 803236EC 0031F34C 7C C4 00 AE */ lbzx r6, r4, r0
+/* 803236F0 0031F350 88 FA 00 01 */ lbz r7, 1(r26)
+/* 803236F4 0031F354 38 84 00 08 */ addi r4, r4, 8
+/* 803236F8 0031F358 7D 88 30 30 */ slw r8, r12, r6
+/* 803236FC 0031F35C 88 DA 00 02 */ lbz r6, 2(r26)
+/* 80323700 0031F360 89 5A 00 03 */ lbz r10, 3(r26)
+/* 80323704 0031F364 7C A5 43 78 */ or r5, r5, r8
+/* 80323708 0031F368 7D 87 38 30 */ slw r7, r12, r7
+/* 8032370C 0031F36C 89 3A 00 04 */ lbz r9, 4(r26)
+/* 80323710 0031F370 7C A5 3B 78 */ or r5, r5, r7
+/* 80323714 0031F374 7D 8B 30 30 */ slw r11, r12, r6
+/* 80323718 0031F378 89 1A 00 05 */ lbz r8, 5(r26)
+/* 8032371C 0031F37C 7C A5 5B 78 */ or r5, r5, r11
+/* 80323720 0031F380 7D 8A 50 30 */ slw r10, r12, r10
+/* 80323724 0031F384 88 FA 00 06 */ lbz r7, 6(r26)
+/* 80323728 0031F388 88 DA 00 07 */ lbz r6, 7(r26)
+/* 8032372C 0031F38C 7D 89 48 30 */ slw r9, r12, r9
+/* 80323730 0031F390 7C A5 53 78 */ or r5, r5, r10
+/* 80323734 0031F394 7D 88 40 30 */ slw r8, r12, r8
+/* 80323738 0031F398 7C A5 4B 78 */ or r5, r5, r9
+/* 8032373C 0031F39C 7D 87 38 30 */ slw r7, r12, r7
+/* 80323740 0031F3A0 7C A5 43 78 */ or r5, r5, r8
+/* 80323744 0031F3A4 7D 86 30 30 */ slw r6, r12, r6
+/* 80323748 0031F3A8 7C A5 3B 78 */ or r5, r5, r7
+/* 8032374C 0031F3AC 7C A5 33 78 */ or r5, r5, r6
+/* 80323750 0031F3B0 42 00 FF 98 */ bdnz lbl_803236E8
+lbl_80323754:
+/* 80323754 0031F3B4 7C C4 18 50 */ subf r6, r4, r3
+/* 80323758 0031F3B8 7C E0 22 14 */ add r7, r0, r4
+/* 8032375C 0031F3BC 39 00 00 01 */ li r8, 1
+/* 80323760 0031F3C0 7C C9 03 A6 */ mtctr r6
+/* 80323764 0031F3C4 7C 04 18 00 */ cmpw r4, r3
+/* 80323768 0031F3C8 40 80 00 18 */ bge lbl_80323780
+lbl_8032376C:
+/* 8032376C 0031F3CC 88 07 00 00 */ lbz r0, 0(r7)
+/* 80323770 0031F3D0 38 E7 00 01 */ addi r7, r7, 1
+/* 80323774 0031F3D4 7D 00 00 30 */ slw r0, r8, r0
+/* 80323778 0031F3D8 7C A5 03 78 */ or r5, r5, r0
+/* 8032377C 0031F3DC 42 00 FF F0 */ bdnz lbl_8032376C
+lbl_80323780:
+/* 80323780 0031F3E0 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80323784 0031F3E4 90 A3 06 60 */ stw r5, 0x660(r3)
+/* 80323788 0031F3E8 48 00 44 71 */ bl func_80327BF8
+/* 8032378C 0031F3EC 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 80323790 0031F3F0 88 05 03 75 */ lbz r0, 0x375(r5)
+/* 80323794 0031F3F4 28 00 00 02 */ cmplwi r0, 2
+/* 80323798 0031F3F8 41 82 00 10 */ beq lbl_803237A8
+/* 8032379C 0031F3FC 88 05 03 75 */ lbz r0, 0x375(r5)
+/* 803237A0 0031F400 28 00 00 03 */ cmplwi r0, 3
+/* 803237A4 0031F404 40 82 00 30 */ bne lbl_803237D4
+lbl_803237A8:
+/* 803237A8 0031F408 81 0D B0 58 */ lwz r8, lbl_80640318-_SDA_BASE_(r13)
+/* 803237AC 0031F40C 7F 63 DB 78 */ mr r3, r27
+/* 803237B0 0031F410 7F 84 E3 78 */ mr r4, r28
+/* 803237B4 0031F414 7F A5 EB 78 */ mr r5, r29
+/* 803237B8 0031F418 81 88 00 88 */ lwz r12, 0x88(r8)
+/* 803237BC 0031F41C 7F C6 F3 78 */ mr r6, r30
+/* 803237C0 0031F420 7F E7 FB 78 */ mr r7, r31
+/* 803237C4 0031F424 81 08 00 8C */ lwz r8, 0x8c(r8)
+/* 803237C8 0031F428 7D 89 03 A6 */ mtctr r12
+/* 803237CC 0031F42C 4E 80 04 21 */ bctrl
+/* 803237D0 0031F430 48 00 00 1C */ b lbl_803237EC
+lbl_803237D4:
+/* 803237D4 0031F434 81 85 00 80 */ lwz r12, 0x80(r5)
+/* 803237D8 0031F438 7F 63 DB 78 */ mr r3, r27
+/* 803237DC 0031F43C 7F 84 E3 78 */ mr r4, r28
+/* 803237E0 0031F440 80 A5 00 84 */ lwz r5, 0x84(r5)
+/* 803237E4 0031F444 7D 89 03 A6 */ mtctr r12
+/* 803237E8 0031F448 4E 80 04 21 */ bctrl
+lbl_803237EC:
+/* 803237EC 0031F44C 2C 1B 00 00 */ cmpwi r27, 0
+/* 803237F0 0031F450 41 82 00 2C */ beq lbl_8032381C
+/* 803237F4 0031F454 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803237F8 0031F458 2C 03 00 00 */ cmpwi r3, 0
+/* 803237FC 0031F45C 41 82 00 20 */ beq lbl_8032381C
+/* 80323800 0031F460 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 80323804 0031F464 2C 00 00 05 */ cmpwi r0, 5
+/* 80323808 0031F468 40 82 00 14 */ bne lbl_8032381C
+/* 8032380C 0031F46C 90 03 00 28 */ stw r0, 0x28(r3)
+/* 80323810 0031F470 38 00 00 03 */ li r0, 3
+/* 80323814 0031F474 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80323818 0031F478 90 03 00 24 */ stw r0, 0x24(r3)
+lbl_8032381C:
+/* 8032381C 0031F47C 39 61 00 20 */ addi r11, r1, 0x20
+/* 80323820 0031F480 4B EA 39 51 */ bl _restgpr_26
+/* 80323824 0031F484 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80323828 0031F488 7C 08 03 A6 */ mtlr r0
+/* 8032382C 0031F48C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80323830 0031F490 4E 80 00 20 */ blr
+
+DWCi_GPErrorCallback:
+/* 80323834 0031F494 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80323838 0031F498 7C 08 02 A6 */ mflr r0
+/* 8032383C 0031F49C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80323840 0031F4A0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80323844 0031F4A4 3F E0 80 44 */ lis r31, lbl_80447648@ha
+/* 80323848 0031F4A8 3B FF 76 48 */ addi r31, r31, lbl_80447648@l
+/* 8032384C 0031F4AC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80323850 0031F4B0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80323854 0031F4B4 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80323858 0031F4B8 7C 9C 23 78 */ mr r28, r4
+/* 8032385C 0031F4BC 80 A4 00 04 */ lwz r5, 4(r4)
+/* 80323860 0031F4C0 2C 05 06 03 */ cmpwi r5, 0x603
+/* 80323864 0031F4C4 41 82 00 14 */ beq lbl_80323878
+/* 80323868 0031F4C8 2C 05 09 01 */ cmpwi r5, 0x901
+/* 8032386C 0031F4CC 41 82 00 0C */ beq lbl_80323878
+/* 80323870 0031F4D0 2C 05 0B 01 */ cmpwi r5, 0xb01
+/* 80323874 0031F4D4 40 82 00 18 */ bne lbl_8032388C
+lbl_80323878:
+/* 80323878 0031F4D8 38 9F 03 A0 */ addi r4, r31, 0x3a0
+/* 8032387C 0031F4DC 38 60 00 04 */ li r3, 4
+/* 80323880 0031F4E0 4C C6 31 82 */ crclr 6
+/* 80323884 0031F4E4 4B FF 92 B1 */ bl DWC_Printf
+/* 80323888 0031F4E8 48 00 03 FC */ b lbl_80323C84
+lbl_8032388C:
+/* 8032388C 0031F4EC 80 04 00 00 */ lwz r0, 0(r4)
+/* 80323890 0031F4F0 2C 00 00 02 */ cmpwi r0, 2
+/* 80323894 0031F4F4 41 82 00 38 */ beq lbl_803238CC
+/* 80323898 0031F4F8 40 80 00 14 */ bge lbl_803238AC
+/* 8032389C 0031F4FC 2C 00 00 00 */ cmpwi r0, 0
+/* 803238A0 0031F500 41 82 00 1C */ beq lbl_803238BC
+/* 803238A4 0031F504 40 80 00 20 */ bge lbl_803238C4
+/* 803238A8 0031F508 48 00 00 3C */ b lbl_803238E4
+lbl_803238AC:
+/* 803238AC 0031F50C 2C 00 00 04 */ cmpwi r0, 4
+/* 803238B0 0031F510 41 82 00 2C */ beq lbl_803238DC
+/* 803238B4 0031F514 40 80 00 30 */ bge lbl_803238E4
+/* 803238B8 0031F518 48 00 00 1C */ b lbl_803238D4
+lbl_803238BC:
+/* 803238BC 0031F51C 3B BF 03 CC */ addi r29, r31, 0x3cc
+/* 803238C0 0031F520 48 00 00 28 */ b lbl_803238E8
+lbl_803238C4:
+/* 803238C4 0031F524 3B BF 03 D8 */ addi r29, r31, 0x3d8
+/* 803238C8 0031F528 48 00 00 20 */ b lbl_803238E8
+lbl_803238CC:
+/* 803238CC 0031F52C 3B BF 03 E8 */ addi r29, r31, 0x3e8
+/* 803238D0 0031F530 48 00 00 18 */ b lbl_803238E8
+lbl_803238D4:
+/* 803238D4 0031F534 3B BF 03 FC */ addi r29, r31, 0x3fc
+/* 803238D8 0031F538 48 00 00 10 */ b lbl_803238E8
+lbl_803238DC:
+/* 803238DC 0031F53C 3B BF 04 10 */ addi r29, r31, 0x410
+/* 803238E0 0031F540 48 00 00 08 */ b lbl_803238E8
+lbl_803238E4:
+/* 803238E4 0031F544 3B BF 04 20 */ addi r29, r31, 0x420
+lbl_803238E8:
+/* 803238E8 0031F548 2C 05 04 02 */ cmpwi r5, 0x402
+/* 803238EC 0031F54C 41 82 02 70 */ beq lbl_80323B5C
+/* 803238F0 0031F550 40 80 00 D4 */ bge lbl_803239C4
+/* 803238F4 0031F554 2C 05 01 04 */ cmpwi r5, 0x104
+/* 803238F8 0031F558 41 82 02 04 */ beq lbl_80323AFC
+/* 803238FC 0031F55C 40 80 00 68 */ bge lbl_80323964
+/* 80323900 0031F560 2C 05 00 06 */ cmpwi r5, 6
+/* 80323904 0031F564 41 82 01 C8 */ beq lbl_80323ACC
+/* 80323908 0031F568 40 80 00 30 */ bge lbl_80323938
+/* 8032390C 0031F56C 2C 05 00 02 */ cmpwi r5, 2
+/* 80323910 0031F570 41 82 01 9C */ beq lbl_80323AAC
+/* 80323914 0031F574 40 80 00 14 */ bge lbl_80323928
+/* 80323918 0031F578 2C 05 00 00 */ cmpwi r5, 0
+/* 8032391C 0031F57C 41 82 01 80 */ beq lbl_80323A9C
+/* 80323920 0031F580 40 80 01 84 */ bge lbl_80323AA4
+/* 80323924 0031F584 48 00 02 E0 */ b lbl_80323C04
+lbl_80323928:
+/* 80323928 0031F588 2C 05 00 04 */ cmpwi r5, 4
+/* 8032392C 0031F58C 41 82 01 90 */ beq lbl_80323ABC
+/* 80323930 0031F590 40 80 01 94 */ bge lbl_80323AC4
+/* 80323934 0031F594 48 00 01 80 */ b lbl_80323AB4
+lbl_80323938:
+/* 80323938 0031F598 2C 05 01 01 */ cmpwi r5, 0x101
+/* 8032393C 0031F59C 41 82 01 A8 */ beq lbl_80323AE4
+/* 80323940 0031F5A0 40 80 00 18 */ bge lbl_80323958
+/* 80323944 0031F5A4 2C 05 01 00 */ cmpwi r5, 0x100
+/* 80323948 0031F5A8 40 80 01 94 */ bge lbl_80323ADC
+/* 8032394C 0031F5AC 2C 05 00 08 */ cmpwi r5, 8
+/* 80323950 0031F5B0 40 80 02 B4 */ bge lbl_80323C04
+/* 80323954 0031F5B4 48 00 01 80 */ b lbl_80323AD4
+lbl_80323958:
+/* 80323958 0031F5B8 2C 05 01 03 */ cmpwi r5, 0x103
+/* 8032395C 0031F5BC 40 80 01 98 */ bge lbl_80323AF4
+/* 80323960 0031F5C0 48 00 01 8C */ b lbl_80323AEC
+lbl_80323964:
+/* 80323964 0031F5C4 2C 05 02 02 */ cmpwi r5, 0x202
+/* 80323968 0031F5C8 41 82 01 CC */ beq lbl_80323B34
+/* 8032396C 0031F5CC 40 80 00 30 */ bge lbl_8032399C
+/* 80323970 0031F5D0 2C 05 01 08 */ cmpwi r5, 0x108
+/* 80323974 0031F5D4 41 82 01 A8 */ beq lbl_80323B1C
+/* 80323978 0031F5D8 40 80 00 14 */ bge lbl_8032398C
+/* 8032397C 0031F5DC 2C 05 01 06 */ cmpwi r5, 0x106
+/* 80323980 0031F5E0 41 82 01 8C */ beq lbl_80323B0C
+/* 80323984 0031F5E4 40 80 01 90 */ bge lbl_80323B14
+/* 80323988 0031F5E8 48 00 01 7C */ b lbl_80323B04
+lbl_8032398C:
+/* 8032398C 0031F5EC 2C 05 02 00 */ cmpwi r5, 0x200
+/* 80323990 0031F5F0 41 82 01 94 */ beq lbl_80323B24
+/* 80323994 0031F5F4 40 80 01 98 */ bge lbl_80323B2C
+/* 80323998 0031F5F8 48 00 02 6C */ b lbl_80323C04
+lbl_8032399C:
+/* 8032399C 0031F5FC 2C 05 03 01 */ cmpwi r5, 0x301
+/* 803239A0 0031F600 41 82 01 A4 */ beq lbl_80323B44
+/* 803239A4 0031F604 40 80 00 10 */ bge lbl_803239B4
+/* 803239A8 0031F608 2C 05 03 00 */ cmpwi r5, 0x300
+/* 803239AC 0031F60C 40 80 01 90 */ bge lbl_80323B3C
+/* 803239B0 0031F610 48 00 02 54 */ b lbl_80323C04
+lbl_803239B4:
+/* 803239B4 0031F614 2C 05 04 00 */ cmpwi r5, 0x400
+/* 803239B8 0031F618 41 82 01 94 */ beq lbl_80323B4C
+/* 803239BC 0031F61C 40 80 01 98 */ bge lbl_80323B54
+/* 803239C0 0031F620 48 00 02 44 */ b lbl_80323C04
+lbl_803239C4:
+/* 803239C4 0031F624 2C 05 09 00 */ cmpwi r5, 0x900
+/* 803239C8 0031F628 41 82 01 EC */ beq lbl_80323BB4
+/* 803239CC 0031F62C 40 80 00 68 */ bge lbl_80323A34
+/* 803239D0 0031F630 2C 05 06 03 */ cmpwi r5, 0x603
+/* 803239D4 0031F634 41 82 01 B8 */ beq lbl_80323B8C
+/* 803239D8 0031F638 40 80 00 34 */ bge lbl_80323A0C
+/* 803239DC 0031F63C 2C 05 06 00 */ cmpwi r5, 0x600
+/* 803239E0 0031F640 41 82 01 94 */ beq lbl_80323B74
+/* 803239E4 0031F644 40 80 00 1C */ bge lbl_80323A00
+/* 803239E8 0031F648 2C 05 05 01 */ cmpwi r5, 0x501
+/* 803239EC 0031F64C 41 82 01 80 */ beq lbl_80323B6C
+/* 803239F0 0031F650 40 80 02 14 */ bge lbl_80323C04
+/* 803239F4 0031F654 2C 05 05 00 */ cmpwi r5, 0x500
+/* 803239F8 0031F658 40 80 01 6C */ bge lbl_80323B64
+/* 803239FC 0031F65C 48 00 02 08 */ b lbl_80323C04
+lbl_80323A00:
+/* 80323A00 0031F660 2C 05 06 02 */ cmpwi r5, 0x602
+/* 80323A04 0031F664 40 80 01 80 */ bge lbl_80323B84
+/* 80323A08 0031F668 48 00 01 74 */ b lbl_80323B7C
+lbl_80323A0C:
+/* 80323A0C 0031F66C 2C 05 07 02 */ cmpwi r5, 0x702
+/* 80323A10 0031F670 41 82 01 94 */ beq lbl_80323BA4
+/* 80323A14 0031F674 40 80 00 14 */ bge lbl_80323A28
+/* 80323A18 0031F678 2C 05 07 00 */ cmpwi r5, 0x700
+/* 80323A1C 0031F67C 41 82 01 78 */ beq lbl_80323B94
+/* 80323A20 0031F680 40 80 01 7C */ bge lbl_80323B9C
+/* 80323A24 0031F684 48 00 01 E0 */ b lbl_80323C04
+lbl_80323A28:
+/* 80323A28 0031F688 2C 05 08 00 */ cmpwi r5, 0x800
+/* 80323A2C 0031F68C 41 82 01 80 */ beq lbl_80323BAC
+/* 80323A30 0031F690 48 00 01 D4 */ b lbl_80323C04
+lbl_80323A34:
+/* 80323A34 0031F694 2C 05 0B 01 */ cmpwi r5, 0xb01
+/* 80323A38 0031F698 41 82 01 A4 */ beq lbl_80323BDC
+/* 80323A3C 0031F69C 40 80 00 30 */ bge lbl_80323A6C
+/* 80323A40 0031F6A0 2C 05 0A 01 */ cmpwi r5, 0xa01
+/* 80323A44 0031F6A4 41 82 01 88 */ beq lbl_80323BCC
+/* 80323A48 0031F6A8 40 80 00 18 */ bge lbl_80323A60
+/* 80323A4C 0031F6AC 2C 05 0A 00 */ cmpwi r5, 0xa00
+/* 80323A50 0031F6B0 40 80 01 74 */ bge lbl_80323BC4
+/* 80323A54 0031F6B4 2C 05 09 02 */ cmpwi r5, 0x902
+/* 80323A58 0031F6B8 40 80 01 AC */ bge lbl_80323C04
+/* 80323A5C 0031F6BC 48 00 01 60 */ b lbl_80323BBC
+lbl_80323A60:
+/* 80323A60 0031F6C0 2C 05 0B 00 */ cmpwi r5, 0xb00
+/* 80323A64 0031F6C4 40 80 01 70 */ bge lbl_80323BD4
+/* 80323A68 0031F6C8 48 00 01 9C */ b lbl_80323C04
+lbl_80323A6C:
+/* 80323A6C 0031F6CC 2C 05 0D 00 */ cmpwi r5, 0xd00
+/* 80323A70 0031F6D0 41 82 01 84 */ beq lbl_80323BF4
+/* 80323A74 0031F6D4 40 80 00 1C */ bge lbl_80323A90
+/* 80323A78 0031F6D8 2C 05 0C 01 */ cmpwi r5, 0xc01
+/* 80323A7C 0031F6DC 41 82 01 70 */ beq lbl_80323BEC
+/* 80323A80 0031F6E0 40 80 01 84 */ bge lbl_80323C04
+/* 80323A84 0031F6E4 2C 05 0C 00 */ cmpwi r5, 0xc00
+/* 80323A88 0031F6E8 40 80 01 5C */ bge lbl_80323BE4
+/* 80323A8C 0031F6EC 48 00 01 78 */ b lbl_80323C04
+lbl_80323A90:
+/* 80323A90 0031F6F0 2C 05 0D 02 */ cmpwi r5, 0xd02
+/* 80323A94 0031F6F4 40 80 01 70 */ bge lbl_80323C04
+/* 80323A98 0031F6F8 48 00 01 64 */ b lbl_80323BFC
+lbl_80323A9C:
+/* 80323A9C 0031F6FC 3B DF 04 34 */ addi r30, r31, 0x434
+/* 80323AA0 0031F700 48 00 01 68 */ b lbl_80323C08
+lbl_80323AA4:
+/* 80323AA4 0031F704 3B DF 04 40 */ addi r30, r31, 0x440
+/* 80323AA8 0031F708 48 00 01 60 */ b lbl_80323C08
+lbl_80323AAC:
+/* 80323AAC 0031F70C 3B DF 04 4C */ addi r30, r31, 0x44c
+/* 80323AB0 0031F710 48 00 01 58 */ b lbl_80323C08
+lbl_80323AB4:
+/* 80323AB4 0031F714 3B DF 04 60 */ addi r30, r31, 0x460
+/* 80323AB8 0031F718 48 00 01 50 */ b lbl_80323C08
+lbl_80323ABC:
+/* 80323ABC 0031F71C 3B DF 04 70 */ addi r30, r31, 0x470
+/* 80323AC0 0031F720 48 00 01 48 */ b lbl_80323C08
+lbl_80323AC4:
+/* 80323AC4 0031F724 3B DF 04 7C */ addi r30, r31, 0x47c
+/* 80323AC8 0031F728 48 00 01 40 */ b lbl_80323C08
+lbl_80323ACC:
+/* 80323ACC 0031F72C 3B DF 04 88 */ addi r30, r31, 0x488
+/* 80323AD0 0031F730 48 00 01 38 */ b lbl_80323C08
+lbl_80323AD4:
+/* 80323AD4 0031F734 3B DF 04 A0 */ addi r30, r31, 0x4a0
+/* 80323AD8 0031F738 48 00 01 30 */ b lbl_80323C08
+lbl_80323ADC:
+/* 80323ADC 0031F73C 3B DF 04 B8 */ addi r30, r31, 0x4b8
+/* 80323AE0 0031F740 48 00 01 28 */ b lbl_80323C08
+lbl_80323AE4:
+/* 80323AE4 0031F744 3B DF 04 C4 */ addi r30, r31, 0x4c4
+/* 80323AE8 0031F748 48 00 01 20 */ b lbl_80323C08
+lbl_80323AEC:
+/* 80323AEC 0031F74C 3B DF 04 D8 */ addi r30, r31, 0x4d8
+/* 80323AF0 0031F750 48 00 01 18 */ b lbl_80323C08
+lbl_80323AF4:
+/* 80323AF4 0031F754 3B DF 04 EC */ addi r30, r31, 0x4ec
+/* 80323AF8 0031F758 48 00 01 10 */ b lbl_80323C08
+lbl_80323AFC:
+/* 80323AFC 0031F75C 3B DF 05 00 */ addi r30, r31, 0x500
+/* 80323B00 0031F760 48 00 01 08 */ b lbl_80323C08
+lbl_80323B04:
+/* 80323B04 0031F764 3B DF 05 18 */ addi r30, r31, 0x518
+/* 80323B08 0031F768 48 00 01 00 */ b lbl_80323C08
+lbl_80323B0C:
+/* 80323B0C 0031F76C 3B DF 05 30 */ addi r30, r31, 0x530
+/* 80323B10 0031F770 48 00 00 F8 */ b lbl_80323C08
+lbl_80323B14:
+/* 80323B14 0031F774 3B DF 05 4C */ addi r30, r31, 0x54c
+/* 80323B18 0031F778 48 00 00 F0 */ b lbl_80323C08
+lbl_80323B1C:
+/* 80323B1C 0031F77C 3B DF 05 68 */ addi r30, r31, 0x568
+/* 80323B20 0031F780 48 00 00 E8 */ b lbl_80323C08
+lbl_80323B24:
+/* 80323B24 0031F784 3B DF 05 84 */ addi r30, r31, 0x584
+/* 80323B28 0031F788 48 00 00 E0 */ b lbl_80323C08
+lbl_80323B2C:
+/* 80323B2C 0031F78C 3B DF 05 90 */ addi r30, r31, 0x590
+/* 80323B30 0031F790 48 00 00 D8 */ b lbl_80323C08
+lbl_80323B34:
+/* 80323B34 0031F794 3B DF 05 A8 */ addi r30, r31, 0x5a8
+/* 80323B38 0031F798 48 00 00 D0 */ b lbl_80323C08
+lbl_80323B3C:
+/* 80323B3C 0031F79C 3B DF 05 C0 */ addi r30, r31, 0x5c0
+/* 80323B40 0031F7A0 48 00 00 C8 */ b lbl_80323C08
+lbl_80323B44:
+/* 80323B44 0031F7A4 3B DF 05 CC */ addi r30, r31, 0x5cc
+/* 80323B48 0031F7A8 48 00 00 C0 */ b lbl_80323C08
+lbl_80323B4C:
+/* 80323B4C 0031F7AC 3B DF 05 E4 */ addi r30, r31, 0x5e4
+/* 80323B50 0031F7B0 48 00 00 B8 */ b lbl_80323C08
+lbl_80323B54:
+/* 80323B54 0031F7B4 3B DF 05 F4 */ addi r30, r31, 0x5f4
+/* 80323B58 0031F7B8 48 00 00 B0 */ b lbl_80323C08
+lbl_80323B5C:
+/* 80323B5C 0031F7BC 3B DF 06 0C */ addi r30, r31, 0x60c
+/* 80323B60 0031F7C0 48 00 00 A8 */ b lbl_80323C08
+lbl_80323B64:
+/* 80323B64 0031F7C4 3B DF 06 28 */ addi r30, r31, 0x628
+/* 80323B68 0031F7C8 48 00 00 A0 */ b lbl_80323C08
+lbl_80323B6C:
+/* 80323B6C 0031F7CC 3B DF 06 38 */ addi r30, r31, 0x638
+/* 80323B70 0031F7D0 48 00 00 98 */ b lbl_80323C08
+lbl_80323B74:
+/* 80323B74 0031F7D4 3B DF 06 50 */ addi r30, r31, 0x650
+/* 80323B78 0031F7D8 48 00 00 90 */ b lbl_80323C08
+lbl_80323B7C:
+/* 80323B7C 0031F7DC 3B DF 06 5C */ addi r30, r31, 0x65c
+/* 80323B80 0031F7E0 48 00 00 88 */ b lbl_80323C08
+lbl_80323B84:
+/* 80323B84 0031F7E4 3B DF 06 74 */ addi r30, r31, 0x674
+/* 80323B88 0031F7E8 48 00 00 80 */ b lbl_80323C08
+lbl_80323B8C:
+/* 80323B8C 0031F7EC 3B DF 06 88 */ addi r30, r31, 0x688
+/* 80323B90 0031F7F0 48 00 00 78 */ b lbl_80323C08
+lbl_80323B94:
+/* 80323B94 0031F7F4 3B DF 06 A4 */ addi r30, r31, 0x6a4
+/* 80323B98 0031F7F8 48 00 00 70 */ b lbl_80323C08
+lbl_80323B9C:
+/* 80323B9C 0031F7FC 3B DF 06 B0 */ addi r30, r31, 0x6b0
+/* 80323BA0 0031F800 48 00 00 68 */ b lbl_80323C08
+lbl_80323BA4:
+/* 80323BA4 0031F804 3B DF 06 C4 */ addi r30, r31, 0x6c4
+/* 80323BA8 0031F808 48 00 00 60 */ b lbl_80323C08
+lbl_80323BAC:
+/* 80323BAC 0031F80C 3B DF 06 D8 */ addi r30, r31, 0x6d8
+/* 80323BB0 0031F810 48 00 00 58 */ b lbl_80323C08
+lbl_80323BB4:
+/* 80323BB4 0031F814 3B CD 8D 8C */ addi r30, r13, lbl_8063E04C-_SDA_BASE_
+/* 80323BB8 0031F818 48 00 00 50 */ b lbl_80323C08
+lbl_80323BBC:
+/* 80323BBC 0031F81C 3B DF 06 E8 */ addi r30, r31, 0x6e8
+/* 80323BC0 0031F820 48 00 00 48 */ b lbl_80323C08
+lbl_80323BC4:
+/* 80323BC4 0031F824 3B DF 06 F8 */ addi r30, r31, 0x6f8
+/* 80323BC8 0031F828 48 00 00 40 */ b lbl_80323C08
+lbl_80323BCC:
+/* 80323BCC 0031F82C 3B DF 07 08 */ addi r30, r31, 0x708
+/* 80323BD0 0031F830 48 00 00 38 */ b lbl_80323C08
+lbl_80323BD4:
+/* 80323BD4 0031F834 3B DF 07 24 */ addi r30, r31, 0x724
+/* 80323BD8 0031F838 48 00 00 30 */ b lbl_80323C08
+lbl_80323BDC:
+/* 80323BDC 0031F83C 3B DF 07 30 */ addi r30, r31, 0x730
+/* 80323BE0 0031F840 48 00 00 28 */ b lbl_80323C08
+lbl_80323BE4:
+/* 80323BE4 0031F844 3B DF 07 48 */ addi r30, r31, 0x748
+/* 80323BE8 0031F848 48 00 00 20 */ b lbl_80323C08
+lbl_80323BEC:
+/* 80323BEC 0031F84C 3B DF 07 58 */ addi r30, r31, 0x758
+/* 80323BF0 0031F850 48 00 00 18 */ b lbl_80323C08
+lbl_80323BF4:
+/* 80323BF4 0031F854 3B DF 07 74 */ addi r30, r31, 0x774
+/* 80323BF8 0031F858 48 00 00 10 */ b lbl_80323C08
+lbl_80323BFC:
+/* 80323BFC 0031F85C 3B DF 07 80 */ addi r30, r31, 0x780
+/* 80323C00 0031F860 48 00 00 08 */ b lbl_80323C08
+lbl_80323C04:
+/* 80323C04 0031F864 3B DF 07 9C */ addi r30, r31, 0x79c
+lbl_80323C08:
+/* 80323C08 0031F868 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 80323C0C 0031F86C 2C 00 00 00 */ cmpwi r0, 0
+/* 80323C10 0031F870 41 82 00 18 */ beq lbl_80323C28
+/* 80323C14 0031F874 38 9F 07 B4 */ addi r4, r31, 0x7b4
+/* 80323C18 0031F878 38 60 00 02 */ li r3, 2
+/* 80323C1C 0031F87C 4C C6 31 82 */ crclr 6
+/* 80323C20 0031F880 4B FF 8F 15 */ bl DWC_Printf
+/* 80323C24 0031F884 48 00 00 14 */ b lbl_80323C38
+lbl_80323C28:
+/* 80323C28 0031F888 38 60 00 02 */ li r3, 2
+/* 80323C2C 0031F88C 38 8D 8D 94 */ addi r4, r13, lbl_8063E054-_SDA_BASE_
+/* 80323C30 0031F890 4C C6 31 82 */ crclr 6
+/* 80323C34 0031F894 4B FF 8F 01 */ bl DWC_Printf
+lbl_80323C38:
+/* 80323C38 0031F898 80 DC 00 00 */ lwz r6, 0(r28)
+/* 80323C3C 0031F89C 7F A5 EB 78 */ mr r5, r29
+/* 80323C40 0031F8A0 38 9F 07 C4 */ addi r4, r31, 0x7c4
+/* 80323C44 0031F8A4 38 60 00 02 */ li r3, 2
+/* 80323C48 0031F8A8 4C C6 31 82 */ crclr 6
+/* 80323C4C 0031F8AC 4B FF 8E E9 */ bl DWC_Printf
+/* 80323C50 0031F8B0 80 DC 00 04 */ lwz r6, 4(r28)
+/* 80323C54 0031F8B4 7F C5 F3 78 */ mr r5, r30
+/* 80323C58 0031F8B8 38 9F 07 D8 */ addi r4, r31, 0x7d8
+/* 80323C5C 0031F8BC 38 60 00 02 */ li r3, 2
+/* 80323C60 0031F8C0 4C C6 31 82 */ crclr 6
+/* 80323C64 0031F8C4 4B FF 8E D1 */ bl DWC_Printf
+/* 80323C68 0031F8C8 80 BC 00 08 */ lwz r5, 8(r28)
+/* 80323C6C 0031F8CC 38 9F 07 F0 */ addi r4, r31, 0x7f0
+/* 80323C70 0031F8D0 38 60 00 02 */ li r3, 2
+/* 80323C74 0031F8D4 4C C6 31 82 */ crclr 6
+/* 80323C78 0031F8D8 4B FF 8E BD */ bl DWC_Printf
+/* 80323C7C 0031F8DC 38 60 00 03 */ li r3, 3
+/* 80323C80 0031F8E0 4B FF F6 0D */ bl DWCi_HandleGPError
+lbl_80323C84:
+/* 80323C84 0031F8E4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80323C88 0031F8E8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80323C8C 0031F8EC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80323C90 0031F8F0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80323C94 0031F8F4 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80323C98 0031F8F8 7C 08 03 A6 */ mtlr r0
+/* 80323C9C 0031F8FC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80323CA0 0031F900 4E 80 00 20 */ blr
+
+DWCi_GPRecvBuddyMessageCallback:
+/* 80323CA4 0031F904 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80323CA8 0031F908 7C 08 02 A6 */ mflr r0
+/* 80323CAC 0031F90C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80323CB0 0031F910 39 61 00 30 */ addi r11, r1, 0x30
+/* 80323CB4 0031F914 4B EA 34 75 */ bl _savegpr_27
+/* 80323CB8 0031F918 38 00 00 00 */ li r0, 0
+/* 80323CBC 0031F91C 3F E0 80 44 */ lis r31, lbl_80447648@ha
+/* 80323CC0 0031F920 90 01 00 08 */ stw r0, 8(r1)
+/* 80323CC4 0031F924 7C 7B 1B 78 */ mr r27, r3
+/* 80323CC8 0031F928 7C 9C 23 78 */ mr r28, r4
+/* 80323CCC 0031F92C 3B FF 76 48 */ addi r31, r31, lbl_80447648@l
+/* 80323CD0 0031F930 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80323CD4 0031F934 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80323CD8 0031F938 83 C4 00 08 */ lwz r30, 8(r4)
+/* 80323CDC 0031F93C 4B FF BC 3D */ bl DWCi_GPRecvBuddyAuthCallback
+/* 80323CE0 0031F940 2C 03 00 00 */ cmpwi r3, 0
+/* 80323CE4 0031F944 40 82 01 24 */ bne lbl_80323E08
+/* 80323CE8 0031F948 38 6D 8D 9C */ addi r3, r13, lbl_8063E05C-_SDA_BASE_
+/* 80323CEC 0031F94C 4B EA 2E 79 */ bl strlen
+/* 80323CF0 0031F950 7C 65 1B 78 */ mr r5, r3
+/* 80323CF4 0031F954 7F C3 F3 78 */ mr r3, r30
+/* 80323CF8 0031F958 38 8D 8D 9C */ addi r4, r13, lbl_8063E05C-_SDA_BASE_
+/* 80323CFC 0031F95C 4B EA 66 9D */ bl memcmp
+/* 80323D00 0031F960 2C 03 00 00 */ cmpwi r3, 0
+/* 80323D04 0031F964 41 82 00 1C */ beq lbl_80323D20
+/* 80323D08 0031F968 7F C5 F3 78 */ mr r5, r30
+/* 80323D0C 0031F96C 38 9F 08 08 */ addi r4, r31, 0x808
+/* 80323D10 0031F970 38 60 00 08 */ li r3, 8
+/* 80323D14 0031F974 4C C6 31 82 */ crclr 6
+/* 80323D18 0031F978 4B FF 8E 1D */ bl DWC_Printf
+/* 80323D1C 0031F97C 48 00 00 EC */ b lbl_80323E08
+lbl_80323D20:
+/* 80323D20 0031F980 38 6D 8D 9C */ addi r3, r13, lbl_8063E05C-_SDA_BASE_
+/* 80323D24 0031F984 4B EA 2E 41 */ bl strlen
+/* 80323D28 0031F988 7F DE 1A 14 */ add r30, r30, r3
+/* 80323D2C 0031F98C 38 80 00 76 */ li r4, 0x76
+/* 80323D30 0031F990 7F C3 F3 78 */ mr r3, r30
+/* 80323D34 0031F994 4B EA A8 75 */ bl strchr
+/* 80323D38 0031F998 7F BE 18 50 */ subf r29, r30, r3
+/* 80323D3C 0031F99C 7F C4 F3 78 */ mr r4, r30
+/* 80323D40 0031F9A0 7F A5 EB 78 */ mr r5, r29
+/* 80323D44 0031F9A4 38 61 00 08 */ addi r3, r1, 8
+/* 80323D48 0031F9A8 4B EA A6 49 */ bl strncpy
+/* 80323D4C 0031F9AC 28 1D 00 0A */ cmplwi r29, 0xa
+/* 80323D50 0031F9B0 41 81 00 1C */ bgt lbl_80323D6C
+/* 80323D54 0031F9B4 38 61 00 08 */ addi r3, r1, 8
+/* 80323D58 0031F9B8 38 80 00 00 */ li r4, 0
+/* 80323D5C 0031F9BC 38 A0 00 0A */ li r5, 0xa
+/* 80323D60 0031F9C0 4B EA C8 19 */ bl strtoul
+/* 80323D64 0031F9C4 28 03 00 03 */ cmplwi r3, 3
+/* 80323D68 0031F9C8 41 82 00 1C */ beq lbl_80323D84
+lbl_80323D6C:
+/* 80323D6C 0031F9CC 7F C5 F3 78 */ mr r5, r30
+/* 80323D70 0031F9D0 38 9F 08 30 */ addi r4, r31, 0x830
+/* 80323D74 0031F9D4 38 60 00 08 */ li r3, 8
+/* 80323D78 0031F9D8 4C C6 31 82 */ crclr 6
+/* 80323D7C 0031F9DC 4B FF 8D B9 */ bl DWC_Printf
+/* 80323D80 0031F9E0 48 00 00 88 */ b lbl_80323E08
+lbl_80323D84:
+/* 80323D84 0031F9E4 7C 9D F2 14 */ add r4, r29, r30
+/* 80323D88 0031F9E8 38 6D 8D A4 */ addi r3, r13, lbl_8063E064-_SDA_BASE_
+/* 80323D8C 0031F9EC 3B C4 00 01 */ addi r30, r4, 1
+/* 80323D90 0031F9F0 4B EA 2D D5 */ bl strlen
+/* 80323D94 0031F9F4 7C 65 1B 78 */ mr r5, r3
+/* 80323D98 0031F9F8 7F C3 F3 78 */ mr r3, r30
+/* 80323D9C 0031F9FC 38 8D 8D A4 */ addi r4, r13, lbl_8063E064-_SDA_BASE_
+/* 80323DA0 0031FA00 4B EA 65 F9 */ bl memcmp
+/* 80323DA4 0031FA04 2C 03 00 00 */ cmpwi r3, 0
+/* 80323DA8 0031FA08 40 82 00 60 */ bne lbl_80323E08
+/* 80323DAC 0031FA0C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80323DB0 0031FA10 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 80323DB4 0031FA14 2C 00 00 05 */ cmpwi r0, 5
+/* 80323DB8 0031FA18 41 82 00 24 */ beq lbl_80323DDC
+/* 80323DBC 0031FA1C 2C 00 00 06 */ cmpwi r0, 6
+/* 80323DC0 0031FA20 40 82 00 38 */ bne lbl_80323DF8
+/* 80323DC4 0031FA24 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 80323DC8 0031FA28 28 00 00 02 */ cmplwi r0, 2
+/* 80323DCC 0031FA2C 41 82 00 10 */ beq lbl_80323DDC
+/* 80323DD0 0031FA30 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 80323DD4 0031FA34 28 00 00 03 */ cmplwi r0, 3
+/* 80323DD8 0031FA38 40 82 00 20 */ bne lbl_80323DF8
+lbl_80323DDC:
+/* 80323DDC 0031FA3C 38 6D 8D A4 */ addi r3, r13, lbl_8063E064-_SDA_BASE_
+/* 80323DE0 0031FA40 4B EA 2D 85 */ bl strlen
+/* 80323DE4 0031FA44 80 9C 00 00 */ lwz r4, 0(r28)
+/* 80323DE8 0031FA48 7C BE 1A 14 */ add r5, r30, r3
+/* 80323DEC 0031FA4C 7F 63 DB 78 */ mr r3, r27
+/* 80323DF0 0031FA50 48 00 30 4D */ bl func_80326E3C
+/* 80323DF4 0031FA54 48 00 00 14 */ b lbl_80323E08
+lbl_80323DF8:
+/* 80323DF8 0031FA58 38 9F 08 68 */ addi r4, r31, 0x868
+/* 80323DFC 0031FA5C 38 60 00 04 */ li r3, 4
+/* 80323E00 0031FA60 4C C6 31 82 */ crclr 6
+/* 80323E04 0031FA64 4B FF 8D 31 */ bl DWC_Printf
+lbl_80323E08:
+/* 80323E08 0031FA68 39 61 00 30 */ addi r11, r1, 0x30
+/* 80323E0C 0031FA6C 4B EA 33 69 */ bl _restgpr_27
+/* 80323E10 0031FA70 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80323E14 0031FA74 7C 08 03 A6 */ mtlr r0
+/* 80323E18 0031FA78 38 21 00 30 */ addi r1, r1, 0x30
+/* 80323E1C 0031FA7C 4E 80 00 20 */ blr
+
+DWCi_GT2ReceivedCallback:
+/* 80323E20 0031FA80 48 00 D2 0C */ b func_8033102C
+
+DWCi_GT2ClosedCallback:
+/* 80323E24 0031FA84 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80323E28 0031FA88 7C 08 02 A6 */ mflr r0
+/* 80323E2C 0031FA8C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80323E30 0031FA90 39 61 00 40 */ addi r11, r1, 0x40
+/* 80323E34 0031FA94 4B EA 32 E5 */ bl _savegpr_23
+/* 80323E38 0031FA98 3F C0 80 44 */ lis r30, lbl_80447648@ha
+/* 80323E3C 0031FA9C 7C 77 1B 78 */ mr r23, r3
+/* 80323E40 0031FAA0 7C 98 23 78 */ mr r24, r4
+/* 80323E44 0031FAA4 3B E0 00 00 */ li r31, 0
+/* 80323E48 0031FAA8 3B DE 76 48 */ addi r30, r30, lbl_80447648@l
+/* 80323E4C 0031FAAC 3B 60 00 00 */ li r27, 0
+/* 80323E50 0031FAB0 48 00 41 05 */ bl func_80327F54
+/* 80323E54 0031FAB4 2C 03 00 00 */ cmpwi r3, 0
+/* 80323E58 0031FAB8 41 82 00 18 */ beq lbl_80323E70
+/* 80323E5C 0031FABC 38 9E 08 90 */ addi r4, r30, 0x890
+/* 80323E60 0031FAC0 38 60 00 08 */ li r3, 8
+/* 80323E64 0031FAC4 4C C6 31 82 */ crclr 6
+/* 80323E68 0031FAC8 4B FF 8C CD */ bl DWC_Printf
+/* 80323E6C 0031FACC 48 00 03 F4 */ b lbl_80324260
+lbl_80323E70:
+/* 80323E70 0031FAD0 2C 18 00 04 */ cmpwi r24, 4
+/* 80323E74 0031FAD4 41 82 00 30 */ beq lbl_80323EA4
+/* 80323E78 0031FAD8 40 80 00 34 */ bge lbl_80323EAC
+/* 80323E7C 0031FADC 2C 18 00 02 */ cmpwi r24, 2
+/* 80323E80 0031FAE0 40 80 00 18 */ bge lbl_80323E98
+/* 80323E84 0031FAE4 2C 18 00 00 */ cmpwi r24, 0
+/* 80323E88 0031FAE8 40 80 00 08 */ bge lbl_80323E90
+/* 80323E8C 0031FAEC 48 00 00 20 */ b lbl_80323EAC
+lbl_80323E90:
+/* 80323E90 0031FAF0 3B 20 00 00 */ li r25, 0
+/* 80323E94 0031FAF4 48 00 00 18 */ b lbl_80323EAC
+lbl_80323E98:
+/* 80323E98 0031FAF8 3B 20 00 06 */ li r25, 6
+/* 80323E9C 0031FAFC 3B 80 E2 50 */ li r28, -7600
+/* 80323EA0 0031FB00 48 00 00 0C */ b lbl_80323EAC
+lbl_80323EA4:
+/* 80323EA4 0031FB04 3B 20 00 09 */ li r25, 9
+/* 80323EA8 0031FB08 3B 80 E2 4F */ li r28, -7601
+lbl_80323EAC:
+/* 80323EAC 0031FB0C 7F 05 C3 78 */ mr r5, r24
+/* 80323EB0 0031FB10 38 9E 08 CC */ addi r4, r30, 0x8cc
+/* 80323EB4 0031FB14 38 60 00 04 */ li r3, 4
+/* 80323EB8 0031FB18 4C C6 31 82 */ crclr 6
+/* 80323EBC 0031FB1C 4B FF 8C 79 */ bl DWC_Printf
+/* 80323EC0 0031FB20 2C 19 00 00 */ cmpwi r25, 0
+/* 80323EC4 0031FB24 40 82 01 18 */ bne lbl_80323FDC
+/* 80323EC8 0031FB28 7E E3 BB 78 */ mr r3, r23
+/* 80323ECC 0031FB2C 48 02 5F 35 */ bl gt2GetConnectionData
+/* 80323ED0 0031FB30 2C 03 00 00 */ cmpwi r3, 0
+/* 80323ED4 0031FB34 7C 7F 1B 78 */ mr r31, r3
+/* 80323ED8 0031FB38 41 82 03 88 */ beq lbl_80324260
+/* 80323EDC 0031FB3C 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80323EE0 0031FB40 38 00 00 01 */ li r0, 1
+/* 80323EE4 0031FB44 8B A3 00 01 */ lbz r29, 1(r3)
+/* 80323EE8 0031FB48 80 84 06 60 */ lwz r4, 0x660(r4)
+/* 80323EEC 0031FB4C 7C 00 E8 30 */ slw r0, r0, r29
+/* 80323EF0 0031FB50 7F A3 EB 78 */ mr r3, r29
+/* 80323EF4 0031FB54 7C 84 00 38 */ and r4, r4, r0
+/* 80323EF8 0031FB58 7C 04 00 D0 */ neg r0, r4
+/* 80323EFC 0031FB5C 7C 00 23 78 */ or r0, r0, r4
+/* 80323F00 0031FB60 54 1A 0F FE */ srwi r26, r0, 0x1f
+/* 80323F04 0031FB64 48 00 D4 D1 */ bl func_803313D4
+/* 80323F08 0031FB68 7F A5 EB 78 */ mr r5, r29
+/* 80323F0C 0031FB6C 7F 46 D3 78 */ mr r6, r26
+/* 80323F10 0031FB70 38 9E 08 F0 */ addi r4, r30, 0x8f0
+/* 80323F14 0031FB74 38 60 00 04 */ li r3, 4
+/* 80323F18 0031FB78 4C C6 31 82 */ crclr 6
+/* 80323F1C 0031FB7C 4B FF 8C 19 */ bl DWC_Printf
+/* 80323F20 0031FB80 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80323F24 0031FB84 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 80323F28 0031FB88 28 00 00 02 */ cmplwi r0, 2
+/* 80323F2C 0031FB8C 40 82 00 0C */ bne lbl_80323F38
+/* 80323F30 0031FB90 2C 18 00 00 */ cmpwi r24, 0
+/* 80323F34 0031FB94 41 82 00 18 */ beq lbl_80323F4C
+lbl_80323F38:
+/* 80323F38 0031FB98 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 80323F3C 0031FB9C 28 00 00 03 */ cmplwi r0, 3
+/* 80323F40 0031FBA0 40 82 00 10 */ bne lbl_80323F50
+/* 80323F44 0031FBA4 2C 1D 00 00 */ cmpwi r29, 0
+/* 80323F48 0031FBA8 40 82 00 08 */ bne lbl_80323F50
+lbl_80323F4C:
+/* 80323F4C 0031FBAC 3B 60 00 01 */ li r27, 1
+lbl_80323F50:
+/* 80323F50 0031FBB0 38 61 00 08 */ addi r3, r1, 8
+/* 80323F54 0031FBB4 48 00 3D 81 */ bl func_80327CD4
+/* 80323F58 0031FBB8 7C 64 1B 78 */ mr r4, r3
+/* 80323F5C 0031FBBC 80 C1 00 08 */ lwz r6, 8(r1)
+/* 80323F60 0031FBC0 38 A0 00 00 */ li r5, 0
+/* 80323F64 0031FBC4 7C 69 03 A6 */ mtctr r3
+/* 80323F68 0031FBC8 2C 03 00 00 */ cmpwi r3, 0
+/* 80323F6C 0031FBCC 40 81 00 1C */ ble lbl_80323F88
+lbl_80323F70:
+/* 80323F70 0031FBD0 88 06 00 00 */ lbz r0, 0(r6)
+/* 80323F74 0031FBD4 7C 1D 00 40 */ cmplw r29, r0
+/* 80323F78 0031FBD8 41 82 00 10 */ beq lbl_80323F88
+/* 80323F7C 0031FBDC 38 C6 00 01 */ addi r6, r6, 1
+/* 80323F80 0031FBE0 38 A5 00 01 */ addi r5, r5, 1
+/* 80323F84 0031FBE4 42 00 FF EC */ bdnz lbl_80323F70
+lbl_80323F88:
+/* 80323F88 0031FBE8 7C 05 18 00 */ cmpw r5, r3
+/* 80323F8C 0031FBEC 40 82 00 0C */ bne lbl_80323F98
+/* 80323F90 0031FBF0 38 60 00 00 */ li r3, 0
+/* 80323F94 0031FBF4 48 00 00 0C */ b lbl_80323FA0
+lbl_80323F98:
+/* 80323F98 0031FBF8 7C A3 2B 78 */ mr r3, r5
+/* 80323F9C 0031FBFC 48 00 38 DD */ bl func_80327878
+lbl_80323FA0:
+/* 80323FA0 0031FC00 88 1F 00 00 */ lbz r0, 0(r31)
+/* 80323FA4 0031FC04 3C A0 80 61 */ lis r5, lbl_8060FC08@ha
+/* 80323FA8 0031FC08 38 A5 FC 08 */ addi r5, r5, lbl_8060FC08@l
+/* 80323FAC 0031FC0C 38 C0 00 00 */ li r6, 0
+/* 80323FB0 0031FC10 54 00 10 3A */ slwi r0, r0, 2
+/* 80323FB4 0031FC14 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80323FB8 0031FC18 7C C5 01 2E */ stwx r6, r5, r0
+/* 80323FBC 0031FC1C 7C 7F 1B 78 */ mr r31, r3
+/* 80323FC0 0031FC20 88 64 03 6D */ lbz r3, 0x36d(r4)
+/* 80323FC4 0031FC24 38 03 FF FF */ addi r0, r3, -1
+/* 80323FC8 0031FC28 98 04 03 6D */ stb r0, 0x36d(r4)
+/* 80323FCC 0031FC2C 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80323FD0 0031FC30 88 64 03 74 */ lbz r3, 0x374(r4)
+/* 80323FD4 0031FC34 38 03 FF FF */ addi r0, r3, -1
+/* 80323FD8 0031FC38 98 04 03 74 */ stb r0, 0x374(r4)
+lbl_80323FDC:
+/* 80323FDC 0031FC3C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80323FE0 0031FC40 88 03 00 2D */ lbz r0, 0x2d(r3)
+/* 80323FE4 0031FC44 2C 00 00 00 */ cmpwi r0, 0
+/* 80323FE8 0031FC48 40 82 00 4C */ bne lbl_80324034
+/* 80323FEC 0031FC4C 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 80323FF0 0031FC50 2C 00 00 06 */ cmpwi r0, 6
+/* 80323FF4 0031FC54 40 82 00 40 */ bne lbl_80324034
+/* 80323FF8 0031FC58 2C 1A 00 00 */ cmpwi r26, 0
+/* 80323FFC 0031FC5C 40 82 00 38 */ bne lbl_80324034
+/* 80324000 0031FC60 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 80324004 0031FC64 28 00 00 02 */ cmplwi r0, 2
+/* 80324008 0031FC68 40 82 00 18 */ bne lbl_80324020
+/* 8032400C 0031FC6C 2C 19 00 00 */ cmpwi r25, 0
+/* 80324010 0031FC70 40 82 00 10 */ bne lbl_80324020
+/* 80324014 0031FC74 48 00 3D A5 */ bl func_80327DB8
+/* 80324018 0031FC78 7F E3 FB 78 */ mr r3, r31
+/* 8032401C 0031FC7C 48 00 38 45 */ bl func_80327860
+lbl_80324020:
+/* 80324020 0031FC80 38 9E 09 0C */ addi r4, r30, 0x90c
+/* 80324024 0031FC84 38 60 00 04 */ li r3, 4
+/* 80324028 0031FC88 4C C6 31 82 */ crclr 6
+/* 8032402C 0031FC8C 4B FF 8B 09 */ bl DWC_Printf
+/* 80324030 0031FC90 48 00 02 30 */ b lbl_80324260
+lbl_80324034:
+/* 80324034 0031FC94 7F 23 CB 78 */ mr r3, r25
+/* 80324038 0031FC98 7F 84 E3 78 */ mr r4, r28
+/* 8032403C 0031FC9C 7F E5 FB 78 */ mr r5, r31
+/* 80324040 0031FCA0 48 00 33 F5 */ bl func_80327434
+/* 80324044 0031FCA4 2C 03 00 00 */ cmpwi r3, 0
+/* 80324048 0031FCA8 41 82 00 18 */ beq lbl_80324060
+/* 8032404C 0031FCAC 38 9E 09 30 */ addi r4, r30, 0x930
+/* 80324050 0031FCB0 38 60 00 04 */ li r3, 4
+/* 80324054 0031FCB4 4C C6 31 82 */ crclr 6
+/* 80324058 0031FCB8 4B FF 8A DD */ bl DWC_Printf
+/* 8032405C 0031FCBC 48 00 02 04 */ b lbl_80324260
+lbl_80324060:
+/* 80324060 0031FCC0 2C 19 00 00 */ cmpwi r25, 0
+/* 80324064 0031FCC4 41 82 00 14 */ beq lbl_80324078
+/* 80324068 0031FCC8 7F 23 CB 78 */ mr r3, r25
+/* 8032406C 0031FCCC 7F 84 E3 78 */ mr r4, r28
+/* 80324070 0031FCD0 4B FF 85 11 */ bl DWCi_SetError
+/* 80324074 0031FCD4 48 00 01 EC */ b lbl_80324260
+lbl_80324078:
+/* 80324078 0031FCD8 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 8032407C 0031FCDC 88 03 00 2D */ lbz r0, 0x2d(r3)
+/* 80324080 0031FCE0 2C 00 00 00 */ cmpwi r0, 0
+/* 80324084 0031FCE4 40 82 00 60 */ bne lbl_803240E4
+/* 80324088 0031FCE8 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 8032408C 0031FCEC 28 00 00 02 */ cmplwi r0, 2
+/* 80324090 0031FCF0 41 82 00 10 */ beq lbl_803240A0
+/* 80324094 0031FCF4 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 80324098 0031FCF8 28 00 00 03 */ cmplwi r0, 3
+/* 8032409C 0031FCFC 40 82 00 48 */ bne lbl_803240E4
+lbl_803240A0:
+/* 803240A0 0031FD00 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 803240A4 0031FD04 88 C5 03 6D */ lbz r6, 0x36d(r5)
+/* 803240A8 0031FD08 38 86 00 02 */ addi r4, r6, 2
+/* 803240AC 0031FD0C 54 80 10 3A */ slwi r0, r4, 2
+/* 803240B0 0031FD10 7C 65 02 14 */ add r3, r5, r0
+/* 803240B4 0031FD14 80 03 04 58 */ lwz r0, 0x458(r3)
+/* 803240B8 0031FD18 2C 00 00 00 */ cmpwi r0, 0
+/* 803240BC 0031FD1C 41 82 00 28 */ beq lbl_803240E4
+/* 803240C0 0031FD20 38 65 06 40 */ addi r3, r5, 0x640
+/* 803240C4 0031FD24 7C 03 20 AE */ lbzx r0, r3, r4
+/* 803240C8 0031FD28 7C 66 1A 14 */ add r3, r6, r3
+/* 803240CC 0031FD2C 98 03 00 01 */ stb r0, 1(r3)
+/* 803240D0 0031FD30 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803240D4 0031FD34 88 83 03 6D */ lbz r4, 0x36d(r3)
+/* 803240D8 0031FD38 38 64 00 01 */ addi r3, r4, 1
+/* 803240DC 0031FD3C 38 84 00 03 */ addi r4, r4, 3
+/* 803240E0 0031FD40 48 00 37 99 */ bl func_80327878
+lbl_803240E4:
+/* 803240E4 0031FD44 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803240E8 0031FD48 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 803240EC 0031FD4C 28 00 00 02 */ cmplwi r0, 2
+/* 803240F0 0031FD50 40 82 00 38 */ bne lbl_80324128
+/* 803240F4 0031FD54 88 03 00 2D */ lbz r0, 0x2d(r3)
+/* 803240F8 0031FD58 2C 00 00 00 */ cmpwi r0, 0
+/* 803240FC 0031FD5C 40 82 00 0C */ bne lbl_80324108
+/* 80324100 0031FD60 48 00 3C B9 */ bl func_80327DB8
+/* 80324104 0031FD64 48 00 00 40 */ b lbl_80324144
+lbl_80324108:
+/* 80324108 0031FD68 88 03 03 6D */ lbz r0, 0x36d(r3)
+/* 8032410C 0031FD6C 2C 00 00 00 */ cmpwi r0, 0
+/* 80324110 0031FD70 40 82 00 34 */ bne lbl_80324144
+/* 80324114 0031FD74 38 60 00 01 */ li r3, 1
+/* 80324118 0031FD78 38 8D 8D 88 */ addi r4, r13, lbl_8063E048-_SDA_BASE_
+/* 8032411C 0031FD7C 38 A0 00 00 */ li r5, 0
+/* 80324120 0031FD80 4B FF BB 31 */ bl DWCi_SetGPStatus
+/* 80324124 0031FD84 48 00 00 20 */ b lbl_80324144
+lbl_80324128:
+/* 80324128 0031FD88 88 03 03 6D */ lbz r0, 0x36d(r3)
+/* 8032412C 0031FD8C 2C 00 00 00 */ cmpwi r0, 0
+/* 80324130 0031FD90 40 82 00 14 */ bne lbl_80324144
+/* 80324134 0031FD94 38 60 00 01 */ li r3, 1
+/* 80324138 0031FD98 38 8D 8D 88 */ addi r4, r13, lbl_8063E048-_SDA_BASE_
+/* 8032413C 0031FD9C 38 A0 00 00 */ li r5, 0
+/* 80324140 0031FDA0 4B FF BB 11 */ bl DWCi_SetGPStatus
+lbl_80324144:
+/* 80324144 0031FDA4 3A E0 00 00 */ li r23, 0
+/* 80324148 0031FDA8 3B 80 00 00 */ li r28, 0
+/* 8032414C 0031FDAC 48 00 00 38 */ b lbl_80324184
+lbl_80324150:
+/* 80324150 0031FDB0 80 0D B0 58 */ lwz r0, lbl_80640318-_SDA_BASE_(r13)
+/* 80324154 0031FDB4 7E E5 BB 78 */ mr r5, r23
+/* 80324158 0031FDB8 7E E7 BB 78 */ mr r7, r23
+/* 8032415C 0031FDBC 38 9E 09 50 */ addi r4, r30, 0x950
+/* 80324160 0031FDC0 7C 60 BA 14 */ add r3, r0, r23
+/* 80324164 0031FDC4 7D 00 E2 14 */ add r8, r0, r28
+/* 80324168 0031FDC8 88 C3 06 40 */ lbz r6, 0x640(r3)
+/* 8032416C 0031FDCC 38 60 00 04 */ li r3, 4
+/* 80324170 0031FDD0 81 08 04 58 */ lwz r8, 0x458(r8)
+/* 80324174 0031FDD4 4C C6 31 82 */ crclr 6
+/* 80324178 0031FDD8 4B FF 89 BD */ bl DWC_Printf
+/* 8032417C 0031FDDC 3B 9C 00 04 */ addi r28, r28, 4
+/* 80324180 0031FDE0 3A F7 00 01 */ addi r23, r23, 1
+lbl_80324184:
+/* 80324184 0031FDE4 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 80324188 0031FDE8 88 64 03 6D */ lbz r3, 0x36d(r4)
+/* 8032418C 0031FDEC 38 03 00 01 */ addi r0, r3, 1
+/* 80324190 0031FDF0 7C 17 00 00 */ cmpw r23, r0
+/* 80324194 0031FDF4 41 80 FF BC */ blt lbl_80324150
+/* 80324198 0031FDF8 88 04 03 75 */ lbz r0, 0x375(r4)
+/* 8032419C 0031FDFC 2C 00 00 00 */ cmpwi r0, 0
+/* 803241A0 0031FE00 41 82 00 10 */ beq lbl_803241B0
+/* 803241A4 0031FE04 88 04 03 75 */ lbz r0, 0x375(r4)
+/* 803241A8 0031FE08 28 00 00 01 */ cmplwi r0, 1
+/* 803241AC 0031FE0C 40 82 00 1C */ bne lbl_803241C8
+lbl_803241B0:
+/* 803241B0 0031FE10 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803241B4 0031FE14 88 03 03 74 */ lbz r0, 0x374(r3)
+/* 803241B8 0031FE18 98 03 03 76 */ stb r0, 0x376(r3)
+/* 803241BC 0031FE1C 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 803241C0 0031FE20 80 63 03 70 */ lwz r3, 0x370(r3)
+/* 803241C4 0031FE24 48 02 A3 FD */ bl qr2_send_statechanged
+lbl_803241C8:
+/* 803241C8 0031FE28 83 8D B0 58 */ lwz r28, lbl_80640318-_SDA_BASE_(r13)
+/* 803241CC 0031FE2C 80 1C 00 90 */ lwz r0, 0x90(r28)
+/* 803241D0 0031FE30 2C 00 00 00 */ cmpwi r0, 0
+/* 803241D4 0031FE34 41 82 00 44 */ beq lbl_80324218
+/* 803241D8 0031FE38 2C 1A 00 00 */ cmpwi r26, 0
+/* 803241DC 0031FE3C 41 82 00 3C */ beq lbl_80324218
+/* 803241E0 0031FE40 7F 00 00 34 */ cntlzw r0, r24
+/* 803241E4 0031FE44 7F E3 FB 78 */ mr r3, r31
+/* 803241E8 0031FE48 54 18 D9 7E */ srwi r24, r0, 5
+/* 803241EC 0031FE4C 4B FF B9 5D */ bl DWCi_GetFriendListIndex
+/* 803241F0 0031FE50 80 AD B0 58 */ lwz r5, lbl_80640318-_SDA_BASE_(r13)
+/* 803241F4 0031FE54 7C 67 1B 78 */ mr r7, r3
+/* 803241F8 0031FE58 7F 23 CB 78 */ mr r3, r25
+/* 803241FC 0031FE5C 7F 04 C3 78 */ mr r4, r24
+/* 80324200 0031FE60 81 85 00 90 */ lwz r12, 0x90(r5)
+/* 80324204 0031FE64 7F 65 DB 78 */ mr r5, r27
+/* 80324208 0031FE68 7F A6 EB 78 */ mr r6, r29
+/* 8032420C 0031FE6C 81 1C 00 94 */ lwz r8, 0x94(r28)
+/* 80324210 0031FE70 7D 89 03 A6 */ mtctr r12
+/* 80324214 0031FE74 4E 80 04 21 */ bctrl
+lbl_80324218:
+/* 80324218 0031FE78 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 8032421C 0031FE7C 88 03 00 2D */ lbz r0, 0x2d(r3)
+/* 80324220 0031FE80 2C 00 00 00 */ cmpwi r0, 0
+/* 80324224 0031FE84 40 82 00 10 */ bne lbl_80324234
+/* 80324228 0031FE88 88 03 03 75 */ lbz r0, 0x375(r3)
+/* 8032422C 0031FE8C 28 00 00 02 */ cmplwi r0, 2
+/* 80324230 0031FE90 41 82 00 30 */ beq lbl_80324260
+lbl_80324234:
+/* 80324234 0031FE94 88 03 03 6D */ lbz r0, 0x36d(r3)
+/* 80324238 0031FE98 2C 00 00 00 */ cmpwi r0, 0
+/* 8032423C 0031FE9C 40 82 00 24 */ bne lbl_80324260
+/* 80324240 0031FEA0 48 03 69 75 */ bl NNFreeNegotiateList
+/* 80324244 0031FEA4 48 00 2E 49 */ bl func_8032708C
+/* 80324248 0031FEA8 80 8D B0 58 */ lwz r4, lbl_80640318-_SDA_BASE_(r13)
+/* 8032424C 0031FEAC 38 00 00 03 */ li r0, 3
+/* 80324250 0031FEB0 80 64 00 24 */ lwz r3, 0x24(r4)
+/* 80324254 0031FEB4 90 64 00 28 */ stw r3, 0x28(r4)
+/* 80324258 0031FEB8 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 8032425C 0031FEBC 90 03 00 24 */ stw r0, 0x24(r3)
+lbl_80324260:
+/* 80324260 0031FEC0 39 61 00 40 */ addi r11, r1, 0x40
+/* 80324264 0031FEC4 4B EA 2F 01 */ bl _restgpr_23
+/* 80324268 0031FEC8 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8032426C 0031FECC 7C 08 03 A6 */ mtlr r0
+/* 80324270 0031FED0 38 21 00 40 */ addi r1, r1, 0x40
+/* 80324274 0031FED4 4E 80 00 20 */ blr
+
+DWCi_GT2PingCallback:
+/* 80324278 0031FED8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8032427C 0031FEDC 7C 08 02 A6 */ mflr r0
+/* 80324280 0031FEE0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80324284 0031FEE4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80324288 0031FEE8 7C 9F 23 78 */ mr r31, r4
+/* 8032428C 0031FEEC 3C 80 80 44 */ lis r4, lbl_80447FB4@ha
+/* 80324290 0031FEF0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80324294 0031FEF4 7C 7E 1B 78 */ mr r30, r3
+/* 80324298 0031FEF8 38 60 01 00 */ li r3, 0x100
+/* 8032429C 0031FEFC 7F E5 FB 78 */ mr r5, r31
+/* 803242A0 0031FF00 38 84 7F B4 */ addi r4, r4, lbl_80447FB4@l
+/* 803242A4 0031FF04 4C C6 31 82 */ crclr 6
+/* 803242A8 0031FF08 4B FF 88 8D */ bl DWC_Printf
+/* 803242AC 0031FF0C 7F C3 F3 78 */ mr r3, r30
+/* 803242B0 0031FF10 7F E4 FB 78 */ mr r4, r31
+/* 803242B4 0031FF14 48 00 CE B5 */ bl func_80331168
+/* 803242B8 0031FF18 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803242BC 0031FF1C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803242C0 0031FF20 83 C1 00 08 */ lwz r30, 8(r1)
+/* 803242C4 0031FF24 7C 08 03 A6 */ mtlr r0
+/* 803242C8 0031FF28 38 21 00 10 */ addi r1, r1, 0x10
+/* 803242CC 0031FF2C 4E 80 00 20 */ blr
+
+DWCi_GT2SocketErrorCallback:
+/* 803242D0 0031FF30 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803242D4 0031FF34 7C 08 02 A6 */ mflr r0
+/* 803242D8 0031FF38 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803242DC 0031FF3C 48 02 5B 0D */ bl gt2GetSocketSOCKET
+/* 803242E0 0031FF40 48 01 3C C9 */ bl GOAGetLastError
+/* 803242E4 0031FF44 3C 80 80 44 */ lis r4, lbl_80447FC0@ha
+/* 803242E8 0031FF48 90 6D B0 5C */ stw r3, lbl_8064031C-_SDA_BASE_(r13)
+/* 803242EC 0031FF4C 7C 65 1B 78 */ mr r5, r3
+/* 803242F0 0031FF50 38 60 00 02 */ li r3, 2
+/* 803242F4 0031FF54 38 84 7F C0 */ addi r4, r4, lbl_80447FC0@l
+/* 803242F8 0031FF58 4C C6 31 82 */ crclr 6
+/* 803242FC 0031FF5C 4B FF 88 39 */ bl DWC_Printf
+/* 80324300 0031FF60 3C 80 FF FF */ lis r4, 0xFFFE8515@ha
+/* 80324304 0031FF64 38 60 00 09 */ li r3, 9
+/* 80324308 0031FF68 38 84 85 15 */ addi r4, r4, 0xFFFE8515@l
+/* 8032430C 0031FF6C 4B FF 82 75 */ bl DWCi_SetError
+/* 80324310 0031FF70 80 6D B0 58 */ lwz r3, lbl_80640318-_SDA_BASE_(r13)
+/* 80324314 0031FF74 38 00 00 00 */ li r0, 0
+/* 80324318 0031FF78 90 03 00 00 */ stw r0, 0(r3)
+/* 8032431C 0031FF7C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80324320 0031FF80 7C 08 03 A6 */ mtlr r0
+/* 80324324 0031FF84 38 21 00 10 */ addi r1, r1, 0x10
+/* 80324328 0031FF88 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/d_common.s b/asm/SDK/VF/d_common.s new file mode 100644 index 0000000..68c7988 --- /dev/null +++ b/asm/SDK/VF/d_common.s @@ -0,0 +1,171 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global dCommon_initDriveInfo
+dCommon_initDriveInfo:
+/* 8031BBE0 00317840 3C 80 80 61 */ lis r4, lbl_8060F848@ha
+/* 8031BBE4 00317844 38 00 00 03 */ li r0, 3
+/* 8031BBE8 00317848 38 84 F8 48 */ addi r4, r4, lbl_8060F848@l
+/* 8031BBEC 0031784C 38 60 00 00 */ li r3, 0
+/* 8031BBF0 00317850 7C 09 03 A6 */ mtctr r0
+lbl_8031BBF4:
+/* 8031BBF4 00317854 90 64 00 00 */ stw r3, 0(r4)
+/* 8031BBF8 00317858 90 64 00 04 */ stw r3, 4(r4)
+/* 8031BBFC 0031785C 90 64 00 08 */ stw r3, 8(r4)
+/* 8031BC00 00317860 90 64 00 0C */ stw r3, 0xc(r4)
+/* 8031BC04 00317864 90 64 00 10 */ stw r3, 0x10(r4)
+/* 8031BC08 00317868 90 64 00 14 */ stw r3, 0x14(r4)
+/* 8031BC0C 0031786C 90 64 00 18 */ stw r3, 0x18(r4)
+/* 8031BC10 00317870 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 8031BC14 00317874 90 64 00 20 */ stw r3, 0x20(r4)
+/* 8031BC18 00317878 90 64 00 24 */ stw r3, 0x24(r4)
+/* 8031BC1C 0031787C 90 64 00 28 */ stw r3, 0x28(r4)
+/* 8031BC20 00317880 90 64 00 2C */ stw r3, 0x2c(r4)
+/* 8031BC24 00317884 90 64 00 30 */ stw r3, 0x30(r4)
+/* 8031BC28 00317888 90 64 00 34 */ stw r3, 0x34(r4)
+/* 8031BC2C 0031788C 90 64 00 38 */ stw r3, 0x38(r4)
+/* 8031BC30 00317890 90 64 00 3C */ stw r3, 0x3c(r4)
+/* 8031BC34 00317894 90 64 00 40 */ stw r3, 0x40(r4)
+/* 8031BC38 00317898 90 64 00 44 */ stw r3, 0x44(r4)
+/* 8031BC3C 0031789C 90 64 00 48 */ stw r3, 0x48(r4)
+/* 8031BC40 003178A0 90 64 00 4C */ stw r3, 0x4c(r4)
+/* 8031BC44 003178A4 90 64 00 50 */ stw r3, 0x50(r4)
+/* 8031BC48 003178A8 90 64 00 54 */ stw r3, 0x54(r4)
+/* 8031BC4C 003178AC 90 64 00 58 */ stw r3, 0x58(r4)
+/* 8031BC50 003178B0 90 64 00 5C */ stw r3, 0x5c(r4)
+/* 8031BC54 003178B4 90 64 00 60 */ stw r3, 0x60(r4)
+/* 8031BC58 003178B8 90 64 00 64 */ stw r3, 0x64(r4)
+/* 8031BC5C 003178BC 90 64 00 68 */ stw r3, 0x68(r4)
+/* 8031BC60 003178C0 90 64 00 6C */ stw r3, 0x6c(r4)
+/* 8031BC64 003178C4 90 64 00 70 */ stw r3, 0x70(r4)
+/* 8031BC68 003178C8 90 64 00 74 */ stw r3, 0x74(r4)
+/* 8031BC6C 003178CC 90 64 00 78 */ stw r3, 0x78(r4)
+/* 8031BC70 003178D0 90 64 00 7C */ stw r3, 0x7c(r4)
+/* 8031BC74 003178D4 90 64 00 80 */ stw r3, 0x80(r4)
+/* 8031BC78 003178D8 90 64 00 84 */ stw r3, 0x84(r4)
+/* 8031BC7C 003178DC 90 64 00 88 */ stw r3, 0x88(r4)
+/* 8031BC80 003178E0 90 64 00 8C */ stw r3, 0x8c(r4)
+/* 8031BC84 003178E4 90 64 00 90 */ stw r3, 0x90(r4)
+/* 8031BC88 003178E8 90 64 00 94 */ stw r3, 0x94(r4)
+/* 8031BC8C 003178EC 90 64 00 98 */ stw r3, 0x98(r4)
+/* 8031BC90 003178F0 90 64 00 9C */ stw r3, 0x9c(r4)
+/* 8031BC94 003178F4 38 84 00 A0 */ addi r4, r4, 0xa0
+/* 8031BC98 003178F8 42 00 FF 5C */ bdnz lbl_8031BBF4
+/* 8031BC9C 003178FC 38 00 00 00 */ li r0, 0
+/* 8031BCA0 00317900 90 04 00 00 */ stw r0, 0(r4)
+/* 8031BCA4 00317904 90 04 00 04 */ stw r0, 4(r4)
+/* 8031BCA8 00317908 90 04 00 08 */ stw r0, 8(r4)
+/* 8031BCAC 0031790C 90 04 00 0C */ stw r0, 0xc(r4)
+/* 8031BCB0 00317910 90 04 00 10 */ stw r0, 0x10(r4)
+/* 8031BCB4 00317914 90 04 00 14 */ stw r0, 0x14(r4)
+/* 8031BCB8 00317918 90 04 00 18 */ stw r0, 0x18(r4)
+/* 8031BCBC 0031791C 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 8031BCC0 00317920 90 04 00 20 */ stw r0, 0x20(r4)
+/* 8031BCC4 00317924 90 04 00 24 */ stw r0, 0x24(r4)
+/* 8031BCC8 00317928 4E 80 00 20 */ blr
+
+.global dCommon_getLastDeviceErrorFromDisk
+dCommon_getLastDeviceErrorFromDisk:
+/* 8031BCCC 0031792C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031BCD0 00317930 7C 08 02 A6 */ mflr r0
+/* 8031BCD4 00317934 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031BCD8 00317938 4B FF EE A5 */ bl VFSysPDMDisk2HandleIdx
+/* 8031BCDC 0031793C 28 03 00 1A */ cmplwi r3, 0x1a
+/* 8031BCE0 00317940 40 80 00 18 */ bge lbl_8031BCF8
+/* 8031BCE4 00317944 1C 03 00 14 */ mulli r0, r3, 0x14
+/* 8031BCE8 00317948 3C 60 80 61 */ lis r3, lbl_8060F848@ha
+/* 8031BCEC 0031794C 38 63 F8 48 */ addi r3, r3, lbl_8060F848@l
+/* 8031BCF0 00317950 7C 63 02 14 */ add r3, r3, r0
+/* 8031BCF4 00317954 48 00 00 08 */ b lbl_8031BCFC
+lbl_8031BCF8:
+/* 8031BCF8 00317958 38 60 00 00 */ li r3, 0
+lbl_8031BCFC:
+/* 8031BCFC 0031795C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031BD00 00317960 41 82 00 0C */ beq lbl_8031BD0C
+/* 8031BD04 00317964 80 63 00 04 */ lwz r3, 4(r3)
+/* 8031BD08 00317968 48 00 00 08 */ b lbl_8031BD10
+lbl_8031BD0C:
+/* 8031BD0C 0031796C 38 60 00 00 */ li r3, 0
+lbl_8031BD10:
+/* 8031BD10 00317970 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031BD14 00317974 7C 08 03 A6 */ mtlr r0
+/* 8031BD18 00317978 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031BD1C 0031797C 4E 80 00 20 */ blr
+
+.global dCommon_setLastDeviceErrorToDisk
+dCommon_setLastDeviceErrorToDisk:
+/* 8031BD20 00317980 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031BD24 00317984 7C 08 02 A6 */ mflr r0
+/* 8031BD28 00317988 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031BD2C 0031798C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031BD30 00317990 7C 9F 23 78 */ mr r31, r4
+/* 8031BD34 00317994 4B FF EE 49 */ bl VFSysPDMDisk2HandleIdx
+/* 8031BD38 00317998 28 03 00 1A */ cmplwi r3, 0x1a
+/* 8031BD3C 0031799C 40 80 00 18 */ bge lbl_8031BD54
+/* 8031BD40 003179A0 1C 03 00 14 */ mulli r0, r3, 0x14
+/* 8031BD44 003179A4 3C 60 80 61 */ lis r3, lbl_8060F848@ha
+/* 8031BD48 003179A8 38 63 F8 48 */ addi r3, r3, lbl_8060F848@l
+/* 8031BD4C 003179AC 7C 63 02 14 */ add r3, r3, r0
+/* 8031BD50 003179B0 48 00 00 08 */ b lbl_8031BD58
+lbl_8031BD54:
+/* 8031BD54 003179B4 38 60 00 00 */ li r3, 0
+lbl_8031BD58:
+/* 8031BD58 003179B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031BD5C 003179BC 41 82 00 08 */ beq lbl_8031BD64
+/* 8031BD60 003179C0 93 E3 00 04 */ stw r31, 4(r3)
+lbl_8031BD64:
+/* 8031BD64 003179C4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031BD68 003179C8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031BD6C 003179CC 7C 08 03 A6 */ mtlr r0
+/* 8031BD70 003179D0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031BD74 003179D4 4E 80 00 20 */ blr
+
+.global dCommon_setLastDeviceErrorToDisk2
+dCommon_setLastDeviceErrorToDisk2:
+/* 8031BD78 003179D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031BD7C 003179DC 4D 80 00 20 */ bltlr
+/* 8031BD80 003179E0 2C 03 00 1A */ cmpwi r3, 0x1a
+/* 8031BD84 003179E4 4C 80 00 20 */ bgelr
+/* 8031BD88 003179E8 1C 03 00 14 */ mulli r0, r3, 0x14
+/* 8031BD8C 003179EC 3C 60 80 61 */ lis r3, lbl_8060F848@ha
+/* 8031BD90 003179F0 38 63 F8 48 */ addi r3, r3, lbl_8060F848@l
+/* 8031BD94 003179F4 7C 63 02 14 */ add r3, r3, r0
+/* 8031BD98 003179F8 90 83 00 04 */ stw r4, 4(r3)
+/* 8031BD9C 003179FC 4E 80 00 20 */ blr
+
+.global dCommon_FlushFromVol
+dCommon_FlushFromVol:
+/* 8031BDA0 00317A00 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031BDA4 00317A04 7C 08 02 A6 */ mflr r0
+/* 8031BDA8 00317A08 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031BDAC 00317A0C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031BDB0 00317A10 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031BDB4 00317A14 7C 9E 23 78 */ mr r30, r4
+/* 8031BDB8 00317A18 4B FF ED 51 */ bl VFSysVol2HandleP
+/* 8031BDBC 00317A1C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031BDC0 00317A20 3B E0 FF FF */ li r31, -1
+/* 8031BDC4 00317A24 41 82 00 3C */ beq lbl_8031BE00
+/* 8031BDC8 00317A28 80 83 00 00 */ lwz r4, 0(r3)
+/* 8031BDCC 00317A2C 2C 04 00 00 */ cmpwi r4, 0
+/* 8031BDD0 00317A30 41 82 00 30 */ beq lbl_8031BE00
+/* 8031BDD4 00317A34 80 04 00 08 */ lwz r0, 8(r4)
+/* 8031BDD8 00317A38 2C 00 00 00 */ cmpwi r0, 0
+/* 8031BDDC 00317A3C 40 82 00 20 */ bne lbl_8031BDFC
+/* 8031BDE0 00317A40 4B FF EC C9 */ bl VFSysHandleP2Idx
+/* 8031BDE4 00317A44 2C 03 FF FF */ cmpwi r3, -1
+/* 8031BDE8 00317A48 41 82 00 18 */ beq lbl_8031BE00
+/* 8031BDEC 00317A4C 7F C4 F3 78 */ mr r4, r30
+/* 8031BDF0 00317A50 48 00 00 2D */ bl func_8031BE1C
+/* 8031BDF4 00317A54 7C 7F 1B 78 */ mr r31, r3
+/* 8031BDF8 00317A58 48 00 00 08 */ b lbl_8031BE00
+lbl_8031BDFC:
+/* 8031BDFC 00317A5C 3B E0 00 00 */ li r31, 0
+lbl_8031BE00:
+/* 8031BE00 00317A60 7F E3 FB 78 */ mr r3, r31
+/* 8031BE04 00317A64 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031BE08 00317A68 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031BE0C 00317A6C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031BE10 00317A70 7C 08 03 A6 */ mtlr r0
+/* 8031BE14 00317A74 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031BE18 00317A78 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/d_hash.s b/asm/SDK/VF/d_hash.s new file mode 100644 index 0000000..73fbe87 --- /dev/null +++ b/asm/SDK/VF/d_hash.s @@ -0,0 +1,311 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global _MakeWStr
+_MakeWStr:
+/* 8031B730 00317390 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8031B734 00317394 7C 08 02 A6 */ mflr r0
+/* 8031B738 00317398 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031B73C 0031739C 39 61 00 30 */ addi r11, r1, 0x30
+/* 8031B740 003173A0 4B EA B9 E1 */ bl _savegpr_25
+/* 8031B744 003173A4 7C 7E 1B 78 */ mr r30, r3
+/* 8031B748 003173A8 38 80 00 00 */ li r4, 0
+/* 8031B74C 003173AC 48 00 00 0C */ b lbl_8031B758
+lbl_8031B750:
+/* 8031B750 003173B0 38 63 00 01 */ addi r3, r3, 1
+/* 8031B754 003173B4 38 84 00 01 */ addi r4, r4, 1
+lbl_8031B758:
+/* 8031B758 003173B8 88 03 00 00 */ lbz r0, 0(r3)
+/* 8031B75C 003173BC 7C 00 07 75 */ extsb. r0, r0
+/* 8031B760 003173C0 40 82 FF F0 */ bne lbl_8031B750
+/* 8031B764 003173C4 28 04 00 08 */ cmplwi r4, 8
+/* 8031B768 003173C8 40 80 00 D8 */ bge lbl_8031B840
+/* 8031B76C 003173CC 7F C3 F3 78 */ mr r3, r30
+/* 8031B770 003173D0 3B 80 00 00 */ li r28, 0
+/* 8031B774 003173D4 48 00 00 0C */ b lbl_8031B780
+lbl_8031B778:
+/* 8031B778 003173D8 38 63 00 01 */ addi r3, r3, 1
+/* 8031B77C 003173DC 3B 9C 00 01 */ addi r28, r28, 1
+lbl_8031B780:
+/* 8031B780 003173E0 88 03 00 00 */ lbz r0, 0(r3)
+/* 8031B784 003173E4 7C 00 07 75 */ extsb. r0, r0
+/* 8031B788 003173E8 40 82 FF F0 */ bne lbl_8031B778
+/* 8031B78C 003173EC 3F 60 80 61 */ lis r27, lbl_8060F608@ha
+/* 8031B790 003173F0 3F A0 80 58 */ lis r29, lbl_8057F5C8@ha
+/* 8031B794 003173F4 3B 7B F6 08 */ addi r27, r27, lbl_8060F608@l
+/* 8031B798 003173F8 3B E0 00 00 */ li r31, 0
+/* 8031B79C 003173FC 3B BD F5 C8 */ addi r29, r29, lbl_8057F5C8@l
+/* 8031B7A0 00317400 3B 20 00 00 */ li r25, 0
+/* 8031B7A4 00317404 48 00 00 74 */ b lbl_8031B818
+lbl_8031B7A8:
+/* 8031B7A8 00317408 2C 19 00 00 */ cmpwi r25, 0
+/* 8031B7AC 0031740C 41 82 00 0C */ beq lbl_8031B7B8
+/* 8031B7B0 00317410 3B 20 00 00 */ li r25, 0
+/* 8031B7B4 00317414 48 00 00 5C */ b lbl_8031B810
+lbl_8031B7B8:
+/* 8031B7B8 00317418 7C 1E F8 AE */ lbzx r0, r30, r31
+/* 8031B7BC 0031741C 7F 5E FA 14 */ add r26, r30, r31
+/* 8031B7C0 00317420 81 9D 00 30 */ lwz r12, 0x30(r29)
+/* 8031B7C4 00317424 38 80 00 01 */ li r4, 1
+/* 8031B7C8 00317428 7C 03 07 74 */ extsb r3, r0
+/* 8031B7CC 0031742C 7D 89 03 A6 */ mtctr r12
+/* 8031B7D0 00317430 4E 80 04 21 */ bctrl
+/* 8031B7D4 00317434 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B7D8 00317438 41 82 00 2C */ beq lbl_8031B804
+/* 8031B7DC 0031743C 88 7A 00 01 */ lbz r3, 1(r26)
+/* 8031B7E0 00317440 3B 20 00 01 */ li r25, 1
+/* 8031B7E4 00317444 88 1A 00 00 */ lbz r0, 0(r26)
+/* 8031B7E8 00317448 7C 63 07 74 */ extsb r3, r3
+/* 8031B7EC 0031744C 7C 00 07 74 */ extsb r0, r0
+/* 8031B7F0 00317450 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 8031B7F4 00317454 54 00 40 2E */ slwi r0, r0, 8
+/* 8031B7F8 00317458 7C 60 03 78 */ or r0, r3, r0
+/* 8031B7FC 0031745C B0 1B 00 00 */ sth r0, 0(r27)
+/* 8031B800 00317460 48 00 00 10 */ b lbl_8031B810
+lbl_8031B804:
+/* 8031B804 00317464 88 1A 00 00 */ lbz r0, 0(r26)
+/* 8031B808 00317468 7C 00 07 74 */ extsb r0, r0
+/* 8031B80C 0031746C B0 1B 00 00 */ sth r0, 0(r27)
+lbl_8031B810:
+/* 8031B810 00317470 3B 7B 00 02 */ addi r27, r27, 2
+/* 8031B814 00317474 3B FF 00 01 */ addi r31, r31, 1
+lbl_8031B818:
+/* 8031B818 00317478 7C 1F E0 40 */ cmplw r31, r28
+/* 8031B81C 0031747C 41 80 FF 8C */ blt lbl_8031B7A8
+/* 8031B820 00317480 3C 80 80 61 */ lis r4, lbl_8060F608@ha
+/* 8031B824 00317484 38 A0 00 00 */ li r5, 0
+/* 8031B828 00317488 38 84 F6 08 */ addi r4, r4, lbl_8060F608@l
+/* 8031B82C 0031748C 57 E0 08 3C */ slwi r0, r31, 1
+/* 8031B830 00317490 B0 A4 00 0E */ sth r5, 0xe(r4)
+/* 8031B834 00317494 38 60 00 01 */ li r3, 1
+/* 8031B838 00317498 7C A4 03 2E */ sthx r5, r4, r0
+/* 8031B83C 0031749C 48 00 00 08 */ b lbl_8031B844
+lbl_8031B840:
+/* 8031B840 003174A0 38 60 00 00 */ li r3, 0
+lbl_8031B844:
+/* 8031B844 003174A4 39 61 00 30 */ addi r11, r1, 0x30
+/* 8031B848 003174A8 4B EA B9 25 */ bl _restgpr_25
+/* 8031B84C 003174AC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8031B850 003174B0 7C 08 03 A6 */ mtlr r0
+/* 8031B854 003174B4 38 21 00 30 */ addi r1, r1, 0x30
+/* 8031B858 003174B8 4E 80 00 20 */ blr
+
+.global dHash_InitHashTable
+dHash_InitHashTable:
+/* 8031B85C 003174BC 38 00 00 00 */ li r0, 0
+/* 8031B860 003174C0 3C 60 80 61 */ lis r3, lbl_8060F618@ha
+/* 8031B864 003174C4 B4 03 F6 18 */ sthu r0, lbl_8060F618@l(r3)
+/* 8031B868 003174C8 98 03 00 10 */ stb r0, 0x10(r3)
+/* 8031B86C 003174CC B0 03 00 12 */ sth r0, 0x12(r3)
+/* 8031B870 003174D0 98 03 00 22 */ stb r0, 0x22(r3)
+/* 8031B874 003174D4 B0 03 00 24 */ sth r0, 0x24(r3)
+/* 8031B878 003174D8 98 03 00 34 */ stb r0, 0x34(r3)
+/* 8031B87C 003174DC B0 03 00 36 */ sth r0, 0x36(r3)
+/* 8031B880 003174E0 98 03 00 46 */ stb r0, 0x46(r3)
+/* 8031B884 003174E4 B0 03 00 48 */ sth r0, 0x48(r3)
+/* 8031B888 003174E8 98 03 00 58 */ stb r0, 0x58(r3)
+/* 8031B88C 003174EC B0 03 00 5A */ sth r0, 0x5a(r3)
+/* 8031B890 003174F0 98 03 00 6A */ stb r0, 0x6a(r3)
+/* 8031B894 003174F4 B0 03 00 6C */ sth r0, 0x6c(r3)
+/* 8031B898 003174F8 98 03 00 7C */ stb r0, 0x7c(r3)
+/* 8031B89C 003174FC B0 03 00 7E */ sth r0, 0x7e(r3)
+/* 8031B8A0 00317500 98 03 00 8E */ stb r0, 0x8e(r3)
+/* 8031B8A4 00317504 B0 03 00 90 */ sth r0, 0x90(r3)
+/* 8031B8A8 00317508 98 03 00 A0 */ stb r0, 0xa0(r3)
+/* 8031B8AC 0031750C B0 03 00 A2 */ sth r0, 0xa2(r3)
+/* 8031B8B0 00317510 98 03 00 B2 */ stb r0, 0xb2(r3)
+/* 8031B8B4 00317514 B0 03 00 B4 */ sth r0, 0xb4(r3)
+/* 8031B8B8 00317518 98 03 00 C4 */ stb r0, 0xc4(r3)
+/* 8031B8BC 0031751C B0 03 00 C6 */ sth r0, 0xc6(r3)
+/* 8031B8C0 00317520 98 03 00 D6 */ stb r0, 0xd6(r3)
+/* 8031B8C4 00317524 B0 03 00 D8 */ sth r0, 0xd8(r3)
+/* 8031B8C8 00317528 98 03 00 E8 */ stb r0, 0xe8(r3)
+/* 8031B8CC 0031752C B0 03 00 EA */ sth r0, 0xea(r3)
+/* 8031B8D0 00317530 98 03 00 FA */ stb r0, 0xfa(r3)
+/* 8031B8D4 00317534 B0 03 00 FC */ sth r0, 0xfc(r3)
+/* 8031B8D8 00317538 98 03 01 0C */ stb r0, 0x10c(r3)
+/* 8031B8DC 0031753C B0 03 01 0E */ sth r0, 0x10e(r3)
+/* 8031B8E0 00317540 98 03 01 1E */ stb r0, 0x11e(r3)
+/* 8031B8E4 00317544 B0 03 01 20 */ sth r0, 0x120(r3)
+/* 8031B8E8 00317548 98 03 01 30 */ stb r0, 0x130(r3)
+/* 8031B8EC 0031754C B0 03 01 32 */ sth r0, 0x132(r3)
+/* 8031B8F0 00317550 98 03 01 42 */ stb r0, 0x142(r3)
+/* 8031B8F4 00317554 B0 03 01 44 */ sth r0, 0x144(r3)
+/* 8031B8F8 00317558 98 03 01 54 */ stb r0, 0x154(r3)
+/* 8031B8FC 0031755C B0 03 01 56 */ sth r0, 0x156(r3)
+/* 8031B900 00317560 98 03 01 66 */ stb r0, 0x166(r3)
+/* 8031B904 00317564 B0 03 01 68 */ sth r0, 0x168(r3)
+/* 8031B908 00317568 98 03 01 78 */ stb r0, 0x178(r3)
+/* 8031B90C 0031756C B0 03 01 7A */ sth r0, 0x17a(r3)
+/* 8031B910 00317570 98 03 01 8A */ stb r0, 0x18a(r3)
+/* 8031B914 00317574 B0 03 01 8C */ sth r0, 0x18c(r3)
+/* 8031B918 00317578 98 03 01 9C */ stb r0, 0x19c(r3)
+/* 8031B91C 0031757C B0 03 01 9E */ sth r0, 0x19e(r3)
+/* 8031B920 00317580 98 03 01 AE */ stb r0, 0x1ae(r3)
+/* 8031B924 00317584 B0 03 01 B0 */ sth r0, 0x1b0(r3)
+/* 8031B928 00317588 98 03 01 C0 */ stb r0, 0x1c0(r3)
+/* 8031B92C 0031758C B0 03 01 C2 */ sth r0, 0x1c2(r3)
+/* 8031B930 00317590 98 03 01 D2 */ stb r0, 0x1d2(r3)
+/* 8031B934 00317594 B0 03 01 D4 */ sth r0, 0x1d4(r3)
+/* 8031B938 00317598 98 03 01 E4 */ stb r0, 0x1e4(r3)
+/* 8031B93C 0031759C B0 03 01 E6 */ sth r0, 0x1e6(r3)
+/* 8031B940 003175A0 98 03 01 F6 */ stb r0, 0x1f6(r3)
+/* 8031B944 003175A4 B0 03 01 F8 */ sth r0, 0x1f8(r3)
+/* 8031B948 003175A8 98 03 02 08 */ stb r0, 0x208(r3)
+/* 8031B94C 003175AC B0 03 02 0A */ sth r0, 0x20a(r3)
+/* 8031B950 003175B0 98 03 02 1A */ stb r0, 0x21a(r3)
+/* 8031B954 003175B4 B0 03 02 1C */ sth r0, 0x21c(r3)
+/* 8031B958 003175B8 98 03 02 2C */ stb r0, 0x22c(r3)
+/* 8031B95C 003175BC 4E 80 00 20 */ blr
+
+.global dHash_SearchHashW
+dHash_SearchHashW:
+/* 8031B960 003175C0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031B964 003175C4 38 80 00 00 */ li r4, 0
+/* 8031B968 003175C8 7C 65 1B 78 */ mr r5, r3
+/* 8031B96C 003175CC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031B970 003175D0 48 00 00 0C */ b lbl_8031B97C
+lbl_8031B974:
+/* 8031B974 003175D4 38 A5 00 02 */ addi r5, r5, 2
+/* 8031B978 003175D8 38 84 00 01 */ addi r4, r4, 1
+lbl_8031B97C:
+/* 8031B97C 003175DC A0 05 00 00 */ lhz r0, 0(r5)
+/* 8031B980 003175E0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B984 003175E4 40 82 FF F0 */ bne lbl_8031B974
+/* 8031B988 003175E8 2C 04 00 08 */ cmpwi r4, 8
+/* 8031B98C 003175EC 40 80 00 6C */ bge lbl_8031B9F8
+/* 8031B990 003175F0 7C 67 1B 78 */ mr r7, r3
+/* 8031B994 003175F4 38 C0 00 00 */ li r6, 0
+/* 8031B998 003175F8 38 A0 00 00 */ li r5, 0
+/* 8031B99C 003175FC 7C 89 03 A6 */ mtctr r4
+/* 8031B9A0 00317600 28 04 00 00 */ cmplwi r4, 0
+/* 8031B9A4 00317604 40 81 00 2C */ ble lbl_8031B9D0
+lbl_8031B9A8:
+/* 8031B9A8 00317608 28 05 00 07 */ cmplwi r5, 7
+/* 8031B9AC 0031760C 40 81 00 08 */ ble lbl_8031B9B4
+/* 8031B9B0 00317610 38 A0 00 00 */ li r5, 0
+lbl_8031B9B4:
+/* 8031B9B4 00317614 A0 87 00 00 */ lhz r4, 0(r7)
+/* 8031B9B8 00317618 54 A0 10 3A */ slwi r0, r5, 2
+/* 8031B9BC 0031761C 38 E7 00 02 */ addi r7, r7, 2
+/* 8031B9C0 00317620 38 A5 00 01 */ addi r5, r5, 1
+/* 8031B9C4 00317624 7C 80 00 30 */ slw r0, r4, r0
+/* 8031B9C8 00317628 7C C6 02 14 */ add r6, r6, r0
+/* 8031B9CC 0031762C 42 00 FF DC */ bdnz lbl_8031B9A8
+lbl_8031B9D0:
+/* 8031B9D0 00317630 3C 80 08 42 */ lis r4, 0x08421085@ha
+/* 8031B9D4 00317634 38 04 10 85 */ addi r0, r4, 0x08421085@l
+/* 8031B9D8 00317638 7C 80 30 16 */ mulhwu r4, r0, r6
+/* 8031B9DC 0031763C 7C 04 30 50 */ subf r0, r4, r6
+/* 8031B9E0 00317640 54 00 F8 7E */ srwi r0, r0, 1
+/* 8031B9E4 00317644 7C 00 22 14 */ add r0, r0, r4
+/* 8031B9E8 00317648 54 00 E1 3E */ srwi r0, r0, 4
+/* 8031B9EC 0031764C 1C 00 00 1F */ mulli r0, r0, 0x1f
+/* 8031B9F0 00317650 7D 00 30 50 */ subf r8, r0, r6
+/* 8031B9F4 00317654 48 00 00 08 */ b lbl_8031B9FC
+lbl_8031B9F8:
+/* 8031B9F8 00317658 39 00 FF FF */ li r8, -1
+lbl_8031B9FC:
+/* 8031B9FC 0031765C 2C 08 FF FF */ cmpwi r8, -1
+/* 8031BA00 00317660 41 82 00 E0 */ beq lbl_8031BAE0
+/* 8031BA04 00317664 7C 64 1B 78 */ mr r4, r3
+/* 8031BA08 00317668 39 20 00 00 */ li r9, 0
+/* 8031BA0C 0031766C 48 00 00 0C */ b lbl_8031BA18
+lbl_8031BA10:
+/* 8031BA10 00317670 38 84 00 02 */ addi r4, r4, 2
+/* 8031BA14 00317674 39 29 00 01 */ addi r9, r9, 1
+lbl_8031BA18:
+/* 8031BA18 00317678 A0 04 00 00 */ lhz r0, 0(r4)
+/* 8031BA1C 0031767C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031BA20 00317680 40 82 FF F0 */ bne lbl_8031BA10
+/* 8031BA24 00317684 3C 80 84 21 */ lis r4, 0x84210843@ha
+/* 8031BA28 00317688 3C A0 80 61 */ lis r5, lbl_8060F618@ha
+/* 8031BA2C 0031768C 38 C4 08 43 */ addi r6, r4, 0x84210843@l
+/* 8031BA30 00317690 39 60 00 00 */ li r11, 0
+/* 8031BA34 00317694 38 A5 F6 18 */ addi r5, r5, lbl_8060F618@l
+lbl_8031BA38:
+/* 8031BA38 00317698 7C 0B 59 D6 */ mullw r0, r11, r11
+/* 8031BA3C 0031769C 39 40 00 00 */ li r10, 0
+/* 8031BA40 003176A0 7C E8 02 14 */ add r7, r8, r0
+/* 8031BA44 003176A4 7C 06 38 96 */ mulhw r0, r6, r7
+/* 8031BA48 003176A8 7C 00 3A 14 */ add r0, r0, r7
+/* 8031BA4C 003176AC 7C 00 26 70 */ srawi r0, r0, 4
+/* 8031BA50 003176B0 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 8031BA54 003176B4 7C 00 22 14 */ add r0, r0, r4
+/* 8031BA58 003176B8 1C 00 00 1F */ mulli r0, r0, 0x1f
+/* 8031BA5C 003176BC 7C E0 38 50 */ subf r7, r0, r7
+/* 8031BA60 003176C0 1C 07 00 12 */ mulli r0, r7, 0x12
+/* 8031BA64 003176C4 7D 85 02 14 */ add r12, r5, r0
+/* 8031BA68 003176C8 7D 84 63 78 */ mr r4, r12
+/* 8031BA6C 003176CC 48 00 00 0C */ b lbl_8031BA78
+lbl_8031BA70:
+/* 8031BA70 003176D0 38 84 00 02 */ addi r4, r4, 2
+/* 8031BA74 003176D4 39 4A 00 01 */ addi r10, r10, 1
+lbl_8031BA78:
+/* 8031BA78 003176D8 A0 04 00 00 */ lhz r0, 0(r4)
+/* 8031BA7C 003176DC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031BA80 003176E0 40 82 FF F0 */ bne lbl_8031BA70
+/* 8031BA84 003176E4 7C 09 50 00 */ cmpw r9, r10
+/* 8031BA88 003176E8 40 82 00 4C */ bne lbl_8031BAD4
+/* 8031BA8C 003176EC 7C 6A 1B 78 */ mr r10, r3
+/* 8031BA90 003176F0 3B E0 00 01 */ li r31, 1
+/* 8031BA94 003176F4 7D 29 03 A6 */ mtctr r9
+/* 8031BA98 003176F8 2C 09 00 00 */ cmpwi r9, 0
+/* 8031BA9C 003176FC 40 81 00 28 */ ble lbl_8031BAC4
+lbl_8031BAA0:
+/* 8031BAA0 00317700 A0 8A 00 00 */ lhz r4, 0(r10)
+/* 8031BAA4 00317704 A0 0C 00 00 */ lhz r0, 0(r12)
+/* 8031BAA8 00317708 7C 04 00 40 */ cmplw r4, r0
+/* 8031BAAC 0031770C 41 82 00 0C */ beq lbl_8031BAB8
+/* 8031BAB0 00317710 3B E0 00 00 */ li r31, 0
+/* 8031BAB4 00317714 48 00 00 10 */ b lbl_8031BAC4
+lbl_8031BAB8:
+/* 8031BAB8 00317718 39 4A 00 02 */ addi r10, r10, 2
+/* 8031BABC 0031771C 39 8C 00 02 */ addi r12, r12, 2
+/* 8031BAC0 00317720 42 00 FF E0 */ bdnz lbl_8031BAA0
+lbl_8031BAC4:
+/* 8031BAC4 00317724 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031BAC8 00317728 41 82 00 0C */ beq lbl_8031BAD4
+/* 8031BACC 0031772C 7C E3 3B 78 */ mr r3, r7
+/* 8031BAD0 00317730 48 00 00 14 */ b lbl_8031BAE4
+lbl_8031BAD4:
+/* 8031BAD4 00317734 39 6B 00 01 */ addi r11, r11, 1
+/* 8031BAD8 00317738 2C 0B 00 0F */ cmpwi r11, 0xf
+/* 8031BADC 0031773C 41 80 FF 5C */ blt lbl_8031BA38
+lbl_8031BAE0:
+/* 8031BAE0 00317740 38 60 FF FF */ li r3, -1
+lbl_8031BAE4:
+/* 8031BAE4 00317744 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031BAE8 00317748 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031BAEC 0031774C 4E 80 00 20 */ blr
+
+.global dHash_GetArg
+dHash_GetArg:
+/* 8031BAF0 00317750 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031BAF4 00317754 7C 08 02 A6 */ mflr r0
+/* 8031BAF8 00317758 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031BAFC 0031775C 4B FF FC 35 */ bl _MakeWStr
+/* 8031BB00 00317760 2C 03 00 00 */ cmpwi r3, 0
+/* 8031BB04 00317764 41 82 00 38 */ beq lbl_8031BB3C
+/* 8031BB08 00317768 3C 60 80 61 */ lis r3, lbl_8060F608@ha
+/* 8031BB0C 0031776C 38 63 F6 08 */ addi r3, r3, lbl_8060F608@l
+/* 8031BB10 00317770 4B FF FE 51 */ bl dHash_SearchHashW
+/* 8031BB14 00317774 2C 03 FF FF */ cmpwi r3, -1
+/* 8031BB18 00317778 40 82 00 0C */ bne lbl_8031BB24
+/* 8031BB1C 0031777C 38 60 FF FF */ li r3, -1
+/* 8031BB20 00317780 48 00 00 20 */ b lbl_8031BB40
+lbl_8031BB24:
+/* 8031BB24 00317784 1C 03 00 12 */ mulli r0, r3, 0x12
+/* 8031BB28 00317788 3C 60 80 61 */ lis r3, lbl_8060F618@ha
+/* 8031BB2C 0031778C 38 63 F6 18 */ addi r3, r3, lbl_8060F618@l
+/* 8031BB30 00317790 7C 63 02 14 */ add r3, r3, r0
+/* 8031BB34 00317794 88 63 00 10 */ lbz r3, 0x10(r3)
+/* 8031BB38 00317798 48 00 00 08 */ b lbl_8031BB40
+lbl_8031BB3C:
+/* 8031BB3C 0031779C 38 60 FF FF */ li r3, -1
+lbl_8031BB40:
+/* 8031BB40 003177A0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031BB44 003177A4 7C 08 03 A6 */ mtlr r0
+/* 8031BB48 003177A8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031BB4C 003177AC 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/d_time.s b/asm/SDK/VF/d_time.s new file mode 100644 index 0000000..3184089 --- /dev/null +++ b/asm/SDK/VF/d_time.s @@ -0,0 +1,42 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global dTM_GetNowTime
+dTM_GetNowTime:
+/* 8031BB50 003177B0 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8031BB54 003177B4 7C 08 02 A6 */ mflr r0
+/* 8031BB58 003177B8 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8031BB5C 003177BC 38 00 00 00 */ li r0, 0
+/* 8031BB60 003177C0 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 8031BB64 003177C4 7C 9F 23 78 */ mr r31, r4
+/* 8031BB68 003177C8 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 8031BB6C 003177CC 7C 7E 1B 78 */ mr r30, r3
+/* 8031BB70 003177D0 B0 03 00 00 */ sth r0, 0(r3)
+/* 8031BB74 003177D4 B0 03 00 02 */ sth r0, 2(r3)
+/* 8031BB78 003177D8 B0 03 00 04 */ sth r0, 4(r3)
+/* 8031BB7C 003177DC B0 04 00 00 */ sth r0, 0(r4)
+/* 8031BB80 003177E0 B0 04 00 02 */ sth r0, 2(r4)
+/* 8031BB84 003177E4 B0 04 00 04 */ sth r0, 4(r4)
+/* 8031BB88 003177E8 4B F5 6C 31 */ bl OSGetTime
+/* 8031BB8C 003177EC 38 A1 00 08 */ addi r5, r1, 8
+/* 8031BB90 003177F0 4B F5 6E 75 */ bl OSTicksToCalendarTime
+/* 8031BB94 003177F4 80 01 00 1C */ lwz r0, 0x1c(r1)
+/* 8031BB98 003177F8 B0 1E 00 00 */ sth r0, 0(r30)
+/* 8031BB9C 003177FC 80 61 00 18 */ lwz r3, 0x18(r1)
+/* 8031BBA0 00317800 38 03 00 01 */ addi r0, r3, 1
+/* 8031BBA4 00317804 B0 1E 00 02 */ sth r0, 2(r30)
+/* 8031BBA8 00317808 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031BBAC 0031780C B0 1E 00 04 */ sth r0, 4(r30)
+/* 8031BBB0 00317810 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 8031BBB4 00317814 B0 1F 00 00 */ sth r0, 0(r31)
+/* 8031BBB8 00317818 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8031BBBC 0031781C B0 1F 00 02 */ sth r0, 2(r31)
+/* 8031BBC0 00317820 80 01 00 08 */ lwz r0, 8(r1)
+/* 8031BBC4 00317824 B0 1F 00 04 */ sth r0, 4(r31)
+/* 8031BBC8 00317828 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 8031BBCC 0031782C 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 8031BBD0 00317830 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8031BBD4 00317834 7C 08 03 A6 */ mtlr r0
+/* 8031BBD8 00317838 38 21 00 40 */ addi r1, r1, 0x40
+/* 8031BBDC 0031783C 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/d_vf.s b/asm/SDK/VF/d_vf.s new file mode 100644 index 0000000..5f68937 --- /dev/null +++ b/asm/SDK/VF/d_vf.s @@ -0,0 +1,444 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFIsAvailable
+VFIsAvailable:
+/* 8031A4A0 00316100 80 6D AF E8 */ lwz r3, lbl_806402A8-_SDA_BASE_(r13)
+/* 8031A4A4 00316104 7C 03 00 D0 */ neg r0, r3
+/* 8031A4A8 00316108 7C 00 1B 78 */ or r0, r0, r3
+/* 8031A4AC 0031610C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8031A4B0 00316110 4E 80 00 20 */ blr
+
+.global VFInitEx
+VFInitEx:
+/* 8031A4B4 00316114 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A4B8 00316118 7C 08 02 A6 */ mflr r0
+/* 8031A4BC 0031611C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A4C0 00316120 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A4C4 00316124 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A4C8 00316128 40 82 00 18 */ bne lbl_8031A4E0
+/* 8031A4CC 0031612C 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A4D0 00316130 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A4D4 00316134 4B F5 54 3D */ bl OSInitMutex
+/* 8031A4D8 00316138 38 00 00 01 */ li r0, 1
+/* 8031A4DC 0031613C 90 0D AF EC */ stw r0, lbl_806402AC-_SDA_BASE_(r13)
+lbl_8031A4E0:
+/* 8031A4E0 00316140 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A4E4 00316144 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A4E8 00316148 41 82 00 10 */ beq lbl_8031A4F8
+/* 8031A4EC 0031614C 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A4F0 00316150 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A4F4 00316154 4B F5 54 55 */ bl OSLockMutex
+lbl_8031A4F8:
+/* 8031A4F8 00316158 80 0D AF E8 */ lwz r0, lbl_806402A8-_SDA_BASE_(r13)
+/* 8031A4FC 0031615C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A500 00316160 40 82 00 3C */ bne lbl_8031A53C
+/* 8031A504 00316164 38 00 00 01 */ li r0, 1
+/* 8031A508 00316168 3C 60 80 5A */ lis r3, lbl_805A75A0@ha
+/* 8031A50C 0031616C 3C 80 00 07 */ lis r4, 0x00068000@ha
+/* 8031A510 00316170 90 0D AF E8 */ stw r0, lbl_806402A8-_SDA_BASE_(r13)
+/* 8031A514 00316174 38 63 75 A0 */ addi r3, r3, lbl_805A75A0@l
+/* 8031A518 00316178 38 84 80 00 */ addi r4, r4, 0x00068000@l
+/* 8031A51C 0031617C 48 00 07 05 */ bl VFSysInit
+/* 8031A520 00316180 38 60 00 00 */ li r3, 0
+/* 8031A524 00316184 38 80 00 00 */ li r4, 0
+/* 8031A528 00316188 4B FE E8 89 */ bl VFipdm_init_diskmanager
+/* 8031A52C 0031618C 38 60 00 00 */ li r3, 0
+/* 8031A530 00316190 38 80 00 00 */ li r4, 0
+/* 8031A534 00316194 4B FF FE A1 */ bl VFipf2_init_prfile2
+/* 8031A538 00316198 48 00 13 25 */ bl dHash_InitHashTable
+lbl_8031A53C:
+/* 8031A53C 0031619C 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A540 003161A0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A544 003161A4 41 82 00 10 */ beq lbl_8031A554
+/* 8031A548 003161A8 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A54C 003161AC 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A550 003161B0 4B F5 54 D5 */ bl OSUnlockMutex
+lbl_8031A554:
+/* 8031A554 003161B4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A558 003161B8 7C 08 03 A6 */ mtlr r0
+/* 8031A55C 003161BC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A560 003161C0 4E 80 00 20 */ blr
+
+.global VFFinalize
+VFFinalize:
+/* 8031A564 003161C4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A568 003161C8 7C 08 02 A6 */ mflr r0
+/* 8031A56C 003161CC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A570 003161D0 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A574 003161D4 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A578 003161D8 41 82 00 10 */ beq lbl_8031A588
+/* 8031A57C 003161DC 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A580 003161E0 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A584 003161E4 4B F5 53 C5 */ bl OSLockMutex
+lbl_8031A588:
+/* 8031A588 003161E8 80 0D AF E8 */ lwz r0, lbl_806402A8-_SDA_BASE_(r13)
+/* 8031A58C 003161EC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A590 003161F0 41 82 00 10 */ beq lbl_8031A5A0
+/* 8031A594 003161F4 48 00 08 11 */ bl VFSysFinalize
+/* 8031A598 003161F8 38 00 00 00 */ li r0, 0
+/* 8031A59C 003161FC 90 0D AF E8 */ stw r0, lbl_806402A8-_SDA_BASE_(r13)
+lbl_8031A5A0:
+/* 8031A5A0 00316200 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A5A4 00316204 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A5A8 00316208 41 82 00 10 */ beq lbl_8031A5B8
+/* 8031A5AC 0031620C 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A5B0 00316210 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A5B4 00316214 4B F5 54 71 */ bl OSUnlockMutex
+lbl_8031A5B8:
+/* 8031A5B8 00316218 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A5BC 0031621C 7C 08 03 A6 */ mtlr r0
+/* 8031A5C0 00316220 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A5C4 00316224 4E 80 00 20 */ blr
+
+.global VF_path2handleidx
+VF_path2handleidx:
+/* 8031A5C8 00316228 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031A5CC 0031622C 7C 08 02 A6 */ mflr r0
+/* 8031A5D0 00316230 38 A0 00 08 */ li r5, 8
+/* 8031A5D4 00316234 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031A5D8 00316238 38 00 FF FF */ li r0, -1
+/* 8031A5DC 0031623C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031A5E0 00316240 7C 9F 23 78 */ mr r31, r4
+/* 8031A5E4 00316244 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031A5E8 00316248 3B C0 00 00 */ li r30, 0
+/* 8031A5EC 0031624C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031A5F0 00316250 7C 9D 23 78 */ mr r29, r4
+/* 8031A5F4 00316254 38 80 00 00 */ li r4, 0
+/* 8031A5F8 00316258 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8031A5FC 0031625C 7C 7C 1B 78 */ mr r28, r3
+/* 8031A600 00316260 90 03 00 00 */ stw r0, 0(r3)
+/* 8031A604 00316264 38 61 00 08 */ addi r3, r1, 8
+/* 8031A608 00316268 4B FE A9 CD */ bl VFipf_memset
+/* 8031A60C 0031626C 38 61 00 08 */ addi r3, r1, 8
+/* 8031A610 00316270 48 00 00 64 */ b lbl_8031A674
+lbl_8031A614:
+/* 8031A614 00316274 7C 80 07 74 */ extsb r0, r4
+/* 8031A618 00316278 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8031A61C 0031627C 41 82 00 64 */ beq lbl_8031A680
+/* 8031A620 00316280 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 8031A624 00316284 41 82 00 5C */ beq lbl_8031A680
+/* 8031A628 00316288 2C 00 00 3A */ cmpwi r0, 0x3a
+/* 8031A62C 0031628C 40 82 00 30 */ bne lbl_8031A65C
+/* 8031A630 00316290 38 61 00 08 */ addi r3, r1, 8
+/* 8031A634 00316294 48 00 14 BD */ bl dHash_GetArg
+/* 8031A638 00316298 2C 03 FF FF */ cmpwi r3, -1
+/* 8031A63C 0031629C 90 7C 00 00 */ stw r3, 0(r28)
+/* 8031A640 003162A0 41 82 00 0C */ beq lbl_8031A64C
+/* 8031A644 003162A4 2C 1E 00 07 */ cmpwi r30, 7
+/* 8031A648 003162A8 40 81 00 0C */ ble lbl_8031A654
+lbl_8031A64C:
+/* 8031A64C 003162AC 3B A0 00 00 */ li r29, 0
+/* 8031A650 003162B0 48 00 00 30 */ b lbl_8031A680
+lbl_8031A654:
+/* 8031A654 003162B4 3B BF 00 01 */ addi r29, r31, 1
+/* 8031A658 003162B8 48 00 00 28 */ b lbl_8031A680
+lbl_8031A65C:
+/* 8031A65C 003162BC 2C 1E 00 07 */ cmpwi r30, 7
+/* 8031A660 003162C0 40 80 00 08 */ bge lbl_8031A668
+/* 8031A664 003162C4 98 83 00 00 */ stb r4, 0(r3)
+lbl_8031A668:
+/* 8031A668 003162C8 3B FF 00 01 */ addi r31, r31, 1
+/* 8031A66C 003162CC 38 63 00 01 */ addi r3, r3, 1
+/* 8031A670 003162D0 3B DE 00 01 */ addi r30, r30, 1
+lbl_8031A674:
+/* 8031A674 003162D4 88 9F 00 00 */ lbz r4, 0(r31)
+/* 8031A678 003162D8 7C 80 07 75 */ extsb. r0, r4
+/* 8031A67C 003162DC 40 82 FF 98 */ bne lbl_8031A614
+lbl_8031A680:
+/* 8031A680 003162E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031A684 003162E4 7F A3 EB 78 */ mr r3, r29
+/* 8031A688 003162E8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031A68C 003162EC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031A690 003162F0 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8031A694 003162F4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031A698 003162F8 7C 08 03 A6 */ mtlr r0
+/* 8031A69C 003162FC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031A6A0 00316300 4E 80 00 20 */ blr
+
+.global VFOpenFile
+VFOpenFile:
+/* 8031A6A4 00316304 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031A6A8 00316308 7C 08 02 A6 */ mflr r0
+/* 8031A6AC 0031630C 38 A0 FF FF */ li r5, -1
+/* 8031A6B0 00316310 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031A6B4 00316314 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031A6B8 00316318 7C 9F 23 78 */ mr r31, r4
+/* 8031A6BC 0031631C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031A6C0 00316320 7C 7E 1B 78 */ mr r30, r3
+/* 8031A6C4 00316324 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A6C8 00316328 90 A1 00 08 */ stw r5, 8(r1)
+/* 8031A6CC 0031632C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A6D0 00316330 41 82 00 10 */ beq lbl_8031A6E0
+/* 8031A6D4 00316334 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A6D8 00316338 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A6DC 0031633C 4B F5 52 6D */ bl OSLockMutex
+lbl_8031A6E0:
+/* 8031A6E0 00316340 7F C4 F3 78 */ mr r4, r30
+/* 8031A6E4 00316344 38 61 00 08 */ addi r3, r1, 8
+/* 8031A6E8 00316348 4B FF FE E1 */ bl VF_path2handleidx
+/* 8031A6EC 0031634C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031A6F0 00316350 7C 64 1B 78 */ mr r4, r3
+/* 8031A6F4 00316354 40 82 00 30 */ bne lbl_8031A724
+/* 8031A6F8 00316358 3C 60 00 01 */ lis r3, 0x0000B003@ha
+/* 8031A6FC 0031635C 38 63 B0 03 */ addi r3, r3, 0x0000B003@l
+/* 8031A700 00316360 48 00 03 6D */ bl VFSysSetLastError
+/* 8031A704 00316364 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A708 00316368 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A70C 0031636C 41 82 00 10 */ beq lbl_8031A71C
+/* 8031A710 00316370 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A714 00316374 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A718 00316378 4B F5 53 0D */ bl OSUnlockMutex
+lbl_8031A71C:
+/* 8031A71C 0031637C 38 60 00 00 */ li r3, 0
+/* 8031A720 00316380 48 00 00 48 */ b lbl_8031A768
+lbl_8031A724:
+/* 8031A724 00316384 80 01 00 08 */ lwz r0, 8(r1)
+/* 8031A728 00316388 2C 00 FF FF */ cmpwi r0, -1
+/* 8031A72C 0031638C 41 82 00 14 */ beq lbl_8031A740
+/* 8031A730 00316390 7C 03 03 78 */ mr r3, r0
+/* 8031A734 00316394 7F E5 FB 78 */ mr r5, r31
+/* 8031A738 00316398 48 00 08 E5 */ bl VFSysOpenFile
+/* 8031A73C 0031639C 48 00 00 0C */ b lbl_8031A748
+lbl_8031A740:
+/* 8031A740 003163A0 7F E4 FB 78 */ mr r4, r31
+/* 8031A744 003163A4 48 00 07 ED */ bl VFSysOpenFile_current
+lbl_8031A748:
+/* 8031A748 003163A8 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A74C 003163AC 7C 7F 1B 78 */ mr r31, r3
+/* 8031A750 003163B0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A754 003163B4 41 82 00 10 */ beq lbl_8031A764
+/* 8031A758 003163B8 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A75C 003163BC 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A760 003163C0 4B F5 52 C5 */ bl OSUnlockMutex
+lbl_8031A764:
+/* 8031A764 003163C4 7F E3 FB 78 */ mr r3, r31
+lbl_8031A768:
+/* 8031A768 003163C8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031A76C 003163CC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031A770 003163D0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031A774 003163D4 7C 08 03 A6 */ mtlr r0
+/* 8031A778 003163D8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031A77C 003163DC 4E 80 00 20 */ blr
+
+.global VFCloseFile
+VFCloseFile:
+/* 8031A780 003163E0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A784 003163E4 7C 08 02 A6 */ mflr r0
+/* 8031A788 003163E8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A78C 003163EC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031A790 003163F0 7C 7F 1B 78 */ mr r31, r3
+/* 8031A794 003163F4 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A798 003163F8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A79C 003163FC 41 82 00 10 */ beq lbl_8031A7AC
+/* 8031A7A0 00316400 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A7A4 00316404 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A7A8 00316408 4B F5 51 A1 */ bl OSLockMutex
+lbl_8031A7AC:
+/* 8031A7AC 0031640C 7F E3 FB 78 */ mr r3, r31
+/* 8031A7B0 00316410 48 00 09 A9 */ bl VFSysCloseFile
+/* 8031A7B4 00316414 7C 7F 1B 78 */ mr r31, r3
+/* 8031A7B8 00316418 48 00 02 B5 */ bl VFSysSetLastError
+/* 8031A7BC 0031641C 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A7C0 00316420 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A7C4 00316424 41 82 00 10 */ beq lbl_8031A7D4
+/* 8031A7C8 00316428 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A7CC 0031642C 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A7D0 00316430 4B F5 52 55 */ bl OSUnlockMutex
+lbl_8031A7D4:
+/* 8031A7D4 00316434 7F E3 FB 78 */ mr r3, r31
+/* 8031A7D8 00316438 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031A7DC 0031643C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A7E0 00316440 7C 08 03 A6 */ mtlr r0
+/* 8031A7E4 00316444 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A7E8 00316448 4E 80 00 20 */ blr
+
+.global VFSeekFile
+VFSeekFile:
+/* 8031A7EC 0031644C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031A7F0 00316450 7C 08 02 A6 */ mflr r0
+/* 8031A7F4 00316454 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031A7F8 00316458 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031A7FC 0031645C 7C BF 2B 78 */ mr r31, r5
+/* 8031A800 00316460 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031A804 00316464 7C 9E 23 78 */ mr r30, r4
+/* 8031A808 00316468 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031A80C 0031646C 7C 7D 1B 78 */ mr r29, r3
+/* 8031A810 00316470 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A814 00316474 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A818 00316478 41 82 00 10 */ beq lbl_8031A828
+/* 8031A81C 0031647C 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A820 00316480 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A824 00316484 4B F5 51 25 */ bl OSLockMutex
+lbl_8031A828:
+/* 8031A828 00316488 7F A3 EB 78 */ mr r3, r29
+/* 8031A82C 0031648C 7F C4 F3 78 */ mr r4, r30
+/* 8031A830 00316490 7F E5 FB 78 */ mr r5, r31
+/* 8031A834 00316494 48 00 0A 0D */ bl VFSysSeekFile
+/* 8031A838 00316498 7C 7F 1B 78 */ mr r31, r3
+/* 8031A83C 0031649C 48 00 02 31 */ bl VFSysSetLastError
+/* 8031A840 003164A0 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A844 003164A4 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A848 003164A8 41 82 00 10 */ beq lbl_8031A858
+/* 8031A84C 003164AC 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A850 003164B0 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A854 003164B4 4B F5 51 D1 */ bl OSUnlockMutex
+lbl_8031A858:
+/* 8031A858 003164B8 7F E3 FB 78 */ mr r3, r31
+/* 8031A85C 003164BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031A860 003164C0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031A864 003164C4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031A868 003164C8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031A86C 003164CC 7C 08 03 A6 */ mtlr r0
+/* 8031A870 003164D0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031A874 003164D4 4E 80 00 20 */ blr
+
+.global VFReadFile
+VFReadFile:
+/* 8031A878 003164D8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031A87C 003164DC 7C 08 02 A6 */ mflr r0
+/* 8031A880 003164E0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031A884 003164E4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031A888 003164E8 7C DF 33 78 */ mr r31, r6
+/* 8031A88C 003164EC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031A890 003164F0 7C BE 2B 78 */ mr r30, r5
+/* 8031A894 003164F4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031A898 003164F8 7C 9D 23 78 */ mr r29, r4
+/* 8031A89C 003164FC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8031A8A0 00316500 7C 7C 1B 78 */ mr r28, r3
+/* 8031A8A4 00316504 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A8A8 00316508 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A8AC 0031650C 41 82 00 10 */ beq lbl_8031A8BC
+/* 8031A8B0 00316510 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A8B4 00316514 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A8B8 00316518 4B F5 50 91 */ bl OSLockMutex
+lbl_8031A8BC:
+/* 8031A8BC 0031651C 7F E3 FB 78 */ mr r3, r31
+/* 8031A8C0 00316520 7F A4 EB 78 */ mr r4, r29
+/* 8031A8C4 00316524 7F C5 F3 78 */ mr r5, r30
+/* 8031A8C8 00316528 7F 86 E3 78 */ mr r6, r28
+/* 8031A8CC 0031652C 48 00 0A 7D */ bl VFSysReadFile
+/* 8031A8D0 00316530 7C 7F 1B 78 */ mr r31, r3
+/* 8031A8D4 00316534 48 00 01 99 */ bl VFSysSetLastError
+/* 8031A8D8 00316538 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A8DC 0031653C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A8E0 00316540 41 82 00 10 */ beq lbl_8031A8F0
+/* 8031A8E4 00316544 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A8E8 00316548 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A8EC 0031654C 4B F5 51 39 */ bl OSUnlockMutex
+lbl_8031A8F0:
+/* 8031A8F0 00316550 7F E3 FB 78 */ mr r3, r31
+/* 8031A8F4 00316554 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031A8F8 00316558 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031A8FC 0031655C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031A900 00316560 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8031A904 00316564 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031A908 00316568 7C 08 03 A6 */ mtlr r0
+/* 8031A90C 0031656C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031A910 00316570 4E 80 00 20 */ blr
+
+.global VFWriteFile
+VFWriteFile:
+/* 8031A914 00316574 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031A918 00316578 7C 08 02 A6 */ mflr r0
+/* 8031A91C 0031657C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031A920 00316580 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031A924 00316584 7C BF 2B 78 */ mr r31, r5
+/* 8031A928 00316588 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031A92C 0031658C 7C 9E 23 78 */ mr r30, r4
+/* 8031A930 00316590 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031A934 00316594 7C 7D 1B 78 */ mr r29, r3
+/* 8031A938 00316598 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A93C 0031659C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A940 003165A0 41 82 00 10 */ beq lbl_8031A950
+/* 8031A944 003165A4 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A948 003165A8 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A94C 003165AC 4B F5 4F FD */ bl OSLockMutex
+lbl_8031A950:
+/* 8031A950 003165B0 7F C3 F3 78 */ mr r3, r30
+/* 8031A954 003165B4 7F E4 FB 78 */ mr r4, r31
+/* 8031A958 003165B8 7F A5 EB 78 */ mr r5, r29
+/* 8031A95C 003165BC 48 00 0B 65 */ bl VFSysWriteFile
+/* 8031A960 003165C0 7C 7F 1B 78 */ mr r31, r3
+/* 8031A964 003165C4 48 00 01 09 */ bl VFSysSetLastError
+/* 8031A968 003165C8 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A96C 003165CC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A970 003165D0 41 82 00 10 */ beq lbl_8031A980
+/* 8031A974 003165D4 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A978 003165D8 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A97C 003165DC 4B F5 50 A9 */ bl OSUnlockMutex
+lbl_8031A980:
+/* 8031A980 003165E0 7F E3 FB 78 */ mr r3, r31
+/* 8031A984 003165E4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031A988 003165E8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031A98C 003165EC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031A990 003165F0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031A994 003165F4 7C 08 03 A6 */ mtlr r0
+/* 8031A998 003165F8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031A99C 003165FC 4E 80 00 20 */ blr
+
+.global VFGetFileSizeByFd
+VFGetFileSizeByFd:
+/* 8031A9A0 00316600 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A9A4 00316604 7C 08 02 A6 */ mflr r0
+/* 8031A9A8 00316608 7C 64 1B 78 */ mr r4, r3
+/* 8031A9AC 0031660C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A9B0 00316610 38 00 FF FF */ li r0, -1
+/* 8031A9B4 00316614 38 61 00 08 */ addi r3, r1, 8
+/* 8031A9B8 00316618 90 01 00 08 */ stw r0, 8(r1)
+/* 8031A9BC 0031661C 48 00 0C 11 */ bl VFSysGetFileSizeByFd
+/* 8031A9C0 00316620 2C 03 00 00 */ cmpwi r3, 0
+/* 8031A9C4 00316624 41 82 00 08 */ beq lbl_8031A9CC
+/* 8031A9C8 00316628 48 00 00 A5 */ bl VFSysSetLastError
+lbl_8031A9CC:
+/* 8031A9CC 0031662C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A9D0 00316630 80 61 00 08 */ lwz r3, 8(r1)
+/* 8031A9D4 00316634 7C 08 03 A6 */ mtlr r0
+/* 8031A9D8 00316638 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A9DC 0031663C 4E 80 00 20 */ blr
+
+.global VFGetLastError
+VFGetLastError:
+/* 8031A9E0 00316640 48 00 0C 54 */ b VFSysGetLastError
+
+.global VFGetLastDeviceError
+VFGetLastDeviceError:
+/* 8031A9E4 00316644 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A9E8 00316648 7C 08 02 A6 */ mflr r0
+/* 8031A9EC 0031664C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A9F0 00316650 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031A9F4 00316654 7C 7F 1B 78 */ mr r31, r3
+/* 8031A9F8 00316658 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A9FC 0031665C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AA00 00316660 41 82 00 10 */ beq lbl_8031AA10
+/* 8031AA04 00316664 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031AA08 00316668 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031AA0C 0031666C 4B F5 4F 3D */ bl OSLockMutex
+lbl_8031AA10:
+/* 8031AA10 00316670 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031AA14 00316674 41 82 00 18 */ beq lbl_8031AA2C
+/* 8031AA18 00316678 7F E3 FB 78 */ mr r3, r31
+/* 8031AA1C 0031667C 48 00 10 D5 */ bl dHash_GetArg
+/* 8031AA20 00316680 48 00 0C C9 */ bl VFSysGetLastDeviceError
+/* 8031AA24 00316684 7C 7F 1B 78 */ mr r31, r3
+/* 8031AA28 00316688 48 00 00 0C */ b lbl_8031AA34
+lbl_8031AA2C:
+/* 8031AA2C 0031668C 48 00 0C 11 */ bl VFSysGetLastDeviceError_current
+/* 8031AA30 00316690 7C 7F 1B 78 */ mr r31, r3
+lbl_8031AA34:
+/* 8031AA34 00316694 7F E3 FB 78 */ mr r3, r31
+/* 8031AA38 00316698 48 00 00 35 */ bl VFSysSetLastError
+/* 8031AA3C 0031669C 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031AA40 003166A0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AA44 003166A4 41 82 00 10 */ beq lbl_8031AA54
+/* 8031AA48 003166A8 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031AA4C 003166AC 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031AA50 003166B0 4B F5 4F D5 */ bl OSUnlockMutex
+lbl_8031AA54:
+/* 8031AA54 003166B4 7F E3 FB 78 */ mr r3, r31
+/* 8031AA58 003166B8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031AA5C 003166BC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031AA60 003166C0 7C 08 03 A6 */ mtlr r0
+/* 8031AA64 003166C4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031AA68 003166C8 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/d_vf_sys.s b/asm/SDK/VF/d_vf_sys.s new file mode 100644 index 0000000..add45dc --- /dev/null +++ b/asm/SDK/VF/d_vf_sys.s @@ -0,0 +1,1008 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFSysSetLastError
+VFSysSetLastError:
+/* 8031AA6C 003166CC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AA70 003166D0 4D 82 00 20 */ beqlr
+/* 8031AA74 003166D4 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13)
+/* 8031AA78 003166D8 4E 80 00 20 */ blr
+
+.global VFSysGetHandleP
+VFSysGetHandleP:
+/* 8031AA7C 003166DC 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AA80 003166E0 7C 03 00 40 */ cmplw r3, r0
+/* 8031AA84 003166E4 40 80 00 1C */ bge lbl_8031AAA0
+/* 8031AA88 003166E8 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AA8C 003166EC 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AA90 003166F0 41 82 00 10 */ beq lbl_8031AAA0
+/* 8031AA94 003166F4 1C 03 01 40 */ mulli r0, r3, 0x140
+/* 8031AA98 003166F8 7C 64 02 14 */ add r3, r4, r0
+/* 8031AA9C 003166FC 4E 80 00 20 */ blr
+lbl_8031AAA0:
+/* 8031AAA0 00316700 38 60 00 00 */ li r3, 0
+/* 8031AAA4 00316704 4E 80 00 20 */ blr
+
+.global VFSysHandleP2Idx
+VFSysHandleP2Idx:
+/* 8031AAA8 00316708 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AAAC 0031670C 41 82 00 54 */ beq lbl_8031AB00
+/* 8031AAB0 00316710 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AAB4 00316714 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AAB8 00316718 41 82 00 14 */ beq lbl_8031AACC
+/* 8031AABC 0031671C 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AAC0 00316720 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AAC4 00316724 41 82 00 08 */ beq lbl_8031AACC
+/* 8031AAC8 00316728 48 00 00 08 */ b lbl_8031AAD0
+lbl_8031AACC:
+/* 8031AACC 0031672C 38 80 00 00 */ li r4, 0
+lbl_8031AAD0:
+/* 8031AAD0 00316730 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031AAD4 00316734 38 A0 00 00 */ li r5, 0
+/* 8031AAD8 00316738 7C 04 02 14 */ add r0, r4, r0
+/* 8031AADC 0031673C 48 00 00 1C */ b lbl_8031AAF8
+lbl_8031AAE0:
+/* 8031AAE0 00316740 7C 03 20 40 */ cmplw r3, r4
+/* 8031AAE4 00316744 40 82 00 0C */ bne lbl_8031AAF0
+/* 8031AAE8 00316748 7C A3 2B 78 */ mr r3, r5
+/* 8031AAEC 0031674C 4E 80 00 20 */ blr
+lbl_8031AAF0:
+/* 8031AAF0 00316750 38 84 01 40 */ addi r4, r4, 0x140
+/* 8031AAF4 00316754 38 A5 00 01 */ addi r5, r5, 1
+lbl_8031AAF8:
+/* 8031AAF8 00316758 7C 04 00 40 */ cmplw r4, r0
+/* 8031AAFC 0031675C 40 82 FF E4 */ bne lbl_8031AAE0
+lbl_8031AB00:
+/* 8031AB00 00316760 38 60 FF FF */ li r3, -1
+/* 8031AB04 00316764 4E 80 00 20 */ blr
+
+.global VFSysVol2HandleP
+VFSysVol2HandleP:
+/* 8031AB08 00316768 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AB0C 0031676C 41 82 00 68 */ beq lbl_8031AB74
+/* 8031AB10 00316770 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AB14 00316774 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AB18 00316778 41 82 00 14 */ beq lbl_8031AB2C
+/* 8031AB1C 0031677C 80 AD B0 00 */ lwz r5, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AB20 00316780 2C 05 00 00 */ cmpwi r5, 0
+/* 8031AB24 00316784 41 82 00 08 */ beq lbl_8031AB2C
+/* 8031AB28 00316788 48 00 00 08 */ b lbl_8031AB30
+lbl_8031AB2C:
+/* 8031AB2C 0031678C 38 A0 00 00 */ li r5, 0
+lbl_8031AB30:
+/* 8031AB30 00316790 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031AB34 00316794 7C C5 02 14 */ add r6, r5, r0
+/* 8031AB38 00316798 48 00 00 34 */ b lbl_8031AB6C
+lbl_8031AB3C:
+/* 8031AB3C 0031679C 80 05 00 00 */ lwz r0, 0(r5)
+/* 8031AB40 003167A0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AB44 003167A4 41 82 00 24 */ beq lbl_8031AB68
+/* 8031AB48 003167A8 88 85 00 14 */ lbz r4, 0x14(r5)
+/* 8031AB4C 003167AC 88 03 18 7A */ lbz r0, 0x187a(r3)
+/* 8031AB50 003167B0 7C 84 07 74 */ extsb r4, r4
+/* 8031AB54 003167B4 7C 00 07 74 */ extsb r0, r0
+/* 8031AB58 003167B8 7C 04 00 00 */ cmpw r4, r0
+/* 8031AB5C 003167BC 40 82 00 0C */ bne lbl_8031AB68
+/* 8031AB60 003167C0 7C A3 2B 78 */ mr r3, r5
+/* 8031AB64 003167C4 4E 80 00 20 */ blr
+lbl_8031AB68:
+/* 8031AB68 003167C8 38 A5 01 40 */ addi r5, r5, 0x140
+lbl_8031AB6C:
+/* 8031AB6C 003167CC 7C 05 30 40 */ cmplw r5, r6
+/* 8031AB70 003167D0 40 82 FF CC */ bne lbl_8031AB3C
+lbl_8031AB74:
+/* 8031AB74 003167D4 38 60 00 00 */ li r3, 0
+/* 8031AB78 003167D8 4E 80 00 20 */ blr
+
+.global VFSysPDMDisk2HandleIdx
+VFSysPDMDisk2HandleIdx:
+/* 8031AB7C 003167DC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AB80 003167E0 38 80 FF FF */ li r4, -1
+/* 8031AB84 003167E4 41 82 00 54 */ beq lbl_8031ABD8
+/* 8031AB88 003167E8 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AB8C 003167EC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AB90 003167F0 41 82 00 14 */ beq lbl_8031ABA4
+/* 8031AB94 003167F4 80 AD B0 00 */ lwz r5, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AB98 003167F8 2C 05 00 00 */ cmpwi r5, 0
+/* 8031AB9C 003167FC 41 82 00 08 */ beq lbl_8031ABA4
+/* 8031ABA0 00316800 48 00 00 08 */ b lbl_8031ABA8
+lbl_8031ABA4:
+/* 8031ABA4 00316804 38 A0 00 00 */ li r5, 0
+lbl_8031ABA8:
+/* 8031ABA8 00316808 38 C0 00 00 */ li r6, 0
+/* 8031ABAC 0031680C 7C 09 03 A6 */ mtctr r0
+/* 8031ABB0 00316810 28 00 00 00 */ cmplwi r0, 0
+/* 8031ABB4 00316814 40 81 00 24 */ ble lbl_8031ABD8
+lbl_8031ABB8:
+/* 8031ABB8 00316818 80 05 00 08 */ lwz r0, 8(r5)
+/* 8031ABBC 0031681C 7C 03 00 40 */ cmplw r3, r0
+/* 8031ABC0 00316820 40 82 00 0C */ bne lbl_8031ABCC
+/* 8031ABC4 00316824 7C C4 33 78 */ mr r4, r6
+/* 8031ABC8 00316828 48 00 00 10 */ b lbl_8031ABD8
+lbl_8031ABCC:
+/* 8031ABCC 0031682C 38 A5 01 40 */ addi r5, r5, 0x140
+/* 8031ABD0 00316830 38 C6 00 01 */ addi r6, r6, 1
+/* 8031ABD4 00316834 42 00 FF E4 */ bdnz lbl_8031ABB8
+lbl_8031ABD8:
+/* 8031ABD8 00316838 7C 83 23 78 */ mr r3, r4
+/* 8031ABDC 0031683C 4E 80 00 20 */ blr
+
+.global VFSysGetDriveP
+VFSysGetDriveP:
+/* 8031ABE0 00316840 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031ABE4 00316844 7C 03 00 40 */ cmplw r3, r0
+/* 8031ABE8 00316848 40 80 00 1C */ bge lbl_8031AC04
+/* 8031ABEC 0031684C 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031ABF0 00316850 2C 04 00 00 */ cmpwi r4, 0
+/* 8031ABF4 00316854 41 82 00 10 */ beq lbl_8031AC04
+/* 8031ABF8 00316858 1C 03 01 40 */ mulli r0, r3, 0x140
+/* 8031ABFC 0031685C 7C 64 02 14 */ add r3, r4, r0
+/* 8031AC00 00316860 48 00 00 08 */ b lbl_8031AC08
+lbl_8031AC04:
+/* 8031AC04 00316864 38 60 00 00 */ li r3, 0
+lbl_8031AC08:
+/* 8031AC08 00316868 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AC0C 0031686C 41 82 00 0C */ beq lbl_8031AC18
+/* 8031AC10 00316870 38 63 00 04 */ addi r3, r3, 4
+/* 8031AC14 00316874 4E 80 00 20 */ blr
+lbl_8031AC18:
+/* 8031AC18 00316878 38 60 00 00 */ li r3, 0
+/* 8031AC1C 0031687C 4E 80 00 20 */ blr
+
+.global VFSysInit
+VFSysInit:
+/* 8031AC20 00316880 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031AC24 00316884 7C 08 02 A6 */ mflr r0
+/* 8031AC28 00316888 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AC2C 0031688C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031AC30 00316890 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031AC34 00316894 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031AC38 00316898 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031AC3C 0031689C 54 9D 93 BE */ srwi r29, r4, 0xe
+/* 8031AC40 003168A0 41 82 00 24 */ beq lbl_8031AC64
+/* 8031AC44 003168A4 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AC48 003168A8 41 82 00 1C */ beq lbl_8031AC64
+/* 8031AC4C 003168AC 80 0D AF F8 */ lwz r0, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AC50 003168B0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AC54 003168B4 40 82 00 10 */ bne lbl_8031AC64
+/* 8031AC58 003168B8 38 A0 00 00 */ li r5, 0
+/* 8031AC5C 003168BC 4B F7 C1 ED */ bl MEMCreateExpHeapEx
+/* 8031AC60 003168C0 90 6D AF F8 */ stw r3, lbl_806402B8-_SDA_BASE_(r13)
+lbl_8031AC64:
+/* 8031AC64 003168C4 28 1D 00 1A */ cmplwi r29, 0x1a
+/* 8031AC68 003168C8 38 80 00 1A */ li r4, 0x1a
+/* 8031AC6C 003168CC 41 81 00 08 */ bgt lbl_8031AC74
+/* 8031AC70 003168D0 7F A4 EB 78 */ mr r4, r29
+lbl_8031AC74:
+/* 8031AC74 003168D4 80 0D B0 00 */ lwz r0, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AC78 003168D8 90 8D AF F0 */ stw r4, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AC7C 003168DC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AC80 003168E0 40 82 00 28 */ bne lbl_8031ACA8
+/* 8031AC84 003168E4 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AC88 003168E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AC8C 003168EC 40 82 00 0C */ bne lbl_8031AC98
+/* 8031AC90 003168F0 38 60 00 00 */ li r3, 0
+/* 8031AC94 003168F4 48 00 00 10 */ b lbl_8031ACA4
+lbl_8031AC98:
+/* 8031AC98 003168F8 1C 84 01 40 */ mulli r4, r4, 0x140
+/* 8031AC9C 003168FC 38 A0 00 20 */ li r5, 0x20
+/* 8031ACA0 00316900 4B F7 C2 89 */ bl MEMAllocFromExpHeapEx
+lbl_8031ACA4:
+/* 8031ACA4 00316904 90 6D B0 00 */ stw r3, lbl_806402C0-_SDA_BASE_(r13)
+lbl_8031ACA8:
+/* 8031ACA8 00316908 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031ACAC 0031690C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031ACB0 00316910 41 82 00 14 */ beq lbl_8031ACC4
+/* 8031ACB4 00316914 83 AD B0 00 */ lwz r29, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031ACB8 00316918 2C 1D 00 00 */ cmpwi r29, 0
+/* 8031ACBC 0031691C 41 82 00 08 */ beq lbl_8031ACC4
+/* 8031ACC0 00316920 48 00 00 08 */ b lbl_8031ACC8
+lbl_8031ACC4:
+/* 8031ACC4 00316924 3B A0 00 00 */ li r29, 0
+lbl_8031ACC8:
+/* 8031ACC8 00316928 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031ACCC 0031692C 3B E0 00 00 */ li r31, 0
+/* 8031ACD0 00316930 7F DD 02 14 */ add r30, r29, r0
+/* 8031ACD4 00316934 48 00 00 30 */ b lbl_8031AD04
+lbl_8031ACD8:
+/* 8031ACD8 00316938 7F A3 EB 78 */ mr r3, r29
+/* 8031ACDC 0031693C 38 80 00 00 */ li r4, 0
+/* 8031ACE0 00316940 38 A0 01 40 */ li r5, 0x140
+/* 8031ACE4 00316944 4B FE A2 F1 */ bl VFipf_memset
+/* 8031ACE8 00316948 34 1D 00 1C */ addic. r0, r29, 0x1c
+/* 8031ACEC 0031694C 41 82 00 14 */ beq lbl_8031AD00
+/* 8031ACF0 00316950 93 FD 00 1C */ stw r31, 0x1c(r29)
+/* 8031ACF4 00316954 93 FD 00 20 */ stw r31, 0x20(r29)
+/* 8031ACF8 00316958 93 FD 00 24 */ stw r31, 0x24(r29)
+/* 8031ACFC 0031695C 93 FD 00 28 */ stw r31, 0x28(r29)
+lbl_8031AD00:
+/* 8031AD00 00316960 3B BD 01 40 */ addi r29, r29, 0x140
+lbl_8031AD04:
+/* 8031AD04 00316964 7C 1D F0 40 */ cmplw r29, r30
+/* 8031AD08 00316968 40 82 FF D0 */ bne lbl_8031ACD8
+/* 8031AD0C 0031696C 80 0D AF FC */ lwz r0, lbl_806402BC-_SDA_BASE_(r13)
+/* 8031AD10 00316970 83 CD AF F0 */ lwz r30, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AD14 00316974 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AD18 00316978 40 82 00 50 */ bne lbl_8031AD68
+/* 8031AD1C 0031697C 3F A0 80 61 */ lis r29, lbl_8060F5A0@ha
+/* 8031AD20 00316980 3B E0 00 00 */ li r31, 0
+/* 8031AD24 00316984 3B BD F5 A0 */ addi r29, r29, lbl_8060F5A0@l
+/* 8031AD28 00316988 48 00 00 30 */ b lbl_8031AD58
+lbl_8031AD2C:
+/* 8031AD2C 0031698C 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AD30 00316990 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AD34 00316994 40 82 00 0C */ bne lbl_8031AD40
+/* 8031AD38 00316998 38 60 00 00 */ li r3, 0
+/* 8031AD3C 0031699C 48 00 00 10 */ b lbl_8031AD4C
+lbl_8031AD40:
+/* 8031AD40 003169A0 38 80 00 A0 */ li r4, 0xa0
+/* 8031AD44 003169A4 38 A0 00 20 */ li r5, 0x20
+/* 8031AD48 003169A8 4B F7 C1 E1 */ bl MEMAllocFromExpHeapEx
+lbl_8031AD4C:
+/* 8031AD4C 003169AC 90 7D 00 00 */ stw r3, 0(r29)
+/* 8031AD50 003169B0 3B BD 00 04 */ addi r29, r29, 4
+/* 8031AD54 003169B4 3B FF 00 01 */ addi r31, r31, 1
+lbl_8031AD58:
+/* 8031AD58 003169B8 7C 1F F0 40 */ cmplw r31, r30
+/* 8031AD5C 003169BC 41 80 FF D0 */ blt lbl_8031AD2C
+/* 8031AD60 003169C0 38 00 00 01 */ li r0, 1
+/* 8031AD64 003169C4 90 0D AF FC */ stw r0, lbl_806402BC-_SDA_BASE_(r13)
+lbl_8031AD68:
+/* 8031AD68 003169C8 48 00 0E 79 */ bl dCommon_initDriveInfo
+/* 8031AD6C 003169CC 38 80 00 00 */ li r4, 0
+/* 8031AD70 003169D0 38 60 00 02 */ li r3, 2
+/* 8031AD74 003169D4 38 00 00 08 */ li r0, 8
+/* 8031AD78 003169D8 90 8D AF F4 */ stw r4, lbl_806402B4-_SDA_BASE_(r13)
+/* 8031AD7C 003169DC 90 6D B0 0C */ stw r3, lbl_806402CC-_SDA_BASE_(r13)
+/* 8031AD80 003169E0 90 0D B0 08 */ stw r0, lbl_806402C8-_SDA_BASE_(r13)
+/* 8031AD84 003169E4 48 00 13 9D */ bl func_8031C120
+/* 8031AD88 003169E8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031AD8C 003169EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031AD90 003169F0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031AD94 003169F4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031AD98 003169F8 7C 08 03 A6 */ mtlr r0
+/* 8031AD9C 003169FC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031ADA0 00316A00 4E 80 00 20 */ blr
+
+.global VFSysFinalize
+VFSysFinalize:
+/* 8031ADA4 00316A04 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031ADA8 00316A08 7C 08 02 A6 */ mflr r0
+/* 8031ADAC 00316A0C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031ADB0 00316A10 39 61 00 20 */ addi r11, r1, 0x20
+/* 8031ADB4 00316A14 4B EA C3 75 */ bl _savegpr_27
+/* 8031ADB8 00316A18 83 6D B0 00 */ lwz r27, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031ADBC 00316A1C 2C 9B 00 00 */ cmpwi cr1, r27, 0
+/* 8031ADC0 00316A20 41 86 00 DC */ beq cr1, lbl_8031AE9C
+/* 8031ADC4 00316A24 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031ADC8 00316A28 2C 00 00 00 */ cmpwi r0, 0
+/* 8031ADCC 00316A2C 41 82 00 0C */ beq lbl_8031ADD8
+/* 8031ADD0 00316A30 41 86 00 08 */ beq cr1, lbl_8031ADD8
+/* 8031ADD4 00316A34 48 00 00 08 */ b lbl_8031ADDC
+lbl_8031ADD8:
+/* 8031ADD8 00316A38 3B 60 00 00 */ li r27, 0
+lbl_8031ADDC:
+/* 8031ADDC 00316A3C 2C 1B 00 00 */ cmpwi r27, 0
+/* 8031ADE0 00316A40 41 82 00 A0 */ beq lbl_8031AE80
+/* 8031ADE4 00316A44 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031ADE8 00316A48 3B E0 00 00 */ li r31, 0
+/* 8031ADEC 00316A4C 7F DB 02 14 */ add r30, r27, r0
+/* 8031ADF0 00316A50 48 00 00 88 */ b lbl_8031AE78
+lbl_8031ADF4:
+/* 8031ADF4 00316A54 2C 1B 00 00 */ cmpwi r27, 0
+/* 8031ADF8 00316A58 41 82 00 7C */ beq lbl_8031AE74
+/* 8031ADFC 00316A5C 37 BB 00 1C */ addic. r29, r27, 0x1c
+/* 8031AE00 00316A60 83 9D 00 00 */ lwz r28, 0(r29)
+/* 8031AE04 00316A64 41 82 00 54 */ beq lbl_8031AE58
+/* 8031AE08 00316A68 80 9D 00 08 */ lwz r4, 8(r29)
+/* 8031AE0C 00316A6C 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AE10 00316A70 41 82 00 14 */ beq lbl_8031AE24
+/* 8031AE14 00316A74 2C 1C 00 00 */ cmpwi r28, 0
+/* 8031AE18 00316A78 41 82 00 0C */ beq lbl_8031AE24
+/* 8031AE1C 00316A7C 7F 83 E3 78 */ mr r3, r28
+/* 8031AE20 00316A80 4B F7 C3 A5 */ bl MEMFreeToExpHeap
+lbl_8031AE24:
+/* 8031AE24 00316A84 80 9D 00 0C */ lwz r4, 0xc(r29)
+/* 8031AE28 00316A88 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AE2C 00316A8C 41 82 00 14 */ beq lbl_8031AE40
+/* 8031AE30 00316A90 80 7D 00 00 */ lwz r3, 0(r29)
+/* 8031AE34 00316A94 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AE38 00316A98 41 82 00 08 */ beq lbl_8031AE40
+/* 8031AE3C 00316A9C 4B F7 C3 89 */ bl MEMFreeToExpHeap
+lbl_8031AE40:
+/* 8031AE40 00316AA0 2C 1D 00 00 */ cmpwi r29, 0
+/* 8031AE44 00316AA4 41 82 00 14 */ beq lbl_8031AE58
+/* 8031AE48 00316AA8 93 FD 00 00 */ stw r31, 0(r29)
+/* 8031AE4C 00316AAC 93 FD 00 04 */ stw r31, 4(r29)
+/* 8031AE50 00316AB0 93 FD 00 08 */ stw r31, 8(r29)
+/* 8031AE54 00316AB4 93 FD 00 0C */ stw r31, 0xc(r29)
+lbl_8031AE58:
+/* 8031AE58 00316AB8 80 0D AF F8 */ lwz r0, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AE5C 00316ABC 7C 1C 00 40 */ cmplw r28, r0
+/* 8031AE60 00316AC0 41 82 00 14 */ beq lbl_8031AE74
+/* 8031AE64 00316AC4 2C 1C 00 00 */ cmpwi r28, 0
+/* 8031AE68 00316AC8 41 82 00 0C */ beq lbl_8031AE74
+/* 8031AE6C 00316ACC 7F 83 E3 78 */ mr r3, r28
+/* 8031AE70 00316AD0 4B F7 C0 89 */ bl MEMDestroyExpHeap
+lbl_8031AE74:
+/* 8031AE74 00316AD4 3B 7B 01 40 */ addi r27, r27, 0x140
+lbl_8031AE78:
+/* 8031AE78 00316AD8 7C 1B F0 40 */ cmplw r27, r30
+/* 8031AE7C 00316ADC 40 82 FF 78 */ bne lbl_8031ADF4
+lbl_8031AE80:
+/* 8031AE80 00316AE0 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AE84 00316AE4 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AE88 00316AE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AE8C 00316AEC 41 82 00 08 */ beq lbl_8031AE94
+/* 8031AE90 00316AF0 4B F7 C3 35 */ bl MEMFreeToExpHeap
+lbl_8031AE94:
+/* 8031AE94 00316AF4 38 00 00 00 */ li r0, 0
+/* 8031AE98 00316AF8 90 0D B0 00 */ stw r0, lbl_806402C0-_SDA_BASE_(r13)
+lbl_8031AE9C:
+/* 8031AE9C 00316AFC 80 0D AF FC */ lwz r0, lbl_806402BC-_SDA_BASE_(r13)
+/* 8031AEA0 00316B00 83 AD AF F0 */ lwz r29, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AEA4 00316B04 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AEA8 00316B08 41 82 00 50 */ beq lbl_8031AEF8
+/* 8031AEAC 00316B0C 3F 80 80 61 */ lis r28, lbl_8060F5A0@ha
+/* 8031AEB0 00316B10 3B C0 00 00 */ li r30, 0
+/* 8031AEB4 00316B14 3B 9C F5 A0 */ addi r28, r28, lbl_8060F5A0@l
+/* 8031AEB8 00316B18 3B E0 00 00 */ li r31, 0
+/* 8031AEBC 00316B1C 48 00 00 2C */ b lbl_8031AEE8
+lbl_8031AEC0:
+/* 8031AEC0 00316B20 80 9C 00 00 */ lwz r4, 0(r28)
+/* 8031AEC4 00316B24 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AEC8 00316B28 41 82 00 18 */ beq lbl_8031AEE0
+/* 8031AECC 00316B2C 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AED0 00316B30 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AED4 00316B34 41 82 00 08 */ beq lbl_8031AEDC
+/* 8031AED8 00316B38 4B F7 C2 ED */ bl MEMFreeToExpHeap
+lbl_8031AEDC:
+/* 8031AEDC 00316B3C 93 FC 00 00 */ stw r31, 0(r28)
+lbl_8031AEE0:
+/* 8031AEE0 00316B40 3B 9C 00 04 */ addi r28, r28, 4
+/* 8031AEE4 00316B44 3B DE 00 01 */ addi r30, r30, 1
+lbl_8031AEE8:
+/* 8031AEE8 00316B48 7C 1E E8 40 */ cmplw r30, r29
+/* 8031AEEC 00316B4C 41 80 FF D4 */ blt lbl_8031AEC0
+/* 8031AEF0 00316B50 38 00 00 00 */ li r0, 0
+/* 8031AEF4 00316B54 90 0D AF FC */ stw r0, lbl_806402BC-_SDA_BASE_(r13)
+lbl_8031AEF8:
+/* 8031AEF8 00316B58 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AEFC 00316B5C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AF00 00316B60 41 82 00 10 */ beq lbl_8031AF10
+/* 8031AF04 00316B64 4B F7 BF F5 */ bl MEMDestroyExpHeap
+/* 8031AF08 00316B68 38 00 00 00 */ li r0, 0
+/* 8031AF0C 00316B6C 90 0D AF F8 */ stw r0, lbl_806402B8-_SDA_BASE_(r13)
+lbl_8031AF10:
+/* 8031AF10 00316B70 38 00 00 00 */ li r0, 0
+/* 8031AF14 00316B74 39 61 00 20 */ addi r11, r1, 0x20
+/* 8031AF18 00316B78 90 0D AF F0 */ stw r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AF1C 00316B7C 4B EA C2 59 */ bl _restgpr_27
+/* 8031AF20 00316B80 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031AF24 00316B84 7C 08 03 A6 */ mtlr r0
+/* 8031AF28 00316B88 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031AF2C 00316B8C 4E 80 00 20 */ blr
+
+.global VFSysOpenFile_current
+VFSysOpenFile_current:
+/* 8031AF30 00316B90 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031AF34 00316B94 7C 08 02 A6 */ mflr r0
+/* 8031AF38 00316B98 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031AF3C 00316B9C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031AF40 00316BA0 7C 9F 23 78 */ mr r31, r4
+/* 8031AF44 00316BA4 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031AF48 00316BA8 7C 7E 1B 78 */ mr r30, r3
+/* 8031AF4C 00316BAC 4B FF EA B9 */ bl VFiPFVOL_GetCurrentVolume
+/* 8031AF50 00316BB0 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AF54 00316BB4 41 82 00 64 */ beq lbl_8031AFB8
+/* 8031AF58 00316BB8 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AF5C 00316BBC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AF60 00316BC0 41 82 00 14 */ beq lbl_8031AF74
+/* 8031AF64 00316BC4 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AF68 00316BC8 2C 06 00 00 */ cmpwi r6, 0
+/* 8031AF6C 00316BCC 41 82 00 08 */ beq lbl_8031AF74
+/* 8031AF70 00316BD0 48 00 00 08 */ b lbl_8031AF78
+lbl_8031AF74:
+/* 8031AF74 00316BD4 38 C0 00 00 */ li r6, 0
+lbl_8031AF78:
+/* 8031AF78 00316BD8 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031AF7C 00316BDC 7C A6 02 14 */ add r5, r6, r0
+/* 8031AF80 00316BE0 48 00 00 30 */ b lbl_8031AFB0
+lbl_8031AF84:
+/* 8031AF84 00316BE4 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031AF88 00316BE8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AF8C 00316BEC 41 82 00 20 */ beq lbl_8031AFAC
+/* 8031AF90 00316BF0 88 86 00 14 */ lbz r4, 0x14(r6)
+/* 8031AF94 00316BF4 88 03 18 7A */ lbz r0, 0x187a(r3)
+/* 8031AF98 00316BF8 7C 84 07 74 */ extsb r4, r4
+/* 8031AF9C 00316BFC 7C 00 07 74 */ extsb r0, r0
+/* 8031AFA0 00316C00 7C 04 00 00 */ cmpw r4, r0
+/* 8031AFA4 00316C04 40 82 00 08 */ bne lbl_8031AFAC
+/* 8031AFA8 00316C08 48 00 00 14 */ b lbl_8031AFBC
+lbl_8031AFAC:
+/* 8031AFAC 00316C0C 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031AFB0:
+/* 8031AFB0 00316C10 7C 06 28 40 */ cmplw r6, r5
+/* 8031AFB4 00316C14 40 82 FF D0 */ bne lbl_8031AF84
+lbl_8031AFB8:
+/* 8031AFB8 00316C18 38 C0 00 00 */ li r6, 0
+lbl_8031AFBC:
+/* 8031AFBC 00316C1C 2C 06 00 00 */ cmpwi r6, 0
+/* 8031AFC0 00316C20 41 82 00 18 */ beq lbl_8031AFD8
+/* 8031AFC4 00316C24 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031AFC8 00316C28 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AFCC 00316C2C 41 82 00 0C */ beq lbl_8031AFD8
+/* 8031AFD0 00316C30 38 80 00 00 */ li r4, 0
+/* 8031AFD4 00316C34 48 00 0D 4D */ bl dCommon_setLastDeviceErrorToDisk
+lbl_8031AFD8:
+/* 8031AFD8 00316C38 7F C3 F3 78 */ mr r3, r30
+/* 8031AFDC 00316C3C 7F E4 FB 78 */ mr r4, r31
+/* 8031AFE0 00316C40 4B FF F2 E5 */ bl VFipf2_fopen
+/* 8031AFE4 00316C44 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AFE8 00316C48 7C 7F 1B 78 */ mr r31, r3
+/* 8031AFEC 00316C4C 40 82 00 14 */ bne lbl_8031B000
+/* 8031AFF0 00316C50 4B FF F2 69 */ bl VFipf2_errnum
+/* 8031AFF4 00316C54 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AFF8 00316C58 41 82 00 08 */ beq lbl_8031B000
+/* 8031AFFC 00316C5C 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13)
+lbl_8031B000:
+/* 8031B000 00316C60 7F E3 FB 78 */ mr r3, r31
+/* 8031B004 00316C64 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031B008 00316C68 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031B00C 00316C6C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031B010 00316C70 7C 08 03 A6 */ mtlr r0
+/* 8031B014 00316C74 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031B018 00316C78 4E 80 00 20 */ blr
+
+.global VFSysOpenFile
+VFSysOpenFile:
+/* 8031B01C 00316C7C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031B020 00316C80 7C 08 02 A6 */ mflr r0
+/* 8031B024 00316C84 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031B028 00316C88 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031B02C 00316C8C 7C BF 2B 78 */ mr r31, r5
+/* 8031B030 00316C90 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031B034 00316C94 7C 9E 23 78 */ mr r30, r4
+/* 8031B038 00316C98 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031B03C 00316C9C 7C 7D 1B 78 */ mr r29, r3
+/* 8031B040 00316CA0 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B044 00316CA4 7C 03 00 40 */ cmplw r3, r0
+/* 8031B048 00316CA8 40 80 00 1C */ bge lbl_8031B064
+/* 8031B04C 00316CAC 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B050 00316CB0 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B054 00316CB4 41 82 00 10 */ beq lbl_8031B064
+/* 8031B058 00316CB8 1C 03 01 40 */ mulli r0, r3, 0x140
+/* 8031B05C 00316CBC 7C 64 02 14 */ add r3, r4, r0
+/* 8031B060 00316CC0 48 00 00 08 */ b lbl_8031B068
+lbl_8031B064:
+/* 8031B064 00316CC4 38 60 00 00 */ li r3, 0
+lbl_8031B068:
+/* 8031B068 00316CC8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B06C 00316CCC 41 82 00 3C */ beq lbl_8031B0A8
+/* 8031B070 00316CD0 88 03 00 14 */ lbz r0, 0x14(r3)
+/* 8031B074 00316CD4 7C 03 07 74 */ extsb r3, r0
+/* 8031B078 00316CD8 4B FF EA E1 */ bl VFiPFVOL_GetVolumeFromDrvChar
+/* 8031B07C 00316CDC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B080 00316CE0 41 82 00 10 */ beq lbl_8031B090
+/* 8031B084 00316CE4 4B FF E8 35 */ bl VFiPFVOL_SetCurrentVolume
+/* 8031B088 00316CE8 38 60 00 00 */ li r3, 0
+/* 8031B08C 00316CEC 48 00 00 24 */ b lbl_8031B0B0
+lbl_8031B090:
+/* 8031B090 00316CF0 4B FF F1 C9 */ bl VFipf2_errnum
+/* 8031B094 00316CF4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B098 00316CF8 40 82 00 18 */ bne lbl_8031B0B0
+/* 8031B09C 00316CFC 38 60 FF FF */ li r3, -1
+/* 8031B0A0 00316D00 48 00 00 10 */ b lbl_8031B0B0
+/* 8031B0A4 00316D04 48 00 00 0C */ b lbl_8031B0B0
+lbl_8031B0A8:
+/* 8031B0A8 00316D08 3C 60 00 01 */ lis r3, 0x0000B003@ha
+/* 8031B0AC 00316D0C 38 63 B0 03 */ addi r3, r3, 0x0000B003@l
+lbl_8031B0B0:
+/* 8031B0B0 00316D10 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B0B4 00316D14 40 82 00 7C */ bne lbl_8031B130
+/* 8031B0B8 00316D18 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B0BC 00316D1C 7C 1D 00 40 */ cmplw r29, r0
+/* 8031B0C0 00316D20 40 80 00 1C */ bge lbl_8031B0DC
+/* 8031B0C4 00316D24 80 6D B0 00 */ lwz r3, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B0C8 00316D28 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B0CC 00316D2C 41 82 00 10 */ beq lbl_8031B0DC
+/* 8031B0D0 00316D30 1C 1D 01 40 */ mulli r0, r29, 0x140
+/* 8031B0D4 00316D34 7C 63 02 14 */ add r3, r3, r0
+/* 8031B0D8 00316D38 48 00 00 08 */ b lbl_8031B0E0
+lbl_8031B0DC:
+/* 8031B0DC 00316D3C 38 60 00 00 */ li r3, 0
+lbl_8031B0E0:
+/* 8031B0E0 00316D40 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B0E4 00316D44 41 82 00 1C */ beq lbl_8031B100
+/* 8031B0E8 00316D48 41 82 00 18 */ beq lbl_8031B100
+/* 8031B0EC 00316D4C 80 63 00 08 */ lwz r3, 8(r3)
+/* 8031B0F0 00316D50 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B0F4 00316D54 41 82 00 0C */ beq lbl_8031B100
+/* 8031B0F8 00316D58 38 80 00 00 */ li r4, 0
+/* 8031B0FC 00316D5C 48 00 0C 25 */ bl dCommon_setLastDeviceErrorToDisk
+lbl_8031B100:
+/* 8031B100 00316D60 7F C3 F3 78 */ mr r3, r30
+/* 8031B104 00316D64 7F E4 FB 78 */ mr r4, r31
+/* 8031B108 00316D68 4B FF F1 BD */ bl VFipf2_fopen
+/* 8031B10C 00316D6C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B110 00316D70 7C 7F 1B 78 */ mr r31, r3
+/* 8031B114 00316D74 40 82 00 14 */ bne lbl_8031B128
+/* 8031B118 00316D78 4B FF F1 41 */ bl VFipf2_errnum
+/* 8031B11C 00316D7C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B120 00316D80 41 82 00 08 */ beq lbl_8031B128
+/* 8031B124 00316D84 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13)
+lbl_8031B128:
+/* 8031B128 00316D88 7F E3 FB 78 */ mr r3, r31
+/* 8031B12C 00316D8C 48 00 00 10 */ b lbl_8031B13C
+lbl_8031B130:
+/* 8031B130 00316D90 41 82 00 08 */ beq lbl_8031B138
+/* 8031B134 00316D94 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13)
+lbl_8031B138:
+/* 8031B138 00316D98 38 60 00 00 */ li r3, 0
+lbl_8031B13C:
+/* 8031B13C 00316D9C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031B140 00316DA0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031B144 00316DA4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031B148 00316DA8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031B14C 00316DAC 7C 08 03 A6 */ mtlr r0
+/* 8031B150 00316DB0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031B154 00316DB4 4E 80 00 20 */ blr
+
+.global VFSysCloseFile
+VFSysCloseFile:
+/* 8031B158 00316DB8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031B15C 00316DBC 7C 08 02 A6 */ mflr r0
+/* 8031B160 00316DC0 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B164 00316DC4 38 C0 00 00 */ li r6, 0
+/* 8031B168 00316DC8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031B16C 00316DCC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031B170 00316DD0 7C 7F 1B 78 */ mr r31, r3
+/* 8031B174 00316DD4 41 82 00 80 */ beq lbl_8031B1F4
+/* 8031B178 00316DD8 80 63 00 08 */ lwz r3, 8(r3)
+/* 8031B17C 00316DDC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B180 00316DE0 41 82 00 74 */ beq lbl_8031B1F4
+/* 8031B184 00316DE4 80 83 00 38 */ lwz r4, 0x38(r3)
+/* 8031B188 00316DE8 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B18C 00316DEC 41 82 00 64 */ beq lbl_8031B1F0
+/* 8031B190 00316DF0 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B194 00316DF4 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B198 00316DF8 41 82 00 14 */ beq lbl_8031B1AC
+/* 8031B19C 00316DFC 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B1A0 00316E00 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B1A4 00316E04 41 82 00 08 */ beq lbl_8031B1AC
+/* 8031B1A8 00316E08 48 00 00 08 */ b lbl_8031B1B0
+lbl_8031B1AC:
+/* 8031B1AC 00316E0C 38 C0 00 00 */ li r6, 0
+lbl_8031B1B0:
+/* 8031B1B0 00316E10 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031B1B4 00316E14 7C A6 02 14 */ add r5, r6, r0
+/* 8031B1B8 00316E18 48 00 00 30 */ b lbl_8031B1E8
+lbl_8031B1BC:
+/* 8031B1BC 00316E1C 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031B1C0 00316E20 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B1C4 00316E24 41 82 00 20 */ beq lbl_8031B1E4
+/* 8031B1C8 00316E28 88 66 00 14 */ lbz r3, 0x14(r6)
+/* 8031B1CC 00316E2C 88 04 18 7A */ lbz r0, 0x187a(r4)
+/* 8031B1D0 00316E30 7C 63 07 74 */ extsb r3, r3
+/* 8031B1D4 00316E34 7C 00 07 74 */ extsb r0, r0
+/* 8031B1D8 00316E38 7C 03 00 00 */ cmpw r3, r0
+/* 8031B1DC 00316E3C 40 82 00 08 */ bne lbl_8031B1E4
+/* 8031B1E0 00316E40 48 00 00 14 */ b lbl_8031B1F4
+lbl_8031B1E4:
+/* 8031B1E4 00316E44 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031B1E8:
+/* 8031B1E8 00316E48 7C 06 28 40 */ cmplw r6, r5
+/* 8031B1EC 00316E4C 40 82 FF D0 */ bne lbl_8031B1BC
+lbl_8031B1F0:
+/* 8031B1F0 00316E50 38 C0 00 00 */ li r6, 0
+lbl_8031B1F4:
+/* 8031B1F4 00316E54 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B1F8 00316E58 41 82 00 18 */ beq lbl_8031B210
+/* 8031B1FC 00316E5C 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031B200 00316E60 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B204 00316E64 41 82 00 0C */ beq lbl_8031B210
+/* 8031B208 00316E68 38 80 00 00 */ li r4, 0
+/* 8031B20C 00316E6C 48 00 0B 15 */ bl dCommon_setLastDeviceErrorToDisk
+lbl_8031B210:
+/* 8031B210 00316E70 7F E3 FB 78 */ mr r3, r31
+/* 8031B214 00316E74 4B FF F0 69 */ bl VFipf2_fclose
+/* 8031B218 00316E78 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B21C 00316E7C 40 82 00 0C */ bne lbl_8031B228
+/* 8031B220 00316E80 38 60 00 00 */ li r3, 0
+/* 8031B224 00316E84 48 00 00 08 */ b lbl_8031B22C
+lbl_8031B228:
+/* 8031B228 00316E88 4B FF F0 31 */ bl VFipf2_errnum
+lbl_8031B22C:
+/* 8031B22C 00316E8C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031B230 00316E90 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031B234 00316E94 7C 08 03 A6 */ mtlr r0
+/* 8031B238 00316E98 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031B23C 00316E9C 4E 80 00 20 */ blr
+
+.global VFSysSeekFile
+VFSysSeekFile:
+/* 8031B240 00316EA0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031B244 00316EA4 7C 08 02 A6 */ mflr r0
+/* 8031B248 00316EA8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B24C 00316EAC 38 C0 00 00 */ li r6, 0
+/* 8031B250 00316EB0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031B254 00316EB4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031B258 00316EB8 7C BF 2B 78 */ mr r31, r5
+/* 8031B25C 00316EBC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031B260 00316EC0 7C 9E 23 78 */ mr r30, r4
+/* 8031B264 00316EC4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031B268 00316EC8 7C 7D 1B 78 */ mr r29, r3
+/* 8031B26C 00316ECC 41 82 00 80 */ beq lbl_8031B2EC
+/* 8031B270 00316ED0 80 63 00 08 */ lwz r3, 8(r3)
+/* 8031B274 00316ED4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B278 00316ED8 41 82 00 74 */ beq lbl_8031B2EC
+/* 8031B27C 00316EDC 80 83 00 38 */ lwz r4, 0x38(r3)
+/* 8031B280 00316EE0 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B284 00316EE4 41 82 00 64 */ beq lbl_8031B2E8
+/* 8031B288 00316EE8 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B28C 00316EEC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B290 00316EF0 41 82 00 14 */ beq lbl_8031B2A4
+/* 8031B294 00316EF4 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B298 00316EF8 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B29C 00316EFC 41 82 00 08 */ beq lbl_8031B2A4
+/* 8031B2A0 00316F00 48 00 00 08 */ b lbl_8031B2A8
+lbl_8031B2A4:
+/* 8031B2A4 00316F04 38 C0 00 00 */ li r6, 0
+lbl_8031B2A8:
+/* 8031B2A8 00316F08 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031B2AC 00316F0C 7C A6 02 14 */ add r5, r6, r0
+/* 8031B2B0 00316F10 48 00 00 30 */ b lbl_8031B2E0
+lbl_8031B2B4:
+/* 8031B2B4 00316F14 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031B2B8 00316F18 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B2BC 00316F1C 41 82 00 20 */ beq lbl_8031B2DC
+/* 8031B2C0 00316F20 88 66 00 14 */ lbz r3, 0x14(r6)
+/* 8031B2C4 00316F24 88 04 18 7A */ lbz r0, 0x187a(r4)
+/* 8031B2C8 00316F28 7C 63 07 74 */ extsb r3, r3
+/* 8031B2CC 00316F2C 7C 00 07 74 */ extsb r0, r0
+/* 8031B2D0 00316F30 7C 03 00 00 */ cmpw r3, r0
+/* 8031B2D4 00316F34 40 82 00 08 */ bne lbl_8031B2DC
+/* 8031B2D8 00316F38 48 00 00 14 */ b lbl_8031B2EC
+lbl_8031B2DC:
+/* 8031B2DC 00316F3C 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031B2E0:
+/* 8031B2E0 00316F40 7C 06 28 40 */ cmplw r6, r5
+/* 8031B2E4 00316F44 40 82 FF D0 */ bne lbl_8031B2B4
+lbl_8031B2E8:
+/* 8031B2E8 00316F48 38 C0 00 00 */ li r6, 0
+lbl_8031B2EC:
+/* 8031B2EC 00316F4C 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B2F0 00316F50 41 82 00 18 */ beq lbl_8031B308
+/* 8031B2F4 00316F54 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031B2F8 00316F58 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B2FC 00316F5C 41 82 00 0C */ beq lbl_8031B308
+/* 8031B300 00316F60 38 80 00 00 */ li r4, 0
+/* 8031B304 00316F64 48 00 0A 1D */ bl dCommon_setLastDeviceErrorToDisk
+lbl_8031B308:
+/* 8031B308 00316F68 7F A3 EB 78 */ mr r3, r29
+/* 8031B30C 00316F6C 7F C4 F3 78 */ mr r4, r30
+/* 8031B310 00316F70 7F E5 FB 78 */ mr r5, r31
+/* 8031B314 00316F74 4B FF F0 75 */ bl VFipf2_fseek
+/* 8031B318 00316F78 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B31C 00316F7C 40 82 00 0C */ bne lbl_8031B328
+/* 8031B320 00316F80 38 60 00 00 */ li r3, 0
+/* 8031B324 00316F84 48 00 00 08 */ b lbl_8031B32C
+lbl_8031B328:
+/* 8031B328 00316F88 4B FF EF 31 */ bl VFipf2_errnum
+lbl_8031B32C:
+/* 8031B32C 00316F8C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031B330 00316F90 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031B334 00316F94 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031B338 00316F98 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031B33C 00316F9C 7C 08 03 A6 */ mtlr r0
+/* 8031B340 00316FA0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031B344 00316FA4 4E 80 00 20 */ blr
+
+.global VFSysReadFile
+VFSysReadFile:
+/* 8031B348 00316FA8 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8031B34C 00316FAC 7C 08 02 A6 */ mflr r0
+/* 8031B350 00316FB0 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8031B354 00316FB4 39 61 00 40 */ addi r11, r1, 0x40
+/* 8031B358 00316FB8 4B EA BD D1 */ bl _savegpr_27
+/* 8031B35C 00316FBC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B360 00316FC0 7C 7C 1B 78 */ mr r28, r3
+/* 8031B364 00316FC4 7C 9D 23 78 */ mr r29, r4
+/* 8031B368 00316FC8 7C BE 2B 78 */ mr r30, r5
+/* 8031B36C 00316FCC 7C DF 33 78 */ mr r31, r6
+/* 8031B370 00316FD0 41 82 00 0C */ beq lbl_8031B37C
+/* 8031B374 00316FD4 38 00 00 00 */ li r0, 0
+/* 8031B378 00316FD8 90 03 00 00 */ stw r0, 0(r3)
+lbl_8031B37C:
+/* 8031B37C 00316FDC 7F E3 FB 78 */ mr r3, r31
+/* 8031B380 00316FE0 38 81 00 08 */ addi r4, r1, 8
+/* 8031B384 00316FE4 4B FF EF 1D */ bl VFipf2_finfo
+/* 8031B388 00316FE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B38C 00316FEC 40 82 01 18 */ bne lbl_8031B4A4
+/* 8031B390 00316FF0 80 7F 00 1C */ lwz r3, 0x1c(r31)
+/* 8031B394 00316FF4 80 01 00 08 */ lwz r0, 8(r1)
+/* 8031B398 00316FF8 7F 63 00 50 */ subf r27, r3, r0
+/* 8031B39C 00316FFC 7C 1E D8 40 */ cmplw r30, r27
+/* 8031B3A0 00317000 40 81 00 18 */ ble lbl_8031B3B8
+/* 8031B3A4 00317004 7F A3 EB 78 */ mr r3, r29
+/* 8031B3A8 00317008 7F C5 F3 78 */ mr r5, r30
+/* 8031B3AC 0031700C 38 80 00 00 */ li r4, 0
+/* 8031B3B0 00317010 4B FE 9C 25 */ bl VFipf_memset
+/* 8031B3B4 00317014 7F 7E DB 78 */ mr r30, r27
+lbl_8031B3B8:
+/* 8031B3B8 00317018 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031B3BC 0031701C 38 C0 00 00 */ li r6, 0
+/* 8031B3C0 00317020 41 82 00 80 */ beq lbl_8031B440
+/* 8031B3C4 00317024 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8031B3C8 00317028 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B3CC 0031702C 41 82 00 74 */ beq lbl_8031B440
+/* 8031B3D0 00317030 80 83 00 38 */ lwz r4, 0x38(r3)
+/* 8031B3D4 00317034 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B3D8 00317038 41 82 00 64 */ beq lbl_8031B43C
+/* 8031B3DC 0031703C 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B3E0 00317040 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B3E4 00317044 41 82 00 14 */ beq lbl_8031B3F8
+/* 8031B3E8 00317048 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B3EC 0031704C 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B3F0 00317050 41 82 00 08 */ beq lbl_8031B3F8
+/* 8031B3F4 00317054 48 00 00 08 */ b lbl_8031B3FC
+lbl_8031B3F8:
+/* 8031B3F8 00317058 38 C0 00 00 */ li r6, 0
+lbl_8031B3FC:
+/* 8031B3FC 0031705C 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031B400 00317060 7C A6 02 14 */ add r5, r6, r0
+/* 8031B404 00317064 48 00 00 30 */ b lbl_8031B434
+lbl_8031B408:
+/* 8031B408 00317068 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031B40C 0031706C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B410 00317070 41 82 00 20 */ beq lbl_8031B430
+/* 8031B414 00317074 88 66 00 14 */ lbz r3, 0x14(r6)
+/* 8031B418 00317078 88 04 18 7A */ lbz r0, 0x187a(r4)
+/* 8031B41C 0031707C 7C 63 07 74 */ extsb r3, r3
+/* 8031B420 00317080 7C 00 07 74 */ extsb r0, r0
+/* 8031B424 00317084 7C 03 00 00 */ cmpw r3, r0
+/* 8031B428 00317088 40 82 00 08 */ bne lbl_8031B430
+/* 8031B42C 0031708C 48 00 00 14 */ b lbl_8031B440
+lbl_8031B430:
+/* 8031B430 00317090 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031B434:
+/* 8031B434 00317094 7C 06 28 40 */ cmplw r6, r5
+/* 8031B438 00317098 40 82 FF D0 */ bne lbl_8031B408
+lbl_8031B43C:
+/* 8031B43C 0031709C 38 C0 00 00 */ li r6, 0
+lbl_8031B440:
+/* 8031B440 003170A0 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B444 003170A4 41 82 00 18 */ beq lbl_8031B45C
+/* 8031B448 003170A8 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031B44C 003170AC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B450 003170B0 41 82 00 0C */ beq lbl_8031B45C
+/* 8031B454 003170B4 38 80 00 00 */ li r4, 0
+/* 8031B458 003170B8 48 00 08 C9 */ bl dCommon_setLastDeviceErrorToDisk
+lbl_8031B45C:
+/* 8031B45C 003170BC 2C 1E 00 00 */ cmpwi r30, 0
+/* 8031B460 003170C0 41 82 00 3C */ beq lbl_8031B49C
+/* 8031B464 003170C4 7F A3 EB 78 */ mr r3, r29
+/* 8031B468 003170C8 7F C4 F3 78 */ mr r4, r30
+/* 8031B46C 003170CC 7F E6 FB 78 */ mr r6, r31
+/* 8031B470 003170D0 38 A0 00 01 */ li r5, 1
+/* 8031B474 003170D4 4B FF EE ED */ bl VFipf2_fread
+/* 8031B478 003170D8 28 03 00 01 */ cmplwi r3, 1
+/* 8031B47C 003170DC 40 82 00 18 */ bne lbl_8031B494
+/* 8031B480 003170E0 2C 1C 00 00 */ cmpwi r28, 0
+/* 8031B484 003170E4 41 82 00 08 */ beq lbl_8031B48C
+/* 8031B488 003170E8 93 DC 00 00 */ stw r30, 0(r28)
+lbl_8031B48C:
+/* 8031B48C 003170EC 38 60 00 00 */ li r3, 0
+/* 8031B490 003170F0 48 00 00 18 */ b lbl_8031B4A8
+lbl_8031B494:
+/* 8031B494 003170F4 4B FF ED C5 */ bl VFipf2_errnum
+/* 8031B498 003170F8 48 00 00 10 */ b lbl_8031B4A8
+lbl_8031B49C:
+/* 8031B49C 003170FC 38 60 00 00 */ li r3, 0
+/* 8031B4A0 00317100 48 00 00 08 */ b lbl_8031B4A8
+lbl_8031B4A4:
+/* 8031B4A4 00317104 4B FF ED B5 */ bl VFipf2_errnum
+lbl_8031B4A8:
+/* 8031B4A8 00317108 39 61 00 40 */ addi r11, r1, 0x40
+/* 8031B4AC 0031710C 4B EA BC C9 */ bl _restgpr_27
+/* 8031B4B0 00317110 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8031B4B4 00317114 7C 08 03 A6 */ mtlr r0
+/* 8031B4B8 00317118 38 21 00 40 */ addi r1, r1, 0x40
+/* 8031B4BC 0031711C 4E 80 00 20 */ blr
+
+.global VFSysWriteFile
+VFSysWriteFile:
+/* 8031B4C0 00317120 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031B4C4 00317124 7C 08 02 A6 */ mflr r0
+/* 8031B4C8 00317128 2C 05 00 00 */ cmpwi r5, 0
+/* 8031B4CC 0031712C 38 C0 00 00 */ li r6, 0
+/* 8031B4D0 00317130 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031B4D4 00317134 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031B4D8 00317138 7C BF 2B 78 */ mr r31, r5
+/* 8031B4DC 0031713C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031B4E0 00317140 7C 9E 23 78 */ mr r30, r4
+/* 8031B4E4 00317144 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031B4E8 00317148 7C 7D 1B 78 */ mr r29, r3
+/* 8031B4EC 0031714C 41 82 00 80 */ beq lbl_8031B56C
+/* 8031B4F0 00317150 80 65 00 08 */ lwz r3, 8(r5)
+/* 8031B4F4 00317154 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B4F8 00317158 41 82 00 74 */ beq lbl_8031B56C
+/* 8031B4FC 0031715C 80 83 00 38 */ lwz r4, 0x38(r3)
+/* 8031B500 00317160 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B504 00317164 41 82 00 64 */ beq lbl_8031B568
+/* 8031B508 00317168 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B50C 0031716C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B510 00317170 41 82 00 14 */ beq lbl_8031B524
+/* 8031B514 00317174 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B518 00317178 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B51C 0031717C 41 82 00 08 */ beq lbl_8031B524
+/* 8031B520 00317180 48 00 00 08 */ b lbl_8031B528
+lbl_8031B524:
+/* 8031B524 00317184 38 C0 00 00 */ li r6, 0
+lbl_8031B528:
+/* 8031B528 00317188 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031B52C 0031718C 7C A6 02 14 */ add r5, r6, r0
+/* 8031B530 00317190 48 00 00 30 */ b lbl_8031B560
+lbl_8031B534:
+/* 8031B534 00317194 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031B538 00317198 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B53C 0031719C 41 82 00 20 */ beq lbl_8031B55C
+/* 8031B540 003171A0 88 66 00 14 */ lbz r3, 0x14(r6)
+/* 8031B544 003171A4 88 04 18 7A */ lbz r0, 0x187a(r4)
+/* 8031B548 003171A8 7C 63 07 74 */ extsb r3, r3
+/* 8031B54C 003171AC 7C 00 07 74 */ extsb r0, r0
+/* 8031B550 003171B0 7C 03 00 00 */ cmpw r3, r0
+/* 8031B554 003171B4 40 82 00 08 */ bne lbl_8031B55C
+/* 8031B558 003171B8 48 00 00 14 */ b lbl_8031B56C
+lbl_8031B55C:
+/* 8031B55C 003171BC 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031B560:
+/* 8031B560 003171C0 7C 06 28 40 */ cmplw r6, r5
+/* 8031B564 003171C4 40 82 FF D0 */ bne lbl_8031B534
+lbl_8031B568:
+/* 8031B568 003171C8 38 C0 00 00 */ li r6, 0
+lbl_8031B56C:
+/* 8031B56C 003171CC 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B570 003171D0 41 82 00 18 */ beq lbl_8031B588
+/* 8031B574 003171D4 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031B578 003171D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B57C 003171DC 41 82 00 0C */ beq lbl_8031B588
+/* 8031B580 003171E0 38 80 00 00 */ li r4, 0
+/* 8031B584 003171E4 48 00 07 9D */ bl dCommon_setLastDeviceErrorToDisk
+lbl_8031B588:
+/* 8031B588 003171E8 7F A3 EB 78 */ mr r3, r29
+/* 8031B58C 003171EC 7F C4 F3 78 */ mr r4, r30
+/* 8031B590 003171F0 7F E6 FB 78 */ mr r6, r31
+/* 8031B594 003171F4 38 A0 00 01 */ li r5, 1
+/* 8031B598 003171F8 4B FF EE 15 */ bl VFipf2_fwrite
+/* 8031B59C 003171FC 28 03 00 01 */ cmplwi r3, 1
+/* 8031B5A0 00317200 40 82 00 0C */ bne lbl_8031B5AC
+/* 8031B5A4 00317204 38 60 00 00 */ li r3, 0
+/* 8031B5A8 00317208 48 00 00 08 */ b lbl_8031B5B0
+lbl_8031B5AC:
+/* 8031B5AC 0031720C 4B FF EC AD */ bl VFipf2_errnum
+lbl_8031B5B0:
+/* 8031B5B0 00317210 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031B5B4 00317214 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031B5B8 00317218 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031B5BC 0031721C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031B5C0 00317220 7C 08 03 A6 */ mtlr r0
+/* 8031B5C4 00317224 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031B5C8 00317228 4E 80 00 20 */ blr
+
+.global VFSysGetFileSizeByFd
+VFSysGetFileSizeByFd:
+/* 8031B5CC 0031722C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8031B5D0 00317230 7C 08 02 A6 */ mflr r0
+/* 8031B5D4 00317234 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B5D8 00317238 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031B5DC 0031723C 38 00 FF FF */ li r0, -1
+/* 8031B5E0 00317240 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8031B5E4 00317244 7C 7F 1B 78 */ mr r31, r3
+/* 8031B5E8 00317248 90 03 00 00 */ stw r0, 0(r3)
+/* 8031B5EC 0031724C 41 82 00 30 */ beq lbl_8031B61C
+/* 8031B5F0 00317250 7C 83 23 78 */ mr r3, r4
+/* 8031B5F4 00317254 38 81 00 08 */ addi r4, r1, 8
+/* 8031B5F8 00317258 4B FF EC A9 */ bl VFipf2_finfo
+/* 8031B5FC 0031725C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B600 00317260 40 82 00 14 */ bne lbl_8031B614
+/* 8031B604 00317264 80 01 00 08 */ lwz r0, 8(r1)
+/* 8031B608 00317268 38 60 00 00 */ li r3, 0
+/* 8031B60C 0031726C 90 1F 00 00 */ stw r0, 0(r31)
+/* 8031B610 00317270 48 00 00 10 */ b lbl_8031B620
+lbl_8031B614:
+/* 8031B614 00317274 4B FF EC 45 */ bl VFipf2_errnum
+/* 8031B618 00317278 48 00 00 08 */ b lbl_8031B620
+lbl_8031B61C:
+/* 8031B61C 0031727C 38 60 FF FF */ li r3, -1
+lbl_8031B620:
+/* 8031B620 00317280 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8031B624 00317284 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8031B628 00317288 7C 08 03 A6 */ mtlr r0
+/* 8031B62C 0031728C 38 21 00 30 */ addi r1, r1, 0x30
+/* 8031B630 00317290 4E 80 00 20 */ blr
+
+.global VFSysGetLastError
+VFSysGetLastError:
+/* 8031B634 00317294 80 6D AF F4 */ lwz r3, lbl_806402B4-_SDA_BASE_(r13)
+/* 8031B638 00317298 4E 80 00 20 */ blr
+
+.global VFSysGetLastDeviceError_current
+VFSysGetLastDeviceError_current:
+/* 8031B63C 0031729C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031B640 003172A0 7C 08 02 A6 */ mflr r0
+/* 8031B644 003172A4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031B648 003172A8 4B FF E3 BD */ bl VFiPFVOL_GetCurrentVolume
+/* 8031B64C 003172AC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B650 003172B0 41 82 00 64 */ beq lbl_8031B6B4
+/* 8031B654 003172B4 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B658 003172B8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B65C 003172BC 41 82 00 14 */ beq lbl_8031B670
+/* 8031B660 003172C0 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B664 003172C4 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B668 003172C8 41 82 00 08 */ beq lbl_8031B670
+/* 8031B66C 003172CC 48 00 00 08 */ b lbl_8031B674
+lbl_8031B670:
+/* 8031B670 003172D0 38 C0 00 00 */ li r6, 0
+lbl_8031B674:
+/* 8031B674 003172D4 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031B678 003172D8 7C A6 02 14 */ add r5, r6, r0
+/* 8031B67C 003172DC 48 00 00 30 */ b lbl_8031B6AC
+lbl_8031B680:
+/* 8031B680 003172E0 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031B684 003172E4 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B688 003172E8 41 82 00 20 */ beq lbl_8031B6A8
+/* 8031B68C 003172EC 88 86 00 14 */ lbz r4, 0x14(r6)
+/* 8031B690 003172F0 88 03 18 7A */ lbz r0, 0x187a(r3)
+/* 8031B694 003172F4 7C 84 07 74 */ extsb r4, r4
+/* 8031B698 003172F8 7C 00 07 74 */ extsb r0, r0
+/* 8031B69C 003172FC 7C 04 00 00 */ cmpw r4, r0
+/* 8031B6A0 00317300 40 82 00 08 */ bne lbl_8031B6A8
+/* 8031B6A4 00317304 48 00 00 14 */ b lbl_8031B6B8
+lbl_8031B6A8:
+/* 8031B6A8 00317308 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031B6AC:
+/* 8031B6AC 0031730C 7C 06 28 40 */ cmplw r6, r5
+/* 8031B6B0 00317310 40 82 FF D0 */ bne lbl_8031B680
+lbl_8031B6B4:
+/* 8031B6B4 00317314 38 C0 00 00 */ li r6, 0
+lbl_8031B6B8:
+/* 8031B6B8 00317318 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B6BC 0031731C 41 82 00 18 */ beq lbl_8031B6D4
+/* 8031B6C0 00317320 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031B6C4 00317324 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B6C8 00317328 41 82 00 0C */ beq lbl_8031B6D4
+/* 8031B6CC 0031732C 48 00 06 01 */ bl dCommon_getLastDeviceErrorFromDisk
+/* 8031B6D0 00317330 48 00 00 08 */ b lbl_8031B6D8
+lbl_8031B6D4:
+/* 8031B6D4 00317334 38 60 FF FF */ li r3, -1
+lbl_8031B6D8:
+/* 8031B6D8 00317338 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031B6DC 0031733C 7C 08 03 A6 */ mtlr r0
+/* 8031B6E0 00317340 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031B6E4 00317344 4E 80 00 20 */ blr
+
+.global VFSysGetLastDeviceError
+VFSysGetLastDeviceError:
+/* 8031B6E8 00317348 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B6EC 0031734C 7C 03 00 40 */ cmplw r3, r0
+/* 8031B6F0 00317350 40 80 00 1C */ bge lbl_8031B70C
+/* 8031B6F4 00317354 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B6F8 00317358 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B6FC 0031735C 41 82 00 10 */ beq lbl_8031B70C
+/* 8031B700 00317360 1C 03 01 40 */ mulli r0, r3, 0x140
+/* 8031B704 00317364 7C 64 02 14 */ add r3, r4, r0
+/* 8031B708 00317368 48 00 00 08 */ b lbl_8031B710
+lbl_8031B70C:
+/* 8031B70C 0031736C 38 60 00 00 */ li r3, 0
+lbl_8031B710:
+/* 8031B710 00317370 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B714 00317374 41 82 00 14 */ beq lbl_8031B728
+/* 8031B718 00317378 80 63 00 08 */ lwz r3, 8(r3)
+/* 8031B71C 0031737C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B720 00317380 41 82 00 08 */ beq lbl_8031B728
+/* 8031B724 00317384 48 00 05 A8 */ b dCommon_getLastDeviceErrorFromDisk
+lbl_8031B728:
+/* 8031B728 00317388 38 60 FF FF */ li r3, -1
+/* 8031B72C 0031738C 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_cache.s b/asm/SDK/VF/pf_cache.s index e50fec0..2b58090 100644 --- a/asm/SDK/VF/pf_cache.s +++ b/asm/SDK/VF/pf_cache.s @@ -423,7 +423,7 @@ lbl_8030947C: /* 80309494 003050F4 41 82 00 20 */ beq lbl_803094B4
/* 80309498 003050F8 7F 83 E3 78 */ mr r3, r28
/* 8030949C 003050FC 38 80 00 01 */ li r4, 1
-/* 803094A0 00305100 48 01 29 01 */ bl func_8031BDA0
+/* 803094A0 00305100 48 01 29 01 */ bl dCommon_FlushFromVol
/* 803094A4 00305104 2C 03 00 00 */ cmpwi r3, 0
/* 803094A8 00305108 41 82 00 0C */ beq lbl_803094B4
/* 803094AC 0030510C 38 60 00 11 */ li r3, 0x11
@@ -845,7 +845,7 @@ lbl_80309A9C: /* 80309AA0 00305700 41 82 00 20 */ beq lbl_80309AC0
/* 80309AA4 00305704 7F A3 EB 78 */ mr r3, r29
/* 80309AA8 00305708 38 80 00 01 */ li r4, 1
-/* 80309AAC 0030570C 48 01 22 F5 */ bl func_8031BDA0
+/* 80309AAC 0030570C 48 01 22 F5 */ bl dCommon_FlushFromVol
/* 80309AB0 00305710 2C 03 00 00 */ cmpwi r3, 0
/* 80309AB4 00305714 41 82 00 0C */ beq lbl_80309AC0
/* 80309AB8 00305718 38 60 00 11 */ li r3, 0x11
@@ -1122,7 +1122,7 @@ lbl_80309E70: /* 80309E74 00305AD4 41 82 00 20 */ beq lbl_80309E94
/* 80309E78 00305AD8 7F C3 F3 78 */ mr r3, r30
/* 80309E7C 00305ADC 38 80 00 01 */ li r4, 1
-/* 80309E80 00305AE0 48 01 1F 21 */ bl func_8031BDA0
+/* 80309E80 00305AE0 48 01 1F 21 */ bl dCommon_FlushFromVol
/* 80309E84 00305AE4 2C 03 00 00 */ cmpwi r3, 0
/* 80309E88 00305AE8 41 82 00 0C */ beq lbl_80309E94
/* 80309E8C 00305AEC 38 60 00 11 */ li r3, 0x11
@@ -1203,7 +1203,7 @@ lbl_80309F8C: /* 80309F90 00305BF0 41 82 00 74 */ beq lbl_8030A004
/* 80309F94 00305BF4 7F 63 DB 78 */ mr r3, r27
/* 80309F98 00305BF8 38 80 00 01 */ li r4, 1
-/* 80309F9C 00305BFC 48 01 1E 05 */ bl func_8031BDA0
+/* 80309F9C 00305BFC 48 01 1E 05 */ bl dCommon_FlushFromVol
/* 80309FA0 00305C00 2C 03 00 00 */ cmpwi r3, 0
/* 80309FA4 00305C04 41 82 00 60 */ beq lbl_8030A004
/* 80309FA8 00305C08 38 60 00 11 */ li r3, 0x11
@@ -1227,7 +1227,7 @@ lbl_80309FD4: lbl_80309FE8:
/* 80309FE8 00305C48 7F 63 DB 78 */ mr r3, r27
/* 80309FEC 00305C4C 38 80 00 01 */ li r4, 1
-/* 80309FF0 00305C50 48 01 1D B1 */ bl func_8031BDA0
+/* 80309FF0 00305C50 48 01 1D B1 */ bl dCommon_FlushFromVol
/* 80309FF4 00305C54 2C 03 00 00 */ cmpwi r3, 0
/* 80309FF8 00305C58 41 82 00 0C */ beq lbl_8030A004
/* 80309FFC 00305C5C 38 60 00 11 */ li r3, 0x11
@@ -1493,7 +1493,7 @@ lbl_8030A390: lbl_8030A3B4:
/* 8030A3B4 00306014 7E E3 BB 78 */ mr r3, r23
/* 8030A3B8 00306018 38 80 00 01 */ li r4, 1
-/* 8030A3BC 0030601C 48 01 19 E5 */ bl func_8031BDA0
+/* 8030A3BC 0030601C 48 01 19 E5 */ bl dCommon_FlushFromVol
/* 8030A3C0 00306020 2C 03 00 00 */ cmpwi r3, 0
/* 8030A3C4 00306024 41 82 00 0C */ beq lbl_8030A3D0
/* 8030A3C8 00306028 38 60 00 11 */ li r3, 0x11
@@ -1582,7 +1582,7 @@ lbl_8030A4D8: /* 8030A4E4 00306144 7F 43 D3 78 */ mr r3, r26
/* 8030A4E8 00306148 54 1C D9 7E */ srwi r28, r0, 5
/* 8030A4EC 0030614C 7F 84 E3 78 */ mr r4, r28
-/* 8030A4F0 00306150 48 01 18 B1 */ bl func_8031BDA0
+/* 8030A4F0 00306150 48 01 18 B1 */ bl dCommon_FlushFromVol
/* 8030A4F4 00306154 2C 03 00 00 */ cmpwi r3, 0
/* 8030A4F8 00306158 41 82 00 14 */ beq lbl_8030A50C
/* 8030A4FC 0030615C 2C 1C 00 01 */ cmpwi r28, 1
@@ -2102,7 +2102,7 @@ lbl_8030ABB8: /* 8030ABD4 00306834 41 82 00 10 */ beq lbl_8030ABE4
/* 8030ABD8 00306838 7F C3 F3 78 */ mr r3, r30
/* 8030ABDC 0030683C 38 80 00 00 */ li r4, 0
-/* 8030ABE0 00306840 48 01 11 C1 */ bl func_8031BDA0
+/* 8030ABE0 00306840 48 01 11 C1 */ bl dCommon_FlushFromVol
lbl_8030ABE4:
/* 8030ABE4 00306844 7F A3 EB 78 */ mr r3, r29
/* 8030ABE8 00306848 48 00 00 44 */ b lbl_8030AC2C
@@ -2119,7 +2119,7 @@ lbl_8030ABFC: /* 8030AC08 00306868 41 82 00 20 */ beq lbl_8030AC28
/* 8030AC0C 0030686C 7F C3 F3 78 */ mr r3, r30
/* 8030AC10 00306870 38 80 00 01 */ li r4, 1
-/* 8030AC14 00306874 48 01 11 8D */ bl func_8031BDA0
+/* 8030AC14 00306874 48 01 11 8D */ bl dCommon_FlushFromVol
/* 8030AC18 00306878 2C 03 00 00 */ cmpwi r3, 0
/* 8030AC1C 0030687C 41 82 00 0C */ beq lbl_8030AC28
/* 8030AC20 00306880 38 60 00 11 */ li r3, 0x11
diff --git a/asm/SDK/VF/pf_entry.s b/asm/SDK/VF/pf_entry.s index eb2c835..bf99267 100644 --- a/asm/SDK/VF/pf_entry.s +++ b/asm/SDK/VF/pf_entry.s @@ -1792,7 +1792,7 @@ VFiPFENT_getcurrentDateTimeForEnt: /* 8030CB90 003087F0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8030CB94 003087F4 7C 7E 1B 78 */ mr r30, r3
/* 8030CB98 003087F8 38 61 00 10 */ addi r3, r1, 0x10
-/* 8030CB9C 003087FC 48 00 D8 A1 */ bl func_8031A43C
+/* 8030CB9C 003087FC 48 00 D8 A1 */ bl VFiPFSYS_TimeStamp
/* 8030CBA0 00308800 A0 61 00 10 */ lhz r3, 0x10(r1)
/* 8030CBA4 00308804 A0 81 00 14 */ lhz r4, 0x14(r1)
/* 8030CBA8 00308808 38 03 F8 44 */ addi r0, r3, -1980
diff --git a/asm/SDK/VF/pf_errnum.s b/asm/SDK/VF/pf_errnum.s new file mode 100644 index 0000000..63938b6 --- /dev/null +++ b/asm/SDK/VF/pf_errnum.s @@ -0,0 +1,15 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_errnum
+VFipf2_errnum:
+/* 8031A258 00315EB8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A25C 00315EBC 7C 08 02 A6 */ mflr r0
+/* 8031A260 00315EC0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A264 00315EC4 4B FF F9 8D */ bl VFiPFVOL_errnum
+/* 8031A268 00315EC8 4B FF FF 79 */ bl VFiPFAPI_convertError
+/* 8031A26C 00315ECC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A270 00315ED0 7C 08 03 A6 */ mtlr r0
+/* 8031A274 00315ED4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A278 00315ED8 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_fclose.s b/asm/SDK/VF/pf_fclose.s new file mode 100644 index 0000000..86de7b2 --- /dev/null +++ b/asm/SDK/VF/pf_fclose.s @@ -0,0 +1,15 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_fclose
+VFipf2_fclose:
+/* 8031A27C 00315EDC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A280 00315EE0 7C 08 02 A6 */ mflr r0
+/* 8031A284 00315EE4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A288 00315EE8 4B FF AC 31 */ bl VFiPFFILE_fclose
+/* 8031A28C 00315EEC 4B FF FF A5 */ bl VFiPFAPI_convertReturnValue
+/* 8031A290 00315EF0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A294 00315EF4 7C 08 03 A6 */ mtlr r0
+/* 8031A298 00315EF8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A29C 00315EFC 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_file.s b/asm/SDK/VF/pf_file.s index c78f06a..d1cb8fe 100644 --- a/asm/SDK/VF/pf_file.s +++ b/asm/SDK/VF/pf_file.s @@ -2950,7 +2950,7 @@ lbl_80315068: /* 803150A0 00310D00 2C 00 00 00 */ cmpwi r0, 0
/* 803150A4 00310D04 40 82 00 0C */ bne lbl_803150B0
/* 803150A8 00310D08 7F A3 EB 78 */ mr r3, r29
-/* 803150AC 00310D0C 48 00 53 75 */ bl func_8031A420
+/* 803150AC 00310D0C 48 00 53 75 */ bl VFiPF_UnLockFile
lbl_803150B0:
/* 803150B0 00310D10 80 7D 00 08 */ lwz r3, 8(r29)
/* 803150B4 00310D14 A0 03 02 7C */ lhz r0, 0x27c(r3)
@@ -2970,7 +2970,7 @@ lbl_803150D8: /* 803150E4 00310D44 B0 1D 00 2C */ sth r0, 0x2c(r29)
/* 803150E8 00310D48 80 9D 00 08 */ lwz r4, 8(r29)
/* 803150EC 00310D4C 90 04 02 84 */ stw r0, 0x284(r4)
-/* 803150F0 00310D50 48 00 53 31 */ bl func_8031A420
+/* 803150F0 00310D50 48 00 53 31 */ bl VFiPF_UnLockFile
/* 803150F4 00310D54 80 7D 00 08 */ lwz r3, 8(r29)
/* 803150F8 00310D58 A0 03 02 7C */ lhz r0, 0x27c(r3)
/* 803150FC 00310D5C 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d
diff --git a/asm/SDK/VF/pf_filelock.s b/asm/SDK/VF/pf_filelock.s new file mode 100644 index 0000000..799b762 --- /dev/null +++ b/asm/SDK/VF/pf_filelock.s @@ -0,0 +1,14 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFiPF_InitLockFile
+VFiPF_InitLockFile:
+/* 8031A414 00316074 38 00 00 00 */ li r0, 0
+/* 8031A418 00316078 90 0D AF E0 */ stw r0, lbl_806402A0-_SDA_BASE_(r13)
+/* 8031A41C 0031607C 4E 80 00 20 */ blr
+
+.global VFiPF_UnLockFile
+VFiPF_UnLockFile:
+/* 8031A420 00316080 38 60 FF FF */ li r3, -1
+/* 8031A424 00316084 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_finfo.s b/asm/SDK/VF/pf_finfo.s new file mode 100644 index 0000000..5ba08d7 --- /dev/null +++ b/asm/SDK/VF/pf_finfo.s @@ -0,0 +1,15 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_finfo
+VFipf2_finfo:
+/* 8031A2A0 00315F00 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A2A4 00315F04 7C 08 02 A6 */ mflr r0
+/* 8031A2A8 00315F08 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A2AC 00315F0C 4B FF B7 4D */ bl VFiPFFILE_finfo
+/* 8031A2B0 00315F10 4B FF FF 81 */ bl VFiPFAPI_convertReturnValue
+/* 8031A2B4 00315F14 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A2B8 00315F18 7C 08 03 A6 */ mtlr r0
+/* 8031A2BC 00315F1C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A2C0 00315F20 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_fopen.s b/asm/SDK/VF/pf_fopen.s new file mode 100644 index 0000000..c1a1651 --- /dev/null +++ b/asm/SDK/VF/pf_fopen.s @@ -0,0 +1,49 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_fopen
+VFipf2_fopen:
+/* 8031A2C4 00315F24 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8031A2C8 00315F28 7C 08 02 A6 */ mflr r0
+/* 8031A2CC 00315F2C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031A2D0 00315F30 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8031A2D4 00315F34 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8031A2D8 00315F38 7C 7E 1B 78 */ mr r30, r3
+/* 8031A2DC 00315F3C 7C 83 23 78 */ mr r3, r4
+/* 8031A2E0 00315F40 4B FF FE 31 */ bl VFiPFAPI_ParseOpenModeString
+/* 8031A2E4 00315F44 2C 03 00 00 */ cmpwi r3, 0
+/* 8031A2E8 00315F48 7C 7F 1B 78 */ mr r31, r3
+/* 8031A2EC 00315F4C 40 82 00 1C */ bne lbl_8031A308
+/* 8031A2F0 00315F50 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 8031A2F4 00315F54 38 00 00 0A */ li r0, 0xa
+/* 8031A2F8 00315F58 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 8031A2FC 00315F5C 38 60 00 00 */ li r3, 0
+/* 8031A300 00315F60 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 8031A304 00315F64 48 00 00 44 */ b lbl_8031A348
+lbl_8031A308:
+/* 8031A308 00315F68 7F C4 F3 78 */ mr r4, r30
+/* 8031A30C 00315F6C 38 61 00 10 */ addi r3, r1, 0x10
+/* 8031A310 00315F70 38 A0 00 01 */ li r5, 1
+/* 8031A314 00315F74 4B FE B1 09 */ bl VFiPFSTR_InitStr
+/* 8031A318 00315F78 2C 03 00 00 */ cmpwi r3, 0
+/* 8031A31C 00315F7C 40 82 00 18 */ bne lbl_8031A334
+/* 8031A320 00315F80 7F E4 FB 78 */ mr r4, r31
+/* 8031A324 00315F84 38 61 00 10 */ addi r3, r1, 0x10
+/* 8031A328 00315F88 38 A1 00 08 */ addi r5, r1, 8
+/* 8031A32C 00315F8C 4B FF AA 59 */ bl VFiPFFILE_fopen
+/* 8031A330 00315F90 48 00 00 10 */ b lbl_8031A340
+lbl_8031A334:
+/* 8031A334 00315F94 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 8031A338 00315F98 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 8031A33C 00315F9C 90 64 00 1C */ stw r3, 0x1c(r4)
+lbl_8031A340:
+/* 8031A340 00315FA0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8031A344 00315FA4 4B FF FE FD */ bl VFiPFAPI_convertReturnValue2NULL
+lbl_8031A348:
+/* 8031A348 00315FA8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8031A34C 00315FAC 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8031A350 00315FB0 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8031A354 00315FB4 7C 08 03 A6 */ mtlr r0
+/* 8031A358 00315FB8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8031A35C 00315FBC 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_fread.s b/asm/SDK/VF/pf_fread.s new file mode 100644 index 0000000..582df31 --- /dev/null +++ b/asm/SDK/VF/pf_fread.s @@ -0,0 +1,16 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_fread
+VFipf2_fread:
+/* 8031A360 00315FC0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A364 00315FC4 7C 08 02 A6 */ mflr r0
+/* 8031A368 00315FC8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A36C 00315FCC 38 E1 00 08 */ addi r7, r1, 8
+/* 8031A370 00315FD0 4B FF AE A5 */ bl VFiPFFILE_fread
+/* 8031A374 00315FD4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A378 00315FD8 80 61 00 08 */ lwz r3, 8(r1)
+/* 8031A37C 00315FDC 7C 08 03 A6 */ mtlr r0
+/* 8031A380 00315FE0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A384 00315FE4 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_fseek.s b/asm/SDK/VF/pf_fseek.s new file mode 100644 index 0000000..d100a96 --- /dev/null +++ b/asm/SDK/VF/pf_fseek.s @@ -0,0 +1,15 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_fseek
+VFipf2_fseek:
+/* 8031A388 00315FE8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A38C 00315FEC 7C 08 02 A6 */ mflr r0
+/* 8031A390 00315FF0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A394 00315FF4 4B FF B2 F1 */ bl VFiPFFILE_fseek
+/* 8031A398 00315FF8 4B FF FE 99 */ bl VFiPFAPI_convertReturnValue
+/* 8031A39C 00315FFC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A3A0 00316000 7C 08 03 A6 */ mtlr r0
+/* 8031A3A4 00316004 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A3A8 00316008 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_fwrite.s b/asm/SDK/VF/pf_fwrite.s new file mode 100644 index 0000000..3694637 --- /dev/null +++ b/asm/SDK/VF/pf_fwrite.s @@ -0,0 +1,16 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_fwrite
+VFipf2_fwrite:
+/* 8031A3AC 0031600C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A3B0 00316010 7C 08 02 A6 */ mflr r0
+/* 8031A3B4 00316014 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A3B8 00316018 38 E1 00 08 */ addi r7, r1, 8
+/* 8031A3BC 0031601C 4B FF B0 71 */ bl VFiPFFILE_fwrite
+/* 8031A3C0 00316020 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A3C4 00316024 80 61 00 08 */ lwz r3, 8(r1)
+/* 8031A3C8 00316028 7C 08 03 A6 */ mtlr r0
+/* 8031A3CC 0031602C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A3D0 00316030 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_init_prfile2.s b/asm/SDK/VF/pf_init_prfile2.s new file mode 100644 index 0000000..4dc383d --- /dev/null +++ b/asm/SDK/VF/pf_init_prfile2.s @@ -0,0 +1,23 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_init_prfile2
+VFipf2_init_prfile2:
+/* 8031A3D4 00316034 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A3D8 00316038 7C 08 02 A6 */ mflr r0
+/* 8031A3DC 0031603C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A3E0 00316040 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031A3E4 00316044 4B FF 84 2D */ bl VFiPFFATFS_initializeFATFS
+/* 8031A3E8 00316048 2C 03 00 00 */ cmpwi r3, 0
+/* 8031A3EC 0031604C 7C 7F 1B 78 */ mr r31, r3
+/* 8031A3F0 00316050 40 82 00 08 */ bne lbl_8031A3F8
+/* 8031A3F4 00316054 48 00 00 35 */ bl VFiPFSYS_initializeSYS
+lbl_8031A3F8:
+/* 8031A3F8 00316058 7F E3 FB 78 */ mr r3, r31
+/* 8031A3FC 0031605C 4B FF FE 35 */ bl VFiPFAPI_convertReturnValue
+/* 8031A400 00316060 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A404 00316064 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031A408 00316068 7C 08 03 A6 */ mtlr r0
+/* 8031A40C 0031606C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A410 00316070 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_system.s b/asm/SDK/VF/pf_system.s new file mode 100644 index 0000000..43278ce --- /dev/null +++ b/asm/SDK/VF/pf_system.s @@ -0,0 +1,42 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFiPFSYS_initializeSYS
+VFiPFSYS_initializeSYS:
+/* 8031A428 00316088 4E 80 00 20 */ blr
+
+.global VFiPFSYS_GetCurrentContextID
+VFiPFSYS_GetCurrentContextID:
+/* 8031A42C 0031608C 38 00 00 00 */ li r0, 0
+/* 8031A430 00316090 90 03 00 00 */ stw r0, 0(r3)
+/* 8031A434 00316094 38 60 00 00 */ li r3, 0
+/* 8031A438 00316098 4E 80 00 20 */ blr
+
+.global VFiPFSYS_TimeStamp
+VFiPFSYS_TimeStamp:
+/* 8031A43C 0031609C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A440 003160A0 7C 08 02 A6 */ mflr r0
+/* 8031A444 003160A4 38 A0 00 04 */ li r5, 4
+/* 8031A448 003160A8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A44C 003160AC 38 00 07 D0 */ li r0, 0x7d0
+/* 8031A450 003160B0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031A454 003160B4 3B E0 00 01 */ li r31, 1
+/* 8031A458 003160B8 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031A45C 003160BC 7C 9E 23 78 */ mr r30, r4
+/* 8031A460 003160C0 B0 03 00 00 */ sth r0, 0(r3)
+/* 8031A464 003160C4 38 00 00 00 */ li r0, 0
+/* 8031A468 003160C8 B0 A3 00 02 */ sth r5, 2(r3)
+/* 8031A46C 003160CC B3 E3 00 04 */ sth r31, 4(r3)
+/* 8031A470 003160D0 B0 04 00 00 */ sth r0, 0(r4)
+/* 8031A474 003160D4 B0 04 00 02 */ sth r0, 2(r4)
+/* 8031A478 003160D8 B0 04 00 04 */ sth r0, 4(r4)
+/* 8031A47C 003160DC B3 E4 00 06 */ sth r31, 6(r4)
+/* 8031A480 003160E0 48 00 16 D1 */ bl dTM_GetNowTime
+/* 8031A484 003160E4 B3 FE 00 06 */ sth r31, 6(r30)
+/* 8031A488 003160E8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031A48C 003160EC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031A490 003160F0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A494 003160F4 7C 08 03 A6 */ mtlr r0
+/* 8031A498 003160F8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A49C 003160FC 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_volume.s b/asm/SDK/VF/pf_volume.s index 7ddacbf..8b69c99 100644 --- a/asm/SDK/VF/pf_volume.s +++ b/asm/SDK/VF/pf_volume.s @@ -38,7 +38,7 @@ lbl_803190B4: /* 803190CC 00314D2C 48 00 00 A0 */ b lbl_8031916C
lbl_803190D0:
/* 803190D0 00314D30 38 61 00 08 */ addi r3, r1, 8
-/* 803190D4 00314D34 48 00 13 59 */ bl MWInitializeMutex
+/* 803190D4 00314D34 48 00 13 59 */ bl VFiPFSYS_GetCurrentContextID
/* 803190D8 00314D38 80 1F 16 18 */ lwz r0, 0x1618(r31)
/* 803190DC 00314D3C 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
/* 803190E0 00314D40 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
@@ -215,7 +215,7 @@ lbl_8031932C: /* 80319340 00314FA0 3B FF 18 98 */ addi r31, r31, 0x1898
/* 80319344 00314FA4 2C 1E 00 1A */ cmpwi r30, 0x1a
/* 80319348 00314FA8 41 80 FF E4 */ blt lbl_8031932C
-/* 8031934C 00314FAC 48 00 10 C9 */ bl func_8031A414
+/* 8031934C 00314FAC 48 00 10 C9 */ bl VFiPF_InitLockFile
/* 80319350 00314FB0 38 60 00 00 */ li r3, 0
lbl_80319354:
/* 80319354 00314FB4 80 01 00 14 */ lwz r0, 0x14(r1)
@@ -511,7 +511,7 @@ lbl_80319728: /* 80319738 00315398 48 00 01 68 */ b lbl_803198A0
lbl_8031973C:
/* 8031973C 0031539C 38 61 00 08 */ addi r3, r1, 8
-/* 80319740 003153A0 48 00 0C ED */ bl MWInitializeMutex
+/* 80319740 003153A0 48 00 0C ED */ bl VFiPFSYS_GetCurrentContextID
/* 80319744 003153A4 80 C1 00 08 */ lwz r6, 8(r1)
/* 80319748 003153A8 38 7E 02 48 */ addi r3, r30, 0x248
/* 8031974C 003153AC 38 E0 00 01 */ li r7, 1
@@ -631,7 +631,7 @@ VFiPFVOL_SetCurrentVolume: /* 803198C4 00315524 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803198C8 00315528 7C 7F 1B 78 */ mr r31, r3
/* 803198CC 0031552C 38 61 00 08 */ addi r3, r1, 8
-/* 803198D0 00315530 48 00 0B 5D */ bl MWInitializeMutex
+/* 803198D0 00315530 48 00 0B 5D */ bl VFiPFSYS_GetCurrentContextID
/* 803198D4 00315534 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
/* 803198D8 00315538 80 A1 00 08 */ lwz r5, 8(r1)
/* 803198DC 0031553C 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
@@ -729,7 +729,7 @@ VFiPFVOL_GetCurrentVolume: /* 80319A10 00315670 38 61 00 08 */ addi r3, r1, 8
/* 80319A14 00315674 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80319A18 00315678 3B E0 00 00 */ li r31, 0
-/* 80319A1C 0031567C 48 00 0A 11 */ bl MWInitializeMutex
+/* 80319A1C 0031567C 48 00 0A 11 */ bl VFiPFSYS_GetCurrentContextID
/* 80319A20 00315680 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
/* 80319A24 00315684 80 A1 00 08 */ lwz r5, 8(r1)
/* 80319A28 00315688 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
|