diff options
Diffstat (limited to 'asm/SDK')
-rw-r--r-- | asm/SDK/DWC/dwc_common/dwc_base64.s | 256 | ||||
-rw-r--r-- | asm/SDK/DWC/dwc_common/dwc_error.s | 89 | ||||
-rw-r--r-- | asm/SDK/DWC/dwc_common/dwc_init.s | 235 | ||||
-rw-r--r-- | asm/SDK/DWC/dwc_common/dwc_memfunc.s | 176 | ||||
-rw-r--r-- | asm/SDK/DWC/dwc_common/dwc_report.s | 246 | ||||
-rw-r--r-- | asm/SDK/DWC/dwc_ghttp/dwc_ghttp.s | 466 | ||||
-rw-r--r-- | asm/SDK/DWC/dwc_lanmatch/dwc_lanmatch.s | 1812 | ||||
-rw-r--r-- | asm/SDK/DWC/dwc_match/dwc_common.s | 267 |
8 files changed, 3547 insertions, 0 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
|